2021年振り返り
折角ブログというものをやっているので、一年を振り返ってみる。
昨年は、おかげ様でお仕事をいただく事ができ、何不自由なく暮らすことができた。いつ仕事がなくなっても案件がとれるように自己研鑽しなければならないと思う日々である。
Paren
昨年は目立った変更はなかった。言語の中核の機能はだんだん枯れてきたと思う。
マニュアルシステムの構築
Unixライクなマニュアルシステムを構築した。
$ paren man | head
man(1)
# NAME
man - Paren reference manuals.
# SYNOPSIS
man PAGE(SECTION)
man [[SECTION] PAGE ...]
wahtis
コマンドもある。
$ paren whatis -s3 lis
->list(3) - make a list.
dolist(3), ... - iterates over the elements of a collection.
list(3) - create a list.
list?(3) - determines whether argument is a list.
後はページを充実させていくだけなのだが、それが一番大変だったりする。
GitHub Actionsによる単体テストの自動化
各マニュアルページにはEXAMPLES
という使用例が簡潔に示されるセクションがある。
$ paren man list
list(3)
# NAME
list - create a list.
# SYNOPSIS
(list [OBJECT] ...)
# DESCRIPTION
The function `list` creates a list.
# RETURN VALUE
Returns a list containing the supplied `OBJECT`s.
# EXAMPLES
) (list)
nil
) (list :a :b :c)
(:a :b :c)
# SEE ALSO
- car(3)
- cdr(3)
- list(3)
- cons(7)
--
man3/list.md
このセクションは、プログラムの修正によらず正しくあるべきだから、GitHubにPUSHしたときに自動で検証するようにした。
) (list)
nil
) (list :a :b :c)
(:a :b :c)
例えば、上のマニュアルは単体テスト生成器によって以下のような式に変換され検証される。
(begin
(assert (= (list) nil))
(assert (= (list :a :b :c) (:a :b :c))))
検証に失敗した場合は、不具合が紛れ込んでいるか、APIの修正によるマニュアルの修正漏れとなる。
本
例年は、「技術書が大半」という事が少なくなかったが、昨年はいろいろな分野の本を読んだ。
- 会計クイズを解くだけで財務3表がわかる 世界一楽しい決算書の読み方
- 闘うプログラマー
- コンサルタントの秘密
- コンサルタントの道具箱 勇気と自信がもてる16の秘密
- 予想どおりに不合理: 行動経済学が明かす「あなたがそれを選ぶわけ」
- いつも「時間がない」あなたに 欠乏の行動経済学
- 行動経済学の使い方
- スイッチ! ──「変われない」を変える方法
- 雑談力が上がる話し方 30秒でうちとける会話のルール
- 雑談が面白い人、つまらない人
- アドレナリンジャンキー プロジェクトの現在と未来を映す86パターン
- 暗号解読(上)
- 暗号解読(下)
- フェルマーの最終定理
- 神経ハイジャック――もしも「注意力」が奪われたら
- 女帝 小池百合子
- 数学ガール
- 「普通がいい」という病
- ローマ人の物語 (1) ― ローマは一日にして成らず(上)
- ローマ人の物語 (2) ― ローマは一日にして成らず(下)
- ローマ人の物語 (3) ― ハンニバル戦記(上)
- ローマ人の物語 (4) ― ハンニバル戦記(中)
- ローマ人の物語 (5) ― ハンニバル戦記(下)
- 山に登る前に読む本
- コンテナ物語 世界を変えたのは「箱」の発明だった
- ヤマケイ新書 失敗から学ぶ登山術 トラブルを防ぐカギは計画と準備にあり
- アンガーマネジメント
- Think CIVILITY 「礼儀正しさ」こそ最強の生存戦略である
- LIFESPAN(ライフスパン): 老いなき世界
プログラマ向けの読み物はあまり読まなかったが、読んだ本はほとんど面白かった。もし、あなたがプログラマであるなら以下の本は楽しんでいただけると思う。
- 闘うプログラマー
- コンサルタントの秘密
- コンサルタントの道具箱
- 暗号解読
- フェルマーの最終定理
以前読んだワインバーグの「ライトついてますか」も非常に面白かったが、「コンサルタントの秘密」と「コンサルタントの道具箱」も期待を裏切らなかった。
サイモン・シンははじめてだったが、「暗号解読」も「フェルマーの最終定理」も専門知識がなくとも読みやすく大変面白かった。
ローマ人の物語は以下の印象的な書き出しから始まる。
知力ではギリシア人に劣り、
体力ではケルト(ガリア)やゲルマンの人々に劣り、
技術力ではエトルリア人に劣り、
経済力ではカルタゴ人に劣るのが、
自分たちローマ人であると、少なくない資料が示すように、ローマ人自らが認めていた。
それなのに、なぜローマ人だけが、あれほどの大を成すことができたのか。
一大文明圏を築きあげ、それを長期にわたって維持することができたのか。
ローマ人の物語 (1) ― ローマは一日にして成らず(上)
-- 塩野七生
本を読んでいくうちに、「ローマは成るべくして大国になったのだろうな。」と納得できる。今年は残りの巻も少しづつ読めればと思う。
ダン・アリエリーの「予想通りに不合理」が非常に面白かったので、行動経済学の本を数冊読んだ。行動経済学が示す「市場規範」と「社会規範」の説明は特に興味深かった。他にも「予想どおり」な「不合理な行動」が多数紹介されているので是非一読されたい。
登山
友人に誘われて登山に行くようになった。
高尾
- 高尾山口駅~高尾山~陣馬山
丹沢
- 大倉登山口~鍋割山~塔ノ岳~大倉登山口
- 大倉登山口~塔ノ岳~ヤビツ峠
御岳
- 御岳山駅~御岳山~鍋割山~大岳山~御岳山~御岳山駅
私は「なぜ山に登るのか」と聞かれたら、こう答えるだろう。
「友達に誘われるから」
誘っている友達もこんな調子だから、なんで山に登っているかわからない。
「展望台寄っていく?」
「Google Earthでみれるからいいや。」
ゲーム
昨年は例年に比べて様々なゲームをした。少なくないインディゲームから「アイデアがあれば、一人でも面白いゲームが作れそう」という希望をもらった。
- A Short Hike
- A=B
- ARMA 3
- Assassin's Creed Odyssey
- Assassin's Creed Unity
- Battlefield 1
- Battlefield 4
- Blood and Bacon
- Borderlands 2
- Borderlands 3
- Call of Duty: Modern Warfare 3
- Cookie Clicker
- Crazy Machines 3
- Dorfromantik
- EARTH DEFENSE FORCE 4.1 The Shadow of New Despair
- GRIS
- Glass Masquerade 2: Illusions
- Gorogoa
- Grim Dawn
- Half-Life 2
- Hand Simulator
- Inscryption
- Instant Farmer
- It Takes Two
- Kingdom Rush Frontiers
- Mini Motorways
- Monster Hunter: World
- PUSH
- Papers, Please
- Persona 4 Golden
- RimWorld
- Risk of Rain 2
- Room to Grow
- SHENZHEN I/O
- Scalak
- Serious Sam 3 BFE
- Slay the Spire
- Understand
- Untitled Goose Game
- Valheim
- YAPP2: Yet Another Pushing Puzzler
- YAPP: Yet Another Puzzle Platformer
- 東方風神録 〜 Mountain of Faith.
印象的だったゲームを簡単に紹介したい。
大傑作カードゲーム。「ローグライクデッキ構築」というジャンルを作った草分け的存在。何がゲームを面白いと思わせるのか、考えさせられるゲーム。
「Slay the Spire」に「物語」を追加したようなゲーム。
昨年一番楽しかったパズルゲーム。難易度は高め。
SFコロニーシミュレーション。Steam内で印象的なレビューがある。
この時間泥棒が存在しなければ、人類の文明はもう少し発展していたかも知れない。
ローマ人の物語を読んで触発されて買った。ローマは直接関係ないが、「アテナイ」と「スパルタ」が繰り広げる「ペロポネソス戦争」が主題となっている。
無理やり感がぬぐえないが、有名人も多数登場する。ちなみに、何人かはローマ人の物語でも言及がある。
- レオニダス
- ペリクレス
- ヘロトドス
- ピタゴラス
- ソクラテス
ちなみに、ゲームそのものは「戦闘が単調になりがち」、「レベルの差があると暗殺ができない」などの理由で個人的にはまったく面白くなかった。古代ギリシアに興味がなければ勧めしない。
古代エジプトに興味があるなら「Assassin's Creed Origins」もお勧めである。
ギザの大ピラミッドを見たときはあまりの精巧さに感動した。「Assassin's Creed Odyssey」と同じ理由で、ゲーム自体はあまりお勧めしない。
いずれのゲームも、「ディスカバリーツアー」という機能が収録されている。これは、ゲーム内のマップを使用して当時の人々の暮らしや政治などがどういったものなのか体験できる機能である。