Show newer

"Designing Data-Intensive Applications - O'Reilly Media"
shop.oreilly.com/product/06369
の続きを読んでたらログベースのメッセージキューが出てきて、受信側が止まってもログに書いておいて復帰したら再送できるという話です。マストドンもこういう仕組みになればいいのかなと思ったりしました。

"ソフトウェア開発組織が持つべきカルチャー(17):柴田 芳樹 (Yoshiki Shibata):So-netブログ"
yshibata.blog.so-net.ne.jp/201

コードカバレッジを品質基準にしないというのは私も完全に同意です。こういう不適切な指標を導入してしまうと、必ず独り歩きしてカバレッジを上げるために本末転倒な作業が発生するのが目に見えてます。
以前いた職場でカバレッジを全社的に導入しようという提案があったときは断固反対しました。あくまで参考に見てみるだけなら良いのですが、見てしまうと数値をあげたくなるのが人の性分だと思うんですよね。
カバレッジを見るまでもなく無駄なコードをちゃんと整理していけば、メンテしやすいコードになるわけでそれで充分だと思います。

5月12日に福岡で「さくらのクラウド」と「マストドン」について発表するよ、みんな来てね。

sakura-kyushu.doorkeeper.jp/ev

やってみると3%速くなったもののメモリ割り当てが1つ増えるといういまいちな結果でした。
github.com/hnakamur/zap/commit

Show thread

golang/depが良くなったらしい。ほほう / sdboyer.io/dep-status/2017-05- dep status - 2017-05-01 · sdboyer.io

go標準ライブラリのlogパッケージと、自作のltsvlogとzap-ltsvで実際にファイルに書くベンチマークもやってみました。
github.com/hnakamur/ltsvlog/bl
zap-ltsvは日時をEpoch形式にすると超高速ですがISO8601形式だとgoのlogやltsvlogより遅いことがわかりました。
現状は
github.com/uber-go/zap/blob/ce
time.Formatを使う素朴な実装なのでgoのlogのコードを使えば改善の余地はあります。

自作のLTSV形式ロギングライブラリも更新しました。
github.com/hnakamur/ltsvlog
Goのlogパッケージの日付フォーマットのコードを頂いて性能改善し、さらに上記のイシューと同じ変更も入れています。
また、functional option patternを使ってAPIを整理したので、時刻とログレベルのラベルを変えたり出力しないように出来るようにしました。

Show thread

goの標準ライブラリのlogパッケージの時刻のフォーマットにかかる時間を少し改善できたのでイシューを立ててみました。
"log: Optimize formatting time in header with avoiding buffer copy in ioa · Issue #20267 · golang/go"
github.com/golang/go/issues/20

書いた→「さくらのクラウド」のスタートアップスクリプトでMastodonインスタンスを立てた draft.goat.me/628cEesU

これね。
スタートアップスクリプト「zabbix-server」「zabbix-agent」をリリースしました | さくらのクラウドニュース t.co/0pbVtOCmzD twitter.com/yamamoto_febc/stat

これとzapのLTSVエンコーダを組み合わせて、ランダムなダミーのnginxアクセスログをLTSV形式で出力して
github.com/google/mtail
でそのログを読んで
github.com/prometheus/promethe
にデータを投入する負荷試験を明日やる予定です。
どれぐらいの性能が出るのか楽しみです。

Show thread

あと今日はちょっとしたGoのライブラリも書きました。
"hnakamur/randutil: A Go library for choosing an item randomly from choices"
github.com/hnakamur/randutil
重み付きの複数の選択肢からランダムに選択するというものです。

あと新LTSVエンコーダのテストを書いてたら、zap本体に細かい問題を見つけたのでプルリクエストを送ってみました。
github.com/uber-go/zap/pull/42

Show thread

goの構造化ロギングライブラリ
github.com/uber-go/zap
が大幅にバージョンアップしてたのでLTSVエンコーダも新APIに合わせて作り変えました。
github.com/hnakamur/zap-ltsv/
下位互換性は無いです。ごめんなさい。

"マストドンアプリ「Pawoo」がマルチインスタンスに対応|携帯総合研究所"
mobilelaby.com/blog-entry-pawo

usacloudコマンドは、DevOpsのプロセス間の様々な隙間を埋めるために日々ドッグフーディングしながら開発中なので、是非デリバリーまでのパイプラインの中で利用して欲しいと思ってます。 twitter.com/yamamoto_febc/stat

第9章・マストドンAPIの叩き方(高橋征義・日本Rubyの会)掲載のサンプルコードを公開しました。
github.com/takahashim/mastodon bookdon.jp/media/O_jfYcOzvkToW

Show older
mstdn.jp

Mastodon日本鯖です. よろしくお願いいたします。 (Maintained by Sujitech, LLC)