株式投資の未来を読んで

全然更新できなくて、目標の下方修正が必要そうです。

書くからには!、と思って長文を書こうと思ってしまい、結果的に書けなくなっています。。

これからは書き残すことを重点に置いて、短文でも書いていきます。

 

珍しく投資のお話しです。投資暦自体は5, 6年くらいで、当初は日本株で短期売買をしていました。何の知識もなく 笑

案の定痛い目を見て、実質的に退場したわけですが、3年前くらいに配当再投資な長期投資の出会いまして、それ以来米国株をいじいじしているこの頃です。

 

前置きが長くなりましたが、そんな配当再投資の教科書的な本である、ジェレミー・シーゲルの株式投資の未来を読みました。

過去50年に及ぶ実際の数字を基にした分析は、理系の人間にはとても説得力があります。

ぼんやりとしか理解していなかった配当再投資の優位性や、成長セクター・銘柄の過熱感の罠など、なりほどー的な部分は多かったです。

 

とは言いつつも、まだまだ素人な自分には理解できていないことがたくさんなので、再読の上追記の予定です。(たぶん、、)

 

株式投資の未来?永続する会社が本当の利益をもたらす

株式投資の未来?永続する会社が本当の利益をもたらす

 

 

 

Selenium + Safari

SeleniumSafariを動かすときの覚書です。

SafariDriver extensionのインストール

Safariのwebdriverはextension形式です。SafariDriver.safariextzからextensionをダウンロードしてインストールしてください。

#以前はSafari Developer Programへの登録が必要だったようですが、現在は不要?

Selenium standalone serverの用意

SafariはNode.jsの公式クライアントライブラリでドライバの自動起動がサポートされていないので(Chrome, Firefoxのみサポート)、一度Selenium standalone serverを中継する必要があるようです。(あまりちゃんと理解ができていませんが、、)

$ brew install selenium-server-standalone

Macならコマンド一つで入れられます。

で、以下のコマンドで起動です。

$ java -jar selenium-server-standalone-xxx.jar

なお、test scriptからSafariDriverを呼び出すために、SELENIUM_SERVER_JARのPATHの設定もしておくと良いと思います。driver.Safari()とするときに、引数としてjarのpathを渡す必要がなくなります。

$ export SELENIUM_SERVER_JAR="/usr/local/Cellar/selenium-server-standalone/2.48.2/libexec/selenium-server-standalone-2.48.2.jar"

 

以下を参考にしました。

Seleniumの仕組み | CodeGrid

SafariDriver · SeleniumHQ/selenium Wiki · GitHub

 

第3回 日本Seleniumユーザーコミュニティ勉強会

 

かなり遅い投稿になりますが、、第3回 Seleniumユーザーコミュニティ勉強会に参加してきました。

初めての?勉強会だったけど、すぐにでも職場で使えそうなネタもあって、なかなか有意義な時間でした。

 

Opening session (TRIDENT 伊藤)

参加申し込み時に集計された、Selenium使用言語率。上から順にJavaSelenium IDE, Rubyと続い行く感じ。

自分が使っているPythonは8番目のかなり低めで、しょんぼり。多方面でJavaScriptの躍進が目立つので、覚えてみようかな。

WebスクレイピングでもSelenium利用者が増えているとのことだったけど、あんまりメリットがわからないかった。

www.slideshare.net

 

Seleniumデザインパターン & ベストプラクティス」の勘所

Seleniumデザインパターン&ベストプラクティスのさわりを説明してくれました。

アンチパターン

  • DRYテストパターン
  • Hermeticテストパターン

ベストプラクティス

依存関係を廃止

特にデータの依存。独立性が上がる!ただし、実行時間が上がるデメリットあり。

ランダム実行順序原則

暗黙的な依存関係を防ぎます、全体実行と単独実行をそれぞれ行うことで、暗黙的な依存関係を防ぎ、独立性が上がる。 何度も繰り返し動くが継続的デリバリには必須。

結論:いいパターンがいっぱいだよ!(時間切れ

www.slideshare.net

 

Selenium実践入門」で学ぶテスト自動化の世界

昔の自動試験

  • 商用開発環境が多い
  • Open sourceは少ない
  • Seleniumとかつかっていたのはサイボウズくらい

最近の自動試験

  • Selenium1 -> 2で安定化
  • 導入事例がWeb上でもかなり散見できるようになりましたよ

Selenium実践入門の内容

APIドキュメントにない内容もあるよ。

ファイルダイアログ、Basic認証、HTTPヘッダ、HTML5などなどややこしいマイナー機能。

Wrapperについても
  • Geb:Grooby
  • FluentLenium:Java
  • Appium
  • Selenium Grid
  • Capybara

そのほか盛りだくさん!Seleniumerは買うと幸せになれるよ!電子書籍もあるよ!

 

www.slideshare.net

 

E2Eテストフレームワークを使用したテスト自動化事例

E2Eテストフレームワークの選定から、導入までのお話。

E2Eテストフレームワーク

Nightwatch.js

Node.jsベース

Protractor

AngularJSに特化。自動待機APIがあって待機処理を明示的に指定する必要がない

ヘッドレスブラウザー

PhantomJS, Zombie,,,,,などなど

PhantomJSがメジャーなので、こちらを選択。技術情報多く、Nightwatch.js/Protractorでサポートされているらしいです。

ただ、結果的にPhantomJS固有に問題があって結構無駄が多いらしいです。その結果、Xvfbでリアルブラウザーのヘッドレス化!どれくらいパフォーマンスがよくなるんだろ。とは言え、安易にヘッドレスブラウザとか使うと良くないんだなあと。

www.slideshare.net

 

STFとAppiumをもちいたAndroidアプリの自動テスト

AWS Device FarmとかをLocal環境に建てれちゃう優れもの。ぬるぬるサクサクでビビる。

Appium使用者はまだそんなに多くない感じでした。そういう人はそれぞれのautomatorを使ってE2Eの試験を自動化しているのかな。

www.slideshare.net

 

Azureを使って手軽にブラウザテストの自動化をはじめよう

Azureに限らず、SeleniumでE2Eテストの自動化を行ったときのはまったところの紹介などをしてくれました。

テストケースのマネジメントとかテストケース駆動・テストデータ駆動のあたりは、あるあるだなあと思った。自分のところもテストスクリプトが増えてきてカオスな感じになってきているので、見直したいところ。

www.slideshare.net

 

Gebに実践入門するために

Gebの良いところと悪いところを説明してくれました。簡潔にかけて、わかりやすく書けるのが一番のメリットなのかな。

ただ、一方で学習コストが高く、敷居が高いと感じてしまうことが多いようです。

Selenium実践入門にもGebの章があるので、読んだ上で、Gebやろう!

 

エビデンス取るのも自動化したい!

テスターあるある、『テストエビデンスって証明するのつらいよね』を自動化しちゃいましょう。な、お話。

詳しくはGithubへ。

GitHub - sitoolkit/sit-wt-all

 

Selenium Antipatterns 

Selenium導入・運用時に陥りがちなアンチパターンを紹介してくれました。

とりあえずSelenium

Selenium、結構メンテコスト大きい。そして、実行時間長い。適切なところにSeleniumを使いましょう。、、適切って?

Selenium Pros/Cons

Pros

  • E2Eの自動化
  • 夜実行できます

Cons

  • メンテコスト
  • 不安定
  • 柔軟性

あるあるですね。ツール導入が目的になってしまって、やりたいことを見失うケース。可能な限り単体テストで実行し、E2Eでやらなきゃいけないことは減らしましょう。

手動テストの代わり

UIの変更でテストが通らなくなる。メンテが面倒なので、とりあえずマニュアルで試験。結果、メンテ不能。。

常にCI/CDを意識する必要がある。働き方が変わることを肝に命ずる。

クラスブラウザがんばりすぎ

全部でテストパスは非現実的。最終的にメンテコストで死亡。

対象は絞る。

Taasを利用する。

www.slideshare.net

 

Seleniumのうすいはなし 

つねに遊び心が必要。以上。でも実際、そういう人と仕事したいよね。。

音声合成エンジン(Voice Text)を使って、Jenkinsでjobがコケたときにそれを音声で通知する。っていうやつはすごく面白かった!

www.slideshare.net

aaptとはなんぞや

Android界隈の人だったにも関わらず、aaptを最近初めて知ったので覚書。

aapt = Android Asset Packaging Tool

Zip互換のアーカイブ(ZIP, JAR, APK)の閲覧・作成・変更を行えるツールのようです。
permissionとか、intent filterとかがソースコードなしで見れます。
使い方などはwebの記事などをご参照ください。

appiumとかはこいつをつかってpackage nameとかlauchable activityとか引っ張ってきているっぽい?

 

aaptで使えるコマンドはaaptを叩けば出てきますが、以下などが参考になりました。

skillup-note: aaptコマンド

STFを使ってみた

この間参加したSelenium勉強会で知ったSTF (Smartphone test farm)とやらを試しに使ってみました。

STFについて詳しくはこちら。

STF | Smartphone Test Farm

github.com

簡単に言うと、AWS device farmとかPerfecto mobileのmobile cloudのOSS版で、localにそんなサービスを立ち上げられる。

Githubに書いてある通り、Macなら簡単にセットアップが終わります。

1. 依存関係のあるmoduleのインストール。

brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config


2. stfをインストール

npm install -g stf

3. rethinkdbを動かす (8080 portはjenkinsで使っていたので、8081に変えてます。)

rethinkdb --http-port 8081

4. stf 起動

stf local

で、おしまい。

遅延もなく良い感じに使えそうです。

社内でデバイスを良い感じに共有できそう。

はてなブログに移行

下書きばかり増えて、一向に投稿できていない今日この頃。

とりあえずはてなブログに移行しました。

 

いまいち使い方がわからない。。。

XMLの整形 with Emacs

整形されていないxmlを受け取った時。

  1. M-x sgml-mode
  2. 対象を全選択
  3. M-x sgml-pretty-print

だそうです。