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

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

tcpdumpで今すぐキャプチャ内容を全部ファイルにflushしてくれ!! というとき

tcpdumpはキャプチャした内容をバッファに蓄積してバッチ的にflushするので,うっかりプロセスを即断するとキャプチャしていた内容をdrainできないことがままあります.困りますね.www.tcpdump.org Using the SIGUSR2 signal along with the -w flag will f…

TypeScriptを使ってアプリケーションの設定ファイルを書く

アプリケーションの設定ファイルと言えばjsonやyamlなんかで書くことが多いと思うんですが,最近はTypeScriptで設定ファイルを書いております.このような感じ: export interface ApplicationConfig { readonly listenPort: number; readonly timeout: numbe…

systemdで管理しているserviceがopenできるfile descriptorの上限数を増やす

systemdのバージョン # systemd --version systemd 237 TL;DR ServiceにLimitNOFILEを設定すると良い.他の特定のリソースについての制限もどうようにかけることが可能です.ドキュメントは man systemd.exec で参照できます (ウェブ上はこれが正しいリソー…

proxy-protocol-jsリリースした & Kyoto.js #16で喋ってきました

表題の通りproxy-protocol-jsをリリースしました.github.comwww.npmjs.comKyoto.js #16の発表資料は以下です.スライドでも簡単に説明しましたが,PROXY protocolというのはHAProxyが提唱しているTransport層 (L4) においてoriginalの送信元を維持したままp…

「テクノロジーのイノベーションと民主化、そのはじめの一歩」というタイトルで首都大学東京で話してきました

首都大学東京は私の母校でして,当時は本当に色々なことがあったのですが,今回たまたまお話しする機会を頂いたので表題のような話をしてきました.www.slideshare.netこのタイトルを思いついた時は酔っ払っていたのでしょうね.かなり大上段に構えたタイト…

恐怖! パスワード無しでログインを受け付けるsshd Dockerコンテナを作る

表題の通りです. ほら,ローカルでのテスト用途でそういうコンテナが欲しくなることが月2くらいであるじゃないですか……あるんですよ……本チャンの環境で使うともちろん即死なので使ってはいけません. gist.github.comこのようにすると test ユーザーでパス…

outage reportを書くときに気をつけていること

そうは言っても障害は起きるものです.で,障害が起きて,終息したあとの振り返りとして社内向けにoutage report (障害報告書的な?) のようなものを書くと思うのですが,本記事ではそのときに気をつけていることについて書きたいと思います。 outage report…

Dockerコンテナ内でpuppeteerを使うとChromeゾンビプロセスがたまる問題

表題のような問題があり,その調査したという記録です.なお,結論を一言で言うと--initを使え,ということになります. そもそもDockerコンテナを起動すると,CMDあるいはENTRYPOINTに指定されたコマンドがコンテナ内でPID 1として起動します.これが何を意…

「公式ガイドブック SORACOMプラットフォーム」が出ます

公式ガイドブック SORACOMプラットフォーム作者: ソラコム出版社/メーカー: 日経BP社発売日: 2019/03/21メディア: 単行本この商品を含むブログを見る出ます,出るのです. ソラコムプラットフォームの概観やその設計思想,実際のユースケースに応じた参考ア…

YAPC::Tokyo 2019に参加してきた & LTしてきた #yapcjapan

遅くなりましたが,表題のとおりです.YAPCが東京に凱旋してきたので参加してきました.yapcjapan.orgじつはこのような形で事前に関わっていたりもします:blog.yapcjapan.orgんで,LTをやってきました.資料は以下です.AWS LambdaでPerlを動かすというテー…

Jacksonでtop levelのpropertyを省略してMap<K, V>をserializeしたいんですけどってとき

public static class Something { private Map<String, String> prop; } をJacksonでserializeすると { "prop": { "foo": "bar" } } と,トップレベルにpropのようなpropertyが出てくるので微妙……となるシチュエーションがまれによくあります.で,どうすると良いかというと </string,>…

gowrtr - goコード生成支援ライブラリ

gowrtr (go writerと発音します) というgoのコード生成支援ライブラリ (ジェネレータ群) を書きました.github.comSynopsisに書いたように, package main import ( "fmt" "github.com/moznion/gowrtr/generator" ) func main() { generator := generator.Ne…

go-errgen書いた

goのstructにエラー定義を書いておけば良い感じで「エラーを返却する関数」をコード生成するツールであるgo-errgenを書きました.github.comSynopsisに書いてあるとおり, package mypkg //go:generate errgen -type=myErrors type myErrors struct { FooErr…

golangのstruct custom tagをうまいことparseして値を引っこ抜きたいってとき

type Foo struct { Bar string `buz:"qux" iyan:"bakan"` } における `buz:"qux" iyan:"bakan"` を良い感じで buz => "qux", iyan => "bakan" のように取得したいというケースでは以下のようにするとよい: tagKeyValue := reflect.StructTag(`buz:"qux" iyan…

superuserに対する「ふつーのuser」にどういう名前を付けるべきか

TL;DR unprivileged users ordinary user standard user などが良いようだ.ordinaryとかstandardはuserに限らず他の種別でも使えそう. 会話の様子 shinpei0213 [14:11] 特権ユーザー root user 一般ユーザー xxxx user xxxx なんて言えばいいのmoznion [14…

aws-lambda-perl5-layer 書いた

[2018-12-05 追記] ビルド済みのLayerを公開しましたので,そちらを使うと便利です. See also: http://moznion.hatenablog.jp/entry/2018/12/05/211523 [追記ここまで]先日のre:InventでCustom AWS Lambda Runtimesが発表され*1,これはつまり任意の言語でA…

設計Night2018で話してきました

connpass.comスライドは以下です.id:nkgt_chkonkさんに「パフォーマンス視点でのソフトウェアの設計というテーマでなんか話せない?」と持ちかけられ,当時色々考えていたこともあり「やってみるか!」という感じの経緯でできたのがこのトークです. 言いた…

stringsを使ってどのgoのバージョンでコンパイルしたバイナリかをサクッと取得する

How to find out which Go version built your binary | Dave Cheneystringsを使わないちゃんとしたやり方はこちら. 雑に取るならstringsコマンドを使うとそれっぽいのが取れます. $ strings main | grep go1[.] stack=[cgocheckdebugcpugo1.11.1runnabler…

Released lua-benchmarker

I've released lua-benchmarker that is a benchmarker for lua code. This benchmarker is for taking microbenchmark.github.comThis library is available on luarocks. You can install this by luarocks install benchmarker.luarocks.orgFor example, …

Elasticsearchに実際に書き込むテストなんかで「indexへの反映に時間がかかって困る〜〜」って時

Elasticsearchに実際に書き込む系のテスト,どうやってもindexの反映のために1000ms待つことになるためテストケースを書けば書くほど線形にテスト時間が増えてゆき頭を抱えている— 好評分譲中 (@moznion) 2018年10月11日Elasticsearchに実際に書き込む系のテ…

Released lua-cputime

I had released lua-cputime.github.comThis package also had been shipped to luarocks.luarocks.orgThis library provides functions to measure the CPU time (i.e. user time and system time). The lua runtime doesn't support such functions, so th…

Scrapboxにinput modeを導入するUserScript

こちらですscrapbox.io

Released lua-url-encode

I had released lua-url-encode.github.com And I also had shipped that to luarocks. You can try to install this with luarocks install urlencode.luarocks.orgThis package is a URL encoder/decoder library for lua that is written in C (with lua'…

#builderscon 2018 tokyoに参加しました & 話してきました

builderscon.iobuilderscon 2018 tokyoで「Java Cardの世界」というタイトルで話してきました.発表資料は以下のとおりです.喋りたいトピックはJava Card以外にも様々あったのですが,「知らなかった、を聞く」というカンファレンスのテーマを鑑みた結果,…

Linux Kernel 4.12以前であればhostマシンのsysctlの値がDocker container環境に引き継がれるかどうか検証した

Docker - IPVS connection timeout issueこれを読んでいたところ From Linux kernel 4.13 onwards, sysctl default values can be modified per container basis. Container will not inherit changes from the host sysctl modified values. とあったので,…

LinuxでもMagic Trackpad 2使いたいじゃないですか……って時

なぜかLinux Desktopで生活したくなったのでLinux Desktopで生活しているんですが (Ubuntu 18.04.1),やはり入力インターフェースは良い方が良いわけですよ.良いですか.というわけでMagic Trackpad 2を使いたいですよね. しかし素の状態ではマシンとBluet…

ECS Agent 1.19.0だとDocker containerのメタ情報を取れない場合がある

表題のとおりですが,ECS Agent 1.19.0だとDocker containerのメタ情報を取れず (取れない場合がある),いろいろ困るという現象が発生します.github.comこのissueにあるようにDocker Container IDをうまく取れないことが問題のようです. おかげでElastic B…

Kyoto.なんか #4で最近運用しているJenkinsの情報について発表してきました

kyoto-nanka.connpass.com表題の通り,最近AWS上で運用しているスケールする & 運用が省エネなJenkinsについて発表してきました.簡単にまとめると JenkinsのslaveをAWS CodeBuildに委譲することで実質無限のスケールアウトとメンテコスト削減を実現 Jenkins…

あるgit commitがどのpull requestでmergeされているかをAPIでシュッと取ってくる方法

というのを id:side_tana さんが探っていたので,このAPIをGETで叩くとできるよというやつです. https://api.github.com/search/issues?q=repo:${owner}/${repo-name} pr:merged ${commit-hash}あ,GitHubの話です.良かったですね.

JenkinsでGitHub Pull Request Builder pluginを使いつつ任意のブランチにpushしたコミットもビルドする

JenkinsでGitHub Pull Request Builder (ghprb) を使っている時に,pull request以外のcommit (例えばmasterへのマージコミットや任意のブランチへの直push) もbuildしたいんすよね〜みたいなことをid:hdkshjmさんに相談したところ良い感じの方法を教えても…