たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。
以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
拡張機能勉強会の時に焚き付けられた、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が定義されているから。
これを防ぐ手っ取り早い方法としてお勧めしたいのが、自分の拡張機能で使う変数や関数を、「自分の拡張機能専用のサービスオブジェクト」のプロパティやメソッドとして保持するようにするというやり方だ。
CNET JapanのFirefoxのコラムが更新されました。最終回です。
ライフハックのアレも最終回。当然、僕のキモ声動画も最終。今回はNewsFoxの使いかたです。でも僕はLDR使ってるんですよね……
写真とラフと(壁紙とかの)イラストを見比べて、二次元と三次元はやっぱ違うんだねえとか、立体化する人のセンスが問われるんだなあとか、そんなことを思う。昨今の美少女フィギュアの質の向上はそういう意味でとても凄まじい。
試作品に「顔が鈴カステラ」とあるけど、最終完成品の正面顔もけっこう鈴カステラな気が……
まあ総じてこれはこれでイイ。個人的には一番最後の写真が愁いを帯びてて一番好きです。
たけんさんがとりあげてる、SOI A+zilla Add on Competition。プレゼン資料の一個目を見た人は気がついたかもだけど、これは僕が作った物だったりする。資料の内容自体はこないだのでぶこんの焼き直し(GomitaさんがSoftware Design誌の特集記事用に書かれたチュートリアルをベースにしたもの)で、150ページほどをImpressのプレゼンに手作業で変換するのに丸三日かかったと書いたのはこれのことなのでした。
いやね。こないだ慶應SFCまで行ってワークショップの先生のまねごとをやらせていただきまして。その時は事情を全然知らんかったのですが、こういうことだったんですね、と。
でぶこんの時はPC持ってきてる人が少なかったからチュートリアルをチュートリアルっぽく進めてよいものかどうか迷って悲惨な結果になったけど、この時のワークショップでは、それよりずっと少ない人数で全員それなりに基礎知識のある人ばかりだったんで、でぶこんの時にやりたかったことを実行することができたと思う。一人一人PCの画面を見て回って、うまくいってないようだったらアドバイスして、みたいな。
ただ、サンプルコードとか焦って用意したから全然テストしてなくて、それをダウンロードして使ってくれてた参加者の方が「うごかねえ!」とドツボにハマりまくっていたので、でぶこんの時とは別の意味で悲惨な結果になったと言えよう。最終的に予定の時間を大幅にオーバーしてたし……
ちなみに資料の英訳はボランティアかプロか知らないけど誰か他の人がやって下さいました。僕が訳したわけではないです。
テキストシャドウを:hover, :focus, :activeのダイナミック疑似クラスに対応させた……つもり。でも試してみたら:focusは意図通り動いてくれない。何でだろう。
テキストシャドウに、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 Rock Festival '07のサイトに少年ナイフの名前が出ていて、一時期もてはやされたProxomitronが「少年ウェア」という謎ライセンスだったことを思い出してちょっと感慨深かった。ていうかProxomitron関係の話題で名前だけ知ってた。ギークにある意味馴染み深い名前だった「少年ナイフ」がギークに馴染み深いFirefoxとこうして同じ画面で名前を見ることになるとは、誰も想像だにしなかったに違いない。
公式サイト見てみたら、結成が1981年だそうで、僕の生まれる前からいる人達なんですね……
LL魂で高橋メソッド in XUL RETURNSの問題点や課題がいくつか浮き彫りになったので、それへの対応をちょっとばかしやってみた。
なるべく、自分が使ってもストレス無く使えるようにしたい。普通に文字入力してる感覚でサクサク作れるようなのが理想だなあ。
テキストシャドウを作って以降、何かの機会に見るページで不意に影付きテキストがあったりして、「ああ、今まで僕は『古いブラウザの人は最新のWeb技術の恩恵を受けられなくてかわいそうだなあ』とか思ってたけど、いつの間にか、Firefoxユーザの自分自身の方が『最新の技術の恩恵を受けられずにみすぼらしいページしか見れずにいるかわいそうな人』になっていたんだ……」と切なくなる。(いやまあtext-shadowそのものは10年近く前の仕様ですけどね……)
Bugzillaの方のコメントにも書かれてるけど、テキストシャドウを公開した後で、2年以上前に同じようなことをやってた人がいたことを知った。いやぁ、薄々「既出なんじゃね?」とは思ってはいたんですけどね。
一応、対応してる機能(CSSのセレクタをかなりまじめに解釈してる)や使い勝手(XBLを使ってるので影付きテキストのコピペで困らない、アドオンだから自動アップデートできる、など)の面でアドバンテージはあると思うけど……まあ追加のコメントにも書いたように、頑張ればそれもGreasemonkeyスクリプトで実現は可能そうではあるわけで、アドオン嫌いグリモン好きというタイプの人は頑張ってみるのもいいかもね。