GitHubのソースコード参照リンクを残すときはmasterを避ける
tl;dr
GitHub参考URLをmasterを参照したものにしていると数年後に見直したときに泣くぞ!気をつけろ!(経験談)
こんなときあるよね
GitHubを使っているときなど、ソースコードへの参照URLを残したい場合がある。 このとき、リポジトリからそのまま素直に目的のコードを探しにいき、特定の行番号をクリックすると次のようなURLとなる。 (pluckが好きなのでその部分の実装のリンクを貼ってみる。) https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/enumerable.rb#L124
しかしこのURLには問題がある。 ソースコードは生き物みたいなものなので、masterは日々更新されてしまう。 数ヶ月経った後のこのファイルの124行目は果たしてpluckの実装を指しているのだろうか? これを誰かが読んでいるときは、すでに全く別の行だか空行だかを指しているかもしれない。 せっかく参考にと残したURLが別の場所を指していては意味がない。
手段1: tagの指定
将来的にも確実に意図した指定を残す方法として、branchやtagを指定してから行番号リンクを獲得するようにしている。 自分としてはどちらかというとtagのほうがバージョン指定がURLに入るのでわかりやすいかなと感じている。 (あっ、v5.2.1の時点ではpluckは114行目なんですね...) https://github.com/rails/rails/blob/v5.2.1/activesupport/lib/active_support/core_ext/enumerable.rb#L114
手段2: Copy permalink
特にバージョン指定も関係ない場合、行を選んだ時の左側の「…」を押すと手っ取り早くCopy permalinkができる。 このときURLは次のようになる。 https://github.com/rails/rails/blob/5431e17733366da1fd10f2cd3039d66a56012683/activesupport/lib/active_support/core_ext/enumerable.rb#L124
おまけ
1行選択したあと、Shiftを押しながら別の行を選ぶと、範囲指定ができる。URLとしては L数字
を -
で繋げればよい。
https://github.com/rails/rails/blob/v5.2.1/activesupport/lib/active_support/core_ext/enumerable.rb#L107-L121
英語のcommitメッセージをそれっぽくするためにやっていること
自分がいま管理しているリポジトリは引き継ぎしたものだ。
元々commitメッセージを英語で書く方針で始まったようなので、自分もそれを拙いながらも継続している。
とはいえ母国語でないので時々怪しい文章を書いてしまうし、レビューしてくれるひともいない*1。
そんな状況でもどうにか将来 git log
を叩いた人へ何が起こっていたのか伝わるように頑張っている。
現時点で、少しでもマシな英語のcommitメッセージを生成するためには何をしているのかを書いてみる。
動詞で始める
Update ~
、 Remove ~
とか動詞から始める。
これは色んなところで良く言われるコツらしいので鉄板なのではないだろうか。
Git でより良いコミットメッセージを書く方法 - yu8mada
gitにおけるコミットログ/メッセージ例文集100
ネイティブと働いて分かった英語コミットメッセージの頻出動詞10つ
Google翻訳に意味が通じるか聞いてみる
それっぽく書いてみたら、とりあえずGoogle翻訳にぶち込んで英->日翻訳で意味が通じるかどうかチェックする。 変な意味になってしまっていたら再考する。
Grammarlyに文法チェックを頼む
ただ、Google翻訳は優しすぎて、適当な文法でもそれらしく翻訳してくれてしまう。 文法がおかしいかどうか、Grammarlyにぺッと貼ってチェックしてもらっている。
Grammarly: Free Writing Assistant 英語の文法チェックに!秀逸な英文校正ツール「Grammarly(グラマリー)」の使い方 - Life is colourful.
課金するともっと良い表現などを教えてくれるようだが、無料範囲でも文法上まずいところを指摘してくれる機能がある。 GoogleChrome向けのアドオンもある。アドオンを入れておくと閲覧中のページで英文を入力したときにすぐチェックしてくれる。 Google翻訳上でもアドオンが有効になっているとすぐさま指摘を入れてくれる。
冠詞の a
か an
かとか The
とか複数形
にすべきかどうかとか三人称単数
とか、英文において気にするべきところは色々あるが、Grammarlyがまるっと面倒をみてくれるのでとても助かっている。
ちなみに
ちなみに、個人プロジェクトだったら、自分は速度/理解度優先で日本語でcommitメッセージ書くと思う。 特に強いこだわりがないとき、これまでの例に倣っていくのが最適かなぁと思っている。
*1:ぼっちエンジニアなので。メンバー鋭意捜索中。
午後のカフェオレの習慣
毎朝、出勤前にコンビニでカフェオレを買っている。
午後3時前くらいに、ほんのり眠たい気分がやってくるので、そのタイミングで冷蔵庫からカフェオレを取り出してきて飲んでいる。 飲むと、なんとなく頭がすっきりして、体感としては集中力を保って仕事を続けることができる。
社会人なりたての時に、仕事中にコーヒーを3杯飲んだことがある。その日の夜、ひどい吐き気とめまいに襲われて大変な思いをした。その体験から、特に検査とかで測ったことはないが、自分はあんまりカフェインに強くないんだろうという自覚を持っている。
カフェオレ300mlくらいで元気になっている自分のケースについてはプラシーボ効果なのかもしれないけど、なぜカフェインを摂取すると集中できると言われているのかのメカニズムを知らないことに気づいた。 今の世はちょっとした「何故?」にはGoogle先生がさっと答えをくれる。 SEOが強いページをいくつか適当に斜め読みしたら次のことがわかった。
- 眠気を促す「アデノシン」を受け付けないように防いでいる
- コーヒー100ml につき 60mg 含まれる
- (カフェオレ300mlの半分がコーヒーだとすると、自分はいつもカフェイン90mg摂っている?)
- 適量は1日300mgくらい(もちろん人による)
- 作用は30分後から4~6時間続く
- 飲み続けていると耐性がつく
斜め読み結果を見るに、意外と午後のカフェオレ習慣はそれなりに理に適っているのではないかなと思えてきた。
ところで「街」の雨宮桂馬をふと思い出して雪印コーヒー牛乳を買う日もたまにある*1のだが、カフェオレはコーヒーと牛乳が1:1、コーヒー牛乳は主体が牛乳でコーヒーはちょっとだけ入っている、と言う違いがあるらしい。自分の仕事の供にはカフェオレのほうがちょうど良いようだ。 けふも元気だカフェオレがうまい。
参考URL
- カフェイン - Wikipedia
- カフェインが眠気を覚ます仕組みと依存性の話 - ログミー[o_O]
- カフェインは結局、ヒトにどんな作用を及ぼしている? 専門書の著者に聞いてみた | ライフハッカー[日本版]
- カフェインによる覚醒の仕組み「ノルアドレナリン」の生成を促す - ライブドアニュース
- カフェインのとり方|身体に及ぼす影響とは? | フミナーズ
- 知っていますか? 自分のカフェインの「安全量」|ヘルスUP|NIKKEI STYLE
- コーヒー牛乳とカフェオレの違い | Coffeemecca
- カフェオレとコーヒー牛乳の違い!ダイエットに最適なのはどっち? | キュリエスト
*1:コンビニにあるラインナップのなかで、サイズ感とお値段的にグリコのカフェオレが一番リーズナブルだった
オフィスってすごいからホントマジで
コワーキングスペースを仕事場として利用する生活を約2年ほど続けていたのですが、2ヶ月ほど前のある日、とうとうオフィスが爆誕してメンバー全員がそこに通うようになりました。コワーキングスペースでも、スタッフの方々が大変よくしてくださり、快適に過ごせていました。しかしやはりオフィスがあるということの優位性は揺るぎないということをしみじみと感じております。 この感動が新鮮なうちに、コワーキングスペースとオフィスの違いを書き留めておこうと思います。
コワーキングスペース
メリット
- 受付の人にお客さんの一次受けをしてもらえる
- いろんな人のいろんな取り組みを目端に知ることができる
- 気分で座る場所を変更できる(フリーアドレス)
- 掃除が行き届いていて快適
- 観葉植物が元気
- 基本的な文房具類を借りることができた、朱肉とか。
- とにかくリーズナブル
デメリット
- 社外の人が常にいる空間なので社外秘事項の取り扱いに余計注意が必要
- サブディスプレイを置いておけない(ギリギリロッカーに入るサイズのものを都度出し入れして使う人もいる)
- コップなど私物を置いておけない
- 会社の物品も置いておけない
- ミーティングスペースが争奪戦、追加料金が必要な場合もある
- ホワイトボードも争奪戦
オフィス
メリット
- 身内しかいないので喋る内容や画面表示に神経を尖らせなくてもよい
- サブディスプレイを置きっぱなしでよい
- 充電器(私物)を置いていってよい
- ケーブル類(私物)を置いていってよい
- 自分で選んだ良さげな椅子に座れる
- お土産のおやつを堂々と置いておける
- ミーティングをする机に困らない
- ホワイトボードを消したくなければしばらくそのままにしておける
- 好きなBGMを流してよい
デメリット
- いきなり飛び込み営業(?)の人がやってくる
- ひきこもると外界交流を忘れがち*1
- 掃除は自分たちでする必要がある(ルンバが導入された)
- 観葉植物も自分たちでお世話する必要がある
- こまごまとした棚、文房具は自分たちで揃える必要がある
- 維持費めっっっちゃ高価
まとめ
会社には当然オフィスがあって、オフィスにはいろんな設備があるのが当然だと思っていた時代が自分にもあった気がします。 自分はいま、自社サービスを生かしていくために日々キーボードをカタカタいわせていますが、同時に社内メンバーだけで占有できているこの快適なオフィスという空間を維持するためにも頑張らねばという気持ちもあります。 オフィスってすごい。
*1:これは個人的な性質なので治していきたい、勉強会行ったりとか
コメントの残し方を方向修正した
リポジトリをぼっち*1でメンテしていくにあたって、心強い味方は実装当時の自分自身のコメントだと思う。 それを実装する必要があったのは何故か、実装時に考えたこと、本当はこうしたかったけど制約で出来なかった、実装Bは何故却下したか...など、色々なことを書き残している。GitHubを使っているので、書き残し方法としてはPullRequestのコメントとして入れていた。
しかし、GitHubのblameから簡単に辿れるのはコミットメッセージだけである。 コミットのハッシュ値を検索にかけて過去のPullRequestを発掘してくるという方法もあるが、結構探すときに労力がかかることに最近気づいた。
Web上をうろうろしていた時に見かけた、コメントの残し方に関する意見*2 にも、GitHubに内容を残すリスクとして他サービスに移行した場合に失われてしまうという話があった。とても納得した。 以降は、これまで利用頻度が低かったgit commitをより意識して情報を残していこうと考えている。
今の所、次のようにTPOに応じて適宜使い分ける予定。
- ソースコードのコメント: 実際の仕様の説明
- 超重要な実装上の仕様。メソッドの使い方、引数の意図、などを書く。
- 将来修正されるべきものについてTODOコメントなども書く。
- コミットコメント: 機能単位の変更理由の説明
- 1機能/1commit を守って積み上げ、機能の意図や変更理由を記録する。
- 1PullRequestが複数のcommitで構成されることも当然ある。
- GitHub上のコメント: 特定の問題の解決の瞬間にだけ必要とされたこと
- リリース前後で気になって調べたこと、書き込み当時のサービス状況。
- 考えた結果ボツにした実装案とその理由。
参考
都会と地方の可処分時間
自分は生まれ育ちは石川県で、しばらく北陸で社会人生活をしたのち、東京に出てきた。
北陸の地は生活道路として国道8号線が使われており、車と生活は切っても切れない関係がある。もちろん多くの人が通勤に車を使っている。運転手は当然、運転に集中する必要がある。そのため通勤時間=運転時間となる。
一方東京では、公共交通機関として電車網が発達している。どこへ行くにも電車に乗って最寄駅で降り、しばらく歩けば目的地へ到着できる。駅と駅の間は下手すると歩いてたどり着けるくらい近い場合もある。とにかく地方ではこんな間隔で駅は配置されていない。すごい。そして電車に乗った利用者は、降りる駅に着くまでは暇である。そのため通勤時間=自由時間(可処分時間)となる。
2年ほど勤務地まではてくてく歩く生活をしていた。そそっかしい自分にとって歩きスマホはかなり危険行為なので、徒歩通勤は運転通勤と感覚的にはほぼ一緒だった。
しかし、引っ越して電車利用が始まった。電車に乗っている間は、信号に注意する必要も、飛び出しそうな子供やでかい道路を大胆に横断する高齢者に気を使う必要もない。完全に自由。そして今、殆どの人がそれぞれの手に便利すぎる個人端末を持っている。
それで小説を読むをよし、漫画を読むもよし、ゲームするもよし、勉強するもよし、友達に連絡とるもよし、痴話喧嘩するもよし...。
ふと電車の中で周囲を見たときに、みんな揃って小さな画面を食い入るように見つめている姿が並んでいるので、いつもびっくりしてしまう。そして自分もいつもその一人になっている。
地方に比べて都会では、移動の時間を自由に使うことができる。可処分時間の確保という意味合いでは、都会住まいの方にアドバンテージがある。しかしその可処分時間をどう使うのが一番良いのかはまだ自分もよく分からない。
防災リュックを家に配備した
そこそこ頻繁に発生する地震に思うところがあって、注文しておいた防災リュックが届いた。 注文したのが9月上旬で、届いたのが10月中旬。注文から実際に手元に確保できるまで1ヶ月ほどみておくのが良いようだ。
2人分注文したが、いくつかの品は1人分のみだったので、完全に同じセットを2リュック分作成することはできなかった。 しかし、全部のセットを詰めてもリュックの容量は半分くらい空いている状態となった。ここから必要に応じて追加で詰められるようだ。 電池やポリ袋など元々家にあったもので簡単に手に入るものはすぐ追加、ロープ、持ち歩きできるポリタンクなど、あんまり身近なスーパーに売ってなさそうなものは思い出したら都度追加を考えている。
他に欲しいもの
まだ揃えていないけど、買っておきたいものを考えておく。
水
: 月初にAmazonさんに届けてもらうようにしているけど、下旬にはほとんどない。うまいローテーションを考える必要がある。カンパン
: スーパーを探したけど売ってなかった。鉄板なので買っておこうかな。井村屋 えいようかん
: 噂の5年保存が効く羊羹。普通に食べてみたい。パンの缶詰
: まだ食べたことない。食べて見たい。
...食べ物ばっかじゃん!!! 他の便利グッズなども都度見ていく。