IT戦記

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

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

JavaScript で数式パーサを書いてみた。

背景 いままで、ちゃんとパーサというものを書いたことがなかったので勉強のためにアレコレ考えながらやってみようと思って、簡単な数式を木にするパーサを書いてみようと思ったのです>< 今回作るパーサの仕様 パースする数式の演算子は二項演算子 + - * /…

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 (以下…

ロケーションバーに直入力するとブクマを見に行って補完してくれるコンポーネント作った

今日徹夜ぎみで作ってみた でも 使ってみたら逆に不便だった>< 勉強になったからいいや。 破棄! もったいないので、今手元にあるソースを貼っときます このソースを Firefox インストールディレクトリ以下の components に入れると textbox 要素で autoco…

JavaScript < jQuery < Lisp ?

はじめに 僕は jQuery も Lisp も触ったことがないので、このエントリが言ってることは間違えてる可能性があります>< もし、「それ違うよ」ってのがあれば指摘してくれると嬉しいです>< そういえば 初めて dankogai さんと会ったときに「S 式とアセンブ…

久しぶりの Shibuya.JS

久しぶりの Shibuya.JS を開催するます>< 今日の夕方から募集なので、ぜひぜひ聞きにきてください。 僕は、クロスブラウザ系のお話をします。INSIDE Gecko では、あの最速でチュパカプラな主任研究員が登場します・・・!!これはすごい。 詳しくはこちら …

Re: ひとりとか

おかげさまで人脈は広くなってウェブな著名人の方と 仲良くさせていただいているわけですが それを自分の実力と勘違いしないでおこうと思う。 http://d.hatena.ne.jp/dropdb/20070821#p1 俺も勘違いしないようにしよう。 あとでもうちょっと書くかも。 http:…

arguments に対して shift するための考察(をしていたらカッとなって配列変換のベンチマーク)

JavaScript において可変引数を扱う場合 arguments オブジェクトを使います。 function func() { for (var i = 0; i < arguments.length; i ++) { alert(arguments[i]); } }; func(1,2,3) // 1,2,3 を順に表示 そして 可変引数を使うパターンとしては、 すべ…

はてなスターとはてなブックマークはいい組み合わせだと思う

なんか はてなスターとはてなブックマークはいい組み合わせだと思った。 そう思ったきっかけは このエントリを見ていて 誰もが最高級品を使える経済 - アンカテ ふむふむおもしろいなー。って思って。 じゃあ、みんなはどんな反応をしているんだろうと思って…

Pathtraq で 2ch コピペブログの人気エントリを作ってみた

リンク マウント アンマウント | パソコン豆知識 なにかと便利です コピペブログは 2ch をずっとヲチできないときに重宝してますが、数が多過ぎる&質がまちまちなので Pathtraq でまとめてみました。 Pathtraq でまとめておけば、それなりに質の高い(おも…

JavaScript 第5版 を読んでみたよ

今日の朝 オライリー・ジャパンから「サイ本最新作」こと「JavaScript 第5版」が送られてきてたのでガーっと読んでみたよ。弾さんより早く書評を書こうと必死だったのは内緒だよ。JavaScript 第5版作者: David Flanagan,村上列出版社/メーカー: オライリー・…

Math.floor を使わずに小数を整数にする

少数を整数にしたいような場合 たとえば、 0 - 9 のランダムな整数が欲しい場合 普通はこう書く var value = Math.floor(Math.random()*10); Math.floor を使わない場合はこう書く var value = ~~(Math.random()*10); 「~」は補数を求める単項演算子で、オペ…

IEを華麗に撃墜する一行

はい! こんにちは!!!!! 今日は、偶然ブラクラ発見しちゃったから、それをお伝えしますね!これだよ! <script>document.createStyleSheet().addRule('html > body', 'display:block');</script> → サンプル (IEだとブラウザが固まった上にメモリ 1.5 GB くらいくっちゃ…

配列を結合したり、配列を初期化したり

既出かもー 配列の結合 var array1 = [1, 2, 3]; var array2 = [4, 5, 6]; [].push.apply(array1, array2); alert(array1); // [1, 2, 3, 4, 5, 6] 3文目で空配列を使ってるのは書くのが短いからってだけ。 配列の初期化 function hoge() { var args = []; …

シンプルライフ

職場で僕の家の話しをしたら盛り上がったので、書く 僕の家には、画面付きの小さな DVD プレーヤーと、布団と、ゴミ箱以外の家具がない。冷蔵庫もコンロもパソコンも洗濯機も(共同のやつを使ってる)もちろん、ネットも契約してないし、テレビもない。家で…

アクセスログ共有サービス Pathtraq リリース!

Pathtraq リリース! ついに、待ちに待った kazuhooku さん謹製の Pathtraq がリリースされました! サイトはこちら http://pathtraq.com/ Pathtraq とは アクセスログを共有サービスです。 Pathtraq を使うためには、まず、ブラウザに Pathtraq の拡張機能…

LL 魂

いよいよ 明日ですね!こんなにも資料が出来てないと明日というのが信じられません! 遠足の前日とは違う意味で眠れません>< でも、諦めたらそこで試合終了です。安西せんせい。 LL 魂に来るハテナーは |☆+| をクリック! スター!スター!会場で探します…

HTML5 のバリデーションを行ってくれるサービスがある

まだ Tech Preview 版ですが WHATWG の HTML5 のバリデーションを行ってくれるサービスを発見しました。 http://html5.validator.nu/ 新しいものを追いかけたい人にはいい気がします。 僕もその一人です。

body の overflow: hidden が変

以下のようなコードがあって ... <html> ... <body> <div></div> </body> </html> body が overflow hidden で幅固定で div が横に伸びていったら div は body を「はみ出ない」と思うんだ。 でも、ブラウザによってははみ出てしまう。 Opera 9 はみ出る Safari 3 はみ出る Firefox 2 はみ出ない I…

xmllint で XHTML をバリデーション

XHTML を書くとき ちゃんと DOCTYPE 宣言で正しい DTD が示されていれば、 xmllint で簡単にバリデーションが出来ます。 $ xmllint --valid --noout hoge.html便利です。 バリデーションが通らなかった場合は、根拠となる DTD が表示されるので勉強にもなり…

style.cssText の使い処に関する考察

cssText って知ってますか? cssText っていいうのは CSSRule オブジェクトとか CSSStyleDeclaration が持っている情報を css ファイルに書く形式の文字列にしてくれる機能です。 乱暴に言ってしまえば、 css 系のオブジェクトが持っている innerHTML みたい…

はてなスターのマイページで、その人のエントリーが見れたらいいのに

また、はてなスターのネタか! ごめんって>< 自分のエントリーに★が付いてたときの話し。 自分のエントリーについてる★をクリックすると http://s.hatena.ne.jp/だれか/ みたいなページに飛ぶんだけど、 そのページに飛んだ気分としては、その人のことを知…

はてなスターの好きなところ

僕がはてなスターが好きなところ 自分のはてなスターのページを見て。 http://s.hatena.ne.jp/amachang/ そのページの Friends を見て。 「あ。まだあの人 Friends じゃないや。あの人が面白いと思う記事を書きこう。」 ってたまに思っちゃうところがすごく…

そろそろ、はてなスターについてちょこっといっとくか

僕は はてなスター大好き! でも、メッセージの送信機能が Mac OSX + Firefox の環境を考慮してない>< 問題は Enter キーのイベントハンドリング。 Windows の IME は変換して決定するときの Enter キーのイベントを Firefox に渡さないんだけど、 Mac OSX…

収支概算を公表します:[Shibuya.JS Technical Talk]

ネタですよ>< http://cssnite.jp/archives/post_746.php なんか、収支概算が流行っているようなので、 Shibuya.JS の収支を非公式に概算してみた。 チケット収入 0 140 0 協賛費 - - 0 収入小計 - - 0 会場費 - - 0 人件費(撮影費、モデレータ、講師料) …

どう書く?.org に JavaScripter が少ない・・・。

ほら JavaScript http://ja.doukaku.org/lang/javascript/ Python http://ja.doukaku.org/lang/python/ Ruby http://ja.doukaku.org/lang/ruby/ Perl http://ja.doukaku.org/lang/perl/ Java http://ja.doukaku.org/lang/java/ PHP http://ja.doukaku.org/la…

IE で removeChild した要素はどこへいくか?

普通のブラウザだと parent.removeChild(child); alert(child.parentNode); // null なぜか、 IE だと DocumentFragment が生成されている。 parent.removeChild(child); alert(child.parentNode); // [object] alert(child.parentNode.nodeName); // #docum…

Opera の CSSStyleSheet.insertRule はちょっとバグってる

以下のコード var element = document.createElement('style'); element.appendChild(document.createTextNode('')); document.getElementsByTagName('head')[0].appendChild(element); var sheet = element.sheet; // 以下のように CSSStyleSheet の先頭に…

Safari で CSSStyleSheet オブジェクトを生成する方法

今まで Safari では出来ないと思っていました var element = document.createElement('style'); document.getElementsByTagName('head')[0].appendChild(element); var sheet = element.sheet; alert(sheet); // null こんな感じで null になってしまうので…

そのオブジェクトが enum 可能なプロパティを持っているか

こうやってやってるけど、なんかいい方法ないかなあ for (var i in obj) { var hasProp = true; break }

document.createStyleSheet で動的に CSS を生成

今まで var element = document.createElement('style'); document.getElementsByTagName('head')[0].appendChild(element); if (ie) { var sheet = element.styleSheet; } else { var sheet = element.sheet; } みたいにやっていた。 ところが dojo のソー…