Git入門勉強会開催した #javajok

4月24日(日)、割と時間が経ってしまいましたが、Git入門勉強会をしました!

スライドはJJUGナイトセミナと同じこれ(使い回しではありません。再演です。)なんですが、
今回はハンズオンもやってみました。

ハンズオン資料のリポジトリはこちら。
github.com
1人でも複数人でも出来るように作ってみたぜ〜!

13:00 - 18:00 という長丁場でしたが楽しくやれたのではと思ってます。
ご参加者の皆さん、そしてスタッフの皆さん!!!ありがとうございました!
会場提供のエムオーテックスさんにも感謝感謝(-人-)

今回準備において、Gitは人/チームによって使い方が全然違うことを改めて感じました。
初心者にどのコマンドが必要かとか、どういうツールを紹介するかとか、
想像以上に意見が分かれたぞー面白かったです😂

また何かやりたーい!

第1回孤独サイ本読書会という名のおひとりさま勉強会 #yokodokusho

JavaScriptを勉強したくなったので第1回孤独サイ本読書会を開いてみました。

参加者は私だけ、家以外のどこか(今回は会社使った)にてサイ本を読むだけです。

1名でやってましたが、TLの皆さんに色々教えていただきつつ勉強できて感謝!
学びがたくさんあったのでtogetterにまとめました(๑ˇεˇ๑)•+¨+•.¸¸♪

togetter.com

ちなみに何故黙って1人で読書しないかというと、サボってしまうためです…。不真面目…。
自分をイベント主催者かつ参加者に見立てることで真面目に取り組めるか試したかったんだー!

結果、これ飽きるまでは良さそうかな〜と思ってます。
やると宣言することで自分を追い込めるのはもちろんありますが、
ハッシュタグ使ってツイートしつつやる*1ことで、
読んだ内容を言葉にして整理したり他の方と議論したり出来るのが為になりました。

今後、習慣化できて#asakzkみたいになったらなおよいですが、
そんなに気張らず時々やりたいです。

次回開催日は絶賛検討中です。

*1:後からブログにまとめるより気軽なのもよい〜

IntelliJ IDEAのPreferencesにはdefault project用とcurrent project用があると気付いた

チームメンバーと同じ設定をしたのに、
私しか設定が反映されなくて「???」となったときに気付きました。

使っているIntelliJ IDEAのバージョンは2016.1です。

  • + , (またはメニューのIntelliJ IDEA -> Preferences...)で表示されるPreferencesは
    current project用!!!
    既に存在する(というか今開いている)プロジェクトの設定変更はここから出来ます。
    f:id:ihcomega:20160406121740p:plain
    今までこっちしか使ったことなかった・・・

  • メニューのFile -> Other Settings -> Default Settings...で表示されるPreferencesは
    default project用!!!
    この設定は、IntelliJ IDEAから新しくプロジェクトを作成する度に反映されます。
    f:id:ihcomega:20160406121747p:plain
    f:id:ihcomega:20160406121753p:plain


JetBrainsさん公式にもそれらしき記載がありましたので参考にしました〜。

これがセミコロンレスJavaか・・・

最近星野源にハマっている。先日ライブにも行ったのだけど、サイコーだった・・・。
星野源自体も曲もMCもバンド(長岡亮介さんとかカースケさんが!!)も会場の一体感もよかった。

で、さっき、気付いたら


ってツイートしてて

いやぁ明日どころか明後日も、明々後日もだよなぁ・・・
でもそんなにたくさんツイートするわけにもいかんなぁ・・・と思って

プログラムを書けばいいんだということになった。
それも普通に書くんじゃなくセミコロンレスJavaっていう遊びをしてみようということになった。

ということで、うらがみさんのブログエントリ(以下)を参考にしつつ
backpaper0.github.io
なるべく自分で書こうと思ったのだけど、全然出来んかった。

Streamの操作のところだけど、
これまでの知識とひしだまさんのサイトで何とかなったのはiteratemapToObjの行だけ😂
peekcountはうらがみさんのを真似しました😂

f:id:ihcomega:20160325014441g:plain
0日目を"今日"と出力する地味な工夫も大変むなしく、
すごい勢いで数字がインクリメントされて最高ですね。
よくみるとツイートと若干文言が違うけどまぁいいや。

Streamの復習になった…かな…
深夜のテンションってコワイ。おやすみなさい。

JJUGナイトセミナー「Git入門」で登壇した話(&質問の回答) #jjug

1週間経ってしまいましたが、1/25(月)はJJUGナイトセミナー Git入門でした。

Togetterはこちら↓

今回はありがたいことに50分おはなしする時間をいただきました。
ということで資料こちらです。

全体をざっくり掴んでいただきたく、操作をまとまりごとに一枚絵で示すことを目指しました。
なお、資料・話す内容ともに@tan_go238さんに死ぬほどレビューしていただきましたし、
資料だけなら@irofさん、@backpaper0さん、@Posauneさん、@yukieenさん(あいうえお順)からも
たっくさんアドバイスをいただきました。
そして他にも、関西を代表するエンジニアの皆さんが事前に見てくださり・・・
本当にありがとうございました。

それから、動画もあります!@yusukeさんありがとうございます!:
JJUG ナイトセミナー Git入門「Gitはじめの一歩」 - YouTube


初めて50分も話したし、当然めっちゃ緊張しました。
ひとまず、あまりそわそわしないように気をつけるので精一杯でしたね。
そのかたさが伝わっちゃってたようなのでもっと穏やかな雰囲気で出来るようになりたいです。

あと、リハで時間が足りなくなったのではしょりつつテンポよくやったら時間が余りました('_')
そこで質問を2ついただいたのですが、ろくな回答が出来なかったのでここで説明しておきます。

git addは何のために存在するのか?

何のためにあるか、というのはGitの思想っぽい話に繋がるでしょうか、
正直ちょっと調べても分からないのでお答えできないです…。
代わりといってはなんですが、何に使うことが多いかというのを書いておきます。

これは当日もおはなししましたが、「コミットを意味ごとにわける」時に便利です。
例えば、画面にボタンを追加するための修正と、背景色をかえるための修正を終えた後、
それを1つのコミットにしてしまうと・・・
コミットコメントが「デザインを変更」とか「UIを修正」とか曖昧になりかねないですし、
何のために何をしたのかが分かりづらくなるので、避けるのが無難かなと思います。

修正の単位が小さかったり、分ける必要がなかったり、状況によってはもちろん
git add --all(全編集ファイルをadd)やgit commit -a(全編集ファイルをaddしコミット)も
便利なので、使い分ければよいと思います。

ちなみにgit add -pを使えば、ファイル内の特定行だけステージに追加出来ますよ〜。

なお、コミットを分けるだけならgit commitで引数にファイル名を渡せればいいじゃん
と思うかもしれませんが、それだと間違った時とかやり直したい時に面倒かなと思います。
スライドにある通りaddはすぐ取り消せますし、コミット前の作業なので
何回やっても「歴史」は書き変わらず、ローカル(自分)にしか影響がありません。

一方、コミットの取り消しは、いちいちリバートコミットを作ってしまうとか、
歴史の改変や削除など危険な作業を伴うとか、ちょっとaddの取り消しに比べて
ハードルがあがってしまう気がします・・・。

②ブランチを作成って実体のコピー?参照のコピー?コピー元のブランチを消すと新しいブランチも消えるの?

まず、詳細はここをご確認いただくのがベストであることをお伝えします:Pro Git - ブランチとは

ブランチを作成すると、コミットをさすポインタが新たに作られるというわけです。
(実体とか参照とか関係なく、内部的に行っていることがそもそもコピーではないような…)
少なくとも参照のコピーではないので、ブランチの変更や削除は他ブランチに一切影響しません。
また、Git管理下にあるファイルの実体をコピーしているなんて誤解はだめですよ〜!

※ちょっと難しい話になってしまったので初心者の方へ
たった今「コピーではない」などと書きましたが、ブランチの概念を理解するだけなら
当日説明した通り元のブランチをコピーしたものという捉え方で十分です。
その「コピー」を用い、開発を並行して進めていきます。
ここでしているのは、Gitの中身がどうなってるかを正確に捉えるとどうだろう?という話です。
この質問及び回答がややこしいわけわからん・・・という方は、
スライドの内容だけおさえてください\('ω')/

ということで補足は以上です。


さて、発表の話に戻ると…今回は@syobochimさんも登壇されてました!
資料はこれで

動画はこちらです!:
Git実戦入門 @syobochim #jjug ナイトセミナー Git入門 - YouTube

これから導入したい(けど色々厳しそうだ)なという方の参考になりそうな、実践的な話でした!
質問とその回答もなんかリアルで・・・同じような環境にいらっしゃる方は特に、
「うんうん」とうなずける内容だったという感じです\\\(۶•̀ᴗ•́)۶////

ちむさんは話し方も落ち着いていて上手だったし、笑えるところもあり素敵でした。
資料は、事例の比較内容や違いが一目で分かる点を見習いたいと思いました〜!

それから最後に紹介された@kawasimaさん作ギットクエストはさすがの一言でした。

RPGツクール面白いんだな・・・


Git、Gitの使い方、資料の作り方、話し方などなどなどなど学びが多すぎて書ききれません。
(アドバイスくださった方ありがとうございました。)
とりあえず課題は少しずつ直せるよう引き続き努力しないとですね。
そのためには勉強したり仕事で知見ためたりして発表の場を獲得し、場数をふまないとですね。
ガンバルゾ〜

そうだ、もし資料は使えそうな場面あったら是非お使いください( ՞ਊ՞)ノ
あの内容で良ければいつでも説明しにいきます( ՞ਊ՞)ノ質問もどうぞ( ՞ਊ՞)ノ:@ihcomega

女性エンジニア大集合!新春LT×座談会 #javajo

1/10(日)は、女性エンジニア大集合!新春LT×座談会を開催しましたよ!
東京・大阪・福岡に会場を設け、ハングアウトで中継を繋いでわいわい実施しました〜♡
Javaな方のみならず、他の言語やってるとかインフラ専門だとか、
色々な方にお集まりいただきました\\\(۶•̀ᴗ•́)۶////

様子はtogetterに、そして口外禁止(?)なものは参加者の皆さんの心の中にあります('_')
togetter.com

簡単に振り返ると・・・

LTの様子と感想

今回は1人5分でやりました。

様々なジャンルのネタが集まっていて飽きなかったし、
聞く側もよいリアクションと雰囲気で、楽しかったです〜

個人的にありがたかったのは、Swiftの文法に関するおはなし。


そして、やってみたいと思ったのは、リバースエンジニアリング
是非体験会開いて下さいwなんか難しそうだったけど・・・

ちなみに私は、最近GitHubの草(Contributionsの記録の仕組みを表す緑のマス)について
調べたのでそれをネタにして、開発頑張ってみようみたいな話をしました〜。
資料は1回使い捨てを想定して作ったので、アップロードしてません٩(๑❛ᴗ❛๑)۶

座談会の様子と感想

Trelloを使い、他の参加者に聞いてみたいことを募って雑談しました。
f:id:ihcomega:20160112142436p:plain:w550

こちらもユニークで様々なネタが!めっちゃ笑いました。
勉強のこと、仕事のこと、コミュニティのこと、恋愛のこと、服装のことなどなどなど。
詳細はその場にいた者のみぞ知る・・・
(@ご参加者各位 Trelloを見返したければ共有しますのでご連絡下さい!)

反省

ハングアウト中継をなめており準備が足りませんでした、すみません・・・
結果オーライとかいう危険な・・・∩(;; ;°;ਊ°;)∩
どのマシンを中継に使うかとかろくに考えてなかったし手際も悪かったですね。
次回チャンスあれば、カメラとマイクはちゃんと用意して、画質やらハウリングやらに
悩まされない運営をしたいと思います∩(;; ;°;ਊ°;)∩

おわりに

Java女子部が出来て2年(since 2014.01なのである)、
3拠点でわいわい出来るまでになったことがとても嬉しいです。
扱っている技術・レベルなどはそれぞれ違っていても、ご参加者の皆さんが
日々何かに挑戦し続けていることを感じる機会が多いので刺激になります。
そして、学んだことを共有し合い、「それ面白そう」「知らなかった」「私もやってみよう」と
また違う誰かの気付きや挑戦につなげられているのが
コミュニティとして本当に幸せなことだと思います。

自分のやってるコミュニティですし、自画自賛して盲目になるのはよくないですが、
今回のイベント…およびこれまでのJava女子部の活動は無駄じゃなかったと思いたいです。

いつもお越しくださる皆様、そして運営メンバー!ありがとううううおぉおおおおおうぉう!
2016年もJava女子部をよろしくお願いいたします。

おまけ(大事)

また新たな拠点設立チャンスがありましたら情報くださーい☝( ◠‿◠ )☝
今回、大阪の会場には岡山から来てくださった方がいて、今度岡山で女性エンジニアが集うとおっしゃっていましたし、
今度よこなは四国の女性向けハンズオンイベントにお邪魔しますし、
中国四国チャンスかな」(°ω°」 ∠)_三」(°ω°」 ∠)三 ザッザッ

2015年を振り返った

大晦日だ!まず、去年のおわりに立てた目標を振り返ってみよう!
2014年を振り返ったはなし_20150101というエントリに書いた2つですが、

  • 精神編:抱え込まない!!! : ○
  • 行動編:Javaの話をする!!! : △

こんな感じかな…。雑な目標だね。まぁいいでしょう。

↓ちょっとだけ細かく考えてみる。

〜精神編〜
そこそこ成長したはず!抱え込むことは減ったし、ちょっとネガティブじゃなくなった!

かなり時間はかかっているけど、"出来ない"、"分からない"ということを伝えたり
困ったことを相談したり出来るようになってきたし
1人で悩んで落ち込んで…ってことがかなり減ってきたんやで(なくなってはないが)!

何故よい方向に進んでいるか考えてみたら、思いが溢れて長くなった。ので結構削った。

  • 人に恵まれた
    いやもうほんとに、会社の方、コミュニティの方に助けられ過ぎである。
    技術をたくさんの方から教わった…教わりまくった!あとは飲みに行ったりもして
    しょうもない話を聞いていただいては為になる話をしてもらってる!何これまじ感謝。
    ありがとうございます、ありがとうございます。

  • (わずかながら)それなりに経験をつんで見えてくるものがあった
    今までは、何っっっも出来ないくせに高すぎるプライドから
    「もっと出来るはず」ってどこかで思ってたり
    自分の何十倍も努力した人たちと比べて「私はダメ」って考えたりしていたんだけど。
    そんな思考回路を捨てることが出来つつある気がしなくもない。
    (よい意味で?)出来なくて当然と思うこと、時間がかかっても焦らぬことは大事っぽい!

  • コードを書くようになって、分かることが増えてきた
    仕事でも、最近はやっとプライベートでも…?、色々な技術を触るようになって
    カンファレンスのセッション内容やら、TLでバズってることやらの理解度があがっており、
    ちゃんと前に進んでるよねって薄々気付ける。

  • 自分を洗脳した
    会社で日報を書いているんだけど、日々、
    自分のいいところや出来たことをなるべく見つけるようにした(時々やや強引)。

そんな中で、仕事・社外活動ともに、楽しくやるということを覚えたのが大きい。
特に仕事。勝手に楽しくやってる。ちょっと緊張感が足りないかもしれない。

〜行動編〜
Javaネタでの登壇、出来なかったな。

そもそもコミュニティはあんまり真面目に頑張ってないような。
周りの方が真面目過ぎてサボる側の蟻と化している説、ある。
あと、引っ越したのは結構大きいぞよ…。東京のコミュニティ参加、気軽に出来ん。

あ、でもJava勉強会でチューターをさせてもらいはした!(そしてあまり力になれなかったw)
さらに、Java以外だけど、登壇といえばJava女子部でGitの話をした(参考エントリ)のと、
PyConにお招きいただいてパネルディスカッションに参加した(参考エントリ)のが印象的!
どちらも勉強になったし面白かったよ!!


書くのが面倒くさくなってきた。

3月に転職し、6月から京都に出張し、9月には京都に引っ越し、
色々怒涛であっという間で濃い1年だった。
仕事運、金運、人との縁、恋愛運、どれをとっても文句なしだー。
健康運だけ完璧ではなかったけども。

来年は

〜技術編〜

  • コップ本読破する
  • JJUG CCCにCfP出す
  • The Swift Programming Language読破する

(技術 野望編)

  • Scala Matsuriの翻訳とかほんとやってみたい

〜精神編〜

  • もっと前向きになる : 反省はしても、後悔やくよくよやうじうじは程々に

〜私生活編〜

  • ヨガ以外に何か運動する
  • 誰かのライブに行く

そういえばじゃんけん書いてから1年たったけど結局大して直してないんですがそれは・・・
お、終わり。
来年もよろしくお願いいたします!良いお年を!アイラブユー!