雑記帳

トラック間引きアルゴリズムの比較

トラック間引きアルゴリズムの比較

GPSトラックやルートの間引きにおいて、自作のソフトウェアで採用しているのはRamor-Douglas-Peuckerアルゴリズム。

一方、カシミール3Dや轍 wadachi、GPSBabelといった他のソフトウェアは異なるアルゴリズムを採用しており、ルートデータを間引いた際にどのような違いが生じるのか、間引き結果と処理時間を比較した。

無駄にCPUを消費するデーモンを作る

無駄にCPUを消費するデーモンを作る

とある目的でCPU使用率を10%以上に維持する必要が生じたため、その実現方法を考えた結果、 systemdを使ってCPU使用率に制限をかけつつ無限ループを行う、という方法に行き着いた。

ガルーンで予定のリマインダーをブラウザのみで実施する

ガルーンで予定のリマインダーをブラウザのみで実施する

Cybozuのガルーンは、PCのCybozu Desktop2やスマホのKUNAIアプリに予定の通知機能はあるものの、 ブラウザでのNotification APIを使った通知機能は実装されていない(2023-01-24時点)。

そこで、JavaScript / CSSによるカスタマイズ機能を使って予定の時刻に迫った時に通知を表示させてみた(管理者向け)。

Mathematicaで内部処理を隠蔽する

Mathematicaで内部処理を隠蔽する

Mathematicaのシンボルにはいくつかの属性を設定でき、ReadProtected属性を付与することで定義を隠蔽することができるが、 DownValuesUpValuesを使うことで定義を表示することができる他、TraceTracePrintを使うことで内部処理を追跡することが可能である。

そこで、ReadProtected属性に加えてLocked属性を付与することで内部処理を隠蔽することができる。

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

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

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を用いて構築した。