yosida95 の 2014 年まとめ

はじめに

こんにちは yosida95 です。 2014年も残り僅かとなり、そろそろ今年を総括してもよいころなのではないかと思った次第です。

引っ越し

秋葉原に引っ越した、19歳にして初めての1人暮らしをはじめました。 通勤時間が大幅に圧縮され、精神的にも体力的にも余裕が生まれました。 引っ越しと同時に自炊もはじめましたが、小さいころから料理をやっていた素地があったので、楽しみながら凝った美味しいものを食べられるようになったので最高という感じです。

また、ぼくの引っ越しの1週間後に弊社社長が徒歩30秒のところに引っ越してきました。 ぼくが空腹で困っている時に夕食をデリバリーしてくださるなど、最高にエキサイティングな生活が始まりました。

ゲヒルン勤続 1 年 5 ヶ月

2013 年の8月にアルバイトとして転職し高校卒業を待って2014年4月に正職員登用されたゲヒルンですが、なんだかんだでアルバイト期間を含め勤続期間が1年5ヶ月になりました。 雇用契約書

ゲヒルンでは主に GitHub の GehirnInc アカウントでの OSS 活動と Gehirn News のライター、社内チャットにいる slackbot の開発・運用などを主にやってきたとかそんな訳はないのですが、現時点でぼくから公開できる情報は特に無いです。 twitter でゲヒルンの活動がよくわからないという声もちらほらみかけますが、多岐にわたっていて実際ぼくにもよくわからないです。 ただ、ぼくが入社した2013 年8月と比べてオフィスの面積が圧倒的に広くなり、職員も2倍以上になりました。

26 日の金曜日にあった納会と二次会のカラオケから帰ってきて1年間を振り返ってみましたが、風通しの良い会社で自由にのびのびとさせてもらっていて、技術的にも組織で働く人間としても大きく成長した気がしました。 ありがたいことに転職のお誘いやヘッドハンティングをいただくことがあるのですが、まだゲヒルンでやりたいことがあるのでしばらくはお応えすることができません。

OSS 活動

今年は GitHub で yosida95 アカウントと GehirnInc アカウント両方でいくつかのプロダクトを OSS にし、またいくつかの OSS にコントリビュートしました。 yosida95 アカウントで活動するか GehirnInc アカウントで活動するかの差は概ね勤務時間中に書いたか否かだけで、開発動機や設計思想には差はありません。

OSS にしたプロダクト

ざっくりとですが印象深くて今後も力を入れていこうと思っている順に並べてみました。

  • yosida95/tsparser
    • ARIB STD-B 10 (PDF) で定義されている日本の地上デジタル放送における MPEG-2 TS パケットをパースする Go ライブラリ
    • TS から Event Information Table に含まれる日本語の番組情報をコンソールに表示できた時は感動しました
    • 開発していく意思はまだありますが、引っ越しでテレビのない生活を始め、テレビ放送は原作を知っているアニメだけを視聴するようになったので、このライブラリを使っていろいろ自動化するという動機がすこし薄れてきてしまっている気はします。 テレビや PT3 や HDD なんかを贈って 頂けると開発が活発化するかもしれません (/ω・\)チラッ
  • yosida95/python-jsmapper
  • GehirnInc/py3oauth2
    • Python 3 製 OAuth 2.0 プロバイダ ( サーバー ) ライブラリ
  • GehirnInc/python-oidc
    • Python 3 製 Open ID Connect のプロバイダ ( サーバー ) ライブラリ
    • Open ID Connect の規格は OAuth 2.0 を拡張したものなので、 GehirnInc/py3oauth2 を継承する感じで作ってあります
  • GehirnInc/python-jwt
    • Python 3 で一連の JSON Web Token (JWT) 関連仕様 (JSON Web Token (JWT), JSON Web Signature (JWS), JSON Web Key (JWK)) をエンコード・デコードするライブラリです
    • 欲しい部分だけ書いたので JSON Web Encryption (JWE) 部分は実装していません
  • yosida95/python-sshkey
    • OpenSSH 形式の鍵ペアをパースする Python 3 ライブラリ
    • これも欲しいところだけしか書いていないので RSA, DSA, ECDSA の各公開鍵をデコードして finger print と鍵長を計算するか、各アルゴリズムの公開鍵から OpenSSH 形式にエンコードするくらいしかできません
  • GehirnInc/GOpenID
    • Go 製 OpenID 2.0 サーバーライブラリ
  • GehirnInc/crypt
    • crypt (3) の手順にしたがってパスワードの salt 付きハッシュを計算する Go ライブラリ
  • GehirnInc/puttykey
    • PuTTY 形式の SSH 鍵をパース・シリアライズする Go ライブラリ
  • yosida95/golang-gehirndns
  • yosida95/twitter-trailer
    • Twitter Streaming API の Go で書かれたクライアントライブラリ
  • yosida95/golang-jenkins
    • Jenkins API の Go で書かれたクライアントライブラリ
    • 勢いで書いてすっかり忘れて放置していましたが、先日 Pull Request を頂いて思い出しました
  • yosida95/recvknocking
    • ポートノッキングを扱う Go ライブラリ
  • yosida95/gitpull
    • yosida95/recvknocking の活用例として作った、ポートノッキングを受けて git pull コマンドを実行するアプリケーション
  • yosida95/ip2country
    • IP アドレスをそのアドレスが割り当てられた地域の ISO 3166 に示されるコードに変換する Python ライブラリ
  • yosida95/random
    • ランダムなアスキー文字列を生成する Go ライブラリ

コントリビュートした OSS

  • youzaka/ariblib
    • ARIB STD-B 10 にもとづき MPEG-2 TS をパースする Python 3 ライブラリ
    • pep8 に従う Pull Request とファイルの実行権限を修正する Pull Request を投げたらマージされました
    • Python 3 になって変更された文法に対応しきれていなかったことでバグを作ってしまいその節はご迷惑をお掛けしました
      • twitter でライブラリの利用者に指摘されて大変申し訳無いという気持ちになりました
  • danryan/hal
    • github/hubot を置き換えようとする Go 製チャットボット
    • CoffeeScript に辟易とし Go で Hubot を置き換えるツールを書こうと考えていた時に出会ったライブラリです
    • 外部からの HTTP フックを受けられなかったので Pull Request を出したらマージされました
    • イケていない仕様があったのでパッチを出すために Issue で開発者と設計について議論したら開発者自ら修正してくれました
  • plouc/go-gitlab-client
    • GitLab の Go で書かれた API クライアントライブラリ

この他にも、 ansible/ansible-modules-corerobbyrussell/oh-my-zsh などの Pull Request を投げているプロジェクトがいくつかありますが、いつもだいたい衝動だけで Pull Request を投げているので、忘れたことにマージされて必死に記憶を辿るようなことが時々あります。

おわりに

2014 年中は人にも仕事にも恵まれ、高校を(無事ではないながらも)卒業し、ゲヒルンでの正職員登用、引っ越しなどのイベントがあり、大変よい方向へと向かった1年でした。 お世話になった方々には厚くお礼申し上げます。

2015 年にはようやく 20 歳になります。 20 歳になれば社会生活を送る上での法律的な制約からもだいぶ開放され、今まで以上に自由になるだろうと思っています。 拡充した自由の裏にある責任にも目を向けしっかりと向き合っていき、実りある1年にしていきたいと意気込んでいます。 また、年々減っているブログエントリ数をみて悲しくなったので、ブログエントリを含めてアウトプットを増やしていく所存です。 2015 年も変わらぬご高配をなにとぞよろしくお願いします。

# ぼくがゲヒルンに入社して以来戦い続けてきたプロジェクトは( Twitter や facebook で何度か愚痴ったり皮肉ったりしたように)紆余曲折がありましたが、経営陣に呼ばれて実施された個人面談で思っていることをはっきり言わせてもらったことや、それによってチームの編成が変わっりしたことも追い風となってようやく勝つことができそうです。
# ぼくの一連の投稿を受けてかなり本気の心配を頂いたり、強い共感をを頂いたりしていたので、状況が好転したことをひとまずここでご報告させていただきます。

余談ですが、昔アイデンティティについて思案して Write Only な Twitter Client を作ったり、だれでも匿名でぼくのアカウントから発言できるようにしていた頃に Twilog を消してしまったのですが、ツイセーブというサービス の存在を知り登録したところ、 tweets.zip から過去の発言を登録できて最高に便利でした。 おかげでぼくの twitter での過去の発言を簡単に発掘でき、この記事を書くぼくの助けとなりました。