タグ

ブックマーク / 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
  • JavaScriptでの非同期関数合成 - monjudoh’s diary

    Unserscore.jsや互換ライブラリのLo-Dashを使うと関数合成が出来ます。 複数個の関数があって、関数を呼び出した結果を使って関数を呼び出して…っていうのを1個の関数にします。 ドキュメントの例を見れば分かるかと。 簡略化のために関数合成の対象になる関数を1引数・戻り値ありの関数とします。 これを非同期処理をする関数に当てはめるとcallbackを含む2引数・戻り値なしの関数が当てはまるでしょう。 この場合のcallbackは1引数の関数とします。 まず、logを出力するcallback関数を定義しましょう。 function log(result){ console.log(result); } 次にcallbackを含む2引数・戻り値なしの関数を定義します。別に非同期処理はやっていないです。 // 1を足す function add1(callback,arg){ call

    JavaScriptでの非同期関数合成 - monjudoh’s diary
  • 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
  • IEでのa要素の各属性について - monjudoh’s diary

    色々あってa要素でURLをパースするというコードを書いていて色々はまったのでまとめます。 IE6-8でのa.hrefの上限 IE6,7:4096bytes IE8:4121bytes でした。 なお、Firefox,Google Chrome,Safariは1MBとか普通に扱えます。 使わないけど。 http://jsdo.it/monjudoh/8Fm6/read 各属性の取得状況 a.hrefにURLを代入して各属性がどうなるか調べてみました。 URLの長さが短い⇔上限超え outerHTMLハックを使わない⇔使う a.hrefにURLを代入後、別の要素のinnerHTMLにa.outerHTMLを代入し、そのfirstChild(a要素)の各属性を見ること の二軸を変えて調べてみました。 http://jsdo.it/monjudoh/sc82 IE6 a.hrefへの代入で更新され

    IEでのa要素の各属性について - monjudoh’s diary
  • jQuery custom event 応用編 - monjudoh’s diary

    前置き custom eventとは何か?(前置きの前置き) ブラウザがサポートしているeventではない独自定義event。 clickとかはブラウザがサポートしているevent ユーザのアクションやブラウザの状態等によって直接発火されることはない click eventは、ユーザがマウスポインタを要素の上に移動後にマウスのボタンを押すと発火される DOMContentLoaded eventは、ページのHTMLがダウンロード完了し、すべてパースされると発火される jQueryではtrigger,triggerHandler methodでeventをユーザのアクション等に関係なく発火することが出来る custom eventも発火出来る 逆に言うとcustom eventはJavaScriptの側からしか発火されない 以前The JUI 2009 Returnsで話をしました。 htt

    jQuery custom event 応用編 - monjudoh’s diary
  • 昨日騒ぎになったTwitterのXSS脆弱性によって実際に受けそうな被害とその対策 - monjudoh’s diary

    何が出来るのか どんな脆弱性かの詳細はこちらを参照2010 年 9 月 21 日現在のツイッターのバグ(脆弱性)について 外部JavaScriptを読み込むコードを仕込めたので、 どんなJavaScriptでも実行できる状態でした。 以下、JavaScriptの実行によってTwitter上で出来る事。 セッションハイジャック JavaScriptからcookieを参照できるのでログイン状態のセッションIDも参照できます。 また、任意のJavaScriptが実行できる以上、参照したセッションIDを攻撃者のサーバ等に送信することも出来ます。 攻撃者は奪ったセッションIDをcookieに設定すれば、被害者のアカウントでtweet,direct messageの閲覧・送信が出来ます。 確認してみたところ、ログイン状態のセッションIDはログアウトしても無効にはなりません。 設定→パスワードからパスワ

    昨日騒ぎになったTwitterのXSS脆弱性によって実際に受けそうな被害とその対策 - monjudoh’s diary
  • Ex DOM Storageがあるからと安心してWeb Storage使いまくりなWebアプリを作ると落とし穴に嵌る件 - monjudoh’s diary

    Ex DOM Storageを使っていて嵌った。 頭がおかしくなりそうだったがなんとかとりあえずの解決はできたので、 その件について話をする。 Ex DOM Storage IE6,7でWeb Storageを使えるようにするライブラリ。 userData behaviorとhtcを使って実装されている。 落とし穴 こちらのリリース告知エントリで言及されているものの他にも、 userData behaviorにはWeb Storageの機能を再現できない制限がある事が分かった。 Ex DOM Storage をリリースしました - Yet Another Hackadelic 別ディレクトリとデータを共有出来ない userData behaviorは同じディレクトリ内でないとデータを共有出来ない。 a UserData store is available only in the same

    Ex DOM Storageがあるからと安心してWeb Storage使いまくりなWebアプリを作ると落とし穴に嵌る件 - monjudoh’s diary
  • 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
  • Python Hack-a-thon 第2回 jQuery plugin作成ハンズオン - monjudoh’s diary

    jQueryのハンズオンをやりますが全然準備していないので即興でやります。 jQueryを始める上であるとよいもの jQuery jQuery 開発環境 MacPCLinux 向け新高速ブラウザー | Firefox Firebug FireQuery is a Firebug extension for jQuery development FireQuery - jQueryを扱う際に便利なFirebug拡張 - - 文殊堂 https://addons.mozilla.org/en-US/firefox/addon/11905/ FirefinderはJavaScriptプログラマ以外も使うべき - 文殊堂 ドキュメント http://api.jquery.com/browser/ 下の方に"INSTALL NOW"とかあるのでクリックしてAdobe Air板をインスコしましょう

    Python Hack-a-thon 第2回 jQuery plugin作成ハンズオン - monjudoh’s diary
  • 失業の不安がない - monjudoh’s diary

    カレーが相変わらず酷かったので言及 * id:cheapcode 不安なのは業界じゃなくて自分の将来だろ。30代までに技術を磨き、更に40代までにキチンとマネジメントや営業スキルを積み上げていれば失業の不安はない。スキルが結果に繋がるって意味ではフェアな業界だと思うけど 何をデタラメ言ってるんだコイツは………. 失業の不安はない?まるで数年前にJALを志望した学生のセリフのようだ.*3 http://d.hatena.ne.jp/JavaBlack/20100127/p1 「失業の不安がない」で想定する状況が「会社から解雇されず。会社は破綻しない。」なのが終わってる。 サラリーマンだったらいつでも次に行く会社があるってのが失業の不安がないってことだと思うんだよね。 行く先があるなら会社をクビになろうが会社がつぶれようが問題ない。 というか、多分その前に次のところに移っている。 で、数年前の

    失業の不安がない - monjudoh’s diary
    Naruhodius
    Naruhodius 2010/01/28
    マジレスだ
  • jQuery UI Dialogを使う Google AJAX Libraries API編(jQuery UI 1.5.2) - monjudoh’s diary

    jQueryだけでなくjQueryUIGoogle AJAX Libraries APIで取ってこれるようですので、その使い方をば。 Google AJAX Libraries APIで取ってくるjQueryUIは、 UI Core・Core Interaction・Widgets・Effects全部入りです。 なので、当然前回言及したDialog・Draggable・Resizableも全部入っています。 とりあえずファイルを直で指定してみる。 <html> <head> <link rel="stylesheet" href="./flora/flora.all.css" type="text/css"> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jque

    jQuery UI Dialogを使う Google AJAX Libraries API編(jQuery UI 1.5.2) - monjudoh’s diary
  • jQuery1.3.2コードリーディング(liveメソッド) - monjudoh’s diary

    若手ITゾンビにオンラインで参加した。 liveメソッドについては.live() | jQuery API Documentationを参照 liveでeventを貼って、実際にeventが発火した場合、 以下のliveHandlerが呼ばれる。 l2989-3012 function liveHandler( event ){ var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"), stop = true, elems = []; jQuery.each(jQuery.data(this, "events").live || [], function(i, fn){ if ( check.test(fn.type) ) { var elem = jQuery(event.target).closest(fn.data)[0]; if

    jQuery1.3.2コードリーディング(liveメソッド) - monjudoh’s diary
  • FireQuery - jQueryを扱う際に便利なFirebug拡張 - - monjudoh’s diary

    FireQuery is a Firebug extension for jQuery development jQueryを扱う際に便利なFirebug拡張 現在のバージョンは0.3 結構前に紹介されていたけど、ちゃんと使いこなせてきた感じなので紹介する。 以下、各機能について紹介と解説。 jQueryオブジェクトのconsoleへの表示 jQueryオブジェクトをFirebugのconsoleへの出力 1.2系の場合通常のオブジェクトとして表示されてしまいどの要素を抱えているかぱっと見て把握出来ない、 1.3系の場合は通常の配列と同じように表示される。 jquery12.fn.jquery;// 1.2.6 jquery12('div');// Object length=6 0=div#main 1=div#outer1.outer jquery13.fn.jquery;// 1.3

    FireQuery - jQueryを扱う際に便利なFirebug拡張 - - monjudoh’s diary
  • 1