タグ

ブックマーク / bn.dodgson.org (24)

  • steps to phantasien(2009-02-14) - ハードディスクに耳をすませば

    "Above the Clouds: A Berkeley View of Cloud Computing" を読んだ. UC Berkley の RAD Lab が書いたクラウドのまとめ記事. RAD Lab は今時の分散システムを相手にした研究室で, スポンサーも Google, Sun, Microsoft といった分散システム持ちの大企業が名を連ねている. 研究員に David Patterson (パタヘネのパタ) が入っているあたりからも読み物への期待は高い. 実際よく書けていた. 私が読んだクラウド読み物の中ではいちばんくっきりしていたと思う. 記事ではクラウドを "公共設備としての計算機" という長年の夢の延長と位置付けた上で, その新規性や利点, 可能性を概観する. そして現存するクラウドサービスを計算モデルの抽象度に応じて分類し, 更にコストモデルの検討, クラウド普及

    Wacky
    Wacky 2009/02/16
    部屋に入って 30 秒, 彼はニヤリとしました. そして, 君達のデーターベースは設計がまずいね, と言うのです. ...ディスクがカリカリいいすぎだから, ランダムアクセスが多すぎるとわかったんだとか
  • steps to phantasien(2009-01-30) - Martin Fawler は(多分)やっていないこと

    ThoughtWorks アンソロジー を読んでいたら Ruby を使った DSL の話が載っており, 仕事でうっかり Ruby DSL を作ってしまった私は興味深く読んだ. 特段目新しい話じゃないものの, (DSL と言えば聞こえはいいけれど要は設定ファイルですからね.) オレオレ DSL を作る際には "Martin Fowler もやっている" と言えば 説得力もあるってもんだろう. 説得力はさておき, Martin Fowler は私の DSL が抱える問題に答えてくれなかった. 最近の私は Ruby DSL の文書化に困っている. その DSL/設定ファイル はもともと余興にちまちま作っていたもので, 思ったより出来がよくなったため実プロジェクトで使いはじめたところだった. ちゃんと使ってみると案の定ぼろぼろと問題がでて, 後始末のために残業が続いている. まあドッグフードの自業

    Wacky
    Wacky 2009/02/02
    Ruby DSL の文書化には ruby_parser が使えそうだよという話でした
  • Firefox Developers Conference の LT に混ぜてもらいました - Backnumbers: Steps to Phantasien

    2008-11-17 近況 Firefox Developers Conference の LT に混ぜてもらいました. (資料はこれ.) まわりが「何か作ったぜ」という話をしているなか, 私は例のごとく他人のふんどしで相撲を.... なにか作る話はいいよなあ. 買い物の串刺し検索をする ShoppingFinder や YouTube をニコニコ動画化する Ghostlogue は, サービスもセットになっていて面白かった. ブラウザもシェアが増えるとアドオン市場というものが生まれうるのだなー. あとは配られたビラで Movie Download Helper を知った. よくわからない単体ツールを探しまわった苦労は一体なんだったのかと... 私の話は "TraceMonkey にも V8 の hidden classs みたいな仕組みがあってプロパティアクセスが速くなるよ" という話.

    Wacky
    Wacky 2008/11/19
  • steps to phantasien(2008-09-07) v8祭り

    ウェブっ子の間では Google Chrome の JS 処理系である V8 祭りが絶賛開催中らしい. いつもは出遅れる私もたまにはやんやしたいと思っていろいろ読んでみたものの, VM に傷気味な自分に気付いた. けれど, そうは言っても祭りは別腹. 一通り騒いでみます. 販促マンガ や 資料 によれば, V8 は以下のような特徴を備えている. hidden class transition と fast property access generational accurate GC accurate だから incremental GC もできる オブジェクトの rellocation はするけど handle は使わず参照元書き換え 中間表現のインタプリタなしの native code 生成. instruction cache コードをみたところ, incremental GC

    Wacky
    Wacky 2008/09/08
  • 最近もらった本: インターフェイス指向設計 - steps to phantasien t(2008-07-21)

    最近でもないですが頂きました. ありがとうございます > 関係者の方. 多忙にかまけて感想を書くのが遅れてしまいました. 遅れた理由はもう一つあって, 私はこのの主張があまりピンとこなかった. でも貰ったのことを単にイマイチだったと書くのも社会人としてどうかなー, などとよたよたするうちに月日は流れ... 嘘や間違いはない. けれどアジャイルなオブジェクト指向設計という視点でみると, いまいち relevance を欠く気がする. このを読んでまずい設計が良くなるのを期待できない自分がいる. 何でピンとこないのか, しばらく考えていた. どうも "インターフェイス" を中心に据えるのがまずいんじゃなかろうか. オブジェクト指向の設計を議論する上で, インターフェイスはツールの一つに過ぎない. "インターフェイス指向設計" という切り口は, 極端に言えば "クッキー指向ウェブアプリケー

    Wacky
    Wacky 2008/07/23
  • JIT on Tamarin Tracing - Backnumbers: Steps to Phantasien

    前回のつづき. 今日は JIT を眺めてみます. そのまえに少し補足. TT のコードはまだ登場したばかりで, じゃんじゃん書き変わっている. なのでここで書いている内容は早々古くなってしまう. どんな勢いで書き変わっているかというと, たとえば前回紹介した TT Forth の "SUPER:" は もうすぐ撤廃される. (該当bug.) かわりに fc.py が命令列の長さから半自動的に superword を生成するようになる. ついでに Interpreter.cpp に書かれていた IL プリミティブの実装 C++ コードが vm.fs のインラインに埋め込まれるようになる. (semantic aciton みたいなもんですね.) そんなわけなので, あとから照合して「全然違うじゃん!」と怒らないようにしてください > いつかぐぐってやってくる方々. Tracing Tree

    Wacky
    Wacky 2008/05/12
  • steps to phantasien t(2007-01-11) 最近みた TechTalks: Mondrian Code Review On The Web

    Python の親玉である Guido Van Rossum が, Google での初仕事(?) として Mondorian というコード・レビュー用ウェブアプリを 作ったよ, という話. ミーハー的に視聴. 前半はレビューとは何か, なぜそれが必要なのか, OSS でのレビューなどについて説明し, 後半から Mondrian 以前の Google 社内でのレビュー体制とその問題点を指摘, Mondrian の話と続く. Google では SCM に Perforce を使っており, レビューは patch + メールベース. Mondrian 以前は Perforce の CL クライアントをラップする g4 というスクリプトを使ってレビューを支援していた. これを使うと patch をメールでレビュアに飛ばしたりできる. その飛ばしたメールを起点にレビュアとレビュイが議論し, "l

    Wacky
    Wacky 2008/04/19
  • コードを憎んで人を憎まず, あるいは. - steps to phantasien t(2008-04-02)

    社会人になって最初に配属されたチームのコードはひどいもので, 私は同期の新入社員仲間 Y に "ひどいコードなんだ. あの先輩はろくでもない." と愚痴た. すると Y はぽつりとこう答えた. "<コードを憎んで人を憎まず> だよ." Y の言葉は私の座右の銘となった. コードと人格を切り離す. あたりまえの事に思えるけれど, いまより輪をかけて狭量だった私はひどいコードの書き手を見下していた. もちろん自分は棚にあげて. たかがコードで友情や信頼を失うのは愚かなことだ. Y はそう言うのだった. 件の先輩社員は寛大だった. 私は勢いと趣味に任せて彼のコードを書き換えていたが, 彼は文句もいわず, 雑用を押し付けてくることもなく, 他所からのメールやバグを黙々と片付けていた. 私が同じ立場なら, 間違いなく戦いの火蓋を切っていただろう. (実際, 翌年の私は毎日のように後輩と口論していた.

    Wacky
    Wacky 2008/04/04
    コードを憎んで人を憎まず あるいは, バグを憎んでコードを憎まず.
  • Firefox3 のメモリ使用量 - Backnumbers: Steps to Phantasien

    WIREDVISION の記事を みていたら詳しい解説にリンクがあり, 読んだらけっこう面白かったので ざっくり訳しました. また YukiWiki にお邪魔しております. one-pass なのでいつになく粗がありそうですが, みのがしてください...じゃなくて直してやってくだい. まえに cycle collector の話を 書いてから二年ちかく. 感慨ぶかい. 私自身はというと, 今も巡回参照を素手で断つ日々. 毎夜のように涙がリークしてます. かみさま... そういえば もう C++ なんて好きでもないし使いもしない理由。 も 訳したけど, C++ プログラマ以外にはどうでもいい内容なので忘れてた. 個人的には completely agree with でございました. madvise() そういえば文中に madvise() の話がちらっと出てきた. これは何かと人々の胸を焦

    Wacky
    Wacky 2008/03/27
  • steps to phantasien t(2008-03-16) C++ と Actor

    頭が痛いだけでなく, 寝ている時に頭の傷を庇うせいか首がいたい. 鞭打ちかもしらんけど... そして頭とセットで打った臀部もいたい. 満身創痍で出かける気力もなく, 家でうだうだしているところ. こんなに良い天気なのになあ. うだうだついでに貰ったの紹介. 最近貰った: プログラミング Erlang いただきました. ありがとうございます > 著者およびオーム社の中の方. Erlang の親玉が書いた入門書の翻訳です. Erlang は言語として特に斬新なところはなく, 処理系の提供するサービスの出来がいい, というのを伝聞で聞いていた. 読んでみるとたしかにそうだった. の内容も言語仕様(文法)の話は前半だけ. 後半は分散だとか並列の話をしている. 面白いのは後半. 私はお仕事の関係もあって分散メッセージングの仕組みには少し興味があったから, これはとても勉強になった. actor

    Wacky
    Wacky 2008/03/17
    どれも C++ プログラマが苦闘して散った分野なのが見てとれる.
  • 分散プロジェクトの誤謬 - steps to phantasien t(2008-02-26)

    タネンを始めとする分散システムの教科書で必ずとりあげられる話題に "分散コンピューティングの誤謬" がある. 以下 Wikipedia から引用. ネットワークは信頼できる. レイテンシはゼロである. 帯域幅は無限である. ネットワークはセキュアである. ネットワーク構成は変化せず一定である. 管理者は一人である. トランスポートコストはゼロである. ネットワークは均質である. ネットワークプログラミングをしたことがあれば, いずれも該当のバグに思いあたる節があると思う. これらはみな複数台の計算機が関わる際の問題であり, いわばコミュニケーションの問題. 同じ問題は計算機同士に限らず, 人と人の間, 組織の間でもおこる. 順番に例を並べてみる. <伝言や連絡は信頼できる> : できない(よね?) ミーティングには欠席者がいる. 後輩は話を聞いてない. メモもとらない. メールはスパムに

    Wacky
    Wacky 2008/02/27
    これらはみな複数台の計算機が関わる際の問題であり, いわばコミュニケーションの問題. 同じ問題は計算機同士に限らず, 人と人の間, 組織の間でもおこる. 順番に例を並べてみる.
  • 最近みた TechTalks: Mercurial Project

    Mercurial という分散 SCM の紹介. Python 製で, シンプル軽量スケーラブルが売り. 開発を初めたきっかけは linux の BitKeeper 事件だという. (だから GIT がライバルらしい.) OpenSolaris や OLPC など, けっこう採用実績があるのに驚いた. 私は分散 SCM を触ったことがない. SVK をちょっとつついたくらい. 話を聞く限り Mercurial はけっこう良さそう. (スライドは Wiki に公開されている.) 分散はさておき軽量なのがいい. たとえばレポジトリのためにわざわざ svnrepos みたいな別ディレクトリを作る必要がない. 作業コピーの中に .hg ディレクトリができて, ここに履歴が収められる. つまり作業コピーのディレクトリでレポジトリが閉じている. svn だとレポジトリを作るのが面倒でバージョン管理を先

    Wacky
    Wacky 2008/01/06
  • K のこと -- steps to phantasien t(2007-11-03)

    友人の話をしよう. 先達に敬意を表し, 仮に彼を K と呼ぶ. (イニシャルは便宜的なものだ; 向上心云々と罵ったこともないし, 恋人を寝取ってもいない.) ある時期, 私は K と一緒に働いていた. 今は違う会社にいるけれど, 互いに暇なのか, このごろもよく二人で管を巻いている. 1 K は優秀なプログラマだ. いつも敵わないと思う. 一緒に仕事をしていたこともあり, プログラマとしての私は K から強い影響をうけている. たとえば私が自動テストを始めた発端には K がいる. コードレビューもそう. この日記に出てくる話も K の影響は色濃い. 私は K のあとを追いかけるようにプログラマを続けている. K と働いてはじめて, ああ, 物事とはこう改善していくものなのかと知った. 何か問題を感じると K は試行錯誤を始める. 問題は私が諦めていたものもあるし, そもそも気付かないものも

    Wacky
    Wacky 2007/11/11
    K は以前よく <泥の中で一歩を踏みだす> 重要性を語っていた. デスマーチの混乱の中, 理想からほど遠い環境でいかに最初の改善を始めるか. その難しさと戦略を K は議論した.
  • プロファイラのしくみ steps to phantasien t(2007-08-23)

    UNIX 偏向文書 artu の中で "Measure Before Optimizing" と説く Raymond は, 同時にプロファイラの計測機構 (instrumentation) がもたらすノイズについて注意を促している. 私のプロファイラ信仰に不安が翳を落とす. gprof ノイズはさておき, そもそもプロファイラはどんな仕組みで速度を測っているんだろう. gprof のマニュアル によると, GNU 一族のプロファイラは次のように実装されている: まず "-pg" オプションつきの gcc でソースをコンパイルする. この指示を受けたコンパイラは各関数の冒頭に "mcount" という名前の関数呼出しを加える. リンクする C のランタイムも専用バージョン (gcrt0.o) に差し替わる. このランタイムは裏で profil() 関数を使いタイマを仕掛ける. そのタイマは発

    Wacky
    Wacky 2007/09/01
    プロファイラの計測機構 (instrumentation) がもたらすノイズについて注意を促している
  • steps to phantasien t(2007-07-06)

    昔の同僚が退社してベンチャー仕事をやるという. 門出を祝う宴会に, 昔のよしみで呼んでもらった. ついでに古巣の近況を聞く. ひとつ嬉しい知らせがあった. 以下その自慢話. ある夏, 私は社内ライブラリのチュートリアルを書いた. そのチュートリアルが, 今でも改訂されながら参照されているという. のみならず新人プログラマの研修教材として広くとりいれられつつあるそうだ. 私はとても嬉しくなった. もちろん手柄は改訂を続け, 様々な改善を続けた彼らのものだ. それでもなお私は喜びを隠せない. 自分が去った今も文章だけが生き続けている. 私は平凡なプログラマだから, 自分のコードが生き残れるとは思えない. 一方ボランティアで仕事の合間に書いた文章は読み継がれている. 価値のあるものが生き残るのなら, 私のなした価値は(コードではなく)文書にあったことにある. プログラマとしては悲しいけれど, 会

    Wacky
    Wacky 2007/07/14
    結局欲しいのはコードだ. みつけたコードの意味がわからないと, ようやく文章に目を通す. 前後の説明を読むかもしれない. リファレンスを引くかもしれない.
  • Mercurial で手軽な共有レポジトリをつくろう steps to phantasien t(2007-05-19)

    SCM の Mercurial には CGI スクリプトがついてくる. これを使うと簡単に共有レポジトリを作ることができる. Web ブラウザからコードを閲覧できるし, 標準の hg コマンドからもさわれる. ためしにこのサーバ(さくらインターネットの賃貸)にインストールしてみたら, ちゃんと動いた. せっかくなのでインストール手順を簡単に紹介しておく. さて, SCM が CGI として動くのは一部の人にとってキラーな機能かもしれない. ちょっと友達と一緒にコードをいじりたい. 家と学校で設定ファイルやメモを共用したい. そんな時に重宝する. 今時の先鋭的な Web の若者は自分の公開サーバがあるだろうけれど, 怠惰な中年にそういうものはない. 共有サーバの賃貸がせいぜい. なので CVS や Subversion はあてにできない. 有償の Subversion ホスティングに金を払う

    Wacky
    Wacky 2007/05/21
    Mercurial で手軽な共有レポジトリをつくろう
  • Fulltext index on SQLite

    もうすぐ SQLite に全文検索がつく. Wiki を見ていて気付いた. (Full-text Search for SQLite) なかなか頑張ってるみたい. 他のデータベースは既に全文検索をサポートしている. 商用のものはもちろん, PostgreSQLMySQL も 対応済. 一方で, Java 製インプロセス RDB の HSQL や Derbyy は対応していない. (Wiki を見ると提案されてはいるようす.) 大物 DB には追いつかないにせよ, 他の軽量 DB よりは一足先を行くかんじ. 数ある DB の要件から全文検索をえらぶあたりがピンポイントでいい. 小さな規模のアプリケーションでも検索が使えたら嬉しいよね. コードは CVS に入っている. このへん. とりあえずチェックアウトして試そうと思いレポジトリを覗いてみると, コードはあるけど Makefile が

    Wacky
    Wacky 2007/02/25
    FTS1(全文検索)は sqlite の "仮想テーブル" という仕組みで作られている.
  • Bigtable: A Distributed Storage System for Structured Data - steps to phantasien t(2006-09-11)

    2006-09-11 近況 今月は貧乏なので慎しく暮らしている. 週末もひきこもりとしてオンラインの記事を読んで過ごすことに. ウェブを眺めているといいタイミングで Google の新作論文が出ていた. ありがとう, Google の中の人. これ. GFS, MapReduce, Sawzall とつづく Google インフラ N 部作の 4 章が幕をあげた. 実はデータベースも作ってるんだぜ, という話. BigTable という名前だけは以前から O'Reilly Radar などに登場していた. ようやく公式な文書があらわれた. BigTable は GFS をはじめとする Google インフラの上に作られた分散データベース. 少し変わったデータモデルと, 運用までワンセットのヘビーな実装を持つ. 実装の話もまあ面白いんだけれど, それよりデータモデルが印象的だった. 先にその

    Wacky
    Wacky 2007/02/24
    BigTable は GFS をはじめとする Google インフラの上に作られた分散データベース. 少し変わったデータモデルと, 運用までワンセットのヘビーな実装を持つ.
  • steps to phantasien t(2006-10-31) To BLOB or Not To BLOB

    なんとなく Jim Gray のページ を見ていたら, "To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystem?" という記事があった. データベース業界には "ちまいデータは BLOB に入れろ, でかいデータはファイルに置け" という口伝があるらしい. (業界ビトでない私はしらなかった...) でも "でかい" って具体的にどのくらいなんだろう. 実験/ベンチマークをして BLOB とファイルシステムを比較, 疑問に答えましたよというのがこの記事. このごろはビデオや写真をウェブに置くのもふつうになりつつある. そういうメディアなデータを保存する世相を知っておくのはいいかもしれない. 読んでみた. この実験では BLOB の実装に MS SQLServer, ファイルシステムに NTFS を

    Wacky
    Wacky 2006/11/02
    実験の結果, サイズ 256KB 以下のデータには BLOB, 1MB 以上ならファイルの性能が優勢だったという.
  • いまどきのデスクトップ処理系 steps to phantasien t(2006-09-22)

    いまどきのデスクトップは色々モダンになっている. ただモダン化は API の裏側で進んでいるため, あまり興味を持たれていないらしい. 一見いろいろウォッチしていそうな知り合いと話していてわかった. 利用者視点の話題では, いまどきのデスクトップというとたとえばウィンドウが ヘナヘナ揺れるといったアイ・キャンディばかりが連想される. でもそのアイ・キャンディに至るにはきっと山ほど苦労があったはず. そのへんをちょっとねぎらってみたい. 念頭にあるのは Windows Vista, Mac OSX, XGL あたり. まず共通の階層化されたアーキテクチャを想定し, ケーススタディを交えつつその層を下から上へ順にたどっていきます. 復習: デスクトップ処理系の階層構造 そもそもデスクトップの中味はどんな構成をとっているのか. ざっと眺めておこう. 典型的なデスクトップ処理系のアーキテクチャはだ

    Wacky
    Wacky 2006/09/30
    念頭にあるのは Windows Vista, Mac OSX, XGL あたり. まず共通の階層化されたアーキテクチャを想定し, ケーススタディを交えつつその層を下から上へ順にたどっていきます.