読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

囲碁対局中継サイト「耳赤」


進行中の対局をリアルタイムで中継するサイトを作りました。明日の名人戦第五局で早速運営する予定です。
気になる局面から検討をすることもでき、その結果を画像として添付してツイートすることができます。

囲碁が好きで、Twitterをしていて、中継を見るほど暇がある人は少ないかもしれませんが、使用感は抜群です。こんなに気持ちよく囲碁ツイートができるシステムってなかったと自負しています。
是非お試しください。

開発メモ

Meteor

http://www.meteor.com/

プラットフォームにはMeteorを使いました。以前にも記事を書きましたが、近未来的開発環境で改めてすごいと思いました。リアクティブにこだわらなくても、TwitterログインとかAPIをよく知っていてもそれなりにコードが必要になるところをほとんどコードを書くことなく扱えます。Railsを触った時には、どっさりコードを自動で生成してくれて、プラモデルを作るような気分になりましたが、Meteorはコードを開発者に見せずにオブジェクトがうまくやってくれる感じ。

eidogo

https://github.com/inohiroki/eidogo
碁盤にはeidogo(http://eidogo.com/)をinohirokiさんが拡張されたものを使いました。日本語対応と着手削除ボタン、棋譜表示(手順番号表示)機能が嬉しいです。eidogoはサーバーを用意すれば、パターン検索やGnu Go形勢判断機能があるので、将来サービス向上に役立てられそうです。

html2canvas.js

http://html2canvas.hertzen.com/
碁盤を画像にするのに、html2canvas.jsを使いました。tsumego_botでeidogoの画面をキャプチャするのにPhantomJSを使ったことがあったので、今回もサーバー側に渡す必要があるかと思っていたらクライアント側で済んでしまいました。素晴らしいライブラリ。

あと、定番のあれこれは

  1. CofffeeScript
  2. LESS
  3. jQuery
  4. Bootstrap
  5. fastclick

fastclickはeidogoに対応するため、mouseイベント(mousedown, mousemove, mouseup)のエミュレーション機能を追加しました。これでiOS上でもeidogoが快適に動きます。