タグ

ブックマーク / monjudoh.hatenablog.com (13)

  • r.jsでビルドする際に設定として使うbuild.jsを動的にする。さらに部品化する。 - monjudoh’s diary

    r.js RequireJS用のmoduleをビルドする際にはr.jsを使います。 build.js この時にビルド設定の記述に使用するのがbuild.jsでこんな感じで書きます。 簡単な例だとこんなの ({ baseUrl:'./src', dir : './build', paths:{ jquery:"../lib/jquery-1.8.2", text:'../lib/plugins/text', underscore:'../lib/underscore-1.3.3' } }) 動的なbuild.js build.jsはJSONではなくてJSです。 JSなので処理を書くことが出来ます。 例えば関数その場実行を含む下記のbuild.jsは、上記のものと同じ設定を表します。 ({ baseUrl:'./src', dir : './build', paths:(function ()

    r.jsでビルドする際に設定として使うbuild.jsを動的にする。さらに部品化する。 - monjudoh’s diary
    efcl
    efcl 2012/12/12
    ビルド設定をjsファイルで書く
  • JavaScriptでのbuilt-in/DOM objectのprototype拡張 - monjudoh’s diary

    @rosylillyが気にしていた のでまとめた。 built-in/DOM objectのprototype拡張による弊害 追加したプロパティ/メソッドがfor inで列挙される var obj = {a:1}; for (var i in obj) { console.log(i); } こうするとaだけ出るはずが、 Object.prototype.b=function(){}; こうした後だとa,bが出てしまうって奴ですね。 そのまま代入しないでObject.defineProperty/definePropertiesでenumerable:falseのプロパティとして定義すれば列挙されなくなるので特に問題ありません。 今回挙げるprototype拡張の弊害の内唯一これだけはECMAScript5時代になって解消されました。唯一これだけは。 built-in/DOM object

    JavaScriptでのbuilt-in/DOM objectのprototype拡張 - monjudoh’s diary
    efcl
    efcl 2012/09/10
    JavaScriptのPrototype汚染について改めて紹介。ES5でのdefinePropertyで列挙の防止は可能だが、コンクリフト自体はなくなるわけではないことについて。
  • LT概要「GitとMercurialのリポジトリ構造の違いと歴史改変について」SCMBootCamp in Tokyo - monjudoh’s diary

    SCMBootCamp in Tokyo 開催しました。KPT公開。 - うさぎ組にて手ぶらLTをしたので資料はないが、内容を軽くまとめておく。 GitとMercurialの比較 Git Mercurial リポジトリ commit objectのグラフと、branchのHEAD,tagなどの参照で出来ている。 commit objectのグラフだけで出来ている。 歴史改変サポート デフォルトであり。 デフォルトではなし。extensionが必要。 歴史改変 新しいcommit objectグラフを作成し、参照を古いHEADから新しいHEADに移す。表面上要らない歴史の削除として使われるresetはHEADの移動のみを行う。 新しいcommit objectグラフを作成し、古いcommit objectグラフをリポジトリから除去する。要らない歴史の削除として使われるstrip(MQExte

    LT概要「GitとMercurialのリポジトリ構造の違いと歴史改変について」SCMBootCamp in Tokyo - monjudoh’s diary
  • BPStudy#41 RequireJSとeventとUIコンポーネント - monjudoh’s diary

    自己紹介 文殊堂といいます BePROUDの見習いiOSプログラマです。 JavaScriptで30byteでFizzBuzzを書けます。 location.href='//is.gd/kzkQhu' iOSの前はUIがリッチな業務システムを作るとかそんな仕事をしてました。 内容 RequireJS実践編 jQuery custom event 応用編 疎結合なUIコンポーネントの作成について

    BPStudy#41 RequireJSとeventとUIコンポーネント - monjudoh’s diary
  • java-ja.js #2 RequireJS実践編 - monjudoh’s diary

    java-ja.js #2 : ATND 自己紹介 文殊堂といいます。 BePROUDという会社のリーダーです ↑はロケタッチの話です(ロケタッチ知らない人は4SQでMayorになったみたいな話だと思っといてください)。 弊社では今(2010年12月現在)人材募集中らしいですよ。 今の仕事UIがリッチな業務システムを作るとかそんな感じで、 そこでRequireJSを使っています。 RequireJSって何? 公式サイト RequireJS スライド jQueryRequireJS.pdf語記事だとこの辺? http://zudolab.net/blog/?p=451 要はJavaScriptの依存性解決をしてくれるライブラリです。 以前RequireJS moduleについてって記事書きました。 あらためてRequireJS moduleについて まず最初に、一般的な言語と同じよう

    efcl
    efcl 2010/12/09
    RequireJSで非同期ロードとモジュールの再利用
  • RequireJS moduleについて - monjudoh’s diary

    RequireJSって何? 公式サイト RequireJS スライド jQueryRequireJS.pdf語記事だとこの辺? http://zudolab.net/blog/?p=451 要はJavaScriptの依存性解決をしてくれるライブラリで、こんな感じで使えます。 require( [ 'lib/a' ,'lib/b' ,'lib/c' ], function(){ // lib/a.js,lib/b.js,lib/c.jsが読み込まれていることが保証されているcallback require( [ 'lib/d' // lib/a.jsに依存しているライブラリ ,'lib/f'// lib/b.jsに依存しているライブラリ ], function(){ // lib/a.js,lib/b.js,lib/c.js,lib/d.js,lib/e.jsが読み込まれていることが保

    RequireJS moduleについて - monjudoh’s diary
    efcl
    efcl 2010/11/24
    RequireJS 非同期ロード
  • CSRF脆弱性対策 - monjudoh’s diary

    CSRF対策のtokenはセッションIDで良い セキュリティ的にワンタイムトークン>セッションIDではない。 という話が、この辺の記事に書かれています。 高木浩光@自宅の日記 - クロスサイトリクエストフォージェリ(CSRF)の正しい対策方法 高木浩光@自宅の日記 - CSRF対策に「ワンタイムトークン」方式を推奨しない理由, hiddenパラメタは漏れやすいのか? 肝はこういう事のようです tokenは外部のサイトから知り難い(実質知り得ない)ものでないといけない セッションIDはcookieに格納される document.cookieは自ドメインのものと親ドメインのものしか見れない→外部サイトで動かすJavaScriptからは参照できない セッションIDは『暗号学的に安全な擬似乱数生成系で生成されているはず』(引用) 推測も事実上できない 補足すると、セッションIDを使用したCSRF対

    CSRF脆弱性対策 - monjudoh’s diary
    efcl
    efcl 2010/10/08
    CSRF対策にワンタイムトークンかセッションIDか。 もし事故っても被害を最小限にするためのドメイン構成
  • GreasemonkeyでクロスドメインiframeのcontentWindowにアクセスするとエラーになる件の回避方法 - monjudoh’s diary

    http://from.example.org/ のページでほげほげした結果を iframeで開いたhttp://to.example.com/ のページにwindow.postMessageで渡して、 そっちのGreasemonkeyで何か処理をさせるみたいなGreasemonkeyを書いててハマったのでメモ。 こんな感じのコードだったのだが、Firebugのcosoleでなら動くのに Greasemonkeyの中で動かそうとすると動かなかった。 function executeBid(ids){ var $iframe = $('<iframe/>',{ src:'http://to.example.com/' }); $iframe.bind('load',function(){ this.contentWindow.postMessage(JSON.stringify({comma

    GreasemonkeyでクロスドメインiframeのcontentWindowにアクセスするとエラーになる件の回避方法 - monjudoh’s diary
    efcl
    efcl 2010/10/02
    クロスドメインのiframeでpostMessage。 contentWindowに触るとエラー。unsafeWindowで回避してたやつか
  • 若手IT勉強会 secrets of the JavaScript Ninja 読書会(第5章 prototypeの話) - monjudoh’s diary

    注意 基的に自分が気になったことしか此処には書かないので、 これだけ読んでもNinja読んだ代わりには全くならないですよ、っと。 HTML Prototypes HTMLElement.prototypeに生やしたmethodが、 document.getElementById等で取得したDOM要素のobjectで使える。 多分、document.createElementで作ったDOM要素もそうだと思う。 var elem = new HTMLElement(); みたいなことはできない。 IE8以降とモダンブラウザで使えるらしい。 ネイティブオブジェクトの拡張 便利だけど、Objectの拡張は気をつけて行うべき、 Numberの拡張はやめたほうがいい。 なんでNumberの拡張をやめておいたほうがいいかというと、 Numberはprimitiveのnumberのラッパーなんだけど、

    若手IT勉強会 secrets of the JavaScript Ninja 読書会(第5章 prototypeの話) - monjudoh’s diary
    efcl
    efcl 2010/08/16
    シンプルな継承の書き方。John Resig - Simple JavaScript Inheritanceについて。
  • Firebugで元のJavaScriptのコードに手を入れずにdebug用のconsole出力を入れる方法 - monjudoh’s diary

    Firebugでは条件付きブレークポイントが使えるので、 scriptタブにて該当行にブレークポイントを貼り、 条件としてconsoleへの出力を||区切りで、最後に&& falseを入れる。 console.debug('this.lastPosition') || console.dir(this.lastPosition) && false こうするとブレークポイントを通る度にconsoleへの出力は評価され、 consoleに出力され、最後の&& falseのため式全体は必ずfalseとして評価されるため ブレークすることはない。 追記 console出力系関数の戻り値はundefinedなんだから&& falseは不要か 追記 nanto_vi @monjudoh JSでは||より&&の方が優先順位が高いので、a || b && c はaが真ならbもcも評価されずに全体が真として

    Firebugで元のJavaScriptのコードに手を入れずにdebug用のconsole出力を入れる方法 - monjudoh’s diary
    efcl
    efcl 2010/02/24
    breakDebug、ブレークポイントを使って元ソースに書き加えずに変数の中身を見るテクニック。 console.debug('this.lastPosition'),console.dir(this.lastPosition)
  • Firefox3.6+Firebug1.5導入に向けたFirebug拡張の互換性確認 - monjudoh’s diary

    Firefox3.6b2にFirebug1.5b3を入れた状態で有効になっている拡張機能と無効になっている拡張機能 EventBug 0.1b1も入れた。 有効な拡張機能: [17] Add-on Collector 1.0.4: http://www.google.com/search?q=Firefox%20Add-on%20Collector Adobe DLM (powered by getPlus(R)) 1,6,2,48: http://www.nosltd.com/ Coral IE Tab 1.63.20091024: http://coralietab.mozdev.org Dafizilla ViewSourceWith 0.5.1: http://dafizilla.sourceforge.net/viewsourcewith EventBug 0.1b1: http

    Firefox3.6+Firebug1.5導入に向けたFirebug拡張の互換性確認 - monjudoh’s diary
    efcl
    efcl 2009/11/16
    Firebugの拡張まとめ
  • キャプチャリングとバブリング Firefox編 - monjudoh’s diary

    サイの17.2に詳しく書いてありますが、JavaScriptのDOM レベル2イベントでは、 イベント伝播は3つの段階で構成されます。 キャプチャリングフェーズ ターゲットノード自身でのイベントハンドラの実行 バブリングフェーズ 上図のように3つ入れ子になった要素の、 外側から2つ目の要素をクリックした場合を例にとると、 キャプチャリングフェーズでdocument→外側の要素→と伝播していき、 ターゲットノードでのイベントハンドラ(あれば)が実行され、 バブリングフェーズで→外側の要素→documentと伝播していきます。 DOMレベル0のイベントではターゲットノードでしか イベントハンドラの実行は出来ませんが、 DOMレベル2イベントではキャプチャリングフェーズ・バブリングフェーズでも イベントハンドラの実行が出来ます。 検証用HTML 確認のためにdivの親子をそれぞれクリックして、

    キャプチャリングとバブリング Firefox編 - monjudoh’s diary
    efcl
    efcl 2009/05/12
    サイ本の17.2に詳しく書いてありますが、JavaScriptのDOM レベル2イベントでは、 イベント伝播は3つの段階で構成されます。 1. キャプチャリングフェーズ 2. ターゲットノード自身でのイベントハンドラの実行 3. バブリン
  • Firebugについてまとめ - monjudoh’s diary

    随時更新 公式ドキュメント Firebug Console API http://getfirebug.com/commandline.html 気になったところ $$(selector) 複雑なCSSセレクタでなければjQueryの$関数の変わりとして使える感じ。 dirxml(node) outerHTML相当のHTMLを出してくれる感じ $$(selector)と組み合わせると便利そう。 inspect(object[, tabName]) 指定したオブジェクトを指定したタブで表示できる。特定要素をHTMLタブで表示させる時、「inspect($$('table#some-id td')[0],'html');」みたいにできる。今まで、「console.log($$('table#tab td')[0]);」を実行してconsoleタブに表示させた後、そこをクリックみたいにやっていた

    Firebugについてまとめ - monjudoh’s diary
    efcl
    efcl 2008/08/26
    firebugまとめ記事
  • 1