投稿

Android Studio で android.enableJetifier=false にしたら Execution failed for task ':app:mergeDebugJavaResource'.

古いソースから警告を取り除くため gradle.properties で下記(デフォルト)に変更したら android.enableJetifier=false 下記のエラー Execution failed for task ':app:mergeDebugJavaResource'. 原因(今回の) build.gradle の dependencies セクションに下記の宣言が重複していた implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'androidx.appcompat:appcompat:1.7.1' implementation 'com.android.support:appcompat-v7:28.0.0' をコメントアウト

Delphi から MeCab(libmecab.dll)を呼び出す

Delphi から libmecab.dll を呼び出すユニット 32bit, 64bit 共用です(生成exeとMeCabで合わせて下さい) libmecab.dll と辞書ディレクトリのパスをコンストラクタで指定して下さい 呼出ユニット unit MeCab; interface uses Winapi.Windows, System.SysUtils, System.Classes; type PMecabTagger = Pointer; PMecabNode = Pointer; T_mecab_new = function(argc: Integer; argv: PPChar): PMecabTagger; cdecl; T_mecab_destroy = procedure(tagger: PMecabTagger); cdecl; T_mecab_sparse_tostr = function(tagger: PMecabTagger; str: PAnsiChar): PAnsiChar; cdecl; TMeCab = class private FTagger: PMecabTagger; F_mecab_new: T_mecab_new; F_mecab_destroy: T_mecab_destroy; F_mecab_sparse_tostr: T_mecab_sparse_tostr; function LoadDllFunc(DllPath: string): Boolean; public constructor Create(DllPath: string; Args: array of string); overload; constructor Create(DllPath, DicDir: string); overload; destructor Destroy; override; function Parse(const Text: string): string; end; i...

Evernote サブスク(Personal)の解約手順

イメージ
Evernote Personal のサブスクリプションを解約 解約途中に 40%オフ(10,739円)の引き止めがありますので、継続する方は参考にしてください 割引価格での継続も考えましたが、Freeプランの糞化により共有している他ユーザーが使い物にならないため、Joplin Server を立てて引っ越しました ver.10や値上げ、そして二重価格を用いるような企業体質にウンザリなんですよ

Delphi の IdImap4 で IDLE

イメージ
Delphi の Indy IMAP4クライアント(TIdImap4) で IDLE (メール受信というかボックスに変化があったら反応がある) ChatGPT や Gemini で間違ったコードばかり教えてくれるので、修正 procedure TForm1.Button1Click(Sender: TObject); var Response: string; begin if IdIMAP41.Connect() then begin try if IdIMAP41.SelectMailBox('INBOX') then begin IdIMAP41.IOHandler.WriteLn('TAG001 IDLE'); Response := IdIMAP41.IOHandler.ReadLn; Memo1.Lines.Add('Server: ' + Response); if Pos('+', Response) <> 1 then begin raise Exception.Create('IDLE not accepted: ' + Response); end; Memo1.Lines.Add('IDLE started... waiting for updates'); try while IdIMAP41.Connected do begin Response := IdIMAP41.IOHandler.ReadLn; Memo1.Lines.Add('Server: ' + Response); if Pos('EXI...

Joplin の OCR Service が停止してしまう

イメージ
Evernote から Joplin へデータを移し、普段利用していない端末で OCR を行わせていたが、なかなか進まない(画像、pdfで、40,000件程) ログを確認すると OCRをオンにした後、しばらくして OCR Serviceが停止している様子 終盤になって分かってきた、OCR Serviceを停止させない設定 アプリケーションを最小化しない スクリーンセーバーオフ ディスプレイ電源自動オフを解除 ←終盤に判明 ディスプレイ電源オフ解除後、一晩中停止すること無く捗りました

Evernote の enexエクスポートで、タイトルが「無題のノート」になる

Evernote の enexエクスポートで、タイトルが「無題のノート」になる Joplin移行の確認でいくつかのノートブックを取り込んでみた所「無題のノート」がいくつか ※Joplinの問題ではなく、enexへエクスポートした時点で既に「無題のノート」になっています enex を grep した所、私の場合多いノートブックで 1.5%程度含まれていた ネットでは 20%くらいあったという方もいたりする 移行後に変更しても良いのだが、どっちにしても修正するなら タイトルが失われる前に Evernote側で解決したい → タイトル名を変更したりすると修正される様子 exexが巨大なため「無題のノート」だけを抽出するスクリプトを作成して 含まれる文字やファイル名を Evernoteで検索、タイトルの末尾に (Fixed) 等追加してノートを更新(150ノートくらいあった)することで、修正 抽出や作業で感じたこと タイトルに含まれる文字が原因 → 関連なし(タイトルを別のに変更後、元のに戻したら復旧したりする) ノートを作成したデバイスが記載される <source>タグを見ると、2015年頃のMacや2019-2021年頃の Android の場合が多い(ような気がする) まれに、自分がタイトルを付けづに保存したノートも発見される

Joplin Server + Nginx Proxy で Invalid orign

イメージ
 Joplin Server + Nginx Proxy で Invalid orign: Joplin 側なのか Nginx 側なのか → Joplin Server が出力している Jplin Server の .env APP_BASE_URL=http://example.com:22300 APP_PORT=22300 Joplin Server への直接接続で http://example.com:22300 を使いましたが APP_BASE_URL は接続時のURLを記載しなければならないようです Nginx 経由(SSLを使いたい)では APP_BASE_URL=https://example.com APP_PORT=22300