Kei_9 なげやりにっき このページをアンテナに追加 RSSフィード Twitter

2010-03-31

[] CromeFrameを生かしましょ

IE9 Platform Previewが試せるようになったりGoogle ChromeやFirefoxがすでにHTML5やCSS3へ一部対応していることなどでWebページの見せ方を考える方も色々と実験的なことを試していたりして楽しいんですけど…

ただ、素のSleipnirではIE6~8のTridentエンジンを利用しているワケですので、そういった先進的なことを試しているサイトを訪れてもなんにも感動が無いわけです。

そんなときは通常、Geckoビューア(test版専用)に頼るか他のブラウザへアドレス渡して閲覧するしかない状態なのですが、現在はGeckoよりもWebKitの方が一歩先を行っていることでもありますのでIEのビューをWebKitのエンジンで描画してしまうChromeFrameを使わない手はありません♪

ChromeFrameネタは以前も取り上げましたが、あれから少しだけ進歩しているようですし使われているWebKitもChromeのものらしいので最新版のChromeがインストールされていれば一部では評判の悪いあの『翻訳しますかバー』も使えるようになっています(笑)

これが利用出来るようになれば某トリプルエンジンを謳っているあのブラウザに表示の面では肩を並べることが出来ますね。


ChromeFrameが発表された当時は、アドレスの先頭にcf:という専用プロトコルを付記してやることで利用可能でしたが、そうやって開いたビューはSleipnir上ではなぜか一度クリックしてあげないと表示されないという変な挙動がありました。

では最新版ではどうか、というと・・・やはり同じでした(´・ω・`)

しかし、ある手段を使うことでビューのクリックなしにちゃんと表示させることが可能なことを確認出来ましたのでその辺が今回のネタになります♪

最新版ではcf:は使えない。

ChromeFrameの解説サイトの最後の方に申し訳程度に書かれているんですが、以前のcf:は使えなくなり、代わりにgcf:というプロトコルを付加する決まりになったようです。

しかもこのプロトコル、ChromeFrameをインストールしただけでは有効になっておらず、レジストリへ新規キーと値を設定する必要があります。

そんなワケで多少手間はかかりますが、このプロトコルを有効にしないと今回のネタは生かせませんので試されたい方は是非設定してみてください。

ChromeFrameのインストールとレジストリキー追加

当然ですがGoogle Chromeがインストール済みであることが前提になります。ChromeFrameはあくまでChromeのエンジンを利用してフレーム表示させているようなものなので。

ChromeFrameの対応OSはWindows Vista / XP SP2となっていますがWindows7でも問題ないことを確認しています。

まずはChromeFrameの配布サイト右上の【Get Google Chrome Frame】ボタンを押してインストールページへ行き、【Accept and install】ボタンを押してインストールを完了します。

インストールが完了したならレジストリエディタを開き、HKEY_CURRENT_USER\Software\Googleとたどります。

このキーの配下にChromeFrameというキーが存在すればそこをクリックして新規DWORD値を作成します。ChromeFrameキーが存在しない場合はGoogleキーの上で右クリックして新規キーとして作成してください。

次に新規DWORD値を右クリックし、名前の変更を選択。新しい名前をEnableGCFProtocolにします。

名前の変更が終わったら再び右クリックし、修正を選択。値のデータに数字の1をセットしてOKボタンを押します。

あとはレジストリエディタを終了。以上でgcfプロトコルが利用可能になります。


…などと書きましたが実はレジストリファイルをエクスポートしてありますのでここをクリックしてダウンロードしたら右クリックから結合を選んでください♪

中身はこれだけです。XP~7まで共通で利用出来るはずです。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Google\ChromeFrame]
"EnableGCFProtocol"=dword:00000001


今見ているページやリンクをChromeFrameで開く

いよいよ今回のネタのメインです♪


ナニをやるかというとjavascriptでgcfプロトコルをアドレスの先頭に付加するアクションを作成し、メニューエディタを使って現在のページやリンク先をChromeFrameで開いてやろうという目論見なのです。

最初は素直にlocation.href = 'gcf:' + location.hrefでやってみたのですけど、ChromeFrameに切り替わってはくれるんですがビューをクリックしてもナニもおきないという???な動作だったので色々試して見たのですがどうにもうまくいかず、思いあまってブックマークレットとして動作させたところなんとビューのクリックなしにChromeFrameで描画されることを発見したという次第。

んじゃってことで例のブックマークレットを無名関数で括ってアクションにしちゃう手をつかって見たところ・・・バッチリ!

で、こんな感じになりました(笑)

URL = "javascript:(" + function(){
location.href = 'gcf:' + location.href
} + ")()";

上記コードを適当な名前、たとえばOpenGcfView.jsとか言う名前でplugins/scriptsへ保存し、Sleipnirオプションのユーザーインターフェース/メニューエディタとたどり、ブラウザ アンカー 並びに ブラウザ標準 へOpenGcfViewアクションを登録します。登録時の名前は適当にわかりやすいものをつけてください。

  • ブラウザ標準メニューへ追加したもの。
    これでOpenGcfViewアクションを発動すれば現在表示中のページがChromeFrameで描画されなおします。

  • ブラウザ アンカーメニューへ追加したもの。
    『リンクをWebKitビューアで開く』という名前にしてあります。

ChromeFrameで開いたビューでは、当然デベロッパーツール(右クリメニューから)も利用出来ますので、サイトの詳細検証にも便利です♪

  • inspect elementをクリックすると表示されます。

ChromeFrameでの表示フォントを変更する

ChromeFrameでは残念ながら設定UIが用意されていないので表示フォントを変更するには直接データを弄るしかありません。しかしSleipnirでiniやxmlファイルをいじり慣れている方ならそれほど大変なことではありませんよね♪

ただ、設定ファイルへ通常のフォント名を使用することが出来ませんので、ここではちょっとした裏技を使います。

設定前に念のためSleipnirは終了しておいた方がいいでしょう。


設定ファイルの場所ですが、XPならば

C:\Documents and Settings\[ユーザー名]\Local Settings\Application Data\Google\Chrome Frame\User Data

Vista/7であれば

C:\Users\[ユーザー名]\AppData\Local\Google\Chrome Frame\User Data

これらのフォルダへアクセスすると、Sleipnirで一度でもChromeFrameを利用していればIEXPLOREフォルダの他にSleipnirフォルダが作成されているはずです。

このSleipnirフォルダの中にあるDefaultフォルダにPreferencesというファイルがありますが、これが設定ファイルの実体になります。

ただ、先ほども書いたとおり通常のフォントファイル名では登録が不可能なので、ここではChromeの設定を流用することにします。

つまり、あらかじめChrome側でフォントの設定を済ませておき、その部分をSleipnir用設定ファイルへコピペしてやるということです。

Chrome側で利用したいフォントの設定が済んだならChromeを終了し、Chromeの設定ファイルへアクセスします。

下はVista/7の場合なのでXPのかたは上記を参考にChromeフォルダへアクセスしてください。

C:\Users\[ユーザー名]\AppData\Local\Google\Chrome\User Data\Default\Preferences

このファイルをテキストエディタで開くと下の方にフォントの設定が格納されていますので、この部分をコピーします。

次にSleipnir用設定ファイルを開き、"webprefs":{ 以降へペーストしてやります。すでに同じ記述がある場合は上書きしちゃいます。

あとは上書き保存をし、Sleipnirを立ち上げてChromeFrameで表示させるとフォントが変更されているのが確認出来るとおもいます。


と、まぁこんなかんじでブックマークレット形式のものをアクション登録しちゃえばビューのクリックなしで最新のWebKitでレンダリングされた表示が利用出来るようになるというネタでございました。よろしかったらお試しあれ♪

追記

WebPrefsが存在しない場合についてのことをコメント欄にて記述。

2010-03-28

[] ニコニコ動画をログインなしで見られるサイト

Twitterでのある方のつぶやきで知ったのですが、こりゃいいやと♪

一般ユーザーとしてのアカウントは持っているんですけど、それほど頻繁にアクセスするわけでもないのでニコニコ動画へのリンクをたまたまクリックしたときなどにいつの間にかログアウトされちゃっていてその都度ログインし直しという手間がかかっていたのです。

で、Sleipnir用ネタとして使えるブックマークレットが用意されていたので今回はUserActionスクリプトではなくSeahorseスクリプトとして利用してやろうかなと♪

まぁなんのことはない、ブックマークレットのコードの手前にSeahorse用ヘッダを書き足しただけなんですけどね。

// ==UserScript==
// @name           ログインなしでニコニコ動画を見られる
// @description    ニコニコ動画へのリンクをログインなしで見られるnicozonへ渡します。
// @include	http://flog.jp/w.php/http://www.nicovideo.jp/watch/*
// @include	http://www.nicovideo.jp/watch/*
// ==/UserScript==

document.location.replace(document.URL.replace('www.nicovideo.jp','www.nicozon.net'))

インクルードするアドレスはhttp://www.nicovideo.jp/watch/*だけでイイかと思ったんですけどたまに動作しないことがあったので、リダイレクトされる前の部分も追加したら安定したような気がします。*1

とりあえずこれでいちいちログインする手間は省けました♪


このほかにもBRIDGEというエコノミー画質回避サービスを見つけたんですが、こちらで配布されているユーザースクリプトは残念ながらそのままではSleipnirでは使えません*2

それとここは動画がキャッシュされていない場合にダウンロードしに行くらしいのですが、その際に待ち人数があったりするとかなり待たされますので普段使いには向かないようです。どうしても高画質版を見たいという映像があるとき以外はあんまり需要なさそうなのでとりあえずお気に入りに登録するだけにしときました。


今回もブックマークレットネタでしたが、ちょいと弄るとSleipnirで便利に使えるものが結構ありますので捨てたモンじゃないですよ♪

フォーカスがあるときテキスト入力エリアの色を変える

ネタその2です。


以前どこかで見かけたことがあったなーと思ってググってみたら見つかりました。


これはサイト上のtextareaにフォーカスがあるときにその部分の背景色を変更してくれるスクリプトなのですが、本来の使い方としてはサイトのヘッダなどに記述して読み込ませるタイプのものです。

このスクリプトに限らず、そういった用途のものでもSeahorseスクリプトとして利用出来るものがいろんなサイトを巡っていると時々見つかります♪*3

通常は白いままのテキストエリアへ何か入力しようとしてクリックしたときに背景色が変わってくれれば何となくイイかなーというだけのものですけどね。

  • オリジナルではボタンなどにも作用するのでテキストエリア限定にしてあります。
// ==UserScript==
// @name         TextfieldColorChange
// @description  テキストフィールドのフォーカス時に背景色を変更する
// @include      *
// ==/UserScript==
window.onload = function() {
   var colorful = new ColorfulInput;
   colorful.set();
}

function ColorfulInput() {
   this.skip  = ['submit','button','checkbox','file'];
   this.color = { 'blur': '', 'focus': '#e0e3ff' };

   this.set = function() {
      for (var i = 0; i < document.forms.length; i++) {
         for (var f = 0; f < document.forms[i].length; f++) {
            var elm = document.forms[i][f];
            if(!this._checkSkip(elm)) continue;

            this._setColor(elm, 'focus');
            this._setColor(elm, 'blur');
         }       
      }
   }

   this._checkSkip = function(elm) {
      for(var i in this.skip) {
         if(elm.type == this.skip[i]) return false;
      }
      return true;
   }

   this._setColor = function(elm, type) { 
      var color = this.color[type];
      var event = function() { elm.style.backgroundColor = color; };

      if(elm.addEventListener) {
         elm.addEventListener(type, event, false); 
      } else if(elm.attachEvent) {
         elm.attachEvent('on'+type, event); 
      } else {
         elm['on'+type] = event;
      }
   }
}

  • はてなの編集画面で試したところ。青っぽい方がフォーカスありの時。

 

もし利用されるならば背景色はお好みのものへと変更してください。

this.colorの#e0e3ffを任意の色値へ変更すればOKです。


上記サイトには他にもテキストエリアのリサイズスクリプトなどが公開されていますが、Sleipnirのラボプラグインにも同様なことが出来るものがあります*4のでそちらを使った方がスマートですね♪

*1:*nicovideo.jp/watch/*でもいいような気がしたけど試してないです。

*2:グリモン用のGM_xmlhttpRequestが使われているため。試していないけどIEでならTrixie使えば動くかも。←気になったので試したら大丈夫でした♪

*3:気になるサイトがあれば片っ端からソースを読んでスクリプトを拝借して試すという動けばラッキーみたいなノリでやってますけどね♪

*4FormResize

2010-03-26

[] PersonalChannelで…

カレンダーと時計の組合せをしてみました。

美人時計だけのChannelを前に作っていたんですけど下の余白が気になっていたので上部にカレンダーを持ってくればいいのではと思い、Google Gadgetのカレンダーを表示させてみたんですがなんかアレだなーと。

で、美人に対して美女暦というのもあることだしということで♪

  • こんなのが表示されます

画像クリックでPersonalChannelへインストール


画像はPersonalChannel用ののuser.channelファイルへのリンクになっていますので、PersonalChannel導入済みならばクリックするとインストールできます。


あまりいじることはせず、Gadgetまわりの余計なリンクや画像の表示を見えなくするだけにとどめています。


よろしかったらどうぞ♪

2010-03-24

[] IE9pp+Sleipnirでの挙動を少しまとめてみるなど

あれから今日までメインPCのSleipnirではIE9ppのエンジンのままで運用してました。

いくつか不具合*1…というか使えなくなる機能があるんですけど、Webページの閲覧に関してはとっても快適でした。

ただやはりいつも出来るはずのことをついやろうとして受け付けてくれなかったときなどはちょっとがっがりしちゃいます。なので先ほどSleipnirフォルダを複製したので気分で使い分けていこうかなと♪

jscript9.dllリネームは有効なのか

あくまでワタシの環境でのことなのですべてそうであるとは言い切れませんが、少なくともWindows7 64bit版(メインPC)並びにWindows7 32bit版(ネットブック)において2.9.3 test2+IE8の状態での単純な差し替えでは一部の命令文が有効にはならずにスクリプトの実行が止まってしまいました。

以前も書きましたけどIE8のTridentとの整合性の問題ではないかとおもうのですが確証はありません。

本スレにおいてはWindows7で問題なく使えているというような書き込みも見うけられましたが、その後の追試の報告もないので判断に迷うところですね…

また、IE9ppの心臓部をbinフォルダへリネームして利用する方法についてですが、この場合システムフォルダにjscript.dllが存在しているとそちらを優先して利用してしまうらしく(あくまで推論ですけど)スクリプトの実行速度に関してはあまり改善が望めませんでした。本スレにJDK絡みではないかみたいな書き込みもありましたが未検証。

念のため、システムフォルダのファイルを待避させてみたところIE9pp側のファイルを利用してくれるようにはなってくれましたが、IE8+リネームファイルの時と同じようなスクリプトエラーが発生したりしてアレレ? みたいな。

これだけで結論を出すのは早計ですけど、今のところはなんとなく相性が悪そうです。

Sleinir+IE9ppのエンジンで確認出来た問題。

  1. まず上記のjscript.dllの相性問題。
  2. インターネットオプションが呼び出せない。従ってフォントの指定やセキュリティ設定が全く行えないのでSleipnir側で出来ることで対処するしかない。
  3. 別タブでリンクを開こうとしたとき、反応しないことがある。
  4. タブバー上でのタブの移動並びに複製が出来ない。
  5. ダウンロードリンクを踏んでも何も起こらない。
    これに関してはクリックした時点でアドレスバーへリンクアドレスが送られているのでアドレスバー右側の移動ボタンを押すとダウンロードダイアログが出現してくれます。
  6. 32bit版のとき、エンコードの切り替えが効かなくなってしまう。
  7. (追記)ビュー内に設置されているドロップダウン式の選択ボックスをクリックするとエラーを吐く。
    それでも項目の選択は可能。

他にもあった気がしましたが忘れちゃいました(笑)気がついた方がいましたらコメントで教えてくださいな。


まぁ上記のようなことを我慢できるならば、とりあえず一部とは言えCSS3にも対応してくれていますしDirect2D*2を使ったフォントレンダリング(フォントスムーシング)やSVGへの対応などが利用出来ますのである意味FirefoxやChromeに引けを取らないところも楽しめたりします。あっ、あとOperaもね。


ただ、今現在世に出ているCSS3での表示対応を謳っているサイトはそのほとんどがFirefox専用の-moz-やWebKit専用の-webkit-というプリフィックス付きで実装されている場合がほとんどですので、特別なプリフィックスを持たないIE9ppのエンジンで閲覧しても他のブラウザと同様の結果にはならないことに気をつけなくてはいけません。

IE9の熟成が進むにつれて対応サイトも増えていくことでしょうからそれまではuserStyleSheetとかつかって手書きのCSSを読み込ませて(・∀・)ニヤニヤしてましょう。

*1:これには少し語弊があります。もともと推奨された使い方ではないですから不具合がでてあたりまえですし。

*2:DirectX10以降のテクノロジーらしいのでVistaはパッチを当てて、7ならそのままで。XPおよびそれ以前のOSは残念ながら…

2010-03-22

[] 短縮URLサービスを活用

Twitter使っているとどうしてもその文字数制限からリンクを張るときには短縮URLサービスのお世話になりますよね。

TwitterのHomeからであれば自動でbit.lyサービスで短くしてくれますけどAPI経由の各種クライアントなどではそれが有効にならない場合が多いので、手動というか何らかの手段を使って短縮してやらないといけない場合があります。

SleipnirでしたらCopyTinyUrlTab.jsというスクリプトをアクション登録して短縮したいページ上で発動すればクリップボードへTinyURL短縮サービスによって短くされたURLが格納されますので簡単でよかったのですが、ここ最近なぜか短縮されたURLでは元のページにアクセスできないという珍事がたびたび発生しています。

これは多分スクリプトのせいではなくサービス提供側の問題ではないかなと感じていますが、これはちょっと困りもの。

そこで別のサービスを利用してみようと言うことになるわけですが、実は既に前出のbit.lyもアクション化して利用していたりします。

アクション化といってもサイトで提供されているブックマークレットをUserActionスクリプトで利用出来るようにしているだけなんですけどね。

このブックマークレットのUserActionスクリプト化に関しては、id:barrackdoさんのブログ【SleipnirでBookmarkletを使う(再掲) - (TooLab.)Lab. 研究日誌】で詳しく紹介されていますので参考に。


さて、今回は最近サービスを始めたGoogle先生のところのURL短縮サービスであるgoo.glを使ってみたいなと思ったのですが、まだ公式にAPIを提供している状態ではないみたいで基本的にはGoogleツールバーなどでの利用しかできないことになっているようですね。

まぁそれでも既にgoo.glを利用出来る短縮サービスページブックマークレットを提供するページなどもあるようなのでそれを利用すれば何とかなるかなと思ったのですが、前者はソースを見たところ外部jsで処理しているので無理と判断。そして後者もそのままではjavascriptのalertダイアログを出すタイプで、利用するにはコピペとダイアログを消す操作が発生してどうもよろしくない。

  • ブックマークレットのソースはこんな感じでalertダイアログを出すタイプ
javascript:window.googl_callback = function(response){if(response.error_message){alert("An error occured: " + response.error_message);}else{alert(response.short_url);}}; var s = document.createElement("script"); s.src = "http://ggl-shortener.appspot.com/?url=" + encodeURIComponent(window.location.href) + "&jsonp=googl_callback"; void(document.body.appendChild(s));

もっと良いのはないかしらと探してみたら、上記ブックマークレットを改良したような感じのものを配布しているサイトを見つけました。

ソースを見る限り、まさにさっきのブックマークレットをうまく取り込んで利用している感じです♪
このままでもTwitterでの利用には便利ですが・・・

javascript:var%20thisPageTitle%20=%20document.title;window.googl_callback%20=%20function(response){if(response.error_message){alert("An%20error%20occured:%20"%20+%20response.error_message);}else{location.href%20=%20"http://twitter.com/home?status="+encodeURI("“"+thisPageTitle+"”%20")+response.short_url;}};var%20s%20=%20document.createElement("script");s.src%20=%20"http://ggl-shortener.appspot.com/?url="%20+%20encodeURIComponent(window.location.href)%20+%20"&jsonp=googl_callback";void(document.body.appendChild(s));

先日もエントリーしましたが、リンクバーにあまりため込むのはどうかと思っているクチなのでここはやはりアクション化しちゃおうと。メニューエディタで短縮URLサービス部分を階層化しちゃえばスッキリしますしね。

それと、Twitterに投稿する際このまま実行するとTwitterのWebページの入力エリアへページタイトルとともに短縮URLが送られますが、ページタイトルが不要な場合もありますしTwitterのWebページではなくクライアントへ貼り付けて投稿したい場合も多々あります。

と、いうことで3種類のUserActionスクリプト化したgoo.gl短縮サービススクリプトをでっち上げてみました。

  • TwitterのHomeを開いて”ページタイトル”+短縮URLを貼り付けるタイプ
URL = "javascript:(" + function(){
var thisPageTitle = document.title;window.googl_callback = function(response){if(response.error_message){alert("An error occured: " + response.error_message);}else{location.href = "http://twitter.com/home?status="+encodeURI("“"+thisPageTitle+"” ")+response.short_url;}};var s = document.createElement("script");s.src = "http://ggl-shortener.appspot.com/?url=" + encodeURIComponent(window.location.href) + "&jsonp=googl_callback";void(document.body.appendChild(s));
} + ")()";

  • クリップボードへ”ページタイトル”+短縮URLを格納するタイプ
URL = "javascript:(" + function(){
var thisPageTitle = document.title;window.googl_callback = function(response){if(response.error_message){alert("An error occured: " + response.error_message);}else{clipboardData.setData("Text","“"+thisPageTitle+"” "+response.short_url);}};var s = document.createElement("script");s.src = "http://ggl-shortener.appspot.com/?url=" + encodeURIComponent(window.location.href) + "&jsonp=googl_callback";void(document.body.appendChild(s));
} + ")()";

  • クリップボードへ短縮URLのみを格納するタイプ
URL = "javascript:(" + function(){
var thisPageTitle = document.title;window.googl_callback = function(response){if(response.error_message){alert("An error occured: " + response.error_message);}else{clipboardData.setData("Text",response.short_url);}};var s = document.createElement("script");s.src = "http://ggl-shortener.appspot.com/?url=" + encodeURIComponent(window.location.href) + "&jsonp=googl_callback";void(document.body.appendChild(s));
} + ")()";

いまさらですがあえて書きます。

UserActionスクリプトとして利用するにはUserAction Extensionを導入済みの環境であることが前提で、コードを適当なエディタへコピペして適当な名前+拡張子jsでplugins\scriptsへ格納したのちクライアントを再起動すると利用可能になります。

  • メニューエディタで階層化して利用。タブメニューへ入れても良いかも♪


クリップボード格納まわりのコードはid:hitagismさんのCopyTinyUrlTab.jsのものを参考にさせてもらいましたが、ステータスバーへのメッセージ部分は出さないようにしています。

滅多なことでは取得ミスなどおきませんし、なにかあればalertがでるようオリジナルブックマークレットの方に記述済みでしたので。

と、いうことで今までお世話になったCopyTinyUrlTab.jsにはとりあえずお暇をあげて、これからはbit.lyかgoo.glを気分で使い分けていこうかなと♪

追記

Twitterのページを開いてステータスを書き込むスクリプトですが、location.hrefを使っているのでポストしたページがTwitterのページへと書き換わってしまいます。

ポストしたあとに戻れば良いだけのハナシですが、その挙動が気にくわないという方がいるかもしれないなと勝手に考えて別タブで開くタイプを。

ただしwindow.openを使っている関係でポップアップブロックに反応するかもしれません。ワタシのところでは大丈夫でしたけど…

  • TwitterのHomeを別タブで開いて”ページタイトル”+短縮URLを貼り付けるタイプ
URL = "javascript:(" + function(){
var thisPageTitle = document.title;window.googl_callback = function(response){if(response.error_message){alert("An error occured: " + response.error_message);}else{window.open("http://twitter.com/home?status="+encodeURI("“"+thisPageTitle+"” ")+response.short_url,'_blank');}};var s = document.createElement("script");s.src = "http://ggl-shortener.appspot.com/?url=" + encodeURIComponent(window.location.href) + "&jsonp=googl_callback";void(document.body.appendChild(s));
} + ")()";

2010-03-18

[] おや! これはすごい!!

某つぶやき処で某氏(Tさんとしておきましょう)がつぶやいていたのですが、情報公開しても良いというお許しがでたので共有しましょう。


なんと簡単にIE9 Platform PreviewのエンジンでSleipnirを利用出来ちゃいます!

ただし、昨日のエントリーで書いた不具合がすべてではありませんがやはり存在します。

ワタシの環境(Win7 64bit+Sleipnir2.9.3test2)においてはIEオプションにアクセスできません。

それとワタシの場合は問題なかったのですが、Tさんの環境である32bit版のWindows7においてはエンコード切り替えが出来ないということです。

昨日のやり方ほど神経質になる必要は無いと思われますが、例によってお約束の自己責任でどうぞ。


方法は至って簡単。

IE9 Platform Previewを普通にインストールし、インストールフォルダにある iepreview.exe.localフォルダを Sleipnir.exe.local にリネームして bin フォルダに入れる。

たったこれだけです♪

あとは普通にSleipnirを立ち上げてInternet Explorer 9: Platform Demosへアクセスし、イロイロと試して見ましょう。

IE9 Platform Previewではアドレスバーすらありませんが、この方法ならSleipnirの機能がほぼそのまま利用出来ます。また英語表記になりますがコンテキストメニューも出てくれますし、カスタマイズしてある部分は日本語で表示されてます。


この方法ならシステムに手を入れる必要もないですし、元の状態に戻すのも追加したフォルダを削除するだけで良いので安心ですね。

Windows Vista/7をお持ちの方でIE9ppで利用可能な機能をSleipnirで使ってみたいという方は是非お試しあれ♪

2010-03-17

[] IE9 Platform Preview がお披露目

IE9の開発状況はどの程度すすんでいるのかいなとか思っていたら、突然現状報告版みたいなものをリリースしてくれましたよMSさん。

早速ネットブックに突っ込んでTest Driveページを閲覧してみたら・・・ナニコレすごい!

レンダリングの一部にDirectXテクノロジーを利用しているそうで、ctrlキーと+キーで拡大していっても文字の周囲に破綻がありません。まるでベクターグラフィックで書かれているような感じ。

しかもjavascriptの実行エンジンであるjscript9.dllがかなり頑張っていて、Firefox3.6とベンチマークで比較してみてもほぼ同等のスコアを出してくれました。

それと何と言っても待ち望んでいたborder-radiusの実装。あこがれの角丸がCSSで出来ちゃうわけですよ。これでTwitterのHomeのコンテンツエリア上部の角が取れてより親しみやすくなるってモンです♪*1

早速いたずら♪

'`ィ (゚д゚)/ヒトバシラーやります(笑)


IE8のプレビューがでたときにギークな方はほとんどやったであろうjscript.dllの入れ替えをまずは試して見ました。

IE9ppをインストールしたあとにProgram Filesに作成されているInternet Explorer Platform Previewフォルダの中にもう一つ、iepreview.exe.localというフォルダが作成されて、実はこの中に本来ならSystemへ登録されるファイル群が納められています。もちろんこれは既存の環境を壊さないための措置なんでしょうけど、おかげでファイルが扱いやすくて助かります。

この中にあるjscript9.dllをjscript.dllへとリネーム。次にWindous\system32にあるIE8のjscript.dllを適当なフォルダへとコピーしてバックアップ。

お次はオリジナルのjscript.dllのプロパティから所有者とアクセス権を変更。つまりこのファイルに対して神様権限を与えたのちにサクッとリネーム版jscript.dllwを上書き。

で、ブラウザを立ち上げると新しいjavascriptエンジン(コードネームはチャクラだそうで)が利用可能になるという寸法。


で、定番のjavascriptベンチマークとなっているSunSpiderで使用前、使用後の比較をしてみると・・・スゲえぇぇぇ!!!

  • 使用前


  • 使用後

↑実際は600ms前後になるはずなんですが、みんなベンチやりまくっててサイトの負荷が高かったのかも(笑)


実際にブラウザ上でスクリプトを利用してみるとあきらかな速度向上を体感できました。IE9の正式リリースまでにはもっと熟成が進んでくるでしょうから楽しみですね。

ただ、手放しで喜んでばかりもいられません。と、いうのは多分IE8のレンダリングエンジンとjscript9.dllの整合性の問題だと思われますが、一部のSeahorseスクリプトやUserActionスクリプトでエラーを吐いて実行が止まってしまうのです。

もっとも、イレギュラーなことをしているわけですから多少の問題が起きるのはやむをえないですね…

チョーシに乗ってみる♪

IE9のレンダリングエンジンとjscript9.dllをそのままSleipnirで利用出来ればかなり美味しいんじゃね!?

…みたいなノリでやっちゃいましたよシステムの書き換え♪

結果から先にいうと、動きましたよマジで。

  • IE9のエンジンとjscript9.dllが使えるようになったSleipnir2.9.3test2の図
    IE8のエンジンでは5fpsほどしかでなくてカクカクのコマ落ちになります。

  • 角丸もおOK!
    決してActiveGeckoやChrome Frameじゃナイですよ♪ 見にくいけどアドレスバーとステータスバー左側見ればわかりますよね。


実は実機で試すのはあまりにもリスクが大きいので、上の画像はVMware WorkStation上のWin7を犠牲? にして試しました。

実際、使えるようになるとは言えかなり問題があります。オリジナルのIEが立ち上がらなくなるとか(まぁ当然ですが)IEオプションが呼び出せないとかビュー上でコンテキストメニューが出ないとかその他諸々…

でもブラウジングそのものには問題アリマセン、というか快適すぎてどうしましょ、みたいな(笑)

IE8+jscript9.dllで遭遇した問題もなく、マウスジェスチャーも効きますしSeahorseスクリプトやUserActionスクリプトも快適に動作してくれています。

試して見たい?

ここで詳しくやり方を書いても再現性の問題とか質問が来ても困るので軽く説明するにとどめますね。

追試される方はもちろん自己責任でおねがいしますよ。

  1. まず最初にシステムのプロパティから復元ポイントを作成しておく。
  2. 次にIE9 Platform Previewをインストール。
  3. システムファイルの入れ替えをするのでOSをセーフモードで立ち上げ直す。
  4. Windows\system32フォルダのプロパティを開き、セキュリティタブから所有者をログオンユーザーへ変更、次にアクセス権をログオンユーザーで継承オプションをチェックしフルアクセスへ。
  5. IE9 Platform Previewインスコフォルダ内のiepreview.exe.localフォルダの中身をすべてsystem32へコピー*2
  6. 一部使用中のためコピーできないファイルがあると警告される。
  7. コピーできなかったファイル名をメモっておき、system32側の当該ファイルをリネーム(神様権限+セーフモードならではの技(笑))
  8. 先ほどコピーに失敗したファイルを再度コピー。今度はすんなりいくはず。
  9. system32の権限を元に戻す。
  10. 再起動

くどいようですが常用マシンで試される場合はくれぐれも自己責任で。それと復元ポイント作成は必須ですよ。

*1:いや、実は俺様CSS適用しちゃっているのででそのあたりは既に跡形もないんですけどねw

*2:依存関係が不明なためすべてコピーしてみました。

2010-03-15

[] やっぱり広告は邪魔

広告で成り立ってるサイトがあることは重々承知の上ですけど。


でもなんというか生理的に気に入らないというか動きや色がうざすぎて本文読むのに邪魔っ! っていうのもけっこうありますよねー。とくにウイルスバスターとかウイルスバスターとかウイルスb(ry

過去にも何度か広告非表示ネタ書いてますけど、Sleipnirだけでやろうとする場合はどうしても受動的な対応しかできないというジレンマがあるんですよね。

Style EditorやCyclone、userStyleSheetスクリプトなどを使って非表示とかやってみても、これらは実質一度サイトコンテンツをすべて読み込んでからの対応なのでどうもスッキリしないというかなんというか。

それにこれは広告だけの問題ではなく、ブラウザの脆弱性をつくナニカが仕込まれていた場合にはなすすべなしですしね。

ScriptBlockプラグインというのもありますけどこれはこれでいまいちかゆいところに手が届かない・・・


で、こんな時にはどうするかってことですが、ここはやはりProxomitronの出番になりますねー。

Proxomitronっていうのはつまり、ローカルプロクシというヤツでして〜伝々。ググれば使い方解説サイトがいっぱいありますのであえて詳細には触れませんが、平たく言えばブラウザのリクエストによってサーバから送られてきたデータをそのままブラウザに渡す前に横取りしてチョメチョメできちゃうというものです。

つまり、ブラウザにデータを渡す前(レンダリング前)にデータをいじれちゃうので、やばいドメインのデータとかが含まれていることがあらかじめわかっていればブラウザに届ける前にフィルタリング出来ちゃったり、CSSなども書き換え放題だしDOMまでいじれてしまうという何でもありなツールです。


何でもありというと単純にそれはすごいと思っちゃいますけど、やはりそれだけのツールを使いこなすにはそれなりのスキルも要求されます。

しかし、使えるようになるともう無敵・・・かも!?

いろんなフィルタがネット上で公開されていますし、それらを導入するだけでもかなりセキュアで安全なブラウジングが出来るようになります。しかもブラウザを選ばないのが良いところ。*1


でもネットブラウズするのにいちいちそんなメンドくさいツールなんて使いたくないというのが大方の人。

んじゃそこまでせずともとりあえず邪魔な広告見えなくして通常のブラウジングに支障がない方法は無いのかと言うことになりますが、そんな都合の良いものはハッキリ言ってナイです(笑)

ま、少なくとも現時点でのSleipnirにおいてはですが。

まぁ、デフォルトセキュリティを普段から強め設定しておけばクリチカルな問題には遭遇しないでしょうけど、Ajaxやらなんやら使いまくりのWebサービス全盛のこの時代にJavaScriptぐらい許可していないと何も出来ないですしActivXの実行を許可していないと動画もマトモには見られません。

現状では、Proxomitronを使わずに『邪魔な』広告を見えなくしつつ、ある程度セキュアにブラウジングする手段としてはhostsファイル編集+上書きCSSぐらいしかないかなと。

hostsの編集はどうするのか

その前になぜhostsなのかっていうのを説明…しようかと思ったけどこれもググればいっぱいHitしますので詳細は割愛。

平たく言えばコンピュータが外部と通信する際に、hostsに通信先のドメインが記述されていなければ外部のネームサーバーへ問い合わせをしてデータをもらいに行くんですが、hostsに通信先ドメインが登録してあった場合にはそこにある記述に従うようになっていると言うことです。

つまり、記述してあるドメインの参照先が自分のコンピュータのアドレスだったとしたらレスポンスは何もないというのを利用して特定ドメイン宛の通信を遮断しちゃえというわけです。

ここで利用するツールとしては以前からちょこちょこ取り上げていますけど、Hosts File Managerを使うのが簡単でオススメ。

Hosts File Managerならオリジナルのhostsファイルには手をつけずに疑似hostsファイルを作成してそれを利用可能ですし、OSのSystemフォルダ以降にあるファイルを直接いじる必要が無いのでPC操作に不慣れな方でも安心して利用できるというのが良いところ。

一例としてごく一部ですがワタシの予備hostsファイルの一部を晒してみます。これをHosts File Managerで新規ファイルを作成し、『ソースを直接編集』から貼り付けて保存し、このファイルを使う設定にしてブラウザを再起動するとよく見かける広告が見えなくなっているはずです♪

127.0.0.1        pagead2.googlesyndication.com   
127.0.0.1        cnt.affiliate.fc2.com           
127.0.0.1        gigazine.asia                    #GIGAZINE
127.0.0.1        cache.microad.jp                 #GIGAZINE
127.0.0.1        ad.spider-ad.jp                  #GIGAZINE
127.0.0.1        ad.jp.doubleclick.net           
127.0.0.1        ad.adserverplus.com             
127.0.0.1        ad.foxnetworks.com           
127.0.0.1        ad.harrenmedianetwork.com     
127.0.0.1        ad.yieldmanager.com
127.0.0.1        kali.mycom.co.jp 
127.0.0.1        ad.agilemedia.jp  

うえに上げたのは有名どころのごく一部だけですので、必要に応じて個人で追加してあげなければなりません。

しかし、普段巡回するサイト程度であれば追加もそれほど大変ではないかなとおもいます。

ただ、単純な画像リンク型の広告であればリンク上で『ショートカットのコピー』をしてからエディタへ貼り付けて、アドレスからドメイン部分を抜き出したものを内向き参照(127.0.0.1)になるようにhostsへ追加してやればいいのですが、スクリプトなどで表示されているものはソースを読んで解析する必要があります。

まぁこれも他力本願ですが、そういった広告系ドメインを羅列しているサイトとかもあるようですし、Firefoxアドオン用のサイトデータなども加工して使えたりします。

あと、危険な仕込みのあるサイトのアドレスとかを公開しているところもありますので、特に海外のサイトを徘徊される方はそういったところを登録しておくと吉かもですね♪*2


それと、非表示になったはイイけどページレイアウトの関係(iframeなど)でフレームのあった場所に

こいつが現れちゃう場合があります。

あるいは真っ白けになっちゃうとかね。

そんなときこそCSSを上書きできるStyle EditorやuserStyleSheetスクリプトで当該箇所を非表示にしてあげるといい感じです♪


Tipsみたいなもん
  • hostsの記述はSleipnirだけではなく他のアプリケーションに対しても有効になるので、別のブラウザやIMなどにも影響が出ます。なのでそれを踏まえたうえで利用しなければなりません。
    Hosts File Managerであればいくつものhostsを作成/切り替えして利用出来ますのでシーンに合わせて利用可能♪
  • また、hostsはWindous固有のものではなく他のOSにも存在しますので、Windousで育てたオレオレhostsの中身を他のOSで利用することも可能です。

過去の資産って大事

2chは煽りや中傷に終始してしまうスレがあるかと思えば、まったり進行で有意義なレスが多いスレがあって勉強になったりとかまさに玉石混淆なわけですけど、ワタシみたいなSleipnir使いにはスキン・プラグインスレの存在は大きいですねー♪

へんなAA貼りたがる輩が来なければ基本的にまったりしているので雰囲気的にはとってもいい感じ。

で、時々勉強になるなーとか思う書き込みがあったりするのもうれしいところ。ちなみに現在のスレが立ったのが半年近くも前なんですねー。


最近Sleipnirを使い出して情報を集めている方には是非過去ログなども参照していただきたいところですが、先ブラで追っていてログを残している方でもナイ限りはちと無理ですよね。モリタポわざわざ買ってまでっていう方も希でしょうし。

でもまぁうまくしたもので過去ログをただで見られるようなサービスをしてくれている奇特な方*3もいらっしゃるのでそういったサービスを有効利用してスキルを高めていっていただきたいものです。

過去にレスされた中には現在でも使えるTipsやテクニックなどが埋もれていますので、Sleipnirを使いこなしてみたいという方には是非一読をオススメします。

以下に過去ログが閲覧できるリンクを貼っておきますね。広告が気になる方はまぁ適当なあぼーんテクニックを使ってくださいませ♪


こうしてみると最初にたったスレタイ以後はちと簡略化されたんですね。5thが5rdなのはまぁ見なかったことに(笑)

過去ログをこうして使えると、たとえば『まんず( `´ω)さん作のuserStyleSheetを利用している人はhttp://mimizun.com/log/2ch/win/1203298961/599の修正を入れておいた方がいいですよ』とか利用出来ますね。

あと、先ブラ用のdatファイルが欲しい方は2ch DAT落ちスレ ミラー変換機 ver.4へアクセスして必要なスレのアドレスを入れてやると取得できます。

*1:ただし、ブラウザ側でプロキシの設定が可能なものに限ります。

*2:ググればそれなりにHitしますし、一意のものを紹介したところでそれが万全とも言いかねるのであえてリンクは貼りません。また、インターネットセキュリティ用ソフトウエアで十分かもしれませんが転ばぬ先の杖ってやつです。

*3:とは言っても広告収入とか得ているんでしょうけどね。

2010-03-14

[] おやぁ

3月に入ってからというものずーっと放置プレイしちゃってましたね(笑)

ネタはあるんですけど書く気力が無いというかメンドクサイというか・・・


まぁもともとが『なげやりにっき』ってことでご勘弁。

[] リンクバーを整理

最近test版もご無沙汰なようですけど、次にくるのはなにか新しい機能とかあるんでしょうかね。

現在使用中のtest2はたまーに音もなく落ちてくれたり、ときどきフィードバックエージェントが現れちゃったりとかありますけどまぁおおむね満足して使っています。

リンクバーがえらいことに

ネットを徘徊中に便利なブックマークレットなどを見つけると即リンクバーに登録しちゃうので、もう表示しきれなくなってシェブロンの彼方にかなりの数が隠れちゃってます。

しかもブックマークレットはファビコンの指定ができないのでテキスト非表示だと何がなにやらみたいな(笑)

なわけでとりあえず思いつくまま登録してあったブックマークレットをフォルダの中へテキスト付きで押し込めてだいぶスッキリ。

このブックマークレットですが、利用頻度の高いものとそうでないものが当然あります。

で、今回フォルダに押し込めたのは比較的利用頻度の低いものだけ。

普段よく使うものはそのままリンクバーに置いといても良いんですけど、やはりテキスト表示させると場所を取るし、そうじゃないと何がなにやらになるわけです。

まぁそこはうまくしたもので、ブックマークレットの実体はjavaScriptですからうまいこと整形してやるとSleinir上ではUserActionスクリプトとしての利用が可能になります。

アクションとして登録してしまえば、そのアクションに見合った画像をSkinフォルダのactionsへ用意してやることでDockなどへ表示させることも可能になるわけですね。

今回、短縮URLサービスのbit.lyが提供しているサイドバータイプのブックマークレットを追加してみたんですが、Trident利用のブラウザだと表示やログイン状態の保持がいまいちなんですよねぇ・・・と、言うのはまぁいいとしてTwitterへそのままPost出来るとかとかなかなか使えるブックマークレットなので、UserAction化してみました。

と、言ってもなんのことはない。

そのままjsファイルとして使えるのでやったコトと言えば冒頭のjavascript:を取り除いただけなんですけど(汗

  • bit.lyのサイドバーブックマークレットはこんな感じで一行にまとまっています
javascript:var%20e=document.createElement('script');e.setAttribute('language','javascript');e.setAttribute('src','http://bit.ly/bookmarklet/load.js');document.body.appendChild(e);void(0);
  • これをちょいと整形してUserActionスクリプトとして利用します
var e=document.createElement('script');
e.setAttribute('language','javascript');
e.setAttribute('src','http://bit.ly/bookmarklet/load.js');
document.body.appendChild(e);
void(0);

あとは適当な名前+jsをつけてplugins>scriptsフォルダへ突っ込んでやればアクションとして利用出来るようになります♪

利用するにはメニューエディタやSagittarius Dockなどから呼び出してあげるだけ。

  • メニューエディタで『ブラウザ標準』メニューへ追加

  • アクションを利用したいページで発動すると、ちゃんと機能してくれます♪


単純にUserActionスクリプトへと変換して利用出来ないブックマークレットも中には存在しますが、たいていのヤツは利用出来るみたいですね。多少ゴニョゴニョしてあげないといけないのもありますけど♪

てなわけでブックマークレットをたくさん登録されているひとはアクションにしてしまうとオモシロイかもといったネタでした。





月別アーカイブ

2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |

フォト蔵

本コンテンツをご覧になるには、Flash Playerプラグインが必要です。FlashのWebサイトよりインストールしてください。

Banners