Ruby Hack Challenge の良さについて書いてみる
実際に参加したところとても良いイベントだったので、何が良かったのかという日記を書いてみようと思う。
僕が参加したのはこちらです。6/23 (Sat) にありました。Cookpad Ruby Hack Challenge #4 カバレッジ特別回
そして、7/16 (Mon) にもイベントがありますね。高専カンファレンス Ruby Hack Challenge - Rails寺子屋特別編
まず本題である良かったことですが、
- Ruby のカバレッジの取り方、見方を覚えることが出来た
- それは、自分に出来ることが増えたということ(カバレッジを見てこの辺テスト足すかとか)
- 実際にイベントの時間内に、イベントの趣旨に沿った PR を作れたこと (https://github.com/ruby/csv/pull/38)
- 他にもけっこう多くの人が、Ruby にパッチを送ったり出来ていたので、これはすごいイベントだな...!! と思いました。(そして聞く限りでは、僕もそうだけどその方々も特別知識があったわけではなく、当日の説明やサポートを受けつつパッチ送るまで到達したらしい)
僕の状態を書いてみると、
という感じになります。
上 2 つに当てはまる方はけっこういるのではないでしょうか? そういう方はきっと参加したら楽しめるでしょうし、おそらく当日得られるものがあると思います。という感想を実際に参加することで持ちました。
3 つめの仕事のことはあてはまってもそうでなくても、あまりどうでもいいかなと思います。
Ruby のことをもうちょっと知りたいと言っても、なんか凄いレベルでなくて良くて、ちょっと何かやってみるかと思える程度の興味があれば十分ではないでしょうか。
実際僕も興味だけあって大して知識がありませんでしたが、笹田さん、遠藤さんが用意してくれていた資料があって、それに沿ってやれば Ruby のビルドが出来てカバレッジが取れて、カバレッジの見方も説明してもらえて、途中で何かにハマったり理解できていないところがあれば自由に聞くことが出来ますし、だいたい会場内にいる誰かが詳しかったりする環境なので(これもすごいことだ)まあその時点での知識は問題にならないのではないでしょうか。
現時点での知識よりも、興味が持てることの方が大事だと思っていて、何故ならその後も継続しやすいと思うからです。継続できると、なんだかんだ役に立つようになってきたり、楽しみ方も増えてくるような感触はあります。
自分がそうだったのでこう言いますが、参加してみて、自分にも出来そうなことが見つけられたりしたら、けっこうお得だと思います。
技術書典5 に申し込んだ
表参道.rb #35 ~After RubyKaigi~
こちらも RubyKaigi のことなので、書きます。
表参道.rb で発表するのは、30回以来だったようです。たしかに久しぶりという感覚がありました。
After RubyKaigi というテーマですが、僕は振り返りだけするというよりは、アレです。kaigieffect は大事だと思っていたので、それを言葉にして、小さくても RubyKaigi から得たことから新しい何かをしたかった。
そう考えて今回選んでみたのがライフゲームの実装の話でした。RubyKaigi でも何度か話題にあがったシーンがあったと思います。僕は過去の表参道.rb の発表で、まだ自分で実装したことがないけれど時間があったらやりたいヤツとしてあげていました。なのでちょうどよい。機運だ。と思ってやりました。
書いてみると、以外にそこから膨らませるようなおもしろそうな話を浮かばす、結局やりました!動かします!バーン!!というだけのオチになってしまってイマイチでしたが、何はともあれやりたかったことがひとつ出来ました。
https://284km.github.io/slides/20180607_omotesandorb35/slides/#/
遅れて RubyKaigi 2018 の日記を書いた
途中まで書いたまましばらく放置となり、書くのが予定よりかなり遅れてしまった。 色々書いていると、RubyKaigi は色々ありすぎたので全然書き終わらなくてだから特に書きたいところだけ書くことにした。
RubyKaigi 前日の 5/30 (Wed) に仙台に着いて、翌日の 6/3 (Sun) に東京に戻ってきた。
昨年の RubyKaigi 2017 では、当日のお手伝いをしながら参加していた。 今年は LT speaker として参加することができた。
この点についてひとつ触れると、今年も RubyKaigi のお手伝いをしようかなと最初思っていたんだけれど、結局申し込まなかった。いつでも手伝う気持ちがあったにも関わらず。 それは今回は speaker として RubyKaigi のお手伝いをしたいという気持ちがあって、そちら側で手伝えそうな可能性があるなら今年はそちらでやってみるか。と考えたからです。両方やるというのは、今の自分にはちょっと無理と判断した(なかなかブチャラティの様にはなれないな)
そういうわけで、自分の出せる proposal を出してみたりした。 過去にもブログに書いたけれど、本編には CFP を2つ出していて、両方落ちている。そりゃそうだよなと思える内容だったので、そこでひとつ学び、次の RejectKaigi ではもうちょっと良いものが発表できたと思う。そこからもうひとつ良くして RubyKaigi LT の proposal を書いたらありがたいことに accept された。けっこう頑張ってたのでかなり嬉しかったですね。まあ、ここから継続することが大事なのですが。
LT では、今回絶対にひとつだけ実績解除したいことがあって、それだけはとにかく狙っていた。英語で発表するということだ。 正直、日本語で話した方がよっぽど伝えられるし、英語の出来は酷いものだったと思う。だが今回においてはそれで良いのだ。いやそれで良いのだというか、今はそれしか出来ないのだ。 なぜ英語で発表したいのかと言えば、国際会議だからだ。国際会議で英語で話すというのは普通のことだと思う。普通のことなので、それ以上に理由はない。という感じで今回に関して僕はそうしたかった。 とはいえやっぱり普通には話せなかったので、普通に話せるように訓練する必要があるなあと感じた。あとスライドをもっと早く完成させて、声に出して発表の練習する時間を設けるべきだ僕は。 この、自分の現在地点を知り、今までまったく見えなかったちょっと前が見えるようになる。みたいなのが挑戦した時に得られるもので、これの繰り返しで今回どうにかギリギリで LT に選んでもらえたところがあると思う。
LT で発表するまでにコードを書いている途中で何度か行き詰まったりしていた。RubyKaigi 2018 Keynote Speaker の須藤さんに相談に乗ってもらったり、Asakusa.rb で usa さんにアドバイスをもらったりしたことがとても助かった。大変感謝である。
松田さんの Closing が今年も最高に良くて、なぜこういう、人の心を突き刺しにくるような言葉の伝え方が出来るんだろうなあなどと思いつつ、感動をしつつ聴いていた。
僕にとって、RubyKaigi に触れる時にいつも含まれているのが Asakusa.rb についてのことだ。 RubyKaigi 期間中にも Asakusa.rb について人がどう思っているかをいくつか耳にすることがあったが、ジョーカーさんが書いてくれた記事が詳しくて、ああいう感じなのである。 Asakusa.rb で僕は多くを学んだと思う。ただ、なんで頻繁に参加しているかというと、得られるものが多いからという理由ではないと思っている。振り返ると、僕にとってなんとなく自然な場だったから、自然にそうなったという感じがしている。僕はあの場に集まる人達をすごく尊敬しているし、すごく好きだ。
今年は前回に比べ人と会う楽しみが増えていて、例えば 3 月に沖縄Ruby会議に行った時に知り合った方や、去年の RubyKaigi で知り合った方、ちょっとしか話せなかったけどそれでも僕のことを覚えていてくれた海外から参加している方々がそうだが、ほぼこの年一回の機会でしか会えないのだから RubyKaigi はそういう場としても重要である。
RubyKaigi が終わってすぐ書いていたら、この文章の締めくくりももう少し違う形になっていた気がする。惜しいことをしたなと少し思う。が、まあ仕方がない。 脈絡なく書いたが、これで書きたいことは書けたと思う。 なので、また日々のコードを書いてやっていきます。
日記。Asakusa.rb 第461回, Asakusa.vim
基本的にはなるべく急いで RubyKaigi の準備をしていた。
弊社(フィードフォース)の広報の方がどういう活動なのか(文化的なところとか)に興味を持ってくれて、最初の方一緒に参加して話に混ざったりしていた。Asakusa.rb が自社で開かれたりしているけれど、この様に実際に興味を持って足を運んでくれた人はエンジニア含めても社内で初めての出来事なので、純粋に僕としてはうれしかったです。 興味があれば、仙台に、RubyKaigi に実際に来るときっと良いですよとかふきこんでいたと思う。
そんな中、ujihisa さんと雑談を10分ほどしていて、何を話していたかはよく覚えていないのだけれど、その間に Asakusa.vim というものが誕生していた。便利そう。
こういう、なんだかスゴイものがある。
RejectKaigi 2018 で Super fast CSV parser という発表をしました
この記事を書いた直後ぐらいに通知が来ました。がんばります 💪
うおー!!まじか!
— 秒速 (@284km) 2018年5月14日
Your proposal for RubyKaigi 2018 LT has been accepted
RejectKaigi 2018 で Super fast CSV parser という発表をしました
@284kmさんによる「Super fast CSV parser」のお話がはじまりました! #RejectKaigi2018 pic.twitter.com/pX9iWLXaEA
— Speee Developer team (@speee_pr) 2018年5月12日
RejectKaigi とは言いますが、この Super fast CSV parser というネタ自体は実は RubyKaigi 本編の CFP に提出したものではなく、今のタイミングでちょうど自分がやっていることがコレだったのでその発表をしました。 (ちなみに本編 CFP は 2 つ提出して落選しているので、RejectKaigi の正当な参加権?! は僕は持っているはずだ)
スライドにも書いたとおり、開発を続けますという宣言をしているので、どうせここから大きく変わるはずですし、現時点での内容を細かく説明したりなどは今回ここでは特にしません。
RejectKaigi までを一区切りとした時に、そこまでの活動を通じてよかった点をいくつかあげたいと思います。
- ruby/csv の commit を全部読んで色々と知ることが出来た
- 途中で libcsv を使いたくなったので、FFI を使ってみるちょうどよい機会になったこと
- test-unit を使っていたので、test-unit についても最低限のことは調べたり、パッチを送ったりした
発表後、言われて特にうれしかったコメントが 2 つありました。この言葉の何が?と思う方もいるかもしれませんし、特に解説もしないのですが、僕は何を意味した言葉なのかをちゃんと理解しているつもりではいます。やっていきます。やっていきましょう。ということですね。
- 今回の発表よかったですね
- 発表を聴きながらコードを書くのが捗りました
やはり、発表すると関連した情報がけっこう集まって来るというのはうれしい出来事で、発表終了後に質問をたくさんもらえたこと、その中でも、Asakusa メンバーのモリスさんからの rcsv の他にもこういう既存の実装も存在するようですが、とか、ようさんからの fork ではなくてこれは新たな gem として作った方が良いのではとか、懇親会ではCSV に一家言ある MVP栗原さんと実装や考えを交換できたりもしました。大変便利です。ありがとうございます。
あと、id:onk さんと久し振りに会えたのも良かったなぁ。
RubyKaigi 2018 LT にはこの延長の話で提出しているので、もし accept されたら仙台でちゃんと話せるように準備したいですし、reject だったらそれはそれで継続して開発していきたいところです。
まとめると、今回も前回の発表より改善できたのではないかと思います。
その他いろいろ
秒速さんも本名で呼ばれると分からんなw #rejectkaigi2018
— ジョーカー 1007 (@joker1007) 2018年5月12日
#asakusarb 界隈の人間が「フルハシって誰だ!?」ってちょっとザワっとしたw #rejectkaigi2018
— tagomoris (@tagomoris) 2018年5月12日
本名を聞いても誰か分からなくて、脳内辞書で「本名 => 秒速」になって分かったw #rejectkaigi2018
— 神速 (@sinsoku_listy) 2018年5月12日
秒速さんだから速い話だ #RejectKaigi2018
— y@su (@yatmsu) 2018年5月12日
FasterCSV の存在を知っていると胸熱 #RejectKaigi2018
— Takafumi ONAKA (@onk) 2018年5月12日
「エッジケースのテストケースに対応していると開発の時間が足りなそうなので諦めた、その状態で3倍速い」うーん、エッジケースに対応するとガクッと遅くなったりするケースはよくあるからなんとも #rejectkaigi2018
— tagomoris (@tagomoris) 2018年5月12日
秒速さんのcsvパーサが完成したら、㍉i秒速とか㍃秒速とかに変わるのかな #rejectkaigi2018
— 神速 (@sinsoku_listy) 2018年5月12日
考えた過程の発表すごく良い #RejectKaigi2018
— Takafumi ONAKA (@onk) 2018年5月12日
CSV処理が早くなったらとても嬉しいので期待… #RejectKaigi2018
— ぱん (@nappan23) 2018年5月12日
CSV根本的にフォーマットとして難儀なので、デカいものは極力扱うべきではない…… #rejectkaigi2018
— tagomoris (@tagomoris) 2018年5月12日
あらゆる言語のCSVパーサー比較表ヤバそう #RejectKaigi2018
— kinoppyd (@GhostBrain) 2018年5月12日
「世の中に現存するあらゆる言語のあらゆるCSVパーサー実装との比較が見たい」 #rejectkaigi2018
— Yoshinori Kawasaki (@kawasy) 2018年5月12日
発表後の質疑を含めて熱い発表だった #rejectkaigi2018
— tommy (@tooooooooomy) 2018年5月12日
秒速さんのcsvパーサの話ぼくも聞きたかった。
— かつひささん (@katsuhisa__) 2018年5月12日
神戸に帰省するタイミング完全にミスったな。
FFTT (20180427) ふりかえりと、社の活動の紹介
FFTT というのは、フィードフォースの社内勉強会なんですが、それをやった後の振返りを qiita team に書こうと思ったところで、これ public で良い内容だな。qiita team に公開してから public に公開するよりも、先に public にしてから qiita team に貼った方がトラブルもなかろう。とか考えて雑に貼った。 (前提情報としては、僕が発表をして、聞いてくれた人が発表後に付箋に感想を書いてくれる。みたいなことをしたふりかえりです。)
FFTT (20180427) を終えて、まとめます。
発表資料はこちらです。
話したこと
- 1 - 4 月の活動報告
- 沖縄Ruby会議02 のふりかえり
- 技術書典4 サークル参加のふりかえり
- 身近な技術コミュニティの紹介など
- クリアコード須藤さんの沖縄Ruby会議02のスライドが良いので紹介
その他、言い忘れて思い出したことや、補足できること、付箋でいただいた感想に対する感想などを以下にシュッと書いていきます。
FFTT
http://tech.feedforce.jp/about/
FeedForce Tech Team ゆえに FFTT。
なるほどなー。
keynote テンプレートについて
僕はひとつのことをやるとしても、その途中でついでに得られる効果があるのなら得ておきたいと考えます。効率的にやることを進めないと、アニメを観たり、ゲームをする時間というのは中々作れなくなってしまいます。そこで今回はどうせ FFTT のスライドを作るのならば、フィードフォースぽい色の keynote テンプレートを育てていくぞ!という選択をしたのでした。
次回の対外的な発表は 5/12 の RejectKaigi 2018 になります。その後も何かとある予定ですが、keynote のテンプレートとかは、いい感じに仕上げていくには時間を要するものです。だからいつもはちょっとづつ育てています。毎回、ひとつ以上の改善を加えることによって、毎回ちょっとづつ良くする作戦を取っています。スライドを作っている最中ではそのテンプレートが最高かもしれないけれど、時間を置いて、次の機会にスライドを作る時に見直してみると、いやここはこうあるべきだろ過去の自分よ...。と思うことも多くあります。その為、時間をかけながら少しづつ改善していく必要があるのです。自分の場合は。
あとは、そういえば発表ではスライドの最後まで流すのを忘れましたが、スライドの最後に書いていたのでした。ここ最近の、カンファレンス参加の費用補助の決定など、非常にありがたい方向に進めて頂いたことにはとても感謝しています。その感謝の気持ちはできるだけ行動で表現するべきだと考えるケースが自分は多いです。今回はその一環で、まずはテンプレートをフィードフォースっぽく整えるとかをやってみるか。となったのでした。他にもやれることは考えているのでその辺は順次やっていきます。
楽しむことに対する貪欲な気持ち
これはけっこう冗談半分で、FF14 のゲーム仲間の楽しむことに対する貪欲さが凄い。という話をしたんですが、そこから学んだり感じ取ったことが無かったら、現実世界で、特に仕事でもなく、ただ趣味でやっているプログラミングの領域において、ここまで踏み込んで楽しもうという考えには至らなかったのではないかというのは本当にそうで、そういう意味で僕はゲーム仲間に救われたし、偶然だとしてもその世界を紹介してくれた @tmd45 には感謝しかないというのは、嘘のような冗談のような本当の話だったりするので、世の中何があるかわかりませんね。
頂いた付箋ごとにつらつらと書いていきます(カッコ内が僕のコメントになります)
- 沖縄Ruby会議の振返りおもしろかったです
- (ありがとうございます)
- 本は何冊刷ったんですか?
- feedforce color は 2 つある...!
- (せやな...!!)
- 外部コミュニティにめっちゃ出てるのスゴイと思ってます
- (スゴイかどうかってのは僕にとって興味の対象じゃないんですが、楽しいし、現実的なメリットもあるよ!!)
- それぞれの話 エモいし Tech いし 濃いし 面白い ラフに話してるのに!
- (これはですね、種明かしをすると、僕にとってのそういう風に思う hero みたいな人達が居て、それに学んだということですね。)
- (今でも別に上手とは思っていないんだけど、そう言ってもらえるのは上達したということだと思うので、ありがとうございます!)
- GraphQL Tokyo おもしろそう
- (はい、かなりおもしろかったですよ)
- 須藤さんとは Emacs 関連で話したことありました Emacs のメモリ管理まわりのコード
- (そう、フィードフォースにもめっちゃ強い人がいる!!)
- 自分もコミュニティ活動頑張っていこうと思った
- (僕はまったく頑張ってはいないんだけどw、何にしてもモチベーションの共有に成功した様でかなりうれしい!)
- 沖縄Ruby会議02 の話おもしろかったです!! 体に悪いのでちゃんと寝てください。
- (いやー、ありがとうございます。正直、興味のある人がいるのかがかなり不安で、やっぱりこういう声が無いと振返りをやるにしても、つまらん話でみんなを拘束してしまったら申し訳ないなあという感情でやることになってしまうので、こういう声に本当に救われるんですよ。今回に限らず、また僕に限らず、こういう声は見える形にして頂きたいです。僕もそうするので!)
- (そうね、寝られるようにやっていきます!ありがとう!)
- 秒速 vs 神速
- (それなw)
- 2m くらいの布やふろしき的なものがあると、サークルの見た目がよくなりますよ
- (先輩からのアドバイスだ!ありがとうございます!)
- 秒速さんが普段どういう考えで活動してるのかなんとなく知れて良かった
- (こういう話をする機会って、作り出さないと無いんですよね。あまりエモい話をわざわざするのも好きではないし。今回そういう機会になって良かったです。ありがとうございます。)
- yield しか使わなくても引数 (&block) の記載があった方が読みやすいというお話しは、とても共感しました!
- (ねー)
- そういった速度は遅いが読みやすいといったコードは いずれ速度が速くなるように改良されるというお話しも印象的でした!
- (ありがとうございます!)