『GitHubポケットリファレンス』を読んだ。
著者の小林貴也さんことじぐそうくんよりご恵贈に預かりました。ありがとうございます。
- 作者: 澤田泰治,小林貴也
- 出版社/メーカー: 技術評論社
- 発売日: 2018/09/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
個人や小さなチームから始められるGitHub
本書ではGitHubの基本的な使い方を説明しながらも
などなど、最近(2018年)のGitHubの細かくて伝わらない機能についても丁寧に説明されています。これは僕がGitHubをよく使っていて、本書を読んで目についた良いなと思った点です。
GitHubをよく使っている人以外にも良い点はたくさんあり、セッションごとに機能を画像付きで説明しているのですが、それが「なぜ必要なのか?」または「どのような影響があるのか?」を丁寧に記載されているのも特徴的です。「おまじないだから必要」みたいな説明はなく初学者でも理解しやすいと感じました。
章立ても、頭の方はGitやGitHubの基本的な使い方として、リポジトリでのコミットの仕方、ファイルや履歴の操作、IssuesやPull Requestの説明に始まり、次第にProjectsやOrganizersについて書かれています。この流れは「個人でできることからチームでできること」への変遷になっているので「とりあえず導入するぞ!」という勢いがある方にとっては初めから順に読んでいくと理解しやすいでしょう。
本書の最後のほうにはGitHubについて根深く説明していて、IssuesやPullRequestの検索に30ページ(!)近く割いていたり、SlackやCircleCIなどの外部のサービスと連携するための方法について記載されています。このあたりはGitHubを使い軌道に乗り始めたら設定するものなので最初は特に気にせず読み飛ばしても良いかも知れません。
本書の対象になる読者は、一線で活躍するエンジニア...(だけ)ではなく、例えばデザイナーやディレクター中心のチームがGitHubを使ってプロジェクトの管理をしたい、プログラミングを始めたばかりでOSSにいっちょ手を出してみたいぞ、というような、これからGitHubを使い始める方々にはうってつけかと思います。また、Gitのコマンドを使わなくてもGitHubを使うことはできるので、前述のGitHubを使ってプロジェクトの管理をしてみたいという方にもやはりおすすめしたい1冊です
ポケットリファレンスなので、全てを読んで覚える必要はなく、机の傍らに置いてわからないときにシュッと参照するような本です。もしこれから、またはすでにGitHubを導入していて「GitHubよくわからない...」という方にはまさに今が買いどきな本だと言えるでしょう。
- 作者: 澤田泰治,小林貴也
- 出版社/メーカー: 技術評論社
- 発売日: 2018/09/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
思い出話
旦那が出版するっていうから、謝辞に私のこと書いて〜♡ってねだったら書いてはもらえたけど、こう、「温かいサポートをしてくれた妻に〜」とかって書かれると思ってたら尻に敷いてる感じを醸し出されたので「そうか、そうか、つまり きみはそんなやつなんだな、そういう形で復讐を…」ちゅった pic.twitter.com/b4fqVSB7XS
— yky_sokkou (@yky_sokkou) September 15, 2018
じぐそうくんの奥さんのツイートでこの本が出たことを知ったのですが、まさか謝辞に登場してたとは思っていませんでした。しかも自分について書かれている文章量が奥さんのものよりも多くて恐縮...。謝辞に書かれているレクチャー用のリポジトリはまだ github.com/asonas 配下にあるので気になる方は探してみてください(恥ずかしくもあるのであんまり探さないで欲しい)
謝辞に書かれている内容は当時2011年とかで、僕もエンジニアになりたてでその時にいた会社でもGitHubを使い始めたころで「GitHubすごーい!」となっていた時期でした。たまたまなんの縁で東京の東の方に来ていたじぐそうくんたち御一行のハッカソン*2を覗きにいったら何やらGitで困っている様子だったのでシュッとハンズオンをした思い出がある。
あれから7年で謝辞に感謝を述べられるとなんだかこそばゆいですが、引き続き何卒何卒。自作キーボード、1つぐらいは完成完動するように祈っておきますね。
まとめ
GitHub ポケットリファレンスはGitHubを使ってみたい人、使ってるけどよくわからない人に強くおすすめできます。主要な機能を網羅的に説明しているので、この1冊を傍らにコードを書いたり、プロジェクトを管理してみるのはいかがでしょうか。
バタバタしてる時こそログをとる
忙しくなるとログをとるのを忘れがち。この記事でも触れてる写真の現像をしているときにバタバタしていたころの写真が出てきた。
主に会社で撮ってる写真で窓から見える夕日だったり、自分の机の上の様子だったりキーボードの様子だったりする。そういう何気ない瞬間の写真が好きで無意味に撮影しがち。ただそのほとんどは見返すことがなく、場合によっては大した現像の処理もしないままNASに放り込まれたりする。
けど、いざバタバタが終わってみるとそういうときに撮っていた写真はそのころを思い出すいいきっかけになるので振り返りをしているときは写真をみたりもする。
逆にテキストでのアウトプットが減りがちで忙しくなるとTwitterを見なくなるのもここ半年で結構顕著だなぁと思った。Twitter、昔は自分の見たくない情報をばっさり見えないようにしていたけど、最近はそういうそもそも見ないための所作をさぼってるのもあり、そこまで流量の多くない良質(僕がそう感じるだけではあるんだけど)なブログのフィードを読んだりしている。唯一、時事には一応アンテナを立てておこうということではてブのマイホットエントリーを読むぐらいはしていた。けど、結局の所、自分の主義主張に合わない記事はやはり流れてきがち。そういう記事を読むと体調が悪くなるので見かけた瞬間にシュッとタブを閉じたりする。これはインプットの話。
アウトプットの量が増えないんだけども、単純にテキストを書くよりもシャッターを押すとその瞬間の絵は残せる点ではカメラはお手軽アウトプットマシンといえるし、何事もライトウェイトのほうがいいなと思うのであった。
Windowsマシンを自作した
今日日自作PCなんて、、、と思っていたらなんと自分が自作PCをつくることになるとは...
スペック
- CPU
- Core i7 8700
- メモリ
- DDR4 2666
- 8GB *2
- M.2
- 500GB
- HDD
- 1TB * 2
- 3TB * 1
- 外付けHDD
- M/B
- H370N WIFI
- GPU
- GTX 1080Ti
- ケース
- Ncase M1
- Mini ITXのケースだけどフルサイズのGPUが積めるので昔からほしかった。
- 液晶
- ASUS 27インチ
見た目とか
液晶とかキーボードとか。キーボードはHelixを使っているけど、液晶の足の甲に乗せて使ってるので実質割れている意味がない...
左側にあるのはゲームで使ういわゆる左手デバイス。右のマイクはYeti。マイクなりキーボードなり液晶が揃ってるので会社のパソコンさえ持ち帰っていれば自宅で仕事もできるようにした。
筐体の見た目。めっちゃ小さい。さすがMini ITX。
ちなみにに筐体を置いているところはアルミラックの中腹。そのまま天板部分に上述の液晶達も置いてるので作業スペースは狭い。横幅は90センチちょっとしかないし、奥行き40センチ程度しかない。液晶の足の奥行きがが20センチぐらいあるので、アルミラックを手前に少し引っ張り出して、液晶の足は奥にちょっとはみ出してないと手のひらを置く場所がなかったりする。
また机(ラック)の高さも1メートル近くあるので、実質スタンディングデスク(もともとそのつもりで昔から使ってた)なので、椅子もカウンターチェアみたいな背の高いやつになってる。カウンターチェアに長時間座ってると腰が痛くなりがちだけど立つ座るを繰り返す事でなんとかやっていけてる。
なんでつくったん?
ここ最近触っている現像や映像を編集するソフトウェアがWindowsでも動くことや自分のライフスタイル的に外にPCを持ち歩いて活動することがほとんどなくなったので自宅で椅子に座ってぽちぽちできるような環境をつくることにした。
また開発環境のほかにも、MacBook Proのストレージがいっぱいになってきている割には自宅のNASにつなぐにはWiFi経由になるので速度面でネックになってきていた。ひとつのファイルが20MB、それが数百個単位であったり、数GBの動画ファイルがゴロゴロ転がっているんだけど、作業をするにはMBPの512GBではちょっと物足りない。都度NASに出し入れもしてよいのだが、11acでもやっぱり100〜150Mbps程度しか出ないので大きめのファイルをやり取りするにはコピーの待ち時間などが気になっていた。
またFF14をずっとやっていたのと、奥さんが3D関連の作品をつくりたいとのことなので使っていたゲーミングノートPCを貸したりするときに大きな電源を渡したりするのが少し大変だった。
要件としては、
- それなりに大きなストレージを持つこと
- ブートドライブ以外に1TB以上のストレージを置いてそこに現像待ちの写真を入れたり、編集待ちの動画を置いたりしたい
- ゲームが動かせる
- それなりに大きなディスプレイ
- ケースは小さくしたいのでMini ITXで組む
- 自宅で仕事をすることも考えて外部の液晶やマイクがあると望ましい
- 基本的には家に仕事を持ち込まないようにしてるけど止む得ない場合がありがち
開発環境
なんとWindowsの開発環境は結構まともにつくれる。2018年は未来だった。
WSL(Windows Subsystem for Linux)は偉大。基本的にはインターネットに転がっている情報を元にぽちぽちやるとシュッとRailsが動く。
基本的にはUbuntuなのでaptですいすいパッケージのインストールなどをやっていくとよい。今回は手動でポチポチやっていたけど、itamaeなどで環境を構築できるようにしておきたい。
特に語ることはないんだけど、Railsが動くし趣味の開発もやっていける。至極普通の開発環境が整ってしまった。
運用してみて。
実はこのPCを組んですでに3か月ぐらい経過している。
特に問題なく写真の現像や動画の編集とかやってる。普通に開発もできるし便利。
唯一、キーボードが不安だったけど、以前にHelixを組んでいた*1こともあってキーバインドはMacに近いものになっている。とはいえ、Windows特有のショートカットキーについてはKeyhacでいい感じにする必要がある。。。
また、Mini ITXで組んだのでケース内のケーブルまわしがシビア。稀に電源ケーブルがケースファンと干渉して止まったりする。
困っていること
今一番の困りごととしては、WindowsとiPhone、または一眼レフカメラなどで撮影した写真を取り込む手段がないということ。
後者に関しては、カードリーダーを設置すれば解決するのであんまり問題ではないが、前者については結構深刻。AppleファミリーだとAirDropでファイルのやり取りができるがWindowsだと一工夫必要になる。うーむ。
まとめ
Windowsでもそれなりにやっていける。ちょっと困りごとがあるけど、実現したかったことは無理なく実現できているのでよい。僕の場合はAdobe製品を使っているので比較的シームレスにWindowsとMacの間を行き来ができたけど、一般の人が今からMacからWindowsに移行するメリットは自分のライフスタイルによるのかなぁとも思った。逆に言えば大きくライフスタイルが変わらないのであれば、わざわざ(自作PCじゃなくとも)MacからWindows、WindowsからMacにしたい理由もないかも。OSに限った話だと、Windowsでなければならない、またはMacでならない理由はもうないのかも(当たり前のことを言ってる気がする)
ちなみに、この自作PCは序章に過ぎず、今(9月11日の時点)は自室の大DIYが始まってるがそれはまた別の機会にブログに書く...。
*1:これも別途記事にかきたい
主人公とモブ
僕の人生における主人公というのは僕自身なんだけど、例えばこれが人生ではなくコミュニティになると僕がそのコミュニティにおける代表的な人であることはあんまりなくて、多くの場合は「モブ」として存在している。
モブだから良い悪いみたいなことはないけど、そこにそのコミュニティの主人公と一緒に活躍したいとか僕も主人公になりたいとなるのはモブでもできるのでコミュニティにいる事自体がすごい事だと言える。
特定のコミュニティを指してそこで「くすぶってる」みたいな表現は良くはないけど悪くもないがコミュニティでは多くの人がモブである以上、モブなりにやっていくしかないのではないかなぁ、と思うのであった。(着地点がよくわからず終わる記事)
こぼれ話
RubyKaigi 2018と高専カンファレンス in 東京 2018と仕事が昨年末ぐらいから同時並行で続いていて結構大変だった。それぞれのイベントの直前の土日は準備に追われるような感じだった。
実質的にライフワークバランスがうまくとれなくて奥さんにも迷惑をかけてしまったなぁと思いつつ気が付いたら夏休みに突入していた。なんらかもてなすぞーという意気込みがあるのでやっていく。
大きな環境の変化といえば仕事が変わったことだろうか。転職活動を昨年の9月だか10月ぐらいからやっていて自分のキャリアをどうするのかみたいなことをよく考えてた。僕も今年で30を迎える。いわゆるエンジニア定年までの5年間を次の会社でどのように過ごすのかを考えたときに自分が好きなことに関わることをしようと思った。
高専生の時、ある先生に「仕事で好きなことができることはない」というようなニュアンスで叱られが発生したことがある。叱られの元はもっと別の案件だった気がするけど、この一言で当時の僕は傷ついたように記憶していてそのままドロップアウトしていったのだが、今は好きなことを仕事にできていることを誇りに(と同時に今ではふつうのことだと)思っていたい。
もともとパソコンが好きだったので上京してからはパソコンを使う仕事をやっていて運良く続けられている。パソコンをつかう仕事を中でも、自分が好きな料理に携われる仕事に就いてみるのはどうかと思い会社を選んだ(会社の人と会って10分で決めなかったり、エージェントを使わなかったりみたいな転職活動は初めてだったんだけど、たくさんの方々とお話する機会がありその中で自分のこれからを考える切っ掛けとなったしこれからも自分の考えのひとつとして根付くのだろうなと思う。
また、コードを書いていたいという願望が強くあったけど、とはいえひとりでコードを書くことはできないし、チームでやっていくみたいなところは引き続きという感じ。アジャイル、スクラム、リーンなどなど呼び名いろいろあるけど、最終的なゴールさえバシッと決めたらそこに走れるようにしていくのはどこに行っても変わらないなと思う。そこがメインの仕事になると考え込んでしまうけど、チームのお手本になるような「コードを書く」プロダクトがうまくいくように「チームも良くする」両方やらなくちゃあいけないのが先輩エンジニアのつらいところだな。いわずもがな覚悟はできてる。
いろいろなことが終わって若干の燃え尽きだけど、またちょっとずつ前進できるようにやっていくぞ。
高専カンファレンス in 東京 2018を開催した。
写真の現像をしていたら記事の公開が年を越しそうな勢いだったのでシュッと書いておく。
かねてより準備をしていた高専カンファレンス in 東京 2018を開催できた。今は諸々の事後処理を片付けているところだけど概ね大きな流れが終わり、スタッフの振り返りと打ち上げを兼ねた会をどこでやろうかみたいな状況になってきつつある。
今回の高専カンファを開催するにあたって以下のような記事を esa.io に書いていた*1記事に以下の様な文章がある。
これは2017年の9月21日に書かれた記事(ポエム)で実はRubyKaigi 2017の直後に勢い余って出てきた文章ということになる。この記事を書いたときはまだ2018年に開催する高専カンファレンスが10周年ということにも気がついてなかったし、10周年という記念に開催するよりももっと違った方向の熱意があったといえる。*2
その熱意というのが件の記事に詰め込まれていて、僕が初めて参加した高専カンファレンスの話から、その後の人生の狂い方や高専カンファレンスやRubyKaigi(日本Ruby会議)界隈の諸先輩方のブログ記事やツイート、スライドなどを引用して綴られる高専カンファレンスというコミュニティ・カンファレンス・人生についてのエモちらかしが文字数にして5000文字。
この記事の後半ぐらいからは今回の高専カンファレンスのインセプションデッキ*3になっていて、今回の高専カンファで「やりたいこと」または「やらないこと」などなどが書かれている。
その中でも今回のテーマにあたる「多様化する技術とのめぐりあい」には触れておきたい。
このテーマが出てくることの主眼としては、まずはやはり高専生なので技術というテーマはひとつあるかなとぼんやり思っていた。僕自身は高専をリタイアしてしまったけど、今では技術を扱う職に就いていたり、昔から技術に関わるモノやコトが好きだったので、「技術」という要素は盛り込みたいな、と考えていた。
あと、たまたま、初めての高専カンファレンスとして、高専カンファレンス in 京都に参加して得られたことは、ざっくばらんに言って世の中は広いということであったし、その時のテーマであった起業やベンチャーみたいなことには現役の高専生のときには気がつけなかったことの1つでもある。
良くも悪くもこの時の「高専カンファレンス in 京都」に参加したことによって僕の人生は狂うんだけど、この時に得た情報量の多さには衝撃を受けたことは今でも忘れられない。今では当たり前の感覚だけど、僕のいた津山高専以外の高専生もすごく面白いことをたくさんやっている。そういう人たちに会える場所であったし、今回の高専カンファでもそれは実感できたし、これからもそうあってほしい、という願いもある。その僕の願いを叶えたいという気持ちも今回の開催に至る理由のひとつなのであった。
「多様化」という点でもいくつか触れておきたくて、昨今僕がいる技術の領域でも様々な方面で多様化が見受けられていて、例えば僕初めて参加した高専カンファ in 京都があった2010年では、Web開発でJavaScriptといえばjQueryを使いましょうという世界線だったし、場合によってはprototype.jsもあったよね。gulp.jsやGruntのようなツールキットやタスクランナーも一般的ではなかったし、当然React.jsもない、Wikipediaによればちょうど開催日の1ヶ月前がBackbone.jsの初版が出ていたというような世界観だった。
そして今日、上に記載したフロントエンドの技術(人によっては初耳という人もいるかもだけど)からは大きく進化し多様化する技術的なアプローチによって織りなされるフロントエンド開発の今がある。自分のいる技術領域の至極一部ですらこんなにも多様化が進んでいることがわかる。Webの世界に限らず機械学習の分野でも当時はディープラーニングやニューラルネットワークというものを聞いたことがある人はあんまりいなかっただろうし、VRやAR、自作キーボード、Maker Faire Tokyoなどなどもひっくるめて、この10年で技術を取り巻く環境は大きく変わってきていると感じる。
だからこそ先述したような高専カンファレンスという場で、多様な技術についての話を聞けるようにしたかったというところに行き着くのであった。
自分で書いてみると納得できるのだが、(僕の中では)壮大なテーマを元に開催をするぞ、という気持ちから、こういう人を招待講演として呼びたい*4、多様な発表を聞きたいなら遠隔地の学生を呼びたい、お金も必要になるからスポンサーをつけたいなどの妄想が膨らんでくる。それらをいい感じにきれいにまとめてインセプションデッキ(のようなもの)に仕上げて、スコープを決めて人を集めて時間を決めてやっていくという流れに持っていけて、仕事でもやっていたことがそのままイベント開催でも適用できたのがよかったなぁ。それでも仕事っぽさはなかったけどイベント運営にまつわる技術というのは日常的に触れているものから必要に応じてアレンジして取り込めたのもよかった。
また、高専カンファレンスというのは水物で、 http://kosenconf.jp にあるような定義や、または開催のためのノウハウやフレームワークは存在しているが、結局のところその時の高専カンファレンスの実行委員会というのはほぼ毎回違うので同じ実装になる高専カンファレンスはふたつと存在しないことになる。*5
なので、僕が開催した「高専カンファレンス in 東京 2018」の2019年版は多分無いし、仮に今後僕が主催する高専カンファがあったとしても違うテーマだろうし、また違った情熱を持っているのかもしれない。でも、すでに開催をやった僕が次もやるよりかは、その時々に昂ぶってる気持ちを表したい人たちが好きなタイミングにでやるといいと思う。定期的に高専カンファをやらなきゃいけないとかもないし、何百人も集めるような開催にもしなくていいと思う。僕はたまたま何百人ものイベントを東京で開催できたけど、それは別に高専カンファレンスを成す要素ではないしね。
長く書いてきたけど、そろそろまとめる。初めての実行委員長としての高専カンファレンスを開催し閉幕できた。重要なのは開催することではなく、こうしたいこうありたいを実現すること。その間に思ったこととかをもう少し詳細に書くこともできるかもしれないけど、まぁこれ以上長くなるとしんどいのでまたの機会に。
高専カンファレンス in 東京 2018に来てくださった皆様ありがとうございました!参加してくださったみなさんが何かを持ち帰ることができたのであれば実行委員冥利に尽きます。またどこかで会えることを楽しみにしています。
最後に今回の開催にあたって思考の整理やこの部分は参考にしたいなどを考えるための様々な資料がありました。以下のWebページや本、スライドを読み返したりしながら開催の方針を決めていいました。それらのリンク集を箇条書きで書いてこの記事を締めることにします。
- http://rubykaigi.org/2011/ja/schedule/details/17M09/
- https://www.slideshare.net/igaiga/014tokyo
- https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%B3%E3%83%95%E3%83%BC%E3%83%BB%E3%83%91%E3%83%B3%E3%83%80
- https://amzn.to/2KPqHml
- https://rubykaigi.org/2017
- https://june29.jp/2010/10/22/grow-your-own-seed/
- https://twitter.com/june29/status/121960793347600384
きっかけ
高専カンファレンスは何なのかということについて考えていた。
前の記事にも書いたけど僕にとっては「何にもなれないモブの俺」が何かになろうとしたきっかけだったんだけど、その原体験に立ち返るならば、7月に開催する高専カンファレンスも「何にもなれないモブ」たちを対象にすることになるかもしれないんだけど、何にもなれないモブということに気がついている人はあんまりいないと思うし、当時の僕はこじらせていただけだ。
なので、参加してくれた人に何らかのきっかけを与えられるようになればいいなぁという気持ちがある。進路を決めるきっかけでもいいし、勉強以外のことに興味を持ってもらうきっかけでもいいし、何か新しいことを始めるきっかけになればいいかなぁ。
招待講演*1も今までの高専カンファレンスではなかったものになるはず。*2
もうちょっとエモが出て来るかとおもったけど筆が止まってしまったのと、今週はずっとSPRINTをやっていて力尽きた状態なので今日はここまで。