タグ

ブックマーク / d.hatena.ne.jp/brazil (34)

  • 実行間隔を調整する - はてなダイアリー - 無料で簡単。広告のないシンプルなブログをはじめよう!

    JavaScriptDebouncing Javascript Methods | Unscriptable.com 密に処理が実行されてしまうのを避けるため、二つのかたちがあるとのこと。下のデモ。throttleは、0.5秒ごとに点の位置が変わる。debounceは、0.5秒いると赤くなる。 デモ throttleひとつ目は一定間隔以内の呼び出しは間引いて無視する方法。イベントの発生頻度が多く、処理が重い場合に使う。 Function.prototype.throttle = function(threshold, alt){ threshold = threshold || 100; var me = this; var last = Date.now(); return function(){ var now = Date.now(); if(now - last debounceも

  • 関数、オブジェクト、クロージャ - FAX

    (thanks to id:koyachi、del.icio.us/rtk2106) OOPとFPと。関数、オブジェクト、クロージャの使い分けについて考えます。 関数型が良いのか、オブジェクト指向が良いのか、知りたいと思っていました。色々なページを読み、現時点で一応の答えを得ました。 カウンタを例にして、関数、スコープ、オブジェクト、クロージャの順に見て行きます。関数関数は処理です。入力と出力があります。関数型プログラミングでは、関数同士の入力と出力を連結しプログラムが構成されます。 var current = 0; function next(v){ return v + 1 } function previous(v){ return v - 1 } ok( 1 == ( current = next(current) ) ); ok( 2 == ( current = next(cu

  • Firefox、クッキー送信の挙動 - FAX

    JavaScriptFirefox 3の[オプション]、[プライバシー]-[サードパーティのクッキーも保存する]のチェックを外すと、クッキーの取り扱いがかなり厳しくなるみたい。 Mozilla L10N - サードパーティのCookie まず関係ないサイトのCookieの保存と送信を行わなくなる。それ以外に特権を持つスクリプトからクロスサイトで通信を行った場合、例えばリファラが空になるような通信もクッキーを送信しなくなる。これはGM_xmlhttpRequestなども含まれる。 バグなのかな。けど、セキュリティ的にはちょっと安心になるな。 追記たぶん、about:configのnetwork.cookie.cookieBehaviorの設定値が[サードパーティのクッキーも保存する]に相当し、これはFirefox 2でも設定できる。けど、Firefox 3とは違って、クッキーの送信はできるみ

    aki77
    aki77 2008/08/24
    cookie
  • 周期的に処理を実行するキュー - FAX

    JavaScriptLDR + GoogleWebHistoryで使った。 インスタンスを作って、処理を追加(push)するだけでスタート。実行中でも、停止後でも、いつでも処理を追加できる。タイマーは一個なので、処理は直列で実行されてく。 function Stack(interval){ var interval = interval==null? 100 : interval; var q = []; var iid = null; this.push = function(fs){ if(typeof(fs)=='function'){ q.push(fs); } else { while(fs.length) q.push(fs.shift()); } if(iid!=null) return; iid = setInterval(function(){ q.shift()();

  • LDR、重複エントリをグレー表示するGreasemonkeyスクリプト、約第三版 - 実用

    JavaScript LDR - Dedupe Entries – Userscripts.org LDRで表示したエントリーと、訪問済みのエントリーをグレー表示するGreasemonkeyスクリプトです。フィードを既読にするタイミングでフィード内の全エントリーのアドレスが保存されます。以降同じエントリーは「以前表示したことがある」とわかるように文字と写真が薄くなって表示されます。以前のバージョンが入っている場合は、「関連付けられた設定も削除」をチェックして一度アンインストールを行ったうえで、再度インストールを行ってください。 このブログには書いてませんが、今までに、何度か大きく更新をしていて、最初のバージョンよりずいぶん良くなってます。エントリー表示テンプレートを書き換える方式になり、エントリーが多いときでも固まらなくなりました。このバージョンではDOM Storageを使うことで、10

  • 内容に合わせて伸縮するテキストエリア - FAX

    JavaScript追記 miya2000の日記 - 「内容に合わせて伸縮するテキストエリア」を Opera にも id:miya2000さんが、クロスブラウザに書き換えられています。GJ!こっちで!! デモビデオは以下(12秒)。 ユーザーが自分でリサイズできるテキストエリアをよく見かける(はてなも)。それを補助するGreasemonkeyスクリプトもある。 テキストエリアを横にリサイズしたいことはあまりない。バーを掴んで最適な高さにするのはめんどくさい。使う人は、ただ全部の内容が見えるぴったりの高さになってほしいだけなんだと思った。 サンプルコードは以下。fitting?、fittable?、expand?(逆に小さくもなる) キーダウンのイベントでも実装してみたけど、日本語入力を検知できないし、方向キーとか無視するコードもいるし、イベントハンドラ内では内容がまだ更新されてなかったり

    aki77
    aki77 2007/10/07
    テキストエリアの自動リサイズ
  • Tumblrではてな記法を使えるようにするGreasemonkeyスクリプト - FAX

    JavaScriptTumblr + Text::Hatena – Userscripts.org Tumblrで、はてな記法を使ってテキストを書くGreasemonkeyスクリプト。リッチテキストエディタ機能を使ってる場合は設定画面から外してください。(以下、ほぼ転載です)実験的なもので、不具合があるかもしれません。(ここ数日使ってて、便利に動いてる。今後も使うのでメンテナンスされると思う) text-hatena.js 公開 - てっく煮 id:nitoyonさんの、パーサーをそのまま使わせて頂いています。僕は、そこに送る部分を書いただけす。ありがたや、ありがたや。 こんな感じではてな記法を使って入力すると、 *AAA **BBB HTMLに変換されて、こんなデータがポストされて保存される。 AAA BBB <!--SOURCE: HATENA *AAA **BBB --> HTML

  • phpspot開発日誌 - FAX

    抜粋JavaScriptコードをブックマークレットに変換するPerlスクリプト「JavaScript Bookmarklet Builder」。JavaScriptコードをコマンドラインでブックマークレットに変換する場合なんかに便利そうですね。 ―JavaScriptコードをブックマークレットに変換するPerlスクリプト「JavaScript Bookmarklet Builder」:phpspot開発日誌 dojoやYUI 用のものがいろいろ出ているようですね。 JavaScript でのキーコード調査なんかに便利ですね。 単純に画像を見せるよりも、直感的なUIで分かりやすく、あまり見ない珍しいUIということで、いろいろと使えそう。 JavaScriptの文字列変数に文字列を入れるのって結構手間取りますが、これで楽チンですね。 これだけ沢山あれば、イメージギャラリーを設置する際に自分の目

    aki77
    aki77 2007/04/21
  • JSONのセキュリティの、疑問 - FAX

    snippets from shinichitomita’s journal - クロスドメインでのデータ読み込みを防止するJavaScript ? 東京で舘野にも聞いたんだけど、JSONとクロスドメインのデータ漏洩の問題がよく分からない。JSONって、そもそもいろんな所から使って欲しいからJSONなんじゃないの?裸で戦場で生き残るにはどうすればよいか、←服着ろよ、みたいなことになってない?外部から読まれるとまずいデータは、ハナからJSONじゃなきゃいいのにと思うんだけど。 name : 'brasil', age : 30 } XHRで取って、補ってevalする感じで。 でも、すごい人たちで考えてるので、きっと僕の考え違いなのら。 追記mala 『gmailで使ってるJSONは先頭にwhile(1)がついてて外部で使うとブラクラになるよ』それ、なんてポイズン・ピル? (w

  • Pipes - FAX

    Yahoo! Pipesを使ったブックマークレット『OnePipe』がちょっと便利 | i d e a * i d e a フィードページを表示して、以下でいいみたい。 javascript: location.href="http://pipes.yahoo.com/pipes/pipe.run?_id=dCunRCfP2xGZfglMOUVYtA&_render=rss&query="+prompt('Query')+"&feedurl="+location.href; 使われてるPipeは以下で、パラメーターを渡せばtags/title/authorでチェックもできる。 Pipes: OnePipe : The CleverClogs Generic Feed Filter Permitだけじゃなくて、Blockのフィルターも追加して、すごく汎用的なものをひとつ欲しくなったけど、

    aki77
    aki77 2007/03/21
  • 日付関連 - FAX

    日付関連 JavaScript, リンク 2008/5/1 最終更新 strftime: strftime for Javascript John Resig - JavaScript Pretty Date cloned.log - PHP互換のJavaScript日付フォーマット関数をモジュール化した memo.xight.org - JavaScriptでビルトインオブジェクトハック (Dateクラス編) Hawk’s W3 Laboratory : 日付と時刻のフォーマット Enjoy*Study - 日付フォーマット変換を行うライブラリを作ってみました。 format.js更新: dara-j Datejs - A JavaScript Date Library design-noir | Web Development | JavaScript | Date.format &

  • ThinkPad X60のハードディスクを換装 - FAX

    80GBから160GBへ。とても簡単だった。 体は、ThinkPad X60(1706-49J)。新しいハードディスクは日立 Travelstar 5K160 HTS541616J9SA00(2.5インチ、160GB、シリアルATA、5400rpm)。 まず、Windows上から、EG-SATA55(シリアルATA・IDE/USB 2.0変換アダプター)で新しいハードディスクを繋ぐ。カタログに記載はないが、2.5インチS-ATAも問題なかった。つぎに、Acronis True Image 9.0 Home体験版の[ディスクのクローン作成]で全ての内容をコピーした。ThinkPadのリカバリー領域、Disc to Disc領域も、そのままコピーできるようす...(動作未確認)。パーティション構成を自由に設定できたため、メイン領域 150GB、Disc to Disc領域 4.5GBで構成。

  • Googleでサイト内を検索するキーワードブックマーク - FAX

    JavaScript javascript:location='http://www.google.co.jp/search?q=' + encodeURIComponent('%s') + '+site:'+location.host Firefoxで上記スクリプトに「gs」のキーワードを振りブックマークを追加。[Ctrl]+[L]でアドレスバーに移り、「gs テスト」などでサイト内検索。Googleツールバーをやめて、上記ブックマーク + All-In-One Search buttonに変えてみた。

  • JavaScriptソースを整形して表示するGreaseMonkeyスクリプト、外部スクリプトのキャッシュ - 実用

    JavaScriptsubtechグループ - マングローブ - VoxのTemplateクラス できちゃったGreaseMonkeyスクリプト!!そのページで利用されているJavaScriptをフォーマットと色付けを行い表示します。 ShowColorizedSource.user.js Web Developer拡張の[JavaScriptを表示する]機能をより見やすくしたものです。色の抽出と同じく、Web Developerのinformation.jsから多くをコピーして作りました。 以下はGoogleの検索結果で実行したイメージです。 調査したいページを表示し[ツール]-[User Script Commands]-[Show Colorized Source]をクリックすると、ページ内容が消えて、スクリプト一覧が表示されます。各スクリプトのタイトルをクリックすると、整形されたソ

    aki77
    aki77 2007/02/19
    外部スクリプトのキャッシュ
  • Collection & Copy - Firefox 2.0、Storage(SQLite)、ポイント

    JavaScriptMDC - Storage これを読んで、僕が思ったポイント。 Firefox 2.0には、SQLiteが組み込まれている。同じくFirefox 2.0で導入された、クライアントサイドストレージ(sessionStorage/globalStorage)とは異なるもの。 (クライアントサイドストレージの中では、このSQLiteが利用されている。)基的にchrome URLや拡張からの利用を想定し、ウェブページからは利用できない。システムや拡張のデータファイルはプロファイル*1に、拡張子sqliteで保存されている。mozIStorageConnection#executeSimpleSQLは、値を返さない。 テーブルの作成や削除、データ追加などに利用する。セキュリティ的にもパフォーマンス的にもmozIStorageConnection#createStatementを

  • jsh - FAX

    JavaScript, jshjsh ブックマークレット版は以下。 javascript:(function(){var BASE='http://www.asahi-net.or.jp/~xe4r-kmt/jsh/';with(window.open('','_blank','width='+screen.width*.6+',left='+screen.width*.35+',height='+screen.height*.9+',resizable,scrollbars=yes')){document.write('jsh');document.close();}})() 名前、いろいろ考えたけど、jshになりました。 画面はLDRで購読リストを調査しているもの。各機能については、これから少しずつポストします。 補完候補のタイプ表示も追加して、非列挙プロパティの補完も対応し、一段落。

  • Podcastle Night。、ありがとうございました、SAGOOLをフーフーする - FAX

    Podcastle Night。、ありがとうございました、SAGOOLをフーフーする Wiki小話/Vol.7 - Podcastle Night。 まず、会場を提供してくださった沖電気さん、平沼雄一郎さん、どうもありがとうございました。 最高の環境のおかげで、たくさんの人が楽しい時間を過ごせました。 権限のある立場の方が技術に理解があり、今回のようにサポートしてくれることは、とても、すばらしいことだと思います。 当に。 結局、パパ、パトロンなんとちゃうんかなぁ。 あと、塚牧生さん(ほかスタッフの皆さま)、諸雑務おつかれさまでございました。 立パーティー、すごくよかったです。 いろいろな人と喋れました。 あと、id:nagayama総一郎の、幹事。 何も考えないで、ダラダラ連いていけば、そこは居心地のよい空間という、ハーメルンの笛吹き的ナイスさ。 交渉で安くなってたり、すごい!!

  • Collection & Copy - IE Flash、ExternalInterface、ブリッジとなるスクリプトのソース、不具合

    IE + Flash、ExternalInterface、ブリッジとなるスクリプトのソース、不具合 JavaScript ExternalInterfaceを使うFlashをページに埋め込むと、IEでは以下のスクリプトがロードされているようだ。 Microsoft Script Debuggerのブレークにてソースを取得した。 (非常に使いづらいツールだが、これでのみ得られる情報もある。) function __flash__arrayToXML(obj) { var s = "<array>"; for (var i=0; i<obj.length; i++) { s += "<property id=\"" + i + "\">" + __flash__toXML(obj[i]) + "</property>"; } return s+"</array>"; } function __

  • Deferred、結果値の保存、非同期にインターフェースを合わせる - FAX

    JavaScript はじめてMochiKit.Async.DeferredのJSON取得のサンプルコードを見たとき、「いつ取得の処理が開始されるのか」、「なぜ、はじめにコールバックを渡さなくてよいのか」という疑問が起きました。ベルトコンベアで流れ作業を行うときに、作業者が並ぶ前に、材料を投入してラインを始動してしまっているような感覚です。そのサンプルコードは、以下のようなものです。 var deferred = loadJSONDoc('http://sample.com/data.json'); deferred.addCallback(function(data){ alert(data); // JSONデータが渡される }); MochiKit.Async.Deferredの最初のテストコードでは、ハンドラをセットして、コールバックして、その後に再度ハンドラをセットするテストが

  • Collection & Copy - Deferred、遅延リソースのインターフェース、パターン

    JavaScript setTimeoutで実行される関数の中で発生するエラーは、セットした部分のtry/catchで補足することはできません。 function throwError(){ throw new Error('ERROR'); } try{ setTimeout(throwError, 3000); } catch(e){ // ここには到達しない alert(e); } MochiKit.Async.Deferredを使うと、エラーバックでエラーを補足できます。 callLater(3, throwError).addErrback(function(e){ alert(e); }); エラーの補足以外にも、Deferredのインターフェースから以下が行えます。 キャンセル(cancel)状態(fired)コールバックの追加(addCallback)エラーバックの追加