2004-2011年に書いていたブログのアーカイブです。
- 机の上のもののワイヤレス化 - Microsoft Arc Keyboard の導入
- iPodは何を変えたのか? 人が問題にぶち当たったときには、どうするか?
- ソフトウエアの肥大化について、の続き
- ソフトウェアの肥大化について
- ある程度の年齢を迎えたプログラマが抱える悩み
- Unicode の雪だるま
- 設定ファイルの整理 - Emacs 編
- 設定ファイルの整理 - zsh 編
- パターン、Wiki、XP ~時を超えた創造の原則
- マッキントッシュ物語 - 僕らを変えたコンピュータ
- GNU diff の地味だけど便利な機能
- C++ の string と vector の reserve() の挙動
- 暗号化 - プライバシーを救った反乱者たち
- Best Software Writing
- プログラミングの力を生み出す本
- split の研究
- LINUXシステムプログラミング
- シンプル=バッドシグナル説
- yak shaving で人生の問題の80%が説明できる問題
- Python の unicodedata モジュール
- strchr() ではまった話
- JavaScript でいろいろエスケープ・アンエスケープ
- JavaScript で MIME ヘッダをデコード
- Unicode の文字列をエスケープする JavaScript
- Unicode の文字列をソースコードに埋め込む方法
- Binary Hacks の韓国語版
- C++の設計と進化
- C++と Pthreads でミニマルなHTTPサーバを書く
- 誤った判定 - 学校では教えてくれないバッドノウハウ英語 #13
- 外に追い出す - 学校では教えてくれないバッドノウハウ英語 #12
- Dependency Injection の基本的なアイディア
- 信じ込ませる - 学校では教えてくれないバッドノウハウ英語 #11
- 年を取ると環境設定がどうでもよくなる現象
- 重箱の隅をつつく - 学校では教えてくれないバッドノウハウ英語 #10
- 特別扱いする - 学校では教えてくれないバッドノウハウ英語 #9
- 浮動小数点演算ではまった話
- 数字に関する短縮記法 - 学校では教えてくれないバッドノウハウ英語 #8
- スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl
- デバッグに使えるサスペンス用語 - 学校では教えてくれないバッドノウハウ英語 #7
- JavaScript でソートアルゴリズムを可視化
- JavaScript 第3版
- 実用上OK - 学校では教えてくれないバッドノウハウ英語 #6
- 問題を再現させる - 学校では教えてくれないバッドノウハウ英語 #5
- RAII と setjmp/longjmp
- JavaScript でトップページへのリンクを追加する
- 動くようにする - 学校では教えてくれないバッドノウハウ英語 #4
- Binary 2.0カンファレンス 2006 発表資料とレポート
- もし必要なら - 学校では教えてくれないバッドノウハウ英語 #3
- Binary 2.0カンファレンス2006
- やっとくよ - 学校では教えてくれないバッドノウハウ英語 #2
- こうすればうまくいくよ - 学校では教えてくれないバッドノウハウ英語 #1
- バイナリアン度チェックの仕組み
- バイナリアン度チェック
- システム上のユーザのアイドル時間を調べる
- Binary Hacks のここがすごい
- Binary Hacks の発売日決定
- 文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++
- 自転車置場の議論
- ファイル記述子をUnixドメインソケット経由で渡す
- 再入不可能な関数を C で実装する
- 詳解UNIXプログラミング
- gdb tips
- gdb の gcore コマンドを使う
- memccpy() で文字列をコピーする
- プログラミング言語C++第3版
- デバッガの理論と実装
- glibc の fopen() で 'm' オプションを使う
- 実行時のスタックの消費量を調べる
- checkstack.pl で関数のスタック消費量を調べる
- 子プロセスに LD_PRELOAD を継承させない
- Cのポインタを整数に変換する
- Doug Lea の malloc (dlmalloc)
- Write Great Code
- setitimer システムコールを使って簡単なプロファイラを作る
- PIE (位置独立実行形式) を作成する
- ライブラリの外に公開するシンボルを制限する
- Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか
- リンクされているライブラリによってプログラムの動作を変える
- ltrace で共有ライブラリの関数呼び出しをトレースする
- Cのプログラムの中でブレークポイントを設定する
- Ruby, Pythonで並列に逆引きを行う
- Jockey で Linux のプログラムの実行を記録・再生する
- Joel on Software
- Epeg で JPEG ファイルのサムネイルを高速に生成する
- C++ のシンボルをデマングルする
- 月のオリジン
- Linux と「うるう秒」
- 配列へのポインタと配列へのリファレンス
- main() の前に関数を呼ぶ
- STL のバインダとリファレンスへのリファレンス問題
- statifier で動的リンクの実行ファイルを擬似的に静的リンクにする
- prelink の効果を測定する
- Binary 2.0カンファレンス 2005 発表資料とレポート
- こんなプログラムはいやだ: INT_MIN / -1
- こんなプログラムはいやだ: 負の剰余
- こんなプログラムはいやだ: float++
- Boostの正規表現クラスを使う
- 読解いやな法則: 何もやらないよりはだらだらやった方がまし
- Binary 2.0カンファレンス2005
- 普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す
- 普通のやつらの下を行け: objcopy で実行ファイルにデータを埋め込む
- STL の string のリファレンスカウント
- The Catcher in the g++
- 普通のやつらの下を行け: BFDでデバッグ情報の取得
- 読解いやな法則: 現実逃避の方が生産性が高い
- ピーターの法則
- バッドノウハウの国際化
- 普通のやつらの下を行け: Cで動的コード生成・実行
- 普通のやつらの下を行け: C でバックトレース表示
- 普通のやつらの下を行け: assert_caller()
- GCC の最適化で printf が puts になる場合
- 実践いやな法則: にわかな奴、一蹴される
- 読解いやな法則: 横着をするための労力を惜しんではいけない
- リンクと同名シンボル: weak シンボル編
- リンクと同名のシンボル: C++の場合
- リンクと同名のシンボル
- コンピュータ関連の読み物 5冊: ハッカーズ、他
- D言語のGCCフロントエンド
- 読解いやな法則: 身近な人の偉大さは半減する
- 読解いやな法則: にわかな奴ほど語りたがる
- C++ のテンプレートでダックタイピング
- C の qsort と STL の sort の速度比較
- 便乗5冊企画: スーパーエンジニアへの道、他
- UTF-8 のオクテット数
- SpiderMonkey で JavaScript のインタラクティブシェル
- C++ の関数ポインタ
- C++ のキャストと一時オブジェクト
- 配列操作の比較表: 他の言語の場合
- 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++
- JavaScript Unicode Charts
- UTF-8 への移行計画
- JavaScript とクロージャ
- 日本語テキストをテーブルで表示する
- (((foo))) in C++
- Emacs のブックマークを自動保存
- GeoIP
- 続: zsh のプロンプトでカレントディレクトリを短縮表示
- zsh のプロンプトでカレントディレクトリを短縮表示
- JavaScript の for (i in foo)
- ポール・グラハム論法
- JavaScript でインクリメンタル 検索 (grepではない版)
- i-mode の絵文字でバッドノウハウを語ろう
- 作れる、作る、作った
- JavaScript でインクリメンタル grep 検索
- JavaScript で複数箇所のキーワードをハイライト
- Ruby: 一回だけ実行されるブロック
- Ruby: 日本語の文字列を UTF-8 に変換する
- 最新の Emacs ではビルトイン関数の定義を参照できる