『やり抜く力 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世紀のイギリス(ブリテン島)を舞台にしたファンタジー要素の強い小説なので、今までのどの作品とも毛色が違うのですが、巷でよく言われているように、これまでの氏の著作にも通底する「記憶とは何なのか?」というテーマが本作にも盛り込まれているので、一回読んだ後ある程度時間をおいてまた読みたくなる作品だなと思いました。

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

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

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

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

SphinxCon JP 2017 に参加してきた #sphinxjp

自分がIT系の勉強会へ定期的に参加するようになったきっかけの一つであるSphinxのイベントがあったので参加してきました。

https://sphinxjp.connpass.com/event/71056/

おしゃれな会場の様子が分かるツイート。

以下、今回のイベントの発表目次です。

  1. cocoatomo 「Sphinxが支える翻訳ドキュメント」
  2. 鹿野桂一郎 「Sphinxで売り物の書籍を作ってみた」
  3. r_rudi 「Re:VIEWとSphinxと、時々、ボク」
  4. Iosif Takakura 「社内のマニュアルをSphinxで作ってみた」
  5. 渋川よしき 「HTMLテンプレート再構築案」

イベントが始まるときの会場説明の際の様子はこんな感じでした。

Untitled

イベント途中で提供されていたケータリングの様子。

Untitled

ケータリングに群がる人々。

Untitled

以下、メインコンテンツである発表の様子を写真とともに軽く感想を交えて書き残します。

Sphinxが支える翻訳ドキュメント」 @cocoatomo

Untitled

普段、「ちょびよみ」というこじんまりとした勉強会でお世話になっている @cocoatomoさんの発表でした。

発表内容のメインは「翻訳ドキュメントができるまで」とのことで、想定読者はSphinxを使っている人と翻訳プロジェクトの管理に興味がある人で話をされていました。

これが発表で使われたスライドです。

Pythonドキュメントの翻訳率は2017/11/27時点で日本語が圧倒的の92.73%!

PEP545により、日本語版とフランス語版が docs.python.orgのドメイン配下に置かれるようになったとのことで、素晴らしいですね。

翻訳プロジェクトの始め方

始めるに当たって考えること

  • 原文と訳文は1対1か? 脚注、訳注の追加や文章の順序を入れ替えをしたいか?
    • YesならSphinxはやめておいたほうがいいだろうとのこと
  • 翻訳作業は一度きりか継続的に行うか?
  • 翻訳プロジェクトを管理する上で困難な点は何か?
  • 困難な点をフォローするために、どのツールやサービスを使って、どんな運用をしていくのか

当たり前の話だろうけど、単発型よりも継続型の方が管理・運用が大変とのこと。

翻訳作業の困難さ

  • 原文の管理
    • 更新の取り込み
  • 訳文の管理
    • 原文と訳文の対応つけ
    • 複数人作業による翻訳作業の衝突回避
  • 翻訳
    • 訳語の統一
    • 表現の統一(特に複数人作業)

発表中、一時的にディスプレイとPCの接続がおかしくなったりする、あるあるなトラブルが発生したりしました。

普段から翻訳に対する思いをTwitterやSlackや或いは直接お話しして伺っていたのですが、改めて翻訳に対する熱い思いをお持ちなのだなと感じました。

Sphinxで売り物の書籍を作ってみた」 鹿野桂一郎 (@golden_lucky)

敏腕編集者の鹿野さんによる発表。怪我をされたらしくて松葉杖で歩いていて、発表時は座って喋っていたので下の写真には写っていません。

Untitled

発表に使われたスライドは以下の通りです。

『Goならわかるシステムプログラミング』ではSphinxのmake latexpdfでPDFを生成してはいないとのこと。

正直TeXは全く分からないに等しい知識レベルだったため、発表内容で披露された数々の努力がどれくらい大変なことだったのかは想像でしか分からないですが、売り物の書籍を作るのはやはり大変なことなんだなあというのが感じたことです。

話しを聞く限り、これはTeXに習熟した鹿野さんだからこそ可能になったハックだなあと思いました。話している内容が完全に技術寄りなので、技術者が編集者をしているという評はその通りだと思いました*1

完全に「鹿野専用Sphinx」という趣なくらいの追加・改造をしているようで、何かロボットアニメを見ているような気分になりました。

「生TeX埋め込みのロールを早く作っておけばよかった」という話が面白かったですね。

まとめ: 「Sphinxで困ったら日本語でツイートすればいい」

鹿野さんからの一言を引用。

「Re:VIEWとSphinxと、時々、ボク」 @r_rudi

Untitled

スライドはこちらです。

Re:VIEWとSphinxと、時々、ボク — SphinxCon 2017 1 ドキュメント

タイトルからも分かるようにRe:VIEWとSphinxの話が主でした。全体的にRe:VIEWとreSTの特徴や変換についての話が多かったのですが、reST->Re:VIEWの変換をするSphinx拡張を書いていただけではなく、Re:VIEWの方にreSTへ変換する機能をPRで出してmergeされていたという話しを聞いてびっくりすると同時にすごいなって思いました。

SphinxCon 2017が終わった後、@r_rudiさんを含めた有志で軽く飲み会みたいなものが開かれていたのでそれにお邪魔して色々楽しい話が出来たのもよかったですね。

「社内のマニュアルをSphinxで作ってみた」 Iosif Takakura(@huideyeren)

Untitled

発表に使われたスライドはこちらです。

Excel方眼紙が大嫌いです!」ということを言ったら会場から拍手が出たのが面白かったですね。

技術よりも現実世界と戦う機会の多い人は彼の発表スライドを読んでみると共感することが多々あると思います。

実は発表者のTakakuraさんは前職の同僚で、同じプロジェクトをいくつか手がけたりしていたので、彼の発表の裏にある背景とかを知っている関係もあり、「ああ、やっぱり大変そうだなぁ…」と共感することばかりでした。

以下、発表を聞いているときの私の感想です。

「HTMLテンプレート再構築案」 渋川よしき(@shibu_jp)

Untitled

発表に使われたスライドはこちらです。

HTML Template Proposal for Sphinx 2.x — HTML Template proposal for Sphinx 2.x 2017.11.23 documentation

前の発表者のTakakuraさんの発表内容を受けて、「make singlehtmlでwordやmediumに貼り付けると綺麗な形のまま形式を変換できるので、引き継ぎの形の一つとしておすすめ」という小話があり、かなり有用な知識が得られましたね。

渋川さんの話はデベロッパーやメンテナ向けの話とのことで、epub3ビルダーの走りをSphinxにプルリクした身としてはかなりためになる話でよかったです。

話の内容を箇条書きにすると以下のような感じ。

  • HTMLテンプレートの依存の多さ・複雑さにより、自作のテンプレートを差し替えるのが難しくなっているので簡素化したい
  • 検索機能の強化をしたい
  • OGP(Open Graph Protocol)の強化
  • Offlineモード
  • パフォーマンス改善
    • Prefetch
    • AMP

今回の発表とは直接関係ないですが、私がプルリクでSphinxに追加した拙いepub3ビルダーを渋川さん*2がガシガシ作り直してくれたおかげで、昔とは比べものにならないほどvalidなepub3が生成できるようになったので感謝すると同時に、その辺りの作業を外から眺めていたこともあって、HTMLテンプレートの話とかは興味深く聞かせてもらいました。

r_rudiさんの項目でも触れた有志の飲み会に渋川さんも参加していて色々お話しできたのも楽しかったですね。

LT: 木星人はnbsphinx使ってみよう by driller/どりらん

Untitled

nbsphinxいいよ!という話しでした。

…すいません、集中力が切れていて、あまりちゃんと話を聞けてなかったです。

今発表スライドを見たらnbsphinx良さそうですねという感想です。最近Jupyter notebookを使うことが増えてきたので活用したいと思いました。

以下終了後の余談。

LT: Sphinx-users.jp というコミュニティの紹介 by @usaturn

今回のSphinxCon 2017の開催のとりまとめをしていたusaturnさんによるSphinx-users.jpの紹介。

Sphinx-users.jpが普段どういう活動をしているかを紹介して、来場者の人だけに『Sphinxをはじめよう 第2版』を安く購入できるクーポンコードを提示していたりしました。

多分発表スライドが公開されていない(はず)理由はこのクーポンコードがスライドに含まれていたからだと思います。

忙しい中、会場調整だったり各種とりまとめをしていたはずなのでお疲れさまでしたと伝えたいです。

まとめ

理由は分からないですが、何故か久し振りに参加して楽しく過ごせて「かつ」翌日体調的にそれほどダメージを受けなかったのでとてもよかったです。

あとそれほど日をまたがずに参加ブログ記事をアップできてよかったですね!

*1:世の中に存在する編集者の中で自分の編集作業用にHaskellでソフトを書ける人、そうそういないと思います

*2:アクティブなメンテナの小宮さんも結構改良に参加されていたはず

『プロフェッショナルSSL/TLS』は業務で即役に立った良い本でした

言いたいことはタイトルに書いたのですが、「『プロフェッショナルSSL/TLS』、良い本です」というのが結論の書評です。

『プロフェッショナルSSL/TLS』 – 技術書出版と販売のラムダノート

『プロフェッショナルSSL/TLS』に関しては前回のブログ記事で以下のように軽く触れていました。

業務でSSL証明書周りの作業をしていて、今まで穴だらけだったSSL/TLSの知識がむっちゃ足を引っ張っている現状だったので、以下の書籍を買いました。

最近こんなことを勉強してます - プログラマ行進曲第二章

まだ1/4も読めていないですが、それでも十分仕事に活かせているので原著の作者と翻訳者とラムダノートさんありがとう、という気持ちです。 前職でSSL証明書を取得する必要があったときにネットのリソースだけでSSL/TLS周りを勉強しましたが、知りたいことを探していても古かったりして本当に正しいのか逐一調べながらやっていたのに対して学べなかった経験からすると、SSL/TLSの勉強をしたかったらさっさとこの本を買って勉強した方が時間の節約になっていいと思いますね。

最近こんなことを勉強してます - プログラマ行進曲第二章

引用で触れている業務*1が終了したので、上記の引用のように軽く感想を書いて終わりにするのではなく、一回振り返って書評をブログ記事にしてまとめた方が今後の自分のためにもいいかなと思って今書いています。

本の内容の真っ当な書評としては他の方がもっと詳細に書いているので、そちらを見た方がいいでしょう。

【書籍】プロフェッショナルSSL/TLS:Geekなぺーじ

jovi0608.hatenablog.com

私の書評はどちらかというとユースケースに相当するもので、「こういう問題があって困ったので買って、無事に問題を解決しました」という風に読んでもらうといいのではないかと思います。

あと、書評とは書いていますが、まだ私はこの書籍を全て読んだわけではなく、業務に関連して参照した部分+αくらいしか読んでないことも記載しておきます。

何を必要として『プロフェッショナルSSL/TLS』を買ったのか?

上でも引用したように、業務でSSL証明書を扱う必要のある作業を担当することになり、元々のSSL/TLSの知識があやふやな状態でやっていたら仕事が進まなかったのでそれを解消するために買いました。

担当した業務についてもう少し具体的に書くと、Apache Kafkaを利用したプロダクトがあるのですが、KafkaがSSLを利用*2している箇所があり、そこに必要な証明書の設定をgradleでしていたのをopensslにしてシンプルにするという業務でした。

ここで問題になったのが、何回も述べているように、私の元々のSSL/TLS知識があやふやなことでした。

今回担当した業務では「既存の設定のフローをシンプルにする」というものでしたが、この既存の設定の仕組みが割と複雑で、まずそこを理解してシンプルにするところで難儀していたのに加え、SSL/TLS関連の知識があやふやだったせいで「そもそもどの設定を変更すればいいのか、あるいはいけないのか」ということが分からず、既存の設定のフローをシンプルにする前の段階で詰まることが業務初日に多発していました。

ここで「まずい、このまま行くと何も進捗が出ずに何日も経ってしまいそうだ」と思ったことと、元から「いつか買おう」と思っていたことが重なり、『プロフェッショナルSSL/TLS』をラムダノートさんのサイトに行って即購入したという流れになります。

『プロフェッショナルSSL/TLS』のどのあたりが役に立ったのか?

個人的にこの『プロフェッショナルSSL/TLS』という書籍が素晴らしいと思う点の一つは、「そもそも証明書とは何か、使用されているプロトコルは何か、それらがどういう風に使われているのかといった、SSL/TLS関連の全体的な知識」と「opensslコマンドを使ってCSRを生成するといった、より実装や具体的な作業に近づいた知識」の両方がちゃんとした分量でまとめられていて、自分の求めている情報がどちらの種類であっても引き出しやすくなるように章立てられていることです。

私みたいにSSL/TLSの知識があやふやな人がインターネット上のリソースだけでSSL/TLSに関することを調べようとすると、以下のような問題にぶち当たると思います。

  • 自分が分からなくなっている問題がSSL/TLSの全体的な知識を要求するものなのか、それとももっと実装に寄った具体的な知識なのかが判別付かない
    • 判別が就かない位なので、ネット上のリソースの正しさが判断できない
  • SSL/TLSに関して自分が抱える問題を解決してくれる情報が各サイトに散らばっていて、かき集めるだけでも一苦労

実際、私は前職でサイトのHTTPS化をする際に(余力がなかったので)ネット上だけでSSL証明書に関する事項を調べましたが、上記の問題に結構ぶち当たって時間を使ってしまった記憶があります。

それに比べると、この『プロフェッショナルSSL/TLS』は一冊手元にあるだけで疑問に思った点をすぐに調べることが出来、調べた点に関連しそうな情報も書籍内のみで少なくとも概要は知ることが出来るようになっていて助かりました。

私の業務の場合で言うと、既存の設定フローで証明書にAuthority Information Accessの情報を追加しているところがあったのですが、そもそも証明書のフィールド自体の知識がなかったので、「3.3.1 証明書のフィールド」と「3.3.2 証明書の拡張」のセクションで書かれている知識が非常に役立ちました。

加えて、実際に設定フローを変更する際、CAを立てて自分の望む設定で証明書を発行したり署名する際に必要なopensslの具体的なコマンドや設定ファイルの書き方などについては、「11.2 鍵と証明書の管理」と「11.4 プライベートCAを作る」に記載されていることをそのまま活用できました*3

私は今回使いませんでしたが、ApacheやNginxで設定する場合などの章もある*4ので、そういう知識が必要な業務でも十分役に立つと思います。

まとめ

最初にも書いたとおり、「『プロフェッショナルSSL/TLS』、良い本です」というのが感想です。

私みたいに「SSL/TLSの知識があやふやなのに業務で急に必要になった!」という人は、ネット上のリソースだけで消耗しそうになったら、「この本の購入を検討した方が結果的に安上がりになるかも」ということを頭の片隅にでも置いておくといいでしょうね。

安くはない書籍なので、会社のお金を使って購入するのもいいと思います。

*1:といってもチケット単位のそれほど大きくないものでしたが

*2:公式ドキュメントだとこのあたりの話です

*3:opensslのコマンドに関しては多少知りたいことが書かれてなかったのでmanコマンドによるヘルプと他サイトに記載された情報でカバーしています。

*4:これらの設定に関してはIPAが発行している「SSL/TLS暗号設定ガイドライン」で足りる場合も多いかと思いますが。

最近こんなことを勉強してます

一昨年は1月ごとにやったことをまとめた記事を9月くらいまではやっていたんですが、もう今年は見る影もないので不甲斐ないですね。

前回から進捗があったわけではないのですが、何かしら理由をつけてアウトプットしないと知識の活用の巡り的によろしくなくなってきているので無理矢理ひねり出します。

前回の記事はこんなところです。

takuan-osho.hatenablog.com

takuan-osho.hatenablog.com

仕事の関係で学んでいること

Kafka(の触り)

前回Kafkaについて触れたときにも少し書きましたが、仕事の関係でKafkaを使う機会が増えてきていて、少なくともアーキテクチャの理解と軽い使い方くらいはおさえておかないと意味不明になってしまうので、引き続き勉強しています。

とはいっても、プライベートの時間で学ぶのは中々キツい題材なので、仕事を通して学んでいる最中です。

一番の学習リソースは会社のプロダクトと"Kafka: The Definitive Guide"です。特に後者は全体像から実際の使い方まで説明してくれているので重宝しています。

とはいってもまだ最初の方しか読んでないんですけどね。

SSL/TLSの基本から真っ当なことまで

業務でSSL証明書周りの作業をしていて、今まで穴だらけだったSSL/TLSの知識がむっちゃ足を引っ張っている現状だったので、以下の書籍を買いました。

プロフェッショナルSSL/TLS(紙書籍+電子書籍)www.lambdanote.com

前から欲しかった本なので買うきっかけができてよかったと思います。

まだ1/4も読めていないですが、それでも十分仕事に活かせているので原著の作者と翻訳者とラムダノートさんありがとう、という気持ちです。

前職でSSL証明書を取得する必要があったときにネットのリソースだけでSSL/TLS周りを勉強しましたが、知りたいことを探していても古かったりして本当に正しいのか逐一調べながらやっていたのに対して学べなかった経験からすると、SSL/TLSの勉強をしたかったらさっさとこの本を買って勉強した方が時間の節約になっていいと思いますね。

Elasticsearch / Kibana

これは学んでいるというよりかは学びたいこと。ちょうどいい書籍が出たみたいなので買って勉強したいですね。

データ分析基盤構築入門[Fluentd、Elasticsearch、Kibanaによるログ収集と可視化]

データ分析基盤構築入門[Fluentd、Elasticsearch、Kibanaによるログ収集と可視化]

プライベートで適当に学んでいること

OCaml

"Real World OCaml"を使って勉強しています。実務に使うというよりかは関数型言語を学んで教養をつけるという意味合いで。

Real World OCaml

Real World OCaml

現在は5章のField Punningまで行きました。全23章なのでまだまだですね。

ただ、勉強していく中でかなり気に入ってきているので、何かしら簡単なコマンドラインツールを一回OCamlで作ってみたいですね。それを皮切りにして何かやってみたい気持ちもあります。

今からOCamlに興味を持った方、書籍をやるのもいいですが、第2版のページが(まだ途中とはいえ)できているので、そちらを使って勉強してみるといいと思います。

Real World OCaml

(Linuxの)基礎

完全に止まっていた『詳解システムパフォーマンス』の読書を再開しました。

詳解 システム・パフォーマンス

詳解 システム・パフォーマンス

とはいっても、微々たる進捗でしか進んでいないのでいつになったら終わることやら…

この書籍は基礎力が付くと思うのですが、即効で効果を発揮するタイプの書籍ではないと思うので、効果が早めに出そうな以下の書籍も最近買って読んでいます。

標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド

標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド

業務で相手にするOSがCentOSなことと、そろそろsystemdとか押さえておきたいことと、そもそもLinuxのことで知らないことがたくさんあるので、本屋でCentOS 7を対象にした本を吟味して、一番よさそうなこれを選べました。『詳解システムパフォーマンス』に負けず劣らずな厚さと重さで大変です。

あとディープラーニングとか機械学習も勉強しているといえばしてるのですが、色々詰まったりできていないことが多いので、別の機会にまとめて記事にしたいです。

以上。