タグ

ブックマーク / la.ma.la (18)

  • フィードリーダーの脆弱性まわりのこと

    最近、FreshReaderに脆弱性があったということで、いくつか調べて直したり、赤松さんと連絡取り合ったり、それからはてな使ってないのにユーザー様とか書かれて不愉快な気分になったりしてたんですが。 この記事はひどすぎると思う。 フレッシュリーダーの脆弱性に関連してSage++のこと そもそもの問題として「ローカルディスク上のHTMLファイルをブラウザで開くと超危険」です。XMLHttpRequestやIFRAMEでローカルファイルの内容を読み取れるからです。Sageに脆弱性があるということは、あらゆる個人情報の漏洩につながります。「開発者の個人情報を晒すリスクが云々」というのは、個人的には分からなくもないですが、ユーザーの個人情報を危険に晒していることを認識すべきです。 開発者人が過去に書いているので、危険性の大きさは十分に認識できているはずです。「脆弱性がある」と公表してしまった時点

  • 最速インターフェース研究会 :: PerlでIEの履歴にアクセスする方法

    こんなんで出来た。 use strict; use Win32::OLE; use Data::Dumper; my $wshell = Win32::OLE->new('Shell.Application') or die "oops\n"; my $HISTORY_FOLDER = 0x22; my $history_dir = $wshell->Namespace($HISTORY_FOLDER); my $url_list = scan_folder($history_dir, []); print Dumper $url_list; sub scan_folder{ my ($folder, $ref) = @_; my $items = $folder->items; for(my $i = 0;$i < $items->count; $i++){ my $item = $it

    j0hn
    j0hn 2007/01/19
  • 最速インターフェース研究会 :: ページレンダリングを妨げないdocument.writeの実装

    とてもシンプルに自分自身が属する script 要素を取得 http://d.hatena.ne.jp/amachang/20061201/1164986067 document.writeをDOM仕様にする http://nyarla.net/blog/javascript-tips1 あたりに着想を受けて、作ってみました。 http://la.ma.la/misc/js/lazy_writer/ 特定のscript src内のdocument.writeをピンポイントに置き換えることができます。 制限事項としては、document.writeを使ってscriptタグを生成するようなコードの場合、IEではinnerHTMLにscriptを書いても実行されないという仕様があるので実行されません。その点を除けば、IFRAMEをdocument.writeで挿入するような、良くある広告系のdo

  • 最速インターフェース研究会: Synergyの裏設定「switchDoubleTap」を知らない人が多すぎる

    LANで繋がっているマシンのマウスとキーボードを共有してWindowsMacをつなげたりといったことが出来るSynergyというツールがあるのですが、Synergyの設定ファイルに section: options switchDoubleTap = 250 end などとやると、デスクトップの端っこをコンコンと二回タップしたときだけ画面が切り替わるようになります。切り替える際に一手間増えることになりますが、そんなに頻繁に画面を切り替えるわけでもないのでさほど気になりません。WindowsのサーバーだとOptionsの中に項目があります。トラックボールを使うようになってから暇なときはボールを勢いよく転がして遊んでいるのですが、デスクトップが頻繁に切り替わってしまって陶しいことになります。また、最近ではホイールを使うのでスクロールバーを使わないという人も多いかとは思いますが、スクロールバ

  • 最速インターフェース研究会 :: Firefoxの拡張MozLabの中に含まれるMozReplがヤバすぎる件について

    MozLabという拡張を昨日知ったのですが http://dev.hyperstruct.net/trac/mozlab この中に含まれているMozReplというのがヤバい。Firefoxにtelnet接続できるようになる。 とりあえずRubyで書いた簡単なサンプル、今見ているページをリロードするだけ。 require 'net/telnet' telnet = Net::Telnet.new({ "Host" => "localhost", "Port" => 4242 }){|c| print c} telnet.puts("content.location.reload(true)") telnet.close ひたすら自分が見ているURLとページタイトルを記録する系とか簡単に作れそう。 今見ているページのURLとタイトルを取得するサンプル。 require 'net/telnet'

    j0hn
    j0hn 2006/09/28
  • 最速インターフェース研究会 :: SafariのAjaxの文字化けをクライアント側だけで対応するバッドノウハウ

    SafariでXMLHttpRequestのresponseTextが文字化けするという話。 http://blog.33rpm.jp/garbled-on-safari.html 最近のバージョンだとcontent-typeがちゃんとしてれば化けなかったような記憶があるけど、まあともかくとして、Safariで文字化けするのはJavaScript側だけで対処することができたりする。 http://kawa.at.webry.info/200511/article_9.html これ読んでほんとかよ、って感じだったんだけど案外役に立った。livedoor Readerで使われてたり。 実際に使われてるコードはこんなの。 if(browser.isKHTML){ ajax.filter.add(function(t){ var esc = escape(t); return(esc.index

  • 最速インターフェース研究会 :: history.backが成功したかどうかを判別する

    今も昔も大変よく使われている古典的JavaScriptの一つjavascript:history.back()なんですが、実際に戻る操作が成功したのかどうかを判別することができません。タブブラウザなんかを使っててミドルクリックで新規タブで開いてたりすると、history.backをクリックしても無反応で何も起こらない、なんてことよくありませんか? そんなわけなのでhistory.backを実行後にページ移動が発生しているかどうかを監視して、戻るに失敗したときに特定の処理を発生させることができるような関数を作ってみました。 function try_back(errback){ var bs = false; Event.observe(window,"unload",function(){bs=true}); Event.observe(window,"beforeunload",func

  • 最速インターフェース研究会 :: prototype.jsのObject汚染を回避する方法

    かなりターゲットの狭いTips。役に立たない。 prototype.jsというRuby on Railsなんかのフレームワークで使われている有名なJavaScriptのライブラリがあって、これが色々と使えそうな処理を綺麗に詰め込んであり、デファクトスタンダート的な地位を確立しているのだけれど、ちょっと微妙だなーと思うところがあって、それはObject.prototypeを拡張してしまう点。 実際の弊害はこういう。 http://d.hatena.ne.jp/nazoking/20050425/1114374966 要は連想配列として使うときに困るって話。 多分prototype.jsはJavaScriptの側でロジックを組むことをあまり想定していないため、この辺の問題にあんまり配慮していないのではないかと思うのだけれど、とりあえず無理やり回避する方法を思いついたので書いてみる。 http:

  • 最速インターフェース研究会 :: 実践JavaScriptで配列をシャッフルする方法リファクタリング

    JavaScriptで配列をシャッフルする話を見て、そういえばArray#shuffleは以前書いた記憶があるなーと思って調べてみたらコピペだった。 http://www.fumiononaka.com/TechNotes/Flash/FN0212002.html Fisher-Yatesというアルゴリズムだそうです。 Array.prototype.shuffle = function() { var i = this.length; while(i){ var j = Math.floor(Math.random()*i); var t = this[--i]; this[i] = this[j]; this[j] = t; } return this; } a = [1,2,3,4,5]; a.shuffle() // 3,1,5,2,4 a // 3,1,5,2,4 ごく普通に実装

  • 最速インターフェース研究会 :: 萌ディタとSleipnirとWEBrickを使って人のサイトのCSSをリアルタイム編集するデモ

    Shiubya.js #1で話したネタですが、Winkでデモを作ってみました。 http://la.ma.la/misc/demo/realtime_cssedit.htm エディタとブラウザが並んでて窮屈ですが、実際はこれを20インチワイド液晶縦置きデュアルでやります。 仕組みは、WEBrickでローカルプロキシを立てて、同名のファイルがローカルにある場合は内容を置き換えて表示する、というもので、CSSJavaScriptを編集するのに向いています。 プロキシサーバーはPerlで書かれた同等のものがここにあります。 http://www.ornithopter.jp/archives/2006/05/perl_perl.html 自分が使ってるのは必要に応じて行き当たりばったりに拡張していったりするのですが、現時点でのソースを置いておきます。 http://la.ma.la/misc/

    j0hn
    j0hn 2006/07/17
  • 最速インターフェース研究会 :: IEの遠隔操作用ライブラリmechanize.js

    先日のShibuya.js Techtalk#2では開発手法の話とかは(前回話したので)あまりしなかったのですが、そういう話を知りたいという人も多いようなので適当に公開していこうと思います。 http://la.ma.la/misc/js/mechanize/ WWW::Mechanizeと似たインターフェースでIEを遠隔操作するライブラリです。htaから呼び出してテスト用のツールを作ったりします。wshからも使えると思います。 機能的には最低限のものしか実装してません。ファイルのアップロードとかはJS側からいじれなかったと思うので多分無理です。 この手のツールではseleniumというのが有名なのですが、多機能すぎて使い方が良くわからないので自作しました。単純な動作確認や連投に使ったりします。 これを使ってアレをナニしたりしているのですがとてもここには書けません。

  • 最速インターフェース研究会 :: マウスホイールでlivedoor Readerの前後フィードに移動するGreasemonkeyスクリプト

    とりあえず作ってみた。for nazoking. これ以上スクロールできなかったらホイールで前後のフィードに移動。 次のフィードに移動するまでの閾値を入れられるようにしてある。 http://la.ma.la/misc/userjs/ldr_wheelhack.user.js あるいは、ほんとに読むことに特化するなら、もうこんなのでいいんじゃないかという気もする。 任意箇所左クリックで次、右クリックで前。 http://la.ma.la/misc/userjs/ldr_clickhack.user.js 要望とかは基的にブログに書いてくれたほうがありがたいのですが、調子に乗ってあれこれ書かないでください。 livedoor Readerがさらに軽快になるGreasemonkeyスクリプト ・最速インターフェース研究会 :: マウスホイールでlivedoor Readerの前後フィードに移

    j0hn
    j0hn 2006/05/09
  • 最速インターフェース研究会 :: CPAN最速検索

    作りました。 http://cpan.ma.la/ Firefox用パネル。ブックマークしてプロパティ→サイドバーに読み込む。 http://cpan.ma.la/panel.html 全モジュールのリストを改行で区切ったテキストファイルを受信してクライアントサイドで検索させています。クライアントサイドで検索させているのでサーバー負荷は全くかかりません。 仕組み省メモリ、高速に動作するように工夫してあります。 - 配列に変換せずに一つの巨大な文字列から検索 → 切り出し。 - クロージャで次の検索結果を取得する関数を保持しておいて、描画が必要になった時点で検索を実行。 -- その代わりにトータルのヒット件数がわかりません。 今の所の機能- 上下で選択、エンターでperldoc表示、マウスクリックでもperldoc表示。 - 正規表現がおかしくなければ、そのまま使えます。 -- 例えば \d

  • 最速インターフェース研究会 :: mixiのポータル化を阻害するGreasemonkeyスクリプト

    作った。 idやclassが振ってないので難しいですね。 http://la.ma.la/misc/userjs/mixi_anti_portal.user.js ---- XPathとか使ったやつ(こっちのほうが勉強になります) http://lowreal.net/logs/2006/02/08/2

  • 最速インターフェース研究会 :: Firefoxでの開発を高速化する自動リロードスクリプト

    以前にも書いたとおり萌ディタとSleipnirAPIを駆使して、htmlその他ソースファイルをいじると保存のタイミングに合わせてSleipnirのアクティブタブがリロードされるようになっているわけなのですが、近頃Firefox1.5をメインに使うようになってしまったのでFirefoxでも上手く動くようにしようという話。 もちろん自動リロード機能を提供する拡張があるのは知ってるんだけど、編集のタイミングと関係なく1秒ごとにリロードさせたらせわしなくて仕方ない。あくまで保存のタイミングに合わせてブラウザを更新したい。 最初は萌ディタからFirefoxにコマンドラインでブックマークレットを渡すというのをやってみたのだけれど、どうにも手元の環境では上手く動かない。新しいタブでブックマークレットを開いてしまったりする。WSHでFirefoxにフォーカスを合わせてF5を送るとかもやってみたんだけど萌デ

  • JavaScript::DebugScreen

    デバッグに役立つかもしれないライブラリ 公開 : 2006-01-15 更新 : 2006-01-16 License : Same as Perl See also : http://www.bigbold.com/snippets/user/ma.la サンプル ダイアログはダブルクリックで消えます。 Firefoxだとeval系の行番号が正確に出ません 伝家の宝刀 Null またはオブジェクトではありません IEだと外部jsファイルのエラーを補足できません 使い方 debug.js debug.css ie_xmlhttp.js ファイルを保存してheadタグの中にこんな感じで貼り付ける。 <link rel="stylesheet" href="debug.css"> <script type="text/javascript" src="ie_xmlhttp.js"></scri

  • 最速インターフェース研究会 :: JavaScriptでDebugScreenを表示する

    デモ、IEかFirefox http://la.ma.la/misc/js/debugscreen/ IEとFirefoxではwindow.onerrorを設定するとJavaScript全体のエラーを補足できます。さらに返値をtrueにすると標準のエラーダイアログを抑制できます。 簡単なサンプルはこんな感じ。 window.onerror = function(mes,file,num){ alert([ "file : " + file, "line : " + num, "message : " + mes ].join("\n")); return true; } あまり細かい情報を取得できるわけではないので、例外処理に使ったりはできないのですが、エラーメッセージを親切にしたりできるかもしれません。 そんなわけで、ファイル名と行番号わかるなら自分自身をXMLHttpRequestで受

  • 最速インターフェース研究会 :: 2005年もパクられてこなかったもの私的まとめベスト3

    良く出来たものはパクられなければなりません。技術者たるもの我が社の利益だとか愛国心だとかのためではなく、人類の幸福のために行動すべきです。たかだか見た目程度でしか物事を判断できない人間がパクりは悪などという風潮を広めてまわるのは残念でなりません。大企業だろうがベンチャーだろうが一個人だろうが関係ありません、良く出来たものはパクるべきです。パクられてこなかった人の気持ちを考えたことがありますか?胸に手を当てて考えてみてください! iRiderサムネイル表示とドラッグによる高速なタブ切り替えを備えたブラウザ。 http://www.irider.com/irider/ デモムービー(Flash)を見ると良い http://www.irider.com/demo/index.htm 百式の紹介。 http://www.100shiki.com/archives/2004/07/_iriderco

  • 1