Bash on Ubuntu on Windows所感

Anniversary updateを適用し、WindowsBash on Ubuntuがやってきた。会社のPCがWIndowsなのだが、今回はプライベートで使っているMacのターミナル環境と出来る限り近い環境を構築しようとしてみた。

現在の完成形

github.com

Ansible

環境構築はAnsibleを使っている。

Ubuntuが古い…

apt-getで一通り必要なパッケージをインストールしてみたが、やたら古い。それもそのはずでUbuntu 14.04.4が動いているらしい。そこまで最新にこだわりはないのだが、設定ファイルの互換性を壊しているものもあり、仕方なくソースから入れているものがある。この辺りが面倒くさい。Bash on Ubuntu on WindowsをUbuntu 16.04にアップグレードしてみる - Qiitaのような例もあるので、Ubuntu16にアップデートしたあとで、aptなりでパッケージをインストールしたほうがAnsibleのplaybookはすっきりすると思う。自分はやらなかった。

Terminal が16色でかなりつらい

16色でどの色をとっても視認性を確保できている状態を保つのは難しい。黒の背景で青が見難いのを直すなんて、学生時代に戻った気分だった。結局最後はConemuを使うことで256色表示できるようにした。support 256 color · Issue #345 · Microsoft/BashOnWindows · GitHub 議論はされているようなので、今後に期待したい。

zsh + tmux + percol + ghq

普段から.oh-my-zshにしているので、zshを使うように変えた。別にbashでもいいのだけど、今のMac環境と同じ使い勝手を実現するのが面倒だった。oh-my-zshでプロンプトに出てくるunicode文字が標準ターミナルで表示できなかったので、前述したConemuを使っている一つの理由。 pecoはうまく動かせなかったので、percolを使っている。Windows側のファイルにアクセスする必要があり、長いパスを打つ必要があるので、peco / percolで履歴を駆使して対応している。

重い

まだ、少し動作がもっさりしていて、コマンドを打って、次のプロンプトが出るまでにタイムラグが少しある。

Windows側のアプリケーションを呼び出したい

サポートされていないとはわかっていてもやりたい。自分はよく、作業したいプロジェクトのフォルダまで移動して、atom .で開いて作業することが多いので、それができないのは少し不満。もちろんterminal上で動くvim / emacs / nano等で開けば良いのだが、Atomで開きたい。GitHub - xilun/cbwin: Launch Windows programs from "Bash on Ubuntu on Windows" (WSL)のようなプロジェクトもあるようなので、少し様子を見たい。

所感

細かい部分はあるにせよ、MicrosoftがオフィシャルにサポートしたLinux環境がWIndows上で動くのは嬉しい。Cygwin / Msys2を完全に削除しても良いレベルではないが、今後どんどん良くなっていくことを考えると、徐々にBash on Ubuntu on Windowsに移行していきたい。

GNU Make 3rd Edition日本語版のPDFをダウンロードする

nagayasu-shinya.seesaa.net

へぇと思ってリンク先を見に行くと、一見どこにPDFのリンクがあるのかわからない。実は目次をクリックするとその章のコンテンツがpdfで開くというものだった。まとめて、一つのPDFにしたら便利ではと思ったので、MakeでMakeをMakeするツールを作った。
github.com

SOFT SKILLS

SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

予想以上に作者はストイックだった。一つ一つの話はよく分かる。しかし、71章もあるこれらのことを作者は全部完璧にこなせているとすると本当にすごいと思う。時折出てくる、歯を食いしばってやるしかない、忍耐だのような記述は、それでできたら苦労しないよ…と思うこともあるのだが、確かに自分の経験上も歯を食いしばってやるしかないこともあり、やったら作業興奮でなんとかなるということもあるので半分賛同している。

自分が特に参考になったのは、第3部 学ぶことを学ぼうと第4部 生産性を高めようだった。ソフトウェア開発者は常に新しい技術を学ぶ必要があるので独学のプロセスが紹介されているのは良かった。自分の場合、開発環境構築など学習に入る前段階に時間をかけてしまっていて、本質の学習が始まる前に飽きることが多々ある。自分は効率厨なところがあり、ベストプラクティスは何かと考えてしまい、やれ、このプラグインを入れればどうとかその辺りに時間をかかっていることを認識した。前準備はそこそこに、学びたいことを自分であれこれ試しながらやるプロセスにもっと時間をかけるべきだ。この本ではステップ8に書いてある。

ソフトウェア開発者にまつわる話も多いが、いかに人生デザインするかという観点で書かれていて、人生Tips全部入りなのでソフトウェア開発者に限らず、多くの人に勧められる本だとおもう。


お腹いっぱいなので、息抜きにこの辺再読したい。

スティル・ライフ (中公文庫)

スティル・ライフ (中公文庫)

夜中にジャムを煮る (新潮文庫)

夜中にジャムを煮る (新潮文庫)

徒歩出勤

6月に自転車を盗まれてから移動手段が徒歩しかなくなったこともあり、よほど天気が悪く無い限りは会社までは徒歩で通勤している。片道30分弱程度なので、一日1時間程度歩いていることになる。朝晩歩くと、自分の目標にしているMisfitの1000ポイントは達成できているので何も特別なことをしなくても一日の運動、少なくとも自分が立てた目標はできていることになる。

7月に引っ越してきて一ヶ月とちょっと、いろいろな道順を試しながら森や、公園を通りながら会社まで辿り着ける道を見つけ、気持ちが良いので最短ルートからすると5分程度余計にかかっているとはおもうのだが、そのルートを通っている。おまけにポケストップもあるので朝晩一回づつクルクル回せる。

毎日一時間というと、結構な時間である。大体いつも、スウェーデン語の勉強をしているか、ポッドキャストを聞いている。ポケモンを見つけたら捕まえたりもする。スウェーデン語の勉強は、前に購入したピンズラーの教材を使っていて、ピンズラー方式については極東ブログで知った。この方式だと耳と口さえ使えれば良いので、歩きながら学習できる。ぶつくさ拙いスウェーデン語を話ながら歩いているアジア人、だいぶ怪しい感じだとおもうのだが、まぁ外国だしそんなに知っている人もいないし良いことにしている。通勤で使っている経路もひと気が少ないところだし。ポケモンは歩くと経験値がもらえるのが、語学の勉強すると自分の経験値が上がる。ポケモンやったので意識的にそう感じたのだが、この経験値は有意義だと当たり前なんだけど感じた。

聴いているポッドキャストの一つにrebuild.fmがあるが、最新のrui314さんの回が良くて、3回聴いた。
rebuild.fm
コンパイラをインクリメンタルに開発していく話は、あぁこれでいいんだよなぁと安心する。常に正常に動いている状態ってのはストレスも少ないし、モチベーションが保ちやすいので書いてるコードの難易度は違えど自分もよくやってる。

こんな感じで歩いていて特に自分の体調には変化は感じていなかったのだが、先日ジョギングをした際にやたら身体がよく動く、あまり疲れないことに気がついた。

これから寒くなってきて、どうやって通勤するかはあまり考えていないのだが、よい習慣が身についたと思っているので出来る限り継続したいとおもう。

最近読んだ本

古典。

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学

未知の世界のお話。

Dive into Python

新しい会社の他の社員がコードを読んでたら、だいたいスクリプト言語Pythonが使われているようなのでそれに習ってPythonをやり始めた。手始めに、手に馴染むまで写経したいなと思い、下記のサイトで学習した。
qiita.com

非常に良く出来ていて、一通り短時間で学べて良かった。次の教材としては下記のDive into Pythonを読んでいる。
Dive Into Python 3

実際にコードを書き始めると、わからないことはもちろんあるのでググりながらやるわけだが、Python2系の情報がやたら多く、新しく始めるなら3系統と決めている自分にはノイズが多かった。なので、基本的には公式ドキュメントをDash(Zeal)で引きながら書いている。

ベストプラクティス的なことはよくわからないので、一通り知っておきたいのだがどこに情報があるのか調べきれていない。今はとりあえず、Pylintでチェックしながら変な書き方をしていないのか見張ってもらっているが、なんか良い方法あったら教えて下さい。

GitHubのユーザー名変えた。

これまで、GitHubでもsamurai20000というユーザー名で活動していたのだが、新しく入った会社がPrivateのGitHubアカウントをそのまま使ってもいいとのことだったので、この中二っぽい名前をやめて、会社のルールに則った名前に変更した。
github.com

私以外はスウェーデン人の会社に入ったので、日本人なのでsamuraiなのかと思われ、侍に関して突っ込まれてもそんなに言う事はない。だいいちこのsamuraiは大学に入った当初、Yahoo Japanのアカウントを取る際に当時良く聴いてたNUMBER GIRLのSAMURAIという曲から取ってて、当時2000年だったので、"samurai2000"で取ろうとしたところ、取れなかったので"0"を一個足したのである。そんな事情は関係ないのである。EdoにはSamuraiがいるのである。

gfx.hatenablog.com
会社のGitHubアカウントと、私用は一緒か分けるかは一長一短あるらしいが、自分の場合は統一したほうが公私問わず、活動がわかりやすくて良いのではと思ったので統一した。


NUMBER GIRL - SAMURAI at RSRFES 1999 in EZO
いま見てもかっこ良い。