恒例の土日報告。
この土日はイベントがいろいろありまして。JGCやってたし、日曜はコミティアがあってどっちも行きたいなーと思いつつ、PeerCastハッカソンとかいうのをやってたので家に居ました。
ハッカソンといってもオンラインでのイベントなんで気が向いた時にだらだらとプログラム書くぐらいなんだけれども。 金曜夜から日曜夕方までなんだが、結局始めたのが土曜日夕方。日曜も15時過ぎからちょこっとと、やったのは正味8時間くらいだろうか。なんか疲れ気味であまりやる気が出なかった。
あとは成果発表をしたり見たりして20時くらいに終わったのでアニメ見て寝た。 まあまあ充実した土日だったじゃないでしょうか。 しかしJGC行きたかったな。どうせ行っても買い物するぐらいだけど。
PeerCastStationのGUIはいろいろあってmonoでは動かないのでMacでは使えないのであった。
使えないといってもHTMLベースのUIは動くので、PeerCastStation.GUI.dllを削除して起動すると使えはする。しかしターミナルから起動させないといけないし、特定のアドレス開くのも忘れたりしてめんどいね。ダブルクリックで起動してほしいものである。
というわけでハッカソンを機に作ってみた。MonoMacとかこわいのでMacRubyで作って起動したPeerCastStation.exeと通信すればいいだろう。 作りは簡単で、起動するとPeerCastStation.exeを起動させてメニューバーの右に常駐、クリックするとWebブラウザコンポーネントを置いたウィンドウにHTML版UIを表示してやるだけだ。これなら2日でできそう。
最近のXcodeの使い方がわからんとかWebViewの使い方がわからんとかMacRubyバグってんじゃねとかアイコンを作るのに手間取ったりしながら作るのはなんとかできた。作って上げてみたらなぜかファイルの権限がぶっこわれてて動かなかったりしたが直したら動きはしたみたい。しかしHTML UIを表示させるとPeerCastStationが落ちるとかなんとかで起動できなかったようだ。手元では起動できるが何が問題だろうなぁ。
OSX版は一通り土曜で出来たので日曜はLinux(?)版を作ろうかと。同じような作りとGtk#か何かで作ればいいんだろーとやってみたが、UbuntuのUnity環境ではGtkのStatusIconが出なくてAppIndicatorとかいうのを使わないといけないらしい。まじかよ。これだよ、これ。この互換性の無さがLinuxとか嫌なんだよ。
UnityではAppIndicatorじゃないと表示できなくて、GnomeだとGtkのStatusIconじゃないと表示できなくて、KDEだとやっぱり違う何かが必要だったりするんだろきっと。これだけ対応しておけばあとは知らんと言えるようなディストリもデスクトップ環境も無いんで結局無数にOSが有るようなもんだ。対応してられるかっつーの!! ということでLinuxは諦めた。まあLinuxというかX Windowとかその辺なんだが。俺が日常的にその辺何か使うようになれば対応するんだが使ってないからな。
今気付いたけどQtだったらその辺なんでもかんでも対応しててくれたりしないだろうか。めんどいから試さないけど。
次は何やろうかなぁ。あー、今はHTTPを介さないと外から制御できない状態なんだが、そのためのポートを割り当ててないと全く操作できなくなるという問題があるんだった。TCPだけじゃなくてローカルでは別な通信チャネルを使えるようにしたいんだけどどうしようかな。名前付きパイプか標準入出力がいいと思うんだが、名前付きパイプは名前をどうしようという問題がある。標準入出力はわかりやすいが一対一通信になってしまうな。うーん、とりあえず悩むところもなく、使い方もわかりやすい標準入出力でのオートメーションモードでも追加するか。