あれ?2009/07/09

Kernel.gets あたりのメソッド(いわゆる組み込み関数)が 組込み変数$_ を更新したり参照するマニュアルにも明記されて挙動の他に、 ローカル変数_ を更新しているっぽいのですが、これの挙動ってどこかに記述されていましたっけ?

irb(main):001:0> gets
foobar
=> "foobar\n"
irb(main):002:0> $_
=> "foobar\n"
irb(main):003:0> _
=> "foobar\n"

gsubとかでも更新されます。

irb(main):004:0> gsub("o", "u")
=> "fuubar\n"
irb(main):005:0> $_
=> "fuubar\n"
irb(main):006:0> _
=> "fuubar\n"

変数として $_ と _ は別物らしい

irb(main):007:0> _ = nil
=> nil
irb(main):008:0> $_
=> "fuubar\n"

いわゆる組み込み関数の類が参照しているのは $_

irb(main):008:0> $_
=> "fuubar\n"
irb(main):009:0> _
=> nil
irb(main):010:0> gsub("u", "o")
=> "foobar\n"
irb(main):011:0> $_
=> "foobar\n"
irb(main):012:0> _
=> "foobar\n"

1.8.7 と 1.8.5で確認。

ゴルファー的にはいつか役に立ちそうな挙動だけど、なんか気持悪い。

UG01OKモバイルルーター化計画(3)完結編2009/07/13

コメントでTOKさんに情報を頂きました。ありがとうございます。

UG01OKの内蔵バッテリー - ぶらっく あんど

こちらで紹介されている互換バッテリーを組み込んで終了。 何もネタがなくて心苦しいですが、本当に何の問題もなく動作しています。

持ち運べるWiFiルーターがこんなに便利だとは思わなかったと言うか、概念的には理解していたつもりでしたが、 実際に利用してみると想像以上に快適です。

あとは、UQ WiMAXのランニングコストが微妙に割高感があるのが問題ですね。

ワイヤレスゲートのヨドバシプランも利用しているので、ヨドバシのWiMAXで機器持ち込み契約が可能なら、 ワイヤレスゲート分安くなる感じですかねえ。

今度ヨドバシに寄った時にでも相談してみましょう。

#個人的な本命はXGPだったりするので、10月までの繋ぎなら結構どうでも良い気もしますが……。

ドラゴンクエストIX2009/07/15

遅れ馳せながら購入。

各所のレビューとかが大変なことになっているようだったので、ちょっと不安はあったものの、実に普通な感じです。
セブンスドラゴンを見た後だと、戦闘アニメがもうすこし早くても良いかなと思わないでもないですが、流石の安定感。
5点評価なら4点ぐらいはあげて良い気がする。

あと、すれ違い通信に初成功しました。
いままでは、マイナーなソフトだったり、時期を外していたりで一度も成功したことがなかったのです。地味に嬉しい。
すれ違い通信って、一回の出撃(?)で3人までしか連れ帰れないのかな?

ruby-pg 改め pg2009/07/16

Ruby用のPostgreSQLアダプタは、pure rubyのpostgesl-prとか、Cで書かれたruby-postgresとかがあったけど、 メンテナンスが滞っているようなので、ruby-pgができた(バージョンナンバーはruby-postgresの最終版から継続) というのは既知だったのですが、ruby-pg の 2008.02.05リリース版以降で、gem のパッケージ名が pg になっているのには 気がついていませんでした。(ruby- のprefixが取れた)

RubyForgeのプロジェクトページのタイトルとかtarファイルのファイル名は "ruby-pg"のままなんですがね……。

パッケージ名が二文字とかってどうなのよと思わなくはないですが、サクっとアップデート。

0.8.0ではwindows用バイナリも用意されたようです。 というか、0.8.0はwindowsサポートが目玉なのかな? 0.8.0のリリースノート

メモ

そういえば、ruby-postgres(0.7.9)では、

$ irb
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'postgres'
=> true
irb(main):003:0> pg = PGconn.new(:dbname=>'charge_production', :user=>'postgres', :port=>9999)
TypeError: wrong argument type Fixnum (expected String)
        from (irb):4:in `initialize'
        from (irb):4:in `new'
        from (irb):4
        from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:62
irb(main):004:0> pg = PGconn.new(:dbname=>'charge_production', :user=>'postgres', :port=>'9999')
=> #<PGconn:0xb7b12fd0>

こんな感じで、PGconn.newの引数のportをFixnumで与えるとエラーになっていたのが

$ irb
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'pg'
=> true
irb(main):003:0> pg = PGconn.new(:dbname=>'charge_production', :user=>'postgres',:port=>9999)
=> #<PGconn:0xb7c01be4>

ruby-pgではエラーにならなくなっている。 (0.7.9.2008.01.28, 0.8.0 で確認)

Ruby会議20092009/07/17

出勤途中に立看を見て思い出す。
今日からだったのね。
というか、チケット買えなかったのだけれども……。
今年はチケット無しで入場できるセッションは無いのか。残念。

至近距離でust視聴ってのもまあ良いか。

(追記)やはりustの調子は万全ではないのかなあ。
「給電所」とか看板が立っていて笑った。