2007/09/26

Event::Libで遊ぼうと思った

とりあえずCPANからinstallしようとして、ほっといたらエラーでこけた。
~/.cpan/buildにEvent-Libがあるので、そこにおりて行ってperl Makefile.plを実行してみるとevent.hがないと言われる。
よく考えたらまっさらな状態でinstallしたばっかりのDebianにlibeventが入っているはずもなく。
公式サイトhttp://monkey.org/~provos/libeventに行って、最新版をダウンロード。
./configure;make;make installですんなりインストール完了。

気を取りなして
perl Makefile.pl
make test
make install
無事に入った。
しかしもう1時になるのでここで終了。

2007/09/24

Synergyって便利だ

以前使ってた机は、こっちのアパートにはでかくて入らなかったので机が狭くなった。
小さい折りたたみのテーブルを机代わりに使用している。

ここで問題が一つ。
狭いんです。
Mac用のキーボードとThinkPadを横に並べておけない。
どうにも使いづらくて困っていたんだけど、Synergyっていうソフトウェア切り替え機があることを知って導入してみた。
大変便利です。
Windows用の方は最新ので問題なかったけど、Macの方に問題が発生。
どうもIntelMacだとBus errorで止まってしまう。
結構メジャーな話らしくて、調べると色々出てきた。

最新のver 1.3.1じゃなくて1.3.0でIntelMac用にhackした人見つけた。
masuidrive on rails IntelMacでSynergy2を動かす

 ソースを追ってみたら、lib/platform/COSXKeyState.cppの中でgetKeyMapでKCHRを取得する所でコケている様なので、356行のgetKeyMap(keyMap, g, kchr);をコメントアウトしてみたら、動いた。多分UCHRを取得してるから問題ないと思うんだけどな。とりあえず使ってみて、おかしい所があったら考えよう。


次に気になったのが、クライアント側からサーバ側にマウスポインタを移動させたとき、クライアント側のポインタの位置が画面中央なこと。
これも調べてみると修正している人が居た。
qootas.org/blog synergy で leave したときのマウス位置を 0x0 に

synergy で操作していると leave したときに画面のど真ん中にマウスカーソルがくるのが邪魔。0x0 に変更した。以下は 1.3.1 のコードに対する diff。lib/platform/COSScreen.cpp の COSXScreen::leave() で fakeMouseMove(m_xCenter, m_yCenter) しているところを fakeMouseMove(0, 0) に変えるだけの簡単なお仕事です。


この二つを組み込めば、快適なはず。

documentを読むと、OSXでも./configure;make;make installでよいらしいが、初めてXCodeを使ってみる。
buildを実行するとSDKが存在しない2.8.sdkだかを指定していて、エラーが出てこけた。
とりあえず、4u.sdkを指定してみると警告は大量に出たがコンパイル完了。
documentではbuildに作成したのができるとあったが、gen/build/Deploymentに作成された。
これをとりあえず/usr/local/binにコピーして終了。

bus errorも出ないし、ポインタの位置も左上にきた!

2007/08/19

OBLIVION面白い

OBLIVIONのXBOX360日本語版が発売されたので、プレイ中。
こりゃ楽しいわ。
アルゴニアン(トカゲ男)で暗殺者プレイ中。
最初は盗賊ギルドでがんばるつもりだったんだけど、物の弾みで市民が死んでしまい暗殺者ギルドへ移行した。

FABLEも結構色々出来て面白かったけど、こっちのほうが更に上かな。
FABLE2も楽しみです。

CPANのRSSでよさげなモジュール発見。
Debug::Smart
インターフェイスがシンプルで使いやすそう。

use Debug::Smart -timestamp;

LOG("write a message");
DUMP("dump the data structures", $arg);
YAML("dump the data structures back into yaml", $arg)



こんな感じらしい。
-traceオプションをつけると変数のtraceもできるようなので、結構いいかもしれない。

2007/06/23

MP3::Tag

mp3にID3v2タグを埋めようとして、MP3::Tagを使ったが、iTunesで文字化けした。
iTunesはUTF-16LE with BOMじゃないと駄目らしい。

Mp3::Tag::ID3v2で対応してる文字コードがiso-8858-1,UTF8, UTF16 with BOM, UTF-16 no BOMだけでUTF-16LE with BOMがない。
なので、MP3::Tag::ID3v2のサブクラスを作って、UTF-16LE with BOMに対応させた。

2007/06/16

やっぱり駄目か


以前携帯で記事を投稿してみると見事に文字化けしていた。
携帯の機種変更をしたので(大分前だけど)、今度も文字化けするかどうか試してみた。

文字化けチェックと入れた件名が「1」になり、本文が空っぽになっていた。
まともに投稿できるauの携帯ってあるのかねー。

写真の本は弐瓶勉のバイオメガ。
BLAME!の黙々と進んで行く雰囲気がすきで、本屋で見かけたので買ってみた。
設定的にはBLAME!以前の時代の話になるだろうか。
東亜重工とか出てくるし。
BLAME!と違ってセリフが多いね。
まだ2巻しか出てないので、続きに期待。

よくわからんけど、はまった

自分が受け持ってる仕事じゃないけど、気になったので手伝おうとしたけど全くわからなかった。
mod_perl2、ModPer::Registryで動かしてるプログラムが、phpのブログツールをインストールしたら動かなくなった。
phpで使う(らしい) libmysqlclient.so.14だかを入れると動かなくなる。

mod_perl自体は動いていて、原因を探って行くとDB接続でエラーが出てていた。
エラーがMySQLのリファレンスにも載ってるこれ。
A.2.4. Client does not support authentication protocol エラー

んで、とりあえずパスワード形式を古いのに変更。
UPDATE user SET Password = OLD_PASSWORD('mypass')
webで適当にあさった情報によるとたいていこれで解決して、おめでとうって話なんだけど、これをやっても駄目だった。

接続自体はできるようになったけど、
$sth = $dbh->prepare( $query ) or die $dbh->errstr;
prepareを実行すると、エラー出力もでないし、標準出力も出ない状態になってしまった。

perlのDBI関係のモジュールが悪いのか、ModPerl::Registryが悪いのか、MySQLが悪いのかさっぱりわからなかった。
mod_perlじゃなくてCGIとして実行するとエラーもなく普通に動いていた。
libmysqlclient.so.14を入れて最初のエラーがでるってことは、clientが変更されてるってことだよね。
何気なくMySQLとかをDBIとかモジュール経由で使用してるけど、実際どうやってDBにアクセスしたりしてるのか知らないことに気づいた。
DBI、DBD::mysqlあたりのソース読めば何かわかるだろうか。

2007/06/09

DBICのメモ

VMwareで動かしているUbuntu上でCatalystを試している。
ModelにDBICを使っているけど、DBICはさっぱり使ったことがないのでメモ。

いまさら自分で書くのもあれなんで、情報がまとまってたサイト。
Perl/DBIC
[DBIx::Class][DBIC][perl] DBIx::Classのリレーション

後はcpan
DBIx::Class::Manual::Intro
DBIx::Class::ResultSet

とりあえずこれを読んでおけば、なんとか使えるようになった。