satococoa's blog

主にサーバーサイド、Web 系エンジニアのブログです。Go, Ruby, React, GCP, ...etc.

pplog iOS アプリをリリースしました

pplog の公式 iOS クライアントアプリをリリースしました。

pplog on App Store

pplog とは

pplog (通称ポエム) についてはメインプログラマ@ppworks さんのブログとデザイナの @ken_c_lo さんのブログを見ていただくのが良いと思います。

このプロジェクトの目的について高らかに語られていますのでぜひご覧下さい。

pplog iOS クライアントについて

pplog iOS 版の構想はかなり初期からあって、web 版 pplog を身内だけでクローズドにカリカリとドッグフーディングしている頃から、「どうせなら RubyMotion で iPhone アプリも作ろうよ」と話していました。

現在のアプリの仕組みは、UIWebView に web 版の pplog を組み込んだ、いわゆる "ハイブリッドアプリ" です。

ハイブリッドアプリは一見とても簡単そうに見えるのですが、実は色んな問題をはらんでいます。ぱっと思いつくものを列挙すると、

  • そのまま UIWebView を組み込んだだけのアプリだと、「Web でやろうぜ!」と Apple に言われてリジェクトされる。
  • ネイティブと Web のやり取りが JavaScript やカスタム URL Scheme でやることになり、仕組みが複雑になりやすい。
  • 認証をどのようにやろうか考える必要がある。
  • どんなに JS でガリガリ頑張っても、ネイティブの使い勝手を期待するユーザを満足させるような動作を実現するのが難しい。

さらに「Web なんだからそのまま Android も対応できるんだろ?ベイベー」ってなノリでやると、CSS や JS で苦しんだりして結局 "フルネイティブ" で iOSAndroid とも最初からやった方が速いんじゃ... という結論に達しがちです。

それでも敢えてハイブリッドを選んだのは以下の理由によるものです。

  • pplog チームはサーバサイドに強い人が多いので、web 側の開発速度の方が速い。(そのため、ネイティブで UI を作り込んでも Web 側の UI があっという間に改善されてそれに追いつけなくなるおそれがある。)
  • 僕が JavaScriptRails にも慣れているため、デバッグがあまり困難ではない。
  • Push 通知は pplog アプリの場合は非常に価値が高く、仮に通知だけでもアプリ化する価値がある。

このように、積極的にハイブリッドを選ぶ理由がある場合のみハイブリッドアプリは選択すべきだと考えています。「楽そうだから」でハイブリッドを選ぶとつらい思いをする可能性が高いです。

おっと、横道にそれました。

あとはなるべく web 側の開発の邪魔にならないような設計を意識しました。

例えばある要素の class 属性を変更したらネイティブアプリに機能不全が起こるようでは web 側が自由にクラス名を変えられず、自由なリファクタリングができなくなってしまいます。

そこは data 属性を用いて、data-native-display="hidden" みたいなのを置いとくとアプリから見たときにはその要素が隠れるようにしています。

投稿機能も、アプリからの投稿用の独自の API をまるっと生やすのではなくて以下のような仕組みをとっています。

  1. 「新しいポエムを書く」ボタンを押すと、UIWebView が ajaxGET /posts/new へアクセスし、ワンタイムトークンを取得する。
  2. ワンタイムトークンが取得できたらカスタム URL Scheme を叩いてネイティブにトークンを渡す。
  3. HTTP のヘッダにそのトークンをつけて、新規投稿のデータを POST /posts する。

上記のような「新しいポエムを書く」ボタンの動作はもちろん web 版での動作とは異なるものです。

DOM のロード完了時にネイティブ側から JavaScript を差し込んで、そこで addEventListener することで実装しています。

とはいえ、やはりどこかの時点で完全にネイティブにしたい気持ちは持っています。 web 側の UI もかなり良い感じにこなれてきていますので、2.0.0 はフルネイティブでいきたいと考えています。

ポエムなのに技術を語ってしまって逆に恥ずかしいですが、骨を回しているだけで楽しめる、独特の雰囲気を持ったサービスです。

ぜひ一度インストールして骨をクルクル回してみてはいかがでしょうか?

pplog アプリのダウンロードはこちら -> pplog on App Store

Yokohama.rb 40th

Yokohama.rb Monthly Meetup #40 に参加してきました。

恒例の Ruby レシピブック読書会ですが、僕がレシピブックを持参していなかったのと、浮動小数点数の誤差の話とかあまり自分も明るくない部分の話だったのでちょこちょこ口を出しつつもあまり理解は進まなかったです。Float::EPSILON あたりの話をしていたようです。次はレシピブック持って行こう。

後半は @Nabetani さんに準備していただいたペアプロ用の課題を、僕と @miyohide さんでプロジェクタと ust に晒しながら解くというちょっとした出し物を行いました。

問題はこちら -> CoSVON 〜 Yokohama.rb #40 2014.1.11

久しぶりのペアプロでしたが、比較的順調に TDD っぽく開発を進められたし gem の作り方とかその辺も未経験の方にとってはきっと役に立つ内容だったのでは、と思います。

いつもの懇親会は、翌日も朝早い予定があったので無理せずお休みしました。

今回も楽しい会でした。定期的に新しい人も参加しているし、とても良いと思います。

第35回 デザイナー向けプログラム部

第35回 デザイナー向けプログラム部 #p4d at 万葉 を開催しました。

P4D では、しばらくデザイナとエンジニアをペアにしてマンツーマンで何かを進める (たいていエンジニアがデザイナに何かを教えるとか) という形式でやってきましたが、昨年末最後の P4D からはペアにはせずに基本はもくもく会として進めています。

エンジニアも作業を進められるし、やっぱり「随時、困ったら人に聞ける環境で作業をする」ということがこういう成果物を出していきたいコミュニティとしては一番シンプルな運営の仕方なのかなぁと思っています。

反面、あまりにみんながもくもくとやりすぎてしまうと、参加歴の浅い人は特に人に話しかけにくくなって、相談もしにくくなってしまいます。

バランスを見ながら適当に話しかけたり、話題を振ったり、という気配りが必要そう。(特に今回は初参加の方が半数だったので。)

実際に各自がやったことと、KPTwiki に。 -> 第35回

次回は 1/23(木) に forkwell さんで開催します。(募集ページは今週中に立てます。)

2014 年の抱負

2014 年の年明けから一日経ってしまいましたが、改めて 2013 年のまとめと 2014 年の抱負を書いておこうと思います。

ちなみに去年書いたのはこれ -> 2012年のまとめと2013年の抱負

2013 年のまとめ

そういえば、2013 年のテーマは「広げる」ということでした。「自重しない」は 2012 年のテーマだったのですが、勘違いして一年間「自重しない」ことも心がけて行動していたような気がします。

2013 年にやりたいこととして挙げたことですが、以下のようになりました。

  • [ ] ビギナー向けの iOS アプリ勉強会: #P4D で時々教えていたのでそれでもいいのかもしれませんが、単独での開催はできませんでした。
  • [x] 第2回プログラマ向けデザイン勉強会: やりました!そういえば大江戸 Ruby 会議 03 とかぶった日程でやりましたね。。
  • [x] 本や記事を書きたい: 運良く 7 月にお声がけいただき、Mobile Touch実践!RubyMotion という連載を持たせていただいています。

月単位で振り返ってみると以下のような感じ。

1 月

東京 Ruby 会議 10に参加しました。とは言え、僕の順番の直前で大雪による中断となり、実際に僕が壇上に上がって発表したのは 2 月でした。

あ、そうそう #P4D でワークショップをもたせてもらったのでした。

2 月

Qiita 2-day Hackathon に参加しました。この頃は RubyMotion + Pixate がアツかった記憶があります。

ネコハッカソンが開催されました(=^・ω・^=) #willcat これも 2 月でしたね。楽しかった、また行きたい。またやりましょう。

Ruby 20 周年パーティに間に合わずに数日後に Ruby Friends Camera をリリースしたのもこの月でした。(iOS 7 対応版のアップデートしなきゃ。。)

あとはこの頃は 3 月のベルギー行きの準備で色々あたふたしていたようです。

3 月

改めて見ると、この月はすごく忙しかったようです。

LT だけの参加でしたが、まずは Rails Girls Tokyo 2nd に参加しました

さらに前述の 第2回プログラマ向けデザイン勉強会Tokyo Rubyist Meetup でほぼ全編英語でのペアプロ、そしてベルギーで行われた RubyMotion Conference #inspect 2013 ですね。

ベルギーから帰国した当日に Rails Girls, More に参加して、報告ブログよりも Girls たちと楽しむことを優先して RubyMotion 界隈から dis られたのもいい思い出です。

4 月

#P4D で温泉合宿に行っていました。この辺から力尽きたらしく、僕は全然ブログを書いていないですね。。

この場で、RubyMotion Conference のブログ記事を書いていたのでした。日光、良かったなぁ。

5 月

RubyMotion Kaigi 2013 というのを RubyKaigi の前日に主催していました。

ブログは書いていませんが、そういえばるびまにはちゃんと記事を書いていた!

Rubyist Magazine - RubyMotion Kaigi 2013 レポート

6 月、7 月、8 月

力尽きてきたようで、定例の #P4D と RubyMotion もくもく会、Yokohama.rb くらいしか活動していなかったらしいです。

あとフットサルやったり、箱根に旅行に行ったりしていました。

9 月

PHPカンファレンス2013#P4D ワークショップを開催させてもらいました。

ここで @kenclo さんに発表してもらった「生煮えぷるり」の話、とてもよかったですね。

Gitを使ったデザイナーとプログラマの協業について話してきた #P4D #phpcon2013

大阪、京都へ行ってきました。[大阪] プログラマー向けデザイン勉強会参加が目的でしたが、ついでに寄った京都が非常に良かった。

この辺から、東京の外にももうちょっと出ないとなぁ。。。と思い始めたのでした。

10 月

RailsGirls Tokyo 3rd に出ていました。そうそうたるコーチ陣に混じって、なんとか頑張ってきました。

11 月

引っ越し関連で色々動いていたくらいで、あとは普通。

12 月

福井に行って、WCAF Vol.11 「Design」で #P4D の活動を通じて感じたことなどをお話させていただきました。

カニよかった。カニ。

総括

昨年は前半でだいぶ力尽きたような感じはありますが、それでも一年を通じて RubyMotion と #P4D にきちんと貢献し続けることができたのではないでしょうか。

そういう意味では、抱負として挙げた「広げる」ことに関しては RubyMotion についても、#P4D を通じての エンジニア + デザイナのコラボレーションについては自分の身の回りから、全国に広める活動の一端を担えたのでは。

2014 年に頑張ること

そしてようやく今年の抱負。

あまりたくさん挙げてもつらいので、以下の 2 点だけにします。

  • 英語力の上昇
  • アウトプットを増やす

英語力の上昇

特に会話ですね。聴くのと話すのをどうにかしたいと思っています。英会話スクールかなぁ。。

アウトプットを増やす

せっかくブログを middleman ベースに変更したので、書くペースを増やしたいです。あとは電子書籍か紙媒体の本に何かしら文章を書きたいと思っています。

日本語ばかりではなく、アプリもちゃんと作ってプログラマとしてアピールしていきたいです。

以上、疲れたので終わります。ポエム案件っぽかった。

Middleman blog に変えてみた

去年の年末から取り組んでいたのですが、ようやく公開できる状態まで整えることが出来ました。

middleman を使う上では特に困ったことも無く、パーマリンクも以前の jekyll で作っていたブログの記事をそのまま持ってこられたので問題無しです。

それよりも見た目のデザインを整えるところでやっぱり時間がかかってしまいました。

なるべくシンプルに文章を読みやすいようにしたつもりです。 とは言えやっつけの部分も多々あるので、記事を書きながらまた調整してみようと思います。

ようやく年を越せた気分です。

2013 年のまとめと 2014 年の抱負はまた明日にでも。

RubyMotion Conference #inspect 2013

3/28, 29 にベルギーブリュッセルで開催された RubyMotion Conference #inspect 2013 に参加しました。

英語力にだいぶ不安がある中、頑張って聴き取ってきた内容をメモしたいと思います。

1 日目

A Brave New World: Learning iOS for the Ruby Refugee - Nick Quaranto さん

37signals で働く Nick さんがいかにして RubyMotion で Basecamp for iPhone を作って、どういうことを感じたのか、というお話でした。

Nick さんにとっては Objective-C で開発するということは Xcode というツールを強制されることが苦痛であり、自分の好きなツールを使って自由に開発ができる RubyMotion 無くして Basecamp for iPhone は作れなかっただろう、と話していました。
Interface Builder を見たときに、まるで Visual Basic を思い出すようだったというところで笑いを取っていました。

また、有用な gem や community のリソースの紹介もされました。

Community
Gem

ちなみに質疑応答で「テストは書いているか?」という質問がされ、Basecamp アプリはテストを書いていないそうです。
その後、「テストを書いていますか?」 -> 「書いてないです」というやりとりはほぼ全部の発表後に様式美的に繰り返されることになります。 (1日目後半からは「ノベルティの T シャツはあるのか?」という質問も決まり文句として繰り返されて、笑いを誘っていました。)

RubyMotion でテストを書くときに参考にすべき良いアプリとして、TinyMon というアプリが挙げられました。

Behaviour Driven Motion using Calabash - Karl Krukow さん

Carabash というテスティングフレームワークのお話とデモでした。

会場にその場で挙手を求めてアンケートをとったところ、約 30% の人が RubyMotion のプロジェクトではユニットテストを書いていて、Acceptance Test を書いている人はたったの 2 人でした。

Carabash は Cucumber を利用して受け入れテストを記述するフレームワークで、マルチプラットフォームであることも特徴です。

また、client-server の構成を取っていて、リモートでテストを実行することも可能です。実際にリモートの実機で動作している様子も映像で見せてもらいました。

デモで動かしていたテストのリポジトリは以下です。(RubyMotion-Samples にある Beer アプリに対して受け入れテストを実行しました。) https://github.com/krukow/motion-calabash-inspect2013

Controlling the Real World with RubyMotion - Rich Kilmer さん

bluetooth のお話でした。

bluetooth の出始めの頃のお話から最近の bluetooth4 の仕様の話という歴史をおさらいするところから始まって、Apple 公式のドキュメントには全く記載のない (でもなぜかサンプルコードは配布されている) bluetooth を使って iPhone をサーバとして周囲の機器をスキャンし、その値を受け取ることもできるそうです。

これも実際にデモをされていました。

Elevate your Intent - Matt Green さん

ソフトウェアの設計のお話でした。(RubyMotion に特化した訳ではなく、一般的な概念)

責任の所在をドメインに応じて適宜分散し、小さくてシンプルなクラスを定義することで意図を明確に伝えるソースコードが書けるというお話でした。

Dependencies (依存関係) は複雑さを生み、バグを生み出すので、それをドメインに合うように分離することが大事と説いていました。

結局、依存は厄介なものであって、特に MVC の境界 (サービス層にあたるようなもの) はその依存関係が発生してしまうのでしいですが、それをうまく切り分けてシンプルにし、ドメインに基づいた名前を与え、エラー時には派手にエラーを挙げる (fail loudly) というのがうまく設計するポイントだと話していました。

また、それを支援するライブラリとして Elevate という gem を作って公開されました。

スライド: Elevate Your Intent

Accessibility and RubyMotion - Austin Seraphin

アクセシビリティについての話でした。

生まれつきの全盲である Austin さんの生活がいかにして iPhone の登場によって快適になり、さらに RubyMotion のおかげでいかにソフトウェア開発が容易になったか、というお話をまずはされました。

『カメラを使って色を認識し、その色を音声で教えてくれるアプリを使ってみたけど、何にかざしても "Black!" としか認識されず、最初はアプリが壊れているのかと思ったら、実は夜で電気をつけていなかったために "Black" と認識されていたと気づき、電気をつけた』というエピソードが印象的でした。

Xcode の Interface Builder は全く全盲者にとってはアクセシビリティに乏しく、とても辛いものだそうです。しかし、自分の好きなツールを自由に選択でき、コードで開発ができる RubyMotion はそんな方にも可能性を与えるものとして素晴らしいとのことでした。

その話の後は、実際に開発者はどんな所に気をつけて開発すればいいのか、というところを具体的にレクチャーして頂きました。

スライド: RUBY MOTION & ACCESSIBILITY

Core Data For The Curious Rubyist - Jonathan Penn さん

資料 (PDF): Core Data For The Curious Rubyist

Core Data についてのお話でした。

「Core Data は SQLite の ORM ではなくオブジェクトグラフである」という話から始まり、Core Data を使う上で理解する必要のある以下の 5 つの概念についての説明がありました。

  • Context (NSManagedObjectContext)
  • Object (NSManagedObject)
  • Model (NSManagedObejctModel)
  • StoreCoordinator (NSPersistentStoreCoordinator)
  • FetchedResultsController (NSFetchedResultsController)

特に非同期処理周りはややこしそうですね。。。iOS 5 以上からは parentContext というプロパティができてやりやすくはなったらしいですが。

Core Data のモデルファイルをコードから生成できる Motion Migrate という gem も紹介されました。

あとは RubyMotion 用の Core Data のラッパーとして以下の2つの gem が挙げられました。

The Life and Times of an Object - Josh Ballanco さん

gdb を使った RubyMotion のデバッグの仕方の紹介とデモでした。

RubyMotion では以下のコマンドで dbg が起動します。

$ rake debug=1

また、gdb 上で bt(backtrace), b(breakpoint), p(print), pro(print-ruby-object), x(x/4w と打っていた) などを使って実際のデバッグ風景を見せてくれました。

僕が一番驚いたのは、p (char *)class_getName(<address>) のようにして Objective-C Runtime の関数が呼べることや、(char *)[[$1 keys] inspect] のようにして Rubyメソッドも呼べてしまうことでした。Ruby 処理系が Objective-C Runtime 上で実装されているおかげなんですね。

最後に MallocStackLoggingNoCompat=YES rake debug=1 でデバッガを起動した後で malloc_history を使ってメモリの確保 / 解放の履歴を見る方法の説明がありました。

Concurrency in RubyMotion: Use the Multicore Luke! - Mateus Armando さん

GCD, NSOperationQueue を使った非同期処理についてのお話でした。

GCD, NSOperationQueue の使い方についての全般的な説明、GCD / NSOperationQueue の比較もありました。

Mateus さんのブログには他にも GCD 関連のわかりやすい記事が掲載されています。

スライド: CONCURRENCY PATTERNS IN RUBYMOTION

Get More From RubyMotion with RubyMine - Dennis Ushakov さん

RubyMine での開発、デバッグなどのデモでした。

デバッグ用途だけで RubyMine を使うというのも割とありな気がします。

Crafting iOS Dev Tools in Redcar - Delisa Mason さん

Ruby で実装された Redcar というエディタの紹介でした。

実際に HTML でプラグインを書くライブコーディングによるデモと、エディタ上でドキュメントを見られたり、デバッグができると言った特徴の説明がありました。

スライド: Crafting iOS Dev Tools in Redcar, the Ruby Editor

以上で 1 日目が終わり、その日の夜は @watson1978 さんとムール貝食べてきました。

f:id:satococoa:20141110000800j:plain

2 日目

NSRevolution: How Ruby hackers built the new Objective-C Open Source community - Mattt Thompson さん

Ruby, Objective-C 双方の歴史などを振り返るところから話が始まりました。

RubySmalltalk, perl, eiffel, lisp から強く影響を受けていて、ObjC は Smalltalk, C から影響を (C は影響というよりは、親みたいなものですが) 受けていて、双方ともメッセージパッシングについては Smalltalk の影響が大きいといった感じです。

そして Ruby の影響で Objective-C での開発フローやツールも変わってきているという話に移り、以下のライブラリやツールの紹介がありました。

CocoaPods

Bundler for Objective-C

ReactiveCocoa

Functional Reactive Programming Framework

NUI

Stylesheets for iOS

KIF

Testing framework

Frank

Cucumber for iOS

Cupertino

CLI for Apple Developer Shenzhen, Houston, Venice, Dubai

More Than You Need to Know About CocoaPods - Eloy Duran さん

CocoaPods についての説明と、今後の展開についてのお話でした。

例えば AFNetworking を使おうとした場合、通常は Xcode であちこちをいじらないといけないところ、CocoaPods を使えばとても簡単に使えるというのを実際に動画であらかじめ撮影したデモを見せてもらい、CocoaPods 無しのライブラリのインストールのあまりの煩雑さに会場は大ウケでした。

CocoaPods の .podspec ファイルの運用については、従来は GitHub の Pull Request ベースで人力で運用していたところを、GitHub API と TravisCI API を使って、自動的に Pull Request を出してマージするサーバを作るようにする、というお話がありました。

また、CocoaPods でインストールできるライブラリのドキュメントを集約する CocoaDocs というサイトができました。(Ruby で言うところの RubyDoc.info ですね。

Wrapping iOS in RubyMotion - Clay Allsopp さん

RubyMotion でより Ruby らしくアプリケーションを作るためのラッパーを作るコツのお話でした。

例えば delegate の代わりに callback を使うという例で以下のコードが挙げられていました。

# CoreLocation delegate
Location.get do |location|
  p location[:to]
end

Location.get メソッドはブロックをインスタンス変数に入れて保持し、delegateself として delegate メソッド内でそのブロックを call しているといった具合です。

また、ブロックを書くときも ->(arg1, arg2) {} の記法を使ったり、成功時と失敗時に別々のブロックを渡すような ObjC のメソッドをラップするときには Ruby では一つのブロックを渡すようにしてブロック中で if request.success? みたいにして分岐する方が Ruby らしくなる、という話もありました。

あとは定数や ENUM は Symbol で指定できるようにすると使いやすいね、とか camelCase は snake_case に、演算子オーバーロードメタプログラミングなどの話もありましたのでスライドを参照してください。

スライド: Wrapping iOS with RubyMotion

Goodbye IB, Hello Teacup - Colin Gray さん

まずは teacup gem の紹介でした。

Layout と Style というオブジェクトを使ってロジックと見た目を切り離して書くことができます。

また、sweettea も使うことで、Style をより CSS っぽく書くことも可能になります。

この場で実機で UI を FirebugChrome の開発者ツールのようにデバッグができる Kiln (今は名前が変わって motion-xray になっています) という gem の発表がありました。

Using BubbleWrap to Quickly Build RubyMotion Apps - Marin Usalj さん

BubbleWrap の各モジュールの紹介と簡単な使い方のお話でした。

Mixing CoffeeScript in RubyMotion apps - Michael Erasmus さん

cross platform の開発のために Web と Native のハイブリッドアプリを作っていて、Web の部分では CoffeeScript を使っているよ、という内容でした。

まだ試しているだけの段階で深いところまではやっていないけれども、ロジックを Web の中の CoffeeScript で書くことで各プラットフォームで再利用できるようにしたい、という狙いだそうです。

Native と CoffeeScript (JavaScript) とのやりとりは iframe を使っているそうです。

Building Interactive Data Visualization Charts - Amit Kumar さん

Data visualization ということで、いくつかのグラフを描画するライブラリについての紹介の後、ご自身で作られた gem の紹介でした。

UIWebView を使うもの
Native

このうち、Native かつ Open Source の CorePlot のラッパーが motion-plot です。

スライド: RubyMotion - Building Interactive Data Visualization Charts

Cocos2D, an Easier Way - Juan Karam さん

ゲーム開発用のフレームワークである Cocos2D と、それとよく組み合わせて使われる物理演算エンジンの Box2D についてのお話でした。

Box2D は C++ で書かれているためにそのままでは RubyMotion から扱うことが出来ず、Objective-C でラッパーを書いてあげる必要があります。

そのあたりに手をつけ、RubyMotion から扱いやすくした gem がこの場で発表された Joybox です。

ライブコーディングであっという間にゲームを作っていた様子が圧巻でした。

まだまだ未実装だったり、ドキュメントが全然なかったりするので協力者を募集しています。

Let's Move with CoreMotion - Akshat Paul さん、Abhishek Nalwaya さん

正直、内容をあんまり覚えていません。

iPhone の Prezi アプリでプレゼンをしていたのですが、途中で Push 通知が来たり、電話がかかってきたりして爆笑した記憶が強く。。。

iOS での加速度センサやジャイロスコープの扱いの話でした。

RubyMotion: Past, Present and Future - Laurent Sansonetti さん

Laurent さんのこれまでの半生と、今後の RubyMotion のロードマップについての発表がありました。

ロードマップ
  • Toolchain improvements
  • Code generators
  • Profiler (CPU, Memory)
  • Code reloading (REPL)
  • Static code analysis
  • Tutorials
  • Enterprise support
  • More platforms

この中では、やはり More platforms が気になりますね。(BlackBerry ではないそうです/笑)

あとは Code reloading が便利そう。ちょっとした View の変更とかが再ビルドしなくても確認できるとなるとなかなか嬉しいですね。

次回のカンファレンス、#inspect 2014 は NewYork city か Mexico あたりで開催される予定らしいです。

まとめ

暗い場所だったのでだいぶブレましたが、アフターパーティで Laurent さんと撮りました。

f:id:satococoa:20141110000811j:plain

英語力の不足をひしひしと感じる中、なんとか発表の内容を理解しようと必死の2日間でした。なかなか参加者の方とコミュニケーションを取ることも大変だったのですが、最終日のアフターパーティではお酒の勢いを借りて色んな人とお話しできてよかったです。

日本でも 5/29 に RubyMotion Kaigi 2013 というイベントを予定していて、Laurent さんにもしゃべってもらう予定です。

15 年以上ぶりの海外で色々戸惑うところも多かったですが、記念すべき初めてのカンファレンスに参加できてとてもよかったです。

あわせて読みたい: RubyMotion Conference 2013 - Watson's Blog

Rails Girls Tokyo 2nd に参加しました

LT枠だけでの参加でしたが、Rails Girls Tokyo 2nd に混ぜてもらいました!

参加者の方が継続的に勉強を進められるコミュニティのご紹介として #p4d の宣伝をさせていただきました。

発表資料置いておきます。(スライドのページ にある Download PDF のリンクから PDF をダウンロードすればリンクも動作します。)

【私撰】次のステップとしておすすめの Ruby コミュニティ【おまけ】

個人的に僕がよく顔を出すコミュニティのうち、Rails Girls の参加者にお勧めできるコミュニティを挙げてみます。

昨日の帰り際に @yotii23 さんともお話したのですが、まずは今回のコーチのいるコミュニティ(のコーチがちょうど参加している回)に行ってみるとすんなりとけ込めるのでは。と思います。

コメントは全て僕の主観ですのでご注意を。

RailsGirls, More

公式なので、間違いなくここがおすすめ。参加方法はFBグループかメールで参加者の方に届くそうです。

お問い合わせ先は @yotii23 さんか @publichtml さんでいいのかな?

P4D デザイナー向けプログラム部

LT させてもらったので概要は省略。

会える人

Sendagaya.rb

毎週月曜日に meetup を開催している Ruby コミュニティです。今は新宿で毎週やっているのでアクセスの良さもポイント!

僕がいるときに来てもらえれば普通に Rails も教えたりできます。

紹介スライド -> ボクが東京に来て作ったモノ by @fukajun

会える人

Yokohama.rb

毎月第2土曜日あたりに横浜駅の一つ東京側の東神奈川駅から徒歩10分ほどの場所で開催しています。

東京から参加している人も多く、僕も1時間ちょいかけて通っています。

土曜日開催 & Ruby レシピブック読書会などもあり、Ruby ビギナーにもとても参加しやすい雰囲気がポイントです。

会える人

それぞれのコミュニティですごい人がたくさんいるのですが、失礼ながらとりあえずパッと頭に浮かんだ人だけ書かせていただきました。

では、またどこかのコミュニティでお会いしましょう!