VimConf 2017 を振り返る

VimConf 2017 に、スタッフとして参加したので、その簡単に振り返りなどを。この内容はあくまで個人的なものであり、運営チームとしての見解ではありません。

今年の VimConf の立ち上げ

例年の VimConf に参加してくれていた人ならわかると思いますが、今年の VimConf は規模が去年までとは違い、かなり大きくなりました。

そもそも今年の VimConf の企画立ち上げ当初、我々には課題がありました。VimConf では将来的に Bram さんを招待したいと謳っているのですが、昨年までのペースではとてもではないけどそれは実現できないだろう、ということです。これを達成するためには、VimConf は大きく変わる必要がありました。

規模を大きくするには多くの壁があります。多くの人が入る会場を確保し、資金を調達する必要があります。会場を大きくしたとして、人が集まるかどうかはわかりません。国際カンファレンスを銘打っているのに、国際感がないとの指摘も以前からありました。とても大変であろうことは想像に難くありませんでした。この時点で、例えば、Bram さんを招待するという目標を撤回して細々と続けていく、という選択肢もあり得ました。

しかし、我々は前に進むことに決めました。正直なところ私は乗っかっただけなのであまり偉そうなことは言えないんですが。この辺りの決断に関する話を秋葉原にある肉の万世でしたのは今でも覚えています。

会場について

今回の開催で、良かった点をいくつか挙げてみようと思います。まずは会場について。

今回会場として使わせてもらった富士ソフトさんのアキバプラザは素晴らしかったですね。全席電源付き、Wi-Fi あり、そして雛壇状になっているので後ろでも発表が見やすいと、参加者にとってもそうでしたが、様々なオプションが付いていたおかげで、なんとか少ないスタッフでも無事回すことができました。 例えば参加者に配布した通訳用のレシーバー、あれも会場側が用意してくれたものです。

Fatih さんの登壇および英語発表

Fatih さんに登壇してもらえたのは本当に幸運だったと思います。

先ほど、国際感がないという話をしましたが、Fatih さんの登壇によって一気に国際感が上がりました。

また、スピーカー募集時に意識したおかげもあってかはわかりませんが、英語で発表してくれるスピーカーさんも予想より多く、国際カンファレンスの名に恥じないイベントになったと思います。

この場を借りて、Fatih さんおよびスピーカーの皆さん(もちろん日本語で発表した人も!)にお礼を言いたいと思います。ありがとうございました!

スポンサー

正直に言うと、私は最初、Vim のイベントにスポンサーはそうそう付かないだろうと思っていました。

企業で特定技術を使っていれば、その特定技術のイベントのスポンサーになることで技術者にアピールすることは理解できるのですが、Vim は個人単位で利用を選択するレベルのもので、企業として Vim をやっていきます!ということにはならないわけなので、難しいのかな、と。しかし実際には多くの企業がスポンサーになってくれました。更には終わった後にスポンサーになり損ねたのを悔やむ声も。本当にありがたいことです。

今回の開催で、「Vim のイベントに企業スポンサーをつけるのは難しいのではないか」という私の疑念は完全に払拭されました。

チケット完売

チケットについても、不安がありました。規模が大きくなったとは言え、去年の倍以上の値段で、枠も増えています。実際にチケットを売り出すまでは、ちゃんと掃けてくれるのか心配でしたが、そんな心配をよそに、無事完売御礼となりました。買えなかった人には申し分けなかったですが、来年に繋がるかどうかはチケットがちゃんと売れるかどうか次第だったので、ホッとしました。

開催を終えて

まずはとにかく無事に終わって一安心と言ったところです。当日の様子や上がってくる感想記事などを見た感じだと評判も上々のようで、本当にやって良かったと思います。

一方で反省材料もあれこれと。ここで具体的には書きませんが、来年に活かしたいところです。

興奮冷めやらぬ週明け、スタッフメンバーでささやかな打ち上げをしました。会場は秋葉原肉の万世。お肉おいしいです。

ちなみにスタッフはみんなざっくりの担当はありつつも雑用もみんなしつつみたいな感じで、私は主にパンフレットおよびイベントロゴの作成、をしてくれるデザイナーさんとの連絡役でした。パンフレット、気に入って頂けたなら嬉しいです。

当日作っていたものについて

なんか真面目っぽい話をしてしまったので、最後に少し雑な話を。

皆さんの発表を聞いていて、感極まってきて何かしら作りたくなってきたので、以前からアイディアがあったもののプロトタイプを作ってみた。

https://gist.github.com/thinca/ac438e1139c054b70a740b8f29e5ba0d

これは、Vim の中で動くターミナル(:terminal)の中で動く zsh の中で、:FooBar のように : で始まるコマンドを実行すると、外側の Vim でそのコマンドを実行し、zsh のコマンドの実行結果として出力するというもの。ギリギリ動くものの、まだ実用レベルではない。また、ターミナルについて詳しくないのでこのアプローチが妥当かとかもよくわかってない。

懇親会の最後に飛び込み発表タイムがあったので披露してみたのだけど、開発した環境が ssh 先で、会場の Wi-Fi は提供が終了していたのでテザリングでやったら回線がうまいこと動かなくてちょくちょく固まってしまった。みんなゴメンよ…。

1点、実行コマンドがそのまま出ちゃうのがなんとかできれば割と実用レベルまで持って行ける可能性があるので、できそうならやってみたいところ。Vim 本体を直すか、アプローチを変えるか…。

RubyKaigi 2017 に行ってきた

3 日間に渡る国内最大の Ruby カンファレンス、RubyKaigi 2017 に行ってきた。初参加!

RubyKaigi 自体も初参加なのだけど、複数日に渡る技術系イベントにフル参加したこと自体がたしか初めて。遠方だったのもあってかなり疲れた…。

いつものように極めて雑な感想を書きますが、ぶっちゃけ聞いたけどわからなかったのとかもあったりするので(英語だったり難易度だったり…)、いくつかピックアップして書きます。 あと勝手な解釈でまとめを書いてたりするので間違ってたらゴメン。

1日目

Keynote - ゆるふわRuby生活 - nobu

発表自体が非常にゆるふわで、ふわふわしながら聞いていたのだけど、たぶん Ruby の開発に参加しませんかっていうお話のはず。

会期中にも幾度か話題に挙がった、右代入はあると便利そう。しかしこれ仮に入ったとして、同じ意味を持つコードの書き方が増える=スタイルが増えるので、しばらくはスタイルの統一に苦心するかも。新しい文法はすべからくその可能性があるので最初は仕方ないんだけど。

API Development in 2017 - @onk

Schema First で開発しようという話。

API 記述ツール回りは私も個人的に少し追っていたので、概ね想像通りの内容だった。GraphQL はまだ実際に試すところまで行けてないのでちょっと触ってみたい。

Official Partyの場で質問する機会があったので、以下のような感じなことを聞いてみた。

  • Q: 既存の API 記述形式はいずれも Request/Response の記述のみだが、昨今は WebSocket などもあり、特にゲーム等では双方向通信のための API 記述が必要になることが多い。双方向通信の API を記述するにはどうするのがよいのか
  • A: うちも困ってて悩み中 (雑要約)

ですよねーー!という感じだった。とりあえず悩んでるのが私だけでないとわかってよかった(?)。

別のセッションで出てくる Language Server Protocol はまさしくこの双方向通信を使っているものなんだけど、現状は Markdown 形式の仕様書 があるのみ。プログラムから再利用可能な形式の API 定義がほしい。

Handling mails on a text editor - @shugomaeda

発表資料: https://github.com/shugo/RubyKaigi2017

Ruby で書かれたテキストエディタ、Textbringer の実装の話。

バックグラウンド実行の話は興味深い。 Vim の場合は歴史的経緯もあってプログラム全体がシングルスレッド。外部インターフェースを使えばスレッドが作れるが、そこから Vim のバッファなどの情報を書き換えると当然クラッシュする恐れがある。怖い。

Gemification for Ruby 2.5/3.0 - @hsbt

発表資料: https://www.slideshare.net/hsbt/gemification-for-ruby-2530

標準ライブラリを外部 gem にしていく計画の話。

標準ライブラリを gem として外に出していくことで、Ruby 本体の更新を待たずに gem を更新して最新のパッケージを使えるようになるので、ユーザーとしては助かる。作る方は互換性の確保などの必要があって大変らしい。

Ruby 2.5 から bundler が標準ライブラリになって gem install bundler が不要になるらしい。便利。

How to optimize Ruby internal. - Watson

発表資料: https://speakerdeck.com/watson/how-to-optimize-ruby-internal

地道にパフォーマンス改善していく話。

ものすごく淡々と、基本に忠実にパフォーマンス改善していた。カッコイイ。 計測で使っていた iprofiler が便利そうだったけど、Mac 用のアプリらしい。この辺りのツール類は計測したくなったときに色々調べてみよう。

I quit my job to write my own language: Goby - Stan

発表資料: https://www.slideshare.net/LoStan/goby-and-its-compiler

飼い猫がかわいいという話 自作言語 Goby の話。

どうやらまだまだコンパイラの作り方の勉強中らしい。割と基本的なバイトコード最適化の部分を「難しい」って言ってた。がんばれー。

私も時間取って言語作ったりしてみたいなー。

2日目

Keynote - The Many Faces of Module - matz

Ruby のモジュールが持つ役割の分類について。

今まで当たり前のようにモジュールを使ってきたけど、言われてみればモジュールは様々な種類の役割を持っていることに気付かされる。今回の講演では既存の役割として6種類の使い方が紹介されて、また今後増える可能性も示唆された。Structural signature は Ruby 3 に向けて議論されている型システムにも通じるものがあるので非常に興味深い。

そしてやはり最後、Ruby はもはや Matz さんだけの言語ではなく、我々の言語であると言っていたのが印象深かった。

An introduction and future of Ruby coverage library - mame

Rubyカバレッジライブラリの現状と今後について。

現状はラインカバレッジしか取れないので、もっと細かく取れるようにしていくとのこと。ブランチカバレッジも取れるようにしたいって話だったので、こんな風に行内の式のどの部分が実行されてないかわかるようになるといいなぁ。

ところで、カバレッジ結果の出し方について悩んでいるという話があった。ここでの話はライブラリの API の戻り値の話だったけど、それを更にファイルに出力する際のファイルのフォーマットって各言語の各ツールがみんなそれぞれ好き勝手にやってて全然統一されてないっぽい。Codecov の API リファレンスにある、受け付けるファイルフォーマットの種類はリストアップされているだけで21種類あり、実際にはもっとあると書かれている。まさにカオス。

カバレッジの結果って行やカラムなどのファイルの位置情報に終始していて言語の文法に依存することって基本なさそうなので、統一できそうなんだけどなぁ(ちゃんと作らないと行単位しか表せなかったりだと困るのでどの程度の表現力が必要かという話はあるだろうけど)…デファクトがないのがつらい。

Automated Type Contracts Generation for Ruby - Valentin Fondaratov

発表資料: https://speakerdeck.com/valich/automated-type-contracts-generation-1

Ruby のコードの型情報を生成する手法について。

Ruby は動的な言語なので、静的解析には限界がある。他のセッションでも、完全な型情報を型を書かずに静的に決定するのは不可能という話があったりした。 動的な言語なんだから実際に実行しないとわからない。なら走らせてしまえ、というアプローチがおもしろい。やっぱり動かすしかないよね…。

任意の gem 内で定義されているメソッドが、テストコードによってどの型で呼び出されたかという情報を蓄積して、これにより型を得る。集めたデータはクラウドに蓄積し、public な gem に関してはユーザー間で共有する。これはすごい。

セッションの紹介ページをよく見るとわかるのだけど、これは RubyMine で使われている手法。Vim でもできるようになるといいなぁ。

Type Checking Ruby Programs with Annotations - @soutaro

アノテーションを書くことによって型情報を与え、その情報を元に型チェックを行う手法について。

型情報を書かずに、完璧な型チェックを行うことは不可能と結論していて、わかる…という感じ。どこかを妥協しないといけない。 steep という gem でできるようにしていて、Ruby 本体に手を加えずにできるので、試金石としてかなり良さそう。

Ruby Language Server - @mtsmfm

発表資料: https://speakerdeck.com/mtsmfm/ruby-language-server

Language Server Protocol の紹介と、Ruby 版の実装の解説。

Language Server Protocol についてはその前身の 1 つである OmniSharp の Vim 版クライアント omnisharp-vim のメンテナをしている(メンテナンスしているとは言っていない)のもあってかなり関心が高い。 Language Server が提供するものの 1 つに補完があるけど、この辺りの話題は今回の RubyKaigi で本当に多い。そしてそれが難しいと言う話も何度も出ていて、やはり現状では本当に簡単な補完しかまだできない模様。 この辺りは今後もっと周辺の環境が整っていきそうな気配があるので、要注目。

3日目

Exploring Memory in Ruby - Building a Compacting GC - @tenderlove

RubyGC にコンパクションを実装する話。

日本語でやってくれたのも大きいけど、感動的なくらいに話が非常にわかりやすい。GC 回りの基礎知識を私が持っていたのもあるかもしれない。

資料ではコンパクションは明示的に呼び出している模様。モチベーションの起源を考えると、それで十分なのかな。将来的に Ruby 本体に入れることを考えているかどうかはわからないけど、もし入れるのであればある程度自動で走ってほしいところ。しかしそうするとインクリメンタル GC との相性などもあるので、かなりハードルが上がりそうだ。

最後に話していた、不可能であるという思い込みを捨てろというのは割と刺さった。よいなぁ。

Ruby Parser In IRB 20th Anniversary…Now Let Time Resume - @aycabta

RDoc のレガシーと戦った話。

全てはこの PR のために。

私は某所で個人的に彼が大変な思いをしながらレガシーと戦っていたのを知っていたので、完全に感極まった。おめでとう!!!

Writing Lint for Ruby - Pocke

発表資料: https://speakerdeck.com/pocke/writing-lint-for-ruby

RuboCop の仕組みおよび新しいチェッカの追加方法などの解説。

質疑応答の中で紹介されていた --parallel オプションは知らなかったので収穫だった。 AST Visitor パターンの Lint の仕組みについては知識があったが、RuboCop 自体についてはそこまで詳しくなかったので、こういうのがポロッと知れるのはよい。

あとはセッションと別の機会で Pocke さん達と、RuboCop 遅いよね、という話題が上がったけどまあ雑談程度でいい案が浮ぶわけもなく。実際 Cop が増えれば増えるほど原理上遅くなるので、何か解消できる方法があるといいのだけど、何かないかなぁ。

Towards Ruby 3x3 performance - @vnmakarov

発表資料: https://vmakarov.fedorapeople.org/VMakarov-RubyKaigi2017.pdf

英語だったのと内容が高度すぎたのもあって理解がかなり怪しい…。スライドの英語と Twitter のデキる皆さんのツイートを頼りに解読した程度の理解度。

とにかく絶対難しいやつなのにサラッと作ったみたいなこと言ってるのがやばい。そして実際速くなってるとのこと。このセッション以外のアプローチもあるようだし、3x3 は割と見えてきている感じなのかな。すごい。

雑感

  • 英語のセッションが全然わからなくてつらい…。リスニングだけでももうちょっとなんとかしないといけないんかなぁ。
  • 初日に電源が提供されていることに全く気付かず、ないもんだと思って2日目コードを持って行かなかったら実はあったというアレ。3日目は存分に享受させてもらった。
  • 去年はあったとの噂の弁当ランチが今年はないとか、広島平和記念資料館にタダで入れるとか、当日にならないとわからない情報が割とあった。事前に公式サイトで確認できると嬉しかった(実は書いてあったとかだったらゴメンナサイ)
  • 前夜祭から始まり、毎日パーティがあって完全に食べすぎた…
    • 翌日に響いてウトウトしちゃったセッションもあったり
  • LT の感想はいくつか書きたかったけど力尽きた

とにかくめちゃくちゃ刺激を受けた。来年も是非行きたい!

lemonade でマルチバイト文字がコピーできなかった現象とその顛末

TL;DR $LANG 設定しろ。


某月某日。私はとある問題に頭を抱えていた。

「なんでマルチバイト文字を含む文字列だけコピーできないんだ!」

私は lemonade を使い、ssh 先から文字列をコピーしようとしていた。

lemonade については過去の記事に紹介を譲る。

ところが、マルチバイト文字を含む場合のみ、クリップボードが空になってしまうのだ。ASCII 文字だけならばなんの問題もないというのに。

最初は lemonade のバグを疑ったが、仮に報告をしたとして、現在 lemonade はメンテナを募集している状態だ。修正される可能性は低いだろう。何より困っているのは私自身だ。

「自分で調査するしかないか…」

lemonade は Go 言語で実装されている。Go 言語は不慣れだが、幸いにも勉強しようと思っていたところだ。既存のソフトウェアのソースコードを読むのは大変勉強になる。ある意味丁度いい。

原因を調査するために、ソースコードを変更してログを仕込む。しかし、私の lemonade サーバは Mac で動いており、以下のような設定でデーモンとして起動している。

~/Library/LaunchAgents/lemonade.server.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>lemonade.server</string>
  <key>KeepAlive</key>
  <true/>
  <key>ProgramArguments</key>
  <array>
    <string>lemonade</string>
    <string>server</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>
$ launchctl load ~/Library/LaunchAgents/lemonade.server.plist

このままでは標準出力に吐かれるログが見れない。いや、見る方法はあるのかもしれないが、そこまでは調べなかった。

ここはデーモンを止めて、コマンドラインから実行してしまうのがはやい。

$ launchctl unload ~/Library/LaunchAgents/lemonade.server.plist
$ lemonade server

これでログを見ることができる。

愚直に print デバッグを繰り返していると、とあることに気付く。

「あれ? …普通にマルチバイト文字送れてるぞ?」

そう、実はこの状態であれば lemonade はご機嫌に動作したのだ。

ここまで来ると原因が絞り込めてくる。この状態で動いているということは、lemonade のバグの線は消えたと言っていい。あとは環境の違いということになる。デーモンではダメで、手元のターミナルから直接実行だと動く。そして起きている現象は、マルチバイト文字に絡む…。

環境変数 $LANG 辺りが怪しいな」

そう思い立つと、適当に環境変数をファイルに出すプログラム sh -c 'env > env.txt' をデーモンに仕込んで、デーモン環境での環境変数を確認してみる。

思った通り、環境変数 $LANG が設定されていない。恐らくこれだろう。ということで、デーモンに環境変数を設定するように plist ファイルを以下のように書き換えた。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>lemonade.server</string>
  <key>KeepAlive</key>
  <true/>
  <key>ProgramArguments</key>
  <array>
    <string>lemonade</string>
    <string>server</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>EnvironmentVariables</key>
  <dict>
    <key>LANG</key>
    <string>ja_JP.UTF-8</string>
  </dict>
</dict>
</plist>

これで動かしたところ、無事、マルチバイト文字のコピーに成功した。世界に平和が訪れた。

後で知ったが、launchctl setenv などでデーモン全体の環境変数を設定することも可能なようだ。こちらでも良さそうだが、試していない。

Udon.vim #0 に行ってきた

はるばる行ったぞ初四国!というわけで Udon.vim #0 に行ってきた話。

うどん県上陸

神戸から深夜フェリーでうどん県へ。4 時間ほどの船旅。

フェリーだけど海っぽい揺れは全然なく、せいぜいエンジンっぽい揺れがあるくらいだった。フェリー感はあまりないけど、4 時間乗ることを考えるとこうなってないと船酔いする人がつらい。

結果的に使わなかったけど、横になって寝れるスペースもあり、そういう意味では高速バスより快適説があって、とてもよかった。本数が少ないのがネック。

本編

もくもく会ということで、私は前日に行われた関西Ruby会議2017のレポートを書く作業をしていた。香川まで行ってやることではない…。

ここまで来たからには交流メインでやるべきだったのだけど、たぶん話せてない人とかいた気がする(たぶん)。完全に失敗した。

他では、y0za さんの発表があったりして、とてもよかった。私も何か技術系の発表をすればよかったかも。次に遠征する際はちゃんと準備しよう。

懇親会

香川大学の学生さんが何名か参加していて、就活の話なども話題に上がった。

あとは、香川だけだと人が集まらないので、四国.vim をやるか、みたいな話題が上がった。次回は愛媛で柑橘類食べ放題の Vim 勉強会が開催されるとのもっぱらの噂。

うどん録

滞在中にうどんを 4 杯食べました。

1日目。

2日目。

うどんめっちゃおいしいのだけど、最低でも1玉単位で出てくるのでハシゴは2件までしか無理だった…。観光客向けに半玉ずつ提供とかあると嬉しい。

さいごに

主催してくれた @mozi_kke さん、宿を提供してくれた @koturn さん、その他参加された皆さん、ありがとうございました!

香川となると気軽に「また行きます」とまでは言えないけど、機会があればまた行きたい。

関西Ruby会議2017に行ってきた

関西Ruby会議2017に行ってきたのでいつものようにざっくり感想を。

スポンサーセッション - 株式会社Agileware

テストコードがないと push できないようにしたり、パフォーマンステストの自動化をしているのがとても良さそう。

具体的にどうやっているのか、気になった。テストコード必須はカバレッジかな?

基調講演 株式会社クリアコード - 須藤功平

発表資料: https://slide.rabbit-shocker.org/authors/kou/kansai-rubykaigi-2017/

OSSをやることがビジネスとして成り立つ。

実際、イケてる会社は OSS をやっているように感じるし、それによってイケてる人材が入っていってるように思う。あくまで印象だけど。

Ruby にはフルタイムコミッタというのもいるし、そういうのが成り立つのは素晴らしい。

Rubyでデータサイエンスを行うための取り組み - kozo2

発表資料: https://github.com/sciruby-jp/ruby-datascience-examples/blob/master/Ruby%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9%E3%82%92%E8%A1%8C%E3%81%86%E3%81%9F%E3%82%81%E3%81%AE%E5%8F%96%E3%82%8A%E7%B5%84%E3%81%BF.pdf

興味がなかったわけではないのだけど、朝早かったのもあり、途中で意識が途切れ途切れに…。

発表の本筋とはすこしずれるが、話で出てきた Apache Arrow が気になった。

エンタープライズRubyOnRails エンプラでぶち当たった2つの壁と突破法 - 田中宏

エンタープライスはやったことがないので、その定義からしてどういうものなのか全く理解していない…。

メンバー10人中経験者は1人だけ、というのは、エンタープライズの特徴なんだろうか? まったくわからない…。

わからないけど、自動化がんばってたのはすごい。

ところで一次データが Excel なの、差分取りづらそうだしコンフリクト起きまくりそうだけど大丈夫なんだろうか。わからない…。

Rubygem開発の流儀 - joker1007

発表資料: https://speakerdeck.com/joker1007/rubygemkai-fa-falseliu-yi

よくある gem を作る手順の話ではなく、どのような gem を作るかの話。

Vim プラグインを作る際にも、ほぼ同じ話が適用できるし、実際のところ私もよく意識している。

ただ私は、性格上最初からフル機能で作ろうとしてしまうことが割とあり、そこは反省したい…だから全然リリースできないんだ…。

コミュニティ文化の取り込みとその機会で得た知見 - muryoimpl

社内コミュニティは、作ったあと、どうやって参加してもらうのか、というところがとても難しそう。

強制するものではないし、強制して反発されてしまっては元も子もない。そこをどうやっているのか気になった。

Rubyistと技術記事 ~なぜ書くの?どう書くの?何が起きるの?~ - 伊藤淳一

発表資料: https://speakerdeck.com/jnchito/number-kanrk2017

読者ファーストの視点は私にはあまりなかった。この記事にもない。そもそも感想羅列してるだけだし…。

少なくとも感想記事の場合はあえて読者視点なくして書いていたりもする。わかりやすく内容をまとめる能力がないことは自分でわかっているので。

技術記事書くときは意識してみたいところ。ところで最近技術記事自体全然書けてないので、まずは書くところからだ…。

「CoderDojo」を支えるRails CMSの活用事例 - yasulab

発表資料: https://speakerdeck.com/yasulab/coderdojo-wozhi-eru-rails-cms-falsehuo-yong-shi-li

CoderDojo の存在を今回初めて知りました。こんだけ世界に広がってるのに知らなかったとは…。

内容は具体的な事例で、Scrivito の紹介とも取れるが、私としては、どのようにエンジニア以外に負荷を分散していくか、という話だと受け取った。

エンジニアの負荷を減らす仕事は本当に大事。自動化できるのが一番だけど、このように移譲も十分有効な手段。やっていきたい。

スポンサーセッション - 株式会社 Ruby開発

素直に会社紹介。関西の人向けのアピールだったので、東京から参加した私としては、そうなのかーみたいな感じだった。

基調講演 18年でRubyから学んだこと - 増井雄一郎

発表資料: https://speakerdeck.com/masuidrive/18nian-derubykaraxue-ndakoto-guan-xi-rubyhui-yi-2017

最初に増井さん自身が言っていたように、「役に立たない話」。

増井さんの個人的な人生の話だった。ぶっとんだ話が多くてすごい。

最後に Ruby は軸として締め括ったけど、私の場合はここでいう軸は「Vim」になるのだろうなー。

実際どの言語をやるにもまずは Vim なので、作業の意味でも軸として機能している感じ。

懇親会

IT 系勉強会の本番は懇親会なので、懇親会にも参加。

懇親会の中で、LT 大会が開催された。発表したい人が適当に発表していくスタイルだったが、LT 大会の開始から懇親会の終了まで、途切れることなく LT が続いて、熱量の高さを感じた。

久々に会えた人や、今回(たぶん)初めて会えた人とかもいて、行って良かった。顔を覚えるのが苦手なので次会う時までに覚えていられるかがかなり自信ないけども。(下手すると実は今回初めてではない可能性の人も…)

Fablic.vim #1 に行ってきた

Fablic.vim #1 に行ってきたよ。

イベントの詳しい内容は公式レポートに譲って、個人的な感想などを。

ピザ

まずは開始前にピザを頂きつつアイスブレイク。ピザおいしい。

本編

最前列の見やすい席で聴講。ゲーム系のプラグインで盛り上がった。最近作ってないのでまた作りたいなぁ。

飛び込みの発表が割とあったのも良かった。少人数なのもあって、そういうのがやりやすい空気。ハードル低いのよい(発表者のレベルは高かったので本当にハードルが低いかはちょっとわからないけど)。

懇親会

最初にピザを食べたけど、発表が一通り終わった後にも追いピザが来てとても良かった。これは最初早めに開始して、最初のピザが完食された後に本編に来た人がピザ食べられなくて大変残念だったので、急遽追加で用意されたもの。柔軟な対応と配慮が行われて大変素晴らしかった。

私はと言うと、puyo.vim のデモの流れで、@rbtnn さんぷよぷよテトリスSで対戦して盛り上がった。こういう時に Nintendo Switch は便利すぎる。とても良かった。

次回は7月頃とのことなので、また参加させてもらおうと思います。次は何か発表するかも。というか声がかかる予感がある。何か考えておかないと…。

Meguro.vim #3 を開催した

第3回目の開催となった Meguro.vim #3 を開催したよ。簡単に振り返り。

ランチ

カレーを食べました。

f:id:thinca:20170520121712j:plain

本編

割とぐだぐだに始まってしまったのが反省点。途中で自己紹介タイムを挟むことに。

全体的に、みんな自由に作業したり雑談したりできていたみたいで、雰囲気はとてもよかったと思う。この感じでやっていきたい。

途中、キーボード談義が発生して皆さんキーボードについてアツく語っていてとてもよかった。

会の最中に、遠隔地にいる @ttk_vim さんに、Meguro.vim のロゴを作ってもらった。かっこいい!本当にありがとうございます!

ばんごはん

中華を食べました。

f:id:thinca:20170520195422j:plain

確か9人くらいが参加。

ふり返り

今回こそ、ふり返りを実施しました。

https://github.com/thinca/Meguro.vim/issues/1

各位コメントを書いていく形式です。どなたでも参加可能です。宣伝されてなくてイベントの存在を知れずに参加できなかった、とか書いても大丈夫です。(実際どれくらいいるのか気になる)

次回

次回は 7 月頃を予定してます。一応具体的な日も決まっているけど確定ではないのでここには書かないでおく。