カテゴリー: 2024年の日記

  • 7月3日 (水)

    曇り

    ルールズ・オブ・プログラミングを読み終えた

    全然悪い本ではないのだけど、期待したほどではなかった。Ghost of Tsushimaが実績としてあることが信頼の証でもある。割とたくさん掲載されているC++のコードはかなり保守的だ。チームとして厳格なルールを敷いている。窮屈にさえ思える。正直、そんなチャンスもないだろうけど、ここでプログラミングをしたいと思えるような魅力的な環境には思えなかった。

  • 7月2日 (火)

    達人プログラマー 第2版 を読み終えた

    「達人」という当て訳に嫌悪感を抱くのは自分だけではないと思いたい。実際、C++ソフトウェア設計の参考文献には原著の方が挙げられていて、親近感を覚えたりした。

    セールス上の理由なのだろうが、この当て訳はすごく良くない。およそ実態はかけ離れているのに「達人」の振りをしたり自称したり思い込んだりできるのはどこを探してもこの領域だけだろう。

    砂糖菓子の弾丸は撃ちぬけない を読み終えた

    GOSICKを全部読み終えて、ようやく手を付けることができるようになった。GOSICKはあまりしっくりこなくて、やや微妙な感じで読んでいた。だから時間がかかったというのもあるだろう。そういわけなので、それほど期待していたわけではなかった。蓋を開けてみると、これは面白い。あっという間に読み終えた。残りにも期待できる。

  • 7月1日 (月)

    雨、曇

    Good Code, Bad Code を読み終えた

    C#やJavaのような言語を前提としているフシがあるので、要望に完璧にマッチするわけではなかった。しかし、堅実で、大変ためになる内容だった。

  • 6月29日 (土)

    GarudaとFedoraをインストールした

    壊れているSolusと、ずっと使っていないAV Linuxを削除した。GarudaはDr460nized Editionを入れた。以前、一度ログアウトすると再ログインができなかったりする症状があったので使えなかった。だいぶ時間がたっていることだし、もう一度試してみることにした。どうやら問題なく利用できそうだ。ただ、やはり色がファンシーすぎる。それが良いのだけど。Fedoraはちょうど40がリリースされたところだった。インストール、起動とも何も問題ない。快適に動作する。

  • 6月28日 (金)

    曇り、雨

    なっとく!アルゴリズム を読み終えた

    なっとく!関数型プログラミングが良かったので、買い揃えたシリーズの一つ。関数型プログラミングはそれほど簡単な内容ではなかった。こちらは、まあ、簡単と言っても良いだろう。突き詰めれば何もかもが簡単とは言えない。それに、後半のグラフアルゴリズムや動的計画法は必ずしも初歩的なアルゴリズムではない。本のタイトルが偽りにならないように、深入りしすぎず、かつ表面的になりすぎてごまかしたようにならないようになっている。その目標は達成されていて、確かになっとくできる。

  • 6月27日 (木)

    曇り、雨

    本棚の整理

    もらったニトリのカラーボックスを組み立てるのに合わせて、本を移動した。特に読み終わった本を収納している廊下の本をガラスケース付きの棚に移動した。理由は、廊下はチョコ専用のスペースとなっているので、何かの拍子に傷をつけてしまわないかを危惧したためだ。ずっと気にかかっていたのを修正できたのでスッキリした。組み立てたカラーボックスにはまだ入れるものがなく、空っぽのままとなっている。ベッドのところにおいたのだけどあまり乗り気ではない。寝るところはできるだけ何も置かないでおきたい。

    Computer Graphics from Scratch を読み終えた

    いい本だった。無料で読めることを知らなかったけど、全然損した気にはならない。これでやや不安に思っていた3Dグラフィックスの足場ができたと思う。思い残すことなくOpenGLの修行を再開できる。

  • 6月13日 (木)

    晴れ

    本を買った

    用事があったので出かけてきた。せっかくなので本屋によった。もうめぼしいものはない。なんとか1冊興味のあるものを見繕って買っておいた。あとはラーメンを食べて帰った。

    CodeLiteの補完

    ctagsdは全く機能しない。clangdはcompile_commands.jsonが生成されないので、オプションを反映させることができない。

    GitHubのissueにヒントがあった。

    https://github.com/eranif/codelite/issues/3214

    要約:

    • ctagsdは使わないほうがいい。
    • Settings → Preferences → Misc からログレベルをDebugにして、~/.codelite にあるログを確認して問題を特定する。

    このUbuntu 23.10の環境の場合、/usr/lib/codelite/codelite-make が見つからないというメッセージが見つかった。たしかにそのパスにはない。/usr/bin/codelite-make に存在していたので、そこへのシンボリックリンクを張っておいた。すると、clangdは期待通りの動作をするようになった。ctagsdはだめなままだが、無視してよいだろう。

  • 6月12日 (水)

    晴れ

    YouTube動画投稿 自力で三角形を描く (2)

    三角形を塗りつぶす。

  • 6月11日 (火)

    晴れ

    タブレットを接続した

    買ったまま放置状態だったXP PEN Deco V2を接続した。EndeavourOSはArch LinuxベースのディストリビューションなのでAURにドライバが存在していた。インストールしてみたが、認識してくれなかった。公式のサポートでLinux汎用のドライバが提供されていた。それをインストールしたらバッチリうまく行った。いまさらだけど良い買い物をしたものだ。

    YouTubeに動画投稿 自力で三角形を描く (1)

    直線、正確には線分を書くところまで。

  • 6月10日 (月)

    雨、晴れ

    Computer Graphics from Scratch 9章を読んだ

    パースペクティブ。

  • 6月9日 (日)

    曇り

    Computer Graphics from Scratch 6〜8章を読んだ

    ラスタライザのパートに入っている。一発目は直線を描画することから。前パートのレイトレーシングと比べるとやさしくなっている。まだ序盤であり、3Dが関係しないため直感的であることが理由だろう。

    直線を描く、単色で塗りつぶされた三角形を描く、さらにグラデーションで塗りつぶすところまでやる。いずれも補間 (Interpolation)を意識することが重要となる。

    ここの部分はYouTubeの動画にできないかを考えている。ちょうどOpenGLで三角形を描画するところまでやったあとなので、タイミングもちょうどよい。

  • 6月8日 (土)

    晴れ

    ラズパイでraylibを使えるようにした

    とても苦戦した。raylibをビルドするときに、MakeあるいはCMakeのオプションでOpenGLのバージョンを明示的に指定してやることが必須である。

    $ cd src
    $ make PLATFORM=PLATFORM_DESKTOP GRAPHICS=GRAPHICS_API_OPENGL_21

    これは公式のWikiにも書かれている。

    CMakeならば次のようにする。

    $ mkdir build
    $ cd build
    $ cmake -DPLATFORM=Desktop -DGRAPHICS=GRAPHICS_API_OPENGL_21 ..

    一応は使えるようになったものの、プラットフォームをDRMにすると動作しないことにまだ引っかかりを覚えている。

  • 6月6日 (木)

    晴れ

    Computer Graphics from Scratch 4章で落とし穴にはまった

    floatの精度による誤差で期待通りの結果が得られない問題と格闘していた。floatをdoubleに置き換えれば解決することを発見した。そうすると、raylibのVector3は使えない。自前の簡易的なユーティリティを作成した。結果、問題は解決した。

    Computer Graphics from Scratch 5章を読んだ

    これでパート1のレイトレーシングは終了となる。仕上げとして、これまでのレイトレーサーを拡張するヒントが書かれている。これまでと違い、本の中では実際にやることはなく、読者の課題となっている。全部やっていたらかなり大変だが、理解もずっと深まることだろう。。まずは1周してしまうのが良いだろう。

  • 6月5日 (水)

    晴れ

    チョコが吐いていた

    朝、部屋を開けたら嘔吐物が散乱していた。調べてみると、昨日寝る前に食べた食事を全部吐き出したようだ。いつもと違ったものを出してみたら、おいしそうによく食べてくれるので、調子に乗って一袋全部あげたのが良くなかった。今後気をつけよう。

  • 6月4日 (火)

    晴れ

    Computer Graphics from Scratch を読み始めた

    OpenGL SuperBibleの4章を読み進めていたところ、もっとグラフィックスの基礎となるところの理解に不安を覚えてきた。1年ほど前に購入して読もうと思って手つかずだったこの本を開いてみた。最初がレイトレーシングから始まることに戸惑いを覚えていていたのだが、実際に読んでみると、このアプローチは非常に優れていることがわかった。ピクセルを画面に描画するPutPixel、あるいはSetPixelやDrawPixelなどと呼ばれる関数だけを使って、タイトル通りフルスクラッチで学んでいく。素晴らしい内容だ。3章まで読んで定番の基本的なライティングをしっかり学んだ。本書のサンプルコードはJavaScriptを採用しているが、自分はraylibを使った。DrawPixelに加えて、Vector3、Colorを使っている。それだけでも関心のあるグラフィックスに集中して取り組むことができるようになり、大変助かっている。

    GitHubで全文が公開されていることを知った。本の方が明らかに読みやすいので損したなどとは全く思わない。

  • 6月3日 (月)

    晴れ

    地震

    携帯に通知が来たあと少し揺れる。

    チョコのトイレ掃除と爪切り

    1週間経ったのでトイレのパッドを交換した。受け皿も洗った。全然匂いがしない。ちゃんと自分からトイレでしてくれるようになったし、この製品は大当たりだった。

    OpenGL SuperBible, 7th 3章を読んだ

    3回目くらい。問題なし。

  • 5月31日 (金)

    晴れ

    C++ソフトウェア設計 2章を読んだ

    これはすごい本だ。

  • 5月30日 (木)

    晴れ

    遠出

    いつもどおり、本屋に立ち寄って、ラーメンを食べる。実用Gitとプログラミング言語AWKを購入。

  • 5月29日 (水)

    晴れ

    チョコの診察

    経過良好。

  • 5月28日 (火)

    A Tour of C++, 3rd Edition 6、7、8章を読んだ

    読みやすい。

  • 5月27日 (月)

    晴れ

    部屋を片付けた

    猫がテレビの後ろをトイレにしてしまうので、思い切ってどかしてしまった。まだ小さいので、家中に放すのは不安で、なんとか部屋で過ごせるようにしておきたい。しかし、噛みグセがひどいので、長時間一緒にいることもできず。

    ラズパイ用のディスプレイが欲しい

    自室が使えないので、別部屋でラズパイを使うことにした。古びたテレビをディスプレイとして使用するものの、使いづらい。でかすぎる上に解像度が低い。ちゃんとしたディスプレイが欲しい。必要なのは今だけだろうから、思い切って買うのもためらわれる。

  • 5月25日 (土)

    A Tour of C++, 3rd Edition を読み始める

    読んでしまわないとまずいだろう。

  • 5月23日 (木)

    晴れ

    YouTube投稿

    OpenGLの修行 #3

    子猫グッズを購入

    トイレとバリバリボウル。

  • 5月22日 (水)

    晴れ

    猫のケージを購入

    小さめの。8000円。

    Blenderの本を購入

    安くなっていたので買ってしまった。

    発熱、腹痛

    謎。そんなに辛くはない。

  • 5月20日 (月)

    曇りのち晴れ

    OpenGL SuperBible 7th 2章を読んだ

    三角形を描く。めっちゃわかりやすい。