« 2006年04月 | メイン | 2006年06月 »

2006年05月28日 (日)

第5回全日本スヌーカー選手権 [ビリヤード・スヌーカー]

会場のクロスタイトリーへ観戦に行ってきた。決勝はランキング1位2位対決、福田豊VS栗本高雄。終始押していた栗本が第1フレーム・第3フレームと40点ブレイクを連発。すごい。粘る福田を振り切って3-1で優勝! セーフティエクスチェンジの展開など見ごたえある試合だった。福田さんは残念、連覇ならず。

試合の経過・結果など、「スヌーカーをいろいろ考えてみよう THINK FIRST」でかなり詳しくレポートされています。

投稿者 4bit : 23:17 | コメント (0) | トラックバック (0)

2006年05月26日 (金)

2日連続スヌーカー [ビリヤード・スヌーカー]

今日は会社の同期の友人に車を出してもらい、ドリームショット武蔵村山本店にスヌーカーを撞きに行った。昨日に続いて2日連続スヌーカー。なんか極端だな。

友人はスヌーカー初めてということで、ルールを説明しながらプレイ。僕のほうは第1フレームはまずまずの調子で、レッド-ブラック-レッドの9点ブレイク。でもやっぱり2ケタは出ない…。第2フレーム、第3フレーム(途中まで)と進むごとにやっぱり週末の疲れが出てきたのか2人とも集中力が落ちてきてどんどんカラーが入らなくなっていく。レッドしか入らないもんだから点数が1点ずつ増えていくだけ(笑)。やっぱり疲れたかな。でも楽しかった。友人の感想もなかなかよかった。なにより金曜の夜ってのは気分がいいってことがわかったのでまた行こう~。

投稿者 4bit : 23:59 | コメント (0) | トラックバック (0)

2006年05月25日 (木)

ドラゴンのスヌーカーレッスン Part4 [ビリヤード・スヌーカー]

ドラゴン福田豊氏のレッスン会@スヌーカークラブに4回目の参加。先々週は福田さんが体調を崩された(福田さんの奥さん曰く「つわり」)ということで休みだった。全日本スヌーカー選手権の2日前なので少しピリピリしてるかと思いきや、そんなことはなくいつも通りの和やかな雰囲気だった。

前回「もうちょっと練習しないと」とか言ってたのに、撞くのは5月1日以来。そのわりには今日はそこそこ調子がいい感じで、最初の1人の練習のときに特定のアングルで目の錯覚がおきているポイントを発見して修正したりしていた。

そして福田さんとのフレーム。途中、ブラックをミドルへ難しいアングルのトップスピンショットが奇跡的に(笑)成功し、レッドへばっちりポジション。それも入れてブラックへのポジションもOK。さあこれを入れると16点ブレイク…というところでやっぱり外した。惜しいなー。

その後クラブ員の方々のフレームを観戦していたら、思いがけなく2フレーム目の順序が回ってきた。2フレーム目は福田さんが30+?のブレイク(カラーは全部ブラックだったので途中147か?と言っていた)を出した後、ピンクをミス、ミドルの穴前にレッドが残りまくりという絶好の配置で回ってきた。落ち着いてレッド-ブルー-レッド-ブルーとポットし、12点ブレイク達成! まあ全部一番難易度の低いミドルポケットでしかも穴前にレッド2つという運もあるけど。一応2ケタブレイク2回目。

今日はブリッジの組み方が間違ってると指摘を受けたが、キューが水平に出ているのがいいと褒めてもいただいた。これからもこんな感じで2ケタ出していければいいなー。

全日本選手権は観戦しに行きますので福田さんがんばってください! センチュリーが見たいな~(笑)。

投稿者 4bit : 23:59 | コメント (0) | トラックバック (0)

簡単認証プラグイン試作 [テクニカル]

ヽ( ・∀・)ノくまくまー(2006-05-21)」より

本格的な認証機能は不要なので、のーにゅーまでもう時間がない!みたいな必死なときに30秒くらいでとりあえずな認証をかけられるものがあると便利だとゆいたいです。とりあえず .htaccess でBasic認証をちょこっと置いてます、みたいな。

class AdminController < ApplicationController
  htpasswd :user=>"maiha", :pass=>"berryz"     # 認証(何行でもかけて上から随時実行)
  htpasswd :file=>"/var/www/passwd/.htpasswd"  # 外部ファイル指定も可能(htpasswd 互換)
end

Basic認証でよければ、ってことで認証まわりの練習がてらプラグインをでっちあげてみた。

だいたい上の使用例の感じで動くはず。動かなかったらごめんなさい。

追記:くまくまーの中の人に添削してテストも書いてもらった!感謝! てことで使うときはこちらをどうぞ→「ヽ( ・∀・)ノくまくまー(2006-05-25)

コード。汚いので添削希望。

module Htpasswd
  def self.included(base)
    base.extend(ClassMethods)
  end
  class Error < StandardError
    define_method(:message) { 'Authorization is required' }
  end
  module ClassMethods
    def htpasswd(options={})
      if options[:file]
        type = options[:type] || :crypted
        IO.foreach(options[:file]) do |line|
          user, pass = line.chomp.split(':', 2)
          write_inheritable_array(:htpasswd, [{:user => user, :pass => pass, :type => type }])
        end
      else
        write_inheritable_array(:htpasswd, [{:user => options[:user], :pass => options[:pass], :type => :plain }])
      end
      skip_before_filter :htpasswd_authorize rescue nil
      before_filter :htpasswd_authorize
    end
  end
  protected
  def htpasswd_authorize
    raise Htpasswd::Error unless auth_header = request.env['HTTP_AUTHORIZATION']
    auth_type, auth_data = auth_header.split(' ', 2)
    user, pass = Base64.decode64(auth_data).split(':', 2)
    raise Htpasswd::Error unless pass.length > 0
    auth_users = self.class.read_inheritable_attribute(:htpasswd)
    auth_success = false
    auth_users.each do |h|
      case h[:type]
      when :plain
        if h[:user] == user and h[:pass] == pass
          auth_success = true
          break
        end
      when :crypted
        if h[:user] == user and h[:pass] == pass.crypt(h[:pass])
          auth_success = true
          break
        end
      end
    end
    raise Htpasswd::Error unless auth_success
    return true
  rescue Htpasswd::Error => error
    realm = "Authorization"
    response.headers['WWW-Authenticate'] = response.headers['WWW-Authenticate'].to_a
    response.headers['WWW-Authenticate'].push("Basic realm=\"#{realm}\"")
    #headers['Status'] = '401 Unauthorized'
    render :nothing => true, :status => 401
    return false
  end
end

投稿者 4bit : 16:34 | コメント (645) | トラックバック (0)

2006年05月21日 (日)

Rails勉強会@東京 第6回 [テクニカル]

前回に引き続きRails勉強会に参加。

ポジションペーパーは、「RESTプラグイン試作」というもので一応試作したのを置いときます。ただしモデルのテーブルのカラム名により動かない可能性あり。ソースも汚いです。

前半セッションは高橋さんの「Typoの改造」。Railsで作られているBlogシステムのTypoを改造してますという話。実は僕もTypoを改造しようかと思って(思っただけでやってない)、svn trunkのソースを眺めてみたことがあったので興味深い話だった。あとでruby-listを見てみたら関連スレッド([ruby-list:42174] i18n Typo and Ruby-GetText)を発見。

僕は存じ上げなかったのだが、JIS文字コード関係などで有名な芝野先生が来ていらっしゃって、国際化(多言語化)の話でなかなか激論が交わされた。

後半はsecondlifeさんの「Mongrelのソースを読む」。Ruby(一部C)のWebサーバであるMongrelの紹介とソース読み。しかし僕はノートパソコンを持っていなかったこともあってちょっと取り残された感じ。ほとんどメモも取っていなかった。

都合で懇親会は遠慮させてもらったが(井上さんすみませんでした)、有意義な一日だった。僕もRESTプラグインがもう少し実用的になればそれをネタに1セッションやりたいなぁとも思ったのだがなかなか難しそうだ…。

投稿者 4bit : 23:59 | コメント (0) | トラックバック (1)

2006年05月02日 (火)

888.com World Snooker Championship Final [ビリヤード・スヌーカー]

Peter Ebdon v Graeme Dott

決勝は終始リードしていたグレアム・ドットが18-14でピーター・エブドンを振り切って優勝。1日目で11-5と大量リードで、エブドンもがんばって15-7から6連取して15-13まで追いついたんだけど第31フレームクリアランス逆転でドットが取って、そのまま優勝した。

残念ながら去年のようなLive Video中継はなし。EUROSPORT.DEでLive Audio中継があったのでLive Scoreを見ながら聞いていた。ドイツ語わからないけど。

投稿者 4bit : 08:56 | コメント (0) | トラックバック (0)

2006年05月01日 (月)

2ケタ出た! [ビリヤード・スヌーカー]

GWってことで東京に来ていた大学時代の友人とスヌーカーを撞きに新宿サムタイムへ行った。友人は仕事で何回かイギリスに行ったことはあるけどスヌーカーはやったことがないとのこと。

ルールを説明しながらプレイするが、予想通り「入らねー」連発。僕は相変わらず厚みが全然見えてなくて調子は悪かったのだが、相手がインオフ連発したのもあって点差が開き、最後はブルー-ピンク-ブラックとクリアランス(!)して62-19だった。

そして2フレーム目、時間の都合で途中までしかできなかったのだが、ついにレッド-グリーン-レッド-ピンクの11点、2ケタブレイク達成!(カラーボールゲーム除く) 最後のピンクはレストでかなり難しいアングルだったがまぐれで入った(笑)。

ちなみにその後ダーツでは友人にボロボロに負けました…。

投稿者 4bit : 23:59 | コメント (2) | トラックバック (0)