上京して働き始めてから3週間ほどが経ちました.思っていたほどの気持ちの変化もなく,これまで通りのノリで楽しく暮らしています.それでも,環境の変化はボクにたくさんのものを与えてくれますね.嬉しいことです.ようやく生活も落ち着いてきたので,少しずつブログの更新頻度も高めていきたいです.
会社に属するようになって改めて,「手続き的なものは苦手だなぁ」と感じます.そんな中でも,日々の交通費の申請がとても面倒だったので,PaSoRi を使って Suica の履歴を取得し,半自動化を試みました.
SONY RC-S320 非接触ICカードリーダ/ライタ PaSoRi 「パソリ」
ソニー |
Rails で社内用 Web アプリ!
こんなアプリを作ってみました.
誰がいつどの駅からどの駅まで移動していくら掛かったのか, Suica の履歴から分かります.「この駅は誰々がよく利用している」だとか「この日はどこどこに行ったよねー」だとか,そんな会話が生まれるといいですね.
Suica の履歴
Leopard で Ruby から PaSoRi を通して Suica のデータを扱えるようにするため,以下のリンク先を手順を踏みました.
Leopard 上の Xcode を使う場合は「有効なアーキテクチャ」の項目から「ppc」を除いてやるとビルドが上手くいくようです.
駅のデータはこちらのものを利用させていただきました.Excel 形式のものを CSV に変換してプログラムに読ませましたが,重複行があったり,昔と今で駅の名前が変わっていて同じコードが振られているものがあったりするので,多少の整形が必要でした.
ここまでの下準備が最も大変だったわけですが,ようやく Ruby から Suica のデータを読めたときはテンションが上がりました!でもでも,Suica には最新20件の利用履歴しか保存されておらず,日付のデータは取れても時刻までは取れないし,ちょっと残念です.もっと細かいデータまで扱えたら楽しいのになぁ.
まとめ
会社の手続きのような面倒なものも積極的に楽しくしていきたい!デバイスを扱うプログラミングは楽しい!
追記
ブックマークコメントにお返事します.
ところで買い物履歴も吸い出すんですか?
Suica は,買い物履歴も含めて20件まで保持していて,PaSoRi から読み出すタイミングでは買い物履歴も取得します.今回作ったアプリでは,その後の処理で買い物履歴を除いて,電車利用の履歴だけを利用しています.