由々識の気まぐれ日記

JavaScriptプログラマ「由々識」が時々書くするブログ。 内容はJavaScript全般、Sleipnir関係。

「次のページに進む&前のページに戻る」正式公開&2つ更新

Sleipnir 用スクリプト「次のページに進む&前のページに戻る」が、
ベータ版公開を終えて正式公開しました。

「次のページに進む&前のページに戻る」のダウンロードページ「次のページに進む&前のページに戻る」のダウンロードページ

なお、「次のページに進む&前のページに戻る」スクリプトの詳細はこちらをご覧ください。

あと、以下の2つのスクリプトを更新しました。

ウィンドウに収まるように画像を縮小
リンクを解除

「ウィンドウに収まるように画像を縮小」は、SeaHorse 時に Google Map で画像の自動縮小を行わないようにしました。
これは、Google Map で画像の縮小を行うとページの表示が一部崩れるのに対処したものです。
「リンクを解除」は、UserAction スクリプトとして実行時に処理を高速化しました。


不具合などありましたらお知らせください。

ブログの URL が変更になりました

2008年1月22日より、当ブログの URL が変更になりました。

旧:http://yuyushiki.8.dtiblog.com/
          ↓
新:http://yuyushiki.dtiblog.com/

ちなみに、旧URLにアクセスした場合でも 301 リダイレクトされて自動的に新URLにつながるそうなので、
当分の間は URL を変更しなくても大丈夫らしいです。
とはいえ、この措置がいつまで続くかわかりませんので、
お手数ですが、お気に入り、RSS、リンク等の URL を各自変更していただきますようお願いいたします。

面倒をおかけしてまことに申し訳ございません。
(別に、私が悪いわけではないのに・・・(汗))

Sleipnir のサードパーティー製プラグインのインストールを楽にするための考察

私を初め、たくさんの人が Sleipnir 用プラグイン・スクリプト・スキンを作成・配布していますが、
いつも思うのはやはり

もっと楽にインストールできるようにしたい!

ということです。
というわけで、今回はインストールをもっと楽にする方法は無いかいろいろ考えてみました。

1.SmartInstaller をフェンリルのサイト以外に対応させる
一番簡単なのは、SmartInstaller の使用可能 URL を外部のフェンリル以外のサイトにも対応してもらうことです。
しかし、これはセキュリティの問題や、責任・権利問題など大人の事情で無理そうです。

2.ファイルをフェンリルのサイトに置かせてもらう
SmartInstaller の使用可能サイトがフェンリル内限定なのを変えられないのなら、
ファイルをフェンリルのサイトに置かせてもらって公開する方法が考えられます。
しかし、これもセキュリティの問題や、責任・権利問題など大人の事情で無理そうです。

3.SmartInstaller の機能をプラグインにエミュレートさせる
ようは、SmartInstaller のやっていることをプラグインなりスクリプトなりを作って、SmartInstaller と同等の処理をさせようということです。
そうすれば、プラグインなどを GUI からアンインストールしたりできます。
しかしこれにも問題というか、壁があります。
まず、SmartInstaller はプラグインをインストールする際、si ファイルと sar.gz ファイルというファイルを扱います。
si ファイルというのはインストールの指示書のようなもので、このファイルの表記のとおりにインストールされます。
sar.gz ファイルの方は一種の書庫ファイルで、プラグインのファイルが入った sar ファイルを gz 形式で圧縮したものです。
で、ここで問題になるのが sar.gz ファイルです。
これを解凍してさらにその中の sar ファイルの変換・展開するのをスクリプトにさせようと考えたのですが、
全く方法がわからないのです。
gz ファイルへの圧縮はツールを使うので良いのですが、解凍はスクリプトにさせねばなりません。
スクリプトから DLL を使う方法も探したのですが、橋渡し的なツールを別途インストールする方法ぐらいしか見つかりませんでした。
sar ファイルの方はブラックボックスのため、変換・展開の両方が不可能です。
というわけで、これらの問題が解決しない現状では無理そうです。
将来、SDK と一緒に sar ファイルの仕様が公開されれば良いのですがそれも無理そうです。

4.独自のインストール形式を作る
SmartInstaller がブラックボックスなら、独自の形式を新たに作るという手段があります。
仕様の基本的な部分は SmartInstaller をまねて、
si ファイルを Web上にリンクとして配置し、クリックすることで指定のファイルをダウンロード、解凍、インストールさせます。
具体的な仕組みとして、
ダウンロードさせるファイルを任意の場所に配置。
プラグイン配布ページは si ファイルをリンクとして配置。
(これは SmartInstaller と同じ。)
そのページを SeaHorse スクリプトによる書き換えで、
リンクをクリックすると si ファイルの URL を引数にローカルのスクリプトを起動するように変換。
(URI アクションを利用しても良いが、SeaHorse の方がユーザー側は導入が楽)
この状態で si ファイルのリンクをクリックすると、
ローカルにあるスクリプトが起動し、引数の URL の si ファイルをダウンロード・解釈し、
si ファイルに記載されているファイルをダウンロード・展開・インストールする。
とまあ、こんな感じです。
で、この方式にもやはり問題があります。
一つ目は、リンクをクリックしてローカルのスクリプトを起動させることが SeaHorse にできるかということです。
たしか、方法があったような気がするのですが、やったことないのでなんともいえません。
まあ、最悪の場合は URI アクションを使えば良いのですが。
二つ目は、ファイルの展開(解凍)です。
配布ファイル本体は圧縮して書庫ファイルにして Web 上に置くわけですが、
これをスクリプトが展開(解凍)する手段がありません。
いったいどうするか。
これは、どんな書庫形式でも良いのでとにかくファイルを展開(解凍)するAPI を Sleipnir.API に実装してもらうという手があります。
ファイルを展開(解凍)する機能ならば大人の事情も邪魔しないはずです。
三つ目はアップデート・アンインストールをどうするかです。
SmartInstaller のように専用のマネージャーが作れれば良いのですが、今の私にはノウハウがありませんし、
美しい GUI を作るセンスもありません。
なので、これに関しては他の人に別途作成を依頼するかもしれません。
958氏作の About Seahorse をまねればできそうな気はするのですが・・・。

ちなみ余談ですが、これは独自フォーマットですから、本家の SmartInstaller には無い機能を付けることもきます。
例えば、インストール終了時に任意のテキストファイルを開いたり、
インストール終了時に任意のページを開いたり、
インストールと同時にスクリプトを実行させたり(危険!?)。
いろいろできます。


こんな感じでしょうか。
・・・、と忘れるところでした。
上記 4 つの方式に共通した問題がまだ一つあります。
それは、スクリプトをアップデートすると、
スクリプト内を書き換えて変更した設定が消えてしまうことです。
当たり前のことですが、これは結構不便です。
というわけで考えてみたのですが、
アップデート時に、古いスクリプト内の設定部分のみを新しいスクリプトの設定部分にコピーできないでしょうか。
まず考えられる方法としては、
SeaHorse のタグのような感じでスクリプトの設定部分に始点と終点となる文字列を記入し、
アップデートの際にその部分を丸ごとコピーすると言う方式です。
しかし、この方法には一つ欠点があります。
バージョンアップの際に、設定項目が増えた場合に対応できません。
ではどうするか、
スクリプトの設定部分に始点と終点となる文字列を記入し、その中の変数の値部分の文字列を抽出してコピーするようにすれば良いのです。
しかし、やはりこれにも欠点があります。
スクリプトを書く人によって、設定部分のフォーマットが違うのです。
なので、ある程度フォーマットを決めておく必要があるでしょう。


とまあ、ここまで色々書いたわけですが、一番現実的な「4.」の手法を実現するにはやはり書庫ファイルを解凍する Sleipnir.API が必要不可欠です。
なので、現段階では「4.」も実現不可能です。

というわけで、フェンリルの皆さん。
どんな圧縮形式でも良いので、書庫ファイルを解凍する Sleipnir.API をよろしくお願いします。



(2009/01/26 23:15 追記)

sar ファイルの仕様が判明したため、
現在、「3.」の方法でプロジェクトを進めています。GZ 形式の解凍の件も解決しました。
インストーラーは SeaHorse スクリプトで作成しており、後は細部の修正のみの所まできています。
sar ファイルの生成に関しても目処が立ちました。
ただ、最終的に公開できるのかはまだわかりません。

SleipnirShake(開発途上版)プラグインが公開

Sleipnir 専用プラグインの開発途上版(Alpha 版)が公開されました。
その名は「SleipnirShake」。
機能は、Windows 7 に搭載予定の Aero Shake もどきです。
具体的に言うと、・・・マウスジェスチャの一種? みたいなものです。

SleipnirShake のダウンロードページ

注)このプラグインは開発途上版です。問題が発生しても自己解決できない人は正式版を待ちましょう。

現時点でのバージョンは 0.0.2 alpha です。

<説明>
[コンセプト]
どこかで聞いたような機能を Sleipnir で実現するプラグイン。

[使用条件]
以下の人は導入しないでください。

- 使い方を自分で調べない人(文章で伝えにくい)

[使い方]
タイトルバーの上で左ボタンを押しします。そのまま離さずに...
- 左右/上下に 30px 位の感覚で繰り返し振る(Shake) → Sleipnir 以外のウィンドウを最小化
- 画面の上端までウィンドウを移動し、左ボタンを離す → 最大化
- 画面の左端までウィンドウを移動し、左ボタンを離す → 左半分化
- 画面の右端までウィンドウを移動し、左ボタンを離す → 右半分化
- (最大化しているウィンドウを)タイトルバーをもって下に引っ張る → 元のサイズに戻す

[注意事項]
アルファ版なので動作に疑いを持って使ってください(信頼しない)
挙動がおかしい場合は報告してください。調査します。

[問題点]
- デュアルディスプレイできちんと動かない。
- Windows 7 の時に機能がかぶる。
- 「内容を描画して移動する」が無効の時に動かない。
- Shake の動きがしょぼい。(最小化をちゃんと止める)
- 最小化/復元ができるようにする?
- 移動だけでなく、リサイズ時にもアクションが発生する
- タスクバーを全面に表示していないときにおかしいことがある

[最後に]
ご意見、ご感想は、2ch で。クマー。
とのことです。
本当に文章で伝えにくい機能です。
だからといってスクリーンショットを撮ってもわからないです。
なので、「人柱になっても良い」とお考えの方はインストールして、
上記の「[使い方]」の部分を試してみてください。

で、問題の使い心地ですが、まだまだ調整中といった感じです。
Windows XP SP3 Sleipnir 2.8.4 Prototype2 で試用していますが、
時々動作してくれないこともあります。
「(最大化しているウィンドウを)タイトルバーをもって下に引っ張る」をやると、
ウィンドウがマウスポインタにくっついてきたりもします。

私は Windows 7 beta を試用していないので、
本来の Aero Shake がどういうものか知らないので両者を比べることはできませんが、
調整が進んで安定動作するようになれば、マウス派の方には結構便利なものになりそうな気がします。
実際のところ、私(マウス・キーボード両用派)個人的には正式版になったら常用しようかなと思っています。

というわけで、今後の成長に期待です。

なにはともあれ、柏木社長、お疲れ様でした。

Cyclone(開発途上版)プラグインが公開

Sleipnir 専用プラグインの開発途上版(Alpha 版)が 某所で公開されました。
その名は「Cyclone」。
機能はなんと広告消しです。
フェンリルの大倉さん曰く、
外部に晒して頂いても結構です。
とのことなので、早速 URL を晒してレビューしたいと思います。

Cyclone のインストールCyclone のインストール

注)このプラグインは開発途上版です。問題が発生しても自己解決できない人は正式版を待ちましょう。

現時点でのバージョンは 0.1.0 です。

<付属テキスト>
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
このプラグインに関しては決して第三者に口外しないように
ご協力をお願いいたします。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

【使い方】
SHIFT+ALTキーを同時押ししている状態で
ブラウザウィンドウ内でマウスをかざすとブロックできる
要素が強調表示されます。→ クリックでフィルタ登録ダイアログ

【URL 完全一致/URL 正規表現】
<IMG><OBJECT><IFRAME><AREA> が対象になります。

【テキスト部分一致】
<A> で囲まれるテキストの部分一致が対象になります。

【ホワイトリスト】
URL の部分一致が対象になります。

【制限事項】
●ラボ公開までにプラグイン名、データファイル名が
 何度か変更される予定です。
●<DIV><SPAN> には対応していません。
●ドメイン単位でしかフィルタは設定できません。
●正規表現への変換はフィルタで CTRL+F です。
 例: fenrir.co.jp → fenrir\.co\.jp

【フローティングコンテンツの一例】

フローティングコンテンツは以下のページでテストできます。
(全てのコンテンツがブロックできるわけではありません)

http://ad.axyz.co.jp/
http://www.pointroll.com/showcase.html
http://demos.uk.tangozebra.com/overlays.html
http://www.cci.co.jp/service/technologyservice/adsolution/richmedia/checkm8/

【お願い】
できればデフォルトの状態で誤動作するサイトをお知らせください。

現在確認できているサイト

maps.google.co.jp → 解決済み。
youtube.com → 一部のリンクからの動画再生ができない。
sleipnirstart.com → アイコンの D & D でブロックされる。
わんくま同名のブログ → 画面が崩れる
付属テキストの最初に、
「このプラグインに関しては決して第三者に口外しないように」と書かれていますが、
この点についてフェンリルの大倉さんに確認しましたところ、
document に記載が残っていますがクローズドテストの名残ということで注釈をいれていただければとおもいます。
自宅からはバイナリの差し替えができないもので……

とのことです。
ちなみに付属テキストは、Cyclone をインストール後に

plugins\documents\Cyclone.txt

を開くと読めます。


■使い方
インストールすると、ステータスバーにこのようなアイコンが表示されます。
Cyclone スクリーンショット01
左半分が Cyclone 有効状態、右半分が Cyclone 無効状態の時です。
アイコンをマウスで左クリックすることで、有効/無効を切り替えられます。
Cyclone を使うには有効にしなければなりませんので、
アイコンをマウスで左クリックして有効状態にしましょう。

そうしたら、広告を消したいページを開きます。
試しに タブブラウザ Sleipnir オンラインデータベース で広告を消してみましょう。
まずは、広告にマウスポインタを重ねて SHIFT+ALT キーを同時押しします。
すると広告が赤線で囲まれた状態になります。
Cyclone スクリーンショット02
この状態で広告をクリックすると、フィルタリストダイアログが出ます。
Cyclone スクリーンショット03
画面内右上の「︾」をクリックしてリストに登録し、「適用」を押して「閉じる」を押します。
どうでしょうか。広告が消えましたでしょうか。
Cyclone スクリーンショット04
見事広告が消えました。

基本的な使い方は以上です。
なお、この例では「URL 完全一致」で登録しましたが、
登録時にリストボックスから「URL 正規表現」「テキスト部分一致」を選ぶことによって、
正規表現や、アンカーテキストによるマッチングが可能です。
ただし、ページの URL はドメイン単位でしか設定できないのでご注意ください。


■不具合・要望
クローズドテストの時にもご報告したのですが、
今回のバージョンで気づいた点を挙げたいと思います。

・「URL」を「URI」に統一した方が良い。
・ページを開いた時に広告が一瞬表示されることがある。
・「コンテンツブロックを使用」を切り替えた時、ページを更新してほしい。
・【URL 完全一致/URL 正規表現】に <A> の href 属性もいれてほしい。
・【テキスト部分一致】に <IMG> の alt 属性や、<A> の title 属性も入れてほしい。
・HTMLタグの種類にかかわらず、id や name 属性で消せると良い。
・やはり、HTMLソースの正規表現でマッチした部分を削除できると良い。
・ドメイン非限定のフィルタも作成できるようにしてほしい。
 (Google Adsenseを一括削除したいので)
・ホスト単位、ディレクトリ単位でもフィルタを設定したい。
 (できれば、正規表現でフィルタ適用 URL を設定できる方が良い)
・フィルタリストウィンドウを閉じた時点で「ContentFilter_Labs.lst」を
 更新してほしい。
・「ContentFilter_Labs.lst」を読み込むアクション。
 (上記2つは、スクリプトでフィルタリストを操作する際にあると便利な機能です)
・フィルタリストファイルのインポート機能。
 (StyleEditor のように、ユーザーがネットでフィルタリストファイルを
  ダウンロードしてインポートできると良い。)


Proxomitron よりも簡単に広告が消せるのはとてもすばらしいことだと思います。
ただその反面自由度が犠牲になり、消せない広告が存在することが最大の難点と言えます。
とは言え、StyleEditor の機能の一部を取り込み、
HTMLソースの正規表現でマッチした部分を削除できるようになれば死角は無くなると思いますので、
今後の更新によっては大きく化ける可能性があります。
何にせよ、UI の使い勝手は「さすが大倉さん!」と言えるほど Proxomitron に勝っているのは確かです。
Ctrl + F で正規表現化したり、正規表現の候補がプルダウンメニューで出るのはとても便利です。
なので、何とか“広告削除力”でも Proxomitron を超えてほしいですね。

なにはともあれ、大倉さんお疲れ様です。



(2008/01/18 16:15 追記)

付属テキストに
「できればデフォルトの状態で誤動作するサイトをお知らせください」
とありますとおり、
見つけたら知らせましょう。

 | HOME |  次のページ »

Sleipnirスクリプトをお探しのかたはこちらへどうぞ。

Yuyu's Digital Lab.

プロフィール

由々識

作者:由々識

JavaScriptプログラマの由々識です。
主にSleipnirスクリプトを書いています。

RSS 1.0

カレンダー

12 | 2009-01 | 02
S M T W T F S
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

アーカイブ

カテゴリー

最新投稿

最新コメント

トラックバック

ツール

あわせて読みたい
この日記のはてなブックマーク数

お小遣い稼ぎ!
スマホでお小遣い稼ぎ!
DTIブログポータルへ
このブログを通報
Report Abuse
利用規約