WS-Discovery Implement色々
せっかくの連休だったのに体調を崩して散々な日々。ある目標に無茶している時には体調管理も重要です。というわけで今日はWS-Discoveryまわりのお試し実装として目についたものを整理として列挙するのみ。
MS Researchで公開されているWS-Discoveryの実装コードのようですが、いまいち読み解きづらいです。
WCFベースのWS-Discoveryの実装ということですが、内部構造をまだ把握していません。WCFはやはりあくまでも通信プラグの動的結合&強力なWEBサービスのためのフレームワークというイメージでいますが、こういう実装もありなんですかね。WCFにはPeerChannelのBindingもあるし、WCFのパワーを存分に活かした設計というものがまだまだ理解できない今日この頃です。
WS-Discoveryのスキーマが見やすいということでのご紹介。
書評
フィードがグーグルの世界制覇を阻止する!―ウェブからリアルへの逆流が始まった
- 作者: 小川浩
- 出版社/メーカー: ビジネス社
- 発売日: 2007/07
- メディア: 単行本
- クリック: 1回
- この商品を含むブログ (12件) を見る
最近ではWeb2.0という名のもとにWEBという仮想世界の上にビジネスモデルを展開しようと色々躍起になっているという現状がある。しかし、その上で世の中で注目を浴びてきているものすべてが有効なものだとは決して思わない。セカンドライフなんかはその顕著な例かもしれない。今Googleが世の中を牛耳っているのは、「検索」という世の中の一般人の生活そのものを便利にしたという前提があって、その上でアドセンスをビジネスとして成功させた。しかしセカンドライフだと、ビジネスモデルがあるからこのヴァーチャルワールドに来い、という色が強い気がする。セカンドライフをやることによって日々の生活がよくなるわけでもなく、そのもしかしたらのビジネスチャンスのために帰宅後の貴重な時間をPCの前に数時間も座るのはやはりナンセンスだと思う。各種シンクタンクさんなどの白書などでは今後数年はバーチャル世界でのビジネス展開が伸びる!とかいう予測もあるが、自分は全くそうは思わない。IT関連に関わっている人間の思うほど、人々はパソコンが好きではない。正直自分は検索キーワードを選ぶのも面倒。この本の中にもあったがやはり「ウェブの世界の今後はリアルな世界との融合」であると思うしそうあって欲しい。あくまでも「何としてでもビジネスモデルを展開させていこう」と考えるのではなく、「人々の生活をこの情報技術を駆使して便利にするにはどうすればいいか」これを突き詰めて考えていくことが大事だと思うし、これを突き詰めて支持が得られれば自然とビジネスモデルが展開できるようなもんだと思う。ビジネスはあくまでも人々の生活を豊かにするために切磋琢磨していくものであるべき。
と、経営者の苦労もしらずに色々とりとめもなく思ったことを言ってみました。
なんか最近のエントリは書きなぐった感が強くなってしまってますね。。。次回あたりは全うに書いてみようかと。
※ご意見、反論等あればお気軽にw
People Near Me 解析 Part1
最近、People Near Meの内部構造について調査する機会があったのでここに軽くまとめておく。こんなマイナーなことに興味のある人間も少ないと思うので自分への備忘録として。People Near Meのアーキテクチャについて公開されている情報は少なく、WS-Discoveryに上に実装されているという情報程度。今回はより詳細な情報を得るためにPeople Near Me(PNM)の流すパケットについて観察し解析してみた。
とりあえず、PNMのSignIn/SignOutによるパケットフローがどうなっているのかを観察。公開情報の通り、サービスへの参加/脱退などの管理はWS-Discoveryが使用されているみたい。参加、脱退に応じてHelo/Byte/Prove/ProbeMatchメッセージが流れていたことを確認。ちなみにWS-DiscoveryのメッセージングはSOAP over UDP、Destination=ff02::c、Port=3702が基本。詳しくはSpecification参照。
WS-Discoveryパケット解析
Hello Message
- Packet Summary
Source | Destination | Protocol | Info |
---|---|---|---|
fe80::100d:43ef:d5fc:452f | ff02::c | UDP | Source port: 49375 Destination port: 3702 |
- Message Data
<?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsd="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:NearMe="http://schemas.microsoft.com/p2p/2005/08/NearMe"> <soap:Header> <wsa:To>urn:schemas-xmlsoap-org:ws:2005:04:discovery</wsa:To> <wsa:Action>http://schemas.xmlsoap.org/ws/2005/04/discovery/Hello</wsa:Action> <wsa:MessageID>urn:uuid:a148bddf-d5ac-4c15-a959-8f08f424579f</wsa:MessageID> <wsd:AppSequence InstanceId="5" MessageNumber="8"></wsd:AppSequence> </soap:Header> <soap:Body> <wsd:Hello> <wsa:EndpointReference> <wsa:Address>uuid:a0707166-1d8e-430a-899e-019b291bcad0</wsa:Address> </wsa:EndpointReference> <wsd:Types>NearMe:a4c1fbe4-6d30-46c9-8bba-b8663d615706</wsd:Types> <wsd:MetadataVersion>1</wsd:MetadataVersion> <NearMe:NearMeData>wAkAAAcAAAAUAAAACgAAABsAAABWaXN0YQAAVklTVEEtUEMAAA==</NearMe:NearMeData> </wsd:Hello> </soap:Body> </soap:Envelope>
Bye Message
- Packet Summary
Source | Destination | Protocol | Info |
---|---|---|---|
fe80::100d:43ef:d5fc:452f | ff02::c | UDP | Source port: 49375 Destination port: 3702 |
- Message Data
<?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsd="http://schemas.xmlsoap.org/ws/2005/04/discovery"> <soap:Header> <wsa:To>urn:schemas-xmlsoap-org:ws:2005:04:discovery</wsa:To> <wsa:Action>http://schemas.xmlsoap.org/ws/2005/04/discovery/Bye</wsa:Action> <wsa:MessageID>urn:uuid:047bc593-719a-4d19-ac2f-b1c47a4807c1</wsa:MessageID> <wsd:AppSequence InstanceId="405" SequenceId="urn:uuid:388e6fd3-9bab-4ad9-b3b2-4b13f814ab88" MessageNumber="8"></wsd:AppSequence> </soap:Header> <soap:Body> <wsd:Bye> <wsa:EndpointReference> <wsa:Address>urn:uuid:9e31c20e-8d9c-4b30-a030-0b94823a087a</wsa:Address> </wsa:EndpointReference> </wsd:Bye> </soap:Body> </soap:Envelope>
Probe Message
- Packet Summary
Source | Destination | Protocol | Info |
---|---|---|---|
fe80::100d:43ef:d5fc:452f | ff02::c | UDP | Source port: 49375 Destination port: 3702 |
- Message Data
<?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsd="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:NearMe="http://schemas.microsoft.com/p2p/2005/08/NearMe"> <soap:Header> <wsa:To>urn:schemas-xmlsoap-org:ws:2005:04:discovery</wsa:To> <wsa:Action>http://schemas.xmlsoap.org/ws/2005/04/discovery/Probe</wsa:Action> <wsa:MessageID>urn:uuid:606b61ea-d552-4876-97ee-08058c90e3e0</wsa:MessageID> </soap:Header> <soap:Body> <wsd:Probe> <wsd:Types>NearMe:a4c1fbe4-6d30-46c9-8bba-b8663d615706</wsd:Types> </wsd:Probe> </soap:Body> </soap:Envelope>
ProbeMatch Message
- Packet Summary
Source | Destination | Protocol | Info |
---|---|---|---|
fe80::9d0d:76ac:ebc:60c | fe80::100d:43ef:d5fc:452f | UDP | Source port: 3702 Destination port: 49374 |
- Message Data
HELOと同じくNearMe:NearMeDataは不明。
<?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsd="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:NearMe="http://schemas.microsoft.com/p2p/2005/08/NearMe"> <soap:Header> <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To> <wsa:Action>http://schemas.xmlsoap.org/ws/2005/04/discovery/ProbeMatches</wsa:Action> <wsa:MessageID>urn:uuid:5cc237c2-0b5f-44b0-9f6e-3f863018217a</wsa:MessageID> <wsa:RelatesTo>urn:uuid:eb50636a-2548-4fca-83cc-f8b03183df24</wsa:RelatesTo> <wsd:AppSequence InstanceId="1" MessageNumber="21"></wsd:AppSequence> </soap:Header> <soap:Body> <wsd:ProbeMatches> <wsd:ProbeMatch> <wsa:EndpointReference> <wsa:Address>uuid:0192e97a-fdc1-4883-b33d-5fa2650784fa</wsa:Address> </wsa:EndpointReference> <wsd:Types>NearMe:a4c1fbe4-6d30-46c9-8bba-b8663d615706</wsd:Types> <wsd:MetadataVersion>1</wsd:MetadataVersion> <NearMe:NearMeData>wA4AAAsAAAAUAAAADAAAAB8AAABTb3VzdWtlYmUAAFNPVVNVS0UtUEMAAA==</NearMe:NearMeData> </wsd:ProbeMatch> </wsd:ProbeMatches> </soap:Body> </soap:Envelope>
PNMパケット解析
で、WS-DiscoveryによりPNMネットワークへの参加、脱退などの仕組みは実現できることが納得できたけど、PNM APIのオブジェクト公開とか、アプリケーション招待などの仕組みがまだわからないということでもう少し調査。予想としてはWS-Discoveryパケット内に組み込んでいるのだとも思ったがそうではないらしい。オブジェクトデータ、アプリケーションデータのやりとりはTCP接続でPeer対Peerでの送受信が行われる模様(下図赤線部分)。で、ここで重要なのは受け取る側は誰で、送る側は誰なのか?ということ。どうも、分散ハッシュ的な考えが使われている模様。つまり、あるオブジェクトデータを保持・管理しているのはオブジェクトデータを公開したPeerとは限らない誰かということ。オブジェクト要求するPeerは分散ハッシュのようなイメージで、オブジェクトを保持しているPeerへのインデックス情報を取得。そしてその後オブジェクトデータを管理している誰かとコネクションをはってデータを取得するようだ。ちなみにこれらの情報はp2phost.exeの上でオンメモリで管理されている模様(?)ここら辺は明日にでも図の説明を追加するつもり。
いやー。People Near Meは意外と奥が深いですね。もっと技術情報を公開してくれれば良いのですが。。。こんな逆アセンブリ&パケット解析などは邪道すぎる;
ネタ
少々古いネタはご勘弁を。。。
あと数時間後に予約開始ですね。もっとおおっぴらに発表すればいいのに。
- http://rss.rssad.jp/rss/artclk/lfgBXSTPJWCW/848ea387cb6a6a66a1cce1e28a581615?ul=NYygwFJhNHIGIamrpDIhHBL_HY5OSePEtfKR2Z_WVWit0L7eALsG0f.do6LoF.BhT1YC_rp3YXMNGZ_NPC4uMa4spbqj3bRLIwFZY58phuMcq9XMQusVQVi3INecm.gE0mUxvYq
- http://rss.rssad.jp/rss/artclk/lfgBXSTPJWCW/f18081bf0dde96c2f6dd9ceaf0402f1f?ul=So..O2By0MJhFV.XCFxJbykFUOCT0JJawstt5NFLG6hx2GhSW5bgH_uz2Tith7eKeUiGvo_SRze.DU4pRZdS7b2g7FoVmwcYC5AHabMQ0yy_6te8zse5YyRnHK4IpM7Q_E5qStG
- http://journal.mycom.co.jp/articles/2007/09/10/iPhoneNativeApp/index.html
これを機会に無線APインフラが充実してくればいうことなしです!ということでiPod Touchを早速予約。やはりネイティブ開発はしてみたいですね。
国内ではまったくの存在感をみせていないZuneに電話機能ですか。oPhoneといいよくわかりませんね。
小休止
最近MS技術のネタばかり書いてので、今日は気分転換ということで趣味のネタを。
TechEdをふりかえる Part3
さて、Part3となりましたが引き続きTechEd情報をまとめてみます。おそらくTechEdネタはこれで最後となると思いますので(もちろん以外のMS技術ネタも今後まとめていきます)、張り切ってまとめていこうと思います。ということで、最後の今日は.NET3.5におけるWCF拡張についてを中心にまとめていこうと思います。
関連セッションとしては下記のセッション。
WCFとは?
省略。皆さん知っているでしょうという前提に基づいての省略であって、決して面倒だからというものではないです。。。
.NET3.5におけるWCFのWebスタイルサービスサポートの概要
.NET Framework 3.0におけるWCFでは、Webサービスの利用といえば基本的にSOAP/WSDLベースのみがサポートされていたが、.NET Framework 3.5のWCFでは、よりWebフレンドリーなサービスがサポートされる(本セッションではWebスタイルサービスとして定義)。具体的な新機能の内容としては、「RESTスタイルサービスのサポート」、「メッセージフォーマットとしてPOX、JSON、RSS/ATOM、その他バイナリをサポート」など。
.NET3.5におけるWCFのWebスタイルサービスサポートの詳細
具体的な実装としては次のようなものが追加。
お試し実装(JSON利用)
Visual Studio 2008 Beta2 にて"WCF Service Application"のテンプレートを基に実装してみる。
- サービスインタフェースとロジック実装
ここで重要なのはWebGet属性の追加。UriTemplateによりメソッドをRESTスタイルにコールできる。そしてResponceのフォーマットとしてJSONフォーマットを利用。つまり「/Data?nickname="hoge"」とGetData("hoge")が等価なイメージ。
[ServiceContract] public interface IService1 { [OperationContract] [WebGet(UriTemplate = "/Data?nickname={nickname}", ResponseFormat = WebMessageFormat.Json)] Person GetData(string nickname); } public class Service1 : IService1 { public Person GetData(string nickname) { Person p = new Person(); switch(nickname){ case "TechCollab": p.FullName = "Sousuke Hirayama"; p.Hobby = "Saxophone"; break; default: p.FullName = "Hoge Taro"; p.Hobby = "music"; break; } return p; } }
- コンフィグレーション
WCFのコンフィグレーションファイルには次のように記述。重要なのはbindingの属性としてwebHttpBindingを指定すること。
<configuration> <system.serviceModel> <services> <service name="Service1"> <!-- Service Endpoints --> <endpoint contract="IService1" binding="webHttpBinding" bindingConfiguration="Service1Binding" behaviorConfiguration="Service1EndBehavior"/> </service> </services> <behaviors> <endpointBehaviors> <behavior name="Service1EndBehavior"> <enableWebScript/> <webHttp/> </behavior> </endpointBehaviors> </behaviors> <bindings> <webHttpBinding> <binding name="Service1Binding" /> </webHttpBinding> </bindings> </system.serviceModel> </configuration>
- サービスホスト(.svc)
<%@ ServiceHost Language="C#" Service="WCFService1.Service1" CodeBehind="Service1.svc.cs" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory" %>
- 実行結果
以上の準備でサービスの実装が完了するが、これらをデバッグ実行して開発サーバ上でホスティングしてもうまく動作しない(下記エラー)。これはバグらしく、IIS上にDeployして実行する必要がある。詳しくはこちらを参照。
"IIS specified authentication schemes 'Ntlm, Anonymous', but the binding only supports specification of exactly one authentication scheme. Valid authentication schemes are Digest, Negotiate, NTLM, Basic, or Anonymous. Change the IIS settings so that only a single authentication scheme is used."
http://localhost/wcfhost/Service1.svc/Data?nickname=%22TechCollab%22
ということで、IIS上にデプロイしサービスを実行し、上のクエリーを投げたところ次のJSON形式のオブジェクトが返答される。
{"d":{"__type":"Person:#WCFService1","FullName":"Sousuke Hirayama","Hobby":"Saxophone"}}
実際のサービス利用時にはプロキシを生成することになるが、JavaScript用のプロキシを生成することも可能。プロキシ用のコードが見たければ下のクエリで取得。
http://localhost/wcfhost/Service1.svc/js
ネタ
きましたね。BlackBerry、iPhone端末もDocomoさん!?
こういうのは既存の主要インフラにのってかないとうまくいかない気がする。Suica、Pasmo、Edyなどなどやはり何かに統一されたら、この手のサービスものっかりやすいだろうし、発展もしやすいと思う。
最近はGoogle Gearsをおってないんで、これを機会に再勉強してみますかね。
ほほー。
メモとして。
http://www.artofoffice.com/artists/
Officeでartを創る意義は良くわからないが、色々かっこいいのもたくさんありますね。
TechEdをふりかえる Part2
さて、前回に引き続き復習がてらTechEd情報を色々とまとめてみます。今日は、データアクセスという観点で、LINQ、ADO.NET Entity Frameworkなどを中心に。ここらへんは苦手分野なんで議事録程度にまとめる。ここは実践的に使っていかないと、なかなか習得できないものですね。記述が間違ってた場合はご指摘下さい。。。
関連セッションとしては下記2セッション
LINQ概要
今更LINQについて説明することもないが、とりあえずざっくりとまとめる。LINQとは「.NET Framework 3.5に搭載される予定の言語埋め込み技術」。ロジック内のデータクエリーとして次のようなコードが書ける(LINQ to Objects)。様々なデータソースに対するアクセスを同等なプログラムモデルで記述できる(LINQ to SQL、LINQ to Objects、LINQ to XML、LINQ to LDAP、etc)。
public void Linq1() { int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; var lowNums = from n in numbers where n < 5 select n; Console.WriteLine("Numbers < 5:"); foreach (var x in lowNums) { Console.WriteLine(x); } }
LINQ to SQLによるデータアクセスの流れは、1. O/Rマッパーとして.dmblファイルを作成、2.LINQコード記述、3.実行時の動的T-SQL変換のようなイメージ。LINQコード記述は上のLINQ to Objectsと全く同じ。
ADO.NET Entity Framework
オブジェクトモデル実装におけるRDBアクセスの問題として、インピーダンスミスマッチの問題があるが、ADO.NET Entity Frameworkでは「EDM(Entity Data Mode):概念データベースモデル」、「eSQL(Entity SQL):EDMに対するクエリ言語」という概念をベースとする。実装モデルを概念データモデル層で扱えることにより、それによりリレーショナル、オブジェクトの両方に対してシームレスに落とし込めるようになる=インピーダンスミスマッチの解消。O/Rマッピングを洗練させるというよりも一気に概念データモデルにおいてアクセスをしていこうというスタンス(ちと怪しいかも。そもそも.NETのO/Rマッピングってどうなってたんだっけ?)。具体的な実装のイメージとしてはこちらを参照(CSDL、MSL、SSDLまわりがまだわかってない;)。
LINQの本質
LINQとADO.NET Entity Frameworkを合わせてみてみると、LINQとは「eSQLのマッピング仕様」(訂正:正しくは、「LINQ や eSQL を使うと、概念レベルのクエリが記述できる」)ということがわかる。つまり、LINQとは概念データモデルを操作するためのプログラミングモデルということ。なんで、データソースがなんであれシームレスにアクセスすることができる。これがLINQの本質。
考察
ということで、LINQはソフトウェア開発におけるデータモデリング手法を大きく変えるような技術であることはわかるが、実際にどうやってモデリングして開発していくのかが、今いちまだわからない(自分の技術力の無さのせいだけど。。。)。今のDBまわりの開発は、基本的にDBモデリングから始まり、それをコード(オブジェクト)にマッピングして実現していくという流れのような気がする。つまり、いきなり論理モデルによるモデリングをやるというスタンス。概念モデルのレイヤーでモデリングをするというとは現実としてあまりないような気がする。やはり概念モデリングにおける実践的な手法をよく考察していく必要がありそうです。
関連情報などなどはこちら。
- http://msdn.microsoft.com/msdnmag/issues/07/07/DataPoints/default.aspx?loc=jp
- http://www.divakk.co.jp/blog/aoyagi/archive/2006/06/24/7285.aspx
- 101 LINQ Samples in C#
下写真はTechEd休憩中の参加者。皆さんくつろいでましたね。
ネタ
今日のエントリと近いネタ。いい加減すんなりと英語を聞きこなしたいものです。。。
実際のblogはこちら。どんな内容がかかれていくんでしょうね。ちょっとおってみます。どんんどんとRSSリーダのエントリが増えてきた。やっぱり今後は情報の個人適応化という分野でビジネスができるような気がします。世の中情報が多すぎ!
So yes, Microsoft does have hackers, and its time to introduce you to some of them and show you what it is, exactly that they do.
文字まわりをやっている人を大きく泣かせてくれるのが、JIS X0213:2004と合わせてやはりサロゲートペアの問題。何が問題かって基本的な情報を的確に整理して抑えていくのが面倒なこと。
AptanaってAIRもiPhoneアプリも統合的に開発できるし結構使える開発環境だと思うんですが、皆さん使っているんですかね。
次回は、TechEd Part3としてWCF拡張についてか、マッシュアップエンジン機能比較(HugeDomains.com - Shop for over 300,000 Premium Domains←Good!)、とかを書いていこうと思います。
TechEdをふりかえる Part1
先週は招待を頂いたということもあり、TechEd 2007 Yokohhamaに参加してきました。年一度のイベントということで、21日から24日までの全4日間の日程に参加。全般的に多くの技術情報を収集することのできた良い機会となりましたが、MVPのメンバーなどある程度先行して情報収集している方々にとっては少々物足りないものと感じているのではないでしょうかね。正直これが有償セッションか、というものもありましたが、逆にとてもすばらしく興奮させてくれるセッションもあり、総合的には十分に有意義なカンファレンスだったのではないでしょうか。今回はServer 2008、.NET3.5、Silverlight、DLR、PowerShell、WCF拡張などの話題が熱かった気がします。
ということで気になったセッションについてを色々と技術内容の確認と共にちまちまとまとめていこうと思います(書いててやっぱりスタイルが気になってきたのでいい加減変えようかな…)。
Silverlightを語ろう! -Webアプリのこれから
Part1としてはこちらのセッションについてをご紹介。
基本的にSiverlightについて語る場という感じ。スピーカーは青柳さん。やはり皆さんの注目は1.1となり、1.1が中心に議論。
基本的なSilverlightのアーキテクチャ(省略)。1.1のランタイムは.NET3.5相当(LINQオッケー!)
- デモ
各種面白いデモの紹介。
Balls animation test: Silverlight (JavaScript and CLR) vs DHTML vs Flash (Flex) vs WPF vs Apollo vs Java (Swing)
各種ランタイム、開発フレームワークに応じた性能結果(FPS)をまとめたサイト。こんなのあったんですね、知らなかった;
windowsvista - windowsvista.si
SiverlightでVistaデスクトップを表現してしまおうというもの。気合の入った人もいるものですねぇー。
- Silverlightのアップデートモデル
「SilverlightプラグインはなぜWindows Updateで提供しないのか」という意見が出た。Silverlightはあくまでもプラットフォーム非依存なので(WIN、MAC、IE、FireFox、Safari etc...)、WSUSなどによるUpdateは不適なのだからじゃない!と突っ込みを言いたかったけど、案の定突っ込みが入る。その後はSilverlightのUpdate機能について話が盛り上がる。詳しくはこちらを参照。
- フォントサポート
Silverlightはまだ日本語サポートはされていない。現在サポート中のフォントは9種類のみ。どうしてもフォントとして日本語を扱いたかったら、フォントファイルをダウンロードしてそれを参照させることで対応できる(FontUriで指定する感じ。下参照)。確か、Silverlight XPS ViewerもXPSをほどいて、XAML変換して、フォントファイルをダウンロードさせてた気がする。
<Canvas Width="816" Height="1056" xmlns="http://schemas.microsoft.com/xps/2005/06"> <Glyphs Fill="#ff000000" FontUri="file:///D:/Windows/Fonts/Meiryo.ttc" FontRenderingEmSize="40" StyleSimulations="None" OriginX="20" OriginY="60" Indices=";;,80,10,-30;;" UnicodeString="ABCDE" /> </Canvas>
- デフォルトコントロールの不足
Silverlightの開発においては、Visual StudioやExpression Studioを使うことになるが、基本的にコントロールは不足している。SilverlightのStarter Kitにはある程度のコントロールまがいなものが入っているらしい。1.1では色々なコントロールが追加されるもよう(アコーディオンも!?)。
http://community.netikatech.com/
ここのGOA WinForms Live Demosは結構本格的なものがあるようです。
未踏ソフトウェア創造事業キックオフ
今週はTechEdへの参加や、TechEd報告記事執筆(CodeZine用)、未踏プレゼン準備などなどで色々慌しかったですが、とりあえずやることはやった感じです。自分はやはりプレゼンが好きらしい。人前で発表するときは頭から何か物質が出てるような感じがして非常に興奮する。やはり自分はこういうことが向いているらしい。
未踏のキックオフの発表者はみんなとても優秀な方ばかりでした。キックオフの内容については1期採択者の方がメモを取っているのでそちらを参照して下さい。自分もこれ以上に頑張らなくてはと思わせてくれる刺激的なミーティングでした。採択の契約でもめている採択者もいますが、是非参加して欲しい!優秀で熱い思いを持った若者の意思を年配者がつぶすなんてありえない。若者を伸ばすのが人生経験者のやるべきことであり、そして自分が年配になってもそうでありたい。
また、キックオフの最後の畑PMのお話の中に、「技術習得の観点としてはそこそこ広く、そこそこ深くがいい」ということがあったが、これはかなり難しい。どこまでが深く?どこまでが広い?というフラストレーションが常につきまとってしまう。この業界の技術はやはり同じ業界とはいえ様々な技術分野が存在する。技術分野が異なれば話すらできない場合もある。自分がある分野に精通したと思っても、すぐに別な分野で自分の無力さを感じる。そしてこれを実感してしまうと自分の無力さを常に感じてしまう。技術が無ければこれすら実感しないする人もいる。やはり、難しいことだが継続は力なり!こつこつ色々なことに興味を持って世界観を広げるべきですね。これは技術観点だけでなく、人生全般としていえること。
ということで、下写真は今日の自分へのご褒美。My Mac Book Proも良く頑張った!
ちなみに今日の1枚はタイのマーケットの1風景。
明日は、TechEdについての報告をしたいと思います。
ネタ
FASTは最近色々とメディアに出てくる機会が多くなっている気がしますね。
ん、これはどういうこと?Live Searchになぜ集約しない?意図を後で調べてみよう。
SilverlightのDreamSceneが公開。なかなかGood!ちなみにDreamSceneをいれるにはEnglishの言語パックをインストールする必要あり。