2025年5月23日金曜日

windsurfでclaude4対応

windsurf バージョン 1.9.2


BYOK(Bring your Own Key)

自分のAnthropic APIキーを使ってclaude4を使えるように!

やったぜ!

codexとclaude sonnet 4で便利になる。


<Anthropic API>

https://console.anthropic.com/settings/keys


<Windsurf API setting>

https://windsurf.com/subscription/provider-api-keys





2025年5月20日火曜日

codex(chat-gpt)にて、マルチリポは非対応。


マルチリポは非対応。



「ネットワークがないためサブモジュールを取得できない。」




仕方がないので、モノリポにしてみる。


2025年5月18日日曜日

codexでパターンの問題を解く


ある記号列が、どのようなアルゴリズムでなりたっているかを解く。

- BigEyeRoadEvaluator, SmallRoadEvaluator, BeeRoadEvaluatorを使い判定をする。
  例)
  PBBBPPBPBBBPPBBBの時  
  smallroad: 誤誤誤誤誤正誤誤誤正正
  beeroad: 正誤正誤誤誤誤誤正


入力と結果を与えると、ひたすらユニットテストしてごり押しで問題を解いてしまった・・・

すごい!すごすぎる!!

グループ化のアイデアは先に与えておいたのだが、

ごり押し天才プログラマーじゃんか。

最初AGENTS.mdを用意してなかったので、評価コードを使ったり、コードベースからシミュレーションしたり揺れがあった。

コードベースからシミュレーション(コードフローを追う、人間で言うところの机上トレース)、これは1つ評価するのに3分以上かかった。





# スモールロードの判定
- 勝敗履歴から Tie(T)を除いた B/P の並びを同じ記号ごとにまとめた「グループ」を作り、常に直近のグループを評価対象とします。
- グループ数が 3 未満、または三つ目のグループの長さが 2 未満の場合はマーカー無し。
- 直近グループが長さ 1 のときは、2 つ前と3 つ前のグループ長を比較します。両方が長さ1なら「誤」、それ以外は長さが等しければ「正」、違えば「誤」。
- 直近グループが長さ2以上なら、2 つ前のグループより短い、または差が2以上なら「正」、それ以外は「誤」。

# Bee Road の判定
- 基本はスモールロードと同じ処理を offset=3 で行います。
- グループ数や三つ目のグループ長が条件を満たさない場合はマーカー無し。
- 直近グループが長さ1のとき、最初のマーカー判定では1つ前と2つ前のグループ長が異なれば「正」、同じなら「誤」。マーカーが既にある場合は両方が長さ1なら「誤」、そうでなければ長さが等しければ「正」、違えば「誤」。
- 直近グループが長さ2以上なら、3つ前のグループより短い、または差が2以上なら「正」、それ以外は「誤」。


2025年5月17日土曜日

codex(chat-gpt)でリファクタリングができるのか評価してみる


https://chatgpt.com/codex



3.7 sonnetでメインループが存在する系のコードを書いて、一応完成させた。

だが、こんなの実際の人間は組まないよなー って感じの冗長化されたコードになっている。

フラグを複数管理すれば、もっとシンプルに書ける。



コードも長くなるし見通しも悪いので、codexでリファクタリングしてみるテスト。



<プロンプト>

cyber_grid_v2, big_eye_road, small_road, bee_road, game_history
これらをベストプラクティスに基づきリファクタリングしてください。
cyber_grid_v2は10目や3目が組み込まれてしまっている。

今の操作関連と表示処理は完璧なので、この動作を壊さないようにしてください。
全体的に無駄な処理がおおく、処理の流れが悪いように思えます。

例えば入力履歴が1つあれば、すべて復元できるのに、1個1個addしたりするのがおかしいように思える。
処理の流れが単純化していないので、冗長なメインコードになってしまっている、こんなのフラグ管理をするだけで、もっとシンプルにわかりやすく実装できる。







1分30秒ほど評価したあと、5個のタスクが作られた。
ここの評価で口をはさむことは、もうできない。


ここで完全に分離したタスクとして実行できるのが効率がいい。
本当に互いに疎結合として判断できてるのか、怪しい気がするが・・・







一番長いタスクで10分ほど、

ここまでの所要時間20分ぐらいで、一応リファクタリングが終わった。

さて、動作は?


※疎結合として判断してない、規模が大きいとき処理順を間違えるとコンフリクト起こすので注意!

まぁ仮にマージコンフリクト起きても、再度リファクタすればいいのだが・・・
codexがgit操作しまくってパッチを作ってくれるが、手間なので、なるべく起こさなようにした方がいい。



たまに失敗する。










結果として、とりあえずリファクタリングは完了した。

だが、メインループ系の冗長的な処理はまったく改善することはなかった。

やらないより、やった方が少しマシって程度。


だが、見つけにくい致命的なバグを生み出してしまっていた。

結果リファクタリングは失敗したので、失敗したものをさらに直してみる。


もう一度しつこくリファクタリングの指示をしてみる。




これは致命的なバグです。 他の下部3セクションにも影響します。 なぜこんな事がおきたのかも説明してください。




動作ログを見ても説明がない。
プルリクにも説明がない。
プルリク前のまとめにも説明がない。


直ったが、完全にブラックボックスになってしまった・・・
いまのところソースの評価はローカルIDEでやった方がいい。



2025年5月16日金曜日

LinuxMint 22.1でWayland有効だとRustDeskが動かない


LinuxMint 22.1でWayland有効(試験的機能)だとRustDeskが動かない

そして、Intel HD Graphicsも、

古いOpenGLで書いても、内部的に変換処理はされない。


2025年5月15日木曜日

trigkeyのN95の奴

監視カメラを9台録画、2TのSSDを増設し常時稼働で2年経った。

動作に支障はないが、ファンから異音がする。
せっかくの静音マシンなのに・・・

開けたが、露出しているわけじゃないので直すのが面倒。

軸受けの耐久がよくない模様。



まぁ2万以下で十分元は取ってると思う。


2025年5月11日日曜日

スマホをブラウザで操作

スマホをブラウザで操作

複数台対応

非root

android15動作

https://github.com/DeviceFarmer/stf


2025年5月10日土曜日

LLMが苦手な事

メインループでぐるぐる回って、フラグが切り替わってよしなに動くような処理を書くことができない。

cluade-3.7 sonnetだと理解がむずかしい。

gemini 2.5 proだとわりと理解できることがある。


ただし、どちらも明示的にそのような支持をしないと記述しない。
なんなら与えても割と間違える・・・


継続処理されることによって、表現されることはまだ苦手。


このような処理は、人間が細かく土台を指示して作らないと、書いてはくれない。

というか、そのような発想を与えないと全く違う表現をする。




pygletのインスト

python仮想環境無視して、強制的に入れる。


sudo pip3 install pyglet --break-system-packages







ムカつくので、ここに書く。



pygletでMSAA(Multi-Sample Anti-Aliasing)使った。
NVIDIAなら問題ないが・・・


🔧 pyglet + GLSL 120 + MSAA シェーダー テスト開始
----- OpenGL Info -----
GL_VENDOR   : NVIDIA Corporation
GL_RENDERER : NVIDIA GeForce RTX 4070 Ti SUPER/PCIe/SSE2
GL_VERSION  : 4.6.0 NVIDIA 572.60
GLSL_VERSION: 4.60 NVIDIA
------------------------
🔍 GL_SAMPLES         = 4
🔍 GL_SAMPLE_BUFFERS = 1
✅ pyglet.app.run() 開始





これAlder lakeのオンボードグラフィックだとpygletでLINEやSMOOTH_LINE使ってもアンチエイリアスが全然効かない。

$ glxinfo | grep "OpenGL version string"
OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.0.9-0ubuntu0.3

Mesa ver24以降で実行したが・・・

🔧 pyglet + GLSL 120 + MSAA シェーダー テスト開始
----- OpenGL Info -----
GL_VENDOR   : Intel
GL_RENDERER : Mesa Intel(R) Graphics (ADL-N)
GL_VERSION  : 4.6 (Compatibility Profile) Mesa 24.0.9-0ubuntu0.3
GLSL_VERSION: 4.60
------------------------
🔍 GL_SAMPLES         = 4
🔍 GL_SAMPLE_BUFFERS = 1
✅ pyglet.app.run() 開始




自前でGLSL叩いて、ごにょごにょしないとまともにアンチエイリアスも効かない。
openglの低レベルアクセスとかじゃないから、まだ楽だが。
とにかくpygletは何もしてくれないじゃないか!意味なし!!!


ローレベル周りの処理が無くなっただけで、実は30年前とやっていることがあまり変わらない。
それも無理やりLLMで解決させられるのが時代を感じるが、ダルい・・・

ポリゴンドライバとか今なら楽に組めそうだな・・・
たぶんdeepseekが似たようなことやってるんだろうな・・・


結局nvidiaとGLSLがすごい事がわかったし、軽量ゲームエンジンなんてクソということがわかった。
だったら初めからunrealとか使うわ!!クソが!!

もう二度とpygletなんて使わない!
完全に公式サイトのヒーロー画像に騙された。


無理やりpygletでGLSLを書いたら、それなりに綺麗になったが。









✅ じゃあ pyglet でどうしてもFXAAをやりたいなら?

それでもできますが、以下の全てを自作する必要があります:

必要なこと説明
pyglet.gl で FBO 作成OpenGLの glGenFramebuffers() などを自分で呼ぶ
シェーダー読み込みとリンクglCreateShader, glCompileShader 等を自前管理
テクスチャアタッチして描画glBindTexture, glTexImage2D
フルスクリーンクアッドに FXAA を適用FXAA用GLSLを別途書いて適用

⛔ これは正直、pygletの利点(シンプルさ)を台無しにするほど面倒です。




といいつつ、godotだと多分動くと思うので、もっと軽量なもので試す。


sudo apt install libgl1 libegl1
sudo apt install libgl-dev libegl-dev

pip install moderngl moderngl-window
pip install PyOpenGL




比較項目 pyglet moderngl
初出 2006年 2017年(比較的新しい)
主な用途 2Dゲーム、教育、GUI風の簡単描画 本格的なOpenGL描画(GLSL前提)
API設計 古典的OpenGL(glBeginなど) モダンOpenGL(VBO, VAO, シェーダー)
GLSL対応 限定的(手動) フルサポート(統合)
MSAA対応 有効化すれば可能 自然に対応(samples指定のみ)
GUI/音対応 pyglet.media, pyglet.text あり ❌(描画専門。UIや音は含まない)











2025年5月5日月曜日

ついに!ChatGpt 4oの頭がおかしくなった

2025/05/03
コーディングの前段階で、仕様を決めている最中の出来事。


まじでクソ!

言っていることが支離滅裂。


ロジックの内容がすべて破綻している・・・


なんだこれ???なんか変なアップデートでもあったのか?

2週間ほど前にvide coding界隈で、gemini 2.5proがバカになったと騒いでいたけど、それ以上ひどくなっている!!

2年前も同じ状況になった覚えがあるな・・・

4oってまだ調整してるんかいな?だとすると調整を間違えたんじゃないか?4oが未だに調整されているのか調べてみる。


ChatGPT-4o(GPT-4o)の最新の調整(チューニング)は、2025年4月末に実施されたアップデートのロールバックです。このアップデートでは、モデルの性格が過度に「お世辞的」で「同調的」になりすぎたとの批判が寄せられました。


確かにニュースでみたな。




おかしいので張っておく。


画像の読み取りと違うことを急に言い出す。





伝えた座標系の内容を急に変える。






座標系を理解しないで、適当な数字を列挙する。

画像から読み取った座標系と違う座標系をなぜか内部的に持っている。
指摘すると、4oが間違っていたことを理解しているように見えるが・・・







単純な処理の順番を間違える。








最初に削除しろと言っているのに、急にスキップの処理にしようとする。







何も指示していないのに、急にpythonを実行しだす。
そしてメモリエラーで止まる。
マジなんなんコレ!!!










ちなみに今日のclaude-3.7 sonnet(thiking)








あいうえお