2022年12月の日記

Unknown programmer's programming note.

2022年12月31日 (土)

不明

買い出し

年越しの飲みのための肉など。

今年最後のポエムを書いた

本をどうやって消化するかについて。
今月は23本になった。
毎日やるという目標の31本には及ばなかったが、そこそこな数になった。
悪くない数だということにしておこう。

2022年12月30日 (金)


本が全部届いた

5冊まとめ買いのポイントが付与される気配がないのだが、大丈夫なのだろうか。

MonoGame

動画を投稿した。
跳ね回るボール。
なぜ手を出したのか。
.NET 7をやってみて、ゲームエンジンってどんなのがあるのだろうと調べてたら目に入った。
そしたらふらふらっとやってみたくなった。

2022年12月29日 (木)

曇り

本が一部届いた

2冊。
Binary HacksとUNIXネットワークプログラミング Volume 2 第2版 (日本語)。
状態は、Binaryは微妙、UNIXネットワークは完璧。

ぽえむ3本

がんばった。

来年読む本、プレイするゲームを見繕った

最初は本が全部で120冊くらいだった。
どう考えても無理なので、選定、仕分けした。
絶対読み終える、というのが13冊。
これはいけそうだ。
その他は、もし可能なら読み終えたいけど、優先度は下げておくのが60冊と、小説は58冊。
ゲームは51本だった。
クリアまでは絶対無理だろう。
ずっとゲームやっていればいいなら可能性はあるが、そうもいかない。
そこそこ手を付けて、どうするか判断しないといけない。

2022年12月28日 (水)

曇り

ぽえむ2本

がんばったけど2本しかできなかった。

2022年12月27日 (火)

雨、霙

ぽえむ2本

6本書かないと間に合わないのだが、しんどい。
テーマだけ決まってしまえばなんとかなるのだけど、なかなか見つからない。

Amazonで本を買った

UNIX Networki Programming, 3rd が本命だった。
新品はない。
中古で1つ安く出品されている。
いざレジに進もうとすると、どうにも不安が拭いきれず断念した。
国内のよく利用させてもらっている、信頼できる出品者からの出品もあった。
しかし、ちょっと値段が高い。
本当は、本の費用をけちるのはよくないのだが、やはり高いのであきらめた。
その代わりというわけでもなく、必要そうな本をこの機に確保しておいた。
5冊でまとめ買いポイントが付くというので、あまり緊急性のない本まで購入した。
そこそこの値段になってしまった。
これなら本命のを買っておけば良かったのでは、と思わなくもない。

2022年12月26日 (月)

曇り

ブログとYouTube

さぼりがちになってきた。
ブログは、欠落した分を今日まとめてやってしまう。
YouTubeは、.NETのインストールをやって、時間を稼ごう。

YouTubeにアップした

.NETのインストールを投稿して、間を繋いだ。
お茶を濁した感じだ。

ぽえむを3本書いた

しんどい。
何も考えずに書き初めたら深いテーマになった。

2022年12月25日 (日)

雨、一時晴

今日の読書

How Linux Works 13、14、15、16章、3、5章の残りを読んだ

これで1周目完了。
3章はまったく理解できなかった。
3から7章あたりを重点的に強化すると良さそうだ。
シェルやプログラミングの章の基準は大体クリアしていると考えても良い。
バランス良くスキルポイントを配分することを目指そう。

C# 11 and .NET 7 Cahpter 1 読んだ

ちょっとだけ目を通してみるつもりが、面白くて、つい1章を全部読んでしまった。
.NETの現状と遍歴を整理してくれていて、概観が掴めた。
まだ環境を用意しただけで、何も大したことはしていない。
C#をちゃんと覚えようという気にはあまりなれない。
それほど面白い言語とは思えないし、巨大な言語なので脳みそのスペースを消費する。
いくつか惹かれるところもある。
BlazorというWebAssemblyのプラットフォームや、ASPのWeb開発はちょっと手をつけてみたい。
でも、WebAssemblyはRustでもできるし、WebはNode.jsでやりたい。
比較のために触れておくというのは、そんなに悪くもない。
この本は、読者に対するサポートが手厚くて、好印象だ。
もうちょっと読み進めてもいいかも。

.NETのインストール

Packtの本で.NET 7を扱っているのが目に入ってきた、興味が湧いた。
UbuntuとFedoraは6をパッケージマネージャーでインストールできる。
せっかくなので7を使ってみたい。
Snapで7が提供されているので試してみた。
結果、まったくだめだった。
libcバージョンによる問題が発生している。
Solusでも試したけど、こちらもだめだった。
手軽に環境に依存しないで使えることがSnapの良いところだと思っていたのだが、そうでもないようだ。
インストールスクリプトが提供されている。
システム全体にインストールするのではなく、ユーザー環境にインストールする。
rustupのような感じで、最近よく見られる方法だ。
この方法がベストだと思う。
試しにraylibを動かしてみた。
ビルドはパスして、ウィンドウを表示させるプログラムは期待通り動作した。
Spacemacsの設定をして試してみると、シンタックスチェックは機能しているが、補完が効いていない。
.NET 6で試すと、ちゃんと補完が機能している。
VSCodeで試すと、6も7もちゃんと機能している。
Spacemacsを使うかVSCodeを使うか、ちょっとした迷いが生じる。
そんなに使い込むつもりはなっくて、ちょっと試してみたいだけなので、どちらでも良い。

2022年12月24日 (土)


今日の読書

How Linux Works 7、8、9、10、11、12章を読んだ

ひたすら読んでいた。

2022年12月23日 (金)


今日の読書

詳解Rustプログラミング 1、2章を読んだ

まずはクイックツアーのような感じ。
オライリーのほど重厚ではない。
気軽に読めそうだ。

How Linux Works 5、6、7章を読んだ

むずい。
つらい。

2022年12月22日 (木)


今日の読書

コードコンプリート 第2版 (上) 17、18、19章を読んで終了

まだ下感が残っているので半分だ。
なのに、すごい達成感がある。

How Linux Works 1、2、3、4章を読んだ

和訳版のタイトルは「スーパーユーザーなら知っておくべきLinuxシステムの仕組み」という。
長すぎるので原著のタイトルを使うことにする。
以前4章前まで読んでいたのだけど、時間が空いて思い出せないので最初から読み直すことにした。
3章は何か置いてき堀にされた感じがしている。
率直に言うと、難しくて理解できなかった。
いきなりこんなんなの、と不安になった。
とりあえず4章に進んでみたら、ちゃんとついていけている。
3章のデバイスという領域が苦手だったようだ。
課題として残しておこう。

GOSICK IV 愚者を代弁せよ 読み終えた

めっちゃ面白くなってきた。
大きなストーリーの展開が予感させられる。

2022年12月21日 (水)


今日の読書

コードコンプリート 第2版 (上) 12、13、14、15、16章を読んだ

12、13で変数のパート終了。
14章からステートメントのパートに突入。

2022年12月20日 (火)

曇り、小雪

除雪

そこそこ雪が積もったので、除雪作業をした。
新しい除雪機の初稼動でもあった。
パワフルで気持ちいいくらいにごりごり飛ばしていってくれた。

PC整理

この日記を書いているPCは、もうサブPCという位置付けなのだが、ここに入っているOSを一度整理することにした。
きっかけは、今文章を書いているOSでもあるSolusで、Bevyのプログラムを実行時にVulkanのエラーが発生することだった。
同じマシンの別のOSでは発生しないことが分かった。
インストールされているOSは、Debianと、AV Linuxだ。
AV Linuxは音楽やグラフィックスのコンテンツ制作のために利用して、開発メインとはしたくないという気持ちがある。
Debianでも良いのだが、一度リフレッシュしたい。
ここで、Debianは128GBと500GBのSSDを2つ使用しているところに目を付けた。
homeに500GBをマウントしている。
そのうち、仮想マシンのイメージが大量に容量を喰っている。
もうこのOSで仮想マシンを使用することはないだろうから、それらを全部削除した。
あとはサイズの大きいデータを外部ディスクに退避するなどした。
そして、homeを128GBのルートにマウントされているSSDにまとめてしまった。
これでひとつ500GBのディスクを自由に使えるようになったので、ここに新しいOSをインストールすることにした。

Fedora 37

先日リリースされたばかりの37。
ちょっとした問題に遭遇した。
OBS Studioのホットキーが、ウィンドウにフォーカスがないときに拾ってくれない。
大した問題ではないように思えるかもしれないが、スクリーンキャスト撮影用の環境としてはかなり不便だ。
実際、録画を開始したつもりで作業し続けて、終わったあとで確認したら開始してなかったということを体験して、残念な気持ちになった。
直し方も検討がつかない。
GNOMEでだけ発生する問題なのかを確認するため、XfceとKDEでも試したが、やはそちらでも効かない。
連鎖して発生した問題で、Xfce、KDEではログインするとFcitx5のエラーメッセージがでる。
使用には問題なさそうだけど、気持ち悪いので直そうとしていて時間をくった結果、結局分からなかった。
あと、Timeshiftというスナップショット作成アプリが、うまいこと動作しない。
こういった事情から、残念だけどFedoraの使用は諦めることにした。
OBS Studioの問題だけが決め手で、あとは些細なことだ。

EndeavourOS

今日、新しいバージョンがリリースされたばかりのようだ。
さっそくOBS Studioを試すと、問題なくホットキーは動作する。
動作も軽快で良い感じだ。
メインをこちらに移行してしまうかもしれない。

図書館に行ってきた

借りてた本の返却期限が今日なので、返しに、というか、まだ読んでないので、再貸し出しに行ってきた。
他に何か良さそうなのがないか物色していると、流麗なJavaScriptを発見した。
ちょっと前から気になっていた本だけど、原著がWebで公開されているので、買うまではないかなと思っていた本だ。
せっかくなので借りていくことにした。
あと他に3冊追加で借りた。

2022年12月19日 (月)


今日の読書

コードコンプリート 第2版 (上) 10、11章を読んだ

10章
変数の使い方
11章
変数名の力

取り立てて新しい提案がされるわけではなく、広く普及しているアドバイスを整理したものとなっている。
目新しい発見があるわけではないが、一度はちゃんとどれだけ定着しているかを振り替えることも大事だろう。

2022年12月18日 (日)


倉庫番の動画を投稿した

倉庫番の試作品ができた。
動画にして投稿するために、メインPCからSolusにソースを持ってきて動かしてみた。
すると、Vulkanのエラーが20件ほど吐き出される。
どれも原因は同じで、特定のVulkanの機能が使えないというようなもの。
Bevyでウィンドウを表示させるだけのシンプルでも同じように発生する。
ItelのGPUのハードウェアが問題なのか、ドライバが問題なのか分からない。
vkcubeは問題なく動作しているように見える。
vulkaninfoは読み方が分からないのだが、メインマシンの出力と、それほど大きな違いがあるようには思えない。
数時間、原因を特定するために時間を費したが、だめだった。
もういいや、ということで、そのままアップロードした。

AV Linuxを最新にした

つい先日リリースされたばかりのバージョン。
3つ目のOSとしてインストールしてあった。
音楽制作環境として用意しておいたのだけど、ほとんど触ってなかった。
そうこうしているうちに、新しいバージョンがリリースされた。
今回のバージョンとの間にもうひとつあって、ひとつスキップしたかもしれない。
AV Linuxはアップグレードのオプションがなくて、再インストールするしかない。
今回、Bevyを使うに当たってSolusでVulkanというかwgpuがエラーを吐き出す現象に遭遇した。
同じマシンの別のOSでも同じ現象が発生するのかを試すことにした。

DebianをBusterからBullseyeにアップグレード

このSolusのマシンにはOSが3つインストールされていて、その最初のひとつがDebian。
いま頃になってアップグレードした。
もうずっと使ってなくて、放置状態になっていた。
KDE環境なのだけど、だいぶ雰囲気が変わって洗練された感じがする。

2022年12月17日 (土)

曇り、雪

Bevyの使い方を学ぶ

Bevyでスネークゲームのクローンを作るブログ記事を読んでいた。
久々に写経もしてみた。
最後まで読んで、だいぶ馴染んできた。
次に、公式のブロック崩しを読んでみた。
これくらいならいけそうだと思えた。
それを参考にしながら、倉庫番を作ることにした。
Bevyの最初に目に入ってきた特徴は、システム、というか関数の引数にQueryというのが登場する。
そこでフィルタリングするような仕組みになっている。
SQLのSELECTのような感触がする。
また、任意のリソースやコマンドなどを引数とすることができ、システムとして登録すると、Bevyがうまいこと自動で解決してくれる。
これは新鮮で楽しい。

2022年12月16日 (金)


GUIライブラリ

GUIライブラリでゲームを作るのは諦めた。
Canvasのようなところで描画を行うならば、ゲーム用のライブラリを使うのとあまり変わりがない。
ウィジェットと使って、積み木のように組み立てることが出来ないかと期待したけど、無理そうだ。
素直にゲーム用のライブラリでやることにする。

Amethyst

Rust製のゲームエンジン。
本の形にまとまったガイドブックがあるので読んでいた。
ECSの基礎を学んだところで、次からPongを作っていこうというところまで進んだ。
そこで、ウィンドウを表示させるプログラムをビルドして実行すると、起動しない。
Waylandに関するエラーが出ている。
依存するwinitというクレートのバージョンが古いので、それを置き換えることを試してみたかった。
それよりもまず、GitHubの最新のもので試しておこうと思い、GitHubにアクセスすると、2年以上更新がない。
mainブランチのビルドステータスはfailedになっている。
何と、もう開発は終了してしまっているようだ。
面白そうで、是非使ってみたいと思っていたのに残念だ。
ガイドブックは結構な時間をかけて読んだので、無駄になってしまった感がある。
ECSの基礎が少し手に入ったと考えれば、完全に無駄というわけでもないから、良しとしておこう。

Bevy

Amethystが残念ながら使えないようなので、別のものを探した。
Rust製のゲームエンジンというかフレームワークというかライブラリは、他にも色々あるようだ。
注目したのは、ECSを採用している、Bevyというもの。
ざっと見渡すと、Amethystよりずっと簡単そうに見える。
ガイドブックがあったので読んだ。
必要最小限といった情報で、これだけではどうやってゲームにすればいいか分からない。
あとはサンプルとリファレンスを見ながら進めていくことになりそうだ。

2022年12月15日 (木)


今日の読書

SFML Game Development Chapter 2 を読んだ

リソースの管理。
ここでのリソースとは画像や音などのマルチメディアを指している。
TextureとSprite、SoundとSoundBufferのように基本はペアになっている。
リソースに関する機能の全体像を見せてくれたおかげで、今までぼんやりとしていたSFMLの基本的な方針が鮮明になった。
本当は、Rustに書き換えるという練習は止めにしたので、もう読み進めるつもりはなかった。
なんとなく開いてみると、かなり良い感じで、読むだけ読んでもいいような気がしてきた。

コードコンプリート 第2版 (上) 6、7、8、9章を読んだ

これまではどちらかというと、プログラミングの前段階に当たるところだった。
ここからはコーディングそのものに直接関わるところになる。
それぞれの章で、クラス、ルーチン、エラー、そして疑似コードという手法となっている。
特別に高尚なことは言っていない。
現実的な、現場主義のスタンスで、どの章も一読の価値がある。
経験から自然に湧いてでるようなもので、何かしら関連することを一度は意識したことのあるようなことが多い。
それらを体系的にまとめて、文章として提示されることで、定着さようとする効果が期待できる。

2022年12月14日 (水)

風強い、曇り、ときどき雪、みぞれ

三並べができた

CPUなしなので、一人で遊べるものではない。
機会を見てCPUも作っておこう。
それ以外にも欠陥を抱えている。
ウィンドウのサイズがおかしい。
eframeのset_window_sizeというメソッドがあるのだが、これが機能しない。
どこで呼び出すことを想定しているのだろう。
updateで呼び出すと、おかしな表示になってしまう。
何とかしたい。

三並べをYouTubeに投稿した

いつも通り。
今回からソースコードのリンクも付けるようにした。

Spacemacsのアイコン用フォント

別ユーザーでホームバッファや、LSPのパスに使われる「>」が表示されないので調べた。
all-the-iconsというパッケージをadditional-packagesに追加した。
その後、all-the-icons-installを実行したら、完璧に表示されるようになった。
この情報は.spacemacsにも書かれている。

2022年12月13日 (火)

曇り、雨

eguiを試す

一番の特徴は、immediate modeというアーキテクチャになっている点だ。
初期化時に作成したボタンなどのウィジェットを保持させるのではない。
ウィンドウの更新が必要になったそのときにその都度にウィジェットを生成する。
その結果、コールバック関数を登録しておくといった、使い慣れたやり方ではない。
今思えば、icedもそういうアーキテクチャだったのだと分かった。
viewメソッドでウィジェットを生成しているのを不思議に思っていた。
それはいいとして、まずボタンの見た目を変えられるかを調査した。
iced以上に可能性がないことが分かった。
どうしてもやりたければ、カスタムウィジェット以外に手がない。
諦めた。
ゲームボードのマスに見立てるというのが通常の使い方でないのは分かる。
そこまでいかなくとも、ちょっと見た目を変えたいなどよくある要求に思えるのだが、だめなんだろうか。

三並べを作る

ボタンはもうやめた。
もう一度icedに戻るか、eguiでそのままやるか、選択できる。
今回はeguiを使うことにした。
進めていくと、updateメソッドで全てを処理するというのは、ゲームのメインループと同じであることに既視感を覚える。
どの頻度でupdateが呼ばれるのかは分からない。
正確なフレームレートを必要としない、パズルゲームのようなゲームとは相性がいいかもしれない。

2022年12月12日 (月)

曇り、雨

icedを諦めた

ボタンの見た目を変えたかった。
カスタムウィジェットならもちろんできるが、できばボタンの見た目を変えるというだけで済ませたい。
バージョン0.5以降は、それまで使えた方法が使えなくなっていることは自身の調査で分かっていた。
0.5以降でも方法は見つかった。
しかし、かなりの量のコードを書かないといけない上に、ストレートな方法でもない。
「なんでボタンの見た目を変えるだけでこんなにたくさん書かないといけないんだ?」というようなものだ。
カスタムウィジェットを作る方がまだ分かりやすい。
一度icedを離れることにする。
eguiを試してみる。

2022年12月11日 (日)


RustのGUIライブラリ

GTKとFLTKのバインディングがある。
GTKは重量なクレートで、これを使用するとビルド出力が1GBを越える。
対称的に、FLTKは軽量で、コンパイルも一瞬で完了する。
良いとこ悪いとこそれぞれあるとして、どちらもCあるいはC++をオリジナルとしている。
GTKは、元より別言語で利用されることを想定されて設計されているということもあって、多くの言語のバインディングが存在している。
そのプログラミングスタイルはオブジェクト指向となっているので、Rustを使った場合もなにやらOOP的なスタイルを避けることができない。
FLTKは、まだあまり試していないので良く分かっていない。
Rustらしいプログラミングを身に付けるには、やはりRust製のライブラリを使うのが一番だ。
意外にも選択肢はさほど多くない。
人気がありそうな2つほどに目を付けた。

  • iced
  • egui

今はicedを試している。
コンパクトなライブラリで、脳への負担は小さそうだ。
しかし、ドキュメントやチュートリアルが見つからない。
サンプルから実例で学ぶしかなさそうだ。
CommandとSubscriptionというのが特徴的なのだが、サンプルからは仕組みが理解できない。
Elmというアーキテクチャをベースとしているため、そちらを学ぶと良いのかもれない。
eguiはまだ試していない。
GitHubでicedと同様たくさん星がついているので、注目しておきたい。

2022年12月10日 (土)


ブロック崩しを作った

YouTubeに投稿した。
Pongのコードを流用できた。
Pongをベースに書き換えた感じになった。
完成して思ったのは、プレイして全く面白くないということだ。
Rustの練習なので別にいいかと気にしない振りもできる。
本当にそれでいいのだろうか。
とりあえず動作するというところで止めてしまうのは、表面的や過ぎないか。
ゲームプログラミングの本当に大事なところは、どうやって面白くするかというところでないか。
現実の、例えば業務支援システムなんかでは、ビジネスロジックが入り込むととたんに複雑になる。
その複雑さをうまく吸収できるようなプログラミング設計にすることは、そのシステムに付随する要件とも言える。
そういう現実の複雑さを無視してしまえば、プログラミングの難易度は半分、いや1/3、あるいはそれ以下くらいになる。
ゲームプログラミングにおける複雑さとは、面白くするための微調整がコードに入り込んでくるところからも発生する。
そう考えると、面白くない状態では、ちゃんとそのゲームを完成させたとは言えない。
まだ半分以下の状態と見做した方がいい。
Rustでどうやってその複雑さをプログラムに取り込んでいくかを体験してくことは、この上ない練習になる。
これからは、面白くするということにも注意を向けていきたいものだ。

2022年12月9日 (金)


雪囲い完成

先週は雨だったので一部しかできなかった。
毎年のこととはいえ、面積が広すぎる。
4時間くらいかかって完了した。

Spacemacsを更新したらエラーが発生

半年ぶりくらいに更新。
ファイルを開くときにエラーが発生するようになった。
projectile回りで何か起こっているよだ。
そこそこ調べたけど解決できない。
.spacemacsを退避して、まっさらな状態で試したら、発生しなくなった。
定期的に見直すのが良いのかもしれない。

3点リーダー …

ellipseとも呼ばれる。
Spacemacsのキーの候補の表示にも使用される。
which-keyによるものだと思う。
文字幅が想定されるものよりも短いのだろう、レイアウトが崩れている。
以前からずっと気になっている。
フォントが関係しているのは間違いない。
たぶん、Notoフォントを使用しているせいではないだろうか。
もし直せたらめっちゃ嬉しい。

LSP rust-analyzer

SpacemaceのRustレイヤーには、バックエンドの選択肢がracerとlspの2つある。
racerはもう活発に開発されていない。
rust-analyzerに移行するように、とプロジェクトのページに書かれている。
試しにracerをインストールしようと試みるものの、コンパイルが通らない。
lspには、language-serverの選択がある。
rlsとrust-analyzerがある。
またもや、rlsの方はもう非推奨だとプロジェクトのページに書かれている。
なので、LSP+rust-analyzerの選択しか残らない。
rust-analyzerのインストールは、バイナリが提供されているので、それを入手してパスの通ったところに配置するだけで良い。
rustレイヤーの設定も簡単だ。
Rustのファイルを開くと、LSPのエラーメッセージが表示される。
しかし、問題なく機能している。
使用には影響はでないのだが、このメッセージは非常に煩わしい。
なんとかならないものだろうか。

動画投稿

何か作ってやりたかったが、間に合わなかった。
とってつけたように、Spacemacsの設定をやったのをアップした。

2022年12月8日 (木)


RustでPongを書いた

SFMLの続き。
YouTubeに投稿した。

2022年12月7日 (水)


今日の読書

SFML Game Development Chapter 1

読み終えた。
フレームレートの制御は参考になった。
完全な固定フレームレートとの考え方。

動画を投稿した

Rustでゲームを作れるようになるまで、というテーマでやっていくことにした。
その後、ブログでこの活動の意義について検討した。
結果、これまでと同じやり方ではだめで、次からばっさりと変えることに決めた。
要点は次の通り。

  • 動画の長さは必ず10分程度に収める
  • コーディング実況はやらない
  • その日の成果の報告と解説に止める
  • ライブ配信は考えない

2022年12月6日 (火)


図書館に行ってきた

個人事業主の本を3冊借りた。

今日の読書

SFML Game Development Chapter 1

Packtの本。
Rustでゲームを書きたくて、C++で書かれたものをRustに書き直すということをy

2022年12月5日 (月)


今日の読書

コードコンプリート 5章を読んだ。

「コンストラクションによる設計」という章。
プログラミングの一つ前の段階と行ったところ。
プログラミングを中心に据えた上で、設計を考える。
プログラミングから切り離されたものではない。
この本の中心的なアクティビティはあくまでコンストラクション、だいたいプログラミングであり、空虚な理想論ではない。
大掛かりなプロジェクトだけではなく、数日で終わるようなプロジェクトについての指針なども書かれている。
この章はしばらく毎週読んでもいいかもしれない。
というくらい、吸収して定着させてしまいたい内容だ。

2022年12月4日 (日)

曇り

プログラミングRust 第2版を読み終えた

昨日の残り、22章と23章を読み終えた。
ブクログに感想も書いた。
中々の達成感がある。
しかし、目的を違えているような気がしないでもない。
本を読むのが目的ではなく、プログラミングが目的なので、こんなとこで達成感を味わっていてはいけない。
とはいえ、Rustは何も予備知識なしで、書きながら覚えるというやりかたはあまり向かない言語だ。
最低限の知識として、この本を読んでおくことは必要だろう。
ようやくスタートラインに立ったと考えれば、少しくらい達成感に浸っているのも悪くない。

2022年12月3日 (土)


SICPが届いたが…

Amazonのセール中に買った、SICPのJavaScriptエディションが届いた。
何か背表紙の下の方に接着剤の固まったようなのが付着している。
返品するのも面倒なので、指でがりがり剥していた。
どうしてもきれいにならないので、カッターの先でやってたら、少し、僅かだけど表面が削れてしまった。
まあ、読めればいいか…と諦めるしかない。
あとUSBメモリ2つと、microSDカードも届いた。
ちょっとリッチになった気分。

今日の読書

プログラミングRust 第2版 19、20、21章を読んだ

19章 :: 並列性
20章 :: 非同期プログラミング
21章 :: マクロ

19、20章は、おそらく一番難しいところだった。
並行プログラミングが苦手という自覚があるので、やる前から分かっていた。
案の定、難しかった。
その分、21章で一気に難易度が下がった。

2022年12月2日 (金)


雪囲いとタイヤ交換

一部だ
雨だったのでやる気になれなかった。

今日の読書

プログラミングRust 第2版 18章を読んだ

18章 :: 入出力

今日は1章しか進まなかった。

午前中、作業をしていたので、いまいち調子がでなかった。

2022年12月1日 (木)


今日の読書

プログラミングRust 第2版 16、17章を読んだ

16章 :: コレクション。
C++のSTLのような革新的なライブラリとまではいかないが、堅実なツールセットという印象だ。
ここでも所有権や生存期間のルールが徹底されている。

17章 :: 文字列とテキスト。
UTF-8とUnicodeの基礎が身に付いた、ようが気がする。
大きな収穫は、UTF-8の具体的なエンコーディング方法を知ることができたということ。
Rustは、文字データが不正なUnicodeにならないようにプログラマを従わせる。
Rustを使うならUTF-8とUnicodeについて知っておくのは必須となる。

BIOSアップデート

MSIのサイトにさらに新しいBIOS公開されていた。
前回のを適用したら、Ubuntuの起動時のエラーメッセージ増えた。
今回はどうなるだろう、少し期待しながらアップデートした。
ブート時間を短縮させた、と説明があったので、ちょっと期待してしまった。
結果、エラーメッセージは減った。
USB hubがどういこうというのが1つ出る状態で、最初に戻った。
ブート時間はあまり分からない。
短くなったような気がしないでもない。
VirtualBoxがSecure Bootのために起動しなくなった。
以前インストールした、キーがクリアされてしまったようだ。
VirtualBox 7をインストールする過程で、キーもインストールできる。
それ目的でVirtualBoxを再インストールした。
結果、問題なく使えるようになった。
Secure Boot自体無効にしてしまってもいいような気もするが、どうなんだろう。

ブログを始めた

Bloggerを使うことにした。
最初の記事は、とにかく文字で埋めることでお茶を濁した。
ちょうど日記が1年続いたのと、12月1日という切りの良い日なので、記念も兼ねて、今日から始めた。
今後の方針として、この日記は毎日やったことを記録しておく場所とする。
ブログでは、その日考えていたことを吐き出すところとする。
この方法でうまく住みわけできるのではないかと思う。
懸念もある。
これまで何度ブログをやったことがあるが、そんなに続いたこともない。
しかし、1年間休まず
日記を書き続けた今ならできるはず!
だめだったのもある。
YouTubeが続かない。
動画を撮るのは結構大変だし、慣れてもいないので仕方ないということにしておこう。
さくさく動画を作れるようになるには、もうちょっと経験を積まないといけない。
それ以外にも、毎日アルゴリズムとか、初めてのプログラミングの記事も止まっている。
そもそもこのサイトのアクセスがほぼゼロなので、まあいっかという感じになってしまう。
日記だけは続いているので、それだけでもましだろう。
ともかくブログだ。

Created: 2024-02-07 水 06:49

Emacs 29.1 (Org mode 9.6.6)

Validate