こしごぇ(B)

旧:http://d.hatena.ne.jp/koshigoeb/

2012-01-01から1年間の記事一覧

Android エミュレータと格闘中

Intel HAXM SDK Manager からインストール出来るイメージが遅すぎて使える気がしなかったので、Intel のイメージを使うために HAXM をインストール。 http://software.intel.com/en-us/android http://software.intel.com/en-us/articles/intel-hardware-acc…

QUnit + QUnit-TAP + PhantomJS

そろそろ真面目に JavaScript を書くことになりそうなので、テストの準備をし始めたところです。まずは QUnit を使う準備。Mocha が気になりつつ、周囲の経験的に QUnit が有力くさいので。 $ mkdir qunit-sample $ cd qunit-sample $ mkdir test $ mkdir -p…

『めんどうくさいWebセキュリティ』読んだ

ちょっと前に読了。めんどうくさいWebセキュリティ作者: Michal Zalewski,上野宣,新丈径出版社/メーカー: 翔泳社発売日: 2012/06/19メディア: 単行本(ソフトカバー)購入: 8人 クリック: 84回この商品を含むブログ (4件) を見る一般的な行儀作法を身につけ…

Ruby でメソッドのオーバーライドを禁止する話

http://www.rubyist.net/~nobu/t/20051118.html#p01 http://d.hatena.ne.jp/iwadon/20051117/1132236662 http://ruby.11.n6.nabble.com/ruby-dev-37956-proposal-Module-method-adding-td3532363.html 大分昔に書かれたやつを参考に写経。 method_added を活…

MySQL の ALTER TABLE でメモリ使用量が微増していく理由が分からない

MySQL のメモリ消費について理解できてない件。Full Text Parser Plugin Collection の mecab プラグインを使って mecab_normalization を KC に設定していると、ADD FULTEXT with parser mecab した時に数百MB単位で増加していく問題に遭遇したのがきっかけ…

YAPC::Asia Tokyo 2012 9/28

Perl でコードを書くことはありませんが、何かのイベントに参加したいと思ったときに目に付いたのが YAPC::Asia でした。疲れた。席を探すのが嫌というのと、3Fへの行き方がよく分からなくて、ずっとホールの同じ席に座ってました。ぽっつりと。明るい雰囲気…

『プログラマのためのサバイバルマニュアル』読んだ

軽く目を通した程度。プログラマのためのサバイバルマニュアル作者: Josh Carter,長尾高弘出版社/メーカー: オライリージャパン発売日: 2012/08/22メディア: 単行本(ソフトカバー)購入: 2人 クリック: 48回この商品を含むブログ (9件) を見る主に、チーム…

dbmの"HASH: Out of overflow pages. Increase page size"を解決する方法が分からない

OSXでRubyのdbmを使った時に遭遇。 require 'dbm' db = DBM.open('hoge', 0666, DBM::NEWDB) 1000000.times do |n| p n db[n.to_s] = 'a' * 1024 end 41838回目で例外発生。 HASH: Out of overflow pages. Increase page size DBMError: dbm_store failed fr…

Rubyを使って機種依存文字を強引に特定してみる

IconvのIconv::IllegalSequence例外を使って書いてみた。 現実的な入力に対して、どの程度の時間を要するのか分かってないまま実装。

「プログラマのための文字コード技術入門」で勉強中(6)

一通り目を通した。プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 33人 クリック: 544回この商品を含むブログ…

「プログラマのための文字コード技術入門」で勉強中(5)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 33人 クリック: 544回この商品を含むブログ (121件) を見る 電…

「プログラマのための文字コード技術入門」で勉強中(4)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 33人 クリック: 544回この商品を含むブログ (121件) を見る コ…

「プログラマのための文字コード技術入門」で勉強中(3)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 33人 クリック: 544回この商品を含むブログ (121件) を見る 文…

「プログラマのための文字コード技術入門」で勉強中(2)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 33人 クリック: 544回この商品を含むブログ (121件) を見る AS…

「プログラマのための文字コード技術入門」で勉強中(1)

いわゆる「文字コード」について余りにも無知なので、今更ではあるけれどちゃんと勉強しておこうと思い「プログラマのための文字コード技術入門」で入門してみた。プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)作…

JavaScriptにも対応したボットをRubyで書く

CapybaraとPoltergeistとPhantomJSを使えば、割と簡単にできそうな感じがする。 https://github.com/jnicklas/capybara https://github.com/jonleighton/poltergeist http://phantomjs.org/ 簡単なJavaScriptを実行した結果のHTMLに対して操作できるという所…

電話番号を電気通信番号指定状況に従って分割してみる

総務省のサイトにある「電気通信番号指定状況」のページを参考に。 http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/number_shitei.html 既に誰かが書いている気がしますが、いまいちよく分からずに息抜きがてら自分で書いてみたのが以下。…

重い腰を上げてテストにかかる時間の短縮を試みる

とあるプロジェクトの通しテストについて、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…

New Relic がどうやってメトリクスを集めているのか気になったのでちょっと調べてみた

Passenger の場合について簡単に調査。PhusionPassenger.on_event(:starting_worker_process) で、NewRelic::Agent.after_fork を実行している。 NewRelic::Agent.after_fork は、Thread.new してワーカースレッドを作っている。という事で、Passenger のワ…

Homebrew の patches で圧縮ファイルを指定する場合

patch の流れはざっくりと以下の様な感じ。 curl で %03d-homebrew.diff という名前で保存する 圧縮されているか判別して適切な拡張子を付け足す(mv する) 圧縮されている場合は展開する %03d-homebrew.diff という名前のファイルを patch する 圧縮ファイル…

Mechanize で fetch した HTML を任意のウェブブラウザに表示させる簡単な方法を知りたい

Ruby の Mechanize を使って書いたプログラムの途中経過を簡単に目視点検する方法を知りたい。以下は、Mechanize::HTTP::Agent#fetch の後処理として無理矢理実装したもの。HTML をローカルファイルに書き出して、それをウェブブラウザに読み込ませるという…

Mechanize で Cookie を手動でセットする

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…

Phusion Passenger Enterprise

https://www.phusionpassenger.com/enterprise とても気になる。英語読めない。 Rolling Restarts Unicorn とかは、既存プロセスと新規プロセスで2倍のメモリが必要な実装になっている。 一方、Phusion Passenger Enterprise では、一つずつ置き換えていく方…

OSX 用のドキュメントブラウザ Dash

App Store を眺めていたら、Dash というドキュメントブラウザがある事を知りました。 http://kapeli.com/dash/ マシンのメモリに大分余裕が出来たこともあり、ダウンロードして使ってみることにしました。なんとなく良さそうな印象ですが、用意されているド…

rubyのYAMLによるシリアライズについて

全く中身を把握していなかった事に気づかされたので、少しだけ調べてみました。以下は 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を支える技術』を読んだ

Mobageを支える技術 ~ソーシャルゲームの舞台裏~ (WEB+DB PRESS plus)作者: DeNA出版社/メーカー: 技術評論社発売日: 2012/06/13メディア: 単行本(ソフトカバー)購入: 29人 クリック: 607回この商品を含むブログを見る購入してから大分時間が経ちましたが…

Mechanize(2.5.1) のエンコーディング周りに関するメモ

Mechanize#get などによって取得されたリソースは、Mechanize::Page のインスタンスとして返される。その際の Mechanize::Page の初期化プロセスの中で、取得したリソースの文字エンコーディングを推定している。 エンコーディング候補 以下で得られるエンコ…

Mechanize(2.5.1) のエンコーディング周りに関するメモ

Mechanize#get などによって取得されたリソースは、Mechanize::Page のインスタンスとして返される。その際の Mechanize::Page の初期化プロセスの中で、取得したリソースの文字エンコーディングを推定している。 エンコーディング候補 以下で得られるエンコ…

リーダブルコード

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)作者: Dustin Boswell,Trevor Foucher,角征典出版社/メーカー: オライリージャパン発売日: 2012/06/23メディア: 単行本(ソフトカバー)購入: 3人 クリック:…

Rubyでデバッグモードの時だけ実行されるメソッドってあるんだっけ?

ruby -d で実行して $DEBUG が真になった時にだけブロックを実行するメソッド、的なものはあるんでしたっけ? if $DEBUG def debug yield if block_given? end else def debug end end debug { puts 'x' } こんな感じのやつ。※ ついでに、こういうやつにふさ…