原則匿名で公開・個人情報は送られません。必要に応じ御署名/非公開希望をお書き添え下さい。
_ 掲示板:YaPW 旧掲示板 SMIL Boston日本語訳(頓座)
Gtk+-DirectFBと格闘するためにXFree86 on LinuxFramebufferと格闘がようやく一段落ついてgdbでデバッグ開始な今日このごろ。Gtk+やらGdkやらPangoやらFreeTypeやら層があれこれ重なり過ぎてて一体どこに問題があるのかもさっぱりわからん状況から、果たしてこれで抜け出せるのか。
mail.hoge.puni.netは手元のローカル用DNSを参照するようにする、という解決法ではダメなのでしょうか? というか、ローカルネットではmail.hoge.puni.netのMXとして192.168.Y.Zが引けるべきな気もしたり。
会社の同期――というか比較的若手の集まりにて呑み。そんなに呑んではいないが、やはり酔っ払いは酔っ払い。都営新宿線の駅までは酔っ払い運転を敢行し、そこで自転車を畳んで帰る。都営地下鉄は(運賃高いせいで)空いているのでこういう無茶もできる。
こういう(15Km程度の通勤+場合に応じて輪行)使い方をするならBD-1以外の選択肢はごくごく少ない。
篠崎駅からの道も鼻歌混じりで酔っ払い運転。鼻歌は別に酔っ払ってなくても普段から歌うが。車なんぞ走っちゃいない歩道を、いつもの半分ぐらいの速度でゆっくりと。それでも実用車は抜いてしまう。
昼休みにあれこれ購入。
会社に戻って、突然思いついてyapwからリスト回りのコードを日記スクリプトに移植。というか、暇を見つけて一気に統合しちゃうのがいいかもしれないとか思ったり。
もちろんこんなことを考えるのは仕事が煮詰まり加減でやる気もないからにほかならない。
_trans2jp.orgとかいうドメインを取って、何も言わず一個てけとーなWikiCloneを置いておくのはアリだろうか。とかいうことを昔から何度も考えているような気もするが。以下至極簡単な思案。
_同様のネタとして、各種ミラーリング総合情報&DNS Aレコード貸しサイトmirrors.jpというアイデアもある。近頃アレな方面での需要も高くなってきたという話しもあって、こっちの方が企画としては面白いか。
午前中は昔やってて引き継いだ仕事に口出し。私の失敗の尻拭い(--;としてWebアプリのスクラップ&ビルドをして頂いているのだけど、そいつの作業もいよいよ佳境、そろそろ移行のことも考えんとねーという話に首突っ込んだら流れでセキュリティ話に。
こうやって話をするとセキュリティというのは広まっていない概念なのだなぁ、と思う。情報の流れを見立て、流れる情報の重要度を考え、経路に必要な安全度を見極める――というのは情報システムにおけるセキュリティ設計の基本なのだけども、この程度でも感心される。いくつかの事項と思考さえ身につければ、簡単なのだけれど。
挑発されたからには挑戦は受けるのが正しい態度なので、RFC1034とRFC1035。あるいはRFC2168なども面白そうか。とりあえずてけとーに私訳でも作りながら読むとしよう。挑戦をわざわざ誤解しているような気がするのは意図的なのでツッコミ不可。
あれこれ試してみた結果としては、トータルバランスでmicrowindowsかなぁ、という雰囲気に。
ということでmicrowindowsの日本語化パッチをよくよく見てみるのだが、汚い。
_microwindowsは内部コードとしてUTF16を使っているようなのだが、日本語パッチには内部コードを尊重している気配が見当たらない。たとえば中国語対応コードにはUTF16 to GB2033な関数が実装されてるようだが、日本語パッチは見事にeuc-jp決め打ちで、そりゃあ本体にcommitされずパッチ扱いになっているわけだと思う。
一瞬本気で直そうかと考えるが、スケジュールが許してくれるかどうか。技術とか知識の問題もあるしなー。
往人が(性的にも)ロクデナシな場合、他のシナリオにおけるセックスの意味が変質してしまうような気も。ロクデナシがロクデナシでなくなるための儀式、という側面もあると思いますし。
個人でレーザープリンタ。大学時代には廃棄処分でうっちゃられていたものを盗、もとい有効活用していたものですが。
さておき。私所有しておりますBrother HL-1240がばっちりそんな感じのプリンタです。今買うなら後継機のHL-1440になるでしょうが。
同価格帯のレーザープリンタと違い、給紙がトレイからなのでなんも気にせず紙を突っ込んでおけばいいのも楽チン。買って1年ぐらいですが、故障は良くない紙を使ったときの紙詰まりぐらいかしらん。元を取ったかと言われると微妙ですが、まあ役には立っているかなぁ、と。
ちなみに上位機種のHL-1650/1670Nが欲しいと思ってたりもしますが、それほど使うでもなし、流石に手が出ないでいるところ。
ということでCFちんのお見舞いで仙台へ。
詳しくは後日ということで、本日はごくごく簡単に。
あまり酒を呑む方ではないけれど、偶にはそういう気分もある。土産で買った燻肉と、冷蔵庫に入れっぱなしだったバーボン、それから水と氷。ストレートに近いロック。呷ると、喉が微妙に焼ける。チェイサーで火照りを鎮め、それからまた、喉を焼く。呂律も、指も、頭も痴れる。余計なことを口走ったり考えたり。百薬の長とは良く言ったもので、毒を飲み、毒にかぶれて、毒を吐き。それで結局毒が抜けるなら、それでよいとも思えてくる。
あまり酒を呑む方ではないけれど、偶にはそういう気分もある。
MiniGUIの日本語表示の失敗、凄く単純なミス(フォントパスの設定間違えた)に起因するものでした。しょんぼり。っていうか、strace(*1)で調べて即終了、という有り様。システムプログラミングの基本技のひとつなのに(--;
(*1) Linuxのシステムコール追跡コマンド
こっそり入っているhina-MLが動いたのに触発されて、何故だかhuginnのアプローチの話。
ということで、huginnではこのアプローチを取るために、Last Not Modified Detect(最終未更新確認時刻)をデータとして保持している。将来的に、huginn間通信のプロトコルが確立されれば、自動的に更新推定時刻をずんずん狭めてゆき、より確からしい時刻を全体に波及させる、という目論見が一応設計時には考えられていた。
そのご現行版は破棄される予定となりMISXなるものを考えはじめたわけだがこれまた当然のようにモチベーションが低下して見事に停止している。ところが最近仕事が忙しくなり始めたところに前述したような刺激が加わったので再びアクティブになるかもしれない。
_要するにあれだ、NIU用にローカルアンテナは必要か? という話。「既に確立してるもん使えよ」というもっともらしい意見は敢えて無視(ぉ
さて、相変らずのように思考をすっ飛ばすならば、我らはかなり離散的にしか時間というものを把握できないと言うことに思い至る。
我々はなにかが起こそうとするとき、起こるとき、起こったとき、その時刻というものを気にかける。計時していなくても、だ。たとえば、「瞬間」という言葉それ自体が、我々が時間を離散的にみなしていることの証拠なのではないか。
そしてある程度以上に高等な地球上有機生命体にとって、瞬間という概念は切り離せるものであるまい。それらは誕生という時点をもち、死亡という時点を持ってしまう。連綿と、生も死もなく、ただあり続けるような、そのようなものでなければ、時間を連続として思いつづけることはできない。そして、一度瞬間を、離散を認識してしまえば、もはや世界は離散でしかありえない。
migemo風味化tcsh。なかなかやりすぎなモノだが、こういうのは好きだ。他のあれこれにも移植されないかな。
仕事。MiniGUIの日本語フォントを作る。
MiniGUIのソースコードを読んだりした結果、実にいいかげんなスクリプトを書く。
_!/usr/bin/perl
my($width,$height,$filename) @ARGV;
open(FONT,"$filename");
while(<FONT>){$font .= $_;}
close(FONT);
$decoded = unpack("B*",$font);
$decoded =~ tr/01/ @/;
$ptr = 0;
while($ptr < length($decoded)){
$row = 0;
while($row < $height){
print substr($decoded,$ptr,$width)."\n";
$ptr += $width;
$row++;
}
print "-" x $width . "\n";
}
で、こいつでMiniGUI本体で提供されている日本語フォントを処理。要するにフォントファイルが単純なビットマップの連続だとあて込んで、ダンプしてみたわけ。で、見事正解。名前からしてそんな感じ(Raw Bitmap Font)だしな。
_次。とりあえずBDF(Bitmap Distribution Format)のファイル形式資料とかを探してる。で、MGL2のフォント形式仕様を読んでみたところ、こいつの漢字フォント部がそのまま流用できそうだ。ということは、BDF->MGL2->MiniGUI(RBF)とやればとりあえずビットマップフォント問題は解決。
MGLから tail -c 193536 k12x12.fnt > jp12.bin
という死ぬほどいいかげんなやり方でフォントをパチってMiniGUIでテスト。んが、きちんと表示されない。
そこで昨日のスクリプトを若干改造:
#!/usr/bin/perl
my($width,$height,$no,$filename) = @ARGV;
open(FONT,"$filename");
while(<FONT>){
$font .= $_;
}
close(FONT);
$decoded = unpack("B*",$font);
$length = length($decoded);
$bwidth = int( ($width + 7) / 8 ) * 8;
$decoded =~ tr/01/ @/;
$ptr = 0;
$ptr = $bwidth * $height * $no;
print "$ptr\n";
while($row < $height){
print substr($decoded,$ptr,$width)."\n";
$ptr += $bwidth;
$row++;
}
こいつを使って安易に作ったフォントとMiniGUI付属の16ドットフォントとを比較。フォントマップが微妙にずれていることを確認する。
_ということでよくよくMGLフォントの資料を読んでみると、フォントマップの計算が微妙にアレなことを示す記述を発見。MiniGUIの方がISO2022に忠実な(手を抜いていない)実装をしている、と見るべきなのか。
どっちにしろ大した差ではないので、コンバータを書いてみる。
#!/usr/bin/perl
if(scalar(@ARGV) != 3){
print STDERR "usage: $0 width height mglfontfile\n";
exit;
}
my($width,$height,$filename) = @ARGV;
my($HEADERoffset,$ANKoffset,$ANKwidth,$font,$result);
open(FONT,"$filename");
while(<FONT>){$font .= $_;}
close(FONT);
$HEADERoffset = 32;
$ANKbwidth = int( ( $width/2 + 7 ) / 8 );
$ANKoffset = $ANKbwidth * $height * 256;
$font = substr($font,$HEADERoffset + $ANKoffset);
$MBfontsize = int( ( $width + 7 ) / 8 ) * $height;
$font = substr($font,$MBfontsize);
while($font){
$result .= substr($font,0,$MBfontsize * 94);
$font = substr($font, $MBfontsize * 96);
}
print $result;
再び比較。合わない。
_仕方ないので会社蔵書のインターネット時代の文字コードを引っ張り出し、それぞれのフォントとにらめっこに突入。その結果判明したこと。
_前詰めってなんだゴルァ。日本人ナメてんのか。ただでさえ(検閲削除)な日本語の扱いを更にややこしくしやがって。っていうかISO2022をなんだと思ってやがる。
_ということで気力超絶減衰中。なまじハードルの低さが見えているため捨てられない状況なのが悔しい。
そして文字コード表とにらめっこした挙げ句出来上がったmgl to rbfのフォントコンバータ。すんげーベタベタ。
#!/usr/bin/perl
if(scalar(@ARGV) != 3){
print STDERR "usage: $0 width height mglfontfile\n";
exit;
}
my($width,$height,$filename) = @ARGV;
my($HEADERoffset,$ANKoffset,$ANKwidth,$font,$iso,$rbf);
open(FONT,"$filename");
while(<FONT>){$font .= $_;}
close(FONT);
$HEADERoffset = 32;
$ANKbwidth = int( ( $width/2 + 7 ) / 8 );
$ANKoffset = $ANKbwidth * $height * 256;
$font = substr($font,$HEADERoffset + $ANKoffset);
$MBfontsize = int( ( $width + 7 ) / 8 ) * $height;
$font = substr($font,$MBfontsize);
while($font){
$iso .= substr($font,0,$MBfontsize * 94);
$font = substr($font, $MBfontsize * 96);
}
$font = $iso;
@map =
( 108,11,
8, 8,
7,11,
15, 7,
8, 4,
1,15,
10, 7,
26, 6,
26, 4,
83,11,
86, 8,
24, 8,
24,38,
33,15,
33,13,
32,720,
31 * 94 + 51,94 - 51,
4418
);
while(@map){
my($fetch) = shift(@map);
$rbf .= substr($font,0,$MBfontsize * $fetch);
$font = substr($font, $MBfontsize * $fetch);
my($skip) = shift(@map);
$font = substr($font, $MBfontsize * $skip);
}
print $rbf;
巷で話題の巡回頻度話。
一分に一回という需要があるならそうすればいい、というアイデアを考えたことはあります。
確認をしにいって更新を検知したら次の確認までの間隔を短くし、逆に更新されていないのを検知したら次の確認までの間隔を長くする。そんときの変化量を上手く変動させれば、「そのサイトの動向に適した更新間隔」というものを生成できるかもしれない、という話。ニュースサイト相手に使えば自ずと短い間隔になるし、滅多更新されないサイト相手なら、それこそ日に一回ぐらいの間隔になる、と。
なんか真面目に考え出すと自律制御系の設計することになるような気がするので、面度になってやってません。誰か制御畑の凄いひとが興味持ったら挑んでください。人工知能のひとでもいいです。正直、どのぐらい大変なのか私には見積もれないくらいに凄そう。
確認間隔自動調節型更新検知系の話。
世の中口に出してみるもんで、早速の統計処理ありがとうございます>jagarlさん。
_えー、そもそも手放しに信用できるよい統計でないのですが、それでも敢えてこの統計を信用するなら、日記系サイトでは短くとも数分、サイトによっては数時間間隔で十分ということが言えそうな感じです。
_ただ、問題のエージェントのことを考えれば、むしろ一つのサイトの長期の中での動向のデータの方が重要かも。いろんなところの更新周期パターンを並べて、どーゆー制御アルゴリズムにするのかあたりをつけるために、ってそんなん作る人がやることですが。
_えーと、エージェントの動きを具体的に考えてみますと、
動向の変化への再適応をはかるあたりの、パラメータ取りが難しそう。ちょっと間違えると過剰反応して「この厨ロボが!」と罵倒された挙げ句denyされたり、逆に全然反応しなかったりして「使えねぇ」呼ばわりされたりして。
_俺様的にはMISXの上で自動分散実行とかできると素晴らしいなぁ、という妄想したりもするのですが、しかし究極には天気予報のようなものなので、技術が進むとあれです、「最近欝っぽいから更新頻度が上がるわね」とか「彼女さんができたからしばらくsage進行じゃね」とか、たかがアンテナごときにそこまで見切られるようになるかもしれません。「お前の明日が見える!」とかアンテナが言い出すの。
Progressiveは3日目西れ57a、ありていにいうと緩衝壁です。新刊かけることの3ぷらすCM初売りかける1。私の文章はどこにも入っていませんが(--; えー、あれだ、俺様的にはなんか場違いな寄生をさせるんじゃないかと思います。毎度のごとく。
晒しもの番号になっているProgressive9は順調に停滞中。前半分っちうことで、秋ごろには出したいのだけど。
昨夜はティアことLivitiaと組んで砂漠にて。魔法士二人とは、存外強いがアンバランスだ。意外な敵に苦戦したり、逆にひょっこり楽勝だったり。
今日はイズルードダンジョンB1に戻って。適当にヒドラにやられつつ、回復時間は内職なんかしたりして。
現在Mage:31/24。レベルの割に低めのIntは修正合わせて50寸前。そろそろ成長方針の分岐点。目指すところは
工数的には無駄であっても、漢字の書き取りには意味がある。再発明は世の中的には無駄かもしれないが自らの知識のためには有用な「読み方」たりえるわけで。
ということでRFC2616の邦訳とか読みながら、HTTP/1.1のリクエストモジュールfor Perlをわざわざ自作開始。HTTPの範囲で、どこまでメタデータを扱えるのか、という検討も兼ねて。
秋山版鉄コミュニュケイションは、「アニメのノベライズ」よりかは「漫画のノベライズ」に近い気がしたりしなかったり。いや、アニメ版はまともに見てないねんけどな。ともすると原作(漫画)以上にやりたかったことを描けてしまっているあたりが、正しいノベライズというか秋山のやりすぎというか。あるいはたくま朋正が弱(検閲削除)(*1)。
_それを説教と思うのはあなたが「私は説教されても仕方がない」と思っているからである。あなたも私も、自身が写らない世界を見ることなどできない。
現実と虚構に大した差などない。単に我等がそれらに向かう態度で峻別されるに過ぎない。そして、現実に斜に向かうことも、虚構に正面から向かうあうこともできる。
結果起こることはただ我らの変化であり、変化するならそれは現実だろうと虚構だろうと構わないのだ。ただ我らは、現実をより強く確からしいものだと思う、とそれだけのことだ。
虚構であれ見詰めずに居れぬのと、虚構をそうと割りきるのと、どちらが一体上等なのか。
(*1)辛辣なことを言うのは、せめて辛辣なことぐらい言いたいから、とは言っておく。
一応午前なうちに置きだして、模様替え。クローゼットの中を整理し、スチール机をクローゼットに押し込み、机のあったスペースにはキッチンで物置化していたウッドポールで組んだハイテーブルをとりあえず配置。キッチンでは同居人部屋への風通しを変えてみるべく食器棚を動かす。
スチール机の袖引き出しのおかげで、足元がかなり詰まっていたのが解消。PC関係の取りまわしが楽になる。
一通り作業して掃除機をかけたところで新宿のハンズへ。ジャンボファングル用棚板450mm×1200mmを注文。配送は次の土曜日。正式にはこれを机代わりに据え、ハイテーブルは(組み直して)サイドテーブル兼PC&ゲーム機ラックにする予定。
アレのチケットの値段。転売屋なことをするなら元は取れる価格なのでは、とか思ったり。
_もちろん流通状況が悪けりゃ隙間で商売ができるのは貨幣経済の鉄則であるからして、その意味では正しい行動なのだけれども、そもそもが隙間商売でそれをやるってのはいくらなんでも歪んでねぇかと、昨今の為替・株式市場を見るような思いでありますですよ、まったく。
渋滞する道の左端をすり抜けながら、目を上げる遠景に目をやると、汚れた灰色に煙る街並。視線を近くに寄せたらば、夏の鮮やかな緑色。二つを見比べ、右側の車の列に目をやって。目を戻せば、あまりに無惨な遠景だった。
ささやかな抵抗などとうそぶくつもりは毛頭ないが、それでもこの行為には意味があるとのかもしれない。そう意気込んで、ペダルを踏み込む。
日記システムの中で<pre>〜</pre>内のエスケープを考慮してなかったことに気付いたので、最近の分についてはチェックして手で修正。変換スクリプトの方にも対応コードを突っ込む。
過去分については後ほど対応の予定。
それでも信じてはじめてみること。壁を見ているのはいつも自分。自分がなんになりたいのか、はじめてみてから見えてくること。小狡さを突き抜けるちっぽけな勇気は、なにかを変える最初の鼓動。
失敗しても、泥にまみれても。せめてそれだけは信じること。信じ続けるのが怖くても、構わずそれを信じること。それができる強さをも、信じること。
ねんれーとかせーへきとかおとなのじじょーとか、そういうものぜんぶとっぱらったところに、ほんとうのキモチがあったりするのです。どこにどんなかたちであるかは知らないけど、そうやって見つけたキモチを、信じること。それって、とってもすごい力。\
少なくともLGPLなコードそのものをいじる以上は公開するのが筋だべやー、ということで直の上司様には許可をそれとなく取った上で。
OpenPOBoxを移植するのか、はたまた似て非なるなにかを作るのかで思案中。その前にコードの構造把握とか。お前場当たり的にこれ作ったろー。切り離すのに一苦労かも。とりあえずローマ字かな変換を実装すべし。
日がな一日あれこれ思案しながらC言語の呼び出し図作成のために呼び出され一覧生成コマンドとか書いたその後に、ソースコードを関数ごとにバラしてWikiに突っ込めば欲しいものが手に入るということに気付く罠。
そして帰り道でWiki + バージョン管理 + TestUnitという阿呆なIDE(統合開発環境)のアイデアを思いついてみた。ページを作るにはTestを書いてCommitはTestに通らないと行えなくて閲覧はWiki的に行うの。フロントエンドをブラウザじゃなくJavaなアプリケーションにしたりしたらすんごい面白いものができたりしないかしら? ものすごくeXtremeなProgrammingができるんじゃないかしら?
記録更新。48:14。
とまあ、今日はそんな日だったりも。特別なことではないけれど。
MGLフォントの事情。フォントマップについては、むしろ96/94の伸長を疑問に思っていたですよ。こんな迂遠なことせんと、大人しく直列させりゃええやん、と。まあ、歴史的事情があるなら納得。
私の都合だけ優先なら、MiniGUIの日本語周辺コード書き直し&日本語用BDF to RBF(MiniGUI形式)コンバータ作成ってのが正解かなぁ。ライセンスに関しては適宜考慮するにしても。
昨日から今日にかけての成果。
_まずはlscfunc.sh。なんのことはないctagsのラッパ。実行すると[path line func_name]という形式のリストを吐く。
#!/bin/bash
for i in $*; do
ctags -x $i | grep function | awk '{print $4 " " $3 " " $1;}' | sort -n -k2
done
_gidcall.pl。lscfunc.shの結果に含まれるシンボルについて、gidコマンドを利用して「呼出し元一覧」を作成する。要perl、idutils。
_divfunc.pl。lscfunc.shの結果を頼りに、極めていいかげんにCソースを関数単位に分割して指定したディレクトリに突っ込む。YaPwに突っ込むために作ってみた。要perl。
_ついでに手元の開発版YaPwを改造。「リンクしている一覧」を表示するマクロを追加。で、分割されたソースの海を渡りながら、diaで関数の呼び出し図を書き中。ロクにソースも読まんと、ひたすら呼出し図だけ書いているのだが、それでもなんとなく想像がついてくる。図にすることとそれを自らやることは、理解のためには重要である。