タグ

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

  • 最速インターフェース研究会 :: SiteConfigWikiの情報を使ってはてなスターをくっつけるブックマークレット書いた

    頑張って作ろうかと思ったら既にConfigLoaderというのが定義されてたからそれ使うだけで良かった。 Add HatenaStar JSONをevalしないでクライアントサイドでパースしたほうが安全じゃない?というような話。 http://d.hatena.ne.jp/ku0522/20070927/1190868347 Greasemonkeyみたいに外部ドメインのデータ引っ張ってこれるとは限らないので、JSONPがあること自体は良いことだと思う。JSONPがあるのは設定不要で簡単に貼り付けられるようにするためだと思うけど、動的に取得するようになってるとWikiで挙動を変えられてしまうので危険だと思う。例えばJSONを出力する処理にバグがあった場合とか、凄く処理が重くなるセレクタとかを指定されるとか。あくまでコード生成の補助に使うぐらいがいいんじゃないかなあ、という気がする。 整形済

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

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

    dann
    dann 2007/10/17
    Greasemonkey0.6.4ではXMLHttpRequestが使えなくなっているため、代わりにunsafeWindow.XMLHttpRequestを使った。この場合、同一ドメイン、及び、ローカルファイルからローカルファイルへのアクセスがで
  • Index of /misc/userjs

    Index of /misc/userjs Parent Directory AmazonCartHelper.user.js AutoReload.user.js DelayMaryo.user.js GoogleAutoPager.user.js GoogleInstantSearch.user.js HatenaRssRolling.user.js KuruKuruMixi.user.js acmemarc.user.js akeome.user.js amazon_gift.user.js ameblo_sucks.user.js dxh.user.js dxh_img.user.js estseekautopager.user.js frepa_killpopup.user.js gmail_unread_toggle.user.js google_reader_beta.use

    dann
    dann 2007/09/10
    malaさん作のgreasemonkey
  • 最速インターフェース研究会 :: livedoor ReaderにはてなスターをくっつけるGreasemonkeyスクリプト

    の、雛形。 http://la.ma.la/misc/userjs/ldr_with_hatenaster.user.js (function(){ var w = typeof unsafeWindow != "undefined" ? unsafeWindow : window; var initialized = false; var s = document.createElement('script'); s.src = 'http://s.hatena.ne.jp/js/HatenaStar.js'; s.charset = 'utf-8'; document.body.appendChild(s); var t = setInterval(function(){ if(w.Hatena){ init(); initialized = true; clearInterval(t

    dann
    dann 2007/09/08
    外部スクリプトの読み込み
  • 最速インターフェース研究会 :: Functionコンストラクタを使ってJavaScriptネイティブじゃない関数をラッピングする方法

    ExternalInterface.addCallback で定義された関数は apply できない http://d.hatena.ne.jp/nitoyon/20070214/p1 っていう記事に書いてあるコードを手直し。Flashをいじってないんで、上手く動くかどうかよくわかんないですが、こんな感じでいけると思います。 function applySwf(swf, method, args){ if(swf && typeof swf[method] == "function"){ var params = []; for(var i=0;i<args.length;i++) params[i] = "_"+i; Function( params.join(','), "this("+params.join(',')+")" ).apply(swf[method], args); }

  • 最速インターフェース研究会 :: JavaScriptの関数の結果を期限付きでキャッシュする

    処理に時間がかかるけれども、一定時間は結果が変わらないような関数の結果をキャッシュしたい。 例えばgetElementsByTagName("*")なんかを頻繁に呼び出すようなコードがあったとして、結果をキャッシュしたいけれど画面描画が発生すると使えなくなってしまう。setTimeoutで0ミリ秒後にキャッシュを消す処理を入れておいて、画面描画と関係のある処理はタイマーで実行するような制約を付けてコードを書けばDOMが絡む処理の結果もキャッシュすることができる。というようなケースに使えるような気がする。 Function.prototype.timed_memoise = function(ms){ var self = this; ms = ms || 0; var memo = {}; var clear_q = false; function clear_cache(){memo={

  • 最速インターフェース研究会 :: ライブドアのテクノロジーセミナーでしゃべってきました

    昨晩はライブドアで開催されたテクノロジーセミナーで「Technologies for UI」という題でプレゼンをやりました。 発表資料はpdfhtmlで公開する予定ですが、とりあえずテキストだけ先にアップしておきます。 http://ma.la/files/livedoor/seminar2006/seminar.txt プレゼンツールがFirefox専用だったりするので、これも少し手直しして公開予定です。 こういう機会があるたびにプレゼンツールを作ってるような気がします。 ---- 追記:12/15 ライブドアのtechblogの方に発表資料をアップしました。 http://blog.livedoor.jp/techblog/paper/ldtech2006/ 上下カーソルキーでページをめくれます。

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

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

  • 最速インターフェース研究会 :: XMLはメタデータというより生データとしての利用価値が高まりつつあり、AjaxによるUIの切り離しがそれを加速する

    全部まとめて色々書こうかと思ったのだけれど、どうにも上手くいかないので、少しずつ分割して書くことにする。 まず最初にこれなのだけれども http://johnvey.com/features/deliciousdirector/ これは何かというと「JavaScriptで書かれたdel.icio.us APIのクライアント」である。最初に全てのブックマークを受信して、その後のタグによる絞込みなんかは全てJavaScriptで行う、というものだ。 とりあえず、実際にこのデモを見るのが早いだろう。 http://johnvey.com/features/deliciousdirector/demo.html この方式では、ブックマークの件数が1万件を超えるようなケースになると破綻することがわかっている。 del.icio.usのAPIでは特定のタグを含むブックマークを取り寄せることも出来るので

    dann
    dann 2005/10/16
  • 最速インターフェース研究会 :: ページレンダリングを妨げない広告挿入手法に関する覚書

    多分わかる人にはわかると思うんだけど、わかんない人にはわかんないと思うので、誰かわかりやすく書き直してくれると助かるんだけどとりあえず書いておく。 例えば、GoogleAdsenseなんかで広告を挿入するには、外部ドメインに置いたJavaScriptを読み込んで使う。セキュリティ上の問題があるにもかかわらず外部ドメインのJavaScriptをそのドメインにあるかのように取り込めるのは、多分、そういう需要があるからだろう。 んで、そういうスクリプトの構成というのは大抵、scriptタグを挿入した位置に広告がdocument.writeを使って書き出される、というものだ。 しかしこの方法には問題があって、それはscriptがロードされて実行が完了するまでページのレンダリングが止まる、ということだ。jsファイルを受信するまでにかかる時間と、解釈と実行、document.writeでブラウザに出力

  • 最速インターフェース研究会 :: beyond.jsってなに?の巻

    こどもてれびに対抗して巷のJavaScripterの間で最新流行のbeyond.jsってライブラリの解説をします。 beyond.jsとは 知らないやつはモグリといっても過言ではないぐらい有名なライブラリです。 嘘です。どれぐらい使われているのかは良くわかりません。 Ajaxとか全然関係なくて、純粋にJavaScriptのライブラリです。 beyond.jsはここからダウンロードできます。 http://w3future.com/html/beyondJS/ Beyond JS is a Javascript library that lets you write Javascript unlike anything you've ever written. Your code will never be the same again. It contains both useful, f

  • Index of /js

    Parent Directory README.html Text/ array_extra.js date_extra.js dom.js extra.js function_extra.js hotkey.js ie_xmlhttp.js json.js merge.txt number_extra.js object_extra.js profiler.js regexp_extra.js roma.html roma.js site.js string_extra.js timer_extra.js blogで使っているJavaScriptです。使ってないのもあります。 ie_xmlhttp.js - IEで、ほぼ完全互換のXMLHttpRequest json.js - object.toJSON()でJSONダンプ出力、デバッグに便利 roma.js - アルファベットから曖昧

  • 最速インターフェース研究会 :: JavaScriptによるQRコード生成ライブラリ

    ってのを作りました。 http://la.ma.la/misc/qrcode/ ネタのつもりで作ってたんだけど意外と大変だった。というか時間かけすぎた。 なんの役に立つのかと言われたら何の役にも立たないと自信を持って言える。 RubyQRコード生成クラスからの移植です。ライセンスはオリジナルに準拠します。 http://www.swetake.com/qr/ QRコードの仕様とかアルゴリズムとかそういうのは全然わかりません。挙動が同じになるようにしてみただけです。 表示にはテーブルタグを使っています。画像オフでも表示できます。 動作テストには http://www.psytec.co.jp/docomo.html を使いました。 アーカイブにdatファイル同梱したのでファイルサイズが2MB超えてます。 ソースだけ見たい人は、これをどうぞ。当然これだけじゃ動かないけど。 http://la

  • 最速インターフェース研究会 :: 実践JavaScriptリファクタリング

    同じ事をやるにも、いろんな書き方があるわけでいかにして短くてわかりやすいコードを書くかというノウハウを紹介します。 例として"abcde"を80回繰り返した文字列を作るとして実際に自分のコーディングスタイルがどんな風に変化していったのか、という。 短くなるのは確かなんだけどわかりやすいかというと、人によるかもしれない。 グローバル関数を定義2年前なら、多分こういう具合だった。 //ふつうに関数として定義する function x(str,num){ var tmp = ""; for(var i=0;i<num;i++){ tmp += str; } return tmp; } x("abcde",80) Stringのメソッドとして定義1年前だとこんな感じ。 //Stringのメソッドとして定義する String.prototype.x = function(num){ var tmp

  • 1