会社の昼休みを使ってコードリーディング。

check_ruby_versionを見ていきます。 メソッド名を見るだけで、何をするメソッドか一目瞭然。

  1. def check_ruby_version
  2.   require 'ruby_version_check'
  3. end


Read More...

Posted in code reading, ruby, ruby on rails at 2月 27th, 2008. No Comments.

久々に読んでます。

なんかRailsの起動処理に誤解があったみたいです。 Rails::Initializer.runは1度しか実行されないと思ってたけど、そうじゃないみたい。

とりあえずRails::Initializer.runが2回実行される流れをまとめてみよう。

+environment.rbが読み込まれる ++boot.rbが読み込まれる +++Rails.boot!が実行される ++++Boot.runが実行される +++++Rails::Initializer.run(:set_load_path) ++Rails::Initializer.run do |config|; end

つまり一度boot.rbの中で

  1. Rails::Initializer.run(:set_load_path)


が実行され、ロードパスが定義された後

もう一度

  1. Rails::Initializer.run do |config|
  2. end


今度は引数無しのブロッグ付きで呼び出される。 ブロック付きで渡されると

  1. def self.run(command = :process, configuration = Configuration.new)
  2.   yield configuration if block_given?
  3.   initializer = new configuration
  4.   initializer.send(command)
  5.   initializer
  6. end


Configurationのインスタンスに対して、カスタムされた設定が上書きされた上で processメソッドが走る。

うーん、深いな・・・。

Railsを実行する環境によって(テスト、開発、本番など)設定をうまく切り替えられる目的なわけですが、 結構複雑だなぁ。しかしよくできている。

次回は2回目のrun時に呼ばれるprocessメソッド内を見て行く。 ここは粛々と内部の初期化メソッドが呼ばれているだけみたいだから、時間をかければ読み切れると思う。

--

最近はてなダイアリーに引っ越そうかななんて思ってます。 はてな記法が便利だし、ソースを貼付けやすいから。

Posted in code reading, ruby, ruby on rails at 2月 22nd, 2008. No Comments.

先月末をもって、株式会社葵を退職し、今月から株式会社Syunに転職しました。今後ともよろしくお願いします。

こんなスレがありました。 やる夫がWEBデザイナーになるようです

僕もこのやるおと同じくらいの時代からWEB業界にいます。思えば10年、当時と今では状況が大きく変わってしまいました。

当時の僕は単なるHTMLオペレーターで、つい2〜3年前までの肩書きはWEBデザイナーでした。 簡単に見積もっても6〜7年はデザイナー(HTMLコーダー)だったわけです。

  • なぜプログラマになったのか?
  • どうやってプログラマになったのか?

ちょっと振り返ってみたいと思う。 今デザイナからプログラマになりたいと思っている人の参考になれば。

Read More...

Posted in programing, 日記 at 1月 14th, 2008. No Comments.

icalendarの仕様読んでます。 むーん、難しいなぁ。

RRULEとRECURRENCE-IDの関係が絶妙というか複雑というか。

例えば、12月9日を起点として、毎月のイベントを表現したRRULEは

UID:7DA0364B-DAE1-4809-94BD-AAD9E2FDEB7A#後ほど参照する RRULE:FREQ=MONTHLY;INTERVAL=1

なんですが

実際の日付としては、 2007年12月9日 2008年1月9日 2008年2月9日 2008年3月9日 . . . という感じですね。

この2007年1月9日だけ、予定がずれて1月8日だったって場合にRECURRENCE-IDを使うらしい

BEGIN:VEVENT UID:7DA0364B-DAE1-4809-94BD-AAD9E2FDEB7A DTSTART;VALUE=DATE:20080208 DTEND;VALUE=DATE:20080209 RECURRENCE-ID;VALUE=DATE:20080209 END:VEVENT

いろいろ省略しているけど、例外的なイベントとして作成してRRULEの代わりに UID:7DA...の20080209の予定だったはずなんだよと。参照している感じ。

これをRDBに表現したいんだが、まだ思いつかん。同一テーブルの自己参照で済むぽい?

Posted in programing, 日記 at 12月 14th, 2007. No Comments.

久々のエントリーです。

最近はまったく忙しくて、全然勉強する時間もありゃしません。

弊社の人が作ったJavaScriptでトグル処理をするソースコードがメールで流れてきて それに触発されて、自分もいろいろ書いてみて、社内でシェアしたものをうpします。

まるごとJavaScriptを見ていて、クロージャっていいよね。という気分だったので クロージャをおさらいしてみました。 Read More...

Posted in javascript, programing, 日記 at 3月 16th, 2007. No Comments.

このエントリーを含むはてなブックマーク

Seasar2で学ぶ DIとAOP アスペクト指向によるJava開発
Seasar2で学ぶ DIとAOP アスペクト指向によるJava開発

ソースコードリーディングから学ぶ Javaの設計と実装
ソースコードリーディングから学ぶ Javaの設計と実装

の2冊購入。 ソースコードリーディングは欲しかった奴と違った。Amazonで買えばよかった・・、まぁ悪くないけど。

Seasarは、ほんとにやるつもりでなく、アスペクト指向をかじるために。どちらも設計の勉強になるかなと。

で、読んでなかったPHPのデザインパターン本を読み始めた。 PHP5のプログラミングスタイルを勉強するために買ったのだけど、デザインパターンの復習になっていい感じ。この本でも言ってるけどオブジェクト指向の勉強を始めたら、同時にデザインパターンを勉強することをおすすめする。とても効率がよい。

あとRails本を再読。 Rubyの本を読んだあとなのに、全然Rubyに見えない・・。もう少しレベルの高いRuby本を読まなきゃだめかな。念のためソースコードも読んでみたが、さっぱりだった。

--

家でプログラミングする際に、Macでできるように準備中。

・Xcode ・MacPorts ・Vim7

を入れる予定。 なぜVimかというと、emacsがホントにわからなすぎるから。 でもViも大してしらない。

知ってるコマンド ・h,j,k,l ・i,Esc ・x,dd,j ・:wq,:q!

まぁ、これだけ知ってればなんとかなる。 徐々に。

Posted in programing, 日記 at 2月 18th, 2007. No Comments.

つい3日前くらいまで、自分がFlash Lite2.0を触ることになるとは思っていなかったんですが 仕事で開発することになったので、メモ。

まずここから「Flash Professional 8 用 Flash Lite 2 アップデート」をダウンロードして Flash Professional 8で、Flash Lite2.0を開発できるようにしておきます。 http://www.adobe.com/jp/support/flash/downloads.html

それからLite2.0の情報を集めます。 http://www.dango-itimi.com/blog/archives/2006/000912.html http://www.trick7.com/blog/flash_lite/ この辺のブログが参考になりました。

各端末の情報とか ソフトバンク端末情報 ドコモ端末情報 au端末情報 Read More...

Posted in actionscript2.0, flash, flash lite2.0, programing at 2月 17th, 2007. No Comments.

デブサミ2007 http://www.seshop.com/event/dev/2007/

Apollo関係の2つにも出ることにしてみた。 アドビ上条氏、Fxugの横田氏がスピーカーだ。

どうしても仕事で行けないという状況でなければ 一日中セミナーを受けれる、最高のバレンタインになることだろう。

【14-B-2】 「Web2.0 on Desktop」が開発者にもたらすもの ~「Apollo」で実現するアプリケーション開発の新潮流~ 【14-C-3】 FlexとApolloで極める次世代RIA 【14-B-5】 JavaScriptの現在と未来 ~ 今JavaScriptに出来ること / 次世代JavaScriptの勢力図 ~ 【14-B-7】 出張Shibuyaイベント ~ Shibuya.pm presents "Shibuya.js x Shibuya.pl mashup night" ~

に参加してみます。 被ってる人がいたら、ご一緒しませう

Posted in programing, 日記 at 2月 8th, 2007. No Comments.

インスタンス変数のオーバーライドができないのは、 コンストラクタがprivateにできないのと同様に非常にやっかいな問題だと思うんだけど、今日ついに引っかかった。

クラスの初期化(コンストラクタやコンストラクタから呼ばれるメソッドで使う)用の変数として用意したものは、どうあがいても変更できねぇー。

いや、できるんだけど、早すぎるか、遅すぎるかっていう問題にぶちあたる。

継承したクラスのコンストラクタでsuperの前で変数を変更すれば、親クラスのコンストラクタでご丁寧に最初期化され、superのあとでは当然もう使い終わった後なので、全く意味がない。

クラスの設計がAS3的じゃないってことなんだろうけど、なんだかなぁと思う。萎えるよ。 Read More...

Posted in actionscript3.0, flash, programing at 2月 4th, 2007. 1 Comment.

また新しいJavaScriptフレームワークの登場らしい。

結構いいなぁと思うんだが、すでに選択が難しいよね。

http://docs.mootools.net/files/Core/Moo-js.html

Posted in ajax, javascript, programing at 1月 31st, 2007. No Comments.