ラベル web browser の投稿を表示しています。 すべての投稿を表示
ラベル web browser の投稿を表示しています。 すべての投稿を表示

2012年10月7日日曜日

TamperMonkeyがいきなり動かなくなった件

最近、愛用のTamperMonkeyだけが動かなくなりました。他のchrome extensionsは無事なのに。アイコンをクリックしても、空っぽのバルーンしか出ません。

consoleを見ると、TamperMonkeyの初期化(?)で死んでるっぽい。



Uncaught TypeError: Cannot call method 'addListner` of undefined

どうやら

chrome.extension.onMessageがundefinedになっちゃったらしい。
困ってる人は他にも居るらしい。

http://stackoverflow.com/questions/11246646/chrome-extension-onmessage-is-undefined

なになに?

You should use
chrome.extension.onRequestinstead of
chrome.extension.onMessageAnd in background page or any other extension scripts:
chrome.tabs.sendRequestinstead of
chrome.tabs.sendMessage( the documentation is outdated... alert to google team ;) )

え、API仕様が変わってるの???


小生のバージョンは、Ubuntu 11.10ベースの 18.0.1025.168、これだと動かない。ってことらしい。

ということは、どうやら

  1. ソースを持ってきて自分で改造するか、
  2. 改造を待つか、
  3. chrome本体を古いものにするか、

いずれかしか方法がないですね。

一番簡単そうな3をやろうとしたのですが、Linux Mint 12のaptだと上手く変更できなかった OR そんなに古いモノが無かった。


本家が対応してました
https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo


2012年8月4日土曜日

なかなかイイですよ Tampermonkey

ChromeにTamperMonkeyなるエクステンションがあるのですが、これがナカナカいいです。
http://tampermonkey.net/about.html?version=2.5.29

任意のWebサイトのhtmlに介入して書き換えてしまうものです。
利用には、中級javascript使いである必要があります。
なぜって、生のjavascriptを使って「htmlに介入」するので。

似たようなコンセプトでは、例えば有名なAdBlockがありますが、アレはバナー広告専用ですし、
日本国内のショッピングサイト類等には対応してないわけです。

で、具体的にどうするかですが、例えば、とあるショッピングサイト。特定団体の誹謗中傷を目的としてはいませんので、縮小しまくってます。それでも見えちゃってますが、まあ許してください。



ここのショッピングサイトは、あまりカスタマイズが出来ないらしいのですが、iframeで捻じ込むっていう方法論が確率しちゃって、結構な分量のカタログを見せられます。とはいえ、長すぎじゃね?と思うところも多々あります。だって、縦2000ピクセルとかありえないですよ。どんだけスクロールさせるんだよ。商品を売る気があるのかよ?

そこでTamperMonkeyの出番。
https://chrome.google.com/webstore/detail/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=en-GB
https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo
話の都合上、入れるしかないので、入れてください。

しかし単体では動きません。個々のユーザスクリプトをインストールする必要があります。

前述のケースでは、こんなことをヤラカすスクリプトを書きました。


一定サイズ以上の巨大なiframeを、リンクに差し替えます。これが効くと、画面がゴッソリ縦に縮みますから、サクっと商品をチェックできます。

TamperMonkeyでは御謹製リポジトリがあるのですが、ファイル名が、*.user.jsだと何処からでもインストールできるっぽい。ので、githubに貼りました。

https://gist.github.com/raw/3255264/50bd0ae0e598f7b943ea5c022d208cbc143944cf/iframedisabler.user.js

インストールが始まっちゃいますが、ご安心を。断った上でソースの確認ができます。

味を締めて、もうひとつ書きました。tumblrのreblog用です。



小生が常用しているPCは、14インチワイドなので、縦がやや狭いです。ですが、tumblrはどういう訳か、縦長い画面の方が使いやすいように出来てるようです。Android Tablet で縦持ちで使うと、驚きの使いやすさ。

実際にはそんなに大それた話ではありません。画像を縮小しちゃってもいいわけです。Bookmarkletはそうなっています。PC用に、っていうか、ユーザPCの画面サイズに合わせて縮小してくれないもんでしょうか。やってくれなさそうなので、TamperMonkeyの出番です。



スクリプトはコイツです。
https://gist.github.com/raw/3255265/c90e19012f422f39952182b6d30724d19ced2534/tumblrnallowscreen.user.js

2012年5月8日火曜日

日本人のIE好きは異常

日本人のインターネットエクスプローラ好きは、日本人同士なら周知だと思いますが、
世界的に見ると、シェアはかなり落ちてるようです。既に4割を割ってるらしい。

http://gs.statcounter.com/



IEのユーザが、完全にChromeに流れてるのが一目瞭然です。ただし、これが日本に限ると未だにIEのぶっちぎりなのです。


不思議ですね。と言いたいところですが、理由は明らか。日本人の「長い物には巻かれる」という資質が出てるのでしょう。大多数の日本人がMS Windowsを使ってる。そして、その大半は、やはりオマケのIEを使いつづける。というわけです。何の疑いものなく。

IE自体は、別段優れてはいません。Windowsのオマケという立場を利用してるにも関わらず、スピードはChromeに大きく遅れていました。特にIE6の頃が顕著でした。特にベテランGmailユーザはご存知だと思います。IE6でGmailを使うと、激遅であることを。

別の理由もあります。大企業では大抵「IT推進部」或いはそれに類する部署があり、社内のPCやらソフトやらを管理しています。 そういう会社では、大抵、初期にインストールしっぱなしのIE6を未だに使っていたりします。しかもjavascriptはOFF。「仕事」しかできません。ある意味組織票ですね。

ちなみに、先のブラウザ統計グラフですが、数年スパンのものも見られます。



Chromeの尋常ならざる追い上げが凄い。


日本でも、年単位で見ると、IEのシェアは落ちつつあるようです。このペースでいくとあと3年はかかりそうですね。

2011年9月12日月曜日

もっと流行ってもいいと思うmozilla prism.

mozilla prismをご存知でしょうか。

http://prism.mozillalabs.com/

webアプリ専用ブラウザです。というと何のこっちゃ判らないかもしれません。

初期起動時は、次のような設定画面がいきなり出ます。



これを操作していくと何が起こるかというと、特定のURLの対するデスクトップショートカットが出来ます。これはOSを問いません。Microsoft Windowsは元よりubuntuですら同じです。

要するに、特定のURLだけをいきなり開くブラウザとなるわけです。

何が嬉しいかというと、特定の数件のWEBサービスを常用する場合ですね。

普通だったら、ブラウザを起動して、URLを入力もしくはブックマークから選ぶ。
もしくはタブブラウザを常用している人は、スタートアップに入れてるかもですね。

しかし、prismでは、デスクトップショートカットで行きなりWEBサービスが開くので
普通のネイティブGUIアプリと、使い勝手は変わりません。

そして、昨今のWEBサービスは、ajaxを使いまくりで、モノによってはドラッグ&ドロップすら出来たりします。より一層、WEBサービスとネイティブアプリの差は縮まっています。

プロジェクト通り、コイツはmozilla/firefoxと同郷なので、スピードの面ではgoogle chromeにやや押されがちですが、firefoxよりも起動がやや早く快適に使えます。

2010年8月10日火曜日

グーグル画像検索が、快適化

おもむろにグーグル画像検索を使ってみたら、
またパワーアップしてましたね。
しかも何で気づかなかったかというと、
Firefox専用らしい! Google Chromeでは稼働しません。



サムネイルの密度が上がって、ページ切り替え無しの上下スクロール。
グーグルマップのアレの延長線上にある技術でしょう。
iPhone等では、フリックでめくれるので、
むしろPC版でのスクロール実装は遅かったぐらい。

スクロールが差し掛かると、画像のロードをするlazyloadの採用。
なので、絶望的なスクロール範囲の割に、PCのメモリ使用は控えめな筈。

カーソルが重なると、ウニョンと拡大、さらにそれを選ぶと、
ページに飛びますが、とんだ先では、本来のページが背景に隠れて、
画像を、勝手にライトボックス表示。

2010年4月15日木曜日

XMLは「固い」とお嘆きの貴兄に、YamlとJSON。

ソフトウエア業界で、XMLを知らない人は、
21世紀の現代では居ないでしょう。
15年以上前の、発祥当時は、
知る人ぞ知る的な面が多かったのですが。

XMLは、端的に言えば、HTMLのイトコです。
厳密には、HTMLのXML準拠がXHTMLで?
XMLの複雑版(?)のSGMLが、だったか?

#調べてもらえば済む話なんで、本稿では正確さは目指しません。

不等号によるタグで、囲んだり挟んだりして、
データの階層構造を表します。
HTMLのFONTタグやらAタグやらが、
まさしくそうですよね。

しかし、XMLはエンタープライズ界隈発祥なので、
Javaと同じ業を背負っています。「固い」です。

XMLは、様々なソフトウエアの「定義ファイル」として
使われているので、どこでデモ見つかります。

http://technet.microsoft.com/ja-jp/library/ee909429.aspx


面倒臭そうでしょ?
とにかく文字が多い。ギチギチです。

エンタープライズ界隈で、コレを面倒だと言う人は居ません。
面倒なのはコレだけじゃないので、
麻痺しちゃってるんじゃないでしょうか。
もしくは、Eclipse等で編集します。

まあ、データ交換言語として発祥したので、
プログラムで生成する分には構いません。

手で書かせちゃいかんだろ、って話です。

データの構造を表すのに、何通りか方法が有っちゃうのも
混乱を招く&学習しにくくなる理由でしょう。

「XML技術者認定制度」って欲分からない組織もありますね。
仕 事を増やす仕事に絶望した!

Java業界は、Eclipseを使うしかない、から良いのですが、
pythonやらPHPやらは、Eclipseに依存は無いので、
わざわざxmlの編集だけに使う、って非合理的です。
#実際、流石の使い勝手ではあるのですが。

故に、xml専用の編集ツールも、幾つか存在します。


しかし、別のエントリでも筆者が何度となく申している通り、
手段の為に、別の手段を必要とするのは、回り道ですらありません。
仕事を増やす仕事に絶望した!

結論だけ言っちゃえば、既に別の選択肢が現れています。
データ型を絞り込む事で、記述の簡素化&再構築をしています。

javascriptベースで、サーバと通信するならjson
XMLとの比較も載ってるので、エラくあっさりしたのが判るでしょう。

javascriptやpythonの、静的データ構文に酷似してるので、
プログラマには非常に馴染みやすい形式の筈。

手で書くのも苦にはなりませんが、
javascript以外でも、変換関数が付属してたりします。

更に、手で書いてもラクな(それを目指した)
フォーマットもあります。yaml
サンプルを見ると「そういうことね」と思えるでしょう。

ここまでシンプルになれば、
CSVの代替として現実的でしょう。
見た目はもちろん互換性は無いけど、用途的にね。

CSVだったら、カラム順を合わせなきゃなりませんし、
ダブルクオーテーションを含むカラムの表現がアレだったり
カンマだったり、カラムの途中で改行してくれちゃったり
取り込みはかなり面倒臭いです。

yamlはデータ構造の表現が有るので、心配は要りません。

殆どの言語向けの実装があるので、
とりあえず設定ファイルはyamlにしちゃえ、
と言うのもアリです。

2010年4月11日日曜日

「webアプリケーション」は、ネイティブアプリに比べると、色々面倒

情報漏洩やらの懸念から、
企業では、従業員個人単位での単体アプリケーションの運用を辞めて
シン(thin)クライアント化やら、web化やらに進みつつ有ります。
3年ぐらい前から?

web化については、従業員PCに入れるのはブラウザだけで済むので、
「情報管理統括部」としては、大幅に気楽だとは思いますが、
作る方は、むしろ手間が掛かったりします。

#ソリューションの本質は、「苦労」の箇所を「変える」事なので
#開発稼業は、ある程度それを覚悟してやってる訳ではありますが。

例えは、「登録をしたい」と言えば、
基本的に、

  • 追加
  • 検索
  • 修正
  • 削除
  • (終いには)変更履歴、

の4〜5機能の実装を含んでいます。
「アンタ、「登録」としか言わなかったじゃないか!」
とゴネても無駄です。結局作ることになります。

webベースでこれらの実装をするのは、実はかなりコスト(手間)が掛かります。

  • 従業員データは、dbに入れるでしょう。
  • 編集画面は、htmlで書いて、ブラウザに送ります。
  • ブラウザ側で、人間がFORMを埋めて、submitして、サーバに送ります。
  • 空欄チェック、全角半角、英数字、メイルアドレス書式等
  • サーバからチェック結果を戻す。
  • サーバは、dbに格納する。

上記、3段階で、全て、入力項目の管理をしなければなりません。
それ自体は、単体アプリでも必要ですが。

webベースで勝手が違うのは、
ブラウザとサーバの2ヶ所で処理する事です。
しかもその間の通信方法は「HTTPでなければならない」。

入力に不備が有ります、と画面に出すだけで結構苦労します。
サーバ側の実装はPHPだったりJavaだったり、
ブラウザ側はHTMLで、とか言語も違ったりします。

加えて、編集+新規+削除 それぞれで
似て非なる実装を何回か繰り返さなければなりません。

更に、これを「○○管理」全て、繰り返す訳です。

余程の工夫をしないと、工数削減は出来ない、と言うのは
そろそろお解り頂けるでしょうか。

やっつけ仕事で、コピペしても良いのですが、
実装量は確実に増えます。バグりやすくもなります。

筆者が言うまでもなく、
これをどうにかしようという動きも当然ありまして
とっくの昔から、地球規模で進んでいるわけで、
それぞれの言語で、幾つかのフレームワークが産まれています。

しかし「それを持ってくればOK」、で済めばプログラマ要りません。
クライアントの「担当者」がやってみれば良いです。
#本当にそれで済んじゃえば、商売あがったり、な訳ですが。

グーグルが始めた「ajax」は、実はその「どうにか」の一つでもあります。
ブラウザjavascript側に、大部分の処理を移譲することで、
ブラウザとサーバの通信回数をゴッソリ減らせるわけです。

ですので、
ごくたまーに「IE6で、しかもjavascript禁止」だと、
血の気が引きます。ザザーっと。

8年前のテクノロジーに付き合わなければならなくなります。
2010年現在で、改めてIE6互換環境を用意するのにもかなり骨が折れます。
正規で入手する方法は、既にありません。
正直、割増料金が欲しいぐらいです。

マイクロソフト本人が「IE6よりIE7の方が安心」って言ってるんだから
いい加減入れ替えましょうよ。「IT推進部」の皆さん。

自分で「より快適」とか言っちゃだめでしょう。

2010年3月24日水曜日

インターネットエクスプローラとファイヤーフォックスとクロームとグーグルの関係

重い重い、と言われているFirefoxですが、
理由はハッキリしています。
「Windows向けの裏技を使ってないから」です。

InternetExplorerは当然使っています。
裏技って何か?
Internetが付かない、エクスプローラは、
実はInternetが付く方のプログラムの殆どを包含してるのです。
#この表現は厳密ではありません。説明用です。

InternetExplorerの3まではそうでもなかったのですが、
InternetExplorerの4からそうなりました。
Windows98辺りから、アクティブデスクトップとか言い出したでしょう?
デスクトップにHTMLを貼り付けられる。
それはそういう事です。

http://msdn.microsoft.com/en-us/library/aa741312(v=vs.85).aspx


一昔前のモバイルノートPCは、WindowsXPでメモリ512MB、とかなので、
「Firefoxは重いからIE使ってる」となるのも無理からぬ事です。

しかし、起動しちゃった後の方が問題です。

IE7未満は、他のブラウザに比べて、javascriptエンジンが遅いのです。
具体的には、文字列連結処理が遅い、らしい。
文字列連結って何か?

webの殆どはHTMLで書きますね。
HTMLの一部をjavascriptで切ったり貼ったりできます。
サーバに一括でHTMLを作るんじゃなくて、ブラウザ側で自分で作り直すんですね。
ブラウザに処理させる、って言ったら、現状はjavascriptしか選択肢が無い。

サーバとPCとの、データの行ったり来たりがゴッソリ減るので
レスポンスが良くなる、
だけじゃなくて、インタラクティブな操作が出来る。それがajaxです。
もう何年も前ですが、グーグルマップの登場は衝撃だったでしょう?
ajaxの真骨頂です。
javascriptの株が、大幅に上がりました。あれで。

javascriptは結構おもしろい言語です。
画面をフェードしたり、ポップアップボカボカ出したり、だけが脳じゃないんです。
グーグルマップの様な、高度な実装もちゃんと書ける。
この辺りは話すと長いので。

HTMLは文字列です。切ったり貼ったりは文字列処理です。
それが遅い、と言ったら、イマドキのajaxのサイトが遅い、のと同義です。

まあ普通の、日本国内のwebサイトを見ている分にはIE7でも平気ですが、
Gmail等、グーグルのajaxサイトは、
javascriptの限界に挑戦しちゃってますので、
Gmailが遅い、から使いたくない、という話になっちゃいます。
実際に、そういう人は多いです。

「IE7でGmailが遅いから、メモリを買ってきた、2GBにしてるのにまだ遅い」
知人がそんなコントをやってました。

#話の流れてきには、「ここでFirefox」と言いたかったのですが

面白くないのグーグル。
Gmailが重いのはオレらのせいじゃねえよ、と思ったかどうかは知りませんが。
Chromeを作りました。

試してみてください。馬鹿っ早いです。
512MBでも実用になるはずです。

一方、Chromeは「webサービスの利用」に特化しているので、
ブラウザとしてはかなり機能アッサリです。

InternetExplorer8では、文字列処理の速度が大幅に改善してます。
アップグレード出来る人は、アップグレードするべきでしょう。
マイクロソフトもアップグレードさせたがってるでしょ?

ただそれでもFirefox3とかChromeには追いついてないらしいですが。

Firefoxが重いのはまた理由が違います。
Firefoxがマルチプラットフォーム対応なのに関係があります。

マルチプラットフォームブラウザを実装するにあたり、
マルチプラットフォームフレームワークを開発した、らしいんですね。
XULナントカって奴、らしい。
http://ja.wikipedia.org/wiki/XULRunner
https://developer.mozilla.org/ja/docs/XULRunner/What_XULRunner_Provides

Firefox内部は、結構javascriptで動いてます。
エクステンションがドッサリありますが、これらはすべてjavascriptで出来ています。
https://addons.mozilla.org/ja/firefox/

ただwebを見るためのブラウザとしては、考えすぎとも言えます。
この「考えすぎ」部分は、当然、ある程度はメモリを食います。だから重い。



故に、エクステンションを使わない人は、
FirefoxのHTMLエンジンだけを抜き出したブラウザが幾つかあります。
HTMLエンジン単体は、mozillaプロジェクトの中の、geckoという単体製品なので、
スキルがあれば、他の製品に組み込めるわけです。
http://ja.wikipedia.org/wiki/Gecko
https://developer.mozilla.org/ja/docs/Gecko

むろん、mozillaプロジェクトとして、そうして欲しいわけです。
https://developer.mozilla.org/ja/docs/Embedding_Mozilla

例えば、K-meleon http://kmeleon.sourceforge.net/
InternetExplorer並の軽さ、しかもGmailも快適。
ただしWindows版しかないけど。

と言うわけで、IE7未満以外を使えば、Gmailが快適に使えます。