2009/07/06

Firefox3.5対応&Add-on Collector

新しいプロファイルに、"Add-on Collector"でアドオンを入れなおして見ます。

結論から言うと、Add-on Collectorに任せたアドオン管理はまだ実用的ではありませんでした。

初期状態

まっさらな状態

まずAdd-on Collectorを入れる

スペルミスがあっても見つかりました

普通にインストール

一個だけ入れた状態

コレクションを引っ張ってくる

自分が作った自動公開コレクションは自分の購読リストに入るため、まずはログインして古いプロファイルで作った購読リストを取得します。

[Add-on Collector]画面 > [General Settings]タブ > [Log in]ボタンをクリック。

AMOにログインします。

購読リストが取得できた状態。余談ですが、古いプロファイルと新しいプロファイルでFx3.0.11とFx3.5を同時に起動しAdd-on Collectorに同時ログインしても問題は起きませんでした。

インストールしていく

依存関係や設定の問題もあるんでしょうが、一発インストールボタンが無いのでとりあえず一個一個インストールしていきます。

コレクションの中からアドオンを選択肢、[Add to Firefox]ボタンをクリック。

普段のインストールポップアップが表示されます。

こんな感じでチマチマ入れていくしかないようです。

インストールできないアドオン

既にインストールしたアドオンやバージョンの関係でインストール出来ないアドオンは[Add to Firefox]ボタンがグレーアウトされ、インストールできません。一覧に表示させないようなフィルタ機能が欲しいですね。

それとは別の問題として、インストールできるはずのアドオンが"not compatible"と表示されインストールできませんでした。

例えば、上の画像のNightly Tester Toolsはそのような古いバージョン向けのアドオンを強引に入れるためのアドオンなので、βでも無い最新版に対応していないはずは無いんですが。

右上の[View Collection]をクリックすると、AMOのコレクションページに移動します。

Webページ上の[Add to Firefox]はEnableに見えます。アドオン名をクリックすると、そのアドオンの固有ページに飛びます。

やはり[Add to Firefox]ボタンはEnableに見えます。

下の方にある対応バージョンの表記でも3.6a1preまで対応となっているので、当然3.5も含まれるはずです。

このページから[Add to Firefox]をクリックすると、やはりインストール可能な様です。

一度古いプロファイルを立ち上げて、Nightlyをコレクションから削除、もう一度公開、新しいプロファイルで[Subscriptions]タブの左下にある[Reload All]を押した所、インストール可能になっていました。

  • 一度Webページ上からインストール画面を出してみた
  • コレクションに追加した時のバージョンで判定されるので、公開しなおせばよい

どちらか、もしくはまったく別の理由で直ったのかは不明です。

良く見ると他のアドオンでバージョンが未対応の物は、"for older"の表示になっています。"not compatible"は一体どんな判定で表示されるんでしょうか。

どちらにせよ、

  • 一括インストールが出来ない
  • 古いバージョン向けの物を強引に落とす事が出来ない

となるとちょっと実用には遠い気がします。

前者の問題はAdd-on Collectorの更新に期待ですが、後者はNightly Tester Toolsの"Override all compatibility"ボタンがコレクションにも表示される、なんていうのは無理ですかね。

結局ダウンロードに失敗するアドオンなどもあり、コレクションの半分も復元できませんでした。

それ以前に、AMOに登録されていて、無効にもなっていない、かつ古くも無く、正式に対応しているはずのバージョンのインストール済みアドオン(Adblocck Plusなど)がコレクションに追加できなかったりします。

AMOのサイトからは追加できるのに、アドオン画面からは追加出来ないので、コレクション機能ではなく、Add-on Collectorの機能的な問題か、私のPCの環境の問題かもしれませんが。

Add-on Collectorからログアウトしているのに、[Publish to]プルダウンからコレクション名の一覧が消えない、などバグっぽいのがぼろぼろ見つかりますね。

2009/07/04

Firefox3.5対応

Firefox3.0.*及び、既存のプロファイルをそのままに、3.5をインストールして、新しいプロファイルで起動してみます。

毎回やってますが、3.5でオプションが変わってない確認の意味でも。起動まで一通りやってみて、変わっていませんでしたが。

インストール

既定のブラウザを変更したくない場合、最初の画面でチェックを外す。
この画像では外れてませんが、後から外しました。
カスタムインストールでインストール先を変更。

"C:\usr\local\bin\"が正規版、"C:\usr\local\opt\"がお試し版という使い分けをしています。

ショートカットが上書きされないように、アイコンの作成を全部はずす。
デフォルトプロファイルが上書きされないように、すぐに起動を外す。

うっかり既定のブラウザにセットしてしまい、うっかり*.htmlファイルをダブルクリックしたりすると、デフォルトプロファイルが上書きされながら起動したりします。冗談みたいなミスが、たまに、よくあります。

プロファイルの準備

新規のプロファイルを作成します。

createprofileというオプションは今回初めて使いました。 "admhfu53.for3.5"というのが今作ったプロファイル。 "ph62nefn.default"というのは昔作ったデフォルトプロファイルです。

プロファイルフォルダを移動(名前の変更も)します。

移動元:{home dir}\Application Data\Mozilla\Firefox\Profiles\admhfu53.for3.5\
移動先:C:\home\KNYI Jong\.mozilla\Firefox\Profiles3.5\

この時点で、9KBしかないですね。予備に一つコピーしておくと、この後の作業が失敗した時のリトライに便利かもしれません。

起動

プロファイルをパス指定で起動します。

{install dir}\firefox.exe -profile "{profile dir}\Profiles3.5"

Windowsの基礎ですが、パスにスペースがある場合、""で囲む必要があります。

また、プロファイルフォルダの最後に"\"(円マークもしくはバックスラッシュ)は要りません。たしか付けてしまうと、そのフォルダの下に、さらにサブフォルダを作成してしまった気がします。

無事起動。この時点で4,210KBに増加しました。指定したプロファイルで起動してくれたようです。起動直後に既定のブラウザにするか聞かれるので注意してください。

実際の起動には-no-remoteなども付けています。どのプロファイルで起動する際にも使う共通のオプションは、JScriptを書いてfirefox.exeの横にfirefox.jsとして置いてあります。そうすると、ショートカットの記述は

{install dir}\firefox.js "{profile dir}\{profile name}"

だけで良くなるので見通しが良くなります。

さて、ここからが大変です・・・

参考:小粋空間: Firefox2 と Firefox3(ベータ版)の共存

2009/07/03

Firefox3.5対応

まだ入れてないのですが、いい機会なのでProfileのオーバーホールをしようと考えています。長いこと使っていると結構あっちこっちいじっているので何かしら移行し忘れるものですが。

ブックマークは元々GMarksによってGoogleブックマークを直接参照しているので、そもそも「同期」を取る必要がありません。どの環境からでもログインすれば同じ物を使えるというのが、ハードリンクの様で便利です。

アドオンはaddons.mozilla.org (AMO)コレクション作ってみました。新しい環境でのダウンロードはまだですが。とりあえず真っ先に"Add-on Collector"を入れれば後はリストからインストールできるような感じです。

正直コレクション自体も、"Add-ons Collector"もまだ出来たばかりで使い勝手が悪いと思うのですが、少なくとも、名前の一覧をメモして新しいProfileで再検索して、、、とやるよりは遥かに良いと思います。

extensionsフォルダを丸ごと上書きする方法もありますが、設定等色々不安が残りますので、出来ればちゃんとインストールしたい。

about:configなどの設定周りが不安ですね。オプション画面の設定やアドオンの設定も色々いじる必要があると思うので、prefs周りの仕組みを理解できていれば、ファイル一発コピーで復元できる物なんでしょうか。

一部のアドオンでも外部ファイルやsqliteでDBを使用していたりもします。特定のアドオンの設定を別のProfileからインポートなんて出来れば便利そうですが。

そもそも、アドオンの設定やデータの保存方法に統一的な方針ってあるんでしょうか。

2009/07/02

Gmailのラベル機能が刷新

Firefox3.5の対応に忙しい中、GmailまでUIの重要な部分に大幅な変更がありました。

公式の説明として

表示位置が変更
表示非表示が選択可能に
ドラッグ&ドロップによるメール振分けが可能に
ラベル自体もドラッグ&ドロップ可能

特に触れられていませんが

日本語表示でも既に利用可能
既定のラベル(Sttared,Sent Mail,Trash...)も非表示可能に
ただしInboxは不可?

ここが惜しい

並び順は変えられない?
たまに表示が崩れる(Fx3.0.11)

是非コレも

"Quick Links(Labs)"も同じ扱いにして欲しい
検索条件に名前を付けて保存できる"Quick Links"こそ、Googleの本領発揮じゃないですか?

これは辞めて欲しい

ラベルが一つも無いと、適当なラベル(プライベート、旅行...)が作成される
新規ユーザへのオススメならわかりますが、既存のアカウントに勝手にラベルを追加するのはいただけません。

参考:

3.5慣らし運転?

Firefox3.5ユーザのセッションがもうあるのかな?と思ってAnalyticsみてたら、なぜか昨日のセッション数が普段の2.5倍になってました。

参照元とかも変わりないのに?と思ってたら、セッション数の半分がFirefox3.5!

chromeの時もダウンロード開始当日から数件アクセスがありましたが、Firefoxは段違いですね。

みんなあっちこっちのサイト見に行って変化を体感してるんでしょうか。

個人的に気になるのは、DOM Storageの対応とか。モノとして面白いなーとは思うのですが、Cookieみたいにトラッキングデータを拒否する設定が3.0.*では見つからなかったので3.5はどうなっているのか、とか。

対応アドをンをまた整理しないといけないなとか思いつつ面倒くさくてまだ試してません。

3.0の時も思っただけで調べてないのですが、β系列の自動アップデートはβ系列だけ、とかに出来るんでしょうか。

例えば現在3.0.11→3.5になると思うのですが、3.5RC3を別に共存させていた場合、そちらを更新しても3.5にはしないで欲しいのです。

3.5β2→3.5RC→.nextという感じに正式版回避アップデートが出来るとβのたび環境作らなくて楽そうですが。

2009/06/29

deliciousのタグに半角スペースを使う

deliciousのタグはデリミタ(区切り文字)が半角スペース(ブランク)なので、タグに半角スペースが使えません。

"Google Toolbar"と入力すると、"Google"と"Toolbar"になります。

そこで、no-break space(*)を使います。HTMLなんかで と書くアレです。

参考: と普通の半角スペースの違い - うなの日記

もちろんdeliciousの登録画面での入力はHTMLエンコードされませんので、 と書いてもそのまま出てきてしまいます。

Windowsの場合、Altキーを押しながら数字を入力する事で、入力した数字に該当する文字コードの文字が出てきます。

半角スペースは0x20、10進で32です。nbspは0xA0、10進だと160です。

Altを押したまま、テンキーで1,6,0と順番に押し、Altを放すとnbspが挿入されます。

他の方法として、文字コード表から選択してコピーする事も出来ます。文字コード表は[スタート]>[プログラム]>[アクセサリ]>[システムツール]>[文字コード表]。もしくは[ファイル名を指定して実行]で"charmap"入力してEnter。

"Google Reader"というタグを付けた場合の画像です。"Google"と"Reader"の間にnbspが入っています。

以上はWindows XP SP3、Firefox3.0.11だけで確認したので他の環境ではどのように表示されるか解りません。deliciousのインポート、エクスポートにおいてどのような扱い方をされるかも未調査です。

*:厳密には違う文字なので「半角スペース」を使えるわけではありませんが。

2009/06/28

折り紙

最近、折り紙にハマってます。「折り紙」というWebサービスなどではなく、純粋な折り紙です。

折り紙もハードウェア的な制約が(*)多いのであまり好きでは無かったのですが、一部の折り紙にプログラマブルな性質があることに最近気付きました。

ちょっとググってみたところ、「ユニット折り紙」の「そのべ式」という事だけわかりました。

参照:ユニット折り紙 - Wikipedia

昔から祖母の家にあったのですが、20数年間、2種類しか無いと思っていた折り方(正確には組み方)に今年に入ってからブレイクスルーがありました。

細かい話はしょーもないので端折りますが、祖母のさりげない配色センスの良さと、自分の絶望的な配色センスの無さの差から思わぬ広がりに気付いたので、人生何が役に立つか解りません。

以来、週1で祖母宅に行くたびに細々と作ってましたが、ちょっとまどろっこしくなってきたので、自宅でも作成。ある程度大きな物になると、1個(組)4時間とかかかってしまいます。

作品の載ってるサイトなどもありそうですが、まだ色々自分で弄ってみたいので一通り出来てから他人の作品を見てみようかと画策中。

*:コピーコストが高い、ループコストが高い、コピーが劣化する等々。

2009/06/24

メールアドレスを公開しないでメールを貰う

貰う人がGoogleアカウント(≒Gmailアカウント)所有者で、送る人もGoogleアカウント所有者の場合、プロフィール画面からメールが送信可能です。

当然メールを送るので、送信者側のメールアドレスは受信者に判ってしまいます。

受信側の準備

GoogleのトップページやiGoogleページの右上にある[アカウント/My Account]を開く。

[アカウント情報/Edit your profile]画面でアバターアイコンの右にある[プロフィールの編集/Edit profile]を開く [プロフィールを編集/Edit your profile]画面でアバターアイコンの左にある[連絡をとれるようにする(メールアドレスは表示しない)/Allow people to contact me (without showing my email address)]チェックボックスにチェックを入れて保存します。

送信画面はプロフィール画面内にあります。
先ほどの[プロフィールを編集/Edit your profile]画面の一番下に自分のプロフィール画面のURLが有ります。

このURLへのリンクを、Bloggerのプロフィールやブログのサイドバーに置いておけばアクセス可能です。

送信側の手順

プロフィール画面を開くとアバターアイコンの右の方に送信リンクがあります。

あとは適当に文面入れて送信するだけです。送信者側のGmailのInboxにもちゃんと送信済みメールとして入ってきます。

このメール送信画面は

http://www.google.com/profiles/{user id}/contactme

というアドレスで直接参照も出来ます。httpsも可能でした。

また、

?continue={escaped url}

というオプションを指定すれば、メッセージ送信後に戻る画面を指定できます。

戻り先にブログのアドレスを指定して、連絡フォームとして利用するのも有りかもしれません。

メールアドレスをサイト上に平文で載せるとスパムが大量に送られてくるので、バナー画像にしたり、アットマークを全角にしたり、HTMLソースを難読化したり、という対策は良く見ます。

この方法ならプロフィールページはバレますが、メールアドレスはバレないので、割と手軽じゃないでしょうか。

もっともブログのURLからプロフィールページからメールアドレスまで全部同じにしている人には余り意味が無いかもしれませんが。

長々書いた後でググって見たら半年も前から出来たんですね。ただ、当時とはプロフィールページのアドレスが若干異なるようです。リダイレクトされるので見ることは出来ますが。

参考:

余談ですが、プロフィールページの姓・名の順序は見る側の言語によって変わっていそうですね。漢字圏の国では英語表記でも姓・名の順で表示しよう、といった意見もあるので、見せる側の国籍や言語で判定などしてくれないものでしょうか。

Bloggerのプロフィールでは(正直どうでもいい)干支にあれ程の拘りがあったので(個人的に)期待したい所です。

2009/06/20

サイトマップの警告

ウェブマスター ツールに登録してあるBloggerのサイトマップに警告が出ていました。

指摘されているauthorタグの中身はこんな感じです。 <author> <name> {ユーザ名} </name> <uri> http://www.blogger.com/profile/{BLOGGER USER ID} </uri> <email> noreply@blogger.com </email> <gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='{OPEN SOCIAL USER ID?}' /> </author>

明らかに<gd:extendedProperty>が怪しそうですが、こちら(Is gd:extendedProperty supported in Atom Feeds used as Sitemaps? - Webmaster Help)でまるで同じ内容の質問がありました。

結論としては、「グーグルのクローリング等には影響ないので気にしなくていいよ」という事みたいです。常に警告を出すという状態を「問題無い」とされるのには釈然としませんが。

明らかにOpenSocial/Friend Connect絡みなのでウェブマスターツール側が対応できていないだけかもしれません。問題となっているIDを消す方法は解りませんが、利用する方法などはこちらに(Gadgets for Blogger - Blogger APIs - Google Code)書かれているみたいです。

2009/06/18

Friend Connect on Blogger

最近Bloggerでブログを新規作成したところ、サイドバーウィジェットにデフォルトでFriend ConnectのFollowers(読者)ウィジェットが入っていました。

Googleとして当然推奨する形になるんでしょうが、その割りにGoogle日本法人系の公式ブログにはFriend Connect無いですね。

Friend ConnectでFollowするとGoogle ReaderのSubscriptionsにも入るので、設置ブログのフィードはFriend Connect経由で統一したいのですが、既存の購読フィードは存外、置換できませんでした。

私は使ってないので調べてませんが、Feedburner経由にしている場合にどうなるのかも気になる所です。

2009/05/26

ヘッダ要素にCSS

table-cellが気になって調べていたら、こちらが見つかった
display: table-cell を使ったマルチカラムレイアウト - IT戦記

その中のデモページ
Cols with table-cell.

意外だったのが2点

  • <head>の要素でもスタイルシートでdisplayを設定すると可視化される
  • <link>にbefore/after擬似要素でcontentを入れると、ハイパーリンクになる

後者はFirefoxの独自仕様かも知れませんが。これはちょっと使いたい。

2009/05/22

Friend Connect管理画面

以前、「Friend Connect管理画面でBloggerの情報を見る」なんてのを書きましたが、さっきGoogle Friend Connectを見たところ、Bloggerから追加したサイトも一覧に表示されていました。

理由はわかりませんが、ひょっとしたら単に表示されるまで時間差があっただけかもしれません。または変更があったのかもしれません。最近GmailやGoogle Readerでも発表がなくても細かな変更がしばしば見られますし。

Bloggerウィジェットとしてしか設定していない方は、Googleのアカウント情報に表示される利用中サービスにGoogle Friend Connectがあれば見られるかもしれません。

2009/05/17

Google カレンダーの土日を色付け

割と最近、変更が有ったらしく、気が付くと以前のスタイルが無効になっていました。
Google Calendar - Colorize Weekends (Sun-Sat) | userstyles.org
上記は2009/02/12更新となっています。

日本語/English(US)やTasks表示には影響を受けませんが、週の開始曜日に影響を受けます。土曜、日曜を探している訳ではなく、単に各週の最初と最後に色をつけているだけの様です(上記、日曜~土曜用Styleの場合)。

随分まえからuserStyleには有るみたいですが、Googleが公式で提供しないんでしょうか。曜日に色を付けるのは日本独自?と思ったのですが、そうでもないみたいです。
なぜカレンダーで土曜日は青字で日曜日は赤字なのでしょうか? - Yahoo!知恵袋

例えばバングラディシュは金が週末扱いで、金が休日です。

Google カレンダーで土曜開始(金曜終了)の設定があるのは、こういう国も有るからなんですね。新しい発見は有りましたが、公式対応しない理由はわからず。

2009/05/16

SQLite Optimizer

ちょっと前にこんな事(FirefoxのProfileを縮小)を書きましたが、SQLiteにはVACUUM以外にもANALIZEとREINDEXという操作が可能な様です。
SQLite が認識する SQL - Third impact

VACUUM
実効データの格納に必要なサイズだけ確保し、*.sqliteファイルを縮小する
REINDEX
INDEXを再構築する
ANALYZE
INDEXの統計をとる

REINDEXとANALYZEの厳密な動作内容や、必要性(REINDEXの前後にANALYZEが要るのか?)は解りませんが、とりあえずVACUUM+REINDEXやっとけば動作が速くなるという話しです。

前回はサイズ圧縮が目的だったので、REINDEXはしていませんでしたが、早くなるのであればやった方がよさげです。 (ただ、VACUUMだけでも早くなったという話も見かけました)

SQLite Optimizer :: Firefox Add-ons
こちらを使うと、Profileフォルダの下の全*.sqliteファイルにVACUUMやREINDEXを一括処理をしてくれる様です。前回は一個一個手作業だったので非常に便利に。

スクリーンショットではREINDEXのみに見えますが、設定によりVACUUM+REINDEXに変更できるそうです。ただし、REINDEXがメインなので、VACUUMは(このアドオンで行う事は)あまり推奨していない様です。(miyafx: sqlite 最適化 - Firefox拡張機能)

また、SQLiteの仕様上、頻繁にVACUUMを行うのは逆効果との話。
sqliteのvacuum。auto_vacuum危険 — ありえるえりあ

こちら(VACUUM)を見る限りでは、vacuumとauto_vacuumの動作もバージョンによっては異なる様なので細かい挙動については、要調査ですが。

SQLite Optimizerの設定メニューにある「終了時に(略)実行する」というのは毎回ではなく、(about:configの)指定回数毎みたいです(デフォルト10回)。ただ、再起動もカウントされてしまうので、指定回数をトリガーにした上で、確認ダイアログを出すオプションなどがあれば尚嬉しいですね。

なにかのカスタマイズで頻繁に再起動しているときに、たまに再起動が遅くなるとエラーと勘違いしたり。急いでPCの電源を切りたい時に限って10回目に当ってしまった!なんて事もありそうです。

2009/05/15

FriendFeed

FriendFeed

一言で言うとfeed aggregatorです。

ぱっと見で良い点

  • OpenIDでログイン(=GoogleのアカウントがあればOK)
  • 外部feedの集約
  • 取り込んだfeedの検索
  • 取り込んだfeedにコメント

OpenIDという点と、自分のfeedを横断的に検索可能という点だけでも利用価値があると思います。過去に書かれた解説記事と比較する限りでは、取り込み可能な対応サービスも1年で倍ぐらい増えています。

ちゃんと調べてませんが

  • private設定も可能?

イマイチな点

  • 日本語化が未完(とくにヘルプ)

Google ReaderのShared itemsはfeedを出すだけ出していても、他人のfeedを検索も出来ないし、ホットエントリーの様な集約もされていないし、と思っていたのですが、この手の外部サービスがあれば、発信元はとりあえず出すだけ出しておけばいいんですね。流行れば買収なり真似なりしてくれるでしょうし。

KNYI Jong - FriendFeed

2009/05/13

Google Subscribed Links

Googleのアカウント情報に行くと利用しているサービスが一覧されます。

その中に登録した記憶の無い物が。

Googleの検索結果に特定のサービス内のコンテンツを優先的に表示させられる。らしい。

解ったような解らないような。

少し前にShared Stuffが404になってしまいましたし、Google Baseみたいに一度触ったきりのサービスもあるので、Googleサービスもたまに棚卸をする必要がありそうです。

2009/05/10

Google Readerでtombloo

クロスポストに便利なtombloo。2種類のポスト方法があります。

  • コンテキストメニューからポスト
  • ショートカットキーからクイックポスト

一般的なサイトでの挙動はどちらでも大差無いのですが、Google Reader(多分LDRでも?)上だと若干異なります。

前者では現在フォーカスされているエントリーがポスト対象となり、後者ではGoogle Readerのページ自体がポストされてしまいます。後者でもフォーカスされているエントリーをポスト対象として欲しい。

コンテキストメニューの場合、イベント発生元の要素(=マウスポインタが置いてある要素)から遡って親要素からタイトルやリンクを取得している様ですが、ショートカットの場合、マウスの位置が関係ないので親要素の取得が出来ません。

ただ、DOM Inspectorで見る限り、フォーカスのあるエントリーは動的に"current-entry"というIDが振られる様です。なので、ID指定で要素を取得してポストする様に勝手にソース改変。

158: var ctx = update({ 159: document : doc, 160: window : win, 161: title : doc.title, 162: }, win.location); 163:// custom start 164: if(ctx.href.match('//www.google.[^/]+/reader/')) { 165: if(item = $x('id("current-entry")', ctx.document)) { 166: // Google Readerで、かつアクティブなエントリーが取得できた場合 167: // タイトル等を取得 168: var res = { 169: author : ($x('descendant::div[@class="entry-author"]/*[@class="entry-author-name"]/text()', item) || ''), 170: title : $x('descendant::a[@class="entry-title-link"]/text()', item) || '', 171: feed : ($x('descendant::a[@class="entry-source-title"]/text()', item) || $x('id("chrome-stream-title")//a/text()')), 172: href : $x('descendant::a[@class="entry-title-link"]/@href', item).replace(/[?&;](fr?(om)?|track|ref|FM)=(r(ss(all)?|df)|atom)([&;].*)?/,''), 173: }; 174: 175: // この後ポストフォームで、ctx.titleとctx.hrefが使用される 176: // ので、勝手に書き換える 177: ctx.title = res.feed + (res.title? ' - ' + res.title : ''); 178: ctx.href = res.href; 179: ctx.host = res.href.match('http://(.*?)/')[1]; 180: } else { 181: // Google Readerだが、アクティブなエントリーが無い場合 182: // 何もしない 183: } 184: } else { 185: // Google Reader以外の場合 186: // 何もしない 187: } 188:// custom end 1403: // ドキュメントタイトルを取得する 1404: var title; 1405:// custom start 1406: if(typeof(ctx.title) == 'string'){ 1407: // ctx.title設定済みの場合、ドキュメントタイトルに優先する 1408: title = ctx.title; 1409: } else 1410:// custom end

いささかスマートさに欠ける方法ですが、とりあえず目的は達成。

残る問題はSBM経由だとタイトルに余計な文字が入ることです。例えばDelicious/networkだとタイトルに"[from {user name}]"というプレフィックスが入ってしまいます。非同期でオリジナルソースページにアクセスしてタイトル取得とか、良くあるプレフィックスリストを作って削除、とかする必要がありそう。

2009/04/30

Gmail on iGoogle

Gmailの設定で「常にhttpsを使う」にしていると、iGoogle上のガジェットではinboxの表示が出来なくなったようです。自分の環境由来の不具合ではない模様。

自分はiGoogleのアドレスを"https://www.google.com/ig?hl=ja"にしていたので、見えている物だと思っていたのですが、iGoogle自体がhttpsだろうと、iGoogleとGmail間の通信は関係なかったのでしょうか。

iGoogleでGmailガジェットが利用できなくなったときの解決策? | りょーちの駄文と書評

2009/04/28

Google Toolbarを設定する

自分のGoogle Toolbarの用途は以下の三つ

  1. Web検索
  2. ページ内検索
  3. マウスオーバー辞書
Web検索

デフォルトの検索ボックスはFirefox標準のカスタマイズ機能で消す。Google Toolbarをトグルさせるショートカットキーを設定する。

ページ内検索

ボタン類はFirefox標準のカスタマイズ機能で可能な限り消す。[Google ツールバーオプション]画面 > [検索]タブ > [ウェブ閲覧ツール]の中にある、[検索キーワードのハイライト表示]と[ウェブページで単語を探してハイライトします]というチェックボックスをONにする。これでデフォルトのページ内検索(Ctrl+F)は不要になります。

マウスオーバー辞書

[Google ツールバーオプション]画面 > [ツール]タブ > [翻訳]チェックボックスをONにする

この時点でこんな感じになります。

問題が2点

オプションボタンが消せない

検索ボックスの右隣にあるボタンです。オプション画面を開いたり、検索を切り替えたり(Web/画像/地図など)できますが、要りません。ver.5からは、ツールバーを右クリックでオプション画面が開けるようになりました。また、検索切り替えは検索後でも出来ます。

翻訳ボタンが消せない

Firefox標準のカスタマイズ機能で消せますが、消すとマウスオーバー辞書が使えなくなります。マウスオーバー辞書を有効にすると翻訳ボタンも表示されます。ページ全体の翻訳は滅多にしないので邪魔です。

そこで、DOM InspectorStylishです。これら二つのボタンは独立したXULオブジェクトとして、IDが振られている様ですので、ID指定で隠します。

@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); #gtbSearchButton, #gtbTranslateMenu { display : none !important; }

これで自分の使いたいボタンだけ表示されました。

一日の内で、最も長く使用するアプリのUIが自在にカスタマイズできるというのはすばらしいと思います。どうでもいい人にとっては本当にどうでもいいでしょうが。

2009/04/25

Friend Connect管理画面でBloggerの情報を見る

Blogger以外のサイトにGoogle Friend Connectのガジェットを追加した場合、Friend Connectのページから管理情報を参照できます。

しかし、Bloggerに設置した場合、Bloggerのダッシュボードから参照できる情報は内容が異なります。

前者の管理画面の各メニューは、設置サイトの管理IDを後ろに付けた下記のURLで表示されています。

http://www.google.co.jp/friendconnect/admin/site/metrics?id={site id}

そのため、サイトIDさえわかっていれば、Bloggerに設置したFollowersガジェットの情報も見られるようです。 明らかに表示内容が変化しているので多分合っていそうですが。

とりあえず、サイトIDを調べる手っ取り早い方法は、設置したブログのソースを表示して"site:"で検索すると以下の様なコードが見つかるはずです。

この"site:xxxxxxxxx"の数字部分を上記のアドレスにくっつければ、強引ですが見られます。Blogger以外のガジェットを何かしら追加したアカウントであれば、"Reports"や"Site Settings"などのメニューが表示されるので、とりあえず表示→最後のIDだけ張替え、で全てのメニューが確認できると思います。

一度もBlogger以外のサイトにガジェットを登録していないアカウントだとメニュー自体表示されていないので、URLを直打ちする必要があります。

Google Friend Connectはどこにどういったデータが保存されているのか、データモデルがイマイチ見えないので統一的な管理コンソールが欲しいところです。設置者用にも、利用者用にも。

ちなみに上記の「Blogger以外のサイト」として利用したのはGoogle Page Creatorです。Google サイトではhtmlファイルのアップロードが出来なかったため、設置できませんでした。明らかに代替として用を成していない辺りも気になります。

Reports
http://www.google.co.jp/friendconnect/admin/site/metrics?id={site id}
Site settings
http://www.google.co.jp/friendconnect/admin/site/settings?id={site id}
Social bar
http://www.google.co.jp/friendconnect/admin/site/socialbargadget?id={site id}
Members gadgets
http://www.google.co.jp/friendconnect/admin/site/membersgadgets?id={site id}
Social gadgets
http://www.google.co.jp/friendconnect/admin/site/osgadgets?id={site id}
Moderate posts
http://www.google.co.jp/friendconnect/admin/site/postmoderation/main?id={site id}&count=10
Manage members
http://www.google.co.jp/friendconnect/admin/site/visitors?id={site id}
For developers
http://www.google.co.jp/friendconnect/admin/site/jsapi?id={site id}
Plugins
http://www.google.co.jp/friendconnect/admin/site/plugins?id={site id}

2009/04/23

Google Toolbarを更新する

なぜか知りませんが、Google Toolbar for Firefoxのバージョンがあがっていませんでした。

アドオンマネージャでは"3.1.20081127W"。[更新を確認]しても、「更新は見つかりませんでした」。しかし、Google ツールバーを見ると、「Google ツールバー5をダウンロード」の表記。

試しに、そのままインストール(多分上書き)してみると、"5.0.20090324W"にあがっていました。こちら(Google ツールバー :: Firefox Add-ons)ではダウンロード前にマイナーバージョンまで解りますね。

Googleのアプリはインストール経路が幾つかあるので、以前はどこからどう入れたのか覚えていませんが、意図的にGoogle Toolbarの更新を止めたいといったサイトも見つかるので、自分も似たようなことをしていたのかもしれません。

2009/04/22

BloggerのFollowerになる(Googleアカウント版)

Google Friend Connectを利用して設置されている"Followers"を介して特定のブログのFollowerになる方法です。ブログの表示設定が日本語の場合、"Followers"は「読者」と表示されます。

  1. OpenIDを取得する

    • Googleのアカウント
    • mixiのアカウント
    • はてなのアカウント
    などを持っていれば利用できます。

  2. 設置しているページを見つける

    こんなガジェット(Bloggerウィジェット)を設置しているページを見つけて下さい。
    私はBloggerの旧Follower機能で読者指定して下さっていた、お二方のページで登録させて頂きました。

    現在自分のブログにも設置してあります。 見た目的にはmixiでいうマイミクに似ていますが、mixi程相互に強い繋がりではないので、ソーシャルブックマークやトラックバック程度のつもりでお気軽にどうぞ。
    *当該サイトでのCookieを許可する設定にして下さい

  3. アカウントを選択する

    [読者になる]ボタンを押すとどのアカウントでログインするか聞かれます。ここでは[Google]を選びます。

  4. ログインする

    見慣れたGoogleのログイン画面が表示されます。
    スクリーンショットではアドレスバーをトリムしてありますが、必ずアドレスが"https://www.google.com"で始まっているか、錠前アイコンがきちんと表示されているか確認してください。

  5. 公開範囲を設定する(簡易)

    他の人が当該サイトを訪れた際、読者一覧に自分を表示するか、表示しないかを決めます。 [詳細オプション]を押すともう少し細かい設定が可能です。詳細に設定しなくても進めます。

  6. 公開範囲を設定する(詳細)

    選択できる内容が増えます。

    [現在Bloggerプロフィールを使用しています変更]

    Googleのアカウントでログインした場合、Blogger用のプロフィールとGoogle用のプロフィールが選択できます。また、そのどちらでもない、このサイトだけの表示も可能です([変更]を押した後で[リンク解除]を押す)。

    [次の読者になっています 一般公開]

    簡易画面での自分が読者になっていることを公開/非公開にする設定です。さらに[プロフィールにこのサイトを含める]で、他のサイトの読者になっているかを表示/非表示にできます。
    他の読者登録しているサイトで、第3者が自分のプロフィールを見た際に[参加しているサイト]欄にこのサイトを表示するかどうか決められます。

    [このサイトでソーシャル ネットワークから友だちに接続]
    後で調べる
    [参加している他のサイトに履歴を公開する]
    プロフィールの[参加しているサイト]欄の下に履歴が表示されます。いつ、どのサイトの読者になったかが表示されます。

  7. 完了

    完了後にFollowersガジェットを見に行くと[読者になる]ボタンのあった位置にプルダウンが表示されます。

  8. 再設定

    上記6のプルダウンから、[サイトの設定]を選択する事で、4-5の設定画面に戻れます。

  9. 他のサービスとの連携

    Googleの場合既に幾つかの別のサービスと連携しています。

    Blogger

    Bloggerを利用していれば、ダッシュボードに[読者になっているブログ]一覧が表示されるようになります。
    下にある[管理]ボタンを押すと先ほどの設定画面を開いたりも出来ます。

    Google Reader
    Google Readrerを利用してれば、サイドバーの購読一覧に読者になったブログが自動で追加されます。

  10. 読者をやめる

    上記5の詳細設定画面から、[このサイトの読者をやめる]を押します。Google Readerの購読一覧から削除してもFriend Connect上の読者一覧からは消えません。

2009/04/20

Google Friend Connect

遅まきながら調べて見ました。ダッシュボードのFollowers表示が気になっていたのですが、放置しっぱなしで失礼致しました。

統一感のある日本語の解説サイトが見つからず、なんとも全体像が掴みにくいのですが、ざっと見た感じ。

  • mixi見たいなSNS的な機能がブログやその他のサイトに設置できる
  • 設置する側(サイト管理者側)はファイルアップロード(FTP等の)できるサービスが必要 *1,*2
  • 利用する側はOpenIDが必要(Google,Blogger,Twitter,mixiのOpenIDなど)*3

*1:Bloggerはアップロードしなくても使えるようになっている。
*2:あくまで現在公開されている「読者」機能の場合?
*3:mixiのログインIDとは異なる。

例えば、Bloggerの"Followers"、日本語設定だと「読者」機能の場合。 設置したブログにmixiでいう「マイミク」の様なガジェットが表示される。

Google Friend Connectサーバ(という物が便宜的にあったとして)上に、サイトのURL+OpenIDという二つのキーでプロフィールが登録されるイメージだと思っています。

当該サービス(当該サイトで提供しているサービス)の専用IDを使わず、OpenIDを使う利点は当然、既存のソーシャル情報を流用できるからです。

例えば、Bloggerの「読者」機能でも、GoogleIDで登録すると*4、Googleのプロフィールからアバター画像、ハンドルネーム、そのたプロフィール情報が取得できます。既に設定されている個人のプロフィールを追加設定して二重管理する必要がなくなります。

*4:解りにくいのですが、GoogleのIDにはGoogleのプロフィールとBloggerのプロフィールが両方関連付けられている様です。一度もBloggerを利用していないGoogleのIDを使用したところBloggerのプロフィールは表示されませんでした。あとから追加する事も外す事もできます。

当然、mixiのOpenIDでログインすれば、mixiのハンドルネームが取得できます。マイミクの情報やコミュニティの参加情報はBloggerのFollowersでは流用しない様ですが。

端的に言うと、これまでの「コンテンツ・サービス提供者」=「ID・プロフィール管理者」という構図が、「コンテンツ・サービス提供者」≠「ID・プロフィール管理者」になるだけです。

全然まとまらないですが、最も注意する点が一つ。

mixiで登録したプロフィールがBloggerでも、その他のGoogleサービスでも、twitterでも、はてなでも流用できたら楽かもしれません。が、一回の登録が他に波及するということは、一回の失敗が全体に波及する、ということです。mixiでも住所や出身地、実名のそれぞれに公開範囲を設定している様に、OpenIDを使用する場合、まず自分がプロフィールにどんな入力をしていて、何が何処まで公開されているのか事前に確認した方が良いかと思います。

特に「Googleのアカウント=Gmailのアカウント」だった時代にアカウントを作成したっきりの人は、公開用のプロフィール情報をきちんと作成するか、個人情報の登録内容を再確認することをお勧めします。

また、GoogleのIDでFollowers登録し、かつBloggerを利用している場合、Bloggerのダッシュボードで自分がどのサイトに登録しているのか一覧できます。しかしmixiのOpenIDで登録した場合、登録したサイトに行かないと自分の登録情報が閲覧・変更・削除も出来ません。mixiの設定情報画面にはGoogle Friend ConnectでOpendIDを利用したことしか記録されていないので、登録したサイトそのものを忘れてしまった場合、何処で確認できるのか解りません(未調査)。

ここまで来てなんですが、Google Friend Connectではなく、オープンソーシャル一般論になってしまいました。

Googleのプロフィール
Google Accounts
Bloggerのプロフィール
Blogger:Dashboard
Dashboard > View Profile

2009/03/20

マウスジェスチャの見える化

コンセプトモデルです。実用には至ってません。

svg_gesture.xhtml

リンク先を開いてもソースが見えるだけなので、ダウンロードしてから開く必要があります。

右クリックすると、マウスポインタの周りにパネルが表示されます。表示されたパネルの上にマウスを移動すると移動した先のマウスポインタの周りに再度パネルが表示されます。

作業環境はFirefox3.0.7。右クリック禁止スクリプトの許可や他のマウスジェスチャをオフにしておかないとおかしなことになります。

これで、最終的に右クリックボタンを離したときに通った軌跡にコマンドを割り振れれば、マウスジェスチャっぽくなるかなと。

仮想的な奇跡を計算するより、コンポーネント配置してマウスイベント取った方が早いんじゃないか、と思ったコンセプトモデルです。次の一手が見えた方が思い出す手間も減りますし。

マウスジェスチャと聖剣伝説タイプのランチャの中間みたいなのが欲しいのです。

2009/03/08

Googleサービスのfaviconいくつか

Google Readerのフィード追加ブックマークレットにはfaviconがないため、Firefoxのフィード追加アイコン(アドレスバーの右端に出る奴)を流用していたのですが、Google Reader自体のfaviconと見間違えることが多いため、Readerの方を変更。

なぜか知りませんが、Firefoxの特定のProfileだけ、Google Readerのfaviconが32x32版のアイコン(を16x16に縮小表示)だったため、他のProfileでもそれを流用。

加えて、Note&Shareのブックマークレットもfaviconがないため、Readerのサイドバーから流用。こちらはスプライト画像のため、自分でトリムする必要がありました。

また、tasksのfaviconがなぜか透過されない、と書きましたが、透過版(png)と非透過版(ico)の2種類があるようです。Google Chromeではブックマーク時になぜかpngが使用されたようですが、Firefoxではicoの方が使用されたようです。これも手動で変更。

faviconの変更はFavicon Picker 3 0.5を使用。最近のFirefoxはbookmarks.htmlを変更しても反映されないようです。履歴やブックマークをDB(sqlite)化しているとかなんとか。

Favicon Pickerはローカルの画像ファイルしか扱えないようなので、下記の手順を踏む必要があります。

  1. 当該画像だけを表示
  2. デスクトップにドラッグ&ドロップで保存
  3. ブックマークのプロパティから変更

また、ブックマークのプロパティを保存しなくても(キャンセルしても)faviconは変わってしまうので要注意です。

Reader(デフォルト)
https://www.google.com/reader/ui/favicon.ico
Reader(32x32)
https://www.google.com/reader/ui/573007822-app-icon-32.png
Reader(64x64)
https://www.google.com/reader/ui/4283503602-app-icon-64.png
Reader(スプライト)
https://www.google.com/reader/ui/972236033-lhn-sprite.png
tasks(非透過)
https://mail.google.com/tasks/res/favicon.ico
tasks(透過)
https://mail.google.com/tasks/res/favicon.png

2009/02/26

Gmail Tasks

PC用
https://mail.google.com/tasks/ig
モバイル用
https://mail.google.com/tasks
PCでモバイル用
https://mail.google.com/tasks/m

Firefoxだとブックマークして「サイドバーに読み込む」でサイドバーガジェットに。ただfaviconが、Chromeだと透過されるのに、Firefox3.*だと透過されませんでした。

これとカレンダーのオフライン化が無料版で出来ればChromeがオフラインOfficeスイートに。

2009/02/25

FirefoxのProfileを縮小

ついでにプロファイルを作り直してみた。 どれだけゴミが溜まっていたのか、プロファイルのサイズが76MB→38MBまで小さくなった。

これを見て、思い出しました。FirefoxのProfile配下にはsqliteのDBファイルが幾つかあります。sqliteは一度拡張すると、データを消しても小さくならないようです(デフォルトでは)。

そこで、sqliteにはvacuumという余分な空白を圧縮してファイルを縮小する機能があるそうです。他のDB(PostgreSQL等)にもあるみたいですが。

どのファイルがどういう役目なのかはググればいいとして、圧縮にはコマンドラインのsqlite以外にFirefoxのアドオンsqlite-manager - Google Codeも使えるそうです。

  1. SQLite Managerをインストール
  2. profile下の適当に大きい*.sqliteファイルを探す
  3. SQLite Managerを開く
  4. [Database] > [Connect Database]で当該ファイルを開く
  5. [Database] > [Compact Database]で圧縮

なぜか"vacuum"ではなく"Compact Database"です。その方が直感的ですが、関連付けがあれば尚解りやすい。"Compact Database(vacuum)"など。

SQLite Managerでは他にも、profileディレクトリにあるsqliiteファイルを一覧してくれるプルダウンもありますが、なぜか私の環境ではこのプルダウンをでファイルを選択->Compact Databaseではうまく機能せず、ファイルが圧縮されませんでした。

ちなみに、ファイルサイズですが

urlclassifier3.sqlite
50数MB->15MB強
urlclassifier2.sqlite
15MB前後->6MB強

程度の圧縮率だった気がします(記録忘れ)。これらのファイルは危険なサイトのブラックリストらしいので、警告機能をONにしている限り肥大化していきます。profileごと作り直すと当然小さくなります。

警告をOFFにすることでディスクアクセスも減らせるようですが、その辺は危険度と速度のトレードオフになるようです。

ほかにplaces.sqliteなども履歴ファイルなので肥大化するようです。私はUSBで持ち運ぶ前提でキャッシュのサイズや履歴の日数を少なくしていたので、それほど大きくなっていませんでした。

2009/02/24

Google Chromeのポータブル化

Google配布のGoogle ChromeとPortable Google Chrome 2.0.164.0 - Caschys Blog配布のPortable Google Chrome(以下Portable Chrome)の違いをテスト。手動ポータブル化時に勝手に生成されるようなレジストリキーがProtable Chromeでは作成されないのかを確認。

結論から言うと、作成されます。

起動後に以下のレジストリキーが追加された。

[HKEY_CURRENT_USER\Software\Google\Update\ClientState\{8A69D345-D564-463c-AFF1-A69D9E530F96}] "dr"="(値省略)"

タブを開いたり、閉じたりすこし作業した後にChromeを終了。終了後に以下のレジストリキーが追加された。

[HKEY_CURRENT_USER\Software\Google\Common\Rlz\Events\C] "C1I"=dword:(値省略) "C2I"=dword:(値省略) "C1S"=dword:(値省略) [HKEY_CURRENT_USER\Software\Google\Common\Rlz\PTimes] "C"=hex(b):(値省略)

ほぼ、同じです。Portable ChromeとGoogle Chromeの違いというより、その時の操作に依存しそうです。

API Hookなどでレジストリの書き込みを抑制している(そういう事が出来るというのを今回知りました)のかと思ったのですが、そういうわけでも無いようです。Portable Chromeでも「レジストリ汚染されない為に」という目的は達成されません。

Portable Chromeでは、手動ポータブル化の際に事前に追加したキーは、無くても起動できました。ただし、

  1. 一回目:当該キーが自動生成
  2. (終了後、当該キーを手動で削除)
  3. 二回目:当該キーが無いまま起動

と、当該キーの必要性がいまいちわかりません。(1回目の自動生成が見間違いの可能性もあり)

Portable Chromeでは以後、当該キーが無いまま起動・終了できますが、手動でポータブル化したGoogle Chromeでは当該キーが無いと絶対に起動できませんでした。

2009/02/23

Google Chromeのポータブル化

Google配布のChromeインストーラを一度も実行していないオフライン端末(XP SP2)にファイルコピーだけで動くかのテスト。

インストール済み端末のデフォルトのインストールフォルダから、必要ファイルを以下にコピー

D:\home\hoge\.google\Chrome\User Data
D:\usr\local\opt\Google\Chrome\Application

下記ショートカットで起動

D:\usr\local\opt\Google\Chrome\Application\chrome.exe --user-data-dir "D:\home\hoge\.google\Chrome\User Data"

うんともすんとも言わない
起動時に必要なレジストリキーがあるらしい。ぽっとの陽だまり研究室 : Google Chrome をUSBメモリで起動する試み

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Google] [HKEY_CURRENT_USER\Software\Google\Update] [HKEY_CURRENT_USER\Software\Google\Update\Clients] [HKEY_CURRENT_USER\Software\Google\Update\Clients\{8A69D345-D564-463c-AFF1-A69D9E530F96}] "name"="Chrome" "pv"="1.0.154.48"

前述のショートカットで起動->成功

--user-data-dirで指定したフォルダの下に"Default"フォルダを(無ければ)自動作成する。Defaultまで指定してしまうと、D:\home\hoge\.google\Chrome\User Data\Default\Default\というフォルダが作成されてしまう。

起動後に以下のレジストリキーが追加された。

[HKEY_CURRENT_USER\Software\Google\Update\ClientState\{00058422-BABE-4310-9B8B-B8DEB5D0B68A}] "dr"="(値省略)" [HKEY_CURRENT_USER\Software\Google\Update\ClientState\{8A69D345-D564-463c-AFF1-A69D9E530F96}] "dr"="(値省略)"

タブを開いたり、閉じたりすこし作業した後にChromeを終了。終了後に以下のレジストリキーが追加された。

[HKEY_CURRENT_USER\Software\Google\Common\Rlz\Events\C] "C1F"=dword:(値省略) "C1I"=dword:(値省略) "C2I"=dword:(値省略) "C1S"=dword:(値省略) [HKEY_CURRENT_USER\Software\Google\Common\Rlz\PTimes] "C"=hex(b):(値省略)

これらの、レジストリキーを生成・削除する起動スクリプトを作らないと、完全ポータブル化とは行かないようです。 ただ、作ったり、作られなかったり、キーによってまちまちなので、網羅するのは面倒そうです。

2009/02/22

".NET Framework Assistant 1.0"の削除の仕方。

2009-07-15 追記

現在、より簡単に削除する方法が提供されているそうです。

Mozilla Re-Mix: Firefoxから[Microsoft .NET Framework Assistant]を簡単に削除する方法。

マイクロソフトのテロ行為に対する対処法。背景は後述。

レジストリキーの削除
HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Firefox\extensions\{20a82645-c095-46ed-80e3-08825760534b}
未確認:レジストリを削除しただけだと、実体ファイルは残る?ディスクスペースの無駄にならないか。
実体ファイルの削除
C:\WINDOWS\Microsoft.NET\Framework\v3.5\Windows Presentation Foundation\DotNetAssistantExtension
未確認:実体ファイルを削除しただけだと、毎回起動時にレジストリキーを参照する?起動時間が遅延しないか。
prefsの修正
general.useragent.extra.microsoftdotnet
インストールされた状態で、一度でも起動したprofileはprefs.jsかabout:configでキーを削除。about:configの場合、キーの設定値をリセットして再起動すると消える。

以下、背景。

Microsfot Updateを行うと、.NET Framework 3.5 SP1がインストールされる。

.NET Framework 3.5 SP1がインストールされると、FirefoxにMicrosoft .NET Framework Assistant 1.0というアドオンがインストールされる。

このアドオンが最悪な点は、以下の4つ。

  • インストールに関して、事前の説明がない。
  • インストールに関して、ユーザの同意を得ない。
  • デフォルトの削除手段が提供されていない。
  • ユーザエージェントが改竄される。

ユーザエージェントの後ろに"(.NET CLR 3.5.30729)"なんて文字列が追加されるのは、まるで「馬鹿」と書かれた紙を背中に張られる類の胸糞の悪い悪戯だ。正直吐き気がする。

なぜ、このアドオンが「悪意あるソフトウェアの削除ツール」で削除されないのか不思議でならない。

マルウェアの定義 : FAQ - Microsoft Technet
http://technet.microsoft.com/ja-jp/library/dd362857.aspx

Q. マルウェアの問題を防ぐ方法の要約はありますか?

はい、以下をご覧ください。

現在、コンピュータユーザーにとっての最大の問題は、ウイルスおよびスパイウェアの 2 つです。これらはいずれも問題ですが、以下のような対策を計画的に行うことにより、容易にコンピュータを保護することができます。

* コンピュータのソフトウェアに常に修正プログラムを適応し、最新の状態にしておきます。オペレーティングシステムおよびウイルス対策ソフトウェアを定期的に更新する必要があります。

* 信頼できるソースからの修正プログラムのみをダウンロードします。Windows オペレーティングシステム向けには、常に Windows Update を訪問し、そのほかのソフトウェアは常に、製造元の会社または人物の正規の Web サイトを使用してください。

* 何かをインストールする前には常に考え、リスクと利益を秤にかけてください。長期使用許諾契約は読むのが嫌になりますが、その中にスパイウェアがインストールされる警告が隠されていませんか?

2009/02/08

Google Chrome ポータブル化

コンマンドラインオプションに以下を指定するだけでいいらしい。

--user-data-dir

本体(chrome.exe)のインストール先がProgram Filesではなくprofileフォルダなのは、移行の容易さを考慮してなのか、ベータだからなのか知りませんが、便利なことは確かです。profileフォルダを移動していなければ、chrome.exeからの相対パスで指定するのが楽です。

Gmailがオフライン対応したことで、Gmail、Reader、Docsのオフライン用ブラウザとして持ち歩く選択肢が出来ました。実際、持ち歩くと仕事サボりまくりでしょうが。

起動オプション - Google Chrome まとめWiki http://chrome.half-moon.org/43.html#p2661204 “遊び用ちょろめ”と“仕事用Chrome”を使い分ける http://www.itmedia.co.jp/bizid/articles/0809/10/news109.html

ただ、ブログ投稿用としては、Snap linksやCopy URL+が使えないと不便です。

2008/12/13

Google Readerの外枠を非表示

ちょっと前に新しくなったGoogle Readeでエントリーの表示領域以外を非表示にするCSSです。Stylishで適用しています。

@namespace url(http://www.w3.org/1999/xhtml); @-moz-document url-prefix("https://www.google.com/reader/view/") { #gbar ,#global-info ,#logo-container ,#search ,#chrome-header ,#viewer-header ,#viewer-footer { display : none !important; } #main { top : 0px !important; } }

以前の非表示スタイルシートは検索ボックスなどが残っていたけど、今回は完全に非表示。Reader内検索をよく使う人は、特定のアクションで検索ボックスだけ表示するような、改良が必要です。

むしろ、Firefoxの検索窓からReader内検索を呼び出したりする方が(出来るなら)楽そうな気もしますが。

2008/11/03

確認せずにブックマーク

FreifoxでCtrl+Dを押した際に、確認ポップアップが表示されるのが邪魔です。

Firefox3.0からはアドレスバーの☆アイコンをクリックすると確認せずにブックマークされるので、ショートカットでも可能なはず。

というわけで、keyconfigでCtrl+Dを下記ユーザスクリプトに置き換えてみました。

PlacesCommandHook.bookmarkCurrentPage(PlacesStarButton._starred);

とりあえず、ローカルのブックマークはこれで、確認無しに行けます。本当はローカルとオンラインのブックマークをキー一発で確認せずに複数同時に出来るといいんですが。

☆アイコンのイベントを調べると、PlacesStarButton.onClick(event);なるイベントが。そのままだと動きません。

そこで、alert(PlacesStarButton.onClick);してみると下記画像。

ブックマーク自体はPlacesCommandHook.bookmarkCurrentPageで行っていて、現状をPlacesStarButton._starredに持っている事が伺えます。

_starredとか明らかにprivateな目的のプロパティっぽいですが。適当にいじれてしまうのがJavaScriptの良い所ですが、次期バージョンではどうなるんでしょうか。

2008/09/28

feed url

feedburner.com が feedproxy.google.com へ - F.Ko-Jiの「一秒後は未来」

feedburnerは便利そうだと思いつつも、ドメインが違うのが嫌だなぁと思って使っていなかったのですが、コレは朗報。

しかし、よく考えるとBloggerはblogspot.comなんですね。結局違うことに変わりは無いのか。

2008/09/20

Google Chrome

Google Chrome - ブラウザをダウンロード

今更第1印象ですが、今まで使った中ではOperaに一番近い感じがします。たしかにキビキビ感があるけどなんとなく動きが硬い。

残念ながら私の環境ではネット上で言われるほどの速さは体感できず。最近では一番閲覧時間が長いと思われるGoogle Readerの表示がスムーズではなかった(Fx3.*比)のが一番痛い。スクロールがガクガクします。

でも、現在コレを投稿しているBloggerのPosting画面は表示もキレイでスムーズですね(Fx3.*比)。

safariの評判でも良く「フォントがキレイ」と聞くのでWindows版のsafariを入れて見ましたが、字がにじんでいる様に見えてイマイチ「キレイ」さが体感できず。やっぱり自宅のPC環境が一つしかないのが問題かと思われます。

2008/09/01

Firefox3+対応

2.*系のprofileで3.*の更新通知が出た際にうっかりYESを押してしまいました。共存させていたのに両方とも3.*系に。

マイナーバージョンだけ受け取りつつ、メジャーバージョンアップの更新通知だけ抑止できるんでしょうか。

2008/07/29

プログラムの連続起動はShift+クリック

Windowsのスタートメニューは一つ選んでクリックすると閉じてしまいますが、Shift+クリックするとスタートメニューが閉じないので2,3個連続でアプリが起動できます。

ぴたすちおとAutohotkeyとTClockは終了してから試したので多分Windows本来の機能だと思いますが。

ずっと前に見た気がするけど、実際に自分の生活で利用シーンがないと右から左に抜けていきます。

2008/07/27

Firefox3+対応

(function () { var menubar = document.getElementById('gtbToolbar'); if ( menubar.getAttribute('collapsed').search(/true/i) != -1 ) { menubar.setAttribute('collapsed','false'); menubar.setAttribute('hidden','false'); // 検索ボックスにフォーカス GTB_getToolbar().appContext.GTB_OnSearchBoxFocusKey(document); } else { menubar.setAttribute('collapsed','true'); } document.persist(menubar.id, "collapsed"); })();

Googleツールバーの表示/非表示を切り替えるショートカットキーをCtrl+Eとして登録しました。

Fx1.*の後半あたりから、検索にはFirefoxの検索ボックスでもGoogleのGoogleツールバーでもなくサードパーティー製のgooglebarシリーズを使っていました。主な理由は「表示/非表示が切り替えられるから」。他にも細かい点はありますが。

メインの端末が1024x768のノートPCという制約があるため、使わない部品が常駐されると表示領域が狭くなります。Googleツールバーの場合、右クリックから切り替える必要があるのでメンドウだったのです。

しかし最近になってFirefoxのメニューバーを消すで書いたような方法で、どのツールバーでも自由にトグルできることがわかりました。

検索にはgooglebarを入れて、マウスオーバー辞書が欲しいのでGoogleツールバーも入れてましたが、晴れて一本化できます。googlebarには長いことお世話になりました。

ただし、Googleツールバーは表示しただけでは検索ボックスにフォーカスが当らず不便なので、ソース中の「検索ボックスにフォーカス」の部分を追加しています。

「検索ボックスにフォーカス」は(多分)GoogleツールバーをインストールするとAlt+Gに割り当てられるGoogleツールバーの機能だと思います。keyconfigで一覧を眺めていたら見つけたのでそのまま流用。

googlebarではトグルキーはデフォルトでCtrl+Gだったような気がするので長年そちらを使っていましたが、どこだかで「検索ボックスへのフォーカスはCtrl+Eに統一すべきだ!」というのを見かけたのでそちらを採用しました。この際なので他のProfileもいっぺんに変更して統一しました。

ついでですが、Googleツールバー(googlebarもだけど)はキーワードボタンを表示することでWeb検索だけでなく、ページ内検索も兼ねるので便利ですね。これがあればCtrl+Fとか使う必要ないので、検索=Ctrl+Fとしてキーバインドは上書きしてしまってもいいかも知れない。

ただしキーワードボタンを表示するためには、ある程度横幅必要なので、ツールバーとして1段確保しないといけませんが。そうすると常時表示は邪魔なのでトグル必須になりますが。

2008/07/24

Firefoxのオプション画面を表示する関数

オプション画面を表示(Ctrl+Shift+O)

openPreferences();

メニューから呼ばれる処理の探し方がわかったので、オプション画面を追加。一番あってもよさそうなのに、なぜかショートカットが無いので、keyconfigで追加。

2008/07/21

Firefox3+対応

keyconfigがFx3に対応してくれたので、一念発起して複数あるProfileを順次Fx2から3に移行することにしました。そこかしこに情報が溢れているので調べればどうとでもなりますが。

とりあえず、アドオン画面を開いたり閉じたりする回数が多いので、先ずそこから。

  1. アドオン画面の表示(URL)

    chrome://mozapps/content/extensions/extensions.xul

  2. アドオン画面の表示(ショートカット)

    BrowserOpenAddonsMgr();

  3. Firefoxの再起動

    var appStartup = Components.interfaces.nsIAppStartup; Components.classes["@mozilla.org/toolkit/app-startup;1"] .getService(appStartup).quit(appStartup.eRestart | appStartup.eAttemptQuit);

既存のProfileをFx3で開いたらkeyconfigの設定が幾つか消えてしまっていたので、ショートカットキーから設定し直し。

上記リストの1はブックマークにでも入れ、2と3はkeyconfigでショートカットに追加します。2の関数はツールメニューのイベントをDOM Inspectorで眺めてたら見つけたのですが、keyconfigでキーを割り当てても、ツールメニューにアクセラレータキーは表示されないので、もっといい方法があると思います。

2008/06/22

セミコロンでフォーカス部のフォントを拡大

Google Readerで;(セミコロン)を押すと現在フォーカスされている場所のフォントが大きくなります。

All items/Starred items問わず。Expanded view/List view問わず。サイドバーのsubscriptionsもフォーカスのあたっている部分が大きくなっています。何かのアドオンの所為かと思ったのですが、safariでも出来ました。

これは、がーっと流し読みする時に便利かも。

ヘルプに載っていないので戻し方が分かりません。リロードすると戻りますが、逆にその状態を保存する方法もあるのか無いのか分かりません。

2008/05/19

ウィルスセキュリティゼロ

Firefoxが更新された、と毎回訊ねてくる。
Fxの2と3を混在させていると、起動の度に聞いて来ます。パスが違っても同じとみなされるのでしょうか。ノートン先生を使っていた時(Fx2のβ時)はどうだったか覚えていない。
AutoHotkeyが隔離される。
EXE化した自作のスクリプトがリスクウェアとかいうのに分類されます。確かにリスクはありますが。ウィルスバスターでは引っかからないので仕様の問題か。

確か3ライセンスだったけど、次の端末には入れないと思う(開発に使う場合)。あやしぃ事をしない端末で最低限の安心感を得るためなら必要十分なソフトだと思います。

2008/05/18

コンテンツ表示比率を考える

最近個人運営でもこんな感じのサイトが増えている様に思います。

酷い時は目的のエントリーがタイトルすら初期表示領域に入らない、なんてサイトも。リーダーで気になったエントリーをタブで開いておいて後から一覧、なんてスタイルだと後から見に行った時に、そのタブが何を見ようとして開いたのか分からない(思い出せない)事があります。

Main Contentes Per Display areaなんて指標が簡単に計算できたら楽かもしれない。上の図だと3-4%位でしょうか。

読者視点で見るとこんな構成の方が良い。

フォーカスしている項目が最も目立つ
たとえばHタグのレベルをページによって切り替える。 <!-- site top page --> <h1>site title</h1> <h2>category title</h2> <h3>entory title</h3> <!-- category summry page --> <h2>site title</h2> <h1>category title</h1> <h2>entory title</h2> <!-- entory permal page --> <h3>site title</h3> <h2>category title</h2> <h1>entory title</h1>
メインコンテンツより先にサイドバーの描画をしない
レイアウト上、左側にあってもいいので、HTML上は後ろに配置してCSSかなんかで切り替える。

などをずっと考えていますが、メンドクて実行に至らない。リーダーで読めばいいような気がする。

Google Codeでソースの公開

  1. Googleのアカウントを作る
  2. Google Codeでプロジェクトを作る
  3. SVNのバージョン管理環境を作る
  4. ファイルをアップロードする
作ってみたプロジェクト
knyijong - Google Code
乗っけてみたファイル
iKnow.ahk

てっきり、[Source]タブを開くとアップロードしたファイルの一覧が見られるのかと思ってました。

[Source]はあくまでもSVNのリポジトリ。

[Downloads]はあくまでもお手製のZIPファイルなどの置き場。

ファイルへのリンクはtrunkディレクトリなどから辿っていかないと解らない。

MIME-TYPEを設定すればJavaScriptやCSSのホスティングサーバ用途にも使えるみたいですが、アクセスするアドレスは/svn/trunkでいいんだろうか。

「SVNとかメンドクサイ!」っていう人はプロジェクトを作って[Downloads]にZIPファイルなんかを置くだけでも便利は便利かもしれませんが。(DownloadsへのアップロードはWebページ上のフォームから行う)

参考

2008/05/04

GMarksがFirefox3対応

ちょっと前に更新されてFx3に正式対応された様です。

Nightlyで無理やり使えたんですが、ブックマークの追加ダイアログなんかの乗っ取りが不完全でした。

Fx2対応版まではブックマークの追加ダイアログがGMarks用とFirefox従来のものがタブで分けられ"both"チェックボックスで両方同時に、という仕様になっていました。新バージョンではタブがなく、完全に一体化。基本"both"になっているようで、FirefoxとGoogleブックマークの両方にブックマークされます。

以下は怪しい英語力での意訳です。

0.9.8の変更履歴

-Shows the key combo needed to open the sidebar in the View>Sidebars>GMarks item. Alt+M by default.
サイドバーを表示するのに必要なショートカットキーを表示させた。Alt+Mがデフォルト。

-Added an accelerator key for the GMarks menu so you can open it with Alt+G
GMarksメニューのアクセラレータキーを追加。開くにはAlt+G。
※GMarksの設定([ツール]メニュー>[アドオン]>[Gmarks]>[設定]ボタン)で[表示]メニュー>[メニュー]タブ>[GMarksメニューを有効にする]チェックボックスをOnにしてFirefoxを再起動すると、メニューバーの[ブックマーク]と[ツール]の間に[GMarks]が追加されます。

-If you are signed out, the bookmarks list inside the GMarks menu changes to a sign in menu item.
もし(GoogleアカウントをWebページ上で)サインアウトすると、サイドバーに表示されるGMarksのブックマークリストもサインイン用画面に切り替わります。 ※サインアウトした後で、GMarksサイドバーにある検索ボックス横のメニューから[クリア]を選ぶと再描画されます。

-Don't grab a favicon unless the scheme is http or https
スキームがhttp又はhttpsでない限り、ファビコンを取得しない。

-Fixed some strings that should have been localized
ローカライズすべき幾つかの文言を修正 ※(localizedが「部分的な」なのか「(日本語化などの)地域化」のどっちなのか分かりません)

-The tooltip in the sidebar now reports the title and the notes of the bookmark.
サイドバーでブックマークのタイトルとメモをツールチップで表示する。

-Fixed opening the sidebar's context menu with the keyboard
サイドバーの右クリックメニューをキーボードから開けるようにした。

-Fixed folder and bookmark icons in Firefox 3
フォルダーとブックマークのアイコンをFirefox3に対応させた

-Fixed importing in Firefox 3
インポート機能をFirefox3に対応させた

-Updated skins for Firefox 3 on winows, linux, and osx
スキンをWindows,Linux及びOSXのFirefox3に対応させた。

-Replaces the ctrl+D dialog in Firefox 3 with a new GMarks add bookmark dialog if ctrl+d integration is enabled
ctrl+Dで表示されるダイアログを新しくなったGMarksのブックマーク追加ダイアログで置き換えます。ctrl+dで一体化されたダイアログが確認できます。

-Small fixes
他、細かい修正。

FirefoxのメニューバーをStylishで消す。

@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); #toolbar-menubar { display : none; } menubar, toolbox, toolbar { border-style: none !important; }

今使っているkeyconfigがFx3に対応していないため、比較的対応の早いStylishで代用。

切り替えがショートカットキーで出来ずちょっと不便ですが、メニューバーの使用頻度が低いのを理由に非表示にしているので今のところそれほど不便は無し。

2008/04/06

iKnow!のサイドバーを右に移動

Stylish用のCSSです。

@namespace url(http://www.w3.org/1999/xhtml); @-moz-document url-prefix("http://www.iknow.co.jp/") { DIV[class="outer"] { margin-left : 0px !important; } DIV[class="center"] { float : left !important; width : 765px !important; } DIV[class="left"] { margin-left : -10px !important; } }

iKnow!のサイトってHTMLの構造が整っていて分かりやすいですね。

faviconize Google ノートブック

これ(Googleノートブックのステータスバーのラベルを消す)がStylishを使えばもっと簡単に出来ました。

ついでにポイントしている間だけラベルが表示されるように変更。

@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); #gnotes-statusbar > image { padding-right : 0px !important; } #gnotes-statusbar-lbl { display : none !important; } #gnotes-statusbar:hover > #gnotes-statusbar-lbl { display : block !important; }

2008/04/02

windows版Safari

windows版の"Apple Software Update"で勝手にSafariのインストールを推奨されるという話を見たのですが、自分のPCでは自動更新が走らなかったので、手動で入れて見ました。

○キビキビしている
Firefoxのようなもっさり感も、Operaの様なカタイ感じもなくきびきびしている。レンダリング感覚は一番好きかも。
△フォントがにじんで見える
フォントは独自の処理をしていると言う話だけど、個人的にはにじんでいるようで見づらい。
○JavaScriptとか
自分のブログのScriptとか思いのほかちゃんと動いているようです。
△ステータスバーがデフォルト非表示
怖くないですか?
○フォーカス項目にアウトライン
iTunesでも同様に水色の太枠が出ましたが、いいですねこれは。
×ブックマークツールバーにfaviconが表示されない
Firefoxのsafari系テーマでもそうでしたが、これは仕様でしょうか。ブックマークメニューには表示されるので取得していないわけではないようですが。
×ファイルメニューの消し方が判らない
個人的にファイルメニューって常に表示するものではないと思っています。
×アドレスバーと検索窓がセットになっている
個人的に検索窓も常に表示するものではないと思っています。
△設定画面にキャンセルボタンが無い
リアルタイムで変更が反映されるのは便利ですが。
○[開発]メニューは便利そう

あとは使い込めば解決しそうなものがちらほら。

2008/03/30

Firefoxのメニューバーを消す

MenuXという拡張の関数を呼んでいたのですが、復旧時に困ったので中身を見てみました。

以下はmenuxoverlay.jsの関数をちょっといじった物。

// メニューバーの表示/非表示切り替え function toggleToolbarMenubar() { var menubar = document.getElementById('toolbar-menubar'); if ( menubar.getAttribute('collapsed').search(/true/i) != -1 ) { menubar.setAttribute('collapsed','false'); menubar.setAttribute('hidden','false'); } else { menubar.setAttribute('collapsed','true'); } document.persist(menubar.id, "collapsed"); } // メニューバーの表示 function expandToolbarMenubar() { var menubar = document.getElementById('toolbar-menubar'); menubar.setAttribute('collapsed','false'); menubar.setAttribute('hidden','false'); document.persist(menubar.id, "collapsed"); } // メニューバーの非表示 function collapseToolbarMenubar() { var menubar = document.getElementById('toolbar-menubar'); menubar.setAttribute('collapsed','true'); document.persist(menubar.id, "collapsed"); }

このコード中のdocumentはブラウザのxulの事なので、ブックマークレットからは使えませんね。keyconfigとかMouse GesturesとかGreas Monkeyなどのアドオンの中から呼ばないと効かないみたいです。

復旧だけが目的なら、プロファイルフォルダにあるlocalstore.rdfを書き換えることでも、表示/非表示を切り替えられます。

<RDF:Description RDF:about="chrome://browser/content/browser.xul#toolbar-menubar" iconsize="small" hidden="true" currentset="menubar-items,wrapper-menuxOptionsToolbarBtn,spring,throbber-box" collapsed="false" />

上記の部分を探して、hiddenとかcollapsedをfalseにすれば表示されます。スクリプト中の"document.persist()"がlocalstore.rdfを書き換えている模様。

markbokil.org - software and psychology

2008/03/20

GoogleノートブックとProfileの統合

久しぶりにメインアカウントのGoogleノートブックを開いたら「Profileと統合します」とか出てきました。

Amazonで個人情報ダダ漏れが問題になっていましたが、Googleノートブックも使い方によってはアレかもしれません。

例えば「鈴木太郎」さんが居たとして、 メールアドレスが"SUZUKI.Tarou@gmail.com"だったとします。 この人はGoogle Profileの公開当時、ニックネームに"Tarou"と登録していました。

また、この鈴木太郎さんはGoogleノートブック公開時、本名からは連想できないハンドルネーム「エリック」を名乗っていたとします。

"SUZUKI.Tarou@gamil.com"のアカウントで公開したノートは今まで他人から見ると「エリックさんのノート」として公開されていました。

ところが今回のノートブックとProfileの統合により、「エリックさんのノート」だったページには「Tarouさんのノート」と表示されます。

Amazonで問題になっていた一つに、有名サイト(で公開されているメアド)の実名がばれるという物がありましたが、この「Google ノートブックとProfileの統合」も『ハンドルネームと実名がリンクされる』という点において同様の問題が発生している様に見えます。

公開ノートブックに表示される名前は「統合されます」ページで「次へ」リンクを押下してから切り替わるのか、どのノートブックでも勝手に切り替わってしまっているのかは未確認ですが。

「統合します」画面をうっかり閉じてしまったので、SSを取り損ねたのですが他のアカウントでは確認できませんでした。ノートブックの公開ニックネームとProfileが違うと表示される、などの条件があるのかもしれません。そもそも既に両方利用している人でないと出す意味もないですし。

個人情報を扱うアカウント(メールアドレス等)とハンドルネームを扱うアカウントはメンドウでも別々にした方がいいのかもしれません。「勝手に切り替えんなよ」というのが率直な感想ですが。

Firefoxアドオンマネージャのアドレス

chrome://mozapps/content/extensions/extensions.xul

Fx3β4を入れたところkeyconfigが効かなくなり、普段から非表示にしていたファイルメニューが元に戻せない事態に。

にんともかんとも行かないのでとりあえずアドオンの画面を開くために調べたら出てきました。ただし、上記アドレスでタブにアドオンマネージャを開くと[設定]押下時のポップアップが開いてくれませんでした。

また、"chrome:"で始まるアドレスはdel.icio.usでブックマークしても共有されないようです。"http"や"ftp"などの特定のプロトコル以外のアドレスは危険とみなされ強制的に"not shared"にされる様です。まぁ自分が見られるなら問題ないかもしれませんが。

2008/03/02

短いホットキーを設定する

スタートアップに登録する Polipo へのショートカットに、ショートカットキー S が設定されていました。ひでー。 polipo 入れてみた on WindowsXP - 母方の祖母にフル・ネルソン日記

引用もとのエントリーの主たる内容とは全然関係ありませんが、存じませんでしたので調べてみました。WSHで好きに変更できるみたいです。

var sh = WScript.CreateObject("shell.application"); var fl = sh.NameSpace("C:\\"); var sc = fl.parseName("test.txt.lnk").getlink; sc.hotkey=65; // "A" sc.save(); //Alt =1024 //Ctrl = 512 //Shift = 256 //A = 65 //Z = 90 //F1 = 112 //F2 = 113 //PgUp = 33 //PgDn = 34 //End = 35 //Home = 36 //Ins = 45 //Del = 46 //Pause = 19 //SclLc = 145 //Tab = 9

最後にsave()しないと反映されません。うっかり忘れると小一時間半泣きになります。