
Sproutitは18日(米国時間)、SproutCoreの最新版となるSproutCore 0.9.10を公開した。もともと予定されていなかったリリースだが、コントリビュートされたパッチが優れたものであったことからSproutCore 1.0の前に今回のバージョンがリリースされることになった。正式なメジャーリリース前であるだけにまだ開発者の注目を集めていないかもしれないSproutCoreだが、場合によっては今後JavaScriptフレームワーク競争の一翼をになう存在になるかもしれない。 SproutCore - CocoaのパワーとRailsの開発性をWebアプリへ SproutCoreはJavaScriptで開発されたRIA Webアプリケーション開発向けフレームワーク。Cocoaに触発されて開発されたフレームワークで、少量のソースコードで価値の高いアプリケーションを開発できるように
更新履歴 2008-06-20: 公開 js2-mode をおとなしくさせる js2-mode は Emacs で JavaScript を書くための major-mode です。 外部の JavaScript 処理系無しに (flymake のように) 文法上のエラーを表示するなど、 かなり意欲的な機能を備えています。 しかしその一方で、js2-mode のデフォルトの挙動はかなり独特です。 ここでは、それらの挙動を他の major-mode とそろえる方法を説明します。 インストール js2-mode はファイル単体で配布されていますので、それを load-path の通った場所に置きます。 % wget http://js2-mode.googlecode.com/files/js2-20080616a.el % mv js2-20080616a.el /PATH/TO/js2.el
本気でやるならonclick属性は避けてライブラリを活用すべき - 帰ってきたHolyGrailとHoryGrailの区別がつかない日記 を読んで,思うところあって書いてみました(決してカウンターアーティクルではない)。 むかしむかし JavaScript を触っていた むかしむかしに書かれた JavaScript の本で勉強している/した 人向けに。大元記事(そろそろ本気で学びませんか? | Think IT(シンクイット))の想定読者に近いかなと思います。よって以下は JavaScript の初学者にはまったくおすすめできない(余計な知識がついてしまう)です。 Step 1: はじめのいっぽ ボタンを押したらメッセージボックスが出現する HTML を書いてみます。 <html><body> <script type="text/javascript"> function ShowMes
Adobe Systemsの「Flash」技術を回避する方法として、Appleはオープンソースのソリューションを考えていると言えるかもしれない。 RoughlyDrafted Magazineは、米国時間6月9日〜13日に開催された「Worldwide Developers Conference(WWDC)2008」のセッションについて話してもいいという開発者を見つけることができた。機密とされてはいるが、この手の話はどうしても露見してしまうものだ。13日のセッションの1つは「SproutCore」と呼ばれる技術に関するものだったらしい。これによってAppleの開発フレームワーク「Cocoa」が、ウェブ開発者たちの心をとらえられるようになるかもしれない。 現在ウェブアプリの存在は大きくなっており、開発者は作るアプリケーションの性能と魅力を改善する方法をたえず探している。となればたいていの場合
インタフェースはとても重要だ。技術的に優れていても、インタフェースが悪いと触ってもらえない。逆に技術的にそれほどすごいものではなくとも、インタフェースが優れていると流行ったりすることもある。 Welcomeページ 技術とデザイン、両立できれば言うことはない。優れたインタフェースを手軽に作るために、このライブラリを使ってみることをお勧めする。 今回紹介するオープンソース・ソフトウェアはSproutCore、リッチなインタフェースを実現するJavaScriptライブラリだ。 SproutCoreはAppleの提供するサービスである、.Macの次期バージョンMobileMeでも一部で採用されているJavaScriptライブラリだ。JavaScriptながら、gemを使ってインストールするのが特徴だ。 ターミナル上でコードを生成する Rubyを使ってWebサーバを立ち上げることができ、ポート番号4
Tom Trenka氏は以前SitePenにおいてString Performance: an Analysisというタイトルのもとで興味深いドキュメントを公開した。同ドキュメントはdojox.string.Builderのパフォーマンスを改善することを目的として行われた分析の結果をまとめたもので、JavaScriptプログラミングには欠かせない興味深い結論が導き出されていた。 これまでのテクニックに従えば、文字列は一旦配列に分解してから操作をおこない、最後に文字列に戻した方が処理が高速になると考えられてきた。以前のIEであればその貧弱な文字列処理性能やGCの動作の影響でそれは事実だったが、最近のWebブラウザでは改善されており配列に分解するよりも"+="で連結した方が処理が高速になることが明らかになった。これがString Performance: an Analysisでの主な結論だ。
一年程前、N-Styles氏がsiteにコナミコマンドを実装してから、コナミコマンドの実装が一部で流行しました。 ブームは終わったかに見えましたが、ここ一週間ぐらいのうちにブームが再燃したように感じます。 まあ、私が偶然連続して見たのかもしれませんが...。 一時、はてなブックマークのHotEntry(通称:ホッテントリ)に「IT 勉強会カレンダー」があがりましたが、この検索サイトである「IT 勉強会カレンダー検索」にもコナミコマンドが実装されています。 var setKonamiCommand= function(handler){ var addEvent=function(element,eventName,handler){ if(element.attachEvent){ element.attachEvent("on"+eventName,handler); }else if(
思った JavaScript はすぐに実行してみましょう! ブラウザの URL 入力欄に javascript:(function() { /*実行したいコードを書く*/ })()FireBug を使ってる人は、コンソール開いて実行したいコードを書く。 たとえばこんなことができます。 これらの例は僕が日頃使っているものです。 グローバルで使える関数を列挙する(Firefox Only) FireBug用 for(var n in window) if(typeof window[n]=='function')console.log(n); URL用 javascript:(function(){var b='';for(var n in window)if(typeof window[n]=='function')b+=n+"\n";alert(b)})() Object.prototyp
クラスを定義する方法です。考え付くだけでも、これだけたくさんの方法があります。やっぱり、 JavaScript って柔軟であり複雑な言語ですね。 ちなみに、以下のすべての例はこのクラスを定義しています。 ちなみに、僕は一番下の書き方ですね。 皆さんはどのようにプログラミングしていますか? プロトタイプを使わない。クロージャを使う。 // プロトタイプを使わない。 // クロージャを使う。 function Item(price) { this.showPrice = function() { alert(price); }; } プロトタイプを使わない。クロージャを使わない。 // プロトタイプを使わない。 // クロージャを使わない。 function Item(price) { this.price = price; this.showPrice = function() { aler
おそらく、JavaScript を使いこなす肝は setInterval、setTimeout、イベントによる関数の実行を理解することだと思う 例えば 次のコードの結果を考えたとき document.write("hoge\n"); setTimeout(function(){ document.write("fuga\n") }, 1000); document.write("piyo\n");普通に JavaScript を使いこなしてる人なら、hoge → piyo と表示して、 1 秒後に fuga が表示されるな。って思うはずなんです。 でも、 JavaScript を始めたばっかりの人の中には、 hoge と表示したあと 1 秒後に fuga → piyo と表示するな。って思ってる人が非常に多い。(経験的に) 何故か? たぶん、どのサイトの setTimeout の説明を見て
WEB+DB PRESS 編集の R たんから、僕の連載記事に読者様から質問が来ていると教えていただいたので、その内容を教えていただきました。 以下、内容を転載 「JavaScriptわくわく開発道」の記事に関して質問です。 今回の内容で特に興味を持ったのはthisキーワードの振る舞いでした。 thisキーワードの説明には、オブジェクト型の変数を別の変数にコピーしてから初期化すると、コピーした変数からメソッドを実行できなくなるという例が紹介されていました。 そこには「(1)の時点でobj0には{}が入っているため、hogeは未定義となってしまう」という説明があるのですが、誌面の都合上省略があるためか、thisキーワードを用いることで問題を回避できるという理由がなかなか理解できないでいます。 自分なりに考えてみたところ、内部的には以下のようなことが起きているのではないかと思いました。 (1)
社内の精鋭エンジニアを中心に定期的に勉強会をすることになった。んで、 JavaScript の講義は僕がやることになった。 資料を社内だけでとどめておくのはもったいないので、ここに公開していきます。社内の人も社外の人も読んでください。 講義の内容は基本的にソース嫁。ソースレビュー形式。 ※ターゲットは JavaScript は書いたことない、オブジェクト指向言語プログラマ。 Section 00 Prototype.js の前に JavaScript のオブジェクトの概要・・・ オブジェクトを作ってみる。 var object = {};オブジェクトにメソッドとかプロパティを追加してみる。 var object = { field: 'IT戦士', method: function() { alert('hello ' + this.field); } }; object.method()
JavaScriptはプロトタイプOO言語ということで、インスタンスコピーによる継承とカスタマイズを用いるのが素直な方法なのだと思う。JavaScriptでは、単純にインスタンスを丸々コピーする方法では効率が悪いということで、 prototype による非対称スコープチェーンを用いる方法と、prototypeへのプロパティのコピーを用いる方法がよく用いられている。 しかしながら、サイトによって良い悪いがばらばらで、結局これらの方法のどれを使うのが良いのかよく分からなかったので、どういう違いがあるのか調べてみた。 prototypeスコープチェーンを操作 参考文書: http://faces.bascule.co.jp/inheritance.html プログラマのためのJavaScript (11):継承についてもう少し - 檜山正幸のキマイラ飼育記 (はてなBlog) [鏡] C/C++
翻訳(thanks to JavaScript++かも日記) 原文:Introducing JSON JSON(JavaScript Object Notation)は、軽量のデータ交換フォーマットです。人間にとって読み書きが容易で、マシンにとっても簡単にパースや生成を行なえる形式です。JavaScriptプログラミング言語(ECMA-262標準第3版 1999年12月)の一部をベースに作られています。JSONは完全に言語から独立したテキスト形式ですが、C、C++、C#、Java、JavaScript、Perl、Python、その他多くのCファミリーの言語を使用するプログラマにとっては、馴染み深い規約が使われています。これらの性質が、JSONを理想的なデータ交換言語にしています。 JSONは2つの構造を基にしています。 名前/値のペアの集まり。様々な言語で、これはオブジェクト、レコード、構
prototype.js使っていてうれしいことの一つにbindが使えるというのがある。$()とかAjaxのクロスブラウザ対策とかもいいけれど、thisをbindできるのは大きなメリットだと思う。bindがないとどういう時に苦労するかというと、以下のような場面。 var Foo = function(name) { this.name = name; } Foo.prototype.talk = function(message) { alert(this.name + ": " + message); } function inScope() { var foo = new Foo("foo"); setTimeout('foo.talk("Hello World!")', 0); } inScope(); これは実行できない。なぜかというとsetTimeoutに渡しているfooという変数
id:brazil さんのブックマークで知ったのだが、 Firebugには、便利な組み込み関数が定義されているようだ。 一通りさわってみたのだが、 $x() で 任意のXPath要素が取得できるのとかに感動した。 そして、やっぱりちゃんとドキュメント読むべきだなぁと思った。 XPathから要素を取得する。 $x("/html/body/h1"); -> 要素の配列が返ってくる。 selector名から要素を取得する。(getElementsByTagName) $$("h1") -> 要素の配列 所要時間測定 console#time, console#timeEnd time ~ timeEnd で囲んだ部分の所要時間を 計測することが出来るみたいで、 以下のような関数にまとめると良さそうだ。 function bench( callback ) { var uniq_id = Date
以下の一行をすべての 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 -
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く