IT戦記

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

JavaScript

js-users.jp

js-users.jp は id:shi3z さんがとったみたいですね(たぶん)! 何か、 js user として出来ることがあれば協力したいです><

駄文 - 世界の Shibuya.JS

昨日、 JUI の懇親会のあと、 jQuery UI の作者の Paul さんと川崎さんと遅くまで飲んでたんだけど、 Shibuya.JS のことを「もちろん、知ってますよ! Orto すごいですよね」って言ってて嬉しかった 今までのみんなのプレゼン資料とか、いろいろ紹介しておい…

onclick 属性問題について

本気でやるならonclick属性は避けてライブラリを活用すべき - 帰ってきたHolyGrailとHoryGrailの区別がつかない日記 に関して この先、 HTML に onclick と書いても石を投げられないように書いておく>< 僕も onclick 属性がダメだと思っていた時代もありま…

【訂正】 kmyacc と bison の違い

http://www.kt.rim.or.jp/~kbk/zakkicho/08/zakkicho0805a.html#D20080508-7を見て、ちゃんと kmyacc を調べてみました。bison の error トークンで行き詰まる - IT戦記とか書いてましたが、完全に僕の勘違いでした。 申し訳ありませんでした。 教えていただ…

ブラウザでお絵描きプログラミング! Processing.js 登場!

はじめに 今日、 jQuery の作者として有名な John Resig さんが Processing.js という JavaScript のライブラリを公開しました。 John Resig - Processing.js このライブラリを使うと、比較的簡単に以下のようなグラフィックスやアニメーションを書くことが…

ちょっと yacc っぽいもの作ってみる

残り時間 1.5 時間 たぶん出来ない。 定義 終端は、 /^/ で囲んで、 非終端は文字列で表現する。 var y = { add: [ ['mul'], ['add', /^\+/, 'mul'], ['add', /^-/, 'mul'] ], mul: [ ['una'], ['mul', /^\*/, 'una'], ['mul', /\//, 'una'] ], una:[ ['pri'…

駄文 - いつも先にブクマしているハテナーさん

海外の HTML とか CSS とか JS の記事で興味深い記事(特に仕様の一次ソース)があると b:id:vantguarde さんがいつも先にブックマークしてる。すごい。要お気に入り どんな人か気になるんだけど、自己紹介とか見つからないな><

WebKit の CSS の字句解析部分を JavaScript に移植しました

これを JS に移植しました。 http://svn.webkit.org/repository/webkit/trunk/WebCore/css/tokenizer.flex ポイント それなりに汎用的な Flex みたいなものを作ったので、その部分は CSS 以外にも使えると思います。 あと、定義を文字列で書かずに正規表現オ…

Perl で arguments->callee ではなくて arguments.callee と書けるようにした

ここを参考にして http://d.hatena.ne.jp/tokuhirom/20080418/1208503547 use overload を使ってみた package Acme::JS::Arguments; use strict; use warnings; use Devel::Caller qw(caller_args); use Exporter; our @ISA = qw(Exporter); our @EXPORT = q…

CSS の文字列を JS の文字列に

こんな感じかな。 JSCSS.CSSValueConverter = { _string: function(str) { return str.replace(/\\([0-9a-fA-F]{1,6}[ \t\r\n\f]?|\r\n|[ \t\r\n\f]|.)/g, function(str, t) { if (t.match(/^[0-9a-fA-F]{1,6}[ \t\r\n\f]?$/)) { return String.fromCharCode…

Acme::JS::Arguments 作った

ネタは はじめての coderepos で arguments::callee 初体験 - TAKESAKOのはてな出張所 のパクリで、でも XS 書けないので中で Devel::Caller 使ってます。 arguments で引数配列のリファレンスが帰ってくる arguments->callee で自分自身のコードリファレン…

Perl で JS の arguments.callee 的なことしようと思ってハマった

JavaScript では arguments.callee を使うと以下のように無名関数の再帰が書ける (function(c) { if (c == undeinfed) c = 10; console.log(c); if (c--) arguments.callee(c); }); Perl で そういうことをやる方法を知らないので do { my $c = 10; my $call…

DOM 2 Style の JavaScript オブジェクト

CSS のデータを扱う JavaScript を書きたくて作った いろいろと使えそうなので晒しておきます まだ、インタフェースだけですよ>< var JSCSS = {}; // http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html#StyleSheets-StyleSheet JSCSS.StyleSheet =…

Re: 一晩で覚えるjQueryの逆引き基礎サンプル7つ*ホームページを作る人のネタ帳

最後の解決法を悩んでるようなので、僕の回答。 入力補助の情報は HTML より、 JavaScript で持ったほうがいいかもしれません var data = { title1: ["hoge", "fuga", "piyo"], title2: ["hoge", "fuga", "piyo"], title3: ["hoge", "fuga", "piyo"] }; $(fu…

駄文 - JavaScript と「クラス」と「コンストラクタ」と「プロトタイプ」って言葉の定義が難しいよなあ

このエントリを見てて思ったんですけど JavaScript関数の実体は、Functionクラスのオブジェクトです。今回はFunctionクラスの機能を網羅的に解説します。 JavaScriptの関数オブジェクトを完璧に理解する - builder by ZDNet Japan 「Function クラスのオブジ…

MacPorts の SpiderMonkey と CPAN の JavaScript::SpiderMonkey を一緒に入れる

MacPorts で SpiderMonkey を入れた場合は、以下の位置にライブラリファイルとインクルードファイルがあります。 /opt/local/lib/* /opt/local/include/*なので、 JavaScript::SpiderMonkey をインストールする際には、 Makefile.PL の 38 行目あたりを以下…

IE8 に実装された getCascatedCSSSelectors 関数とは何か

4 月 1 日ですね! getCascadedCSSSelectors 関数とは getCascadedCSSSelectors 関数とは、 HTML5 の 4-1. the default views 定義されているインタフェースで、要素にあたっている CSS セレクタを配列で取得するための関数です。 window オブジェクト(グロ…

Webkit が acid3 test を pass!

これはすごい 本家の発表 WebKit achieves Acid3 100/100 in public build | WebKit Nightly Build で試せます。 WebKit Build Archives | WebKit

Safari 3.1 に実装された「Client-side database storage (SQL API)」とは何か?

はじめに Safari 3.1 には Client-side database storage (SQL API とも呼ばれています。)という新しい仕様が実装されました。 というわけで、この新しい API について色々調べたことを簡単にまとめておきます。 Client-side database storage が使えるブ…

Google Gears の機能のおさらいと HTML5「Client-side DB」の相互運用を考える。Client-side DB に未来はあるか?

さきほど Client-side database storage について書きましたが そこで、 Client-side database storage は今は Safari からしか使うことができません しかし、 Google Gears を使ってすべてのブラウザに実装することは可能だと思います。(すでにある?) そ…

MacPorts に SpiderMonkey があった

SpiderMonkey とは SpiderMonkey とは Firefox にも搭載されていいる JavaScript エンジンで、 インストールすると js コマンドを使えるようになって、 コンソールでいろいろ js を試せるようになります。 こんな感じ ~ $ js js> (function fib(n) { return …

origin という言葉

scheme と host と port のセットのことを origin って言うんですね。 Same origin policiy の名前ってそこからきてたのか http://www.example.com:80/hoge/fugaだと http が scheme www.example.com が host 80 が port http://www.example.com:80 が orgin…

Apple 謹製の JavaScript デバッガ「Drosera」が便利な件

Drosera とは 1000speakers 後のハッカソンで 山岸くん が「Drosera っていうアプリがある!」って発見して、教えてもらいました。 Drosera は WebKit 用の JavaScript デバッガで、 Windows XP でも Mac でも動くみたいです。 WebKit Build Archives | WebK…

DOM Range のテストケースを書きました

W3C で DOM Range という便利なオブジェクトが勧告されています。 http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html DOM Range って何? DOM Range とは、 DOM ツリーの任意の範囲を表すための仕様です。 DOM Range を使うと、「ここからここ…

JavaScript-XPath を IE8 に対応させました。

JavaScript-XPath をバージョンアップしました 久しぶりのバージョンアップです。よろしくお願いします>< JavaScript-XPath とは JavaScript で書かれた XPath の実装です 以下からダウンロードできます。 http://coderepos.org/share/wiki/JavaScript-XPa…

gauche.night の LT の資料を公開します

時間がないので感想は簡単に gauche.night はすごかったです>< 控え室での会話や、発表内容は、レベルが高くて自分の未熟さを改めて実感しました>< もっとがんばれ、俺! Scheme 使いは現代のジェダイの騎士なんじゃないかと思った! なんと、 shiro さ…

IE8 で実装された Selectors API とは何か?

はじめに IE8 には Selectors API という新しい仕様が実装されました。 ということで、今後 DOM 操作 API の主流になるであろう Selectors API についてまとめておきます。 Selectors API が使えるブラウザ 2008 年 3 月 6 日現在の一覧 WebKit Build Archiv…

IE8 速攻徹底レビュー

こ、この日記、徐々に増えている・・・ というわけで IE8 の新機能、発見したら即更新 window.sessionStorage window.globalStorage キター!!!!! See Also HTML Standard See Also DOM Storage - DOM | MDN hashchange イベントに対応(HTML5 のメーリ…

JavaScript1.7 の yield を使って、非同期処理を同期処理のように書く方法

経緯 id:kazuhooku さんが一年前にやってたことですが Kazuho@Cybozu Labs: JavaScript/1.7 で協調的マルチスレッド 今日やっと挙動が理解できたのと、 Weave のソースを読んでいたらこのテクニックをバリバリ使っていて「ちょwwおまwww」ってなったので、自…

Developers Summit 2008 の資料を公開します。

話のメインは オブジェクト指向です。 というよりも、僕が JavaScript のオブジェクト指向をこう理解している。という話です。 リンク http://amachang.art-code.org/devsum2008/ 言い訳 口頭で説明した個所も多いのですが、楽しんでいただけたら嬉しいです。