2021年12月の日記
2021年12月31日 (金)
雪
orgとFirefox Reader View
FirefoxにはReader Viewという機能がある。今見てるページの装飾を排除してシンプルな読みやすい表示に置き換える機能だ。orgでエクスポートしたHTMLはこれでうまく表示されない。orgが悪いというわけではなく、Reader Viewに適応させるための制約が厳しすぎるせいだ。今までこのサイトでHTMLベタ書きしてきたのは全部正常に表示される。orgのエクスポートするときのHTMLの構造を変更するのは無理そうだ。残念だがReader Viewは諦めよう。そもそもReader Viewを使ってページを読んだことない。きれいに表示されることに満足してそれで終わりといった風にしか使っていない。そんなにがっかりすることない。
SpacemacsのドキュメントとFirefox Reader View
Spacemacsのドキュメントはorgでエクスポートされたもののようだが、Reder Viewでちゃんとすべてのコンテンツが表示される。どうもReadTheOrgというテーマを使っているようだ。また調べてみよう。
UNIXコマンドの2本目書き終えた
pwdとlsとcdだけのページになった。本当は残り全部やって次はテキストエディタを書き始めるつもりが、長くなってきたので途中で切ることにした。あとはcpとかmvなんだけど、これらはそんなに長くならないはずだ。
microが使えない
FreeBSDの仮想コンソールではCtrl+方向キーやShift+方向キーなどが使えないようだ。これらが使えないとmicroは使い物にならないので時間をかけて調べた。半日近くかけて調べてギブアップすることにした。結構いいところまでいったけどだめだった。ssh越しなら使えるけどそれはやりたくない。ただでさえ仮想マシンなのに更にネットワーク越しとなると、実際にコンピューター上でプログラミングしている感覚がさらに薄れる気がする。むしろそっちの方がいいのだろうか。しかし、microが使えないのは誤算だった。あと候補はnanoだけど、Ctrl+方向キーやShift+方向キーが使えない時点でやはり使いづらい。FreeBSDには最初からviとeeが入っている。どちらも扱いづらい。vi使うくらいなら最初からvim使った方がいいと思う。eeでプログラミングする人なんているのだろうか。microはあくまでおすすめとして使う予定をしていただけで、それを使うことは全く要求しないつもりだった。何でもいいから自分の使いたいものを使うのが一番だ。それにしても解説に使うのは何にしたらいいのだろう。
2021年12月30日 (木)
みぞれ、雪、雷
一つ書き終えた
UNIXコマンドのページを一つ書き終えた。lsやcdも一緒に書く予定だったのだけど、長くなったのでやめた。ログインしてシャットダウンするだけという極めて退屈な内容になった。しかし、1ページあたりの分量には気を使ったほうがいいと思って切った。それよりも疲れたので休憩したいという誘惑もあった。
org使い始めた
唐突にHTMLベタ書きからorgに切り替えた。HTMLエクスポートするために色々覚えなければいけないことがあった。なんとか元のデザインを維持してエクスポートできるようになった。時間を書ける価値は十分ある。読みやすさも書きやすさもが全然違う。これで少しは執筆が捗るといいなあと思う。
2021年12月29日 (水)
今日も書けなかった
今日は休みだったのだけど用事があってでかけていた。帰ってからは中途半端なところで止まっていたビデを最後まで見終えた。それから記事の続きを書こうと思ってエディタに向かった瞬間眠気が襲ってきた。目が覚めたら午前2時過ぎくらい。結局今日も書けなかった。3日も空いてしまった。今UNIXコマンドの使い方を書いてるのだけどかなり難しいし、かなり退屈になってきた。書いていて退屈なのだから読む方はもっと退屈だろう。そもそも根っからのUNIXユーザーというわけでもないので大したことが書けない。
2021年12月28日 (火)
晴れ
明日から休み
明日から3日まで6日間の休みだ。もっと休みたい。
Packtビデオを見始めた
昨日加入したPacktのサブスクリプションでさっそくなにか読み始めることにした。試しに短めのビデオを見ることにした。「C++ 20 (2a) New Features」というのが2時間位でちょうど良さそうなので見始めた。しかし、昨日睡眠時間が少なめだったこともあり眠い。途中で中断した。もともと映画館とか行くと寝てしまう質なので、途中で寝ずにビデオを見るにはしばらく鍛錬が必要そうだ。20時間近くあるビデオもある。
さっそく空いてしまった
初めてのプログラミングは1日1つのペースで書くと宣言したが、昨日、4日目にして早速躓いてしまった。今日も眠いのでもう無理だろう。2日続けて空いてしまった。
2021年12月27日 (月)
雪
雪やばい
家の周りは特にひどい。なんとか車入れることが出来た。12月時点でこれだと1月から2月がどうなるのか恐ろしい。とはいえ、まだ車出せるし、出す気になるだけマシで、4年前と昨年の域にまでは達していない。
数年ぶりに地元の図書館にいってみた
地元の図書館は数学や科学のラインナップが寂しい。電気工学という棚を見つけた。なぜかパソコン関係の本が無作為に置かれている。オライリーから出ているエレクトロニクスをはじめようが置いてあったので、皮膚科の待ち時間に読もうと思って借りておいた。
皮膚科再診
手のひらに4箇所と薬指の根本に1つイボを治療中。どれも小さいので1回か2回で終わるだろうと思ってた。また次行かないといけない。処置後はかなり痛い。後で水ぶくれになるのだろうけど、それが破れたあとがまた痛い。
はじめてのVプリカ
Packtの$5セールで所持しているクレカでの支払いがどうも通ったり通らなかったりして意味不明なので、プリペイド式のVプリカというのを試してみることにした。先にコンビニで2000円分だけチケットを買っておいた。2000円分に対して、支払いは2200円必要になる。200円分はおそらく手数料だろう。10%はちょっと厳しい。さらに海外で買い物だと数%また手数料がかかるらしい。そんなに気軽に使えるものではない感じだ。
Packtのサブスクリプションに加入した
今、単体購入のセールだけでなく、サブスクリプションに5ヶ月間だけ月$5で加入できるセールをやっている。5ヶ月すぎると$9.99に戻る。試しに加入してみた。この支払いはVプリカでなく所持しているクレカで支払うことができた。すごくいい感じなので、たぶん5ヶ月過ぎても続けるだろう。その代わりに$5セールで単品を買うのは控えても良さそうだ。
2021年12月26日 (日)
雪
Packtの$5セール
試しに1冊だけ買ってみた。うまく購入できたので読みたかったのをまとめてカートに入れて、支払いに進んだらエラーにで買えなかった。残念だ。別のカード試したほうが良さそうだ。
2021年12月25日 (土)
雨、曇
最初の目標を書いた
Hello Worldを動かすだけなんだけどなんでこんな長文になってしまうのだろう。書きたいことを書いていると長くなってしまう。何を書くべきかを考えたほうがいいかもしれない。
2021年12月24日 (金)
晴れ
そろそろorg-modeを覚えたほうがいい
水曜から始めた「初めてのプログラミング」の記事はSpacemacsで書いてみた。HTML面倒くさい。Emacs使うのにorg-modeを使わずHTMLベタ書きとか意味が分からない。
Vagrant
Vagrantの存在を知った。知ってはいたのだけど忘れてた。Vagrantを使えばFreeBSDでなくても、Vagrant Boxesというところで提供されているものを利用して、統一されたLinuxの環境も用意することが出来た。ただVagrantの導入自体が面倒なのと、何をやっているのか分からなくなってしまうという気がする。一度はVirtualBoxで仮想環境を構築するという手順は踏んだほうがいいと思える。
Vagrantを使わなくてもVirtuaBoxのハードディスクイメージも非公式のものならあらかじめ用意されたLinuxのものが見つかる。ただやっぱり公式に提供されているFreeBSDの方が充実感は得られる気がする。なのでそんなに間違った選択ではない。
2021年12月23日 (木)
晴れ
stdの発音
YouTubeとか見てると「エスティーディー」と発音している人が多いようだ。自分は「ストド」と言っている。standの過去分詞であるstoodに近い。STLはそのまま「エスティーエル」と発音している。全部ではないけどコードを書いているとき、ほとんどテキストを一旦頭の中で発音しながら同時進行でタイピングしている。STLはコード中に現れないので多少長くても支障がない。HTMLとかもそんなに頻繁に書くものではないのでそのまま「エイチティーエムエル」と発音しても遅延は発生しない。C++のコードでは何度もstdと書くことになる。そのとき「エスティーディー」と毎回頭の中で発音していると、タイピングに追いついてこない。という理由で奇妙な発音をしている。もっときれいな語呂だったら良かったのにと思う。
2021年12月22日 (水)
雨
初めてのプログラミングを書き始めた
まずWindowsでVirtualBoxを使ってFreeBSDの環境を用意するところから書き始めた。スクリーンショットの用意や事務的な作業手順を書いただけだけど、それでも結構大変だった。FreeBSDが必要だ、と意気込んで最初に書いてしまったものの、なぜ仮想マシンを利用しないといけないのか、その動機づけが弱い気がする。仮想マシンでやるより実機でやったほうが確実にやったという手応えが得られるし、仮想マシンを用意する手間も省ける。しかし、初めてプログラミングをするというのにFreeBSDの入った実マシンを用意するというのはハードルが高すぎるように思える。そもそもなぜFreeBSDを選択したかというところは、仮想マシンのイメージが公式に提供されているからということだ。しかもそのイメージにはclangが最初からインストールされていてすぐにC++のコードを使えるようになっている。さらにまったく同じ環境であると想定することができる。そういう理由で仮想マシンを使うことを思いついた。環境を揃えるための他の手段がないでもない。たとえばラズパイを使うとか。しかし、2021年12月時点では、ラズパイ4が入手しにくい状況にある。もうしばらくしたら解消されるような雰囲気がある。仮に入手できるとしてもOSをラズパイOSを使うと制限してしまうわけにもいかない。ラズパイOS用のmicroSDを一つ用意してもらうということもできる。そうしたとしてもラズパイ4自体が1万円程度するものなのでやはり難しい。WindowsにはWSL (Windows Subsystem for Linux)というものが用意されている。これを使えばLinux環境で話を進めることができる。しかし、今度は自分の方にWindows 10の環境がないのでWSLの環境を用意できない。またmacOSでも利用できない。それにLinuxはどのディストリビューションを使うかによってだいぶ違ってくる。このディストリビューションを用意して欲しいなどという制限はつけたくない。またインストールも手間というよりすべてのディストリビューションのインストール手順を示すことは不可能だ。少しの環境の違いなど無視して「Linuxでやります。どのようなものでもいいのでなんとか用意してください。」と丸投げしてしまうのはどうだろう。初めてのプログラミングという方針にそぐわない。ここまで書いて思ったのは、なぜJavaScriptを選択しないのかというとことだ。JavaScriptならWebブラウザさえあれば同じ環境であるとみなすことができる。面倒なインストールの必要もない。そもそもこのシリーズは読んでくれている人がいるという想定もしていなくて、理想のプログラミングを学ぶ環境を探すための試験的な意味合いがある。
2021年12月21日 (火)
晴れ、曇、雨
Spacemacs+SKKでHTMLを書いてみた
Bluefish良さそうだったのだけど、これでも日本語の入力中に問題が発生した。タグの位置にカーソルを置くと対応するタグを強調するために、背景色が赤にハイライトされる機能がある。閉じタグの前で日本語を入力すると、未確定状態の間その入力中のテキストがハイライトされてしまい、とても鬱陶しい。残念だけど諦めた。次はSpacemacsで書いてみることにした。Spacemacsは今年に入ってからプログラムを書くために使っている。Vimモードだとmozcだと扱いづらそうだったので、SKKを選択していた。日本語はほとんど扱ってなかったので、この組み合わせでちゃんと使うのは今回が初めてとなる。SKKの動作はほぼ完璧だ。「かな」の状態でもVimのノーマルモードではコマンドが日本語扱いにされたりせず、ちゃんとコマンドとして機能する。あとは慣れだろうか。それとHTMLレイヤーの周りをちゃんと調べる必要がある。
初めてのプログラミングというシリーズを検討している
全くプログラミングの経験ない人を想定したものを書こうとしている。なんか上から目線っぽくて嫌な感じがしないでもない。そんな偉そうなことをやろうとしているわけではなく、基本自分のためのものだ。自分が全くの初心者なので思考や実験の結果の整理のために書くという趣が強い。環境は仮想マシンでのFreeBSDにしようと思うのだけどちょっとハードルを高くしてしまっているだろうか。これならまったく同じ環境で作業ができると思うので良いと思うのだけど、準備するのが面倒なので実際にやろうという人はいなくなってしまうかもしれない。その点はあくまで自分のためのシリーズなのでさほど気にしなくてもいいだろう。
今進行中のC++超入門というシリーズはもうタイトルにふさわしくない内容になってしまった。アクションゲームだけ完成させてどこかで整理したい。
2021年12月20日 (月)
雨
Remmina
リモートデスクトップのクライアント。使ってみた。WindowsのリモートデスクトップやVNCのクライアントになれる。ラズパイOSには最初からRealVNCのサーバーが入っている。それを利用するためRealVNCのクライアントを使う必要があったのだが、RealVNCのクライアントではTigerVNCのサーバーに接続するとき、SSHトンネリングを利用しないと暗号化出来なかったりして理想的な状態ではなかった。この新しく知ったRemminaというクライアントならうまく行くんじゃないかと期待している。
古いPC3台が死んでいる
1台はantiXが入っていたもので、半年ぶりくらいに起動しようとしたらGrubの画面に行く前にBIOSの画面で止まってしまいまったく起動しなくなった。もう1台はDebian 11をサーバー用にインストールしたもので、電源を入れるとログインにたどり着くまで何回も途中で落ちて再起動がかかってやっとかろうじて起動すると行った感じだ。起動したあとも突然落ちて再起動しようとする。最後の1台はWindows Vistaが入っていて、最後に確認したのは半年前くらいで、今日確認するまではすこぶる安定していた。こいつもやはりダメそうだ。ファイルを編集していたりすると突然落ちて再起動がかかる。ということでデスクトップPCはいまメインで使っているこのPC以外は全滅だ。復活させるためにできることはまだあるが果たしてそうするべきかどうか分からない。もう成仏させてあげたほうがいい気もする。
2021年12月19日 (日)
雪
CodeLiteがパワーアップしていた
UIの色が設定できるようになった。時代の流れに乗ってLSPを使うようになって、コード補完やリアルタイムシンタックスチェックが正確かつ強力になった。手軽にメニューからプロジェクト作成して、ビルド設定もGUIでできる。実験用の使い捨てのプロジェクトを扱いたいときとか便利そうだ。難点を上げると、CodeLiteのプロジェクトが他のIDEやビルドシステムと互換性がないことだ。裏側ではMakeでビルドしているのだが、そのMakefileを見るとプロジェクトディレクトリの絶対パスとか入っていたりして、そのままでは使えないし、使われることも想定されていないだろう。あくまでCodeLiteが機械的に吐き出すMakefileだと思われる。エクスポートするような機能も今のところ見つかっていない。それにしたってとりあえず使ってみてもいいかなと思えた。Geanyはプロジェクトを作成するまでもないコードを書くときや、ファイルマネージャからソースコードを開いて確認するときなどに重宝している。理想は一つのエディタを徹底して使うべきなのだろうけど、その境地には至っていない。
Bracketsが終了していた
使ってみようと思ったら終了していた、というニュースがあった。残念だ。どうもVSCodeに移行してくださいということらしい。確かにHTMLの編集においてVSCodeは使いやすい。日本語変換中おかしくなる現象が発生しなければ乗り換えようという気にはならなかっただろう。以前Bracketsを触ったときは、これも日本語入力中に問題が起こった。今のSolusの環境に移ってからは試していない。GeanyをHTMLエディタとして使うこともできる。しかしGeanyもやはり日本語入力中の表示に問題がある。先日インストールしたばかりのBluefishは問題は起きていない。そうするとやはり候補はBluefishだろうか。
2021年12月18日 (土)
雪
GSICK (1) 読み終えた
続けて2も読む。
アクションゲームの続き書いた
着地して歩けるようにするだけで3日ぐらいかかった。このペースでやってたら今年中に終われないかもしれない。もうサクサク進めていきたい。
ReactOS 0.4.14
ReactOSはWindowsの資産、アプリケーションやデバイスドライバを使えるようにしたフリーなOSだそうだ。DistroWatchを覗いてみたら新しいバージョンがリリースされたばかりのようだ。ReactOS上でプログラミングもできるのかといったところが気になりぐぐってみると、MinGWとかは使えるみたいだ。このOSはUNIX系統では全く無いのでDistroWatchでは特に異彩を放っている。
使えるときは常にautoを使う
「Moder C++ Programming Cookbook」という本を開いてみた。一番最初のレシピがそれだった。ローカル変数のintやdoubleなんかの組み込み型はもちろん、ユーザー定義型にも適用できる。
auto x = 42; // int auto s = "The quick brown fox jumps over the lazy dog"; // const char * auto hello = std::string{"Hello, world!"}; // std::string auto position = Vector3{100, 200, 300}; // Vector3
このスタイルの優れているのは、タイピングの量が節約できることよりも、変数名の開始位置が統一されるので美しくなり認識しやすくなることだと思う。今までそうしていいのかどうか確信が持てなかったのでやってなかった。これからは積極的に使っていこうと思う。
2021年12月17日 (金)
雨
HTMLエディタ Bluefish
vscodeの日本語変換中おかしくなる問題が直らないので、一応HTMLエディタについて軽く調べてみた。そうするとBluefishというのが目に止まったのでインストールしてみた。なかなか良さそうだ。デフォルトでスペルチェックが有効になっている。日本語は扱えないのでほとんどの場所に赤色の波線が表示されていて鬱陶しい。プロジェクトごとにスペルチェックを有効にするか選択できるので大した問題ではない。スニペットや補完をツールバーから選択して行うようになっていて、ほんとに使いやすいのかまだ未知の部分がある。
アニメ ダイの大冒険 61話まで見終えた
Amazon Primeでポツポツ見て、最後の61話まで見終えた。まだ完結していない。定期的に追加されていっているようだ。アニメはあまり見ないので詳しくないのだけど、アニメ自体の出来は素晴らしいものだと思う。技や呪文のエフェクトとかめっちゃかっこいい。声もドンピシャだし、音楽もいい感じだ。ただ、原作の漫画を何度も読んでいるせいか、原作からセリフがかなりカットされていて、その部分にいちいち気づいてしまう。「あ、ここカットされてる」とか「変更されてる」とかで没頭しきれない部分があった。原作あまり覚えてなければ気にならないのではないかと思う、仕方がないことだ。
雪
夕方頃から降り始めて、夜中には数センチ積もっていた。夜通し降るみたいだ。明日以降は振らないようなのでさほど危機感はない。除雪しなくても良いと嬉しい。
2021年12月16日 (木)
曇り、雨
皮膚科に行ってきた
手のひらにいくつか小さなイボが出来て、1年以上放置していた。これまで何度かイボが出来て前回などは半年ほど皮膚科に通う羽目になった。今のはまだ一番大きいので1ミリか2ミリ程度なのでそんなに何度もかよはなくても完治するのではないかと期待している。しかしなんでこんなに長いこと放置していたのか、単に面倒だったというだけだろう。治療は名称はわからないけど凍結させる薬品を綿棒みたいなのについてジューと焼くやつだ。何度もやった経験があるのでなれてるけど結構痛い。2週間以内に再診しないといけない。
2021年12月15日 (水)
雨
MathJax
以前、簡単な数式を少し書いたときMathMLで書いた。MathMLは表示できるブラウザが限られている。そのときはFirefoxを使っていて、しばらくしてからChromiumで見てみたら全く適切に表示されていなかった。ブラウザの対応状況を見てみるとFirefoxとSafari以外は軒並み対応していない。今書いている記事にもちょっと数式が出てくるのでどうしようかと思っていた。ちょっと調べたらMathJaxというJavaScriptの描画エンジンとでも言うものの存在を知った。試しに使ってみたらすごく良かった。Chromiumでも表示できるし、何より記述が簡単だ。以前使ったときの数式は本当に簡単なものでべき乗と平方根と分数の表記くらいしか使っていなかったのだが、異様に長ったらしく面倒だった。MathJaxはJavaScriptのソースをロードする手間があるものの、それさえすれば、あとは\(と\)の間にTeXの書き方が使えるようになる。以前書いた数式もこっちに置き換えてしまおうと思う。
vscodeで日本語変換中おかしなことになる
このサイトのHTMLを編集するときはvscodeを使っている。日本語入力はfcitx-mozcを使っている。なんか変換中に直前のテキストが今変換している部分にダブって表示されるという地味に嫌な問題に出くわした。vscodeでしか発生しない。これまで使ってきた環境でこのような現象に出くわしたことはない。フォントの問題でもなさそうだ。Noto Sans CJK JPとかにしても発生する。Solusを使い始めて初めて出くわした地味に嫌なトラブルだ。逆に考えると、Solusを使い始めてようやくトラブルに見舞われたということで、今まで何もなく安定していたといえる。しかし、どうしたもんだろう。HTMLを編集するのにvscode以上に使いやすいのあるのだろうか。
2021年12月14日 (火)
晴れ
アクションゲームの記事書いた
3ヶ月ぶりに書いた。調子出てきた。中途半端なのはいつもどおり。特に後半になると疲れてきて適当になってくる。もう全然C++入門ではなくなっているように思える。今回は純粋仮想関数について少し書いた。詳細に書いていたらものすごく長くなってしまうので軽く触れた程度だ。SFMLのsf::Drawableというのは、要はC#やJavaのインターフェイスのような使い方をしているものなのだけどその点にはあえて触れなかった。
2021年12月13日 (月)
雨
GOSICKの続きを買った
1巻だけ読むつもりが面白かったのでまとめて買い揃えてきた。8の下だけ未入手。角川文庫から出ている。タイトルとか表紙が何となくラノベっぽいなと思っていたら、もともとはラノベ作品だったようだ。角川のバージョンには挿絵イラストが入っていない。オリジナルは入っていたんだろうか。ちょっと見てみたい。涼宮ハルヒの憂鬱なんかも角川文庫で一般小説として出ていたりする。ラノベなのか一般小説なのかどっちに分類されるかは気にならないが、挿絵が入っているのかどうかは気になる。
2021年12月12日 (日)
雨
アクションゲーム続き作成中
そろそろ再開したくなって、というかずっと気にかけていた、アクションゲームの続きを書き始めた。どうも調子がでない。一旦コードを書き上げてから文章を書く、ってやると中間状態のコードが手に入らない。Gitから取り出せばいいのだがちょうどいいタイミングでコミットしていない。もう一つの方法は文章書きながらコードを書くというやり方も考えられる。こっちの方がいいかもしれない。あと図を用意したりするために作業が中断されるのもちょっと厄介だ。ともかく集中力が足りないためペースが遅い。
2021年12月11日 (土)
晴れ
Windowsはなぜ動くのかを読み終えた
軽くさっと読み流すつもりが面白くてじっくり読んでしまった。このなぜ〜なのかというシリーズはブックオフで何冊か購入していて、これはそのうちの一つ。あまり期待していなかったし、Windowsはもう使っていないので読む必要性はなかった。最初の章はそれほどでもなかった。面白くなったのは第4章の「マルチタスクのふしぎ」というところから。16ビットのWindowsやMS-DOSでのメモリ管理の話やリアルモードとプロテクトモードでの違いから始まって、32ビットのWindowsの解説までに至る。初めて目にするものではなく、以前はじめて読む486という本でも触ったことのある話題で、そちらの方が詳細に実際のコードを交えて解説されている。しかし、今回の本の方が平易で、プログラマでない読者も対象としているのでイメージで理解しやすいように解説されているので、分かりやすかった。両方を併用して読むとより学習効果は高いだろう。その後の章もなんとなく分かったつもりでいた事をちゃんとした文章で説明されて復習というわけではないがイメージが少し固まってきた。最後のネットワークの章はWindowsに限った話ではないし、基礎中の基礎と言ったところでおまけのようなものだけど、今までみた中では一番わかり易いTCP/IPの初歩的な解説だった。この本が出たのは2005年らしくもう16年以上前になる。そのため解説のベースは.NETではなくCによるWin32となっている。あまり事情に詳しくはないが、現代ではWin32 APIとCあるいはC++によるプログラミングをする必要性というのは大幅に減少しているだろうと思う。でも必要な分野ではやはり使われるだろうし、この本の内容も役に立たないことはない。昨日Windows関連の本を片付けたばかりだったというのについ寄り道をしてしまった。
2021年12月10日 (金)
晴れ
Box2Dを検討
放置しっぱなしのアクションゲームは、次はキャラクターを作って操作できるようにするところだ。ブロックや地面の上に立つようにするためには衝突処理をしないといけない。何も指定な状態でも重力がかかっていなければいけない。そうしないと右に歩いていって地面のないところにたどり着いたとき下に落ちていくようにならない。おそらくここはしっかり作り込まないといけない。今の状態にいきなり付け加えるのではなく、一度まっさらなとこに作ってみるのがよさそう。衝突処理は自分で作るよりも一度お手本となるものをみたほうがいいような気がする。Box2Dという2Dのための物理エンジンを使ってみてはどうだろうかと考えている。
手を広げすぎない
最近色々手を出しすぎている気がする。ゲームだけ作ってればいいのに、新しい言語、電子工作、Webプログラミングなど。どれも無駄ではないが肝心のゲームが放置状態になっていてはだめだろう。ゲームを軸にして、その他は気分転換程度にしておくようにしていこう。
本棚の整理が少し進んだ
ブクログには本の状態を「未設定」「読みたい」「今読んでる」「読み終わった」「積読」から設定できるようになっている。どのように使うかは人に依ってまったく異なっている。試しに次のように設定することにした。
- 未設定
- 追跡する必要のないもの。ほとんどが「その他」に分類されるアイテム。機器類や道具や小物など。
- 読みたい
- いつか読もうと思ってるもの。自分の部屋の本棚に置かれていなくて未読であるもの。
- 今読んでる
- 自分の部屋の本棚に置かれているもので、1ページ以上読んだもの。最後まで読むつもりであるもの。
- 読み終わった
- 2パターンある。①全ページ目を通して本当に読み終わったもの。②読む意義を見いだせなかったので読み終わったことにしてこれ以上追跡しないもの。
- 積読
- 未読で今の所読む予定はないが、そのうち気が変わる可能性もあるもの。
「読み終わった」に加えて「読み終わったことにした」とかあるとより分かりやすかったのにと思う。登録してあるのは全部所有しているもので本棚というより買い物ログになってきている。
この振り分け方を使って、部屋にあるものを読むべきものとして、さしあたって読むつもりのないものを片っ端から部屋の外に追い出した。しばらく視界から外しておきたいのはダンボールに入れておいた。とくにWindows関連の本を片付けておいた。いつか必要になる可能性があるので処分したりはしない。というかものを捨てるのが苦手で特に本は処分できない。もう絶対必要ないよなというものまで抱え込んでいる。
2021年12月9日 (木)
晴れ
PC買うのは保留
そろそろPC買い替えてもいいかなと思ってたけど、最近いろんなものに手を出していて処理が追いつかなくなってきているのにまたやることが増えるのは嫌なのでやめておくことにした。来年中に落ち着いて余裕ができたらということにしておく。DDR5の普及も待ったほうが良さそうだ。
2021年12月8日 (水)
曇り、雨
身軽になりたい
本棚を整理していると限界を感じる。収納スペースが足りないのはもとより、本が多すぎる。必要な本ならいいけど、不要な本が多すぎる。①全く不要で手放したい本と②読むことはないけど所有していたい本がある。ものを捨てるのは苦手だ。何かしら役に立つのではないかとか手放すと後で後悔するのではないかとか考えて処分できない。特に本はそうだ。所有している本はブクログで管理している。本棚を眺めていると本に取り憑かれている感覚になる。本を読んでいるだけで人生の大半を消費してしまいそうだ。多くの本は所有していることで得られる満足感がある。問題は①と②の本たちだ。これらが多すぎて圧迫感のような負の感情になってしまっている。かといって簡単には捨てられない。それらを購入したのは何かしら理由があって購入したのだから。一番の解決策は裁断してスキャナで取り込むことだろう。自炊と呼ばれる。しかし、裁断機とドキュメントスキャナのために初期費用がかかる。その価値はあるとは思うがまだ踏み出せない。
2021年12月7日 (火)
雨
新しいがPC欲しい
そろそろPCを買い替えたい。次はRyzenにするだろうと考えていたところ、Intelの第12世代のCore (Alder Lake)が発売された。先週店頭にならでいるのは見た。ソケットも変更になってDDR5対応だったり大きな変化になる。マザーボードはZ690のものが必要で、これがまだ高い。今使ってるPCは2016年のもので格安と言っていいくらいの費用で揃えた。その後パーツ足していったので最終的にはそこそこといったところだった。CPUはCore i3-7100 (Kaby Lake) 2C/4Tでグラボはつけてない。2コアとか頼りなさそうなのもいいところだけど、大体快適に動作している。std::regexとか使うとコンパイルに少しラグが発生するのが鬱陶しいくらい。仮に買い換えるにしても今はいい時期なのだろうか。半導体不足にWindows 11のリリースというタイミング。あとグラフィックスカードが異様に高い。20万超えのがPCショップにぽんとおいてあったりして冷や冷やしないといけない。時代が変わっただけなのか分からない。
2021年12月6日 (月)
雨、晴れ
ラズパイ400を机から落とした
やってしまった。机の隙間から落ちた。今のところ無事そうだが不安だ。気をつけよう。
力学の勉強を始めた
何かを学び始めるのにおそすぎるということはない、ということで始めることにした。力学の本は何冊か用意してある。最初に「大学新入生のためのやさしい力学」という本の第1章をこなしてみた。かなりいい感じだった。数学をできるだけ使わずにということで、基本的な四則演算の計算はたくさんあるものの、ベクトルすら登場しない。矢印という形で登場するのでまったく無視されているわけではない。そんなので得るものがあるのかと疑問に思われるかもしれないが、別の普通の数学満載のテキストと合わせて使うとかなりいい感じで理解が進む。ちょうどよい感じの練習問題もたくさん用意されている。はじめにところで指摘されていたが、物理の教科書を読み物と読み物として読んでも得るものはないそうで面倒でもちゃんとこなしていかないといけないだろう。薄い本なので1週間か2週間で終わるだろうと踏んでいる。
Gitで設定ファイルを管理する
ホームディレクトリにある.profileのような個人用の設定ファイルをGitで管理する方法を考えている。一番率直な方法は ~/.dotfiles のようなディレクトリを用意して、その中に設定ファイル集めてそのディレクトリでgit initしてリポジトリを作成して管理する。もともとファイルのあったところからシンボリックリンクを張るというもの。このやり方はそんなに悪くない。ただ、Spacemacsで.spacemacsのシンボリックリンクを開くと警告が表示される。これが鬱陶しいので別の方法を探している。
もう一つの方法は、~/.dotfilesはリポジトリ専用のディレクトリとするが、ファイルを置かないという方法。具体的には次のような感じになる。
$ cd ~/.dotfiles $ git init $ git config core.worktree "../../" $ echo '*' > ~/.gitignore $ git add -f ~/.spacemacs $ git add -f ~/.profile $ git add -f ~/.config/fish/config.fish
worktreeについては何も分かってない。なぜ"../"ではなく"../../"なのかとか。これをやると色んな所にシンボリックリンクが散りばめられてしまうのを避けることができる。本来あるべき場所にファイルが存在することができる。Gitに対してなにか行うとき、特にコミットするとき、いちいち~/.dotfilesに移動しないといけないのが面倒。
また、Gitが管理するアイテムがリポジトリのディレクトリの外にあるのでgit ls-filesで管理しているファイルの一覧を得ることができない。代わりに次のコマンドを使う。
$ cd ~/.dotfiles $ git ls-tree --full-tree --name-only -r HEAD
あまりスマートではない気がしていて、別の方法がないか気になっている。
2021年12月5日 (日)
晴れ
ベタープログラマを読み終えた
類似するテーマの本としては達人プログラマーなどがある。それほど格調高いものではない。38+1の章に分けられていて、各章の終わりにはギャグ漫画がついている。要求も無理なものではなく、意識付けしだいで実践可能に思える。とはいえ1回読んだだけでは何かが劇的に変わるものでもないだろうし、盲目的に従ってもダメだ。何度か読み直すとじわじわと効いてきそうな感じがする。
雪囲いを設置した
今年はまた大雪になると言われている。天気予報がそう言っているのではなく、周りの人がそう言っている。風のうわさかもしれない。4年前と去年と急に大雪になるケースが増えている。2年続けては流石にきつい。予報がどうあれ雪囲いはするわけだけど、設置しないといけない面積が結構広く、毎年恒例とはいえ大変で面倒な作業だった。
2021年12月4日 (土)
雨
並行プログラミング入門を読み終えた
前半、読み始めた頃はこれで苦手意識を克服できるのではないかと期待していた。中盤辺りからなかなか理解が追いつかなくなってきた。async/awaitを使った非同期プログラミングの章が特によく分からなかった。最後までなんとかついていくのが精一杯で全くものにできていない。Rustでのコード例が豊富にある。Rustは何冊か本を読んだ程度で、経験不足からコードからその意味を読み取る能力が不足しているため理解に影響が出ていたのかもしれない。ともかく残念ながら期待していたほどの成果は得られなかった。まだ何冊か並行プログラミングに関する本が残っていて、それらは特定のプログラミング言語に焦点を絞ったものだ。例えばC++ Concurrency in Actionとか。来年は並行プログラミングの強化を目標としよう。
2021年12月3日 (金)
晴れ
Solusをしばらく使ってみて
GarudaからSolusに乗り換えて1週間位経過した。すこぶる調子がいい。Garudaほどソフトウェアのカタログは充実していないし、初期状態もGarudaほど手の混んだ作りにはなっていない。変わりに無駄をなくしたソリッドな環境になっている。トラブルに遭遇するケースも少ない。一番嬉しいのは確実にスタンバイ状態から復帰できるようになったことだろうか。そんなことできて当たり前だろうという気もする。しかし、ハードウェアの相性の問題だと思うが、復帰できないことが何度もあったので自動スタンバイはオフにしていた。そのため朝まで起動しっぱなしだったということが何度もあった。Solusでは一度も遭遇していない。
Firefoxに戻った
Chromiumをしばらく、1年位使っていた。SolusではSnapでインストールした。そしたらmDNSのfoo.localといった名前からアドレスを解決できない現象に遭遇した。おそらくSnapでインストールしたことが理由だと推測している。なのでFirefoxメインに戻ることにした。こちらはfoo.localの名前解決はちゃんとできている。特にChromiumにこだわりがあるわけでもなく、むしろFirefox派だったので残念な気持ちにはならない。
HTTPSにしたい
前から気になってはいた。アドレスを見るたびhttpsにしたいなーと気が散るのは無駄なのでなんとかしたい。
2021年12月2日 (木)
雨
ラズパイの公式のケースが欲しい
本屋に行ってきた。県内で一番大きな本屋でプログラミングに関係する本を実店舗で物色したいときはそこに行くしかない。自宅から車で1時間ほどかかる。帰りにマルツ(電子パーツ屋)に寄っていった。電子工作の練習がストップしてしまっているので特に目当ての電子パーツがあったわけではなかった。気になっていたのはラズパイの公式のケース。ラズパイ3B+とラズパイ4Bを所有していて、これらはケースやヒートシンクなど必要なものがセットになったキットで購入したもの。ラズパイ4Bは発熱がそこそこあるらしく、公式のケースではいまいち冷え具合が良くないらしい、と書いてあった。キットに付属していたケースに不満があるわけではない。しかし、公式のケースの赤と白のやつのポップなデザインがすごく良くて欲しくなってきた。店頭においてあったのだけど値段を見ながら考えてみると、ラズパイ自体が品薄で入手困難な現在、新しく本体が増える見込みもないため、使いもしない飾りのケースを買うのはどうだろうと迷いが生じた。そのまま買わずにお店をあとにした。よくあることなのだけど、こういうパターンだとあとになってやっぱ買っておけばよかったとなる。案の定今回もそうなった。
プログラミングと本
本屋ではまた本を買った。先日アマゾンのBlack Fridayセールでポイントが入るのでまとめ買いしたばかりだというのに。本当は「ゼロから作るDeep Lerning」という本の2巻と3巻を確保しておきたかったのだけど、店頭にあるのが状態がいまいちだったので別のものを買った。もう読み切れないほどの本が溜まっているのになぜまた買ってしまうのか、単なる所有欲によるものなのかわからない。本棚に本を並べてもプログラミングの技術が向上することはない。それは当然だとして、本を読むだけでプログラミングの技術が向上することもやはりない。しかし、読まないよりは読んだほうがいいし、写経もしないよりはしたほうが良いかもしれない。もっと良いのは、読んで理解してその本を軸にして自分のやり方で応用して実践していくことだろう。そうすると当然読むペースは遅くなる。これは受け入れるべきだろうか。たくさん本を読んでいることと、少数の本を糧として実践に移していることは、いくらか反するところがあるだろうか。そうでもない。たくさんの本を読んでお気に入りの本を見つければいい。その他の本は割り切ってさほど時間をかけずにおく。その見極めが大事かもしれない。お気に入りのは読んで理解するだけじゃなくそこから自分のやり方で広げていってその先を目指していくことにする、と良いかもしれない…
2021年12月1日 (水)
雨、霰
キーボードが調子悪い
ARCHISSというブランドのMaestro FLというちょっと高いキーボードを使ってる。日本語レイアウトで「L」の右隣に「;+」がある。このキーがおかしい。打鍵したあと指を離すと戻ってくるときに引っかかりを感じる。特にキーの下の方で押したときに顕著になる。掃除とかしてみたけど直らない。数ヶ月前カップラーメンをひっくり返してしまったことがあってそれが原因ではないかと疑っている。すごく気に入って使っていただけに残念だ。使えなくはないのでPC買い換えるまではこれでいく。同じのが手に入れば買い直してもいい、というくらい気に入っている。でももしかしたらREALFORCEを選ぶかもしれない。
最近PCのハードの当たりが悪いように思う。この前買ったばかりの27インチディスプレイはドット欠けがあった。店頭で追加料金でドット欠け保証入るかどうか聞かれてそんなの当たら無いだろうと踏んで入らなかった。甘かった。ディスプレイの製品自体はとても気に入っているだけに悔やまれる。画面が暗くなるたびにちらっと目に入ったりして残念な気分になる。