タグ

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

  • JavaScriptでローマ字かな変換してみるテスト

    ひらがな カタカナ 正規表現パターン livedoorburogu livedoorブログ

    nilab
    nilab 2012/09/03
    JavaScriptでローマ字かな変換してみるテスト : JavaScriptによるローマ字仮名変換ライブラリ
  • 最速インターフェース研究会 :: JavaScriptにおけるdeep clone

    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/

    nilab
    nilab 2012/02/21
    function clone(obj){var F = function(){}; F.prototype = obj; return new F;}//最速インターフェース研究会 :: JavaScriptにおけるdeep clone
  • 最速インターフェース研究会 :: 実践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 /

    nilab
    nilab 2012/02/21
    Array.prototype.clone = function(){ return Array.apply(null,this) } でディープコピー/最速インターフェース研究会 :: 実践JavaScriptリファクタリング、その2
  • document.lazy_writer

    特定のscript中に含まれるdocument.writeを上書きして、遅延描画にすることができます。 document.writeを使う広告配信スクリプトや、ブログパーツなどの挙動を置き換えることが出来ます。 外部サーバーから読み込むスクリプトをページ最後部に記述することでページレンダリングを妨げなくなります。 このページはこんな感じになってます。 var adsense_url = 'http://pagead2.googlesyndication.com/pagead/show_ads.js'; document.lazy_writer(adsense_url, function(str){ var id = "adsense_" + this.script_count; document.getElementById(id).innerHTML = str; }, {delay :

    nilab
    nilab 2008/01/12
    document.lazy_writer : 特定のscript中に含まれるdocument.writeを上書きして、遅延描画にすることができます。
  • 最速インターフェース研究会 :: 「ニコニコ動画のAmazon売り上げを鵜呑みにするのは危険」について

    ARTIFACT@ハテナ系 - ニコニコ動画のAmazon売り上げを鵜呑みにするのは危険を読んで気になったこと。 予約とかキャンセル分とかも、もちろんあるとは思うけど。 やってる人なら分かると思うけど、Amazonアフィリエイトは紹介した商品以外にも、ついでに売れた商品も売り上げとしてカウントされる。アフィリエイトID付きのリンクを介してAmazonにアクセスして1日以内に注文された商品が紹介料の対象になる。で、ある程度PVが多くなってくると、特定の商品を紹介しなくても単にAmazonアフィリエイトID付けてリンクするだけで関係のない商品も結構な数売れるようになる。を紹介しただけなのにDVDレコーダーが売れたりすることもある。 で、ニコニコ動画の場合だけど、ユーザー数やアクセス頻度が多くなればなるほど、元々購入予定だった商品にニコニコ動画のアフィリエイトIDが付く確率が高くなるわけな

    nilab
    nilab 2007/07/29
    最速インターフェース研究会 :: 「ニコニコ動画のAmazon売り上げを鵜呑みにするのは危険」について:アピールするのが目的なのだから、多少の誤解も計算の内だとは思うけれど、経済効果何億円とかそういういい加減な計算
  • OPML Burner

    livedoor Reader、Bloglines、はてなRSSの公開設定のフィードリストから、これは読んでおけ、っていうフィードを抽出するサービスです。 idを入れる livedoor mala__ cho45 nipotan brasil_ higeorange tokyoenvious bloglines horaguchi hatena higepon naoya から人以上登録してるフィード 使い方 RSSリーダーにはふつう、インポート/エクスポートという便利な機能があります。 livedoor Readerであればインポートのページ(http://reader.livedoor.com/import/)を開いて、できあがったOPMLのURLを貼り付ければOK。 注意事項 一度取得したOPMLは1日キャッシュしてます。 そのため古いデータが表示される場合があります。 キャッシュが

    nilab
    nilab 2007/02/21
    OPML Burner : livedoor Reader、Bloglines、はてなRSSの公開設定のフィードリストから、これは読んでおけ、っていうフィードを抽出するサービス
  • フィードリーダーの脆弱性まわりのこと

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

    nilab
    nilab 2007/01/26
    最速インターフェース研究会 :: フィードリーダーの脆弱性まわりのこと:saved from url:MOTW:「ローカルディスク上のHTMLファイルをブラウザで開くとXMLHttpRequestやIFRAMEでローカルファイル読み取り
  • Pure JavaScriptによるQRコード生成ライブラリ

    これは何 QRコード クラス ライブラリ for RubyJavaScriptに移植したものです。 → このフォルダを丸ごと圧縮したものをダウンロード 目的 無駄なものにどれだけ情熱をささげられるかのテスト。 注意 1GHzのマシンで5秒から10秒ぐらいかかります。ブラウザがクラッシュしても問題ない状態で試してください。 日語はUTF-8エンコードで出力してます。多分ほとんどのリーダーで読み取れません。(携帯持ってないんで知らない) 動作テスト 処理時間 : 変換する文字列 文字列をQRコードに変換

    nilab
    nilab 2007/01/23
    Pure JavaScriptによるQRコード生成ライブラリ
  • 最速インターフェース研究会 :: livedoor Wirelessのラの字も考えてないWeb屋のネタ帳の誤読記事

    livedoor wireless、MACアドレスによる認証を開始--ニンテンドーDSにも対応 http://japan.cnet.com/news/com/story/0,2000056021,20339983,00.htm に関して、Web屋のネタ帳の人が 「セキュリティのセの字も考えてないライブドアの公衆無線LANサービス」という記事を書いているのですが、 http://neta.ywcafe.net/000698.html 何か色々間違ってると思うので、書いておきます。これはライブドアの中の人じゃなくて、1ユーザーとしての立場で書いてるのと、あとネットワーク管理者でもなんでもないんで、そこら辺信頼できるかどうかは各自ご判断ください。 まず、実際自分で試してみたのですが、これは接続したい機器のMACアドレスを事前に登録しておくとWEB認証をスキップできるというもので、そもそもWEPキ

    nilab
    nilab 2006/12/27
    最速インターフェース研究会 :: livedoor Wirelessのラの字も考えてないWeb屋のネタ帳の誤読記事
  • 最速インターフェース研究会 :: ライブドアのテクノロジーセミナーでしゃべってきました

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

    nilab
    nilab 2006/12/18
    最速インターフェース研究会 :: ライブドアのテクノロジーセミナーでしゃべってきました : "Technologies for UI" : サーバサイドとクライアントサイドのチューニング:JavaScript:Livedoor Reader の裏側テクノロジ
  • 最速インターフェース研究会 :: 実践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

    nilab
    nilab 2006/11/06
    最速インターフェース研究会 :: 実践JavaScriptリファクタリング : いろいろなバリエーションでコードを書く
  • 最速インターフェース研究会 :: 日本語テキストをテーブルで表示するJavaScriptの高速化

    いやなブログ: 日語テキストをテーブルで表示する http://namazu.org/~satoru/blog/archives/000039.html を高速化してみた。 http://la.ma.la/misc/js/tablefont.html オリジナルは多分、あえてDOMでテーブルを作っていると思うのだけれど、innerHTMLを使って書き直してみた。IEで6倍ぐらい、Firefoxで4倍、Operaで3倍速い。 ちなみに手元の環境では Opera8 : 30ミリ秒 Firefox : 100ミリ秒 IE : 360ミリ秒 ぐらいになった。 Operaは7までJavaScriptやDOM周りの操作が遅い遅いと言われていたのだけれど、Opera8になって何だか妙なチューニングが施されている。 今はOperaは何かと癖があって扱いづらいのだけど、ブラウザベースのリッチクライアントが

    nilab
    nilab 2006/05/11
    最速インターフェース研究会 :: 日本語テキストをテーブルで表示するJavaScriptの高速化
  • 最速インターフェース研究会 :: [Ajax] JSAN構想とリモートデータの取得とUserJavaScript

    通常、JavaScriptを使って動的にデータを読み込む際には、データソースが同一ドメイン上にある必要があります。 XMLHTTPRequestを使う場合でもIFRAMEを使う場合でも同様です。 ですが、scriptタグを使う場合に限り、ドメインの制約を受けずにデータを取得することが出来ます。 検索結果をページに貼り付けるJavaScriptなどでよく使われる方法ですが、これを応用して、外部ドメインに置いてあるライブラリやデータを動的に取得するというアプローチを考えています。 同じようなことを考える人はいるもので、CPANのJavaScript版、JSANという構想がuse Perlにポストされています。 http://blog.bulknews.net/mt/archives/001649.html で、先月からずっとライブラリばかり作ってたのですが、 一応、問題なく動くレベルまでは来て

    nilab
    nilab 2006/03/10
    JSAN構想とリモートデータの取得とUserJavaScript
  • 最速インターフェース研究会 :: 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で受

    nilab
    nilab 2006/01/16
    window.onerrorを設定して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:

  • 最速インターフェース研究会 :: 全てのWeb開発者必見:fluxiom

    fluxiomである。 http://www.fluxiom.com/ fluxiomはRuby on Railsで作られた、ソーシャルとタギングを備えたオンラインファイラーというようなものらしい。まだサービス開始していないが、デモムービーが公開されている。 fluxiomを開発している会社はscript.aculo.usの開発元ということであるので、 当然「Rails + prototype.js + script.aculo.us」で作られている、ということになるのだろう。 と思ってみたら、開発者のBlogに追記されていた。「Ruby on Railsで作られていて、Flashは一切使っていない」ということである。 http://mir.aculo.us/articles/2005/11/24/fluxiom script.aculo.usは「web2.0 JavaScript」だそう

  • 最速インターフェース研究会 :: Winnyの技術のPDFがやっと公開

    公式に流すっていうアナウンスがあったので読んでから買おうかと思って待ってたんだけどなかなか流れて来ないからもうすでに丸善津田沼店で買っちゃったんだけど。 PDF(一般書籍) [金子勇] Winnyの技術 [05-10-03].zip 1,900,259 9d2dd618c580e38ea6869c51d9ed1107 サイズは小さいけど物。テキストデータなのでこんなもんだろう。 Amazonで品薄状態なので今すぐ読みたいって人はPDFで読むと良いかも。 まあ買ってから気づいたんだけど、今すぐ急いで読まなくちゃいけないというようなではなかった。 もうしばらく待ってる。

    nilab
    nilab 2005/10/18
    PDF(一般書籍) [金子勇] Winnyの技術 [05-10-03].zip 1,900,259 9d2dd618c580e38ea6869c51d9ed1107
  • 最速インターフェース研究会 :: 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

  • 1