Not only is the Internet dead, it's starting to smell really bad.:2009年02月中旬

2009/02/10(Tue)

昨日

__dergister_frame_info()、別に--eh-frame-hdrありなし混ぜても問題なさげ。
どうせunload時に.finiセクション実行するだけだしな。

長いことkinput2 + sj3しか使ったことないので、今時のinputmethodとか
お前はどこのワケワカメじゃ(by 石立鉄男)なんだけど、 ウィキペにはkinput2の記事ないのか、ひどい。

ところでscim-uimとuim-scimって同時に使うとシックス以下略

某所のFedora鯖を10に更新、yumエラーでまくりんぐで困る、SuSEのZyppの方がマシげ。
それとbootstrap-pkgsrcがbuildコケまくり、pkg_installが新しくなったからだなー。
ARG_MAXとかissetugid()とかopenssl周りをいろいろゴニョゴニョして更新。

そういやbluewall linuxって消えたのね、まぁあれってminimal Debian + pkgsrcでしかなくて

をどう共存させるか中途半端(というか何もやってない)なので、わざわざ使う意味もなかったけど。

久しぶりに Jane's Addictionなぞ聴いている、やっぱこの頃のDave Navarroいい海苔してるな。
レッチリに加入したやつは重過ぎて辟易したけど。
リマスタ紙ジャケキボンヌ、あっとSHM-CD抜きで。

2009/02/11(Wed)

昨日

sudoさんちの bobといえば Dylan言語は回文だったんだよ(ナンダッテー
元ネタは これの2. Tombstone Bluesだけど、そっくりだなw
映像のほうからすっと元ネタは こっちの1. Subterranean Homesick Bluesか。

Kodak E100Gの10本入り期限切迫品が50% OFFだったので買ってきた、撮り切れるか心配。

HMVでJane's Addictionの最近出たリマスタありの ベスト買ってきた。

[NetBSD] pkgsrc/wip/scim^n

scim-bridgeも落ちまくりらしいので野良build

Program received signal SIGSEGV, Segmentation fault.
0xbbb56a4c in scim::Module::unload (this=0x62696c08) at scim_module.cpp:258
258         if (!m_impl->handle)
(gdb) bt
#0  0xbbb56a4c in scim::Module::unload (this=0x62696c08) at scim_module.cpp:258
#1  0xbbb57b7a in ~Module (this=0x62696c08) at scim_module.cpp:132
#2  0x0804fc7e in ScimBridgeAgentImpl::finalize_scim (this=0xbb7040b0)
    at /usr/pkg/include/scim-1.0/scim_config_module.h:68
#3  0x0804fcec in ScimBridgeAgentImpl::finalize (this=0xbb7040b0)
    at scim-bridge-agent.cpp:415
#4  0x0805001f in ~ScimBridgeAgentImpl (this=0xbb7040b0)
    at scim-bridge-agent.cpp:203
#5  0x080525d6 in ScimBridgeAgent::alloc () at scim-bridge-agent.cpp:186
#6  0x0804ef24 in main (argc=1, argv=0xbfbfe89c)
    at scim-bridge-agent-application.cpp:110
(gdb)

これConfigModuleが初期化されてないからっすな。

--- agent/scim-bridge-agent.cpp.orig    2009-01-18 11:58:59.000000000 +0900
+++ agent/scim-bridge-agent.cpp 2009-02-12 12:10:16.000000000 +0900
@@ -195,6 +195,7 @@
 running (true), noexit_enabled (false), standalone_enabled (false), client_app_count (0),
 accept_listener (NULL), interruption_listener (NULL), panel_listener (NULL), signal_listener (NULL), displ
ay (NULL)
 {
+scim_config_module = 0;
 }



このpatchあててもまだダメか。

$ gtk-demo                                                                     
Cannot bind the socket: Address already in use
Failed to allocate the agent. Exitting...
Failed to establish the connection: Connection refused
The messenger is now down
The messenger is now down
An IOException occurred at scim_bridge_client_imcontext_set_cursor_location ()
The messenger is now down
The messenger is now down
Memory fault (core dumped)
(gdb) bt
#0  0xbafc58a2 in ?? ()
#1  0xbb3328fd in __cxa_finalize () from /usr/lib/libc.so.12
#2  0xbb3327ee in exit () from /usr/lib/libc.so.12
#3  0x08051b3c in ___start ()
#4  0x08051a97 in _start ()
(gdb)

なんだかなー。

/tmp/のsocket file消して再起動したら今度はカナ変換時にselect(2)で固まった。
もういやこのinputmethod。

[NetBSD] sj3 + pkgsrc

iwataさんとこ、実は私も以前pkgsrc化しようとして *1sj3-dictの扱いで困って以下略

できればconfigureに--with-installed-sj3mkdic or --with-installed-sj3client的なものを
追加していただけると、pkgsrc的に幸せだったかと(自分でconfigure.in書き直そうとして挫折ちう)。
いっそnbmake用のMakefile書くほうが早い(笑)

*1:ThinkPad 240がWAPBLで死んだのでサルベージがめんどくさくて放置中…

2009/02/12(Thu)

[NetBSD] Desktop NetBSD

baseにed(1) ex/vi(1)以外のシンプルなエディタを追加しようぜちゅう話をtech-userlevelでしとるけど
debian標準?のnanoだけは勘弁してほしいな、あれUCS4 hardwired wchar_tのとってもアレな実装なので
大幅に手を入れなきゃならん(こっちみんなAA略)、まぁ順当にFreeBSD ee(1)なんだろうけど。
nvi-1.81もなーstateful encodingなlocaleの場合の動作直さんとな。

そいや bsdinstallerって 中文表示できてんのね、これコンソールはどうしてるんだべさ?

我らがsysinst(8)もwcurses化されてるはずなのでlibhack版ではないlocale関数を使えば
日本語くらい表示できるはずなんだけどやったことないな、そいや。
まぁどのみちi18n wsconsをどうするかがじゅーよーなので以下略

libhackはやっつけの名の通り、C localeのcodesetをISO-8859-1してしまうというやり方で
これは言語{de,es,fr,pl}ならいいけど、将来的にmultibyte localeなんかにも対応する場合どうすっかだよな。

あくまでフロッピーの枚数を最小限にするという方法であれば、UTF-8オンリーの
ちんまいlocale subsystemを書くとゆーやり方もinstallerに限定してならありだろね。

それか各言語用のフロッピを用意する、つまり今のi18nを放棄してl10n化するとか。
ほんとはCitrusはせっかくdynamic loadingなんだから、installerのmenuで言語選択すると
encoding module/locale databaseの入ったinstall diskを要求すればi18nでもいけるのだけど
installerのsysinst(8)はcrunchgen(1)なバイナリなのでdlopen(3)使えないからアウト。

それかフロッピー止めてfull dynamically linked installer、まぁこれはないな。

2009/02/13(Fri)

今日

アザラシは手も足も出ない=静観しますというメッセージだけど、 ラッコは石=武器を使うという
米国のメッセージだとノビーと彼の友人のCIAエージェントから聞いたお>>テポ丼。

gccには__attribute__((unused))があるのにlintにはこれに相当する機能ってないのだよな。
ここで/*LINTED*/を使ってしまうと他のチェックまでommitされてしまうので#ifdef __lint__するしかないか。
それと__attribute__((nonnull(...))をcdefs.hでwrapしてないのがアレだ。
これC99の__VA_ARGS__が必要になるからかな。

2009/02/14(Sat)

今日

今日は暖かかかったっすね、壁に貼られたClashのポスター剥がす仕事も終わりですな。
ウォンバット・ロック

予算委員会、なんという8 Mile wwww このdis合戦には腹筋が崩壊せざるを得ない。
エンディングには是非 これ流してホスイ、TV観てるとアホになる。

水曜に作ったkernelだけどWAPBLおかしくなってんな、logから復帰したファイル壊れまくりだ…

ネコ探してますの張り紙が回収?されてたけど見つかったんかいな。
ネコの名前がうちの子を拾ってくれた人と同じという偶然もあって気になって仕方がない。

もういっちょ 政界MCバトル、もう駄目だwwwwこの国wwwww

2009/02/15(Sun)

[NetBSD] pkgsrc/wip/scim-bridge

先に起動しておいたscim-bridgeが、gtk-demoを起動してim-scim-bridge.soをloadして直ぐくらいに /tmpにcore吐いて死んでんのか。

Program received signal SIGSEGV, Segmentation fault.
0x0806df5b in scim::Slot3<bool, scim::IMEngineInstanceBase*, int, int>::Slot3 ()
(gdb) bt
#0  0x0806df5b in scim::Slot3<bool, scim::IMEngineInstanceBase*, int, int>::Slot3 ()
#1  0x00000000 in ?? ()
(gdb) 

そんでselect(2)のtimeoutがアレなのかしらんが帰ってこないちゅう感じ。

2009/02/16(Mon)

今日

またしても風邪引いて一回休み、どっかの大臣みたいにフラフラになりつつ
薬飲んでどっかの党首みたいに昼寝しようとしたらいきなりふともももが攣る悲劇。
痛さに悶絶してたらパニック発作まで起こして酷い目にあった。

ピ~キュ~って、ちょっと円谷プロ何やってんすかwww
発禁のプリQは こっちから見れるけどこれはひどいwww

ガリQでPale Saintsの Mrs Dlphin思い出した、テラナツカシス。

2009/02/17(Tue)

今日

消費者行政担当相 「酒と風邪薬の全面販売禁止を」以下略

大昔、風邪だろうが前日明け方近くまで無駄な会議だろうが、休めないマジキチなソルジャー系営業職やってた頃
風邪薬飲んでるのに、上官命令で高速道路を長距離運転する破目になり(ちゅうか諏訪IC - 中津川IC往復が日常茶飯事)
途中意識が朦朧としてきて危うく側壁にヒットする寸前までいった経験があるので、マジで副作用には注意した方がいい。

さすがに自分だけ死ぬのはまだしも他人巻き込むのが嫌なので、程なく辞表叩きつけて *1以下略
コの業界は月500時間労働超なデスマだろーが意識失うのは机の上なので人投しにならんだけまだマシ。

しかし辞任しなきゃ予算審議拒否とか野党なんなの、GDPマイナス2桁でも党利党略優先っすか。
まあこのまま自分の首絞めてけば 将来が不安で貯蓄 → 将来を悲観して散財 にマインドが変化して消費が上向くかもね!
俺もキルビルみたいなライダースーツ *2と刀買ってヒャッハーな時代に備えるかな。

*1:まぁそれだけじゃないんだけど。
*2:最近若干太ってきたので脂肪遊戯とかゆーな

PHP mb_check_encoding

kbkさんとこ、 s/0x39/0x3A/はまぁ単純なミスでしょう、私もときどき やらかします/(^o^)\

んでラウンドトリップ、そもそも文字コード変換なんて邪悪な処理をする香具師は地獄の火の中に投げ込むもので以下略

「そのencodingに対して正しいmultibyte列か否か」はCESレベルでの範囲チェックだけで済ませるような実装の方が多いかと。
昔は今みたいに厳密にShift_JISとCP932とかeucJPとCP51932といった厳密な区別をしなかったので
相互運用性を考えてできる限り不正なバイト列と判断してはならない、という考えが一般的だったわけでして。

wchar_t APIを例にとると、以前もちょっと 書いたけど、eucJP localeにおいては
0xADA1~0xADFCは符号化手法(CES)としては有効範囲ですが、文字集合(CCS)としては実際のところ割当がありません。
# いちおCP51932の場合だとNEC特殊文字が割り振られていますが以下略
このケースにおいてmbrtowc(3)がどう判定するかというのは、実装によって異なります。

ちゅうかんじ。

Citrus的には

あたりを理由として今の実装になってたような記憶、他にもあったような気がするけど思い出せない…
#そいやSolarisは0xADA1もwcwidth(3)で2を返すのだけど、これcharmapどうなってんだろ。

ぶっちゃけPOSIXではmbrtowc(3)の実装について、Encoding Dependent *1(それぞれのencodingに対して最適化したものを用意)するよか
Encoding Independent(charmap中で定義されるmultibyte列からTrie木を構築して最長マッチ検索)するような実装を念頭において
仕様決めてるくさいので、未定義領域はEILSEQにすべきかもしれまへんな。

OSに問い合わせる方法、まぁちょっといやらしい方法ですがiconv(3)の変換元と変換先を同じ文字コードにして *2
1byteつづ食わせつつ変換が成功する or EILSEQになるかの結果を調べるとかくらいしか無いですね。
将来的にmulti-localeが標準規格になればmbrtowc_l(3)なんかも使えるかと思いますが
Austin Group(=POSIX)でwithdrawnされたままだし、C1Xあたりに入るかは期待薄かと。

*1:NetBSD界隈ではMD/MI(マシン依存=Machine Dependent/マシン非依存=Machine Independent)という用語を多用するのだけど
Citrusで↑にならって文字コード依存/非依存ををED/EIとか略してしまうと、スラドのおっき不全治療広告と紛らわしいので他になんかいい略語ないですかね。

*2:変換元/先が同じ場合、最適化の為に内部でmemcpy(3)相当の処理にしてしまえーとかやってる実装も
世の中には存在しそうだけど、それは不正なmultibyte列があったらEILSEQを返すという仕様に違反してますな。

2009/02/18(Wed)

今日

景気梃入れにはもう手遅れだし、給付金2兆円分使ってJRのホームドア整備した方がいいんじゃね?

2009/02/19(Thu)

[VMware] VMware Server2

obacheさんとこ、VMware Server2のApache Tomcatはあれ管理画面のUIにServlet使ってるだけなので
止めてしまってESXi用のVMware Infastructure Clientを使う方が楽ですよ。
Server2インストール後に追加で

%%インストール先%%\VMware\VMware Server\hostd\docroot\client\VMware-viclient.exe

を起動してインストールすればスタートメニューに出てきます、まぁこっちもかなり出来悪いですが。
ホストOSがWindows Vistaでもない限り *1Server 1.0.x使う方が幸せかと。

他にもVMwareのクライアントって実はあれVNC + SSLなので( ソース)、*.vmxをエディタで開いて

RemoteDisplay.vnc.enabled = "TRUE"
RemoteDisplay.vnc.password = "********"
RemoteDisplay.vnc.port = "5900"

を追加しとくとVNC viewerからも繋げたり(2.0でもこの機能残ってるか未確認)。
ただ使う場合の注意として

ちゅー感じなので実用に耐えませんけど。

*1:Vistaだと1.0.xは仮想マシン起動時にメモリのスワップアウトと激しいディスクアクセスで10分以上操作不能になります。