たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
他にもやってる人いそうだなあ……
前のエントリの追記が多くなったので分ける。
「すべて強調表示」の強調箇所が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名、電話か店頭で申し込む必要があります、としつこく宣伝しておきます。どうかよろしくお願いします!!!!
一旦は実装完了したと思ったんだけど実はまるっきり仕様を読み違えてた事が判明してから直さなきゃと思ってるうちに夏コミがあったりFirefox 3 Hacksの校正があったりですっかり放置してた、Firefox 3.1からの新機能への対応をぼちぼちと。
ていうかこの絞り込み機能、めっさ使いにくい気が……せめて初期状態のキーワードはもうちょっとわかりやすい物にした方がいいと思うんだ。こんなそこいらの使われてない記号を適当に当てはめただけのものなんて、とても憶えられんよ。
しかも複数指定可能とかで頭がこんがらがってきたので、手戻りを防ぐために自動テスト書いたりもしてみた。こういう時ほんとにUxUがあって良かったと思う。
あとlevelさんのエントリの後半で触れられてるスマートキーワードとの連携についても、パッチを見ながら実装してみた。でもこれって実装を見る限りPOSTメソッドのスマートキーワードには非対応ですよねぇ……どうすんだ?
他に、すでに開かれてるタブにマッチした時はどうこうするという話も出てるみたいだけど、僕としては本家の実装が出てきてからその動作を真似る形を取らざるを得ないので、現状は様子見です。
ああ、あとすべて強調表示が選択範囲になったことへの対応もしなきゃなあ。見た目の問題だけじゃなく、今のXUL/Migemoは選択範囲の位置で現在の検索のフォーカスを判断してるから、何もかもが動かなくなる予感。
textboxのsearch型というのは何か影響するんだろうか? 影響有りならこれも対応しないと……
Second Search 0.5.2008090101公開。表題の通り、ロケーションバーから検索できるようにしました。 (スクリーンショット) ツールバーのカスタマイズでWeb検索バーを外してロケーションバーだけ残している状態だと、ロケーションバーでWeb検索できるようになります。狭い画面を有効活用したい人にオススメ。
将来のFirefoxで検索バーが消滅するかもとどっかで聞いたので「おいおいそれじゃ全然使えなくなっちまうじゃねえか」と思って実装してみたんですが、よく考えたら検索バーが消滅するならこういう機能も標準で付いてしかるべきですよね。ああ無駄な努力。
あと、外観や動作には全く関係ないですが、Firefox 1.5を切り捨てて内部処理を大幅にリファクタリングしました。特にスマートキーワードを検索エンジンとしてリストアップするための機能をだいぶ書き直してます。ブックマークを追加したり削除したりした時の怪しい挙動がだいぶ無くなったと思う。多分。バージョンを0.1上げたのはそれによるところが大きいです。
返事がないのが返事、と言われた。
「普通の人」はその意味をきちんと理解できるみたいなんだけど、アスペルガー症候群の疑いがあるような空気読めない僕には、どうしてもその意味がきちんと理解できない。
いつも返事がない人から「返事がないのが返事」って言われても……僕には分からないですよ。その返事だけが唯一に近いチャンネルなのにそれが断たれたら他の情報ソースが無い、情報ソースがなければ何も分からない、としか僕には思えないし。
でも「普通の人」はそれでも、全ての感覚を総動員してチャンネルがない所にもチャンネルを開いて、コールドリーディングもホットリーディングも使いこなして情報を引き出して、「返事がないのが返事」の意味をきちんと理解できるものらしい。僕にはそれが、エスパーのようにしか感じられない。
池袋ジュンク堂にでかフォクすけぬいぐるみが行ってるそうです。9月4日のイベント当日までここにいるそうな。
以下しつこいですが宣伝。Firefox 3 NITEと称して、9月4日19:00から池袋ジュンク堂にてFirefox 3 Hacksの出版記念トークイベントが開催されます。参加費1000円ワンドリンク制で定員40名、電話か店頭で申し込む必要があるとの事です。詳しくはジュンク堂のサイトのイベント案内をご覧下さい。また既報の通り、小サイズのフォクすけぬいぐるみ3体が抽選用景品として提供されたそうなので、ぬいぐるみが欲しい人もおいでませ。
ていうかトークイベントとはいっても何を話題にすればいいのかさっぱりなので、ネタの方も絶賛募集中です。
Tuhnderbirdには標準で、メールを暗号化したりデジタル署名を付けたりする機能(S/MIME)が含まれている。しかし、これに使う証明書はベリサイン等で購入する必要があるので、ちょっとテストしてみたいという場合にはけっこう難儀する。
これについて、いわゆるオレオレ証明書でS/MIMEのテストをやる手順を以下にまとめておく。テストした環境は、Ubuntu 8.04とWindows XP。
これで、秘密鍵と公開鍵のペアができた。次に、送信者側の設定。
これで送信者側の設定は完了。新しくメールを作成して、ツールバーの「セキュリティ」ボタン(錠前のアイコン)の右の▼をクリックし、署名するだけの場合は「このメッセージにデジタル署名する」にチェック、暗号化する場合は「このメッセージを暗号化する」にチェックを入れて、自分宛に送信してみよう。受信したメールを選択すると、Subjectや送信者名などが表示されている欄の右端に、錠前(暗号化されたメール)や封印(署名されたメール)のアイコンが表示されていれば、S/MIMEでメールを送信できた事が分かる。
ちなみに、この状態で署名や暗号化されたメールを他の人に送った場合、受信者側では、署名されたメールでは封印のアイコンにバッテンが付いたアイコン、暗号化されたメールでは錠前にバッテンが付いたアイコンに加えて「このメッセージを復号できませんでした」というメッセージが表示される。
というわけで受信者側でも以下の設定が必要になる。
本当はこの後「他の人の証明書」他部を選択して同じ手順で証明書(公開鍵)をインポートする必要があると思うんだけど、ここまでで出てきているmail.crtは適当に作ったオレオレ証明書で認証局証明書と兼用になってしまってるので、「他の人の証明書」でインポートしようとしてもうまくいかなかった。
ともかく、認証局証明書にオレオレ証明書を登録した状態で、先程の送信者からの署名済みメールを受け取ると、Subject等の欄の右端に表示される封印のアイコンからバッテンが消える。
暗号化の方はよくわかんない……オレオレ証明書を一個だけ作るんじゃなくて、認証局証明書と個人用証明書の二つを作ってもう一度実験してみないといけない?
昨日のFirefoxNITEで言われたこと色々。
店長さんが前よりさらにいかつい容姿になられていたのでまた余計にビビってしまった今日この頃です。
なんか気がついたらDan Kogai氏が書評書かれてた。内容には触れてないけど。このエントリからのトラフィックでAmazon.co.jpのランキングが結構上がったらしいです。すごいね。
内容の中で僕がピンと来る物は、以下のような感じです。
他はまだちゃんと見てない(ひどい)。
関連イベントのお知らせ。
FirefoxNITE:Ustream使ってダラダラやってたアレの新装開店リニューアルオープンついでのスペシャル開催みたいです。8月27日20:00から渋谷bartubeにて開催、参加費3800円。参加登録が必要なので宴会君からどうぞ。
Firefox 3 Hacks NITE:本書発売記念のトークセッション、だそうです。bartubeのソレとは全然無関係に、9月4日19:00から池袋ジュンク堂にて開催。参加費1000円ワンドリンク制(多分)で定員40名、電話か店頭で申し込む必要があるとの事です。
誰も来なくて関係者だけで反省会、というのは怖いので、物申したい方の多くのご参加と喧々囂々丁々発止のリアルモヒカンバトルに期待しております。
「痛いですか?」とインタビュー 知的障害者ねらい暴行 少年グループ逮捕(産経新聞) - Yahoo!ニュース
このニュースを読んで一番「ええええ」と思ったのが、この部分。
中学3年の少年は、「自分より弱そうな相手を選んだ」と容疑を認めているが、「身体(障害者)をいじめて何が悪い」と反省の態度はないという。
「身体」だそうですよ。「身体」だけで差別語ってことですよ。これはいけませんね。「カタワ」を「障害者」と言い換えたように、「障害者」を「障碍者」と言い換えるように、「キチガイ」を「気が変になった人」と言い換えるように、「ド低能」を「クサレ脳ミソ」と言い換えるように、「身体」も言い換えないといけませんね。何せ差別語ですからね。
言葉なんて文脈によっていくらでも意味が変わるのだから、一つ一つの単語だけ切り出して狩っていった所で意味はなく、狩れば狩るほど一般的な単語が差別的文脈で使われるようになっていくだけだ、ということを実感したエピソードなのでした。