福岡Ruby会議02

個人的には島田さんとキーノートおふたりの話が印象に残った。とりわけ島田さんと松田さんの話は、どちらの話がどちらの話だったか錯覚を起こすくらいには通じた話だったのが面白かった。 島田さんは Ruby っぽいコードへのリファクタリングを実演をもとに見せてくれて、リファクタリング後の最終形がおそらくその場で聞いていた Ruby プログラマーが共通して思い描いている「Ruby っぽいコード」になっているんじゃないかなと思っていたりした (まさにバベル17である) 。プログラミングスタイルという説明が難しい題材に対しても言語化されてコードを交えて説明されていたのが説得力の強い講演だった。

バベル17 (ハヤカワ文庫 SF 248)

バベル17 (ハヤカワ文庫 SF 248)

他の講演の感想についても、とりあえず隙間隙間に書いていける分は書いてみたいと思っている (気持ち) 。

福岡Ruby会議02 前夜祭

初福岡。pixiv さん主催の福岡Ruby会議02 前夜祭に行った。

fukuokarb.connpass.com

当日の LT スライドは、来週の Meguro.rb#9 での再放送が終わったら公開する予定 (たぶんその方が面白いと思う) 。

RuboCop 自体について後の二次会などでも話題に出来たので対話の触媒にできて良かった。二次会で話したことでもある、自然な肌触りの Ruby を RuboCop で機械化されることについて少し書こうと思ったけれど、テキストに記すには整理する時間を当面作れないと思うため、自分として「自然な」という事柄について影響を受けた参考図書を挙げておく。

時を超えた建設の道

時を超えた建設の道

あとは、個人的に最近 RuboCop にパッチを送っているのは、広く普及した Gem であるのは事実であるので、RuboCop を Ruby の手触り感に近い形にしていけると良いだろうなあという遠い道のりに思いを馳せながら参加しているといったことなんかをスライドには載せていないこととして話していたのだった。

Gemspec/DuplicatedAssignment cop の PR を出した

RuboCop JP の Issue にあった New cop を PR にしていたりした。

github.com

pocke さんが記されているのと同じく、私も RubyGems 自体が警告を出すような仕組みがあるかは見ていないけれど、興味のある人がいれば実装がなさそうだったらそういった提案の PR を出してみてもいいのではと思ったりしている。

Ginza.rb 第53回

「Ginza.rb 第53回 Gemfileのみせっこ!みんなどんなの使ってます」に行った。会場は FiNC さん。

ginzarb.doorkeeper.jp

回収場所に記された Gemfile を見て行く流れで、定番の Gem から昔みた Gem 、知らなかった Gem などを見て行くことができた。

github.com

やはりみなさん必要に応じて Forked gem を用意しているようで、そんななかでも willnet さんが持ち寄った Gemfile の以下の指定が印象に残ったりしてた。

gem 'cells-hamlit', github: 'willnet/cells-hamlit', branch: 'k0kubun'

その後、k0kubun さんによって Gemify されたので、同様の Forked gem をもちいている方がいたら gem 指定にすると良いと思う。

福岡Ruby会議02前夜祭のスライドづくり

正確には昨日の夜から朝2時くらいにかけてのことだが、RWC 2017 のため島根に向かう飛行機で書いたテキストを Keynote に起こしたりしていた。Heaven's Feel に倣って三部作にする予定で、第二部については今週の福岡行きの飛行機でテキストを起こそうと思っている。

AppVoyer で bundler's executable "bundle" conflicts

どうも 2017-11-19 (JST) 本日未明より AppVoyer で以下のような Bundler インストールでの競合が発生するようになっていた模様。

gem install bundler --no-document
bundler's executable "bundle" conflicts with C:/Ruby23/bin/bundle
Overwrite the executable? [yN]  

https://ci.appveyor.com/project/bbatsov/rubocop/build/1540/job/f8gxj2m6b53qe3tg#L23

これが原因で 60 min のタイムアウトでジョブが失敗していた。

Build execution time has reached the maximum allowed time for your plan (60 minutes).

https://ci.appveyor.com/project/bbatsov/rubocop/build/1540/job/f8gxj2m6b53qe3tg/messages

既にレポートが上がって、いちおう解決はしてはいるらしいけれど、自分の見ているビルドは上手く動いていないのでとりあえずコメントをしているところ。同様の問題を見掛けたら以下の Issue を見てみると良いと思う。

github.com