EC2 Reserved Instanceの有効期限が切れた通知って僕の知る限りはメールで来ないんですよね。カレンダーに登録しとくとかタスク管理ツールに入れとくとかすればいいんですがAPIを使ってcronで毎日確認する方法もあるので軽く書いてみた。引っかかったインス…
Problem github製のテキストエディターであるAtomにはデフォルトでfuzzy-finderというファイル探索機能がありファイル名を入力すればどこにあるファイルでも見つけることができる。これはとても便利なのだが、Railsなどで開発をしてると開いてるファイルと同…
Passenger EnterpriseでRollingRestartを有効にしているとworkerプロセスがゾンビになって再起動してもプロセスが死なない時がある。 下記のケースではPID24388がtmp/restart.txtをtouchしても死なない状況である。 $ passenger-status Requests in queue: 0…
最近Emacsからgithub製のテキストエディターであるAtomに移行しました。慣れるまで1週間ほど移行期間は必要でしたがデフォルトの設定で十分高機能で使いやすいです。自分は普段の仕事ではRailsアプリの開発をする事が多いのでRails開発で使える便利そうなパ…
Railsで作成されたアプリケーションのリクエストURLにURLエンコード(壊れていてUTF8にデコードできない)された文字列を含めるとArgumentErrorが発生します。 環境 ruby 2.0.0p353 rails-4.0.4 再現方法 サンプルプロジェクトを構築 # railsの最新版をインス…
PassengerはRailsを動かす事ができるアプリケーションサーバである。 Apache版の設定項目について調べたので自分用の備忘録として残しておく。 バージョン Passenger-4.0.37 http://www.modrails.com/documentation/Users%20guide%20Apache.html Configuring…
Rails4でmemcachedをキャッシュストアで使う定番gemといえばdalliとRailsGuideに書いてある。ただ、このgemが実際どうゆう挙動をするのかググってみてもあまり日本語の情報が見つからなかったので試してみた。 環境 Ruby-2.0.0p353 Rails-4.0.2 dalli-2.7.0 …
active_adminはrailsで定義したモデルを操作するwebインターフェースを数コマンド叩くだけで簡単に定義してくれるお手軽なツールです。まれにあるページに対して認証を定義したい時がありますがactive_adminの認証を簡単に設定する方法があります。認証を設…
普通にcoffeescriptを書くとglobal汚染を防ぐためにfunctionの中に入れられてしまうのでwindowに領域を確保してそこに格納しておく必要がある。HogeClassの前にHogeProjectを定義しているのはnamespaceみたいなもので他のjsがHogeClassを定義している時のた…
例えばサーバが2台あったとして同じ時間に全く同じ内容のcronスクリプトが実行されるとする、その処理がDBのバッチ処理など大きなコストを必要とするなら両方のサーバで実行されるのは無駄でしかないし場合によってはデータの不整合なども発生するかもしれ…
Railsで作られているサービスとおもわれるbasecampやgithubはassetsファイルをアプリケーションサーバとは別のCDN(akamaiやCloudFront)サービスから配信している。CDNに配置する事のメリットとして世界中のEdgeサーバからassetsを配信できるのでどこからアク…
active_adminをインターネットに公開する場合にアカウントロックを設けたいなぁと思った。いろいろ調べていたらdeviceでアカウントロックを後から追加するの記事がとても参考になりました。 要約するとactive_adminはdeviceという認証フレームワークを使って…
active_adminのprecompileが失敗する。 環境 Mac OS X 10.8.2 ruby-1.9.3-p125-p194 rails-3.2.11 active_admin-0.5.1 プリコンパイルしてみると.. $ bundle exec rake assets:precompile /Users/hakutoitoi/.rbenv/versions/1.9.3-p194/bin/ruby /Users/hak…
Rails3でCSRF対策としてApplicationControllerにデフォルト指定されるprotect_from_forgeryですが、実際のところ何をやっているのかわからなかったのでコードリーディングしてみたメモ。 環境 Mac OS X 10.8.2 ruby-1.9.3-p125 rails-3.2.9 処理の流れ 0. Ap…
capistrano-unicornはその名の通りcapistranoでunicornを扱う便利なgemです。 早速Railsのサービスに導入してみた。試した環境は ruby-1.9.3p194 rails-3.2.9 capistrano-2.13.5 capistrano-unicorn-0.1.6 githubの使い方を参考にGemfileに下記を追加してbun…
Monitとは指定したプロセスを監視して落ちていた場合に再起動を行なってくれるデーモンプロセスです。 DaemontoolsとSuperVisordと比べると設定が一番シンプルな気がします。 yumからインストール $ sudo yum install monit # 確認 $ yum list installed | g…
mysqlにおいてWHEREとJOIN ONで条件を指定した場合の違いがよくわかっていなかったのでまとめておく。映画を表すmoviesテーブルと映画の日毎の再生回数を表すplaycountsテーブルがあるとする。 moviesテーブル +----+------------+ | id | title | +----+---…
demo.rake desc "task to receive args" task :demo, :arg1, :arg2 task :demo => :environment do |t, args| puts args[:arg1] puts args[:arg2] end 実行例 rake "demo[aaa,bbb]" もうちょっと普通に引数を渡したいものです。
RAILS_ROOT/app/model/page/count.rb class Page::Count < ActiveRecord::Base end RAILS_ROOT/app/model/page/count_observer.rb class Page::CountObserver < ActiveRecord::Observer def after_save(model) logger.info "Saved!" end end RAILS_ROOT/conf…
PCとモバイルでドメインを別にしてサービスを提供することもあると思う。 その場合アプリケーションを別にしてもいいのだがモデルを共有したい場合もある。 そういう時はconfig/routes.rbでconstraints指定をしてrequestされたhost名でコントローラを出し分…
環境 rails 3.2.8 ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0] actionmailer 3.2.8 rails3のaction mailerでメールを送る際にエクセルを添付したいケースがあると思う。 Rails Guideにならって書くとこうなる。 # -*- coding: utf-8 …
Rails3といえばasset pipeline。 賛否両論ありますが僕はそのコンセプトが好きです。 ただ欠点があってCPUの性能が低いマシン(EC2 smallインスタンスなど)ではasset precompileがくそ遅い。 仕事で運用しているあるサイトでは大体150秒くらいかかってしまっ…
前回の記事で使ったlibxml2はhttpレスポンスヘッダのステータスコードの取得ができない。 まずCURLでhttpのヘッダ情報と本文を取得して、ヘッダのチェックをしてステータスコードが200なら本文をlibxml2に渡してパースするようにした。 yahoo!掲示板のRSSのi…
apacheモジュール内でwebAPIを呼んでXMLを解析する必要があるため、C/C++で利用できるXMLパーサを調べてみた。Cだと expat libxml2 C++だと tinyXml Xerces などなど他にもさまざまなライブラリがあるようだが今回はlibxml2を使ってパースしてみる事とした。…
とりあえずtelnetでhttpリクエストしてみる。 ヘッダ情報を取得する $ telnet www.yahoo.co.jp 80 Trying 124.83.139.192... Connected to www.yahoo.co.jp. Escape character is '^]'. HEAD / HTTP/1.1 Host: www.yahoo.co.jp HTTP/1.1 200 OK Date: Fri, 0…
firefoxで利用しているキーバインドとemacs-w3mキーバインドを合わせてみた。alt-tで新規タブ作成 ctl-tabで次のタブに切り替えをできるようにした。 .emacs-w3m (setq browse-url-browser-function 'w3m-browse-url) (global-set-key "\C-xm" 'browse-url-a…
perlのhashにforeach()でアクセスする場合、格納した順番は保持されない。 でもphpの連想配列にforeachでアクセスする場合は格納した順番でアクセスされるみたいだ。これはとても重要なことだと思う。 初めてのPHP5 のp56に載っていた。web検索のクエリを投…
emacsのphp-mode-1.5だとコメント行にある >func() >var 等がコメントとして認識されずに色付きで表示されてしまうのが気持ち悪い。たとえばdoxgenとかでありがちな以下のようなコメント行だと色が付いてしまう。 /** * 検索 * * 検索して結果を返す * * exa…
初めてのPerl作者: ランダル・L.シュワルツ,トムフェニックス,Randal L. Schwartz,Tom Phoenix,近藤嘉雪出版社/メーカー: オライリージャパン発売日: 2003/05メディア: 単行本購入: 14人 クリック: 420回この商品を含むブログ (293件) を見る 3年前にぱらぱ…
PERL HACKSを立ち読みしてたら発見。 これも必須だな。 (defun perl-eval (beg end) "Run selected region as Perl code" (interactive "r") (save-excursion (shell-command-on-region beg end "perl")) )