Essays

測地線距離計算式・計算ライブラリの精度評価

測地線距離計算式・計算ライブラリの精度評価

2地点の緯度経度を与えてその間の距離を求める計算式はいくつかあり、 GeoDistanceとその他の測地線距離算出式の精度 ではランダムな2点間の距離や、日本での運転経路データを用いて代表的な計算式の精度を評価したが、 短い距離の計算精度の評価と、対蹠点付近の計算精度の評価が不十分であった。

そこで、比較する計算式を追加した上で、GeographicLibのテストデータを用いて計算精度の再評価を行った。

自己署名証明書を使う環境下でSnappy(Snap)を使う

自己署名証明書を使う環境下でSnappy(Snap)を使う

SSL/TLS通信に介入して、証明書を書き換えるタイプのセキュリティ製品が導入されているネットワーク下で、 Snappy(Snap)を使おうとすると、snapデーモンはホストのルートCA認証局を利用しないため、 error: cannot refresh: Post https://api.snapcraft.io/v2/snaps/refresh: x509: certificate signed by unknown authorityというエラーを出してしまう。

無線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ファイルを入れることでルートなどを登録できる。

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