chakokuのブログ(rev4)

テック・コミック・ごくまれにチャリ

改めてC++を勉強する。。

とある理由でopenFrameworksを使ってみる機会があって、openFrameworksはC++で書かれていて、C++を書く機会ができてしまった。最低限の理解範囲でopenFrameworksを動かすためのへなちょこなコードは書けるけど、C++をある程度は理解した上でopenFrameworksを使いたいと思い、今さらなながらC++を勉強することにした。といっても、、C++の広大な言語仕様すべてを理解するつもりはなく、はじめの第一歩ということで、、評判の高いオライリーC++解説本を買った。

C++プログラミング入門

C++プログラミング入門

比較的薄い本で、C++のエキスが丁寧に書かれている。パラパラっと読む程度だと軽く読めるけど、実は仕様の奥深い事も書かれていて、じっくり読んでも一部理解できない所もある。。解説を読みながら自分で実際にコード組んで動作確認しないと理解したとは言えない。。
で、Windows版のopenFrameworksはVisualStudio上で動作するので、VisualStudioもある程度理解したいと思い、Visual C++入門書を買った。
アプリを作ろう!  Visual C++入門 Visual C++2015対応

アプリを作ろう! Visual C++入門 Visual C++2015対応

この本は、C++の言語を理解するための本ではなくて、VisualStudioをどう使うか?に主眼が置かれた入門書である。C++の言語仕様をある程度理解しても、VisualStudioの作法を分かっていないとWindows Formのアプリケーションは組めないので、、こういった本を読めば、どうすればGUIの部品の配置や、インスタンス化された部品をどう操作できるか?が理解できる。ただ、、この本もちょっと説明が違ってるように思える。。(VisualStudioをうまく使えば書かなくて済むコードを、必須コードと説明しているような。。)

そもそもC++を勉強するきっかけとなった、openFrameworksについては以下の本を買って理解。

Beyond Interaction[改訂第2版] -クリエイティブ・コーディングのためのopenFrameworks実践ガイド

Beyond Interaction[改訂第2版] -クリエイティブ・コーディングのためのopenFrameworks実践ガイド

この本はわざわざ買わなくてもPDFがBNNサイト上に公開されているので、そっちから入手するのも可能。自分は最初PDF版を読んでいたけど、インタビュー等は本で読みたいと思って、あとから印刷版を買った。なお、情報が少し古くなっているので、脳内変換しながらサンプルを動かす必要あり。
が、、当初やってみたかった事*1は最低限動かせたので、自分の創造性の欠如のせいもあってか、openFrameworksを使って何かを作るという情熱はかなり下がった(平たく言うと飽きた)。

インタラクティブアートとか、ジェネラティブアートとか、一時は本がいろいろ出たようだけど、最近は新しい本も出ておらず、ちょっとオワコン気味なんだろうか。。個人的には、RNNでジェネラティブアート(ドラムベースとかミニマルミュージックでもいい)興味あるけど、、やっぱり自分の想像を超えて陶酔できるぐらいのアウトプットが得られないとすぐに飽きてしまう。。

さらに、なぜ、インタラクティブアートなのか?というと、、子供がなんとか大学に入学して、プログラムしたいと言うから。。いきなり 構造体とポインターとか説明しても混乱しそうだから、、画像で遊ぶのがとっつきやすいかと思って。しかし、、よく考えると、VisualStduioとかC++とか、子供(理系の大学生一年、パソコンあまり分からず)にとっては、最初から壁が厚いかとも思ったのでした。

■追記
少し前まで、BeyondInteraction PDF版はDL可能だったけど、今見たらリンクが切れています。
http://yoppa.org/blog/4299.html
「Beyond Interaction PDF版をCreative Commonsライセンスで配布開始!」
ここにDL用URLが書かれているけど、今は404 NotFoundになっている。。

■追記
普通、C++*2を使わなくても、他の言語でやりたいことは大抵できそうですが、速度が要求される場面には機械語による実装への期待が大きい。C++が使えるなら、、時間のめちゃかかるRNNの学習をPythonではなくて、C++GPUのライブラリ(CUDA)を使ってフルスクラッチで作ると、どれぐらい学習時間が短縮できるのかが興味深い。興味深いけど、、作ってみるだけの情熱がない。。情熱を燃やすために、とりあえず、NVIDIAの激高いボードを買ってみるとか。。
RNN使えば為替相場の予測がほんの少しの確率で勝てて儲かるとか、RNNで陶酔できるエレクトロニカが延々と生成されるとか、、そういった目の前の人参(またはご褒美信号)がないと自分は勉強したり実装する気力が出ない。。はぁ。。GWは中断しているRNNの勉強をやりなおすか。。


■ご参考URL
http://qiita.com/ryo_grid/items/c8d2d268e3f0d64af1e6
グリッドトレード戦略でFXシステムトレード
DLで為替を推定する記事。。ちょっとだけ勝っている??
まぁちょっと考えると分かるけど、金融世界はミリ秒、マイクロ秒?オーダーの売り買いで、ITを極限まで使って儲けを上げようとしているらしい(少しでも通信遅延を抑えるため、売買のサーバをネットワークのバックボーンに隣接させたりもするらしい。ガセネタかもしれないが)。金融業界では、数学バリバリのエンジニアが日夜システムを開発している。そんな人々が、DLとかAIで為替予測させようとすぐに想像するはずで、、もしそれが効果を上げていたら、AIトレーダーがマイクロ秒で大儲けとか言いながら、世の中大騒ぎになっているだろう。。

*1:USBカメラで取り込んだ映像に対して人物抽出して、ボールを人の体でバウンドさせるサンプルアプリ

*2:C++は道を究めた職人向けの言語という印象でございます