プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

2017年の振り返り

はじめに

昨年も年末に振り返りをしたので、今年もします。

takuan-osho.hatenablog.com

調べてみたら結構前から振り返りしてるんだなと思いました。

takuan-osho.hatenablog.com

takuan-osho.hatenablog.com

takuan-osho.hatenablog.com

2013年からしてるとは思いませんでしたね。アニメのことだけの振り返りですが。

振り返りといっても年全体の振り返りをするといくら時間が合っても足りないのと、そもそもそんなに記録を残してなくて無理なので、今年頭に立てた目標がどれくらい達成できたかを見て振り返りにしたいと思います。

成果確認

takuan-osho.hatenablog.com

上記記事によると、今年頭に立てた目標は以下の通り。

  • オペレーションをこなせるようにする
  • 機械学習の最初の一歩を踏み出す
  • (180度の)開脚をできるくらいの柔軟性を得る

それぞれ振り返ります。

オペレーションをこなせるようにする

仕事でサーバーの運用業務をするようになったのですが、issueとして登録されている問題の特定・解決するのに必要なオペレーションを思ったようにできていないなと痛感しているので、Linuxの基礎知識*1を含めて、オペレーションの能力を強化していくのを1つめの抱負にしました。

こちらに関しては完璧ではないにしろ、当初立てていた目標に近いところまで出来たと思うので、〇ということにしたいです。

勿論、まだまだ不完全なので、仕事をしつつ、足りない知識を『詳解システムパフォーマンス』を読むなどして埋めながら過ごしてはいたのですが、途中で『詳解システムパフォーマンス』を読むのも止まっているので、年が明けたら再開し、よりまともなオペレーションが出来るように頑張りたいですね。

仕事でよく使うようになったlinuxのコマンドをメモして残しておきます。

  • du
    • だいたいディスク残量が問題なることが多いので必然的に使うように。
  • ps
    • プロセスの状態を見るので。オプションをもっと把握しておいた方がいいかも。
  • top
    • 正直メモリとCPUの値しかまだちゃんと見られないので、他の値を意味を理解してちゃんと見られるようになりたいところ。
  • lsof
    • lsof -i:<port> の使い方しか使いこなせないけどそれでも有用。他のオプションも理解してもっと使いこなせるようにしたい。
  • last
    • last | head とかよくやっている。
  • w

機械学習の第一歩を踏み出す

既存のアルゴリズムを自分で実装できるくらいに理解できれば理想ですが、そこまで行かなかったとしても、素材を自動で分類したくなったときに各種ライブラリを活用してソリューションをでっちあげるということができるようになるといいなあと思ってます。

これに関しては△ですね。

一応最初の方はやる気を出して、Andrew Ng先生のあの有名なCourseのMachine learning講座を途中まではやったのと、『ゼロから作るディープラーニング』を全部読んだので、ある一定程度の成果は得られたのですが、自分でソリューションをでっち上げることができるレベルにまでは到達していないからです。

www.coursera.org

今確認したら、Courseraの方はWeek 6まではやり終えていて、Week 7のSupport Vector Machinesで詰まって死んでいるという状態のようですね。

こちらの書籍は全部読んで、コードも半分以上は写経したのですが、ブログ記事にする余力がなくてできていないのが残念。

立てた目標のレベルには届かなかったけれど、本当に基礎的な部分の知識は得た影響で、今まで機械学習の記事を読んでも宇宙語を話されているような気分になっていたのが、一応分からない部分を調べることができるところにまで行けたのは大きな成果だと思っています。

(180度の)開脚をできるくらいの柔軟性を得る

これは仕事とは全く関係ない目標で、自分の身体の柔軟性を挙げたいというものです。

一応数値目標を出しておいた方が計測できるので180度開脚としたいのですが、多分これ難しいのでなるべくそれに近づけるという意味合いをこめてカッコをつけてます。

今続けている空手のパフォーマンスにも関わってくる話なのでそれなりに真面目に取り組みたい抱負です。

これは残念ながら成果としては×をつけるしかないという結果です。

途中までは少しずつ開脚できる度合いも高まっていたのですが、9月かその辺りで左脚内部の筋を開脚中に痛めてしまって、そこから成果は進展するどころか交代してしまって180度開脚を達成するところではなかったという悲しい結果に。

今も左脚内部の筋は痛い状態が続いていて、整形外科に行ってMRIを使った診察もやったのですが、判明したのは致命的な怪我ではないということだけで、今もどうやって治したらいいのか分からなくて困ってますね。

まあ、ぼちぼちやっていきます。

まとめ

一年を通してみると、ダレてしまった時期が結構ありましたが、それまでの年の過ごし方に比べれば圧倒的に年初に立てた目標を達成する方向に進められたので、新年を迎えてもこの調子は変えずに、目標達成をできるような過ごし方をしていきたいと思います。

通っていたフィットネスクラブを退会した

昨年転職する前までは時間的に余裕があったので、運動の習慣をつけるためにフィットネスクラブに加入して通っていたのだが、転職してから忙しくてほとんど行けてなかった。

というのに、面倒くさくて退会手続きをしてなかったのだが、マネーフォワードに記録されているフィットネスクラブの引き落としの金額を見て、「流石にもう退会するか」と思ったので、先ほど退会手続きをしてきた。

これで毎月11,000円弱引き落とされていたお金がかからなくなる。

半年以上一回も行けてないのにずるずると今まで引き延ばしてきたが、年をまたぐ前に処理できてよかった。

一年の終わりも近づいているので、整理を色々としないとなあ、と思ってる。

RPMパッケージを相手にするときによく使うコマンドをメモしておく

Qiitaとか各種色々なところにもっと分かりやすい形でちゃんとまとまってるんですが、自分のブログに書くことで記憶定着を図りたいのでまとめます。

qiita.com

qiita.com

qiita.com

なお、以下に提示する例はCentOS6を使っているので、色々古いソフトが表示されてますが、気にしないでください。

インストールされたrpmを一覧表示する

rpm -qa

「インストールしたんだけど正確なパッケージ名が思い出せない」といった時にはgrepと組み合わせると効果を発揮。

rpm -qa | grep ruby
ruby-devel-1.8.7.374-4.el6_6.x86_64
ruby-1.8.7.374-4.el6_6.x86_64
ruby-irb-1.8.7.374-4.el6_6.x86_64
ruby-libs-1.8.7.374-4.el6_6.x86_64
ruby-augeas-0.4.1-3.el6.x86_64
ruby-shadow-2.2.0-2.el6.x86_64
ruby-rdoc-1.8.7.374-4.el6_6.x86_64
rubygem-json-1.5.5-3.el6.x86_64
libselinux-ruby-2.0.94-7.el6.x86_64
rubygems-1.3.7-5.el6.noarch

逆にパッケージ名を正確に覚えているときは -q オプションだけでいいです。

rpm -q ruby-devel
ruby-devel-1.8.7.374-4.el6_6.x86_64

RPMパッケージ経由でインストールされたファイルを一覧表示する

rpm -ql <package name>
rpm -ql ruby-devel
/usr/lib64/libruby.so
/usr/lib64/ruby/1.8/x86_64-linux/config.h
/usr/lib64/ruby/1.8/x86_64-linux/defines.h
/usr/lib64/ruby/1.8/x86_64-linux/digest.h
/usr/lib64/ruby/1.8/x86_64-linux/dl.h
/usr/lib64/ruby/1.8/x86_64-linux/dlconfig.h
/usr/lib64/ruby/1.8/x86_64-linux/dln.h
/usr/lib64/ruby/1.8/x86_64-linux/dtrace.h
/usr/lib64/ruby/1.8/x86_64-linux/env.h
/usr/lib64/ruby/1.8/x86_64-linux/intern.h
/usr/lib64/ruby/1.8/x86_64-linux/missing.h
/usr/lib64/ruby/1.8/x86_64-linux/node.h
/usr/lib64/ruby/1.8/x86_64-linux/re.h
/usr/lib64/ruby/1.8/x86_64-linux/regex.h
/usr/lib64/ruby/1.8/x86_64-linux/ruby.h
/usr/lib64/ruby/1.8/x86_64-linux/rubyio.h
/usr/lib64/ruby/1.8/x86_64-linux/rubysig.h
/usr/lib64/ruby/1.8/x86_64-linux/st.h
/usr/lib64/ruby/1.8/x86_64-linux/util.h
/usr/lib64/ruby/1.8/x86_64-linux/version.h
/usr/share/doc/ruby-devel-1.8.7.374
/usr/share/doc/ruby-devel-1.8.7.374/COPYING
/usr/share/doc/ruby-devel-1.8.7.374/COPYING.ja
/usr/share/doc/ruby-devel-1.8.7.374/ChangeLog
/usr/share/doc/ruby-devel-1.8.7.374/GPL
/usr/share/doc/ruby-devel-1.8.7.374/LEGAL
/usr/share/doc/ruby-devel-1.8.7.374/LGPL
/usr/share/doc/ruby-devel-1.8.7.374/README.EXT
/usr/share/doc/ruby-devel-1.8.7.374/README.EXT.ja

インストールしているパッケージの情報を表示する

rpm -qi <package name>
rpm -qi ruby-devel
Name        : ruby-devel                   Relocations: (not relocatable)
Version     : 1.8.7.374                         Vendor: CentOS
Release     : 4.el6_6                       Build Date: Mon 02 Mar 2015 09:12:37 AM UTC
Install Date: Thu 10 Nov 2016 10:08:51 AM UTC      Build Host: c6b8.bsys.dev.centos.org
Group       : Development/Languages         Source RPM: ruby-1.8.7.374-4.el6_6.src.rpm
Size        : 1103028                          License: Ruby or GPLv2
Signature   : RSA/SHA1, Mon 02 Mar 2015 12:21:02 PM UTC, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://www.ruby-lang.org/
Summary     : A Ruby development environment
Description :
Header files and libraries for building a extension library for the
Ruby or an application embedded Ruby.

RPMパッケージの情報を表示する

インストールしているときは rpm -qi <package name> ですが、まだインストールしてないRPMパッケージの場合は rpm -qpi <package name> で表示できます。

ls | grep ruby-devel
ruby-devel-1.8.7.374-5.el6.x86_64.rpm

rpm -qpi ruby-devel-1.8.7.374-5.el6.x86_64.rpm
Name        : ruby-devel                   Relocations: (not relocatable)
Version     : 1.8.7.374                         Vendor: CentOS
Release     : 5.el6                         Build Date: Wed 22 Mar 2017 05:52:23 AM UTC
Install Date: (not installed)               Build Host: c1bm.rdu2.centos.org
Group       : Development/Languages         Source RPM: ruby-1.8.7.374-5.el6.src.rpm
Size        : 1103263                          License: Ruby or GPLv2
Signature   : RSA/SHA1, Thu 23 Mar 2017 03:00:13 PM UTC, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://www.ruby-lang.org/
Summary     : A Ruby development environment
Description :
Header files and libraries for building a extension library for the
Ruby or an application embedded Ruby.

RPMパッケージに含まれているファイルを一覧表示する

rpm2cpio <package name> | cpio -t

rpm -ql はインストールしているRPMパッケージの時に使えるが、これはインストールしてなくてwgetなどでダウンロードしてきたRPMパッケージなどについて使える

rpm2cpio ruby-devel-1.8.7.374-5.el6.x86_64.rpm | cpio -t
./usr/lib64/libruby.so
./usr/lib64/ruby/1.8/x86_64-linux/config.h
./usr/lib64/ruby/1.8/x86_64-linux/defines.h
./usr/lib64/ruby/1.8/x86_64-linux/digest.h
./usr/lib64/ruby/1.8/x86_64-linux/dl.h
./usr/lib64/ruby/1.8/x86_64-linux/dlconfig.h
./usr/lib64/ruby/1.8/x86_64-linux/dln.h
./usr/lib64/ruby/1.8/x86_64-linux/dtrace.h
./usr/lib64/ruby/1.8/x86_64-linux/env.h
./usr/lib64/ruby/1.8/x86_64-linux/intern.h
./usr/lib64/ruby/1.8/x86_64-linux/missing.h
./usr/lib64/ruby/1.8/x86_64-linux/node.h
./usr/lib64/ruby/1.8/x86_64-linux/re.h
./usr/lib64/ruby/1.8/x86_64-linux/regex.h
./usr/lib64/ruby/1.8/x86_64-linux/ruby.h
./usr/lib64/ruby/1.8/x86_64-linux/rubyio.h
./usr/lib64/ruby/1.8/x86_64-linux/rubysig.h
./usr/lib64/ruby/1.8/x86_64-linux/st.h
./usr/lib64/ruby/1.8/x86_64-linux/util.h
./usr/lib64/ruby/1.8/x86_64-linux/version.h
./usr/share/doc/ruby-devel-1.8.7.374
./usr/share/doc/ruby-devel-1.8.7.374/COPYING
./usr/share/doc/ruby-devel-1.8.7.374/COPYING.ja
./usr/share/doc/ruby-devel-1.8.7.374/ChangeLog
./usr/share/doc/ruby-devel-1.8.7.374/GPL
./usr/share/doc/ruby-devel-1.8.7.374/LEGAL
./usr/share/doc/ruby-devel-1.8.7.374/LGPL
./usr/share/doc/ruby-devel-1.8.7.374/README.EXT
./usr/share/doc/ruby-devel-1.8.7.374/README.EXT.ja
2164 blocks

RPMパッケージからファイルを取り出す

rpm2cpio <package name> | cpio -id
ls
ruby-devel-1.8.7.374-5.el6.x86_64.rpm

 rpm2cpio ruby-devel-1.8.7.374-5.el6.x86_64.rpm | cpio -id
2164 blocks

ls
ruby-devel-1.8.7.374-5.el6.x86_64.rpm  usr

正直な話、「今の仕事を始める前にこれらのことをちゃんと知っておけば無駄な時間を使わなかったのにな」と思いながら書きました。

『やり抜く力 GRIT』を読み終わった

学生時代の読書のパターンと比べて、ここ10年間、技術書以外のジャンルの本をほとんど読まなくなってしまっていて、あまりよろしくないなと思い、以前は読んでいたビジネス書や小説なども読み始めるようにしました。

今回はビジネス書*1の読後感想です。

やり抜く力 GRIT(グリット)――人生のあらゆる成功を決める「究極の能力」を身につける

やり抜く力 GRIT(グリット)――人生のあらゆる成功を決める「究極の能力」を身につける

人生色々あったことも影響してか、学生時代と比べて物事をやり遂げる経験や力が少なくなっていると感じることが多く、立てた目標を完遂する癖をつけたいなとここ最近感じていたところ、たまたまこの本の著者のTEDトークでGRIT(やり抜く力)のことを知り、実践的なことが書いてあるのかと思って買って読んでみました。

読み終わった今感じることとして、率直に言うと期待外れでした。

というのも、『人生において何かを成すには「才能」よりも「やり抜く力」の方が重要度が高いことが研究の結果分かった』ということらしいのですが、その「やり抜く力」を伸ばす方法については(まだ研究途中ということなのでどうしようもないのでしょうが)、効果的な方法が研究の結果分かっている箇所もあればまだ不明なところもあるという箇所が多いようで、学問的に裏付けられた「やり抜く力を効果的に伸ばす方法論」が確立されてなさそうだったからです。

一応、「自分のスキルを上回る目標を設定してはそれをクリアする練習を習慣化する」など、指針となる方法は何個か提示されていましたが、どれも確立された方法論というよりは単なるガイドライン程度に(少なくとも私は)思えるレベルで、個人的に期待していたものが無かったということです。

ただ、本を読んでいてモチベーションを高める効果はあったのと、誰もが努力無しに楽に成功しているわけではないということを再認識できた効果があったのは良かったかと思います。

読む時の注意としては、ここで書かれていることを自身を対象に実践するのはおおよそ問題がなさそうですが、他者に対して実践しようとすると、容易にブラック企業がやるようなやりがい搾取的所業をするように振る舞ってしまいそうだなと思ったので、基本的に自分の人生だけに適用するように使った方がいい考え方だなと思いました。

もっと研究が進んで、やり抜く力を効果的に育成する方法論が確立されるといいんですけどね。

*1:というより自己啓発書?

プログラムの学習をしていて最近行った、ほんのちょっとした貢献

久し振りの雑文。

久し振りにOCamlの学習を再開しようとReal World OCaml 2nd Editionのサイトを見ようと思ったら、ある日突然該当サイトが見られなくなっていました。

Real World OCaml

スクリーンショットとか取ってないので証拠とかないんですが、この時該当サイトのSSL証明書の期限が切れていたので、Chromeでアクセスしたら「見られないよ!」と表示されてしまい、思わずTwitterにこんなことを書きました。

すると、Twitterでこんなリプライが来ました。

(日本で)OCamlを学習していたら絶対に記事を読んでいたり存在を見ているはずのcamloebaさんからこういうリプライが来たので「おお?!」と驚き*1ながらも、「たしかに愚痴っててもしょうがないし、連絡するのが真っ当だよな」と思ったので、早速Twitterで連絡。

Twitterで連絡がいいのかは分からなかったけれど、面倒でやらなくなるよりマシという精神で行いました。

しばらくして、著者の方から返事が来ました。

cronの設定が間違っていたとのこと。

余談ですが、「というかcronでrenewalの設定してると言うことは、SSL証明書にLet's Encrypt使ってるのか?」と思って確認してみたら予想通りLet's Encryptでした。

しばらく経った後サイトを確認したらSSL証明書の期限がちゃんと未来の日付になっていて有効になっていて、サイトも見られるようになったので念のために返信で報告。

すると、こういう返信をもらいました。

polymorphic variantの理解がまだ不十分でChapter6をそこそこにChapter7のError Handlingにやっと進めたというくらいの進捗ですが、ゆるゆるとやっていこうかと思います。

OCamlをやりつつ、ReasonMLの動向も目端に入れてやっていくつもりですね。

*1:実はcamloebaさんからリプライされたのはこれで2度目なんですが、それでも驚きました。別にフォローされているわけでもないので。

Tokyo Quantopian User Group Vol.02 に参加して株やシステムトレードの基本について学んできました

学生時代にほんの少額を投資信託に使い始めて、今も余力がある分だけは資産運用という名目の元、マネックス証券が出しているanswerというスマホアプリなどの情報を元に適当に投資信託をやっていたのですが、最近はあまり手も出せずにロボアドバイザー任せにしていたり、そもそも資産運用とか金融知識を体系的に学んだことがなくて戦略というものが無く、「いつかまとまって勉強したいなあ」と思っていました。

そういう背景があったのと主催関係者からのお誘いもあり、今回Tokyo Quantopian User Group Vol.02というイベントに参加することにしました。

quantopian-tokyo.connpass.com

誘われるまでQuantopianというものを聞いたことがなく、サイトに行って軽く流し見をしてもよく分からず「???」という感じでしたが、ネットで軽く調べたところ、プログラムを組んでアルゴリズムを作って現実の株価を元に投資戦略を開発することが出来るプラットフォームという感じらしいことまでは把握。

qiita.com

「事前にアカウントを作っておいてね」とのことだったので、前日にアカウントを作るまでは資産運用のことも含めて特に事前勉強とかせず、イベントに参加。

イベント内容は以下の通りでした。

  • Quantopianをはじめるための株式取引用語入門
  • Quantopianハンズオン

以下、参加して勉強したことや感じたことを軽く書きます。

Quantopianをはじめるための株式取引用語入門

まずはじめに座学ということで、Quantopianを使う際に知っておいた方がいい用語などを含めた株式関連の座学がありました。

「あくまで初心者向けの内容のため、記述の正確さなどを犠牲にしている部分があることはご承知ください」という趣旨の注意事項が最初にあって、各用語や概念の話がされました。

ドローダウンなど初めて聞く言葉ばかりでメモが追いつかず、不正確な部分が多いかと思いますが、自分が後で振り返れるようためにも、手元に残したメモをもとに羅列していきます。メモといっても発表に使われたスライドの内容をほぼ転記したものですが。移し間違いなどもあるかと思いますし、あくまで参考ということで。

  • 株式
  • 株式分割
    • 株式分割とは、投資家が株を買いやすくすることなどを目的に、会社がその発行済みの株を一定の割合で分割するもの
  • ETF
    • Exchange Traded Fundsの略
    • 上場投資信託
    • アメリカの場合の例
      • S&P 500
        • アメリカの代表的な上場会社500銘柄による指数
      • SPY
        • S&P 500に連動するよう設計されたETF
    • ETFの価格は指数とは関係ない。ETFの価格の変動は指数と関係する。
  • ビッド価格
    • 買い手側の話
    • 株を買おうとしている人が提示している値段
  • アスク(オファー)価格
    • 売り手側の話
    • 株を売ろうとしている人が提示している値段
  • ビッド・アスク・スプレッド
    • ビッドとアスクの価格差
  • ミッド価格
    • ビッドとアスクの真ん中の水準
  • 約定価格
    • 実際に取引がなされた価格
    • (取引された時点における)ミッドの水準ではない
  • 出来高
    • 実際に取引がなされた株数
    • 取引がなく、出来高がゼロでもミッド価格は存在(取引できない)
  • スリッページ
    • 注文価格(あるいは計算上の価格、基準となる価格)と実際の約定価格との差
  • ロング
    • 株などを買って持っていること
    • 買い持ちの持ち高をロングポジションという
  • ショート
    • (持っている株よりも多くの)株を売っていること
    • 売り持ちの持ち高をショートポジションという
  • エントリー
    • (メモできず)
  • エグジット
    • (メモできず)
  • ベンチマーク
    • 一般に、株式市場全体の動きを示す目安となるもの
  • アルファ
    • ベンチマークと比較して、どれくらいうまく利益を出せているかを表す指標
  • ベータ
    • (メモできず)
  • ドローダウン
    • 運用している資産の、過去の最大額を基準として、損失によって減少した額の比率のこと。
  • シャープレシオ
    • 運用資産の価値の変動の程度に対して、どれくらい収益があるかを示す指標
    • シャープレシオが高いということは、リスク(価値の変動)が小さく、リターンが大きいということ
  • ソルティノレシオ
    • シャープレシオの修正版のようなもの
    • 運用資産の価値が上昇するのは気にする必要がないと考え、下落方向の価値の変動だけに対して、どれくらい収益があるかを示す指標

他にも説明があったことは手元のメモには残しているのですが、不十分だったり正確に書けていない恐れが強かったので外しています。

上記に記載した用語の内、聞いたことがあったのは複数ありましたが、正確に理解しているものは一つも無かったので勉強になりました。

この後のQuantipianハンズオンで分かるのですが、こういった用語の意味を把握していないと、トレーディング関連のソフトウェアで表示される値の意味が全く分からないんだなということが分かったのが収穫でした。

後、SPYは大分優秀なETFだということもこの後のハンズオンで分かりました。

Quantopianハンズオン

QuantopianのハンズオンではQuantopianの使い方や表示される画面の意味などの説明を受けました。

受けてみて思ったのは、「私みたいに投資の素人が誰の手ほどきや説明も受けずに公式のチュートリアルだけでQuantopianの使い方を学ぶのは非常に時間がかかりそう」というもので、ちゃんと使うためにはPython(とpandas)の知識を前提にした上で、Quantopian独自のお作法を使ってアルゴリズムを組む必要があるので、今回のようなハンズオンに参加できたのは結構時間の節約になって良かったと思います。

このハンズオンでは説明を聞きながら実際にQuantopianを動かしていたため、自分用のメモを全く取る暇が無く、手元に資料がないのでまともな振り返りが出来ないのですが、雰囲気だけでもお伝えできるよう、Quantopianスクリーンショットを載せておきます。

Untitled

スクリーンショットの文字が小さくて見えないでしょうが、最初の座学で説明があったシャープレシオソルティノレシオ、アルファ、ベータなどの値が表示されています。なので、ここら辺の値が意味するところを分かってないと「???」な状態になること間違いなしだと思いました。

上記スクリーンショットアルゴリズムは運営の方が用意した「毎日取引開始時間にフィリップモリスの株をひたすら買うだけのアルゴリズム」で、見て分かるとおり、ベンチマークに比べて大分負けています。というか、ベンチマークに選ばれているSPYが大分優秀で、SPYを買っているだけで9%以上のリターンがあるので驚きでした。

メモがないので思い出すのも一苦労ですが、以下のような点がQuantopianのすごいところだと思いました。

  • (アメリカの)株価を取得できる関数が用意されているので、スクレイピングとかの手間いらず
  • 「条件に合った銘柄だけを対象に売り買いの設定をする」のが柔軟に可能
  • 株式配当があって、配当が来た分で買いの条件を満たしていたら自動的に買いの発注をするなど、こちらが手間をかけなくても条件に沿った運用をシミュレーションしてくれる

結構細々とした点がQuantopian側でフォローされていて、自分たちは純粋にアルゴリズムを組むことに専念できるという所が強みなのかなというのが教わりながら触ってみて感じた印象です。

深く使おうとすると無限に時間を吸い取られそうなので、今すぐどうこうするということは考えてないのですが、いつか時間を取っていじりたおしてみたいとは思いました。

まとめ

資産運用に対する勉強の意識が高まりました。

はい。高まっていて行動しないといういつものパターンに陥りそうなので、アウトプットの練習がてら、普段の生活に組み込めるよう、ちょっとずつ変えていきたいですね。

あと、主催関係者がFinTech関連のLT大会&忘年会を以下のように企画しているようなので、興味のある人は参加してみるといいと思います。

fin-py.connpass.com

カズオ・イシグロの『忘れられた巨人』をやっと読み終わりました

12月になり、今年も終わろうとしているのでこう書いても大丈夫だと思いますが、個人的に今年一番驚いたことはカズオ・イシグロノーベル文学賞を受賞したことでした。

日の名残り』、『わたしたちが孤児だったころ』、『わたしを離さないで』、『夜想曲集』といった氏の著作を読んでいたくらいのにわかなファンだったのですが、10月5日、仕事から帰宅して一息つきながらネットを見ていたら、「今年のノーベル文学賞カズオ・イシグロが受賞!」というニュースを見つけて思わずビックリし、私と同じく氏の著作を好きで読んでいた親に思わず「今年のノーベル文学賞カズオ・イシグロだってさ!」と言いに行ったくらいです。

最初こそ驚いたものの、少し時間が経って落ち着いた頃、こう思いました。

「実績や実力を考えたらカズオ・イシグロノーベル文学賞を受賞しても何の不思議でもないな」と。

文学部にいた癖にたいして文学のことを知らない私ですが、そんな私でも氏の著作はいい意味で文学作品によくありがちな堅苦しさが少なく、(エンタメ小説ほどではないにしろ)面白く読める作品ばかりで、好きな作家の一人です。

で、そんな氏の著作最新作の文庫が凄い良いタイミングで出版されたので購入してやっと読み終わりました。

読み終わったときの感想

ツイートしていたので引用。

…半分くらいは冗談の混じった感想ですが、実際に感じたことなので、機会がある人は『忘れられた巨人』を読んでみるといいと思います。作中で登場する『霧』がどんなものなのかといった軽いネタバレを知っておいた方が逆に楽しめるかもしれません。

忘れられた巨人』は今まで読んできた氏の著作の中でどれくらいの良さだったか?

最初にも触れたとおり、私がこれまで読んだことのあるカズオ・イシグロの作品は『忘れられた巨人』を除くと以下の通りです。

日の名残り (ハヤカワepi文庫)

日の名残り (ハヤカワepi文庫)

わたしたちが孤児だったころ (ハヤカワepi文庫)

わたしたちが孤児だったころ (ハヤカワepi文庫)

わたしを離さないで (ハヤカワepi文庫)

わたしを離さないで (ハヤカワepi文庫)

夜想曲集: 音楽と夕暮れをめぐる五つの物語 (ハヤカワepi文庫)

夜想曲集: 音楽と夕暮れをめぐる五つの物語 (ハヤカワepi文庫)

この中で私が一番好きなのは『夜想曲集』ですね。カズオ・イシグロの作品の中で唯一の短編集なんですが、だいぶ心に染みる話が多い印象があります。その次が『わたしを離さないで』でしょうか。

世間的な評価だと『日の名残り』と『わたしを離さないで』が二強のような気がしますが、私としてはこんな風に感じています。

で、今回の『忘れられた巨人』がどれくらいだったか自分なりに振り返ってみると、読後の最初のインパクトこそ『わたしを離さないで』などと比べると弱いものの、時間が経ってからふとまた読みたくなる具合で言ったら『夜想曲集』の次に来るくらいには気に入りました。

カズオ・イシグロの作品、舞台設定だけでなく世界観も結構作品によってバラバラなので一律に楽しさを比較することができないと個人的に思っています。特に今回の『忘れられた巨人』は6世紀のイギリス(ブリテン島)を舞台にしたファンタジー要素の強い小説なので、今までのどの作品とも毛色が違うのですが、巷でよく言われているように、これまでの氏の著作にも通底する「記憶とは何なのか?」というテーマが本作にも盛り込まれているので、一回読んだ後ある程度時間をおいてまた読みたくなる作品だなと思いました。

…全く本の内容とか面白さを伝えない記事になってしまいましたが、そんなもんですね。

ノーベル文学賞で話題になってたし、話のネタに読んでみるか」くらいの軽いノリの人には最初のカズオ・イシグロ作品として『忘れられた巨人』はいいかもしれません。

これまでだったら『わたしを離さないで』を順当に薦めていると思うのですが、ノーベル文学賞の受賞の報道の際に『わたしを離さないで』の盛大なネタバレがテレビ含めて各種報道でバンバンされていたので、まだそこまでネタバレっぽいのが蔓延していないという意味でも『忘れられた巨人』はいいと思います。

個人的には久し振りにファンタジー小説で楽しめてよかったです。