Saturday, August 15, 2009

Twitter Notification with Prowl

勢いあまってTwitterのiPhone Push Notificationを作ったので公開。
Rubyです。

http://github.com/takuo/TwiProwl/

TwitterのMentionsとDirect Messagesを監視してProwlにnotificationします。
特に目立った機能はないです。
一応複数のTwitterアカウントに対応。

Thursday, August 13, 2009

IMAProwlを更新

IMAProwl更新。
http://github.com/takuo/IMAProwl

一応RFC的にはIDLEしてから30分間は何もせず待ってていいことになってるのだけど、すべてのサーバが準拠しているとは限らないので一応サーバごとに任意の間隔で再IDLEするように変更。
 -
Application: IMAPServer
User: gonbe
Pass: himitsu
Host: imap.example.com
Interval: 10

config.ymlにこんな感じでIntervalを定義する。分単位で0にすると再IDLEチェックしない。デフォルトで20分。
GMailのサーバは定期的にEXISTSを送ってきてそのたびにUNSEENチェックと再IDLEが入るので特に何もしなくていいのです。(0にしといていい)
NOOP じゃないのはIDLE中は Tagged command を発行できない(DONEしか発行できない)ため。

あと、なんかのタイミングでスレッドがデッドロックして死ぬのを確認しているけど再現性がわからないのでとりあえず放置
#!/bin/sh

while true; do
./imaprowl.rb
sleep 3
done
こんなんしとけばとりあえずいいかと。

http://github.com/takuo/IMAProwl

余談ではあるけど、近頃セムパイが監訳なさったgit本が発売されたので宣伝。

安達太良山登山


福島県は安達太良山へ登山に行ってきました。
どうも安達太良は初心者向けっぽく。途中までゴンドラで登れたり、距離もそれほど長くない感じでした。

今回は例によってCW-Xのスタビライクスモデルを着用。これも15000円くらいだったかな。まぁスノボするにも使えそうなので奮発。

やはりサポートウェアがあるとなしじゃぁ雲泥の差ですなぁ。
若干靴があってなかったかも知れないけど特に問題はなく。

結局登りはゴンドラを活用し、下りは徒歩で。
久々の登山だったのでこんなもんですか。
安達太良 at EveryTrail

Map created by EveryTrail: GPS Community

見下ろし

山頂

Wednesday, August 12, 2009

IMAProwl - ProwlでIMAPの新着をiPhoneへpush notificationする


GPushがあまりにも不甲斐なかったので、自作したわけです。

ええと、IMAPやGMailの着信通知をiPhoneにPushしたい。
そんな要望にこたえるのがGPushというアプリであった。

しかし、GPushはGMailのアカウント情報をGPushのサーバに知らせなくてはいけない(らしい)。
そんなことは絶対したくない。パスワードを見知らぬ外部サイトに登録するなんてとんでもない。
しかもなにやら、サーバ側のトラブルでGPushはいま公開停止になっているとか。

そこで、代替手段を考えていたところ、ProwlというのがあってこれはGrowlというOS X用の通知アプリケーションと連携してiPhoneへPushできるんだそうだ。
なかなかすばらしい。Windows版もあるみたい。
ProwlアプリはAppStoreで購入できる。

そして、いろいろ調べているとこの Prowl、厳密にはGrowl専用というわけではなくてAPIが公開されており、各種言語用のAPIライブラリもあった。
こりゃー自作するしかないでしょう。

つうわけで、1時間ほどでできたのが IMAProwl。
Rubyです。

準備
  • Prowlにアカウント作ってください
  • AppStoreからProwlを買ってください

チェックアウトと、ruby/prowlのインストール
git clone git://github.com/takuo/IMAProwl.git
gem install prowl

config.ymlを編集する。
複数のアカウントを登録できます。
Prowl:
APIKey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Accounts:
-
Application: GMail
User: example@gmai.com
Pass: secret
Host: imap.gmail.com
Debug: true
-
Application: Example
User: gonbe
Pass: himitsu
Host: imap.example.com
MailBox: news
Debug: true

Prowl::APIKey にはProwlアカウントで発行したAPI keyを。
あとはimaprowl.rbを実行するだけ。

注意
  • SSL専用です。PORTが993でない場合は Port: を定義。
  • UNSEENをチェックするフォルダが INBOXでない場合は MailBox: を定義
  • notificationキャッシュはオンメモリなので再起動するとすべてのUNSEENメッセージをnotificationしちゃいます。
  • まだ気に入らない部分がいくつかあり、完成ではないです。

Sunday, August 9, 2009

湘南海岸へサイクリング

昨日は自転車で湘南海岸のほうへいってきますた。

この日のためにCW-Xのバイクパンツを購入してたわけだが、これがとてもよかった。
これがなかったらたぶん80kmももなたかったと思われる。
オススメ。

で、今回の装備。

iPhoneをナビとGPSロガー代わりに使用。バッテリは持つはずもないので単三のエボルタとエネループを2本ずつ用意。
しかし、これだけじゃぎりぎりだった。というか走るペースがあまり速くないので、もうちょっと余裕をもって準備すればよかったと後悔。
実際帰りの途中でバッテリが切れそうになり、アルカリのエボルタを装着したのだけど、
このアクセサリは充電に対応してません
的なことを言われて補充できなかった。
結局残り5%で帰宅できたけど、iPod切ったり、3G切ったりわりと必死だった。

バッテリケースは手ごろのがなかったのでPSPのポーチをカラビナで無理やりつけた。
ついでに耳のお供に伊集院の深夜の馬鹿力をフルサイズで数日分。

行きルート。
たまプラ-湘南 行きルート at EveryTrail

Map created by EveryTrail: GPS Trail Maps
246の途中の登坂で死にそうになった。
467の中盤はなんかサイクリング向きだったなぁ。ずっと平坦で。



海岸では水に入りたかったのだけど、近くにシャワーの存在を確認できなかったので昼寝して終了。

人少なかったし晴れてたしわりといい感じで。

帰りルート。かなり必死で。
たまプラ-湘南 帰りルート at EveryTrail

Map created by EveryTrail: Share GPS Tracks
これはルート選択を誤ったといわざるを得ない。
危うく横浜新道の料金所直前までいってしまったし、保土ヶ谷バイパスは乗れないし。
そんなわけで還りはえらい時間かかってしまった。

総計80.2km
まぁ、MTBは疲れるのでやはりロードバイク欲スィ。という結論。

Friday, August 7, 2009

WinterBoardでiPhoneのテーマを変更してみる

jailbreakしたしせっかくなのでテーマをかえてみましょう、と。
まぁテーマなんてのは、完全に自己満足の世界だし、誰かに見せるもんでもないんだけど。

というわけで現状こんな感じのホームスクリーンになっとります。

Cydiaでも配布されているillumineテーマをいれてアイコンを若干追加したり変更。

iTickerというRSSティッカーを入れたものの、なんとなく気に入らなかったので全部書き直したのを適用。
JavaScriptでスクロールします。


しかし短時間にelementを移動させるスクリプトはどうやらCPUを使うらしく取り扱い注意。
横スクロールはずっと食い続けるので、縦スクロールにして一時停止するタイミングを設けて対処。


さて、Lock Screenのほうは必死に情報表示してます。

予定がいっぱいあるけどしょぼかるをインポートしてるだけ

Gruppled LockInfo Themeをベースに、時計は秒を表示して土日の表示は色つきに、カレンダーは祝日対応に、Twitterは完全に自分で実装。

ただ、LockInfoのバグなのか仕様なのかわからないけどSMSのTEXT表示ができずにいる。

(本来差出人の下に内容が表示される)
どうせsms.dbをsqliteで参照してるだけだろうと思って調べてみたのだが案の定、SMSPluginで
select address,text,date,group_id,unread_count from message...

などというSQLを発行している。
しかし、sms.dbのmessageテーブル中のtextカラムは常にempty stringのようで、実際のtextは別のテーブルに格納されていた。
言語環境で違うのかOSのバージョンで違うのかわからないけど、面倒なのでひとまずおいて置くことに。


ついでに。

iPodは Sleeve Music Themeというやつを。

というわけで、tickerがCPUを食らう以外はまぁいいかな。

入れたもの(基本的にCydiaから)
その他いじったもの http://github.com/takuo/iPhone.git/

Thursday, August 6, 2009

iPhone用にアクアパックを購入してみた

これからの季節、海だ山だとなにかとアウトドアな活動が多くなる(かもしれない)わけですがみなさんいかがお過ごしでしょうか。

アウトドアにもやはりiPhoneは欠かせないわけで、そうなると水に弱いiPhoneはなにかと不安であります。
というわけでですね、いろいろと調査した結果、PDAやカメラ、携帯などの防水で有名な AQUAPAC なるものがあることを知ったので、購入することにしました。
ていうか買いました。



jetdaisuke氏も納得[youtube link]の一品です。


ぴったしで、いい感じです。ちなみに AQUAPAC 344 というタイプ。
ちゃんとタッチスクリーンも反応します。

シリコンジャケットの類は脱がせたほうがいいかもしれない。