タグ

codereadingに関するymorimoのブックマーク (5)

  • FirefoxのsetTimeoutの実装 - bits and bytes

    Firefoxのソースコードを追っているうちに、たまたま1年遅れで IT戦記 - JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念 の裏側がどうなっているかがわかったので、その話を。 タイマーの管理方法 そもそもjavascriptからsetTimeoutを呼ぶと、どういう仕組みで指定した時間後に渡した関数が呼び出されるようになっているのでしょう。Linuxであればsleepのように一定時間後にawakeするという処理は、タイマーリストによって管理されています。カーネルの中にN jiffies(LinuxのOS内時間の単位はjiffyと呼ぶそうです)経過後に実行することリストがあって、カーネルが4msごとに毎回タイマーリストをチェックしてやることがあったときにはそれを実行しています。 FirefoxもLinuxと同じようにタイマーリストみたいな

  • ユメのチカラ: ソースコードの読み方

    ソフトウェア工学の標準的なカリキュラムにソースコードの読み方というのがあるのかないのか知らないが、プログラマとして最も重要な資質の一つにコードの読解力というのがある。 ついでに言えば、大学や専門学校であまり教えられているとはいえないけど、実践では常に必要とされているものとして、テストの方法論、デバッグの方法論、性能向上の方法論、メモリなど各種資源の削減方法論などなどがある。国際化、移植性なども重要な単元であるがソフトウェア工学の中で教授されていると言う話はあまり聞かない。コードのハック一般についてどこかで議論されているのだろうか。経団連あたりで議論しているのだろうか? 閑話休題。 ソースコードの読み方ということで、最近では「コード・リーディング」というそのものずばりの教科書も出ているので状況は好転しつつある。コードの読み方はオープンソースの時代になり、間違いなく広く情報を共有できるようにな

  • メモを書き込みながらコードリーディングする方法 - (ひ)メモ

    調べたいことがあってApacheやらlighttpdやらkeepalivedやらのソースコードを読むときはGNU GLOBALを使ってたんですが、常々、メモが書き込めたらいいのになーと思ってました。 フローのメモ 関数の動作、影響のメモ マクロのメモ とかとか その場では覚えてられるんですが、最近は性能劣化のため日をまたぐと脳内バッファがフラッシュされるようになってきたので、howmでメモったり紙に印刷して手書きでメモったりしてたんですが、なんかどうもいまいち。 GLOBALのページに直接付箋はれるといいのになぁと思ってちょっと探したところ、InternoteというステキなFirefoxのextensionがありました。 こんな感じです: みんなでメモをシェアするのには向きませんが、個人的なメモをとるのにはよさげです。

    メモを書き込みながらコードリーディングする方法 - (ひ)メモ
    ymorimo
    ymorimo 2007/07/24
    GNU GLOBALがきになる
  • Part1 オープンソース/C言語に学ぶ「ソースコードの読み方」:ITpro

    「Code Reading―オープンソースから学ぶソフトウェア開発技法」(毎日コミュニケーションズ発行,写真1)というがあります。私はこのの監訳者ですから,やや自画自賛になってしまいますが,ソースコードの読み方を主題にしたはほかにはあまりありません。技法からツール,データ構造,アーキテクチャ,さらには実際にコードを読んで利用する実例まで紹介している網羅的で良いだと思います。 このの「はじめに」で「達人プログラマー」として知られるDave Thomas氏は以下のように書いています。 他人の作品を読まなかった偉大な作家,他人の筆づかいを研究しなかった偉大な画家,同僚の肩越しに技を盗まなかった腕のよい外科医,副操縦席で実地の経験を積まなかった767機長――果たして,そんな人たちが当にいるのでしょうか? たしかにその通りです。ソフトウエア以外の領域では修行することとはすなわち,他の人の

    Part1 オープンソース/C言語に学ぶ「ソースコードの読み方」:ITpro
  • codeblogとcode reading — ありえるえりあ

    自己紹介 アリエルネットワーク株式会社 http://www.ariel-networks.com http://dev.ariel-networks.com [ありえるえりあ] 2001年4月創業 創業メンバー 色々ありましたが、創業から5年経過 製品ラインナップ AirOne ProjectA: P2Pプロジェクト管理ソフト マルスケ(Multi Scheduler): 無料P2Pスケジュール管理ソフト ν: エンタープライズ向けポータル(予定) Lotus NotesのUnixクライアントのコード 1996年ごろLotus NotesのUnixクライアントの開発の手伝いをしました。 Mirageというライブラリを利用 商用ライブラリ(ソースごとLotusが取得) Motif(X Window System)をラップしてMS-Windows APIをエミュレーション 大部分のMS-Wi

  • 1