Home > Latest topics

Latest topics 近況報告

たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。

萌えるふぉくす子さんだば子本制作プロジェクトの動向はもえじら組ブログで。

宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! シス管系女子って何!? - 「シス管系女子」特設サイト

Page 34/248: « 30 31 32 33 34 35 36 37 38 »

XUL/Migemo 0.11.2 緊急アップデート - Sep 12, 2008

XUL/Migemo 0.11.1を公開してAMOにアップロードしたら妙に早く承認されて「へえ」と思っていたら、新規インストール時に特に発生する致命的な問題が存在していたことがついさっき判明して、速攻でAMOにログインして当該バージョンを公開停止にしようとしたんだけど、これ今になって気がついたけどファイルの削除はできても特定のバージョンの「公開停止」という措置は取れないんか……公開ページ上の最新バージョンは0.11.1と表示されててダウンロードボタンも緑色なのにクリックするとファイルのダウンロードに失敗する、という妙な状況になってしまった。せめて前のバージョンをダウンロード可能にしてくれればいいのにぃ。

つい先ほど、修正を施した0.11.2をアップロードしたものの、これが公開を承認されるまではずっとこの状態なんだろうか。困った。

しかしまあ何というか、ちゃんとレビューされてなかったのね、ということを今更ながらに実感した次第です。苦笑……できない。

XUL/Migemo 0.11.0 - Sep 07, 2008

XUL/Migemo新版を公開した。

池田さんに教えてもらうまで存在を知らなかったSearch Markerのような、検索のヒット位置をスクロールバー横に表示する機能を追加した。Search Markerとは以下の点が異なる。

  • Search MarkerはDOM要素でマーカーを表示してるけど、XUL/MigemoではHTML Canvasで表示している。
  • Firefox 3.1での「すべて強調表示」の仕様変更に独自に対応しているので、Firefox 3.1でも動く。
  • クリックだけでなく、ドラッグ操作にも対応している。
  • フォーカスされている場所に対応するマーカーが強調表示される。

これの絡みで、選択範囲とか強調表示とかまわりの処理をだいぶ書き直した。強調解除で選択範囲が復元されなかったり、強調表示した状態での再検索がやたら重かったり、といった細かい問題が色々直ってるはず。

検索にヒットしてフォーカスされた箇所を画面中央に表示する機能は、以前実装してみたもののいざ使ってみるとウザくて全然使ってなかった。そのウザさの原因はどこにあったのかというと、多分、すぐ次の行とか近くにある語にヒットした時まで強制的に画面がスクロールして、ページのどこが表示されてるのか分からなくなってしまいがちという所だったのだと思う。というわけで、画面の端から30%内側のラインより外にある時だけスクロールするようにした。Safariとかはこういう動作になってたと思う。どうしてFirefoxの素の検索機能はこういう所で気が利いてないんでしょうね。

スクロールといえば、クイックMigemo検索中にページをスクロールしている間はタイムアウトのためのタイマーを止めるようにしてみた。スクロールして眺めてるのにハイライトが消えてしまってムカツク、ということが何度かあったので。

そんな感じの細かい改善が結構入ってます。

んげ。今LDRでふと検索を試してみたら、スクロール全然できなくなった。iframeではないCSSによるスクロール可能なボックスのことを考えるのを忘れていた。

XUL/Migemoで使ってる機能についてFirefox 3.1で色々変わってた事の調査結果 - Sep 03, 2008

前のエントリの追記が多くなったので分ける。

「すべて強調表示」の強調箇所がspan要素ではなくnsISelectionになった件については、nsISelectionControllerの選択範囲の型の中にSELECTION_FINDというのが増えていて、ユーザの選択範囲や検索で現在フォーカスがあたってる箇所を表すSELECTION_NORMALとは別に管理されていることが分かった(nsISelectionControllerのメソッドを使うとこれらの型別に選択範囲の一覧を取ることができる)。ということで、「どっちも同じ選択範囲だったらどうやってフォーカス箇所を取ればいいんだ!」という問題は杞憂だったと判明した。

あとはパッチと実際の新しい実装を見ながらFirefox 3.1用のコードを書いて、Safari風強調表示を有効にしてる時だけFirefox 3.0までと同様のspan要素を使うハックを復活させるようにしたところ、アニメーション効果も無事動くようになった。元々、XUL/Migemoでは正規表現にマッチする箇所をまとめて強調しないといけない関係上、span要素を使うハックの処理のほとんどを自前で再実装してたので、思った程には大規模の改修はしなくて済んだ。

一個だけ躓いた所として、XPCOMコンポーネントの新しいメソッドをIDL定義に追加して引数にnsISelectionController型のオブジェクトを渡すようにしていた所、XPIDLでのコンパイルは通るんだけど実際に使う時にNS_ERROR_XPC_CANT_GET_PARAM_IFACE_INFOというエラーが出てにっちもさっちもいかなくなってしまった。ダメ元で、引数の型をnsISupportsにして受け取り側でQueryInterfaceするようにしてみたところ、ちゃんと動いてくれた。一体何だったんだろうこれは。

textbox要素のsearch型については、パッチを見た限りでは今の所サイドバーの「ブックマーク」と「履歴」でだけ利用されていて、XUL/Migemoのやってるハックには影響しないようだった。

ロケーションバーの方もテストしてみようと思ったらこれが全然動かなくなってて、調べてみたらmozIStorageServiceのopenDatabase()メソッドでplaces.sqliteを指定して開く所で「ファイルがロックされてるぞゴラァ」と怒られていた。ななななななんてこった!!! SQLite Managerで見ようとしてもやっぱりロックされてて見れないと言われる。どうも不用意な書き換えでデータベースが破壊されないようにロックがかかるようになったようだ。これはやばい。PlacesデータベースにSQLでアクセスできなくなったらXUL/Migemoのロケーションバーまわりの実装の苦労が全て水の泡になる上に、Firefox 3 Hacksで物凄いページ数使って書いた内容がまるっきり無駄になるじゃないか。マジで一瞬気が遠くなった。

精神的に半泣きになりながらmozilla-centralでスマートロケーションバーまわりのコードを調べていたら、いくつかの箇所でDBConnectionとかStorageConnectionとかそういう文字列が登場していて、それをキーに調べてみたらnsPIPlacesDatabaseというインターフェースDBConnectionプロパティからPlacesデータベースへのコネクションオブジェクトにアクセスすることができるらしいということが分かった。このインターフェースはPlaces API関係のサービスが実装していて、以下のようにすればアクセスできるという事も分かった。

var dbConnection;
if ('nsPIPlacesDatabase' in Ci) { // Firefox 3.1 の場合
  dbConnection = Cc['@mozilla.org/browser/nav-history-service;1']
                  .getService(Ci.nsINavHistoryService)
                  .QueryInterface(Ci.nsPIPlacesDatabase)
                  .DBConnection;
}
else { // Firefox 3.0.x の場合
  const DirectoryService = Cc['@mozilla.org/file/directory_service;1']
                            .getService(Ci.nsIProperties);
  var file = DirectoryService.get('ProfD', Ci.nsIFile);
  file.append('places.sqlite');
  if (file.exists()) {
    const StorageService = Cc['@mozilla.org/storage/service;1']
                            .getService(Ci.mozIStorageService);
    dbConnection = StorageService.openDatabase(file);
  }
}

ホント焦った……4日のトークセッションで土下座せなあかんかと思ったよ。

ちなみにその4日のトークセッションですが引き続き参加者の方絶讃募集中です。9月4日19:00から池袋ジュンク堂にて開催。参加費1000円ワンドリンク制(多分)で定員40名、電話か店頭で申し込む必要があります、としつこく宣伝しておきます。どうかよろしくお願いします!!!!

XUL/MigemoとFirefox 3.1のロケーションバーや検索ツールバー - Sep 02, 2008

一旦は実装完了したと思ったんだけど実はまるっきり仕様を読み違えてた事が判明してから直さなきゃと思ってるうちに夏コミがあったりFirefox 3 Hacksの校正があったりですっかり放置してた、Firefox 3.1からの新機能への対応をぼちぼちと。

ていうかこの絞り込み機能、めっさ使いにくい気が……せめて初期状態のキーワードはもうちょっとわかりやすい物にした方がいいと思うんだ。こんなそこいらの使われてない記号を適当に当てはめただけのものなんて、とても憶えられんよ。

しかも複数指定可能とかで頭がこんがらがってきたので、手戻りを防ぐために自動テスト書いたりもしてみた。こういう時ほんとにUxUがあって良かったと思う。

あとlevelさんのエントリの後半で触れられてるスマートキーワードとの連携についても、パッチを見ながら実装してみた。でもこれって実装を見る限りPOSTメソッドのスマートキーワードには非対応ですよねぇ……どうすんだ?

他に、すでに開かれてるタブにマッチした時はどうこうするという話も出てるみたいだけど、僕としては本家の実装が出てきてからその動作を真似る形を取らざるを得ないので、現状は様子見です。

ああ、あとすべて強調表示が選択範囲になったことへの対応もしなきゃなあ。見た目の問題だけじゃなく、今のXUL/Migemoは選択範囲の位置で現在の検索のフォーカスを判断してるから、何もかもが動かなくなる予感。

textboxのsearch型というのは何か影響するんだろうか? 影響有りならこれも対応しないと……

続報(上記の事柄の調査結果まとめ)

Second Search 0.5でロケーションバーからの検索に対応しました - Sep 01, 2008

Second Search 0.5.2008090101公開。表題の通り、ロケーションバーから検索できるようにしました。 (スクリーンショット) ツールバーのカスタマイズでWeb検索バーを外してロケーションバーだけ残している状態だと、ロケーションバーでWeb検索できるようになります。狭い画面を有効活用したい人にオススメ。

将来のFirefoxで検索バーが消滅するかもとどっかで聞いたので「おいおいそれじゃ全然使えなくなっちまうじゃねえか」と思って実装してみたんですが、よく考えたら検索バーが消滅するならこういう機能も標準で付いてしかるべきですよね。ああ無駄な努力。

あと、外観や動作には全く関係ないですが、Firefox 1.5を切り捨てて内部処理を大幅にリファクタリングしました。特にスマートキーワードを検索エンジンとしてリストアップするための機能をだいぶ書き直してます。ブックマークを追加したり削除したりした時の怪しい挙動がだいぶ無くなったと思う。多分。バージョンを0.1上げたのはそれによるところが大きいです。

Firefox 3 NITE参加者絶賛募集中 - Aug 28, 2008

池袋ジュンク堂にでかフォクすけぬいぐるみが行ってるそうです。9月4日のイベント当日までここにいるそうな。

以下しつこいですが宣伝。Firefox 3 NITEと称して、9月4日19:00から池袋ジュンク堂にてFirefox 3 Hacksの出版記念トークイベントが開催されます。参加費1000円ワンドリンク制で定員40名、電話か店頭で申し込む必要があるとの事です。詳しくはジュンク堂のサイトのイベント案内をご覧下さい。また既報の通り、小サイズのフォクすけぬいぐるみ3体が抽選用景品として提供されたそうなので、ぬいぐるみが欲しい人もおいでませ。

ていうかトークイベントとはいっても何を話題にすればいいのかさっぱりなので、ネタの方も絶賛募集中です。

ThunderbirdでS/MIMEのテスト - Aug 28, 2008

Tuhnderbirdには標準で、メールを暗号化したりデジタル署名を付けたりする機能(S/MIME)が含まれている。しかし、これに使う証明書はベリサイン等で購入する必要があるので、ちょっとテストしてみたいという場合にはけっこう難儀する。

これについて、いわゆるオレオレ証明書でS/MIMEのテストをやる手順を以下にまとめておく。テストした環境は、Ubuntu 8.04とWindows XP。

  1. Ubuntuのコマンドラインで以下を実行。openssl req -new -x509 -days 365 -nodes -keyout mail.key -out mail.crt
  2. 設問が色々表示されるけれので、後で分かりやすいようにそれぞれ入力しておく。自分は Country Name = JP, State = Tokyo, Locality Name = 空欄, Organization = TEST, Unit = 空欄, Common Name = Piro, Email Address = 実際にメールの送信に使うアドレス と入力した。
  3. カレントディレクトリにmail.keyというファイル(暗号化したり署名したりするための個人用の秘密鍵)と、mail.crtというファイル(証明書、復号や署名の検証に使う公開鍵)が生成される。

これで、秘密鍵と公開鍵のペアができた。次に、送信者側の設定。

  1. 今作成した鍵のペアは2つのファイルに別れているけれども、秘密鍵をTunderbirdにインポートするにはPKCS#12形式に変換しないといけない。Ubuntuのコマンドラインで以下を実行。openssl pkcs12 -export -inkey mail.key -in mail.crt -name "適当な名前" -out mail.pfx
  2. 新しいパスワードの入力を求められるので、適当なパスワードを入力する。(PKCS#12形式に変換された秘密鍵は通常時は封印された状態となり、使う時にはパスワードの入力が必要になる。ここで設定するのは、この、秘密鍵の封印を解くためのパスワードである。)
  3. mail.pfxという名前のファイルができる。
  4. ツール→オプション→詳細→証明書→証明書を表示 で証明書マネージャを起動する。
  5. まず、先ほどのオレオレ証明書を証明書として使えるようにする。「認証局証明書」タブで「インポート」をクリックして、先ほど生成したmail.crtを選択する。
  6. 「本当にこの認証局を信頼しますか?」云々のダイアログが出るので、「この認証局によるメールユーザの識別を信頼する」にチェックを入れて「OK」ボタンを押す。
  7. 証明書のインポート完了。上記の例そのままで入力していた場合、認証局証明書の一覧の中に、Organization Nameで入力した名前の項目(先の例なら「TEST)と、その子項目としてCommon Nameで入力した名前の項目(先の例なら「Piro」)が増えていることを確認する。この操作をしていないと、秘密鍵が信頼されていないと言われて署名や暗号化ができない。
  8. 「あなたの証明書」タブの「インポート」ボタンをクリックして、先ほど生成したmail.pfxを選択する。
  9. 先ほど入力したパスワード(秘密鍵の封印を解くパスワード)を入力する。
  10. 「証明書と秘密鍵が正常に復元されました。」と表示される。これで、秘密鍵がThunderbirdの証明書ストアに取り込まれた。マスターパスワードを利用していない環境では、この時マスターパスワードを設定するよう求められる場合もあるので、そっちも適当に入力しておく。
  11. アカウント設定の「セキュリティ」パネルで、「デジタル署名」欄の「選択...」ボタンを押して、先ほど登録した証明書を選択する(先の例なら「Piro - TEST」)。
  12. 「あなたへのメッセージの暗号化と復号にも同じ証明書を使用しますか?」と聞かれるので「OK」を押す。これで、「暗号化」の方にも同じ証明書が選択される。

これで送信者側の設定は完了。新しくメールを作成して、ツールバーの「セキュリティ」ボタン(錠前のアイコン)の右の▼をクリックし、署名するだけの場合は「このメッセージにデジタル署名する」にチェック、暗号化する場合は「このメッセージを暗号化する」にチェックを入れて、自分宛に送信してみよう。受信したメールを選択すると、Subjectや送信者名などが表示されている欄の右端に、錠前(暗号化されたメール)や封印(署名されたメール)のアイコンが表示されていれば、S/MIMEでメールを送信できた事が分かる。

ちなみに、この状態で署名や暗号化されたメールを他の人に送った場合、受信者側では、署名されたメールでは封印のアイコンにバッテンが付いたアイコン、暗号化されたメールでは錠前にバッテンが付いたアイコンに加えて「このメッセージを復号できませんでした」というメッセージが表示される。

というわけで受信者側でも以下の設定が必要になる。

  1. ツール→オプション→詳細→証明書→証明書を表示 で証明書マネージャを起動する。
  2. 「認証局証明書」タブで「インポート」をクリックして、先ほど生成したmail.crtを選択する。
  3. 「本当にこの認証局を信頼しますか?」云々のダイアログが出るので、「この認証局によるメールユーザの識別を信頼する」にチェックを入れて「OK」ボタンを押す。
  4. 証明書のインポート完了。

本当はこの後「他の人の証明書」他部を選択して同じ手順で証明書(公開鍵)をインポートする必要があると思うんだけど、ここまでで出てきているmail.crtは適当に作ったオレオレ証明書で認証局証明書と兼用になってしまってるので、「他の人の証明書」でインポートしようとしてもうまくいかなかった。

ともかく、認証局証明書にオレオレ証明書を登録した状態で、先程の送信者からの署名済みメールを受け取ると、Subject等の欄の右端に表示される封印のアイコンからバッテンが消える。

暗号化の方はよくわかんない……オレオレ証明書を一個だけ作るんじゃなくて、認証局証明書と個人用証明書の二つを作ってもう一度実験してみないといけない?

FirefoxNITEとFirefox 3 NITE - Aug 28, 2008

昨日のFirefoxNITEで言われたこと色々。

  • 夏コミのレポートまだー?→気力が……
  • Dan Kogai氏が萌え系でもいいんじゃねと言ってるんだからほんとにそれでやってもよかったんじゃね?→あり得ません。仮に仕事として萌え絵の挿絵やら何やらを描くことを依頼されても断ります。オフィシャルが絡む物で萌え系は(特に日本では)タブーという空気なのでそこんとこ空気読みましょう。
  • 大阪人なのにタコ焼き焼けないのか→大阪人がみんなタコ焼き焼けるとは限らないよ!
  • 9月4日の池袋ジュンク堂どうすんの?→何を話せば良いのやら……

店長さんが前よりさらにいかつい容姿になられていたのでまた余計にビビってしまった今日この頃です。

Firefox 3 Hacksもうそろそろ発売みたいですね - Aug 25, 2008

Firefox 3 Hacks Mozillaテクノロジ徹底活用テクニック
江村 秀之 池田 譲治 下田 洋志 松澤 太郎 dynamis
オライリージャパン
売り上げランキング: 566

なんか気がついたらDan Kogai氏が書評書かれてた。内容には触れてないけど。このエントリからのトラフィックでAmazon.co.jpのランキングが結構上がったらしいです。すごいね。

内容の中で僕がピンと来る物は、以下のような感じです。

  • FUEL解説
  • Placesデータベースのテーブルの内容解説
  • MozStorageによるPlacesデータベースへのアクセス
  • Places APIの解説(といっても触れてないところも多いけど……)
  • place: URI(スマートブックマークの正体)の解説
  • JavaScriptコードモジュールの書き方と使い方
  • JavaScript製XPCOMコンポーネントの書き方
  • 安全な自動更新の提供方法
  • Firefoxの独自ビルドの作り方

他はまだちゃんと見てない(ひどい)。

関連イベントのお知らせ。

FirefoxNITE:Ustream使ってダラダラやってたアレの新装開店リニューアルオープンついでのスペシャル開催みたいです。8月27日20:00から渋谷bartubeにて開催、参加費3800円。参加登録が必要なので宴会君からどうぞ。

Firefox 3 Hacks NITE:本書発売記念のトークセッション、だそうです。bartubeのソレとは全然無関係に、9月4日19:00から池袋ジュンク堂にて開催。参加費1000円ワンドリンク制(多分)で定員40名、電話か店頭で申し込む必要があるとの事です。

誰も来なくて関係者だけで反省会、というのは怖いので、物申したい方の多くのご参加と喧々囂々丁々発止のリアルモヒカンバトルに期待しております。

Page 34/248: « 30 31 32 33 34 35 36 37 38 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のコメント

最近のつぶやき