タグ

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

  • Collection & Copy - ヒアドキュメント、IE専用、コメント

    JavaScript function hdoc(){ return arguments.callee.caller.toString().match(/hdoc\(\/\*(([\n\r]|.)+)\*\/\)/m)[1]; } function hdocTest(){ var message = hdoc(/* Peter Piper picked a peck of pickled peppers; A peck of pickled peppers Peter Piper picked. If Peter Piper picked a peck of pickled peppers, Where's the peck of pickled peppers Peter Piper picked? */); alert(message); } 関連リンクCollection & C

    Wacky
    Wacky 2007/02/17
    コメントを使う手は思いつかなかった。
  • Podcastle Night。、ありがとうございました、SAGOOLをフーフーする - FAX

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

    Wacky
    Wacky 2007/01/13
    当日のプレゼンテーションデータ。ボツになったMochiKit.Signalのスライドもあるよ。
  • Collection & Copy - IE、テキストエリア内の選択範囲/キャレットの位置(文字数)を取得する

    JavaScript簡単なようで、とても難しく、情報もあまり見つからなかったので、知らない方はぜひ読んで。 選択範囲の移動でもなく、選択範囲の内容の取得でもありません。選択範囲がテキストエリアの中で何文字目から何文字目に渡っているかをIEで調べる方法です。 まずFirefoxではElement#selectionStart/selectionEndで簡単に取れます。 次に、テキストエリアではなく一行のインプットボックスならば以下で大丈夫です。 setEndPointメソッドは、rangeTo.setEndPoint('EndToStart', rangeFrom)のように使い、rangeFromの範囲をrangeToにコピーします。名前はEndPointですが、始点/終点のどちらの端もこのメソッド一つで動かすことができます。'EndToStart'は、「rangeToの終点を、rangeF

  • Windows XP、レジストリ、2次キャッシュ - FAX

    高速化、エクスプローラーでzip/cabのサポートを切るのは大事だよなぁ。 僕は、こんなレジストリファイルを使ってます。 Windows Registry Editor Version 5.00 // 応答しないプログラムを強制終了させる // 1000 = 1秒 [HKEY_CURRENT_USER\Control Panel\Desktop] "AutoEndTasks"="1" "WaitToKillAppTimeout"="100" "HungAppTimeout"="100" // DLLファイルのメモリー常駐を開放する [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer] "AlwaysUnloadDLL"=dword:00000001 // ショートカットのリンク先を追跡しない [HKE

    Wacky
    Wacky 2006/09/12
    Windows XP、レジストリ、2次キャッシュ
  • Collection & Copy - MochiKit - スタイルガイド

    MochiKit - スタイルガイド 翻訳 原文:StyleGuide - MochiKit - Trac MochiKitのコーディング規約の大部分はPythonのPEP8とPEP 7(この順に優先される)に従っている。しかし、JavaScript特有の点もいくつかある : ビルトイン・オブジェクト、およびそのプロトタイプを絶対に変更しない。(例えば、このようなことは行わない: Object.prototype.foo = REALLY_BAD! ) 代わりに関数の使用を志向する。 関数のようにtypeof演算子を使用する : typeof x ではなく typeof(x) コンストラクタを使用するときには引数を括弧に入れる : new Error, foo ではなく new wError("foo") 常に完全修飾子で他の関数を呼び出す。また利便性のための記号的なエイリアスも用いない

    Wacky
    Wacky 2006/06/17
  • Collection & Copy - HTMLを生成する

    JavaScript毎日、調べ物をして、コードを書いて、ルービックキューブやってます。サーバー側とクライアント側のHTML部分、またですが、コンセプトコードを書いてみました。HTMLを、こんな感じ、html(body({bgcolor:'gray'}))、に書きます。関数が要素、オブジェクトが属性、配列でこれらのまとまりも表せる、というMochiKit類似のラインで考えています。 ファイルの上半分はこんな感じです。HtmlBuilder.tagに、h4やbrなどのHTML生成関数をくっつけてます。 使うコードはこんな感じです。isと、okはテスト関数です。 withを使って、沢山あるHTML関数を、グローバルに落とさないようにしてます(遅くなるかな...?)。update(this, HtmlBuilder.tag)で、状況によってはグローバルに下ろしちゃうと速くなると思います。 Moch

  • JSAdapterクラスの特殊メソッド - FAX

    JSAdapterクラスの特殊メソッド JavaScript, Rhino (via A. Sundararajan’s Weblog - Self, JavaScript and JSAdapter) Sundararajanさんは、MustangのJavaScriptエンジンの開発を行なっているSunのエンジニアの様子。 ブログの内容が濃い。 Scripting for the Java Platfor (PDF) JavaOneでは、上記プレゼンテーションを行なっている。 Core JavaScript 1.5 Guide:Creating New Objects:Defining Getters and Setters - MDC Ajaxian >> Getters and Setters in JavaScript FirefoxのJavaScript1.5では、ゲッター/セッ

  • 関数、オブジェクト、クロージャ - 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

    Wacky
    Wacky 2006/02/11
    関数、オブジェクト、クロージャの使い分けについて考えます。
  • JavaScriptにおける繰り返し - 実用

    JavaScriptにおける繰り返し 翻訳 原文:from __future__ import * >> Iteration in JavaScript 著者:Bob Ippolito JavaScriptには、基的は2種類のオブジェクトの繰り返しがある。 すべてのオブジェクトはプロパティの列挙をサポートしている。 for (var propName in someObject) { var value = someObject[propName]; } "Arrayプロトコル"をサポートするオブジェクトもある。 for (var i=0; i<someObject.length; i++) { var value = someObject[i]; } どっちも、ひどい。 プロパティの列挙はデバッグぐらいしか使い道がない。何故なら、列挙の中では興味のないプロパティにたくさん遭遇するくせに

  • X Library(クロスブラウザJavaScriptライブラリ)メソッド一覧 - FAX

    X Library(クロスブラウザJavaScriptライブラリ)メソッド一覧 翻訳 (via Trivial Tracks: Javascriptのクロスブラウザライブラリ) 原文: XV: X Library Viewer xaddeventlistener xAddEventListener(ele, sEventType, fnEventListener[, bCapture]) エレメントにイベントリスナを登録する。いくつかのブラウザのために、window.onscrollとwindow.onresizeイベントをシミュレートする。 xappendchild xAppendChild(oParent, oChild) 安全なDOMラッパー。 xbackground xBackground(ele[, sColor[, sImage) エレメントの背景色とイメージを取得する。オプシ

  • Collection & Copy - ドキュメントのロード完了に合わせて関数を実行する

    JavaScriptページロード時にプログラムを実行するためにwindow.onloadやbody.onloadがしばしば使われる。しかし、ページ内に大きな画像が存在する場合などは、画像のロードを待つため、実行が遅れてしまう。「ドキュメントのロードが終わっていて、かつ、イメージのロードが完了する前」に関数を実行する方法のリンク2つの要点をコピー。 script要素defer、DOMContentLoadedイベントを利用する方法The window.onload Problem - Solved! Firefoxの場合非公式のイベントハンドラ、DOMContentLoadedを利用する。 // for Mozilla browsersif (document.addEventListener) { document.addEventListener("DOMContentLoaded",

    Wacky
    Wacky 2006/01/05
    「ドキュメントのロードが終わっていて、かつ、イメージのロードが完了する前」に関数を実行する方法のリンク2つの要点
  • はてなの複数アカウントを切り替えるブックマークレット - FAX

    練習以下は、クッキーの削除とログインを行い複数のアカウントを切り替えるブックマークレットです。配列に格納されたユーザIDを順番に循環しながらアカウントを変更していきます。はてなのサイト内なら任意の場所で実行できます。 javascript:(function(){var p="pass",us=["id1","id2"],ui=0,e=new Date,h="hatena.ne.jp",d=";domain="+h+";path=/";with(document){try{ui=++(cookie.match(/ll=(\d+)/)[1])%us.length;}catch(ex){}e.setMonth( (e.getMonth()+1)%(12));cookie="ll="+ui+d+";expires="+e.toGMTString();cookie="rk="+d;location

  • タスクバーにローカルにあるHTMLファイルを表示する(改訂版) - FAX

    技術タスクバーにローカルにあるHTMLファイルを表示する malaさんに、コメント欄にてabout:を使う、より簡単な方法を教えて頂いたので改めてエントリに致します。evalのスコープ、data:プロトコル、トレース関数、16進数文字列の件ほか、ブロゴスフィアを廻り、JavaScriptの話題に細かくアドバイスを差上げている御姿にいつも感動しております。 ローカルファイルの開き方以下ソフトウェアを使い、about:に続く新しい名前を追加する。AboutURLs 代替としてレジストリエディタにて、以下キーを直接修正することも可能。キーHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AboutURLs値(例)timeデータ(例)c:\time.html タスクバーを右クリックし、[ツールバー]-[新規ツールバー]を選び、上で追加し

  • Collection &amp; Copy - Googleデスクトップ検索のサイドバープラグインをJavaScriptを使って作成する

    Googleデスクトップ検索のサイドバープラグインをJavaScriptを使って作成する 技術 準備 Googleデスクトップ検索のバージョン2から、ニュースや株価検索などの小窓が表示されるサイドバーという機能が追加された。 プラグインをJavaScriptで記述することができる。 これに興味はないが調査を行なった。読んだから書きたい。 Google デスクトップ体 各種プラグイン(iTunes操作などあり) 開発者ドキュメント まず体をセットアップする。 JavaScriptを使ったプラグインを動作させるためには、英語のバージョン2正式版である必要がある。 作成 次にSDKをダウンロードする。 /GD_SDK/api/samples/scripts/displayに、サンプルが存在する。 HelloWorld、カレンダー、Windows Media Playerの操作(COM経由)、

  • JavaScriptにおける高階プログラミング、参考リンク、他 - FAX

    JavaScriptにおける高階プログラミング、参考リンク、他 メモ 著者のSjoerd Visscherさんは、beyond.jsの作者。 最速インターフェース研究会 :: beyond.jsってなに?の巻 beyond.jsの危険さに比べて、このドキュメントは全体的に穏やかに書かれている。短いドキュメントの中に、以下のポイントが含まれている。 関数を返す関数 関数と関数の合成 関数スコープ(クロージャ) this変数 this変数については、以下が参考になる。 ひげぽん OSとか作っちゃうかMona- - 実践 prototype.js (2) JavaScriptでの高階プログラミングは、以下が有名。 Higher-Order JavaScript 参考リンクにあるWebReference.comには、JavaScriptでSTLを行う記事などがあり、非常に興味深い。 WebRefe

  • スタックトレースの取得 (callee/caller/argumentsの利用) - FAX

    スタックトレースの取得 (callee/caller/argumentsの利用) JavaScript (in 『JavaScript 第3版』) 呼び出された関数の中では、arguments プロパティを利用できる。arguments は実引数を保持している。 以下コード例では、「a, b, c」が仮引数、「5, 1, 9」が実引数になる。 function max(a, b, c){...} max(5, 1, 9); arguments のプロパティを手繰り、呼び出し階層を求めることができる。 プロパティ関連図は以下。IE 6.0、Firefox 1.0.6で確認を行なった。 概念的には以下が成り立つ(IEでは動作もする)。 ok(arguments.caller == arguments.callee.caller.arguments); ok(arguments == argum

  • Collection & Copy - G.パスカルザカリー - 闘うプログラマー ― ビル・ゲイツの野望を担った男達

    抜粋 最後には、優れた作品は愛情と暴力によって創造されるのだと知った。 闘うプログラマー〈上〉―ビル・ゲイツの野望を担った男達作者: G.パスカルザカリー, G.Pascal Zachary, 山岡洋一出版社/メーカー: 日経BP出版センター発売日: 1994/12メディア: 単行闘うプログラマー〈下〉―ビル・ゲイツの野望を担った男達作者: G.パスカルザカリー, G.Pascal Zachary, 山岡洋一出版社/メーカー: 日経BP出版センター発売日: 1994/12メディア: 単行あっという間に成長し、短期間でプロになり、すぐに、変化をいやがるようになる。「第一に、品質は、全員の信念でなければならない。 トップの経営者から、一番下の助手まで、全員の信念でなければならない。 経営陣の風向きをいつも気にする気弱な管理者に、用はない。 品質を守るには、勇気が必要なこともある。 わたしの

  • AJAXアプリケーションのデバッグ、JavaScriptログ出力、Log4js - FAX

    リンク Ajax非同期通信アプリケーションのデバッグを行う際に、以下ライブラリを利用し、ログ出力を行ないながら動作詳細を確認した。フランス製。 Log4js 前提クライアントとサーバーの通信をリアルタイムでログ出力を確認したい。Venkmanでステップ実行を行うと、タイムアウトが発生する。また正確なタイミングで振る舞いを確認できない。debug.jsは、まとめてフラッシュするため利用は難しい。 特徴ログを出力すると、リアルタイムに行が増えていく。ソートや、フィルタも存在する。debugや、infoなどのカテゴリ分けがある。ログと一緒に、オブジェクトインスペクタも表示できる。 利用手順ダウンロードし展開されたファイル全てを一つのディレクトリへ配置。HTMLヘッダに、以下を記述。 ログ出力したい部分に、以下を記述。debug、info、error、warnの4つのメソッドがある。フランス語、N

  • 1分でわかるJSAN - FAX

    1分でわかるJSAN 技術 概要 JSANは、他のライブラリをインポートするライブラリです。 リポジトリ リポジトリは、ライブラリの検索対象のパスです。 JSAN.addRepository()で追加します。 JSAN.includePathにリストされます。 デフォルトのリポジトリは「.」と「lib」です。 JSAN.use() ライブラリをインポートするには、JSAN.use()を使います。 クラスがロードされます。 個々の関数もグローバルコンテキストへロードされます。 JSAN.require() クラスのみをロードします。 「Test.Simple.plan()」のように、全部書けば呼び出せます。 グローバルコンテキストを汚しません。 JSAN.exporter() ロード済みのクラスから、好きな関数をグローバルへ置き直します。 関数が使いやすくなります。 好きなライブラリの、好き

    Wacky
    Wacky 2005/09/19
    JSANは、他のライブラリをインポートするライブラリです。
  • Collection & Copy - JSON入門

    翻訳(thanks to JavaScript++かも日記) 原文:Introducing JSON JSON(JavaScript Object Notation)は、軽量のデータ交換フォーマットです。人間にとって読み書きが容易で、マシンにとっても簡単にパースや生成を行なえる形式です。JavaScriptプログラミング言語(ECMA-262標準第3版 1999年12月)の一部をベースに作られています。JSONは完全に言語から独立したテキスト形式ですが、C、C++、C#、JavaJavaScriptPerlPython、その他多くのCファミリーの言語を使用するプログラマにとっては、馴染み深い規約が使われています。これらの性質が、JSONを理想的なデータ交換言語にしています。 JSONは2つの構造を基にしています。 名前/値のペアの集まり。様々な言語で、これはオブジェクト、レコード、構

    Wacky
    Wacky 2005/09/15
    データ交換フォーマットの一つらしい