dullwhaleのメモ帳

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

2023-01-01から1年間の記事一覧

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 …

AWS CLIの出力を改行せずに使うときはcarriage returnに気をつけよ

何が問題なのか AWS CLIの出力の先頭にはcarriage return 0x0Dが含まれている。 シェルスクリプトやワンライナーにおいて、何かの出力につづけて改行することなくAWS CLIの出力を繋げようとすると、先頭に復帰して上書きしてしまう。 イメージ echo "before …

Windows App SDKのメモ

見つけづらいものをここにメモ WinUI 3 Galleryには存在するが、ここには存在しないアイコンがある。 FontIconで使えるアイコン オーバーレイしてフォームを登場させたい。 -> SplitViewをOverlayで使えば実現できそう SplitViewは横方向にしか隠せない。縦…

macOSのmDNSResponder奮闘ログ

くそ紛らわしいことに、macOSのmDNSResponderは2つある。 - デーモンプログラム - 停止不可能なシステムコンポーネント 以下ログ ただし、macOSの場合、mDNSResponderはDNS解決を行う際にローカルDNSキャッシュを利用することがあります。 ここで、ローカルD…

lsofコマンドの活用

ファイルをつかんでいるプロセスを確認したり、listenポートを確認したりする際に使うlsofコマンドは意外に高機能であり、スクリプトで役立つ。 lsofの出力をパイプでつないでこねくり回す前にlsofのmanを読め。 絞り込み いくつものオプションで絞り込みが…

AWS CLIでリソースを一覧取得

ECS関連 多いから別ページに移動した ECS関連をAWS CLIで列挙したり、一括操作したり - dullwhaleのメモ帳 Kinesis Firehoseのストリーム一覧を改行区切りで出力 xargsで使うことを想定 aws firehose list-delivery-streams --query 'DeliveryStreamNames[*]…

Docker on LimaではUDPのポートフォワードが簡単にできない

LimaのポートフォワードはSSHトンネリングによって実現されている。 次のコマンドでトンネルを作っているのと同じイメージ ssh -L だからTCPのポートフォワードは素直に実現できる。 一方で、UDPポートは通信が虚空に消え、ICMPで到達できないこと表すtype 3…

mDNSを殺す

マルチキャストDNS(mDNS: multicast domain name system)という無駄な仕組みがある。 mDNSはDNSサーバが存在しない特殊なLAN内において、ホスト名の名前解決するための仕様であり、RFC 6762で定義されている。 DNSサーバが利用できない異常な環境は普通な…

(古い情報)Raspberry Pi 3 Model Bでarm64のdocker-composeを起動するまでの作業ログ

注意 この文章は 2021/08/10 に書いたメモをサルベージしたものである。 現在同じ手順を実行しても失敗する可能性が高い。 必要になったら調べ直せ。 より新しい手順を書いた↓ Raspberry Pi 3 Model BにRaspberry Pi OS 64bitをインストール - dullwhaleのメ…

個別の記事を作るほどでもないシェルのスニペット・アイデア

お決まり シェルスクリプトの先頭に書くやつ #!/bin/bash set -euo pipefail readonly SCRIPT_DIR=$(cd $(dirname $0) && pwd) 定番のフィルタコマンド そのgrepは本当に必要? sedを上手く使うとgrep | sedのような事前のgrepが不要になる場面も多い。 例え…

Golangで性能を気にしなきゃいけないときに見るメモ

stringはshallow copy stringの実体は「文字列実体があるbyte配列のアドレスとbyte長を持つ構造体」である。 単純な代入によるコピーでは実体のbyte列のコピーは行われない。 大きな文字列を別の変数に代入する場合に心配しなくてよい。

Ubuntuへ新しめのgolangをインストールする

2023/04/08現在、Ubuntu 20.04の本家のaptリポジトリではgoパッケージの更新が遅れている。 本家のaptパッケージのgoバージョンは1.13だが、go公式のlatest stableは1.20.3である。 新しめのgoバージョンをインストールしたい場合、サードパーティーのリポジ…