VS Code のgulp環境でmocha, power-assertを使ったテストを書く

VS Code でのgulp環境

node.jsのインストールはnodist を使うとバージョン管理できるので便利です。 VS Code でgulpのtask実行はいかが参考になります。

mocha, power-assert のインストール

コマンドラインで以下のコマンドを実行します。 Windows環境なのでGit bash で実行しました。

準備

study_mocha というディレクトリを作成してここにテストコードを書く環境をつくります。 test ディレクトリにテストコードを書きます。

mkdir study_mocha
cd study_mocha
npm init
mkdir test

gulpfile.js を記述する

プロジェクト直下にgulpfile.js を記述します。

task を実行/終了する

VS Code でtask を実行/終了するには以下のキーボードショートカットを利用します。

  • task を実行する Ctrl+P → tasks

  • task を終了する Ctrl+Shift+P → "Terminate Running Task."

補足: キーボードショートカットを追加するには

File > Preferences > Keyboard Shortcuts. (Code > Preferences > Keyboard Shortcuts on Mac)
からkeybinding.json に以下の用に記述します。

{ "key": "ctrl+shift+t", "command": "workbench.action.tasks.terminate" }

Visual Studio Code Key Bindings

テストを実行してみる

テストコードを./test/test.js に記述します。

var assert = require("power-assert"); // assertモジュールのinclude

var author = "hoo";
it ("is power-assert", function() {
    assert(author === 'hoo');
    //assert(author === 'hoge');
});

ディレクトリ構成はこうなります。

f:id:snowlong:20160728162024p:plain

  • task を実行する Ctrl+P → task → watch

  • ./test/test.js をセーブするたびにテストが実行されます。

テストケースが成功の場合以下のように表示されます。

f:id:snowlong:20160728122106p:plain

失敗の場合はgulp 自体がストップしてしまうので再度タスクを実行しないといけないです。
これを回避するためにはgulp-plumberを導入するとよいみたいです。エラー時にgulp のタスクを終了させないためのモジュールです。

参考

mocha + power-assert環境の構築 - Qiita

vscode - Stop a gulp watch task? - Stack Overflow

ブックマークレット作成が捗りすぎるVisual Studio Codeの使い方 | 株式会社ビヨンド

nodistでNode.jsをバージョン管理 - Qiita

孫正義がARMを買収することを決めたとき、僕はnvidia の株を購入することを決めた

Brexit騒動でポンドが安くなったときに孫正義はARMを買収することを決めたそうだが、僕はnvidia の株を購入することを決めた。
片や3兆円にものぼる買収、片や個人投資家のしょぼ買いではあるのだが、相場が下落している時に投資するという意思決定をしたことについては同じだ。
だからどうしたと言われればそれまでなのだが、ただ言いたかっただけなのでかんべんしてほしい。

ARMはスマートフォンのCPUをほぼ独占しているし、NVIDIAはデスクトップのGPU市場において8割のシェアを占めている。

https://cdn1.vox-cdn.com/thumbor/dKUo7isuIgi-hurc0cNggNgV_Vw=/800x0/filters:no_upscale%28%29/cdn0.vox-cdn.com/uploads/chorus_asset/file/6362187/Screen%20Shot%202016-04-19%20at%206.40.06%20PM.png http://www.vox.com/2016/4/20/11463818/intel-iphone-mobile-revolution

http://www.hardware.fr/medias/photos_news/00/50/IMG0050562.jpg

http://www.hardware.fr/news/14633/amd-a-gagne-parts-marche-gpu.html

なぜ nvidia なのか

かたや今をときめくスマートフォンに対しデスクトップ市場は右肩下がりである。
そんな市場でシェアが8割あったところでたかが知れてるのではと思うのは当然だろう。
だが、ちょっと待ってほしい。 これはnvidia の株式チャートだ。2016/07/25現在ではさらに値上がりして50ドルを超えている。

f:id:snowlong:20160706141535p:plain

2014年初頭が15ドルくらいなのでそこから300%も上昇しているのだ。
すごいよね。

GTX 1080 というのがすごいらしい

ここで述べていることの大部分は rebuild.fm で得た情報で、GPUに関してはよくわからないしPCでゲームもしない。すごいという評判と右肩上がりの株式チャートを見て投資を決めたのだ。
決してよい子は真似してはいけない投資手法だ。
Nvidia: The Geforce GTX 1080 Graphics Card Can Do Asynchronous Compute

GIGABYTE ビデオカード NVIDIA GeForce GTX 1080搭載  GV-N1080D5X-8GD-B

GIGABYTE ビデオカード NVIDIA GeForce GTX 1080搭載 GV-N1080D5X-8GD-B

どうすごいのかはよくわからないが

  • 何もかもが新しいGPU GTX 1080。
  • お値段安くなり、パフォーマンスは倍。

とのことだ。へーそれはすごい(わかってない)

↓GTX 1080 に関しては以下のエピソードで話題になっているので興味があれば聞いてほしい。深夜の秋葉原に行列ができるレベルなのだ。Windows95かな? 10万円もするのが即売り切れというのもすごい。

需要の高まり

rebuild.fm でも語られているようにGPUの需要は高まってきている。
GPU、つまりGraphics Processing Unit はその名の通り画像処理の分野で使われるものだった。
例えば、ゲームとかCGとか。 2000年代以降においては、GPGPU という言葉が一般的になり他の分野でもGPUが使われるようになった。
具体的には機械学習、VR などの分野においてGPUはマストなアイテムなのだ。
機械学習、VRはバズワード的な響きをもってしまっているが、逆に投資家おじさんにとってはポジティブな判断材料になったのかもしれない。 あとビットコインとかもそうだ。浮動小数点演算の処理能力が勝負を決める分野ではGPUこそが正義なのだ。

あと、CPUに関してはながらく続いていたムーアの法則が終焉をみせ、処理能力における進歩が止まってしまい省電力化に進んでいるのに対し、GPUは性能向上が続いています。 性能向上のためにより一層の投資を行う必要がありますから、今後大きな動きを見せるかもしれませんね。

「ムーアの法則」の終焉は何を意味するのか? - GIGAZINE

Intel 超えする?

nvidia の現在の時価総額が300億ドルくらい、つまり3兆円くらいです。
Intel は1600億ドル、つまり16兆円くらいです。

で、将来的には nvidia の株価もこのくらいいくんじゃないかなー、というかいくといいなーと思っています。

もちろん投資は自己責任で。

FXで1円でもプラスにできるのは20%しかいないという事実

20%しか勝てない

言いかえれば80%はプラスにできない。負けている。 この事実はファイナンススタジアムで実際の市場での取引データから明らかになった。

ファイナンススタジアムとは誰がいくら儲けた/損したがリアルタイムでわかるある意味恐ろしいサービスです。

ファイナンススタジアムはFX投資家のリアルトレードを可視化し、「総資産」・「収益額」・「収益率」でランキングするサービスです。

※強調はsnowlongが付与。

これらのデータをもとに集計していた人がいて結果はいかの通り。

475 Trader@Live![sage] 2016/06/25(土) 19:33:54.25 id:fnhf5+L/
 
ファイナンススタジアムで今年の合計収益ランキングをつくると
今年に入って+100万以上増やしたひとは変動なしを除くと
6923人中143人いて+1千万以上は以下の12人(1.7%)のみ
 
DJTOMO - ファイナンススタジアム 64,637,909
hawaii023 - ファイナンススタジアム 49,755,761 *
みーと - ファイナンススタジアム 40,466,690
fm2921 - ファイナンススタジアム 28,376,160
USER726661 - ファイナンススタジアム 20,703,944
TESTUSER - ファイナンススタジアム 19,602,843 *
USER305834 - ファイナンススタジアム 17,105,541 *
大食い - ファイナンススタジアム 16,728,337
東方不敗 - ファイナンススタジアム 14,846,570 *
朋ちん 13,018,905 *
USER826557 - ファイナンススタジアム 11,858,411
hokusan - ファイナンススタジアム 10,021,700 *
*は途中参加か退会
 
+10万円以上 7.3%
+1円以上 18.15%
 
今年は予想外の円高もあって10人に8人は減らしてる感じ?
 
強調、リンクはsnowlongが付与。

相場が大きく動いても勝てない

さらに、EU離脱騒動によってバク損した人は多いが大きく儲けた人は少ないということも明らかになっている。

英国の国民投票という大波に一部の日本人がさらわれていったようです。。

443 Trader@Live![] 2016/06/25(土) 17:56:00.98 ID:fnhf5+L/

昨日トレードアイランドのFX系で爆損したのは
前日比で1000万以上損した人が16人ぐらいいて多い方から
-54,435,634円  
-44,590,786円  
-37,602,195円  
-36,060,900円
-35,842,000円 
-27,815,716円 
-18,521,646円 
-15,946,436円 
-15,005,046円

逆に昨日FX取引してた人たちで1千万以上増えたのは5人ぐらいしかいないっぽくて

過去を追うな、未来を願うなさん +101,189,151
イワシさん +59,419,559
c38bdf76818c8621aa59a8cec142035f さん +22,412,300 
ぴくみんさん+20,898,913

人間にFXは向いてない

これは、このデータ含まれる投資家(もどき)の多くはナンピン、円売りでポジションを取りがち、さらに損切りができないという致命的な欠陥を抱えていて、円高に急激に振れる相場だと投資家(もどき)は多額の損失を抱えたポジションを強制決済させられるためである。

あなたのお金と投資脳の秘密―神経経済学入門を読むと人間の思考パターンは投資に向いていないということがわかる素晴らしい本です、みんなで読みましょう。この本はちゃんとした科学論文なんかをもとにして書かれているので投資本によくあるオカルト的な考え方とかないちゃんとした本なのでおすすめです。

あなたのお金と投資脳の秘密―神経経済学入門

あなたのお金と投資脳の秘密―神経経済学入門

いくつか引用すると

  • 相場に参加すればするほど損をする

カーネマンや他の研究者たちのいくつかの実験で、株価が上下するのを頻繁に見れば見るほど短期で売買する可能性が高くなり、長期的に高いリターンを稼ぐ可能性が少なくなることが明らかにされた。

  • 人は自ら損する方法を選ぶ

(80%の確率で緑が、20%の確率で赤が光る実験で、ネズミや鳩は毎回緑選ぶのに対し)単純に毎回緑を選んでいれば正解率は80%なのに、たいていの人は5回の内4回しか緑を選ばない。次に赤がともる時を狙うゲームに夢中になってしまうのだ。この誤った自信によって、平均で68%の正解率にしかならない。

  • 過去の儲けたパターンに固執する

お金を儲けさせてくれるパターンや環境を覚えると、実際にはお金を儲けることそのものではなく、その刺激を受けて脳内のドーパミン放出が始まる。
以前儲かったパターンと合致するように見えるとすぐに、「わかった」効果が作動し、投資家は次にどうなるか確実に知っているような気になる。 儲けから得られる快感は、儲けが見えると最初に思った瞬間から高まるようになり、実際に儲けた瞬間には薄れていく。

さあ、また明日からモニターを注視し相場の動きに一喜一憂し損失を重ねていく簡単なお仕事が待っています。

https://mobile.twitter.com/daisensei777/status/746195536940675076

(´・ω・`)

すみだ水族館水族館に行ってきたのでポエムを書く

すみだ水族館水族館に行ってきた。 土曜日だったので混んでいるかなと思ったけどそれほどでもなく快適に見て回ることができた。

やはり生物よりも感動を与えてくれる存在というのはなかなかない。 自分自身が生物だからこそ生命に感動するのだろう。 なぜ、この生き物はこんな動きをするのか。 なぜ、こんな模様にならなければいけなかったのか。 なぜ、こんな形に進化しなければいけなかったのか。

youtu.be そんな疑問が生まれては消える。 そして、その疑問は意味のない疑問である。 ついつい何にでも理由があるに違いないと考えてしまうくせがついてしまっているがこれらの疑問には納得の行く理由などない。

自分とはあまりにも違う姿形に同じ生き物なのかどうか疑わしくなってくる。 そもそも生命とはなんぞや。

なぜ、自分は陸地でこの奇妙なおわん型の生き物を喜々として撮影しているのか。 なにに感動しているのか。 なぜ感動するのか。

次々に疑問が浮かんでは消えそしてまた新たな疑問が浮かぶ。

海で見るお前はグニュグニュして気持ち悪いか、おぼつかなく泳ぐ俺を刺す邪悪な存在だったはずだ。 なぜ、水槽の中でライトアップされたお前はそんなに幻想的なのか。
なぜ。

なぜ。

はてなブログの「埋め込み」リンクを自動的に取得するブックマークレット

はてなブログの機能でURLを貼り付けると自動的にリンク先のタイトルやサムネイルを取得して表示する「埋め込み」形式でコンテンツを貼り付けられる機能がある。

いわゆるこういうやつだ。

help.hatenablog.com

この機能とても便利なのだがちょっとだけリンク先の情報を取得するためプレビュー表示時にタイムラグが発生する。 まあ、ひとつやふたつなら大した時間のロスにはならなくていいのだが、どうせなら直接「埋め込み」形式を貼り付けられるようにしてタイムラグを感じることなくブログを書けるようにしたい。

というわけでブックマークレットをつかって自動的に「埋め込み」形式を生成するようにした。

javascript:prompt('URL%20ForHatena%20Blog%20embed','['+location.href+':embed]')();

使い方は

  1. このページをChromeなどのブラウザでブックマークする*1

  2. ブックマークを編集する

    • 名前: はてなブログ埋め込みリンク生成

    • URL: javascript:prompt('URL%20ForHatena%20Blog%20embed','['+location.href+':embed]')();
      f:id:snowlong:20160509172804p:plain

  3. リンクを取得したいページをブラウザで開き「はてなブログ埋め込みリンク」をクリック f:id:snowlong:20160509173408p:plain

  4. ポップアップ内のURLをはてなブログの記事入力欄にコピペする。

こうすることでタイムラグを感じることなく「埋め込み」形式で貼り付けることができるようになった。

例えば、

http://snowlong.hatenablog.com/entry/2014/04/18/%E6%AF%8E%E6%97%A5%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%8F%E3%81%93%E3%81%A8

のリンクは以下のように展開される。

リンク先の情報を取得する時間待たされるのははっきりいえば時間の無駄だ。 ブックマークレットで「埋め込み」形式を取得して、リンクが埋め込まれているかあとでまとめてプレビューで確認すれば時間を短縮できる。
やったね。

ちなみにデフォルトとは違い最後のドメインは除いてあるのでドメインも必要であれば↓のを使ってください。

javascript:prompt('URL%20ForHatena%20Blog%20embed%20and%20cite','['+location.href+':embed:cite]')();

ブックマークレットが何かはこちらを参照ください。

ブックマークレットという存在を忘れていてつくってみると便利だなって今更思ったりした。

*1:1は擬似的なブックマークなのでどんなページでもかまわない。

都会の生活に疲れた僕はプラ舟でベランダビオトープをつくった

ベランダにメダカが泳ぐビオトープを作った - snowlongの日記 に続きこの春もう一つベランダビオトープを新たに立ち上げた。

それがこちら。水を入れてから1ヶ月くらい経過している。 メダカが7匹。ミナミヌマエビが8匹。ヒメタニシが5匹くらいいる。

f:id:snowlong:20160501163238j:plain

作り方(メモ)

プラ舟を買う

プラ舟とはコンクリをかき混ぜたりするのが本来の用途らしく工事現場などで使用されることが多いようだ。 だが、ベランダビオトープ界隈ではこれを水槽がわりにするのがメジャーらしくプラ舟 ビオトープ で検索すると実践例が見れて楽しい。

↓こんなやつ。ホームセンターとかAmazonで買う。今回はこのサイズのものを購入した。 プラ箱 40型 黒 ?いろいろ使える便利なプラブネ? [その他]

Amazonのレビューでもほらこの通り。頑丈で大きくて色が黒というのが人気の理由らしい。

メダカ&ビオトープ用に購入しました。しっかりしているので、土や水を入れた状態でも運べます。水生植物をいくつか入れましたがスペースに余裕アリ。40型でも十分楽しめます。メダカも優雅に泳いでいるので是非また購入したいです(^-^)
Amazon.co.jp: プラ箱 40型 黒 ?いろいろ使える便利なプラブネ? [その他]の moco128さんのレビュー

プラ舟に赤玉土とか入れたいものを入れる

プラ舟が届いたらビオトープの準備をしよう。
今回プラ舟の中に投入したのは以下のものたち

  • 赤玉土14リットル(だったかな)

  • 荒木田土(2リットル)

  • 砂利(2リットルくらい)

  • レンガブロック 1個

  • 大きめの石 3つ

  • 小さめの石 4つくらい

  • 流木 2本

  • ウィローモス

  • チャルメルソウ

  • トキソウ

  • スイレン

赤玉土を入れる

f:id:snowlong:20160329194535j:plain

赤玉土を入れます。ホームセンターで売ってる赤玉土(小粒)を一袋ザーッと入れます。 最終的に砂利を入れたり植物を入れたりしてかさが増したので12リットルくらい入ってると思います。 肥料用にと荒木田土も2Lほど赤玉土に混ぜ込みます。ただ、これは水がにごりやすくなってしまうので失敗だったかも。
右上のは百均のアロマポットでミナミヌマエビの隠れ家に使えるかなと思って買ったのですがまだ使っていません。

残りを入れる

f:id:snowlong:20160330191813j:plain

残りのでかい石とかを入れます。
ほんとうは大きなものから投入するのがセオリーらしいですね。

f:id:snowlong:20160331063304j:plain

あらためて見ると配置のテキトーさにびっくりしますが、今回の狙いとしては水槽の左側と右側で高低差をつけるという点にありました。 左側は川岸っぽく水辺の植物なんかを配置したりして右側はよどみっぽい感じにしたいなと。
実際は高低差をもっとつけたかったのですが事前の確認不足で中途半端な感じになってしまいましたが、事前のイメージとまあ近いものができたのでよしとします。

高低差を維持するためにレンガブロックと石を中央に配置します。さらに左側に砂利を追加して川岸ぽい感じにします。 水中に配置する流木や大きめの石にはウィローモスを巻きつけます。
鉢植えの植物もそれぞれ適当な場所に配置してレイアウトは完成。

水を入れて待つ

水を入れて2週間位、ビオトープ内の水質やプランクトンなどの環境が整うまでメダカを入れるのは我慢します。 水が減ってきたら足し水を繰り返す日々。「辛抱たまらん!」「早く入れたい!」と思う日々。別の場面でもそんなことを思うときがあったような気がするのですがどうも思い出せない。なんだっけ。
「早く入れたい!」と思う自分をトキソウの白い可憐な花が励ましてくれているようでした。 花びら、花弁、「早く入れたい!」。

メダカを入れる!

さて、煩悩にまみれた人間をよそにベランダに置かれたプラ舟さんは日光にさんさんと照らされ、苔がかなり成長してしまっていました。
苔が成長するのは荒木田土の栄養分のおかげでしょうか。水はにごりやすくなってしまうので水草にはよくないので考えものですが、その役割はしっかりと果たしてくれています。

f:id:snowlong:20160501163238j:plain

↓がざっくりとしたレイアウト図です。字は読めないかもしれないですが雰囲気だけでも伝われば。 f:id:snowlong:20160503200242j:plain

まとめ

プラ舟に赤玉土を入れて水草を配置して水を入れて数週間たってからメダカを入れる。
これでベランダビオトープの出来上がり。
あとはこの小さな生態系を眺めながら神の気持ちになるのもよし。荒んだ心を清めてもらうのもよし。
慌ただしい日々を過ごし、都会の生活に疲れた我々にはピッタリの趣味だと思いますよ。

f:id:snowlong:20160501163137j:plain

小さなビオトープガーデン―庭やベランダで水辺の花と生き物を楽しむ! (セレクトBOOKS)

BitBar をインストールする

BitBar とは

スクリプトの標準出力をMacのメニューバーに表示してくれるアプリケーション。 ちょっとしたスクリプトでもいちいちコマンドを叩いて結果を確認するのが面倒だったりするので地味に便利。

f:id:snowlong:20160430140017p:plain

これはCPUの使用率を表示するプラグイン

インストール

homebrew

brew cask install bitbar

自分の場合、ansible にbrew コマンドを記述して管理しているので localhost.ymlhomebrew_cask_packages:

      - { name: bitbar }

を追記し、ansible-playbook コマンドを叩いてインストールする。

起動&Plugin Folder を決める。

Spotlight検索からbitbar と入力してBitBarを起動する。その際Plugin Folder を指定する。

Plugin をダウンロードする

Githubプラグインリポジトリがあるのでそれを先ほどPlugin Folderに指定したところにgit clone する。

Plugin Folder直下にplugin のスクリプトファイルがないと動かないのでPlugin Folder直下に動かしたいpluginスクリプトファイルのalias を貼る。

ln -s ファイルのパス リンクのパス

bitbar を再起動

bitbar を再起動するとplugin のスクリプトが実行されメニューバーに表示されていることが確認できる。

まとめ

自分用にスクリプト書いたけど手動でコマンド叩くのもあれだし、cronで叩いてそれをメールで送るとかしてもメールを開くのが面倒。じゃあslack に通知を送るようにするかというとslackを開くのも(略 なのでMacのメニューバーなら否が応でも確認することができるのでこれはなかなか素敵だなと思った。 ただ、自作のスクリプトが銀行の口座残高を確認するとかなので口座残高が常にメニューバーに表示しておくのってなんかいろいろアレな気がする。

本家のプラグインを見てみて面白そうなのがあればどんどん試してみたい。 とにかく気軽なのがいい。

初めてのAnsible