B班 ネットワーク対戦テトリス、プッシュもあるよ
B班の3人は全員が中学生だ。ほとんどの講師が彼らの倍以上の人生を生きているが、ソースコードの前で年齢は関係ない。彼らは、JavaScriptの授業で作製したテトリスにいくつかのフレバーを付加し、ネットワーク通信にいる2ユーザー対戦型のテトリスの作製にチャレンジした。
ネットワーク対戦を実現するため、テトリスサーバをRubyで書いた(ちなみにRubyは今回のカリキュラムに含まれていない)。リアルタイムで画面を更新するため、サーバー/クライアント構成ではなく、Comet(Google Talkでも使われているプッシュ技術)で実装した(もちろんCometもカリキュラムにはない)。Rubyにライブラリがなかったので、UNIXのプロセス間通信でなんとかしたという。
UNIXソケットによるネットワークプログラミングは、グループ実習の前日に4時間の講座(吉藤英明講師)で学習した技術。この講義で使われたソースコードはシンプルな匿名チャットを実装するもので、いくつか意図的なバグが混入されており、それを吉岡弘隆主査の講義で学習したデバッグやコード読解の手法を利用しながら修正する学生の姿も見られた。
さて肝心の対戦テトリスだが、グループ実習の時間だけでは完成せず、その後も一生懸命コーディングしたにもかかわらず、残念ながら上手く動かなかったようだ。ただしネットワーク通信はいちおう機能しているようでもあり、git(ソースコードの分散管理システム)を使った共同作業に初めてチャレンジし、半日でここまで実現したことは素晴らしいとは吉岡主査の総評である。
年齢的にも技術的にも最も伸びしろを感じたグループだった。プログラミング系のブログを開設していたメンバーに刺激されて、キャンプの最中にひとりがブログを立ち上げるなど影響を強く受けあっていたようで、これからも切磋琢磨し続けていくことだろう。「強敵」と書いて「とも」と読むような関係になってほしいと願わずにはいられない。
C班 Twitterをニコ動ぽく表示するFirefox機能拡張にチャレンジ
プログラミングコースには高専から大学生まで3人の女子が参加したが、C班はその3人で構成されたチーム。彼女たちは、授業で学んだJavaScript技術を別の分野に応用し、Firefoxの拡張機能作りにチャレンジした。
開発目標は、Firefoxを一定期間放置しておくとニコニコ動画のような流れるインターフェイスでTwitterのタイムラインを表示しはじめるという、スクリーンセーバー的な機能拡張。ツイッター・テロップを略して「twipp(ついっぷ)」と名づけられ、ツイッター風のかわいいロゴも用意された。
実演では、Twitter APIから発言を取得してFirefox内に表示する機能は実装されていたが、放っておくと表示されるようにするためのイベントを登録できなかったので、ボタンを押して読み出す形をとっている。ただしマウスを動かすと元の画面に戻るほうは実装されている。
そのほか、まだ流れるようには表示できないなど未実装の機能があるが、キャンプ終了後にも開発を続け、完成したら英語のドキュメントもつけて機能拡張として配布していきたいとのこと。今後の展開に期待したいところだ。 竹迫良範講師からは、オープンなソースコード共有レポジトリの使用などが進められた。
共有レポジトリといえば、講師の天野氏が講義直前までリファクタリングしていた講義資料を授業前に公開し、すぐさま数百のブックマークを集めるほどの話題になっていたが、既存のネット上のコミュニティと教室での授業がリンクして進んでいく様子にはゾクゾクするほど新しさを感じた。またC班のテーマとなったtwitterでも参加者同士がフォローしあったり、18歳以上の学生ならmixiで講師とマイミクになったり、またブログで言及したりコメントをつけたりと年齢を問わず活用されていたようである。
