先週書いてないな。なんでだろ。
イヤホンは標準のイヤーチップが硬いのがしっくりこないのではないかと思い、今まで使ってたソニーのイヤーチップを挿してみたらいい感じになった。硬さってのもあるのか。 しかし当然ながら軸のサイズがぴったりなわけもないんで外れやすいのが難点だ。とはいえ使ってて外れるほどでもないし、ワイヤレスなこともあってあんまポケットにつっこんだりするものでもないので特に問題はなさそうか?ソニーのやつなら最悪無くしてもすぐ買えるしな。 しばらく使ってて酔ったり疲れたりもないし(音量上げすぎるとちょっと疲れるかも)、なによりワイヤレス便利でいいな。買ってよかった。
今週末はRubyKaigiで京都だ。持ってくもの準備しないと……って着替えくらいだが。3泊だけだし。
8月終わりから9月頭にかけてしたらばがネットワーク障害とやらで調子悪くて困った1。最近は掲示板サービスなんぞ儲からないものをどこもやってなくて、したらばが死ぬと掲示板使いまくってるぴあきゃすでは大変困ったことになるのであった。
既存の掲示板CGIみたいなの使って建ててる人もいるが、今更そんな古くさいシステムを使い続ける必要もなかろう、 丁度いいのでボクのかんがえたさいきょうのけいじばんを作ろうかなぁと。掲示板程度でさいつよも何もあったものではないが。
欲しい機能はこれ!
これだけですね。シンプルですね。まあそんなに機能いらんのだわよ。これなら作る気にもなる。
ああ、あと基本的にはWebブラウザで動作するものとする。俺がしたらばもWebブラウザで使ってるので。
ピアキャスだと実況的なことやってるので普通の掲示板だとレスポンスが遅いんだよな。 頻繁にポーリングするのもサーバ的によろしくないし……ということでWebSocketなんかでリアルタイム同期したい。 てかそれならチャットでいいじゃんという話でもあるんだが、基本(ログインとか無しで)匿名で使えてログも気軽に見れてってのあんま無くてさ。
読み上げは無くてもいいんだがあったら便利そうだし、最近のWebブラウザだとWeb Speech APIとかいう機能あるし簡単にできるでしょう。
既存のツールとの互換性は一番大事なところ。これがあるからみんなしたらばから離れられないので、互換性あれば試しに使ってみるのもできるでしょう。ていうか配信側は好きに掲示板選べばいいけど、視聴側は選べないのでできれば既存のツールが使えるところでやってほしいはず。
で、作り始めた。
サーバは普通にRuby。WebSocketはいつも通りfaye/websocketを使おうと思ったが、fayeそのものを使えばいいのに最近気付いたのでfayeで。faye/websocketはfayeてなんだろうって思いながら使ってた。たぶんWebSocketが上手くいかない環境でも動く、はず……。
クライアント側も普通にKnockout.jsとOpal……と言いたいところだが、来週末のイベントに間に合わせたいこともあるし、fayeとも組み合わせないといけないのでOpalは逆にめんどくさくなるだろう。Knockout.jsと素のJavaScriptが一番楽だろう。jQueryくらいは使うけど。
ちょろちょろっと書いてみたら結構すぐ出来た。まあ単なるチャットシステムみたいなもんだ。こんなの今時やる人がやれば一瞬で出来るだろう。
2chブラウザ対応もやろうかね。みんな何使ってんだか知らんけどJaneてやつを良く聞くからこれ対応すればいいのかな。調べたらいくつか出てきて悩んだがJane Styleてやつがみんな使ってるやつっぽいな。 板の追加方法はヘルプ見たら出てきたし簡単で良い。
2chとの通信方法はmonazillaあたりを参考に作ったら簡単にできた。気になるのはこれShiftJISなんだけど、UTF-8の板扱いにはどうしたらいいんでしょうかね。まあ今のところはShiftJISでいいか。
書き込みも簡単だったが、POSTに対して返す値をちゃんとしないとJane Styleが落ちてくようだ。 書き込んだらブラウザ側にも反映させられるようにfayeのチャンネルにメッセージを送ってるんだが、メッセージ処理される前にJaneが再読み込みをかけてくるとJaneが落ちるぽい?ちゃんと試さんとわからんが、落ちるのはよろしくないしなんとかしないとなぁ。
他のツールも試したがよくわからん。nicocastはなんかOCXのインスコが必要というのでその場は諦めた。入れとかないと。mekacastは行けそうだったけどなんだか上手くいかない。したらばと今は亡きわいわいかきこに対応というのでしたらば風でいけるか?と思ったが認識してくれない。bbs.
で始まるアドレスじゃないとだめだったという情報を貰ったが、それだとローカルで試すのめんどくさいですね……。
SpeechCastはバイナリがなんか古い。オープンソースなのでリポジトリを見ると2013年にしたらばの新しいアドレスに対応してるぽいんだけど新しいバイナリ無いんですかね?まあソースがあれば調べるのは楽でしょう。
他にみんなどんなツール使ってるんだ?と思ったらPeerstPlayerにも対応してほしいと言われた。なるほどなるほど。PeerstPlayerもソースあった気がするからなんとかなるだろうたぶん。 アドレスで判別されてるとどうしようもないんだがな。
こういうの作ってていつも思うんだけど、ツール類はなるべくソース公開してほしいなぁ。オープンソースでなくともソースが見えるようにだけでもしてもらえると互換性とるのだいぶ楽になるんで。公開しない理由がないやつは公開しようぜー。
次はストレージをなんとかしないとな。適当なDBに入れるだけだが。とりあえずSQLiteでいいかな。
各所に向けてDDoS攻撃が行われていたようだがさて。 ↩