2025年2月28日金曜日

DeepSeekが時間帯で割引になる

日本時間で夜中の1:30~朝の9:00までdeepseek R1が75% off


たぶん、open router経由だと割引効いてないっぽい気がする・・・

直接指定した方がいいかも。





https://api-docs.deepseek.com/quick_start/pricing/




Roo Code(旧roo cline)で、夜中にいじいじするしかない!!


2025年2月26日水曜日

surrealdbでAPIサーバを経由しない

無駄にアクセス数が多く、難しい管理もないのでAPIいらね。

SurrealDB 2.1.2


✅ この Surreql を実行すれば、SurrealDB に直接アクセスして会員登録・ログイン・アクセス制御ができる!



-- ユーザーテーブルの定義(SCHEMAFULL)と権限の設定
DEFINE TABLE user SCHEMAFULL PERMISSIONS
    FOR select WHERE auth.role = 'admin' OR id = auth.id
    FOR create WHERE (((!auth) OR auth.role != 'admin') AND new.role = 'general')
                  OR (auth AND auth.role = 'admin')
    FOR update WHERE auth.role = 'admin' OR id = auth.id
    FOR delete WHERE auth.role = 'admin';

-- 各フィールドの定義と検証ルール
DEFINE FIELD username ON TABLE user TYPE string ASSERT $value != "";
DEFINE FIELD email    ON TABLE user TYPE string ASSERT string::contains($value, "@");
DEFINE FIELD password ON TABLE user TYPE string;
DEFINE FIELD role     ON TABLE user TYPE string ASSERT $value IN ['admin', 'general'];



補足
※ こちらはテーブルのデフォルトフィルターではなく、サインアップ/サインイン処理の定義用です。
DEFINE SCOPEは非推奨。v2.0からDEFINE ACCESS


DEFINE ACCESS user_access ON DATABASE TYPE RECORD
  SIGNUP (
    CREATE user CONTENT {
      username: $username,
      email: $email,
      pass: crypto::argon2::generate($pass),
      role: "general"  -- 常に一般ユーザーとして登録する
    }
  )
  SIGNIN (
    SELECT * FROM user
     WHERE username = $username 
       AND crypto::argon2::compare(pass, $pass)
  );





ユーザー登録の実行例

curl -X POST -H "Content-Type: application/json" \
  -d '{
        "NS": "test",
        "DB": "test",
        "AC": "user_access",
        "username": "user001",
        "email": "user001@example.com",
        "pass": "mypassword"
      }' \
  http://localhost:8000/signup



2025年2月17日月曜日

目から鱗が落ちた、alloy形式手法

魔法のプロンプト


コードの内容を確認し、コードの編集をする前に、修正内容をAlloy形式手法で仕様をまとめてください、私がチェックします。



まじでAIが言うこと聞かない時ありますよね。

人間なら、こうやって書くのに~みたいな指示を的確に表現できるalloy形式手法。

マジで最初alloyで組んでたが途中でalloyをやめてしまった。

ガチャガチャして12時間ぐらい無駄な時間を使った。

AIにフローの構造壊されたりして、発狂寸前を繰り返してた。


んで、alloyに戻したら、目から鱗が落ちた。



ちょっと複雑なガチ系の印刷系のコードをAIに指示しても、うまくいかないことが多い。

印刷系って例外が多いから、人間だといい感じのフローを作るのだが、AIだとそれが苦手なんだよな。


調べさせる



alloyでまとめる




修正をかける




こういう単純な支持の組み合わせでいいんだよ!!


ただ気になるのが、あまりにもデカいソースだと構造壊されないのかが心配だわ。


IPAexのCDN

昨今のブラウザは性能がいいので、ブラウザ上でPDFとか作れる。
その時、ブラウザ上でフォントをダウンロードしたくなる時がある。

しかもCDNで・・・
o3-mini-highにもo1 proにも聞いたが、正しい答えが返ってこなかった。

Linuxディストロから持ってくるのも気が引けるので、woff2も作ってCDNに置いてみた。

ToUnicodeマップも埋め込めるので、chromeでPDFを開いてテキストをコピペしても、文字が壊れない。





firefoxとchromeのPDFのテキストの扱い

PDF内の日本語テキストを表示し、コピペする。


firefoxだと正常に動作し、chromeだと文字化けする。


実装の違い

Firefoxの場合:

FirefoxはPDF.jsというオープンソースのPDFビューアを使用しています。PDF.jsは、ToUnicodeマップが不完全な場合でも、独自のヒューリスティック(推測)アルゴリズムでテキストを抽出する工夫がされていることがあり、結果としてコピー時に正しい文字列が得られる場合があります。


Chromeの場合:

ChromeはPDFiumをベースにした独自のPDFビューアを使用しています。PDFiumは、ToUnicodeマップに依存する部分が大きく、もしPDF内に正しいマッピング情報がなければ、テキスト抽出時に文字化けなどの問題が発生する可能性が高いです。



とりあえずフォントを埋め込むしかないのか・・・


2025年2月14日金曜日

replit agentのクレジットが何もしていないのに、100%使用になってしまった。

なぜだ?!

agentを使ってるプロジェクトは2つ。


それぞれの最後のログが、

app1、8日前



app2、27日前



通知のログ




7日前が仮に50%なのは、遅延があると考えれば納得いく。

3日前で100%使用は、明らかにおかしい・・・


メタルのスケーリングにデプロイしているが、

どうもこれの使用料がクレジットから減っている様子。





各種LLMのAPIみたいに、いつどのぐらい使ったのかの履歴がないのでマジで怖すぎる。

サポートに問い合わせたが、どうなるか。


以降も視野に入れておく、NixOS対応のVPS。以下 参考記事。

https://github.com/hyphon81/nixos.tokyo.blog/blob/master/content/post/install-nixos-to-vultr-instance.md


2025年2月12日水曜日

IAUが承認した固有名を持つ恒星

451個以上はあるらしいが・・・・

Gemini Deep Serachと
o3 Deep Researchでやってみたが、


どちらも完成できない。



どちらのデータの出来がいいかというと、o3。

geminiは、割と早めにとってきたが、何度やってもすぐ諦める。
個数が少ない。

o3は、遅いけど、まぁまぁ取ってきた。
割としっかり検証されたデータ。
130件ぐらい。

2025年2月11日火曜日

無理やりo3-mini-highでリファクタリングしてみる。

おすすめ技


エディタで使えるo3-mini(midium)じゃ、ソースコードのリファクタリング向いてない気がしたので、o1 proかo3-mini-highに聞く。


プロジェクトぶん投げられないので、くそみたいなpythonコードを用意。


import os

js_extensions = ('.js', '.jsx', '.ts', '.tsx')

with open('projectoutput2txt.txt', 'w', encoding='utf-8') as f:
    for root, dirs, files in os.walk('src'):
        for file in files:
            if file.endswith(js_extensions):
                filepath = os.path.join(root, file)
                f.write(f'\n#### {filepath} begin\n')
                with open(filepath, encoding='utf-8') as g:
                    f.write(g.read())
                f.write(f'\n#### {filepath} end\n\n\n')



これの結果をo3-mini-highに見てもらう。


結果は上々だが、手でやるとめんどい。


上記の修正を指示するプロンプトを詳細に



小分けしてclaude3.5-sonnet-v2に投げてみる。



かなりいいかも!


cursorはリファクタでぶっ壊しまくる、

まだwindsurfのがマシ、それでも壊れる。

まだdevinでリファクタの指示したことがない。


あまりに細かいリファクタはdevin向いてないような気もするが・・・



とりあえずwidsurfのデフォでやるより壊れにくいと思われる。



2025年2月8日土曜日

webpとsvgとかをいっぺんに確認できる軽量な画像ビューワが欲しかったので作った

さっと開いて、拡大して確認しなきゃいけない事が多い。


というか、直した。

image glassじゃ使い物にならん!遅いし対応が微妙だし・・・


MSBT-yuina


https://github.com/firemio/MSBT-yuina/releases/tag/MSBT-yuina


2025年2月7日金曜日

apache2のgeoipで日本以外のアクセスをブロックする

たぶんiPhoneのicloud+のプライベートアクセスも判定できるはず。

# cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.1 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo




setup_geoip_restriction.sh

#!/bin/bash

# エラーが発生したら停止
set -e

echo "Starting GeoIP restriction setup..."

# 必要なパッケージのインストール
echo "Installing required packages..."
sudo apt-get update
sudo apt-get install -y libapache2-mod-geoip geoip-database geoip-bin

# Apacheモジュールの有効化
echo "Enabling Apache modules..."
sudo a2enmod geoip
sudo a2enmod remoteip
sudo a2enmod headers

# GeoIP設定ファイルの作成
echo "Creating GeoIP configuration..."
sudo tee /etc/apache2/conf-available/geoip-japan.conf << 'EOF'
# グローバルGeoIP設定
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat

# すべてのリクエストに適用されるGeoIPルール
<Location />
    Order deny,allow
    Deny from all

    # ローカルホストは常に許可
    Allow from 127.0.0.1
    Allow from ::1

    # 日本からのアクセスのみ許可
    SetEnvIf GEOIP_COUNTRY_CODE JP AllowCountry
    SetEnvIfNoCase CF-IPCountry ^JP$ AllowCountry
    Allow from env=AllowCountry
</Location>
EOF

# RemoteIP設定ファイルの作成
echo "Creating RemoteIP configuration..."
sudo tee /etc/apache2/conf-available/remoteip.conf << 'EOF'
RemoteIPHeader X-Forwarded-For
RemoteIPHeader CF-Connecting-IP
RemoteIPInternalProxy 127.0.0.1
RemoteIPInternalProxy ::1
RemoteIPTrustedProxy 127.0.0.1
RemoteIPTrustedProxy ::1
EOF

# 設定の有効化
echo "Enabling configurations..."
sudo a2enconf geoip-japan
sudo a2enconf remoteip

# Apacheの再起動
echo "Restarting Apache..."
sudo systemctl restart apache2

# テストの実行
echo -e "\nRunning tests..."

echo -e "\n1. Testing direct access from localhost:"
curl http://localhost/

echo -e "\n2. Testing Japanese IP (via X-Forwarded-For):"
curl -H "X-Forwarded-For: 126.1.1.1" http://localhost/

echo -e "\n3. Testing US IP (via X-Forwarded-For):"
curl -H "X-Forwarded-For: 8.8.8.8" http://localhost/

echo -e "\n4. Testing Japanese access via Cloudflare:"
curl -H "CF-IPCountry: JP" -H "CF-Connecting-IP: 203.0.113.1" http://localhost/

echo -e "\n5. Testing US access via Cloudflare:"
curl -H "CF-IPCountry: US" -H "CF-Connecting-IP: 203.0.113.1" http://localhost/

# GeoIPデータベースのテスト
echo -e "\n6. Testing GeoIP database:"
geoiplookup 8.8.8.8
geoiplookup 126.1.1.1

echo -e "\nSetup and testing completed."
echo "Note: In production environment, please verify the following:"
echo "1. Cloudflare IP Geolocation is enabled"
echo "2. Security Level is properly configured"
echo "3. Challenge Passage is properly set"
echo "4. Test with actual Cloudflare traffic"

mid journey プロンプトメモ

A delicate anime-style illustration of a gothic punk girl with long black hair, deep brown eyes, and dark gothic makeup. She wears a dark punk-style outfit, featuring a spiked choker and a black cross necklace. She is dressed in a black spaghetti-strap camisole, adding to her edgy and rebellious aesthetic. The artwork is in a soft watercolor painting style, with delicate brushstrokes and subtle color blending. The lighting is ethereal and dreamlike, casting a soft glow that enhances the fantasy atmosphere. The image is isolated on a plain background or pure white space, with no additional elements. The focus is entirely on the character. High-detail, fantasy illustration, anime style, watercolor aesthetics, no background. --niji 6








2025年2月4日火曜日

マシンを新調したので、各種ツールを更新検討

windows11の各種基本ツール


# ファイルのインデックス検索

- 一応調べたが、evenrythingとpower toys runぐらいしかまともなのがない


# リモートデスクトップ

- RealVLC Connect(最強!クライアント英語キーからホスト日本語キーにも対応できる、linuxmintなら全画面でもおかしくならない)

- RustDesk(無料!オープンソース!2FA対応)


# クリップボード履歴

意味もなく併用しておく

- clibor

- winkey + v


# 圧縮解凍

- Lhaplus 使いやすいので選んでいるが、不安定な要素が多い(でかいファイル無理とか)。作りが古いからか・・・近代のシステムに適合していないというのが正解か


# 画像閲覧

- ImageGlass  機能はいいが、なんか重い気がする

- MSBTyuina  ImageGlassの遅さが気になったので、MassiGraっぽい奴を作った。rust製で軽い。インストーラーを作ってないので、ビルドしないと動かない。

https://github.com/firemio/MSBT-yuina



2025年2月2日日曜日

イオンのフードコードの店舗が撤退をパプる(perplexity)

以下のニュースを見た。

イオンのフードコートの飲食店が全て撤退で飲食できない現象…なぜ発生?
https://biz-journal.jp/company/post_386260.html



どこのイオンなのか気になったので、パプれるのか調べてみた。

結論:できる

https://www.perplexity.ai/search/ionnohutokotonoyin-shi-dian-ka-QtsPFir3R.WstR6RktbbzA


以下、内容


# prompt
イオンのフードコートの飲食店が全て撤退、またはかなり減っているイオンはどこですか?


イオンのフードコートで飲食店が全て撤退、または大幅に減少している事例が複数報告されています:
  1. 一部の「イオン」店舗でフードコートのテナントが全て撤退し、飲食できない状況が発生しています1
  2. イオンモール春日部では、2025年1月に複数の店舗が閉店しました。フードコート内の水餃子専門店「餃包(ギョウパオ)」が2025年1月13日に閉店し、他にも同月中に4店舗が閉店しています3
  3. ある「イオン」の関連施設(具体的な場所は不明)では、フードコートの店舗がだんだん閉店し、最終的に全ての店舗が閉店してしまったという報告があります1
  4. オークワ(イオンではありませんが、イオンの影響を受けた事例として)のフードコートでは、ほぼ全店舗が撤退し、シンボルだった噴水も止まり、水が抜かれた状態になっています4
これらの事例は、商業施設の集客力低下や採算性の問題が原因として指摘されています



イオンのフードコートが閉鎖された店舗はどこですか

イオンのフードコートが閉鎖された、または大幅に縮小された店舗がいくつか報告されています:
  1. イオン仙台店:2025年2月28日に閉店予定で、フードコート内の「餃子の王将 イオン仙台店」が2025年1月28日に閉店します5
  2. イオンモール新潟南:フードコート内の「海鮮丼富寿し 新潟南店」が閉店し、他の店舗も閉店や改装のため一時休業しています4
  3. ある匿名のイオンモール:質問者の利用しているイオンモールでは、フードコートで2店舗、レストラン街で3店舗が閉店したとの報告があります3
  4. イオン津ショッピングセンター:2024年2月12日に一時休業予定で、2023年11月頃から閉店セールを実施しています1



# prompt
最終的に全ての店舗が閉店したイオンはどこですか?

回答
検索結果の情報に基づくと、全ての店舗が閉店したイオンの具体的な場所は明確に特定されていません。しかし、いくつかのイオン店舗でフードコートの店舗が大幅に減少または全て撤退した事例が報告されています:
  1. 一部の「イオン」店舗で、フードコートのテナントが全て撤退し、飲食できない状況が発生しています1
  2. ある匿名のイオンの関連施設では、フードコートの店舗が徐々に閉店し、最終的に全ての店舗が閉店したという報告があります1
  3. イオンモール四條畷では、2025年1月中に複数の店舗が閉店または移転しています。特に3階では4店舗が閉店し、その付近の店舗が減少しています3





########最終結果########


イオンの店舗別問題まとめ(更新版)

  1. イオンモール三光(大分県中津市)
    • フードコート「フードフォレスト」が2024年1月に全テナント撤退し閉鎖
    • 2024年9月から解体工事開始、2025年春にリニューアルオープン予定
  2. イオンモール四條畷(大阪府四條畷市)
    • 2025年1月中に複数の店舗が閉店または移転
    • 3階では4店舗が閉店し、その付近の店舗が減少
  3. イオン仙台店(宮城県仙台市)
    • 2025年2月28日に閉店予定
    • フードコート内の「餃子の王将 イオン仙台店」が2025年1月28日に閉店
  4. イオンモール新潟南(新潟県新潟市)
    • フードコート内の「海鮮丼富寿し 新潟南店」が閉店
    • 他の店舗も閉店や改装のため一時休業
  5. イオン津ショッピングセンター(三重県津市)
    • 2024年2月12日に一時休業予定
    • 2023年11月頃から閉店セールを実施
  6. イオンモール春日部(埼玉県春日部市)
    • 2025年1月に複数の店舗が閉店
    • フードコート内の「餃包(ギョウパオ)」が2025年1月13日に閉店
    • 同月中に他4店舗も閉店(1月26日に4店舗閉店)
  7. イオン金剛店(大阪府大阪狭山市)
    • 2022年11月30日に閉店(建て替えのため)
    • 2025年にリニューアルオープン予定
  8. 匿名のイオン店舗
    • フードコートのテナントが全て撤退し、飲食できない状況
    • 専門家は「来店客数が少なくて採算が取れない」ことが原因と指摘