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

  • あるライブラリのおもいで - Backnumbers: Steps to Phantasien

    そういえば先に紹介したのサンプルコードは 前勤務先が開発していたライブラリを使っている. そんなのがあったなと思いだした. 開発元の会社は私が退職したあと解散してしまい, 製品としてのライブラリもなくなってしまったようだ. 少しはバグとりなどを手伝った身として一抹のさびしさがある. 今は亡きこのライブラリを偲んでみたい. それは C(v1.x)/C++(v2.x) で書かれたノンブロッキングスタイルの通信ライブラリで, libevent に類する イベントシステムと IO を抽象化するレイヤの上に バッファ管理, フレーミング, 多重化, 暗号化, 圧縮, UDP ベースのストリーム実装 と hole punching を実装し, 簡単な RPC もついていた. そのほかにも経路の heartbeat や素朴なリマッピング, 簡易チート対策, 高負荷な暗号化や圧縮だけを別プロセスに切り離

    kennak
    kennak 2011/06/22
    ノンブロッキングスタイルの良さ ノンブロッキング/非同期のプログラミングスタイルはゲームと相性がよい. 伝統的なつくりのゲームはコードの中にいわゆる "メインループ" があって, 大ざっぱにいうと一回のループで 1
  • 心はさらわれるもの - steps to phantasien(2011-06-10)

    購読しているブックマークからリンクされていた "一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選" という記事が面白かった. この人はだいぶ色々読んでいてすごい. Java には読むのに良いコードが色々あるものだと見直した. 私は推薦リストを作るには至れない. もコードも, 読んだ直後に気分が盛り上がって紹介することは時々あれど, お勧めするほどには自分の趣味や記憶を信じられていない. 私の読書/コード体験にはストックホルム症候群みたいなところがある; 苦労して何かを読んだあとはつい, こいつは必読/珠玉の一冊/ツリーだ! と思ってしまう. これを読んでないヤツは素人, なんて気分にすらなる. 友人も似たようなことを言っていたから, もしかしたらよくある気分なのかもしれない. そんな気分になったら, 私は架空の積読タワーに思いをめぐらせ, この山と積まれたやツリー

    kennak
    kennak 2011/06/13
    心をさらわないコード 珠玉必読が軒を連ねる一方, 読んだあとにこりゃダメだとがっくりくるコードも世の中には結構ある. 銃口の媚薬をかき消すダメなコードの話をするのは, 良いコードの話と同じくらい面白い. 認知の重
  • steps to phantasien(2010-02-14) - 最近でもなく読んだ本

    裁断とスキャンが停滞している間にまた部屋の蔵書が幅をきかせ始めた. "最近読んだ" で自分のページを検索したら, 最後は 2008-01-11. 二年分か. そりゃかさばるわ. さっさとメモして処分したい. 順不同. (もうすぐ処分します. めぼしいのがあって物理的に無事なら差し上げますのでご連絡を.) RESFful Web サービス わかった気になっていたけれどわかっていなかった話が多く, 面白かった. 私が REST だと思っていたのは REST-RPC ハイブリッドだったのかとか, connectedness がないと REST としてはいまいちだとか. 特に 8 章のベストプラクティスについては, トランザクションや一括取得のように素人が考えたらうまく設計できなそうな 話題に定型を与えているのがよかった. 実際のデータは階層化されていなかったり unified interfac

    kennak
    kennak 2010/02/15
  • Communications of ACM - steps to phantasien(2010-01-04)

    年始はべものの調達が億劫で, 大鍋にカレーを作り三日三晩べ続けた. 量が多過ぎたので最後の夜は友人 M に助けを求めた. 鍋を空にすべくたらふくべたあと土産にもらったチャイをすすりふと見ると, やはり腹ごなしに棚を物色していた M が CACM の山に目をとめていた. CACM: Communications of ACM は, 米国のコンピュータ学会(ACM)が発行する月刊の会誌. 昔々はこれに論文を載せるのが計算機科学者のステータスだった, らしい. たとえば "Goto statement considered harmful" に 続く一連の論争は CACM の投稿欄で行なわれた. ダイクストラがジャンプ放送局に出てくる雑誌を想像してほしい. もうちょっとマシな例だと Quicksort なんかも CACM が初出のよう. 最近は分野の細分化が進み, CACM で最先端の研

    kennak
    kennak 2010/01/08
  • 近況 - "チームがよくなる" 感じについて - steps to phantasien(2009-12-31)

    2009-12-31 近況 プログラマとしての成長が感じられない一年だった. 目先の仕事に気をとられ, 問題についてよく考える時間をとらなかった. 過労を言い訳に勉強もしなかった. 情けない. 一方で仕事のチームでは成長を感じることができた. せっかくだから, "チームがよくなる" 感じについて書いてみたいとおもう. 最近, 私のいるチームはコードレビューをするようになった. 私はこれまで仕事の中でコードレビューを実施しょうと試行錯誤してきたけれど, チームに定着することは少なかった. コードレビューはそれなりに面倒な作業なので, 特に組織的な外圧がないところではさぼられがちだと思う. けれど今のチームは外圧なしでやっている. およそ一年間のプロジェクトを通じ, このチームがコードレビューをするに至った道程を振り返ると, チームが成長する様子をうまく捉えることができるかもしれない. フェー

    kennak
    kennak 2010/01/04
  • 会社に鍵と財布を忘れたその夜, 行き場を失った私は自宅の扉に拳を打ち付けた - Backnumbers: Steps to Phantasien

    2009-09-23 近況 会社に鍵と財布を忘れたその夜, 行き場を失った私は自宅の扉に拳を打ち付けた. 人生のロードマップを前倒す新宿中央公園デビューも頭をよぎったものの, 幸いその日のカバンにはケータイが入っていた. 近所の友達が在宅だったのもまた幸いだった. 懇願して寝床を, 脅迫して晩飯を得ることができた. 腹もふくれ我が家のようにくつろいでいると, Android devphone 1 の箱が目についた. そういえば前に買ったと言っていたっけ...などといいつつ勝手にいじっている私に気付いた友達が, 思い出したようにつぶやく - "そういえば, Android のブラウザはちょっと不思議でさあ..." というのは "ページの文章がいつも画面ぴったりに収まるんだよね." そういわれてみると, たしかに文章の幅がぴったりきている. 最初はたまたまかと思ったけれど, 設定画面をみると

    kennak
    kennak 2009/09/24
    人生のロードマップを前倒す新宿中央公園デビューも頭をよぎった
  • Alcor の Abbreviation Scoring - steps to phantasien(2009-09-12)

    同僚の生産性ツール愛好家が熱に浮かされて言った. "QuickSilver の検索がすごいんだよ!" どう凄いのかというと, たとえば "Skype を検索するのに <sp> でいい!" らしい. それは凄いのかも. 私もいちおう QuickSilver を使っているけれど, 素敵機能の類はまったく活用していない. だいたい私の使うアプリケーションはどれも一文字で特定できる. Firefox, Emacs, iTerm, Activity Monitor... そういえば iTunes は iTerm と被ってる. ためしに <iu> と打ってみたら iTunes にマッチする. なんとなく凄い気がしてきた. 同僚はこのアルゴリズムが気になるらしい. 編集距離の仲間かとも思ったけれど, 違う気がする. とりあえずぐぐってみたところ, QuickSilver は 2007 年に オープンソー

    kennak
    kennak 2009/09/13
  • Core Animation - Safari の隠し味 - steps to phantasien(2009-08-22)

    2009-08-22 近況 WEB+DB PRESS の連載はなんとか打ち切りにならず続行中. 読んでもらえているとのフィードバックもいくつかいただき, ありがたいことでございます. 今回は CSS 周辺を読んでみました. ようやくブラウザらしくなってきたので興味のある方はごらんください. 記事の準備と称してコードを読む週末副業も今のところ続行中. 遠くに行くのがだんだん億劫になってきたので, 近所の安コーヒー屋に通っている. ひきこもり体質の改善はならず. 連載はこのあとレイアウト, レンダリングと続く予定. その準備にレンダリングまわりのコードを読んでいたら, 連載で書くにはややしんどいけれど WebKit らしいコードをみかけた. 今日はその話を書いてみたい. Core Animation - Safari の隠し味 CSSCSS 3D Transforms Module とい

    kennak
    kennak 2009/08/24
  • RPC サーバの遅延リターン - steps to phantasien(2009-07-04)

    最近は過労気味でウェブにものを書くこともできない, という話で上司の同情を誘うべく 日人の労働時間やストレスの実態をまとめた エンドレス・ワーカーズ を読んだら, 自分の労働時間は日人労働者の上位 2 割から漏れていることを知り愕然とした. あんなに働いたってのに...残業エリートへの道は険しい. 道を進みたいわけじゃないけれど. (平均は越えてたぜ!) いずれにせよ流行からはすっかり脱落しているので, 時流を無視して仕事の話でもしよう. 以前, 会社の blog で RPC の結果をノンブロッキングスタイルで受け取るプリミティブ "弱関数" を提案した. でも試行錯誤の結果, いまは使っていない. C++ での弱参照は意図しないリークを作りやすい. 使いわすれることも多く, 忘れた頃にクラッシュする. 要求は明示的にキャンセルした方がいいことがわかった. (世間はみんなそうやってます

    kennak
    kennak 2009/07/06
  • グーグル株式会社の人が MapReduce (以下 MR)について解説をしてくれるというので聞いてきた - steps to phantasien t(2006-01-27)

    2006-01-27 近況 グーグル株式会社の人が MapReduce (以下 MR) について解説をしてくれるというので聞いてきた. 私は友人が誘ってくれたのに便乗しただけの野次馬なので, どういう集りなのかはよく把握していない. 何かの勉強会ということらしい. 技術的には論文に書いてある以上の話はなかったが, 実際に使っている人の話を聞けたのは貴重だった. 忘れないうちにあれこれメモしておく. (発表に使ったスライドはウェブに公開されているものと同じだという. スライドがあるなんて気がつかなかった...) まず MR のマスタープロセスは途中経過や統計情報を HTML として(?) 出力してくれる. そのスクリーションショットがスライドにあった. 進捗などがけっこうグラフィカルに表示される. こういうフィードバックの仕組みは開発生産性に影響しそうだ. (Tapestry の作者がいうと

    kennak
    kennak 2009/06/15
  • 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 インフラの上に作られた分散データベース. 少し変わったデータモデルと, 運用までワンセットのヘビーな実装を持つ. 実装の話もまあ面白いんだけれど, それよりデータモデルが印象的だった. 先にその

    kennak
    kennak 2009/06/15
  • [断線部] 近況 - Backnumbers: Steps to Phantasien

    連載がはじまってからプレッシャーに弱い自分をみつけた. 原稿の締切が気になって余暇も落ち着かない. かといってさっさと原稿を書く身軽さもない. 結局なにもせずにぐずぐずと週末を過ごしてしまう. 仕方ないので週末のうち一日は物書きデーと決めてノート PC 持参で街にでかけ, コーヒー屋で原稿かき(か, その準備)をすることにした. "副業出勤" と命名. 私はワイヤレスな IP を持っていないので, 副業出勤は自動的に断線部となる. 今週はまだ二回目. 定着すると良いなあ... 副業出勤をしてみてわかったことが 3 つある. 1. お手洗いに行くのが面倒: 席を外れるときに荷物をもっていく必要がある. いつもならサイフだけ持っていくんだけど, 副業中はノート PC も手放せない. PC かかえてトイレにいくのは相当マヌケ. 同僚が必要だと思った. 世間のスタバ派自営業者はどうしてるんだろう.

    kennak
    kennak 2009/06/15
  • Bespin - Backnumbers: Steps to Phantasien

    木にある SNS の会社で開催されたデータベースの勉強会に向かった私は道に迷って会場に辿りつけず失意のまま帰宅した. もうサーバサイドなんて知らねーよ! そう(地図を忘れた自分に)憤り, 現実逃避にクライアントサイドのコードでも読むかと Bespin を眺めた. Bespin は Mozilla が開発中のウェブで動くテキストエディタサービス. デモ版 が公開されている. もう少し詳しい話 によると, HTML5 の <canvas> で色々実装しているらしい. そういえばそんな機能があったなーと思いだし, どんなものかと コード をチェックアウトした. ツリーの構成 Bespin のソースは今のところ約 3 万行 ある. サードパーティのライブラリを除くと 2 万行くらい. backend/ frontend/ mocks/ slices/ docs/ research/ templ

    kennak
    kennak 2009/02/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 (パタヘネのパタ) が入っているあたりからも読み物への期待は高い. 実際よく書けていた. 私が読んだクラウド読み物の中ではいちばんくっきりしていたと思う. 記事ではクラウドを "公共設備としての計算機" という長年の夢の延長と位置付けた上で, その新規性や利点, 可能性を概観する. そして現存するクラウドサービスを計算モデルの抽象度に応じて分類し, 更にコストモデルの検討, クラウド普及

    kennak
    kennak 2009/02/16
    ひw
  • JSVM のレジスタ割り当て - steps to phantasien(2009-02-13)

    2009-02-13 近況 デブサミ 2009 に 呼んでいただきました. ありがとうございます > 関係者の方々. で, また JS の話をしてしまいました... マンネリにもほどがありますすみません. (スライド. フォントがへんなのは OpenType font を PDF 化できない OOo for macbook のせい. ヒラギノ代かえせー) 最後のほうにでてきた 正規表現 JIT の話やベンチマークに出てくる V8 の数字は 新しいやつ を使ったものです. このへんは説明がまずく誤解されている方がいらしたようなので補足いたしますすみません. 公式サイトで宣伝されたのは今月だけど, irregexp のコード自体は以前からツリーに入っており, それを参照してます. それにしても JS 体にはバイトコードがないくせに正規表現にはあるってどうなの V8.... JSVM のレジス

    kennak
    kennak 2009/02/16
  • 情報は自由を欲しているけれど - Backnumbers: Steps to Phantasien

    iTunes Music Store の音楽が DRM free になったと, 同僚のアップルファンが喜んでいた. Windows 入りのノート PC が壊れて以来 iPod に音楽をとりこめないままの私は iTunes に腹が立っていたので, (VirtualBox + Windows XP 上の iTunes は音楽 CD のとりこみに失敗する.) つい "でも AAC が patented なので free とはいえませんね" などと毒づいてしまった. 大人気なかったと反省している. 前よりはよくなったのだから文句を言う筋合いじゃない. Linux ユーザに iPod は身に余る. Macbook がほしい... 奇しくも同じ日, Stewart Brand の "The Media Lab" が届いた. 1980 年代に出版されたで, 古屋に注文したまま忘れていた. Stewa

    kennak
    kennak 2009/01/13
    さて本当のところ, information のヤツは何を望むのだろう.
  • - Backnumbers: Steps to Phantasien

    2008-12-20 近況 WEB+DB PRESS Vol.48 に記事を書かせてもらいました. デバッグをねたに, という話だったのだけれど, デバッグのような辛い記憶はすぐに忘れてしまうので無理です...とごねて その手前, エラー処理の話を書いてみました. 他の方はちゃんとデバッグの話を書いていてえらい... おまえはいつから Web とか DB をやるようになったんだという指摘は甘受いたします. なぜ RPC はいまいちか (今更編) WEB+DB Press には REST の連載があり, 今号は RPC の話だった. その記事を読んでいるうちに, 以前書いた 少し関係のある話 が途中だったのを思いだした. 元の記事は REST vs. RPC の議論だったけれど, REST はさておき RPC はどんな場合にいまいちか, すこし書いてみたい. 多くの RPC は, だいたい次

    kennak
    kennak 2008/12/22
  • 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 みたいな仕組みがあってプロパティアクセスが速くなるよ" という話.

    kennak
    kennak 2008/11/18
  • steps to phantasien(2008-11-02) : 最近みた TechTalks

    同僚が iPhone 買ったというので, それまで使っていた iPod touch を譲りうけた. (決してふんだくったわけではない.) 動画再生専用機として使っている. 驚くことに, PC の画面でみるよりずっと良い. 画面を動かせいのが制約だったとは, 思いもよらなかった. 手に持てるのは良いなー. そんなわけで, すっかりご無沙汰だった TechTalks を (ジャンクフードを喰いながら|ふとんの中で)鑑賞した. せっかくだから Google Techtalks だけでなく, 友達の勧めに従い Channel9 や InfoQ のビデオも見てみた. Channel9 の良いところは, 最初から iPod で再生できる mp4 ファイルをダウンロード用に用意してくれていること. 雑談メインのせいか, 密度の低めなものが多いけれど, MSDN には現れない開発者の声を聞けるのは楽しい.

    kennak
    kennak 2008/11/04
  • 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

    kennak
    kennak 2008/10/30