
はじめに JavaScriptは簡単な言語のようでいて、実は奥が深く、初心者にとってなかなかその本質がわかりにくい言語です。ここでは、JavaScriptの言語的エッセンスを理解できるようなものをFAQ形式で書いてみました。ご意見や誤り等を指摘してもらえたら嬉しいです。 なお、JavaScriptの標準化であるECMAScriptは、今年末にEdition 5 がリリースされる予定です。このFAQは、現在のバージョンであるEdition 3をベースにしています。 ECMAScriptって何ですか? ECMAはEuropean Computer Manufacturer Association(欧州電子計算機工業会)の略で、標準化団体です。NetscapeのJavaScriptとMicrosoftのJScriptをベースに、純粋なプログラム言語部分を抽出したものをECMAで標準化したスクリプ
Webブラウザ上で使えるプログラミング言語は限られたものだけだ。JavaScript、ActionScript、Javaアプレット、ActiveXなどだろうか。それ以外のRubyやPerl、Python、PHPといった言語はサーバサイドで使うしかなかった。 HTMLのソース。確かにRubyだ。もちろん実行できる しかしその可能性が広がるかも知れない。HTMLにRubyやPython、そしてXAMLといった言語がそのまま書け、そして実行できるのだ。 今回紹介するオープンソース・ソフトウェアはGestalt、Webブラウザ上でRuby/Python/XAMLを実行可能にするライブラリだ。 種明かしをすれば、使っているのはSilverlightだ。Silverlightは言わずと知れたマイクロソフトの技術であり、.NET系だ。そしてGestaltはIronRubyやIronPythonといった.
ウェブっ子の間では Google Chrome の JS 処理系である V8 祭りが絶賛開催中らしい. いつもは出遅れる私もたまにはやんやしたいと思っていろいろ読んでみたものの, VM に食傷気味な自分に気付いた. けれど, そうは言っても祭りは別腹. 一通り騒いでみます. 販促マンガ や 資料 によれば, V8 は以下のような特徴を備えている. hidden class transition と fast property access generational accurate GC accurate だから incremental GC もできる オブジェクトの rellocation はするけど handle は使わず参照元書き換え 中間表現のインタプリタなしの native code 生成. instruction cache コードをみたところ, incremental GC
4/22追記: Mach-O builder も実装したので Intel Mac でも遊べる。 JQuery っぽい文法で、ブックマークレットとして簡単に遊べるアセンブラが欲しいと思って勢いで書いてみた (デモ)。とりあえず以下のサンプルが動くくらいにしか実装してない。 var buf = new Buffer(); with (new Assembler(buf)) { call($('get_addr')); $$('get_addr'); pop(ecx); add($('str - get_addr'), ecx); mov($('sizeof(str)'), edx); xor(ebx, ebx); mov(4, eax); // write(2) int(0x80); mov(1, eax); int(0x80); // _exit(2) $$('str'); $string(
JSON(http://www.json.org/)データはけっこうよく使うので、何度か話題にしたことがあります(例えば「もう一度、ちゃんとJSON入門」)。でも、JSONには型情報/メタ情報が付けられないのがとても不満で、JSON改なんてもんを考えたこともありました。(後でXIONに改名) JSONデータに対するスキーマ定義の仕様がかたまりつつあることを、ごく最近になって知りました。 http://json-schema.org/ JSON本体はRFC 4627になっていますが、JSONスキーマの標準化のステータスは、あまりハッキリとは分かりません(僕には)。http://groups.google.com/group/json-schema?pli=1 を覗き見した感じでは、現状ワーキングドラフトという位置付けらしいです。 なかなか面白いし役に立ちそうなので紹介します。ただし、僕にとっ
はじめに JavaScript の標準仕様である ECMAScript 3rd Edition (ECMAScript 3.0) が 9 年ぶりにバージョンアップしようとしています。 実は、これまでも様々なバージョンアップの案が上がっては消え、また上がっては消えていました。 しかし、今回のバージョンアップには今までと違う点が一つだけあります。 それは、現時点での主要な ECMAScript インタプリタ(JavaScript の実行エンジン)を作っている全団体(以下を参照)がこの仕様に同意したことです。 Mozilla (Firefox) Apple (Safari) Microsoft (Internet Explorer) Opera (Opera) Adobe (Flash) Yahoo (Yahoo Widget) Google この同意は JavaScript のこれからを大きく
要素が挿入された瞬間を取得する 今までは出来ないと思っていたのですが、今日いろいろ試していて出来る方法が分かりました。 ですので、ちょっと紹介したいと思います。今のところアイデアなので、実用性は?です。 方法 HTML に以下の style 要素を挿入することで実現することができます。 <style type="text/css"> * { display: expression(function() { if (!this.__mark) { this.__mark = true; alert('inserted node: ' + this.tagName); } return ''; }.apply(this)); } </style> 実際に例を見てみましょう http://amachang.art-code.org/ieexpression/000.html <!DOCTYPE
上を行くかどうかは知りませんが :-p Ajaxはクライアントの都合でサーバーに通信を仕掛けるpull型の通信ができ、Cometはサーバーが好きなタイミングでクライアントへデータを送りつけるpush型の通信ができるわけですが、新たに双方向の通信ができる技術を開発しました。 具体的には、JavaScriptとサーバーの間で双方向のRPCができます。すなわち、サーバーからクライアント側のJavaScriptのメソッドが呼べるし、逆にクライアント側からサーバー側のメソッドを呼ぶこともできます。 サーバー側で call("addMessage", "Hello!") とやると、JavaScript側の function addMessage(msg) { ... } という関数が呼ばれたりします。 この技術を使って、試しにチャットシステムを作ってみました > デモ (ソースコード)*1 リアルタイ
外部においたWebサーバをメンテナンスしようと思ったら、SSHを使って行うのが一般的だ。だが、ターミナルも使えないPCやPDAなどからではどうやって操作を行えば良いだろう。 ログイン設定画面 危険は承知の上で、このような方法もある。Webベースでコンソールを利用するのだ。 今回紹介するオープンソース・ソフトウェアはWeb Console、Webベースのコンソールだ。 Web Consoleは予めログイン設定を行っておくことで、任意に利用されることを防いでいる。Ajaxを使って、ほぼ通常のコンソール操作は可能だ。findなど、画面に出力が返ってくるものは、全ての出力が終わるまで待たされ、一気に表示される。 ログイン直後の画面 sudoが使えそうな感じもするが、利用できない。suは無理とのこと。実行履歴に対応し、Ctrl+aやCtrl+eで移動、Ctrl+kで切り取ることだってできる(貼付けは
「往年の名作「スーパーマリオブラザーズ」、あの濃い内容でわずか40キロバイト」に載っていたわずか565バイトのテトリス。文字数にして551文字。79文字*7行のプログラミングで、テトリスが動きます。 以下のソースコードをメモ帳に貼り付けて、htmlで保存すればテトリスが動きます。 <body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y() {C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/ A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1 if(e=!e){if(f|B){fo
curl.jsは、先日エントリーした「画像に鏡面効果を与えるスクリプト」と同じ作者が作成した、画像にページをめくったような効果を出すスクリプトです。 curl.js (with IE 6/7 support) 画像にページをめくったような効果を与えるには、curl.jsを外部スクリプトとして記述し、画像にclass指定をします。 classには、デフォルトの「curl」、サイズ変更ができる「isize」、色を変更できる「icolor」、影をつける「ishadow」があり、数値を入れ微調整をすることも可能です。 マウスのホバーやクリックなどのアクションにも対応しており、その場合は「cvi_curl_lib.js」を使用します。
以前、id:naoyaさんがはてなブックマーク棚卸しというのを書いていて、自分も年末なり何かしらの区切りで今までブックマークしたページを読み返してみようと思っていたのだけど、どうもはてなブックマークのページをカチカチめくってやる気になれず、結局自動で見せてくれるツールを作った。 Hateview 例えばid:clonedだとこんな感じ。過去から順にブックマークを表示して、クリックするとwindow.openでそのページを開きつつスライドショーは一時停止する。右上についてるコントローラは多分想像通りの挙動なので適当に。 元々自分用に作ったものだけれど、公開されているブックマークならどのidでも見れるようにしたので、どうぞご利用ください。
Prototype.jsでiGoogleっぽいポータルな仕組みを作れるJSライブラリ「Xilinus」 2007年08月31日- var portal = new Xilinus.Portal("#page div")Xilinus : Prototype Portal Class I have always wanted to create a Class to handle in a easy way portal page like netvibes. After having tried to used Sortable of script.aculo.us, I decided to write my own Class. Prototype.jsでiGoogleっぽいポータルな仕組みを作れるJSライブラリ「Xilinus」。 Xilinus を使って、次のような、ドラッグ&ドロ
Yahoo!が出したJavaScript圧縮ツール「YUI Compressor」 2007年08月16日- Julien Lecomte’s Blog Introducing the YUI Compressor The YUI Compressor is a new JavaScript minifier. Yahoo!が出したJavaScript圧縮ツール「YUI Compressor」。 Javaで書かれたコマンドラインツールで、次のようにコマンドラインで使うことが可能です。 java -jar yuicompressor-1.0.jar [-h, --help] [--warn] [--nomunge] [--charset character-set] [-o outfile] infile Dojo Compressorより圧縮率が高く、JSMinよりも安全に圧縮できるという
超簡単にソートやリサイズ、その場編集が可能なテーブルを作成できるJavaScriptライブラリ「TableKit」 2007年05月31日- TableKit TableKit is a collection of HTML table enhancements using the Prototype framework. 超簡単にソートやリサイズ、その場編集が可能なテーブルを作成できるJavaScriptライブラリ「TableKit」。 次のようなExcel風テーブルが簡単に作れます。 どれぐらい簡単か、というと、必要なJavaScriptを読み込んだあと、table の class に次のように値を指定するだけ。 <table class="sortable resizable editable"> 最低幅の指定など、動作に関するカスタマイズも豊富なオプションによって指定可能です。 こ
gmailでメールを書くとき、添付するファイルを選んでからしばらくすると、いつの間にか添付ファイルがアップロードされています。 添付するファイルを選ぶと、はじめファイル名が表示されていたのが 自動的にアップロードされて、名前とファイルサイズが表示されています! 実は、あまり名前も聞かなくなった Google Page Creator がリリースされたときにいちばんびっくりしたのはページの右下にこのgmailの自動アップロードとよく似たしくみがあったことでした。で、さっそく解析してマネしてみたことがあります。今回はgmailでその仕組みを見てみます。 ちなみにその Google Page Creator には、ログインすると右下にこんな ファイルをアップロードするのに使う部分があります。 gmailの場合、メールが自動保存されるタイミングでアップロードされているかんじでしたが、こっちのはBr
Prototype.jsとScript.aculo.usを圧縮して32.5KBにした「ProtoPacked v2.13」 2007年05月25日- Protoculous : Prototype & Scriptaculous lightweight ! Protoculous is a javascript file which contains Prototype and Scriptaculous together compressed. Prototype.jsとScript.aculo.usを圧縮して32.5KBにした「ProtoPacked v2.13」。 Prototype1.5.1とScript.aculo.us1.7.1_beta をパックにしたパッケージ。 ノーマルのPrototype1.5.1 だけでも 93 KB もあるので、かなりのダイエットに成功しているようで
上の画面のように、サイトを訪問したときに、外部サイトを表示させるスクリプトのサンプルです。 広告やお知らせなんかに使えるのではないでしょうか。 Dynamic Drive DHTML Scripts- Interstitial Content Box からのお届けです。 訪問するとデモが見れます。 詳細は以下に ステップ1)ダウンロード まずは画面中央ぐらいにある上記リンクから各種ファイルをダウンロードしてください。そして同一フォルダに保存してください。 カスタマイズ interstitial.jsを開いて簡単な編集を var interstitialBox={ //1) list of files on server to randomly pick from and display displayfiles: ['samplecontent.htm', 'samplecontent2.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く