通常Model内のエラーをControllerに渡す方法はWAFに組み込まれている。が、薄いWAFだとControllerとViewだけあって、Modelは好きに実装して下さいということが多い。得にPerlは軽量なWAFが多く、Mojoliciousのように薄くはないけどModel層がないものもある。…
ActiveRecordなどORMを使用していると、うっかり大量のSQLを発行してしまうことがある。Bulletを使えばN+1のクエリは検知出来るが、そうでないクエリでも肥大化するケースはある。 例えば、集計するような処理を複数のモデルからメソッドを寄せ集めて書いて…
バージョン Sidekiq 3.3.0 基本動作 ジョブが走っている状態でSidekiqを終了すると、8秒間(デフォルト)待って終了する。そして、8秒以内に終了しなかったジョブはキューに戻される。 メール送信くらいの軽いジョブであればで問題にはならないが、例えば、AWS…
Markdownには様々な方言があり、記法の解釈にも微妙に差があったりする。 一つの言語で開発しているのであれば、同じライブラリを使えば問題にならないが、それぞれ別の言語で書いた複数のアプリケーションで全く同じレンダリング結果を得るのは難しい。 一…
ohaiコマンドの実行結果は人が見やすいprettifyされたjsonなので、そのままfluent-catにパイプで渡すとparseエラーになる。(恐らくここで一行ずつ読み込んでparseしているから) $ ohai | fluent-cat ohai.hostA parse error: unallowed token at this point …
自分の実力だけで何点出せるのかチャレンジしたかったので、公式の解説や予選参加者のエントリーを読むのは我慢して頑張ってみた。言語はPerl。 https://github.com/nkwhr/isucon4-qualifier 結果 11:34:06 type:info message:finish benchmark workload: 10…
最近RailsやPerlで書いたWebアプリケーションのテストをDocker上で回すようにした。 Docker周りエコシステムは沢山あるけど、まだスタンダードと呼べるものがなく、環境を整えたり、変更点をキャッチアップするコストも馬鹿にならないので、とりあえずdocker…
APIのrequest specを書く際、アクセストークンを生成してリクエストヘッダに埋め込んでおくというケースがよくある。そしてリソース単位でファイルを分けるていると、新しいリソースを追加する度に同じ定義をコピペする必要があって辛い。そんなときはshared…
コードは多少書けるけど、Webアプリケーションの開発経験はほとんどない、という前提の下読んだ本の感想をだらだらと。 読んだ本 Learn Ruby on Rails (英語) http://learn-rails.com/learn-ruby-on-rails.html 本当に初心者向けなので、半分くらいは環境構…
と初歩的なことで小石3つ分くらいつまづいた。 ただrequireしても普段使ってるRubyとVagrantのRubyはバイナリも見てるGemのPATHも違うので読み込めないは分かる。だからVagrantの方にGemをインストールすればいいんだけど、昔使った記憶のあるvagrant gem in…
sysdig とは? Sysdig is open source, system-level exploration: capture system state and activity from a running Linux instance, then save, filter and analyze. Think of it as strace + tcpdump + lsof + awesome sauce. With a little Lua cherry…
development環境の場合、sinatra-assetpack で指定したjsやcssは/js/application.js /css/application.cssでサーブされるのに、padrino-helpersのjavascript_include_tagなどで追加したものは /javascripts/foo.jsや/stylesheets/bar.cssになる。 なんか気持…
RSpecに馴染みがないからか、serverspecの出力結果(特にエラーは)は正直見づらい。もちろん全てパスするのが前提だから、failした時点でそれどうなのよって話なんだけど、サーバの台数やテストの数が多いと結構おかしなところが見つかる。(そして目を細めて…
普通にapt-get installするとUpstartに繋がらなくて失敗する。 ore@localhost ~ $ docker run -i -t ubuntu:12.10 /bin/bash root@aaee59dede24:/# root@aaee59dede24:/# apt-get install -y mysql-server ... ... Setting up mysql-server-5.5 (5.5.27-0ubu…
先日のVagrantのバージョンアップも無事に済んだので、CoreOSのVagrantイメージでDocker入門してみた。 主に自分用のメモ。 CoreOSのセットアップ ドキュメント通り、Vagrantfileをcloneしてupするだけ。 [~/vm] $ git clone https://github.com/coreos/core…
CoreOSを試してみたくて CentOS 5.9 のサーバで Vagrant を 1.2.2 から 1.2.7 へ上げたら動かなくなった。 # rpm -Uvh http://files.vagrantup.com/packages/7ec0ee1d00a916f80b109a298bab08e391945243/vagrant_1.2.7_x86_64.rpm Retrieving http://files.va…
veeweeで作ったオレオレCentOS5 boxのネットワーク設定をhost-onlyに変えてreloadしてみたらエラーが出てinterfaceが上がらなかった。他のboxだと問題ないので、OS側で何か設定し忘れたのかなーと調べてみたら余計な設定が入っていたというお話。 Vagrantfil…
Ubuntuの手順そのままだと上手く行かない部分や省かれている箇所があったので、CentOS6用に書き直したみた。 毎回 sudo と打つのがめんどくさいので、プロンプトが#のときはroot、$のときはgitユーザになってコマンドを実行してます。 参考元: https://githu…
サーバに貯めているメールをWanderlustから全文検索する方法を調べていると mu というのを見つけた。 作者も元々Wanderlustで使うために作ったみたいで設定も簡単なので試そうとしたところ、yumの標準リポジトリはもちろん、RPMすら見つからない。(ググラビ…
昨日書いたKobitoViewerを動かしているサーバのMojoliciousを最新(v2.92)にアップデートしたらエラーが出て動かなくなった。 Undefined subroutine &Mojo::Template::SandBox::f08af35edfb6fff00e16521ce13bfb68::b called at template from DATA section "i…
最近勉強メモを残すのに Kobito というアプリを使っている。ただこのアプリ、残念なことにMac用のクライアントしかなくて、データもローカルに保存されているので、せっかくメモしても会社のWindows PCから見ることが出来ない。なんとかして会社からも見たい…
対象はCentOS 5。特に罠はないのでREADME通りに進めるだけ。 # wget http://redis.googlecode.com/files/redis-2.4.10.tar.gz # tar zxf redis-2.4.10.tar.gz # cd redis-2.4.10 # make # make PREFIX=/usr/local/redis install 起動スクリプトの作成 # ./ut…
Emacs Markdown Mode インストール (install-elisp "http://jblevins.org/git/markdown-mode.git/plain/markdown-mode.el") markdown コマンドが無い場合、実行時に /bin/bash: markdown: command not found となるので、Macの場合はhomebrewなどから入れて…
補完が無いと困るほど git を活用していなかったので気にもしてなかったけど、bash/zshの補完スクリプトは git のソースに入ってるんだね。適当な場所にコピーして cp git-X.X.X.X/contrib/completion/git-completion.bash ~/.git-completion.bash .bashrc等…
http://www.emacswiki.org/emacs-en/PowerLineこういうのが欲しかった。ごちゃごちゃして見にくかったモードラインがスッキリ!しかもかっこいい! (元ネタはVimらしい。) powerline.el はカスタマイズするのが大変そうだったのでwikiのsnippetを自分好みに修…
Emacsでマウスを使うとかパッドでFPS(笑)並みに邪道だけど、片手にコーヒーやお菓子を持ってコードやツイッターを眺めたいときなんかにはやっぱり便利。 デフォルトの設定でスクロールすると行が飛びすぎるので、いわゆる smooth scrolling するために以下の…
Emacs実践入門を読んでいたら無性に一からEmacs環境を構築したくなったので、とりあえずEmacs本体から入れ直した。Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)作者: 大竹智也出版社/メーカー: 技術評論社発売日: 2012/03/…
ログを監視する仕組みについて調べていたらlogmonというツールを見つけた。IBM製ってとこに違和感があるけどシンプルな作りなのでインストールも楽で使いやすいらしい。1枚のスクリプトでしかも唯一読めるPerlだったのでどんなことをしているのかチラ見して…
普段触る機会の多い CentOS5 との違いで得に気になった点。 テキストモードでインストールが出来ない? そんなことなかった。 最初のgrub画面で [tab] を押して text って付け加えると、テキストモードでインストーラが起動してくれる。 > vmlinuz initrd=in…
せっかく調べたのでメモ。proftpd-1.2.10rc1 より前のバージョンでこんな感じのLimit設定を書いた場合、 Order Deny,Allow AllowUser hoge, fuga AllowGroup foo, bar Allow from x.x.x.x, y.y.y.y AllowUser と AllowGroup 内のユーザ名/グループ名は AND …