2025年6月3日火曜日
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日火曜日
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)でリファクタリングができるのか評価してみる
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日日曜日
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)
2025年5月4日日曜日
2025年4月30日水曜日
2025年4月25日金曜日
2025年4月24日木曜日
n8nにて、再実行の履歴管理が甘い
例えば普段成功しているが、失敗したフローがあるとする。
再実行できるが、最新版のワークフローは使えるが、失敗ノードからしか実行できない。
なので、無理やり頭出しするには、
・トリガーノードの次にfunctionを用意し変数を与える
・その次にswtichノードを用意
・トリガーノードと並列のテストデータを用意&変数を与える
・swtichで変数を見て、どのデータを使うか切り替える
だがこれで行ったとしても、結局どのフローが何回目で成功したのかがわからん。
ガチャガチャしてると、失敗したノードが最終的に成功しているのか、失敗したままか、そもそもリトライしていないのかが、まったくわからん(番号追いつつければ一応わかるが)
zaierやmakeは、その辺はちゃんとしてる。
プログラマならpython制のフローフレームワークperfectを使った方が、幾分かましな気がする・・・
2025年4月17日木曜日
n8nのセルフホストで苦労した話
専用に建てればよかったのに、どっかのサーバの片隅でやろうとした。
Oauth2用のリバースプロキシ設定し忘れて、異常に四苦八苦した・・・
しかもCaddy使ってた。いつもならtraefikかnginxなのに・・・
ケチらず有料のクラウド版か、専用のサーバを建てましょう。
OAuthで最後のコールバックの処理が504で終わってしまう、詳しくログを追うとわかった・・・
というか想像しトケよ!俺
雑書き
cat /home/n8n/docker-compose.yml
version: '3.8'
services:
n8n:
image: n8nio/n8n
environment:
- N8N_HOST=n8n.souzoku-tsumugi.net
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.souzoku-tsumugi.net/
ports:
- "5678:5678"
grep "server_name" /etc/nginx/sites-available/default
server_name localhost;
cat /etc/nginx/sites-available/n8n.conf
server {
listen 80;
server_name n8n.souzoku-tsumugi.net;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name n8n.souzoku-tsumugi.net;
ssl_certificate /etc/letsencrypt/live/n8n.souzoku-tsumugi.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/n8n.souzoku-tsumugi.net/privkey.pem;
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
client_max_body_size 100M;
}
2025年4月16日水曜日
ゴリラの神から加護された令嬢は王立騎士団で可愛がられる ジェネレーター
ジェネレーター作りたくなるアニメ。
アプリ名:ゴリラの神から加護された令嬢は王立騎士団で可愛がられる
「ゴリラの神から加護された令嬢は王立騎士団で可愛がられる」の名詞や動詞などをすべてランダムで生成する。
ゴリ神ジェネレータ
完璧聖女ジェネレータ
2025年4月13日日曜日
耐量子暗号をgptに聞く
NSAも関与するNISTの耐量子暗号標準化プロジェクトで最終候補に採択され、標準化されました(2022年)
🔐 Kyber の数学的な基礎
Kyberは「格子ベース暗号」の一種で、特に「Module Learning With Errors(Module-LWE)問題」に基づいています。
📌 概念:格子(Lattice)とは?
簡単にいうと、整数の線形結合によって作られる多次元のグリッド構造のこと。
格子暗号は、**「格子に関する困難な問題」**を暗号強度の根拠にしている。
🧮 Kyber の構成要素(数式レベル)
Kyberは、以下のような整数環と多項式環を使います。
📘 使用される数論構造
-
q:素数のモジュロ(Kyber-1024では q=3329)
-
n:多項式の次数(Kyberでは n=256)
-
Zq:mod q 上の整数環
-
Rq=Zq[X]/(Xn+1):次数 n の多項式環(Kyberが定義される主な空間)
📦 Kyber の主要な操作とパラメータ(Kyber-1024)
項目 | 内容 |
---|---|
k | セキュリティパラメータ。Kyber-1024では k=4 |
A∈Rqk×k | 公開のランダム行列 |
s,e∈Rqk | 小さなランダムな「秘密ベクトル」 |
t=A⋅s+e∈Rqk | 公開鍵の一部(ノイズ付き線形写像) |
🔐 鍵生成(KeyGen)
-
ランダムな行列 A∈Rqk×k を生成
-
小さい多項式ベクトル s,e∈Rqk を生成(ノイズ含む)
-
t=A⋅s+e を計算
-
公開鍵: pk=(A,t)
-
秘密鍵: sk=s
🔐 鍵カプセル化(Encapsulation)
-
新しい小さいベクトル r,e1,e2∈Rqk をランダムに生成
-
暗号文:
-
u=AT⋅r+e1∈Rqk
-
v=tT⋅r+e2+m∈Rq
-
ct=(u,v)
-
-
共有鍵 k をハッシュで導出(
SHA3-256(ct || m)
など)
🔐 鍵復元(Decapsulation)
-
(u,v) を受け取る
-
m′=v−uT⋅s
-
k=Hash(ct∣∣m′) で同じ共有鍵を再構築
🤯 なぜ安全なの?
暗号強度は以下のような「難問」に依存:
🧩 Module-LWE 問題:
与えられた A, t=A⋅s+e において、 ノイズ e がある状態で秘密 s を求めるのは困難。
これが、量子コンピュータでも解くのが困難だと考えられています。
📉 ノイズ(エラー項)の役割
-
Kyberでは e や e1,e2 のようなノイズ多項式を各演算に混ぜています。
-
これにより、観測される t や v から逆算して s を復元することが不可能になります。
✅ まとめ:Kyberの数学的本質
概念 | 内容 |
---|---|
暗号基盤 | Module-LWE問題(格子ベース) |
数学的構造 | 多項式環 Zq[X]/(Xn+1) |
安全性の鍵 | ノイズによる逆算困難性 |
特徴 | 高速、コンパクト、量子耐性あり |
📘 補足資料
-
NIST標準候補ページ:https://csrc.nist.gov/projects/post-quantum-cryptography
-
Kyberの論文: "CRYSTALS-Kyber: A CCA-Secure Module-LWE Cryptosystem"
幼稚園児
了解〜!じゃあ、Kyber-1024 を 幼稚園児にもわかるように、超やさしく説明してみるね🍭
🎁 Kyberは「秘密のプレゼント交換ゲーム」だよ!
👧🏻 ある日、アリスちゃんとボブくんは
「他の誰にも知られないように、おそろいの秘密のパスワードを作りたいな〜」って思ったんだ。
でもね…
😱 おしゃべりすると、悪い子(ハッカーくん)が聞いちゃうかもしれない!
🎩 そこで使うのが「Kyber」っていう魔法の箱
この箱はこういうことができるよ:
🧙♂️ 魔法1:「秘密のかけら」を入れると
-
誰にもわからないようにぐるぐるまわして
-
「秘密パスワードのカプセル」を作ってくれる!
🧙♀️ 魔法2:そのカプセルをアリスちゃんが受け取ると
-
アリスちゃんだけが
-
ボブくんと同じパスワードを取り出せるの!
🛡️ なんでハッカーくんにはバレないの?
-
このカプセルの中には、**ちょっとだけわざと入れた"まちがい(ノイズ)"**があるんだ!
-
ハッカーくんはこのノイズのせいで、中身を見てもわけがわからなくなっちゃう!
🤖 そして!未来のこわい「量子コンピューターくん」が来ても…
-
Kyberくんの魔法はとってもむずかしいパズルになってるから、
-
どんなに頭がよくても **ぜんぜん解けない!**🧩
🎉 だから Kyber は…
-
かしこい大人たちが作った、
-
とーっても強い鍵交換の魔法道具なんだよ✨
まとめ☝️
誰? | 何した? |
---|---|
アリス | 秘密のパスワードをボブと共有したい |
ボブ | 魔法のカプセルを送った |
Kyber | カプセルを作って、中身はノイズ入りで守った |
ハッカー | ノイズでわけわかんない!😭 |
あれ?VZ editorがオープンソースになっている・・・
嬉しいので記す。
さすがc.mos氏
オープンソースにしてくれるとは!
https://github.com/vcraftjp/VZEditor
昔はこれでFC, SFC, WSのゲームを作ってたよな~、なんならPS1, Saturnもか。
ちょうどターミナル上のエディタを何か仕込もうかと思ってたんだよ・・・
neovimじゃない何かで。
しかし昨今のlinux OSじゃ動かんだろ・・・
PC/AT互換機版でも、ツールチェーン合わないよな。
これこそarm系に乗せたいが、変換が難しそうだ。
cursorでvzのasmをrustにしろ!といったらvi作ってきたwww
vzはファンクションキーを多用するから、昨今の環境(vscode、ブラウザ)と相性悪い。
がちターミナル用だな。
しかもUS60キーだと更にキツい・・・
完全に移植を失敗した糞エディタをあえてwarpで表示してみた(昔なので80x30表示がズレてる)
ついでに、edlineがいつから無くなったのか調べてみた。
❓ Edline はいつ無くなったの?
残念ながら公式な記録や大々的なアナウンスは残っていませんが、調べた限りでは:
-
2010年代前半〜中盤くらいまで存在
-
GitHubなどでも2020年以降は更新されておらず、ほぼ自然消滅に近い形
-
公式サイトやドメインは現在アクセス不可(と思われます)
たぶん、2016年〜2018年頃にひっそり姿を消した感じですね。
✅ まとめ
システム | エディタ名 | 最終搭載バージョン | 備考 |
---|---|---|---|
MS-DOS | EDLIN | MS-DOS 5.0 | MS-DOS 6.0で削除 |
UNIX | ed | 現在も搭載 | POSIX標準、現行UNIX系OSでも利用可能 |
njjalaの親戚
https://customer.prq.se/index.php?/products/
bitcoinで払えるけど、ETH無理っぽい。
なぜかraspiのVPSがある。
家に40個以上あまってるからいらんけど・・・
https://flokinet.is/
2025年4月10日木曜日
win11homeでMT5稼働中のマシンの再起動抑制。
あってるかどうかは知らん。
# レジストリファイルの場合
no_auto_reboot.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
"AuOptions"=dword:00000004
"NoAutoRebootWithLoggedOnUsers"=dword:00000001
# バッチファイルの場合
@echo off
REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v AuOptions /t REG_DWORD /d 4 /f
REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoRebootWithLoggedOnUsers /t REG_DWORD /d 1 /f
echo レジストリ設定が完了しました。自動再起動が無効になります。
pause
2025年4月9日水曜日
2025年4月8日火曜日
cursorとかclineのAPI費用を抑える
codemcpを使う。
メッセージの上限が早すぎて、一旦途切れる。
「続き」を入力すればいいが・・・
なんなら画像認識で「続き」を入力させるツール作るか?!
エージェントごとに散らかるMCPを一元管理。
v 0.2.0にあがった
マイクラサーバBDSX
<マイクラ鯖どうなってんの?>
舞倉訳判らん!公式鯖でも10種類あるぽ?
フォーク含めたら何個あるんだ?
<結論>
結局、公式のBDSで、自前でwebsockサーバ建てて、RCONすればいいのか?
wensocketを受け取って、オブジェクトを降らすとかは、どのサーバでもできるの?
ChatGPT:
いい質問です!
**「WebSocketでデータを受け取って、ゲーム内でオブジェクトを降らせる」**みたいなことが **どのMinecraftサーバーでもできるか?**というと…
❌ 結論(公式Bedrockサーバー単体では不可)
公式の Bedrock Dedicated Server(BDS) では、WebSocketを直接扱うことはできません。
JavaScriptのScript APIもそこまで拡張性がないため、
WebSocket → ゲーム内に反映(例:オブジェクト降らす)
という処理を直接組むことはできません。
✅ できるサーバーはこれ!
サーバーソフト | WebSocket受信 | ゲーム内操作 | 解説 |
---|---|---|---|
BDSX | ✅(Node.js可) | ✅ | 一番おすすめ。TypeScript/JSでBDSを拡張できる |
PocketMine-MP | ⭕(PHPで対応) | ✅ | PHPでWebSocket受信すれば可能(やや面倒) |
Java版 + mods | ✅(Forge+mod) | ✅ | Java版はForgeなどで自由自在に可能 |
🎮 おすすめ:BDSX(Bedrock用)でWebSocket対応
BDSXは、公式BDSをNode.jsでラップして拡張できるようにしたプロジェクトで、WebSocketやHTTPを受け取って、ゲーム内でコマンド実行やイベント発生が可能です。
🔍【ポイントまとめ】
ソフト名 | OS対応 | 説明 |
---|---|---|
BDS(公式) | ✅ Windows ✅ Linux(公式対応) | Bedrock公式サーバー。WindowsとLinux両方あり。 |
BDSX | ✅ Windowsのみ ❌ Linux非対応 | Windows版BDSを内部フックして拡張するNode.jsツール。 |
💥 なぜ BDSX は Linux に対応していないの?
BDSX は、**Windows版BDSのメモリ空間を直接操作する特殊な手法(DLLインジェクション的)**を使っています。
Linux 版BDS は内部構造やバイナリレイアウトが違うため、そのままでは互換性がありません。
技術的な理由:
-
BDSX は
bdsx.dll
を使って Windows の実行バイナリにフックしている -
Linux では
.so
を使う必要があるが、それに相当するものが提供されていない -
ELF バイナリの構造に合わせて作り直す必要がある(かなり大変)
現在、Rustで実装されたMinecraft Bedrock Editionサーバー(BDS)で、スマートフォンから接続可能で、かつWebSocketを利用できる完全なソリューションは見当たりません。しかし、Rust製のMinecraftサーバー実装として以下のプロジェクトが存在します。
-
Phast: Rustで書かれたMinecraftサーバー実装で、Java EditionとBedrock Editionの両方をサポートすることを目指しています。 GitHub
-
Netrex: Rustで開発されたMinecraft Bedrock Editionサーバーソフトウェアです。 Rustrepo
これらのプロジェクトはまだ開発中であり、安定した運用や完全な機能性は保証されていません。
代替案として、以下の方法が考えられます。
-
公式BDSと外部WebSocketサーバーの連携:
-
公式のBDSを使用し、外部のWebSocketサーバー(例えばNode.jsやRustで実装)と連携させる方法です。
-
外部スクリプトからRCONやログ監視を通じてBDSを操作し、WebSocket経由で外部イベントと連携することが可能です。
-
-
PocketMine-MPの利用:
-
PHPで書かれたBedrock互換のサーバーソフトウェアで、プラグインによる拡張が可能です。
-
WebSocketを利用するプラグインを自作または導入することで、目的の機能を実現できる可能性があります。
-
結論: 現時点でRust製の完全なソリューションは存在しませんが、公式BDSと外部WebSocketサーバーの連携や、PocketMine-MPの利用など、他の方法でスマートフォン対応かつWebSocketを活用した環境を構築することは可能です。
登録:
投稿 (Atom)