basyura's blog

あしたになったらほんきだす。

2016 年振り返り

git の年だった。

数年使っていた svn から移行。旗振り役として運用案の作成から git の使い方の啓蒙、サポートを行った。あわせて、GitLab の構築とメンテナンス & バージョンアップに啓蒙、サポートも行った。

svn の方が分かりやすくて良かったという人も少なからずいたけど git にして良かったと改心するのは時間の問題と思っている。 git になってレビューがしやすくなったし、ブランチを気軽に作ったり消したりできるのは便利だ。マージは楽になったけどコンフリクト発生時の直し方が課題(複数人でいい感じにコンフリクトを直してからマージしたい)。

cygwin から git for windows に乗り換えた。何年お世話になったか忘れてしまったけどようやく。振り返るとちょうど一年前に cygwin 1.7 から最新に移行していた。

Pro WPF 4.5 in C#: Windows Presentation Foundation in .NET 4.5

Pro WPF 4.5 in C#: Windows Presentation Foundation in .NET 4.5

とある初めての WPF アプリケーション開発で基盤部分を作成。関係各所にアドバイスを頂きつつ継続中。現在はレビューと実装サポートを行っている。いい感じにできあがってきつつあるが諸事情による構成の複雑さがあるのでパフォーマンス面に心配あり。できあがれば社内での風向きがいろいろと変わるのではないかと思っている。

長年使っていた au から離脱。docomo 回線なのだが au 回線の方が安定感や繋がりやすさがあったように思う。それがちょっと気になるぐらいでコスト面で十分に満足。キャリアメールなんていらんかったんや。とは言え代替となっている LINE もホントはあまり使いたくない。便利なのは認める。Gmail ぐらいがちょうどいいんだけどなぁ。

年初に立てた目標

  • 大きめの開発がまた始まるのでいい感じになるようにコミットしていく
  • 環境面の改善に力を入れていく
  • 健康面に気をつける

まぁまぁクリアできたと思う。今年もよく頑張った。

Firefox - Classic Theme Restorer をやめる

Firefox の UI が変わってから慣れなくて Classic Theme Restorer をずっと使っていたけどやめた。関係あるのかよく分からないけど拡張を使っていると cpu 使用率が上がる。タブをいくつか開いて閉じた後、cpu 使用率が 10% 程度を推移して落ちない。拡張を外すと 3 〜 4% で落ち着く。windows だとそもそも 0 % なんだけどな。noscript を ON にしてると読み込み中のままになっているようなのも気になる。image が取り込めないでいるようだ。乗り換える気はないのだけど Safari はページ読み込みが速くていい。cpu 使用率もほぼ 0% 。Firefox も何も入れなければそうなるのか。なったとしても使いづらくなるので無理だ。

耳栓を変えた

家が大通りに面しているせいもあって夜中の車や電車の音が気になってしまう。寝づらく目が覚めやすい。起きている間は大丈夫。田んぼに囲まれた田舎育ちなので雨の音やカエルの鳴き声は大丈夫なのだけど車の音はダメ。不定期な突発的な音が気になるのかもしれない。

ということで睡眠中は耳栓を使っている。最近 ↓ に切り替えた。

3M ネクスケア イヤープラグ 耳せん フォームタイプ 2セット ケース付き 1100RP

3M ネクスケア イヤープラグ 耳せん フォームタイプ 2セット ケース付き 1100RP

もともとは サイレンシア AB+ を買いだめして長らく使っていたのだけどいつの間にか生産終了していた。遮音性が良くていい製品だったのに残念。

サイレンシア レギュラー 携帯ケース付き

サイレンシア レギュラー 携帯ケース付き

仕方がないのでサイレンシアの別シリーズ(スタンダード?)に切り替え。AB+ に比べると柔らかく遮音性が若干弱い。新品の頃はまだいいのだけど 1 週間もすると遮音性がさらに弱くなる。

ネクスケアは AB+ の様な遮音性があって今のところ満足している。特に問題なさそうであればこのまま乗り換えることにする。

cygwin にさようなら

Cygwinを使おう―Windows上で実現されるUNIX環境

Cygwinを使おう―Windows上で実現されるUNIX環境

プロジェクトが svn から git に移行したのに伴い、cygwin から git for windows に乗り換えて半年以上が経過。cygwin を立ち上げる必要がなくなったので削除。git なら cygwin でも良かったのだけど、git status したときの速度がオプションを指定してもかなり遅かったのでダメだった。

リポジトリとのやりとりは git svn を使っていた。他に使っていた人はいないようだった。メモ帳などの通常のエディタを使っていると vim とは違ってなんとも言えない不安感 (編集が心もとなく、意図せず何かを触ってしまいそう) があるが、同様の不安感が svn にもある。git svn を使うことで心の平穏を保ちつつ数年の開発を乗り越えることができた。

cygwin を使い始めたのがいつ頃だったのかよく覚えてないけど、入社して 1、2 年後に始まったプロジェクトで cygwin を使ってログを tail していたのでまぁまぁの年月お世話になった。使ったと言っても tail するか ruby を実行するかが主だった。

cygwin を使うにあたって大変お世話になったのが cygwin ck 。dos プロンプトで動かすのはいろんな辛さがあったのだけど ck のおかげでとても快適だった。一時配布が止まっていたが再開されたときは歓喜した。現状でも 2013 年から更新は止まっているようだけど。

git for windows に移り zsh にして pacman を使ってパッケージ管理をしている。mintty もいいのだけど ConEmu あたりがタブも使えて便利そうなので移行できないか検討中。

GitLab に初コントリビュートをキメた

GitLab Advent Calendar 2016 - Qiita の 21日目の前エントリ。

GitLab に Merge Request が取り込まれたので初コントリビュートをキメることができた。

  • CE/EE: Fix display hook error message (!7775)

これは Merge Request 取り込み時にサーバサイドの update hook がエラーを返すと応答がなくなる(ように見える)不具合の修正。

背景

仕事プロジェクトで GitLab を社内に設置。コミットログのルール強制やおかしなコミットが入り込まないための判定に update hook を使用。

通常、手元のターミナルから push した際に hook で蹴られると内容がターミナルに表示される。ところが Web 上の Merge Request から Accept Merge でマージした時に update hook で蹴られるとハングしたようになってしまう。

実際にはサーバから失敗した旨の応答が返ってきているのだけどメッセージの表示で失敗する。javascript で UI の書き換えができていないのでエラーメッセージが表示されずグルグル回るインジケータが表示されたままになる。これが処理中のままに見えてしまう。

調査

社内では Merge Request の運用が本格的に始まっていなかったので "そのうち直るだろう” と思っていたのだけどそうでもなかった。自分で直せるか分からないけど見始めてみる。

CentOS 上に yum でインストールしている資源にデバッグログを入れてみるもよく分からない。サーバ側から応答がちゃんと返っていないからだろうと調べていたけど返っているようにみえる。やっぱりよく分からんわと issue を徘徊したところ発見。

コメントを見ると

  • javascript でエラーが出ている
  • 発生箇所が書いてある

そこまで分かればなので、修正することができた。

ついでなので "こうすれば直ると思うよ” と issue にコメントをしてみる。結果的に直し方はちょっと違っていたのだけど、 ここまで書いていれば誰かが反応して一瞬で直るだろうと思っていた。仕事プロジェクトの方では同じ修正を入れたので運用は解決。

MR 登録

1 週間ほど経過を見守っていたのだけど反応が無い。修正が軽微とはいえ困る人は多そうなのに。週末に時間が取れ、ちょうど良いので Merge Request を作ってみることにした。まずは環境づくりから。

mac で環境を作る。

若干ハマったけどドキュメントを読めていないだけだった。コマンド一発で GitLab がローカルで立ち上がり、ユーザー登録からリポジトリの登録、コミットして push までできると感動した。後は Merge Request を作るだけ。

Merge Request を作る際の説明部分にテンプレートが埋め込まれているので、それに沿って記載すれば良い。軽い気持ちであったというか、なんとなく採用されずに他の人が直しちゃいそうだし直し方が間違ってる可能性もありそうなのでテストやライセンスの記述はすっ飛ばして登録した。

この時に issue にコメントした内容ではない正しい直し方に気がついたので改めた。

MR レビュー

数日後に反応がある。まずは、直し方についての指摘。直し方は正しかったがバグ修正に加えて表示方法を変えていることに関してだった。

単純にバグを直すだけだと update hook の結果が h4 タグで表示されてしまう。自分のプロジェクトでもそうだけど、hook が返すメッセージが 1 行で済むケースはあまりなさそう。しかも、ターミナル等で表示することを想定すると html であるはずがなく複数行に渡るプレーンテキストになるだろうと。それで h4 を pre に変えてコミットした。

やり取りの結果、バグと機能修正を分けようということになり、それはそうだと納得してバグ修正のみを適用。表示方法の改善については別の issue が登録された。

a test please.

javascript のテストを書いたことが無いので自信が無かったのだけど、GitLab の中の人がテストについて教えてくれるので頑張ってみる。Google 先生に聞きながら斜め読みしつつ他のテストを参考してみた結果なんとか書けた。

ブラウザを起動してテストを実行していたのだけど terminal から実行できると教えてもらえた。こっちの方が楽だ。

Can you also add a changelog?

GitLab の中の人に changelog の作り方を教えてもらう。CHANGELOG.md とは別に changelog 用のファイルを追加して終了。

テスト

GitLab の環境が非力なのか関係ないところでテストがコケまくる。容量不足的なエラーもちょいちょいでる。最初の push からテストは通っていないので関係無いところでコケてると思っていた。実際そういうところもあったのだけど push する前にした rebase が最新に対してじゃなかったのも一因だった。改めて rebase & push して何回かテストをリトライしたのち見事テスト通過。

LGTM

初めての LGTM をいただく! 無事 8.14.5 でリリースとなった。

まとめ

しょぼい修正ながら MR からリリースまでやった印象。

GitLab チーム優しい!

GitLab の中の人なら半日で MR 作成から修正完了まで終えていたに違いない。それを粘り強く付き合ってくれたので途中から申し訳ない気持ちになりつつも速く終わらせようという前向きな気持になれた。GitLab 社としての方針ではあるだろうけど、沢山ある MR に対して同様の対応を進めるというのはかなりの労力が必要になりそう。

GitHub に対抗できてプライベート環境にデプロイ可能なサービスとしてはありがたいことこの上ない。今後も GitLab をウォッチしつつ可能なら MR を再度キメたい。何事もそうかもしれないが仕事に直接絡むような当事者の位置になると愛着がでるし調べてみようという気になる。

GitLab 便利!

kindle + Instapaper (Pocket から乗り換え)

長らく使っていた Pocket から Instapaper に切り替えた。後で読む記事をストックしておくのは一緒。ただ、ストックしておくだけで読み返さず溜まっていくだけになることが多い。iPhone SE で画面がやや小さいからっていうのもあるかもしれないけどなんだか読む気にならない。ストックされていることが分かってて目に入ってても読む気がおこらない。パソコンからブラウザで立ち上げて読む気もおこらない。これはなんでかなと前から思っているのだけどよく分からない。

前から使っている kindle に記事を送信するやつ。kindle に送信された記事は割と読む。kindle で読むのが慣れたからなのか読む。多少放置することはあっても目を通す。

前々から pocket が kindle と連携して kindle で読んで既読も管理できたらいいんだけど、さすがに無理だろうと思っていた。kobo が pocket と連動すると書いてあったので、それように kobo を買っても良いかなと思っている時期もあった。でも kindle と分散するのは微妙。kobo と pocket がいい感じに連動してたらいいけど端末もソフトも微妙だったらゴミになる。

Intapaper は前に試しに使っていたのだけど pocket に切り替えてから使わなくなった。最近 premium を開放したということもあり、kindle に送信する機能もあったなぁと思い出してなんとなく使い始めた。Intapaper アプリで開いてすぐ読まないようなのは kindle に飛ばせばいいやぐらいの気持ちで乗り換えた。

f:id:basyura:20161204203410p:plain:w400

しばらく経って kindle から送られてきた記事を読んでいると Archive と Link & Archive のリンクがあるのに気がついた。もしや・・・と思ってクリックする。

f:id:basyura:20161204203440p:plain:w400

Archived と表示されるではないか。Instapaper アプリを確認すると記事が Archive されている。前からずっと欲しかったやつだ。前からあったのだろうか?複数の記事を一つの本のように閉じて kindle に送信されるのは認識していたけど kindle から archive できたのか記憶が定かではない。きっとできてたんだろうと思う。今年最後にして最大の発見になった(誇張あり)。

ちなみに画像は kindle で開いたものを evernote アプリで撮ったもの。ちゃんと文書として認識してくれた。面白い。

ラ王担々麺

うまかった。野菜を足したらうまさ増。肉は買い忘れたのでまた今度。

子供の頃にラ王を食べた時はインスタントでこんなにうまいのが食べられるのかと驚いた。スパ王も同様。生麺タイプだったかな。土曜のお昼によく食べてた思い出。

最近は担々麺がやたら食べたくなるので店で注文することも多くなった。辛すぎるのは得意ではないが、担々麺は程良い。

セブンイレブンの冷凍コーナーにある担々麺が好きで毎週のように食べてたけど、次の候補を見つけていきたい。

担々麺じゃないけどこれもうまいんだよな。冷凍のちくわとかイカ天をのせるとなお良し。

最近は麺類率が高すぎるかな。