独学大学情報学部

主にScala、たまにHaskell、稀に数学

「Scala勉強会第143回 SPECIAL DAY ハッカソン in 歌舞伎座」に参加してきた

今日は ↓ に参加してきました。
http://rpscala.doorkeeper.jp/events/20374

一番後ろの席に座ってたので人数数えてみると、ざっと30人弱くらいでした。
各々自己紹介の後、ハッカソンスタート。

今日やったこと

スライド作るの面倒だった時間なかったので、発表内容もここでまとめます。

↓今日はこれの開発してました。
https://github.com/aoiroaoino/connpasscala

ざっくり言うとConnpassってイベント支援サービスのAPIクライアント for Scalaです。既に返ってきたJsonをパースする部分は作っていたので、今回はHTTPリクエスト投げる部分+αを実装しました。 HTTPリクエストにはscalaj-httpJsonのパースにはargonautを使用しています。 特にこだわりがあったわけではなく、単純に使った事なかったので試したかったってのが理由。

使い方は以下のような感じです。(2015/02/12 現在)

scala> import connpasscala._, Connpasscala._
import connpasscala._
import Connpasscala._

scala> :paste
// Entering paste mode (ctrl-D to finish)

Client()
  .keyword("scala")
  .ownerNickname("AoiroAoino")
  .run()

// Exiting paste mode, now interpreting.

res0: Option[connpasscala.Response.Connpass] =
Some(Connpass(1,1,1,List(Event(10643,Scalive # 1.414 @ 西麻布ベース,Scalaなどについて語らいながら1.414人前の肉を喰らう@西麻布ベース,<h3>▼趣旨</h3>
<p>前回のScalive!<br>
...

scala> val event = res0.get.events.head
event: connpasscala.Response.Connpass.Event =
Event(10643,Scalive # 1.414 @ 西麻布ベース,Scalaなどについて語らいながら1.414人前の肉を喰らう@西麻布ベース,<h3>▼趣旨</h3>
...

scala> event.title
res2: String = Scalive # 1.414 @ 西麻布ベース

scala> event.hashTag
res3: String = scalive

基本的にはConnpass API仕様の検索クエリのキャメルケース名メソッドで検索条件を追加していって、run()で実行後、レスポンスフィールド名のキャメルケース名メソッドでデータにアクセスする感じです。

とりあえず動いている状態ですけど、エラー処理皆無だったりパッケージ構成変だったりテスト書いてないし依存関係切り分け出来てないし、etc...と、実用には程遠い状態orz ただまぁ、折角の(それなりに使えそうな?)初ライブラリなので、CIやらバージョン管理やらMaven Centra Repositoryへの公開やら、一通り試してみたいですね。

感想

今回は久しぶりのハッカソン参加かつ、進捗ダメじゃなくて発表まで行けたので良かった!!でもやっぱりスライドは作るべき。。なんとなく伝えきれなかった感ある。。。

(´-`).。oO(なんとか時間内に使える状態になって良かった...)

まとめ

主催のみなさん、参加者のみなさん、お疲れさまでした!ありがとうございました!