Not only is the Internet dead, it's starting to smell really bad.:2008年06月上旬

2008/06/01(Sun)

週末

もう6月かよ。

横浜西口。
ケータイの電池切れてて連絡取れず1時間遅れ、ご心配お掛けいたすますた。
アルカリ単3が2本タイプの非常用充電器だとうちの機種はピクリともしないのよな。
探し回ってカメラ用のCR123Aリチウム電池使うタイプをゲッとして何とか復活。
充電池なぞこの世からなくなってしまえ、がー。

葉山。
いつもの立石公園のレストラン、遅めの昼食。

134号。
げろ混み、やっぱ城ヶ島方面行くべきだったな。

江ノ島。
お土産屋さんが軒を連ねる通りで、地元のねこと遊ぶ。
ご機嫌を損ねたようで2殴打1口撃食らってYou Lose、ごめんよ。

またねこと暮らしたいねぇ、なんて言葉が口をついて出るけど
どんなねこでも死んだ子の面影を必死に探してしまうだけだぬ。

夕食に海鮮丼うまうま、だがちと値段が高すぐる。

Minolta Leitz CL持った初老の男性とバッタリ、Hi-Matic Eな俺様、敗北。
野性動物なら腹を上に寝転がり非抵抗ポーズでんな。

2008/06/03(Tue)

[NetBSD] nvi-1.81.6 その3くらい

yamtさんから新しいnviってi18n的に大丈夫かどうかreviewを依頼されたので
先日ざーっとソース眺めて発見した怪しげな部分を報告したり。

といったとこ。

とりあえずカーソル位置が変なのを直さんとマルチバイト圏には常用は無理げなので
そっから調査しないとな、多分wcursesのせいだと思うんだけど。

2008/06/04(Wed)

VMWare Server + Win2k

いつも場所を忘れるので メモ、1.0.6出すなら対策いれといてホシス。

[NetBSD] nvi-1.81.6 その4くらい

wcursesとnviのどっちが悪いのかを確認するために
pkgsrc/devel/ncurseswを突っ込んでみるべ。
まあncursesのwide-character実装がまともなのかどうかは知らんけど。

PREFER.ncursesw=        pkgsrc
PKG_OPTIONS.nvi=        wide-curses

ちゅうかんじ。

ncurseswだとカーソル位置はおkなのでこりゃwcursesの問題だね。
しかし:set allの表示は同様にダメダメなのでこれはnviあるいは
libcあたりの問題、なんかvfwprintf(3)あたりが腐ってる希ガス。

[NetBSD] nvi-1.81.6 その5くらい

おk、:set all問題については把握した。

$ cat >test.c
#include <locale.h>
#include <stdio.h>
#include <wchar.h>
int
main(void)
{
        setlocale(LC_ALL, "");
        printf("%ls\n", L"hoge");
}
^D
$ make test
$ ./test
h

これはひどい。

2008/06/05(Thu)

昨日

Ry Cooderの紙ジャケを今更買ってくる、1st~3rdはやはり神すぐる。

いつのまにか ...in the hand of inevitable / James Taylor Quartetが
ボーナストラック付で再発されててちょっとうれしい。
しかしP-VINEってとこに泣いた、Acid Jazz is dead.
次は Bigger Pictureもおながいしまふ。
輸入盤だと"Believe (Mark Yardley Remix)"入ってないのと曲順が違うのよな。
Message from the Godfatherも廃盤らしくてオフィシャルから消えてるし。
弱小レーベルを転々とし杉だと困るな。

おかげでまたオルガン欲しい病が再発してきた。
RolandのVK-8はTonewheel Breakボタンで電源On/Offによるベンドアップダウンのエミュできるのか。
まああのダメなデザインじゃ買わないけど、D-Beamとかアホかwww
本家のXK-3cも十分ヒドイけど、デザイン的にはKORG CX-3(2代目)がいちばん無難かな。
でもどっちもVK-8のTonewheel Breakのよな機能はなさげなのだな。

げ、 Rhodes Mk7なんて出るのかー!ゴクリ…置き場所さえ確保できれば…あと価格…
知らない間にRolandはFenderから取得したRhodesの商標権手放してたのね。
まぁMK60/80とかVK-1000とかしょーもない製品しか出せなかったしにゃ。

2008/06/06(Fri)

今日

花屋、もう向日葵売ってま。

某パソコン量販店で散財。

しかしHDD 1TBが2万円もせず売ってるんだなぁ。

[NetBSD] nvi-1.81.6 たぶんその6

aymeric氏がvfprintfの%ls問題は修正してくれた模様。
これでsinglebyte圏ではにゃにも問題がなくなったってしまったので
multibyte圏ががむばるしかないということですね、わかります。

  ( ゜д゜)
_(__つ/ ̄ ̄ ̄/_ 
  \/    /

  ( ゜д゜ )
_(__つ/ ̄ ̄ ̄/_ 
  \/    /

regex(3)は kbkさんご想像のとおり、ごにょごにょしてますね。
regex/regcomp.c の findmust()というコード中

1601         for (i = g->mlen; i > 0; i--) {
1602                 while (OP(s = *scan++) != OCHAR)
1603                         continue;
1604                 assert(cp < g->must + g->mlen);
1605                 *cp++ = (RCHAR_T)OPND(s);
1606         }

という部分があるのだけども、OPND()マクロはregex2.hでは

80 typedef unsigned long sop;      /* strip operator */
81 typedef int sopno;
82 #define OPRMASK 0xf8000000
83 #define OPDMASK 0x07ffffff
84 #define OPSHIFT ((unsigned)27)
85 #define OP(n)   ((n)&OPRMASK)
86 #define OPND(n) ((n)&OPDMASK)

となってて上位bitを別目的に使ってるげ。
深入りすることなく対策するならtypedef int64_t sopするか
いっそのことRCHAR_T as UTF-32と開き直ってiconv(3)噛ますかだけど
あんま現実的でなさげな予感。

まあ早いとこ自前のregex(3)持ちましょうってことですな。
ってもその前にcollationがあるのだけども。

関係無いけど最近のNetBSDはsys/queue.hに加えてsys/gcq.hなんてあるのね。
CIRCLEQとGCQの差はmerge operationか、場合によっては便利かも。

というかvector.hとかset.hとかmap.hねぇーマダー?

2008/06/07(Sat)

今日

四十九日、man(1)の場合 sin ? hell : heaven の振分バッチ処理 *1が完了する日。
当然cat(1)からすれば-vを実装するくらい意味の無い話。

rc.conf(5)、/etc/rc.d/*の起動条件ってYES/NOだけだけど
Windows Serviceみたいに自動/手動/無効くらい欲しくなるのは俺だけかな。

そこでSolaris10のSMFですよ(嫌です)。

*1:黄泉比良坂リサーチパークだかビジネスパークで泥のように開発と保守(ry

2008/06/08(Sun)

今日

kbkさんとこ、 nvi-1.81.6のbuilt-in regexはBSD系でよく使われてる
Henry Spencer氏の実装に、MSVCのTCHARよろしくchar -> RCHAR_Tとマクロ化する
改造を加えてデフォルトだと char、--with-widecharでbuildするとwchar_t版
として動作するようにしたものですね。

Copyright 1992, 1993, 1994 Henry Spencer.  All rights reserved.

nviの作者Keith Bostic氏はBSDな人ですし、まあ手近なものを使ったのでしょう。

FreeBSD ports方面でGNU gettext祭らすい。
我らがBSDL libintlに影響のある変更じゃなければいいんだけど。

ちら見するとgettext-toolのlibgettextpo.soのmajor crunkか、関係ないな。
ちゅうか今回の祭で再コンパイルが必要になるFreeBSD portsで
本当にlibgettextpo.soをlinkしてたものってどんだけあるんだろ。

pkgsrcの場合gettext-runtimeとgettext-toolは別パケジなので
別々にrevision上げられるのよね、FreeBSD portsもそうすりゃいいのに。

そもそもlibgettextpo.soはmajor crunkする必要あったのかね、これ。
関数が追加されただけのようなんだけど、minor crunkでいいような気ガス。