Into the Horizon

programming, photography, and daily log

2018年に書いたOSSライブラリとかサービスとか

宣伝というか供養

ディレクトリ内のファイル容量を綺麗に表示 du_pretty

Image from Gyazo

https://github.com/nullnull/du_pretty

du の出力、見辛くない???とずっと思っていたので作った。 色付きでみやすく、sortやtree表示、depthのフィルタなどが標準搭載されていて、自分で愛用している。

カレントディレクトリ以下のテキストファイルの文字列を全置換 findr

Image from Gyazo

https://github.com/nullnull/findr

find | xargs sed 的なことをしてくれる。(正確には find . -type f -name "*.rb" | xargs sed -i "" -e "s/hoge/fuga/" など)

このようにパイプラインで頑張っても良いし、エディタの機能(自分はAtom)で頑張っても良いのだが、特に改行が含まれる際の置換が厳しかったり、 sed の挙動が環境によって異なったりしてイライラしていたので作った。検索結果と差分が表示されるのもとても分かりやすいと思っている。

シンプルなサイトマップ生成 simple_sitemap_generator

https://github.com/nullnull/simple_sitemap_generator

config/routes.rb を元にサイトマップを生成してくれるrails用のgem。ホワイトリストブラックリストも指定できる。 これくらいコンパクトで十分なのに、意外とデファクトなものがなかった(調査不足な気はするが)ので、自分で書いた。

routesをcsv出力

https://github.com/nullnull/rails_routes_csv

rake routes の結果をcsv出力するrails用のgem。 rake routes の結果はhuman readableだが機械的に処理しづらいので作った。

高速かつシンプルな類似文字列検索ライブラリ simstring

https://github.com/nullnull/simstring

SimStringPython版実装。大学のときにアルバイトで書いてOSS化していたものなのだが、最近必要になったので書き直した。

余談だが、6年前のコードがアホほど汚く圧倒的成長を感じた。当時は研究室の中でも一応それなりにプログラミングできるつもりだったのだが、やはりサービス開発で他の人に見せることを十分に意識しながら書く経験はとても良い経験だった。…というのは、サービス開発している人には当然のことだが、研究でプログラミングしているだけだとレビューしてもらう機会もなく、なかなかこの力が伸びづらい。 汚いコード書いてると結局後の自分が困るので、研究室の学生さんは積極的にインターンなどで一度サービス開発を経験すると良いと思う。

コミットしたOSS

大したことはしてないのだが、以下でPRを出した。

サービス

自分のポートフォリオ

https://github.com/nullnull/portfolio

nuxt。コンポーネントを細かくわけて、アニメーションの処理を綺麗に分割して書く練習。

スマブラ風参戦画像ジェネレータ

https://github.com/nullnull/smashbros

nuxtでcanvasをゴリゴリ。

環境構築とか

OSSじゃないがせっかくなので。こんな感じで、必要になったときにすぐに動かせる自分用のボイラープレートを用意している。

まとめ

全体的に、必要になった時にカッとなって作るパターンが多かった。 フリーランスになって時間と精神の余裕ができて、カッとなったときにすぐに作れるだけの時間が確保できてありがたい。