Raspberry Pi で投資信託の残高を毎日チェックする
エンジニアがこの先生きのこるには
投資信託だと思っている。
なけなしの給料から毎月コツコツ分散投資。
ノーベル賞をとったなんとか理論に従ったポートフォリオで毎月買い足していく。
3,40年後には数千万円の資産になっているはず。
自分の投資信託資産の現在の価値価格、
毎日の比率のチェックが大事だが、
お世話になっている証券会社のwebサイトには当日のデータしか表示されない。
昨日より上がったのか下がったのか、、一月前とくらべてどうなったのかわからない。
毎日の価格データの変動をみたいので、
Raspberry Piに毎日データを取得してcsvにする処理を行わせてみる。
なぜレンタルサーバーなどでなくRaspberry Piでやるのか?
手元にRaspberry Piがあったからとしか言いようがない。
ちなみにデータ取得対象はPWM日本証券のサイト。
もうすぐサイトのインターフェースが変わるらしいので対応しないといけない。。
PhantomJSもメンテがストップしたらしいので、HeadlessChromeで組み直さないといけない。。
使うもの
- Raspberry Pi 3 Model B (もっと安いモデルでもいいかも) + microSD(32GBを使ったがもっとすくなくていいかも)
- Crontab
- Selenium
- PhantomJS(メンテナンスが停止したらしい。。)
手順
Raspberry Pi のセットアップ
microSDをfat32で初期化。
※僕はmacのディスクユーティリティで行った。
※初期化時の名前は大文字アルファベッドならなんでも良い。 「A」とかでいい。どうせ後で勝手に書き換えられる。
※小文字や日本語名をつけようとすると初期化に失敗した。
https://www.raspberrypi.org/downloads/noobs/からNOOBS LITEのZIPをダウンロード
解凍して、その中身(フォルダの中身全て)をmicroSDのルートに置く。
microSDをraspberryPiに挿して、LAN、ディスプレイ、キーボード、電源を接続して電源ON
画面が起動し、インストール項目選択画面になったら
「Raspbian Lite」 にチェックを入れて「i」を押す。
インストールが始まるのでしばらく待つ。
インストールが完了し再起動がかかる。
無事再起動し、ログイン待ち状態になったら、user名:pi、pass:raspberryでログインする。
sudo raspi-config
でコンフィグ画面を出す。
1, Change User Passwordでパスワード変更(※必要であれば。外部に公開しないならそのままでもよさげ)
8, Updateでアップデート実行
5, Interfacing Options -> P2 SSH でSSHログインを有効化。
※あとでmacからログインするため。raspberryPiを直接操作するだけなら不要
macなど使い慣れているOSから作業するほうが楽。
locale設定
4 Localisation Options -> I1 Change Localeでja_JP.UTF8 UTF8を選択する。
続いて求められる選択でja_JP.UTF-8を選択する。
I2 Change Timezone でAsiaを選択し、つづいてTokyoを選択する。
再起動
その2へ続く
ActiveReportsのXaml, Wpfについて体系的にわかり始めた
ActiveReportsセクションレポートのページレイアウトについて勉強した
参考)https://codezine.jp/article/detail/7434?p=3
◆group header, detail, group footerのkeepTogetherプロパティをTrueにするとページをまたいで表示しない。
※らしいけど、ページをまたいだ。。なぜだ?
→解決:keepTogetherは指定したgroup headerのみがページをまたがない。
指定のgroup全体の改ページを制御する場合はgropuKeepTogetherを指定する。
◆canGrow, canShrinkプロパティ
textBoxなどに存在するプロパティで、文字数が多かったり少なかったりしたときに、それに合わせてサイズの拡大縮小を行うかどうかを指定する
◆NewPageプロパティ
指定のセクションで改ページを行うかどうかを指定する
pageセクション以外に存在するプロパティ
◆RepeatStyleプロパティ
改行したときにグループヘッダの内容をもう一度表示させるかどうか。
◆UnderlayNext
グループヘッダをdetailと同じ行に表示するかどうか
◆RepeatToFill
detailに存在するプロパティ
表示するデータがなくなっても、ページ末まで空で行を表示する。
「手書き用の行を表示させたい」などの需要に対応
※ただし、groupHeader等を複数指定していると使えないという制限が存在する。
◆ShrinkToFit
textBoxなどに存在する。
文字数が枠内に収まらなかったとき、フォントサイズを調整して枠内に収める。
◆ColumnCount、ColumnDirection、ColumnLayout、NewColumn
カラムレイアウト設定用プロパティ。
detail.ColumnCountの数値でカラム数を決定。
ColumnDirectionはカラムのデータの展開方向
C# コレクションについて調査
■
PHPカンファレンス関西 2016 聞いた内容を短くまとめた
「要約出来るようになれ」と上司から言われているので、
今回参加したPHPカンファレンス関西2016で僕が聞かせてもらったカンファレンスの内容をなるべく短くまとめてみた。
[基調講演] Composerを速くするために必要だったもの
中野 拓 さん
スライド:
Composerを速くするために必要だったもの /composer-keynote // Speaker Deck
Composerの動作が遅かったので、早くするためのプラグインを自分で作ったら、
githubで凄いスターをもらえた。(日本のphperで一番)
GitHub - hirak/prestissimo: composer parallel install plugin
便利なツールや評価されているツールはスーパープログラマーが作っていると思っていたが、実はそうではなく、問題に立ち向かう姿勢を持ったプログラマーが作っているのではないか?
このプラグインはごく一般的なプログラマーが出来ることで出来ている。
今自分が出来る範囲でも、影響あるツールは作れるはず。
大量のデータで困ってませんか?
高橋 邦彦 さん
google cloud platformのBig Queryというサービスについての話。
データ量が多すぎてRDBSで集計しようとすると
結果が帰ってくるまでに数時間とかかかってしまうような場合、
BIg Queryを使うことでスグに結果を得ることが出来る。
「集計したい時にだけRDBSのデータをデータをBig Queryに上げて、集計処理し、データを削除する」
というような使い方をすればお金もあまりかからない。
ただし、集計処理の指示の方法によっては扱うデータ量が無駄に大きくなり、無駄にお金がかかってしまうので、扱うデータ量が小さくなるように工夫するようにする。
ビューのソースコードコンフリクトから解放される、PHPerのための次世代Webアプリケーション開発への道。
岸田 健一郎 さん
スライド:
ビューのソースコードコンフリクトから解放されるPHPerのための次世代Webアプリケーション開発への道 / PHP Conference Kansai 2016 // Speaker Deck
SPAでサイトを作る場合、Polymerを使うと綺麗に開発できておすすめですよという話。
PHPerに知ってほしいDB設計の話 7F メインホール
曽根 壮大 さん
スライド:
PHPerに知ってほしいRDBの事 その3 // Speaker Deck
検索とINDEXについて
- indexの使われ方、実行計画を理解すれば、遅いクエリはなぜ遅いか理解できる。mysql workbenchの実行計画はみやすい。
- JOINは掛け算で、走査するレコードがJOINするたびに倍々に膨れ上がるので、遅いならばJOIN前に範囲を絞ったほうがよい
- PostgreSQLは複数indexを使えたり、JOINのアルゴリズムも複数あったり、相関サブクエリも早かったりとmysqlよりも優れている点が多い
スキーマレスについて
json型のカラムを定義することができる。(mysqlは5.7以上、postgreSQLは昔から)
TEXT型にjsonを入れるのと違い、json中の値で検索できたり、indexをはったりできる。ただし、ユニーク制約や、外部キー制約はできない。
仕様変更などで扱うデータ項目が変わる度にDB構造を変更するのは大変だが、json型なら簡単に対応できる。
あらたな選択肢として持っておく。
※ただし、ORMを使うのには向いていない。