2007/12/30

.xulファイルをFirefoxで開く

HTML Applicationは、拡張子を.htaに変えるだけでいいのに、XUL Applicationは-chrome付けてFirefox起動したりでメンドウだ。というのを見かけた(Firefoxの-chromeオプション/Firefox・XUL使いへの道へ - A Better Project@はてなダイアリー)ので、Windowsで.xulを叩くとFirefoxを-chrome付きで呼び出すレジストリ更新ファイルを作ってみました。

既に何かしらのアプリで.xulファイルへの関連付けをしていると上書きしてしまうので要注意です。

Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.xul] "PerceivedType"="application" @="xulfile" "Content Type"="application/vnd.mozilla.xul+xml" [HKEY_CLASSES_ROOT\xulfile] [HKEY_CLASSES_ROOT\xulfile\shell] [HKEY_CLASSES_ROOT\xulfile\shell\open] @="open(&O)" [HKEY_CLASSES_ROOT\xulfile\shell\open\command] @="\"C:\\Program Files\\Mozilla Firefox\\firefox.exe\" -chrome \"%1\""
ローカルファイルだと、file:///形式でURLを指定しないと起動できない。これはIEが拡張子をHTAにするだけで良いのに比べて、遥かに面倒。

という記述があったので、パスをfile://形式のURIに変換するJScriptを作ってそっち経由で呼び出そうとしたのですが、JScript経由でFirefoxを呼び出す関連付けの方に数時間悩みました。しかも解決直後になにげなくJScript経由せずに"C:\..."形式で渡したら問題なく起動する始末。よく見たら1年以上前のエントリーなのでFirefoxのバージョンアップで解決したんでしょうか。

それ以前の問題として、自宅の環境では-chromeオプションを付けているのに本体が起動してしまいます。-safe-mode付けると本体は起動しなくなるので、なんか拡張が悪さしているのかもしれませんが、こちらを調べる方がメンドウ過ぎてやる気がしませんね。拡張を順に一つずつ切って起動するテストツールとかの方が実用性ありそうです。

2007/12/25

Shared stuffでXULがshareできない

掲題。ちょっと不便。画像とか直接share出来たように記憶しています。

2007/12/24

最近つけたタグ

これ(最近貼られたラベルのリスト)をBloggerのウィジェットとして追加してみました。(多分トップページの)エントリに付けられたタグがクラウドっぽく表示されます。自宅環境ではFx2とIE7でちゃんと表示されました。

  1. HTML/Scriptウィジェットを追加
  2. テンプレートを修正

<div class='widget-content'></div>の部分をこちらのコードで置き換えています。

スクリプト単体では割とすぐ動いたのですが、アップしてみると色々問題が出て、むりくり都合つけたため最後のほうはグダグダに。ラベルをJSONフィードで読み直しているので1テンポ遅れて表示されます。本当はロード中のアニメーションとかも付けたい所。

ウィジェット追加ボタンを作りたかったのですが、あれは配布フォーム作るのがメンドウです。コードにウィジェットとして問題点があると黙殺されるだけなのでどこを直せばいいのか探すのが大変過ぎます。

2007/12/11

「Windows版Google Gearsの…」の、より簡単な設定

ちょっと前に、こんなの書きました(Windows版Google Gearsの変則使用)が、こちら(全プロファイル共通の拡張機能をインストールする方法 - hogehoge)を利用すると、全然簡単でした。

要するに、Firefox本体の"extensions"フォルダに突っ込んだアドオンは、その本体を呼び出す全プロフィールの"extensions"に勝手にインストールされるそうです。

コレで行くと例えば、持ち運び用Firefox本体=D:\opt\Firefox\だとすると

  1. D:\opt\Firefox\extensionsの下に"{000a9d1c-beef-4f90-9363-039d445309b8}"というフォルダを作る
  2. C:\Program Files\Google\Google Gears\Firefox\の中身を1のフォルダに突っ込む
  3. 適当なプロフィールを起動
これだけ。

Google Gearsの場合、extensions以下にはデータを残さないので、既に利用中のプロフィールからコピーしても別のプロフィールでは綺麗に初期化されています。ただ、extensionsフォルダ以下にデータを保存するようなアドオンの場合、プロフィール間のコピー(ハンドルから実名プロフ等)は気をつけたほうがいいかもしれません。

2007/12/08

Google Bookmarks、Shared stuff及びNotebookの連携

Shared stuffの幾つかのstuffにfaviconの様なアイコンがあるのでよくよく見てみると、Bookmarksで使われている星アイコンでした。faviconが付くわけではなく、BookmarksとShared stuffで同じURLをブックマークするとこの星アイコンが現れるみたいです。

bookmarkしてからshare
Shared stuffのタグ入力欄にBookmarksで入力したタグが予め設定される
shareしてからbookmark
Bookmarksのタグ入力欄は空
Bookmarksから"remove"(星アイコンクリック)
Shared stuffからも消える
Shared stuffから"Remove this item"
Bookmarksには残る
後からタグを変更する
先にbookmark/shareした方のタグが上書きされる

Google Toolbar等のボタン一発でブックマーク出来る機能を使うとタグ無しでbookmarkされるため、Shared stuffのタグが消されてしまいます。

また、iGoogleの「ブックマーク」ガジェットは"homepage"(日本語版だと「ホームページ」)タグを付けたBookmarksを表示しますが、

  1. "homepage"以外のタグを付けてbookmark
  2. Shared stuffから同じURLに"homepage"タグを付ける

とBookmarks側が変なことになりました。この状態ではiGoogleのブックマークガジェットに表示されません。

さらに

  1. iGoogleから同じURLをブックマークに入れてみる

とShared stuffから消えました

さらに

  1. Shared stuffから「ホームページ」タグを付けてみる

とBookmarks(とiGoogle)から消えました

"homepage"周りの挙動はちょっと不可解です。

また、Notebookに続きBookmarksの連携先第2弾かと思えば、三者連携の様でNotebookの"labels"にShared stuffのタグが表示されています。Shared stuffには付けていてBookmarksにはつけていないタグがあるので間違いかと思います。ただし、Notebookの"Undefined bookmarks"はあくまでBookmarksの様でundefinedなshared stuffは表示されません。

まだ連携し始めで色々不備もあるでしょうが、Googleのサービス同士横のつながりが増えていく様子に期待が高まります。

2007/12/04

BloggerのWidgetタイトルにリンク

このブログの左下に入れていたdel.icio.usのフィードウィジェットをShared stuffに変えてみました。

変えたのはいいのですが、各sutffへのリンクだけでShared stuffの個人用ページには飛べません。そこで、試しにタイトルにリンク(<a>タグ)入れてみたら、できるんですねコレ。URLを入れるには100文字制限がキツイですが。

実は同じことがShared stuffのprofileページのlink(Add a linkボタン)やtext(About yourself欄)に出来たらAnalyticsのurchinTrackerいれて追跡できるなぁ、と思ったんですが、そっちはダメでした。

将来的にProfileがいろんなページから参照できるようになったら(なったらの話)、どっから来てどっちに行ったか調べる手段が提供されるんでしょうか。

2007/12/02

config.trim_on_minimizeが効かない

Firefoxの最小化時に物理メモリを強制スワップさせる(らしい)設定として一時物議を醸していた"config.trim_on_minimize"ですが、いつの間にか自宅の環境で効果がなくなっていました。

最初に設定した頃から今までにあちこち弄り過ぎている上に、Firefoxのバージョンもだいぶ変わっていますので原因はわかりません。

"config.trim_on_minimize"はスワップさせるだけなので、一旦リセットしたいなら、こちらの方がまだ有用かと思い、原因追求はしておりません。Firefoxの再起動ショートカットキー

全然関係ないのですが、Firefoxのスペル(大文字/小文字)と推奨される短縮形なんてあったんですね。略称は"ff"の方がよく見ますが、"Fx"/"fx"が推奨されているようです。Firefox のスペルは? 短縮形は?: Firefox Help: Firefox FAQ

2007/11/28

Windows版Google Gearsの変則使用

Windows版のGoogle GearsはMac版やLinux版とインストール方法が異なります。ダウンロードしてくるファイル自体が、例えばMac版などでは"gears-osx-opt.xpi"など、XPIファイルなのに対して、Windows版は.exeのインストーラです。これはIEでも使えるようにするための措置だと思うのですが、Profileを持ち歩くためにこんなこと(Firefoxのポータブル化、と複数Profileの多重起動)をしていると、よそのPCではGoogle Gearsが使えなくなります。

これはインストーラーによって設定されたGears本体がProfileフォルダではなく"Program Files"フォルダなどの下に入れられるためです。下記はインストーラ使用のProfileフォルダに置いてあった"extensions.ini"の抜粋です。

Extension11=C:\Program Files\Google\Google Gears\Firefox

当然Profileだけ持ち歩いても、参照先のGears本体はよそのPCのProguram Filesには入っていませんので使えません。で、どうするかというと、

  1. Windows版のXPIを作る
  2. 一度アンインストールする
  3. XPIでインストールしてみる
  4. 確認

という手順を踏んでみました。結論から言うと入れられたっぽいのですが、作業の途中途中で挙動は激しく不審です。

Windows版のXPIを作る
既にインストールしてある場合、上記のextensions.iniに書いてある様なパスに本体があるはずです。このFirefoxフォルダ以下の構成は典型的なアドオンのフォルダ構成になっているので、そのままZIPにして下さい。注意点はinstall.rdfがZIP内のトップフォルダに来るようにして下さい。フォルダごと圧縮すると同名のフォルダを中に作ってしまう設定の圧縮ソフトがありますが、中にフォルダを作ってしまうと、アドオンマネージャがinstall.rdfを見つけられない様です。圧縮したZIPファイルを"gears-winnt-opt.xpi"などのファイル名に変えておきます。多分問題なのは拡張子だけでファイル名は適当で構わないと思います。
一度アンインストールする
インストーラから入れたGoogle Gearsはアドオンマネージャからは消せません。Windowsの「プログラムの追加と削除」からアンインストールして下さい。当然他のProfileやIEでも使えなくなります。
XPIでインストールしてみる
アドオンマネージャにXPIファイルをドロップします。私の場合、一度ドロップしたらインストールが始まるものの、プログレスバーが途中で消え、Firefoxを再起動してもインストールされていませんでした。再度ドロップした所、今度は正常に完了し再起動ボタンが押せました。この辺あからさまに挙動不審です。
確認
  • アドオンマネージャに"Google Gears"の文字
  • extensions.iniの参照先が {profile folder}/extensions/{000a9d1c-beef-4f90-9363-039d445309b8}
  • extensionsフォルダの下に"{000a9d1c-beef-4f90-9363-039d445309b8}"フォルダがある。前述のProgram Filesの下にあったフォルダです。
  • 公式サイト(Google Gears (BETA))で"installed"に
  • Google Readerにダウンロードボタン
  • ダウンロードが始まる。
  • localserver.dbを覘いてみる(SQLite manager使用)

イケてるっぽいですね。でもオフラインにしてキャッシュ全部削除してReaderページ開いたら見られませんでしたorz なんか基本的な使い方が間違えていますか?Gearsの解説サイト見る限りではWebのキャッシュ消してもhtml自体がリソースストアにキャッシュされるので見れるとあったのですが。

とりあえず明日、キャッシュを消さずに他所のPCにProfileフォルダを移動して確認してみます。

以下蛇足。

  • 色々やる前にProfileのバックアップなど忘れずに
  • Windows版インストーラは"default"Profile以外のProfileフォルダをHDDから見つけ出してGearsを設定します。ちょっと怖い。
  • NotebookはアドオンのIDが"notebook@google.com"なのにGearsのIDはclsidなんですね。本腰の表れ?

2007/11/27

Shared stuffのサイト・サムネイル

Profile pageと同様に、独立した画像として呼び出せます。勝手に使ったら怒られますかね?

http://base.googlehosted.com/base_media[?{options}] 全省略=90x90の"Image not available" q={escaped image url} dhm={?} size={n}
  1. size= 1(400x400)"Image not available"
  2. size= 2( 90x 90)デフォ
  3. size= 3(120x120)
  4. size= 4(220x200)
  5. size= 5( 60x 60)
  6. size= 6(400x400)
  7. size= 7( 60x 60)"Image not available"
  8. size= 8( 60x 60)7と同じ
  9. size= 9( 80x 98)
  10. size=10(120x 90)
  11. size=11(300x300)
  12. size=12( 40x 40)
  13. size=13( 40x 30)
  14. size=14( 90x 90)以降2と同じ

Google Gearsページのサムネイルについて適当に調べた限りではこんな感じになっています。
画像は元々のサイトにある物(image urlの部分)をキャッシュしてサイズだけ変えている様です。dhmは良くあるハッシュの様なアルファベットの羅列で意味はわかりません。

サイト内検索結果

ちょっとGearsについて調べていたらGoogle Code Blogにぶち当たりました。開いた先がトップページだったのでサイト内検索したところ、タブ表示に。

サイト内検索って、全然使ったことが無かったのですが、こういう実装がスタンダードなんでしょうか?よく出来てますねぇ。そういえばすっかり聞かなくなった"Related link"に似ていますがアレは何処にいったんでしょう。

2007/11/26

Google Profile page

MapsとShared stuffはインラインフレームで共通のprofileページが表示されます。user idもこの二つは同一みたいです。

他にReaderのシェアページ、BloggerのユーザID、BloggerのBlogID、ノートブックのシェアページなどIDらしきものが振られていますが一致しませんね。

http://maps.google.com/maps/c/widgets/ProfileViewer?uid={user id}[&others] http://www.google.com/s2/widgets/ProfileViewer?uid={user id}[&others]

widgets/以下は同じですが、それより上は違います。

URLオプションで多少見た目もいじくれるこのページ、適当にインラインフレームでBloggerやPageCreaterに使っても良いんでしょうか。

2007/11/25

Google shared stuff

ヘルプページ
http://www.google.com/s2/sharing/resources/static/html/help.html
ヘルプページのスクリーンショットと私の端末で表示されるページは若干違います(Xxx has shared n items via…の部分がありません)。すでに細部でマイナーチェンジしてるのでしょうか?
sharedしたstuffが勝手に消えている事がある。
昨日sharedしたstuffが幾つか消えています。とくに如何わしいサイトでもなかったんですが。Report spam的な通報システムが変に働いたんでしょうか。またmixiでマイミクが0人で長期放置するとアカウント削除の様に、[view]が1のままだと一定期間で削除などのルールがあるのでしょうか。
まだ、全てのブックマークを預けるにはちょっと信頼性に欠くようです。
自分のページより知り合いのshared一覧が優先?
URLオプション無しのページに行くとGmailのコンタクトリストに追加されている他人のshared一覧が表示されます。del.icio.us/network見たいな物ですが、優先順位がdel.icio.usとは逆の様です。
  • del.icio.usは自分のブックマークがデフォルトで、知り合いはnetworkというサブページ
  • Shared stuffは"Updates from others"がデフォルトで、自分は"My Updates"というサブページ
コンタクトリストに追加する場合はエイリアス付きでOK
例えばhoge@gmail.comさんのsharedを購読したい場合、hoge+huga@gmail.comというアドレスをコンタクトリストに追加しても"Updates from others"ページにちゃんと表示されます。
メールをするような知り合いではないけど、この人のsharedを見たいなという場合(del.icio.us/network的な使い方)、hoge+sharedstuff@gmail.comなど適当なエイリアスで分類できますね。
自分が誰に見られているか判らない
コンタクトリストの追加はNotebookの共有などのように通知が行かないので、相手に断りなく幾らでも追加できてしまいます。del.icio.us/networkの場合、[your fans]という場所に自分のブックマークの閲覧相手が見えるのですが、Shared stuffでは今のところ確認できませんでした。
また、Shared時のポップアップに[publicly visible]という表示がありますが、"hidden"などの選択肢はないため、今のところ見られる側に拒否権は無いようです。メアドが知られれば誰でも"Updates from others"ページに追加できてしまいます。
コンタクトリストから消してもUpdates from othersからは消えない?
  1. AさんがBさんをコンタクトリストに追加
  2. BさんがShared stuffにページを追加
  3. AさんがBさんをコンタクトリストから削除
  4. AさんのUpdates from othersにBさんのShared stuffが表示される
コンタクトリストに在籍中にBさんが[Remove this item]したstuffはAさんの"Updates from others"ページからも消えます。
自分は"Updates from others"ページには入らない
自分のコンタクトリストに自分のメアドを登録しても、"Updates from others"ページに自分のshared stuffは表示されません。自分のshared stuffも知り合いのshared stuffもごった煮にして時系列で並べたい場合は他の手段を利用する必要がありそうです。

2007/11/24

Google shared stuff

全然情報がないですね。URLオプションとか、検索用のフォームとかあるかと思ったんですが。食指が動かないのでしょうか。

前回間違えていたっぽいのは[view]項目はshared数ではなく、Shared stuff経由で参照された数っぽいです。ただ、フィードから参照する場合、直リンクなのでその辺どう追跡するのか、viewの実数が本当に参照数なのかもわからないのでなんともいえません。

http://www.google.com/s2/sharing/stuff?lmode=globalにアクセスすると"Top shared stuff"が見られます。今現在は上位ページはポルノサイトだらけです。

URLオプションもちょっといじった限りでは全然わかりません。収穫はJSONフィードが取れたくらい。

lmode = "global" output = "rss" | "json" user = {user id} tag = {tag name}

user + tagは可能(指定ユーザの指定タグ)
ex) ?user={user id}&tag={tag name}

userを複数指定すると最後に指定したものだけが有効になる
ex) ?user={user1 id}&user={user2 id}
-> user2のページが表示される

tagを複数指定すると最後に指定したものだけが有効になる
ex) ?tag={tag1 name}&tag={tag2 name}
->tag2の検索結果が表示される

複数タグのアンド検索などは出来ませんでした &tag={tag1 name}&{tag2 name} &tag={tag1 name},{tag2 name} &tag={tag1 name}+{tag2 name} などどれもだめ。(記号そのまま、エスケープ共に)

lmodeにはglobal以外何を入れても("private", "local", "hoge"etc)全部"global"と同じ結果でした。

Google shared stuff

Shared stuff from people you know

ヘルプと関連ブログは敢えて見ずに第一印象。


Googleなのに検索窓が無い。のは突っ込んだら負け
タグ名のリンクをクリックすると同じタグの付いたものは見れます。
気になるタグは自分で一度つけるかurl直打ち編集。
削除は出来るが編集不可
[Remove this item]リンクはありますが、編集する場合は、そのページをもう一回開いてSharedブックマークレットをもう一回実行する必要が。
タグ入力欄に、過去に付けたタグの補完機能が無かったり。気が付いたらどんどん改良されてる系でしょうか。
コメントの後ろにsharedしたユーザ名が出ますが、過去にsharedしたstuffはプロフィールを変更しても反映されません。これは仕様ぽい気もしますが。
faviconが無いのが仕様ではない事を希望します(勝手にブックマークレット用の画像を転用しています)
リアルタイム性が強い?
フィードをはいたりしているので、Google Bookmarkよりdel.icio.usの代替にしようかと思います。
  1. 目に付いたらShared Stuffに突っ込む。
  2. 永続的に残したいものは分類してGoogle Bookmark
  3. 最初から目的を持って集めたのはNotebook
という使い分けだと、「Notebookに入れると同時にSharedされる」ブックマークレットとかあると便利かも。
利用者がまだ少ない
各stuff(という表現でいいのでしょうか)には他にsharedした人数が表示されます。みんなとりあえずやりそうなもんですが、Shared Stuffページ自体のSharedすら現在228,913件。"favicon"タグを付けたほかのstuffは見つかりませんでした。"Google"というタグですら、数時間前に自分がsharedしたShared Stuffページが上位に表示されます。
自分のstuffが上に表示される、とか、時系列じゃない、などの勘違いでなければ(特に日本語圏の)人数増加のブレイクスルーは当分先でしょうか。

2007/10/07

最近貼られたラベルのリスト

ラベルリストを表示するウィジェットはデフォルトで用意されていますが、「貼られた回数順」か「あいうえお順」しか選択肢がありません。

しかし、例えば具体的なサービス名や作品名などの固有名詞をラベルにしている場合、ここ半年言及していないのに"A"で始まるからという理由で"Amazon"のタグが一番上に表示されていても大した役に立ちません。流行物を追いかけているブログほどラベルリストが役立たずになってしまいます。

そこでBloggerのサイトフィード機能の一つ、JSONフィード出力機能を使って「直近のエントリーに貼られたラベルリストを抜き出して表示する」というのをやってみました。

1:RecentoryLabels = { 2:"labels" : {}, 3: // labelsオブジェクトに未登録のラベルを追加 4:"init" : function(_aJsonData) { 5: 6: // JSONフィードからエントリー配列(root.feed.entory)を取得 7: var entrys = _aJsonData["feed"]["entry"]; 8: 9: // 各エントリーのラベル配列(entory.category)を取得 10: for (i in entrys) { 11: var updated = entrys[i]["updated"]["$t"]; 12: var categorys = entrys[i]["category"]; 13: for (j in categorys) { 14: // JSONフィード自体が更新日の降順でソートされているので、 15: // 既に登録されている=そっちの方が新しい 16: if (!(categorys[j]["term"] in this.labels)) { 17: // 更新時間のマッピングは特に意味なし 18: this.labels[categorys[j]["term"]] = updated; 19: } 20: } 21: } 22: this.disp(); 23: }, 24:"disp" : function() { 25: // 出力用にlabelsオブジェクトを配列に 26: var s = []; 27: for(i in this.labels) s.push(i); 28: 29: // "recentory_labels"というDIVかなんかを用意しておく。 30: if (out = document.getElementById("recentory_labels")) { 31: // カンマ区切りで表示 32: out.innerHTML = s.join(", "); 33: } 34: } 35:} 1:<body> 2: <div id="recentory_labels"></div> 3: <script src="http://knyijong.blogspot.com/feeds/posts/default?orderby=updated&alt=json-in-script&callback=RecentoryLabels.init"></script> 4:</body>

"RecentoryLabels.init"をコールバック関数に指定してJSONフィードを呼びます。disp中のgetElementByIdがnullを返さないように、JSONフィードの呼び出しは出力する場所より後に書く必要があるみたいです。

実際にはJavaScriptの32行目辺りをいじってラベル名をクリックしたらラベル別ページに飛ぶ、といったAタグを入れる予定ですが、メンドイので導入は気が向いたら。

出来ればクライアント(JavaScript)じゃなくてサーバサイドでやりたいですが、Yahoo Pipesでも使わないと無理でしょうか。

出力イメージです。このエントリー直前までのこのブログのラベルを「最近貼られた順」に240px幅の枠にクラウドっぽく表示した図。

2007/07/29

Google Readerのヘッダ非表示

@namespace url(http://www.w3.org/1999/xhtml); @-moz-document url("https://www.google.com/reader/view/") { #global-info { display : none !important; } #logo-container { display : none !important; } }

Firebugで適当にいじってStylishで適用しています。

探せば幾らでもありそうですが、Firebug使う口実が欲しかったので自作です。

2007/07/26

microSDのアイコン

microSD icon

意外とないので自作。DotWorkというエディタを使用させていただきました。

PRD-MSD3なんかを使ってmicroSDを挿したときのドライブアイコンが欲しかったのです。

アイコンの指定はメディアのルートフォルダにautorun.infというテキストファイルを作って、以下の記述。アイコンファイルはautorun.infと同じ場所においてあります。LABEL指定はおまけです。

[autorun] ICON=microsd.ico LABEL=MicroSD 2GB

こんな感じになります。

USBマークの正確な規格などは当然知りませんので適当です。

2007/07/25

読込み中止はEsc

Firefoxでページの読込み中止はEscキー。

ブラウザの基本的なボタン

  • 戻る(Alt+Left)
  • 進む(Alt+Right)
  • 中止
  • 更新(F5, Ctrl+R)
  • home(Alt+home)

はショートカットキーで代替できるので消していたのですが、中止ボタンだけはとっさの時に押せないと困るので残していました。

が、別の用件でkeyconfigの設定画面を眺めていたら、中止がEscに割り当てられているのに気づく。これで全部のボタンを排除できました。

キー割り当てを変更する気がなくても、keyconfigは入れておいて損はないアドオンだと思います。

2007/07/23

Google Readerのサイドバーをトグル

Google Readerのサイドバーは"u"キー押下でトグルできるのですが、マウスでトグルする方法がない。Google Mapsの様に左矢印をクリックでマップの表示領域を最大化、とかしたいのです。

"u"キー押下時に呼んでいるイベントを呼べばいいのかと思ったんですが、探し方がわからず。

HTML眺めていたら、トグル時にBODYタグのclassが変わるようなのです

  • サイドバー表示時
    class="mozilla loaded"
  • サイドバー非表示時
    class="mozilla loaded hide-nav"

直接class属性いじればいいのかな?っていうことで以下のコードを流してみたら思いのほか想定どおりに動いてくれました。

// 非表示->表示にするテスト // classから"hide-nav"を消す (function(){ var b=document.getElementsByTagName("body")[0]; var x=b.getAttribute("class").split(" "); x.pop(); b.setAttribute("class",x.join(" ")); })()

あとはリストの上に表示されている"All items"等に"chrome-stream-title"というIDが振られているので、onclickイベントでも追加すればいいのかな?

何で実装しようか。

しかしFirebug便利ですね。これを書いている途中に気が付いたのですが、コンソールからコード投げなくても、直接class属性値もいじれたのかorz

2007/07/16

Firefoxの再起動ショートカットキー

【Firefox&Thunderbird拡張】 Custom Buttons を試してみた。

こちらで紹介されているFirefoxの再起動用ボタンのスクリプトをkeyconfigに追加してみたところそのまま動きました。試していませんが、多分Mouse Gesturesなどのアドオンでも動くのではないでしょうか?

Firefoxの起動時にホームページを表示する設定にしているが、たまに(config設定時やアドオンの設定変更後に)タブの状態を残したまま再起動したいときなど便利です。

Alt+F4が終了なのでShift+F4を再起動にしました。本当はShift+Alt+F4にしたかったのですが、keyconfigにうまく登録できず。

以下がコードの抜粋です。1~2行目のコメントを外すと確認ダイアログが出るようです。試してませんが。

//var confirmRestart = window.confirm('Are you sure you want to restart firefox?'); //if(!confirmRestart) return; var appStartup = Components.interfaces.nsIAppStartup; // if (canQuitApplication()) // uncomment if using zeniko's Session Manager Components.classes["@mozilla.org/toolkit/app-startup;1"] .getService(appStartup).quit(appStartup.eRestart | appStartup.eAttemptQuit);

2007/06/30

スクラッチパッドのバックアップ

Google デスクトップのスクラッチパッド(簡易メモ機能)というウィジェット(ガジェット?)のバックアップファイルのありか。

C:\Documents and Settings\{user name}\Local Settings\Application Data\Google\Google Desktop\{profile folder?}

の下にある scratchpad.txt

バックアップは scratchpad-{yyyymmdd}-{hhmmss}.txt

バージョンアップした時に消えて困ってたんですが残っていた様です。

ヘルプ センター: スクラッチ パッドやタスク リストの失ったデータを復旧するにはどうすればよいですか。

つっこみ

「ソレ違うだろ」と突っ込みたくなるページをクリップする時に「つっこみ」というタグをつけようと思ったのですが、英語しかサポートされないサービスがあるので、「つっこみ」を和英辞書で引いてみました。

つっこみ = feed

困った。RSSやAtomやpodcastに関するページも全部「つっこみ」になってしまう。

Docs & Spreadsheetsのフォルダはフォルダじゃない

各所でDocsのインタフェース更新に触れ、「タグがフォルダになった」と説明されている。けれどアレは単にフォルダの様な、もっと言えばWindowsのエクスプローラの様な見た目にしただけで、タグとしての機能は健在です。

タグとフォルダによる分類の最も大きな違いは同時に複数のタグ/フォルダに分類できるかどうか、だけど、Docsでは既にフォルダ(とみなされているもの)に入っていても[フォルダに追加]から別のフォルダを選べば同時に2箇所以上のフォルダに分類可能で、これはまさにタグ。

わかっている人はわかっていて敢えて「フォルダになった」と書いているのだろうけど、わからない人がこれを読むとますますわからなくなる。

同じ誤解がGmailでもされています。Gmailの基本的な分類

  • [受信トレイ]
  • [スターあり]
  • [チャット]
  • [送信済みメール]
  • [下書き]など

これらの分類をフォルダと勘違いしている人が居る。

以前、知り合いにGmailで「自分の送信したメール(送信済みメール)も返事があるまで受信トレイに入れたい」という質問をされた時、私は「[受信トレイに移動]を選べば出来るよ」と答えた。すると知り合いは「移動したいわけじゃなくて、送信済みメールにも残したい」といった追加要望を述べてきたのです。このことから知り合いがGmailの基本分類をフォルダと勘違いしていたのが伺えます。

やってみればわかりますが、[送信済みメール]で[受信トレイに移動]を選んでも[送信済みメール]に残ったまま、[受信トレイ]にも入ります。

Gmailでの[受信トレイに移動]は操作の内容をわかり易くするためのウソで実際に移動しているわけではないのです。正確には[ラベルを付ける:受信トレイ」に等しい。

ぶっちゃけ[下書き]にある下書き中のメールだって[下書き]に入れたまま[受信トレイに移動]を選べば[受信トレイ]に入れられます。解除するには[アーカイブ]。

なので正確には

  • [受信トレイに移動]=[ラベルを付ける:受信トレイ]
  • [アーカイブ]=[ラベルを削除:受信トレイ]

これらはGmailにメール管理ツールとして基本的な機能を提供するための特殊なタグ(*1)に過ぎません。

話しは飛びますが、現在のタギング可能なサービスに対する不満としてこちらの方に私も賛成です。

フォルダとタグ ≪ u-ch
  • 『フォルダ式』分類ではフォルダの下にフォルダもファイルも入れられる。
  • 『タグ式』分類ではタグの下にはファイルしか入れられない。

タグにタギングしたいです。

*1 Gmailでは正確には『ラベル』ですね

2007/06/24

FirefoxのConfig

Firefoxのカスタマイズを紹介したい時、本来の目的は機能の紹介のはずです。が、カスタマイズの紹介をするたびにabout:configの説明から入っているとエントリーが無駄に長くなる上に本題がぼやけます。

「about:configだ、いやpref.jsだ、いやuser.jsだ、prefs.jsが置いてあるのはここだ」といった点はそれほど重要ではないはずです。せっかくリンクの張れるWebなので、よくまとまったサイトにリンクを一つ張らせてもらって済むのならその方がすっきりすると思います。

と、思ったんですが、そこにフォーカスして綺麗にまとめられたページってあまり数がないですね。

一番綺麗にまとまっていたのがこちら。

about:config と user.js による Firefox のカスタマイズ - えむもじら

2007/06/20

Firefoxのポータブル化、と複数Profileの多重起動

FirefoxにはProfileを指定して開くコマンドラインオプションがあります。これで指定すればPortable Firefox無しでポータブル化できるみたいです。

Firefox をリムーバブルメディアから起動する - Firefox Help: 便利な使い方

利点
Portable Firefoxの起動時のスプラッシュが邪魔な人、英語版の日本語化とかしたくない人、FirefoxPortable.exeとか挟まれるのがむずがゆい人にはいいかも
欠点
むしろ手間はかかる。またポータブルに最適化はされていません。自分でabout:configなどを要設定。

普段から常にこの方法で使っていればProfileのバックアップも楽になるので、変な拡張を入れてしまった場合のバックアップなんかもとりやすくなるかもしれません。

ついでにMOZ_NO_REMOTEという環境変数をセットすると多重起動もできるようになります。

朝顔日記 - 続・複数の異なる Firefox を同時起動する

なにが便利かと言うと、Profile指定と一緒に使うと同じサービスに違うアカウントでログインしたFirefoxを同時に立ち上げられることです。(Cookieなどの実体がProfile単位で保存されるため?)

例えば私は、BloggerのアカウントがGoogleアカウントに統合されて以来、本名アカウントでネットをしている最中にBloggerに投稿したくなったらハンドルネームアカウントでログインしなおしていたのです。これが面倒くさいのでハンドルアカウントはOperaで使うようにしていました。が、複数のブラウザを等しく使い込むのは面倒です。出来れば同じFirefoxの方がいい。などといった場合に、本名アカウントとハンドルアカウントのFirefoxを同時に立ち上げられて便利です。ProfileをコピーしてからGoogleへのログインだけしなおせばアドオンやテーマの設定などを1からしなくても良くなります。

というわけで手順です(Win用)

  1. Firefox本体のコピー
  2. Profile指定及び多重起動用のBATを作成
  3. 今使っているProfileのコピー
  4. コピーしたProfileで起動するショートカットを作成

最後の手順はショートカットでもBATでもいいのですが、相対パス指定できるポータブルなランチャーなんかでも便利です。

今回はUSBで使うことが前提なのでUSBドライブ(仮にX:\)に以下のようなフォルダを用意します。

Firefoxのインストールフォルダ
X:\usr\local\opt\Mozilla\Firefox\
Profile設置フォルダ
X:\home\KNYI Jong\.mozilla\Firefox\
  1. Firefoxのコピー
    C:\Program Files等の下に元々インストールされているFirefoxのファイルをX:\usr\local\opt\Mozilla\Firefox\にごそっとコピーします。アンインストーラーなどUSB使用に不要なものもあるので容量が気になる場合は適宜削除してください。
  2. Profile指定及び多重起動用のBATを作成
    コピーしたFirefox.exeの横に以下の内容のfirefox.batというファイルを作ります。 @echo off SET BASE=%~dp0 SET MOZ_NO_REMOTE=true start "duplicate firefox" %BASE%\firefox.exe -profile %1 "%~dp0"というのはDOSのBATの特殊な環境変数(?)でBATファイルの置いてあるフォルダのパスです。BATの実行パスはショートカットから起動された場合などはファイルプロパティの「作業フォルダ」に依存します。この書き方だとどこから呼び出されようと、BATの設置場所からの相対パスで参照されます(多分)。なのでこのように書くことで呼び出される際の環境に依存せずにfirefox.exeを参照できるようにしています。
  3. 今使っているProfileのコピー
    C:\Documents and Settings等の下にあるProfileフォルダ(xxx.default等)の中身をごそっとX:\home\KNYI Jong\.mozilla\Firefox\にコピーします。
  4. コピーしたProfileで起動するショートカットを作成
    X:\usr\local\opt\Mozilla\Firefox\firefox.bat "X:\home\KNYI Jong\.mozilla\Firefox" という形式で、BATなりショートカットなりランチャーの登録なりで作って呼び出します。

実際のところ職場でもいつもの環境でFirefoxを使えるようにしたかったのですが、諸事情によりまだ試せていません。フツーのFirefoxがインストールされた自宅PCで複数アカウントの使い分けのために使っているので、この方法により本当にちゃんとポータブル化されているか(レジストリとかにゴミが残らない、USBから問題なく起動する、など)は未検証です。

2007/06/18

Google デスクトップのタイムライン

たまたま表示してみたところカレンダーのFrom部分が自分の誕生年月でした。

「生まれる前にはネットしてないよね?」という気の利かせ方なんでしょうか。たまたま一致しただけなんでしょうか。(Googleの何かしらのアカウントに誕生日を入れていた?)

2x年前じゃGoogleはおろかWWWも無い時代ですよ。当時のインデックスが今見られたら面白いですけどね。

2007/06/16

pitfall(落とし穴) hack

  • 実は意味がなかったり。
  • 実は他人に迷惑がかかっていたり。
  • 実はやばい情報が漏れていたり。

想定外の落とし穴があるハックなどをたまに目にします。

この手のハックに対する注意喚起は「有用なハックを解説するエントリー」のおまけ的に書かれていて、重要視されていなかったり、見過ごされて気づかなかったり、という事も多いように見受けられます。

なので、「ついでに」書くのではなくそれだけを取り上げたエントリーというのも必要なのではないかなと、考えたりした次第ですが、こういったハックに対する業界標準的な呼び方が見つからなかったのでとりあえず"pitfall hack"(落とし穴のあるハック)というラベルを付ける事にしました。

バッド(良くない)ハックというのも考えたのですが、良いか悪いかは使う場所や目的によっても変わってきます。 ハラスメント(迷惑)ハックというのも考えたのですが、これも受け取り手によって違いますしね。

2007/05/26

Gmailで下書き中の添付ファイル合計

を、取得するためのブックマークレット

javascript: (function(){ var f=window.frames[0]; var ifr=f.document.getElementById('v1').contentWindow; var alist=ifr.document.getElementsByTagName('a'); var atchs=0; for(i=0;i<alist.length;i++){ if(alist[i].getAttribute('class')=='lc'){ alist[i].innerHTML.match(/(\d+)(kb)$/); if(RegExp.$1!='')atchs += parseInt(RegExp.$1); } } alert([atchs,'KB'].join('')); })();

2007/04/22

Portable Firefoxのインストール

何が更新されたわけじゃありませんが、Portable Firefoxを入れたのでメモエントリー。

アドオンページとかたまに見に行くと知らぬ間に更新されていたりしますね。

  1. Portable Firefoxのインストール
    1. インストーラーをダウンロードしてダブルクリック
    2. あとは適当
  2. Portable Firefoxの日本語化
    1. 多言語化アドオンをインストール
    2. 多言語化アドオンの日本語パック(これもアドオン)をインストール

これだけの話です。

  1. Portable Firefoxのダウンロード

    ダウンロードサイトからインストーラーをダウンロードします。サイトはこちら

    Mozilla Firefox, Portable Edition | PortableApps.com - Portable software for USB drives

    ダウンロードファイル名は

    "Firefox_Portable_2.0.0.3_en-us.paf.exe"(5.76MB)

    でした。

    Portable Firefoxの起動は

    [インストールフォルダ]/FirefoxPortable/FirefoxPortable.exe (134KB)

    です。他にも

    [インストールフォルダ]/FirefoxPortable/App/firefox/firefox.exe(7.4MB)

    というファイルがありますがこちらはFirefox本体(?)です。Portableとして起動したい場合は前者をクリックするようです。初回起動時にライセンスの同意が求められます。英語なんで内容はさっぱりでした。

  2. Portable Firefoxの日本語化
    1. 多言語化アドオンをインストール

      まず多言語化アドオンを入れます。ダウンロードサイトはこちら

      Locale-Switcher Extension

      ファイル名は

      "switch-locales-2.0.xpi"(2.97KB)

      でした。

      1. インストールしたFirefoxのファイルメニューにある[Tools]>[Add-ons]をクリック
      2. "Add-ons"というタイトルのポップアップウィンドウが開かれるので、ダウンロードした"switch-locales-2.0.xpi"をドラッグ&ドロップ
      3. "Software Installation"というインストールの確認ポップアップが出ます。"Install Now"ボタンを押せばインストール開始。
      4. Add-onsウィンドウの表示が"Extensions"から"Installation"タブに遷移してプログレスバーが出ます。終了すると右下の"Restart Firefox"ボタンが押せるようになります。
      5. Frefoxの再起動後にAdd-onsポップアップを開くとこんな感じに。
    2. 日本語パックをインストール

      おんなじ感じで日本語パックアドオンをインストールします。ダウンロードサイトはこちら。

      Localization | PortableApps.com - Portable software for USB drives

      ファイル名は

      "ja.xpi"(161KB)

      でした。まんまですね。

      1. "Add-ons"ポップアップに"jp.xpi"をドラッグ&ドロップ。"Software Installation"ウィンドウで確認されます。右下の"Install Now"ボタンを押せばインストール開始
      2. "Installation"タブに遷移してプログレスバーが出ます。終了すると右下の"Restart Firefox"ボタンが押せるようになります。
      3. Firefoxの再起動後に、ファイルメニューの[Tools]を開くと[Add-ons]の下に[Languages]が追加されてます。"Japanese"を選択すると日本語になります。おした直後でも一部メニューは日本語化されますが、完全に切り替えるにはFirefoxの再起動が必要です。
      4. Firefoxを再起動するとこんな感じです。

2007/04/16

Googleニュースがフィードの配信を再開?

Googleニュースを見てたら一番下に"New!"表示が…

いつから表示されていたのか存じませんが、"New!"表示してあるということは正式に配信てことでしょうか?以前にもすぐに配信停止した例もあるのでどうなるのか定かじゃありませんが。

残念ながら私の環境では上記リンクをクリックしても"has no items."としか表示されないのですが、何か設定が悪いのかな。

2007/04/15

Google ブックマークのfaviconを好きな画像に変更

GMarksは最も気に入っているFirefoxのアドオンの一つですが、なんとなく配布ページを見に行ったら、更新履歴にこんな一文が

バージョン 0.9.4  2007 年 03 月 22 日  89 KB
(略)
-Custom favicons, you can upload favicon files from your computer and have them stored in the notes fields. Some icons are too big to be stored and google will cut them off.
(略)

適当に訳すと

『好きな画像をfaviconに指定するとGoogle Bookmarksの"note"フィールド(日本語版だと「メモ」欄)に記録されるよ。ただし大きすぎると入りきらない部分は切り捨てられます。』

ってことみたいです。これできたらいいのになーと思っていた機能がドンピシャで実装されていました。

ためしにGmarksのfaviconをGoogleブックマークの星アイコンに変えてみました。

  1. 適当な画像(16x16)を用意する
  2. Gmarksのブックマークを右クリックして"Change Favicon"を選択
  3. ダイアログから画像を選択
  4. こんな感じに
    透過してないのでアレですが

Googleブックマークで当該ブックマークをみてみると、こんな感じに。

base64エンコードしたデータスキームで画像を指定してるんですね。

これと同じ感じでブックマークレットをGoogleブックマークに保存する機能も実装してくれないかな。

2007/04/14

Google Readeガジェットの全既読ボタンを非表示に

今まではあまり気にしてなかったのですが、"mark all as read"ボタンを誤クリックして酷い目にあったのでigでは非表示にしてみました。

DOM Inspectorで見たところいい感じにid="mark-all-as-read-31"とID属性が振られているので単純にdisplay:noneにしました。(Stylishで下記CSS指定)

最後の31というのが気になりますが、ガジェットの追加した順番やページによって変わったりするんでしょうか。

@namespace url(http://www.w3.org/1999/xhtml); @-moz-document url("https://www.google.com/ig?hl=ja") { #mark-all-as-read-31 { display : none ! important; } }

追加するとこんな感じです。 垂直線がちょと邪魔ですがとりあず誤クリックが防げればいいかなと。

2007/02/25

ポータブルアプリ

去年の秋にHDDがクラッシュし、また現在完全にオフラインの職場で作業していることもあり、バックアップ作業の軽減と開発環境の持ち運びを考えてUSBで持ち運べるものを色々と探しています。

特に職場のPCはあまりカスタマイズもできないので痕跡を残さずに色々使うためには気を使います。

  • USBから起動が可能
  • 設定はレジストリではなくiniファイル
  • 設定ファイルは保存場所の指定が可能

あたりが最低条件になります。 調べてみるとファイラーやテキストエディタあたりは結構あるようですが、一長一短です。今のところ使うものは固まりつつありますが、完全に要望を満たすものはやはり自作でしょうか。

バックアップを考えると設定ファイルは一箇所にまとめておきたいのですが、単なるコピーでは二重化されるだけで容量的にも管理上も望ましくない。かといってWindowsXPはシンボリックリンクもハードリンクもデフォルトのサポートはお粗末。この辺の対応ツールはインストールしないと使えないタイプ。といったりきたりの状態です。

WindowsXP対応でジャンクションとハードリンクをサポートしていて、カスタマイズ性の高いタブ型ファイラーが欲しい所ですが・・・

最近オンラインのツールばかり目が行っていたので、久しぶりに腰をすえてローカルアプリを調べなおしてみる機会かもしれません。

2007/02/24

ウェブマスターツールでサイト分析

Lucky bag::blog: lucky-bag.com ドメイン内ページの被リンク数トップ 10

Google ウェブマスター ツールで被リンク(バックリンク)の一覧や内部リンクの一覧が取得できるとは知りませんでした。

以前Blog検索の条件でバックリンクから内部リンクを除いた純粋な外部からのリンクを取得できないか試した記憶があるのですが、これがあるならそんな面倒も必要なさそうです。

表示ページにソート機能などは無いようですがCSVダウンロードが可能なので、落としてから好きにしろ、ということでしょうか。

ちなみにCSVがUTF-8だったため、Excel2000で開いたら文字化けしました。

あとは新着の外部からの被リンクがフィードで配信されたら便利かもしれませんね。

https://www.google.com/webmasters/tools/siteoverview?hl=jaのサムネイルGoogle ウェブマスター ツール

2007/02/03

vista

今週のAnalyticsの「ブラウザとプラットフォーム」の抜粋です。

vista+Firefox mac+Firefox どちらもいけるんですね。

2007/01/18

ブラウザシェア

「IE 7」のユーザー数が1億人を突破 - CNET Japan 「Internet Explorer(IE) 7」をインストールした人の数が1億人を超えたと発表した。これでIE 7は、前バージョンである「IE 6」に次ぐ、米国で2番目に多くのユーザーが使用しているブラウザとなった。

見る前から予想は付きましたが、このブログのシェアはやはり一致しないようです。

IE7へのアップデートが思ったより多いですが、それ以上にFirefox2へのアップデートが結構進んでますね。1.5.xから2.xへは自動更新はされなかったと記憶していますが。

そういえばちょっと前にOperaの更新通知が来たのですが、全部DL->インストールという作業を久しぶりに行うとそれだけで結構面倒くさいものですね。差分更新て機能としては地味ですが、地味ゆえに便利です。

2007/01/15

Google ReaderでPodcasts

J.S. Mach: Google Reader で Podcastsを聴く

存じませんでした。できたんですね。

というわけで実際にPodcastsで聞いている「聴く日経」のフィードを登録してみました。
フィードURL[http://nikkei.hi-ho.ne.jp/podcast/kiku1.xml]

実際の所「聴く日経」は通勤中に聞いているのでGoogle Readerで置き換えはできませんが、敢えてiPodに入れて聴くこともない類の物と使い分ける選択肢ができました。

2007/01/07

[最近閉じたタブ]が使えない

Ctrl+Shift+T(直近の閉じたタブを開きなおす)をマウスジェスチャに割り当てようとしたのが始まり。割り当て設定を何度見直しても想定どおりに動いてくれません。

念のためCtrl+Shift+Tを押すと動かない。

最近MunuXでファイルメニュー自体を消していたので知らなかったのですが、そもそもCtrl+Shift+Tで開きなおすタブは[履歴] > [最近閉じたタブ]からも同じことができる、とのことでメニューを表示すると[最近閉じたタブ]メニューが何をしてもdisabled状態。

Portable Firefox複数入れて色々調べた結果、Tab Mix Plusが原因ぽい。Tab Mix Plusの"Enable undo close tabs"(「閉じたタブを復元」の機能を有効にする)のチェックを外したままアンインストールすると、アンインストール後も[最近閉じたタブ]が記録されない状態に。

Portable Firefoxの方は、Tab Mix Plusを再インストール→チェックを付けて再起動→再アンインストールで対処できたのですが、PortableじゃないFirefoxは同じ方法でも直りません。他の拡張が色々影響してるのでしょうか。

一応差分検索をすると上記機能のon/offの前後で"browser.sessionstore.max_tabs_undo"という設定値が書き換わっているようですが、これを手動で書き換えても直りません。

というか今回の一件で気がついたのですが、Firefoxの拡張機能というのは設定値や設定ファイルをアンインストール時に削除してくれるわけではないのですね。結構あっちこっちに消したハズの拡張機能のものと思しき設定値が散見。 Firefoxも定期的にオーバーホール、というかクリーンインストールしないといけないのでしょうか。

2007/01/04

Google Reader Trends

Going My Way: Google Reader でフィードの傾向がわかる Google Reader Trends

Google Readerの過去30日間の分析結果が見られるそうです。

個人的に欲しかった、「最近更新されていない一覧(Subscription trendsのInactiveタブ)」が嬉しいです。横にゴミ箱アイコンがあって、その画面から直接Unsubscribeできます。

2007/01/01

picasaは隠しファイルを隠す?

しばらく前からpicasaが起動時スキャンをするにも関わらず、スキャン終了後にスキャンしたはずの画像がゴソっと一覧から消える、という現象が起きていました。

色々いじったあげく、ファイルのプロパティでMy Picturesフォルダの「隠しファイル」にチェックが入っていた所為らしいことが判りました。My Document直下が色々邪魔っくさいのでMy PicturesだのMy Videosだのを隠しファイルにしたのがいけなかったようです。

あとで非表示にするのであれば、スキャンしなければいいのに、と思うのですが。