2009/06/08(月)adiary のアップデート

今までは adiary をアップデートするときに、手元でダウンロードしてサーバ上にアップして展開、という方法でやってた。
これを、手元に残す意味ないならサーバ上で直接ダウンロードすればいいじゃない。と思い立ってやってみた。
% fetch http://adiary.org/download/beta/adiary-2.08-beta2.tar.gz
adiary-2.08-beta2.tar.gz                      100% of 2129 kB 1673 kBps
%
はっ、速えぇ、一瞬で終わった。さすがデータセンタの回線。自宅だと 300kBps でダウンロードして数十kBps でアップロードすることになるので全然こっちの方がいいな。
1673kBps って、13.384Mbpsか。光ってもっと速いのか...。充分すぎるぞ。でも我が家にも来週から光がやってくる事になってる。ワクワクゥ!

で、2.08β1でもβ2でも、アップローダでファイルを2個以上アップロードしようとすると文字化けが発生する。動作に実害はない。UTF-8 版で発生。EUC-JP版では起きないのだろうか。
adiary208b-mojibake.jpg

コメ欄にも上がってないようなので開発元にトラックバックしてみます。よろしくお取り計らいください。
なお、FireFox3 では手入力できるようにはなってませんでした。テキストボックスをクリックするとファイルダイアログがポップアップしてきます。

2009/05/05(火)日記を分割します

ぞまから最近の日記は解読不能だ。という意見を頂いた。
元々 UO の日記で日常もちらほら、という趣旨で主に UO の知り合い向けのものなので確かになんでもかんでもちゃんぽんにするのもなんだかなぁ、と思った。

ので、あんまりにヲタな内容を置くために http://mohi.teak.jp/blog/memorandum に新しい日記帳を作ってみた。
主に俺が俺のために記録しときたい内容なので対象読者は俺のみです。

2009/04/20(月)UO のジャーナル保存:根本的に間違ってました

<CR> が 0x0d、<LF> が 0x0a。
なので言ってることもサンプルコードも根本的に間違い。<LF><CR> っていうのが改行コードのつもりで残るので、読めるけど行頭にゴミが入る、もしくは改行されない、というファイルが出来上がる。
他にも sizeof(char) でサイズ決めたり、char で変数宣言してるけど、意図的には単純に 1Byte 単位のデータが欲しいのであって char が欲しいのではない、とか。

で、UO のジャーナルは改行が 0x0d0a000d00 となっているのを 0x0d000a00 に置き換えるのが正解。
0x0d0a00 を 0x0d000a00 に置き換えて、0x0d00 を削除するのが簡単か。
どうなったらこういう改行コードが付くんだろ。

ということを踏まえて書き直して、UTF-8 への変換を書いて遊んでた。コードは長いので略。
ググって出てくる iconv(3) のサンプルもまともなものが少ないという悲しさよ。

2009/04/19(日)続・UOのジャーナル保存

UO をネタにプログラムで遊ぶ日記になってきた。

久しぶりに C を書きたくなったので、ミソな部分+αを書いてみた。
  • シングルバイトな<LF> を取り除いて
    • 諸悪の根源を除去
  • <CR> も邪魔なので取り除いて
  • ついでに <LF> が連続する場合も取り除いちゃう
というプログラム。

後は
  • UTF-16-LE な文字コードを UTF-8 か Shift-JIS に変換
    • マルチプラットフォームで文字コード変換できるライブラリってあるんかな
  • 処理結果をファイルに保存
    • 10行くらいの追加でとりあえず OK
すれば機能は十分。GUI が付けば完璧。やらんけど。

UO のジャーナルファイルは一度のゲームで数百KB 程度になるらしいので、一度に処理するバッファのサイズは 128KB くらいがちょうどいいのかなぁ。

続きを読む

2009/04/17(金)DRM

FreeBSD 7-stable に radeonhd 向けの drm モジュールが導入された。結構前に。
  • drm をガシガシ MFC するぜ!
  • drm って何ですか?
  • Digital Rights Management だよ。
っていう 2ch ばりのやりとりが FreeBSD-stable メーリングリストで繰り広げられていたアレだ。

ports フリーズのタイミングに合わせて kernel を更新してみた。合わせる意味があるかというと、無い。更新後、/dev/dri が生えたことを確認。
我が屋のオンボードな Radeon はまだ調整が必要なため標準では drm はオフ、かつ、カーネル側の drm も 3D アクセラレーションは未対応な状態。で、xorg.conf をほげほげして X を起動すると...、ブラウザのスクロールがカクカクする。ウィンドウを移動した際の再描画が遅い、が、恐らく drm の効果なのだろう、一瞬遅れるもののウィンドウ全面が一気に描画される。当然 GLX な描画は速くならない。
と言う訳で drm は無効に戻しました。
  • Phenom 向け cpufreq はまだ MFC されてこない模様。
  • AMDチップで USB デバイスを挿したまま起動するとそのポートが死ぬ現象は今議論中。
あとはー、hal, dbus VS. X.org あたりをまた試してみるかな。