2016 年を Software Engineer として振り返って
はじめに
何か書いておこうかなー、と先々週ぐらいから思いつつ、結局ギリギリになってしまいました(汗)
鼻高々と自慢できるような大きな成果はないかなぁと思うものの、ここで来年以降も定点観測できるように、やはり書いておくことにしました。
概要と、昨年との比較
- 作ったものは小粒なツールが多いですが、こうして振り返ってみると、数はそこそこありました。
- 物によっては、 GitHub で多少、スターがもらえることもありました。
- 昨年は主なものだと 2つ作っていました。数的には、かなり増えたと思います。バリエーションも増えました。
- OSS への貢献も少ししました。
- 昨年はこの手の活動はほぼなかったので、これも進捗したと言えます。
- 勉強会で4回発表しました。これは去年と同じぐらいだと思います。
2016年に作ったもの
ピックアップ
GitHub でスターの多い順 + 作った日時の降順です。
shove (ShellScript)
これはブログ記事でも書きましたが、下の方にもある clenv というツールを作る際に Yak Shaving によって誕生しました。
後に @b4b4r07 氏の enhancd でも使われていることを知りました。
たまにスターがもらえるので、他にも使っている人がいるのかもしれません。
fireap (Ruby)
オンプレミス環境でも使える pull 型デプロイツールを作ろうというモチベーションがあって、作りました。
Consul が必要ですが、 O(log N)
でデプロイできます。
poloxy (Ruby)
時として大量に発報されるアラートを、いい感じにまとめたくて作りました。
こちらはまだプリミティブな機能しか実装できていません。
そのうち熱が高まったら、開発を再開するかもしれません。
grifork (Ruby)
https://rubygems.org/gems/grifork
オンプレミスでも使える Yet Another なデプロイツールです。
pull 型ではありませんが、これも O(log N)
でデプロイできます。
fireap と違って、 Consul に依存していません。
perl5-App-Memcached-CLI
https://metacpan.org/release/App-Memcached-CLI
Redis の redis-cli のように、対話的にも利用できる Memcached 用の CLI ツールです。
最近、職場のどこかでも導入されて、「便利」と言ってもらえました。
関連記事
以上のツールの一部についての関連記事です。
- シェルスクリプト用テストツール "shove" v0.8 までの更新のお知らせ - weblog of key_amb
- memcached-cli の v0.9.4 までの追加機能の紹介 - weblog of key_amb
他に、こんなのも作ってました
- clenv (ShellScript)
- シェルスクリプト用のパッケージ管理ツールです。今年の余暇時間を一番費やしたツールだと思います。もうちょっと頑張ったらだいぶ完成形に近づくかなぁ、というところ。。
- "clenv" というシェルスクリプトのパッケージ管理ツールのようなものを作った - weblog of key_amb
- "clenv" というシェルスクリプトのモジュール管理ツールを引き続き作っている - weblog of key_amb
- "clenv" がそこそこ xxenv っぽく使えるようになってきた - weblog of key_amb
- perl5-App-Memcached-Tool
- https://metacpan.org/release/App-Memcached-Tool
- 上に挙げた App-Memcached-CLI とコードベースは一部共通しますが、こちらは本家 memcached-tool にある機能に絞って実装した CLI ツールです。
- App-Memcached-CLI の方が便利だと思います。
- ruby-stdlogger
- https://rubygems.org/gems/stdlogger
- STDOUT(or STDERR)とログファイルに同時に書き込む Logger をさくっと作りたくて、作った gem です。
- ruby-align
- Ruby のソースコードで
=
等の桁揃えをやりたくて作ったツール - Ruby コード中の "=" や "=>" を整列してくれる "ruby-align" というツールを作った - weblog of key_amb
- Ruby のソースコードで
- ruby-ec2it
- ruby-camel_snake
- https://rubygems.org/gems/camel_snake
- よくある camel case と snake case の変換という車輪をまた再実装してしまったやつ。
- sh-pathctl
- シェルスクリプトで PATH に要素を重複なく追加・削除するためのユーティリティ
- Bash で pathctl という PATH 操作ツールと bb という簡易ベンチマークツールを書いた - weblog of key_amb
- Bash や Zsh で PATH に同じパスが何度も追加されないようにする
- bash-install-github-go-binary
- yamlc (Go)
他に、単機能のシェルスクリプトなど書いて、 GitHub で公開したものもありました。
Contributions
OSS にパッチを送って、取り込まれたものです。
- b4b4r07/enhancd
- 使ってみて困ったことがあったので、2つほど機能追加の PR を取り込んでもらいました:
- ブログに経緯等を書いたもの:
- houseabsolute/DateTime-Format-Strptime
- v1.58 で混入したバグに気づいて、修正パッチを送りました:
- ブログに経緯等を書いたもの: DateTime::Format::Strptime にパッチを送った話 #Perl - weblog of key_amb
もっと小さいパッチを含めると、もういくつかありましたが、ここでは割愛。
勉強会で発表した
大きなカンファレンスには行ってませんが、今年は4回ほど勉強会で発表しました。
以下、発表で使用したスライドを貼っておきます。
以上の発表について、ブログに書いた記事:
- Ginza.rb で "grifork" について発表してきた - weblog of key_amb
- 西日暮里.rb で "poloxy" というアラートシステムの話をした #ninirb - weblog of key_amb
- 渋谷.rb で "fireap" という pull 型デプロイツールの話をした #shibuyarb - weblog of key_amb
- Gotanda.pm #8 で memcached-cli について喋ってきた #gotandapm #memcached - weblog of key_amb
終わりに
OSS 活動と業務時間の使い方について
ここに挙げたツールの内、ごく一部に会社で業務の時間を使って作っていたものもありますが、ほとんどは余暇の時間に作っていたものです。
別に、業務における OSS 開発を禁じられているわけではありませんが、それがメイン業務ではないのと、"業務上、必要な OSS に貢献したり、作ったものを OSS として公開すること" に多くの業務時間を割けていなかった、というところです。
本ブログは個人ブログなので、あまり明白に勤め先と紐付けてはいませんが、幸い今の勤め先はそんなに縛りの厳しい会社ではありませんし、今後はもっと業務と OSS 活動を結びつけて行きたいな、と思っています。
今後、何を作っていくのか?
- 作りかけの物がいくつかあります。サーバサイド周りのユーティリティーです。たぶん、近い内に公開できると思います。
- 作りたいモノのアイディアも少しあって、サーバ運用に関するものです。おそらく、趣味で作ることになるかな、と思っていて、スケジュールは決めていません。
今年はたくさん趣味プログラミングできてよかったです。
お世話になった方々、ブログを読んで下さった方々、ありがとうございました。
来年もよろしくお願いします。
皆様にとって、良い一年となりますように。