IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

2007-01-01から1年間の記事一覧

IE でオブジェクトの配列のソートを 10 倍速くする

この記事の内容は嘘です。間違えてました。申し訳ありません。 謝罪 すみません。この記事の内容では並び替えが行われないようです。手元の環境では toString を見ていて並び替えられていたようです。指摘してくださった id:nanto_vi さんご指摘ありがとうご…

前の記事は間違っていました。申し訳ありません。という訳で、改めて別の IE のオブジェクト配列のソート高速化。

でも、基準値が整数 & 65536 以下の場合限定です>< しょぼいですね>< 以下のようにプロパティ値で並び替えたいとする。 var Klass = function(order) { this.order = order }; var array = [new Klass(3), new Klass(1), ....]; array.sort(function(a, …

一行で IE の JavaScript を高速化する方法

以下の一行をすべての JavaScript の前に読み込む /*@cc_on _d=document;eval('var document=_d')@*/ この一行を読み込むことによって IE での document へのアクセスが 5 倍速くなります。 たとえば 以下のように、読み込む前と読み込んだ後を比較してみま…

HTML 用の XPath 機能テストを書いた

こんな感じ ここでテストできます(DOM 3 XPath 対応ブラウザでしか動きません) XPath Functional Test テストしてみると Safari 3.0.3 Public Beta はバグが多い Opera と Firefox はかなり優秀 要素名は大文字? あと、特に気になった点として、 name 関数…

オブジェクトをプリミティブに型変換するときに便利な関数

ふと、思った オブジェクトを作るときに、以下のように型変換用の関数を作っておけば、便利じゃないかと var Hoge = function() { /* ... */ }; Hoge.prototype.number = function() { /* Hoge オブジェクトを数値に変換するコード */ } Hoge.prototype.stri…

mixi 新デザインでグリモン作ったり、スクレイピングしたり、しやすくなった

今回の mixi のデザインのポイントは 全ページで prototype.js の 1.5.0_rc0 が読み込まれている 新しいデザインのページはテーブルレイアウトじゃない 新しいデザインのページは id class 付きまくり いろいろ試してみた prototype.js が読み込まれているか…

IE Crashr

new ActiveXObject('Shell.Explorer').navigate('');

Firefox って DOM の getter/setter 取れるんだ

たとえば alert(HTMLImageElement.prototype.__lookupGetter__('src')); // function src() { [native code] } へー! こうやって readonly とかもやってたんだね。

はてなが好き

情報や議論を好む文化が好き。 みんなまだ id:eigokun と遊びたがってますよ。 id:eigokun に帰ってきて欲しいです。

第二次ブラウザ戦争@相関図ジェネレータ

ジェネレータ

はてブがページランクに影響を与えなくなったら

どうなるんだろう? ブログが検索エンジンにひっかかりにくくなる でも、ブログって検索から来る人より RSS から来る人のほうが多いからいいのかな 中にはブックマークするモチベーションが下がる人もいる(どうだろ? SEO 狙いのスパムはなくなるけど、注目…

8 も不思議だけど 12345679 (8のない並び)も不思議だよねー。

こんな感じ? 12345679 * 9 = 111111111この値ってなんで 8 が消えたんだろうと思って、色々 1111... となる数を割ってみたりしてたら、次のプログラムで 12345679 っていう数字を発見することができた。 var n = 0; for (var i = 1; i <= 10; i ++) { n = n…

「オタク系の人たち」とか言うな

総裁選 僕は熱狂的な麻生候補支持者ってわけではないけど マスコミや一部政治家の「オタク系の人たち(嘲笑)」という台詞に萎えた。エンジニアやってると、サブカルチャーのパワーを毎日すごく感じる。 文化もロングテールですよ。僕は「与えられた文化」より…

JavaScript の this について

WEB+DB PRESS 編集の R たんから、僕の連載記事に読者様から質問が来ていると教えていただいたので、その内容を教えていただきました。 以下、内容を転載 「JavaScriptわくわく開発道」の記事に関して質問です。今回の内容で特に興味を持ったのはthisキーワ…

Shibuya.JS の資料「The next genaration of browsers」公開

Shibuya.JS の資料を公開します。 発表は時間がなくて飛ばし飛ばしになってしまいましてすみませんでした>< リンク 発表の資料 http://amachang.art-code.org/shibuyajs24/ ちなみに、資料のブラウザアイコンで黄色で囲ってあるやつは新しく実装されたとい…

JavaScript 1.8 を使ってフィボナッチ数列ジェネレータをワンライナーで書く!

出来たー! var fib = ((function f(i)(i<2)?1:f(i-1)+f(i-2))(i) for(i in {__iterator__:function()({a:0,next:function()this.a++})})); こんな感じ alert(fib.next()); // 1 alert(fib.next()); // 1 alert(fib.next()); // 2 alert(fib.next()); // 3 a…

マシン語やりたい!

C++

マシン語やりたいよおお! だって、普段パソコン使ってるけどパソコンのこと全然分かってないもん。 Windows も Mac も Linux も同じ CPU で動かせるのに、なんでバイナリが違うの?マシン語 = バイナリじゃない? ハードディスクを管理してるのは、OS なの…

JavaScript のワンライナーでカラーコード

RGB 値が分かってて #XXXXXX を計算するのめんどいなーと思って Firebug でやってみた。 '#' + [76, 84, 105].map(function(i){ return (i >> 4 ? '' : 0) + i.toString(16) }).join('') このくらいならワンライナーで書けて便利ー^^ 追記: 弾さんからト…

僕のパーサブームはまだまだ終わらない

すばらしいエントリが上がっています。 で、最近 XPath 処理系の実装が停滞してるんですけど。 飽きたんじゃなくて、Shibuya.JS と WEB+DB PRESS の〆が終わるまで待って><!!

忙しいとネットの話題についていけないなあ

Web 2.0 言うなの人にいろいろ言及されてたのね気が付かなかった。。。僕の意見はブクマコメントに書きました。 # それにしても。。。はてブのコメント欄は字数制限キツ過ぎる (;∀;)カナシイカナー

そろそろモバゲータウンについて一言いっとくか(タイトルはネタです)

なんか、以下のブログが喧嘩してるみたいですね http://d.hatena.ne.jp/tksmash/ ホームページを作る人のネタ帳 で、自習室さんは前からたまに読んでたんですが、ネタ帳さんの記事はあまり読んだことがなかったので、読んでみました。 で、モバゲー批判の記…

出張しぶや JS の CM

みんな来てね>< ちなみに、 s/仁志/仁史/ だったりw

お金

はじめに 起床時間 40 時間超えました。なんか、色々考えさせられることがあって寝れません。 いろいろ思うことがあったのです。 お金って何に使えばいいんだ? 僕はただ、漠然とお金は貯めて「まとまったお金」を自分のためではなく社会的な何か「良いこと…

Firebug で XPath を簡単に試す方法

適当に XPath を試したい時に 以下のようにすれば、簡単に XPath をためせます。 document.evaluate( '//div[@class="hoge"]', // XPath 式 document, // 基準となるノード(要素とか null, // 名前空間の解決方法(適当にやるときは null 6, // 取得する形…

あ。そういえば WEB+DB の記事

WEB+DB PRESS Vol.40 の記事で「JavaScript 入門」書きました 入門と言っても「善意の嘘」を一切省いて、変数とデータ、プロパティアクセス、演算と型変換、 this の意味、プロトタイプチェーン、スコープチェーン、 Activation オブジェクト、 Variable オ…

ノードの集合を「ドキュメント順」に高速に並べ替える。その1

ドキュメント順とは何か? ドキュメント順とは、簡単に言えば「XML のソース上の前にある順」のこと。 詳しくはこのへんを見てね。 XPath ではこの「ドキュメント順」という概念がよく登場する。 たとえば、ノードを文字列化するときは子孫テキストノードを…

XPath のパーサ書いた

ふー。XPath パーサが出来ましたよ>< わーい。 昨日中に作ろうとは思っていたけど>< もうすぐ朝の 6:00 か。 もう 18 時間くらいはずっとコード書いてたんだなあ。集中してて時間が過ぎるのが一瞬だったよ。 XPath パーサのデモ http://amachang.art-cod…

正規表現の XPath 字句解析その2

またまた XPath ネタです。 先日、XPath の字句解析をワンライナーで作ってみた。 - IT戦記で書いた正規表現の XPath 字句解析ですが、よく考えるといろいろおかしかった(不正な文字が無視されたりする)& id:otsune さんからコメントやブクマの突っ込みも…

JavaScript で XPath の構文木を考えてみる。

またまた パーサーブームの続編です。 昨日は数式のパーサーを作って、帰り道にいろいろ考えたんですけど、普通の言語で考えると構文木って結構複雑になるんじゃないかなあって思いました。 で、横断歩道で明日 XPath の構文木を考えてみようと思ったわけで…

XPath の字句解析をワンライナーで作ってみた。

ソースコード var expression = '/html/body/div/[attribute::class="hoge fuga piyo"]'; var tokens = expression.match(/"[^"]*"|'[^']*'|\d+(?:\.\d*)?|\.\d+|\*|\/\/|\/|\||\+|!=|<=|>=|<|>|=|\(|\)|\[|\]|\.\.|\.|@|,|::|-|(?![0-9-:])[\w-]+:\*|\$(?:(…