Home > Latest topics

Latest topics 近況報告

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

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

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

Page 48/248: « 44 45 46 47 48 49 50 51 52 »

Firefox 3でのアドオンの自動更新に関する仕様変更(セキュアじゃないアドオンは全部蹴られる件) - Sep 04, 2007

のりさんのところで報じられている、Firefox 3の仕様変更について、チェックインされたパッチを詳しく調べてみた。

今後拡張機能の自動更新では、以下の2つの段階でセキュアかどうかのチェックが入るようだ。

  1. install.rdfに書かれたupdateURL(更新情報を提供するRDFデータソースのURI)がhttpsで始まる、もしくは、updateURLで示された先のRDFデータソースであるXML文書が署名されていてinstall.rdfのupdateKeyに書かれた公開鍵で復号化できること。これが第一の条件。
  2. 更新情報を提供するRDFデータソースに書かれたupdateLink(新バージョンのXPIパッケージのダウンロード用URI)がhttpsで始まる、もしくは、updateHashでハッシュが示されていること。これが第二の条件。

この二つの条件が満たされてやっと、アドオンの自動更新が行われるという仕組みになっている。

よって、アドオン作者が取れる選択肢は以下の4つになる。

  1. install.rdfからupdateURLの記述を削除し、全ての更新をMozilla Add-ons経由で行うようにする。(Mozilla Add-ons経由の更新はhttpsなのでセキュア)
  2. 自前のサーバにSSL証明書を置いてhttpsで通信できるようにして、そこに更新情報提供用のRDFデータソースとXPIパッケージを置く。
  3. 更新情報提供用のRDFデータソースに署名して、さらに、その中にXPIパッケージのハッシュの情報も含めておく。
  4. 自動更新のための仕組みを提供しない。現実は非情である。

やる方として一番楽なのは1と4なんだけど、1には重大な問題がある。

  • 公開申請に通ったアドオンは、ファイルを更新する度に審査があるので、審査待ちで長期間放置されると死亡。
  • 公開申請してないアドオンは、ファイル更新の度の審査は不要だけど、ユーザから見えないから気付かれなくて使ってもらえなくて死亡。

というわけでもうちょっと素早く対応できる路線として2を検討してみようと思ったんだけど、仮にどうにかしてSSL証明書を手に入れたとしても、そもそもさくらのレンタルサーバじゃビジネス用プラン以外ではSSLは使えないんだってさ……

3はやりかた自体が分からない。XMLに署名するとかハッシュ値得るとか、僕の頭ではちんぷんかんぷんです。

ということでいずれにしても今の野良アドオン天国はオシマイだと言えよう。

続きを表示する ...

他の拡張機能やFirefoxの機能を破壊しないための基本テク - Sep 04, 2007

拡張機能勉強会の時に焚き付けられたText Shadowのコード(textshadow.js)を教材にして拡張機能開発のノウハウを解説していくシリーズ。

JavaScriptでは、普通に宣言した変数や関数はグローバルな物になる。

var name = 'hoge';
function getItem(aKey) {
  return array[aKey];
}

だから、Firefoxで最初から定義されてるグローバル変数や関数と同じ名前の変数や関数を定義してしまうと、エラーが起こるし、最悪の場合はFirefoxが動かなくなってしまう。

// ステータスバーだけ表示した
// 新規ウィンドウを開く関数「loadURI」を定義。
function loadURI(aURI) {
  window.open(aURI, 'mytarget', 'status');
}
// でも、これをやってしまうと、事あるごとに
// 新しいウィンドウが開かれるようになってしまう。
// なぜなら、Firefox内で既に「loadURI」という関数が
// 「ページを現在のタブで読み込む関数」として
// 定義されているから。

// 「ブラウザの一覧」のページを新しいウィンドウで開いて、
// そのウィンドウをgBrowserという変数に格納する。
gBrowser = window.open('http://piro.sakura.ne.jp/browsers-list.html');
// でも、これをやってしまうと、Firefoxがまともに
// 動かなくなる。なぜなら、Firefoxのブラウズ領域の
// 要素ノードへの参照としてgBrowserが定義されているから。

これを防ぐ手っ取り早い方法としてお勧めしたいのが、自分の拡張機能で使う変数や関数を、「自分の拡張機能専用のサービスオブジェクト」のプロパティやメソッドとして保持するようにするというやり方だ。

続きを表示する ...

第6回拡張機能勉強会 - Sep 03, 2007

目が覚めたら14時でした。

勉強会本体の感想。

Firemacs作者の山本さんの話を聞いてると、以前の自分を思い出した。XPCOMにどんな機能があるのか知らなかった頃に、知ってる範囲の知識でどうにかして解決しようとあれこれ工夫を試みていた。そういう「工夫」を思い付くかどうか、というのが、もしかしたらある種の「分れ道」なのかもしれないなと思った。

marさんによるXUL preLoaderの話。

  • XULオーバーレイでボタンを追加したいのに、その要素にidが指定されていない、という場合、JavaScriptとDOMを使ってXUL要素を生成して埋め込むという方法をとらざるを得ない。
  • オーバーレイで読み込むXUL文書を間に一つ増やして、その「間に挟まれた」XUL文書においてid属性をスクリプトで設定してオーバーレイを適用できるようにしてから、改めて、本来オーバーレイで読み込ませたかったXUL文書をdocument.loadOverlay()で動的に読み込む。……というのが、preLoaderの発想。

preLoaderのような発想が僕に無かったのは、loadOverlayというメソッドを知らなかった・存在を忘れてたからというのも大きいんだけど、それ以前に、他の拡張機能で同じ方法を使われて異なるIDを指定されてしまったらこのテクニックは破綻してしまう、ということに気づいていたからだ。僕は以前から、拡張機能を作るときは他の拡張機能となるべく衝突しないようにということに気を付けるようにしている(TBEの時はそれで散々叩かれたし)ので、preLoaderのテクニックはあまり推奨しづらい。

ところで、今ふと思ったんだけど。E4X使ったらJavaScriptの中に普通にXUL文書片を書けるから、preLoaderあんまりいらなくね?(ぉ

誕生日を祝ってもらえて、フォクすけは幸せ者ですね。僕もこれくらい愛されてみたいです。どうでもいいですが、ケーキの周りのフィルムについたクリームを舐め取っている様子をばっちり撮られてしまっていました。

Mozilla 24のための各プログラムの番宣ビデオ?の撮影があって、Shibuya.jsのビデオに僕まで出ることになってしまった、というかほとんど僕が喋ってた。幽霊部員なのに。あとで映像見てみても、ほんとキモイなーと思った。また叩かれるんだろうなあ。いやだなあ。

続きを表示する ...

ライフハックの最終回 - Aug 28, 2007

CNET JapanのFirefoxのコラムが更新されました。最終回です。

ライフハックのアレも最終回。当然、僕のキモ声動画も最終。今回はNewsFoxの使いかたです。でも僕はLDR使ってるんですよね……

フォクすけぬいぐるみ - Aug 11, 2007

フォクすけぬいぐるみ

写真とラフと(壁紙とかの)イラストを見比べて、二次元と三次元はやっぱ違うんだねえとか、立体化する人のセンスが問われるんだなあとか、そんなことを思う。昨今の美少女フィギュアの質の向上はそういう意味でとても凄まじい。

試作品に「顔が鈴カステラ」とあるけど、最終完成品の正面顔もけっこう鈴カステラな気が……

まあ総じてこれはこれでイイ。個人的には一番最後の写真が愁いを帯びてて一番好きです。

SOI Asia + Mozilla = A+zilla らしい - Aug 08, 2007

たけんさんがとりあげてるSOI A+zilla Add on Competition。プレゼン資料の一個目を見た人は気がついたかもだけど、これは僕が作った物だったりする。資料の内容自体はこないだのでぶこんの焼き直し(GomitaさんがSoftware Design誌の特集記事用に書かれたチュートリアルをベースにしたもの)で、150ページほどをImpressのプレゼンに手作業で変換するのに丸三日かかったと書いたのはこれのことなのでした。

いやね。こないだ慶應SFCまで行ってワークショップの先生のまねごとをやらせていただきまして。その時は事情を全然知らんかったのですが、こういうことだったんですね、と。

でぶこんの時はPC持ってきてる人が少なかったからチュートリアルをチュートリアルっぽく進めてよいものかどうか迷って悲惨な結果になったけど、この時のワークショップでは、それよりずっと少ない人数で全員それなりに基礎知識のある人ばかりだったんで、でぶこんの時にやりたかったことを実行することができたと思う。一人一人PCの画面を見て回って、うまくいってないようだったらアドバイスして、みたいな。

ただ、サンプルコードとか焦って用意したから全然テストしてなくて、それをダウンロードして使ってくれてた参加者の方が「うごかねえ!」とドツボにハマりまくっていたので、でぶこんの時とは別の意味で悲惨な結果になったと言えよう。最終的に予定の時間を大幅にオーバーしてたし……

ちなみに資料の英訳はボランティアかプロか知らないけど誰か他の人がやって下さいました。僕が訳したわけではないです。

ダイナミック疑似クラスに対応したよ(暫定) - Aug 07, 2007

テキストシャドウを:hover, :focus, :activeのダイナミック疑似クラスに対応させた……つもり。でも試してみたら:focusは意図通り動いてくれない。何でだろう。

userContent.css内でのtext-shadowの指定に対応したよ - Aug 06, 2007

テキストシャドウに、userContent.css内の指定を読む機能を加えた。圧倒的多数のサイトではtext-shadowはまだまだ使われていないけれども、ユーザースタイルシートを使えば色々遊べるよ、と。

といっても全サイトで同じ色の影しか指定できない、サイトごとにいちいち影の色を指定しなきゃいけない、なんてのじゃあとてもじゃないけど使ってらんないので、userContent.css内の指定のみ、色が無指定の時はCSS3の仕様を無視して自動的にそれっぽい影の色を適用するようにしてみた。例えばh1, h2, h3, h4, h5, h6 { text-shadow: 0.2em 0.2em 0.2em; }とかuserContent.cssに書いとけば、色んなサイトで影が付いて楽しくなるかもしれません。

ちなみに、XPCOMを使ってもuserChrome.cssやuserContent.cssから生成されたスタイルシートオブジェクトには絶対にアクセスできない。なので今回は、新規に空のドキュメントを生成し、そこにxml-stylesheet処理命令でuserContent.cssを読み込ませて、生成されたスタイルシートオブジェクトを参照する、という裏技を使っている。

Firefoxと少年ナイフ - Aug 06, 2007

Firefox Rock Festival '07のサイトに少年ナイフの名前が出ていて、一時期もてはやされたProxomitronが「少年ウェア」という謎ライセンスだったことを思い出してちょっと感慨深かった。ていうかProxomitron関係の話題で名前だけ知ってた。ギークにある意味馴染み深い名前だった「少年ナイフ」がギークに馴染み深いFirefoxとこうして同じ画面で名前を見ることになるとは、誰も想像だにしなかったに違いない。

公式サイト見てみたら、結成が1981年だそうで、僕の生まれる前からいる人達なんですね……

Page 48/248: « 44 45 46 47 48 49 50 51 52 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のコメント

最近のつぶやき