@kyanny's blog

My thoughts, my life. Views/opinions are my own.

2011-01-01から1年間の記事一覧

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の裏側 のとおり。 ミドルウェアはこのスライドのときと比べてけっこう様変わりしている。 …

30days Album は画像の URL にもアクセス認証を入れています

Facebook にアップロードした画像の URL に直接アクセスすると非公開設定でも閲覧できるという話題が議論を呼んでいますが、 30days Album は画像の URL にもアクセス制限を入れています。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…

\(^o^)/

$ wget http://redis.googlecode.com/files/redis-2.4.4.tar.gz $ tar xzf redis-2.4.4.tar.gz $ cd redis-2.4.4 $ make $ make test (snip) \o/ All tests passed without errors! # <-- kawaii!! Cleanup: may take some time... OK

mysql クライアントでページャを使う

mysql クライアントでクエリを実行すると結果が印字されるが、結果をファイルにリダイレクトしたり、表示せずに捨てたいことがたまにある。 SELECT INTO OUTFILE を使ってもいいけれど、 mysql サーバに接続するユーザーに FILE 権限が付与されていないこと…

github/gitignore

Git でバージョン管理の対象に含めないファイルのパターンを指定するには gitignore というものを使う。詳細は man 5 gitignore または http://hail2u.net/blog/software/git-ignoring-files.html などに詳しい。プロジェクトごとの .gitignore ファイルを都…

The Art of Readable Code

The Art of Readable Code を読んだ。この本は「読みやすいコード」についての本だ。著者は本文中で繰り返し「コードは読んで理解しやすく、誰かが読んだとき短時間で理解できるように書かれるべきだ」と述べている。そういうコードを書くために何に気をつけ…

Backbone.Events

Backbone.Events を読んだ。 JSリーディングの予習。http://documentcloud.github.com/backbone/#Events https://github.com/documentcloud/backbone/blob/master/backbone.js#L58 イベントハンドラの登録/削除/発火を司る。イベント名とそれに対するコール…

#fastestweb

FT-86 FASTEST PAINTED WEBSITEを見に行ってきた。行くまではリアルタイムというのにあんまり興味はなくて、近いしたまにはオフラインの何かも見ておくかな、くらいの軽い気持ちでなんとなくだったけど、実際目の前で自分の Twitter アカウントが表示される…

新はてブ

ベータテストの招待をもらったので少し使ってみたので、妄想まじりの感想を。UI はパッと見で Facebook みたいだな、と思った。要素の配置も似ているし、ニュースフィードというかタイムラインというか、そういうものを意識しているのかなと。 Facebook はサ…

nginx は 複数の URL が含まれた X-REPROXY-URL ヘッダを扱えない

Perlbal には、リバースプロキシとして利用しているときバックエンドが X-REPROXY-URL というヘッダに「ファイルの実体の URL」を入れてレスポンスを返すと Perlbal が改めてその URL にリクエストして (reproxy) 実体をとってきてからクライアントに返す、…

trac-wiki.el

同僚が Vim から Trac の Wiki を編集する設定を紹介していたので、そういえば Emacs からも編集できるのあったよなと思ってやってみた。だいたい http://d.hatena.ne.jp/tumf/20070102/1167720544 に従う。Trac のバージョンとか XML-RPC プラグインは大丈…

Location: http://kyanny.hatenablog.jp/

先日から使い始めたはてなブログがたいへん気に入っているので、しばらくあちらをメインに更新していきます。はてなダイアリーに不満はないし、フィード購読者数などを考えるとすっぱり移転するのも考えものなので、当面は 302 Found というステータスですが…

Re:Excel列名変換問題で第2回社内プログラミングコンテストを開催してみた(前編)

http://d.hatena.ne.jp/aereal+tech/20111104/1320351723 で知って時間計りながら書いた。問題1を解くのに57分もかかった。「問題1を解き終わるまで問題2は読まないこと」というルールがあったのでそれに従って解き終わってから問題2をみたらすでに実装済み…

はてなブログはなぜはてなスターが記事タイトルの横ではなく記事の下にあるのか

「読み終わる前にスターつけるのはヘンだから」なんだなと、勝手に理解した。はてなダイアリーでは記事タイトルのすぐ横にあるデザインがふつうだったのにあえて変えてきたのには意図があるはずで、これ以外には考えられない。つぶやきではなくてまとまった…

Scope Guard

唐突に Scope Guard を理解した。 スコープを抜けたとき呼ばれるコールバック関数を(後処理などのために)登録しておくためのものだった AnyEvent とかと一緒に紹介されてたことが多かった(気がする)ので「なんか難しそう」と敬遠したままだった 短いもの…

Simplenote 使い始めた

Evernote より断然好みだ。これなら気分よくメモれそう。とはいえ Emacs から書きたいのでそのようにした。主に ブブゼラを聞きながらEmacsでSimplenoteを操作してみました « サーバーワークス エンジニアブログ 参照。https://github.com/kyanny/emacs-conf…