2017のあれこれ

2017-01-01 / [note]

2016の振り返り

前半

割と要素技術に偏ってしまった。 後半で巻き返そうとしている感じ。

Clojure

職場でPythonを使っていたが、ずっと2.x依存で導入も面倒だしかといって3.xにアップデートするほど Python好きでもなかったので別の武器を身に着けたかった。 Lisp系方言は以前からずっと触れてみたかったところだったのでまともに学習を始めた。

ルーティング・プロトコル

Twitterで良い本を教えてもらったのでOSPFとBGPまわりを中心に再学習。 しかし内容に不足を感じたまま終了。

主にOSPFのデータ交換の実際とかが見えてない。もうRFC読まないといけないレベルだと思う。

OpenFlow

なんとなく再学習。消化不良。 Haskellでデータのparsingを一部だけ実装してみたが、 いまいち自分のデザインに納得できずいったん保留にしている。

Haskell

タスクの記録用のアプリケーションの記述にトライしている。 servantを使ったWeb APIを作ってみる。

relational-recordと組み合わせたWeb DBの基本形は押さえられたので、 今後も応用の効くノウハウにはなりそう。

しかし、RESTful Web APIのデザインはなかなか正解がつかめず今も解っていない。

後半

コンピュータ関連の基礎の再入門をしはじめる。 この年齢にしてあまりに知らなすぎると自覚して愕然としたため。

プロセッサ

難しくて解ったところは少ないけど、 パイプライン周りのハザードとそれに対する施策があるのを知ったのは収穫。

まだもんやりしてるところも多い。

  1. ページングとメモリ管理
  2. キャッシュ機構

コンピュータ全般

論理回路、レジスタ、アセンブリ言語、仮想マシンなどを 総なめする書籍を読む。

中間の構造としてスタックマシーンという抽象機械を実装するのは発見だった。 どうやらGHC Coreも抽象機械に対する命令へと変換されて、 そのあとようやく機械語になるようなので、「なぜそうなっているのか」を気にする手がかりは得た。

型システム

とにかく読みたかった型システム入門。 まだ最初の方だけれど、プログラミング言語の構文が数学的対象となって 形式的に記述されていくのは刺激的だ。

証明がいちいち難しくてなかなか進まない。おそらく2017でも読みきるのは至難だろう。

とはいえ、集合と論理が基本なので実は次で述べるオイラーの贈物よりは、 少ない前提で解けるはずなのだが……。

数学

オイラーの贈物の関数のあたりまで来てまた壁にぶつかる。 問題を与えられた時に解法を計画できないことが多く、 何が根本的な原因なのかまだ判明していない。

より簡単な問題を何度も解きながら、 「既知の解法を編成して応用していく」というスタイルを定着させる必要がある。

Elm

初めてまともに書いてみた。 JSの縛りがないのであれば良さそうだが、 production投入するにはまだまだ自分のノウハウが不足していると感じる。

UIデザインのスキルが圧倒的に不足していると気づいたのもElmのおかげ。 未だにUIのデザインはできていない。

Minecraft

急にゲームがやりたくなって始めた。

プレイ開始以来、羊が一匹も見つからず未だにベッドが作れない。(ノД`)

現在は見晴らし塔付きの豆腐ハウスをベースキャンプにして羊探索に出ようかとしているところ。 今後も羊発見に向けた活動がテーマになると思われる。

ベースキャンプへの帰路を確保するため、 道中に灯台を作りながら探索路を拡大していくのが今後のプラン。

  1. 最低限のコストで安全に灯台を作る方法
  2. 夜間のMOB忌避するための簡易シェルタ作法

あたりが決まれば割とルーティンで進められそうだ。 しばらく時間がとれないのでプレイできなさそうだけど。

2017のテーマ

巧遅は拙速に如かず

どんなアウトプットに関しても今までの自分の悪い癖を修正していきたい。

  • つい大きなものを作ろうとして挫折する

大きなものを作るには相応の経験が技術の引き出しが必要。 それを身につけるためにも

  • 何事も小さく、繰り返して継続する
  • 小さく区切った目標を素早く終わらせる
  • 素早く終わらせた後に燃え尽きずに推敲するリズムをつける

を原則に取り組む。

技術以外

フィクション

もう少しフィクションを読みたい。 既に持っている本でも再読の価値のあるものはいっぱいあるので。

  • 冒険小説類
    • アリステア・マクリーン
    • スティーブン・ハンター
  • ファンタジー小説類
    • タニス・リー (新規)
    • クライヴ・バーカー (新規)
    • ジョナサン・キャロル (新規)
    • スコット・ウェスターフィールド
    • フィリップ・プルマン

あたりを読みたい。

ノンフィクション

マクニールの世界史の本がとても面白い。 引き続き読みたい。

その他

  • 暗号技術
  • 日本語
  • 論理

暗号技術は教養としてもう一度学習しておきたい。 日本語は論理と組み合わせて文章の組み立て方を見直したいため。

技術

引き続き基礎関連を勉強する。

  • 型システム

実践の分野で取り組みたいことは、

  • 小さなもの(ゴミやおもちゃ)をたくさん作る
  • 小さな問題を(テキストなどから引いて)解いてみる
  • 小さくテストを書くことに慣れる

ほんとこの年齢でこんなこと言ってるの悲しすぎるけど、 このままでいいはずもないので取り組む。

あとは引き続きHaskellを主戦場にして自分の武器となるように磨く磨く。

KPIをまとめる

朝活の計画

型システム入門の読み方を変えよう。 演習問題が解けるまで次に進まないだと無限に時間を消費する。 なので、とにかく進むことにする。 解らないところにマークをつける。

11章まではとにかく進もう。 月に2章くらいいけると仮定する。

  • 1
    • 型システム入門 3, 4章
  • 2
    • 型システム入門 5, 6章
  • 3
    • 型システム入門 7, 8章
  • 4
    • 型システム入門 9, 10章
  • 5
    • 型システム入門 11, 12?章
  • 6
    • Haskellアプリ Web APIリファクタリング

キューに積んでおく

  • Haskellアプリ Web UIを捨ててCLIにする?

通勤読書の計画

文庫や電子書籍に絞ること。 まあ、計画して読書するのって面白くないんだけどね。

とりあえず半年分だけ。 かつ、再読重視。

  • 1, 2
    • ウィリアム・マクニール 『世界史』
  • 3, 4
    • サイモン・シン 『暗号解読』
  • 5
    • アリステア・マクリーン 『女王陛下のユリシーズ』
  • 6
    • ブレイク・スナイダーの本

キューに積んでおく

  • 永井均 『倫理とは何か』
  • タニス・リー 『闇の公子』
  • ジョナサン・キャロル 『死者の書』

休日読書の計画

こちらも半年まで計画しておく。

  • 1
    • ローン関連の本
  • 2, 3
    • 論理トレーニング
  • 4, 5, 6
    • オイラーの贈物

ふむ、計画というか見通し作ると気持ちが楽になるな。できるかどうかは別として。