最近の技術トピック・他近況報告

こんにちは。id:itchynyです。

自分の中で、ブログに書く価値のある内容どうかという基準がインフレしてしまって、最近は全くブログを書けていませんでした。 業務の中で学んだこと、家に帰ってから書いたコード、その他技術的に考えていることなど、ブログに書ける内容というのは色々とありますが、どれもこれも「このレベルの理解度では書いてもつまらないだろうなぁ」「技術的にはそんなに凄くないしなぁ」「まぁ当たり前のことか」みたいに考えてしまって、書けなくなってしまっていました。 ブログに掛けるコスト、その分野における記事のレベル、そして一般的なエンジニアに対するインパクトなど、あれもこれもと考えこんでしまってよくありませんでした。 実際、pdfの記事は一か月くらいは掛けていて自分が期待した以上のインパクトを与えることができたので、その記事を基準に物事を考えてしまってなにも書けなくなっていたのです。

でもブログってそんなにコストをかけて書くようなものでもないし、リアクションを気にして色々と計算しながら組み立てるものでもない気がしてきました。 いや、当たり前なんですが、どうも自分に課すハードルが自分でも超えられなくなってしまい、どうしようもなくなってしまいました。

これからはリラックスして、もっと気楽に技術的なこと書いていこうと思います。

というわけで、個人的に気になった技術トピックです。

先々週、joというcliツールが突如現れました。 github.com 今見たら1560もスターがついていてすごいですね。 たった二週間でこれだけのスターを集めるのはすごすぎます。 mattnさんのこの記事で知ったという方も多いのではないでしょうか。 mattn.kaoriya.net jqが人気になったときは「なんでこんなもの誰も思いつかなかったのだろう」「自分でも思いつけたのではないか」とみんな思ったことでしょう。 そして、今度はjoが出てきた時も同じことを思ってしまいました。

twitter.com 最初にアイディアを出せる人というのはすごいですね。 どんなに後から「そんなもの昔に思いついていた」と主張したところで、アイディアを形にした人に勝ることはありません。

私も若干ながらjoにコミットしました。 joのbooleanのsyntaxは jo foo@0 のような形ですが、この形がとても気に入らなかったので、 jo foo=true のようにできるパッチを送り、取り込んで頂きました。 github.com あと、pretty printのスペースが3つなのが気に入らなくて (なんで奇数なんだ)、2つにするpull requestを送りましたが、これは残念ながら取り込まれませんでした。 github.com ただ、このpull requestを見たjo作者さんが、JO_PRETTYという環境変数でスペース用の文字列を受け取るようにしたのですが、私がいやいやそれはないでしょと突っ込んだところ、作者が泥沼にハマっていき最終的にやはり良くないアイディアだったということで削除されたということがありました。 めでたしめでたしです。 生まれたてのOSSにコミットしていると、そのソフトウェアの初期の方向性を決めるのに貢献できてとてもうれしい気持ちになりますね。

最近、業務ではフロントエンドの最適化を行っています。 フロントエンドのプロファイルを取るときはsjspを主に使っています。 github.com このsjspというツール、本当に便利ですね。まぁ私が書いたんですけどね。 JavaScriptの重いところはこれで分かります。 itchyny.hatenablog.com 半年前に気が付かなかったバグを見つけて直したり、sjspが依存しているJavaScriptパーサーのバグを見つけたので報告して直してもらったりしています。 JavaScriptのパーサーは私も書いたことがありますが、セミコロン挿入とかにちゃんと対処するのは本当に大変ですよね。 それなりにきちんと動くパーサーを書いてくれている先人に感謝しかありません。 JavaScriptdo x = x + 1; while (x < 4); みたいな形、誰が書くんだって思いますけど、minifyされたJavaScriptライブラリーにsjspをかけようとして気がついたものです。 この世のソフトウェアからまたバグが一つ減ってハッピーです。

最近はVim界隈が賑やかですね。 channel機構、jsonパーサー、timer機能など、Vim scriptにとって革新的な機能が続々と入っています。 開発も以前よりも活発になっているのをパッチのバージョンが上がる速度で感じています。 Vimの開発の議論は Google グループ で行われているので、気になる方はお気に入りに入れておくと良いでしょう。 「このパッチでVimがSEGVするようになった!起動でけへん!」「プラグインが全然動かなくなったんやけど!」「それじゃ分からん!普通の使い方じゃ影響ないはずや!最小コード教えてくれ!」(意訳) みたいな会話が繰り広げられています。 私はlaunchctlで毎日Vimプラグインを更新しているので、バグが入ったらすぐに気が付きますし、特にプラグインにcriticalなバグが入るとすぐにコミットにコメントしに行きます。

最近の興味ある技術トピックはこんな感じでした。 とりあえずこれくらいの粒の記事を持続的に書いていったほうが良いですね。 一時間位で書けましたし。 内容は雑多としてますが。 ちなみに技術的なアンテナを貼るには、GitHubのTrendingを定期的に見に行くのが良いと思いますよ。 コミッターがまだ少なくて、しかもスターが伸び始めているプロジェクトなんかは、今後成長していく可能性を秘めているのでオススメです。 素敵なOSSとの出会いがあらんことを。 おしまい。