monoの開発ブログ

2015年の OSS 活動

raimon さんの記事が面白かったので、丸パクリで私も書いてみました。ただ、元ネタと違って自分のプロダクトについても書いています。そこを書かないと記事の量を確保できないというのもありますし、せっかく公開しているもののまったく誰にも見られていないものもいくつかあるので、この機会に宣伝しておきたいというのもあります。

p-r 出してマージされたもの

mackerelio/mackerel-agent-plugins

  • #90 ESI を有効にしていると、クライアントからのリクエスト1回に対してキャッシュヒットやミスが2回以上カウントされる場合があるため、リクエスト数ではなくヒット数とミス数の合計値をヒット率計算の分母にするように変更

hewes/unite-gtags

  • #5 開いているファイルにパスが近いファイルを上位に表示する --nearness オプションを利用する設定を追加

vuejs/vuejs.org

vuejs-jp/vuejs.org

  • #56 いろいろ修正
  • #57 いろいろ修正
  • #58 いろいろ修正
  • #62 翻訳

p-r 出してないけど自分は使っているもの

この辺、本家の更新や p-r への対応が止まっているので、メンテナを引き継げないか相談してもいいかもしれないですね。ただ、私もこれらを長期的に使い込んでいくかどうかはわからないですし、ましてや新機能を追加する気はまったく無いので、どうしようかなという感じです。

AutoPatchWork

  • 古い API を使っていた部分を現行の API に書き換え

ChromeKeyconfig

  • input[type="number"] でも vim mode が効くように変更
  • embed 要素でアクションが実行されないように変更
  • Chrome のバージョンアップによって limited mode が動作しなくなったのを修正
  • object 要素でアクションが実行されないように変更

自分のプロダクト

my-scraper

Web サイトをスクレイピングしたり API を叩いたりして得た情報から Atom フィードを生成する、というコードをいろいろまとめてひとつの Web アプリケーションにしたものです。Yahoo! Pipes が無くなったので自分でアプリを書いてやろうということで作りました。このソフトウェア自体が直接役に立つということはほとんど無いと思いますが、golang でスクレイピングするサンプルとしてとか、最近廃止になった Google カレンダーのフィードを再現するサンプルとしてはそれなりに有用なのではないかと思います。

my-retweeter

Twitter の指定したアカウントのツイートをすべて自動でリツイートするツールです。普段使いのアカウントと告知用アカウントを分けていて、告知用アカウントのツイートを普段使いのアカウントにも流したいという用途で開発しました。私は OS X と Linux でしか確認していませんが、golang で書いたので幅広い環境で動作するはずで、普通にそこそこ便利なんじゃないかと思います。

greeting.sucretown.net

サンリオピューロランドの常連御用達 (だと個人的に思っている) ツールです。現場にて、まったく面識のない人のスマホがたまたま見えた時に画面にはこのサイトが表示されていた、ということが数回あります。

このプロダクトは2013年から継続して開発しているものなので、今年の主な変更点を列挙しておきます。

  • Travis CI 導入
  • 翌日の登場キャラクターの収集と表示に対応
  • DB とクエリを改善
  • メインページの Vue.js 対応
  • Google Charts 廃止
  • Git にクローラの取得したデータを蓄積
  • server-starter 対応

ranking.sucretown.net

これもサンリオ関係。Twitter のデータを集めて分類して集計し、ランキングとして見せるというものです。Perl の勉強をしようと思って Perl で書き始めたはいいものの、割と早い段階で Perl を勉強する気がしなくなってしまったので、来年もし使う機会があったとしても今のコードは捨てて golang で書き直すと思います。

おわりに

こうして見ると簡単に書き出せちゃってとにかく少ない。量を追うことが本質ではないにしても、何か OSS に貢献できることは無いか意識的に考える瞬間を作ってもいいんじゃないかという気はします。今は自分のための開発の中で気付いた点を p-r にするというのがすべてなので。