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

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

設計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さんに相談したところ良い感じの方法を教えても…

Over HTTPでやり取りするAWS Lambdaのfunctionを書く時にはKeep-Aliveがパフォーマンスに効く(場合がある)

サーバレスだ! Microservicesだ! というふうなアーキテクチャになってくるとAWS Lambdaのような実行環境でコードを動かすことが多くなってくると思います.そしてそうした環境下で他のコンポーネントとHTTP越しにやりとりをするコードを動かすこともままあ…

builderscon tokyo 2018に登壇します

表題の通り,builderscon tokyo 2018に登壇します.JavaCardという環境をテーマにお話する予定です.builderscon.io今回はかなりマニアックな話になることが現時点で予想されていますが,内容はかなり面白いと思います (先日社内の専門家にディープな講習を…

pptxファイルから発表者ノートを一括削除する方法

カンペとしてスライドに発表者ノートを書くことはままあるとおもうんですが,そのスライドを共有する際には発表者ノートを削除したくなるのが人情というものです (カンペを見られるのは恥ずかしい). Windows版のPowerPointであれば発表者ノートを一括削除す…

ESP32でZephyrを開発する環境を整える - macOS編

ZephyrはApache Lisence, Version 2.0で公開されているRTOSです.多分「ゼファー」と読むはず. https://www.zephyrproject.org/このZephyrをESP32のボードで開発する環境をmacOS上に整えるというのがこの記事の目的です. なおESP32開発ボードは今回以下を…

Scrapboxのコンテンツエリアが広いと嬉しい!!!!

scrapbox.io ユーザースクリプト機能で以下のCSSを読み込ませると…… .page-wrapper{ width:100%; position: absolute; left: 0px; } .col-page-side{ position: absolute; right: 0px; } 嬉しい!!!!

expectコマンドを使ってシリアル接続で非対話的にコマンドを流し込む

シリアル接続でコマンドを実行する際は cu コマンドや screen コマンドなどでシリアルコンソールに接続して対話的にコマンドを実行することになると思うんですが,しかし「一定周期ごとにシリアルでコマンドを実行して結果を取得したい」みたいなときに対話…

C言語のジェネリクスサポート

全く知らなかったのだけれど,C11の新機能として_Genericという組み込み関数が提供されていた. Generic selection - cppreference.com jameshfisher.comというのをこのブログを見て気づいたんですが, #include <stdio.h> int main() { char* x = "foo"; printf("Typ</stdio.h>…

CircleCIでgradleのテストを走らせているとプロセスが突然死するんですけどって時

CircleCI上でgradleでテストを走らせていると,プロセスが突然死してテストがコケるという事態に見舞われていました. 運が悪いと10連続でfailしたりするなどかなり厳しい状況だったのでCircleCI Supportに泣きついたところ, 症状としてはOOMで死んでるっぽ…

arnoldというJavaのbuilderライブラリを書いた

今時builderライブラリも無いだろという感じですが,書いたのです.github.comMotivationにも書いているのですが,普通に作ったJavaのbuilderは不完全なインスタンスを作成できる可能性を孕んでいます.注意深くコードを書けば問題ないかもしれませんが,え…

YAPC::Okinawa 2018 Onnasonに行きつつ喋りました

yapcjapan.org行ってきて,そして喋りました. スライドは以下にあります.speakerdeck.comPerlコードに別の言語のコードを埋め込んで動かしてしまう技術であるところのInlineモジュールの話です.今回のYAPCのテーマは「万国津梁」とのことだったので「じゃ…

AWS Lambdaでnodeを動かす時にnode_modulesをどうするか

向かうべき道は色々考えられるが,実際に試してみたのは以下.1. node_modulesをzipに含めてアップロードする 2. browserifyを使って1つのjsファイルにバンドルする node_modulesをzipに含めてアップロードする ローカルでnpm install (or yarn install) し…

EOLなUbuntuを使い続けるとどうなるのか

TL;DR apt-get関連のコマンドが死ぬ. 例: Ubuntu 16.10の場合 Release end of life | Ubuntuこの図からもわかるようにUbuntu 16.10は現時点でEOLです.使ってはいけません. しかし生きているとうっかりEOLなバージョンが残っていることもあるでしょう.あ…

GitHub releasesのフィードを購読する

生きているとOSSのライブラリを使ったり,OSSのソフトウェアを使用することになるでしょう. そうなってくると内部実装や変更点を逐一知りたくなるというのが人情というものです. GitHubでコードが公開されているのであれば,「リポジトリをwatchする」とい…

PerlのYAMLライブラリ性能比較

なんと2018年の記事です.皆様無事明けられておりますでしょうか.さてYAML::XSには2017年に色々と変更が入り,実用するにあたり非常に便利な機能が色々と導入されました (具体的に言うと,$YAML::XS::LoadBlessedと$YAML::XS::Booleanです).また安定化が図…

DynamoDB LocalでもDynamoDB Streamsは使える

TL;DR DynamoDB LocalはDynamoDB Streamsをサポートしている. 本物のDynamoDB Streamsのように,一定期間以上古いレコードについてはトリミングされる (具体的なトリミング期間については未調査). ドキュメントが少ない (見つけられなかった……) のに加え,…

手っ取り早くウェブアプリケーションにOAuth2認証を導入する

bitly/oauth2_proxyを用いて,ウェブアプリケーションに手っ取り早くOAuth2認証を導入するという話です. oauth2_proxyは良い感じでOAuth2による認証を肩代わりしてくれる君で,何らかのリバースプロキシの認証機構と組み合わせて利用すると簡単にOAuth2ログ…