たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。
以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
前のエントリではさらっと最終的な設計だけ示したけど、これは実は、この後の段階の作業で分かったことやなんかをフィードバックした結果たどり着いた、(少なくとも自分的には)一番洗練された状態だ。ここに至るまでにはだいぶ無駄に寄り道してた。
Split Browserの話の続き。間が空いてしまったけど。
そもそも何故「分割」なのか? いわゆるMDIアプリケーションのように普通にブラウザをたくさん置けないのか? という疑問は結構多くの人が思うものだと思う。
これはXULの仕様上の制約による部分が大きい。XULの場合は基本的に「内容が横に並ぶボックス(hbox:horizontal box)」と「内容が縦に並ぶボックス(vbox:vertical box)」という縦横の箱の集まりとしてGUIの構造を定義するようになっていて、要素の重ね合わせというのはイレギュラーな事態だからだ。
まあ、この制限を乗り越えてボックスを好きな位置に表示するテクニックというのはいくつかあって、タブのドラッグ&ドロップの時に出てくる矢印や、フィッシング詐欺警告とかのように、Firefox本体でもそんなテクニックが使われていたりはする。しかし現状では、タブの切り替えやbrowser要素等と重なったときに色々と予期しない結果になってしまうこともあって、あくまで補助的にしか使えないかなーというのが僕の印象です。Split Browserでもこのテクニックを使っている部分があるけど、これはまた後述します。
あと、さらに余談だけど、Firefox 3だか4だかではSVGのサポートが改善されてSVGのforeignObject要素の中にインラインフレームを置けるようになるそうで、これを使うともっと自由にブラウザを表示できるようになるのかもしれない。
Rabbitの須藤さんの協力により、このサイトで公開してる拡張機能をSubversionでバージョン管理できるようになりました。まるっとうぷったので今後は自宅でも会社でも旅行先でも支障なく開発が進むようになるかもしれませんし、そうでないかもしれません。
チェックアウトだけだったら誰でもできるんでしたっけ?
サーバの領域を貸していただいただけでなく、Subversionの使い方も教わりました。Windowsだとシェル拡張として機能するTortoiseSVNが色々便利っぽいです。Ubuntuだとさすがにシェル拡張というわけにはいかないようですが、RapidSVNを使えばGUIで操作できてイイ感じでした。Ubuntuならapt-get install rapidsvnで一発ですし。
RapidSVN用の日本語ロケールはパッケージに含まれてないみたいだけど、0.9.0用、0.9.3用、0.9.4用などが独自に作成されているのでこれを導入しておくとよい。rapidsvn.moを/usr/share/locale/ja/に置けば勝手に読み込んでくれる。
あとついでにXPIパッケージを作るのに使ってるバッチファイルのリポジトリなんかも作ってみました。おもっきしパスがうちの環境に依存してますが、まあ、もしよければ参考にしてください(誰ともなく)。ちなみにCygwinのchmodとzipコマンド、それからLZH形式のファイルの作成用にunlha.exeを使ってます。
前のエントリの続き。
「ブラウザを分割する」という機能を考えた時、構成要素として、一通りの機能を持ったブラウザのサブセット的なパーツは絶対に必要になる。
幸い、XULにはbrowser要素というインラインフレームの一種があって、このタグをいっこ書くだけで「戻る」「進む」などの機能を含めたWebブラウザの基本的な機能を持ったブラウザを簡単に作れるようになっている。
var browser = document.createElement('browser');
document.documentElement.appendChild(browser);
browser.goBack();
browser.loadURI('http://piro.sakura.ne.jp/');
ただ、実際に使うにあたっては、そういった機能を呼び出すためのツールバーボタンやメニューなどは自前でちまちま用意しないといけない。
コンテントホルダーでは、メインのブラウズ領域とコンテントホルダーの提供するブラウザとの間の仕切り(splitter要素)そのものをツールバー代わりにして、そこにボタンを配置してみた。ただ、このやり方にはいくつか問題がある。
Split Browserを作るに至った経緯とかその辺の話。拡張機能勉強会なんてのも開催されるので、まあ、もしかしたら誰かの何かの役に立つかもなあ、と。のべ時間にして24時間くらいでできたんで、割と細かいところまで覚えてるからというのも理由の一つではあるんだけど。
また新しい拡張機能作ってみました。Split Browser。
スクリーンショット見ると分かるとおり、ブラウザウィンドウを分割するという物です。コンテントホルダーをFirefox 2向けに更新しようと思って手を入れ始めたら、いつのまにかこんなんなっちゃいました。互換性はないし拡張機能のIDも変わっちゃってますが、一応コンテントホルダーの後継です。
特徴として、分割の方向や個数を好きなように変えられる……と言うよりは、好きな方向に好きなだけ分割できるように設計してあります。メモリと画面の広さが許す限り、いくらでも無限に分割可能です。心おきなく割りまくってください。
昨日書いたこと(ツリーを普通に二つに分ける)をそのままコードに反映してみた。最強に眠まった状態でコードいじってたんで、余計なミスしてまた時間食ってしまった。
基本的にやっつけ仕事なのは変わらないけど、トリッキーでないごくごくシンプルな構造になったので、ドラッグ&ドロップとかの場面でFirefoxの元々のコードがそのまま動くようになって、だいぶまともになったと思う。
まあ元から極めてやっつけ仕事なシロモノだったんですが、Fx 2でちゃんとテストしてなかったんで改めて試してみたら、下のペインでコンテキストメニューが出なかったりドラッグ&ドロップがバグバグだったりで、これはちょっとやばいなと思って。
そんなわけで一晩頑張ってみたけどドラッグ&ドロップの問題はどうにもならなかった。バインディングで内部的に二つのツリーがあるのを、一つのツリーであるかのように既存のメソッドに対して見せかけているという、無駄にトリッキーな実装なのが根本的な原因。いやだってフォルダの展開とか全部実装し直すなんてやってらんないし。でもこうなったら、普通にツリー二つに分けた方が早いかもわからんね。
Web Trend Map 2007というものがあるそうで。なんでもインターネット上で話題になった企業やブランドの関係性を図にした物なのだとか。ベースになってるのは東京の地下鉄マップなんですが。
で、見てみるとFirefoxが永田町駅のとこにあるんですけど、Mozilla Japanの事務所って永田町駅から有楽町線で一駅北の麹町駅すぐそばにあるんですよね。なんというか、もうちょっとだったのにねえ、と。
あとそれだけじゃなくて、Googleが渋谷駅になってるのも、日本法人の所在地が渋谷だからだったりするんでしょうか? でもMicrosoftは新宿にあるのにこの図だと上野になってんすよね。これはアレですかね。あの周辺の電車のグダグダっぷりを反映してるんですかね。
Operaが載ってないのはなんだかなーって感じ。ここに表れてないところでOperaは相当躍進してるのに、それを見落としてるってのはなあ、と。いやもしかしたら高機能携帯の普及率が異様に高くてDSもWiiも売れまくってる日本ローカルの話なのかもしれませんけど。よう知らんからこれ以上は言わんとこ……
前のエントリの続き。
Ez SidebarのリリースをもってFirebirdに乗り換えたのが2003年7月のことなんだけど、これから後はもうあんまり書くことが無かったりする。特に波乱も無かったし。
とりあえず時間軸だけ追っかけて見てみると、Netscapeの凋落とは対照的に、2004年11月にはFirefox 1.0がリリース、翌2005年にFirefox 1.5、2006年にFirefox 2、という感じで、メインストリームが「Firefox」になってからはMozillaも順調に発展してきてて、かつての下積み時代を思い出すと感慨深い物があります。