ささいなことなのでここに書くわけだけど、HikiDocと tDiaryの許容する urlの違いから、tDiary同梱の hikidoc.rbの fix_url()が継ぎを当てられた結果、難解なことにな
if /:/ =~ uri and %r!\A(https?|ftp|file|mailto):! !~ uri uri elsif %r|://| !~ uri and /\Amailto:/ !~ uri uri.sub(/\A\w+:/, "") else uri end
uri.sub(/\A(?:https?|ftp|file):(?!\/\/)/, "")
上が 2008-03-04現在のコ
下の方のコ
昨日(3日)の朝に、tDiary本体に migrate機能を付けたと読んだので、一日待
どこかから拾
カテゴリキ
最終更新: 2010-03-22T05:44+0900
著者は ActiveScriptRubyの arton氏。
この本が出た当時、Mysterious SyndromeWindows Scripting Host Laboratoryの管理人むたぐち氏が、言語は Rubyであるが、COMや WSHの話題は VBScriptや JScriptと共通だし、他にこんなに突
タイミングを逸していただけなのだ。
Rubyの名前を初めて目にしたのもこの時だ
あくまで目にしていただけで、初めての CGIプログラムはサンプルの多い Perlで書いたし、すぐに嫌気がさして代わりの言語を探したときに Rubyを"再"発見している。そのときに、WSHに親しんでいたことと ActiveScriptRubyの存在が Ruby採用のき
思い出深い一冊ということ。この本を通して、気付かないまま Rubyとすれ違
暴風ガ
い
『暴風ガ
今や読むのが楽しみなラノベとして "文学少女"シリ
理由がわからない。前回の失敗から今日までに、該当しそうな* Windows Updateはないし。
その期間にあ
One of your disks needs to be checked for consistency. You may cancel the disk check, but it is strongly recommended that you continue.
Windows will now check the disk.
結果、いくつかのエラ
CHKDSK is recovering lost files.
Correcting errors in the master file table's (MFT) BITMAP attribute.
Correcting errors in the Volume Bitmap.
Windows has made corrections to the file system.
これしかないという気はするが、バ
* こういう素人判断が原因の見落としにつながるのだ、と思われる前に書いておくと、「Definition Update for Windows Defender」が 2/22と 2/28にインスト
http://sho.tdiary.net/20080222.html#p01
ここで W31SAと D705iμの例が出ていたので、に
補足など。
split()の第一パラメ
"".split(" ").length; // 1 (空文字列にマッチしないから) "".split("").length; // 0 (空文字列にマッチするので) "".split(/\s+/).length; // 1 (空文字列にマッチしないから) "".split(/^$|\s+/).length; // 0 (空文字列にマッチするので) function getClasses(element) { return element.className.split(/^$|\s+/); }
上の functionでは classNameが空
IE7と Firefox2で異なる。Firefox2の方が正しいが無限ル
var re = /\b/g; // 単語境界にマッチする、幅0のメタ文字。 var str = "012 456 89A"; re.lastIndex = 0; for(var i = 0; i !== 5; ++i) { alert("("+ re.exec(str).index +","+ re.lastIndex +")"); // IE7: (0,1) (3,4) (4,5) (7,8) (8,9) ... // Fx2: (0,0) (0,0) (0,0) (0,0) (0,0) ... }
空文字列にマ(IE7でスキexec()の前後で lastIndexの値が変わ(Fx2でのマ
var re = /\b/g; var str = "012 456 89A"; re.lastIndex = 0; for(var i = 0; i !== 5; ++i) { var index = re.exec(str).index; alert("("+ index +","+ re.lastIndex +")"); // IE7: (0,1) (3,4) (4,5) (7,8) (8,9) ... // Fx2: (0,0) (3,3) (4,4) (7,7) (8,8) ... if(index === re.lastIndex) { ++re.lastIndex; } }
ル
if(index === re.lastIndex) { ++re.lastIndex; }
なんて分岐を増やすより、文字列末尾にマ
* /$/.exec("str") の後の lastIndexプロパテ
コメント欄がないのでここでひ
Stringと Boolean(と Numberと Date)だけこのように比較方法を === から == にしたりする必要はなくて、
String.prototype.equals = Boolean.prototype.equals = function(arg){ return this == arg; };
こう。
Object.prototype.equals = function(that) { return this.valueOf() === that.valueOf(); }
これでオブジ
ところで、配列の場合、
valueOf メソ
ッドの動作は、オブジ ェクトの種類に応じて異なります 配列の要素は、カンマによ
って連結される文字列に変換されます。Array.toString メソ ッドや Array.join メソ ッドと同じように動作します。 Microsoft JScript 5.5 リファレンス (chm)
と書かれていて同一性のチ
Array.prototype.valueOf() は String、Boolean、Number、Dateのそれと違
参照: 15.4 Array オブジ
ということは Object.prototype.valueOf()が呼ばれるはずで、これは thisを返す。
var a = [1]; alert(a.valueOf() === a); // true
JScript5.5のいいかげんなリフ