読者です 読者をやめる 読者になる 読者になる

2016 年に向けて

総括としては大きな方針目標を複数立てても役に立たないということがよくわかった。 ということで、一つくらいにしておく。

やらないことはよかった、本当にやらなかった。

負荷試験自動化

長期的に取り組む事にする、 2 年計画と想定し前に進めていく。

新しくやること

  • Golang によるツール
    • 自分で開発しなくてもよい
  • ワークフロー系
    • よくわかっていないので手を出してみる
  • HTTP/2
    • 急ぎはしない
  • QUIC
    • 優先度は少し高い
    • TLS 1.3 が先か
  • ブロックチェーン
    • 仕事にはならないはずなので知識だけでも

やらないこと

  • Erlang/OTP, Lua, Golang, JavaScript 以外にふれる
  • ネイティブアプリ系
  • データベースやストレージ系
  • エディタを VIM から切り替える
    • 特に何もしてない
  • 解析
  • 機械学習

2015 年振り返り

総括としては大きな方針目標を複数立てても役に立たないということがよくわかった。 ということで、一つくらいにしておく。

やらないことはよかった、本当にやらなかった。

Messaging

特になにもしていない

Notification

特になにもしていない

Automated load testing

特になにもしていない

Automated susceptibility testing

特になにもしていない

やること

  • Golang によるウェブアプリの作成
    • 結局やらず
  • FoundationDB や CockroachDB などの今時の DB
    • 使おうと思ったら買収されてた
    • ということで進展なし
  • ドキュメンテーション
    • できるだけ書けたと思う
  • ビルド
    • CircleCI 以外を触る
      • CircleCI で十分だった
    • Docker や Ansible
      • Docker にはかなり投資できた
  • 自動化
    • 余りできた印象はない
  • テスト
    • 一通り書けたが、WebRTC のような複雑な仕組みに対応できていない
  • タスク管理ツールをあさる
    • Trello でよい
  • AWS とか GCP とか
    • AWSGCP も仕事で使わないという悲しいオチ

プロトコル

  • HTTP/2
    • まったく追いかけていない
  • DTLS (1.0 / 1.2 互換)
    • DTLS 1.0/1.2 両方実装した
  • MQTT
    • Broker, Service, Gateway の 3 パターンで一段落した
  • TURN/STUN
    • 特になにもしていない
  • WebRTC
    • SFU, Service, Gateway の 3 パターンで一段落
    • 来年前半も WebRTC だろう

やらないこと

  • Erlang/OTP, Lua, Golang 以外にふれる
    • Rust に手を出していたが、完全に手を引くことにした
  • JavaScript
    • 残念ながら必要にせまられて少しずつやってるが深追いはしない
  • ネイティブ系アプリ開発
    • 特に何もしてない
  • MySQL, PostgreSQL とかの RDB
    • 特に何もしてない
  • Riak, Redis とかの KVS 系
    • 特に何もしてない
  • ストレージ
    • 特に何もしてない
  • エディタを VIM から切り替える
    • 特に何もしてない

2015 年前半ふりかえり

一年単位だとちょっと振り返りが難しいので、半年ごとにしてみる。

http://voluntas.hatenablog.com/entry/2015/01/03/215005

テーマふりかえり

Messaging

メッセージング自体に意識がいっていなかった。あまりいいテーマではなかった。

Notification

デバッグログを WS 経由で飛ばしたりとかはイメージできたけどどうも自分が欲しいのはこの辺ではないらしい。

Automated load testing

今年中にアクションは起こす

Automated susceptibility testing

今年中にアクションは起こす

やること -> やれたこと

  • Golang によるウェブアプリの作成
    • 自分はコードは書いていないけど、実際に実現した
  • ビルド
    • CircleCI で固定
    • Docker は結構触った docker-machine 良い
  • 自動化
    • パッケージング部分はかなり綺麗になってきた
  • テスト
    • モックを殺していき、EtoE のテストを進めてきた
  • AWS とか GCP とか
    • 一通りは使える用にはしておく
    • Hashicorp の Atlas とかも触れておく

やること -> やれなかったこと

やること -> やらなかったこと

  • タスク管理ツールをあさる
    • Trello で困ってないので、困るまでは Trello で
  • FoundationDB や CockroachDB などの今時の DB
    • 一端困ってないのでいいかという判断になった

プロトコル -> やった

  • DTLS (1.0 / 1.2 互換)
    • まだまだプロトレベルだけど動くところまでは持って行った
  • MQTT
    • 全て実現、一段落
  • TURN/STUN
    • WebRTC 関連で ICE との連携でかなり学んだ
  • WebRTC
    • 実装を着々と進めている

プロトコル -> やらなかった

  • HTTP/2
    • まだ必要性が見えていなくて簡単な勉強のみ、QUIC の方が気になる

やらないこと

  • Erlang/OTP, Lua, Golang 以外にふれる
    • Rust に手を出した、逆に Golang にほとんど手を出さなかった
    • Rust はパターンマッチと cargo のビルドがかなり気に入ってるので、こちらを主力にする
  • JavaScript
    • WebRTC でちょっとだけ触ったが、基本は人のコピペ
  • ネイティブ系アプリ開発
    • Electron はドキュメントだけ読んだ、自分では手を動かさなかったので問題なし
  • MySQL, PostgreSQL とかの RDB
    • まったくがんばらなかった
  • Riak, Redis とかの KVS 系
    • まったくがんばらなかった
  • ストレージ
    • まったくがんばらなかった
  • エディタを VIM から切り替える
    • まったくがんばらなかった

2015 年いろいろ

年始なので、去年 Pocket に入れてた記事を眺めながらこんなの興味あったんだなぁと思い出しつつ、今年一年どうするかを考えてみた。

2015 年のテーマ

Messaging

メッセージングは自分の中で結構キーになっているっぽい。 いろいろな場面で使えるし、自分に向いている技術の一つなんだろう。

Notification

ただ通知するだけではなく、いつどうやって通知するか。 どう気付かせるか。色々やりかたがありそう。

Automated load testing

自動負荷試験。ここ数年ずっともってるテーマ。今年も継続。全然先が見えない。

負荷試験もそうだけど、ロングラン試験も自動でやっていきたい。ただどのバージョンをやるべきかとか色々難しい。

とにかく頭も手も動かして前に進みたい。

Automated susceptibility testing

自動障害試験(英語が正しいのか謎、突っ込み待ってます)。これもここ数年ずっともってるテーマ。

あこがれは 猿が暴れてクラウドの障害に強くなるNetflixのシステム だ。

自社サービス (MQTT as a Service Sango) を持つようになったので、チャレンジしていきたい。ただそんなに流行ってるサービスではないので、微妙と言われると微妙ではある。

とにかく頭も手も動かして前に進みたい。

やること

  • Golang によるウェブアプリの作成
    • どこまで使えるのか、どこまで行けるのか
  • FoundationDB や CockroachDB などの今時の DB
    • なんとなく知っておいて損はなさそう
  • ドキュメンテーション
    • 去年はかなりないがしろにしていきたので
  • ビルド
    • CircleCI 以外を触る
    • drone ローカルを検討する
    • Docker や Ansible
  • 自動化
    • 去年の終わりの方からゆっくりと進めている
  • テスト
    • 新しい知識が入ってきてないので注入する
  • タスク管理ツールをあさる
    • Trello 以外にも触れてみる
    • Asana とか気になってる
  • AWS とか GCP とか
    • 一通りは使える用にはしておく
    • Hashicorp の Atlas とかも触れておく

プロトコル

  • HTTP/2
    • どう変わっていくのかを少しでもいいので追いかけていく
  • DTLS (1.0 / 1.2 互換)
    • 公式は当面先っぽいので Erlang/OTP 実装をオレオレですすめる
  • MQTT
    • Broker, Service, Gateway の 3 パターンで一段落させる
    • 性能や安定、新機能に切り替える
  • TURN/STUN
    • 一通り実装してあるけど、足りてないのを細々と
    • NAT 関連は今年で一段落したい
  • WebRTC
    • そろそろ WebRTC Stack 実装に手をだそうか悩んでいる
    • SRTP とか SCTP とか

やらないこと

  • Erlang/OTP, Lua, Golang 以外にふれる
    • Rust はなんかだんだん向いてる方向性が違うっぽいので様子見
  • JavaScript
    • もう触れないで生きていきたい
  • ネイティブ系アプリ開発
  • MySQL, PostgreSQL とかの RDB
    • 周りの詳しい人に相談する
  • Riak, Redis とかの KVS 系
    • 周りの詳しい人に相談する
  • ストレージ
    • 周りの詳しい人に相談する
  • エディタを VIM から切り替える
    • AtomIntelliJ だーで無駄な時間が多かった
    • 今年は VIM

2014 振り返り

Erlang/OTP

80% くらいは Erlang/OTP 書いてる。

最近はパッケージ化が面白い。rebar generate と relx 併用している。さらに Linux ディストリ事のパッケージングとかを Docker でやったり。

18.0 が次にリリースされて順調に進化してる感じがしている。来年も少しでも貢献していきたい。

Python

外部テストツールとして使う以外はまったく使わなくなった。

nginx + lua のテストに py.test と requests を使っている。そういえば Ansible もか。そのくらい。

ほぼほぼ使わなくなったといっても過言ではない。

Lua

Lua の仕事が意外にあったので、会社の第一弾製品として作った。

luli Lua言語用ソースコード静的解析ツール

継続的に Nginx + Lua のお仕事があるので、書いている。ただ最近はプロトタイピングとレビューがメイン。

また Erlang/OTP + Lua という組み合わせでのボットシステムを作ったりした。

時雨堂 BOT サーバー (すごいErlangをゆかいに学ぶ会)

組込スクリプトの可能性を実感した1年だった。来年も少しずつ Lua をやっていきたい。

MQTT

今年一年は MQTT だった。1 月 1 日から触り始めた記憶がある。1 年でプロダクト二つ出せたので満足。

MQTT 3.1.1 もリリースされたりしたので、なんだか本当に MQTT だった。

この二つをリリースした。来年はもう一つ MQTT 関連をリリースする予定。

時雨堂 MQTT ゲートウェイ開発ログ

これで、 MQTT 関連は一段落するつもり。後は継続開発モードへ。

TURN/STUN

仕事で WebRTC シグナリングサーバーと STUN サーバを作ったきっかけから、 TURN サーバを書いてみた。

時雨堂 TURN/STUN サーバー開発ログ

RFC 読むの大変だったが、社員が翻訳してくれたのでとても助かった。やっぱり日本語はありがたい。

そういえば WebRTC Conference Japan で喋るので興味あれば、どうぞどうぞ。

セッション内容 | WebRTC Conference Japan

Golang

ウェブアプリを Python から Golang へ切り替えた。といっても自社ではなく子会社。自社も Python から Golang にする予定。

変更した理由はいくつかあって、一つは性能課題を Python では解決出来なさそうだから、もう一つは go fmt 素晴らしい。あとはコンパイル時にエラーに気付きたいという、テストを減らせるのは大きい。

Golang でのウェブ開発を考えてみる - Qiita

切り替える前に色々調べておいた。実際すでに開発が進んでいる、順調です。

困ってることはあまりない感じ。一点違うのがテンプレートエンジン使わず JSON + JS の SPA っぽいかんじになっている事くらいか。ただこれも ReactJS を使ってうまいことやっている模様。

この辺は再度来年に案件が落ち着いたらまとめておきたい。

来年は Golang でウェブアプリ一つ、MQTT 系アプリ一つを作る予定。さてどうなる。

Rust

The Rust Programming Language

はじめて触った。文法はかなり好み。パターンマッチイイネ。ただライブラリが少ない、1.0 ではないということで当面は様子見。落ち着いてから考える。

攻めるにはまだ早い気がしている。ただ追いかけるのは楽しい。趣味プログラミング。

Docker

知識として知ってはいたけれど、本格的に導入を進めたのは 11 月とかなり最近。

まずは、クライアントツールのテスト用に Docker でサーバを立ててエンドツーエンドテスト。

これからはパッケージングツールとして docker run したらパッケージが出来て S3 に上がるといった環境閉じ込め系として使っていくつもり。

さらに、ローカルにすぐに環境を作れるように fig を触りだした。Vagrant + Ansible とは別の使い方のイメージ。

シビアな性能が求められない部分では積極的に使っていきたい。求められる部分でも使えるかどうかの判断も。

自動化

テストやビルドの自動化は自然とやるのは変わらず。ただ大きめの SIer さんに Ansible を教えて導入して貰ったりとかしたのはいい経験になった。感謝された。

一つの目標である自動負荷試験まではまだまだ距離がある、これに向かってゆっくりでいいので進んでいきたい。

GitHub

4 月あたりから、とにかくコードやドキュメントを書くことを意識してみた頭の中に抱えずアウトプットという感じ。

f:id:Voluntas:20141231165158p:plain

継続は意識しないことにした。続けるために空コミットとか作業を次の日まで残すのはカッコワルイって思ったので。結構虫食い。ただアウトプットは増えたと思う。

Qiita

ブログが結構 Tips ばかりなのでブログより Qiita かなと思い、アウトプットするようにした。 仕事でも Qiita:Team を使っているので、統一感合って良い。

voluntas - Qiita

Erlang やらなんやらをダラダラ書いてます。そういえば今回は興味の無かったアドベントカレンダーにも参加してみたりした。

時雨堂

株式会社時雨堂

2 期が終わって、3 期目。MQTT 関連はやることが見えてるのであとは継続開発モード。

細かい話はちまちま更新してる以下の Gist で。

そういえば、大学生の若者に手伝って貰ったり、一回り以上年齢が離れている人に手伝って貰ったりと、外との繋がりが増えたと実感。ありがたい。

来年へ

自分のペースをつかむ。

たくさんの人と話をしたり、仕事できたらよい。

2013 年振り返り

振り返りなど

課題

仕事が変わってからも相変わらず仕事で書き続けられてる

仕事が変わってからますます書くようになった

  • 英語

英語で話すことはあまりないが、英語を読む機会が増えたので良い。
知り合いからオススメされた英語の文法の勉強本をちまちま読み始めた。

やること

  • ブログを独自ドメインに移行する

voluntas.github.io に完全に移行した。

  • Raspberry Pi を使って何かする

ハードにはますます興味が無くなってしまった ... 。

  • 技術書以外を読む

Kindle のおかげで普通の小説や漫画も読むようになりました。