ページ

ラベル Ajax の投稿を表示しています。 すべての投稿を表示
ラベル Ajax の投稿を表示しています。 すべての投稿を表示

2007年5月1日火曜日

Silverlight 1.0 beta と 1.1 alpha

4/30~5/2 の日程で MIX07 がラスベガスで開催されていますが、そこで Silverlight (コードネーム "WPF/E") のいろいろが発表されたようです。

まず、Silverlight の新しいサイトが公開されています。
http://silverlight.net/

また、MSDN Silverlight Dev Center もあります。
http://msdn2.microsoft.com/en-us/silverlight/

これらを見るとわかるように同時に 1.0 beta と 1.1 alpha が公開されました。

Silverlight 1.0 beta
今まで Silverlight の最新版は Feb 2007 CTP でした (Feb 2007 CTP の公開されたときはまだ "WPF/E" という名前でしたが)。これの beta 版が今回リリースされた 1.0 beta です。CTP→1.0 beta の変更点は What's New in Silverlight (1.0 Beta and 1.1 Alpha)? にまとめられているようです。ざっと見たところ 「細かいところはいろいろと変わっている」 という感じでしょうか。

また、1.0 beta は "Go-Live" ライセンスとなったそうです。
あと、ダウンロードするときに 「以下のライセンスを読んで "I Accept" をクリックしろ」 と出てきます(今のところ英文です)。このライセンスに 「2007年 8月 1日まで有効」 とあります。ライセンス的に日付を切っているだけなのか、実際に時限装置が内蔵されているのかはわかりませんが、意外と短いです。少なくともそれまでには次の beta、もしくは、正式版がリリースされるってことなんだと思います。

Silverlight 1.1 alpha
発表的にはこちらの方がインパクトは大きいですが、Managed Code の実行をサポートした Silverlight の alpha 版です。
Silverlight 1.0 ではプログラムの部分は JavaScript で記述します。これが JavaScript だけではなく C#、Visual Basic などでも記述できるようになります。また、IronPython、IronRuby などでも記述できるようです。

私自身まだよくわかってませんが、フルバージョンの .NET Framework とはまったく異なったランタイムによって実行されるようです。"mini-CLR" といった書き方がされていることもあるようです。
さらに Dynamic Language Runtime (DLR) というダイナミックな言語 (Python とか Ruby とか) のためのランタイムもあわせて発表されました。DLR は CLR の上に乗っかるという位置づけになるようです。この DLR が Silverlight の "mini-CLR" にも含まれているので C#、Visual Basic だけでなく Python や Ruby も使えるようになるということみたいです。
Silverlight の "mini-CLR" の BCL (ベースクラスライブラリ) ですが、どの程度のクラスが用意されているのかよくわかりません。1.1 alpha SDK もダウンロードしてみたんですが、クラスリファレンスが見当たりません。Quick Start なんかを見てるみると XmlReader なんかを使ってたりもするんで、Web 上で使いそうなものはある程度は用意されているみたいなんですが。

2007年4月18日水曜日

Google Office

ZDNet.com : 「Google presentation app on the way」 より

今 Web 2.0 Expo というのをやってるそうですが、そこで Google CEO が Google Docs and Spreadsheets にプレゼンテーションアプリケーションを加えることをアナウンスしたそうです。

ちなみに Google Docs and Spreadsheets というのは http://docs.google.com/ のことですね。すでに Word (みたいなもの) と Excel (みたいなもの) がブラウザ上で動いてます。ちょっと試してみたことがある程度ですが、日本語も使えるようです。また、Google へのセーブだけでなく、.doc や .xls での保存もできますし、.pdf での保存もできます。
これに PowerPoint (みたいなもの) が加わるというわけですね。

すごいなぁ、Google。

2006年12月26日火曜日

JavaScript で LINQ 風のことをやる

Script and LINQ? より

いやぁ、おもしろいです。「JavaScript で LINQ 風の書き方なんて簡単にできるんじゃね?」 という話が紹介されています。以下、理解したことを自分なりにまとめておきます。 

まず JSON を使えば ※1 Anonymous Type と Initializer みたいなことができます。
(※1 「JSON を使えば」 っていうのもなんか変な言い方ですね。「JSON で使っている記法を使えば」 と言ったらいいのかな?)

// JavaScript
var person = { Name: "Hoge Taro", Age: 20, Tel: "111-1111" };

これだけで C# の

// C#
class Person
{
public string Name;
public int Age;
public string Tel;
}
Person person = new Person();
person.Name = "Hoge Taro";
person.Age = 20;
person.Tel = "111-1111";

とほとんど同じような意味になるわけです。
そして、配列だって

// JavaScript
var persons = [
{ Name: "Hoge Taro", Age: 20, Tel: "111-1111" },
{ Name: "Hoge Jiro", Age: 18, Tel: "222-2222" },
{ Name: "Hoge Saburo", Age: 15, Tel: "333-3333" }
];

と書けます。


さて、次に

// C#
var result =
from p in persons
where p.Age <= 18
select new {
Name = p.Name,
Age = p.Age
};

といういかにも LINQ という書き方についてです。
さすがに標準の JavaScript でこういう書き方はできません。しかし、

// JavaScript
var result =
persons.filter(function(p) { return p.Age <= 18; })
.map(function(p) {
return { Name: p.Name, Age: p.Age };
});

と書けます。LINQ を Extension Method を呼び出す形で書いたときとよく似てますね。
JavaScript では配列は Array クラスですが、上記の filter とか map とかは Array クラスのメソッドです。どうやら Mozilla ではこういったメソッドがサポートされているようです。しかし、IE では 「サポートされていないメソッド」 となってエラーになってしまいます。


「んじゃあ、使えないじゃん」 となるんですが、もともと JavaScript では実行時にメソッドとかを足していってクラス (みたいなもの) を作るわけです。ならば、Array クラスに filter とか map とかを自分で足してやればいいわけですね。


というわけで、以下のコードは IE6 でちゃんと動きました。
ちなみに、以下の filter とか map とかは一から自分で書いたわけじゃありません。Script# に含まれている sscorlib.js から拝借したものです (ちょっとだけ変更してますが)。
いやぁ、JavaScript ってすごいですね。この記事を読んだときは感動しちゃいました。

<script>
Array.prototype.filter = function(filter_function)
{
var result = [];
for (var i = 0; i < this.length; ++i)
{
if (filter_function(this[i]))
{
result[result.length] = this[i];
}
}
return result;
}

Array.prototype.map = function(map_function)
{
var result = [];
for (var i = 0; i < this.length; ++i)
{
result[result.length] = map_function(this[i]);
}
return result;
}

var persons = [
{ Name: "Hoge Taro", Age: 20, Tel: "111-1111" },
{ Name: "Hoge Jiro", Age: 18, Tel: "222-2222" },
{ Name: "Hoge Saburo", Age: 15, Tel: "333-3333" }
];

var result =
persons.filter(function(p) { return p.Age <= 18; })
.map(function(p) {
return { Name: p.Name, Age: p.Age };
});

for (var i = 0; i < result.length; ++i)
{
alert(result[i].Name + "," + result[i].Age);
}
</script>

2006年12月22日金曜日

Dojo でベクタグラフィックス

Create cross browser vector graphics with Dojo より

新しい dojo.gfx ライブラリは SVG、Canvas、VML の違いなんかを抽象化してくれるクロスブラウザなベクタグラフィックスライブラリだそうです。上記記事からリンクされている creating cross browser vector graphics with Dojo にはもう少し詳しい解説とサンプルなんかがあります。すごいなぁ。

2006年12月19日火曜日

Don't Click It

http://dontclick.it

すごいドメイン名ですね。Don't Click It (クリックするな)
勇気を持ってw アクセスしてみると全面に Flush を貼り付けたサイトが表示されます。英語で 「このインターフェースの中にボタンはないよ。代わりに違う方法でコンテンツをナビゲートするんだ。すぐになれるよ」 みたいなことが書いてあります (かなり適当な訳)。で、"click here" のところをクリックすると、、、

そっから先はいっさいクリックが必要ない世界です。使い方はさわってればすぐにわかると思います。私はものすご~くおもしろいと思いました。
ちょっとすると突然アンケートが表示されます。"Do you miss the click within this interface?" この miss は 「失敗する」 じゃなくて 「不自由する。さびしく思う」 の方じゃないかと思うんですがどうでしょう?
  「このインターフェースの中にクリックがなくてさびしい?」
    "YES - I miss to click buttons a lot!" (はい、ボタンをクリックできなくてさびしいよ)
    "NO - I am happy not clicking" (いいえ、クリックが無くてめっちゃハッピー)
こんな感じ?もちろんこのアンケートもクリックなしでサブミットできます。

ちなみに、クリックすると怒られます。Accidental か Intentional か (アクシデントか意図的か) を聞かれますので答えてあげてください。もちろん、クリックなしで。

このサイトのことは Don't Click It で知りました。

Live Search キャンペーン

Local Search Japan Promotion より

Live Search キャンペーン なんてやってたんですね。

2006年12月13日水曜日

Calc 5 - 3D グラフも描けるオンライン電卓

Calc 5: Online 3D Calculator より

(さっきの CodeProject の記事も http://ajaxian.com/ で紹介されていて知りました)

3D グラフも描けるオンライン電卓 Calc 5 が紹介されています。右側の "Samples" のところを適当にクリックして OK ボタンを押すと結果が表示されます。

で、当然 「グラフはどうやって描いてるの?」 というのが気になりますw もちろん、ポストバックして gif に描いてるなんてことはありません (それじゃ、なんにもおもしろくないしw)。IE の Developer Toolbar で見てみると <div> を配置して描いてるってわけでもないようです。
http://www.calc5.com/help.html の一番下によると canvas を使っているそうです。げっ、そんなものがあったんだ。まったく知らなかった。
  Mozilla Developer Center の解説(日本語)
  http://developer.mozilla.org/ja/docs/Drawing_Graphics_with_Canvas
ただ、IE は canvas をサポートしてないのでエミュレータを使わなくちゃいけなかった、とあります。検索してみると ExplorerCanvas などがあるようです (Calc 5 がこれを使っているのかどうかは知りません)。

ラインを描画する

Drawing lines in Mozilla based browsers and the Internet Explorer より

ブレゼンハムのアルゴリズムをもちいてラインを描画する方法が紹介されています。ディスプレイのようにピクセルで構成されているデバイスにラインを描画する場合、単に y = ax + b みたいな式を使うとあまりきれいな線になりません。そんなときに使うといいのがブレゼンハムのアルゴリズムです。上記リンク先は英語ですが、このアルゴリズムを日本語で解説しているサイトもたくさんあると思います。私は DDA (Digital Differential Analyzer: デジタル微分解析) って覚えてたんだけど、DDA が総称的で、ブレゼンハムが具体的なアルゴリズム名ってことでいいのかな?

いや、まぁ、そんなことはどうでもいいんですよ。上記の記事で気になったのは 「HTML 上の JavaScript で setPixel とかっていったいどこに何を描いてるの?」 っていうこと。ソースを見てみると setPixel は <div style="position:absolute;" /> を配置してるだけ。ピクセルは background-color で色をつけた <div> なんですね。なるほどなぁ。

2006年12月8日金曜日

ASP.NET AJAX のアクセシビリティ

ScreenReader Accessibility and Partial Updates in ASP.Net AJAX より

ASP.NET AJAX に限らず AJAX 全般に言えることですが、アクセシビリティってどうなんだろう?というのはちょっと気になってました。アクセシビリティにもいろいろあると思いますが、ここでは目の不自由な方が読み上げソフトを使って Web を閲覧するような場合を想定しています。

私はアクセシビリティについて詳しいわけじゃありませんが、それでも、HTML は読み上げやすい (読み上げに向いている) もんじゃないかと思うわけです。見てくれを CSS に追い出して、文章の構造だけをマークアップしてあれば読み上げ時のノイズも減るでしょうし。それが AJAX で動的にグリグリ変わっちゃったりしたら読み上げようがなくなっちゃうんじゃないかと思うわけですよ。

で、上記の記事ですが、現状の ASP.NET AJAX の UpdatePanel は市場にあるポピュラーなスクリーンリーダーソフトで完璧に読み上げることはできない、ということだそうです。で、部分的な更新 (ポストバック) を行うページにドロップしとくだけでスクリーンリーダーへのアクセシビリティを提供してくれるコントロールを書いてみたそうです。I am posting the control herewith とありますからそのうちに公開されるんじゃないかと思います。

ちゃんとこういうことも考えているっていうのはうれしいですね。(上記記事にも、多くの政府機関から要求もされている、とありますから考えざるを得ないっていう面もあるんでしょうが)

もちろん、読み上げられればそれでいいというわけじゃなく、操作するという面からのアクセシビリティも考える必要はあると思います。WPF アプリなんかでも気をつける必要はありそうですね。さっき紹介した Healthcare なんかでもマウスなし・キーボードオンリーで操作してみようと思ったらほとんどできませんでした(^^; タブキーでフォーカス移動したらフォーカスがどこにあるのかさっぱりわからなくなっちゃうし、ボタンにショートカットキーも表示されてないし。まぁ、このデモは Tablet PC みたいなデバイスで使うことを想定しているような感じがありますから、これはこれでいいのかも知れませんが。

2006年12月7日木曜日

Script# 0.2.0.0

WPF/E and Script#?より

Script# が 0.2.0.0 になってます。
Script# っていうのは IL の替わりに JavaScript を生成する C# コンパイラです。HTML 内から呼び出す JavaScript を C# で書けるわけですね。もっともバージョンが 0.2.0.0 ってところからもわかるようにまだまだ 実験的なものっていう感じです。「デバッグはどうやってすんのよ」 とかいろいろと問題はあると思いますし。
で、今回のバージョンアップは WPF/E 対応みたいです。さすが、さっそくですね。たぶんバージョンアップと言ってもコンパイラとかが変わったわけじゃなくライブラリが追加されただけとかじゃないかと思います。

2006年9月12日火曜日

Atlas 1.0 のロードマップと名称

"Atlas" 1.0 Naming and Roadmap より


以下、覚え書きとして要約 (完全訳ではありません。詳細は上記を参照してください)


■ リリース日
Atlas 1.0 は今年の終わりまでに出す予定とのこと。Beta、RC と出していって、フィードバックをもらいながら最終的な日付を決定するそうです。
また、1.0 がリリースされたら Microsoft の製品として 24時間 365日きちんとサポートされる製品となるそうです。


■ Atlas の提供プラン
まずはコアとなる部分に注力してリリースするようです。コアというのは、クライアントサイドのコントロールやコンポーネントの作成に必要な部分や、ASP.NET と統合されたサーバサイドの機能の部分などを指しているようです。
そのため、今の CTP にある機能のいくつかは落されるそうですが、それらもコアとは別にダウンロードして使用できるようになるそうです。どうやらそれらも Go-Live ライセンスになるようです。


機能リスト、リリースプラン、CTP からの変更点などの詳細を記したホワイトペーパーは 2、3週間後くらいに予定されているようです。


■ 名称
Microsoft AJAX Library
クライアントサイドで動く JavaScript の部分。PHP とか ColdFusion とか、サーバが ASP.NET 以外であっても使用できる。
# "Ajax" じゃなくて "AJAX" なのか。


ASP.NET 2.0 AJAX Extensions
ASP.NET に統合されてるサーバサイドの部分。今まで <atlas:> と表記されていたところは <asp:> と表記することになる。


ASP.NET AJAX Control Toolkit
今までの Atlas Control Toolkit。


■ 最後に
来年の Visual Studio "Orcas" では JavaScript のリッチなインテリセンス、デバッギング、 ASP.NET AJAX Extensions のための WYSIWYG デザイナのサポート、他のたくさんのグレートな機能がある。

2006年6月7日水曜日

Google Spreadsheets

Google Spreadsheets


まだ limited test ということで実際に使うことはできませんけど、Web ブラウザ上で動くスプレッドシートを Google が開発中ということだそうです。


http://www.google.com/googlespreadsheets/tour1.html
なんかを見ると



  • ゼロから作ることができ、数値の書式、カラムのソート、計算式の追加などを含むすべての基本的な操作ができる。

  • CSV か XLS を計算式や書式を維持したままでスプレッドシート/ワークシートにアップロードできる。

  • ツールバーボタンのクリックで太字、アンダーライン、フォントの変更、セルの背景色の変更などができる。

 



  • あなたのスプレッドシートにアクセスできる人を選択できる。ドキュメントを共有したい人のメールアドレスを入れて、メッセージを送るだけ。

  • スプレッドシートを共有すると指定した人はサインインするだけでそれにアクセスできる。

  • 複数の人が同時に編集/参照できる。アクセス中の人はチャットウインドウに表示される。

 



  • ダウンロード不要。インターネットに繋がっているコンピュータがあればいい (サポートブラウザは IE6 (Windows)、FireFox 1.07+ (Windows, Mac, Linux) )

  • オンラインストレージと自動保存があるのでハードディスクの故障や停電を心配する必要はない。

  • スプレッドシートを CSV、XLS、HTML でダウンロードできる。

といったものだそうです。
すごいなぁ。

2006年6月6日火曜日

Script# がアップデート(v0.1.1.0)

Script# Update and Addition to Projects List より


以前 「Script#」 「Script# を入れてみました」 にて紹介した Script# ですが、Nikhil 氏のサイト上に Script# のプロジェクト のページを作ったそうです。また、微妙にバージョンアップして v0.1.1.0 になったそうです。(プロジェクトのページの右にある Downloads のところの Binaries からダウンロードできます)


v0.1.1.0 は不具合修正と機能追加がされているそうです。また、ダウンロードした zip の中に Script#.pdf があって、まだちゃんと読んだわけではありませんが、これには Script# の動作の仕組み、Script# の使い方、どのような C# コードがどのような JavaScript コードになるか、どんな制限があるかといったことが書かれているようです (英語)。ただし、まだ [TODO] や ??? とだけ記述されているところも結構あるようです。

2006年6月1日木曜日

Ajax な IconDB

IconDB - Ajax-enabled Icon Search より


IconDB というサイトが紹介されています。"book" とか "computer" とか適当に検索するとなかなかかっこいいアイコンがいろいろと表示されます。


というか、http://www.challenger.se/ このサイトすごいですね。左に 「にゅ~」 っと出てくるメニュー、上にタブ、背景も変えられたりと、、、それぞれの記事がパネルになってるのは wema みたいな感じですね。
あと、Challenger っていうのもすごいです。Demo のところに行って "Enter" すると動かしてみることができます。Logon 画面が出てきたら guest のまま "Logon" で OK です。動かしてみれば何なのかはすぐわかりますが、IE 上に作ったデスクトップです。ほんと、すごいな。

2006年5月30日火曜日

Windows Live Gadget SDK

Announcing Windows Live Gadget SDK より


Live.com で使えるガジェットを作るための SDK の最初の public release だそうです。とは言っても、
http://microsoftgadgets.com/livesdk/index.htm
の最初のとこには赤字で 「まだ beta の段階だからね」 と書いてあります。

Windows Live Local と Virtual Earth SDK

New Windows Live Local - with traffic data, updated developer support, and more!
アメリカだけみたいですが Windows Live Local で交通情報(渋滞情報)がわかるようになったそうです。あと、イギリスの画像が増えたとか。他にも MSN Messenger で Share できたり、お気に入りに登録できたり、印刷できたりといろいろと機能追加されたみたいです。


Windows Live Local Comes to the UK - And Much More...
こちらには 「お気に入り Top 10」 みたいな感じでいろいろ並んでます。なんか NASA World Wind に Virtual Earth の地図を表示するプラグインなんてものまであります(^^;


Windows Live Local for Outlook
Outlook 上で Windows Live Local を使うアドオンだそうです。(私は試してませんが)
地図、経路探索、所要時間測定などの Windows Live Local の機能が Outlook 上で使えるようになるのと、待ち合わせ場所をこれを使って送信するといったこともできるそうです (受信側はアドオンは必要ない、と書いてあります)。ただ、U. S. English only と書いてあるので日本語版の Outlook では動かないかもしれません。


Virtual Earth Interactive SDK
インタラクティブな SDK だそうです。
左のツリーでやりたいことを選ぶと、そのデモ、ソース、関連するリファレンスが表示されます。


それにしても、、、
衛星写真はあとでもいいから、せめて日本の地図をもうちょっとまともにして欲しいなぁ。

2006年5月1日月曜日

今週くらい?に Atlas Control Toolkit がリフレッシュ

Atlas Control Toolkit Refresh Hopefully Shipping Next Week より


Atlas Control Toolkit がいろいろと修正や機能追加されてリリースされるようです。4/28(金) の記事で 「できれば来週半ば」 と書いてあるので今週の半ばくらいってことでしょうか?

2006年4月24日月曜日

JavaScript でアニメーションエフェクト

[JavaScript] リアルタイム描画のアニメーションエフェクト処理クラス


Ajax とか見てると 「JavaScript でここまでやるか / やれるのか」 と思うことが多いんですが、このゆうすけさんのも凄いです。。。


<img> タグを cloneNode して clip で表示する範囲を調整、、、なるほどなぁ。おぉ、clip って <img> だけじゃなくて、なんにでも働くんだ。知らなかった。