タグ

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

  • Alcor の Abbreviation Scoring - steps to phantasien(2009-09-12)

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

  • 正規表現はお好き? - steps to phantasien

    積んであった Beautiful Code を読んでみる. 第一章はカーニハンによる正規表現の話. 数十行のコードで簡単な正規表現を実装してみせる. パターン文字列を内部表現に変換せずマッチに使うぜ, コードも短い, ビューティホー! ...という主張なのだが, それはほんとにビューティホーなのか. UNIX 人の感覚にはついていけない. それにしても彼らは正規表現が好きだ. いつものその話ばかりしている. artu はいうまでもなく プログラミング作法 にも正規表現が出てきた. まったくこのマンネリめ. そう斜に構えつつ読み直してみると, 案外ラディカルな話も載っているのに気付く. 9.7 "オンザフライコンパイル" より: Ken Thompson はまさにこの方法によって 1967 年に IBM7094 上に正規表現を実装した. 彼のバージョンは, 正規表現に含まれる様々な処理を小さ

  • Mercurial で手軽な共有レポジトリをつくろう steps to phantasien t(2007-05-19)

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

  • プロファイラのしくみ steps to phantasien t(2007-08-23)

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

  • 最近読んだ本 - Backnumbers: Steps to Phantasien

    だるい. 英辞郎によれば, 夏ばてを英語で "suffering from the summer heat" というらしい. 冷房負けは "suffering from the summer cool" かな ... 何もする気が起きない. 消去法で日記を書くことに. The Art Of Unix Programming を読んだ. (原書は オンライン版 もある.) 主題については良くかけており, 得るものも多かった. プログラミングというとクラスや関数がどうといったコードの話を想像するけれど, このの重点はもう少し外側. プロセス同士の協調の仕方 (パイプとか) やファイルフォーマットの設計, コマインドライン・インターフェイスの流儀などについて詳しく説明している. Unix はプロセス同士の協調を好む. だからその繋ぎ方には気を使うんだろうね. Unix の歴史など文化的な話題に

  • つくってわか(った気にな)る STM - steps to phantasien t(2007-06-23)

    最近みた TechTalks の中で STM (Software Transactional Memory) の話が面白かった. 紹介しようと思ったものの, まず STM の認知度はどれほどなのだろうか. 日語でぐぐると CPU 会社の宣伝くらいしか見当たらない. 友達にたずねたら "そんなので騒いでいるのは君と Haskell ユーザくらいだよ" とのたまう. 私の脳内では STM 派とメッセージ通信派が激烈な争いを繰り広げていることになっているけれど, 気のせいなのかもしれない... 念のため TechTalks を眺める前に少し STM の話を書いてみる. そのあと話の肴に作ってみた STM のトイ実装 (500行くらい) を紹介したい. Software Transactional Memory の話 ではさっそく STM のことを簡単に説明してみよう. 専門家による一次資料を読

  • 1975 年のプログラミング - steps to phantasien t(2007-06-17)

    少し前に Varnish という逆プロキシサーバが紹介されていた: 【レポート】高速化プログラミングの参照実装としても活用される「Varnish」 (2) vanishが採用している実装技術 : エンタープライズ : マイコミジャーナル. 気になったので資料を眺めてみる. プロジェクトの Wiki にある記事 Notes from the Architect, あとは 講演のスライド(PDF) などが概略には良さそうだ. 中味は仮想記憶やキャッシュ, SMP を有効活用して高速化しましょうという話. 仮想記憶の活用方法は二つ紹介されている. 一つ目は, "サイズに合わせて realloc() するかわりに最初からでかいサイズを malloc() しろ" というもの. 確保してもアクセスしなければ物理メモリにはコミットされないから, 拡張のたびにコピーの必要な realloc() より この

  • パラサイト・プログラミング steps to phantasien t(2007-04-16)

    2007-04-16 近況 最近の私はもっぱらサンプルからのコピペが仕事. コピペといっても Ctrl+C, Ctrl+V より少しだけインテリジェントだけれど, ライブラリが強力な上に文書の出来が良いから, 多くはサンプルの改変で済んでしまう. 面白くはないが生産性は高い. コピペ・ハイウェイの渋滞にぶつかり, サンプルのないパターンに出会うこともある. そういう時は自分でコードを書く. でもだいたい動かない. Getting Started や入門書はざっと読んである. それでもわからない. 文書化されていない不具合や common pitfall だったりする. (間抜けな間違いもあるけれど...) こんなとき Google はあまり役にたたない. 使っているライブラリやフレームワークがよほどメジャーでない限り, 解決方法はなかなかみつらない. せいぜい自分と同じところで悩んでいる人

    syo-yu
    syo-yu 2007/05/07
    _ パラサイト・プログラミング
  • いまどきのデスクトップ処理系 steps to phantasien t(2006-09-22)

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

  • steps to phantasien t(2006-09-01)

    2006-09-01 近況 いまの余暇コードは Makefile のかわりに SCons を使っている. Scons は python 製の make alternative. (概要は Radium Software に記事があった.) "#include" によるヘッダファイルの依存関係を勝手に解決してくれるのがいい. 私は何度やっても Makefile の dep ターゲットをうまく書けない. 泣きたくなる. gcc -MD で作った .dep ファイルが どのタイミングで Makefile に incldue されるのか, 実のところ未だによくわかっていない. 少し前にやった仕事でも, 試行錯誤の末になんとなく動いた Makefile をおそるおそる使っていた. (マニュアルをぱくったんだっけ...でも sed なんて使わなかったような...) 一体何がどの順序で評価されるのかさっ

  • 1