SCM Boot Camp 2 in Tokyo に行ってきた
今回は Git の講師として参加しました。
2 回目と言うこともあって、よりスムーズに進めることができたように思います。
個人的なもくろみ
今回参加して、SCM Boot Camp の DVCS イベントの部分はある程度パッケージ化したいと考えるようになりました。
まだ 2 回しかやっていませんが、DVCS (少なくとも Git) の効率的な習得のためのスキームというのが見えてきた感じです。
最終的には、講師が 1 人いれば小規模なイベントを開くことのできるところまで落とし込めるのでは、と考えています。
以下時系列順の雑多な感想や補足など
開催前
今回は、開催の準備として数回 Lingr によるミーティングを行いました。
資料の作成も段階的に行うことができたのでフィードバックを取り入れることができてとてもよかったです。
にも関わらず、
30秒前までずっと作り続けていたらしいので、たぶんありません。 @wonderful_panda: 資料のURLって回ってる? #scmbc
となってしまったのは反省点です。
次回以降やりたいのは、
- 全てを Github で管理 (Issue とかも使って)
- ミーティング開催までにやることをよりはっきりさせる (Milestone と Issue)
- 発表用とは別に、配布する用の資料の作成
の 3 つです。
発表
基調講演の後に Git の入門セッションを発表したわけですが、直前まで誰が発表するかすら決まっていなかったという。
図が間違ってるとすぐ判る、、、くらいには理解できた!ありがとう! #scmbc
2011-11-19 11:43:00 via web
ん?commit cは、/a'じゃなく、/ta'じゃなく?? #scmbc
とあるように、slideshare の図が間違ってます(汗
これに関しては、Github のリポジトリから取得できるものでは修正してありますので、そちらをどうぞ。
勘違いしないでよね!
これはちゃんと指摘できるか試すためにわざと間違えておいたんだから!
・・・嘘ですごめんなさい。
入門・・・セッション・・・?
入門セッションと言いつつ、
Git入門と聞いて使い方の話かと思ったら中身の話が始まったでござる。(知らないと使えないんだけど) #scmbc
という。
これに関しては別のところで、
安心してreset, rebase 出来るようにというのが入門でオブジェクトの話をするbleisさんの心ですよね。 RT @tomy_kaira: reset については最初削除だとおもってて、異常におそれていた。. 新しく学ぶ人には最初に知ってほしいところです。 #scmbc
とあり、まさにその通りです。
ただし、一番最初にこれを言うべきでした。
次回以降の資料にはここについても考慮したものを用意します。
ぶれいすさんのようすが・・・
bleis先生の講演が始まったけど、なんか今日のbleisさんはテンションが低い!低いよ!
う?ん。やっぱり今日のbleisさんはテンション低めだな?
・・・はい。
前日 2:30 頃まで資料作成
↓
5:30 起床
↓
新幹線で闇LT用の資料作成
↓
会場で発表資料の最後の手直し
↓
発表
という流れで、「3時間しか寝てないわー」な状況だったのです。
・・・どう見てもいいわけです。本当にごめんなさい。
全体的な話
言い訳はこのくらいにして、今回の発表資料と発表内容について。
今回の資料は、俺がメモ的なもの( URL )を書いて、@sinsoku_listy と @tosikawa が突っ込み入れて、それをもとに @tomy_kaira がスライドに起こして、それをまた俺が修正した感じになっています。 #scmbc
とつぶやいたように、今回の資料は Git チーム全員で作りました。
これまで Git に関する発表資料は 1 人で作っていたんですが、今回の資料はそれらを上回るものになりました。
発表中の反応も上々で、発表中に Git のオブジェクトモデルを理解して、資料中の間違いを見つけるまでになった人がいたのは嬉しかったです。
演習
演習は、id:katzchang がいたおかげで割とスムーズに進みました。
1 テーブルに 1 人、katzchang さんが欲しいところです。
というのは冗談としても、Git の簡単な使い方を理解している人はテーブルに 1 人以上いるとスムーズですね。
自分が担当したグループでは、katzchang さんの他にももう一人 Git ユーザがいたので、俺の存在意義があばばばば
Github の準備
前回よりはよくなりましたが、やはり Github の準備に関するサポートはもうちょっと行うべきでした。
具体的には、
- Github の簡単な使い方ガイド (Collaborators への追加など、演習に必要な範囲のみ)
- 各環境ごとの鍵ペアの作り方と、登録方法
- 鍵ペアの作成/登録がうまくいかない場合の HTTPS を使った方法
- pagent の話
が書かれた資料を用意しておく、と言った感じでしょうか?
おススメ設定の提供
msysgit を使っている人は、デフォルト状態で git-completion とか現在の working tree の状態の表示とかが有効になっているのでいいのですが、他の環境ではそうではないので、そこら辺の設定を用意しておけばよかったです。
もちろん使う人にとってもやさしいですし、講師も参加者の PC を操作することや画面を見ることがありますので、講師にとってもやさしいと思うのです。
他にも、Vim の最低限の設定なんかもあったほうがよかったです。
デフォルト状態では、ファイルのエンコーディングが分からないので、cp932 でコミットメッセージを保存してしまって文字化け、という人が何人かいました。
これに関しては、How to install Git の方でカバーする話な気もします。
gitk
gitk (やそれに類するもの) は、常に立ち上げておいた方がいいです。
これは、演習で必要な操作方法を含めて入門セッションの内容に組み込んだ方がいい内容でした。
トピックブランチの導入
マージ地獄でコミットグラフがぐちゃぐちゃになる、というのはなかなか体験できないことだと思います。
なので、これは基本的に続けたいと思うんですが、途中でトピックブランチを導入してコミットグラフをきれいに保つ、という運用も今回取り入れてみました。
が、サポートが足りなかったようで、最後マージが発生してしまいました。
このあたりはよりスムーズに導入できるようにもうちょっと考慮が必要な部分です。
TortoiseSVN ユーザのための Git Bash 入門の必要性
TortoiseSVN 便利なんですけど、それしか使ったことが無い人にいきなり Git Bash 使えというのはスパルタすぎるなぁ、と思い直しました。
なので、
- 演習に最低限必要なコマンドの説明
- ディレクトリやオプションとかを Tab で補完できる話
- あと「困ったらとりあえず Tab を 2 回叩く」とかそういう
- ディレクトリ名の横に出ている (master) の部分の意味
あたりを用意しておいた方がいいかなー、と思いました。
次の一歩
Git グループずるいわー、俺らがあたふたしてるの横目で見てしてやったりとか思ってたんでしょー?
と懇親会でなじられた Git グループですがw
これも演習中だか休憩中だかに思いついたものですよ!と言うと、
でも教えてくれればよかったじゃーん
確かにw
事前に質問を集めておいてそれに答える、というスタイルは時間の制御もしやすくていい感じでした。
懇親会
懇親会はカオスでした。
なんか持ち上げられたりこわいこわい言われたり・・・こわくないよ!
闇 LT
LT と言いつつほとんどの人が時間を守らないという。みなさん時間は守りましょう!!!
最後に
すごい楽しかった!
次は名古屋らしいですよ?