例えばCIでテストのためのストレージのコンテナを上げる際,そのストレージが上がりきるまで待たなければテストには使えないわけですが「上がりきるまで何秒待てばよいのか」というのは一概に決められるものではありません. そうした際,実際にストレージに…
インスタンスにメソッドを生やす class EmptyCat {} def cat = new EmptyCat() cat.metaClass.nyan = { return 'meow' } cat.nyan() // => 'meow' インスタンスの metaClass からMetaClass (HandleMetaClass) を引っ張ってきて,それ経由で生やしたいメソッ…
例えばElasticsearchを使ったプロジェクトがあったとして,それをCircleCIで継続的にテストしたいとする.CircleCI 2.0はコンテナベースのCI環境なので,そのプロジェクトが採用している言語のコンテナの上でElasticsearchを動かす必要がある.どうするか.c…
表題のような状況のトラブルシュートについて記します.moznion.hatenablog.comというかこれの続きです.怪奇現象など存在しない. 背景 ブラウザとかcurlとかからはリクエストが通るのにJavaからは通らない Let's encryptの証明書を使っている Let's encryp…
Multiple projectなgradle projectだと, apply plugin: "checkstyle" と書いてもそれだけではcheckstyle pluginがうまく動かない.おそらく Unable to create Root Module: config ... などというエラーとともに死ぬであろう. というのも,gradle checksty…
[追記] コメントで指摘がありましたが,Karabiner-ElementsのGUI上で complex modifications → Add rule → import more rules from the Internet → Exchange semicolon and colon を選択することで所望の動作の実現が可能なようです.従って本記事はcolonとs…
DDD (Domain Driven Design/ドメイン駆動設計) についての学習気運があり,その勉強会を社内でやったのでその経過を記すものです. DDDに関する詳細な内容には触れません (良い本や資料が巷には溢れています).読書会自体をどうやったか的な話です. 前提 de…
私信ですが転職いたします.以下の通りです.From: LINE To: Soracom関係各位に感謝を申し上げます.ありがとうございました. 以上です.よろしくお願いします.なお本記事は以下のレギュレーションに従いました.タイトルで煽らない、かしこまった見出しも…
kyoto-nanka.connpass.com「そして物語は更に何度目かのアプリ内通知再実装を迎える」というタイトルで話してきました.スライドは以下です.speakerdeck.com前回開催のKyoto.なんか #2では「そして物語は何度目かのアプリ内通知再実装を迎える」というタイ…
builderscon.io参加してきました. 見た中で印象に残ったトークについて感想を少し.詳細な内容を何も書けないんですがはちゃめちゃに面白かったブラウザ拡張のクロスブラウザ対応についての話.いろいろな便利ツールを自作して利用していて格好良かった.と…
表題のとおりです.話しました. これは僕が普段の開発中にエラーメッセージと触れあう時に気にしていたり,考えていることを上手いこと言語化したいという試みから始まったものです.speakerdeck.com発表中にdan kogaiさんから「『間違えたことを言っている…
*nixのexit statusのセマンティクスについてかつて質問して,答えていてもらっていたことを思い出したので記します. moznion [5:46 PM] signal受け取ってexitする時,そのsignalの値をそのままexit codeに使う,みたいなお作法みたいなのってあるんでしたっ…
Perl5の話題です. JSON::XSを用いて,JSON StringをPerlのHashRefにデシリアライズする時にtrueとfalseの扱いを変えたいという話です.デフォルト状態でJSON::XSを用いてデシリアライズすると, true は Types::Serialiser::true すなわち JSON::PP::Boolea…
Perl5の話題です.List::Haystackというものを書きました.CPANにもアップロードしています. 経緯としては以下.Perl,immutableな感じで,List (Array) 中から要素をfindしたり,出現回数を取るモジュールって存在しているんでしたっけ— パブリックイメー…
sub func { return 100; } みたいなサブルーチンがあった時に, say(func - 99); みたいな感じで呼び出すと,パッと見 1 が出力されそうに見えるが,実際は 100 が出力される. これは - 99 が func の引数として解釈されて食われるためである. B::Deparse …
yapcjapan.org出しました.最近YAPCでしか喋ってない感じがしますね.果たしてそうなのです.というわけでプロポーザル内容は以下のとおりです. Web application good error messages and bad error messages Webアプリケーションを作り,運用していると例…
メモ. Ansibleを利用するという文脈におけるbareなOpenWrtの環境の特徴としては以下のようなものがある; sftpが有効ではない Pythonランタイムが入っていない これらを解決すれば,あとはいつものように普通にAnsibleを使える (はず). というわけでそれぞ…
OpenWrtでうっかりLANのInterfaceの設定をしくじってしまったりすると,Web UIに入れなくなってしまい (もちろんsshもできない) その後の設定が一切不能になって詰む事があります.そういう時に工場出荷時 (という表現が正しいのかどうかはわかりませんが) …
BUFFALOの無線LANルータであるところのWZR-HP-AG300HにOpenWrtを焼いて利用する際のメモです.なおマシンのOSはmacOSです.Windows等だとちょっと違うかもしれないが概ね問題ないはず.buffalo.jp AG300HとマシンをLANケーブルで繋ぐ 適切なケーブルで繋ぐ …
MyBatisのMapperをGroovyのannotationを使って書くと何かと便利 (主に「XMLを書かなくても良い」という点で便利) なわけですが,そんな中で「WHERE IN」を利用したSELECTを @Select annotationベースでどうやって書くのかという件です.要は SELECT * FROM u…
前提 OpenSSLがbrewで入っている. 結論 こうすれば良い (brew環境下あるある); $ ./configure --with-ssl=$(brew --prefix openssl)Ref. Erlang -- Building and Installing Erlang/OTP 所感 わざわざソースコードからビルドしなくても,brew使ってるんだっ…
例えば `logout` みたいなユーザ名を取得されてしまうと,ユーザ側からすると不気味に見えるし,URL設計が終了している時などに脆弱性になり得る (とは言うものの,そもそもそういった脆弱性は根本的に防ぐべきだし,URL設計を終了させてはならない). ので…
タイトルは「Webアプリケーションのキャッシュ戦略とそのパターン 」です.speakerdeck.com告知で書いたように,ここ1・2年は規模感のあるWebアプリケーションを開発していて,なおかつキャッシュ周りの設計・開発・運用をモリモリやっていたので,その関連…
表題のとおりです.喋ります.詳細は以下のリンクを参照ください.http://yapcjapan.org/2017kansai/talks.html#talk-22ここ1,2年ずっとキャッシュと密にやっていく仕事 (サービス) をやっていて,それにより給料と言う名のキャッシュを得て生活していたわ…
mcrouterという,Facebookが作っているmemcachedの為のルータがあります.「ミクルーター」と発音するようです *1.mcrouterは多機能なルータであり,シンプルなルーティング (例えば乱択やhash basedなど) からfailoverを前提とした大規模なクラスタのルー…
memcachedの conn_yieldsはどのような時に増えるのかという話です.なおmemcachedはテキストプロトコルかつデフォルトの設定で実行しているものとします (なお,この記事で重要なのは -R がデフォルト,つまり20ということです).memcached の conn_yields …
表題の通りです.Perl5の話です.CPANにもあげてあります.https://metacpan.org/pod/Test::Fluent::Logger何をするモジュールかというと,useするだけでFluent::Loggerのpost及びpost_with_timeの内容をインターセプトして,本来送るべき宛先には送らずに内…
最近のgitを使ったWebアプリケーションのプロジェクトの開発フロー (主にブランチ運用) について記すものです. なお前提としてGitHub Enterpriseを利用しています. git-flow 大上段に構えたもののあまり特殊なことはしていなくて,基本的にgit-flowをその…
去年の話を今するのはどうかという感じですが *1,表題の通りbuilderscon tokyo 2016で話してきました.builderscon.ioビールサーバーを作ったという話です.スライドは以下です.speakerdeck.com発表ではデモも行ったのですが,サーバから水が一瞬吹き出て…
タイトルの通りです.:set pasteと打てば良い.ずっと知らなかったので今までの自分に苛立った一方感動のあまりデプロイが大成功するなどしました. なお戻す時は:set nopasteとすれば良い.ところで今までどうやってこうした問題を解決していたかというと,…