vimperator 2.0preに移行後プラグインを微修正

firegesturesのロッカージェスチャ(右クリック後に左クリックしたときの動作など)を有効にした状態でvimperator 1.2を利用すると、クイックリンク(migemo_hint使用時?)が動作しない不具合がありました。ぐぐってみた結果、2.0preでは修正されているとのこと。ロッカージェスチャがないと少し不便なので、早速2.0preに移行したのですが、案の定いくつかのプラグインが動きません。

使用しているプラグイン&移行後の動作状況は以下の通りでした。

  • autoIgnoreKey.js: 動作しない
  • commandBookmarklet.js: 動作しない
  • migemo_hint.js: 作者の方も2.0preを使用しているらしく対応済み

設計方法が劇的に変わることはないだろうと2.0preについて調べていると、vimperatorのプラグイン開発者向けwikiにいろいろと載っていました(このwikiは今後も参考になりそう。要は、各オブジェクトの名前空間が変わったみたいです。

プラグイン修正点(2008/10/27時点でのリビジョンとのdiff)

liberator.hogehoge となっているものを hogehoge にしました。

autoIgnoreKey.js
47c47
<     modes.passAllKeys = isMatch(uri);
---
>     liberator.modules.modes.passAllKeys = isMatch(uri);
commandBookmarklet.js
10c10
<   var items  = bookmarks.get(filter);
---
>   var items  = liberator.bookmarks.get(filter);
28c28
<     title = util.escapeHTML(title);
---
>     title = liberator.util.escapeHTML(title);
31c31
<     commands.addUserCommand(
---
>     liberator.commands.addUserCommand(

まとめ

2.0preになって各オブジェクトの名前空間が変わりました。

追記

feedSomeKeys.js便利そう...最近vimperator周りのプラグイン、設定は触っていませんでしたが、ますます便利になっていますね。

Pythonで簡易コマンドラインTwitterクライアント

pythonの勉強がてら、python twitterライブラリを使って、Twitterクライアント作ってみました。ちょっと中途半端ですが、オプション付き。

ソース

#!/usr/bin/python
# -*- coding: utf8 -*-

import twitter,random,sys
from optparse import OptionParser

id = "shiroma"
password = "XXXXXXXX"

parser = OptionParser()
parser.add_option('-p', '--post',
                    action='store', type='string', dest='message',
                    help=u'post a message',
                    )
options, args = parser.parse_args()

try:
    api = twitter.Api(id,password)
    if options.message != None:
        api.PostUpdate(options.message)
        print u"posted: %s" % (options.message.decode('utf8'))
        sys.exit()

    if len(args) == 0:
        statuses = api.GetFriendsTimeline(id)
    else:
        statuses = api.GetUserTimeline(args[0])
except twitter.TwitterError,e:
    print e
else:
    for status in statuses:
        print u"%s: %s" % (status.user.screen_name, status.text)

使い方

スクリプトは、twitterclient.pyとします。

タイムライン取得
% python twitterclient.py
あるユーザのタイムライン取得
% python twitterclient.py shiroma
ポスト

マルチバイトな文字列はターミナルとzshの設定がうまくいってないので未対応orz

% python twitterclient.py -p 'hogehoge'

感想

zshのマルチバイト設定がうまくいってなかったことにへこみました。

追記(2008/10/29)

ポストのところでoptions.message.decode('utf8')とすることで、unicode(日本語も)対応。unicode以外の入力からdecodeするとどうなるんだろう。

Bloggerのブログがスパム判定されるとOpenIDとして使えない

iKnow!をBloggerOpenIDで利用していたのですが、先日急に認証が通らなくなりました。何か思い当たる節があるとすればiKnow!ではなくBloggerだったので調べてみると、その何日か前にスパム判定されていました。そのスパム判定を解除するためにCAPTCHAでボットでないと証明しましたが、その後Bloggerの中の人が承認する必要があるようです(ちなみに1週間過ぎても使えず。。iKnow!のヘルプページを軽く探ってみたのですが、OpenIDに関する救済策は見つけることができませんでした。

OpenIDや分散認証、共通認証については色々と議論されていますが、一つのアカウントが使えなくなり、その界隈のサービスが使えなくなるのは不安ですね。今回はiKnow!だけということで特に被害もありませんが、平常的に使っているサービスなどが使えなくなるといったことになると・・・。

勉強会参加について

なぜ参加しようと思ったのか、とたくさんの方に聞かれました。客観的に見ておかしい、何か裏があるだろと自分でも不思議に思っていますが、今回は純粋に「人に直接会ってお話を聞きたい」と思っての参加です。

参加の動機

ちょうど1年前に「JoomlaっていうCMSOpenIDっていう新しい認証に対応しているんだよ」と学科の先生から教えていただきました。当時Web上でのシングルサインオンについて調べており、まさにこれだ!とOpenIDに関する情報を調べ始めました。それからしばらくして、工藤さんZIGOROuさん=natさんmachuさんなどなど(まだまだたくさんいらっしゃいます)、こういう方が活躍していることがわかってきました。
そして今年の1月、工藤さん主催のアイデンティティ飲み会の記事を読み、行ってみたいなーとおぼろげに思いました。でも東京・・・当時は怖じ気付いて、うらやましがっているだけでした。
そして去る5月の晴れの日、学科の先輩(沖縄でも珍しい、かなーりアクティビティのある人です)が帰国ビーチパーティを開催し、沖縄のITのキーパーソンの方々を交えて飲む機会がありました。そこで行動することと人に会うことの意義を痛感し、触発され、今度何か行きたいイベントがあったら東京でもアメリカでも行ってやる!という気持ちになりました。
そしてそして今回のIdCon#2、あの方々に会える!これはもう行くしかない!絶対行きます!と周りに宣言して勇気を振り絞り参加しました。
というわけで、井の中の蛙は海の向こうに出ることとなりました。

地方からの参加

今回の旅は贅沢をして6万円弱、いろいろな勉強会に参加するにしてもがんばって年に数回・・・でしょうか。私は運良く恵まれた環境にいるから参加できましたが・・・と、このことについて考え始めると話が広がってしまいそうです。地方に関連した問題はしょうがないかなと思います。ただ、こういうことはちゃんと配慮されていて、たとえばとある学会や研究会は定期的に沖縄で開催されたりします。

沖縄での勉強会

沖縄でも勉強会はあります。私が知っている限りでも OIA勉強会Java Kucheなどなど、他にもあります。が、やはり人が少ないのが現状です。過去に偉い人を呼んだということもありましたが、コストの問題で毎回お呼びできるわけでもありません。いざお呼びするとなっても、興味を持った参加者が集うかどうかわかりません(やはり多くの人に聞いてもらいたい。
「自分で勉強会やればいいんだよ」という意見もあります。この意見は至極ごもっともです。今回IdConに参加し、自分でもいろいろとやっていきたいなと思いました。ただ、知識の差が大きいので、どのレベルに焦点を当てるかが難しいです。それを解消するためにもどんどん勉強会は開いたほうがいいですね。

望むこと

恐縮ですが、今後こうなってくれるといいな、こうしたいなという希望も含めて書きます。

外部配信

飲み会でも少し話題にあがりましたが、勉強会はできればustream等で外部配信してほしいです。見ているだけで幸せになれる人も少なくないはず・・・!

学生もどんどん参加してほしい

社会人の方の話を聞けるということは、学生にとってとても大きなことです。一方で、「迷惑にならないか」など気にすべき、考えるべきことも多いです。


すみません、なんかぼーっとしてまとまっていないですが、要は「勉強会(飲み会)参加したほうがいいよ!したいよ!」ってことが言いたいです。ありがとうございました!

第2回Identity Conferenceに参加してきました

参加しました!幹事の水野さん、発表および参加者のみなさま、お疲れさまでした。いろいろと不安だったのですが、今は感謝感激の気持ちでいっぱいです。以下、当該イベントについてです。*1

XRI,Trust,Reputation by =natさん

XRIやOpenIDのreputationについての話。trusted data exchangeはこれからも要チェックです。

XRI
  • i-name「=nat」とi-number「canonical id」のセット
  • GCSキャラクタ(Global Context Symbols)、@や=など。詳しくはOpenID Discovery Using XRI and XRDS.(注:PDF)の2.1.1.3節(15ページ目)
  • オーソリティとパスで識別される
    • 上記xri資料によると、xri:authority/path?query#fragment の書式で識別
  • @hoge*(@fuga*nat) のように階層構造も表現できる
  • @Library*(urn:isbn:4367...) 人だけじゃなくて、図書館の本なども表現可能
  • XRDSでサービスの列挙
  • @freeXRI: の左メニューにあるToolsでいろいろできる
ORMS
  • reputation: ある主張(assertion)に関する、集計された主観的判断(belief)
  • 信憑性と非否認性
  • trusted data exchange: RPの評価付きデータ交換。reputation service。JAL<->ホテル予約で使われている。

Apache2::AuthenOpenID by Danjohさん

ApacheのモジュールでOpenIDによるACL

Attribute Exchange Sucks by ZIGOROuさん

OpenIDで属性交換するAttribute Exchangeについて。

  • sregとの共通点→属性取得
  • sregとの相違点→属性設定と属性定義
  • 主な対応OPは、myopenidとsxipper
  • schemaのURI定義が複数あって、myopenidでは動作しないものもある
  • RPが必要な属性をinput要素などに埋め込んでリクエス
  • 残念ながら、現状ではあまり使い物にならないらしいです。

ID-WSF by 伊藤さん

ID-WSFやリバティアライアンスについて勉強不足でついていくことができませんでしたorz

  • WEB Service Framework,WSP(web service provider),DSDiscovery Service,WSC(Web Service Consumer)
  • single sign on後、ユーザの情報がどこにあるか探し、別のサービスに提供できる

SAML、LibertyAllianceについて興味がわいてきました。

飲み会と感想

ちょうど去年の今頃からOpenIDアイデンティティ関連の調べ物を始め、現在たくさんの方々のブログやページを購読しています。そのネットで遠くから見ていた方々と直接会って話をし、大変感激しました。みなさんとてもwise&cleverで、沖縄から来た若輩とも仲良くしてくださる温かさもありました。これぞ情報系な飲み会!というような会話から、オフレコ?な内容まで、とても面白かったです。ZIGOROuさんには急遽居酒屋でプレゼンをしていただいたりw、特に良くしていただきました。緊張して飲み過ぎ&失礼な行為もしてしまったな・・・、と後から反省することもありますorz。それらも含めて大変勉強になりました。
今回は沖縄というアイデンティティに救われましたが、今後はどんどんアウトプットしていって「○○しました!」とか「××作りました!」と言えるようにしたいです。
最後に、参加者のみなさまへ。筆舌に尽くしがたいほど感謝の気持ちでいっぱいです。ありがとうございました!!

*1:間違い勘違い等あったらすみません、ご指摘していただけると幸いです。

Firefoxでタブごとの文字の拡大率をリセットさせない方法

Firefox3からかどうかはわかりませんが、タブを切り替えるたびに文字の拡大率が100%にリセットされるようになっているみたいです。これではちょっと不便なので、何か策はないかとabout:configで関連パラメータを探したら対処できました。

  1. ロケーションバーなどにabout:config
  2. browser.zoom.siteSpecific を false に設定

これでタブを切り替えても文字の拡大率はリセットされなくなりました。

追記

ページ遷移しても拡大率がリセットされませんね。これはこれで不便・・・。