There's an echo in my head

日々のメモ。

リズと青い鳥

みた。 liz-bluebird.com よかった。絵本のストーリーに沿って最初はみぞれが自由な希美を束縛してるのかなと思ってたけど、物語が進むに従ってその立場が逆転して、それに当人たちが気づくという過程は最高だった。その変化を促していく周囲の友人の気配り…

Unityのバッチビルド時にJDK, Android SDK/NDKのパスを切り替える

複数のUnityのバージョンが混在するCI環境を構築していると、バージョン間でAndroid SDKやNDKの要求バージョンが異なるためにビルドスクリプト側でこれらを設定したいということがある。そんなときは次のように記載すればいい。 EditorPrefs.SetString("Andr…

恋は雨上がりのように

みた。 koiame-movie.com よいおじさん映画だった。店長の家の雰囲気がよかった。あんな書斎のような部屋に住みたい。戸次重幸の役柄との関係性も見ていてよかった。あきらが可愛くて輝いて見えた。これが若さか。

Integer Unificationの判定方法

CRuby 2.4から整数がIntegerに統合されるとともにその子クラスであるFixnumとBignumが廃止されたが、下記のようなコードを使えばそれを手軽に判定できる。 if 1.class.name == "Integer" # 統合後の処理 else # 統合前の処理 end このようにバージョン番号を…

パシフィックリム : アップライジング

劇場で見た。 pacificrim.jp (あとで書く)

レディ・プレイヤー1

劇場で見た。 wwws.warnerbros.co.jp (あとで書く)

Alpine上でstart_serverを使おうとしたらno such file or directory

go

lestrrat-go/server-starterというホットデプロイしてくれるものがある。 github.com これをAlpine LinuxなDockerコンテナ上で使おうとしたら下記のようなエラーが出た。 standard_init_linux.go:190: exec user process caused "no such file or directory"…

rubyでprotocプラグインを書いてみた

Swagger書きたくない…!というところからProtocol Buffersのサービスとメッセージ定義をもとに似たようなことができないかと考えていたところ、yuguiさんのprotocプラグインの書き方を見てできそうな気がしたので試してみた。 そうして上記記事と同じことをp…

dotenv-execというnpmを作った

作った。 www.npmjs.com npmだと.envを読み込むdotenvというライブラリはあるんだけど、それをもってコマンドを実行するコマンドは提供していなかった。Ruby版のdotenvに含まれるdotenvコマンドみたいなやつ。なので同じようにdotenvというコマンドを実装し…

gitが自動解決できずに発生したTSVファイルのコンフリクトを可能な限り解決するfix_tsv_conflictを作った

gem

作った。 github.com ゲームのマスターデータをTSVファイルで管理していると、内容自体は衝突していないのに同時に同じ箇所に書き足したということで衝突してしまうことがある。あとはエディタの設定で末尾の空白スペークが消えてしまったとか。そういった単…

複数のgit-pr-release用のトークンを発行する方法

1台目のマシンでgit-pr-releaseを叩いて認証すると、2台目のマシンでgit-pr-releaseで叩いたときに同一ユーザの認証に失敗する。 GET https://api.github.com/repos/<your>/<product>/pulls/<number>: 401 - Bad credentials // See: https://developer.github.com/v3 (Octokit::Una</number></product></your>…

JMeterのシナリオにコマンドライン引数でパラメータを渡す

個別には-Jもしくは--jmeterpropertyオプションで渡す。 $ jmeter -n -t <path/to/jmx> -Jfoo=bar 渡されたオプションは__P関数を使って埋め込む。 ${__P(foo)} もしくは ${__P(foo,デフォルト値)} 複数ある場合にはファイルにまとめて記述して-qもしくは--addpropオプシ</path/to/jmx>…

MySQLで実際にINSERTされたレコード数

INSERT INTO animals (id,name) VALUES (1,"dog"),(2,"cat"), ... ON DUPLICATE KEY UPDATE name = VALUES(name) みたいなクエリで重複することなく新規にINSERTされたレコード数は、VALUES句の要素数とROW_COUNT()とから算出できる。 VALUES句の要素数がval…

Travis CIでbundlerのキャッシュが効いていなかった

会社で開発しているRailsアプリケーションをTravis CIで回しているんだけど、bundlerでインストールされるgemのキャッシュが効いておらずログにこんな出力が出ていた。 store build cache $ bundle clean Cleaning all the gems on your system is dangerous…

capistrano-pending v0.2.0をリリースした

https://rubygems.org/gems/capistrano-pending/versions/0.2.0 Capistranoのプラグイン方式がv3.7から大きく変わって:scm変数が非推奨になり、さらにv4.0からは消されるらしく、その対応のため。といってもいただいたPRの挙動を確認しただけだけど。 github…

launchdで動かしてるmemcachedのログを取る

homebrewでインストールしてるのでlaunchdに読ませてるplistは~/Library/LaunchAgents/homebrew.mxcl.memcached.plistにある。 下記にコメントしたあたりをよしなに記載する。 <plist version="1.0"> <dict> <key>Label…</key></dict></plist>

`ps -ef | grep [f]oo`というやつ

調べては忘れるのでメモ。 grep [f]ooって結局grep fooと同じなのになんだこれはと思ってたけど、psはgrep自身のプロセスも返してくる(ことがある)ので、 ps -ef | grep foo だと foo を探しているうちに grep foo というプロセス自身にマッチしてしまう p…

innobackupex --move-backでファイルの移動

xtrabackupからファイルを復元するとき、ネットの記事とかPerconaの記事とかを見ると--copy-backを目にすることが多いんだけど、コピーするほどのディスク領域などない…!という場合には--move-backを使えばいい。 innobackupex --move-back /path/to/BACKUP…

capistrano-rubotyというgemを書いた

capistranoでrubotyをデプロイするのをよしなに助けてくれるgemを書いた。 github.com デーモン化とPIDファイルの書き出しに対応したruboty v1.3.0が必要になるので要注意。

rubotyをデーモンとして動かす

Herokuで動かしてたりdockerでデプロイしてたりするとあまり旨味はないのかもしれないけど、普通にcapistranoでデプロイして動かしたいようなときもあるのでやってみた。 下記のスクリプトを例えばyour_ruboty/lib/daemonize.rbみたいな場所に置いておく。 #…

routes.rbでワイルドカードに引っ掛けたパスを別のサブドメインにリダイレクトする

http://aerial.st/archive/...に来たアクセスを一律にhttp://archive.aerial.st/archive/...にリダイレクトするようにした。 Rails.application.routes.draw do # (snip) get "archive/*path", to: redirect(subdomain: "archive", path: "/archive/%{path}"…

acts_like?でduck typing

1年ぐらい前に社内ブログにメモしてた内容をまんま転載。 はて、これはduck typingなのか? 概要 Object#acts_like?を使うとクラスの異なるオブジェクトが同じ振る舞いをするかどうかの判定が手軽にできるようになる。 具体例 ActiveSupportではTimeとDateTi…

knife-soloでControlMasterが煩わしかったのでなんとかした

knife-solo v0.5.0から 最初はrootでknife solo bootstrap my.host.jp -x rootする 続けてそのときに作ったユーザsome_userでknife solo cook my.host.jp -x some_userする としたときにエラーが発生するようになった。 原因はknife-solo v0.5.0でSSHのContr…

パイプした内容をopenコマンドの引数に渡すopipeというコマンドを作った

github.com grepして見つけたファイルをパイプしてそのままAtomで開きたいと思って作ってみた。 $ git grep -l Neko | opipe -a Atom でもよくよく考えてみたら $ atom $(git grep -l Neko) でいけるわよね…。 追記 xargsさん— 高度に発達した技術的な問題 (…

りんごジャムの作り方

用意するもの りんご 2個 グラニュー糖 80cc 作り方 りんごの皮を剥いて八等分して芯をとり、さらに5mm弱の間隔で刻む。 鍋にりんごとグラニュー糖を入れて弱〜中火で煮ながら果肉を潰していく。 あらかた潰して若干の粘り気が出てきてもうめんどくせえなっ…

OS X 10.11 El Capitanでnokogiriをインストールする

$ brew install libxml2 libxslt libiconv $ gem install nokogiri -- --use-system-libraries bundlerでインストールするときのためにも設定しておく。 $ bundle config build.nokogiri --use-system-libraries なお前提として、公式サイトのインストール方…

OS X 10.11 El Capitanでeventmachineをインストールする

OS XがOpenSSLの共有ライブラリを含めなくなった(のかな?)ために、homebrew等でインストールしてその場所をオプションで指定する必要があった。 github.com $ gem install eventmachine -- --with-cppflags=-I$(brew --prefix openssl)/include bundlerで…

pipeの途中でエラーが起きたタイミングでエラーを返す

パイプを繋げたときの返り値は最後のコマンドの返り値になる。 例えば stat = system "a | b |c" としたとき、途中でaやbがエラーになっても返り値statはfalseにならずcの返り値であるtrueになる。 cがエラーに成った時にはfalseになる。*1 これだとパイプの…

El CapitanでSIMBLを有効にする

osx

How to Install SafariStand on El Capitanから勝手に抜粋。 1 Macを再起動し、「ジャーン!」となったらCommand+Rをあるていど押し続けてリカバリモードで起動する 一度押しただけでは切り替わらなかった タイミングの判定がわりと細かい 2 メニューからTer…

手動でRailsのビューをレンダリングする

バッチで生成しておきたいとかそういうときに。 class FooController < AbstractController::Base include AbstractController::Rendering include AbstractController::Translation include AbstractController::AssetPaths include ActionView::Layouts se…

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。