Home > Latest topics

Latest topics 近況報告

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

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

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

Page 21/248: « 17 18 19 20 21 22 23 24 25 »

Weave - Jul 17, 2009

WeaveはFirefox 3.0じゃ動かないからってことでわりかしスルーしてたけど、Firefox 3.5正式版が公開されて自宅のWindows Vistaと会社のWindows Vistaのメイン環境が両方ともFirefox 3.5になったんだからってことで、改めて入れ直してみた。

おー、確かに同期されてる。

  • 家でしか見てないはずのサイトがスマートロケーションバーの検索に引っかかるようになる。
  • 同じく、家マシンのFirefoxで開いてたタブを、会社マシンでメニューから開くことができる。開いたタブはセッションヒストリまで含めて複製されている。→ツリー型タブのツリー構造も含めて複製できるように改良してみたい。
  • 「よく見るページ」とかのクエリ項目が重複した状態になるのはちょっといただけない……片方削除すればいいんだけどさ。

フォームの入力履歴やパスワードマネージャの内容も同期されてるはずだけど、実感できるケースにまだ遭遇してない。

デフォルトではMozillaが提供してるサーバに情報を保存するようになってるけど、サーバ側のソースセットアップ手順も公開されてるので、心配なら自分でサーバ立てることもできるようだ。機械があればチャレンジしてみたい。

nsIZipWriterを使ってFirefoxでZIPアーカイブを作る - Jul 16, 2009

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とマルチプルタブハンドラおよびその他のアドオン、テーマとの競合の問題 - Jul 16, 2009

マルチプルタブハンドラが入ってると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さんに連絡はしておいた。後はどうなるかシラネ!

タブカタログを更新する気がしない - Jul 15, 2009

理由はいくつかある。

  • Ctrl-Tabの方が人気らしい。
    • 向こうの方がデザインかっこいいし。
      • サムネイル上でスクロールできるとか、サムネイル上で右クリックしたらタブの上での物と同じコンテキストメニューが出るとか、そういう機能上の利点では選ばれないっぽい。見た目重要。
    • ていうかCtrl-TabはFirefox.nextに取り込まれる予定だし(見送られたけど、ちょっと前にはFirefox 3.1に入るかもという話もあった)。本体と同じ機能をわざわざサードパーティで提供する意味なくね?
  • 自分自身がもう使ってない。
    • 使ってない物をメンテナンスするのはかなりストレスが溜まる。

やるんならCtrl-Tabの方にコミットする方が現実的だと思う。使う人もとっとと乗り換えといた方がいいんじゃないの? それか、どうしても必要なのであれば、Ctrl-Tabに対してさらに機能を拡張してタブカタログ相当の機能を加えるという方向もありかもしれない。

Firefox 3.5 + Glasser + Aeroの環境でやっておきたい設定 - Jul 14, 2009

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使うといいよ!

アドオンのレビューのガイドライン - Jul 10, 2009

レビューガイドライン :: Firefox Add-onsが日本語に訳されてなかったのでがっくり来て、なんとか読み解いてみた。

最後まで読んでみて思ったこと:誰もガイドライン守ってなくね?

レビューのガイドライン

アドオンのレビューは、アドオンサイト(AMO)のユーザがインストールして使っているアドオンについて、意見を共有するための手段です。編集者(エディタ)は、このガイドラインに従っていないレビューを拒否したり削除したりする権限を持っています。

良いレビューを書くためのいくつかのtips

するべき事:

  • そのアドオンであなたがどのような体験をしたかを、友達に語るように書きましょう。
  • 簡潔で分かりやすいレビューを書くよう心がけましょう。
  • 明瞭且つ有用な詳細を書きましょう。例:
    • そのアドオンはあなたが期待したとおりに動きましたか?
    • あなたが好きな、あるいは嫌いな機能は何ですか?
    • 便利でしたか?
    • 簡単に使えましたか?
    • そのアドオンを使い続けたいと思いましたか?
  • 恥ずかしいミスタイプや文法のミスを公にしてしまわないように、レビューを送信する前にきちんと時間を取って読み返しましょう。
  • レビューは長期間にわたってサイト上に掲載され続ける可能性があります。時事的な話題への言及は避けましょう。

してはいけない事:

  • 「すごい!」「素晴らしい!」「使えない」などのような、説明がなされていない短いレビューは投稿しないで下さい。
  • バグや障害のレポートをレビューに含めないで下さい。代わりに、それぞれのアドオンのサポート用連絡先を使って下さい。
  • 個人的に使ってもいないアドオンのレビューを書かないで下さい。
  • 罵倒、性的な言葉、人を不快にさせるような言葉を使わないで下さい。
  • HTML、悪意のあるソフトウェアへのリンク、ソースコードやコード片をレビューに含めないで下さい。レビューには文章だけを書いて下さい。
  • 嘘、アドオンの作者への罵倒、個人への侮辱を書かないで下さい。
  • 特定のFirefoxのバージョンや他のアプリケーションへの対応を要求するための場としてレビューを使用しないで下さい。
  • あなたのメールアドレス、電話番号、あるいはその他の個人情報を書かないで下さい。
  • あなた自身やあなたが所属する組織が提供しているアドオンにレビューを書かないで下さい。

アドオンの評価のガイドライン

アドオンの評価は、公正で且つ、総合的な品質と便利さを示すための指標を示す物であるべきです。そのアドオンが単に好きだから5つ星を付けたり、単に嫌いだから星を1つだけ付けたり、といった評価をしないで下さい。あらゆるレビューにおいて、一貫した評価付けは重要な点です。

  • 5つ星:非常に素晴らしい場合。説明されている特徴がすべて動くだけにとどまらず、他の多くのアドオンに比べて際立って便利である。このアドオンは自分にとって常用に足るもので、他の人にも強くお勧めできる。
  • 4つ星:良くできている場合。特別に凄いわけではないけれども。便利で、簡単に使うことができる。このアドオンはお勧めできるが、人によってはよりお勧めなアドオンがあるかもしれない。
  • 3つ星:可もなく不可も無しという場合。不足している機能があったり、設計に問題があったりするかもしれない。既知の問題はそのアドオンを使わないことを強く勧めるほどの重大なものではなく、それでもなお便利に使えるという人もいるかもしれない。その機能を必要としていて、試してみることを厭わない人には、お勧めできる。
  • 2つ星:あまりできが良くない場合。そのアドオンは完成度が低いか、使いにくいか、または、説明でうたわれていることを実際にはできない。それでも、ごく少数の人達にとってはそれでも使う価値がある場合には、お勧めすることができる。
  • 1つ星:駄目な場合。そのアドオンは正常に動作しないか、全く役に立たない。使ってみる価値があるような重要な理由は無いと考えており、完全に避けることをお勧めする。

完全な、あるいは非常に詳細なレビューを書くことがどうしてもできないのでなければ、何故その評価を下したのかを示して下さい。何も説明が付いていないと、評価の星は何の意味も持ちません。

レビューについてのよくある質問

問題のあるレビューはどうやって報告すればよいですか?
疑わしいレビューについては、「このレビューを報告」をクリックして、フラグを立てて報告して下さい。報告の内容は編集のためにサイトに送られます。エディタはそのレビューを削除するか、それとも元に(サイト上に表示される状態へ)戻すかを判断するために、このレビューガイドラインを用いるでしょう。
私はアドオンの作者ですが、レビューに返信してもよいですか?
はい。アドオンの作者は1つのレビューにつき1つの返信を書くことができます。それ以上の議論やフォローアップは、サポートフォーラムや議論のためのグループに移動するべきです。
私はアドオンの作者ですが、好ましくないレビューや評価を削除してもよいですか?
一般的には、駄目です。しかし、上述したガイドラインに則っていないレビューに遭遇した場合は、「このレビューを報告」をクリックして、エディタに報告することはできます。もしそのレビューが、あなたのアドオンの新しいバージョンですでに解消された問題についての苦情を含んでいる場合、私たちはそのレビューを削除するかもしれません。詳細な説明込みでの削除要求は amo-editors@mozilla.org へ送って下さい。

タブをグループ化するためのダミーのタブ(How to open a custom dummy tab to put tabs in a group?) - Jul 10, 2009

Q

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?

ブックマークメニューから複数のページをタブで開く時に、それらをグループ化するための物として、ダミーのタブがサポートされましたよね。これは、私がこのアドオンを使い始める前に求めていた機能にとても近いです。その機能とは、タブバーのコンテキストメニューから任意にこのようなダミーのタブを開き、自由に名前を付ける事ができるというものです。このような機能を実装してくれませんか?

A

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では定義されてて他のロケールで定義されてないエンティティ参照の有無を調べるスクリプトを書いてみた - Jul 09, 2009

機能を追加した時にen-USに追加したエンティティを他のロケールに追加し忘れて「○○語の環境で設定画面が動かねえぞゴラァ!!!」という風なバグ報告を貰うことがあまりに多いので(そして自分で気づけないので)、そういうミスを事前に防ぐためのスクリプトを書いてみた。

find_missing_entries_from_locales.js

コンテキストメニュー拡張などの、任意のスクリプトをXPConnect特権付きで実行できるツールでこのスクリプトを実行すると、以下のように動作する。はず。

  1. フォルダ選択のダイアログが開かれる。
  2. localeフォルダ、またはその上位の任意のフォルダを選択する。
  3. その中にある*.dtdなファイルがすべて読み込まれる。
  4. en-USロケールでは定義されていて他のロケールで定義されていない、というエンティティの一覧が表示される。

ブックマークを常に新しいタブで開く機能(A new option to open any bookmark in new tab is required.) - Jul 07, 2009

Q

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にはその設定がありますが、あなたのアドオン(ツリー型タブ)にはありません。そういう設定ができるようになりませんか?

A

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.

ツリーと関係ない機能をツリー型タブに加える予定はありません。その代わりに、ツリー型タブは他の小さなアドオンと協調して動作するように作られていますので、他のアドオンと組み合わせて使ってください。

ちなみに、ブックマークを新しいタブで開くはそのためのアドオンです。

この要望は非常に多い。もはや定型文。

ウィンドウにフォーカスするとタブの色が変わる(Colors of tabs is changed when the window is focused/unfocused!) - Jul 07, 2009

Q

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のウィンドウにフォーカスすると、タブが暗いグレーで表示されるようになり、他のタブの色も暗くなります。

A

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だと確かに違和感あるか……

Page 21/248: « 17 18 19 20 21 22 23 24 25 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のコメント

最近のつぶやき