タグ

amachangに関するterurouのブックマーク (38)

  • for 文を setTimeout に変換する - IT戦記

    for 文で 100 項目とか 1000 項目とかあるテストケースを処理するとブラウザが固まる。 こんなダイアログが表示されます。 ということで for 文を setTimeout や setInterval に変換する事で定期的にブラウザに処理を戻すことができる。 // ここでは console.log のところでログを取ってますが // 通常は処理が入ります。 for (var i = 0; i < 3; i ++) { console.log('a' + i); } /* * 結果 * a0 * a1 * a2 */ これをまず while 文に変換 var i = 0; while (true) { if (!(i < 3)) break; console.log('a' + i); i ++; } /* * 結果 * a0 * a1 * a2 */ で、 setTimeout に

    for 文を setTimeout に変換する - IT戦記
  • 畑@サイボウズ・ラボ - サイボウズの新卒採用説明会

    サイボウズ・ラボではなく、サイボウズ社の話ですが、新卒向けの採用説明会を行っています。 説明会日程 おもしろいのは、タイプ別に説明会の内容を分けているところ。タイプの種類は以下の通りです。 文系職種希望の人 体育会系な人 ソフト開発希望の人 しかも、講師が「文系就職希望の人」とところは、 「講師 山田 理(サイボウズ(株) 取締役副社長)」 となっているのに、「体育会系の人」のところは、 「講師 山田 理(元 大阪外国語大学 体育会テニス部主将) 」 となっていたりします。 ちなみに、「ソフト開発希望の人」の回には、サイボウズ・ラボのamachang(天野 仁史)が講師となります。タイトルは「IT戦記:序章~IT戦士の作り方教えます。」です。新卒で就職活動を行われている方は、参加申し込みしてみてはいかがでしょうか。 参加申し込みフォームでは、「説明会日程」を先ほどのタイプ別に選ばないとい

    terurou
    terurou 2007/11/09
    ステキ広告塔っぷり。
  • usrb.in

    This domain name has been registered with Gandi.net. It is currently parked by the owner.

    terurou
    terurou 2007/10/12
    IEで透過PNGを使えるように
  • usrb.in

    This domain name has been registered with Gandi.net. It is currently parked by the owner.

    terurou
    terurou 2007/10/12
    同じような事やろうと半日ぐらいコード書いた後に存在に気が付いた。世間様の流れの9ヶ月遅れか…。
  • IT戦記 - 一行で IE の JavaScript を高速化する方法

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

    IT戦記 - 一行で IE の JavaScript を高速化する方法
    terurou
    terurou 2007/10/11
    もはや魔法の域。わけわからんなぁ
  • HTML 用の XPath 機能テストを書いた - IT戦記

    こんな感じ ここでテストできます(DOM 3 XPath 対応ブラウザでしか動きません) XPath Functional Test テストしてみると Safari 3.0.3 Public Beta はバグが多い Opera と Firefox はかなり優秀 要素名は大文字? あと、特に気になった点として、 name 関数の復帰値が Firefox では大文字となって Opera, Safari は小文字となる。 なので、クロスブラウザ的には以下のように or で繋いであげないといけない。めんどくさいなあ // <p>hoge</p> var result = document.evaluate('//*[name() = "P" or name() = "p"]', document, null, 7, null);

    HTML 用の XPath 機能テストを書いた - IT戦記
    terurou
    terurou 2007/10/09
    Safari 3.0.3 Public Betaの実装状況がちょっと微妙。
  • IE Crashr - IT戦記

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

    IE Crashr - IT戦記
  • IT戦記 - JavaScript の this について

    WEB+DB PRESS 編集の R たんから、僕の連載記事に読者様から質問が来ていると教えていただいたので、その内容を教えていただきました。 以下、内容を転載 「JavaScriptわくわく開発道」の記事に関して質問です。 今回の内容で特に興味を持ったのはthisキーワードの振る舞いでした。 thisキーワードの説明には、オブジェクト型の変数を別の変数にコピーしてから初期化すると、コピーした変数からメソッドを実行できなくなるという例が紹介されていました。 そこには「(1)の時点でobj0には{}が入っているため、hogeは未定義となってしまう」という説明があるのですが、誌面の都合上省略があるためか、thisキーワードを用いることで問題を回避できるという理由がなかなか理解できないでいます。 自分なりに考えてみたところ、内部的には以下のようなことが起きているのではないかと思いました。 (1)

    IT戦記 - JavaScript の this について
    terurou
    terurou 2007/09/17
    C言語な人がハマったのだろうか…?/やばい、実行コンテキストという言葉を知らんかった。なので、http://www2u.biglobe.ne.jp/~oz-07ams/prog/js-notes/scope.html
  • Firebug で XPath を簡単に試す方法 - IT戦記

    適当に XPath を試したい時に 以下のようにすれば、簡単に XPath をためせます。 document.evaluate( '//div[@class="hoge"]', // XPath 式 document, // 基準となるノード(要素とか null, // 名前空間の解決方法(適当にやるときは null 6, // 取得する形式の指定(適当にやるときは 6 null // 結果を再利用するかどうか(適当にやるときは null ); 簡単ですね。 document.evaluate、式、ドキュメント、ヌル、6、ヌル。 覚えましたか? でも、これを Firebug で実行するとこうなっちゃいます。 うーん。これではどの要素が選択されたかわかりません>< 不便ですねー。 というわけで、以下のブックマークレットを実行してあげてください。 javascript:void(XPathRe

    Firebug で XPath を簡単に試す方法 - IT戦記
    terurou
    terurou 2007/09/05
    「Firebug では length プロパティが数値を持って存在していると、自動で配列っぽい扱いをしてくれます。」
  • XPath のパーサ書いた - IT戦記

    ふー。XPath パーサが出来ましたよ>< わーい。 昨日中に作ろうとは思っていたけど>< もうすぐ朝の 6:00 か。 もう 18 時間くらいはずっとコード書いてたんだなあ。集中してて時間が過ぎるのが一瞬だったよ。 XPath パーサのデモ http://amachang.art-code.org/xpathparser/ このデモでは、テキストボックスに書かれた XPath を動的に解析していきます。 実際に XPath を書き足していくと「うにょうにょ」構文木が構築されていく様子が分かります。 ちょっとおもしろいです。 注意 とりあえず、実装することだけを目標に書いたので、高速化や最適化やリファクタリングなどは一切やっていません。 あと、 パーサを作りながら、いろいろ勉強になって、いろんなことブログにも書きたいんだけど>< でも、今日はもうヘロヘロ&手がプルプル&明日拡張勉強会なので

    XPath のパーサ書いた - IT戦記
  • JavaScript で XPath の構文木を考えてみる。 - IT戦記

    またまた パーサーブームの続編です。 昨日は数式のパーサーを作って、帰り道にいろいろ考えたんですけど、普通の言語で考えると構文木って結構複雑になるんじゃないかなあって思いました。 で、横断歩道で明日 XPath の構文木を考えてみようと思ったわけです。 では、仕様と見比べながら XPath の構文木の構造を考えてみましょう。 仕様読むの大嫌いなんですけど、がんばります。 仕様のリンク xpath cover page - W3C まず、冒頭に The primary syntactic construct in XPath is the expression. An expression matches the production Expr. http://www.w3.org/TR/xpath#section-Introduction とあるので、 XPath 全体は Expr である

    JavaScript で XPath の構文木を考えてみる。 - IT戦記
  • 正規表現の XPath 字句解析その2 - IT戦記

    またまた XPath ネタです。 先日、XPath の字句解析をワンライナーで作ってみた。 - IT戦記で書いた正規表現の XPath 字句解析ですが、よく考えるといろいろおかしかった(不正な文字が無視されたりする)& id:otsune さんからコメントやブクマの突っ込みもありまして、1から正規表現を勉強してから新しく書き直すことにしました。 正規表現の勉強方法 以下の二つの方法で勉強しました。 1.SpiderMonkey の正規表現デバッグオプションを使う SpiderMonkey をビルドするときに、以下のフラグを付けてビルドします。 $ make -f Makefile.ref "DEFINES=-DREGEXP_DEBUG -DDEBUG"こうすると正規表現がどういう風に実行されたかを調べることができます。 こんな感じ $ js js> 'foobar'.match(/o+/)

    正規表現の XPath 字句解析その2 - IT戦記
  • IT戦記 - JavaScript で数式パーサを書いてみた。

    背景 いままで、ちゃんとパーサというものを書いたことがなかったので勉強のためにアレコレ考えながらやってみようと思って、簡単な数式を木にするパーサを書いてみようと思ったのです>< 今回作るパーサの仕様 パースする数式の演算子は二項演算子 + - * / と単項演算子 + - だけ。 括弧とかは使わない。 演算の優先順位は * / のほうが + - より高い。つまり、 1 + 1 * 1 は 1 + (1 * 1) 単項演算子は二項演算子より優先順位が高い。つまり、 - 1 + 1 は (-1) + 1 で、作ってみた! ソースコード filter 関数とか使ってるので、 Firefox only です。 var parse = function(source) { var tokens = source.match(/[-+*/]|[^-+*/\s]+|\s+/g).filter(/^[^\

    IT戦記 - JavaScript で数式パーサを書いてみた。
    terurou
    terurou 2007/08/30
    正規表現で数式パーサ。
  • IT戦記 - XPath の字句解析をワンライナーで作ってみた。

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

    IT戦記 - XPath の字句解析をワンライナーで作ってみた。
    terurou
    terurou 2007/08/29
    正規表現でXPath。確かにこの正規表現を読む気は起きませんな…。
  • ロケーションバーに直入力するとブクマを見に行って補完してくれるコンポーネント作った - IT戦記

    今日徹夜ぎみで作ってみた でも 使ってみたら逆に不便だった>< 勉強になったからいいや。 破棄! もったいないので、今手元にあるソースを貼っときます このソースを Firefox インストールディレクトリ以下の components に入れると textbox 要素で autocomplete="delicious" が使えるようになります。 開発中のものなのでバグありまくりです。 ちなみに、僕が一日に書けるコードはちょうどこのくらいです↓ const Cc = Components.classes; const Ci = Components.interfaces; const Cr = Components.results; const CLASS_ID = Components.ID('{aa892eb4-ffbf-477d-9f9a-06c995ae9f85}'); const C

    ロケーションバーに直入力するとブクマを見に行って補完してくれるコンポーネント作った - IT戦記
    terurou
    terurou 2007/08/29
    ネタとしてはおもろいけど、不便だったので破棄らしい。
  • IT戦記 - XPath は実用に耐えうるかの考察と xpath.js

    背景>< Safari 3 系から DOM Level 3 XPath が実装されました!!!キタコレ!!! Firefox 2 系は DOM Level 3 XPath が実装されている。 Opera 9 系は DOM Level 3 XPath が実装されている。 XPath 1.0 in JavaScript • Cameron McCormack's blog (以下、 xpath.js)なるものがあり Internet Explorer 6 および 7 のような DOM Level 3 XPath を実装していないブラウザでもそれ相当の機能を実装することができる ということで、以下のことを試してみたい!! Safari, Firefox, Opera の XPath のパフォーマンスはどうか? xpath.js のパフォーマンスはどうか? xpath.js は XPath 1.0

    IT戦記 - XPath は実用に耐えうるかの考察と xpath.js
  • arguments に対して shift するための考察(をしていたらカッとなって配列変換のベンチマーク) - IT戦記

    JavaScript において可変引数を扱う場合 arguments オブジェクトを使います。 function func() { for (var i = 0; i < arguments.length; i ++) { alert(arguments[i]); } }; func(1,2,3) // 1,2,3 を順に表示 そして 可変引数を使うパターンとしては、 すべて可変引数 固定引数と可変引数 の二つに分けることができます。 すべて可変引数 引数が与えられた分だけ同じような処理を行うパターン function add() { for (var i = 0, r = 0; i < arguments.length; i ++) r += arguments[0]; return r; } var r = add(1, 2, 3, 4, 5); 固定引数と可変引数 最初のいくつかの引

    arguments に対して shift するための考察(をしていたらカッとなって配列変換のベンチマーク) - IT戦記
  • IT戦記 - IEを華麗に撃墜する一行

    はい! こんにちは!!!!! 今日は、偶然ブラクラ発見しちゃったから、それをお伝えしますね! これだよ! <script>document.createStyleSheet().addRule('html > body', 'display:block');</script> → サンプル (IEだとブラウザが固まった上にメモリ 1.5 GB くらいくっちゃうよ! 注意してね!) IE6とかIE6のコンポーネントブラウザだと確実に落ちちゃうみたいだね!IE7は落ちないけど! CSSStyleSheet オブジェクトに addRule で子孫セレクタをあてるとダメなかんじかな! ちなみに display:block の箇所はどんなプロパティでも落ちるよ! なにこれ!よくわかんないけど面白いね…! FirefoxとかOpera大好きっ子は、これをたくさんバラまいてIEのシェアをどんどん下げちゃ

    IT戦記 - IEを華麗に撃墜する一行