しまなみ海道 と LiveCycling の SQLite
あけましておめでとうございます。今年もよろしくお願いいたします。
現在、母の田舎の尾道に帰っています。今回は輪行でロードバイクを持ってきました。
2011/12/30 向島 - 今治 - 瀬戸田 というコースでしまなみ海道を渡ってきました。
Strava にアップしている情報 ( 速度、位置、ケイデンス、心拍数 )は iPhone アプリの LiveCycling を使用しており、途中で電池が切れてスペアの iPhone に交換したので、記録が2つに分かれています。
後でメインの iPhone にスペア分をコピーするために、スクリプトを書いたので Gist に手順を残しておきました Gist:1540055
// LiveCycling に .tcx を読み込む機能があれば、こんなことする手間をかけなくて良かったのになー、と思います。
LiveCycling を使った長距離サイクリングの途中で iPhone の電池が切れてスペアで記録をとったので、そのデータをメインにコピーするために書きました。
sqlite3-ruby 依存です。gem install sqlite3
などしてインストールして下さい。
- スペア iPhone をコンピュータに接続し、log.sqlite をディスクトップなどに保存。log1.sqlite にリネームする。 ( 参考 )
- メイン iPhone からも上記と同じ方法で log.sqlite を取り出し、log2.sqlite にリネームする。
- このスクリプトを2つのファイルと同じディレクトリに設置。cli で実行する
#!/usr/bin/env ruby
require 'sqlite3'
db1 = SQLite3::Database.new('log1.sqlite')
db2 = SQLite3::Database.new('log2.sqlite')
db2.transaction
work = db1.get_first_row( "select * from SUMFIL order by workid desc limit 1" )
workid1 = work[0]
work[0] = nil
db2.execute( "insert into SUMFIL values (#{ ["?"] * work.size * "," })", work )
workid2 = db2.last_insert_row_id
db1.execute( "select * from LOGFIL where workid = ?", workid1 ) do |row|
row[0] = nil
row[row.size - 1] = workid2
db2.execute( "insert into LOGFIL values (#{ ["?"] * row.size * "," })", row )
end
db1.close
db2.commit
db2.close
とりあえず普段使いは引き続き LiveCycling ですが、長距離用に Garmin edge 500 をポチりました。東京に帰る頃には手に入ると思います。wktk
おそらくこれによって、次は .tcx から、もしくは Garmin Connect から SQLite へ読み込ませるスクリプトを書くことになる予感です。API も充実してるみたいで楽しみです。
Path x Foursquare x ifttt x Google Calendar
移動中、Path から写真とチェックインを Twitter / Facebook / Foursquare に対して続けてました。
少し前から ifttt で if Foursquare then Google Calendar というタスクを設定していたので、以下の様に細かくどこにいたか記録されていて、今後のスケジュール作成に活用できそうです。
その他反省点
- 通行料の料金箱が賽銭箱式で、50円玉がなく、少しずつ損してました。後で知りましたが サイクリングチケット なるものがあったそうです。小銭を探す手間も省けるし、良いですね。( 参考: SHIMAP【サイクリング】料金表 )
- 日が落ちると、街灯がなく、橋の入り口が分からなくなりました。(幸い迷子になりませんでしたが。。) 今度はゆとりを持って早朝に出発して、日が暮れないように帰ってきます。