ラベル ruby の投稿を表示しています。 すべての投稿を表示
ラベル ruby の投稿を表示しています。 すべての投稿を表示

2008年5月24日土曜日

SMTP@Gmail

rubyからGmailを操作できるgmailerというライブラリが使えなくなった
Gmailがバージョンアップしたための模様

メールの自動送信ができなくなったので他の方法
セキュアなSMTPでGmailよりメール送信する
既にtlsmailと言うライブラリが公開されているのでrubygemsでインストールする
sudo gem install tlsmail

さらにそれをラップするメソッドを作った

require 'rubygems'
require 'tlsmail'
require 'time'

module Gmail
def Gmail.get_content(from_address, to_address, subject=nil, body=nil)
content = ""
content << "From: #{from_address}\n"
content << "To: #{to_address}\n"
content << "Subject: #{subject}\n"
content << "Date: #{Time.now.rfc2822}\n\n"
content << "#{body}\n"
return content
end

def Gmail.send(user, pass, from_address, to_address, subject=nil, body=nil)
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
Net::SMTP.start('smtp.gmail.com', 587, 'gmail.com', user, pass, :login) { |smtp|
smtp.send_message(get_content(from_address, to_address, subject, body), \
from_address, to_address)
}
end
end

if __FILE__ == $0
Gmail.send("Gmailのアカウント", "パスワード", "送信元アドレス", "送信先アドレス", "sub", "test")
end


デメリットは、httpでないため会社では使えないことくらいかな
gmailerは良かった

2008年4月7日月曜日

複利パワー

新生銀行の円定期預金は複利で0.8%くらい
あとで便利かと思いRubyで複利を算出するスクリプトを作成する

fuku.rb
puts "usage ruby #{$0} 元本 金利 年数"; exit 100 if ARGV.size != 3

puts "元本 #{ARGV[0]} 金利 #{ARGV[1]}% #{ARGV[2]}年"

base = ARGV[0].to_i
kinri = ARGV[1].to_f / 100.0
num = ARGV[2].to_i

k_sum = 1.0
1.upto(num) { |i|
k_sum *= (kinri + 1)
alt = base * k_sum
printf "%2d %8d\n", i, alt.to_i
}


元本100万円、金利0.8%、10年まで

script$ ruby fuku.rb 1000000 0.8 10
usage ruby fuku.rb 元本 金利 年数
元本 1000000 金利 0.8% 10年
1 1008000
2 1016064
3 1024192
4 1032386
5 1040645
6 1048970
7 1057362
8 1065820
9 1074347
10 1082942


元本100万円、金利10%、10年まで
script$ ruby fuku.rb 1000000 10 10
usage ruby fuku.rb 元本 金利 年数
元本 1000000 金利 10% 10年
1 1100000
2 1210000
3 1331000
4 1464100
5 1610510
6 1771561
7 1948717
8 2143588
9 2357947
10 2593742


やっぱ10%くらいのリターンが欲しいなぁ
ちなみに新生銀行は税引き後0.64%の金利だった
なんか今日は仕事する気分なんなかった。。。

2008年3月11日火曜日

モンテカルロでパイ


モンテカルロシュミレーションにより円周率(パイ)を算出するプログラム。
”まぐれ”という不確実性科学の権威が書いた本を読んでいて簡単に
円周率を出せるというのでやってみた。

適当な円に密接する四角形を描く。ダーツゲームのようにその四角内に矢をあてる。
円の内部に入った矢と四角形内の矢すべての比率が円周率となる。
なんでかはわかりそうだったが、考えてたら頭がいたくなった・・・

とりあえず検証ということでrubyのTKでリアルタイムに描写させようとしたらはまった。
乱数発生の精度が低かった模様。最初は0〜100で乱数生成したので。
その後、精度を0〜10000にしたら良い数値が得られた。
3.14に近づくには100万回くらい待たなければだめみたい。


require "tkclass"
require "tk"

OFFSET=10

$oval=0
$sque=0
$disp_hankei=100
$hankei=10000

module MonteCarlo
def MonteCarlo.plot(max_x=$hankei*2, max_y=$hankei*2)
x = rand(max_x+1)
y = rand(max_y+1)
[x, y]
end
end

label = TkLabel.new do
text("0")
pack()
end

$c = TkCanvas.new('width'=>($disp_hankei+OFFSET)*2, 'height'=>($disp_hankei+OFFSET)*2).pack

Oval.new($c,OFFSET+0,OFFSET+0,OFFSET+$disp_hankei*2,OFFSET+$disp_hankei*2)
Rectangle.new($c,OFFSET+0,OFFSET+0,OFFSET+$disp_hankei*2,OFFSET+$disp_hankei*2)

def plot
x2 = 2
bx, by = MonteCarlo.plot($hankei*2, $hankei*2)
x, y = bx, by

x = bx - $hankei
y = by - $hankei

bx = bx / 100
by = by / 100

if (x*x + y*y) < $hankei*$hankei
$oval += 1
dot = Oval.new($c,OFFSET+bx,OFFSET+by,OFFSET+bx, OFFSET+by, "outline" => "red", "fill" => "red")
else
dot = Oval.new($c,OFFSET+bx,OFFSET+by,OFFSET+bx, OFFSET+by)
end
$sque += 1
end

count=0
TkAfter.new(1, -1, proc do
count+=1
plot
pai = $oval.to_f/$sque.to_f * 4.0
label.text("#{count.to_s} #{pai.to_s}")
end).start

Tk.mainloop


リアルタイムで描写しないのであれば乱数を少数で生成して円でなく扇がたで考え
シュミレーションするとあっというまによい精度でできた。
$oval = 0; $sque = 1

def plot
x, y = rand, rand
$oval += 1 if (x*x + y*y) < 1.0
$sque += 1
end

1000000.times {
plot
}

pai = $oval.to_f/$sque.to_f * 4.0
puts "pai #{pai.to_s}"


出力
pai 3.14324485675514


正直この本は難解な箇所が多々ありまが、理解できるとおもろいです。

2008年2月13日水曜日

ネットワーク理論3

3万人にアクセスしスクリプトも順調に動作していましたが、
mixiに足あとのつけすぎと怒られました。

自分から30693人時点での結果です。

隔たり次数 0 人数 1
隔たり次数 1 人数 38
隔たり次数 2 人数 365
隔たり次数 3 人数 3716
隔たり次数 4 人数 26573

隔たり次数が2で365人というのは自分の友達は他人の友達という
ことで結構友人がかぶっているのではないかと思います。

この後の推移を見たかったのですがここで止めときます。
おそらくmixiもスモールワールドなんだと思いますが、
実証できなくて残念。

2008年2月12日火曜日

weather hack

天気予報で降水確率が40%以上だったら、傘忘れないでね〜メールを
携帯に送るスクリプトを作りました。

天気予報データからXMLでデータを取得する。
自分の住まいのエリアの1日分の降水確率で40%以上があれば
予報データを組み立て携帯へ送信する。

携帯へはgmailを利用。gmailerというrubyのライブラリが必要です。

後は、crontab or タスクリストへ朝自動で起動する用にしておくだけです。
rubyなのでサクッとできました。

require 'net/http'
require 'gmailer'
require 'rexml/document'

host="www.drk7.jp"
path="/weather/xml/14.xml"

user="gmailのID"
pass="gmailのパスワード"
cellphone="携帯のアドレス"

#降水確率の基準値 メール送るか送らないか
RAINFALL_RATE=40

resp = ""
Net::HTTP.version_1_2

Net::HTTP.start(host, 80) {|http|
response = http.get(path)
if response.code != "200"
raise HttpError, "Http Conection Error."
end
resp = response.body
}

send_flag=false

body = "傘!!\n"
body << "神奈川県東部\n"
doc = REXML::Document.new(resp)
doc.elements.each("./weatherforecast/pref/area/info") do |item|
if item.attributes["date"] == Time.now.strftime("%Y/%m/%d")
#and doc.elements.each("./weatherforecast/pref/area").attributes["id"] == "東部"
body << item.text("weather") + "\n"
body << "降水確率\n"
4.times do |i|
period = item.get_elements("./rainfallchance/period")[i].text
hour = item.get_elements("./rainfallchance/period")[i].attributes["hour"]
body << "#{hour} #{period}\n"
begin
send_flag = true if period.to_i >= RAINFALL_RATE
rescue
end
end
body << item.text("weather_detail") + "\n"
# 西部をスキップする
break
end
end

puts body

if send_flag
GMailer.connect(user, pass) do |g|
g.send(
:to => cellphone,
:subject => "weather hack",
:body => body)
end
end


メールのイメージ
傘!!
神奈川県東部
くもり時々雨
降水確率
00-06 --
06-12 60
12-18 50
18-24 30
北の風のちやや強く海上では後北の風強くくもり朝から昼過ぎ雨

2008年2月10日日曜日

FX@ターミナル


Click証券が提供するFXトレード用のWEB API自作クライアントが実際に
使えるようになりました。現在は成行約定、成行決済、IFO注文、レート取得、
建玉取得だけできます。Click証券のWebページからトレードするよりはすばやく
トレードできます。
Rubyのカーセスの勉強にもなりました。

2008年2月9日土曜日

ネットワーク理論

ネットワーク理論の本を読んでます。

新ネットワーク思考—世界のしくみを読み解く(LINKED: The New Science of Networks)

有名なのはケビン・ベーコンゲームというものでケビン・ベーコンと他のハリウッド俳優は
少なくとも2人の共演者で繋がっているという法則。これはハリウッドの世界だけでなく
世界中の人々もすくなくとも6人の友人で繋がっている。自分と福田総理、自分とアフリカの
誰かとも6人の友人を通じてその人にたどり着けるというもの。
これは6次の隔たりと呼ばれています。

そこで思ったのがmixiはどうなってるんだろう?何次の隔たり?
スクリプトを作って検証しようと思いました。

require 'rubygems'
require 'mechanize'

username = '<メールアドレス>'
password = '<パスワード>'

agent = WWW::Mechanize.new
page = agent.get('http://mixi.jp/')
form = page.forms[0]
form.fields.find {|f| f.name == 'email'}.value = username
form.fields.find {|f| f.name == 'password'}.value = password
form.fields.find {|f| f.name == 'next_url'}.value = '/home.pl'
page = agent.submit(form, form.buttons.first)

$list={}
h={}
h[:url] = 'http://mixi.jp/list_friend.pl'
h[:flag] = false
h[:depth] = 0
$list["mixiのid"] = h

def url()
res=nil
$list.each do |k,i|
if i[:flag] == false
i[:flag] = true
return k
end
end
nil
end

def set(id, url, depth)
if !$list.key?(id)
a={:url=>url,:depth=>depth,:flag=>false}
$list[id] = a
end
end

while (id = url()) != nil
#break if $list.size > 100

$list[id][:list] = []
depth = $list[id][:depth] + 1
diarylist = agent.get($list[id][:url])
diarylist.links.each do |link|
if link.href =~ /show_friend.pl\?id\=(\d+)/
friend_id = $1.to_s
url = "http://mixi.jp/" + link.href
$list[id][:list] << $1
set(friend_id, url, depth)
else
# puts "not mutch"
end
sleep 1
end
puts "size #{$list.size}"
end

result = {}

$list.each do |k,v|
depth = v[:depth]
if result.key?(depth)
result[depth] += 1
else
result[depth] = 1
end
size = v[:list].size if v[:list] != nil
puts "#{k} #{size} #{v[:flag]} #{depth}"
end

result.each do |k,v|
pust "隔たり #{k} 人数 #{v}"
end


結果はアクセスし過ぎで接続不可になってしまいました。
sleepの時間を調節しないとダメみたいです。

間隔を空けない連続的なページの遷移・更新を頻繁におこなわれていることが見
受けられましたので、一時的に操作を停止させていただきます。申し訳ございま
せんが、しばらくの間お待ちください。

2008年2月4日月曜日

SG アラブファンド

今日、ソシエテゼネラルのSG アラブファンドを購入したので、
基準価格を取得するスクリプトを作成しました。
これをcrontab(windows ならタスク)で自動起動させ結果を
gmailで飛ばすとかなり便利です。rubyではgmailerという
ライブラリがすでにあります。
私はこれで毎朝、携帯に全投資信託の基準価格を送信して
一喜一憂しております。

実行時はソースファイルをsjisで保存。
ruby sg.rb

ソース sg.rb
require 'uri'
require 'net/http'

$KCODE="s"


class HttpError < StandardError; end

class Sg

SG_URL = 'http://www.sgam.co.jp/html/kagaku01.htm'
attr_reader :day, :value, :diff

def initialize
@data = self.get(SG_URL)
self.parse
end


def get( url, query=nil )



target_uri = URI.parse( url )

resp_data=nil

path = target_uri.path

if query != nil

path = path + '?' + query

end



Net::HTTP.version_1_2

Net::HTTP.start(target_uri.host, 80) {|http|
req = Net::HTTP::Get.new(path)
response = http.request(req)

if response.code != "200"

raise HttpError, "Http Conection Error."

end
resp_data = response.body
}

if resp_data == nil

raise HttpError, "Http Receive Error."

end

resp_data

end

def parse

regex = %r{

<!--Date-->
¥s+([\d\/]+)
¥s+現在</font></p>
¥s+</td>
¥s+</tr>
¥s+</table>

}xs
# 日付を取得
@day = $1 if @data =‾ regex

regex = %r{
<tr>
¥s+<td>¥s<a¥shref=141005_arab_m.html¥starget=¥'_top¥'>SG¥sアラブ株式ファンド</a>¥s</td>
¥s+<td¥salign=center¥snowrap>¥s([¥d¥,]+)¥s</td>
¥s+<td¥salign=center¥snowrap>¥s([¥d¥-¥+]+)¥s</td>
¥s+<td¥salign=center¥snowrap>¥s[¥d¥,]+¥s</td>
¥s+</tr>
}xs

# 日付を取得
if @data =~ regex
@value = $1; @diff = $2
else
raise "ERROR 解析失敗"
end

end

end

if __FILE__ == $0
sg = Sg.new
puts "SG ARAB #{sg.day} #{sg.value} #{sg.diff}"

end


実行結果
$ ruby sg.rb
SG ARAB 2008/2/4 10,029 25

2008年2月2日土曜日

ターミナルでFXトレード


ターミナルからClick証券の発注を行うプログラムを作成しました。
画像はgnome-terminalをキャプチャーしたものです。
テスト中でレートはClick証券のLocal APIサーバより取得してます。

RubyのCursesを使って画面を制御。数秒間隔で外為レートと自分の
建玉一覧を取得します。発注はコマンドで行えるように実装しました。
下のようなイメージでプライスオーダー(po)、買い(logn)の意味です。
rateはオプションで指定可。
> po long [rate]

通貨指定は環境変数のような扱いにしてます。set PAIR=USDJPYで変更できる
ようにしたい。まだ、実装はできてないですが。
もっと簡単に取引出来るようにしたい。リストで注文の候補をだしリスト番号の1を
コマンド入力すると発注の要求をだす感じで。。。

RubyのCursesは始めて使ってみたのですが結構苦戦しました。カーソルの
制御の仕方にてこずりました。
GUIがいろいろとある中、あえてカーセスを使ってみました。少し新鮮かも。

2008年1月16日水曜日

rubyでexcelのデータをブロックでもらう

windowsで結構使えます。
rubyの配列感覚でexcelのデータが扱える。

早速google-code-prettifyでソースコードを表示します。
require 'win32ole'

module Excel
def Excel.each(file)
excel = WIN32OLE.new('Excel.Application')
excel.displayAlerts = false
book = excel.Workbooks.Open(File.expand_path(file))
begin
book.Worksheets.each do |sheet|
sheet.UsedRange.Rows.each do |row|
record = []
row.Columns.each do |cell|
record << cell.Value
rescue e
p e.backtrace
STDERR.puts e.message
ensure
book.Close
excel.Quit
end
end
end

if $0 == __File__
Excel.each(ARGV[0]){ |row|
p row
}
end

投資信託の基準価格をスクレイピング

スクレイピングとはHttp/XMLが整っていないWeb環境で必要なデータを取得するための
技術を指す。要するに強引に必要なデータだけをHTMLから取得すること。最近知った言葉。

新生銀行で取り扱っている投資信託の基準価格をスクレイピングにより取得する
rubyにより実装してみる。対象のHTMLは下記のURI

http://qweb6.qhit.net/i_users/shinseibank/qsearch.exe?F=users/shinseibank/fundlist

1. httpクラスのgetメソッドにてHTMLを取得する
2. HTMLをパーシングするのは面倒なので、正規表現で基準価格とのデータのみゲット。
3. 標準出力へ投信信託名、販売会社、基準価格を出力する

新生銀行のWebページがSJISなのでソースコードもSJISとした。
ubuntu(UTF-8)の端末を使用しているので、エンコードも付け加えた。

WindowsもしくはSJIS環境であれば require 'kconv'、.toutf8は必要ない

ソース Shinsei.rb

#!/usr/local/bin/ruby -Ks
require 'net/http'

module InvestmentTrust
class HttpError < StandardError; end
def InvestmentTrust.page_get(host, path)
require 'net/http'
Net::HTTP.version_1_2
res = nil
req = Net::HTTP::Get.new(path)
Net::HTTP.start(host) {|http|
res = http.request(req)
if res.code.to_i != 200
raise HttpError, "HTTP Status Error [#{res.code}]"
end
}
res.body
end
end

class Shinsei
SHINSEI_URL = 'qweb6.qhit.net'
SHINSEI_PATH = '/i_users/shinseibank/qsearch.exe?F=users/shinseibank/fundlist'
REGEX = %r{
(\w+)</A></TD>
¥s+<TD¥sclass="s1">(\w+)</TD>
¥s+<TD¥sclass="s2"¥salign="center">(¥d+/¥d+)</TD>
¥s+<TD¥sclass="s2"¥salign="right"¥snowrap>(¥d+)¥s円<BR><span¥sclass="f[p|m]">([¥+¥-]¥d+)</span>¥s円</TD>
¥s+<TD¥sclass="s2"¥salign="right"¥snowrap>([¥d¥.]+)<br>億円</TD>
}xs

def get()
require 'kconv'
data = InvestmentTrust.page_get(SHINSEI_URL, SHINSEI_PATH)
data.scan(REGEX).each do |m|
puts "#{m.shift} 運用会社 #{m.shift}".toutf8
puts " 日付 #{m.shift} 基準価格 #{m.shift}円 #{m.shift}円 総資産#{m.shift}億円".toutf8
end
end
end

if __FILE__ == $0
s = Shinsei.new
s.get
end


出力

$ ruby -Ks shinsei.rb
インデックスファンド225 運用会社 日興アセット
日付 01/15 基準価格 3689円 -36円 総資産1954.07億円
フィデリティ・日本成長株・ファンド 運用会社 フィデリティ
日付 01/15 基準価格 14777円 -404円 総資産3581.43億円
フィデリティ・日本配当成長株・ファンド(分配重視型) 運用会社 フィデリティ
日付 01/15 基準価格 8364円 -139円 総資産1526.11億円
ダイワ・バリュー株・オープン(愛称:底力) 運用会社 大和投信
日付 01/15 基準価格 10130円 -281円 総資産598.90億円
クレディ・スイス・ジャパン・グロース・ファンド 運用会社 クレディスイス
日付 01/15 基準価格 8616円 -178円 総資産26.10億円
インベスコ店頭・成長株オープン 運用会社 インベスコ
日付 01/15 基準価格 20969円 -1161円 総資産111.61億円
225インデックスファンド 運用会社 T&D
日付 01/15 基準価格 3087円 -31円 総資産55.55億円
MSCIインデックス・セレクト・ファンド コクサイ・ポートフォリオ 運用会社 モルガンスタンレー
日付 01/15 基準価格 13596円 -235円 総資産52.34億円
グローバル・ハイインカム・ストック・ファンド 運用会社 野村アセット
日付 01/15 基準価格 10303円 -189円 総資産2618.37億円
アメリカン・ドリーム・ファンド 運用会社 新生インベストメント
日付 01/15 基準価格 8026円 -201円 総資産31.15億円
JPM・BRICS5・ファンド(愛称:ブリックス・ファイブ) 運用会社 JPモルガン
日付 01/15 基準価格 20697円 -465円 総資産1498.35億円
新生・フラトンVPICファンド 運用会社 新生インベストメント
日付 01/15 基準価格 9143円 -165円 総資産169.01億円
JFアジア株・アクティブ・オープン 運用会社 JPモルガン
日付 01/15 基準価格 25457円 -1289円 総資産348.56億円
HSBCチャイナオープン 運用会社 HSBC
日付 01/15 基準価格 45303円 -2160円 総資産668.27億円
HSBCインドオープン 運用会社 HSBC
日付 01/15 基準価格 34359円 -717円 総資産1834.77億円
HSBCブラジルオープン 運用会社 HSBC
日付 01/15 基準価格 15469円 -446円 総資産1298.66億円
SG ロシア東欧株ファンド 運用会社 ソシエテジェネラル
日付 01/15 基準価格 15875円 -394円 総資産148.11億円
新生・UTIインドファンド 運用会社 新生インベストメント
日付 01/15 基準価格 13570円 -212円 総資産575.41億円
MHAM物価連動国債ファンド 運用会社 みずほ
日付 01/15 基準価格 10357円 +1円 総資産95.70億円
グローバル・ソブリン・オープン(毎月決算型) 運用会社 国際投信
日付 01/15 基準価格 7799円 -69円 総資産55051.91億円
世界のサイフ 運用会社 日興アセット
日付 01/15 基準価格 9936円 -120円 総資産1262.69億円
LM・オーストラリア毎月分配型ファンド 運用会社 レッグ・メイソン
日付 01/15 基準価格 11057円 -98円 総資産1082.67億円
ガリレオ 運用会社 ゴールドマン
日付 01/15 基準価格 9554円 +2円 総資産219.53億円
エマージング・カレンシー・債券ファンド(毎月分配型) 運用会社 新生インベストメント
日付 01/15 基準価格 9950円 -52円 総資産1271.50億円
ニッセイ/パトナム・インカムオープン 運用会社 ニッセイ
日付 01/15 基準価格 6877円 -170円 総資産4394.38億円
エマージング・ソブリン・オープン(毎月決算型) 運用会社 国際投信
日付 01/15 基準価格 10223円 -158円 総資産752.94億円
高利回り社債オープン(毎月分配型) 運用会社 野村アセット
日付 01/15 基準価格 8988円 -129円 総資産423.11億円
高利回り社債オープン・為替ヘッジ(毎月分配型) 運用会社 野村アセット
日付 01/15 基準価格 9051円 +8円 総資産1.25億円
ドイチェ・ヨーロッパインカムオープン 運用会社 ドイチェ
日付 01/15 基準価格 13263円 -124円 総資産179.51億円
新生・世界分散ファンド(複利効果重視型) 運用会社 新生インベストメント
日付 01/15 基準価格 9492円 -98円 総資産12.04億円
新生・世界分散ファンド(分配重視型) 運用会社 新生インベストメント
日付 01/15 基準価格 9537円 -99円 総資産5.45億円
新生・4分散ファンド 運用会社 中央三井AM
日付 01/15 基準価格 9206円 -108円 総資産12.38億円
世界の財産3分法ファンド(不動産・債券・株式)毎月分配型 運用会社 日興アセット
日付 01/15 基準価格 9686円 -225円 総資産1524.72億円
フィデリティ・バランス・ファンド 運用会社 フィデリティ
日付 01/15 基準価格 13287円 -196円 総資産231.83億円
ドイチェ・ライフ・プラン30 運用会社 ドイチェ
日付 01/15 基準価格 10910円 -79円 総資産123.02億円
ドイチェ・ライフ・プラン50 運用会社 ドイチェ
日付 01/15 基準価格 10650円 -130円 総資産94.28億円
ドイチェ・ライフ・プラン70 運用会社 ドイチェ
日付 01/15 基準価格 10360円 -154円 総資産19.03億円
JPMワールド・CB・オープン 運用会社 JPモルガン
日付 01/15 基準価格 9900円 -31円 総資産251.59億円
ラサール・グローバルREITファンド(毎月分配型) 運用会社 日興アセット
日付 01/15 基準価格 11783円 -138円 総資産253.04億円
フィデリティ・USリート・ファンドA(為替ヘッジあり) 運用会社 フィデリティ
日付 01/15 基準価格 10246円 -76円 総資産5.06億円
フィデリティ・USリート・ファンドB(為替ヘッジなし) 運用会社 フィデリティ
日付 01/15 基準価格 11526円 -316円 総資産24.72億円
REITオープン 運用会社 大和投信
日付 01/15 基準価格 13184円 -462円 総資産126.29億円
日本トレンド・セレクト ハイパー・ウェイブ 運用会社 日興アセット
日付 01/15 基準価格 2541円 -70円 総資産149.76億円
日本トレンド・セレクト リバース・トレンド・オープン 運用会社 日興アセット
日付 01/15 基準価格 11172円 +153円 総資産8.30億円
日本トレンド・セレクト 日本トレンド・マネーポートフォリオ 運用会社 日興アセット
日付 01/15 基準価格 10042円 +1円 総資産15.35億円
日本債券ベア 運用会社 T&D
日付 01/15 基準価格 801円 +2円 総資産29.27億円
ゴールドマン・サックス日本株式マーケット・ニュートラル・ファンド(愛称:GSジャパン・ニュートラル) 運用会社 ゴールドマン
日付 01/15 基準価格 10744円 +7円 総資産131.34億円
ゴールドマン・サックス米国株式マーケット・ニュートラル・ファンド(愛称:GS US・ニュートラル) 運用会社 ゴールドマン
日付 01/15 基準価格 8427円 -67円 総資産16.65億円


ちゃんとすべてのデータが取得できたかは?です

2008年1月12日土曜日

ruby mechanizeライブラリをインストール

ブラウザ感覚でwebへアクセスできるもの。関連するライブラリも一緒にいれる必要がある
ubuntu7.04のときはbuild-essentialはインストールしなかった。今回はubuntu7.10なので
必要みたい
$ sudo apt-get install build-essential
途中インストールCDを挿入する必要がある。ubuntu7.10だから!?

$ sudo gem install hpricot
$ sudo gem install hpricot
Select which gem to install for your platform (i486-linux)
1. hpricot 0.6 (mswin32)
2. hpricot 0.6 (jruby)
3. hpricot 0.6 (ruby)
4. hpricot 0.6 (jruby)
5. hpricot 0.6 (mswin32)
6. hpricot 0.6 (ruby)
7. Skip this gem
8. Cancel installation
> 3
Building native extensions. This could take a while...
Successfully installed hpricot-0.6
Installing ri documentation for hpricot-0.6...
Installing RDoc documentation for hpricot-0.6...


$ sudo gem install mechanize
Need to update 12 gems from http://gems.rubyforge.org
............
complete
Install required dependency hoe? [Yn] y
Install required dependency rubyforge? [Yn] y
Install required dependency rake? [Yn] y
Successfully installed mechanize-0.6.11
Successfully installed hoe-1.4.0
Successfully installed rubyforge-0.4.4
Successfully installed rake-0.8.1
Installing ri documentation for mechanize-0.6.11...
Installing ri documentation for hoe-1.4.0...
Installing ri documentation for rubyforge-0.4.4...
Installing ri documentation for rake-0.8.1...
Installing RDoc documentation for mechanize-0.6.11...
Installing RDoc documentation for hoe-1.4.0...
Installing RDoc documentation for rubyforge-0.4.4...
Installing RDoc documentation for rake-0.8.1...

※ 他に確かruby-devが入っている必要がある

干し芋のリスト