2025-08-25

Radis:Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix

 表題に書いてあるように

# Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix <filename>

というエラーが出た場合

環境

  • Mac
  • Learning Locker in Docker Desktop

原因

  • appendonly.aofファイルというのが破損している。

  • Redis の AOF は「追記型ログ」なので、最後の部分だけ破損しやすい

対策
以下のコマンドを実行。意味は以下に解説。


(イメージのpull)

  • redis-check-aof などのツールを 同じバージョン環境で実行できるようにするためにpull

(バックアップ処理)

  • alpine コンテナを一時的に起動し、終了後は自動削除。
  • Redis のデータが入っている Docker ボリュームを、このコンテナの /data にマウント。
  • 今いる作業ディレクトリ(ホスト)を /backup にマウント。
  •  tar ファイルをホストに書き出せる。
  • Alpine のシェルで /data に移動し、その中身を tar.gz に固めて /backup に保存。

(修復処理)
  • docker run : 新しいコンテナを一時的に起動する。
  • --rm : コンテナ終了後に自動で削除する。ゴミが残らない。
  • -it : 対話的モード(-i 標準入力を開く、-t 擬似端末を割り当てる)。
  • Docker ボリューム learning-locker-docker-image-main_learninglocker-redis をコンテナ内の /data にマウントする。
  • Redis のデータファイル(appendonly.aof や dump.rdb)がここに入っている。
  • サーバーではなく、同じイメージに含まれるツール redis-check-aof を実行したい。そこで --entrypoint で実行プログラムを差し替えている。


2025-08-22

Python: flet+pystrayでメニューバー(タスクトレイ)常駐アプリ

 表題の通りです。このサンプルは単純ですが、アイコン画像を用意して、メニューをいろいろ追加していけばいい感じになるのかなと思います。



2025-08-20

Learning Locker をDockerでインストールする

 Learning Lockerのインストールをしようとして、実にくだらないミスと言うか無駄な時間を使ってしまったので備忘録。

結論

 Learning Lockerを入れる場合は、下記のkromiiiさんのリポジトリを利用するのが無難です。

前者の方は、他にもいろいろはいっているので、後者のほうがいいかもしれない。説明は後者が詳しいです。

おすすめしない方法
上記、リポジトリのことはすでに知っていたのですが、なぜかMac専用と思い込んで、Windowsだと別のイメージを探さなきゃ、、、と、chatgptに聞いたのがバッドケース。ChatGPTは以下のADLリポジトリを推薦してくれたんですがね。。
  • https://github.com/adlnet/learninglocker-docker
リポジトリの更新履歴を見ると4年前で止まってるし、古い言語仕様に合わせてdockerファイルを書き換えたり。。。を延々と繰り返して、一見すると動いたようで実は一部もモジュールが動いてなくて、ユーザ登録できなかったりとか、、、数時間試行錯誤して、これ?違うぞ?と思って、上記に立ち戻ったのが結末です。

なお、LearninLockerの本体も実は更新止まってるし、あとどれだけ続くのかが心配なところです。



2025-07-10

Mac: error: externally-managed-environment というエラーが出た場合

これは PEP 668 で導入された新しい Python のセキュリティ仕様によるもので、特に macOS の Homebrew でインストールされた Python でよく見られます。

Homebrew は「システム Python 環境を壊さないため」に pip を直接使うことを制限しており、パッケージインストール時にこのエラーが出ます。

解決方法

  • 方法1: 仮想環境を使う(推奨)。anacondaやvenvを使うなどして、仮想環境を作成しそこでpipを行う
  • 方法2: pip に --break-system-packages をつける(簡易だが慎重に使う)
  • 方法3: pipx を使う。
本記事は、ChatGPTの内容をベースにしています。





2025-07-07

Java: VSCodeで import文にエラーが出る場合に試して欲しいこと

 たまに、Javaのプログラムを書いている時に表題のようなことが起きるんですよね。。。。いちおう前提として、

  • DropBoxでソースコードを共有
  • 自宅と職場など異なるPCで開発をしている
  • 自宅では問題ないソースコードが、職場だとimport文が真っ赤っか。。。
  • パッケージルートやクラスパスに問題なし(初歩的なミスはしてません)
というのを想定しています。

原因と解決策
エラーの理由はそのクラスが見つからないということなんですが、自宅でちゃんと動いているしー。。。おそらく、自宅でコンパイルしたclassファイルが残っていると思います。これを消してみてください。多分これで解決します。

何が起こっていたのか?
自宅と職場でJavaのバージョンが異なっているので、まずそのままでは動かないクラスになっていました。で、、、VSCodeはクラスファイルがある場合には、ソースではなくクラスファイルを参照して、互換性のないものがあるから、クラスの存在を認識できず、importできない!とエラーを出すわけです。



2025-06-17

SAM(Segment Anything Model)を試してみた

 Meta(旧Facebook)によって開発された汎用セグメンテーションモデルであるSAM(Segment Anything Model)を試してみました。SAMは、特定のクラスに依存せず、任意のオブジェクトのセグメントが可能で、さらに「プロンプト(指示)」に基づいてその対象を指定することが可能で、具体的には、

  • 点(例:画面中央の1点)
  • ボックス(矩形領域)
  • マスク(既知の一部マスク)

などがあるようです。

以下は、中心点に着目した例です。

2025-06-13

PythonでIRTライブラリを試してみた

 表題の通り、IRT(Item Response Theory)のライブラリを動かしてみました。Rの例は多いんですが、Pythonはまだ少ない感じ。とりあえずChatGPTに聞きながらですけど、このコードになるまで試行錯誤しました。ChatGPTの言うことがただしければ、pipでインストールされるライブラリにはバグがあるようなので、ライブラリをラップする自作クラスで再定義したという応急的処理をしてます。ミスがあればコメントください。



2025-05-09

PRISMLens:Mac対応バーチャルカメラ

 今まで、OBSとかZoomとかで背景処理をするときは、XSplit VCamを使ってきましたが。。。

無料で良いのを見つけました。PRISMLens(公式サイト)というやつです。NAVER社が作ってるPRISM Live Studioのサブアプリ?みたいな位置付けらしいですが、単体でインストールできます。XSplitのは有料だったりするので、もうこっちでいいかなという印象。PRISM Live Studioってやつも、機会があれば触ってみようかと思います。



2025-04-26

Python: OpenCVを利用してネットワークカメラの映像をHTTPで取得する

 表題の通り。Python+OpenCVを使えば簡単にできちゃいます。昔は、mjpegのバイナリーデータを切り出したりして対応してましたが、便利な時代になったものです。



2025-03-12

Python: xapiでステートメントを登録する(Learning Locker)

 表題の通り、LRSとしてLearning Lockerを使うことになったので、まずはPythonでのデータ(ステートメント)の登録方法など。一般的には、MoodleなどのLMSからLRSに送るので、コードでガリガリということはあまりないと思いますが・・・。

留意点としては(Learning Lockerを前提にしていますが)、

  •  エンドポイントのportは8081
  • usernameとかpasswordは、Learning Lockerにある管理画面のKey, Secretなどが該当
  • headerには"X-Experience-API-Version"が必須
というところですね。



2025-03-10

AWS Lambda: [ERROR] ProfileNotFound: The config profile (xxxx) could not be found

Chaliceを使ってPythonコードをlamdaにデプロイしたら、Internal Errorのリターンがあり、表題のようなエラーがCloud Watchで確認できました。エラーの意味は、xxxxってプロファイルがないよってことなんですが。。。。

原因と解決策

原因は、ローカルで指定している Crediencialのプロファイルが、サーバー側にはないよってこと。

解決策は、デプロイするコードにはprofileを指定する記述をなくす。。ということにようです。sonnnet3.7の回答がそうだったので、実際そうすると動きました。でも何かスマートじゃないな。




2025-03-07

ClineでBedrock(Sonnet3.7)を指定した際のAPI Request Failedへの対応

巷で話題のClineを使ってみました。モデルの選択にAWS BedRockを経由できるらしく、おちラボではBedrockを研究費で使っているので、ラボ内で本格的に利用しても予算的に安心ではあります。。。で、モデルはClaudeを使いたいわけで、最近はSonnet3.7が出ているようなのでそれを指定すると、API Request Failedのエラーが?!

400 Invocation of model ID anthropic.claude-3-7-sonnet-20250219-v1:0 with on-demand throughput isn’t supported. Retry your request with the ID or ARN of an inference profile that contains this model.

というエラーで。。。オンデマンド対応してない?もともと使っていたSonnet3.5v1ならOK。Sonnet3.5v2なら同様のエラー。なんだこりゃ?3.5v2から仕様が変更になったのかと思いましたが、正解は。。。

  • Use cross-region inference にチェックを入れる

でした。開発効率を上げる手段として生成AI利用は魅力。ゼミ生が有料のサービスの利用に躊躇しているようなので、希望すれば使わせたいなと思います。

ちなみに、個人的なClineの感想。まあ、便利そうだけど勝手に色々言ってくるのは正直鬱陶しいなというきますが、それは私が昭和な人間だからですかね。



2025-02-15

Windows:Macで圧縮されたZipをWindowsで文字化けなく解凍する方法

ここ最近、Macを使う比重が増えてきているんですが、とりあえず自宅のメインマシンがまだWindowsなので両刀使いでいますが、たまに表題の通り、Zipファイルの文字化け問題が起きます。Mac→Windowsの場合ですね。

解決策:CubeIceを入れましょう

フリーの解凍ソフト(CubePDF)で実績のあるCube社のCubeIceがオススメです。




PowerShellでCSVファイルを連結する際の文字化け対策

表題の通り。。。受け取った複数のcsvファイルをcatコマンドで1つにまとめようとしたら、文字バケが起きて、うまくいかなかったので。。。。

  • 入力ファイル ・・・ SJIS
  • 結合ファイル ・・・ SJIS
という条件です。cat コマンド、typeコマンドもいずれも文字コード指定がなさそう?で、リダイレクト(>)でファイル出力すると文字化けが発生。

解決策
下記のように、PowerShellのコマンドである Get-Contentでファイルを読み込み、パイプでSet-Content で渡せばいいらしい。文字コードの指定もできるようだ。

Get-Content *.csv -Encoding Shift-JIS | Set-Content all.csv -Encoding Shift-JIS

参考サイト



2025-02-09

Java:標準出力の内容をとってくる方法

 JavaでSystem.out.printlnなどで標準出力に出てくる内容を捕獲する方法です。コンソールへの出力をチェックしたいときに使えます



2025-02-06

 FletでDropDownリストの選択された表示名を取得しようとしたら、意外と情報なかったのでメモ書き。要は、選択されたキーのオプションを探し出してtextを呼び出せばいいということらしい。もっとシンプルな方法ないのかな?