たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。
以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
WeaveはFirefox 3.0じゃ動かないからってことでわりかしスルーしてたけど、Firefox 3.5正式版が公開されて自宅のWindows Vistaと会社のWindows Vistaのメイン環境が両方ともFirefox 3.5になったんだからってことで、改めて入れ直してみた。
おー、確かに同期されてる。
フォームの入力履歴やパスワードマネージャの内容も同期されてるはずだけど、実感できるケースにまだ遭遇してない。
デフォルトではMozillaが提供してるサーバに情報を保存するようになってるけど、サーバ側のソースとセットアップ手順も公開されてるので、心配なら自分でサーバ立てることもできるようだ。機械があればチャレンジしてみたい。
nsIZipWriterを使えばアドオンでZIPアーカイブを作れるということを割と最近になってやっと知ったので、アドオンのXPIへのパッケージングまで全部アドオンでできるやん!と思ったんだけど、使い方がよく分からんかったので、実験と練習もかねてコンテキストメニュー拡張の短縮構文で使える汎用的な処理を書いてみた。
要点だけ抜き出すとこんな感じ。
// aSources = nsIFileの配列
// aZipFile = 作るZIPアーカイブのnsIFile
// aCompressionLevel = 圧縮率(0で無圧縮、9で最大圧縮、デフォルトは6)
zipFilesAs : function(aSources, aZipFile, aCompressionLevel)
{
// Firefox 3以降じゃないと動かないよ!
if (!('nsIZipWriter' in Components.interfaces))
throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
if (!aSources || !aSources.length || !aZipFile) return;
if (aZipFile.exists() && !this.isZipFile(aZipFile))
aZipFile.remove(true);
const PR_RDWR = 0x04;
const PR_CREATE_FILE = 0x08;
const PR_APPEND = 0x10;
const PR_TRUNCATE = 0x20;
var writer = Components
.classes['@mozilla.org/zipwriter;1']
.createInstance(Components.interfaces.nsIZipWriter);
if (aCompressionLevel === void(0))
aCompressionLevel = writer.COMPRESSION_DEFAULT;
// 新規ZIPアーカイブと既存のZIPアーカイブではフラグが違う
var flags = aZipFile.exists() ?
PR_RDWR | PR_APPEND :
PR_RDWR | PR_CREATE_FILE | PR_TRUNCATE ;
writer.open(aZipFile, flags);
aSources.forEach(function(aFile) {
var entry = this+aFile.leafName;
// フォルダに対応するエントリの有無を調べる時は、
// エントリ名の末尾に「/」が必要
var entryForCheck = aFile.isDirectory() ? entry+'/' : entry ;
// すでにあるエントリで、フォルダではない物は削除。
// (フォルダを削除しないのは、内容をマージするため)
if (!aFile.isDirectory() && writer.hasEntry(entryForCheck))
writer.removeEntry(entry, false);
// 新しいエントリを追加
if (!writer.hasEntry(entryForCheck))
writer.addEntryFile(entry, aCompressionLevel, aFile, false);
if (aFile.isDirectory()) {
var files = aFile.directoryEntries;
while (files.hasMoreElements())
{
arguments.callee.call(
entry+'/',
files.getNext().QueryInterface(Components.interfaces.nsILocalFile)
);
}
}
}, '');
writer.close();
},
// ファイルの内容を実際にZIPアーカイブとして読んでみて、ZIPアーカイブかどうか調べる
isZipFile : function(aFile)
{
var isZip = false;
if (!aFile || !aFile.exists()) return isZip;
var reader = Components
.classes['@mozilla.org/libjar/zip-reader;1']
.createInstance(Components.interfaces.nsIZipReader);
try {
reader.open(aFile);
try {
var entries = reader.findEntries('*');
while (entries.hasMore())
{
entries.getNext();
isZip = true;
break;
}
if (!isZip) {
entries = reader.findEntries('*/');
while (entries.hasMore())
{
entries.getNext();
isZip = true;
break;
}
}
}
catch(e) {
}
reader.close();
}
catch(e) {
}
return isZip;
},
マルチプルタブハンドラが入ってるとReload Tab On Double-Clickが機能しなくなるという問題について調べてみた。
調べた限りでは、この問題はマルチプルタブハンドラに限らず、タブのバインディングがデフォルトの物から変更されていると起こりうる物のようだ。マルチプルタブハンドラと同じバインディングを使うツリー型タブも情報化タブもそうだし、バインディングを使ってスライスされた画像を貼り付けているサードパーティ製テーマでも起こりうる。
Reload Tab On Double-Clickの「ダブルクリックがタブの中で行われたかどうか」の判定箇所で、「イベントが発行された元々のノードまたはその親がタブかどうか」しか確認されていないためにこの問題が起こっているので、ここをいじって「イベントが発行された元々のノードの祖先にタブがあるかどうか」を見るようにすれば、問題は解決される。例えば以下のような感じ。
e.originalTarget.ownerDocument.evaluate(
'ancestor-or-self::*[local-name()="tab"]',
e.originalTarget,
null,
XPathResult.BOOLEAN_TYPE,
null
).booleanValue
ということで作者のkyoさんに連絡はしておいた。後はどうなるかシラネ!
理由はいくつかある。
やるんならCtrl-Tabの方にコミットする方が現実的だと思う。使う人もとっとと乗り換えといた方がいいんじゃないの? それか、どうしても必要なのであれば、Ctrl-Tabに対してさらに機能を拡張してタブカタログ相当の機能を加えるという方向もありかもしれない。
Glasser 1.1.1はFirefox 3.1ベータ版までの対応となってるけど、Firefox 3.5正式版でも正常に動く。ただし、ロケーションバー左端の丸い部分が変なことになる。以下は、それをuserChrome.cssでそれっぽく整形するルール。
#urlbar {
-moz-border-radius: 11px 0 0 11px !important;
}
#urlbar > hbox {
margin-left: 5px !important;
}
#identity-box {
margin-left: -7px !important;
}
みんなもGlasser使うといいよ!
レビューガイドライン :: Firefox Add-onsが日本語に訳されてなかったのでがっくり来て、なんとか読み解いてみた。
最後まで読んでみて思ったこと:誰もガイドライン守ってなくね?
アドオンのレビューは、アドオンサイト(AMO)のユーザがインストールして使っているアドオンについて、意見を共有するための手段です。編集者(エディタ)は、このガイドラインに従っていないレビューを拒否したり削除したりする権限を持っています。
アドオンの評価は、公正で且つ、総合的な品質と便利さを示すための指標を示す物であるべきです。そのアドオンが単に好きだから5つ星を付けたり、単に嫌いだから星を1つだけ付けたり、といった評価をしないで下さい。あらゆるレビューにおいて、一貫した評価付けは重要な点です。
完全な、あるいは非常に詳細なレビューを書くことがどうしてもできないのでなければ、何故その評価を下したのかを示して下さい。何も説明が付いていないと、評価の星は何の意味も持ちません。
I noticed that you have added support for dummy tabs to group tabs when opening multiple links from the bookmarks menu. This is very close to a feature that I've wanted since I began using this extension a few months ago: to have general dummy tabs available so that I can create and name a dummy tab from the tab bar context menu.
Is it possible to implement this?
ブックマークメニューから複数のページをタブで開く時に、それらをグループ化するための物として、ダミーのタブがサポートされましたよね。これは、私がこのアドオンを使い始める前に求めていた機能にとても近いです。その機能とは、タブバーのコンテキストメニューから任意にこのようなダミーのタブを開き、自由に名前を付ける事ができるというものです。このような機能を実装してくれませんか?
On Tree Style Tab 0.7.2009071001, I made dummy tabs customizable. To change the name of an existing dummy tab, switch to the tab and click the label in the content area (or double-click on any position in the content area). It possibly helps you that you create a bookmark for "about:treestyletab-group?(new group)" and put it in the bookmark toolbar.
ツリー型タブ0.7.2009071001において、ダミーのタブをカスタマイズできるようにしました。既にあるダミーのタブの名前を変えるには、そのタブに切り替えて、内容領域のラベル文字列部分をクリックしてください(または、内容領域のどこか適当な所でダブルクリックしてください)。「about:treestyletab-group?(new group)」というURIのブックマークを作成してブックマークツールバーに置いておくと、あなたの助けになるのではないでしょうか。
ツリー絡みの機能ではないので、「ダミーのタブを開くための機能」は付けない予定。なのでブックマーク等で代用してもらう必要がある。
実装の仕方は、「about:treestyletab-group」というabout: URLを使えるようにするためのコードと、表示する内容の実体と、スタイル定義を見ると分かると思う。XHTMLの名前空間のlink要素を埋め込んでfaviconを変えるとかの姑息なテクニックを使ってます。Firefox 3.5でサポートされた-moz-transformは今回初めて使った。
機能を追加した時にen-USに追加したエンティティを他のロケールに追加し忘れて「○○語の環境で設定画面が動かねえぞゴラァ!!!」という風なバグ報告を貰うことがあまりに多いので(そして自分で気づけないので)、そういうミスを事前に防ぐためのスクリプトを書いてみた。
find_missing_entries_from_locales.js
コンテキストメニュー拡張などの、任意のスクリプトをXPConnect特権付きで実行できるツールでこのスクリプトを実行すると、以下のように動作する。はず。
I can't tune firefox for force opening links from bookmarks with left-click always in new tab. Tab Mix Plus have this option in Settings, but your extension didn't have. Can I tune your extension to enable opening new tab from bookmarks via left-click?
Firefoxでブックマークを左クリックした時に常に新しいタブで開くようにしたいです。Tab Mix Plusにはその設定がありますが、あなたのアドオン(ツリー型タブ)にはありません。そういう設定ができるようになりませんか?
Sorry, I have no plan to add features not related to "tree" to Tree Style Tab... Instead, it is designed to work with other tiny addons together, so I hope you use TST with other addons.
BTW, Open Bookmark in New Tab does it.
ツリーと関係ない機能をツリー型タブに加える予定はありません。その代わりに、ツリー型タブは他の小さなアドオンと協調して動作するように作られていますので、他のアドオンと組み合わせて使ってください。
ちなみに、ブックマークを新しいタブで開くはそのためのアドオンです。
この要望は非常に多い。もはや定型文。
The minor bug is the changing of the background color of the tree bar. In the screen shot included you can see that it is light grey. But when I change focus to Firefox the tab becomes dark grey and all the tabs darken too.
(他のバグ報告と併せて)もう1つ些細な問題として、ツリー表示されたタブバーの色が上げられます。このスクリーンショットではタブは明るいグレーで表示されています。しかしFirefoxのウィンドウにフォーカスすると、タブが暗いグレーで表示されるようになり、他のタブの色も暗くなります。
Do you talk about the changing of tab colors caused by focusing/unfocusing of Firefox window? Then, it is not a bug, but a design. The "Metal" theme (one of built-in theme of TST) is designed for Mac OS X. In the platform, any window which have no focus is shown with paled colors.
Firefoxのウィンドウにフォーカスしたりフォーカスを外したりした時の色の変化についての指摘であれば、それはバグではなく仕様です。ツリー型タブの組み込みテーマの1つである「Metal」はMac OS X用にデザインされており、Mac OS Xではフォーカスを持たないすべてのウィンドウは薄い色で描画されます。(つまり、その挙動に併せてタブの色が変わるというわけ。)
WindowsやLinuxだと確かに違和感あるか……