2008年12月24日水曜日

wubiでNTFSをみるときはまること

wubiでインストールすると、/hostにCドライブがマウントされる.
起動時にマウントするのでinitrdにlocale等のデータがないと変換できないので、日本語のファイル名などは無視されてしまう(化けることもない)

標準で入れたままなら問題ないんだろうけど、イメージの容量に余裕がないので要らなそうなものを
削りまくったらいつの間にか見えなくなっていた.

lupin-supportを入れた後に、

update-initramfs -u -k "kernel version"

すればok.



keisen-minor-modeを作ってみた

keisen.elはたまに使うけど、いつでもキーにバインドしておきたい機能という訳ではない.
なので、そのモードにした時だけ罫線用キーバインドがアクティブになるようなマイナーモードを作った.

多分似たものがあると思うんだけど、マイナーモードを作る練習になると思ったので作ってみた.
easy-mmodeはほんとにeasyでした.

(autoload 'keisen-up-move "keisen" nil t)
(autoload 'keisen-down-move "keisen" nil t)
(autoload 'keisen-left-move "keisen" nil t)
(autoload 'keisen-right-move "keisen" nil t)

(easy-mmode-define-minor-mode keisen-minor-mode
                  "keisen"
                  nil
                  " KEISEN"
                  '(([C-right] . keisen-right-move)
                ([C-left] . keisen-left-move)
                ([C-up] . keisen-up-move)
                ([C-down] . keisen-down-move))
                  )
(provide 'keisen-minor)



wubi用のイメージとcoLinuxのイメージを共有する

結果から書くと出来てない.実パーティションならcoLinux側で/dev/xxxとかを指定するので出来るみたいだけど.

coLinux側を100Mぐらいの最低限boot可能なイメージにして、ほとんどをwubi用のイメージを使うようにした.

警告なしにboot出来るようにするには

  • /bin
  • /etc
  • /lib
  • /sbin
  • /var
あたりが必要.他はwubiのイメージマウントして、さらにbindでマウントすればいい.
/varは/var/run, /var/lockを上からマウントしてしまうとメッセージが出てしまうので、それ以外はbindしてかぶせてしまって構わなそう.



2008年12月23日火曜日

emacs関係の覚書

auto-complete.elは思った以上に便利だった.
0.1.0にしてpythom-modeでは、pysmellを使った補完を使うようにしてみた.


flyspell-modeとpredicative-modeを使ってみた.確かに英文を書くときにはいいかも.
~/.aspell.confに

lang en_US
を書かないとaspellが動かなくてハマる.


フォント設定
VL Gothic-9でしばらく固定する. これだとASCII文字と日本語の文字の幅が1:2でうまく揃う.
M+1VM+IPAG circleはいつの間にかスペースとかタブの幅が日本語文字の幅になってしまうようになった。
それなりに使う方法はあったけど微妙に揃わないのでやめた.



ubuntuのTeX環境を構築した

昔(10年前ぐらい?)はYaTeXを使っていたが、なんとなくAUCTeXが使ってみたかったので、今回はAUCTeXを使うことにした.AUCTeXはパッケージで入れたが、tex-jp.elがバグっているらしいので修正版を持ってくる. reftexはemacs-snapshot-commonに入っているのをそのまま使う.

自分で環境を維持するのは面倒なのと、かぶってしまうファイルの容量がもったいないので、UTF-8を直接処理するのを諦め、標準のptexパッケージを使った.

今回はこの環境で課題を仕上げて提出した.
周りに聞くと、学校の環境(windows+秀丸)で頑張った人が多いようだ.
学校の秀丸はコンパイルとかプレビューはマクロで簡単に呼び出せるけど、
編集とか入力のサポートはなかった気がする(そういうマクロがあるのは知ってるけど、説明はなかった).


他にやったことは、PDFのしおりが化ける問題の対応ぐらい.
どのパッケージニ入っているのか分からなかったので、

  • atbegshi.sty
  • infwarerr.sty
を適当に入れる. dtxを持ってきて

tex atbegshi.dtx; tex infwarerr.dtx

したあと出来たstyをパスが通ったところに置いただけ.

あと、いろんなところで見かけるが、最近のdvipdfmxからEUC-UCS2がなくなっているので適当に調達する.
Win32用のdvipdfm-32.tar.gzからファイルを取り出した。

/etc/texmf/texmf.d/80DVIPDFMx.cnfをみると
CMAPINPUTS = .;/usr/share/fonts/cmap//
となっていたので、/usr/share/fonts/cmapの直下に置いた.



wubiでubuntu入れた

結構前になってしまったが、大学の課題でTeXを使うものがあったので、環境を改善するためにインストールしてみたときのメモ.
もともとはcoLinuxで頑張っていたんだけど、コンパイルはともかくプレビューとかがちょっと重くてイライラしたので.
(まあPDFにしてWindowsのPDFviewerで見ればよかったんだが)

ということで、coLinuxとイメージが共有できそうだし、なんかおもしろそうだったので、wubiを使ってubuntuを入れてみた.
今回インストールしたのは8.10(intrepid)で、9.4(jaunty)にすぐ切り替えた。もともとcoLinuxで使ってたのがintrepidだったので。

wubiでのインストール自体はとっても簡単なのだが、唯一ハマったのはwubiでイメージをダウンロードすると、すごく時間がかかるのと、64bit対応環境だと64bit版のイメージを持ってきてしまうこと.
時間がかかるのはともかく、32bitのイメージをダウンロードさせる方法が分からなかったので、
自分で32bit版のイメージを持ってきてそれを使った(Wubi FAQのCan I use an existing ISO/CD instead of letting Wubi download a new one?)
今回はcoLinux側からもアクセスしたいので、32bitにしておきたかった(64bit環境自体はgentooがあるし).

入れたマシンはLJ700/HベースのLaVieGだがデバイスは一通り使えるようだ.取り合えず問題なく使っているのは、

  • USB
  • SDカード
  • PCカード
  • 無線LAN
  • Bluetooth
  • バッテリ(ちゃんと見える)
  • HDD(SATAモード)
  • GMA950(compizも大丈夫)
  • 音源(snd_intel_hda, ALC262. そのままだと音が小さかったり変なので、ドライバをいじった)
試してないもの
  • 有線LAN
  • 外部ディスプレイ
  • シリアルポート
  • モデム
  • TPM
マシン本体ではないが、emobileのD01NXがうまく動かないので困っている.
カーネルを古くすれば動くみたいだけど、DRM/DRI関連とかでそれは避けたいので、取り合えずドライバ(vmb-1.10)をいじってる.
2.6.27ではもう少しな感じで, 2.6.28では今まで使えた関数がつかえなくなるので、さらに書き換えが必要になっている.


無線LANもちょっと問題があって、自宅では802.11aで特に問題なかったが、少し前の型のルーターを使っているところでは802.11aで繋がらなかった. 802.11b/gでは繋がりはするもののDHCPでアドレスが取得できない(これはよく調べなかった).
違いはJ52かW52ぐらいしか思いつかなかったので、ルーターのファームを更新してW52にしたら無事つながった.
後になって知ったが、J52でも使えたようだ.


キーボードはcapsをctrlにするのに、gnomeで設定(xkb_optionsにctrl:nocapsを指定)したのでは、emacsなどで困るのでxmodmapで対応する(参考).
ホームディレクトリに.Xmodmapというファイル名で作っておくと、gnomeの誰かが発見して毎回ロードするか聞いてくれた.


とりあえず、NetBeansとMathematicaがcoLinux上の環境よりとても快適になったので、やった価値はあったかな.
dvi/pdfのプレビューも快適になったし、emacsも軽くなった. あとは日本語入力をなんとかしたい.



2008年10月31日金曜日

モチベーションを保つ

ちょっとまえに、いまの仕事場から結構人が減ってしまった。nobu666のひとも居なくなってしまったので、刺激を受ける人が減ってしまった。

やっぱりひとりでがんばってても張り合いがないので、一緒に作業している人といろいろやってみている。教える方が多いけど。
とりあえず一人で使ってみていた

  • jQuery
  • bzr
あたりを一緒に使ってみている。emacsを使い始めたみたいなので、それについても教えたり。

予定通り、会社にちょくちょく戻るようになれば、この手の情報共有/勉強会みたいなのをやっても良いんだけどな。
学生やってるうちは時間的に厳しいかも知れないけど。



Office XPがぶっ壊れたので直した

自分のPCではないけど、また起こったときのために書いておく。
問題は2点。

  • Excelが起動できない(修復しようとする)
  • Office XP SP3が当たらない
Excelが起動しない問題は、Office Service Pack または Excel 更新プログラムのインストールを中断した後、Excel の起動時に Office の修復が実行されるだった。Excelのディレクトリの下にXLStartを作ったら無事起動した。

SP3が適用でないのは、CD不要のやつを使ったがCDを要求されるという問題。
フルファイル版の更新プログラムで Office のインストール元ファイルを要求されるの回避策 方法2でやったらXL8Galry.xlsのタイムスタンプがおかしかったのが分かったので更新したら、無事SP3が適用できた。



2008年10月30日木曜日

jythonの日本語周りについて

Jythonの日本語処理がよくわからないについて。
UTF-8環境と仮定して、以下のようにすれば出来ます。
(コマンドプロンプトならCP932とかにすればいいんだけど、こまったことにjythonではcodecsに"cp932"がないのでencodeでSJISバイト列に出来ません。なのでJavaのAPIで出力するのしか出来なかった)

>>> from java.lang import String, System
>>> from com.ibm.icu.text import Transliterator
>>> print Transliterator.getInstance("Fullwidth-Halfwidth").transliterate(String(u"テスト", "UTF-8")).encode("utf-8")
テスト
>>> System.out.println(Transliterator.getInstance("Fullwidth-Halfwidth").transliterate(String(u"テスト", "UTF-8")))
テスト

なぜかといえば、
>>> sys.getdefaultencoding()
'ascii'
>>> System.getProperty("file.encoding")


'UTF-8'

だからじゃないかな。

例えば、こんなのでも分かる。
>>> "テスト".decode("utf-8")
u'\uff83\uff7d\uff84'
>>> print "テスト".decode("utf-8")
Traceback (most recent call last):
  File "", line 1, in
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)



2008年10月26日日曜日

lucene-1339

久しぶりにLuceneネタ。

LUCENE-1339が2.4.0から入ったので、IndexReaderのincRef/decRefがpublicになった。これで自前Reference Countしなくて良くなった。
LUCENE-1315(Add setIndexReader in IndexSearcher)も追加されるのかと思ってたけど、どうも入ってないみたい。

IndexWriter.expungeDeletesとか2.4で試したいことがあるけど、他の作業が多すぎる…



2008年9月7日日曜日

javaのinitializer

その場で作ってすぐ実行するスレッドをThreadを継承した匿名クラスで実装する。このスレッドをdaemon化するのに、次のようなやり方ではIllegalThreadStateExceptionが発生してしまう。startしたらdaemon化出来ないため。

new Thread() {
    @Override
    public void run() {
        setDaemon(true);
        System.out.println("hello");
    }
}.start();

まあ変数に一度入れてsetDaemonしてやればいいのだが、それでは負けた気がするのでちょっと考えたら、initializer使えばいいのに気付いた。

new Thread() {
    {
        setDaemon(true);
    }
    @Override
    public void run() {
        System.out.println("hello");
    }
}.start();



hardyからintrepidにした

bzrを入れるときにhardy向け以外のaptlineも書いてあるのを見て、8.10=intrepidであることを知った。
試しに既存のhardy用apt-lineをintrepid用にしてみた。

殆ど問題なく、dist-upgradeで済んだ。要らないもの(gcc4.2とか)が結構残ったので削る作業があったぐらい。
そして、うれしいことにemacs-snapshotが、set-default-fontでM+1VM+IPAG circleを指定しても落ちなくなった。すばらしい。フォント指定が一行で済む。



javaのlong定数ではまる

longの下位32bitだけ取り出そうと思って、32bitのマスクを定数で指定したらはまった。

32bitだからintでいいだろう→longと演算する時点で拡張されるから駄目。
さらに、Lつけないとlongにならないのをすっかり忘れてた。

こんなかんじ

long v = -1;
System.out.println(Long.toHexString(v&0xffffffff));
System.out.println(Long.toHexString(v&(long)0xffffffff));
System.out.println(Long.toHexString(v&0xffffffffL));

出力

ffffffffffffffff
ffffffffffffffff
ffffffff



2008年8月26日火曜日

Emacs23のフォント設定

reStructuredTextのファイルを編集するときに、日本語フォントとASCIIフォントが2:1にならないと気持ち悪いので、フォント設定を見直してみた。
こんなかんじ。

          (set-default-font "VL Gothic-12")
          (set-fontset-font (frame-parameter nil 'font)
                'japanese-jisx0208
                '("M+1VM+IPAG circle" . "unicode-bmp"))
          (set-fontset-font (frame-parameter nil 'font)
                'katakana-jisx0201
                '("M+1VM+IPAG circle" . "unicode-bmp"))
          (set-fontset-font (frame-parameter nil 'font)
                'ascii
                '("M+1VM+IPAG circle" . "unicode-bmp"))
          (set-fontset-font (frame-parameter nil 'font)
                'unicode
                '("M+1VM+IPAG circle" . "unicode-bmp"))


Emacs23 Bitstream Vera Sans Mono & M+1VM+IPAG circle
元の状態(日本語とASCIIが2:1ではない)

Emacs23 VL gothic
幅は期待した状態になったけど、日本語にAAがかからない

Emacs23 VL gothic&M+1VM+IPAG circle
日本語もAAがかかった

emacs23にした

少し前にubuntu on coLinuxのemacsをemacs-snapshot(emacs23)にした。とりあえずこんな感じになった。
emacs23 snapshot

emacsclientの--ttyを試してみた。便利な気がする。
フォントもAAが効くようになったが、それより設定が簡単になったのがうれしい。
標準のvcでbzr(hgもだけど、bzrをつかってみることにした)がサポートされているのも便利だ。

2008年8月18日月曜日

墓参り

8/16に実家に帰って、墓参りに行ってきた。雷がすごかった。
sky after thunderstorm 20080816

はじめて副都心線に乗った。渋谷の駅は新しいにおいがした。

2008年8月15日金曜日

pgrep便利

pgrepは普通に使っていたが、同じ名前のプロセスが沢山いるときに(pythonとかjavaなんかで動くやつ等)、
-f使えば全体でマッチさせられるのね。

$ pgrep -f "^/usr/local/jdk1.6.0_10/bin/java .+ /usr/local/jdk1.6.0_10/demo/jfc/SwingSet2/SwingSet2.jar"
3013



2008年8月14日木曜日

SLiRP内蔵DNSがおかしい(最近のcoLinux) - 修正されました

devel-coLinux-20080811.exeを入れたら、DNSで名前解決が出来なくなった。MLをみたら0.7.3-2からぶっ壊れてるというのがあがってた。
tftp用の対応が影響している模様。面倒なので0.7.3のzipを持ってきてcolinux-slirp-net-daemon.exeを置き換えた。


2008/08/20 追記
開発版のchangeLogをみたらr1112で修正されたようなので、devel-coLinux-20080820.exeに入れ替えました。
stableで困っていたら、SF.netの0.7.3-linux-2.6.22.18の所からcolinux-slirp-net-daemon-0.7.3-3.zipを持ってくれば直る模様。



Processing-0144 Without Javaを動かす

Processing-0152では、なにもしなくてもwithout java版が動くようになってました。
よって、以下の記述は過去のものです。


Processing-0144が出ていた
WindowsでJava無し版が動かせなかった(140あたりから同梱されているJavaを消すと動かせなくなってたいたが)ので、ソースを見たら原因が分かった。とりあえず動かせるようになった。起動時に出るエラーは以下のような文言が書いてある。

Please install JDK 1.5 or later
Processing requires a full JDK (not just a JRE) to run. Please install JDK 1.5 or later.
More information can be found in the reference.


要するに、外部JDKのtools.jarをクラスパスに入れることが出来ないのが問題。JDK1.5が入っているかチェックするところで、tools.jarに入っているクラスを使うので怒られる。

ソースを読むと、環境変数のCLASSPATHは取得はしているものの使っていない。
そうすると、環境変数のQTJAVAを使うか、args.txtしか方法がなさそう(ソースを見るまでargs.txtの存在を知らなかったが...)
まあ、外部JDKをProcessingのディレクトリにJavaと言う名前でジャンクションを作ってもよさそう。

とりあえず他への影響と間違いがなさそうな、args.txtを使うことにする。
processingのディレクトリにlibというディレクトリがあるので、そこにargs.txtを以下のような内容で作ればOK.

-Xms128m -Xmx128m
processing.app.Base
..\..\jdk1.6.0_10\lib\tools.jar,antlr.jar,core.jar,ecj.jar,jna.jar,pde.jar

1行目はjavaのオプション
2行目はメインのクラス
3行目はjarのリストで,で区切る。processingのディレクトリ\lib\各jarと言うように解釈されるので、外部JDKまでたどればいい。



2008年7月21日月曜日

ADSLが開通した

ADSLにすると言って早4ヶ月。やっとEMOBILE HomeAccess(10M/Type2)が開通しました。
これだけ遅くなったのは、日曜日しか駄目って言ったのが原因だろう。
まあ、前期は土曜日も学校があるので、立ち会えない可能性が高いので仕方ない。


神奈川方面は結構混んでいて、ただでさえ混む日曜日は工事の空きがないとのことだった。

指定するたび、その日時は都合が悪いと言われて、もう夏休みでも良いかと思ったけど、

1ヶ月先までしか工事予定日が指定できないので、何度も調整することになった。

面倒になったので、「日曜日の午前中ならいつでも良いから適当に押さえてください」とお願いした。

ちょっと使った限りでは、速度に関しては問題なさそう(e-mobileでも特に不自由しないんだから当たり前)。
けど、やっぱり上りが遅いな。やっぱり、自宅サーバはこのままやめるか。


最初に速度測定したときは、2.6Mbps/82kbpsだった。下りはともかく上りはひどい。
数時間後に試したら、4Mbps/275kbpsだった。しばらく調整するらしいからもう少し良くなるのかな。
近くのコンビニで調べたら、線路距離長2.4kmで伝送損失は38dBだった。
38dBというのは良い数字ではないようなので、こんなもんかなぁ。
7/26追記
3.9Mbps/855kbpsになった。

ADSL回線状態
通信中(上り 960kbps 下り 4512kbps)
G.992.1 Annex C(上り 4dB 下り 4dB)

2008年6月25日水曜日

VPNのソフト

大学の学内ネットワークに外部から入るのには、VPNで入らないといけないので、CiscoのVPN Clientを入れた。
近くの端末室がいつも空いてるとは限らないし、着くのが毎日ぎりぎりだから、家とかでアクセスできた方が便利。

もともと仕事用のNetScreen-Remoteが入っていたので、使い回せないかなー?どうせ作ってるところ同じだろうしと思ったけど、無理そう。
じゃあ両方入れるかと思い、Ciscoのやつを入れようとすると、古いやつが入ってるからアンインストールしろと言う。
NetScreen-Remoteは必須なので、どうしようか迷ったけど、とりあえずアンインストールして、Ciscoの方を入れた。
あとからNetScreen-Remote入れたらいけた。一応両方つながるのでokだろう。
でも、両方のサービスを起動することは出来ないので、両方とも手動で起動するようにした。



2008年5月30日金曜日

Canon PIXUS iP3100を最近のgentooで使う

今まで特に問題なくwindows→samba→cups→ip3100で印刷していたが、ヘッドのクリーニングをしたかったので、
GUIを使ってみようと思った。bjcups -P プリンタ名で出すやつ。

例によって必要なライブラリが足りないので、追加しないといけないのだが、
libgtk-1.2.so.0はともかく、libpng.so.2はすでにebuildが存在しない。

とりあえずsoだけ/usr/localに突っ込んでおいた。

  • libpng1.0.37を持ってきて展開
  • --with-libpng-compat=yesでconfigure
  • make
  • mv .libs/libpng.so.2.37.0 /usr/local/lib
  • ldconfig(ld.so.confに/usr/local/libを入れてないと駄目)
libgtk-1.2.so.0は
emerge -av gtk+:1で入れればok。この記法は知らなかった。

もとのCanonが配ってるrpmはrpm2tgzでばらせばいい。



coLinuxでISO 9660のイメージファイルをマウントする

ptexliveをビルドするのに、isoイメージの中身が必要らしいので適当に調べた。

すぐ思いつくのは、イメージファイルをloopでマウントする方法だが、容量に余裕があまりないcolinux側に持って行きたくない。
他に簡単にやる方法がないかと思ってみていると、coLinux 0.8からはcoscsiと言うものが出来て、ディスクイメージを普通のデバイスとしてみることが出来るらしい。参考
なので、これを使ってみた。

confにscsi0=cdrom,texlive2007-live-20070212.isoを書いて再起動すると、sr0として見えるようになる。


scsi0 : Cooperative Linux SCSI Adapter
scsi 0:0:0:0: CD-ROM coLinux COCD 1.01 PQ: 0 ANSI: 2
sr0: scsi3-mmc drive: 32x/32x cd/rw xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.20
sr 0:0:0:0: Attached scsi CD-ROM sr0

マウントすると普通にアクセスできるように見えるのだが、
ファイルの中身が見られない現象が多発したのでこの方法はあきらめた。
イメージがぶっ壊れてるのかも知れないと思ったけど、壊れてなかった。何かわかったらレポートしよう…

ubuntu kernel: attempt to access beyond end of device
ubuntu kernel: sr0: rw=0, want=3344004, limit=2097151


他の方法を考えていたら、cofsでマウントしている所にイメージファイルを置いたら、
loopでマウント出来そうだなと思ってやったら出来た。
これが、再起動もいらないし、一番簡単じゃないか…

ビルド自体は、libpng12-devとzlib1g-devを入れたぐらい。
pxdviは作らない(xdvi-jaでいい)のでX関係の開発用パッケージは不要だった。
いくつかは別に必要で入れてあったので、実は使ってるかも知れないけど。


coLinuxでWindowsのフォントを使う

同じフォントを複数保持するのがもったいないと思ったので、cofsでwindows\fontsをfonts.confで参照しているディレクトリ配下(とりあえず/usr/local/share/fonts/winfonts)にマウントした。マウントできたら、fc-cacheすれば、fontconfig経由で使えるようになる。

ついでにXmingのフォントの説明をまねをしてXmingから使えるようにした。

mkfontscale /usr/local/share/fonts/winfonts
mkfontscale -b -s -l /usr/local/share/fonts/winfonts

ただ、一部のフォントは名前の問題で使うことが出来なかったので、fonts.dirとfonts.scaleを書き換えた。
私の所では、bdf um+をbdf umplusにしたぐらい。

ここまでやれば、基本的に書き込むことはないので、roでマウントしなおした。

xlaunchでフォントサーバを指定すると、ローカルのフォントを見てくれなくなるので、
フォントサーバの指定をやめて、Xmingの追加オプションでフォントパスを指定するようにした。

-fp "built-ins,mplusの所,windowsの下のfonts,tcp/tapのアドレス:7100"



2008年5月4日日曜日

hadoop使ったプログラムのテストではまった

テストなので、java -cp classがあるディレクトリ:hadoop-0.16.3-core.jar hogeとかやって動かしていた。どうせヒストリー使うだけなので。
そのあとにjarを作って、java -cp myapp.jar:hadoop-0.16.3-core.jar hogeで動かすようにした。もともとantでjarは作ってたんだけど…

テストしていたのは、HDFSにファイルを作ったりするプログラムなので、結果をhadoop fs -lsrとかして動作を確認していた。
それが、jarを作って動かすようにしてから、HDFS上に全くファイルが作られなくなった。
プログラム的にはエラーが起こるわけでもないし、ファイル作った直後に読み出すコードを入れてみると正しく読める。なので、別のnamenodeに繋いでしまっているのではないか?と焦る。(2系統あるので)

ここで設定ファイルを確認しようとして気付いた。「classのディレクトリにhadoop-site.xml入れてたんだった…
デフォルトでは、ローカルファイルシステム上で動くので、hadoop fs -lsrでは確認できなかったという落ちでした。ローカルファイルシステム上にちゃんとファイルが出来ていました。何度も動かしたので大量に。

ということで、使っている設定ファイルとか繋いでいるnamenodeに気をつけないと言う教訓が得られました。



2008年5月3日土曜日

coLinuxでPulseAudio

PulseAudioのWindows Binaryがあったので、EsounD(esd)がわりに入れてみた。

module-esound-protocol-{unix,tcp}, module-waveoutを読んで、
default.paに

load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;tapのアドレス
load-module module-waveout

を書いておけば、esd代わりに鳴ってくれる。frozen-bubbleとpysolは鳴った。

pulseaudioを使うアプリがあるなら、module-native-protocol-{unix,tcp}を参考に

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;tapのアドレス

を入れておけばよいはず。


ついでに、imeproxyをいれて、scim-cannaとTamago v4をいれた。
sudo aptitude install scim-canna egg

typoが合ったので直しました(titleがcoLinxだったのと、esound用のモジュール名までnativeになってた)



2008年3月27日木曜日

SharpDevelopでF#

SharpDevelop 3.0 Beta 1でF#がサポートされた。F# Interactiveがついてる。
IronPythonのサポートは、Alphaの時から追加されてたけど、F#までサポートするとは。素晴らしい。



2008年3月26日水曜日

大森駅前の桜

結構咲いてた。
大森駅前の桜
しかしこの携帯(911T)のカメラの画質は悪いな。903Tはすごく良かったのに。

バナナ黒酢

スーパーに行ったら見かけたので速攻で買った。バナナのにおいがすごい。味はたぶん普通(例によって私の感覚はあてにはならないが)。
バナナ黒酢

covideo

snapshotを新しくしたら、メモリが割り当てられるようになってた。
r956で入ったやつ。

video0=8で8M割り当ててみた。


covideo_pci_init: registering...
covideo0: buffer: e0880000, size: 8388608
covideo0: testing buffer at 0xe0880000 (size: 8388608)
covideo0: test passed!
covideo0: calling find_mode...
fb0: Cooperative video at: e0880000, size: 8192K

fbにアクセスするとログが出る。試しにfrozen-bubbleを起動したらfbの内容は書き換わったみたいだけど、ちゃんと画像に戻せない…


covideo0: open: user: 1
covideo0: close: user: 1



引っ越した

引っ越しました。いくつか終わっていないのが残っているけど、ほぼ手続きは終えたはず。
光を引く余裕はなさそう(古いアパートで世帯数も少ないからマンションタイプは無理)なので、しばらくe-mobileのセットでつけられるADSLで耐える予定。旧TEPCOひかり(ひかりone T)だったから、かなり差があるけどしかたあるまい。

雨戸をしめると携帯の電波が入らない方が困る。



2008年3月10日月曜日

Visual Studio 2008 Shell(IronPythonStudioとF# Interactive)

試そうと思って入れたけど、IronPython StudioはIsolated Modeじゃないとだめで、F# InteractiveはIntegrated modeじゃないと駄目なのか。
両方(Isolated/Integrated mode)入れるはなんかもったいないな。IronPython Studioがintegrated modeで動くと良いんだけど…



2008年3月8日土曜日

ポツ

品川駅で見たんだけど、ポツってなんだろう?
ポツ

2008年2月28日木曜日

mltermをwindowsのランチャから起動

mltermをwindowsのランチャーから起動出来るようにしてみた。便利かも。CoLinux以外でも使えるし、もちろんmlterm以外でも。

plinkw user@host "mlterm -d
tapのアドレス:0
-w 12 -8=true --sb=false"


tapのアドレスはslirpでも良いんだけど、tapの方が速かったからtapのアドレス。
私はtapのアドレスを固定しているので、それをそのまま指定すればいい。
わからなければ、とりあえずsshでもtelnetでもいいからリモートからログインして、wとかwhoするかログを見る。

Xmingの設定でアクセス制限をしている場合、slirpならローカルホストになるのでxhostがそのまま使えるが、
tapだと当然別のアドレスになるのでうまく行かない。
最初は、

  • slirp経由でログイン
  • .bash_profileでxhostを使ってtap側のアドレスも接続可能にする
  • DISPLAYをtap側に設定
とやっていたが、なんかださいので調べたら、XmingをインストールしたディレクトリにあるX0.hostsに、アドレスを1行1ホストで羅列すればいいらしい。これでアクセス制限をかけていても面倒ではなくなった。

以下は最初は.bash_profileに書いていたが、ログインシェルじゃなくても良いように.bashrcに移した。

export ESPEAKER=tapのアドレス:16001
export GTK_IM_MODULE=uim
export LANG=ja_JP.UTF-8



2008年2月26日火曜日

Xmingで日本語入力(uim-anthy)

やっぱり、たまにmltermでも日本語を入れたいことがあったので、ちゃんと設定しておく。
前回は適当に検索してあきらめていたけど、Xでの日本語(等)入力の仕組み(XIMやらIIIM, GTK/QTのIMM)的に出来ないわけはないので、やってみたらとても簡単だった。
ubuntuなので、パッケージを入れて終了。

  • mlterm-im-uim
  • uim-gtk2.0
  • uim-anthy
mltermを含むgtkなアプリで日本語が化けていたのが気になっていたが、fontconfigで扱う日本語のフォントがなかったからだった。とりあえずパッケージがあるvl-gothicをいれたら、ちゃんと日本語も表示できるようになったので、Systemaも入れてみた。fc-cacheでいろいろやるのは覚えていたので、/usr/share/fonts/truetype/systemaにttfを突っ込んで、sudo fc-cache -fしたら使えた。

2008年2月22日金曜日

udevでethXを固定する

coLinuxにtapを追加してから、ネットワークの設定が自動でされなくなったので原因を調べたんだけど、書き忘れたので別エントリで書いておく。

問題
コマンドラインから起動するときと、サービスとして起動するときで違うMACアドレスが振られることがあるらしい。
MACアドレスとethXの対応をudevが記憶しているから、MACアドレスが変わるとethXが変わってしまい、eth0用の設定(ubuntuだと/etc/network/interfacesに書いてあるやつ)が適用されなくなってしまう。
なので、コマンドラインから起動したときのMACアドレスと、サービスとして起動したときのMACアドレスを両方同じethXになるように登録すれば解決。

対応
udevが対応を記憶しているファイル(/etc/udev/rules.d/70-persistent-net.rules)を見て、新規に追加されたエントリを割り当てたいethXにすればok。
私の場合は、元々eth0, eth1があったところにeth2, eth3が追加されたので、eth2→eth0, eth3→eth1にした。
こんな感じ

# PCI device 0x1a55:0x0005 (conet)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="サービス時のアドレス", NAME="eth0"
# PCI device 0x1a55:0x0005 (conet)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="コマンドライン時のアドレス", NAME="eth0"

2008年2月21日木曜日

tracでpsycoをつかう

tracもpythonで書いてあるんだから、psyco使ったら速くなるかな?とふと思ったので試してみた。
私の所では、mod_pythonを使っているので、trac/web/modpython_frontend.pyに以下を追加して試した。


import psyco
psyco.profile()

abで負荷かけてみたら、平均だと20msecぐらい速くなった。
min 154→130
mean 161→137
median 159→136
max 810→531

1000リクエストにかかった時間が、160sec→138secで22秒差だから大体あってるかな。



coLinuxを更新(20080220)

coLinuxをdevel-coLinux-20080220.exeに更新した。
いつの間にかcoaudio/covideoなんてものが。まだ動かないようだけど。

slirpだとやっぱり遅いので、tap接続を追加した。ついでにesdも。
これならfrozen-bubbleもそれなりに遊べる。



2008年2月14日木曜日

Kaspersky 7.0(MP1)を入れたらもっさり

ジャストシステムからのお知らせが来たので更新してみたら、explorerがやたら遅くなった。
調べてみたらMP1のトラブルシューティングにある現象っぽい。書いてあるとおりdnsq.dllとklif.sysを差し替えて再起動したら戻った。

11日からわかってたなら、ジャストシステムは、これの修正が自動更新に載るぐらいまで遅らせればいいのに。。



Windows版SafariでWebInspector

Windows版Safari 3.0.4でWeb Inspectorを使えるようにしてみた。WebKitのnightlyとか入れなくても、設定ファイルを書くだけで使えた。

C:\Documents and Settings\your name\Application Data\Apple Computer\Safari\WebKitPreferences.plist
を作って、内容はこんな感じ。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>WebKitDeveloperExtras</key>
    <true/>
</dict>
</plist>

ついでにdebugメニューもメモっておく。Preferences.plistに以下のエントリを追加。

<key>IncludeDebugMenu</key>
<true/>

  • パスのコピペをミスってたので修正
  • IncludeDebugMenuの方は、Mac版のコマンドライン見るとbooleanだからtrueにしてみた



2008年2月10日日曜日

Xmingいれた

やっぱりemacsをXで使いたいので(ターミナル経由だと送れないコードがあるから)、Xmingをいれてみた。
Windows側にフォントを入れるのが面倒なので、フォントサーバを使うことにした。

フォントサーバはなにも考えずに、apt-get install xfs
coLinuxで使ってるのがSlirpなので、7100:7100のマッピングをして、Xmingのフォントサーバに127.0.0,1を指定すればok。
emacs22-noxからemacs22に入れ替えて、emacsを起動したら無事に起動した。

Xmingのマルチウィンドウモードでは日本語入力をする術がないらしいが、日本語を入力するのはemacsだけでいいのでanthy-elを入れた。Windows側との違和感がないように、キーバインドを設定してみた。


(load-library "anthy")
(setq default-input-method "japanese-anthy")
(global-set-key [M-zenkaku-hankaku] 'toggle-input-method)
(global-set-key [zenkaku-hankaku] 'toggle-input-method)



2008年2月1日金曜日

MySQLのマージテーブルが壊れる原因

原因不明で悩まされてきた、一部のテーブルがやたら壊れる現象は、
マージテーブルの問題にかかれている、You cannotな操作をしているのが原因っぽい。
マージテーブルでまとめている各テーブルを、optimizeしてるよ。。

大きいインデックスを持つMyISAMのテーブルからレコードを削除すると、インデックスが壊れる問題(Bug #22384)は、4.1.22(4.1.21で直った)にして解決したはずなのに、まだ壊れるので困ってた。MERGEなのだけ壊れるはずだ。



2008年1月30日水曜日

MySQLの新しいストレージエンジン(MariaとFalcon)

MySQL、新ストレージエンジンMaria投入 - InnoDBは?を読んでFalconはどうなったんだろうと思って、ちょっと調べてみた。
MariaがMyISAM++だったなら、FalconがInnoDBの位置に来る(そのままの置き換えは目指してないけど)じゃなかろうか?
Mariaのもつ機能としてトランザクションや行レベルロックはあるけど、foreign keyは無いようだし(falconにはある)。
ブログの記事には、To be a MyISAM replacementとはあるけど、InnoDBについてなんも書いてない。



2008年1月27日日曜日

Lucene java 2.3.0 released

気付いたらlucene java 2.3.0が出てた。MLの流量が多くて後で読もうと思ってたら…。dev-javaでRC3のあとアナウンスの準備してたから、もうすぐだとは思ってたけど。いつのまにかhadoopトップに上がってた

大きいインデックスでマージ時間が悩ましいとか、indexingのスピードを上げたい人は、試しに使ってみると良いと思う。
あと、IndexReader.reopenとかは便利。

2.4で期待してるもの。
Lucene-1120 Use bulk-byte-copy when merging term vectors
書いてあるとおり、フォーマットが変わるのでしばらく実験で使ってみよう。私の所でも、TermVectorsのファイルはサイズが大きいので効果がありそう。
Lucene-1121 Use nio.transferTo when copying large blocks of bytes
nioを使うので微妙に盛り上がってる。書いてあるとおりCFSを作るのは速くなりそう(CFSは複数のファイルをまとめただけで、まず元ネタを作ってからCFSにまとめるので)。
ただ、CFSを使うと一時的にディスク使用量が2倍(CFSと元ネタ)になるし、IO負荷も高いので今は避けてる(そのせいで、大量のインデックスをマージするときに、ファイル開きすぎではまったりする)



2008年1月26日土曜日

devel-coLinux-20080120に更新

開発版スナップショット(devel-coLinux-20080120)に更新しました。vmlinux-modules.tar.gzを展開するのを忘れて警告が出てた。


kernel: ipv6: disagrees about version of symbol struct_module
modprobe: FATAL: Error inserting ipv6 (/lib/modules/2.6.22-co-0.8.0/kernel/net/ipv6/ipv6.ko): Invalid module format

coLinuxでIPv6は使わないから別に気にしなくてもいいけど、警告がうざったいので更新しておいた。ついでにipv6.koもロードしないようにした。



coLinux(ubuntu 7.10)にemacsを入れた

coLinux(ubuntu)にemacsをいれた。
とりあえず既存のパッケージをいれてみた。


(emacs-version)
"GNU Emacs 22.1.1 (i486-pc-linux-gnu)
 of 2007-11-07 on terranova, modified by Ubuntu"

ちゃんとputtyでxterm-256colorにしておいたので、たくさん色が出せる。

meadowから乗り換えたいので、howmはいれた。ちゃんとgrepが使える。cmigemoとmigemo.elもいれた。

ついでにdisplay-time-string-formsを見直してみた。
今までは、検索して見つけたやつ(dayname-j-alistで英語表記の曜日と日本語表記の曜日の対応をつけてるやつ)をコピペして使っていた。
ただ、なにも指定しなければ曜日が漢字で出ているので、自前の連想リストが無駄な感じがして気になっていた。
ちょっとtime.elをみたら簡単だった。

(setq display-time-string-forms '((format-time-string "%Y/%m/%d(%a) %H:%M" now) load))



2008年1月14日月曜日

pythonと文字幅(Unicodeの正規化)

pythonスレをみてて気になったので調べた結果。

入力フォームで全角のみを許可したいという話なので、全角(Full-width)かどうかの判定をunicodedataでやれば楽ができそうと思った(853)。
ただ、入力がUnicodeの場合は分解されている可能性があるので、正規合成しなくても大丈夫か気になった。

Python 2.5.1 (r251:54863, Nov 19 2007, 17:32:14)
[GCC 4.2.2 (Gentoo 4.2.2 p1.0)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import unicodedata
>>> for uc in unicodedata.normalize('NFD', u'ぱいそん'):
...  uc, unicodedata.east_asian_width(uc)
...
(u'\u306f', 'W')
(u'\u309a', 'W')
(u'\u3044', 'W')
(u'\u305d', 'W')
(u'\u3093', 'W')
>>>

ということで、特に問題ないのかな?
まあ、合成した方がわかりやすい気がするけど。


unicodedataとicuは出来ることがかぶってる~って書こうと思ったら、UAX #11: East Asian Widthを見つけた。PyICUは開発中で、現状ではuchar/UCharacterに該当するものが無いから、この件に関してはunicodedataを使うしかないけど。


正規化は便利だし、なんかおもしろい。
入力文字種を制限するんじゃなくて、入力を正規化して、確認画面で正しいかどうかをユーザに判断してもらうのもありなんじゃないかな。
まあその場合、NFC+Full-Widthに統一かな。NFKCだとHalf→Fullまで出来るけど、複数文字を1文字にしたのがばらされてしまう。それが問題にならなければ楽。

>>> print unicodedata.normalize(u'NFKC', u'㍊㌶㍻㎡パイソンぱいそん')
ミリバールヘクタール平成m2パイソンぱいそん



2008年1月13日日曜日

D01NXのファームを更新した

emobileのスレを見てファームの更新を知る。当然すぐに更新した。
デバイス自体は言われているほど不安定ではないと思っていたので、どんな風に安定性が向上したのかわからないけど、
アンテナのマークが示す電波の強さが強くなった気がする。



adesのモデムドライバ

出先で充電したいのもあって、とりあえずモデムドライバを入れようと思ったら、エラーが出て入らない。
検索しても参考になる情報がないので、infを読んでみると、どうも参照しているinfが存在していないようだ。
ということで、mdmcpq.infを別のPCからコピーしたら問題なく入った。

たぶんOS入れるときに、nLIteでカスタマイズしたから入らなかったんじゃないかな。



Advanced/W-ZERO3[es]かった

1/5にW-VALUE SELECTで買いました。まだ電話とメール以外ほとんどいじってない。
データ定額つけるか悩んでる。家なら無線LANがあるし、仕事場でもPCとつなげばいい(ad-hocモードかUSB)。最近は公衆無線LANも増えた。それ以外だと電車に乗ってるときと、ちょっとした待ち時間に使うぐらい。本を読んでることが多いし携帯電話もある。ここだけで1050円分も通信するか疑問。
とりあえず今月はデータ定額をつけて好きに使って、いくらになるか様子を見てみるかな。
もし2100円超えるなら、リアルインターネットプラスも考えよう。どうせx4なんてほとんど意味無いし。
携帯電話を使ってやっていることのうち、PHSで出来ることをPHSで済ませて、携帯のパケット定額の下限で済ませられると良いんだけど。携帯のパケットは高いから、すぐ上限になってしまうので。

前使ってたWX310Kは2005年の12/23に買ってた。最初はほとんどデータ通信専用で、電話として使うようになったからAX420Sを買い増した。そのうちe-mobileに手を出したからAX420Sは一年も使ってないはず(2006/9から2007/6ぐらい)。欲しい人がいたらあげます。

パケット数を見るついでに、10コイン貯まってたから、とりあえず9コイン分(4200円)キャッシュバック申し込んだ。コインは結構無駄にしてるはず。WX310K買ったときにはすでにキャッシュバックできるだけのコインがあったんだよなー。申し込み損ねたけど。



2008年1月3日木曜日

掃除をしているときに発掘されたもの

押し入れの掃除をしていたら、Python Toolkit(in 1997!)とBeOS 3.1/4.5のCDROMが出てきた。懐かしいな。
Python Toolkit CDROM & BeOS CDROM

JavaWorld 1999年2月号のCDROMも出てきた。JDK1.1.7AとかAcrobat Reader 3.0a、Netscape Communicator 4.5/4.06が収録されてる。Horbとかも懐かしいな。何で保存してあったのか思い出せないけど、INFORMIX-SEのLinux版かな?