2009年04月27日

【Firefoxアドオン】うかうかしてたら

はてブのFireFoxアドオンがリリースされましたね。以前、そんなアドオンを自作したいとか大風呂敷を広げた記憶がありますが、本人も全力で忘れますから、皆さんも忘れてください。
まあ仕様としては、俺の目指していたものよりチープなわけだけど、今の俺のスキルじゃそのレベルでさえ作れやしないし、悔しさ紛れの負け惜しみにしか聞こえないでしょうな。

でもさあ、タグを順番に全部階層化って…検索機能がそれなりに強力なんだし、もはや意味ないんじゃないだろうか…ブツブツブツ…あと自動ログイン機能も無いよね…クドクドクド…

関係ないですけど俺はツヨポン擁護派です。
posted by Huwy at 19:21 | Comment(0) | TrackBack(0) | Firefoxアドオン | このブログの読者になる | 更新情報をチェックする

2008年03月09日

【Firefoxアドオン】Extension Manager Extended

Extension Manager Extended

本ブログにどんな検索ワードでお越しいただいているのかアクセス解析を見てみると、俺と同じように「Greasemonkeyなどを駆使するほどではなく、既存のアドオンを微改造して使いたい」という要求をお持ちの方が多いようです。
こうした要求にはアドオンのインストールフォルダを特定する作業が必須なわけですが、ご存知のとおりプロファイルフォルダ以下のアドオンインストールフォルダは、まったく直感的でないIDが振られています。
20080309-0002.jpg

地道に目的のフォルダを一つ一つ総当りで探すのは非常に面倒くさいですね。 一発で目的のフォルダを開くアドオンもいくつかあるようですが、俺は上記のExtension Manager Extendedを使っています。 もう2年ほど前からリリースされている古参のアドオンなので、わざわざブログで取り上げることもないんだけど・・・。
名前のとおり、アドオンマネージャを拡張するアドオンです。 IDの表示、そしてそのアドオンのインストールフォルダを一発で開くメニューを追加してくれます。
20080309-0001.jpg

まあ、それだけのアドオンなんで説明も以上ですw(え〜〜!)
では、また。(え〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜!)
posted by Huwy at 21:15 | Comment(2) | TrackBack(0) | Firefoxアドオン | このブログの読者になる | 更新情報をチェックする

2008年03月02日

【Firefoxアドオン】作ってみたいな

アドオン・アプリケーション一覧を見ていただけると分かるんですが、なんかね、ブックマーク系のアドオンがやたら重複しててすごい無駄だなあって思ってるんです。 Google Bookmarks IncSearch以外全部入れてるんすよね。
それぞれ一長一短なんで使い分けているわけですけど、同じようなものが複数あって、しかもそれが原因でFirefoxのパフォーマンスを落としてるとしたら、だいぶ愚かしいなと。
で、Dog Earsの(大したことのない)改造が上手いこといったんで、ちょっと調子に乗ってアドオン作ってみようかななんて思ってるんです。 大胆すぎ?
例によって既存アドオンの改造という形、いや今考えてるのは統合かな? つまり、GMarksLink PadgBrainDog Ears。 こってりですな^^;

ブックマークサービスは、はてながいいかな。 やっぱりソーシャルブックマークは広がりが期待できるのでいいですよね。 Googleブックマークはなんであんな地味なんだろ? 他のGoogleサービスとの連携もない(ヘッダ部分にブックマークへのリンク無いですよね?)し、そもそもここに出てないってどういうこと? あ、そういえばヘルプすらないや。 
で、はてな版GMarksがベースとなって、「あとで読む」(Link Pad)、履歴(gBrain)、しおり(Dog Ears)を一つのアドオンでサイドバー表示、っていうのを考えてます。 GMarksは階層インターフェイスだけど、タグリスト(こんな感じの)にしたいです。

えっと、変に期待させちゃうと申し訳ないんで今のうちに言っておきますけど、「こんなん欲しいな」っていうレベルですよ? 実現の見通しなんてまったく無いです。 なので一番手っ取り早いのは「誰か作って♪」って言っちゃうことなんですけど、JavaScriptやXULやCSSは後学のために触れておくべきかなと。 そんなレベルなんできっと本当に着手したら1年くらいかかっちゃうかも。 この歳で新しいこと学習するのってホントきついのよ(T_T)
とは言え、大雑把なアウトラインまで考えちゃってるんですが。⇒重いです

そもそもどっから手を着けていいのか分からんw いきなりアドオン開発なんかでなく、GreasemonkeyとかStylishとかに触れてJavaScriptに馴染んでからのほうがいいのかも知れない。
アドオン開発のHowTo本も書店に並んでいるらしいので、それが導くであろう"Hello! World."から始めるのもいいかな。

ってなわけで、先生募集w 巨乳のフェロモンむんむん女教師なんて高望みしないので、ひとつボランティアでよろしくお願い申し上げ奉り候。

■おまけ■
今んところの俺の先生達。
Lifehacker:Firefoxアドオンの作り方 - ITmedia Biz.ID
Firefox拡張機能(extension)の作り方 ― ありえるえりあ

posted by Huwy at 16:38 | Comment(0) | TrackBack(0) | Firefoxアドオン | このブログの読者になる | 更新情報をチェックする

【Firefoxアドオン】「あとで読む」をサクサク登録 - Netscape Link Pad

Link Pad

リンク先をブックマークするFirefoxアドオンです。 Netscapeの機能の移植版とのことです。
俺はGoogleリーダーを利用していますが、購読フィードのすべての記事に興味を持てる方は少ないだろうと思います。 概要を読んで興味を引かれた記事を「あとで読む」登録したい時、いちいちコンテンツを開いてからTabooなりGoogleブックマークに登録するのが正直面倒でした(まあGoogleリーダなら「スター」を付けるっていう手もありますが、「スター」は別用途で使っているので^^;)。 
Link Padはリンク上で右クリックから簡単に専用ブックマークに登録できるので、記事一覧の最初の篩い分けがスピーディーに出来ます。 もちろんリーダーに限らず、検索サイトの結果一覧などでも活躍するでしょう。
デフォルトの設定では、蓄積したブックマークからページを復元するとそのエントリは削除されるので、まさに「あとで読む」ための一時ストックに特化していると言えます。 
難点をあげるならば、長所の裏返しになりますが「リンク先しか登録できない」ところでしょうか。 
20080302-0007.jpg20080302-0006.jpg


Netscapeは使用したことがないので詳しくはわかりませんが、その文化から派生したLink Padは配色が独特です。 Firefoxテーマの雰囲気を著しく損ねてしまう場合はCSSを書き換えると良いでしょう。 俺は普通に白背景黒文字に変更しました。
インストールフォルダ/chrome/linkpad.jar/skin/classic/linkpad.css

  #linkpad_listbox {
   -moz-appearance: none;
   background-color: #FFF  ←背景:白
   color: #000;            ←文字:黒
  }
Sidebar Mixで利用可能です。 指定するパスは
chrome://netscape-linkpad/content/linkpad-panel.xul
となります。

posted by Huwy at 13:33 | Comment(0) | TrackBack(0) | Firefoxアドオン | このブログの読者になる | 更新情報をチェックする

2008年02月25日

【Firefoxアドオン】Dog Ears改造日誌その3

5五里霧中、暗夜行路、急がば回れ

前回、どうやらオリジナル版でちゃんとLocation変更イベントをハンドリングしてたかも、という発見をしてしまいました。
ではどのイベントハンドラで処理を行っているのでしょう。 またコードと睨めっこです。 初期化関数内で、このイベントが起きたらこの関数呼んでね、という登録処理を記述している部分がありました。 この中で怪しそうなのはMousedownイベントです。 ところが、ド素人がざっと読んだ限りでは、このイベント処理では新しくマークを追加することしかやっていないように見えます。 う〜〜ん、一瞬ツールバーアイコンをリセットしてるのは誰なんだろう・・・。 
実際にアイコンを変更しているのは"Reset"関数なのですがこの関数を呼び出しているのは、ページを読み込んだ時、マークを削除した時、全マークを削除した時に実行される関数だけでした。 そして(デバッグ方法を知らないので)各関数に警告ダイアログを表示する一行を追加し、タブを切り替えるオペレーションで表示されるかどうかテストしてみました。 ・・・表示されません。 "Reset"関数以外にアイコンを切り替えている箇所が見つけられなかったので、行き詰ってしまいました。
ならば、最初の案でいいじゃない。 と思い直し、やはり"onLocationChange"関数を使う線でいくことに決めました。

6海行こう・・・かな?

こうなると前回までの改造コードにちょいと手を加えれば完成です。 前回は問答無用で「マークありまへん」に切り替えるようにしましたので、これを条件分岐させるだけです。 では、何を条件にすればいいんだろ? 
俺の知ってるアイコン切り替えの条件は「ロードされたページのURLをキーにデータファイルを検索し、登録済みならページ上にマークを復元、ツールバーアイコンを「マークありまっせ」に変更する」という現象だけです。 これはコードを読み解いたわけではなく、実際の動作とデータファイルの存在からの推測に過ぎませんので、さらにじっくりコードを読んでいかなければなりません。
先述のように、ページロードのイベントで実行される関数が登録されていました。 その名も"LoadMarks"関数。 "onLocationChange"関数からこいつを呼び出せば万事解決のような気がします。 ところが"LoadMarks"関数は引数としてイベントオブジェクトを要求しています。 このヤロ〜さすがイベントハンドラだぜ。 "onLocationChange"関数が知りうる情報は、Webプログレス(何のこっちゃ?)、リクエスト(はい?)、Location(うんうん、URLね)の各オブジェクトだけですので、"LoadMarks"関数に渡してあげるべきデータを持っていません。 これじゃダメじゃん・・・。
イベントオブジェクトとは一体何ぞやということを知らないので、ネットに頼ってみました。 ・・・何やら奥が深そうです。 ド素人の日曜コーディングじゃとても理解できそうもありません。 ネット上で散見した"windows.event"という組み込みのオブジェクトを試しに渡してみましたが無反応でした。 イベントオブジェクトって発生源のイベント種類によって内容も構成も変わるんですかねえ? 詳しい方教えてください。

7いいんですか?これで。本当に?

さて、やりたいことはタブ切り替え時にアイコンも反応してくれるだけで良いのですから、なにもページロードの全処理を呼び出すこともありません。 データファイルを検索して既存か否かが分かればいいので、"LoadMarks"関数内からその部分をコピーすればいいはずです。 ふ〜、また睨めっこかい。
で、ありました。 "GetData"という関数はURLを渡してやると、それをキーにデータファイルを検索しにいき、既存であればマークの配置情報などを取得しているようです。 既存でなければNULL値を返してきます。 
さあ、もうゴールが見ました。 "onLocationChange"関数の中で"GetData"関数を呼んでやり、その返り値に応じてアイコンを切り替えれば良いだけです。 
果たして、望みどおりの動作を実現することができました。 巡り巡ったコードの海でしたが、なんだかあっさり解決してしまって、物事は単純にシンプルに発想すべきだなと痛感した次第です。


8調子に乗ってると・・・

せっかくですので、また公開しちゃいます。 何度も言いますがJavaScriptをまったく知らないド素人が趣味で作ったものです(詳しい方、是非添削おねがいします)。 突っ込んだ動作検証もまったくやっていません。 あくまで自己責任でね。 gBrainでの失敗もありますし俺を信用しちゃダメですよ? 
右クリックして「名前を付けてリンク先を保存」を選択してください。


<改造前キャプチャ>
以下の画像をクリックすると、Flashファイルがロードされます。(サイズ:約260KB)

<改造後キャプチャ>
以下の画像をクリックすると、Flashファイルがロードされます。(サイズ:約530KB)


posted by Huwy at 08:56 | Comment(0) | TrackBack(0) | Firefoxアドオン | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。