Kanasan.JS prototype.js CodeReading#6

Posted by okkez Mon, 13 Oct 2008 14:05:00 GMT

行ってきました。

午前中は、通院のため行けなかったので午後から参加。

前回と違ってサイ本を読破していたのでそこそこちゃんと読めた。 以前の部分も復習しておかないとぁ。

1.6.0.2 が終わってからは差分を見ながら変更点の確認。

CHANGELOG を見ながら追っかけてました。 そのときやってた方法は以下のような感じ。

  • 読んでる部分の特定のキーワードで CHANGELOG で検索。

その後途中から Yuya さんのアドバイスで読み方変更。

prototype.js は git 上では複数のファイルに分かれているので読んでいる部分に対応するファイルを 見つけてそのファイルのログを見る必要があります。 配布ファイルの差分が追加/変更の場合は git blame で追加/変更部分が blame でも表示されるので 該当するチェンジセットのコミット内容を git show します。

ほぼすべてこれで変更内容を把握することができました。 ただし、 blame は削除部分に関しては何も教えてくれないのでそこは工夫しないといけない。

Posted in | コメントはありません |

jQuery UI Tabs でハマった件

Posted by okkez Thu, 18 Sep 2008 09:25:00 GMT

動的にタブのセットを入れ子にしていくときにハマったので書いておく。

HTML の仕様的に考えれば当然なんだけど、入れ子になっている部分の要素の id が一切重複してはいけないようだ。 重複していると予想外の動作をする上に、証拠を残さずに DOM を変更してくれるので調査しづらい。

id が重複した瞬間に通知してくれるようなツールがあるといいのだけどそんな都合のいいものはないですよね。

Posted in | コメントはありません |

prototype.js code reading #5

Posted by okkez Sun, 15 Jun 2008 13:00:00 GMT

行ってきた。

javascript のメタプログラミングが段々分かってきた気がする。

だけど、自分でまったくコードを書いてないので、気がするだけなんだろうな。

ぼちぼち、自分のペースで勉強していきたい。

Posted in | コメントはありません |

HaskellWorkshop #8 and Kanasan.js(code reading) #3

Posted by okkez Sun, 03 Feb 2008 09:38:00 GMT

ふつける読書会の#8prototype.js のコードリーディングに参加してきた。

ふつける読書会

ふつけるの読書会。

LazyLines という wiki clone の実装の説明の前半部分を読んだ。

Haskell は結構忘れてたけど意外とさっくり読めた。

Haskell で何か作りたい。

次回は 2/22 (Fri) 夜の予定。

Kanasan.js

初参加なの上に javascript はさっぱりなので大人しくしているつもりだったのに内容がないことを結構発言してたような気がする。邪魔してたのでなければ良いのだけど。

コードリーディングは1300行目辺りから。Ajax系のクラスの辺り。 と Element を操作する系のところ。insert の途中まで。

内容については誰かが詳しくレポートしてくれるだろうから、コード読むときに準備しとくとよいものを書いておく。

  • vim (viewで起動させてreadonlyで読むといい)
    • emacs だと色分けがあまり上手くいかない。
  • prototype.js のリファレンスマニュアル
    • windows は chm が配布されてるのでそれを。
    • *nix 系な人は pdf か web で。
  • 実験用の html ファイル (後述)と firebug

気になったこと、というか誰か作ってほしいもの。

  • javascript 用の [ec]tags コマンド
  • コードからリファレンスを引ける prototype.js 用の emacs マイナーモード

次回も可能であれば参加する予定。

実験用のファイル

以下を適当な名前で prototype.js と同じディレクトリに保存する。

で、 web ブラウザからアクセスする。 firefox の場合は firebug で色々試すことが出来る。

# 今日、コードリーディング中にでっちあげたので改良の余地はあるはず

<html> <head> <script src="prototype-1.6.0.2.js" type="text/javascript"></script> <title>ex prottype.js</title> </head> <body> <p>hello</p> <p id="world">world</p> </body> </html>

Posted in |