Solist Work Blog

ソフトウェアエンジニアの日々

  • .zsh_historyとMELPAの管理方法

    ソフトウェアエンジニアにとって .zsh_history や .bash_history は財産です。私はzshがメインシェルなので以下 .zsh_history で統一して書いていきますが、bashでも基本的には同じ内容です。 履歴は多いほど役に立つのでシェルの履歴は10万を越えても消すべきではないでしょう。わたしはll ls la cd man scp vim nvim less ping open file which whois drill uname md5sum tracerouteなどの履歴を残さないように設定してあまり価値のない履歴が残らないように努力しています。

    Read more…
  • Passwordについて考える

    パスワードをどうやって取り扱うのかは結構頭を悩ませる問題です。 この記事では私のパスワードの管理方法について書いていくことにします。 私がパスワードについて考えるときにヒントにしたのはエドワード・スノーデンが何を使っているかです。 エドワード・スノーデンNSAの職員だったわけですから、彼が使っているソフトウェアならば少なくとも数年前のNSAのレベルの相手でもパスワードが守れるはずです。1 このレベルの相手に対してパスワードを守れるならばとりあえず安全であるといってもよいのではないでしょうか。

    Read more…

    Zeal offline documentation browser

    macOSで使われているdashというドキュメントビューワーはオフラインでプログラミング言語のドキュメントが読めて便利だと聞きました。 そのオープンソース版でマルチOSで使えるように作ったものがZealです。 dashがあるから開発環境をmacOSからLinuxにしたいのにできないという人がいるのかどうかは知りませんが、もしいればこの記事は役に立つのではないかと思います。 Zealはあらかじめドキュメントをダウンロードしてから使うドキュメントビューワーなので最速でドキュメントを見れますし、 オフライン環境でもドキュメントを参考にしながらプログラミングできるのでかなりよいです。 Zealが対応しているプログラミング言語はこちらで確認できるように大量にあるので困ることはほとんどないでしょう。

    Read more…

    Git History Tool

    ソフトウェアエンジニアにとってソースコードを読む能力はかかせません。 おそらく多くのソフトウェアエンジニアにとってプログラミングの時間の半分くらいはソースコードリーディングをしている時間でしょう。 特にソースコードのサイズが大きいソフトウェアや全体像を把握できていないソースコードを闇雲に読んでいても 時間ばかりがかかり理解できるようになるとは思えません。 例えるならばそれは英語をマスターしようとして辞典を1ページから読んでいくようなものです。 私は学生時代に辞書を読もうと試みたもののあまり成果はでませんでした。 今になって考えると文脈や脈絡のないものを読んでそれをマスターすることは人間とって無理難題であると思います。 ソースコードも辞典と同じく読みにくいものですから、読むためには文脈が大切であるのだとわかります。

    Read more…

    Information Organizized Method

    ソフトウェアエンジニアにとって研究や勉強は欠かせないものです。 ソフトウェアエンジニアが覚えなければならないことに限りがあるとは思えません。 Linuxカーネルのソースコードは数千万行あるので一日10000行読んだとしても読むだけで10年かかります。 そして10年かけて読んでいるうちにも開発が進むのでこのペースで読んで追いつくことは無理であるとわかります。 さらに、新しいソフトウェアが毎日GitHubなどから生み出されている状況ですから、 すべてを知ることは無理難題であることが理解できます。 また、同じ理由で大学の図書館にある本を全部読んだ学者もいないでしょう。 それに読む価値のないものもたくさんあると思います。 だからといって新しい知識と向き合うことをしないと開き直るのも愚かなことです。 時間にも限りがありますし、なるべく効率的にやることを考えなければいけません。

    Read more…