とあるプロジェクトの通しテストについて、MRIとREEで設定を変えて時間を計ってみた。 その後、parallel_tests を試してみた。 .rbenv-vars RUBY_HEAP_MIN_SLOTS=1000000 RUBY_HEAP_SLOTS_INCREMENT=1000000 RUBY_HEAP_SLOTS_GROWTH_FACTOR=1 RUBY_GC_MALLOC…
Passenger の場合について簡単に調査。PhusionPassenger.on_event(:starting_worker_process) で、NewRelic::Agent.after_fork を実行している。 NewRelic::Agent.after_fork は、Thread.new してワーカースレッドを作っている。という事で、Passenger のワ…
patch の流れはざっくりと以下の様な感じ。 curl で %03d-homebrew.diff という名前で保存する 圧縮されているか判別して適切な拡張子を付け足す(mv する) 圧縮されている場合は展開する %03d-homebrew.diff という名前のファイルを patch する 圧縮ファイル…
Ruby の Mechanize を使って書いたプログラムの途中経過を簡単に目視点検する方法を知りたい。以下は、Mechanize::HTTP::Agent#fetch の後処理として無理矢理実装したもの。HTML をローカルファイルに書き出して、それをウェブブラウザに読み込ませるという…
Mechanize::Cookie.new のパラメータ指定でミスっていたので自戒のメモ。 require 'rubygems' require 'mechanize' require 'logger' agent = Mechanize.new do |agent| agent.log = Logger.new($stdout) end [ 'http://www.google.com', 'http://www.google…
https://www.phusionpassenger.com/enterprise とても気になる。英語読めない。 Rolling Restarts Unicorn とかは、既存プロセスと新規プロセスで2倍のメモリが必要な実装になっている。 一方、Phusion Passenger Enterprise では、一つずつ置き換えていく方…
App Store を眺めていたら、Dash というドキュメントブラウザがある事を知りました。 http://kapeli.com/dash/ マシンのメモリに大分余裕が出来たこともあり、ダウンロードして使ってみることにしました。なんとなく良さそうな印象ですが、用意されているド…
全く中身を把握していなかった事に気づかされたので、少しだけ調べてみました。以下は Object#to_yaml のソース。 # yaml/rubytypes.rb class Object yaml_as "tag:ruby.yaml.org,2002:object" def to_yaml_style; end def to_yaml_properties; instance_var…
Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus)作者: DeNA出版社/メーカー: 技術評論社発売日: 2012/06/13メディア: 単行本(ソフトカバー)購入: 29人 クリック: 607回この商品を含むブログを見る購入してから大分時間が経ちましたが…
Mechanize#get などによって取得されたリソースは、Mechanize::Page のインスタンスとして返される。その際の Mechanize::Page の初期化プロセスの中で、取得したリソースの文字エンコーディングを推定している。 エンコーディング候補 以下で得られるエンコ…
Mechanize#get などによって取得されたリソースは、Mechanize::Page のインスタンスとして返される。その際の Mechanize::Page の初期化プロセスの中で、取得したリソースの文字エンコーディングを推定している。 エンコーディング候補 以下で得られるエンコ…
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)作者: Dustin Boswell,Trevor Foucher,角征典出版社/メーカー: オライリージャパン発売日: 2012/06/23メディア: 単行本(ソフトカバー)購入: 3人 クリック:…
ruby -d で実行して $DEBUG が真になった時にだけブロックを実行するメソッド、的なものはあるんでしたっけ? if $DEBUG def debug yield if block_given? end else def debug end end debug { puts 'x' } こんな感じのやつ。※ ついでに、こういうやつにふさ…
FULLTEXT INDEX として作成したインデックスを利用した検索で、WHERE 句の MATCH(カラム名) AGAINST('フレーズ') を使って検索条件を指定する。 http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html http://dev.mysql.com/doc/refman/5.1/ja/fullt…
FasterCSVは改行を含まない一行のレコードは十分高速に解析できる FasterCSVはレコード区切りがCRLFで、カラムに含む改行がLFであれば十分高速に解析できる LightCsvが安定して高速(速度のみ確認) CSVScanも安定して高速(速度のみ確認)
改行が多いとパースに時間がかかるらしい。どこで時間がかかっているかなど、ソースは見てない。旧CSVは安定している様子。 1.8.7-p358, FasterCSV 1.5.5 # -*- coding: utf-8 -*- require 'benchmark' require 'rubygems' require 'fastercsv' require 'csv…
とある用途で Ruby の Mechanize を使う事になったわけですが、Mechanize は内部で Iconv を使用してエンコーディング変換を行っています。 なので、WINDOWS-31J なページを扱おうとした場合に、iconv が WINDOWS-31J に対応していないと困ってしまうわけで…
こんなんでよいのかな? https://raw.github.com/gist/2575204/f3ce1dd8c6bb90aba25dd5ecc3b757bb91f46fd8/kakasi.rb makeで以下のエラーメッセージが出るので、適当にconfigureを書き換えているわけですが、コンパイル周りは全く知識がなくて泣きそうです。…
Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)作者: 大竹智也出版社/メーカー: 技術評論社発売日: 2012/03/07メディア: 単行本(ソフトカバー)購入: 11人 クリック: 212回この商品を含むブログ (1件) を見る流しただけでは…
Webibloをチェックアウト。 https://github.com/mizzy/webiblo $ git clone https://github.com/mizzy/webiblo.git $ cd webiblo Perlbrewとcpanmをインストールする。 http://perlbrew.pl/ $ curl -kL http://install.perlbrew.pl | bash $ source ~/perl5/…
少し前にGNU screenからtmuxに乗り換えたわけですが、あまり把握できていないので本を買ってみました。今はChapter 4まで読んだところですが、そこまでの足跡を以下に簡単に記録しておきました。 http://w.koshigoe.jp/study/?%5Bsystem%5D+tmux%A5%C1%A5%E5…
git-svn-clone-externalsの仕組みを参考に、相対パスで書いたsvn:externalsもgit-svnするスクリプトを書いてみた。出来は悪いけど、それなりに動いている、はず。
Clean Coder プロフェッショナルプログラマへの道作者: Robert C. Martin,角征典出版社/メーカー: アスキー・メディアワークス発売日: 2012/01/27メディア: 大型本購入: 1人 クリック: 72回この商品を含むブログ (14件) を見る…、胸が痛い。
GPSではなくIPアドレスから都道府県(地理情報)を特定したい場合、MaxMind社のデータベースを使うのが一般的なんでしょうか?地理情報関係はほぼ触れずに今日まで生きてきたのでよく分かりませんが、とりあえずIPアドレスから都道府県を割り出すプログラムで…
VagrantのBase Box用に仮想マシンを作る際に、最低限何が必要とされているかという情報が見つからないなと思ってたら、普通にありましたねという話。 Vagrant - Documentation - Base Boxes 上記ドキュメントに書かれている内容をおおざっぱに抜粋。 Virtual…
ドメイン別に利用するネームサーバを使い分けられるやつを便利だなと思いつつ、DNS音痴が故に使えずにいましたが最近になって重い腰を上げましたよという話です。BINDを軽くは触ったことがありますが本当に浅いところしか触ったことがなく、またTTLの話とか…
理解しておらず恥をかいてしまったのでメモ。 $releasever This will be replaced with the value of the version of the package listed in distroverpkg. This defaults to the version of ‘redhat-release’ package. 設定項目distroverpkgで指定されたパ…
known_hostsに疎い自分ですが、いくつか覚えたことがあるのでメモしておきます。 指定したサーバのknown_hostsを取得する サーバをコマンドライン引数で指定する。 $ ssh-keyscan -t rsa 127.0.0.1,localhost >> .ssh/known_hosts サーバをファイルで指定す…
git-svn歴もそこそこになるけど、最近ようやくgit-svn-clone-externalsを使い始めました。便利ですね。 git-svn-clone-externals 今まではmrでごまかしていたんですが、git svn cloneする回数が増えてきて設定が面倒くさくて耐え切れなりました。もっと早く…
いろいろな方法があって、未だにふらふらしています。最近は以下の様な環境を利用しています。 Homebrew rbenv ruby-build rbenv-gemset Bundler 過去の変遷を振り返ると、MacPortsで直接→Homebrewで直接→rvm→rbenv→rvm→rbenv→(ryという感じです。rvmとrbenv…