utahta

 

株価やその他情報を取得するRubyライブラリJpStockをつくってみた。

ひととおり動いてることは確認済だけども、とりあえずアルファ版ぐらいの感じです。
Yahooファイナンスからデータを引っ張ってきてます。
日本株おんりー。

インストールと使い方は、GitHubのREADMEにチョロっと書いてあるけど、大体以下のような感じ。
興味ある方はみてみてください。

gemでインストール。依存ライブラリのNokogiriが一緒にインストールされる。

$ gem install jpstock

いろいろirbで実行してみる。
まずはrequire。

> require 'jpstock'

現在の株価の取得。:codeに証券コードを渡してあげる。:code=>['4689','3632']のように配列を渡すことで複数件の取得も可能。
結果は証券コードをキーにしたハッシュが返る。

> JpStock.price(:code=>'4689')
 => {"4689"=>#<JpStock::PriceData:0x8b723a4 @date=#<Date: 2012-03-25 (4912023/2,0,2299161)>, @open=26870, @high=27160, @low=26860, @close=26950, @volume=119741>}

過去の株価の取得の仕方。

> JpStock.historical_prices(:code=>'4689', :start_date=>'2012/3/1', :end_date=>'2012/3/6')
 => {"4689"=>[#<JpStock::PriceData:0x907d0ec @date=#<Date: 2012-03-06 (4911985/2,0,2299161)>, @open=26920, @high=27200, @low=26610, @close=26920, @volume=136806>, #<JpStock::PriceData:0x9077228 @date=#<Date: 2012-03-05 (4911983/2,0,2299161)>, @open=26930, @high=27030, @low=26520, @close=26910, @volume=140058>, #<JpStock::PriceData:0x9074460 @date=#<Date: 2012-03-02 (4911977/2,0,2299161)>, @open=26160, @high=27080, @low=26080, @close=26940, @volume=256200>, #<JpStock::PriceData:0x905de40 @date=#<Date: 2012-03-01 (4911975/2,0,2299161)>, @open=25890, @high=25900, @low=25430, @close=25570, @volume=75329>]}

個別銘柄の詳細の取得。
株価や時価総額やPERやPBRやそのへんが取れる。

> JpStock.quote(:code=>'4689')
 => {"4689"=>#<JpStock::QuoteData:0x910c300 @company_name="ヤフー(株) ", @close=26950, @prev_close=27130, @open=26870, @high=27160, @low=26860, @market_cap=1568038, @shares_issued=58183216, @dividend_yield=1.18, @dividend_one=318.0, @per=16.95, @pbr=3.8, @eps=1589.53, @bps=7085.39, @price_min=26950, @round_lot=1, @years_high=34600, @years_low=21910>}
3月 042012
 

ずいぶん前にうちのMacBookProさんが頻繁にカーネルパニックを起こすって嘆きを書いたけども、ようやくその不具合が解消された。

どうやら基盤からの問題のようで、ちょっと前にビデオカードアップデートがあったけど、それで直らなかった人はもはやアップルストアに持っていくしかないみたい。

対象の可能性のある機種は、2010年の4月〜2011年の2月の間に製造されたMacBook Pro 15-inchだということで、その機種なら購入から2年まで無償で修理をしてくれる模様。

2010年の4月に購入した人は、そろそろ保証が切れて修理に4万ぐらいかかるようになっちゃうと思うので、疑わしい人は一度見てもらったらいいとおもう。

参考:MacBook Pro (15-inch, Mid 2010):断続的に画面が黒くなったり映像が中断する

 

失業保険についてちょっと勘違いしてた。

3ヶ月ぶん給付されるって聞いたから、てっきり認定日1回につき1ヶ月ぶん給付されるもんだと思ってたんですよね。

思い込みいくない(・A・)!!

まぁ正しくは、失業保険の認定日とは?ってサイトに載ってるけれども。

ここらへん説明された記憶ないんだけどなー。

1回目の給付額みて少なっ!って思って、調べたらこんなんでした。

 

気づけば2月。

昨年のいつ頃からか株で生計をたてる感じでやっているのだけども、ここ3ヶ月よーやく安定して毎日いくらか取れるようになってきた。

けど、会社員時代の給料と比べると全然少ないです。(´・ω・`)

死なないことが第一なんで最悪いいんですけど、出来ればもうちょっと取りたい。

ということで、今年の目標は、2つ!

まず、死なない!(いろんな意味で)
そして、せめて平均サラリーマンぐらいの月収を。

まぁぼちぼちやっていこう。

 

ももクロのUstreamを見逃さないために書いたust_noticeが、いまのところ順調に機能していて自己満足に浸っているわけなんですが、さくらレンタルサーバの制約で監視のタイミングが2分間隔になってしまっていて、それが心のどこかで引っかかっていました。

このままだと月々500円を払う生活からも抜け出せないし、なんかウマイ方法はないものかと思ってたら、ありましたよその方法が。
ていうか、忘れてましたよdotcloudの存在を。

こういうときにも使えたんですね、こやつ。
ということで、dotcloudに設置してみましたっていうのとそのメモ。
使い方すっかり忘れてたし。

dotcloudのインストール方法とかは端折ります。

まずdotcloudにプロジェクトをつくって

$ dotcloud create ustnotice

ust_noticeをクローンします。

$ git clone git://github.com/utahta/ust_notice.git

クローンしたust_noticeに移動して、設定ファイルをいじくり、commitします

$ cd ust_notice
$ vi config.yml
ユーストAPIとかgmailのアカウントとか
$ git add -A
$ git commit -m 'update'

dotcloudにうpします。

$ dotcloud push ustnotice .

dotcloudに繋いで、cronの設定をします。

$ dotcloud ssh ustnotice.www
$ crontab -e
PATH=/usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud/bin:/usr/local/rvm/gems/ruby-1.9.2-p136@global/bin:/usr/local/rvm/rubies/ruby-1.9.2-p136/bin:/usr/local/rvm/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-sun/bin
GEM_HOME=/usr/local/rvm/gems/ruby-1.9.2-p136@dotcloud
# m h  dom mon dow   command
* * * * * ruby /home/dotcloud/current/ust_notice.rb

こんなの無料で出来ちゃっていいんですかね。
ありがたいです。

 

あけましておめでとうございます。

元旦早々からUstreamの配信開始のお知らせツールをつくってました。
ニコニコ生放送だと配信開始をメールでお知らせしてくれる機能が無料であるんですけど、Ustreamの場合、有料なんですよね。
お金を払って配信開始をお知らせしてもらうのもバカらしいから、いままで入ってなかったんですよ。
けど、去年の暮れにももクロが、年末だよ!全員集合配信を行ってたのに、全然気づかなくて。
アーカイブが残ってるかと思ったらそれもなくて。
結局、誰かがYouTubeにUPしてくれたので見れましたけど、もし見れてなかったら残念な気持ちで年越しをすることになってたわけで。
なので、もうそんなことがないように、自分でつくってみました。

それがこちらのust_notice

自分は、さくらレンタルサーバに置きました。
移動するかもしれないのでアレですけど、とりあえず。

さくらレンタルサーバってcronの設定で1分ごとって出来ないんですね。
知らなかったです。
仕方ないので2分おきにしました。
デーモンを走らせるのも規約的にダメみたいで。まぁ仕方ないんですけど。

一応、複数のチャンネルをチェックできるようにしましたけど、UstreamAPIの制限で1日5000回までしか状態を取得できないので、あんまり多くのチャンネルは監視できません。
メール宛先も複数にしようかなと思いましたが、自分で使うことがなさそうなので、しませんでした。

サーバを持ってないと使えないツールですけど、あれば意外と便利だと思います。

 

ユニクロのヒートテックタイツを買ってみました。

要はモモヒキなんですけど、コレがめちゃくちゃ暖かい。
最近、足元が寒くてたまらなかったので買って良かったです。
机が窓側にあるせいか、ジーパンだけだとスースーして気になってたんですよね。

合わせてスリッパも買いました。

うちフローリングのせいか、靴下はいてても床冷たくて寒いんですよ。
でもコレのおかげで、まったく寒くなくなりましたw

ユニクロって一昔前はダサいイメージでしたけど、いまやスタイリッシュですし、機能性もそこそこで、なにより安いw
ほんとここ超えるのって並大抵じゃないですね。

いやほんとすごいわ。
ありがとう、ユニクロ。

 

WordPressからはてなダイアリーに移行しようと思って軽く試してみたんだけど、いやこれめんどいわw

はてなダイアリーがWordPressのエクスポートファイルをインポートできないことは知ってたんだけど、MovableTypeの形式だったらいけるっぽかったから、1回MovableTypeに変換してやろうと思って、MovableTypeをインストールしてWordPressのエクスポートファイルをインポートしてみたけど、記事のカテゴリ設定がなくなったり、インポートに失敗したりと散々。

WordPress → MovableType → はてなダイアリーの手順ならいけると思ったんだけどなぁ。

もうめんどくなったからしばらくこのままでいいですわ。

他の方法考えます。

 

いまWordPressでブログ的なメモをつけてるけど、さくらのレンタルサーバ使ってるんだよね。

スタンダードプランで月500円。

いままでは一応仕事的なことしてたし毎月それなりにお金貰ってたからまぁ良かったんだけど、
ここんとこまたニートになってフラフラしてるものだから、月500円すらケチりたくなってきたのよね。

1年で6000円だしなー。これはけっこうでかいだろ。

移動するとしたら、はてなダイアリーあたりかなぁ。

いま株の収支とか反省をはてなダイアリーでつけてるんだけど、けっこー使い勝手がいいのよね。

ライブドアとかアメーバとかよりは全然いい。

ただ、はてなダイアリーの方が、WordPress形式のデータをインポートできないっぽくて、かなりダルー。

1回MovableType形式に変換しないといけない。

リンクズレとかも激しく起こりそうだしなー。

しかし背に腹は代えられない。500円の節約のためだ。

そのうちなんとかしよう。

やるなら次あたりの休みの日だなー。

 

モルフォって会社のサイトで面白そうな問題を見つけたのでやってみた。

問題はこちら↓

非負整数Nの階乗の桁数及び末尾に続く0の数を算出するプログラムを書きなさい。
プログラムはC言語で記述するものとし、標準入力から非負整数N(0≤N≤10000000)を受けとり、標準出力に桁数及び末尾の0の数をスペース区切りで出力するようにしてください。

ヒント
 入力	 出力
 0	 1 0
 1	 1 0
 2	 1 0
 5	 3 1
 10	 7 2
 20	 19 4
 50	 65 12
 9959677	 65374834 2489916

多倍長整数の表現と1000万の階乗の計算をどうにかしろって話っぽい。

ちなみにコレができたら選考過程で優遇されるらしい。
勘違いされたら嫌だから書くけど、別にここで働きたいわけじゃないからね。
むしろ翌日の銘柄チェックをしててたまたま見つけただけ。
業績下方修正してたうえに信用銘柄じゃないから監視すらしないレヴェルだったけど。

なにも考えずにテキトーに組んでみたら、重くて話にならなかったわ( ´ー`)y-~~
テキトーといいつつ組むの2時間ぐらいかかったのに。

$ time ./a.out 5000
16326 1249

real	0m4.211s
user	0m3.348s
sys	0m0.078s

5000の階乗で4秒って。
1バイト1桁で表現しちゃまずかった予感。

働きたくないって書いたけど、むしろ働けなかったw
直そうと思ったけど、めんどくさくなったし明日の銘柄チェックもしないといけないし、ニートはそんなにヒマじゃねーんだよっつって終了。

ダメコード