知識のポートフォリオ / 達人プログラマー
- 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/11
- メディア: 単行本
- 購入: 42人 クリック: 1,099回
- この商品を含むブログ (350件) を見る
1章5節より。
プログラマーの知識の学習方法には、金融工学のポートフォリオの理論を応用できる。
- 定期的に投資を行う。継続的に学習を続け、新しい知識を取り入れる。
- 多角化。特定の技術だけでなく、幅広く学ぶ。そうすることで、変化への対応力がつく。
- リスク管理。分散投資のように、ハイリスク・ハイリターン(エッジだが、廃れるかもしれない技術)、ローリスク・ローリターン(普遍的だが、誰もが知っている技術)の両方の知識に、適切なバランスで取り組む。
- 安く買い、高く売る。今後伸びそうな技術を、先取りして学んでおく。目利きが難しい。
- 見直しと再配分。学んでいる技術を見直し、業界の変化に対応する。
具体的な行動
- 毎年少なくとも一つの言語を学習する。
- 毎四半期ごとに技術書を読む。
- 技術書以外の書籍を読む。
- 講習を受講する。
- ローカル・ユーザ・グループに参加する。
- 異なった環境に慣れ親しんでみる。(makeとemacs -> IDE など)
- 最先端にとどまり続ける。(情報収集の話)
- インターネットを使う。
XSのデバッガ, Binary Hacks
XSをうまくデバッグする方法ってないのかな。perlのレイヤーはperlのデバッガでできるんだけど、cのコードのを呼び出す部分以降は当然追えない。普段はperlのデバッガを使い、cのレイヤーに差しかかったら自動的にgdbを起動する、みたいなことができればいんだけど。
とりあえず今は、cのコードで直接printfする原始的printfデバッグと、動作を見たい関数にピンポイントでバックトレースを表示するコードを差し込んでいます。バックトレースはこちらを参考にしました。
普通のやつらの下を行け: C でバックトレース表示 - bkブログ
すごい参考になります。まだあんまり理解してないんですが、stdlib.h, execinfo.h, signal.hをインクルードして以下の3行を追加すればそれっぽく動きます。あとでちゃんと読んでおこう。
void *trace[128]; int n = backtrace(trace, sizeof(trace) / sizeof(trace[0])); backtrace_symbols_fd(trace, n, 1);
こんな感じで表示されます。
0 libxapian-1.1.1.dylib 0x010857bf _ZN11FlintCursorC1EP10FlintTable + 45903 1 libxapian-1.1.1.dylib 0x01033b0d _ZN6Xapian8revisionEv + 6685 2 libxapian-1.1.1.dylib 0x0107bc08 _ZN11FlintCursorC1EP10FlintTable + 6040 3 libxapian-1.1.1.dylib 0x0100788b _ZN6Xapian16WritableDatabase12setmetadataERKSsS2 + 1099 4 libxapian-1.1.1.dylib 0x0100308c _ZN6Xapian8DatabaseD2Ev + 60 5 libxapian-1.1.1.dylib 0x010030e5 _ZN6Xapian16WritableDatabaseD0Ev + 37 6 Xapian.bundle 0x0050186b _Z43XS_SearchXapianWritableDatabase_DESTROYP11interpreterP2cv + 747 7 libperl.dylib 0x001c784d Perl_pp_entersub + 925 8 libperl.dylib 0x0014a98b Perl_call_sv + 1883 9 libperl.dylib 0x001cdaf4 Perl_sv_clear + 132 10 libperl.dylib 0x001ce6ee Perl_sv_free + 126 11 libperl.dylib 0x001f998f Perl_leave_scope + 3263 12 libperl.dylib 0x001be902 Perl_pp_unstack + 82 13 libperl.dylib 0x001be2a9 Perl_runops_standard + 25 14 libperl.dylib 0x0014b200 perl_run + 768 15 perl 0x0000204e _mh_execute_header + 4174 16 perl 0x00001ee6 _mh_execute_header + 3814
話はそれますが、「普通のやつらの下を行け」って、すんごいかっこいいフレーズですね。今回の話も面白かったし、あと普通に役に立ちそうだし、バイナリハックス買おうかな…
Binary Hacks ―ハッカー秘伝のテクニック100選
<li><span class="hatena-asin-detail-label">作者:</span> <a href="http://d.hatena.ne.jp/keyword/%B9%E2%CE%D3%C5%AF" class="keyword">高林哲</a>,<a href="http://d.hatena.ne.jp/keyword/%B1%AD%BB%F4%CA%B8%C9%D2" class="keyword">鵜飼文敏</a>,<a href="http://d.hatena.ne.jp/keyword/%BA%B4%C6%A3%CD%B4%B2%F0" class="keyword">佐藤祐介</a>,<a href="http://d.hatena.ne.jp/keyword/%C9%CD%C3%CF%BF%B5%B0%EC%CF%BA" class="keyword">浜地慎一郎</a>,<a href="http://d.hatena.ne.jp/keyword/%BC%F3%C6%A3%B0%EC%B9%AC" class="keyword">首藤一幸</a></li>
<li><span class="hatena-asin-detail-label">出版社/メーカー:</span> <a href="http://d.hatena.ne.jp/keyword/%A5%AA%A5%E9%A5%A4%A5%EA%A1%BC%A1%A6%A5%B8%A5%E3%A5%D1%A5%F3" class="keyword">オライリー・ジャパン</a></li>
<li><span class="hatena-asin-detail-label">発売日:</span> 2006/11/14</li>
<li><span class="hatena-asin-detail-label">メディア:</span> 単行本(ソフトカバー)</li>
<li><span class="hatena-asin-detail-label">購入</span>: 23人 <span class="hatena-asin-detail-label">クリック</span>: 383回</li>
<li><a href="http://d.hatena.ne.jp/asin/4873112885" target="_blank">この商品を含むブログ (221件) を見る</a></li>
</ul>
ちなみに元ネタはPaul Grahamのエッセイです。確かハッカーと画家にもこのエッセイは入っていて、僕はそっちで読みました。こちらも当然面白いです。