将棋とは関係ないのですが (いや、少しだけ関係するのですが)、こんな呟きを見つけました。

いろいろスポーツの本とかも読んでみて、やはり反復練習によって脳の記憶を最適化し認知エネルギーを使わずにできることを増やしていって、空いた認知エネルギーをより難しいことに回す... というのが、人間のやってることなんだなというのがわかる

これ、多分色々な分野でも同じことが言えると思います。

例えば将棋の software。他の人に依頼されて install したり、自分の PC を買い替えて install したりする際、思い出さなければならないことがいくつかあります。

  • .net framework desktop runtime を必要とするかどうか
  • 管理者権限を必要とするかどうか
  • 7-zip を使えば管理者権限なしでも無理やり install できるかどうか
  • そもそも 32-bit CPU だった場合に何が使えるか
  • dlshogi のように GPU を使う場合は事前に何が必要か、 license agreement の中身は何か
  • 評価関数しかなくて探索部は「やねうら王」を用いるような AI はどう導入するか
  • 現在の配布 URL はどこか

そういう面倒なことを全部 Scoop の manifests に押し込んでしまえば、 scoop install shogigui suisho のように1行で簡単に install できるようになります。


実は web 上の server も似たような面があります。

私は AWS 使ったりせずいつも VPS なので、VPS を例に説明すると、初めての人にはなかなか敷居が高いのではないかと思います。

  • 市場占有率が高い最新の distr. を使うとすると CentOS Stream 9 あたりだが、最初から RSA/SHA1 を受け付けない (国内でよく使われている terminal である Tera Term は最近まで RSA は RSA/SHA1 しか使えなかったため、最初から接続できない状況であった)
  • SELinux がなかった時代の文書を参考にすると、SELinux のために文書通りに進まない (そして SELinux を無効化することは望ましくない)
  • rpm や yum の時代の文書は、dnf module に対応していないのでかなり古いやり方が記載されている
  • PHP の最新版を使うには remi を使うのが一般的
  • IPv6 回りは知らないとハマる (設定しないと IPv6 が使えないことが多い、IPv6 が使えない状態で MyDNS に登録すると IPv4 を巻き込んで無効化されることがある、localhost は 127.0.0.1 とは限らない、など)
  • 各 software の End of Life を気にしないといけない

で、何回も servers を立てて慣れてくるとあまり頭を使わなくてもよくなります。

そうしたら、後はその先のことを考えるだけです。私は Rails が好きなので、class 図を考えたらそのまま Rails に落とし込んで、frontend は何も工夫せずとりあえず使い物になればいい、程度の取り組み方をします。(React とか手を出す方がいいのだろうとは思うのですが、React は好きじゃないし、まあ「なくてもいいかな」と。)