2025年4月4日金曜日

cursorでSSLのacme

cursorでSSL導入をさせたら、certbot入れようとしてきた。

acmeでやれ!といったら

acme.shを使いだした。

今、そんなのあるんだ・・・

最近は雑にtraefikしてたから、知らなかったわ。


そしてcronでacme.shを実行するとか言い出しだので、

acmeプロトコルの標準的な方法で動作させろと言った。

.well-knownを作った。


めでたし、めでたし。



というか・・・古いシステムを刷新したいが、置き換えが面倒だ・・・

wasmer.ioとneondbとか使った方が、安いんでないか?

と思ったが、DBトリガーが必須要件。


PostgreSQLのトリガー自体は基本的に同一データベース内の操作を対象としていますが、以下のような方法でリモートの別のDBに書き込みを行うことが可能です:

  • Foreign Data Wrapper (FDW) や dblink の利用
    PostgreSQLでは、postgres_fdwdblinkなどの拡張機能を使えば、別のPostgreSQLデータベースに接続してクエリを実行することができます。トリガー内でこれらの機能を利用すれば、リモートDBへの書き込みも実現可能です。

  • Supabaseの場合
    SupabaseはPostgreSQLをベースにしているため、多くの拡張機能が利用できます。実際にpostgres_fdwdblinkが利用可能かは、プロジェクトの設定や提供されている拡張の一覧を確認する必要があります。

  • NeonDBの場合
    NeonDBもサーバーレスのPostgreSQLサービスですが、セキュリティやパフォーマンスの観点から利用できる拡張機能に制限がある可能性があります。そのため、リモートDBへのアクセスが制限されている場合も考えられます。公式ドキュメントで、必要な拡張機能がサポートされているか確認することをおすすめします。

まとめると、技術的にはトリガーで別のDBに書き込みを行うことは可能ですが、SupabaseやNeonDBで実際に実現できるかは、それぞれのサービスがdblinkpostgres_fdwなどの拡張機能をどの程度許可しているかに依存します。利用前に各サービスのドキュメントや設定を確認してみると良いでしょう。




なんか怪しい気がするので、全部作り直してcloudflare D1に置いた方が・・・


CakePHP 2.0は、2011年10月16日にリリースされました。PHP 5.2.6以降のバージョンに対応しています。


cake3にマイグレーションして、無理やり延命させてる。

claude codeで完全放置で自動的に置き換えられるのか実験する。

多分無理だと思うけど、どこまで行けるのか試す。


Roo Code & DeepSeek R-1でarchitectの実験

空っぽの状態で、どこまで行けるかテスト。


bun, svelte, surrealdbのlivequeryを使って投稿サイトを作る 投稿するには会員登録が必要 ある程度できたらalloy形式手法で評価し、自己修正。


まず、ユーザーが作成したい「Bun + Svelte + SurrealDB LiveQueryを使った会員制投稿サイト」の要件を正確に把握する必要があります。環境詳細から現在の作業ディレクトリが空であることがわかりますので、プロジェクトの新規作成が必要です。

考慮すべき主なポイント:

  1. ユーザー認証システムの実装方法(SurrealDBの組み込み認証機能を活用するかOAuthを導入するか)
  2. LiveQueryを使用したリアルタイム更新機能の適用範囲(新規投稿通知、コメント更新など)
  3. フロントエンドとバックエンドの通信方式(REST API vs GraphQL)
  4. クラウドフレア Workers/D1との統合方法
  5. Alloy形式手法を適用するためのコード品質基準



D1いらないし、認証をsurrealdbにする指示をあえて無視したら、

こんな図を出してきた。











修正したらこうなった。





コンテキストを使い切りそうだし、

codeモードでも、まともなコード書かずに

作ってもいない存在しないファイルを何度も実行しようとする。

bun run --watch server/index.ts

なんだコレ?




仕方がないので引き継ぐために、

仕様、構成、工程と完了がわかるファイルを用意しろと言ったら、

勝手にコード書きだした・・・


memory-bank以外に、pinecornとかqdrantみたいなので保存できんものか?

なんならsurrealdbにベクトル保存してくれたら、安上りに自己解決し続けるのだが・・・




あと提案がhonoでスタートしてるのに、個別でこんな事してくる。

bun install bcryptjs @types/bcryptjs @types/jsonwebtoken

お前が言ったんだろ!提案を自分で理解しトケよ

これhonoのドキュメント食わせないとダメだな・・・




クソが!月のAI費用が15万超えそうだというのに、一向に安い仕組みを構築できねぇ!!!


このままでは例のAWSと同じになるぞ・・・

40*12*2 = 960万円



cline系でclaude以外を使うとよくでるアレが発生。


Roo is having trouble...

Roo Code uses complex prompts and iterative task execution that may be challenging for less capable models. For best results, it's recommended to use Claude 3.7 Sonnet for its advanced agentic coding capabilities.



これ解決できるらしい?

rooじゃなく本家clineなら、r1まともに動くらしい・・・ホントか?


2025年4月2日水曜日

LLMスラング判定

ホ別苺は大丈夫!

それだと困るんだが・・・


 




roo codeで完全に放置できそうな言語

mgx.devあんまし使い勝手よくないし、バカすぎる。

俺は思った!!!
deekseek-R1(75% off)かgemma3.0(ローカル)で、Roo Codeをぶん回したい。

試してないが、go langとか安定しそうな気がする

基本的にclaude 3.7での体感。
・js系 --- 型ぐちゃぐちゃにするときある
・tailwindcss --- 構造がシンプルなので、LLMが得意
・svelte --- 割と賢いけど、UIライブラリ足らねぇ
・react --- しっかり命令しないと、いろんなやり方でバラバラになる(boltのが良いことが多い)
・rust --- ちゃんと命令しないと意味わからん事してくる。ライフタイム考えてなかったり、ArcやBoxでスパゲッティーコードになるときあり
・python --- そこそこだが、応用効かないコード(その場のみに最適化)出すことが多い
・php --- pythonより少しマシな事が多い気がする
・surrealql --- ドキュメントを与えても、完全に間違えるときある
・各種sql --- 完全に賢い。まったく使わんけど・・・
・traefik v3 --- たまに、なんかおかしいときある
・ansible --- だいたいあってる(指示による)
・docker --- だいたいあってる
そいや、インフラ系のAIあったよな。。。忘れた。


2025年3月30日日曜日

細い回線でVNC connectとrustdeskを実行した。

細い回線で実行。

ちゃんとしたログは取っていないが、明らかにrustdeskの方が体感がよかった。


vnc connectがP2Pできずに、通信をクラウドにフォールバックしてるのかと思ったが。

そこは調べていない。

多分P2Pできてると思いたい。



GPTの回答

✅ じゃあなぜ RustDesk の方が速く感じるのか?

👉 核心は「圧縮アルゴリズムと描画エンジンの違い」


🔄 比較:圧縮と描画方式の違い

項目VNC ConnectRustDesk
圧縮アルゴリズムJPEG(画質優先)や Zlib などZstd / LZ4(高速 + 効率)
描画方式RFBプロトコル準拠(ピクセル転送 + JPEG圧縮など)Rust製ストリーム描画(差分検出 + 効率転送)
リフレッシュフレーム単位 or 画面全体差分更新(動いたとこだけ送信)
入力の反応遅くはないが「ずれ」や「じわり」が出やすい体感ゼロラグに近い
転送サイズ高解像度 + フル更新だと大きくなる軽い・最小限のバイナリ転送





本当か?





本当にVNC connectも最新の転送技術を使っていないの?
ChatGPT:

良い疑問です!
結論から言うと:


VNC Connect も最新の転送技術は使っています。

ただし、設計思想が「安定・互換・画質優先」寄りなので、RustDeskのような「超リアルタイム&軽さ最優先」にはなっていない、というのがポイントです。


🧠 もう少し詳しく解説:

✅ VNC Connect が使っている最新技術(実際のところ)

技術カテゴリVNC Connect の対応
P2P接続/NAT越え✅ STUN/UDP Hole Punching 対応
TLS暗号化✅ 通信は E2E 暗号化
自動中継/フォールバック✅ 接続できなければクラウド中継へ
圧縮転送✅ JPEG 圧縮、Zlib 圧縮など対応
セッション再開/持続性✅ 接続の自動再試行、解像度変更への自動対応
画面差分検出✅ 効率的な差分転送(ただし方式は公開されていない)

🤔 じゃあ、なんで RustDesk の方が「速く」感じるの?

これは技術の 「世代」と「重視するもの」の違いです。

🏛️ VNC Connect(RealVNC)は:

  • 長年の商用実績がある

  • 企業/教育/医療など、トラブルがあってはいけない業界向け

  • 安定性、互換性、画質、ログ管理、統合サポートに重きを置いている

  • だからこそあえて「急ぎすぎない」描画や通信制御をしてることもある

🚀 RustDesk は:

  • 新興プロジェクト(AnyDeskに近い発想)

  • 「とにかく軽い・速い・即時操作」を最優先

  • 最新の軽量プロトコルや圧縮方式を積極的に取り入れている(Zstdなど)


🧪 たとえるなら…

観点VNC ConnectRustDesk
車でいうとメルセデスの高級セダン(安定・信頼)軽くて速いスポーツカー(チューニング重視)
ネット回線でいうとQoS付きで落ちない回線ピーク時めっちゃ速い光回線

✅ 結論(総まとめ)

  • VNC Connect も現代的な転送・暗号・P2P技術はしっかり使っている

  • ただし、設計思想が「保守的・安定寄り」

  • RustDesk はリアルタイム性・転送軽さ・スピードに特化

  • よって、体感としてRustDeskの方が「速く・軽い」と感じることが多い









気になったので、まとめてみた。




📊 圧縮・転送技術比較表

項目 / ソフトBrynhildrVNC ConnectRustDeskAnyDeskTeamViewerSplashtop
🇯🇵 製作者日本(ぺ^)英国 RealVNC社中国発OSSドイツ AnyDesk社ドイツ TeamViewer社米国 Splashtop社
📡 転送方式独自プロトコルRFB(VNC)独自軽量プロトコルDeskRT独自(TCP/UDP)独自(UDP + H.264)
🧠 描画方式フルフレーム or 差分推定(未公開)ピクセル転送(JPEG/Zlib圧縮)差分検出 + バイナリ転送DeskRT(時間軸含む差分)差分転送 + 転送量最適化H.264 ハードウェア支援可
🗜️ 圧縮アルゴリズム未公開(独自 or Zlib系)JPEG, Zlib等Zstd, LZ4DeskRT(軽量 + 高圧縮)Zlib, JPEG, その他H.264 or VP8 (選択式)
⏱️ 遅延特性中(ローカルは快適)やや遅め(画質優先)低遅延(P2P時特に)超低遅延(<16ms)中(安定性寄り)低〜中(H.264支援で高速)
📶 ネット適応性低(帯域に依存)自動画質調整あり可変圧縮(帯域対応)高(帯域に応じ動的転送)中〜高高(細かいネット調整あり)
🔁 NAT越え❌ 不可(VPN推奨)✅ STUN/中継対応✅ STUN/NAT穿孔優先✅ 中継・直結対応✅ 自動中継✅ 中継・P2P両対応
📥 転送量の最適化△ 部分的対応△ 最小限(画質優先)✅ 軽量転送を優先✅ DeskRTが得意✅ ある程度対応✅ H.264圧縮で転送量削減
🔐 暗号化✅ AES128程度(推定)✅ TLS (E2E)✅ TLS + E2E✅ TLS + 2FA✅ AES256✅ TLS/SSL
💬 備考軽量・簡単・日本語完全対応高画質安定・老舗OSS・高速・セルフホスティング可超低遅延・UI快適法人向け豊富な機能学校・企業で人気・安定

💡 特筆ポイント

  • Brynhildr:ローカル環境では快適だが、NAT越えや動的な画質調整、高圧縮には非対応。ローカルVPN環境での使用がベスト

  • RustDesk:超軽量・OSS・Zstd圧縮で軽快。P2P時の反応速度が驚異的に速い

  • AnyDeskDeskRTという自社設計の次世代コーデックにより、動きのある画面も滑らか。低遅延性能ではトップクラス

  • TeamViewer:安定性・サポート・企業統合に強く、多少の遅延は気にせず信頼性重視。

  • SplashtopH.264 ハードウェア支援が強力で、リモート動画や音声転送に強い。教育現場でも好評。

  • VNC Connect:画質優先設計で古典的だが安定性あり。ただし、最新の圧縮技術には遅れがち。


🧠 まとめ:どれが向いてる?

用途おすすめ
ローカルで軽くて簡単✅ Brynhildr
OSS & 自ホスティングしたい✅ RustDesk
滑らかでプロフェッショナルな操作感✅ AnyDesk
安定性&法人サポート✅ TeamViewer
動画・教育用途✅ Splashtop
レガシー互換・保守的運用✅ VNC Connect








2025年3月29日土曜日

VS Code Remote-SSHで初期ディレクトリをリモート側で固定する方法

VS Code Remote-SSHで初期ディレクトリをリモート側で指定する方法

SSH接続時に任意のディレクトリを開く。


WSLの場合、以下のファイルを実行権限にしシェルコマンドを記述


  nano ~/.vscode-server/server-env-setup

  cd /home/myapp


# 実サーバの場合

リモート先を開くことはできないがターミナルだけでも開いておく。



nano ~/.bashrc

# VS Code / Cursor からの接続時に初期ディレクトリを変更
if [[ "$TERM_PROGRAM" == "vscode" || "$TERM_PROGRAM" == "cursor" ]]; then
 cd /home/myapp
fi

2025年3月24日月曜日

プログラマー的、雑なコラッツ予想の証明法?

唐突にこれを思い出して、アニメーションが気に入らないのを直した。

https://collatz-conjecture-calculator.netlify.app/



GPTに聞いてみる。

コラッツ予想の証明法で、以下の反証はありますか?


任意の数を2進数のビット列に変換する。

処理1(偶数の時、n÷2は1bit目が1になるまでビットシフトと考える)

処理2(奇数の時、3n+1は1bit目に注目すると、3回ビットが変わる、つまりNOT)


自明1:二進数なので0,1以外は存在しない。

自明2:処理1では、どんな数でも必ず1bit目に1が来る。

自明3:3n+1した結果がどんなビット列であろうが0が存在する限り、列が詰まる(やべー!0を含む確率になってしまった・・・)

自明4:処理2により必ず0が存在する

反証1:これを満たさないビット列は0,1以外で構成された数のみ。

自明4:反証1は自明1により存在しない。


1に収束することが明示的でないが・・・


証明完了??




テレンス・タオの2019年の論文



背景:Collatz予想とは

  • 基本的な操作
    任意の正の整数 nn に対し、

    • nnが偶数なら n/2n/2

    • nnが奇数なら 3n+13n+1
      を繰り返すと、最終的に1に到達する、という未解決の予想です。

  • 従来のアプローチ
    多くの数値実験や部分結果はありますが、すべての自然数について1に到達するという完全な証明は得られていません。



タオの論文の主な成果

  • 「ほとんどすべての整数」についての結果
    タオは、任意の正の整数のうち、例外となるもの(もし存在するとしてもその割合が0)を除けば、ほとんどすべての整数について Collatz の軌道が「ほぼ有界」な値域に入ることを示しました。
    これは、もし Collatz予想が正しいなら「ほとんどの整数の軌道は最終的に1に収束する」とみなせる状況に近いと言えます。

  • 「ほぼ有界」の意味
    論文では、どんなに小さな上界 AA を取っても、自然数全体の中で、その軌道が最終的に AA 以下に落ち込む整数の割合が 1 に近づく、という形で証明されています。
    つまり、例外の可能性がある数はあっても、その集合の自然密度は 0 であるという結果です。


使用された手法

  • 解析的・確率論的手法
    タオは、Collatz写像の振る舞いをランダムなプロセスに近い形で捉えることで、その長期的な動きを解析しました。
    エルゴード理論や解析的手法、さらには確率論のアイデアを組み合わせ、軌道がある有界な範囲に入る確率を厳密に評価しています。

  • 自然数の密度の概念
    「ほとんどすべての整数」という表現は、すべての自然数の中で例外となる数の割合がゼロである(すなわち自然密度1である)という意味です。
    このアプローチは、すべての整数について証明するのが難しい問題に対して、「例外は極めて稀である」ことを示す手法として有効です。





詳しく聞いてみる。


1. Collatz予想とその背景

  • 基本的な操作
    任意の正の整数 n に対し、

    • n が偶数なら n/2

    • n が奇数なら 3n+1
      を繰り返すと、最終的に1に到達するかどうかがCollatz予想の問です。

  • 未解決問題としての難しさ
    数値実験では非常に多くの数が1にたどり着いているものの、すべての整数に対してこの性質が成り立つかどうかは、依然として証明されていません。


2. 「ほとんどすべての整数」という意味

  • 自然数の密度
    ここで「ほとんどすべての整数」とは、たとえば NN 以下の整数の中で、この性質(軌道がある有界な領域に入る性質)を持たない整数の数を NN で割った極限が0になる、という意味です。
    つまり、もし A(N)A(N) を NN以下で性質を満たさない数の個数とすると、

    limNA(N)N=0\lim_{N\to\infty} \frac{A(N)}{N} = 0

    ということになります。例外は「極めて稀」であり、全体から見れば無視できる、という意味です。


3. タオの論文の主張とその手法

  • 主張の内容
    タオは、Collatz写像の軌道に対して、確率的・解析的な手法を用いることで、「任意に小さな上界 AA をとった場合に、ほとんどの整数のCollatz軌道は最終的に AA 以下の値に入る」という結果を示しました。
    これは、もし本当にCollatz予想が正しいならば、例外があったとしてもその割合はゼロになるという見方に対応します。

  • 使用された手法の概要

    1. 解析的・確率論的アプローチ
      Collatz写像は、厳密な意味では決定論的な操作ですが、大きな数に対してはその挙動が非常に「ランダム」に見えるため、確率論的な手法で扱うことができます。タオはこの性質を利用して、軌道がどのように動くかを統計的に解析しました。

    2. エルゴード理論や停止時間解析
      数列がどのくらいの速さである有界な領域に入るかを調べるために、停止時間(ある基準値以下になるまでのステップ数)の分布など、エルゴード理論的な考察も応用されました。

    3. 「ほぼ有界」性の証明
      任意の大きな N に対して、ほとんどの nN について、Collatz写像の軌道が最終的に非常に小さな値に落ち込む(たとえば、ある固定の A 以下になる)ことを示すことで、例外となる数が自然密度的に0であることを導き出しました。

  • この結果の意味
    この証明は、もしCollatz予想が間違っている(つまり、1に収束しない整数が存在する)としても、そのような整数は非常に稀で、全体から見れば無視できる(自然密度0)ということを意味します。
    一方、逆に言えば、「ほとんどすべての整数」については、予想される通りの振る舞い(最終的に有界な領域、ひいては1に近づく)が実現されるということです。


4. この結果の意義と今後の課題

  • 意義

    • 数学界においてCollatz予想は非常に有名で難解な問題ですが、タオの結果はその中でも「大多数」の場合についての理解を大きく深めたものです。

    • もし例外が存在するとしても、その反例は非常に特殊で稀なものでなければならないことが示され、Collatz予想が「ほぼ正しい」ことを裏付けています。

  • 今後の課題

    • なお、タオの論文はすべての正の整数について1に到達することを証明しているわけではありません。

    • 自然密度0の例外が存在する可能性(理論上は無視できるが、厳密に否定されていない)については未解決です。

    • このため、Collatz予想そのものの完全な解決には、まだ残された問題があることになります。


まとめ

テレンス・タオの2019年の論文は、Collatz写像における「ほとんどすべての整数」が最終的にある有界な値域に入る、つまり軌道が「ほぼ有界」であることを証明しました。

  • 自然数全体の中で、例外となる(軌道が有界にならない)数は極めて稀である(自然密度0)

  • これにより、Collatz予想が間違っているとすれば、その反例は全体から見れば無視できるほど小さい集合に限られるという新たな知見が得られました。

この結果はCollatz予想の「全体解決」には至らないものの、これまでの解析とは異なるアプローチで大多数の整数に対する理解を深め、今後の完全な証明に向けた重要な一歩と考えられています。