Skip to main content

ログ取得ツール

cpplib

cpplibという気になる単語を目にすることがよくある。gccを-vつきで実行していると、cpp(プリプロセッサ)が呼び出されずにcc1(コンパイラ)が直接実行されている。バージョン情報にはCPPが(cpplib)という注釈つきで出てくるのである。 なにぃー! cppの機能をライブラリで使えるというのか!! しかしgccパッケージを見てもlibcpp.aやcpplib.hは入っていない。くそう、おいしいところを独占しやがって!! ということで、gccのソースを展開してcpplibだけを抜き出そうとしたが、これがなかなかどうして、けっこう大変なようだ。まだ、道半ば。 やはり素人はpopen()を使えということなのかなぁ。 現状、↓のようなプログラムのコンパイルまではどうにか通るようにしたものの、リンクでいろいろunresolved symbolが出まくる。どの.oとどの.oをライブラリにぶち込んだら許してくれるのだろうか…面倒だがいろんな作業だけでどうにかなるかもしれない。 #include <stdio.h> #include “cpplib2.h” int main(int argc, char *argv) { cpp_reader *rd; rd=cpp_create_reader(CLK_GNUC89); cpp_preprocess_file(rd, “cpplib.h”, stdout); return 0; } cppをmain()抜きに拡張するか、gccのcpplibを抜粋するか、果たしてどちらを選ぶのが賢かったのだろうか。 (追記) 2004-03-08 14:58 よく考えたら、m4とかmakeやbashやzshやsedやawkもライブラリにしてほしいかも。ついでに言えば、Pythonもか。PerlやRubyはlibperl.soやlibruby.soがある。使ったことはないがさぞかし便利に違いない。libphp.soはApache HTTPD用のモジュールなんだろうな、たぶん。 そうか、もしlibphp.so(Apache HTTPDのモジュール)が普通にプログラムから使えるんだったらmod_python.soを使えばいいのか。

簀

布団です巻きにされた女性が死亡(asahi.com)。 「す巻き」というのは「簀巻」のことである。スノコのス。スノコの漢字は「簀の子」であるからして。「簀」というのは編み込まれたもののことだ。現代の板のスノコは編み込まれてないようにも見えるけど、あれもある種、編み込まれているのだ。 だから、恐らく凶器は竹か藁かなんかで編み込まれた状態の布団(?)なのだろう。あと、辞書を引くと、簀巻は簀で巻き込んだ上で、水の中に投げ込むという私刑のことでもあるらしい。この記事の事件ではさすがに水の中には投げ込んではいないようだ。 「す巻き」のような表現ではそこまで伝わらないから、やはり新聞記事も漢字+読み仮名のスタイルにしてほしいところだ。

GLORY DAYS (175R)

いいねぇ。言うなれば、「正直な」感じ(?)。 仕事中に聞くには向いてないかも。このスピードで自分にコーディングやデバッグができるとは思えないな。駄文を書くくらいならどうにかなるけど。 (追記) 2004-03-08 12:14 ところで希望という名のこの街って、福岡のことかなぁ。

買ってない奴に聞くとこうなる?

BCN総研調査、デジカメのブランドイメージトップは「キヤノン」、DVD/HDレコーダーは「ソニー」(computernews.com)。

デジタルカメラでは「キヤノン」、DVD/ハードディスクレコーダーでは「ソニー」、インクジェットプリンタでは「エプソン」が、購入したいメーカーのトップとなった。
(中略)
「キヤノン」のデジタルカメラを購入したい理由としては、「人気・ブランド」、「使いやすさ」、「現在(過去)使用している」をあげる回答者が多く
(中略)
「ソニー」のDVD/ハードディスクレコーダーを購入したい理由では、「人気・ブランド」、「使いやすさ」をあげる回答者が多かったほか、「PSXが欲しいから」との回答も1割強を占めた。

そうかそうか、やはり「現在使用している」が理由でSonyを選ぶ奴は(略) 略してばっかりだな。

うーむ

NewsClipでページからタイトルが取れない(他に取るものがなくてTITLEタグを取ってしまう)のが続く。Yahoo!はだけで攻めてくるからマッチさせにくいんだよなぁ。 あとで直そう。もっと高級なのにしようかなと、少し思った。ここ(ibm.com)までいく必要はないけど。

来週の新製品情報

Rio KarmaのクレイドルがEthernet対応だというのはご存知の通りだが、これって何にでも応用できるから、みんなやってほしいなぁと思った。携帯電話の充電機みたいなクレイドルや、デジカメ、CLIE、その他クレイドルってたくさんあるけど、全部ネットワークにつながって、ブラウザやネットワーク上のアプリから設定したり、Power over Ethernet対応で電源コンセントいらずとか、いろいろ応用がきくんじゃないかと思う。無線LANもいいけど。 そういう世の中になって欲しいものだ。 ちなみにRio Karmaはクレイドルではなくて本体がEthernet対応で、クレイドルはコネクタをつけるためのもののようだ。本体にMACアドレスがついているから、たぶんそう。本体にEthernetコネクタをつけてそこで全部やるっていうのもありだったのかな、とも思う。

来週からついにJリーグがはじまります。

J1では「例の」浦和と去年の完全覇者横浜M、あとは言わずと知れた磐田と鹿島、それとFC東京、監督が残留した市原、あとはJリーグ史上最大のサポーター勢がいるらしい新加入の新潟が軸になりそうだ。しかし軸が7チームは多すぎ(笑)。 予想としては、優勝は横浜M、2位が磐田、3位が浦和ってとこかな。どうしても浦和>磐田とは思えないので、仮に浦和が上位に来るとすると必然的にこういう予想になってしまう。 J2では何度も3位を経験した我らが川崎、それに仙台と京都、あとは甲府あたりが昇格争いの中心になるはず。今年は3位でも入替戦になる。しかも今年の川崎はかなり突出して強いっぽい。親会社の業績不振が唯一の心配だ。シーズン中に潰れなきゃいいけど。 なんにしても、川崎がJ2で1位になって、横浜MがJ1で1位になって、このへんのチームがJリーグを制覇するはずだ。あー川崎市に住んでよかった。

意外と近い

うち、実は地図で見ると会社まで3kmちょいだな。歩いても40分ってとこか。いま徒歩+電車で約20分だから、あと20分早く家を出れば、歩きでも大丈夫なんだなー。 マラソンのラップだと5kmが15〜16分だから、おまえが真のランナーなら、9分で着くだろう…ってことか。

regparm

gccにregparmというのがあるらしい。普通にやるとIA32での関数呼び出しは全部の引数がスタック渡しになる。その昔x86アセンブラでプログラムを書いた人なら、AXとかDXに引数を置いて戻り値をAXにして…なんてことをやっていたことを思い出すだろうが、それをgccがやってくれるのだ。オプション-mregparm=nで、nがレジスタ渡しをする引数の数ということになる。 無論、*.o毎に-mregparm=nの指定が異なる場合は引数が正しく渡ることはない。 まあでも小さな関数を呼び出すだけの場合は-mregparm=nなんていう、ある種の危険なことをしなくても、単にinline指定するか、そうでなくても-O9などをつけておけば勝手にインライン展開されてスタックどころかcallすら呼ばなかったりする。あと、Alphaとか、レジスタの本数が多いアーキテクチャの場合は最初からレジスタ渡しになってたはずだ(よく覚えていないけどそうに違いない)。 Linux Kernel 2.6.4-rc2-bk1をコンパイルしようとして、オプションにあったので気づいた。もしかしたら、ポピュラーになるのかもしれない。ヘッダのプロトタイプ宣言でregparmの指定を書ければ、ライブラリで使っても互換性をとれるよなぁ。

URLとローカルに持ってきたファイルからページのタイトルを得るモジュール

タイトル通りのものをGetTitle.pyとして公開してみます。このサイトで使っているままのもので、NewsClipではこのファイルそのものをimportしてタイトル文字列を割り出しています。まだ不完全であることは間違いなく、恐らくメンテナンスされてゆくことでしょう。 引数がファイルオブジェクトではなくてファイル名というところあたりはちょっと良くないよなーなどとは思っております。 あと、毎日新聞を完璧にサポートすることがかなり難しい。元データはNewsMLだと思うんだけど、HTMLにするときのXSLT(なの?)がいろいろあるらしくて、HTMLから記事のタイトルを引っ張ってくるパターンがうまく作れない。悩ましい。