三流プログラマの雑記

プログラム、ゲーム、株、その他雑記など書いてます。

ふるさと納税のススメ

仰々しいタイトルですが、ようは節税しようぜ!ってことです。

あれ?このブログのタイトルなんだったけー、、、
書くネタが最近ないんです|||orz|||
Rubyを最近触らないのでうずうずしてる感じですが、Windowsとの相性の悪さにグヌヌ、、、

とまぁ、愚痴は置いといて、ふるさと納税をすると何が起きるのか。

一番デカいのは税金が控除されるというところ!

仕組みとしては、年収によって控除できる額は決められていますが、、、

色々な地方の特産品を貰いながら、所得税が戻ってくる+翌年の住民税が減るという感じ!

例えば、一人暮らしで年収400万円の場合、寄付金は43,000円まで行うことが出来ます。
そして、43,000円寄付を行った場合、41,000円が所得税+住民税が減るで返ってくるのです!?
しかもそれに加えて、地方の特産品が貰えるので、至れり尽くせりですね!
※ 経験からですが、所得税は銀行振り込み、住民税は6月以降12月までの月々の住民税から、上記減る金額を期間で割った金額が引かれる感じです。
去年初めてのふるさと納税だったのでびくびくしながら、書類を作りましたが、、、1時間も掛からず作成出来ました!
今年は試しにワンストップ特例制度を用いてふるさと納税する予定です!

今年は、豚肉4.5㎏とビール1箱を頂きました(^^)ノ

そして、、、今年のふるさと納税に使った金額は、なんと、、、565円!!
※ 寄付金は22,000円相当実施してます。

これを可能にしているのが、ふるさとチョイス!
ここのふるさと納税はクレジット支払いに対応しており、通す会社はYahooを用いています。
そして、Yahooのクレジット支払い時Tポイントが使えるのです!!
豚肉4.5㎏の時は今まで使い道のなかったTポイント1万ポイント使用
ビールの時はYahooカードを作った時に貰える3000ポイント、Tモールを経由してもらえる2000ポイント、お財布.comを経由してVIEWカードを作ると6,000ポイントもらえるので、このポイントをTポイントに交換して合計すると、、、
11,000ポイント!あとは普段使いの端数を引いて565円のみクレジットで支払いました。

Yahooカードを使うと100円ごとにTポイントが1ポイント貰えるので年間100万使ったとすると、、、10,000ポイント
毎年1万円は普段使った金額から節税に充てることが出来るようになるのでこれはええ感じじゃないですか!?

クレジットカードって使いすぎて怖い、、、という人も多いかと思います。
そういうとき、個人的にはCRECOを使ってみることをお勧めします!
この日にいくら使ったが一目でわかるので、財布にお金を入れて管理するより管理できますよ!
※ それでも使えるだけ使ってしまうぐらい意志が弱いんじゃボケェって人には向かないかもしれないです、、、
ただそういう人の場合、少額引き出しては使って、財布に金がなくなると銀行に行ってまた少額引き出してみたいなことをしてそうなイメージ(失礼ですみません)がなくもないので、小手先の節税ではなく根本的に見直し、改善をした方がいいかもしれないです。。。

今年は源泉徴収の金額を見て、追加で寄付するか検討する感じです。
ふるさと納税する場合は、、、12月31日までに申し込んだ方が良いですよ(><)

と、無駄知識をダラダラ書いてみた。
お役に立てば幸いです(^^;)

2016年度の株収益

たまに更新しないと、株で破産したんじゃないかという話になりかねないので取りあえず更新、破産はしてないですよ?

2016年度上期も終わったので取りあえず収益を計算してみた。

証券会社 源泉徴収
松井証券 12,926
マネックス証券 145,014
楽天証券 107,725
265,665

源泉徴収で引かれると(´・ω・`)ってなるけど、
取りあえず今年もプラス推移で終われそうです。
100万から初めて年間20%前後のプラスを目指してますが、今年もそういう意味では乗り切りました。
IPOで得たプラスは、そのまま証券口座を渡って株になりました(^^;)

今年一番はLINEのIPOに当たって、大幅プラスになったのが良かったのかと、
あとは、優待を貰ったり、優待貰った株を売ったりしながらコツコツプラスを積み重ねてました。

どっかで長期期間持ってうんぬんかんぬんと書いてたけども、、、
資金増やさないと、年間配当を増やすことが出来ないというジレンマを抱えてますorz

それでも、現在の保有している株は約200万ちょいと昔に比べると増えた感じです。
利益重視であれば、一点集中なんだろうけど、多分自分の肌に合わないというのもあって、
優待ベースで考えつつ、健全な運営と配当を貰える会社を日々探しながらやりくりしてます。
この場合、大勝することがないのが悲しいところ。

また、手持ちの株を売り買いせずに、放置し続ければ配当は年間で58,800円ぐらいで年利2.92%とそれなりの数字になりました!
でも月換算で5,000円程度、、、これじゃお腹は膨れないのは実情(TT)
ただまぁ、、、引き出すほどお金に困ってないので、配当金は再投資しながらゆっくり資産を形成していけたらいいなと思ってます。
年20万ぐらいのプラスを今後も続けられるといいかな。。。
悩ましいのは特定口座の源泉徴収ありにするか、なしにするか、、、IPO口座は基本的に源泉徴収ありで申し込んでるものの、雑所得で20万ってそう簡単には超えないことを考えると、、、取りあえず一部証券口座は特定口座の源泉徴収なしで運用してみようかと思います。

目先では10、11月の優待はスルー方向(多分)で、12月の内外トランスラインと岡部の優待待ちだったりします。
いい株があればちょっと買おうか悩ましいところですが、日経平均考えると手が出しにくい。。。
去年はアサヒやキリンのビールGET!とやってましたが、、、今年は別にいいかーなんて思ってます。

ということで、近状的にはほのぼのと運用を続けてる感じです(><)

【Ruby】 楽天証券スクレイピングのGem作成中、、、

楽天証券スクレイピング、、、
Gemの構成をガリゴリやってみた。
必要な処理は各クラスにまとめられたかと。

github.com


ここまで作ったので、サクッと株の詳細情報の取得処理を追加しようかなと
クラス分離したので、処理追加自体はかなり容易な、、、はず、、、

問題は、このGem勉強がてら作成してるけど、使う予定は特にないし、どこを目指しているんだろう、、、(汗
とりあえず保有株の詳細情報の取得まで出来るようにするけど、売買部分までAPI化までするかは悩む。

楽天証券の場合、スクレイピング時、SESSIONIDがURLに入っていたり、クエリパラメータ一部おかしくなるとエラー吐いたりするので、
スクレイピングしてURLを取得 => ベースURLに取得したURLを付加 => 再度スクレイピング、みたいな感じのことをしないといけなかったりする。

最終的に、複数の証券会社で保有している株一覧をまとめて表示したいというのがあったんだけど、
試しに松井証券に登録して、サイトを見てみたら、情報の粒度に違いがあって、作っても実用的ではない感じになりそう。

松井証券の一番困ってしまうのは、詳細ページが外部サイトになっているという、、、

なので、いったんは楽天証券スクレイピング用のGem作って勉強は終了しようかと思う。

mechanizeを用いた、スクレイピングの検証

スクレイピングするなら、「mechanize」を使用するといいよ!

って記事を見かけたので、試しに使ってみることにした。
でも、mechanize だけだとどうにも、スクレイピングしにくい、、、

nokogiri と組み合わせたらいいんじゃない?

ってことで、二つ組み合わせてのスクレイピングを行うことにした。
あとは勉強がてらにGemを作ってみた。
railsの開発とかはやったことあるけど、Gem作成の経験はなかったしね。

bundlerでGemのひな形が作れるなんて、、、知らなかった。
しかもコマンドは以下の一文、チョー簡単!

bundle gem hoge -t
  • t はオプションでテストケースを作成するっていうものらしい。

テストはrspecが採用されてた。
Gitをインストールしておかないとbundleがこけるので注意(実際こけて原因探すのに時間が掛かった、、、)

github.com

題材は楽天証券スクレイピング

取りあえずやりたいこと

  1. 認証のあるページのスクレイピング
  2. 「国内株の保有銘柄」の一覧取得
  3. 特定口座、NISA口座等で情報を別々に取得(普通口座で買うことないのでサンプルが無い!?)

ってな感じを実現してみることに

gemのそれぞれの役割としては、

「mechanize」

  • ログイン処理を行いログイン後のページ情報を取得

「nokogiri」


ってな感じかな?ログイン処理は以下で実装出来る。
ちまちま書かないといけないのかと思うと少し億劫。

    html = agent.get(@url)
    response = html.form_with(name: 'loginform') do |form|
      form.field_with(name: 'loginid').value = @user_id
      form.field_with(name: 'passwd').value = @user_pwd
      form.field_with(name: 'homeid').value = @homeid
    end.submit.content

あとはこのresponseをnokogiriに食わせると操作しやすくなって便利ー!
まあ、、、普通にURLにアクセスしてページ取ってきたのをnokogiriに食わせるのとなんら変わらない感じです。

また、Gemの動作確認も簡単で、「hoge」でGemを作成した場合

hoge/bin/」に移動後「ruby console」を実行するとirbがGemをrequireした状態で起動する。
あとはirb上で動作確認すればOK。
便利だねー、、、

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

Ruby+Windows OpenSSLでエラーを吐く|||orz|||

nokogiri触ったついでに「Ruby スクレイピング」なんて調べると「mechanize」を使おうぜ!
って出てきたので触ってみることにした。

    agent = Mechanize.new
    agent.get('https://xxxxx') do |page|
      puts page.title
    end

なんて実行すると、、、

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

とopenSSLのエラーを吐く。
RubyInstallerの証明書が古くてエラーという問題にも関連しているのかもしれないけれど、、、

対処法としては以下を参考にしてみた。
qiita.com

1. 下を右クリックで任意の場所に保存
http://curl.haxx.se/ca/cacert.pem

2. コントロールパネルで、システムから環境変数を設定
SSL_CERT_FILE:任意のパス\cacert.pem」

とりあえず、これで使えるようにはなるんだけど、、、証明書関係ってまた微妙な部分だよね|||orz|||

「setx SSL_CERT_FILE=任意のパス\cacert.pem」をWindows10のコマンドプロンプトで実行するとシステムぬっこわれたんで、無難にコンパネから設定したほうが良い模様。

おかげで、システムの復元からしかもとに戻せないし、システムの復元で戻すとちょいと前の状態に戻って、
RailsのGemの整合性がぶっ壊れるエラー云々、bundleディレクトリ消して入れなおしたら直ったから良かったものの、
システム開発中にこんなこと起きると泣きそうになるよね。

ってことで、Windows10は怖いぞー

【Ruby on Rails】今更ながらにRansackベンリーということを知った。

株を管理するプログラムをちまちま組んでいたわけですが、取りあえず一通り機能は出来たかなーという状態
f:id:morio_1101:20160420081410j:plain
黒塗りの情報は勘弁(笑)
とりあえず、配当+株主優待で収支のバランスを考えてみた。

システム上、このページは必要最低限の情報のみに抑えたかったので、
株主優待の部分はJQueryUIのdialogで制御。

f:id:morio_1101:20160420074918j:plain
最初は登録、更新ページなんて作っていたけれど、、、
使っているとページ遷移が面倒になってきたので、一覧画面完結にした。
Ransackでテーブルソートを入れられたので、見やすいっちゃ見やすくなったかな?
検索フォームとかは、特に必要と感じなかったので、必要になった時に追加する予定。

f:id:morio_1101:20160420074921j:plain
あとは、取得検討株一覧ですね。
楽天証券のお気に入り銘柄もいいんだけど、いかんせん痒い所に手が届かなかった。
なので、パッと必要な情報を見れるようにしてみた。
こちらもRansackを使うことで、テーブルソート楽勝!状態に絞り込み入れた方がいい気がしないでもないので、
またいじくってみようかと。。。

Ransack に関する内容は以下の記事を参考にいたしました。

Railsでransackを使って検索機能を作成する - Rails Webook
wonderwall.hatenablog.com

N+1問題も一応対応する方法もあるらしいので、使い勝手は悪くないのかもしれないですね。
これは「bullet」入れて確認すればいい気もしますが、、、

あとは、サービス登録を、、、と考えていたけれど、
めんどうバッチで何とでもなるかな?という感じだったので、バッチを作って起動すると
ロームのタブでサイトが見れるよ!ってな感じにしてみた。

start /d C:\xxxx\StockList bundle exec thin start -e production

timeout 20 && start chrome.exe --new-tab http://localhost:3000/stocks

【Rails】ハマりどころの多いアセットパイプライン

暇を持て余す状況になったので、株を監理するシステムでも作ろうかと思ったわけです。

f:id:morio_1101:20160417175234p:plain

簡単に作れるように、Rails + Bootstrap + JQueryUIという感じの構成
株のAPIは一般公開されていないので、スクレイピングすることに、とはいえ毎回サイトにリクエスト飛ばすのは微妙なので、SQliteに保持することにしました。
view側で計算式埋め込んだりやらなんやらやってしまっているので、ちょっと構成は考えないといけないですが、取りあえず2日ほどで形には出来たかと。

しかし、Windows環境で無理やり作ったので、BootstrapとJQuery関連はsassのgemを使用することに、
lessってのを使用してみたかったのだけど、残念ながらwindows未対応|||orz|||

せっかくなので、windowsのサービス化してみようかなんて思ったときに、production環境で動かす必要があるのかなーっと。
WEBrickだと微妙なので、軽量化目的で、thinサーバを使用して起動してみたら、、、はいハマりました。

production環境で動かす際のお約束
【アセットパイプライン
Rails 3系から出てきたCSS、JSを結合、圧縮するぜ!!ってやつですね。

bootstrapとJQueryUI関連のファイルを食わず嫌いしないでよ|||orz||| っと言いたくなるんだけど、assetのロード用のパスを通してやらないと、画像やらフォントやらはロードされなかったりするみたい。
とりあえずは、「config/application.rb」もしくは「config/initializers/assets.rb」で【Rails.application.config.assets.precompile】の設定を追加する必要があったりする。

と書いておきながら色々試行錯誤して、、、挫折し、最終的には、、、


Gemfileに以下を追加して、productionを動かすという無念な感じになりましたとさ。

group :production do
  gem 'rails_12factor'
end

heroku今回使用しないんだけどな、、、

qiita.com

アプリケーションがこの12の要素を満たしていることか、、、
しっかり目を通しておこうと思いました(キリッ