職業プログラマの休日出勤

職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。

2017年の成果物まとめ

2017年も残り4時間を切りました。
突然ですがここで2017年に作ったものをまとめておきたいと思います。

ちなみに、2016年に作ったものは、こちら。
tmotooka.hatenablog.jp

公開しているもの

いざ調べてみると、公開している完成した製品は何もありませんでした。2016年とは大違いですね。残念で仕方なりません。
仕方がないので完成品でない成果も紹介したいと思います。

(作りかけ)PDFファイルから情報を吸い出す pdfreader

github.com
作りかけのまま半年以上放置してしまいましたが、pure PHP なPDF解析ツールとして開発しようとしていました。
もっと作り込まないといけませんね。
もちろん、PDFファイルにもいろんなものがありますので、その全てに対応するのは非常に難しいものです。簡易なものだけ対応できたらいいなーと、ゆるく考えています。

SVG方眼紙

tmotooka.hatenablog.jp
SVGでカンタンに方眼紙が作れるんです!
ここでは、その作法を紹介しています。

ひ・み・つ のソフトウェア

これらは公開できない、または名前を触れられないソフトウェアです。

自分の会社のWebサイト

仕組み的には、Dockerコンテナ上で動いているJekyllMarkDown等を食わせて、ビルド結果をAmazon S3に置き、CloudFrontHTTPS配信している静的サイトです。
これまでは1ページしか無かったこともあってHTMLを全て手書きしていましたが、コンテンツ量が増えて複数ページ構成にするにあたって、ヘッダやフッタくらいは共通化したいよね〜ということで仕組みを変えました。
快適です。
次にやることはデプロイの自動化ですかねー。GitHubのプライベートrepoにpushしたらデプロイされる形にしたいものですが、年間5回程度しかデプロイしないものに対してデプロイの自動化をするべきかどうかは、悩ましいものです。

データ移行プログラム

古いシステムAから、新しいシステムBへと、データを移行するプログラムを作りました。
システムの停止時間を可能な限り短くするための、様々な工夫が仕込まれています。一言で言えば差分のデータ移行を可能にした訳ですが、どのようにしてシステム負荷を現実的な範囲に収めつつ差分移行するのか?というのは実は難しい問題なのです。
これまでの職業人生の大半で得た経験を活かしに活かしまくったプログラムですが、今ではその役目を終え、静かに眠っているはずです。
後輩たちに伝えるべき技術は、SVG/PDF関連以外は全てここにあるといっても過言ではない、はずだったのですが…

業務用 Chromeプラグイン

営業日は毎日実施される極めて煩雑なWebアプリ作業(5分程度かかる)を簡単(2分程度)にするためのChromeプラグインを開発しました。2017年2月頃の作品です。
1ヶ月20営業日として、1人あたり3分×20日=1時間おトクになれるプラグインです。
これを開発するための習作が、2016年のクリスマスに公開しているこれです。

Google Cloud Speech API を使ったツール

cloud.google.com
これで何をやっているのか?は非公開ですが、音声を与えるとテキストデータが得られるアレです。
ここに投げる音声を加工するためにAWSAmazon Elastic Transcoder を使ってたりします。AWSGCPの両方に依存するシステム、今まで作ったこと無かったけども、ついに手を出してしまいました…

時刻表アプリ

CSVファイルを読み取って UITableView で表示するだけのiPhoneアプリです。
朝は電車で座って通勤している(ドヤァ)のですが、夜の帰宅時は極端な混み方をしないものの、どれもある程度混んでいます。その中でも混み具合に少しバラつきがあることに目を付け、そのバラつきの原因を分析し、理論は確立できました。しかしその理論に基づいた混雑度予測結果を暗記するのは非常に難しかったため、CSVデータを表示するだけのアプリを作りました。理論と言ってもそんなに難しいものはありません。
なお、リポジトリに含まれるCSVファイルは職場の最寄駅の時刻表なので、リポジトリは公開していませんw

特徴として、次のようなものが挙げられます。

  • ネットワーク通信が皆無
    • 速い
  • 時刻情報から、混雑度がある程度わかる
    • 直前の電車が発車してからの経過時間が長いほど混む
    • 始発駅や行き先(何種類かある)が特定のものである場合は混む

久し振りにswift書きました。

スライド

sedで知る 矢印キーの キーコード

speakerdeck.com
2月のシェル芸勉強会でとっさに作ったものです。
キーコード、ど忘れするんですよね〜。

AWSのAthenaを活用する話

tmotooka.hatenablog.jp
2月に、米子で開催された中国地方DB勉強会に赴き、たくさんの美味しいものを食べながら、Athenaを活用する話をしてきました。

Emoji Modifiers

speakerdeck.com
MySQLにデータとして絵文字を突っ込みまくってイジメた活用しまくったときにどのような挙動になるのだろう?という疑問を明示するためのスライドです。
MySQL界隈としては8系で大はしゃぎ(いい意味で)の一年でしたね!

JVNに情報掲載した話

speakerdeck.com
4月の総関西サイバーセキュリティLT大会で発表した内容です。
時期や製品などは明らかにはできませんが、IPAさんと連携しつつ脆弱性対応をしたときの経験談を綴ったものです。普段なかなか経験できない、かつ正確さが求められる仕事になります。明日は我が身、皆さんもいつ脆弱性検出されても利用者や社会そして自社や自分自身を守るため、適切な対応をできるように構えておきましょう。

他にも、所属していた会社の内部の勉強会向けには大量の発表をしていますが、さすがにここでは公開できないものばかりです。(2016年と全く同じ文言)

その他

働き方改革

tmotooka.hatenablog.jp
この退職エントリの通り、働き方を変えました。会社も変わってますけれども。
今では病気やお出かけを除けば週7日勤務ですが、1日8〜9時間睡眠を確保できる範囲に収めていますし、前述の通り朝の出勤時は電車で座って通勤です。これこそ、追い求めていた生活スタイルです。


さいごに

成果物が2016年と比較するとショボいですが、書くことさえできない作りかけのものばかりなので、2018年はどど〜〜んと放出していきたいと思います。

2018年もよろしく。