よしだメモ このページをアンテナに追加 RSSフィード

2012-11-26

[][][] 沖縄Rails Hackathon に行ってきました

地域Rubyiestコミュニティのminami.rb、okinawa.rb、shibuya.rbの共催で行われた 沖縄 Rails Hackathonに参加してきました。

11/17 に各地でアイデアソン。

11/23、11/24に沖縄でハッカソンという日程。

今回僕は大阪ミナミ(難波周辺)の地域Rubyiest コミュニティ minami.rb からチームBentenの一員として参加。

沖縄だけでも移動、本選、観光含めると4泊5日という長い日程なのでダイジェストでお送りします。

アイデアソン 11/17 大阪 弁天町

あいにくの雨模様中弁天町市民学習センターに集合。いかにも大阪市らしいわかりにくい建物の和室が会場。当日外ではブラスバンドの演奏会があったらしくBGMで津軽海峡冬景色が流れてた。そんな中チーム分けを行い, @satomicchy と @to_uedaのチーム酔っ払い。僕(@yalab)、@meltedice 、@murase_syuka のチームBentenとなった。

その後何を作るかをチーム毎に話し合いあーだこーだ言い合った結果チームBenten はリアルタイム動画チャット(Skypeみたいなの)を作る事に決定。チャットが作りたかったかというとそうでも無くて「僕達は良いプロダクトを作りたいわけじゃない。最新の技術を使いたいだけだ」をスローガンに要素技術を詰め込んだ結果 ActionController::Live と WebRTC 辺りかなとなりそれを使うと出来上がるもの動画チャットかなと。当日はとりあえず edge railsプロジェクトを作り、中央リポジトリhttps://github.com/Minamirb/benten に作り各自がフォークするところまでやってタイムアップ。その後参加者全員で kyoto.rb 主催livecoding#11 へ参加したんだけどそれはまた別の話。

もくもく 11/18から11/21 自宅とかカフェとか

「もくもくする」と言った時に一般の方からは「タバコ?」と聞かれたりする今日この頃IT系(の一部) の人の間では「黙々と勉強コーディングを行う」事を略して「もくもくする」と言う。アイデアソンからハッカソンまでの一週間はもくもくの期間。僕たちのチームはさっそく pull request ベースで開発をはじめた。ソーシャルコーディング勉強にもということでやりとりは英語。その辺の軌跡は github の pull request を参照。Benten チームでは無いけどもくもくの最中に @to_ueda が railsバグを踏み。 rails チームへpull request を送るなどといった事も。残念ながらマージはされなかったものrails の安定化に一つ貢献ができたわけでもうすでに有意義ハッカソンになった。

移動日 11/22 大阪 -> 沖縄

@satomicchy は21日に移動したり @murase_syuka は 23日に移動したりと各自の都合で勝手に現地へというやり方だっったので僕は22日に移動しました。初のLCC(Peach)で初沖縄へ。早めに関西国際空港へ移動したりしたので特にトラブルも無く搭乗。さすがに席は狭いけど1.5h程度だし値段を考えれば全然アリだなという感想。そして那覇空港で @satomicchy、@to_ueda と合流しレンタカーを借りて一路宿へ。

この日は栄市場で沖縄そばをいただきスーパーで買い物をして宿へ戻る。宿ではスーパーで買ったオリオンビールや泡盛を飲みながらやはりコードをひたすら書いた。

ハッカソン1日目 11/23 沖縄IT津梁パーク

ハッカソン初日はとりあえず会場に集まってもくもくコードを書きまくった。以上。

会場から帰宅してからもやっぱりコードを書きまくったり。というのもやはりしかしながらどうして明日までに動くものを作らなければいけないというプレッシャー。僕はすでに Ajax で文字を投稿ActionController::Liveライブストリームでその文字を流す部分の実装を終える事ができたのでわりと余裕。 ActionController::Live についてはいくつか(も)ハマったのでこの辺は別エントリーで解説することにする。

ハッカソン2日目 11/24 沖縄IT津梁パーク

2日目にして最終日。この日は 14:00 まで最後の詰めとプレゼン資料の作成をして 14:00 からはそれぞれのチームの発表。発表の内容などは公式サイトにだいたい載ってるのでそちらを。Rails ハッカソンであるにも関わらずまったく Railsもっと言えば Ruby すら使わなかった ScreenX が優勝など緩さ全開ではあったものの書くチーム Edge にを使ってみてたりアニメーションでプレゼン受けを狙ってたりいろいろとおもしろかった。この日はハッカソン終了後懇親会も行った。泡盛をgokgok飲みつつ島唄を合唱したりとなんしかすごかった。

観光 11/25 いろいろ

ハッカソンは既に終わったけれどせっかくの沖縄だし観光もしないとね(そのために3連休を選んでる)ということで観光へ。 minami.rb では @meltedice が行きたいところがあるからと別行動。それ以外のメンバーと okinawa.rb の @yasulab が参加。前日に夜なべして @to_ueda がピックアップしたスポットを巡る。オリオンビールの工場見学したりすごく雰囲気のいいお店でランチしたり、泡盛の倉を見学しようとしたら残念ながら時間が合わなかったり、海岸線を通ってビーチへ行ったり、のぼり窯を見て焼き物や琉球ガラスを見たりとにかく前日までは雨が降ったり止んだりとぐずついた天気だったけどこの日はすごく快晴で海もとても綺麗ですごく良かった。

最終日 11/26 沖縄 -> 大阪

いよいよ最終日。大阪で終電に間に合わなくなる事を危惧して僕は一足早めの15:40の飛行機で帰ることにしていた。ということで @meltedice に空港まで送ってもらって一旦荷物を預けた後、国際通りへお土産を買いにいった。途中ものすごい雨と風に襲われたりもしたけれどなんとかお土産やの中でしのいだり、食堂でランチをしながらしのいだり、カフェでチャイーを飲みながらしのいだりして結局傘を買わずにねばった。結局悪天候のため30分ほど飛行機が飛ぶのが遅れたのだけど、特に目立ったトラブルもなく無事帰宅。前日はわりとよく眠れたし、飛行機でもしっかり寝れたので思ったより疲れを残さないまま帰宅。ということで今ブログを書いていたりする。

感想など

期間も長かったためいろいろ思うところはあるので思いついたところから書く。チームとしてのハッカソンの成果としては pull request ベースでやった開発は得るものが多かったんじゃないかと思う。個人的な成果としては ActionController::Live が苦労はしたけど思い通りに動かすことができて良かった。

コミュニティとの絡みとしては以前 yokohama.rb とやった伊東のハッカソンの時のように同じ部屋に寝泊まりしてやるスタイルのほうがよかった。それと懇親会は最後にやるんじゃなくて最初にやったほうがコード書いてる最中に気軽に質問にいけたりできたんじゃないだろうか。

LCC を使うと意外に沖縄へも気楽にいける値段だったことも大きな収穫だった。

沖縄そばは美味かった。大阪で食べるよりもはるかにおいしくて、多分現地の気候と水のせいだと思う。

1週間程度だったとは笑いあり涙あり、かつ新技術を触ってみたり知り合いが増えたり体重が増えたりとても楽しかった。

最後にすでに張ってるものもあるけど各種リンクを張っておく。

2011-10-14

[android][scala] ScalaAndroid アプリ作成する環境を作る

Ubuntu 11.10 リリースということで思い切ってクリーンインストールした結果、Scala + sbt で Android アプリを作る環境も作り直すことになりましたので、その時のメモを公開します

JDKインストール

$ sudo apt-get install openjdk-6-jdk

Scalaインストール

$ cd /tmp
$ wget http://www.scala-lang.org/downloads/distrib/files/scala-2.9.1.final.tgz
$ sudo tar -C /opt -zxvf scala-2.9.1.final.tgz
$ cd /opt
$ ln -s scala-2.9.1.final scala
$ echo 'export SCALA_HOME=/opt/scala' >> ~/.zshrc
$ echo 'export PATH=$PATH:$SCALA_HOME/bin' >> ~/.zshrc
$ source ~/.zshrc
$ scala -version
Scala code runner version 2.9.1.final -- Copyright 2002-2011, LAMP/EPFL

Android SDKインストール

$ cd /tmp
$ wget http://dl.google.com/android/android-sdk_r13-linux_x86.tgz
$ sudo tar -C /opt -zxvf android-sdk_r13-linux_x86.tgz
$ echo 'export ANDROID_SDK_HOME="/opt/android-sdk-linux_x86"' >> ~/.zshrc
$ echo 'export PATH="$PATH:$ANDROID_SDK_HOME/tools"' >> ~/.zshrc
$ source ~/.zshrc
$ sudo /opt/android-sdk-linux_x86/tools/android
[Available Packages] 
↓
[Android Repository] のすべてのSDK、[Third party Add-ons] のGoogle API をチェック
↓
[Install Selected]
↓
[All accept] 
↓
[Install] #だいぶ時間かかります
$ sudo mkdir -p /opt/android-sdk-linux_x86/.android/avd
$ sudo chmod 777 /opt/android-sdk-linux_x86/.android/avd
$ android avd
[Virtual devices]
↓
[New]でEmulatorを作成する。作成したEmulatorは[Start]で起動しておく

sbt のインストール

$ cd /usr/local/bin
$ sudo wget http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-tools.sbt/sbt-launch/0.11.0/sbt-launch.jar
$ sudo vi /usr/local/bin/sbt
java -Xmx512M -jar `dirname $0`/sbt-launch.jar "$@" 
$ sudo chmod 755 /usr/local/bin/sbt
$ sbt about | grep This
[info] This is sbt 0.11.0

android-plugin のインストール

$  curl https://raw.github.com/n8han/conscript/master/setup.sh | sh
$ ~/bin/cs n8han/giter8
$ cd /tmp
$ git clone https://github.com/jberkel/android-plugin.git
$ cd android-plugin
$ sbt publish-local

sample アプリを作る

$ cd /tmp
$ ~/bin/g8 jberkel/android-app -b sbt-0_11
Template for Android apps in Scala

package [my.android.project]: com.android.test
name [My Android Project]: Test
main_activity [MainActivity]: #ブランクのままEnter
api_level [10]:                    #EmulatorのAPIレベルに合わせる
$ cd test
$ sbt
> android:package-debug
> android:start-emulator #Emulator 内で Hello world と表示するだけのアプリが立ち上がれば成功

Android アプリScala で作っててうれしい点というのはまず何といっても Scala が使える点でありEclipse を使わなくてもいい点です。

ただ、Android 端末はなんといってもモバイル端末でメモリCPUもそれほど潤沢ではないので速度的な問題で関数型言語恩恵はなかなか受けられません。Better Java として Scala を使っている感じです。

はいえ数値化されにくい「書いていて気持ちいい」という点でJavaを使うより生産性が高いように思います。この辺は僕がrubyプログラマだからというのもあるでしょうけど。

あと emacs の ensime なんかが意外に強力ですし一度やってみられてはいかがでしょうか?

2011-10-03

[] minami.rbの第9回勉強会で発表してきました。

一応僕も共同主催者だったような気がする大阪のミナミ(難波周辺をこのように呼ぶ)を中心に活動している地域rubyコミュニティ minami.rb の第9回勉強会10/1に浪速区民センターでありまして、そこでgittipsについての発表を行なってきました。


発表資料「gitの使い方あれこれ」: http://www.slideshare.net/yalab/git-9518230


ちなみに宣伝ですが minami.rb は rails を中心としてその周辺技術(git、coffee-scriptjQuery、デザイン、SQL...etc)をなんでもやろうというコミュニティです。レベル的にはrailsscaffold やってみたんだけどそこから先に進めないぐらいの人が対象です。中の人のレベルは様々ですが...。


大阪周辺にお住まいRailsに興味をお持ちの方は是非一度いらしてください。


minami.rb のMLへ参加したいというかたは rudeboyjetあっとまーくgmail.com までご連絡ください。

2011-09-03

[android][scala] レッッツVOAリリース

レッッツVOAというAndroidアプリリリースしました

https://market.android.com/details?id=org.yalab.bourbon&feature=search_result

概要

レッッツVOAとは VOA News というアメリカのニュースサイト英語初心者向けコンテンツ Special English(http://www.voanews.com/learningenglish/home/) で英語勉強をするためのアプリケーションです。

スクリプトを読みながらリスニングができ、単語タップすると英辞郎 on the web(http://www.alc.co.jp/)で単語意味を調べる事ができます

その他

レッッツVOABeta版です。今後も機能追加をしていきます

具体的に考えていることとして

などを予定しています

またレッッツVOAscala で書かれており、完全なソースコードgithub で公開しております

https://github.com/yalab/bourbon

ソースコードライセンスGPLですので、勝手にcloneして配布したり売ったりしても問題ありません。しかしその際は変更点を含む全てのコードGPLライセンスで公開する義務が発生しますのでご注意ください。

不具合などを発見された場合はまたは何かしらの要望がある場合はこの記事にコメントいただくか、あるいはTwitterで @yalab までご連絡ください。

2011-08-03

[ruby] railsで古いバージョンで新しいプロジェクトを作る

$ rails _2.3.12_ PROJECT_NAME

ちなみにrakeを使う時なども

$ rake _0.8.7_

が使えます。