2021年11月の日記
2021年11月30日 (火)
晴れ、曇
PacktのBlack Fridayセール
主にコンピュータ関連の書籍を出しているPacktという出版社があります。クオリティは中にも微妙なものもあるのですが、対象分野が興味深いところをついてくるのと出版の頻度が高く新しい情報が手に入るのが魅力です。Amazonで紙の印刷版とKindle版が買えますが、もし何冊も興味のあるものがあるなら、ホームページから一定期間読み放題のサブスクリプションを購入した方がたぶんお得です。現在セール中で、通常1ヶ月$9.99のところが最初の5ヶ月間の間だけ1ヶ月$5で購入できるみたいです。また、毎年年末に1冊$5で購入できるセールもやっていて、おそらく今年もやるのではないかと思います。去年何故かカードが使えずに買い逃してしまいました。今回のセールのも金額的には購入したいのですがそういう理由で迷ってます。
11月終わり
今年も残り1ヶ月になりました。思ったより日記が続いてよかったです。内容は気にしてません。めっちゃ適当に書いてます。日記をですます調で書くのはかなり違和感があります。12月からは変えます。本当は日記よりも本編のゲーム制作の記事を毎日更新できるようにしたいところです。
2021年11月29日 (月)
晴れ
Amazonで買い物
只今AmazonでBlack Fridayセールやってます。1万円以上購入するとポイントが入るというのにつられて気になっていた本をまとめて買ってしまいました。スマホアプリから購入するとさらにポイントがつくということでインストールしてそこから購入しました。予定外のものまで買ってしまい結構な金額になってしまいました。本題をケチってもやもやしているのは精神衛生上よくないので悪い買い物ではなかったはずです。セールは今週木曜日までやっているようです。
Raspberry Pi OSの新しいバージョンが出ていた
11/8にbullseyeのバージョンが出たようです。bullseyeとはDebian 11のことです。
上のニュースのページを見ると、アップグレードするにはDebianのようにaptでアップグレードするのではなく、新しいイメージをダウンロードしてインストールし直すのが良いそうです。ちょっとばかり面倒です。
2021年11月28日 (火)
曇り、晴れ
プログラミング言語Goを読み終えた
とても良い本でした。Goの基礎を固めることのできる本です。たとえ今後Goを使うことがないとしても、プログラミング共通の基礎を学ぶこともできて無駄にはならないです。練習問題を全部スキップして1週間ほどかかりました。練習問題は難しすぎず簡単すぎずといったところで、相当な量があるので全部こなすのは大変です。だけどそれだけの見返りはあることでしょう。
2021年11月27日 (土)
雨のち晴れ
AV Linuxをインストールした
調子の悪くなってしまったGarudaを一旦削除して、AV Linuxをインストールしました。AV Linuxはオーディオやビデオを制作するための環境を提供するようにチューニングされたディストリビューションです。現状もう一つの選択肢としてはUbuntu Studioというのがあります。AV LinuxはMX Linuxベースxfceを採用していて、一方Ubuntu Studioは調べてないけどまずUbuntuベースでKDE Plasmaを採用しています。どちらでもよかったけど今回はAV Linuxを選択しました。ベースとなるMX Linuxのバージョンは19で、最新の21のものではありません。MX19はDebian 10 Busterが元になっています。Debianの最新版は11のBullseyeです。あまり不満はないです。デスクトップの第一印象はフラットなUIで無駄な主張がなく統一感があっていい感じです。このOSの使用目的は明らかなので、Solusとの使い分けもはっきりしてきました。ぼちぼち音の作り方も覚えていこうと思います。
Code::Blocksが使えない
Code::BlocksというCとC++のIDEがあります。プロジェクトのテンプレートが最初からいくつか入っていてちょっと使ってみたくなるIDEです。しかし、最近いくつかのデスクトップ環境で試したのですがUIがどれもまったく正常に表示されません。最近のディストリビューションのデスクトップテーマはダークテーマになっていることが多いです。Code::BlocksはwxWidgetsを使っていると思われるのですが、ひどく乱れます。全く使えないというわけではないですが使う気が起きるようなものではありません。テーマをライトテーマにしてもだめです。もしかしてメインターゲットはWindowsなのかもしれないという疑問が沸きました。残念です。
今年の雪予想
去年に続いて大雪になると言っている人が多いです。2年連続は辛いです。今日明日でタイヤ交換を済ませます…
2021年11月26日 (金)
雨、晴れ
Garudaがおかしくなった
システムをアップグレードしたらログイン時にフリーズするようになりました。ログイン画面(GDM)も表示されず固まることもあれば、パスワードを入力してEnterを押したあとデスクトップが表示されずに固まることもあります。GarudaはLinuxカーネルを気軽に選択して起動できるようになっていて、linux-zenというのがデフォルトとなっています。これの代わりにlinux-ltsで起動すると問題なくログインできます。どうもこのPCのハードウェア構成とGarudaが相性良くないような気がします。GarudaのメインであるKDE PlasmaのDr460nizedというエディションは最初に使いたかったものだったのですがやはりログイン時に固まってしまい使えませんでした。やむなく一度Cnammonを使っていてその後公式のダウンロードリストから消えたことからGNOMEを選択して半年くらい使ってきたのですがGNOMEも調子が悪そうです。先日なんとなくSolusを試してみたく別ドライブにインストールしました。うまく使い分けできてなかったのですが、これを機に思い切ってSolusをメインに切り替えようと思います。Garudaを使ってきて得たものは結構大きいです。新しいPCを購入したらまた試そうと思います。
2021年11月25日 (木)
雨
情報収集
「明は以て秋毫の末を察するに足れども而も輿薪を見ず」という言葉があるそうです。これを知っていたわけではなく「木を見て森を見ず」というのを検索したら出てきたものです。両者の意味はだいたい同じです。プログラミングにおいて当てはめると言語の詳細にばかり気を取られて何をなすべきかを見失ってしまう状態でしょうか。もちろん詳細を知っていることは知らないよりも良いことだと思います。しかし言語の設計者や研究者やコアライブラリの開発者や言語の愛好家でもないのなら、やりすぎはまずいです。反対に詳細を無視しすぎるのもまずいです。限られた時間の中で過不足なく詳細を回収してプログラミングの本来の目的を見失わないようにしたいところです。
ソフトウェア開発には車輪の再発明という言葉があります。すでに作られたものがあるならそれを使って独自に作るようなことを避けるという感じの意味で用いられます。この言葉は乱用されすぎる傾向もあります。例えばゲームを作るのに既成のゲームエンジンを使わずに作り始めたら車輪の再発明に該当するのかどうかというところです。ある基準で見たら(もし完成すれば)再発明のオンパレードになるでしょう。この場合の基準とはリッチなゲームを効率的に作るというものです。オリジナリティを売りにしたいとかプログラミング自体も目的の一つであるとかいう別の目的に沿った基準で見ると、ゲームエンジンというソフトウェアは車輪というより車輪などの合成物であって車輪そのものとは言えない部分もあるのではないかと思います。つまり、車輪とはもっと小さな単位、標準ライブラリの機能であったり概念であったり各種のツールをさしているのではないかという考えに基づきます。さらに、仮にその車輪を車輪そのものの仕組みを理解するために作ってみるというのは再発明には当たらず意味のある行為に思えます。という主張が成立するのはまず世の中にどのようなものがあるかを知っているのが前提です。何も知らずフルスクラッチで書き始めるのはやはり車輪や車輪の合成物の再発明になるかもしれません。
どのようなものが作られているのか調べるために「awesome」というキーワードが便利でした。例えば「awesome go」とか「awesome rust」とか検索するとヒットします。だいたいGitHubで管理されているようです。言語でなくてもヒットします。「awesome godot」とか「awesome lua love」とかです。木を見つつ森を見るのには便利かもしれません。
2021年11月24日 (水)
雨、霰
結構進んだ
「プログラミング言語Go」7章の途中まで進みました。だいたい全体の半分くらいです。一応しっかり理解して読んでいってるつもりです。いかんせんコードをほとんど書いていないのであまり身についていないに違いありません。今は読み終えることを優先しています。このペースなら今週中に終わりそうです。土日からゲーム作り始めたいなというところです。なんかRustをやっていたはずがすっかりGoに入れ替わってしまってます。謎です。
2021年11月23日 (火)
雨
休み
休みだったんですがGoの本あまり進まなかったです。もう練習問題は全部スキップして、コードもほとんど書かずただ読んでるだけです。それでどのくらい効果が得られるのかはわかんないです。やっぱ練習問題はやらないとだめかなとは思います。問題文には目を通しています。難易度はそこそこといったところでしょうか。よく考えられた課題となっているようです。数が多いので全部やってたら少なくとも1ヶ月、ひょっとしたら数ヶ月は掛かりそうです。息切れして完走できなくなる恐れがあるので全部スキップです。まだ数冊Goの本があとに控えているので、練習問題に取り掛かるのはそれらも読んでからになるでしょう。
2021年11月22日 (月)
雨
Goのゲームエンジン
Goが使えるゲームエンジンを少し調べました。「プログラミング言語Go」を読んでいて、ただインプットするだけではなく何か作ることで定着させたいなという動機からです。この本には演習問題がかなりたくさん用意されていて難易度もちょうどよい感じになっています。しかし、全部やっていたら読み終えるのに相当時間かかってしまいます。なので全部スキップしてます。一旦全部読み終えてから余力があればトライする予定です。Goのゲームエンジンですが、ゲームエンジンとまでは呼べなくともゲームを作るために十分な機能を備えたライブラリとしてSDL2のバインディングがあります。SFMLのバインディングもありますがSDL2の方がよさそうでした。SDLは簡単なゲームであればすぐに作り始められるくらいの機能を提供してくれます。ただ比較的低いレベルのレイヤーであり、もっと手の混んだことをしようとすると多くの追加のコードを書かないといけなくなります。興味があるのはもっぱらゲームロジックのコード、アプリケーションのコードで、ライブラリやシステムレベルのコードではないので、できるだけ低いレベルのレイヤーのコードは触れないでおきたいです。それよりもゲームに特化したライブラリを利用することで、ゲームのコードを書くことに集中したいわけです。
適当に検索したらいくつかのGoのゲームエンジンが作られていることがわかりました。3Dゲームに対応しているのはさほど数はなさそうです。今は2Dゲームを作りたいのでこの点は問題ないです。試してみたいのは3つほどありました。
あともとはGoではなくCのものですが、raylibというライブラリの存在を知りました。Goのバインディングもあります。これもすごく面白そうです。今止まってしまっているアクションゲームを作るのはちょっと中断しておいて、Goでやってみて、またその後再開しようと計画しています。
2021年11月21日 (日)
晴れ
Goのローカル変数のポインタ
「プログラミング言語Go」という本の第2章を読んでます。P35に次のようなコードが出てきます。
var p = f()
func f() *int {
v := 1
return &v
}
Goではローカル変数のアドレスをその関数の外に返すのも安全だそうです。初めてGoを触ったときに驚いた部分でもありました。これはお手軽で便利な特徴ではあります。しかし、CやC++やその他多くの言語と混同しないようにしないと危険です。特に初めて触れた言語がGoで(今の時代そういうケースも十分あり得ます)、Cのことをよく知らずCのコードを書くという状況になった場合、危険な感じがします。
2021年11月20日 (土)
晴れ
スターオーシャン5をはじめた
PS4のパッケージ版でだいぶ前に中古で確か500円で買ったものです。まだ序盤なのですが普通に遊べます。イベントの演出がこざっぱりしてる感じします。オープニングムービーもありません。むしろそのくらいでちょうどよいです。
2021年11月19日 (金)
晴れ
C++のスマートポインタと所有権
「Hands-On Design Patterns with C++」という本を持っていて3ヶ月ほど前に読み終えました。この本の中に標準ライブラリのスマートポインタについての解説がありました。標準ライブラリのスマートポインタとはunique_ptr、shared_ptr、weak_ptrの3つだけです。この内weak_ptrはshared_ptrに付随するものなので横においておきます。今興味のあるスマートポインタをどのように使わけるかという問いは、unique_ptrとshared_ptrに加えて生ポインタ(と参照)をどのように使わけるかという問題になります。以前は生ポインタを一切使わずにスマートポインタのみを使うべきだという過激な(そしておそらく誤った)主張を見かけることもありました。この本の主張する使い分けは覚えている範囲でだいたい次のようなものです。
- unique_ptr: 一つのオブジェクトが唯一つの変数(uniqueポインタ)に所有されていることを表している
- shared_ptr: 一つのオブジェクトが複数の変数(sharedポインタ)によって所有されていることを表している
- 生ポインタ(と参照): このポインタはオブジェクトを所有しないことを表している
スマートポインタを全く使わない場合は、こうした所有権の違いを生ポインタ(と参照)のみで扱っていて、コードを読んだときにどのような意味で使っているかを認識するにはその文脈を注意深く理解しなければなりませんでした。保有するオブジェクトの破棄の責任は誰が負うのかが分かりづらいということです。スマートポインタを使うことによってコード上にその責任の所在が明らかになるということは書くときの負担と引き換えに、読むときに脳みそにかかる負担が少なくなります。なんでこんなことを書いているかというと、今Rustを学習中だからです。Rustは所有権をあらゆる変数で明確にすることを強制します。所有権の扱いが誤っている場合コンパイルエラーになります。C++のスマートポインタによる所有権の管理はRustほど有能ではありません。例えばunique_ptrを使って一時的に参照するために生ポインタとしてとりだして、誤って生ポインタを保持し続けてしまし、unique_ptrの生存期間を超えてしまったとしてもコンパイルエラーとして検出することはできません。とりわけ今考えているのはあるツリー構造のもので、親ノードが子ノードを所有して、子ノードが親ノードを参照できるようにするものの場合です。
struct Node {
std::unique_ptr<Node> child;
Node *parent; // ?
};
ここで?の部分は正しいのかという問題を考えています。親ノードが破棄されたら子ノードも再帰的に破棄されるべきだから、親ノードの生存期間を超えて子ノードが生存することはなく、一見正しそうに見えるのですが、微妙にしっくり来てません。というのも子ノードが生存している間ずっと?の親ノードへの参照が生き続けています。なんとなく長すぎる気がします。
…ということを考えていました。もう少し学習を進めれば答えが出るかもしれません。
2021年11月18日 (木)
晴れ
FF10やってみた
終盤で放置してあるPS3のFF10をとりあえずクリアしておきたくてやってみました。ストーリーが全く思い出せません。飛空艇からボスを倒してラストダンジョンっぽいところへ乗り込んでいくのですが、ザコ敵(といってもベヒーモスっぽいやつ)にメテオ食らって即全滅しました。パーティーのバランスもおかしいです。一度しっかり見直さないといけなそうです。
2021年11月17日 (水)
霧
「並行プログラミング入門」読み始めた
オライリーの本です。まだ1章読み終えただけのところでは、並行プログラミングの入門の決定版となりそうなくらい良さそうな予感がします。Rustをベースにしていて、Rustの本を読み終えたところなのでタイミングはちょうどよいです。並行プログラミングの本は他にも「C++ Concurrency in Action」というのも持っていて放置してあるのですが、このオライリーの本読み終えたらトライしてみたいです。オライリーの本では珍しく著者が日本人です。最近2021年から表紙がカテゴリによって色分けされず、白基調に変更になってます。
2021年11月16日 (火)
雨
FF2クリア
無事エンディングを迎えることができました。強くなりすぎてしまったためラスボス戦は楽勝でした。ボス戦よりも道中のエンカウント率が高めのためそちらのほうが苦労しました。エンディングは初期のRPGらしくあっさりとして良かったです。魔法の熟練度を上げるのがやたら面倒でした。しかも正攻法で上げるのは困難で裏技的な方法を使わないといけないのが引っかかります。もう一度その作業をやりたいとは思わないです。それさえ除けば周回プレイしてもいいゲームでした。そのような荒削りなところは目立つのですが、オリジナルのリリースされた当時はまだRPGの発展期であったことを思えば全然許容できるし、全体としてはなかなか楽しいゲームでした。感触としてはFF4に近いものでした。
2021年11月15日 (月)
雨
何もしなかった
帰ってからFF2クリアしてしまおうか迷っているうちに寝てしまいました。目が覚めたら午前4時で何もする気になれずそのまま朝まで寝ました。さっさとFF2クリアしてしまったほうが良さそうです。FFシリーズのナンバリングタイトルで未クリアなのは2とあと10です。PS3版の終盤まで行っているのですが何故か放置してます。10-2もやったことないです。10クリアしたらやるかもしれないです。13-2も終盤で放置してます。13-2は事実上2周めです。1周目はほぼ終わりのところでPS3がクラッシュして全データが飛びました。今使ってるPS3は2台目です。2台目は安定してます。
2021年11月14日 (日)
FF2少し進めた
最後の仲間と思われるやつが仲間になりました。展開が唐突でした。会話のテキストが少ないため余計そう思えました。もうすぐ、おそらく次がラストダンジョンです。長そうだなとちょっとプレイするのが億劫です。このゲーム手を付けてから何度も中断放置してたぶん3年は経っています。そんなに難しいゲームではなかったのですが、クリアしたときはきっとそれなりの解放感が得られるでしょう。
2021年11月13日 (土)
雨
Rustの本を1冊読んだ
秀和システムの「実践 Rustプログラミング入門」という本を読み終えました。RustはCとC++の代替となるべく主にシステムプログラミングで使われることを目的として開発された言語らしいです。確かにちょっと触っただけでもC++以上に強固で堅牢でガッチガチの感じがすぐに伝わってきます。以前にオライリーの「プログラミングRust」という本を読んでいて初めてRustに触れるわけではないのですがなにか作ったことがあるわけでもないのでやはり初めてと言ってもいいです。この「実践 Rustプログラミング入門」は言語の基本の解説はほどほどに、実際に使うのに必要になる周辺の情報をまとめたものと言えます。すでに存在する公式の本やオライリーの本に詳しい解説は譲っている感じです。かなり良い本だと思います。Rustはゲーム開発者にも注目されているらしいです。C++と比較して、C++より堅牢であるか、C++と同じくらいの表現力があるか、C++より生産性は高いのか、C++より書きやすいか、C++より学習コストは低いか、C++より多くの環境で使えるか、などなど、完全に乗り換えるには考慮しないといけない点がたくさんあります。一番重要とも言えるのはC++より使っていて楽しいかどうかです。別にC++が一番楽しい言語とは思ってはいないのですが、乗り換える一番の動機はやはり楽しいかどうかです。仕事でやってるわけではなく一人でポツポツやってるだけなので別に構える必要もありません。とりあえずやってみればいいだけで「迷ったら食ってみろ!」でよさそうです。さしあたって今使っているSFMLはRustのバインディングがすでに存在します。そこから始めるのも悪くなさそうです。
FF2やってます
スマホやSteamでピクセルリマスターが発売されていますが、やってるのは初代PSのやつです。オリジナルはファミコンでちょっとだけ触ったことはあります。操作性が悪く異常に難易度が高かった記憶があります。PS版は操作は快適で快適に遊べます。ゲームバランスはオリジナルに忠実だろうからか微妙です。それも含めて楽しめます。HPを上げるために味方を殴ったり、MPを上げるために味方にアスピルをかけたり、魔法のレベルを上げるためにキャンセルを繰り返したり、奇妙なプレイを強いられます。半分裏技的でこれやっちゃうと難易度が激減します。しかしやらないとハードすぎる気がします。荒削りなところは目立つものの、ファミコン時代にこれだけ斬新で基礎部分だけは今でも通用しそうなシステムのものが作られていたというのはすごいことです。もう少しでストーリークリアです。
2021年11月12日 (金)
みぞれ
ダークテーマ
繰り返しになりますが最近SolusというLinuxのディストリビューションをインストールしました。このディストリビューションはBudgieというデスクトップ環境を採用しています。シンプルでCinnamonによく似ていてとても扱いやすいです。Garudaもそうだったのですがデフォルトではダークテーマが基本になってます。タイトルバーやパネルはもちろん、アプリケーションの内部まで、例えばGeditのテキストの背景色なども統一されていてダークを基本としています。それ自体は好みに合っていて良いことです。しかし、アプリケーションによっては完全にダークテーマがマッチするわけではありません。もともとダークテーマを想定していないアプリケーションもたくさんあります。完全にBudgieやGNOMEの設定(おそらく両方ともGTKの設定)を無視してアプリケーションが独自のUIテーマを採用するのならさほど問題はないのではないかと思われます。中途半端にBudgieやGNOMEのテーマを反映させて、一部はオリジナルのライト基調のままという状態でちぐはぐな状態になっています。またQtアプリケーションと統一させるにはどうするかという問題もあります。Qtアプリケーションはまだkvantumというのを使ってテーマを細かく調整することができて良いです。wxWidgetsアプリケーションが厄介です。AudacityとかCode::Blocksなんかが見苦しい配色になり、良い解決策も見つかりません。
アクションゲーム予定
9月18日を最後にアクションゲームを作るという計画は止まってしまってます。ステージの動かないオブジェクトを配置して画面をスクロールできるようにしてステージ1-1を見渡せるようにしたところまで行きました。それでその続きを作っていくかどうかですが、一応ステージ一つだけは完成させたいと思います。そこから先は未定です。年内にもう一つ別のゲームを完成させたいところです。
2021年11月11日 (木)
日記開始
またサボりがちになってきました。気を引き締めるために日記をつけることにしてみます。この文章は12日に書いています。なんとなく数字が揃っていたほうがいいので切りの良い11月11日開始にしたかったからです。この日、このサイトのデータを軽く掃除しました。エディタを試していく天空のエディタというどうでもいいシリーズをやったやつで、動画の合計サイズが1GBを超えていました。今使用しているレンタルサーバーの利用可能な容量の大部分を占めていたのでYouTubeに移動しました。ただそれだけです。そこそこ数があって面倒な作業でした。あと、OSを切り替えて使うようになったのでどの環境でもこのサイトを編集できるように、PCを一台Gitサーバーとして使うことにしました。Gitのセットアップは簡単です。しかし、いまいち使い勝手が良くないです。新しいプロジェクトを追加するときいちいちSSHでログインしてプロジェクトの初期化をしないといけません。具体的には適当な場所にproject-name.gitというディレクトリを作って、そこで git init --bare を叩かないといけません。これなんとかならないかなーという感じです。日記を書き続けるというのは口でいうほど楽なものではないことは経験から分かっています。ローカルで誰に見せるでもないものを書き続けようとトライしたことは何度もあります。大体失敗です。今度こそは・・と意気込んでも何故か続きません。直近でやっていた日記はZimというローカルのWikiソフトウェアに日記をつけるための機能がついていたのでそれを使ってました。一応まだ完全に放置状態というわけではなくぽつぽつ続いていますがあまり楽しくなくなってきてモチベーションも低下しています。やってて一つ気づいたのは、日記に限らずメモのような文章においてもローカルに保存した文章はあまり読み直さないということです。一方で、誰に見られているかとか関係なく、Webに公開したものはよく見直す傾向にあります。果たして今回がどのように結果になるのかはわかりません。とりあえず始めてみます。
近況報告
最後にこのサイトを更新したのは2021年9月18日のようです。アクションゲームを作ると意気込んで記事を書いていました。案の定急にやる気がなくなって止まっていました。一応それは完成するまで続ける気があります。一体この間何をやっていたのかを記録しておきます。
電子工作を始めました。前からラズパイ3B+を一台持っていました。あまり活用してませんでした。1冊入門の本を読んだ程度で放置敷いてました。なんとなくAmazonを眺めているとラズパイのパーツとチュートリアルがセットになったキットが5000円くらいで販売されていました。面白そうなので買ってみました。買ったのは"Freenove Ultimate Starter Kit for Raspberry Piというものです。チュートリアルはこちらのFNK2000というのです。CとPythonのコードに加えてスクラッチとProcessingのコードも含まれていました。この製品の良いところは、チュートリアルはフリーで提供されているので、Arduinoのチュートリアルにも使いまわしができることです。チュートリアルは英語です。淡々とした解説で「迷ったら組んでみろ!」とでも言う感じでとにかく何も考えずに様々なパーツを使って回路を組むことでなんとなく雰囲気がつかめるようになる素晴らしいチュートリアルです。といってもあまりに理解がなさすぎるとそういう気分になっただけで終わってしまうので、別に1冊何か入門の本を読み終えてから始めるのが良いかもしれません。これで5000円はお買い得だと思いました。自分でパーツを集めたらその値段は軽く超えることかと思います。
ラズパイのチュートリアルを終えたあと、もう少し踏み込んだところがやりたくて本を買いました。オライリーの"Make: Electronics"という本です。この本ではたくさんのパーツや工具を使用するのですが、キットは日本で入手するのは難しそうです。しかたなく、おそらく唯一の地元にある電子製品を取り扱っているお店マルツに通ったりしていました。家から車で1時間かかるところにあるのであまり気軽には通えません。あと初めて秋月電子で買い物をしました。結構な買い物になってしました。10月終わりぐらいに十分なブツを揃えたのですが、また途中で止まってます。しかし、この本はブツを揃えるのがちょっと大変なところを除けばまたすばらしい内容です。後半でArduinoを使う部分がありますが、基本的にプログラミングはしません。ハードウェアだけで完結した工作で、電子工作の基礎の必要最低限を学べるものではないかと思います。オライリーの本らしいスタイルで、特にハードウェアが苦手なソフトウェア出身者に適してるように思います。いま半分くらい読んだところで止まっます。他に、ラズパイPico、Arduino Uno、Arduino Nano互換品、ラズパイ4B、ラズパイ400など買いました。要はずっとこういったので遊んでいたということです。ラズパイ4ですが、半導体不足のせいなのか、どこも品切れ状態です。マルツで適正価格で入手できたのは幸運だったかもしれません。今年いっぱいはこれらで遊べそうです。
OSインストールしました。今のPCにはOSが3つ入っていて Debian/Garuda Cinnamon/Garuda GNOME という構成でした。先日Garuda Cinnamonを削除してSolusというLinuxのディストリビューションをインストールしました。Garudaはとても気に入っているので完全に乗り換えるつもりはまだありません。SolusはBudgieというデスクトップ環境の開発元だそうです。Budgieの名前は最近良く見るなと思っていたのですが、Solusが大本だとは知りませんでした。使用感は普通です。Cinnamonとあまり違いがわかりません。つまり使いやすいということです。GNOMEがかなり先進的というかアグレッシブな操作感なので比較すると落ち着いた感じです。SolusもGarudaと比較すると控えめな感じで、余計なもの入れずにシンプルな環境を提供するといった方針ではないのかと思われます。Garudaとどのような用途で使い分けていくかはまだ分かりません。