Sunday, September 27, 2009

Don't buy Microsoft Wireless Laser Mouse 7000

1年前くらいに買って、当時から様子がおかしかったので使ってなかったのだが、マウスがたりなくなったので再び使い始めてわかった。

これは糞だ。

当時様子がおかしかったというのは、充電ができない、すぐ電池が切れるという電源系統のトラブルだったのだが、不良品でもつかまされたか、と気楽に考えていた。
まぁeneloopにすれば使えないこともないし、いいか、と。

が、先日同型をもっている知人に同じ症状が発生していて、ネットでも同じような報告が多数ある、と。

アマゾンレビュー, 価格コムクチコミ

なるほど、これはひどい。
交換を6度もしている人もいる。
なんという地雷製品。Microsoftの品質管理はどうなっているのか。
どんなに安くてもこれは買ってはいかん。

ということで、懲りずにMSのブルートラックテクノロジ Microsoft Explorer Mouseを購入したのだが、これはすこぶる良好で。充電クレードルも小さくて邪魔にならないし。
いままで使ったマウスで最高かもしれない。(あくまで主観)

Saturday, September 26, 2009

IMAProwl 1.1.2

http://github.com/takuo/IMAProwl/downloads

メールの本文について、元のエンコーディングがわからなくてもとにかくUTF-8に変換するようにしました。
String#encode バンザイ。

mutexのdouble lockが発生するとの報告がありますが、再現しないのでいまのところわかりません。

Debian sidには明日のミラーで降りてくることでしょう。

Wednesday, September 23, 2009

GMail supports Push Mail for iPhone

http://googlemobile.blogspot.com/2009/09/google-sync-now-with-push-gmail-support.html によると、GMailがPush Mailをサポート開始したとのこと。

今までサポートしていたExchangeのActiveSync(カレンダー、連絡先の同期)にてメールの同期もできるようになった、ということのようで。
要するに、iPhoneのIMAP経由でGMailを使っていたのを、Exchange経由で使えばPush同期できますよ、ということになる。


Exchangeアカウントを追加する。


メールをオンにする。

iPhone上から https://m.google.com/sync?hl=en でデバイスの設定をしないと同期されない。

で、結局どうなのかというと、メールアプリのバッジがリアルタイムに更新される程度のPushで、いわゆるPush Notificationウィンドウは表示されない。
それと、ActiveSyncは電池食うらしいので注意が必要。

これだとまだIMAProwlは手放せないなぁ、というかExchangeアカウントは一つしか設定できないので、Google Apps for your Domainを併用していたりすると結局既存の通知アプリ等に頼らざるを得ない。
まぁProwlは汎用性が高いのでGMailが完璧なPushをサポートしたとしてもまだまだ使い道はある。

というか我々は重大な勘違いをしていたといえる。
Push MailとPush Notificationは違う。
あくまで「Push Mail = メールのプッシュ同期」であって、「Notification(通知)」は役割の範囲外なのでは、と。
要するにMail.appで派手な新着Notificationを実装されない限りはこれ以上よくならん。
(あるいは別のMail連携アプリで。)

Tuesday, September 22, 2009

久々のサイクリング

昨日は自宅から相模大野までひさびさにライド。
なんというかなんの面白みもない軽めのサイクリングという感じで。
つうか246とかぜんぜんよくないな。まったく。

あとそろそろ寒い。汗の放置は危険な季節であります。

Thursday, September 17, 2009

IMAProwl 1.1.0

http://github.com/takuo/IMAProwl/downloads

まだ master にマージしてないのだけど。
いろいろテスト的な実装をして安定していたのでタグ打ち。
  • Iconvを使うのやめて、String#encodeで文字コード変換するようにした。Iconvはクセがありすぎる。
  • マルチパートメールの場合、頑張ってtextパートを探して本文の通知に使うようにした。
大きなところはこんな感じで。もうだいぶ安定して動いてるようだ。

Wednesday, September 16, 2009

IMAProwl 1.0.0

http://github.com/takuo/IMAProwl/downloads
ようやく1.0.0ということに

  • NKF使うのやめてIconvを使うようにした
  • 日本語以外のメールも正しく通知できるようになった
  • テキスト処理中での例外処理対応を増やして、エラーになってもがんばって通知だけはするようにした
  • 本文がテキストじゃない場合は本文を通知に含めないかわりに、メディアタイプだけ通知するようにした
  • ほんとはテキストのパートを探してテキストを通知したいのだけど、面倒
  • 通知する件名の文字数を指定できるようにした
WindowsではIconvが標準じゃないので、ロードに失敗したらNKF使うようになってます。(たぶん)
iconv.dllを適切な場所に置いとけば問題ないかと。(たぶん)

Debianパッケージとして正式にuploadしてあるので、Debian sidの環境では
apt-get update && apt-get install imaprowl
cp /usr/share/doc/imaprowl/examples/config.yml ~/.imaprowl.conf
などとして、~/.imaprowl.confを修正してお使いください。
(9月17日以降)


既知のバグ
・prowl serverが死んでるときにsendした通知がリトライされない。(fixed in 1.0.1)

Tuesday, September 15, 2009

iconv_mime_decode on Ruby

PHPには iconv_mime_decode()という便利な関数がある。
さすがはPHP.

というわけで、Rubyでも同じような関数がほしかったのでテキトーに実装してみる。
PHPの中は見てないのでどうなってるのか知らない。
def iconv_mime_decode( input, out_charset = 'utf-8' )
while input.sub!(/(=\?[A-Za-z0-9-]+\?[BQbq]\?[^\?]+\?=)(?:(?:\r\n)?[\s\t])+(=\?[A-Za-z0-9-]+\?[BQbq]\?[^\?]+\?=)/, '\1\2')
end
begin
ret = input.sub!( /=\?([A-Za-z0-9-]+)\?([BQbq])\?([^\?]+)\?=/ ) {
charset = $1
enc = $2.upcase
word = $3
word = word.unpack({ "B"=>"m*", "Q"=>"M*" }[enc]).first
Iconv.conv( out_charset, charset, word )
}
return ret ? iconv_mime_decode( input, out_charset ) : input
rescue
# "Error while converting MIME string."
return input
end
end
こんなんでいいかなぁ。