tips

packerで圧縮されたJavaScriptのdebug方法

minifyされたJavaScriptは各種開発者ツールのdeminifierを使えば整形された状態でdebug出来ますが、packerで圧縮されたJavaScript(以下packed JS)はどうかという話。 Google Chromeの開発者ツール前提で話をするので他のブラウザについては誰か調べてみてく…

clone元以外のリポジトリとの同期

remote repository追加 remote repositoryをgit remote addで追加。 GitTowerの場合Refs->Add New Remote Repositoryから追加。 remote branch情報の取得 remote repositoryに対してgit fetchで、remote repositoryのremote branch一覧を取得出来る。 clone…

githubで複数ユーザを使い分ける

githubというかgitosisはsshの鍵でユーザを判定します。 設定の仕方はhelpでも見てくだしあ。 Redirecting... Redirecting... Redirecting... 自分のgithubユーザとして色んなマシンからgithubを使う場合は簡単です。 上記の説明のとおりに公開鍵を追加して…

続・IEでのa要素の各属性について

前置き IEでのa要素の各属性について - 文殊堂の続き。 IE 6,7 で相対URL -> 絶対 URL の変換 - #生存戦略 、それは - subtechを参考にして、 cloneNodeハックとlink.hrefによるURLの絶対URL化を組み合わせてみました。 http://jsdo.it/monjudoh/o2Mk htt…

IEでのa要素の各属性について

色々あってa要素でURLをパースするというコードを書いていて色々はまったのでまとめます。 IE6-8でのa.hrefの上限 IE6,7:4096bytes IE8:4121bytes でした。 なお、Firefox,Google Chrome,Safariは1MBとか普通に扱えます。 使わないけど。 http://jsdo.it/mon…

Mercurialで別オリジンのリポジトリ間の同期を取る運用の仕方について

前説 DjangoでWebアプリを開発していて自分はJavaScript部分を担当しています。 で、サーバ側を動かさないと開発できないのは辛いので、 サーバサイドで生成されたHTMLとJSONをwgetして、js/dummy/とかに配置し、 各種URLの参照を書き換えてローカルでJavaSc…

GreasemonkeyでクロスドメインiframeのcontentWindowにアクセスするとエラーになる件の回避方法

http://from.example.org/ のページでほげほげした結果を iframeで開いたhttp://to.example.com/ のページにwindow.postMessageで渡して、 そっちのGreasemonkeyで何か処理をさせるみたいなGreasemonkeyを書いててハマったのでメモ。 こんな感じのコードだっ…

git rebaseでよくやること

ticket1というtopic branchで作業していて、 ひとつ前のcommitに対する修正をしたくなったとする。 git checkout HEAD^でひとつ前に戻って、修正してcommit,commit場合によってはcommit --amend。 この時のhash値(1234ab等とする)をコピーしておいて、 git c…

Excelの表中の「数字-」の数字を増減

例:1減らす場合 Firebugのconsoleに下のコードをコピペして、 Excelの表を範囲選択してコピーしたものを"ここ"って書いてあるところに突っ込む。 で、実行。 copy( <> .toString().replace(/(\d)-/g,function($0,$1) ($1-1)+"-") );

Excelの表をRedmine等に持っていく

Firebugのconsoleに下のコードをコピペして、 Excelの表を範囲選択してコピーしたものを"ここ"って書いてあるところに突っ込む。 で、実行。 copy( <> .toString().replace(/^|\t|$/gm,'|') );

Ex DOM Storageが読み込んだ直後に使えるとは限らない件

Ex DOM Storageのscriptタグの下のscriptタグ内のJavaScriptで、 localStorage,sessionStorageの各プロパティ・メソッドが使えないという現象が、 数回に一回発生した。 今、これを使ってるアプリではとりあえずDOMContentLoaded後にはまず確実に使えるっぽ…

Webページのtable一行分をコピーして、CSV一行分に変換してクリップボードに突っ込む

Firebugのconsoleに下のコードをコピペして、 table一行分をコピーしたものを"ここ"って書いてあるところに突っ込む。 で、実行。 copy( <> ここ .toString() .trim() .replace(/\n/g,'') .replace(/\s+/g,',') ); 文字列の中にXMLのタグとして解釈されるで…

Ex DOM Storageがあるからと安心してWeb Storage使いまくりなWebアプリを作ると落とし穴に嵌る件

Ex DOM Storageを使っていて嵌った。 頭がおかしくなりそうだったがなんとかとりあえずの解決はできたので、 その件について話をする。 Ex DOM Storage IE6,7でWeb Storageを使えるようにするライブラリ。 userData behaviorとhtcを使って実装されている。 …

Ex DOM StorageをRailsで使う

Ex DOM Storage をリリースしました - Yet Another Hackadelic 個人的メモ Content-Typeの設定 Content-Type を設定するEx DOM Storage では IE 独自機能である DHTML Behavior を使っています。これについては別のエントリで解説しようと思いますが、配布フ…

minifyされたJavaScriptにconsole出力等の処理を挟む、特定経路を通った場合に処理を挟む

minifyされたJavaScriptへのブレークポイントでの処理の挟み込み Firebugのブレークポイントは行に貼るのでminifyされたJavaScriptと相性が悪い。 例えばjQuery.ajaxが定義されている行にFirebugで元のJavaScriptのコードに手を入れずにdebug用のconsole出力…

Firebugを使って無名関数への参照を手に入れる

Firebugで元のJavaScriptのコードに手を入れずにdebug用のconsole出力を入れる方法 - 文殊堂の応用編参照が欲しい無名関数の中の適当な所で、 breakpointを設定し、条件を↓にする。 (window.someFunction = arguments.callee),false この無名関数が1度でも実…

Firebugで元のJavaScriptのコードに手を入れずにdebug用のconsole出力を入れる方法

Firebugでは条件付きブレークポイントが使えるので、 scriptタブにて該当行にブレークポイントを貼り、 条件としてconsoleへの出力を||区切りで、最後に&& falseを入れる。 console.debug('this.lastPosition') || console.dir(this.lastPosition) && false …

Prepare Interceptorの使いどころ

http://struts.apache.org/2.x/docs/prepare-interceptor.html action methodの事前処理としてprepare() methodやprepare{MethodName}() methodを呼べる と言われても今一使い勝手が分からなかったが、 これがinterceptorであり、 interceptorはinterceptor-…

mapが空であることのテスト

Map<K,V> map; // ↑こんなmapが空ですよっての書きたい時 assertThat(map.isEmpty(), is(true)); // こう書くのが一番シンプルだけど // 空じゃなかったときに何が入ってるのか分からなくて不便なので assertThat(map, not(Matchers.<K, V> hasKey(any(K.class)))); // </k,></k,v>…

Go to Symbolが便利

TextMateでshift+cmd+TでGo to Symbolって機能が使える。 関数とかメソッドの定義とかだけ検索出来るのでコード読む時便利。 てかこれとかちゃんと読まないとなー。 TextMate Manual

Mercurialでchangeset圧縮

Gitのchangeset圧縮がうらやましいので、 MercurialQueueを利用してやってみた。 概ね↓を参考にした。 ursmの日記最初からMercurialQueueで管理していない場合のやり方です。 branchのMercurialQueueへのpatchに変換 Rev:298〜Rev:301のbranchのRev:298〜Rev…

hg transplantを試してみた

Mercurialを使った俺々バージョン管理ノウハウまとめ(2009年夏編) - 文殊堂で、 export・importによるつまみ食いmergeの話を書いたら、 id:ursmがTransplantExtension - Mercurialを教えてくれた。 先日書いたやり方はbranch b1に含まれるいくつかのchangese…

Mercurialを使った俺々バージョン管理ノウハウまとめ(2009年夏編)

職場でMercurialを使っていい感じに俺々バージョン管理を やれるようになってきた感があるので、 ノウハウをまとめる。 概略 中央リポジトリと同期をとるbranchを用意する 同期branchはsync_cvsとかそんな名前 defaultをそのまま使っても良い このbranchで開…

cvs -nq up≒hg status

cvs -nq up≒hg statusなのかー。 というわけでいい感じにcvs 未反映成果を洗い出す - 文殊堂は全くいりませんね。 ぶっちゃけCVSはコマンドラインから使うよりEclipseから使う方が多かったのに対して、 Mercurialは基本的にコマンドラインから使っているので…

クライアントサイドでjQueryを使う場合にサーバが返すJSONで気をつけないといけないこと

zero-paddingした数字を返すと8進数として評価されてしまい欲しい結果が得られなくなる。 なぜかというとjQueryでJSONを処理するときはJSON.parse相当の処理をするのではなく、 evalしているだけなのでJavaScriptの言語仕様上そうなってしまう。 JSON.parse(…

FirefinderはJavaScriptプログラマ以外も使うべき

Firefinderとは何か? https://addons.mozilla.org/en-US/firefox/addon/11905/ CSSセレクタやXPathで要素を検索出来るFirebugの拡張です。 どんな人にお勧めか? hiddenフィールドの値を閲覧したり、 formのどの要素のnameが何かとかさくっと見たくなること…

いい感じにcvs 未反映成果を洗い出す

cvs -nq up≒hg status - 文殊堂でいい 使用する想定シチュエーション:中央リポジトリがCVS、Mercurial等で俺々管理しつつ時々同期を取る。 以下でCVSリポジトリとローカル間で差異があるファイルを列挙できる。 hg addしたがcvs addはしてないとか、 hg rem…

2つの文字列両方に含まれる文字のみで構成された文字列を取得

各文字列を文字集合としてみた場合の、積集合 仕事中(JavaScript以外で)必要だったのでちょいちょ(ry (function(str1,str2){ var chars = (str1 || '').split(''); str2 = str2 || ''; result = chars.filter(function(n,i){ return str2.indexOf(n) != -1; …

文字列中に含まれる文字を除外した英数字を取得

仕事中(JavaScript以外で)必要だったのでちょいちょい書いたけど、あんまり気持ちよくないコード。 JavaScript1.7の配列内包使えば大分スマートに書けそうな希ガス。 FirebugでJavaScript1.7以降使うのってどうやるんだっけかな。 (function(exclusion){ var…

selectボックスの各オプションの値とテキストをタブ区切りでクリップボードに取得

jQueryを読み込んでFirebugでやる。 copy( $('select[name=hoge] option').map(function(i,n){ var $n = $(n); return $n.val() ? $n.val()+'\t'+$.trim($n.text()) : undefined; }) .get() .join('\n') );