タグ

ブックマーク / amachang.hatenablog.com (17)

  • JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記

    JavaScript-XPath とは JavaScript-XPath は、 DOM 3 XPath を実装していないブラウザに対して、実用的な速度で動作する DOM 3 XPath のエンジンを追加します。 一言で乱暴に言ってしまえば、どのブラウザでも document.evaluate って関数で XPath 使えるようになるよ!ってことです。 以下が公式サイトになります。 http://coderepos.org/share/wiki/JavaScript-XPath DOM 3 XPath ってなんなの!? めっちゃ簡単(で、ちょっとだけ適当)なDOM 3 XPath の説明をします><。 JavaScript でよく使う document.getElementById や document.getElementsByTagName って関数ありますよね? DOM 3 XPath

    JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記
  • エンジニアがモテる - IT戦記

    最近は女子エンジニアが増えている(?) ギークなお姉さんは好きですか http://d.hatena.ne.jp/dropdb/searchdiary?word=%2a%5bRuby%5d 女子高生ぷろぐらまーなお☆のブログ 女子中生ぷろぐらまーなお弥のブログ 女子小生ぷろぐらまーなお・やざわのブログ ので、 こっち方面から、IT業界の人気を復活させるというのはどうだろう

    エンジニアがモテる - IT戦記
  • 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 を高速化する方法
  • 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 の字句解析をワンライナーで作ってみた。
  • 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戦記
  • XPath のパーサ書いた - IT戦記

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

    XPath のパーサ書いた - IT戦記
    japo99
    japo99 2007/10/01
  • IT戦記 - JavaScript の this について

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

    IT戦記 - JavaScript の this について
  • mixi 新デザインでグリモン作ったり、スクレイピングしたり、しやすくなった - IT戦記

    今回の mixi のデザインのポイントは 全ページで prototype.js の 1.5.0_rc0 が読み込まれている 新しいデザインのページはテーブルレイアウトじゃない 新しいデザインのページは id class 付きまくり いろいろ試してみた prototype.js が読み込まれているか確認する alert(Prototype.Version); // 1.5.0_rc0 ページ内に id が何個あるか alert($$('*[id]').length); // トップページに 52 個! ページ内に class が何個あるか alert($$('*[class]').length) // トップページに 239 個! おおすごい! 試しに日記一覧ページから日記の URL を抽出するワンライナー $$('#bodyMainAreaMain dt a').filter(/view_

    mixi 新デザインでグリモン作ったり、スクレイピングしたり、しやすくなった - IT戦記
  • 出張しぶや JS の CM - IT戦記

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

    出張しぶや JS の CM - IT戦記
  • 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
  • Windows 版 Safari で JavaScript Console を表示する方法 - IT戦記

    ちなみに Mac OSX 版では ~/Library/Preferences/com.apple.Safari.plist に IncludeDebugMenu を 1 として追加すれば Debug メニューが表示されます。 $ defaults write com.apple.Safari IncludeDebugMenu 1 なので Windows 版でも同じだろうと思って C:\Program Files\Safari\Safari.resources\Defaults.plistをエディタで開いてみると XML だったので <key>IncludeDebugMenu</key><true/> や <key>IncludeDebugMenu</key><integer>1</integer> や <key>IncludeDebugMenu</key><string>1</string

    Windows 版 Safari で JavaScript Console を表示する方法 - IT戦記
  • Mac 2 日目の僕でも出来た! XCode を使った Firefox デバッギング - IT戦記

    ちょっと釣りっぽいタイトルでごめんなさいw でも、当に簡単に出来るので皆様もお試しあれ。あと、 Mac まだよくわかってないのですごい回りくどいことやってるかもしれないので、そのときは指摘してくだしあ>< じゃあ、いってみよう! 1. Firefox のソース持ってくる! $ mkdir ~/source $ cd ~/source $ export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot $ cvs login pass:anonymous $ cvs co mozilla/client.mk mozilla/browser/config $ cd ~/source/mozilla $ make -f client.mk pull_all MOZ_CO_PROJECT=browserとやるとソースがダーっとダ

    Mac 2 日目の僕でも出来た! XCode を使った Firefox デバッギング - IT戦記
  • そろそろサイボウズ・ラボについて一言いっとくか - IT戦記

    入社しました。 よろしくお願いいたします。 抱負 新しくスタートするということで抱負を考えてみました。 遅刻しない 今まで以上の窮地を経験する ガイアックス入社時のがむしゃらっぷり 知識を盗む とにかく形を作って出すこと 初心を忘れない 執筆活動は控えめに ブログ書きまくる 新しい友達を年間 100 人は作る C/C++ をもう一回やってみたい 今、思いついたものを書いてみた。当に頑張っていきたい。 その他 名刺の肩書きは「IT戦士」にしてもらえそうなのでうれしいいいい!><

    そろそろサイボウズ・ラボについて一言いっとくか - IT戦記
    japo99
    japo99 2007/06/01
    おめでとおめでと!
  • document.title の罠 - IT戦記

    このエントリは一部間違っています。 こちらで訂正いたしました。 http://d.hatena.ne.jp/amachang/20070523/1179928332 いや大したことじゃないんですけど かなりハマったのでメモしときます。 通常ページのタイトルは以下で取れる var title = document.title; alert(title); // タイトルを表示 しかし、コンテンツ内に <div id="title"></div> のように id が title のものがあると var title = document.title; alert(title); // [object HTMLDivElement] となってしまう。 これでかなりはまった まとめ 不特定のページから title を取るような場合は多少めんどくさいけど document.getElementsByT

    document.title の罠 - IT戦記
    japo99
    japo99 2007/05/23
    なんかのライブラリが影響してるわけじゃないのか
  • 勉強会資料-IT戦記

    勉強会の趣旨 nitoyon さんから amachang への一通のメールから始まりました。 5/16-18にお仕事で東京にいく予定です。 (中略) 19, 20 も予定がないので、なんか面白いネタ(勉強会?)が あれば参加してみたいものです。 というわけで、じゃあ、 nitoyon さんの興味のありそうな分野の人を集めようということで、今回の勉強会が決定しました。 発表と各資料のリンク 随時リンクしていきます。資料を公開したかたはトラックバックやコメントをくれるとうれしいです! tocy – haXe remoting でチャチャッとチャット ll_koba_ll – ActionScriptでサーバーとごにょごにょ(資料) nitoyon – RIAと呼ばれるものまとめ(資料) ZIGOROu – Canvas Mario Bros. cho44 – Ruby, RubyCocoa,

    勉強会資料-IT戦記
    japo99
    japo99 2007/05/20
    すごかったらしい
  • IT戦記 - del.icio.us から はてブにクロスポストする Greasemonkey

    はてブから del.icio.us はあったけど逆はなかったので 作ってみました。 del.icio.us 使いの人はこの機会にはてブにもブクマ公開をしてみはいかがでしょう^^ 使いかた。 これをいれるとブックマーク追加画面に 「save with hatena」 ボタンが出来るのでフォームを埋めたあとクリックしてください。 del.icio.us の note がはてブのコメント、 tags がタグになります。 ダウンロードはこちら http://usrb.in/aj/lomochang.user.js

    IT戦記 - del.icio.us から はてブにクロスポストする Greasemonkey
  • 1