ちなみに

火曜日の空は僕を押しつぶした。

GitHub勉強会に参加した

まえがき

GitHub勉強会 in Kyoto に参加してきました。GitHub Kaigi には行けなかったので京都でも開催してくださって、GitHub の人、はてなの人に感謝の気持ちが強い。

前半が Atom の中の人の話で、後半がトレーナーの人による Git & GitHub ウォークスルーという感じだった。

Atom の話

Atom の中の人、いろんなエディタを使った結果、モダンな Emacs を作りたくて Atom を作ったとのこと。Emacs の全てを自分でコントロール出来る感じと、TextMate の直感的に使えてモダンな機能が揃っているところを合わせた「僕の考えた最強のエディタ」という感じ。Emacs はとっつきにくくて設定に時間が取られる、TextMate は出来ることの制限があって、それを取っ払うというのも目標。

実はそういったことを両立させられるものがすでに存在していて、それを僕達はブラウザと呼んでいる。HTML+CSS+JavaScript で全ての機能を実装することで、全てをコントロール出来るというのをモダンに実現できる。あとはずっと開発している人たちのセンスが集結しているので、本当に触っていて気持ちのいいエディタになっている。

質問ですべてをコマンドやプログラムで操作できるのは分かったけど、ボタンでは操作できるのかという話が出ていた。実際そういう要望は多いみたいで普及させるには必要だと思うし取り組むみたいな感じだった(意訳)。Atom 作っているひとはずっと Atom 使っていて、そういうとっかかりのつまづきには気づき難いのでフィードバック重要とのこと。

Git/GitHub の話

後半の Git の話はなんとなく知っているという感じの話でいい復習になった。たまに知らなかったべんり機能とか出てきてよかった。ターミナルの下半分にコマンド履歴がずっと出ているのも見逃したときに分かるし、上に結果、下にコマンドになっていて分かりやすかったので真似したい。

$ git ls-remote origin

すると origin の全ての ref を表示してくれる。ここから、

git fetch origin refs/pull/4/head

みたいにするとプルリクエストの内容を取ってこれてべんり。

ふだんは fetch-pulls を使っている。

rebase--onto というオプションを使うと、中途半端なブランチから切ったブランチだけど元のブランチの変更全然関係なかったというときに、master とかから切ったかのように履歴を改変できるやつでよさそう。

show-ignore というエイリアスがべんりで Git で管理していないファイルを表示する。

git config --global alias.show-ignored ls-files --exclude-standard --others --ignored

あと これ がべんりそうだった。

懇親会

さっこさんの料理でテンション上がっていた。今回はアメリカナイズされた感じだった。

立食だと会話に入っていけないコミュ障なんだけど、知り合いを軸にちょっとだけ会話に入っていた。 途中で Kyoto.なんか 以来 Twitter で若干の絡みがあった id:yashigani_w さんに勇気を出してご挨拶できたのが良かった。 すごいエンジニアというイメージで完全に年上だと思ってたら若くて何も出来ない自分が恥ずかしくなってビール飲んだ。

id:hitode909 くんに Atom の中の人に話しかけるよう促されてたけど、yashigani さんに話しかけて勇気を使ってしまっていたのでしぶりまくる。 しびれを切らしたひとでくんが独りで Git のトレーナーの人に話しに行ったところに便乗させてもらった。

この辺で缶ビール2缶があいてて調子が出てくる。

Atom の人が通りがかったのでみんなで囲む。当然みんな英語で全然理解できてなかったけど勢いで話してた。意外となんとかなる。いや、もっとちゃんとしたい。

たまに日本語で答え合わせをしながらやってて Japanese Sorry とか言ってた。 英語得意じゃなくてごめんなさいと言ったら、相手も日本語上手じゃなくてごめんなさいと言っていた。

以下は多分間違っていると思うけど僕が感じ取った会話内容。 絶対間違っているので GitHub の人の見解とズレているので本気で読まないでください。

Vim Package が開発されてるけどいろいろと使いづらい

Vim がすばらしいのは分かってるんだけどコアの開発で手一杯でペンディング状態になっている。Issue とかで毎日メールが死ぬほど来るし(僕も最初通知来るようにしてたけど2日で挫折した)、やるべきことが無限にある。text-object とかむずかしい。

Package のリロードするのに Atom 全体をリロードするのはつらい。なんとかならないか。

Package が使っているライブラリの依存の問題などがあって現状は全体をリロードしている。けど可能なのでやりたい。 Dev モードがあってそれで開発すると SandBox で Package の開発を進められる。いろいろいじっても Atom 本体には影響ないようにできる。

なぜ node-webkit じゃなくて独自に頑張ったのか

node-webkit だとプロセス毎に JavaScript の環境を作っている。1つのプロセスで何かを変更したときに他に反映させる仕組みがいる。その辺をなんとかした。 Chromium とは疎結合に作ってあるので HEAD を追い続けてつらいということはない。

なぜ GitHub はエディタを作ることに決めたのか

会社でいろんな人と開発をしていてコラボレーションするのにエディタが違うと円滑なコミュニケーションが阻害される。エディタが統一できたら幸せだし。 それが大きな夢だ。

社内では何人くらい Atom を使っているのか

半分くらい。でもやっぱり生産性が一番重要だし Vim のエキスパートみたいな人に無理やり使ってもらう訳にはいかないし難しい。CEOがなんとかって言ってたけど聞き取れなかった。

Atom の人から何をしている人ですかという質問

ひとでくんがはてなPerl やってるという話をして、はこべさんが Scala と Go をやっているとう回答。Scala で盛り上がってた。 yashigani さんが Sleipnir を作っているといって iOS → Swift という旬な流れになった。内容はほとんど聞き取れてなかった。(集中力が切れてた)

保存時に Shift-JIS から UTF-8 に変換したいという話

あまり考えていないということだった。Package を作ればヒーローになれそう。

Git で管理していないファイルを Atom でうまく扱う方法

PC見せてこれが不便と伝えようとしているところで時間切れになった。

まとめ

懇親会でがんばれてとても良かった。今年は着実に成功体験を積み重ねられている。

英語ちゃんとしたいという感じが強かった。ビール飲んだら会話は出来るけど内容理解できていないのはつらいし申し訳ない。最低限会話が出来るだけの知識は必要そう。