scramble cadenza

技術ネタのガラクタ置き場

Headless Chrome でスマホ用画面のテストと、PC画面用テストを行う

イントロ Headless Chrome で system test を書いていたら、猛烈にハマったので記録を残しておく。 ハマりすぎて Capybara のコードを殆ど読んでしまったので、 読んだ内容を抜粋してまとめてみました。 若干冗長なのはお許し下さい。 環境 rails (5.1.4) ca…

port やプロセスの状況を確認するコマンドレシピ集

イントロ 毎回忘れてググるやつをまとめました。 巷では Advent Calendar などが流行っている時期ですが、そんなことはいざ知れず、空気を読まずに普通に投稿します。 ただの netstat, lsof コマンドの使い方をまとめたもの。 イントロ 指定した port 番号か…

unicorn + capistrano 構成で、古いリリースの実行パスを参照し続けてしまう問題

イントロ 今更だけどハマったので書いておく。 I, [2017-11-15T17:45:38.423986 #7537] INFO -- : executing ["/var/www/app/releases/20171115083608/vendor/bundle/ruby/2.4.0/bin/unicorn", "-c", "/var/www/ser val/current/config/unicorn.rb", "-E", "…

memcached と戦う

イントロ ゆとり世代なので、今まで redis しか触ったことない人が memcached を使うと、辛すぎて涙が出ます。 素手では戦えなかったので、memcached と戦うため、最低限の武器を揃えました。 公式 memcached - a distributed memory object caching system …

capistrano-net_storage を使ってみた

イントロ 小さいプロジェクトで capistrano を使っていると、最初は問題ないものの、気づいたらサービスが成長してサーバーが増えてきて、デプロイに時間がかかってくる、という話はよくある(?)と思う。 デプロイに時間がかかると色々とストレスで、所謂 pul…

node-inspector を使わず mocha で debug する

イントロ mocha (>3.1.0) で V8 inspector integration がサポートされたとかで、デバッグが楽になった。 今までは node-inspector を入れたり(しかもコイツが中々使いづらい…)、console.log 連打したりで、非常に効率が悪かった。 が、これを使うと chrome …

RDSのインスタンス作成、タイプ変更等の時間を調べた

イントロ よくわかってなかったので自分で実験。 会社でアップグレードする機会があったので、その予行練習の記録をまとめたものです。 準備 0 の状態から最小限の構成で確認したかったので、以下のようになった 管理画面から RDS を作成 管理画面から ec2 …

Docker と Vagrant で dotfiles をテストする

イントロ mgi.hatenablog.com で書いたとおり、最近は自分の dotfiles を MItamae で管理している。 運用していく中で、ちょっと複雑な receipe を書いた時、「これ試したいけど、いきなりぶっこむのはちょっとなぁ…」と思うようになった。 そこで MItamae …

webpack を使った Google Chrome Extension づくり

イントロ 気が向いたので Google Chrome Extension を作成してみたくなった。 そこで最低限 webpack を使って、開発環境を整備できる環境を作ってみた。 色々調べてみて、一先ずこんなところに落ち着いた、というメモを残します。 似たようなのあるやろ はい…

Wercker で build API を叩いてもテストが始まらない件

イントロ 最近 Wercker を使っています。 Wercker でも CircleCI と同じように build を行う API があるのですが、どうしても build の API が叩けなくてハマったのでメモ。 現象 build API を使って build を行うと、Invalid stack というエラーが出る。 エ…

初めての人がなんとなく Go で CLI を作ってみた時のまとめ

イントロ ちょっと昔に 「みんなのGo言語」が良かったので、自分のためだけのCLIツールを作ってみた - えいのうにっき を読んで、なんとなく何か作りたい気分になっていた。 Go 言語の知識が皆無の状態から 自作 CLI 作ったので、その時のメモをまとめてみま…

terraform quick start 的なメモ

イントロ terraform の初期化を行うのはプライベートでは二回目。 以前まとめていた自分用メモを、少し整形して公開してみる。 terraform はなんぞや、というところはすっ飛ばし、もう一度手元で terraform を使う環境を構築する人向けです。 内容は今更感が…

ローカル環境構築を MItamae で自動化した話

イントロ お仕事用 Mac が Mac book pro に変わってしまった。 環境構築をやるのも久々だったのだけれども、dotfiles のボリュームが増えたのと、実はコード化出来ていない部分が多かったりして、かなり面倒だった。 ちゃんともう一度やり直そう、と思って選…

esa.io クライアントを kotori から Quail に乗り換えた

イントロ 職業柄、自分のフィーリングとマッチしているというのもあるのだと思うけど、esa.io を一年運用していて全く困らないし、本当に助かってる。 しかし一点だけ、esa.io というより、OSX の esa.io クライアントに不満があった。 それは kotori という…

serverless + webpack + babel で AWS Lambda をナウく書く

イントロ 最近 AWS Lamdba を仕事で触っています。 serverless やら Apex なり色々あるわけですが、沢山ありすぎてよくわかりません。 今までは Apex の手軽さに甘えていましたが、そろそろ serverless が本気を出してきたという噂を聞き、serverless を使い…

ファイル名で使えない文字

イントロ web アプリケーションで、ユーザーにファイルをダウンロードさせる機能を追加したいとする。 例えばダウンロードさせるファイルの名前をアプリ側で自動決定する場合、その名前にはどのような制限があるのだろうか。 何回か調べてる気がするので、ま…

AppStore でアプリのアップデートができなくなった件

イントロ 「この製品のディストリビューションファイルを検証できませんでした。 破損しているか、署名されていない可能性があります」 と出て、update できない。 状況 上記のようなメッセージが出て、更新通知があるアプリを更新できない 何故か更新できる…

Java 歴 23 分の Ruby エンジニアが Effective Java を読んで感動した話

イントロ 例外処理を書くことはよくやっているのだけれど、その時の主軸となる考え方について、今までなんとなくで行っていた部分が多かった。 毎回考えるポイントは例えば以下のような疑問。 どこのレイヤーで、どこまで例外処理を行えばよいのだろうか? …

rails 5 を今更触ってみた話

イントロ rails5 の主要機能は色々と知られている通りだけど、業務に投入するとなると、やっぱり互換性だったり、細かいコードの違いが気になるもの。 今回 authlogic を使ったログイン機能を雑に作ったので、その限られた狭い範囲であるものの、ハマったと…

webpack-dev-server を使う

イントロ webpack dev server 見ればだいたい書いてある。 webpack は少し触らないと忘れてしまうので、メモしておく。 それと何故か webpack の公式 Document は読みづらい(私だけ?)というのも理由の一つ。 webpack-dev-server って? 開発用の web サーバ…

magit と elscreen を使いやすく

イントロ magit と elscreen は結構相性悪いと感じることが多く、今まで以下の様な点で困っていた。 magit-mode を終了しても magit 用の buffer が消えない なんとなく気持ち悪い 1 つならまだしも、2 ~ 3個残る。 elscreen 上で magit buffer を閉じた時、…

VPC についてまとめ

aws

イントロ VPC 周りの知識が曖昧なままここまで来てしまったので、整理する。 なんとなく知っていた用語や単語について、一般的な概要、及び AWS ではどういう特徴をもっているか、を大雑把にまとめたもの。 VPC 概要 Virtual Private Cloud の略。Vrtial Pri…

ActiveRecord::Base.connection#table_exists? と ActiveRecord::Base#table_exists? の違い

イントロ # 似ているメソッドで、微妙に挙動が異なり、ちょっとハマったのでメモ 違い 引数、結果をキャッシュするかどうかが違う 引数 ActiveRecord::Base.connection#table_exists? 引数を一つ取る ActiveRecord::Base.connection.table_exists?("users") …

Mac で apery を compile する

イントロ 最近、職場の後輩に将棋で負けたことをきっかけに、将棋がマイブーム。 apery って? 将棋プログラムの一種。2014 年の世界大会で優勝したとかなんとか。 一部界隈では、あの ponanza 先生をも凌ぐとかなんとか言われている?らしく、とにかくすご…

homebrew の install path を変更して、install 済みパッケージを入れなおすの巻

イントロ 年末になったので、自宅 PC を EL Captain にしました。 噂には聞いてたが、/usr/local 周りの権限問題により、普通に install すると躓くところが出てくる。困る。 おまけに解決方法が sudo chown -R $(whoami):admin /usr/local ってどうことだよ…

babelify7.0.2 で jsx の compile に失敗する件

現象 babelify 7.0.2 browserify 12.0.1 react 0.14.1 var React = require('react'); var Container = React.createClass({ render: function() { <div>test</div> } }); React.render( <Container />, document.getElementById('container') ); % browserify -t babelify src/app.j</container>…

respond_to vs routes 指定の format

イントロ 例えばAPI サーバーを作るときに「この URL にアクセスする時は、常に json でアクセスしてほしい」みたいな事を実現したい。 それを実現する具体的な方法としては namespace :api, format: 'json' と routes を書けばいいと思ってました。 (デフォ…

emacs in terminal に移行しようと思ったけど、GUI の emacs に戻った話

イントロ 今まで GUI の emacs を使ってたけど、terminal の中で emacs を開くようにして、暫く使ってみた。 要するに emacs -nw です。 けど色々難しいことがあって、元に戻ったという話。 苦労したところと、経緯を残します 環境 emacs 24.4 OSX 10.10.4 i…

delayed_job まとめ

イントロ collectiveidea/delayed_job なんとなく使ってきて、なんとなくわかってるつもりの delayed_job について、改めてまとめてみたもの。 休日暇だったのでソースコード読んでみたり、step 実行したりして、何処に何が書いてあるかをざっくりとまとめた…

authlogic で、ユーザーの password を編集した直後に強制ログアウトされる件

イントロ authlogic でハマったネタ第二弾。 まとめると以下の様な感じ。 authlogic でログインユーザーを作成 よくある 名前と password で認証するユーザー ログインユーザーを編集する画面を作る password を編集可能にする ログインユーザーの password …