ユピテルGPSマップASG-CM14のルートをGoogleマップで作成する

サイクリングは道選びが重要

走りのレベルによって最適なルートが異なる

自転車で走るときのルート選びは気を使います。初心者のときは車の通行量が少ない裏道・生活道路を選んでいました。しかし裏道は見通しが悪く「止まれ」がたくさんあるので早く走るには不適です。そこで幹線道路・表通りを走るようになるのですが、車を気にしないですむ道は限られています。車が高速で流れているのに路側帯が無い道は厳しいです。そこそこの速度で流れている細い道では車と同じペースで邪魔にならないように走ります。それでも自転車と見ると対向車がいるのにギリギリで追い越して前に割り込んでくる車が多いです。

スマホのナビ

幹線道路は真っすぐで標識も多いのですが、裏道は迷いやすいです。スマホで地図を見ることができるようになってからは楽になりました。しかしスマホをサイクルナビとして使うには、路面からの衝撃でスマホを吹き飛ばさないようなしっかりしたホルダーが必要ですし、常時画面を付けておくと電池を大量に消費します。アプリも問題ですね。Stravaが無料だったときは使いやすかったのですが、有料になってからは私が使う頻度だと勿体ないので使っていません。ナビタイムはまだ課金したいほどの完成度では無いと感じました。Goole Mapは画面を見ている分には使えるのですが、音声案内はダメダメです。

やっぱりサイクルコンピューターが欲しい

国内メーカーはすべてサイクルナビから撤退してしまいました。今買うならGarmin、Wahoo、Xplovaあたりでしょうか。お金があればGaminが欲しいですが、地図表示付きのものは一番安いEdge 530でも本体価格は¥40,000を超えます。

ユピテルGPSマップASG-CM14

2014年にユピテルから発売されたASG-CM14を今でも使っています。スマホよりもコンパクトでハンドル周りの場所を取りませんし、電池も長持ちします。スマホとの連携機能はありません。

ルート作成難民化

ASG-CM14では事前にルートをPCで作ってインポートしておく必要があります。そのためにATRASTOUR Plannerという専用のソフトが有ったのですが、Google MapのAPIが有料化されたせいか2019年にサポート終了してしまいました。代わりに使ったルートラボもサービスが終了、Strava、Ride with GPSは有料化してたまに使うだけの人間にはもったいなくなってしまいました。

Google Map + Maps to GPX + Script

現在はGoogle Mapでルートを作成し、Maps to GPXでGPXをダウンロードし、スクリプトで不要なタグを消す方法に落ち着いています。

まず、Google Mapでルートを作成します。出発地と目的地を決めるとGoogle Mapが自動でルートを作成してくれますが、思い通りのルートにならないときは適当に修正します。

www.google.co.jp

次にルートを作った状態のGoogle MapのURLをMaps to GPXに貼り付けます。

mapstogpx.com

オプションはTrack Pointsのままです。Route Pointsにするとポイント数を間引きして減らしてくれますが、アルゴリズムが悪いのか、思ったようなルートになりません。「LET'S GO」ボタンを押すとGPXがダウンロードできます。できたGPXはASG-CM14で使うには不要なタグが多数含まれているのでスクリプトで取り除きます。最低限必要なタグは下記の通りです。各タグごとに改行が必要です。文法的には間違いになりますがASG-CM14では</trkpt>終了タグを省略可能です。

<?xml version="1.0" encoding="UTF-8"?>
<gpx>
<wpt lat="35.584279705" lon="139.543485042">
<name>nameの前は改行が必須</name><desc></desc></wpt>
<trk>
<name>UTF-BOM付き</name>
<trkseg>
<trkpt lat="35.707637" lon="139.482492"></trkpt>
<trkpt lat="35.704972" lon="139.482260"></trkpt>
<trkpt lat="35.705079" lon="139.477334"></trkpt>
<trkpt lat="35.705325" lon="139.473952"></trkpt>
<trkpt lat="35.704508" lon="139.471016"></trkpt>
<trkpt lat="35.704300" lon="139.468403">
<name>恋ヶ窪</name><desc></desc></trkpt>
</trkseg></trk></gpx>
Windowsスクリプト

PowerShellを使います。まず、下記のスクリプトファイルをメモ帳で作ります。

GPX.ps1

gc -Encoding UTF8 $args[0]|
%{$_ -replace '.*</trkpt>', ''}|
%{$_ -replace '<\?xml.*\?>', '<?xml version="1.0" encoding="UTF-8"?>'}|
%{$_ -replace '<gpx.*>', '<gpx>'}|
%{$_ -replace '.*<metadata>', ''}|
%{$_ -replace '.*</metadata>', ''}|
%{$_ -replace '.*<link.*>', ''}|
%{$_ -replace '.*</link>', ''}|
%{$_ -replace '.*<text.*text>', ''}|
%{$_ -replace '.*<!--desc.*desc-->', ''}|
%{$_ -replace '.*<!--copyright.*>', ''}|
%{$_ -replace '.*</copyright-->', ''}|
%{$_ -replace '.*<year.*year>', ''}|
%{$_ -replace '.*<license.*license>', ''}|
%{$_ -replace '.*<!--url.*url-->', ''}|
%{$_ -replace '.*<year.*year>', ''}|
%{$_ -replace '.*<time.*time>', ''}|
%{$_ -replace '.*<number.*number>', ''}|
%{$_ -replace '.*<name>TP.*</name>', ''}|
%{$_ -replace '.*<desc>', ''}|
%{$_ -replace '.*</desc>', ''}|
%{$_ -replace '.*<author>', ''}|
%{$_ -replace '.*</author>', ''}|
%{$_ -replace '.*<keywords>', ''}|
%{$_ -replace '.*</keywords>', ''}|
%{$_ -replace '.*<bounds.*/>', ''}|
%{$_ -replace '.*<!\[CDATA\[.*\]\]>', ''}|
%{$_ -replace '.*<ele.*ele>', ''}|
%{$_.trimstart()}|
Out-String -Stream | ?{$_ -ne ""}|
Out-File -Encoding UTF8 result.gpx

ただしPowerShellスクリプトファイル自体にGPXファイルをドラッグ・アンド・ドロップすることはできないので、ショートカット経由でスクリプトを実行するようにします。

4thsight.xyz

Macスクリプト

Automatorを使います。

support.apple.com

入力の引き渡し方法は「引数として」を選びます。

GPXforCM14

cd '/Users/xxxx/Documents/自転車/results'
cat $@ |
sed -e 's/.*<\/trkpt>//g' |
sed -e 's/<\?xml.*\?>/<?xml version="1\.0" encoding\="UTF\-8"?>/g' |
sed -e 's/<gpx.*>/<gpx>/g' |
sed -e 's/.*<metadata>//g' |
sed -e 's/.*<\/metadata>//g' |
sed -e 's/.*<ele.*ele>//g' |
sed -e 's/.*<link.*>//g' |
sed -e 's/.*<\/link>//g' |
sed -e 's/.*<text.*text>//g' |
sed -e 's/.*<desc>//g' |
sed -e 's/.*<\/desc>//g' |
sed -e 's/.*<time.*time>//g' |
sed -e 's/.*<year.*year>//g' |
sed -e 's/.*<author>//g' |
sed -e 's/.*<\/author>//g' |
sed -e 's/.*<license.*license>//g' |
sed -e 's/.*<number.*number>//g' |
sed -e 's/.*<name>TP.*<\/name>//g' |
sed -e 's/.*<keywords>//g' |
sed -e 's/.*<\/keywords>//g' |
sed -e 's/.*<bounds.*>//g' |
sed -e 's/000"//g' |
sed -e 's/.*<\!\-\-desc.*desc\-\->//g' |
sed -e 's/.*<\!\-\-copyright.*>//g' |
sed -e 's/.*<\/copyright\-\->//g' |
sed -e 's/.*<\!\-\-url.*url\-\->//g' |
sed -e 's/.*<\!\[CDATA\[.*\]\]>//g' |
grep -v '^\s*$' >result.gpx
exit

このファイルにMaps to GPXからダウンロードしたGPXファイルをドラッグ・アンド・ドロップします。

ASG-CM14にGPXファイルをダウンロード

USBケーブルでPCに繋いでからASG-CM14の電源を入れるとUSBストレージとして認識されるので、trackフォルダにGPXファイルの名前を好きなものに変えてからをダウンロードします。

Macの場合は ._ で始まる隠しファイルも自動的に作られてしまいASG-CM14でマップを選択するときに余計な選択肢ができてしまうので削除しておきます。Finderに隠しファイルを表示させるには「command」+「shift」+「.」を押します。

 

インターネット環境を整える(1)

宅内の機器について

引っ越しのタイミングでインターネット環境を色々変えてきましたが、現在は 楽天ひかり マンションプラン VDSL方式 を使っています。速度が遅かったり頻繁に切れるなどの問題があるのですが、だましだまし使っていました。しかし、完全に在宅勤務になりインターネット環境が作業効率に大きく影響するので改善を続けています。

VDSLモデム

そうそう壊れるものではないと思っていたのですが、モデムが古くなると回線が切れやすくなります。NTTに相談するとすぐに代替品を送ってくれます。

コンセントからのノイズ

コンセントとモデムの電源の間に入れます。これは回線が切れにくくなる効果があったような気がします。

モジュラーケーブル

ケーブルをできるだけ短くしろという記事がよくありますが、私の場合は効果がありませんでした。

無線LANルーター

無線LANルータにはまだ良いものに出会っていません。ルータ機能をRTX810に分離するまでは、頻繁にインターネットに接続できなくなっていました。ルータではなくモデムが通信エラーになっている、ルータ機能が止まる、無線が止まる(有線なら繋がる)、通信サービス会社の障害などいろいろな原因が混じっていたようですが、家庭用の製品はログが貧弱で何が起こったのかわからないのが非常にストレスです。機種名を覚えているものだけレビューしておきます。

バッファロー
  • WSR-2533DHP
    V6プラス・クロスパスが使えないことに気が付かずに買ってしまったのですぐに売ってしまいました。後でファームウェアアップデートで対応したらしいです。
  • WXR-1900DHP3
    毎日のようにハングアップしていました。「BIG -hammer!!!」という全く役に立たないログが出ます。
NEC
  • PA-WG600HP
  • PA-WG1800HP4
    簡便性を追求しているせいか、設定できる項目、ログが少ないです。エラーによっては自動再起動します。復帰の手間がかからない反面、原因調査ができません。
TP-Link
  • AC2600
    無線LANがよく止まります。ログレベルを変更しても、エラーのログが出ないので原因を解析できません。

電源タイマー

無線LANルーターが頻繁に調子が悪くなるので毎日リセットしたいのですが、上記のルータは再起動を自分自身でスケジュール化できません。そこで、タイマー付きコンセントで電源を落として無理やり再起動します。

 

(2)に続きます。

PowerShell のスクリプトレットでエラーを無視して処理したい

 

継承されていないアクセス権があるフォルダを一覧にするスクリプトレット

いきなり結論

Get-ChildItem -path ¥¥foo.bar.com¥baz -Force -Recurse -Depth 6 | Where {$_.mode -match "d"} | %{Get-Acl -LiteralPath $_.FullName | Where {$_.Access.IsInherited -like "False"} | Select-Object @{Label="Path"; Expression={Convert-Path $_.Path}}, AccessToString | Export-CSV acl.csv -Append -Encording Default}

部のシステム管理者という存在

私の会社では全社のシステムはシステム管理部門が管理してくれるのですが、部内で使っているファイルサーバの運用は部の担当者に任されています。素人が雑用として管理するので、質は推して知るべしです。

引き継いだ部内ファイルサーバの中のフォルダのアクセス権がめちゃくちゃでした

部内ファイルサーバの管理が私に回ってきました。このファイルサーバは部全員がフルアクセス権限を持っています、というか特に気にしていなかったのです。それでちょっと知っている人が各フォルダのアクセス権を適当に変更していたので、「xx限定フォルダ」「外部署との共有フォルダ」が乱立していました。代謝した人や、無効なセキュリティグループのアクセス権も大量に残っていました。なにはともあれ各フォルダのアクセス権の一覧表が必要ですが、私もITは本業ではないので、手抜きで済ませたいところです。

「フォルダ アクセス権 一覧」でググります

「フォルダ−アクセス権マップツール」でフォルダのアクセス権一覧を取得する − @IT

トップに出たのは2007年の記事です。マイクロソフトが「フォルダーアクセス権マップツール」を無償提供しているとありますがリンク切れです。他の検索結果を見たら今はPowerShellを使うようだと気が付きました

Windows Serverでフォルダのアクセス権一覧を出力する方法 | LifeKeyNotes

共有フォルダのNTFSアクセス権一覧をPowerShellで取得 - 雑記+備忘録

【PowerShell】フォルダアクセス権一覧を出力する方法

しかしこれらの記事にあったスクリプトレットは自分にアクセス権がないフォルダが一つでもあるとGet-Aclのエラーで止まってしまい、結果が全く出力されません。どのフォルダでエラーになっているのかもコンソールに表示されません。

エラー 回避 無視 継続 PowerShell Get-Acl error ignore skip continue handling access Error-Action ...

など単語を変えてググっても解決策が見つかりません。スクリプトを組んで try ... catch することも考えました。しかしスクリプトだと管理をさらに別の人に押し付けるときに実行ポリシーの設定などで苦労しそうです。

PowerShellスクリプトレットの途中でエラーが出ても処理を続ける

パイプの途中で ForEach-Object を使うことで解決しました。

Get-ChildItem | Get-Acl | Export-CSV

一つでもアクセスできないフォルダがあると全体が止まる。どのフォルダがアクセスできなかったのかはわからない。

Get-ChildItem ... | %{Get-Acl -LiteralPath | Export-CSV -Append}

アクセスできないフォルダがあっても処理は止まらない。コンソールにどのフォルダがアクセスできなかったのか、エラーが表示される。

アクセスできなかったフォルダがわかれば下記でなんとかできそうです。

PowerShell で ACE (ファイルの所有者) がないファイルを操作する - tech.guitarrapc.cóm

やっぱりアクセス権がないと所有者を変えられませんね。当たり前でしたが。

最後にスクリプトレットのパイプを一つずつ解説しておきます(備忘録)

Get-ChildItem -path ¥¥foo.bar.com¥baz -Force -Recurse -Depth 6

-path ¥¥foo.bar.com¥baz 以下にあるファイル・フォルダを取得する

-Force 隠しファイルを含む

-Recurse サブフォルダを含む

-Depth 6 6階層に制限する

| Where {$_.mode -match "d"}

$_ パイプラインに渡されたオブジェクトを表す変数。

modeプロパティを使ってフォルダだけを選択する。

| %{Get-Acl -LiteralPath $_.FullName

% ForEach-Objectのエイリアス。以降のパイプ全体を {} で囲んでおく

-LiteralPath Get-ChildItemをGet-Aclにパイプするとき、ForEach-Objectを使う場合は引数にパスを渡す必要がある。PowerShellを正規表現として使える反面、ファイル名にが入っているときに問題を生じるので、LiteralPathを使ってワイルドカードを無効にしておく

| Where {$_.Access.IsInherited -like "False"}

継承されていないアクセス権を持つACLAccess Control List)を選ぶ

| Select-Object @{Label="Path"; Expression={Convert-Path $_.Path}}, AccessToString

Select-Object CSVに書き出すオブジェクトを選択する 

@{ 連想配列

Convert-Path $_.Pathを相対パスから絶対パスに変換する

AccessToString ACLからアクセス情報を取得するスクリプトプロパティ。

| Export-CSV acl.csv -Append -Encording Default}

-Append ForEach-Object を使うので、一行ずつ追加するようにする

 

古いスマホをwi-fi子機にして、さらにモバイルデータ通信をバックアップ回線にする

以前、古いスマホをスマートスピーカ化しました。

agyay.hatenablog.com

さらにこの古いスマホwi-fi子機にします

このスマホは今のデスクトップの横に置いています。このデスクトップは無線LANを内蔵していません。以前はここにwi-fiルータも置いていて、デスクトップは有線LANで繋いでいました。居間は住居の端なのでwi-fiルータから電波が届かない部屋があり、対策として住居の真ん中にある洗濯機の上のコンセントに中継器(RE200)を挿していました。

これで全部屋をカバーしていたのですが、無線LANはやはり不安定です。在宅勤務を始めた時にwi-fiルータを移動して仕事用のPCを有線で繋ぐことにしました。居間のデスクトップの方はRE200を有線LANで繫いでwi-fi子機代わりにしました。これで1年間運用してきましたが、RE200は中継器として使っていなくても2.4、5GHzの両方のチャネルを占有してしまうこと、かなり発熱していることが気になっていました。そこで前にスマートスピーカ化したスマホwi-fi子機兼用にしてRE200には引退してもらうことにしました。

USBテザリングを使います

f:id:agyay:20210606220600p:plain

PCとスマホをUSBケーブルで繫いで、スマホ側でUSBテザリングを有効にします。

 

f:id:agyay:20210606222331p:plain

PCの方はWindows10なら何もしなくても自動的にNDISネットワーク接続がインストールされるはずです。

PCのUSBポートの電源を常時ONにします

PCをシャットダウンしたりスリープさせると、通常はUSBポートの電源が切れてスマホのUSBテザリングが無効になります。PCの電源を入れなおした時にまたスマホを操作してUSBテザリングを有効にする必要があり、面倒です。またスマホスマートスピーカーとして使うために常時ONにしているので、充電し続けないと電池が無くなってしまう恐れがあります。そこで次のどちらかの方法でPCをスリープにしてもUSBの電源が切れないように設定します。

  1. USBセレクティブサスペンドを無効にする
  2. 関係するUSBハブのプロパティで電源をオフにできないようにする
USBセレクティブサスペンドを無効にする方法

Windowsの設定 -> システム -> 電源とスリープ -> 電源の追加設定 -> プラン設定の変更 -> 詳細な電源設定の変更 -> USB設定 -> USBのセレクティブサスペンドの設定

を無効にします。

f:id:agyay:20210606223426p:plain

関係するUSBハブのプロパティで電源をオフにできないようにする

バイスマネージャーでRemote NDIS Compatible Device を探し、デバイス(接続別)で表示します。

f:id:agyay:20210606224305p:plain

 Remote NDIS Compatible Deviceの上位にあるUSBハブ、この例だとUSBルートハブ(USB 3.0)と汎用USBハブのそれぞれのプロパティの「電源の管理」タブにある、「電力の節約のために、コンピュータでこのデバイスの電源をオフにできるようにする」のチェックを外す。

f:id:agyay:20210606224755p:plain

 マザーボードのジャンパーピン

上の2つでUSBポートの電源が常時ONになるはずだったのですが、PCをスリープさせるとOFFになってしまいます。ASUSマザーボードにはジャンパーピン(写真のJUSB_PW1)があり、これを挿し替えたら解決しました。

f:id:agyay:20210606230114p:plain

 すみません、ホコリを取る前の写真なので少し見苦しいです。

モバイルデータ通信をバックアップ回線にします

どうせスマホを使うならということで、インターネットをモバイル回線でバックアップします。今住んでいるマンションはVDSL回線しか使えず、その上、日に数回接続が途切れます。下記に引用したようにネットワーク全体をモバイル回線でバックアップするにはヤマハなどの法人用ルータが必要らしいです。

www.farend.co.jp

しかし、スマホをUSBテザリングで1台のデスクトップに繋ぐ場合はスマホを「常にモバイルデータ通信を有効にする」だけで済みます。

f:id:agyay:20210610214528j:plain

SIMはRukten UN-LIMIT VI にしたので、もし通信量が増えても上限は3278円/月で済みますが、実際にどれくらいWi-Fiではなくモバイル通信になってしまうかはしばらく運用して確認します。

そして挫折

ここまで引っ張っておきながらなんですが、現在は運用を止めています。USBテザリングがなんらかの拍子に無効になった時に自動的に有効に戻す方法が見つからなかったためです。結局、スマホではなく普通のUSBのwi-fi子機を買いました。子機は安いものなら1000円以下で買えるので、さっさとそうしろという話ではあるのですが。少しだけ挑戦編を続けます。

スマホにUSBテザリングのショートカットを作る

f:id:agyay:20210612214904j:plain

スマホのホーム画面を長押しして、ウィジェット→設定→テザリングとポータブルアクセスへのショートカットを作れます。ここでUSBテザリングを押すだけなのですが、妻は面倒だと言って却下しました。

Macrodroid

f:id:agyay:20210612220204j:plain

以前はMacrodroidというAndroidの操作の自動化アプリでUSBテザリングも切り替えられたらしいのですが、現在はAndroidのセキュリティが厳しくなったせいでRoot化しないと不可になっています。回避策として自動クリックでなんとかしようとしましたが、テザリングの接続台数が0になったときというトリガーがうまく働きません。台数自体は検出できるので定期的に確認して自動クリックさせてみると最初はうまく動くのですが、時間が経つと反応しなくなってしまいます。

 

 

 

 

 

紛失したスマートウォッチを探す方法

遅まきながらスマートバンドにデビューしました

左から妻の Xiaomi Mi Band 5 、私の HUAWEI  Band 6 、息子の Apple Watch です。

サイズを比較しました。
f:id:agyay:20210529151731p:plain

節電のためか、どれも直ぐに消灯する設定になっています。3つ点灯している間に焦って撮ったらピントが合いませんでした。やはり画面が大きいほうが見やすいです。ただ息子はSuicaも入れて通勤・仕事中も常用していますが、私は自転車に乗るときか1日30分の運動のときだけ、妻は単に万歩計として使う程度なので値段や重さを考えてこの選択になりました。

 

スマートバンドを落としました

 妻がHUAWEI band 3 ProからMi Band5に買い換えてから1か月もたたないうちにMi Band5を失くしてきました。Mi band5の純正のバンドは軽くてなかなか良いのですが、ポッチを穴に入れて止めるだけの仕組みなのでどこかに引っ掛けて外してしまったようです。

妻と一緒に道を逆に辿ってダイソーに着いたところでスマホとMi band5の接続が戻りました。店員さんに聞いても落し物は届いていないとのことでしたが、店の外に出ると接続が切れるので店内にあることは間違いないようです。しかしここからが大変でした。スマホのアプリから「バンドを探す」でMi Band5のバイブレータを振動させられるのですが、音が小さすぎて全く聞こえません。1時間以上店内をうろうろしてやっとMi Band5を見つけることができました。

f:id:agyay:20210528221400j:plain

 

紛失したスマートウォッチを探す方法

帰宅してから考えました。Bluetoothの繋がる範囲は狭いのですが、いざデバイスを見つけようとすると広いです。次に備えて妻のスマホBluetooth Scannerを入れました。

play.google.com

Bluetooth Scannerで探したいデバイスを選択します。無料で使うと広告が出ますが気になるほどではありません。

f:id:agyay:20210528221425j:plain

バイスファインダーでスキャンする前にMi Band5のアプリで「検出可能」に設定しないとMi Band5を検出できません(このエントリーの2番目の図)。

f:id:agyay:20210528221435j:plain

無事Mi Band5を検出できたら、Bluetoothの信号強度が表示されます。これで歩き回ればMi Band5の場所に近づいたかどうかがグラフでわかるので、単に接続できたかどうかで判断するよりもはるかに楽に探すことができます。

f:id:agyay:20210528221443j:plain

 

スマートウォッチの紛失をそもそも防止する方法

今回はたまたまBluetoothで接続できる場所を見つけることができました。しかしBluetoothの繋がる範囲は規格(Class2)ではたった10mです。なので置き忘れたり落としたりしたらすぐにわかるようにしておくべきです。HUAWEI Band6にはアプリに「Bluetooth切断時の通知」という設定があります。これをオンにしておけば接続が切れたとたんにスマホから通知が出ます。

f:id:agyay:20210529164927p:plain

一方、Mi band5にはこの設定がありません。MacroDroidを使って監視することにします。無料だとマクロの数に制限があり、またマクロの保存のときに広告が出ますが、今回の用途には全く問題ありません。

play.google.com

これが最終的に作ったマクロです。

f:id:agyay:20210528221452j:plain

前半部分

f:id:agyay:20210528221510j:plain

後半部分(ほとんど前半部分と被っています)

f:id:agyay:20210528221501j:plain

 

解説していきます

マクロを起動するトリガーを設定します。

f:id:agyay:20210528221519j:plain

f:id:agyay:20210528221546j:plain

 

f:id:agyay:20210529170552j:plain

Bluetoothは何も無くても切れることがあるので、誤報を減らすために切断を検出してから10秒待つことにします。

f:id:agyay:20210528221610j:plain

10秒後にスマホに通知を表示します。

f:id:agyay:20210528221633j:plain

ただし条件を付けて既に接続が回復していたら通知を出さないようにします。

f:id:agyay:20210529171231j:plain

さらに一分待ってまだ接続が回復していなければ、位置情報を記録します。最初の一回はセキュリティ警告が出るので、そうしたら位置情報の共有を許可します。

f:id:agyay:20210529171607j:plain

共有方法はEメールにしました。

f:id:agyay:20210528221646j:plain

自分あてにメールを送信します。メールを開くとマップへのリンクがあります。

f:id:agyay:20210529172239j:plain

これで失くしたらすぐに気づくか、後から失くした場所に辿り着けるでしょう。

 

イヤホンも無くなるのだけど

電源を入れっぱなしのスマートバンドと違ってイヤホンを失くすのは電源を切っているときなのでBluetoothで探す方法が使えません。何か良い方法は無いものでしょうか。

私は「サイクリスト」じゃない

 YouTubeを見ていてたまたまこんな動画を見つけました。 英語ですけど、画像だけでも十分にわかる内容です。 

投稿者はカナダのトロントで自転車通勤しています。たまたま車より早く通勤できるから自転車にしているだけで、特に自転車に興味があるわけではありません。しかしトロントで自転車に乗る人間はそれだけで皆から「サイクリスト」環境主義者?ヒッピー?呼ばわりされるそうです。サイクリストに罰を与えようとする車も多いとか。

8:30-8:50 幅寄せする車

9:20-9:45 追い抜きざまに黒煙を吹きかけるために50万円かけて改造した車

 

日本でもこちらが交通ルールを守っているかどうかに関係なく、ロードバイクを目の敵にする車は多いですね。自転車用のドライブレコーダが欲しいのですが、なかなか手頃なものがありません。

ワイヤーバスケットを吊るしてテーブルタップや配線を押し込んでみた

今日はケーブルをなんとかしたい

と思いました。机がただの食卓なので、ケーブルを隠すところがありません。こんなトレイを付けたら良さそうです。

ただ、結構な値段がするのと、対応できる天板の厚さが足りません。こういうときは100均です。セリアで吊り下げ式のワイヤーラックを見つけました。

f:id:agyay:20210206163343j:plain

ただ、テーブルタップを押し込むにはちょっと小さいです。そこでラックを2つ吊るして、その間に別のワイヤーラックを縛り付けました。

f:id:agyay:20210206163357j:plain

 あまり綺麗とは言えませんが、なに、見えなければどうということはありません。