はちゅにっき

こっちのブログはまったり更新

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

Ruby で is_numeric

PHP の is_numeric( ) みたいなのを Ruby でやる場合はこんな感じでいいのかなー? def numeric? (value) return true if value.kind_of?(Numeric) !!(Integer(value) rescue Float(value)) rescue false end これで、以下のようにテストしてみたら、だいた…

Enumerable#each_with_object でハマった

[1, 2, 3].each_with_object(Array.new) do |i, memo| memo += [i, i * 2] end # => [ ] あれ!? [[1, 2], [2, 4], [3, 6]] になると思ったのに!? Ruby - Enumerable.each_with_object の使い道 - Qiitaqiita.com Ruby - injectとeach_with_objectって何…

ブロック内でのみ有効な Redis のインスタンスを起動したい

最近は Ruby をちょくちょく使っています。 Ruby で Redis を使ったテストを書く場合は fakeredis や mock_redis を使うのが一般的かと思いますが、ちょっとだけ Fake や Mock ではなく本物の Redis を使いたい時ってありませんか? 例えば Redis やその周辺…

本当に PHP の DoS 脆弱性 (CVE-2015-4024) キツくない?

PHP

PHPのDoS脆弱性(CVE-2015-4024)キツくない? - 出張おはき゛ろくhakaikosen.hateblo.jp 上記記事を「あら大変(棒読み)」とか思いながら読んでいたけれど、PHP の BTS の方を読んでみたら確かに原理から再現手順まで細かく記載されていて 「なんかこれまずそ…

mp3 の ID3 Tag をファイルパスに基づいて更新する

アーティスト名/アルバム名/01-曲名.mp3というファイルパスのルールで保存してある mp3 に対して、ファイルパスに基づいて適切な ID3 タグを一括で設定する Script を Ruby の taglib-ruby を使って書いてみました。taglib-rubytaglib-ruby は C++ で書かれ…

String#to_s と 文字列リテラル内の式展開と - その3

もうここまでくるとただの興味本位。 文字数・桁数によってどんな感じに処理時間が増加するのかを調べてみました。 今回は桁数を 1桁から100桁まで増加させたときの処理時間の変化。 グラフにしたらこんな感じ。 ノイズっぽいデータが一部あるけれど、String…

String#to_s と 文字列リテラル内の式展開と - その2

Float と Symbol についても気になったので追加してみました。 どれも予想通り Object#to_s の方が "#{Object}" の書き方よりも早いですね。 Float#to_s のコストは他と比べると比較的高いんですね。 といっても 100万回やってこの値なので、本当に気にする…

String#to_s と 文字列リテラル内の式展開と

やっぱ、こういうものですよね。 String#to_s (文字列を文字列にする) か Fixnum#to_s (数値を文字列にする) かでも、当然だけれど違いは出るんですね。