雑記帳

無線LANのEAP-PEAP認証で、ユーザ毎のMACアドレス制限も行う

無線LANのEAP-PEAP認証で、ユーザ毎のMACアドレス制限も行う

会社で来客用および従業員の私物用に無線LANを開放(もちろん業務用のネットワークとは完全に分離している)していたら、監査から「悪用されたときに追跡調査ができるようにせよ」と指摘があった。

共有パスワード(PSK)からユーザ毎の個別パスワード(WPA2 Enterprise + EAP-PEAPなど)に変えるだけでは、ユーザが複数機器で同じパスワードを使いまわしたり、個別パスワードであることを理解せず他の人に教えてしまいかねない。

よってユーザ毎に個別のMACアドレスに限定するような認証システムをFreeRADIUSを用いて構築した。

JavaScriptのCache APIで有効期限付きの階層キャッシュを実装する

JavaScriptのCache APIで有効期限付きの階層キャッシュを実装する

GPXトラックログを間引く・簡略化RWGPS地理院標高 - Chrome拡張機能 で国土地理院の標高タイルを利用する機能を付ける際、国土地理院の標高タイルをキャッシュする機能を実装したかった。

そこで有効期限を付けて、かつメモリとディスクの2階層構造を持つキャッシュを実装してみた。

Snap版NextCloudのプレビュー生成を無効化する

Snap版NextCloudのプレビュー生成を無効化する

Oracle CloudのAlways Freeを使ったインスタンス上にSnap版NextCloudを立ち上げ、iPhoneやAndroidで撮影した写真の自動アップロードを行っていたのだが、 容量には余裕をもっているつもりが、予想より早く食いつぶしてしまった。

プレビュー画像の生成により数GB消費していたことが原因だったので、無効化したときの手順をメモ。

Garmin FITファイルをカンタンに編集する方法

Garmin FITファイルをカンタンに編集する方法

Garminのデバイスで使用されるFITファイルはバイナリなので、直接編集するのは骨が折れる。

ここではGarmin FIT SDKに含まれるFIT CSV Toolを使って簡易的に編集する方法を説明する。

※ ここでいう「カンタンに」「簡易的に」とは「バイナリを直接編集する場合に比べれば」という比喩表現ですのでご注意を

RN1500の実際の明るさをスペックシートから見積もる

RN1500の実際の明るさをスペックシートから見積もる

自転車用ライトとして一世を風靡したRN1500。

スペック上lowモード(300lm)で12.5時間のランタイムがウリなのだが、実際に300lmも出ていないのではないか、という話もあるため、電池とLEDのスペックシートから、明るさを見積もってみた。

Edge 830にGPXやTCXファイルを入れたときの挙動

Edge 830にGPXやTCXファイルを入れたときの挙動

Garmin Edge 830(や530などの兄弟機)は、PCとUSB接続したときに本体のGarmin/NewFilesフォルダにFITファイルのほか、GPXファイルやTCXファイルを入れることでルートなどを登録できる。

どのようなファイルを入れたときに、どのような挙動をするのか調査した。

VBAで要件(ポリシー)に沿ったランダムパスワードを生成

VBAで要件(ポリシー)に沿ったランダムパスワードを生成

VBAでのランダムパスワード生成なんて出尽くされていると思ったけれど、意外とスマートな実装がなかったので自分で書いてみた。

単純に使用可能な文字種全体からランダムに1文字ずつ選択して連結するだけでは、「英小文字、英大文字、数字を必ず1文字以上含む」などのポリシーに沿っていない文字列が生成されてしまう可能性があるが、 1回の処理で必ずポリシーに沿った文字列を生成する関数を作成した。