タグ

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

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

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

  • 最速インターフェース研究会 :: 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'

    KoshigoeBushou
    KoshigoeBushou 2006/09/28
    Firefoxをtelnetで操作。
  • 最速インターフェース研究会 :: Developer Enviroments Conference で発表してきました

    [Mona] 勝手にmakeでMonaの開発効率を上げよう 昨日のDevelopment Environment Conferenceで最速の中の人がCSSを編集したら即座にブラウザに反映するってのをデモしていて「待ち時間が少ない方が効率が良い」的な話をしていました。 僕みたいなLLでない人は、冷静に考えると開発時間の10%位はビルドに要していて、しかも Development_Environment_Conference 9月8日(金)に「秋葉原ダイビル」にて開催された「Development_Environment_Conference」へ行ってきました。開場時刻は18時30分からとなっていましたが、迷子になって遅れてしまうのは嫌なので約30分程早く「JR秋葉原駅」に到着しました。少し早すぎたかな?と思っていたのですが、ビルのエレベーター内で「はてなのnaoya氏」率いる開催者軍団に遭

  • 最速インターフェース研究会 :: AutoHotkeyを使ってFirefoxをリロードするだけのexeファイルを作ってみた

    エディタの保存と同時にブラウザを自動でリロードさせると開発がはかどって素晴らしいよ、みたいな話をしてたら軽く派生したわけなんですが 自動リロードで開発をアジャイルにするたった一つの方法! < 31 < July < 2006 < nulog, NULL::something : out of the headphone http://lowreal.net/logs/2006/07/31/1 hail2u.net - Weblog - CSSファイルを保存すると同時にブラウザをリロード http://hail2u.net/blog/webdesign/save-css-file-and-reload-browser.html WSHやRubyからキー操作を送るって方法だと、操作対象のウィンドウをアクティブにしないとキー操作を受け付けてくれなかったりして(もっといい方法あるのかも知れないけど

    KoshigoeBushou
    KoshigoeBushou 2006/08/28
    auto-save-buffers使っててもうざくならないかな?使いどころが難しそう。
  • 最速インターフェース研究会 :: Bloglinesの「Show only updated feeds」をチェックしてない人が多すぎる

    これの http://www.bloglines.com/profile?mode=3 一番下のオプション。左フレームに表示されるフィードのリストが新着記事のあるフィードのみの表示になって転送量もツリー描画の負荷も減る。 何人か(5人ぐらい)に、このオプションをチェックしてるか聞いてみたのですが、誰もチェックしていない。長いこと使ってるにも関わらずこのオプションの存在自体を知らなかった、という人が結構いる模様。Bloglinesの表示が重いとか巡回が大変とかよく聞くのですが、その不満の5割ぐらいはこのオプションで解消される。 自分がBloglinesを使うのはまさにこういう理由で、既読の項目を隠すことで目に入る情報量を減らすことができる。心理的な圧迫感が減って、どれぐらい未読記事が残っているのか視覚的にわかる。 2004年10月からあるみたいですね。 Bloglines: Show onl

    KoshigoeBushou
    KoshigoeBushou 2006/02/19
    未読だけ表示する!…知らなかった。
  • 最速インターフェース研究会 :: del.icio.usにはてなブックマーク件数をくっつけるGreasemonkeyスクリプト

    はてなブックマークの件数をまとめて取得するAPIができた、ということで http://d.hatena.ne.jp/naoya/20051212/1134375086 Bloglinesにはてなブックマーク件数をくっつけるGreasemonkeyスクリプトの http://d.hatena.ne.jp/m4i/20051213/1134425307 改造して作ってみました。 http://la.ma.la/misc/userjs/dxh.user.js Firefox1.5とGreasemonkey0.6.4で動作確認してます。E4Xを使っているので1.0系では動きません。 変更点はXPathをちょっといじったぐらいです。かなり簡単に作れます。 なんかループが多かったのでレスポンスを連想配列に入れるようにしました。 後、これ系の作る時にはXPath検索バーが便利です。 http://tok

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

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

    KoshigoeBushou
    KoshigoeBushou 2006/01/20
    ローカルファイルの更新を検知して自動的にリロードする。
  • 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

    KoshigoeBushou
    KoshigoeBushou 2006/01/16
    サンプルとか
  • 最速インターフェース研究会 :: JavaScriptでDebugScreen、その2

    Bookmarkletを作った 最速インターフェース研究会を参考にして、ソースを表示するブックマークレットを作った。Firefox のソースを見る機能は、遅いしCGIとかだとリクエストを再送しちゃうし、けっこうダメダメ。これは Javascriptで動的にコードを生成するような場合でも、その時点でのソースを表示できる。 javascript:(function(){var HTMLtext = document.getElementsByTagName("*").item(0).innerHTML;var HTMLline = HTMLtext.split(/\n/);HTMLline = map(HTMLline,function(line,i){ var ln = i+1; var t = mul(" ", 5 - ("" + ln).length) + ln + ": " + esc

    KoshigoeBushou
    KoshigoeBushou 2006/01/16
    派手なデバッグスクリーン
  • 最速インターフェース研究会 :: Wikipedia日本語版全文検索AutoPagerを作った

    Hyper Estraierを使ったWikipedia語版全文検索が大変素晴らしいのでGoogleAutoPagerの移植。 Firefox1.5とGreasemonkey0.6.4で動作確認してます。 http://la.ma.la/misc/userjs/estseekautopager.user.js ついでに色々と直してます。ローディングのエフェクトを入れたり、全体的に変なテクニックを駆使したり。 - 無名関数を再帰処理させる。 - GreasemonkeyからDOMParserを使う - valueOfメソッドをいじって残りスクロール量を返すオブジェクトを作る あたりは何かの参考になるかもしれません。

    KoshigoeBushou
    KoshigoeBushou 2006/01/10
    GoogleAutoPagerの移植
  • 最速インターフェース研究会 :: Firefoxでテキストをクリップボードにコピーする方法

    動作デモ http://la.ma.la/misc/js/setclipboard_for_firefox.html Firefox1.5 + FlashPlayer8.5で動作確認してます。Opera8.5では動いたがOpera9では動作せず。Safariは知らない。FlashPlayerのバージョンによっても何か違うのかもしれない。 元ネタ http://a-h.parfe.jp/einfach/archives/2005/0706043145.html IEではデフォルト設定でブラウザからクリップボードの読み書きができる、というのは割と有名な話ですが、Flashを使うとIE以外でもクリップボードにテキストをコピーすることができます。上書きのみで読み込みはできないようなので多少は安心です。(クリップボードが勝手に置き換わってしまう、という悪戯はできる) で、このFlashを使ったクリッ

    KoshigoeBushou
    KoshigoeBushou 2006/01/10
    MTのトラックバックURLとかに使えるかも?
  • 最速インターフェース研究会

    http://blog.livedoor.jp/dankogai/archives/50957890.html まず、Object.prototypeにメソッドを生やしてしまうとfor inでキーを列挙するときにいちいちhasOwnPropertyを使わないといけなくなるので普通は使いません。影響が大きすぎるので、よっぽど変態的なライブラリじゃないと使わない。他のライブラリと組み合わせるとほぼ確実に問題が起きる。それから、deep_cloneが欲しい場合はJSONを作ってevalすればよい。パフォーマンスを気にする場合とか、浅いコピーが必要な場合はそれなりに工夫する必要があるけど。 で、JSONにするのにFirefoxだとtoSourceというのが使える。unevalというラッパーがあって、これだとnullでも平気。 http://subtech.g.hatena.ne.jp/cho45/

  • 最速インターフェース研究会 :: JavaScriptのデザインパターン - Singleton

    JavaScriptじゃねえと書けねえよ、ってやり方でデザインパターンを実装してみるコーナー。とはいってもデザインパターンとか良くわからないので適当に覚えながら作る。 間違ってる箇所あったらつっこんでくれるとありがたいです。 わかりやすい文章を書く能力が欠如してるのでデザインパターンって何だとかそういうのはこっち参照。 http://d.hatena.ne.jp/naoya/20050813/1123924312 JavaScriptのコンストラクタはPerl同様自在に定義できます。returnでobjectを返してやれば、newの結果としてそいつを使います。 普通にシングルトンなクラスを実装するにはこんな感じだと思います。 function Singleton(){ var self = arguments.callee; if(self.instance == null){ this.

  • 最速インターフェース研究会 :: [Ajax] location.hashを使ったセッション復元

    最近になってようやくJavaScript関係、動的ロードを使ったテクニック等について 話せる相手ができまして、、なかなか充実しています。 Gmail、GoogleMapsのような画面遷移なしの高速なナビゲーションが注目されています。 サイトが特定のタスクに対して特化している場合、JavaScriptを使ったインターフェースの最適化が非常に有用であるのは間違いありません。 ブラウザ上で動作するリッチクライアントとしてはFlashが圧倒的に有名ですが、Flashは、ブックマーク、ブラウザの戻る進む機能、文字の拡大縮小、などのブラウザが来備えている機能が使えないため、ユーザビリティ研究者の間では嫌われ者です。 http://d.hatena.ne.jp/nazoking/20050226 というわけで、AjaxがFlashのような使い方をされないような実装例を考えてみたいと思います。 一つは、

    KoshigoeBushou
    KoshigoeBushou 2005/12/14
    Ajaxでパーマリンク
  • 最速インターフェース研究会 :: 実践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

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

    連載すんの? リファクタリングとか嘘で実は実践ビルトインオブジェクトハックなんだけど。 例題 配列 a = [3,5,4,2,1] から一番小さな値と、一番大きな値を取り出すにはどうすればいいか。 多分昔はこんな風に書いてたと思うんですよ。 a = [3,5,4,2,1]; for(i=0;i<a.length;i++){ if(i == 0){ min = a[0]; max = a[0]; } if(min > a[i]){min = a[i]} if(max < a[i]){max = a[i]} } 模範解答として、後先考えないやり方を提示しておく。 a = [3,5,4,2,1]; min = a.sort().shift();// 1 max = a.sort().pop(); // 5 短い。ただし、これをやるとaの内容は並べ替えられて最初と最後の要素が取り除かれる。 a /

    KoshigoeBushou
    KoshigoeBushou 2005/12/14
    Javascriptのコーディング技法あれこれ
  • 最速インターフェース研究会 :: prototype.jsのObject汚染を回避する方法

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

  • 最速インターフェース研究会 :: キー割り当て用ライブラリを作った

    依頼を受けて作ってみた。 http://la.ma.la/roll.html http://la.ma.la/js/hotkey.js j,kでスクロールできる。 使いまわしがきくように他のライブラリに依存も影響もしないように作ってあります。Bloglinesのj,kでスクロールみたいなのを作りやすいようにするのが目的。ただsafariとかは何かかなり違うらしいので、そこらへんは良く知らない。あとOperaはデフォルトでワンキーショートカットが割り当てられてたりするので動くとは限らない。 全体に対してキーイベントを設定すると、フォームの入力ができなくなるっていう問題があるのでイベントの発生元がinput|textareaの場合は処理しないようにしてある。 追加したコードはこんな感じ。 var kb = new HotKey; kb.add(["j","2","down"], functio

    KoshigoeBushou
    KoshigoeBushou 2005/12/14
    ショートカットキー割り当て
  • 1