Scalaコップの会第9回でHTML5のWebSocketとTwitterのChirpUserStreamに触れる

6月15日(火)にScalaコップの会第9回をやりました〜。

今回はなんか作りたい、書いてみたい熱が高まっているのをうけて、Twitterクライアントなんかいいんじゃないかという安易な考えのもと、yuroyoroさんのWebベースのTwitterクライアントをごにょごにょする予定でしたが、環境構築して動作確認までで終わってしまいましたw

http://d.hatena.ne.jp/yuroyoro/20100510/1273485582

あまり深く考えずにこの記事を選んだのですが、まだドラフトな仕様で、Chromeでしか実装されていないWebSocketとか、こちらもベータなTwitterのStreaming API ChirpUserStreamを使っていたりと、かなりとんがったクライアントでした。

で、当然のごとく(?)まず色々用意して動かすのに四苦八苦。特に私以外、みんなWindows環境だったんですが、悪戦苦闘してました*1
以下やった作業。

  • githubからyuroyoroさんのコードを落っことす。
  • mavenをダウンロードしてパスを通す。
  • mvn clean package scala:run -DaddArgs="target/websocket.chirpuserstreams-1.0/|8080"で大量にダウンロード。終わらないw
  • Jetty起動後、Chromehttp://localhost:8080/にアクセスするもうまく表示されず
  • Jettyというか、Javaのプロセスが残ってておかしかったので、タスクマネージャーでkillしてもらう。
  • TwitterのChirpUserStreamに"@"を含むパスワードをはじかれるorz→パスワード変更
  • 違うフォルダでmvn...と打ってた
  • ようやく表示出来た!

時間をオーバーしてしまったのですが、最終的に全員無事に動かす事が出来て良かったです。
ちなみに、ダウンロードにやたら時間がかかったりしたので、合間合間にJetty7のWebSocketをScalaから使う - ( ꒪⌓꒪) ゆるよろ日記を軽くコードリーディングしました。

というわけで、ようやくスタートラインに立つことが出来たので、次回は写経、コードリーディング、改造とばんばん進む筈!ですw
前の週にymnkさんがScala勉強会@東北でやってくれたコードリーディングも次回大活躍の筈です。

参加の皆様お疲れ様&ありがとうございました。
次回が本番ですのでどうぞ宜しくお願いしますw


追記:TwitterのStreaming API ChirpUserStreamですが、パスワード中に"@"を含んでいると、エスケープ処理がされてないのか認証を通らないようです。まだベータなサービスだからでしょうか?Twitter本体で使ってるパスワードが通らないというのはちょっとアレですね。

あと、chatとhashtagはそれぞれこれで動かしたけどあってるのかな?mavenしっかりお勉強したほうがいいのかな。
mvn clean package scala:run -DaddArgs="target/websocket-chat-1.0-SNAPSHOT/|8080"
mvn clean package scala:run -DaddArgs="target/websocket.hashtag-1.0-SNAPSHOT/|8080"

*1:ちなみにMacではあっさりと動きました。Chromeデベロッパー版(6系)から正式版(5系)に変更したぐらいです。