マツダ情報
マツダを各種ブログ(Blog)から一括検索します。
トップ > Factory Records > Factory Records - 人気ブログ(Blog)検索結果詳細 (2009年1月8日 7時)
[Ruby]郵便番号データを加工するRubyスクリプト
日本郵便のサイトでは、CSV形式の郵便番号データをダウンロードすることができます。
CSVの中身はこんなカンジ。熊本県のデータです。
43201,"862 ","8610000","クマモトケン","クマモトシ","イカニケイサイガナイバアイ","熊本県","熊本市","以下に掲載がない場合",0,0,0,0,0,0 43201,"86141","8614121","クマモトケン","クマモトシ","アイドミマチ","熊本県","熊本市","会富町",0,0,0,0,0,0 43201,"86121","8612104","クマモトケン","クマモトシ","アキツ","熊本県","熊本市","秋津",0,0,1,0,0,0 43201,"86121","8612107","クマモトケン","クマモトシ","アキツシンマチ","熊本県","熊本市","秋津新町",0,0,0,0,0,0 43201,"86121","8612105","クマモトケン","クマモトシ","アキツマチアキタ","熊本県","熊本市","秋津町秋田",0,0,0,0,0,0
郵便番号を入力すると、住所を自動入力するプログラムを作りたい場合。このままでは使いにくいですよね。そこで、CSVデータを加工します。とりあえず、こんなカンジに。
"8610000","熊本県熊本市" "8614121","熊本県熊本市会富町" "8612104","熊本県熊本市秋津" "8612107","熊本県熊本市秋津新町" "8612105","熊本県熊本市秋津町秋田"
なんのヒネリもなくスクリプトを書く。
if ARGV.size < 1 puts "ファイルを指定してください" exit end input_file = ARGV[0] output_file = input_file.sub(/\.csv/i, "(変換済).csv") open(input_file, "r") { |input| open(output_file, "w") { |output| while line = input.gets data = line.split(/\s*,\s*/).map{|s| s.gsub('"', '')} yubin = data[2] ken = data[6] shi = data[7] banchi = data[8] banchi = "" if banchi == "以下に掲載がない場合" str = %Q{"#{yubin}","#{ken}#{shi}#{banchi}"} puts str output.puts str end } }
最近、ゆうびんホームページにお世話になってるなあ。。
作者:shunsuk
更新日:2009年1月8日 22時12分
[Mac]MacでDVD/CDからisoファイルを作る。MacでisoをDVD/CDに焼く。
Macはisoをマウントして中のファイルを見ることができるので便利ですね。その他、isoの操作をサードパーティのソフトを使わなくても行うことができます。
まずは、DVD/CDからisoファイルを作る方法。[アプリケーション] - [ユーティリティ]の中の「ディスクユーティリティ.app」を起動します。
CD/DVDをセットします。ディスクユーティリティにCD/DVDが表示されるので、選択状態にします。[ファイル] - [新規] - [(CD/DVDのタイトル)からのディスクイメージ...]を実行。ダイアログの[イメージフォーマット]で[DVD/CD マスター]を選択。cdrファイルが作成されるので、拡張子をisoに変更。これでOKです。
次に、isoの中身をDVD/CDに焼く方法。こっちはカンタン。ディスクユーティリティの左上にある[ディスクを作成]というアイコンをクリックします。isoファイルを選択して作成します。
レンタルしてきたDVDをisoに保存。マウントして再生。というのもできるハズ。たしか。。
Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~
- 作者: 原悠
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/12/20
- メディア: 単行本(ソフトカバー)
実践 Rails -強力なWebアプリケーションをすばやく構築するテクニック
- 作者: Brad Ediger, 株式会社クイープ
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/10/27
- メディア: 大型本
作者:shunsuk
更新日:2009年1月7日 21時38分
[Ruby]irbとscript/consoleの超便利なTips
これは便利だと思います。
Wirble: colors
irbでシンタックスハイライト。
Wirbleをインストールします。
% sudo gem install wirble
~/.irbrcに下のコードを書きます。
require 'rubygems' require 'wirble' Wirble.init Wirble.colorize
出力がハイライトされます。ハッシュや配列は見やすいかも。
Wirble: history
irbは、コマンドの履歴が残ります。[↑]や[↓]、[control] + [p]や[control] + [n]で履歴を見ることができます。しかし、いったんirbを終了すると、履歴がクリアされてしまいます。
Wirbleをインストールしておくと、履歴がクリアされません。再度irbを起動すると、前回の履歴を使うことができます。
Wirble: auto-completion
Wirbleは自動補完機能も提供してくれます。。
>> un_momento = "Spanish for like, 'hold the phone!'" => "Spanish for like, 'hold the phone!'"
ここで、"un"とタイプして、[tab]キーを押します。
>> un un_momento undef unless untaint untrace_var until
これは便利。
Local methods
~/.irbrcに下のコードを書きます。
# Easily print methods local to an object's class class Object def local_methods (methods - Object.instance_methods).sort end end
そうすると、local_methodsメソッドが使えるようになります。
>> class BasketballPlayer >> attr_accessor :name >> ?> def champion? >> name == "Kevin Garnett" >> end >> end => nil >> kevin_garnett = BasketballPlayer.new => #<BasketballPlayer:0x11988f8> >> kevin_garnett.name = "Kevin Garnett" => "Kevin Garnett" >> kevin_garnett.champion? => true >> kevin_garnett.local_methods => ["champion?", "name", "name="]
.irbrcって、普通にRubyのコードが書けるんですね。
Aliases
irbでは、エイリアスを設定することができます。
alias q exit
"exit"の代わりに"q"とタイプすると、irbを終了します。Vimっぽい。
Create test fixtures for a third party service
例えば、FlickerのAPIを使うクライアントを作ったとき。
FlickrClient.search("Bruce Springsteen")
テストケースが書けませんよね。
そこで、script/consoleに入って、データをyamlに変換します。それを、ファイルにダンプ。
yaml = FlickrClient.search("Bruce Springsteen").to_yaml File.open("test/fixtures/flickr/springsteen.yml", "w") { |file| file << yaml }
test_helper.rbに下のコードを書いておきます。。
def load_yaml_fixture(path) absolute_path = File.join(RAILS_ROOT, "test", "fixtures", path) YAML::load_file absolute_path end
呼び出し。
load_yaml_fixture("springsteen.yml")
このパターンは、サードパーティのサービスにアクセスするクライアントのテストに使えます。
Print SQL to standard out
script/consoleでデバッグする時に、メソッドが生成するSQL文を表示することができます。
~/.irbrcに下のコードを書きます。
# Log to STDOUT if in Rails if ENV.include?('RAILS_ENV') && !Object.const_defined?('RAILS_DEFAULT_LOGGER') require 'logger' RAILS_DEFAULT_LOGGER = Logger.new(STDOUT) end
こんなカンジ。
>> videos = Video.limited(3) Video Load (0.4ms) SELECT * FROM `videos` LIMIT 3 => [#<Video id: 1, ...>]
これは便利。
pp
require 'pp'
イイカンジにフォーマットしてくれます。特にArrayやActiveRecordオブジェクトのときに便利。
>> pp videos [#<Video id: 1, youtube_id: "TcMklv40YMY", name: "Merb, Rubinius and the Engine Yard Stack", upload_time: nil, view_count: 6171, description: "Google Tech Talks\nOctober 20, 2008\n\nABSTRACT\n\nIn th...", created_at: "2008-12-21 00:32:33", updated_at: "2008-12-21 00:32:33">, #<Video id: 2, youtube_id: "JySmT-dGOj0", name: "MERB SPORTS Team-Vorstellung 2008", upload_time: nil, view_count: 495, description: "MERB SPORTS stellt sich für die VDRM-Saison 2008 v...", created_at: "2008-12-21 00:32:33", updated_at: "2008-12-21 00:32:33">, #<Video id: 3, youtube_id: "6bc-FNNWIsM", name: "Merb && Moi", upload_time: nil, view_count: 58, description: "Amusing yes?", created_at: "2008-12-21 00:32:33", updated_at: "2008-12-21 00:32:33">]
Wirble便利ですね。あと、.irbrcにRubyのコードを書けるというのが大発見。これは便利。
Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~
- 作者: 原悠
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/12/20
- メディア: 単行本(ソフトカバー)
実践 Rails -強力なWebアプリケーションをすばやく構築するテクニック
- 作者: Brad Ediger, 株式会社クイープ
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/10/27
- メディア: 大型本
作者:shunsuk
更新日:2009年1月6日 22時10分
[Web]Webサイトの右クリックを禁止する方法
onContextMenuをブロックするだけだと、IE7を防げなかった気がします。これだけ指定すれば、IE7もFirefoxも右クリックを禁止できるんですね。というメモ。
<body onContextMenu="return false;" onMouseDown="if ((event.button==2) || (event.button==3)) {alert('無駄無駄無駄無駄ァ!'); return false;}" onDragStart="return false;" onSelectStart="return false;">
個人的には、右クリック禁止には反対なんだけど。実装してくれという要望があったら仕方ないかなと思っています。気持ちが分からないでもないから。
マウスジェスチャー使ってる人は不便ですね。Windowsなら[BackSpace]や[Alt] + [←]を使うといいさ。Macなら[delete]や[command] + [←]を使うといいさ。
でも、右クリック禁止には反対。
作者:shunsuk
更新日:2009年1月5日 22時39分
[Mac][Ruby]Mac OS X Leopardでrefeの文字化けを解消する
refeは、ターミナル上でRubyのリファレンスマニュアルを読むことができるツールです。ターミナルで操作を完結できるので、かなり便利だということに気付きました。さっそく使ってみましたが、Leopardでは文字化けしてしまいます。
/Library/Ruby/Gems/1.8/gems/refe-0.8.0.3/lib/refe/searcher.rbを修正します。これは、最初から入っているrefeの場合で、MacPortsで入れた場合はパスが違います。
def adjust_encoding( str )
NKF.nkf('-Ew', str)
# if shift_jis_platform?
# NKF.nkf('-Es', str)
# else
# str
# end
end
UTF-8決め打ちです。
使ってみます。
% refe Integer to_s
Integer#to_s
--- to_s
--- to_s(base) ruby 1.7 feature
整数を 10 進文字列表現に変換します。
ruby 1.7 feature: 引数を指定すれば、それを基数とした文字列表
現に変換します。基数として 2 〜 36 以外を指定した場合は例外
ArgumentError が発生します。
p 10.to_s(2) # => "1010"
p 10.to_s(8) # => "12"
p 10.to_s(16) # => "a"
p 35.to_s(36) # => "z"
正確なスペルじゃなくても推測してくれるのが便利ですね。
作者:shunsuk
更新日:2009年1月4日 21時17分
[Ruby]郵便番号データを加工するRubyスクリプト
日本郵便のサイトでは、CSV形式の郵便番号データをダウンロードすることができます。
CSVの中身はこんなカンジ。熊本県のデータです。
43201,"862 ","8610000","クマモトケン","クマモトシ","イカニケイサイガナイバアイ","熊本県","熊本市","以下に掲載がない場合",0,0,0,0,0,0 43201,"86141","8614121","クマモトケン","クマモトシ","アイドミマチ","熊本県","熊本市","会富町",0,0,0,0,0,0 43201,"86121","8612104","クマモトケン","クマモトシ","アキツ","熊本県","熊本市","秋津",0,0,1,0,0,0 43201,"86121","8612107","クマモトケン","クマモトシ","アキツシンマチ","熊本県","熊本市","秋津新町",0,0,0,0,0,0 43201,"86121","8612105","クマモトケン","クマモトシ","アキツマチアキタ","熊本県","熊本市","秋津町秋田",0,0,0,0,0,0
郵便番号を入力すると、住所を自動入力するプログラムを作りたい場合。このままでは使いにくいですよね。そこで、CSVデータを加工します。とりあえず、こんなカンジに。
"8610000","熊本県熊本市" "8614121","熊本県熊本市会富町" "8612104","熊本県熊本市秋津" "8612107","熊本県熊本市秋津新町" "8612105","熊本県熊本市秋津町秋田"
なんのヒネリもなくスクリプトを書く。
if ARGV.size < 1 puts "ファイルを指定してください" exit end input_file = ARGV[0] output_file = input_file.sub(/\.csv/i, "(変換済).csv") open(input_file, "r") { |input| open(output_file, "w") { |output| while line = input.gets data = line.split(/\s*,\s*/).map{|s| s.gsub('"', '')} yubin = data[2] ken = data[6] shi = data[7] banchi = data[8] banchi = "" if banchi == "以下に掲載がない場合" str = %Q{"#{yubin}","#{ken}#{shi}#{banchi}"} puts str output.puts str end } }
最近、ゆうびんホームページにお世話になってるなあ。。
作者:shunsuk
更新日:2009年1月8日 13時12分
[Mac]MacでDVD/CDからisoファイルを作る。MacでisoをDVD/CDに焼く。
Macはisoをマウントして中のファイルを見ることができるので便利ですね。その他、isoの操作をサードパーティのソフトを使わなくても行うことができます。
まずは、DVD/CDからisoファイルを作る方法。[アプリケーション] - [ユーティリティ]の中の「ディスクユーティリティ.app」を起動します。
CD/DVDをセットします。ディスクユーティリティにCD/DVDが表示されるので、選択状態にします。[ファイル] - [新規] - [(CD/DVDのタイトル)からのディスクイメージ...]を実行。ダイアログの[イメージフォーマット]で[DVD/CD マスター]を選択。cdrファイルが作成されるので、拡張子をisoに変更。これでOKです。
次に、isoの中身をDVD/CDに焼く方法。こっちはカンタン。ディスクユーティリティの左上にある[ディスクを作成]というアイコンをクリックします。isoファイルを選択して作成します。
レンタルしてきたDVDをisoに保存。マウントして再生。というのもできるハズ。たしか。。
Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~
- 作者: 原悠
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/12/20
- メディア: 単行本(ソフトカバー)
実践 Rails -強力なWebアプリケーションをすばやく構築するテクニック
- 作者: Brad Ediger, 株式会社クイープ
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/10/27
- メディア: 大型本
作者:shunsuk
更新日:2009年1月7日 12時38分
[Ruby]irbとscript/consoleの超便利なTips
これは便利だと思います。
Wirble: colors
irbでシンタックスハイライト。
Wirbleをインストールします。
% sudo gem install wirble
~/.irbrcに下のコードを書きます。
require 'rubygems' require 'wirble' Wirble.init Wirble.colorize
出力がハイライトされます。ハッシュや配列は見やすいかも。
Wirble: history
irbは、コマンドの履歴が残ります。[↑]や[↓]、[control] + [p]や[control] + [n]で履歴を見ることができます。しかし、いったんirbを終了すると、履歴がクリアされてしまいます。
Wirbleをインストールしておくと、履歴がクリアされません。再度irbを起動すると、前回の履歴を使うことができます。
Wirble: auto-completion
Wirbleは自動補完機能も提供してくれます。。
>> un_momento = "Spanish for like, 'hold the phone!'" => "Spanish for like, 'hold the phone!'"
ここで、"un"とタイプして、[tab]キーを押します。
>> un un_momento undef unless untaint untrace_var until
これは便利。
Local methods
~/.irbrcに下のコードを書きます。
# Easily print methods local to an object's class class Object def local_methods (methods - Object.instance_methods).sort end end
そうすると、local_methodsメソッドが使えるようになります。
>> class BasketballPlayer >> attr_accessor :name >> ?> def champion? >> name == "Kevin Garnett" >> end >> end => nil >> kevin_garnett = BasketballPlayer.new => #<BasketballPlayer:0x11988f8> >> kevin_garnett.name = "Kevin Garnett" => "Kevin Garnett" >> kevin_garnett.champion? => true >> kevin_garnett.local_methods => ["champion?", "name", "name="]
.irbrcって、普通にRubyのコードが書けるんですね。
Aliases
irbでは、エイリアスを設定することができます。
alias q exit
"exit"の代わりに"q"とタイプすると、irbを終了します。Vimっぽい。
Create test fixtures for a third party service
例えば、FlickerのAPIを使うクライアントを作ったとき。
FlickrClient.search("Bruce Springsteen")
テストケースが書けませんよね。
そこで、script/consoleに入って、データをyamlに変換します。それを、ファイルにダンプ。
yaml = FlickrClient.search("Bruce Springsteen").to_yaml File.open("test/fixtures/flickr/springsteen.yml", "w") { |file| file << yaml }
test_helper.rbに下のコードを書いておきます。。
def load_yaml_fixture(path) absolute_path = File.join(RAILS_ROOT, "test", "fixtures", path) YAML::load_file absolute_path end
呼び出し。
load_yaml_fixture("springsteen.yml")
このパターンは、サードパーティのサービスにアクセスするクライアントのテストに使えます。
Print SQL to standard out
script/consoleでデバッグする時に、メソッドが生成するSQL文を表示することができます。
~/.irbrcに下のコードを書きます。
# Log to STDOUT if in Rails if ENV.include?('RAILS_ENV') && !Object.const_defined?('RAILS_DEFAULT_LOGGER') require 'logger' RAILS_DEFAULT_LOGGER = Logger.new(STDOUT) end
こんなカンジ。
>> videos = Video.limited(3) Video Load (0.4ms) SELECT * FROM `videos` LIMIT 3 => [#<Video id: 1, ...>]
これは便利。
pp
require 'pp'
イイカンジにフォーマットしてくれます。特にArrayやActiveRecordオブジェクトのときに便利。
>> pp videos [#<Video id: 1, youtube_id: "TcMklv40YMY", name: "Merb, Rubinius and the Engine Yard Stack", upload_time: nil, view_count: 6171, description: "Google Tech Talks\nOctober 20, 2008\n\nABSTRACT\n\nIn th...", created_at: "2008-12-21 00:32:33", updated_at: "2008-12-21 00:32:33">, #<Video id: 2, youtube_id: "JySmT-dGOj0", name: "MERB SPORTS Team-Vorstellung 2008", upload_time: nil, view_count: 495, description: "MERB SPORTS stellt sich für die VDRM-Saison 2008 v...", created_at: "2008-12-21 00:32:33", updated_at: "2008-12-21 00:32:33">, #<Video id: 3, youtube_id: "6bc-FNNWIsM", name: "Merb && Moi", upload_time: nil, view_count: 58, description: "Amusing yes?", created_at: "2008-12-21 00:32:33", updated_at: "2008-12-21 00:32:33">]
Wirble便利ですね。あと、.irbrcにRubyのコードを書けるというのが大発見。これは便利。
Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~
- 作者: 原悠
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/12/20
- メディア: 単行本(ソフトカバー)
実践 Rails -強力なWebアプリケーションをすばやく構築するテクニック
- 作者: Brad Ediger, 株式会社クイープ
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/10/27
- メディア: 大型本
作者:shunsuk
更新日:2009年1月6日 13時10分
[Web]Webサイトの右クリックを禁止する方法
onContextMenuをブロックするだけだと、IE7を防げなかった気がします。これだけ指定すれば、IE7もFirefoxも右クリックを禁止できるんですね。というメモ。
<body onContextMenu="return false;" onMouseDown="if ((event.button==2) || (event.button==3)) {alert('無駄無駄無駄無駄ァ!'); return false;}" onDragStart="return false;" onSelectStart="return false;">
個人的には、右クリック禁止には反対なんだけど。実装してくれという要望があったら仕方ないかなと思っています。気持ちが分からないでもないから。
マウスジェスチャー使ってる人は不便ですね。Windowsなら[BackSpace]や[Alt] + [←]を使うといいさ。Macなら[delete]や[command] + [←]を使うといいさ。
でも、右クリック禁止には反対。
作者:shunsuk
更新日:2009年1月5日 13時39分
[Mac][Ruby]Mac OS X Leopardでrefeの文字化けを解消する
refeは、ターミナル上でRubyのリファレンスマニュアルを読むことができるツールです。ターミナルで操作を完結できるので、かなり便利だということに気付きました。さっそく使ってみましたが、Leopardでは文字化けしてしまいます。
/Library/Ruby/Gems/1.8/gems/refe-0.8.0.3/lib/refe/searcher.rbを修正します。これは、最初から入っているrefeの場合で、MacPortsで入れた場合はパスが違います。
def adjust_encoding( str )
NKF.nkf('-Ew', str)
# if shift_jis_platform?
# NKF.nkf('-Es', str)
# else
# str
# end
end
UTF-8決め打ちです。
使ってみます。
% refe Integer to_s
Integer#to_s
--- to_s
--- to_s(base) ruby 1.7 feature
整数を 10 進文字列表現に変換します。
ruby 1.7 feature: 引数を指定すれば、それを基数とした文字列表
現に変換します。基数として 2 〜 36 以外を指定した場合は例外
ArgumentError が発生します。
p 10.to_s(2) # => "1010"
p 10.to_s(8) # => "12"
p 10.to_s(16) # => "a"
p 35.to_s(36) # => "z"
正確なスペルじゃなくても推測してくれるのが便利ですね。
作者:shunsuk
更新日:2009年1月4日 12時17分
