scramble cadenza

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

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 …

authlogic で blank の password で update 出来てしまう問題

イントロ 情報が古いけど ruby on rails - changing password with authlogic - validation not catching blank inputs - Stack Overflow と同じ現象。 改めてまとめると、以下の様な状態。 authlogic でログインユーザーを作成 ログインユーザーは password…

Capybara::Poltergeist で remote debug が動かない件

イントロ タイトルの通り。Capybara::Poltergest の目玉機能である remote debugging がうまく動作しなくて、色々試行錯誤した話。 https://github.com/teampoltergeist/poltergeist#remote-debugging-experimental 環境 OSX 10.10.3 phantomjs 2.2.0 polter…

bootstrap-generators で bootstrap 導入後、一部の flash が使えなくなる現象

イントロ bootstrap 導入すると、flash がちゃんと動かなくなって戸惑うやつ。 decioferreira/bootstrap-generators で生成する flash 部分にミスがあるのが原因(多分) 具体的には flash[:alert] 時でも、緑枠の flash メッセージになってしまう現象。 ちゃ…

heroku で Postgres 9.4 を使う

イントロ タイトルの通り。jsonb 型のカラムを取り扱おうとしたら、激しく怒られた。 rake aborted! StandardError: An error has occurred, this and all later migrations canceled: ... PG::UndefinedObject: ERROR: type "jsonb" does not exist LINE 1:…

rails で id を BIGINT 型 + primary key + AUTO_INCREMENT する

イントロ rails のモデルは自動で id というカラムを作ってくれますが、これは常に INT 型。 BIGINT 型にしようとしたら、結構ハマったのでメモする。 使っている database はmysql です。 (postgresql だとこの罠は回避できるのだろうか?) tl;dr 普通に頑…

ubuntu で install 済みのパッケージリストを表示する

イントロ yum list installed 的なやつ。 apt-get list のようなコマンドがあるだろうと思っていたが無かった。 コマンド dpkg --get-selections 参考 http://www.howtogeek.com/howto/linux/show-the-list-of-installed-packages-on-ubuntu-or-debian/

embulk-filter-eval というフィルタープラグイン書いた

イントロ まぁ半分ネタも入ってますが、何かちょっとした事を行う程度なら役に立つはず。 mgi166/embulk-filter-eval これは何が便利? input として与えられたカラムに対して、Ruby のコードでちょっとした変換を加える事ができる embulk プラグインです。 …

rbenv の plugins

イントロ 今使ってる rbenv の plugin たち。 rbenv はこういうエコシステムが便利だから使い続けている。 最近務めている会社では流行りのようなので、私もやってみる。 plugins % l .rbenv/plugins/ rbenv-ctags rbenv-default-gems rbenv-gemset rbenv-up…

boot2docker 内のコンテナに ssh で接続する

イントロ 最近ようやく docker を触り始めています。 にわか丸出しなので、【翻訳】Dockerコンテナ内でSSHDを実行してはいけない理由 | POSTD のような記事を見かけたのにも関わらず、ssh で接続しようとしています。 理由は serverspec 使ってコンテナのテ…

ActiveSupport::Configurable の話

イントロ よく設定ファイルで見るクラスを簡単に作れる module ActiveSupport::Configurable の紹介 使い方は、rails/configurable.rb at master · rails/rails のコメント文を読んだほうが早い。 よくあるやつ 具体例を幾つか紹介。 引数が違ったり、ブロッ…

React.js で親子関係にある component の更新順序

イントロ 話題の React.js を去年末ぐらいから、ちょこちょこと触っています。 殆ど Javascript 触ったこと無い状態から、いきなり React 始めて大分修羅の道だったのですが、最近ようやく慣れてきました。 何となくわかってきた React の性質っぽいものを残…

「理性の限界」を読んだ

イントロ 理性の限界――不可能性・不確定性・不完全性 (講談社現代新書)作者: 高橋昌一郎出版社/メーカー: 講談社発売日: 2008/06/17メディア: 新書購入: 56人 クリック: 299回この商品を含むブログ (176件) を見る 人間の「理性の限界」について、色々な角度…

「運と実力の間」を読んだ

イントロ 運と実力の間(あわい)―不完全情報ゲーム(人生・ビジネス・投資)の制し方―作者: 木原直哉出版社/メーカー: 飛鳥新社発売日: 2013/06/08メディア: 単行本 クリック: 2回この商品を含むブログ (6件) を見る 年末に読んだ本のうちの一つ。暇だったから…

binding.pry 使ってる時に、一気にループを抜ける方法

イントロ みんな大好き pry の話 何回も binding.pry が呼ばれる環境下で、毎回 exit を入力するのめんどいよね、という話。 サンプル class Test def aaa binding.pry 'aaa' end end describe '#aaa' do it '1' do expect(test.new.aaa).to eq('1') end it …

rails でカスタム generator 作る話

これは何か 好きな generator を作る話。ここで述べる generator とは rails generator hoge のような rails generate コマンドのこと。 知識整理のために書いてみる 雛形作成 rails には generator を生成する generator があって、以下の様なコマンドを叩…

CircleCI から deploy させる話

イントロ CircleCI からテストが通ったら capistrano 使って deploy させたい。 けど、対象サーバーは IP 制限がかかっている。CircleCI の IP なんてコロコロ変わるし、どうしたらいいんや... って話。 これができると、PR を github ボタンでマージしたら…

dangerous_open_uri という gem を作った

イントロ gem にした。名前は結構気に入ってる。 仕事でこういうことをしたかった、というのが背景としてある。 さらに会社の先輩に冗談で「作っちゃえよ、需要あるっしょ」と言われて、それもそうかと一晩で作った。 mgi166/dangerous_open_uri mgi166/dang…

tmux のコピーモードでのコピーがうまくいかない件

イントロ 告白すると tmux + reattach-to-user-namespace でコピーできます! って記事を見てその通りにやってみるものの、うまくいかない人でした。 ようやくこの病気を克服したので残す。 tmux 1.8 のお話。 現象 どううまくいかないかというと、長い文字…

No bundle exec

イントロ bundle exec したくない、という話。随分前に調べたやつ。 bundle exec メンドイ しかも使用頻度高い コマンド自体が長くなって、初めて見るコマンドを覚えづらい bundle exec 以降を覚えればいいけど、ついつい全部覚えてしまう。 コマンドが長い…

hipchat_searcher という gem を作った

イントロ 随分前に作りました。動機はまだ無い。 強いていうならば「お手軽で作りやすかったから」という自分勝手な理由です。 使いやすそうであれば使ってみてください。 mgi166/hipchat_searcher mgi166/hipchat_searcher · GitHub 何ができるか コマンド…

-1×-1 = 1

イントロ -1×-1 = 1を証明してください。 を見た。 厳密な証明じゃない(と思う) ちゃんとやろうとすると群論とか出てくるのかもしれない そもそも間違ってるかもしれない と色々言い訳しつつ、自分は以下のように理解している。 証明(?) 1 ここがスタート。 …

「UNIX という考え方」を読んだ

読んだ。 UNIXという考え方―その設計思想と哲学作者: Mike Gancarz,芳尾桂出版社/メーカー: オーム社発売日: 2001/02メディア: 単行本購入: 40人 クリック: 498回この商品を含むブログ (137件) を見る 近視眼的な点で述べるなら、ライブラリを自作する際の設…

Music as code

イントロ Extempore というソフトウェアを触ってみた、という話。 コードを書くことで作曲できる、というシンプルでインパクトの強い特性を持ってます。 とても面白くて魅力的だったので共有。 Extempore is 何? 作者曰く cyberphysical programming らしい…

責任を明らかにすると安心する人

小さいころの経験談だが、学校の先生が「誰が誰々を泣かせた」と言って、学級委員会を開いた。 それで帰りが遅くなり、毎度イライラしたものだ。 その委員会で、先生は犯人を見つけて叱る。それで終わり。何の意味があるのだろう? 泣かせたのが問題だとした…

wdired.el を使おうとすると、Symbol's value as variable is void: directory-sep-char が出る件

イントロ emacs 23.4 → emacs 24.3 に update して wdired.el を使うと、タイトルの通りエラーが出た。 詳細は以下 ls does not support --dired; see `dired-use-ls-dired' for more details. wdired-change-to-wdired-mode: Symbol's value as variable is…

ruby の Thread に関する不思議な現象

イントロ 第19章 スレッド を見てやってみました。 が、うまくいかない。 わかる % cat thread.rb Thread.fork { while true puts 'forked thread' end } while true puts 'main thread' end % ruby thread.rb #=> forked thread forked thread forked threa…