Skip to main content

ログ取得ツール

常識

「コードの借用」は違法か–開発者の認識と法律にズレ(cnet.com)。確かに、あるだろうな。

3000人以上の開発者を対象とする匿名のオンライン調査で、70%近い回答者がコードの個人的ライブラリを保存しており、それを会社から会社へと自由に持ち歩いていることが分かった。

ソフトウェアな人は、車輪の再発明はみっともないことで、再利用性の高いコードを書くことが比類なき美徳とされている。それが影響しているように思う。私も、書き捨てるような場合はできる限りone-linerとかでやるようにしている。なるべく抵抗。 共通性が高いものを新たに書くのって面倒なんだよね。特にC言語を使っているとバカにされた気がする。リスト操作とか、デバッグ用のログ系の機能とか、基本の基本まで自分で書かなきゃ、ないんだからさぁ。C++ならSTLのlistでも使えばいいけど、それでもSTLでコンパイルエラーを消すのは大変だからリストを使っているコードまるごと持っていきたいと願うところだ。 借用までいかなくても、「このライブラリどう使うんだっけ?」みたいなサンプルコードとして、昔書いた呼び出し方を見たいと思うことだってある。私は学生から就職してそのまま現在の会社にいるから、たぶんまだ問題にはならないと思うけど。 …libpcapの使い方くらいは転職しても持ってきたいな(笑)。ダメ?

大宮戦は…明日じゃないよ、明後日だよしかし

大宮戦。皆さんご存知の通り、あのトゥットが敵方で参戦。 それが、なぜか、あえて、とにかく、日曜開催。さらに狙ったかのように、時にはケンカを売るかのように、湘南新宿ラインが止まります(jreast.co.jp)。終日停止。行きも帰りも。渋谷回りの湘南新宿ガイを諦めて川崎回りの京浜東北野郎になるのがよいだろう。どうせ差は30分程度だ。新川崎から1本、という計画も×。 ところでフロンターレねたは主に、徐々に、Wikiのほうに書いていくことにします。とりあえず明後日について(wtnb-wiki)とか。そもそも予定表(wtnb-wiki)はフロンターレ専用のつもりですし。 (追記) 2004-06-06 09:55 …行くのやめました。雨がひどい。大宮公園には屋根がない。

全身で表現

ニンニク悪臭は全身から…歯磨きでは消せずとライオン(yahoo.co.jp)。そうだったのかー。そんな気はしてたんだけどね。

ニンニクを使った料理を食べた後に出る悪臭は、口内だけでなく、全身のさまざまな場所で作られることを、ライオン生物科学センターの平山知子研究員らが突き止めた。

悪臭だと思わなければよいのではないかと、あえて言いたい。

unresolved symbol __moddi3…とか

gccは除算を最適化するために、/とか%の演算を__moddi3の呼び出しに変更してしまうようだ。いや変更はしないのだが、呼び出す選択肢もあって、シンボルだけは参照するのかな。それでとにかく、除算を含むプログラムをあるコンパイル方法でコンパイルしたときには、

unresolved symbol __moddi3
unresolved symbol __divdi3
can't resolve symbol '__moddi3'
can't resolve symbol '__divdi3'

などのエラーが出る。「あるコンパイル方法」というのは単に-nostdlibつき、ということなんだけど、__moddi3とかはlibgcc.aに含まれているので、libgcc.aをリンクしないような指定である-nostdlibをつけるとダメなのだ。-nostdlibをつけないか、あるいは手動でlibgcc.aをリンクすればよい。あるいはがんばって除算を使わないようにするという選択肢もある。しかし__moddi3等を使わないようにするコンパイルオプションも欲しいところ。 他にも、libgcc.aに入っている隠し関数(? hidden属性がついたシンボル)はこんな感じで、たくさんある。 __muldi3, __negdi2, __lshrdi3, __ashldi3, __ashrdi3, __ffsdi2, __clz_tab, __cmpdi2, __ucmpdi2, __floatdidf, __floatdisf, __fixunsdfsi, __fixunssfsi, __fixunsdfdi, __fixdfdi, __fixunssfdi, __fixsfdi, __fixxfdi, __fixunsxfdi, __floatdixf, __fixunsxfsi, __clear_cache, __absvsi2, __absvdi2, __addvsi3, __addvdi3, __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2, __negvdi2, __divdi3, __moddi3, __udivdi3, __umoddi3, __udiv_w_sdiv, __udivmoddi4, __eprintf, __bb_exit_func, __bb_fork_func, __bb_init_func, __gcc_bcmp 気をつけられたい。 あ、__bb_*はbasic blockのプロファイラ用だな。こんなところにあったのか。また別の話になるけど、これはおもしろい機能で、テストカバレッジを調べるツールなんだけど、プログラムの各行を走った回数がわかるので、プロファイルにも使える。普通のgcc -pgは関数単位だけど、gcc -fprofile-arcs -ftest-coverageはbasic block単位なのだ(簡単に言えば行単位…と言うと説明が間違ってるけど)。そしてgcovで出てきた結果を解析する。 詳しくはgcovのマニュアル(info)を読んでみるとよいだろう。

ユーザインタフェース

レビュー:Fedora Core 2(linux.com)より。

右に示すスクリーンショットを見ればわかるとおり、[File Open]ダイアログ・ボックスから、ファイル名を入力する場所が消えてしまったからだ。

…あ、ほんとだ。これはヒドいなぁ。 そういう点では、GNOME 1.4(というかGTK 1.2?)のファイルダイアログは傑作だったと思う。bashと同じかそれ以上のファイル名の補完ができる。これ以上はないほど、非常に、使いやすかった。 ファイルダイアログは良くなったってGNOMEのサイトには書いてあって、bookmarkできるとか、いろいろ特徴が増えたと思っていたのだが…あのセンスはどこへ行ったのだろうか。 残念だ。