あしたからしごとやね。というわけで唐突に2018年をふりかえってみます。
こういうふりかえり系のものは年末とかに書く|書かれているイメージが自分の中ではありまして若干気が引ける感じがありますが、何も書かないでいつものように忘れてしまうよりはマシだろうと思い記憶の限り書いてみます。
ちなみに自分は、お客様のところに常駐して作業をしているしがないプログラマーです。
業務でやったこと
まず業務でやったことをふりかえってみます。
2018年1月〜7月
一昨年の夏くらいから関わっていたとあるサイト(BtoBtoC)の改修案件に引き続き携わっておりました。
- 主にやった作業は、php-resque を使ったキューイングシステムの構築
- Redisサーバを3台、Workerサーバを2台たてた
- WorkerはSupervisor を使いデーモン化してエンキューを監視した
- Jobのパラメータを(Redisに)エンキューすると、それを監視しているWorkerがJobを実行するイメージ
これを取り入れたことにより、今までバッチ処理によってデータの更新を行っていたのが、エンキューをきっかけにしてほぼリアルタイムにデータの更新ができるようになりました。
それまでバッチはcronで定期実行していたので、どうしてもデータの更新からサイトへの反映までにタイムラグがあったのであります。
雑な設計案
限りなくタイムラグを無くしたいという要望をうけて、これ(上記設計)使えばいけるのでは?という提案から実装までやれたので個人的にはかなり大満足でした。その分、かなりしんどかったですが。。
副作用として、テスト時におけるデータの反映待ちという無駄な時間も消し去ることができたので、かなりやったった感あります。
上記作業以外はひたすらレビュー、レビュー、レビューの日々を過ごしていました。
他にもチームで設計思想を統一したりとか、忙しい中でもちょっとしたチャレンジングを忘れずにできたのは良かった気がします。
けっこう忙しかったなぁ。
2018年8月〜9月
上記案件も落ち着いたので、新規プロジェクトに参加することになりました。
プロジェクト自体はとりあえずのおためし版みたいなものだったというのもあり、開発側としては
- AWSを使う
- なんか技術的にナウいことを取り入れる
くらいかなりフワッとした状態でした。
AWSを恥ずかしながらここで初めて触ったのですが、EC2とか簡単にサーバがたてられて感動しましたね。はい。
そして、どのタイミングで出てきたのか忘れたのですが、顔認識をしてみようという話になってAWSの以下サービスを使って簡易顔認識機能を作ったりしました。
簡単に説明すると
- 顔の画像をサーバに投げる
Amazon Rekognition
で年代・性別・感情などを取得- 取得した情報を
DynamoDB
に登録- あとでグラフとかに出力するのに便利
顔コレクション
に顔情報を登録(同一人物をなるべく弾くために)
みたいな仕組みです。で、顔の画像をサーバに投げる部分は clmtrackr.jsやpico.jsで顔認識して遊ぶ | Shimabox Blog に書いたものを少し改良して利用しました。
Amazon Rekognition
は本当にすごくて(語彙)、Amazon Rekognition が、顔の検出、分析、認識機能の更新を発表 | Amazon Web Services ブログ の前までは、前髪とかメガネの有り無しで精度にブレが結構あったのですけど、これの発表後は精度が格段に上がった気がします。顔の画像をポイッと渡すだけで、ここまでできるのはマジ半端ないって(試したことない人は試したほうがいいです)。
だからこそ、顔を認識して顔画像をポイッとサーバに投げるクライアント側の機能もAWSで用意(jsとか)してくれたらマジ神だなと思います。
そうそう、AWSのSDKはPythonを利用したのではじめてPythonを書きました。
2018年10月〜12月
ECサイトの改修案件に携わりました。炎上しながら作られたサイトだという話のとおり、レガシー臭がものすごいソースでしたね。
もうね、改修する際の影響範囲がまったくわからないんですよ。きっつーござんした。
2019年1月〜
PHP5.3で書かれたサイトの改修案件をやるようです。ため息しかない。
ブログ
- WEBカメラの映像をPythonとOpenCVで顔認識して遊ぶ
- PythonとOpenCVを使ったまばたき検知ゲームの(プチ)改善
- clmtrackr.jsやpico.jsで顔認識して遊ぶ
- Let’s Encryptの自動更新をcron化したけど地味に苦労した話
- APIの実行回数を呼び出し元で制限する
- selenium関連の諸々をダウンロードするライブラリを書いた
- php-webdriverのラッパーライブラリ”screru”のバージョンをあげた
- PHPで絵文字を扱うライブラリ “Pemojine”を書いた
- 【FuelPHP】\Fuel\Core\Session_File::gc()について
- Pixel3のSIMフリーを買ってauからUQmobileに乗り換えた話
10本。ひとつもはてぶされていない。悲しい。
書いたもの
GitHub
- shimabox/face_recognition_with_pico: Sample of face recognition with pico.js
- 顔認識を
pico.js
で試したやつ
- 顔認識を
- shimabox/face_recognition_with_clmtrackr: Sample of face recognition with clmtrackr.js
- 顔認識を
clmtrackr.js
で試したやつ
- 顔認識を
- shimabox/screru: Screru is a library that supplements php-webdriver
- facebook/php-webdriver のラッパー、画面キャプチャに特化しているつもり
- これはすこし改修してバージョンをあげたものになります
- shimabox/selenium-downloader: selenium-server-standalone, ChromeDriver, geckodriver and IEDriverServer downloader.
- seleniumを試すときに必要なツールをダウンロードするやつ
- shimabox/pemojine: Pemojine is a library for handling Emoji in PHP.
- PHPで絵文字を扱うやつ
新しく書いたのは4本。これもひとつもスターつかなかったな。かなしいことやで。
Gist
- WEBカメラの映像から顔と目を検出して目にはモザイクをかけるやつ(Python+OpenCV)
- 目をつぶったら画面キャプチャを終了するやつ(Python+OpenCV)
- 目をつぶったら画面キャプチャを終了するやつ(Python+OpenCV)の改善
- APIの実行回数を呼び出し元で制限する-サンプル1 @see https://blog.shimabox.net/2018/10/04/restrict_the_execution_count_of_api_by_caller/
- APIの実行回数を呼び出し元で制限する-サンプル2 @see https://blog.shimabox.net/2018/10/04/restrict_the_execution_count_of_api_by_caller/
書いたのは5本。これもひとつも(ry
その他
私生活で大きかったのは、秋にあった息子のピアノ発表会で息子と一緒に連弾を弾けたことでしょう。
夏くらいから練習をはじめて、夏休みは毎日1〜2時間、発表会までの土日も欠かさず1時間はピアノを弾いていました。
それのおかげで緊張はしたものの、ほぼノーミスでやりきれました。あぁ、いい思い出。
息子と連弾するためにピアノの自主練してる pic.twitter.com/HA5ab0t6tL
— しまぶ (@shimabox) August 11, 2018
ピアノ発表会パーフェクトで終わった(息子との連弾)!! pic.twitter.com/s1h9ASwo1a
— しまぶ (@shimabox) October 21, 2018
ふりかえってみて
2018年はそこそこ新しいことをやれた気がします。
特によかったのは顔認識を試せたこと。AI関連の技術はここまで手軽に試せるほど進んでいるのかと実感できたし、AIをやっていかないとおそらく取り残されてしまうんだろうなと強く感じました。
アウトプットしてもはてぶとかスターが全くつかないのは、これ目的ではないにしても、地味に凹みますが、これが今の自分の実力なんだろうなと思っています。いつかはきっと報われると信じて自分なりの努力を続けていきます(なにをもって報われたと言えるのかわからないけど)。
息子との連弾もいい思い出でしたね。
※ でも、できれば来年はやりたくない
2019年の抱負
ついでに抱負を述べときます。
AI(機械学習)を用いた何かを作る
画像認識、文字認識なんでもいいので、何かしら機械学習を用いた何かを作ります。
この先生き残るのに、これ一番大事っぽい気がする。
遅いかもだけど遅すぎることはないっしょ。
転職
今年こそ新しい世界に飛び込んでみようかと思っています。心優しき方、よろしくお願いします。
歯医者にいく
歯医者にいくぞ
というわけで2019年もがんばるぞ!!