投稿

3月, 2024の投稿を表示しています

Inno Setup でインストールフォルダが "Program Files" にならず "Program Files (x86)" となる

 Inno Setup で64bitアプリのインストール先が "Program Files" にならず "Program Files (x86)" となる [Setup] DefaultDirName= {autopf} \MyApp を [Setup] DefaultDirName= {commonpf} \MyApp としても変化なし [Setup] DefaultDirName={autopf}\MyApp ArchitecturesInstallIn64BitMode=x64 とすればよいらしい

Inno Setup のコンパイルで「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」

イメージ
 Inno Setup6 のコンパイルで 「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」 が表示されてセットアップファイルが作成できない [Setup] OutputDir= に記載されいる、出力先フォルダをウィルスチェックの対象外にする

さくら 高精度迷惑メールフィルタによる .mailfilter の変更

 さくらインターネットが 高精度迷惑メールフィルタ を提供開始 簡易迷惑メールフィルタ (旧迷惑メールフィルタ) 高精度迷惑メールフィルタ それぞれを適用した .mailfilter いずれも ブラックリスト、ホワイトリスト、迷惑メールフォルダに保存 を設定した状態 簡易迷惑メールフィルタ (旧迷惑メールフィルタ) if ( /^From:\s*(.*)/ && lookup( $MATCH1, ".blockaddr" ) ) { to "maildir/.Trash/" } if ( ! ( /^From:\s*(.*)/ && lookup( $MATCH1, ".whitelist" ) ) ) { xfilter "/usr/local/bin/spamc" } if ( /^X-Spam-Flag:.*YES/ ) { to "maildir/.spam/" } 高精度迷惑メールフィルタ if ( /^From:\s*(.*)/ && lookup( $MATCH1, ".blockaddr" ) ) { to "maildir/.Trash/" } if ( /^X-VADE-SPAMSTATE:/ ) { if ( ! /^X-VADE-SPAMSTATE:\s*clean/ ) { if ( ! ( /^From:\s*(.*)/ && lookup( $MATCH1, ".whitelist" ) ) ) { to "maildir/.spam/" } } } 一旦、迷惑メールフィルタにかけた後、ホワイトリスト以外を迷惑メールフォルダへ移動 旧フィルタでは、ホワイトリストに記載したメールの判定結果が不明だった 個人的にはブラックリストよりホワイトリストを優先して欲しいところだが、昔からブラックリスト優先

OCN請求情報の変更ページで携帯電話番号が080へ書き換わって表示される

イメージ
 OCN請求情報の変更ページで、登録されている携帯電話番号が書き換わって表示される 契約者情報の電話番号が 090 -xxxx-yyyy で登録されている場合 支払い情報変更ページで 申し込み者名等に契約者情報から引用された内容が表示される中、連絡先携帯番号が 080 -xxxx-yyyy (xとyの部分は 090 のもの) と書き換わったものが表示される 連絡しようにも、サポートチャットは定型文を返すだけだし、窓口は電話くらいしかなく、たらい回しにされるだけだろうから、ここに記録しておく

ブラウザのリンク等からローカルアプリ(Windows)を起動するカスタムスキーム

イメージ
ブラウザからのリンクやコールバックをローカルアプリケーションで受け取る、カスタムスキームの登録方法(Windows) 下記の例では、ブラウザ上で MyApplication:// のリンクを開くと、c:\MyApplication.exe がリンクを引数として起動されるのを説明 レジストリへ  MyApplication:// で開く アプリを登録 ※アプリケーションからこのレジストリの操作は要UAC 拡張子等に対する起動アプリを登録する \HKEY_CLASSES_ROOT\ へ 下記のツリーを作成し、既定、URL Protocol(valueは空)、実行コマンド を登録 command の %1 へブラウザからの情報が置換され実行 HTML側 下記のようなMyApplication:// で始まるリンクを作成 <html> <head></head> <body> <a href="MyApplication://MyAppSetToken?token=hogehoge">Callback</a> </body> </html> ブラウザで確認 ブラウザで上記HTMLのリンクを開く(ローカルファイルでも可)とブラウザが対応レジストリをチェックして、下記のような確認が表示される ※ローカルでない場合 file:// の所がホスト名(ドメイン名)となる アプリケーションがリンクを引数として起動する ※下記は、起動引数(自身含む)を表示させるテストアプリ 実行結果 (2024-03-21現在 Chrome, Firefox で確認) 識別子 MyApplication:// は小文字へと変更される リンク内容全てがアプリケーションへ渡される

python のイテレータを再利用可能なリストへ変換

python のファイル一覧取得 os.scandir をループで使用して痛い目に遭う def test(dir): files = os.scandir(dir) print('list1') for file in files: print(file.path) print('list2') for file in files: print(file.path) 上記コードは、二度目のループでは中身が空で何も表示されない os.scandir で生成した リスト (イテレータ)を使いまわししてたら動きがおかしいので調べたら、戻り値はイテレータなので、片方向リンクリストのように再利用時はインデックスが進んでしまっていて戻せないんだとか os.scandir が FindFirstFile API を利用していたら、その方が合理的ではある 書き直すの面倒だなぁと思ってたら list関数でリストへ置き換えできるそうで、小変更で済みました def test(dir): files = list(os.scandir(dir)) print('list1') for file in files: print(file.path) print('list2') for file in files: print(file.path)

Google Chrome でダウンロードした pdf が Adobe Reader で自動で開かれるのを抑制

イメージ
Google Chrome でダウンロードした pdf が Adobe Reader で自動で開かれるのを抑制 検索すると、Chrome 設定→ダウンロード→詳細... の記事ばかりだが、そんな設定はもうなくなっているわけで 私は pdf を開く規定アプリに Adobe Reader 以外を指定しているので、Adobe Reader で開かれてしまうのは、ブラウザ側の機能ではないということ で、Adobe Reader に迷惑な設定がありました

特定の sudo コマンドをログへ出力させない

cron(root)で定期的に arp-scan を実行しているが、sudoコマンドとしてログへ大量に出力される このようなログ sudo[2450]:     root : PWD=/root ; USER=root ; COMMAND= /usr/sbin/arp-scan -I eth0 -l visudo で下記の行を追加すればログに出力されなくなる(コマンド部分は適宜変更) Defaults! /usr/sbin/arp-scan !syslog

raspberry pi 5 の cron ログを止める

raspberry pi 5 の標準ログは、syslog ではなく systemd のログらしい # journalctl -e 等で確認できるが、下記のような cronログが大量に記録されるので止めたい CRON[xxxx]: pam_unix(cron:session): session opened for user ~ # vi /etc/systemd/journald.conf デフォルトでdebugになっているので MaxLevelStore=notice MaxLevelSyslog=notice へ変更して反映 # systemctl restart systemd-journald

apache2.4 で エラー AH01630

apache2.4 の WebDAVでエラーログに AH01630: client denied by server configuration: ディレクトリ が出て認証できない 検索すると Require の問題ばかり出てくるが WebDAV用のモジュールを有効化していなかった 以下で有効化後 apache2 を再起動 # a2enmod dav # a2enmod dav_fs

raspberry pi の apache2 にSSL/TLSを設定したら Action 'start' failed.

raspberry pi 5 の apache2 に SSLを設定したら下記のメッセージで起動しなくなった # systemctl status apache2 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Action 'start' failed. The Apache error log may have more information. 今回問題になったのは ServerName 未記載の AH00558 ではなく /var/log/apache2/error.log に記載があった SSL Library Error AH02562: Failed to configure certificate drive5:443:0 (with chain), check /etc/apache2/ssl/server.crt SSL Library Error: error:0A00018F:SSL routines::ee key too small キーが短いと... 検索で上がってくる ssl 設定例に # openssl genrsa -des3 -out server.key 1024 というのがあり、ここのキーが短すぎるらしい # openssl genrsa -des3 -out server.key  2048 で作成し直したら問題なく起動しました

PHP gmstrftime の代替

PHP 8.1.0 で 非推奨になったgmstrftime の代替 キャッシュの有効期限を header 関数で指定するのに使っていたため gmdate で書き換え フォーマットが違うので注意、特に%ヘッダが無いので GMT 等を含めると別の解釈をされます gmstrftime の フォーマット gmdate の フォーマット $cache = (60 * 60 * 24) * 1; // header('Expires: ' . gmstrftime('%a, %d %b %Y %H:%M:%S GMT', time() + $cache)); header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $cache) . ' GMT');