2018年に書いたOSSライブラリとかサービスとか
宣伝というか供養
ディレクトリ内のファイル容量を綺麗に表示 du_pretty
https://github.com/nullnull/du_pretty
du
の出力、見辛くない???とずっと思っていたので作った。
色付きでみやすく、sortやtree表示、depthのフィルタなどが標準搭載されていて、自分で愛用している。
カレントディレクトリ以下のテキストファイルの文字列を全置換 findr
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
SimString のPython版実装。大学のときにアルバイトで書いてOSS化していたものなのだが、最近必要になったので書き直した。
余談だが、6年前のコードがアホほど汚く圧倒的成長を感じた。当時は研究室の中でも一応それなりにプログラミングできるつもりだったのだが、やはりサービス開発で他の人に見せることを十分に意識しながら書く経験はとても良い経験だった。…というのは、サービス開発している人には当然のことだが、研究でプログラミングしているだけだとレビューしてもらう機会もなく、なかなかこの力が伸びづらい。 汚いコード書いてると結局後の自分が困るので、研究室の学生さんは積極的にインターンなどで一度サービス開発を経験すると良いと思う。
コミットしたOSS
大したことはしてないのだが、以下でPRを出した。
- https://github.com/nullnull/apipie-rails
- https://github.com/nullnull/committee
- https://github.com/nullnull/simstring-1
サービス
自分のポートフォリオ
https://github.com/nullnull/portfolio
nuxt。コンポーネントを細かくわけて、アニメーションの処理を綺麗に分割して書く練習。
スマブラ風参戦画像ジェネレータ
https://github.com/nullnull/smashbros
nuxtでcanvasをゴリゴリ。
環境構築とか
OSSじゃないがせっかくなので。こんな感じで、必要になったときにすぐに動かせる自分用のボイラープレートを用意している。
- https://github.com/nullnull/docker_rails_sample
- https://github.com/nullnull/scraping_sample
- https://github.com/nullnull/nuxt_on_rails_on_docker
まとめ
全体的に、必要になった時にカッとなって作るパターンが多かった。 フリーランスになって時間と精神の余裕ができて、カッとなったときにすぐに作れるだけの時間が確保できてありがたい。