しまなみ海道 と LiveCycling の SQLite

あけましておめでとうございます。今年もよろしくお願いいたします。

現在、母の田舎の尾道に帰っています。今回は輪行でロードバイクを持ってきました。

2011/12/30 向島 - 今治 - 瀬戸田 というコースでしまなみ海道を渡ってきました。

Strava にアップしている情報 ( 速度、位置、ケイデンス、心拍数 )は iPhone アプリの LiveCycling を使用しており、途中で電池が切れてスペアの iPhone に交換したので、記録が2つに分かれています。

後でメインの iPhone にスペア分をコピーするために、スクリプトを書いたので Gist に手順を残しておきました Gist:1540055

// LiveCycling に .tcx を読み込む機能があれば、こんなことする手間をかけなくて良かったのになー、と思います。

LiveCycling を使った長距離サイクリングの途中で iPhone の電池が切れてスペアで記録をとったので、そのデータをメインにコピーするために書きました。

sqlite3-ruby 依存です。gem install sqlite3 などしてインストールして下さい。

  1. スペア iPhone をコンピュータに接続し、log.sqlite をディスクトップなどに保存。log1.sqlite にリネームする。 ( 参考 )
  2. メイン iPhone からも上記と同じ方法で log.sqlite を取り出し、log2.sqlite にリネームする。
  3. このスクリプトを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 というタスクを設定していたので、以下の様に細かくどこにいたか記録されていて、今後のスケジュール作成に活用できそうです。

Screen Shot 2012-01-02 at 3.39.38 AM

その他反省点

  • 通行料の料金箱が賽銭箱式で、50円玉がなく、少しずつ損してました。後で知りましたが サイクリングチケット なるものがあったそうです。小銭を探す手間も省けるし、良いですね。( 参考: SHIMAP【サイクリング】料金表 )
  • 日が落ちると、街灯がなく、橋の入り口が分からなくなりました。(幸い迷子になりませんでしたが。。) 今度はゆとりを持って早朝に出発して、日が暮れないように帰ってきます。
comments powered by Disqus