dullwhaleのメモ帳

何度も同じことを調べなくてよいように...

治安の悪いgitリポジトリ内の文字コードをシェルからBOMなしUTF-8改行コードLFに統一する

他人から受け取ったファイルは文字エンコードがShift_JISだったり、BOMがついていたり、改行コードがCRLFだったりする。 そのままファイルの編集を続けると、システムに繋げたり乗っけたりするタイミングで問題が発生しやすいから、BOMなしUTF-8 改行コードL…

Debian12 bookwormにPythonをインストールしてグローバルに使うPythonパッケージをインストールする

この記事ではDebian 12にPythonをインストールし、コマンドのようにどこでも使うPythonパッケージをインストールする方法について記述する。 コマンドと解説 # Python本体とpipxをインストールする sudo apt install python-is-python3 pipx # パスを通す pi…

ChromeだけPOSTしたデータが勝手にHTMLエンコードされる

Chromeは以下の全ての条件を満たすとき、>>> 勝手 <<<にPOSTデータをHTMLエンコードする。 HTML中に<meta charset="UTF-8" />が設定されていない formの中身に非ASCII文字が含まれている JS(JavaScript)を使わない、素のHTMLのsubmit この動作はfirefoxでは発生しない。 いくら調べ</meta>…

小物を送る際に定形郵便よりも安いことがある日本郵政のミニレターを活用する

この情報は2024/04/02現在の情報である。 将来はミニレターが廃止されたり、値上げされたりしている可能性があるから利用前に料金を再確認せよ。 下記注意を読め 下記注意を読め 下記注意を読め 場合によってはかえって割高になることがある。 ミニレターの…

制限のある(E)SSIDに接続するとAndroidが「*はインターネットに接続できません。」と出ることを阻止する。

この記事の内容はまだ未検証で、調べたことをまとめただけであるから注意せよ。 Android端末は接続した(E)SSIDがインターネットに出られるか確認する仕組みがある。 特定のエンドポイントへ接続できない場合は、インターネットに接続されていないとみなし、…

Windows App SDK(WinUI3)でXAMLから独自のプロパティを設定可能なUser Controlを作る

Windows App SDK(WinUI3)でコンポーネントをUser Controlとして作る - dullwhaleのメモ帳 の発展的な内容として、作成したUser ControlにXAMLから指定できるプロパティを実装する。 この記事ではUser ControlにXAMLからstringのプロパティと関数のプロパテ…

Windows App SDK(WinUI3)でコンポーネントをUser Controlとして作る

Webのフロントエンドのコンポーネントに相当するWinUI3のパーツはCustom ControlかUser Controlである。 Custom Controlはより低レベルの概念であり、独自の動作と描画ロジックを持てる。 対してUser Controlは既存のコントロール(UIパーツ)の組み合わせで…

エラーメッセージが表示されるフォームの動作のメモ

DO エラー状態からバリデーション成功状態に遷移するか否かのチェックは文字入力の度に行う。 ⇒ いち早くユーザに違反状態が解消されたことを知らせて安心させる。 DO NOT ユーザがまだフォーカスや入力を行っていないなら、エラー表示をしない。 ⇒ 最初から…

Windows App SDK(WinUI3)でTextBoxのテキスト変更を検知して処理する

意外と単体のサンプルコードが無い。 やりたいことからの逆引きとして残しておく。 基本的な方針 x:NameでTextBoxのインスタンスにアクセスできるようにして、Textプロパティを読み取れるようにする。 TextChangedイベントハンドラを登録して処理する。 Text…

新しいawkを使ってCSVファイルの列を楽に取り出す

新しめのawkには面倒なCSVファイルを処理対象としてうまく処理するオプションが追加されている。 awk --csv を使え 少し説明 面倒なCSVファイルとは例えば以下のようなもの "カンマが,ダブルクォート内に含まれていたり",this field has spaces,,"" 上のCSV…

Cisco機器とexpect(Tcl)スクリプトで自動対話する

Cisco機器とexpectスクリプトで自動対話し必要な情報だけを出力する ネットワーク機器などのCLIはインタラクティブなやり取りを想定して、ワンライナーでは処理が難しいことがある。 ここではexpectスクリプトを用いてCisco機器と自動で対話し、さらに必要な…

Windows App SDK(WinUI3)でドラッグアンドドロップを実装する際のメモ

公式ドキュメントが若干不親切 ドラッグ アンド ドロップ - Windows apps | Microsoft Learn ポイントは以下 ドラッグアンドドロップを実装するコントロールに次の2つのプロパティを設定する。 AllowDrop="True" CanDrag="True" DragOverイベントハンドラを…

C#設定をファイルから読み出しどこからでもアクセスできるようにする

いわゆるdependency injectionで、設定値を読み出すコードと参照するコードを分離する。 DIの概念などは他に解説があるから、ここでは具体的な方法だけに絞って記述する。 重要なのは、usingされている次の3つ Microsoft.Extensions.DependencyInjection Com…

Windows.Storage.ApplicationDataはUnpackagedのアプリでは利用できない

Windows App SDKだがUnpackagedに設定したアプリからWindows.Storage.ApplicationDataにアクセスするとSystem.InvalidOperationException例外が発生する。 パッケージ化されたアプリでしか利用できないらしい。 公式ドキュメントにちゃんと書いておけ github…

コンソールからWindowsストアアプリを起動する

コマンドプロンプトの場合 start shell:AppsFolder\${パッケージファミリー名}!${アプリケーションID} 例 Windowsメディアプレイヤーをコマンドプロンプトから起動する start shell:AppsFolder\Microsoft.ZuneMusic_8wekyb3d8bbwe!Microsoft.ZuneMusic 説明 …

他のRDBMSの定番の操作はSQLite3でどうやるか

DATABASE内(SQLite3のファイル内)に定義されている表の一覧を表示 .ta # 長い表記 .table 表定義を表示 .schema

Windows App SDKの分かりづらいエラーのメモ

XAMLファイル エラー内容 エラー XHR0040 プロパティ "VisualTree" は 1 回しか設定できません。 エラー XLS0501 プロパティ 'VisualTree' が複数回設定されています。 解決方法 StackPanelなどのレイアウト要素で囲む。 このエラーはXMLのルート直下にボタ…

フォーマットされていないテキストファイルやコピーしたテキスト内からIPアドレスっぽい文字列だけ抜き出す

標準入力からパイプ前提 BSD版でも使える # CIDR表記なし版 grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' # CIDER表記版 grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/[0-9]{1,2}'

チリコンカンレシピ

材料 4人分 ひき肉200 g 以上 合挽・牛・豚いずれでも良い。 玉ねぎ 1玉 ミックスビーンズの缶詰 1缶 400gのもの トマト缶 1缶 400gのもの ホールが望ましいが、カットでも良い。 ニンニク 1カケ 塩 小さじ1 固形のコンソメ1個 チリパウダー 大さじ2 オリー…

PythonのDB操作でCursorオブジェクトについて気にするな

Pythonではコネクションを開いた後、具体的なSQL文の実行にCursorオブジェクトを利用する。 「カーソルとか余計なものを使わわずに、シンプルに実行したい」と考えてもCursorオブジェクトを使え。 PythonのCursorはSQLで一般に言うカーソルとは別物である。 …

内蔵SSDをEnhanced Secure Eraseで速く安全にデータ消去する

前提条件 hdparmコマンドが使えるLinuxライブ環境 ATA接続されているSSD 作業 Linuxのライブ環境が起動したら、一旦サスペンドする。 sudo systemctl suspend そしてサスペンドから復帰する。 このサスペンド・復帰はSSDのSecure Eraseに対する保護frozenを…

回線ごとのMTU値の設定

firewallやルーターなどのMTU(maximum transmission unit)として最適な値のメモ プロバイダから明示的に最適MTU値を指定されている場合 それに従え プロバイダからMTU値の指示がない場合 NTT系フレッツ光回線ならMTUは1454 byte それ以外のPPPoE回線の場合…

PDFファイルから一部のページだけをQPDFで切り抜き

PDFファイルの中から数ページだけ切り抜きたい。 仕事で使うPDFファイルだと、Web上のよく分からんツールにアップロードする訳にいかない。 そこで、ローカル環境で動くシンプルなツールQPDFを使う。 PDFを弄るツールは他にもあるが、QPDFは少し特殊なPDFフ…

Raspberry Pi 3 Model BにRaspberry Pi OS 64bitをインストール

以前から状況が変わって、64bitイメージがベータから正式リリースになったり、ユーザがデフォルトで作成されなくなったりした。 arm64のRaspberrypi OSを入手する Raspberry Pi OSの公式ページからダウンロードする。 Raspberry Pi OS (64-bit)のRaspberry P…

Wi-Fiの帯域の設定メモ

2.4 GHz帯 現代において、20 MHz帯域幅では利用に耐えないことが多いだろう。 40 MHzのチャネルボンディングで次の2つの帯域を使うのが無難だ。 1 + 5 ch 9 + 13 ch 5 GHz帯 DFSの影響がない帯域は少ない。 160 MHzチャネルボンディングはDFSなしに使えない…

wgetで静的サイトを丸ごとダウンロード

wgetを使ってスクレイピングできる。 最初に、無駄なファイルをダウンロードしないよう、--spiderでリンクをたどるだけの調査を行う。 貧弱そうなサイトなら、--waitオプションの秒数を更に増やす。 wget --background --output-file spider-log --convert-l…

Windowsでスリープを使う際の設定

Windowsは様々な意図しない理由でスリープが解除されてしまう。 意図しないスリープの解除を阻止する設定をメモしておく。 Maintenance Activatorによるスリープ解除を阻止 Maintenance Activatorとかいう自動でメンテナンスを実行する設定がある。 Windows …

Windows11の簡素なチューニング

テレメトリを無効化する 匿名データを収集してMSに送信する機能がある。 この機能はスペックに余裕がないPCでは無視できない負荷となる。 これを無効化する。 Win + Rを押してグループポリシーエディタgpedit.msc起動する。 グループポリシーエディタの左側…

CloudFormation StackSetsでドリフト検出を行うときはCLIから開始する

AWSコンソールから実行すると障害耐性の値が0になっていて、途中で失敗してしまう。 aws cloudformation detect-stack-set-drift \ --stack-set-name STACK_SET_NAME_HERE \ --operation-preferences RegionConcurrencyType=PARALLEL,FailureTolerancePercen…

ECS関連をAWS CLIで列挙したり、一括操作したり

複数のリソース クラスタ名とサービス名をタブ区切りで列挙 出力の1列目にクラスタ名、2列目にサービス名が表示される。 aws ecs list-clusters --output text | cut -f2 | xargs -L 1 -P 16 -I {} aws ecs list-services --cluster {} --output text | sed …