JavaScriptで型推論付き静的型付け言語のインタプリタを作成しました。これは、サイボウズ・ラボユースのメンバーとして開発をさせていただいたものです。ライセンスは MIT License です。 Ibis Interpreter GitHub 型推論の実装方法を解説するため、メジャーであり気軽に試せるJavaScriptを使って型推論器を書きました。 文法の簡単な説明は Ibis クイックチュートリアル 実装の詳細については JavaScript による型推論器の実装 をご覧ください。
JavaScriptで型推論付き静的型付け言語のインタプリタを作成しました。これは、サイボウズ・ラボユースのメンバーとして開発をさせていただいたものです。ライセンスは MIT License です。 Ibis Interpreter GitHub 型推論の実装方法を解説するため、メジャーであり気軽に試せるJavaScriptを使って型推論器を書きました。 文法の簡単な説明は Ibis クイックチュートリアル 実装の詳細については JavaScript による型推論器の実装 をご覧ください。
Restrict Mode http://restrictmode.org/ JavaScriptの演算子の扱いに対するstrict modeという名目で作成されたRestrict modeというものが公開されていました。これはJavaScriptの演算子の扱いは暗黙な変換などもあり、意図通りではない場合も存在してしまっている。それに対するJavaScript(ECMAscript)のサブセットのようなものです。 The case for restrict mode - The JSMentors JavaScript Discussion Group | Google グループ http://groups.google.com/group/jsmentors/browse_thread/thread/d552623443f70df9/539021aa0c4c8bfa JSMentorsに
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Firefox 4 がリリースされて話題となっている昨今ですが、我らが Opera も新しい Opera Mobile のテクノロジー・プレビューをこっそり公開しました。 Android 版の Opera Mobile をベースに WHATWG の Stream API や W3C HTML5 の Orientation Events を実装したものです。 とくに Stream API は画期的で、 HTML5 video タグを使って内蔵カメラの画像をリアルタイムで Web ページ上に表示できます。これが実用化されればカメラ撮影や AR など、これまでネイティブアプリの独壇場だった分野が Web アプリケーションでも実現できます。 Web 開発者としては非常に興味をそそられますね。 さっそく手元の Nexus One にインストールして試してみましたので、簡単にレポートします。 インスト
Methods of the handler object that are invoked by manipulating the corresponding proxy are called traps. The full proxy handler API additionally traps calls to new ES5 built-in methods such as Object.keys and Object.getOwnPropertyDescriptor. Fortunately it is not always necessary to implement the full API to build useful proxies, as demonstrated in the following section. A simple profiler Let's co
マクラ このまえ会社でちょっと特殊なJavaScript replを作ったのだけど、もうちょっと汎用的なものを作ってみたかったのでNodeで書いたっていうお話。Nodeで書くこと自体にあまり深い意味はないんですが、Socket.IO使えばcross-browser/cross-originでのpushが簡単だから、ということで。 Install Replica - http://github.com/zentooo/Replica npm install replicaでインストールできます。ちなみにNodeについてはv0.5.0-pre、ブラウザについてはFirefox4.0 RC2, Chrome(10.0.648.151) / Chrome-dev(11.0.696.14) しかテストしてないです。多分、その他の環境でも動くんじゃないでしょうか。 npmにゃんでのインストールがずっこ
Popcorn.jsは動画と別なコンテンツを連携させるHTML5ビデオフレームワーク。 Popcorn.jsはHTML5/JavaScript製のオープンソース・ソフトウェア。Webサービスの説明動画や、勉強会の内容など動画をWebサイトに掲載するケースが増えている。そんな時には動画以外の資料も一緒に掲載したいと思うはずだ。 デモ ニコニコ動画は動画とコメントと一緒に閲覧できるが、同じように動画と別なコンテンツを一緒に掲載したり連携させたいと思う事はないだろうか。それを実現するライブラリとしてPopcorn.jsを紹介しよう。 Popcorn.jsはHTML5動画フレームワークで、動画と任意のコンテンツを連携させるライブラリだ。例えば動画の横にスライドを載せ、指定時間になったら切り替えると言った具合だ。手で時間を進めたりした場合もコンテンツが切り替わってくれる。 外部の様々な情報を表示して
やりたいことはタイトルのとおり. 要はオーバーロードしたいお... ※※※※ こういう願いは既出であること間違いないっ, ※※※※ よってここに書いてること, あるいは ※※※※ さらにエレガントな事がどっかに書かれてるかもしれないっ!!! とりあえずECMA-262を読んでみる. [p.74] 11.6.1 The Addition operator(+) 読むのがめんどくさいが, 要はReturn the String that hogehogeか, ToNumber(左辺)とToNumber(右辺)の和を返すことしかできない. オーバーロードとかできねーーーー (配列を返せない) んじゃ, 汚いけど, String介してやればいいか...??? > Array.prototype.toString = function(){return this.join(',') + ','} [
PhantomJS ってコマンドラインツールがありまして、 JavaScript で DOM いじくったりなんかいろいろできるんですが、 QtWebKit ベースなのが気に食わないんです。 Mac で使うぶんには Cocoa と WebKit.framework でどうにかなるだろと。 というわけで Cocoa に移植してみました:no title mattn さんが webkitgtk+ で実装されたものが SpecterJS って名前だったのでこっちは GespenstJS にしてみました。ドイツゴです。 Xcode でビルドすると gespenstjs ってバイナリができるので phantomjs と同じように使えます。 あるいはビルド済みのバイナリをどうぞ。
この記事は賞味期限切れです。(更新から1年が経過しています) 「Modernizr」や「html5.js」等、 モダンな環境の為の便利なスクリプトは多々ありますが、 「headjs」はそんな彼らの仕事を一気に引き受けてくれる働き者のスクリプトです。 使い方 Head JS :: The only script in your HEAD 謳い文句はhead要素に読み込む唯一のスクリプト ダウンロードして読み込むだけ。おしまい。 <script type="text/javascript" src="head.js"></script> その多彩な機能 環境の判別 CSS3のプロパティの対応状況、画面のサイズ、ブラウザなどの情報を Modernizrと同じ手法でHTML要素のクラスに出力してくれます。 こんな感じに… <html lang="ja" id="test-page" class="
こんにちは。毎年花粉症になりかけている飯塚です。 最近のNode.jsの普及などによってサーバサイドJavaScript界隈が盛り上がっています。 そんなホットなJavaScriptをラクにかつエレガントに書くためのCoffeeScriptという言語をチュートリアル風に紹介します。 何かしらのライブラリを自分で書く程度にJavaScriptで開発している人は絶対に使ったほうがいいと思います。 JavaScriptを知っていれば1-2時間程度で十分駆使できるようになります。 (2011/6/28:@m_satyr様にご指摘頂いた箇所を修正しました。) 目次 CoffeeScriptとは? インストール Hello World 構文 関数 変数展開 Objectの生成 ループ 存在チェック ヒアドキュメント thisのバインド クラス 無名関数 {var} Tips ?の使い分け 存在チェック
別関数から呼び出し元の関数の引数を変更するコード(not "use strict")の実験中に発見。 Firefox4やChromeではそれぞれの4番目の値が test_1 では "aaa", test_2 では "updated" になっていることに注目。 test_1, test_2 の違いは最後に arguments[0] を参照するかどうか。 ECMAScript 5th の実装による影響だと思うがどういうことなのかさっぱり。 function test_1 (arg) { p("arg: " + arg); p("updateArg() === arg: " + (updateArg() === arg)); p("<strong>arg: " + arg + "</strong>"); } function test_2 (arg) { p("arg: " + arg); p(
どこかで元ネタを見たんやけど、忘れた・・・ console.logとかdebugって開発してるとき便利ですけど、納品時に消すのを忘れたりして、うっかりconsoleに unko とか表示されたら死ぬしかないですよね。 消したやつ納品して後で改修とかになったとき、前のconsoleは当然ないわけで、面倒くさいなと思って。 下記のコードをソースファイルの頭に貼り付けておいて 頭の「window.console.debugMode」を「true」にすればconsole.logが動きます。それだけです。これなら、元のコードも変更せず、debugModeを切り替えるだけで楽々デバッグ。 // デバグモードの切り替え window.console.debugMode = false; // console.logのプチ整形 window.console._log = window.console.lo
Wandering about JavaScript Testing - Mar 8, 2011 at Test.js, presented by Shibuya.js
まずはtypeof演算子について。JavaScript Gardenというウェブページがありまして。こういう一文がありまして。 The typeof operator (together with instanceof) is probably the biggest design flaw of JavaScript, as it is near of being completely broken. http://bonsaiden.github.com/JavaScript-Garden/#typeof 訳)http://efcl.info/adiary/Javascript/JavaScriptGarden#k95p17 要するにtypeof演算子は「ヒャッハーtypeof演算子ぶっ壊れてるぜー」ってことらしい。理由が下記の表。 [表1] Value Class Type - "f
昨日shibuya.jsいって、PhantomJSが熱そうだったので入れてみました。PhantomJSはQtWebkitを使ってコマンドラインからGUIが存在しないブラウザを動かすもので、これを使えばJavaScriptのテストを手軽にコマンドラインから動かすことができます。実際にWebkitで動くのでCanvasでもAjaxでもなんでもいけるという優れもの。 インストール インストールは以下にのってるのでこの通りにやってさくっと終了。とくにはまりどころなし。 http://code.google.com/p/phantomjs/wiki/BuildInstructions#MacOSX テストしてみる こういうファイルを用意して test.html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>
現在、Shibuya.js が開催中です!Ustream で http://www.ustream.tv/channel/shibuyajs にて放送されています。これから、このブログの内容をしゃべります! 今回「テスト」がテーマなうえ、Shibuya.js は「役に立つ話担当」「ネタ担当」に分かれていて、僕は「ネタ担当」なんですが(笑)、いつも通りネタです。でも、遠い未来の役立つネタです! きっかけは、id:t-wada さんに、GUIの自動テスト関係の質問をしたら、凄くいいことを教えてもらいました。 全てのテストはサンプリングテストである (少し表現違ったらごめんなさい)話の流れで、部屋を移動しなくていけなくて、たしか、それしか話ができなかったのですが、要するに、サンプリングテストである以上、全ての入力パターンをテストすることは不可能であり、できることは、限られたコストの中で、効率よく
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く