その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

2020-01-01から1年間の記事一覧

eclipse/leshan で最近直した問題について

かなりニッチな話題ですが、OMA LwM2Mのサーバ・クライアントのJava実装であるEclipse Leshanにパッチを送って取りこまれたのでそのご報告です。github.comLeshanのクライアントライブラリには予期せぬ例外が発生した際にクライアントアプリケーションがスタ…

awesome-perlのご紹介およびメンテナの大募集

こんにちは。id:moznionと申します。Hachioji.pmというIT技術コミュニティに所属しています。本記事はPerl Advent Calendar 2020の記事として記述されています。前日の記事は@mihyaeru21さんのGitHub Actions で Perl を動かすときのテンプレートでした。 Ha…

RADIUSのサーバー・クライアント実装をRustで書いた

An English article is here: https://dev.to/moznion/released-radius-rs-2e1oタイトルの通り、AAA (Authentication, Authorization and Accounting) のためのデファクト・スタンダードなプロトコルであるところのRADIUSのサーバー・クライアント実装をRust…

ネットワーク越しリトライ考

ここ最近では何らかのインターネットサービスを構築・運用するにあたって、ネットワーク越しのリトライを考えることは避けられなくなりつつあります。 micro services のようなアーキテクチャを採用している場合はサービス間のメッセージのやり取りはまず失…

pprof を使って nodejs アプリケーションのプロファイルを取る

pprof って go のやつでしょ? node のプロファイルが取れるわけ無いやろ,と僕も思っていたんですが以下のライブラリを使うことで取れることがわかりました.github.com使い方については Using the Profiler に書いてあるとおりで,アプリケーション側に co…

ISUCON 9 決勝を AWS 環境に本番さながらに構築するメモ

github.com今日 (2020-09-24) の時点では「ローカル環境」で動かす方法については記載がある一方で,何らかのリモートの環境に「本番」っぽく動かす方法についての記載が無いので,それを AWS 上に構築するためのメモを記します. 競技用 application のデプ…

Jenkins + AWS CodeBuildという構成をやめました

かつて Kyoto.なんか #4 で発表した話題ですけれども:moznion.hatenadiary.comこれはもうやってません!!!(正確に言うと運用している組織内ではリタイアメントの段階に入っています) 今はCodeBuildを単体で使っています. かつての AWS CodeBuild は ビ…

GitHub Packagesにホストされたprivate packageをsbtから使う

表題のとおりです. GitHubのオフィシャルドキュメントを読むとmavenで使う方法やgradleで使う方法は紹介されているのですがsbtで使う方法が調べてもシュッと出てこなかったのでメモとして記す次第. 基本的には以下のようにmavenやgradleと同様にbuild.sbt…

いい感じにPHP Runtimeのdebパッケージを作る

PHPのエッジなバージョン (例えば今の時点だと 8.0.0alpha3) を使いたい場合,多くの場合はソースコードからビルドする必要があります.その他にもランタイムのオプションをいじりたいだとか,そういった様々な理由からPHPをソースコードからビルドしなけれ…

The Perl Foundationに寄付した

本質の話をしました pic.twitter.com/8fCYIbH6Av— moznion (@moznion) 2020年6月24日 perl,やはり心のふるさとという感じがある……(流石に全盛期と比較して手のスピードは落ちたけど 大きな問題は他の人にとってふるさとではないということです とりたてて…

Javaの非同期アプリケーションのflame graph profileを取る

netty を使うような非同期 Java のアプリケーション (例えば Play2 Web アプリ) の flame graph profile を取るという話題です.色々な方法が考えられますが,jvm-profiling-tools/async-profiler を利用するのが最も手っ取り早そうな感じがしたので,その方…

tinygo 向けの JSON marshaler: go-json-ice を書いた

English article is here: Released go-json-ice: a code generator of JSON marshaler for tinygo - moznion's tech blog tinygo では encoding/json を import するとコンパイルできなくなるという問題があり *1,なんらかの struct を JSON に marshal し…

td-agent-gem で `google-protobuf requires Ruby version < 2.8.dev, >= 2.5.` みたいなエラーが出るって時

td-agent-gem を利用している時に google-protobuf requires Ruby version = 2.5. というエラーがでて困るという事がありました.support.treasuredata.comtd-agent の ChangeLog を見た感じ,この記事を書いている時点での td-agent の最新バージョン v3.7.…

Email::MIME::ContentType が build_content_type と build_content_disposition を提供するようになっていた

Perl の話です.metacpan.orgEmail::MIME::ContentType 1.023 (なお本バージョンは TRIAL Release となっています) 以降から build_content_type と build_content_disposition という関数が追加されています.それぞれ名前の通り Content-Type と Content-D…

Redis の Slave (Replica) の Expire は 4.0 RC3 以降信用して良くなっている

maedama.hatenablog.com trapezoid.hatenablog.com上記のブログには今から6年ほど前の当時の情報が記されていますが,Redis 4.0 RC3 以降の Slave (replica) の Expire は信用して良くなっているようです. Redis の公式ドキュメント (Replication – Redis) …

Spotless を sbt から利用するための plugin: sbt-spotless をリリースしました

sbt

github.comSpotless を sbt から利用するためのプラグインであるところの sbt-spotless をリリースしました.Spotless は意欲的に開発されている Java (JDK 言語) のプロジェクト向けのコードフォーマッターで,実に様々なフォーマットに対応しています *1.…

zabbix-internal-checks-exporterをリリースしました

github.com表題の通りリリースいたしました. これはなに Zabbix internal checks と呼ばれる Zabbix プロセスの状態を表現するメトリクスを定期的に収集し,Prometheus のメトリクスフォーマット (i.e. OpenMetrics) で export する Prometheus exporter で…

jackson-databind で int の取りうる値を超えた場合の挙動

Javaの話題です.jackson-databind を使って JSON のデシリアライズを行っていて,数値を int にマッピングしている場合,その値が int (32bit) の取りうる値を超えた時の挙動が「バージョンによって異なって」います. 以下に挙げる挙動は 2.9.3 から 2.9.4…

pcapng ファイルを pcap ファイルに変換する

基本的に Wireshark を使うことで得られるパケットキャプチャファイルは pcapng と呼ばれるフォーマットになっており,これは pcap フォーマットとは異なります.例えば複数のパケットキャプチャファイルを時系列に従ってマージできるコマンドラインツールで…

AWS CodeBuild で AWS CDK を実行する時に IAM Role に S3 の権限を与えないとハマる

AWS CodeBuild から AWS CDK を呼び出し,いい感じで継続的に構成を更新し続けるパイプラインのようなものを作っておくと何かと便利です. さてこの時,AWS CodeBuild を実行する IAM Role の権限がそのまま AWS CDK の実行に影響するので,その IAM には Cl…

シェルスクリプトで空きポートを取ってきたいという時

kazuho さんのこれをシェルスクリプトでやりたいというお話です.kazuhooku.hatenadiary.orgこんな感じ: nc -l 0 & NC_PID=$! lsof -n -P -p $NC_PID | grep TCP | awk '{print $9}' | awk -F ':' '{print $2}' kill $NC_PID nc で ephemeral port を listen…

macOS 上で pythonz を使って python をインストールする時に openssl 周りをいい感じにする

macOS 上で pythonz を使って素朴に python をビルドしてインストールすると SSL/TLS 周りでずっこけて基本的に使えないものがインストールされる (そもそも pip とかが動かないので). brew で openssl を入れている場合は以下のように pythonz install す…

Raspberry Pi を Read-Only Root-FS にする & メモリがいっぱいになったらどうなるのか

Raspberry Pi を Read-Only Root-FS にしておくと急にマシンがダウンした時でもファイルシステムが破損しにくくなります. もちろん書き込み内容は永続化されなくなりますが (書き込み内容は tmpfs にストアされるので rebootで揮発する),得てして電プチな…

Zabbix 4.x で API を使って Active な Problem だけを引っ張ってくる方法

要旨 どうやれば Zabbix API を使って所望の機能を実現できるかを調査する際には Zabbix が実際に呼んでいる SQL クエリを tcpdump で抜き出すと手っ取り早い. 内容 色々あってZabbixを使っているわけですが,この手のものを使っているとAPIを介して Active…