これは退職エントリではなく退職届を出したので転職先を募集する求職エントリです。
これといった大きな理由はないのですが細かい不満が溜まったため、今年いっぱいで退職することになりました。 細かい不満といってもチームメンバーや業務内容に文句があるわけではなく、逆に素晴らしい環境を提供していただいたと感謝しています。 後先考えずに退職届を提出したため、次の職場や今後に関してはまったくの未定です。
特に顔が広いわけでもコミュ力があるわけでもないので、gist を使って募集してダメだったら諦めようかなとおもってこの記事を書いてます。 興味があれば @y_imaya などに連絡ください。
退職することにしたので、建前として、本当は働きたくはないんですが、表面上は、次の仕事を探さなくてはいけません。 そこでまずは Web で「フロントエンドエンジニア」や「JavaScriptエンジニア」、「Webアプリケーションエンジニア」などで検索してみたのですが、 どうも自分の想定している職業とは少し違う気がします。
自分の希望する職業としては「基本的にブラウザのみで動作するアプリケーション・ライブラリの構築を行うエンジニア」なんですが、こういうのはなんて言うんでしょうか。 jQuery やら MVなんとかフレームワークを使って JSON API から受け取ったデータを小奇麗に表示するとかはあまり興味がないです。 (必要ならばもちろんやりますが、それが主要な業務となるようなプロジェクトは嫌だ、ということです)
Webブラウザを使って、PC 用のファイルフォーマットを利用できるようにできます。 以下は個人で開発したライブラリです。(許可を得て修正や機能追加、パフォーマンスチューニングなどを業務時間中に行ったりもしました) オープンソース(MITライセンス)で公開しているため参考にしてください。
JavaScript で ZLIB 圧縮・伸張を行うライブラリです。 zlib(C言語実装) の移植ではなく、JavaScript として高速に動くように書かれています。 ZLIB コンテナとして GZIP, PKZIP のサポートも行っています。 Node.js, 通常の Array, Typed Array で利用可能です。
JavaScript で書かれた PNG エンコーダです。前述の zlib.js を使っています。 仕様に書かれていることはすべて実装しているつもりです。(iCCP チャンクは若干手抜きですが…) Canvas#toDataURL では指定できない細かい仕様に対応しているため、たとえばサーバにアップロードする前にインデックスカラーの PNG を作りたくなった時などは便利です。
JavaScript (Web Audio API) で SoundFont を使った標準 MIDI ファイルの再生を行います。 RPGツクールシリーズなどで使われる CC#111 やYs2 Eternal で使われた Marker によるループなどの標準仕様以外のものにも一部対応しています。
JavaScript で PSD のパースを行います。 プレビューの表示や簡単なテキストの抽出くらいなら出来ます。 別人による同名のライブラリが一時期話題になりましたが、コード上の関連は一切ありません。 ちなみにこちらの実装が後発です。
特に ZLIB ライブラリは広く使われていて、以下のライブラリ/アプリケーションで使用されているのを確認しました。
- Flash 互換関連
- Reel (グリー)
- LWF (グリー)
- JswfPlayer (sonicmoov)
- BLADE (シリコンスタジオ)
- ゲーム関連
- cocos2d-html5
- カラフルどうぶつ大合戦 (DeNA)
- その他
たぶん以下は次の職場が見つかろうがニートになろうがやります。
zlib.js の圧縮が遅い問題が大きな問題として残っており、これの影響が zlib.js で圧縮を行う他のライブラリにも影響がでているため、高速化の実装・検証作業を行っています。 具体的には LZSS 符号化がボトルネックになっているため SuffixArray, 簡潔ビットベクトル(完備辞書) などを使った LZSS 部分の高速化を検証しようとしています。 (直近では LZscan を試そうと思っています。)
上記の結果があまり良くないようならば、処理の簡略化を行うことでパフォーマンス調整を行えるようにしようと思います。
sf2synth.js は技術検証用にちょっとやってみたら出来てしまった感じなので、雑に作ってある所が多いです。 いくつか設計の見直しを行うことでパフォーマンス改善とメンテナンス性を上げることが出来ると思っています。 (ただし、一番のボトルネックは解消できそうにない)
また、現在は仕様のすべてをサポートしているわけではないため、こちらのサポート状況も改善していきたいです。 (現状はブラウザ側の実装状況によりサポートできない仕様もある)
3年ほど前から Closure Library を使って開発しているお絵描きアプリケーションの開発を進めます。(未だにリリースできる完成度になってない) 一般的なお絵描き掲示板などと違うのは、一度描いた線を後から編集できるベクター形式のレイヤーがあることです。 Android Chrome やペンタブレット、Windows 8 タブレットの IE10+ などではスタイラスによる筆圧も取得することができるようになっています。
ブログやGitHubを見れば傾向はわかると思います。
- Blog: http://imaya.blog.jp/
- GitHub: https://github.com/imaya/
- PNG軽量化の減色と圧縮について: http://labs.gree.jp/blog/2012/11/5373/
- JavaScript による Lossless 画像の扱い方 (SWF 研究会#2 LT): http://imaya.github.io/slide/swfstudy02/
- Web Audio APIでMIDIファイル再生(社内勉強会 LT): http://imaya.github.io/slide/webaudio/
光の戦士として生きていこうと思います。