2010年8月28日 (土)

twicil の Geotagging 機能 を Android/Google Gears で使えるようにしてみた

Gears API - Google Code で位置情報を付けてツイートする twicli プラグインを作ってみました。

主に Android 標準のブラウザ向け。

LYNX SH-10B で動作確認しました。

Internet Explorer + Google Gears でも動くかも (未確認)。

ブラウザが標準で W3C Geolocation API Specification に対応してる場合 (Firefox 3.5、Opera 10.60、Chrome 5、Safari 5 (iPhone Safari 3) 以降) は不要です。

プラグインの追加方法は以下の通り。

  1. twicli の [+] タブを開く。
  2. Preferences を開く。
  3. plugins に http://gist.github.com/554729.txt を追加。
  4. [save] ボタンを押してリロード。

使い方は twicli 本体の GeoTagging 機能と同じです。

それから今回は試しに Gist - GitHub 使ってみたり。

はい。LYNX はこの前、買いました。

2010年8月27日 (金)

Hg-Git は rebase 出来ない (twicli rebase の続き)

昨日の記事 (rebase してもらった twicli の修正のその後に悩む: 「わ」の日記もどき) を書いた直後の @NeoCat さんからの情報。

Twitter / NeoCat: @_wa_ gitだとrebaseすると元のツリーは ...

@_wa_ gitだとrebaseすると元のツリーは消える(というかrebase結果に変更される)んですけど、hgだとどうするもんなんでしょうねえ。

http://twitter.com/NeoCat/statuses/22182169487

もしやブランチが出来てしまうのは Hg-Git Mercurial Plugin が rebase に対応してないからなのか。

ということで、本物の Git を使ってみることに。

git pull git://github.com/NeoCat/twicli.git master

とやったら

Automatic merge failed; fix conflicts and then commit the result. 

になった…。なんか失敗っぽい。

そこで元に戻してから

git pull --rebase git://github.com/NeoCat/twicli.git master

とやったら

Nothing to do. 

になった。

Git GUI を実行して確認。

ブランチが解消されて、本家と同じ一直線になった!

今度は自分の GitHub リポジトリに push したいところ。

しかし、git push --rebase なんてオプションはない。さて。

git push git@github.com:wa-/twicli.git master

とやったら拒否された。

 ! [rejected]        master -> master (non-fast forward)

結局、以下のように forced update を実行したら本家と同じになった。

git push -f git@github.com:wa-/twicli.git master

という訳で、rebase が発生するリポジトリに対して Hg-Git を使うのは避けましょうという話であった。

2010年8月26日 (木)

rebase してもらった twicli の修正のその後に悩む

先日、twicli の search.js プラグインでバグを見つけたので、プログラムを直してみて、作者の @NeoCat さんに GitHub でプルリクエストしてみた。

そしたら @NeoCat さんも別件 (その時発生していた Twitter API の不具合対策 Twitter Status - A known API issue is causing some clients to crash) でほぼ同時にコミットしており、コミットかち合うという事態に。

このままプルされればブランチが出来てしまうはずだけれど、 Twitter / NeoCat: @_wa_ あ、rebaseはこちらでやるので大丈夫ですよ ということで rebase していただいた。

で、本題はここから。

rebase された本家リポジトリ NeoCat/twicli をプルしたところ、自分のリポジトリのログが以下のようになってしまった (Hg-Git で hg pull と hg glog を実行した結果)。

o  チェンジセット:   317:22ffa2526833
|  親:               315:fb686eaff952
|  ユーザ:           NeoCat <**@**>
|  日付:             Wed Aug 25 01:10:29 2010 +0900
|  要約:             Fix search tab problem when searching some marks
|
| @  チェンジセット:   316:63a3bf86b644
|/|  親:               313:f147dfa3cb74
| |  親:               315:fb686eaff952
| |  ユーザ:           NeoCat <**@**>
| |  日付:             Tue Aug 24 23:59:55 2010 +0900
| |  要約:             Merge remote branch 'git-svn'
| |
o |  チェンジセット:   315:fb686eaff952
| |  ユーザ:           Takashi WADA <**@**>
| |  日付:             Tue Aug 24 14:54:01 2010 +0000
| |  要約:             fix "remove tab" when search word contains < or >.
| |
o |  チェンジセット:   314:31309fc15446
|/   ユーザ:           Takashi WADA <**@**>
|    日付:             Tue Aug 24 14:53:56 2010 +0000
|    要約:             fix "remove tab" when search word contains quot or backslash.
|
o  チェンジセット:   313:f147dfa3cb74
|  親:               310:0c6a639d2b9d
|  ユーザ:           NeoCat <**@**>
|  日付:             Tue Aug 24 14:22:34 2010 +0000
|  要約:             Skip null tweets (Twitter API bugs?)
|
| o  チェンジセット:   312:e09e689299f0
| |  タグ:             default/master
| |  タグ:             master
| |  ユーザ:           Takashi WADA <**@**>
| |  日付:             Tue Aug 24 23:43:33 2010 +0900
| |  要約:             fix "remove tab" when search word contains < or >.
| |
| o  チェンジセット:   311:cf357df7b86f
|/   ユーザ:           Takashi WADA <**@**>
|    日付:             Tue Aug 24 23:13:16 2010 +0900
|    要約:             fix "remove tab" when search word contains quot or backslash.
|
o  チェンジセット:   310:0c6a639d2b9d
|  ユーザ:           NeoCat <**@**>
|  日付:             Mon Aug 23 23:06:59 2010 +0000
|  要約:             Add FAQ for Post with shift/ctrl+Enter
|

ここで チェンジセット 311:cf357df7b86f と 312:e09e689299f0 は最初に自分が直してコミットしたときのチェンジセット、314:31309fc15446 と 315:fb686eaff952 が rebase されたチェンジセットである。

つまり、同じ修正内容のチェンジセットが 2つ出来てしまい、元のチェンジセットはブランチになってしまったのである。

さて、この場合、311:cf357df7b86f と 312:e09e689299f0 の扱いはどうしたらいいんだろうか。

  • 311:cf357df7b86f と 312:e09e689299f0 は search.js のバグを修正するという目的を持ったブランチなのだから、その目的を終えてもそのまま放置しておけばよい。
  • 同じ内容のチェンジセットが存在するのは良くないから、 311:cf357df7b86f と 312:e09e689299f0 は消してしまうのがよい。
    • Mercurial だったら MQ の hg strip で消せるし、公開リポジトリの Mercurial hosting — bitbucket.org にもそういう機能があるけれど、Git や GitHub ではどうするんだ?
  • 本家に取り込まれた修正なのだから、それに合わせてなんとか本家にマージすべきである。
    • マージしたって、そのマージ自体がブランチになってしまうから意味がない。

取り敢えずよく分からないから、今はそのまま放置してるけれど、本来はどうすべきなんだろう。

とにかく、rebase ってやつはややこしいなと思った。

もしここを見た方で、「普通はこうするものだよ」とか知ってる人がいたら教えて下さい…

2010年8月 8日 (日)

今度は Hg-Git から Git-Hub に push

今度は Hg-Git Mercurial PluginGitHub に push しようと考えた。

HTTP や HTTPS で簡単に push できる Mercurial と違い、Git の場合は基本、SSH での push になる。

しかし、自分はいつも Windows を使っており、UNIX 環境を利用することが殆どないため、SSH を使えるようにするところから始めなくてはならない。

OpenSSH 使うために Cygwin をセットアップするのも面倒だなと思い、msysGit 付属の OpenSSH を使った。

つまり Windows 用の Git をインストールしたというわけ。

msysgit を使った SSH の鍵の設定方法などは以下を参考に。

OpenSSH 互換の copssh も試してみたけれど、これは SSH サービス用に Windows のアカウントを作成する必要があったりして、使い勝手が余り良くなかった。

TortoiseHg に付いている TortoisePlink とか Pageant とかも使えるのかも知れないけれど、やり方が分からなかった。

それから、Mercurial の MQ エクステンションでパッチの管理領域を作ったリポジトリに対して Hg-Git を使うと、Mercurial がクラッシュしてしまうみたいなので併用は避けた方が良さそう。

もし MQ と Hg-Git を併用したい場合は、Hg-Git を使うリポジトリと MQ を使うリポジトリを別にして、双方で push/pull した方が良さそう。併用の必要性なんてそうなさそうだけれど。

2010年8月 3日 (火)

Hg-Git プラグインを使ってみた

Mercurial よりも Git の方が興味のある公開リポジトリがあるのよね。

ってことで、Hg-Git Mercurial Plugin を使ってみた。

Hg-Git は dulwich という Python のユーティリティを使用しているようだけれど、 TortoiseHg には最初から組み込まれているから、準備は不要。

先ずは、Hg-Git のプラグインを上記のサイトの download a snapshot と書かれたところからプラグインのアーカイブをダウンロードし展開。

次に、Hg-Git を使いたい作業領域の .hg/hgrc をテキストエディタで開き、以下の記述を追加。私が使ったのは Windows でだけれど、ディレクトリの区切りは一応 / で。

[extensions]
hgext.bookmarks =
hggit = (Hg-Git を展開したディレクトリ)/hg-git/hggit

bookmarks エクステンションを追加してるのは Git のブランチを Mercurial のブックマークに変換するためみたい。

その後は、コマンドプロンプトから例えば

hg clone git://github.com/NeoCat/twicli.git

を実行することで、twicli の Git リポジトリを Hg のリポジトリとしてあっさりクローンできた。

勿論、pull も大丈夫。

唯、Hg-Git プラグインを使っていて気になったというか、残念なこと。

  • Mercurial のリポジトリに push しようとすると、「予期せぬ例外が浮揚されました」とエラーになって失敗することがある。
    • このときは一時的に Hg-Git のエクステンションを無効にすればうまくいくようだ。
  • hg pull を1回やった後、続けてもう一度やろうとすると、「中止: プロセスはファイルにアクセスできません。別のプロセスが使用中です。」と出ることがある。
    • このときは hg gclear を実行し、Git のキャッシュをクリアするとうまくいくようだ。

とにもかくにも Git のリポジトリから Mercurial のリポジトリに clone や pull は出来たので、今度は逆もやってみようと思い… (続く、かも)

2010年7月31日 (土)

twicli の位置情報送信機能を試作して

先日の twicli で位置情報を取得するプラグインを作った続き。

Opera 10.60 のヘルプを見てみたところ、Geolocation 対応は IP アドレスや Wi-Fi などのアクセスポイントだけでなく、どうも GPS からの取得にも対応してそうだった。

実際、試してみたところ、ちゃんと自分の居場所を取得できたので GPS に対応してるものと判断。

こうなるとノート PC からも位置情報 (Geotagging) を付けて Twitter を使いたくなる。

そこで twicli を Geotagging に対応させるプラグインを作れないか調査。

しかし、twicli 本体に手を入れないと対応は難しいことが分かり、プラグインから本体の処理を上書きするようにして試作。

Twitter API の POST statuses/update で、以下のパラメータを付ければ位置情報が付く。

  • lat (緯度)
  • long (経度)、
  • display_coordinates=true (位置情報の表示を有効)

それでこの試作品も、その日の晩のうちに大幅に改良されて本家に取り込みとなり…

NeoCat さんの仕事の速さには本当、感心しっぱなし。いつもありがとうございます。

2010年7月22日 (木)

twicli の位置情報表示プラグインを作ったらなんと!

位置情報の話の続き。

位置情報に関心を持ち始めて、Twitter のタイムラインを web でよく見てみると、実は既に位置情報を付けてツイートしてる人達がいることに気付いた。

けれど、位置情報に非対応のクライアントアプリケーションを使っていると、当然、位置情報が付いていることに気付かない。

これは勿体ない!

位置情報が見られないから活用も広がらないに違いない。

そんな訳で、自分がよく使っているクライアントの twicli で位置情報を参照できるようにプラグインを作ってみた。

JavaScript で最近、そんなにプログラムを書いてないこともあり、オライリーのクイックリファレンスも職場に起きっぱなしだったこともあって、ちょっと手こずった。

けれど、プラグインの機構というのは、こういうときに開発の敷居を下げるから有り難い。

それでちょっと手こずりながらも、なんとか取り敢えず位置情報があれば経緯度を表示して、 Google マップ にリンクするところまで作った。

で、驚いたのはここから。

なんと!

twicli 用プラグインを公開して 2日後、twicli の作者さんから本体に いい感じなので取り込もうかなあ と言われてしまったのだ。

凄く大袈裟に言えばオープンソースのプログラムに新機能のパッチを提出したら採用してもらえたような感じ?

まあ実際には、本家作者さんの手によって、地図の埋め込み表示に対応するなど、ずっと洗練した物になったのだけれど。

とにかく、自分が作ったプログラムがこうして評価され、取り込まれたりして、今までにない感激を味わったのであった。

尚、位置情報は例えば以下のアプリケーションなどで使われているようだ。

過去には twicli 用に viratter プラグインなんてのも作ってる。

これは、ポップアップメニューに viratter のリンクを追加するだけの簡単なもの。

使い方はこちらにあるので、よろしければどうぞ。

2010年7月20日 (火)

GPS レシーバーを PHS で使ってみた

何故か今頃になって PHS と PC で GPS を使えるようにしたくなり、GPS レシーバーを買った。

GPS レシーバーというのは実はシリアルポートで NMEA-0183 という決まった形式によって通信をするらしく、それなら特別なドライバがなくても Windows Mobile で使えるんじゃないかと予想して購入。

しかし実際にはそんな単純な話ではなかった。

それで何か作はないかと調べたところ、Windows CE 用に USB のシリアルポートデバイスドライバとして、下記のウェブサイトにある 232usb - RS232 USB Serial Driver を見つけた。

Advanced W-ZERO3[es] (WS011SH) で 232usb を使ってみたところ、COM2 ポートに割り当てられたようだったので、Windows Mobile の External GPS の設定で [GPS ハードウェア ポート] の設定を COM2 に、[ボーレート] を 4800 に変更。

後は NAVITIME (WILLCOM)モバイル Google マップ のプログラムを実行し、GPS を有効にして動作確認。

いやぁ、自分が歩くのと当時に地図が動く動く。しかもカーナビと違ってマップマッチングもジャイロセンサー (自律航法ユニット) もないのにかなり正確。これだけでも結構楽しい。

カーナビで地図がずれるのって実はマップマッチングが裏目に出てるんじゃないかと思った。

それから地図ソフトの次は 今ココなう! (β) を試してみた。

今ココなう! は各ユーザーの位置をオンラインの地図上にリアルタイムに表示するサービス。見てるとユーザーの位置が刻々と変化して、見てるだけでも面白い。

詳しい紹介記事。

ぶらりお散歩300キロ、「酷道」走破もみんなでウォッチ 「車載動画」がひそかなブーム - ITmedia News

車を愛し、ドライブ中に車窓動画を撮影する「車載クラスタ」と呼ばれる人たちがいる。まとめサイトや専用のネットサービスも誕生し、活気づいている。

http://www.itmedia.co.jp/news/articles/0906/23/news039.html
全国の車載モバイラーのナウ!がわかる「今ココなう!」サービス:ナレッジ!?情報共有・・・永遠の課題への挑戦:ITmedia オルタナティブ・ブログ

あいも変わらずTwitterが話題だ。確かにTwitterでのコミュニケーションは楽しい。特に欧米と違って日本では特定の共通の趣味を持ったクラスタ(仲間)同士が集まって本気の呟きというか冗談的な妄想...

http://blogs.itmedia.co.jp/knowledge/2009/05/post-37f9.html

このサービスは Windows Mobile 用のクライアント (今ココなう!(β):ダウンロードページ) もあるのが嬉しい。

しかも結構機能が細かくて、前述の COM2 ポートを探し当てられたのもこのクライアントプログラムの GPS 自動検出機能のお陰。

このクライアントプログラムで [自動送信] を有効にしておくと定期的に今ココなう! のサーバーに位置情報を送信してくれる。

また、[自動イマココ] を有効にすると定期的に住所を取得し、Twitter に住所をポストしてくれる。このとき、Twitter の位置情報 Geotagging を送ることも可能だ。

自分は少し前まで位置情報の公開についてなんにも関心がなかったけれど、今年の初め頃から foursquare を皮切りに急に位置情報を公開するサービスがはやりだし、Twitter でも (Twitterブログ: これからは位置情報です!) W3C でも (Geolocation API Specification) 位置情報に関する API が盛り込まれ、凄く気になり出してきた。

でも、もっと早くにはやっていたら、そしてもっと早くに自分が関心を持っていたなら、「ココでドラゴンクエスト IX のすれちがい通信をやってるよ」なんて使い方で楽しむことも出来たかなと思った。

PHS って本当は 3G などの携帯電話ように GPS の力を借りなくても、比較的正確な位置を割り出せるのが特徴だったように思うんだけれどね。

2010年7月12日 (月)

PHS の位置情報で「今ココなう!」

Advanced/W-ZERO3[es] (WS011SH + RX420IN) を使って、今ココなう! (β)を試してみた。

Windows Mobile 用のクライアントが PHS (W-SIM) の位置情報に対応していたのと、GPS レシーバーを自分が持ってなかったため、PHS の位置情報を GPS 代わりに使った。

結構コツが必要だったので、そのまとめ。クライアントは Version 1.0.3.72 を使用。

  • WS011SH の場合、.NET Compact Framework をインストールしなくても取り敢えず使える。
  • 住所を取得するためには「今ココなう!」のサーバーにユーザー情報を登録してログインしなければならない。
  • サーバー (Twitter を含む) との通信中に W-SIM による位置情報の測位が始まると、クライアントアプリケーションが落ちる。自動 POST の設定を「120秒ごと」に変更するか、測位が終わったら [GPS 切断] を実行しておくことで回避。
  • Twitter に住所をツイートする場合は、メニューの [自動イマココ] を有効にしてから [住所取得] を実行する。
  • メニューの [自動送信] を有効にしても (位置情報の測位直後などで) 回線が切れていると送信できない。右の [通信] メニューから手動で [位置送信] を実行すれば、W-SIM で自動接続してくれる。
  • 無線 LAN を有効にすると W-SIM が位置情報の取得に専念できるためか、通信でエラーになりにくくなる (たまに W-SIM で通信しようとして失敗するようだけれど)。
  • PHS の基地局の位置がそんなに高精度じゃなさそうだし、そもそも PHS の位置情報自体、GPS ほど高精度ではないので、オンラインの地図で見ると結構誤差が出る。

「今ココなう!」って元々は車載カメラで動画配信するような人達向けのサービスみたいだけれど、ま、いっか。

2010年7月 5日 (月)

2年越しで眼鏡を買った

遂に新しい眼鏡を買った。

バンドの人に
「眼鏡を変えた方がいい、変えるべきだ」
と言われるようになったのが 2008年7月頃らしいから、かれこれ 2年になってしまった。

自分にとって初めてのプラスチックレンズ、そして初めてのプラスチックフレームである。

なんか知らないけれど、みんなから
「太めの黒いフレームで、レンズは縦が余り長くない方が絶対に似合う」
というようなことを言われた (眼鏡店の人にも言われた) ので、今回は (自分の中ではかなり) 思い切ってそうした意見に従って選んでみた。

ほら、かなり思い切ったでしょ。 > 私を見たことある人

今回、眼鏡を新調したのは、定期的に診てもらっている眼科の先生から処方箋を出してもらえたから。

それまでは
「今の眼鏡で特に問題なく矯正できてるからそのままでいいよ」
と言われてた訳で、こう言われると自分にはなかなか新しい眼鏡を買えないものである。

けれども、どうも自分の周りでは同じように考えている人が少ないみたい。装身具 (アクセサリー) の一つなんだね。

自分は眼鏡を視力の矯正のために使う器具として捉えている。だから何より優先すべきは、正しく検眼して出された度数、掛け心地、耐久性、視界の確保といった実用性なんだけれど。

普通はそんなの二の次なのかな。

なんにせよ、新しい眼鏡に対する周りの反応が怖い。特に会社での反応が不安。会社にはいつから掛けていこうかなぁ。

«Mercurial が便利!

Twitter

最近のトラックバック

2010年8月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

友人とか知人とか

  • ASA820

    七輪の会を主宰する同い年で会社の同期仲間。因みに「ASA820」というのは、毎朝8時20分頃に静岡着の電車で通勤する活動だったが、私が静岡転勤になる前に休眠…。
  • So-net blog:体力の限界に挑戦!でもほどほどに☆

    いろんなことにチャレンジ! やりたいことはやってみよう☆ 文武両道という言葉は正にこの人のために。
  • T's Weblog

    大学時代、研究室で熱く語り合った友人。PC も日本語も絵描きも何でもとことんこだわる。
  • あほエイガ

    初対面でいきなり HTML やらキーボードやらについて語り合った会社の同期仲間。勿論、あほじゃないよ。
  • ちいさな思ひ出たち

    一見、おっとりしているように見えるけれど、実はかなり前向き志向の行動派の公務員。元は会社の同期仲間。
  • ま〜blog

    読売巨人軍をこよなく愛し、今日も静岡県のネットワークの安全を見守り続ける。 七輪の会、名誉会長。
  • エムエフエイチ

    いつも計画、下準備から後片付けまで、よく気付き、何でもこなす。七輪の会の頼れる技術部長。
  • 七輪の会ブログ

    七輪の会は永久に不滅です。七輪を使っておいしいものを食べる会合。自分も写真部長として参加に努める。
  • 中島吾郎の富良野日記

    答えはいつでも形を変えてそこにある、風の手のひらの上 会社の同期仲間のゴローさんは今、植林と自然教室のために北海道へ。
  • 今日のたっくん

    大学の吹奏楽団の後輩で、今も変わらずパーカッション。生まれは愛知で今、静岡県民なのは自分と同じ。
  • 大ちゃんのブログ

    どんなことでもフルスロットル! 人生は でんぐり返し 高校の吹奏楽部で同期だった大ちゃんは西三河の地域新聞の記者として駆け巡る。
  • 日々、徒然なるままに

    のりひささん。同じ土地で同じ乗用車に乗っていたことから知り合った人。機械屋であり詩人であり。
  • 目指せ大器晩成型っ!

    人として、スポーツマンとして大成するため、日々精進します。 七輪の会、広報部長。
  • 153

    自分と同じ元トゥインゴ乗り。そしてデジタルカメラも *ist DS でお揃いの、なおみ。さん。

これも見とるよ

その他

無料ブログはココログ