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

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

#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ログ…

AWS Elastic Beanstalkで初期環境構築時にhealth checkが延々通らないためにその一生を終えたくない時に読む

AWS Elastic Beanstalkは摩訶不思議な理由でhealth checkが通らなくなることがあります. たとえばEBの環境を新規に構築する際に,とりあえず動作するかどうか確認するためにAWSが用意してくれているサンプルアプリをデプロイしようとするでしょう.しかしこ…

suコマンドでユーザを切り替える時に任意のコマンド実行してからシェルを立ち上げて欲しいんですけどって時

例えば踏み台サーバに個人のアカウントで入ってから,或るuserにsuで切り替わって色々する,みたいなシチュエーションがあると思います. そんな時に,或るuserにsuする際にあらかじめ任意のコマンドを実行しておいてほしいという時がある.あるのです.とい…

定期的にtcpdumpをある期間だけ実行したいという時

tcpdumpの提供する-Wオプションと-Gオプション,ならびにcrontabを併用するといける.tcpdumpの-Wオプションはログローテーションを行う回数で,-Gはそのローテーション期間を秒数で指定できる. 例えば $ tcpdump -w ./%Y%m%d%H%M%S.pcap -W1 -G60などとや…

訳あってcarton等を利用せずに,しかしきれいなperl環境を保ったままモジュールをインストールしたいんですけどって時

plenvやperlbrew等できれいなperl環境を利用している際に,Perl::Critic (例えばエディッタのsyntax checkingに引っ掛けているようなシチュエーション) やLなどの自分の環境でだけ動かすようなモジュールを環境グローバルに入れたくないという場合が生きてい…

ElasticsearchあるいはKibanaのDockerイメージからX-Packを取り除く方法

ElasticsearchのX-Packはマジ便利なんですが,有償なので (だたしmonitor機能なんかは無償のBasicライセンスで使えて最高) 使わない人も多いでしょう. そんな場合,Elasticsearch/KibanaをDockerで動かすという時にX-Packを取り除きたくなるというのが人情…

Elastic BeanstalkでImmutable deployを試す

やり方についてはドキュメントを読むと良い.docs.aws.amazon.com option_settings: aws:elasticbeanstalk:command: DeploymentPolicy: Immutable HealthCheckSuccessThreshold: Ok IgnoreHealthCheck: false Timeout: "600" 設定ファイルでやるならばこうい…

相手のサーバにHTTP(S)で接続できるかどうかを確認するときにリトライしながらやりたいんですけどって時

例えばCIでテストのためのストレージのコンテナを上げる際,そのストレージが上がりきるまで待たなければテストには使えないわけですが「上がりきるまで何秒待てばよいのか」というのは一概に決められるものではありません. そうした際,実際にストレージに…