dullwhaleのメモ帳

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

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

色んなOSでNTP時刻合わせ

加筆中 調べたら追記する LAN内にそこそこのノードがいると、時刻合わせについて気を配る必要が出てくる。 特に、そのノードがサーバとして機能している場合にはログの突き合わせなどで、粗くとも秒オーダーの同期精度は欲しくなる。 ここではLAN内に構築さ…

OpenWrt 23.05.5をルータとするネットワークではGUAとULAの同時運用をしない方が良い

OpenWrt 23.05.5をルータとして構築しているネットワークにおいてはグローバルユニークアドレス(GUA: global unique address)とユニークローカルアドレス (ULA: unique local address)の同時運用を避けた方が良い。 将来、OpenWrtのバージョンが上がった…

OpenWrtでBusyBox ntpdを用いてNTPサーバ機能を提供する

この記事ではOpenWrtにプリインストールされているBusyBox ntpdを使ってLAN内のノードにNTPサーバ機能を提供する方法について説明する。 続く文章では、初めにBusyBox ntpdが有用な状況と、その機能について説明する。 続いて、OpenWrtにおけるBusyBox ntpd…

OpenWrt設定・運用メモ

この文章はOpenWrtの設定や運用についてハマりやすい内容のメモである。 interfaceという語が非直感的 Ciscoを含む一般的なネットワーク機器におけるinterfaceなどと用語の使い方が違う。 一般的なinterfaceは例えばマネージドスイッチにおける次のようなも…

GNU拡張のFORTRANでシグナルを扱う

FORTRANでキーボード割り込みを受け取ってプログラムを安全に終了したくなった。 GNU拡張のFORTRANでPOSIXシグナルを受け取ってプログラムを終了するプログラムを実装する。 前提 OSはDebian系ディストロ コンパイラはgfortranを想定。 # FORTRANコンパイラ…

シェルからPythonの単一ファイル中の関数を呼ぶ方法

‍♂️ python -c "import lambda_function; lambda_handler(None, None)" ‍♂️ python -c "import lambda_function; lambda_function.lambda_handler(None, None)" 検索して上位に出てくる方法では上手くいかない。 前提と詳細 ファイル名 lambda_function.pyの…

AWS Lambda関数とAPI Gatewayを繋ぐ際apigateway put-integrationで指定するパラメータのメモ

多くのユースケースでは次を指定せよ。 --type AWS_PROXY --integration-http-method POST すこしだけ説明 CLIのドキュメントを読むと、--typeとして指定する値にはいくつもの種類があるように見える。 だが、Lambda関数とAPI Gatewayを繋ぐというケースでは…

OpenAPIで記述したAPI仕様をRedocを使ってsingle fileのHTMLにする

いくつも方法があるものの、新しめの手法に中々たどり着けなかったからメモする。 この方法も(開発段階という意味で)previewらしいから変化する可能性が高い。注意が必要。 ライブプレビューする ライブプレビューにはいくつか方法がある。 ここでは、ファ…

Windows App SDK(WinUI3)でNotifyIconを持つプログラムを作成する

この記事は、Windows App SDK(WinUI3)でNotifyIconからウィンドウを開く方法について説明する。 NotifyIconの実装にはライブラリH.NotifyIconを用いる。 NotifyIconとその使われ方 Windowsにおいて、普段はデーモンのように動くが時々GUIで対話するアプリ…

認可の文脈におけるgroupとroleの違い

認可における普遍的な概念としてのgroupとroleは紛らわしい。 権限管理のフレームワークやライブラリにおいて、groupとroleの両方が同時に利用可能な場合、どのように使い分ければよいのか混乱するから自分の理解をメモしておく。 困ったことに、どちらを使…

Windows App SDK(WinUI3)でウィンドウを閉じられてもアプリケーションを動かし続ける

Window.Closedにイベントハンドラを追加し、そのイベントハンドラ内で引数として渡されたイベントのHandledプロパティをtrueに設定すればよい。 Windows App SDKのイベントの仕組み Windows App SDKのイベント処理の仕組みは、Webフロントエンドのそれと似て…

Debian 12にpyenvでPython 3.12をインストールする

Pythonで開発を行おうとすると、OSに付属のものとは切り離されたバージョンを利用したくなる。 複数バージョンのPythonを管理し、切り替えることができるツールの一つとしてpyenvがある。 この記事ではDebian 12にpyenvをインストールし、pyenvを用いてPytho…

治安の悪い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機器と自動で対話し、さらに必要な…