@kyanny's blog

Write down what I learnt.

Entries from 2011-12-01 to 1 month

2011年を振り返る

2011年ももう終わるので、この一年を振り返ってみる。2010年の総括とも比べてみる。 仕事 今年も引き続き 30days Album の開発に携わった。サイトは一年で順調に成長した。これを書いてる時点でアップロードされた写真ののべ枚数は 91,907,412 枚と、 2010年…

Backbone.js のソースコードを読んだ

Backbone.js (annotated source code) のソースコードを読んだ。単なる趣味です。全体的に読みやすくて読んでて楽しかった。他人が読んで役に立つものでもないので、そういうのをお探しの方は Backbone.js Advent Calendar 2011 あたりをどうぞ。以下、読ん…

Backbone.js Helpers 他

Backbone.js の Helpers とか、その他の細かい部分のコードを読んだ。ざっと眺めただけ。http://documentcloud.github.com/backbone/docs/backbone.html Initial Setup では、すでに Backbone がロードされてたら初期化を二重にやらないようにしていたり、 n…

Backbone.sync

Backbone.sync を読んだ。ざっと眺めただけ。これだけ小文字 (Sync ではなく sync) なのがなんか気になる。と思ったらこれは new するためのクラス(関数)じゃなくて単なる関数だからだった。http://documentcloud.github.com/backbone/docs/backbone.html …

Backbone.View

Backbone.View を読んだ。ざっと眺めただけ。http://documentcloud.github.com/backbone/docs/backbone.html model: とか collection: とか tagName: とかは viewOptions というのに定義されてる selectorDelegate というやつで、 jQuery とかの selector の…

Backbone.History

Backbone.History を読んだ。ざっと眺めただけ。http://documentcloud.github.com/backbone/docs/backbone.html history.pushState or URL のハッシュ部分 (# 以下) のどっちかをよしなに使ってクロスブラウザで履歴管理を楽にやるためのラッパークラス hand…

Backbone Demo: Todos の処理の流れを追う

Backbone Demo: Todos これ前に読んだは読んだけどどうやって動いてるのかわかんないので本体とあわせて追った。目スタックトレース、と書いてスクリプトデバッガ使えばよかったと気づいた。 annotated source code は github レポジトリにあるものと微妙に…

Backbone.Router

Backbone.Router を読んだ。ざっと眺めただけ。http://documentcloud.github.com/backbone/docs/backbone.html そもそも Router とはなんぞや?というと、クライアントサイドでもサーバサイド同様に URL でもって処理変えましょうね、という。 History API …

Backbone.Collection

Backbone.Collection を読んだ。ざっと眺めただけ。http://documentcloud.github.com/backbone/docs/backbone.html toJSON が単に models それぞれの toJSON を map で呼んでるだけ、というのはきれい add のなかで for を使ってるけど _.each とかではダメ…

Backbone.Model

Backbone.Model を読んだ。ざっと眺めただけ。http://documentcloud.github.com/backbone/docs/backbone.html initialize にデフォルトで何もしない関数を割り当てておくことで呼び出し時に isFunction とかでチェックしなくて済むワザ escape の内容は初回…

30days Album はどのようにして画像にアクセス認証をかけているか

30days Album は画像の URL にもアクセス認証を入れています - 刺身☆ブーメランのはてなダイアリー の技術的な解説。基本的に 関西オープンソース 2008 30days Albumの裏側 のとおり。 ミドルウェアはこのスライドのときと比べてけっこう様変わりしている。 …

tmux: How to turn off paste-buffer keyboard shortcut

これはターミナルマルチプレクサ Advent Calendarのn日目*ではありません*少し前に .tmux.conf に以下の二行を追記した。コピー/ペースト機能のキーボードショートカットを無効にしている。理由は誤爆によるオペミスの防止。前に「オペミス防止のために mysq…

WebDav Depth Header と Net::HTTP#delete

WebDav の規格で Depth というヘッダがあり、 DELETE メソッドの挙動をコントロールできる。 0, 1, Infinity のいずれかの値をとり、 0 ならば対象のリソース自身を、 1 ならば対象のリソースとそれの直下のリソースを、 Infinity ならば対象のリソース以下…

DirectorySlash は 301 Moved Permanently でリダイレクトする

http://httpd.apache.org/docs/2.0/mod/mod_dir.html#directoryslash 典型的には、ユーザが末尾のスラッシュ無しでリソースへのリクエストを発行し、 そして、そのリソースがディレクトリを指していた場合、mod_dir は、末尾にスラッシュを付加した上で同じ…

Backbone.Events (2)

社内の有志でやっている JavaScript 勉強会があり、それのお題で Backbone.js のソースコードを読み始めた。http://documentcloud.github.com/backbone/docs/backbone.html今日は頭から読んで Backbone.Events を終えて Backbone.Model の has まで。Backbon…