日常

ケ・セラ・セラ

日記。Asakusa.rb 第461回, Asakusa.vim

asakusarb.esa.io

基本的にはなるべく急いで RubyKaigi の準備をしていた。

弊社(フィードフォース)の広報の方がどういう活動なのか(文化的なところとか)に興味を持ってくれて、最初の方一緒に参加して話に混ざったりしていた。Asakusa.rb が自社で開かれたりしているけれど、この様に実際に興味を持って足を運んでくれた人はエンジニア含めても社内で初めての出来事なので、純粋に僕としてはうれしかったです。 興味があれば、仙台に、RubyKaigi に実際に来るときっと良いですよとかふきこんでいたと思う。

そんな中、ujihisa さんと雑談を10分ほどしていて、何を話していたかはよく覚えていないのだけれど、その間に Asakusa.vim というものが誕生していた。便利そう。

asakusavim.connpass.com

こういう、なんだかスゴイものがある。

vim-adventures.com

RejectKaigi 2018 で Super fast CSV parser という発表をしました

この記事を書いた直後ぐらいに通知が来ました。がんばります 💪


speee.connpass.com

RejectKaigi 2018 で Super fast CSV parser という発表をしました

speakerdeck.com

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 だったらそれはそれで継続して開発していきたいところです。

まとめると、今回も前回の発表より改善できたのではないかと思います。

その他いろいろ

FFTT (20180427) ふりかえりと、社の活動の紹介

FFTT というのは、フィードフォースの社内勉強会なんですが、それをやった後の振返りを qiita team に書こうと思ったところで、これ public で良い内容だな。qiita team に公開してから public に公開するよりも、先に public にしてから qiita team に貼った方がトラブルもなかろう。とか考えて雑に貼った。 (前提情報としては、僕が発表をして、聞いてくれた人が発表後に付箋に感想を書いてくれる。みたいなことをしたふりかえりです。)

FFTT (20180427) を終えて、まとめます。

発表資料はこちらです。

speakerdeck.com

話したこと

  • 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会議の振返りおもしろかったです
    • (ありがとうございます)
  • 本は何冊刷ったんですか?
    • (今回 50部です。正直、全部売れると思ってなかったです。2h ちょっとで完売というのは非常にありがたい結果でした)
    • (利益を得ることも今回は考えていなくて、帰りに :beer: を飲んだりシャッツキステに長居して Ruby の型の話をしていたら利益分は全て吹き飛んだ程度です。出版までの一連のプロセスを辿り学ぶことが今回の目的なので OK)
    • (次回は冬コミか次の技術書典で新刊は考えていて、少しづつここで利益を得ていく計画はあります。まあ、とはいえ完全に楽しむこと優先ですが。)
  • feedforce color は 2 つある...!
    • (せやな...!!)
  • 外部コミュニティにめっちゃ出てるのスゴイと思ってます
    • (スゴイかどうかってのは僕にとって興味の対象じゃないんですが、楽しいし、現実的なメリットもあるよ!!)
  • それぞれの話 エモいし Tech いし 濃いし 面白い ラフに話してるのに!
    • (これはですね、種明かしをすると、僕にとってのそういう風に思う hero みたいな人達が居て、それに学んだということですね。)
    • (今でも別に上手とは思っていないんだけど、そう言ってもらえるのは上達したということだと思うので、ありがとうございます!)
  • GraphQL Tokyo おもしろそう
    • (はい、かなりおもしろかったですよ)
  • 須藤さんとは Emacs 関連で話したことありました Emacs のメモリ管理まわりのコード
    • (そう、フィードフォースにもめっちゃ強い人がいる!!)
  • 自分もコミュニティ活動頑張っていこうと思った
    • (僕はまったく頑張ってはいないんだけどw、何にしてもモチベーションの共有に成功した様でかなりうれしい!)
  • 沖縄Ruby会議02 の話おもしろかったです!! 体に悪いのでちゃんと寝てください。
    • (いやー、ありがとうございます。正直、興味のある人がいるのかがかなり不安で、やっぱりこういう声が無いと振返りをやるにしても、つまらん話でみんなを拘束してしまったら申し訳ないなあという感情でやることになってしまうので、こういう声に本当に救われるんですよ。今回に限らず、また僕に限らず、こういう声は見える形にして頂きたいです。僕もそうするので!)
    • (そうね、寝られるようにやっていきます!ありがとう!)
  • 秒速 vs 神速
    • (それなw)
  • 2m くらいの布やふろしき的なものがあると、サークルの見た目がよくなりますよ
    • (先輩からのアドバイスだ!ありがとうございます!)
  • 秒速さんが普段どういう考えで活動してるのかなんとなく知れて良かった
    • (こういう話をする機会って、作り出さないと無いんですよね。あまりエモい話をわざわざするのも好きではないし。今回そういう機会になって良かったです。ありがとうございます。)
  • yield しか使わなくても引数 (&block) の記載があった方が読みやすいというお話しは、とても共感しました!
    • (ねー)
  • そういった速度は遅いが読みやすいといったコードは いずれ速度が速くなるように改良されるというお話しも印象的でした!
    • (ありがとうございます!)

(き27 どらやきもなか)技術書典4にサークル参加しました #技術書典

サークル どらやきもなか として技術書典4 に参加して、新刊 "Fast Code for Ruby" と、神速さんの "Clean Code for Rails" を委託で頒布しました。

techbookfest.org

今回は 13 時を過ぎた頃、最高のタイミングで、神速さんの "Clean Code for Rails" と共に完売となりました。みなさま本当にありがとうございました。

f:id:at284km:20180424161428j:plain

だいたい、言いたいことは全てあとがきに詰まっていた感じなので、あとがきをペタッと貼りますね。(実は、最後の最後、寝てるのか寝ていないのかみたいな境地でこのあとがきは書かれていたので、後から見て、なるほどこういうことを最後に書き残したのだなと自分で把握しました...。)

= あとがき

初めての同人誌制作を終えて、ほっとした気持ちがあったり、反省点も多かったり(特にスケジューリングに関する)、やり方をひととおり覚えたので、次は今回よりも良いものにしたいという気持ちが湧いていたり、とにかく寝たかったり...。

正直なところ、もっと書きたかったことがあった。特に MRI の実装のことなんですけれど、全然間に合いませんでした...。ごめんなさいm(_ _)m。

今回、自分で実際に同人誌制作のひととおりのプロセスを辿ることによって、8ページ毎に印刷料金の壁があるのだなとか、最終的に何が揃っていれば完了できるのかとか、表紙のことや電子版の配布をするとしたらどうすれば良いかとか、入稿のやり方とか、学びがたくさんあった。とにかくやってみて良かったです。実際にやることにより、自分が何が出来て、何が出来なかったかは明らかになりました。

それと、気軽に本を書いて良いんだよということをこれで自分で示せたのではないかと思います。凄くなくても良くて、ハードル上げなくてもよくて、自分の好きなことを自由に書いて良いんですよと、そういうことを示せたら良いなと思っていたのでした。そんな風に、気軽に自分の好きな内容で本を書く方が増えたらおもしろいじゃないですか。買いに行きたい。

最後になりますが今回、技術書典4 での活動において、多くのアドバイスやサポートをしてくれた @sinsoku さん、@youchan さん、しんどい時に、本買いにいきますね!と声をかけて元気を与えてくれたいつも優しいパーソン達には、特に感謝しています。ありがとうございました。

次回がある予定ですが、内容は未定です。 今回よりも一つ以上の改善を加えたものを作れるようにしたいです。

完売後にも、買いたかったと言ってくれる方がたくさんいて非常にありがたいです。 そこで電子版についても少し考えてみたのですが、今回は電子版は出さずに、技術書典4 で頒布した紙の本のみとしたいと思います。電子版買います!と言ってくれた方々にはごめんなさい。

そうする理由ですが、そういうのも同人誌の良さだったりするじゃないですか?? わりとあの世界観が好きなんですよ。 それと、自分自身の興味としてはもう次のものに移ってしまっていたりもするので、何らかの次のアウトプットで今回より良いものを見せられたらなという気持ちの方が強いのです。

あと、名前は分からないんですが、よく会うから知っています!!という方もたくさん買ってくれたのですが、そこで twitter id とか聞いておけば良かったんだよなと、後になって思ったりしました。何故そうしなかったのか。

最後に、今回ねこのしっぽさんに大変お世話になりまして、実は入稿チャレンジに一度失敗しているんですが、ギリギリになって入稿したにも関わらず、また、全然知識の足りていない状態の人間に、非常に親切に説明、対応をしてくれたおかげで無事に当日を迎えることが出来ました。次のために、それら情報を簡単にまとめておきたいと思います。

  • 表紙
    • 同人誌の申込がB5サイズだが、データのサイズがA4
      • (B5サイズに縮小して頂き、見え方も大丈夫だったが、次は気をつけよう)
  • 表紙、裏表紙ともレイヤーが複数残っている

    • (次回は結合して入稿します...!!)
  • 本文

    • 印刷作業に本文の通しのノンブルが必要となる
      • (次回以降可能なら通しで入れる)
  • 目次
    • 目次ページと「第一章」の間の白紙は、仕様で大丈夫ですか?
      • (これなんで空白ページができちゃうかなあ?? 調べて直したい)
      • 目次の文字が赤色で出来ております。
    • 1色に落として作業を行いますが、その際赤色はグレー(おおよそ K62%程)になります。
      • (全然気にしていなかった...。見え方は大丈夫だったが、次回再考する)
    • 文字がグレーの枠よりはみ出ている
    • データ上のノンブル13P目、綴じ口ギリギリに文字があり糊で閉じた際、見えづらくなりそう
      • (最後の方、細かい調整をする時間を作ろう...!!)
  • その他
    • 神速さんが買ってきてくれた 100 円と、500 円のコインケース、お札を止めておくためのクリップがとても便利だった
    • 見本誌を置く良い感じの台があったらほしい。
    • いい感じの POP とか用意できたら便利だよね

スタッフのみなさま、お疲れ様でした。ありがとうございました。

それではまた次回。

railsdm 2018 esa LT大会(\( ⁰⊖⁰)/) に飛び入ってきた #railsdm

docs.esa.io

頂いたステッカーを Mac に貼ったり、

からあげ弁当をおいしくいただいたり、

esa が好きなみなさんのトークを楽しく聴いたり、

いつもお世話になっている esa に感謝の LT などをした。

なぜか飛び入り LT の asakusa.rb っぽい人率がかなり高かった。

speakerdeck.com

沖縄 RubyKaigi 02 で Ruby の速いコードについて話してきました #okrk02

3/9 の 14:30 頃沖縄に着き、 3/11 の 19:15 の便で帰ってきました。沖縄、大変よかった。

ruby.okinawa

speakerdeck.com

話したこと

Ruby で速いコードを書く時に考えることを中心に、ベンチマーカーである benchmark_driver が良いという紹介と、ベンチマーク結果を元に、何故実行速度に差がでるのか、その追い方について話してきました。

benchmark_driver の好きな部分は大きくは 2 つあって、以下のものです。その他にも benchmark-ips と比較して改善ポイントがあるので、気になる方は READMEk0kubun さんの記事 を見てみると良いと思います。

  • 複数の指定した処理系の比較結果を得ることができる (x.rbenv '2.4.3', '2.5.0' のように)
  • 結果の出力形式を指定することができる(:markdown, :memory とか)

github.com

舞台裏的なはなし

難しかったのは、どこに焦点を合わせた内容にするかというところで、発表内容を考える時に悩みました。安定したベンチマークを取るための実行環境の話なども用意していたのですが、そこはバッサリと削りました。 また、一つ一つの Ruby の実装を詳細に追っていくよりも、よくある (と思っている) 数パターンの見方を説明した方が、そこから興味のある方は潜っていけるだろう。と、実はそういう選択をしていました。

今回、発表資料に自分で撮った首里城の写真を入れたいなという、謎のこだわりがあったのですが、スライド2枚目の首里城の画像は実際には発表後の 3/11 に行って撮ったものです。ちょうど人が映らない一瞬の隙を突いて撮れた会心の一枚です。 では発表時点ではどうしていたかというと、hsbt さんの日記に良い写真があることを知っていたので、一時的にお借りしたのでした。という裏話があったりします。

www.hsbt.org

お疲れ様でした。ありがとうございました。

沖縄 Ruby 会議 02 が開催されたことで、これまで会ったことのなかった Rubyist と色々な話をすることができました。特に、そんなことできるの...!!?? みたいな驚きのあるコードが次から次へと出てくる okinawarb の方々を知ることが出来たのは衝撃でした。

運営に携わった方々をはじめ、みなさんありがとうございました。沖縄 Ruby 会議 03 にはまた参加したいですね。

技術書典4に申し込んだ

こんにちは。暫くぶりです。思いつきで書く気になりました。

一昨日、明日締め切りだと気付いて考え始め、サークル名がなかなか決まらなくて、昨日やっと技術書典4 に申し込んだ。時系列の難しい文章になった。

動機は、技術書典で技術書を出してみたいというのが先にあって、今回まずそれをやってみようと思ったことがひとつ。 もうひとつあって、いくつか調べて知りたいことがあるのだけれど、どれもいまいち進んでいない。そこで、技術書典に申し込めばきっとそれをやることになるだろう。と、良い具合に進むことを期待してというのがあります。イベント駆動です。

内容は現在 4 パターンで迷っていて、申込み時点では以下の内容にした。

Ruby でプログラミングしていると、同様の結果を得ることのできる複数の書き方が頭に浮かぶことがあります。そこで、より速い Ruby のコードを書くためのイディオムを、ベンチマーク、速さの理由である実装の解説を添えて紹介します。

その他、最近やっていることなどから書けそうかなあと考えているネタは以下のようなものがある。まだ全然、どうなるか分からない。

そもそもまだ何も決まっていない。当落も未確定なので、もし当選したらまた続きを考えたい。