投稿

ラベル(最小包含球)が付いた投稿を表示しています

VanillaOS 3を試す

イメージ
以前仮想マシンで試したものの、あまり時間が取れず、しっかり使えていなかった。 余っている(テスト用においてある)Thinkpad x390に実際に入れて試してみた。 Vanilla OS ところが、サイトに行ってみると少し前(2026-08-24)にUpdateされており2→3へと2年ぶりの更新。 簡単に言うとイミュータブルなOSで、OS本体の書き換えは基本的にできず、A/Bパターンで起動する必要がある。 Aでインストールしたものは、Bに入れられ、起動時にBを選択するとインストール後の状態で使える仕組み。不具合があればまたAに戻せるというもの。 若干、コマンド類が変わってしまっているらしい。 イミュータブルなOSは、これまでにも試したものの日本語がうまく扱えないなど常用するには結構厳しいものがあった。 とはいえ、時間の経過で様々なアプリケーションがFlatpakやAppImageで出揃ってきたので、今回テストすることにした。 インストーラ自体は小さく、起動用のUSBに書き込んで起動すればOK。 インストール完了後、マシン名やユーザ名を入力することで、環境設定は完了。 基本的にはFlatpakでインストールするのが正しい使い方らしいので、必要そうなものを入れてみた。 vscode Brave Browser LMStudio DBeaver-ce Thunderird Obsidian opencode LibreOffice など・・・ どれも、サクサクと動作して気持ちいい。 日本語環境 さて、問題は日本語環境だが、調べてみるとflatpakにmozcもfcitx5も存在していた。 これんらばと思い、入れてみる。 https://note.kurodigi.com/vanillaos-fcitx5-mozc/ が、vanillaOS2の記事のようだけれども、同じ手順でOKだった。 すばらしい。 いつも使用しているmozcが動作するようになった。 ところが、LMStudioでハマった… flatpak特有の問題 LMStudioはすんなり入り、LMLinkでローカルのAIサーバも使用可能。 で、URLを指定したときにWEBサイトを取りに行かせて、処理させるMCPでハマった。 https://github.com/modelcontextprotocol/servers...

アルゴリズムって難しい

最小包含球に関して 教えている専門学校生は、ゲーム制作を主として勉強しているのだけれども、前回講義が終わってから質問があった。当たり判定を行う上で、キャラクターのポリゴンを包むエリアを球で表したいけれども、その最小の球の中心と半径を求めたいとな…。 ふむふむ、当然、そういうケースも起こりうるわなぁと。 「で、今はどんな方法を?」 「とりあえず、頂点の平均値から中心を求めているが、当然最小ではなくて、他の方法を探しています」 「平面であれば外接円を求めることになるよね?」 「それは分かりますが、空間で行う場合のアルゴリズムが分からないので…」 調べましたがな… 即答するのには、こちらも手持ちのネタがない。 「1週間待ってくれ。ヒントぐらいはあげられる筈だから…」(本当か?)と思いつつ、調査することに。 いろいろな方法が有るんだけれども、ゲームということは実行時間が短く、メモリをあまり食わない方法が最適。この条件で良さそうなものを探すことに。見つけたのが、 「 点の集合を包含する球 」という文献。 ここにも、様々な方法が紹介されているものの、最後のものが良さそう。 ということで、実際にコーディングして確かめることに。 条件は変なデータはないという前提でエラーチェックも最低限にして…。 #include <math.h> #include <stdio.h> #define INPUT_FILE "stars-s.txt" #define DATANUM 30 typedef struct { double x, y, z; /* coordinates */ } pos; int n=DATANUM; pos point[DATANUM]; pos center; double distance(pos p,pos pp) {     double rr;     return((pp.x-p.x)*(pp.x-p.x)+(pp.y-p.y)*(pp.y-p.y)+(pp.z-p.z)*(pp.z-p.z)); } double solve_by_movement(void) {     int k,i,t;...