Ubuntu 10.04でIronRubyが追加
Ubuntu 10.04では、公式リポジトリにIronRubyが追加されているようです。
10.04 RC版で確認してみます。
$ apt-cache show ironruby Package: ironruby Priority: optional Section: universe/ruby Installed-Size: 1888 Maintainer: Ubuntu Developers <[email protected]> Original-Maintainer: Debian CLI Libraries Team <[email protected]> Architecture: all Source: dlr-languages (20090805+git.e6b28d27+dfsg-2) Version: 0.9-2 Depends: mono-runtime (>= 1.1.8.1), libdlr0.9-cil (>= 20090805+git.e6b28d27), libmono-corlib2.0-cil (>= 1.2.2.1), libmono-system2.0-cil (>= 2.4.3) Filename: pool/universe/d/dlr-languages/ironruby_0.9-2_all.deb Size: 624256 MD5sum: f0ae15f9452fc29c88e9783f73f3031f SHA1: 17268eada12f3debf47262caa30a01247546c115 SHA256: 3786d7ed827f46897f6c335a8e1e53ab195017917ee16dc4bd665b15f0cdb44b Description: Ruby implementation targeting the .NET and Mono platforms IronRuby is an implementation of the Ruby programming language running on .NET. It supports an interactive console with fully dynamic compilation. It is well integrated with the rest of the .NET Framework and makes all .NET libraries easily available to Ruby programmers, while maintaining full compatibility with the Ruby language. Homepage: http://www.ironruby.net/ Bugs: https://bugs.launchpad.net/ubuntu/+filebug Origin: Ubuntu
バージョン0.9であること、mono-runtime上で動くらしいことがわかります。
とりあえずインストール。
$ sudo apt-get install ironruby
ワンライナーで、お約束のHelloを。コマンド名は「ir」。
$ ir -e 'puts "Hello, Work"' Hello, Work
IronRubyなのでWindows Formsも試してみます。まずMonoのWindows Formsライブラリをインストール。
$ sudo apt-get install libmono-winforms2.0-cil
で、ワンライナーでメッセージボックスを。
$ ir -e 'require "System.Windows.Forms"; System::Windows::Forms::MessageBox.show "Hello, Work"'
表示されました。
以上、APTからインストールしてみただけのエントリでした。
「新クロサギ」6巻
今回の手口メモは、ネタバレなので「続きを読む」で。
「Software Design」2010年5月号
技術評論社
リニューアル号、かつフレッシュマン特集号。「WEB+DB PRESS」出身の細谷さんの仕切りになったせいか、Web寄りの記事が増えた印象。そっち系の豪華メンバーを集めている。いきなりJavaScriptでステレオグラムとかw。細かいとこでは、句読点がカンピリからテンマルになってた。
直接のWeb系以外では、「Ubuntu Monthly Report」の新連載とか。このへん、gihyo.jpとメディアミックスしてやっていくのかな。次号ではUbuntu 10.04コアテクノロジー特集もあるとか。
ワンライナーでファイル名の連番リネーム
自分の方法のメモ。
$ ls RIMG0005.JPG RIMG0011.JPG RIMG0034.JPG RIMG0052.JPG RIMG0061.JPG RIMG0006.JPG RIMG0019.JPG RIMG0040.JPG RIMG0060.JPG RIMG0062.JPG $ ls *.JPG | awk '{ printf "mv %s sample%02d.jpg\n", $0, NR }' | sh $ ls sample01.jpg sample03.jpg sample05.jpg sample07.jpg sample09.jpg sample02.jpg sample04.jpg sample06.jpg sample08.jpg sample10.jpg
最後のshを外せば実行するコマンドを確認できるのが、自分的ミソ。
「MeeGo Seminar Spring 2010」を聴いた
モバイル向けLinuxとして、Intelの「Moblin」とNokiaの「Maemo」というビッグネームが合流した「MeeGo」があります。ちなみに、Linux Collaboration SummitでGoogleの人が、AndroidとMeeGoは食い合わないと発言したそうです。
そのMeeGoのセミナーイベント「MeeGo Seminar Spring 2010」が、日本のLinux Foundationにより開催されました。300人以上の人が参加して、けっこう注目されているようでした。ただ、スピーカーの方が壇上から質問したかぎりでは、MeegoやMoblinの開発経験者は多くなさそうでした。まずは第1回ということで、セッションの内容も比較的一般的な紹介が中心だったように思います。
以下、メモ。
「MeeGoは完全にオープンソース」
Linux Foundationの福安徳晃さんが、開会の挨拶をしました。企画したときはまだ「Moblinセミナー」だったとのこと。当初100人程度予定が、300人以上のキャパの会場にふくらんで、期待を感じたそうです。ただし、まだどんな物かまでは知られていなくて、それをまず知るために来てくれた人が多いのではないか、と語りました。
続いてMeeGoの紹介。マルチプラットフォーム&マルチデバイスに対応していて、なにより「Linuxのディストリビューションそのもの」。特に、「完全にオープンソースなLinuxのディストリビューション」だと強調し、開発したものをアップストリームのコミュニティに還元していることを特色としました。このあたり、対Androidを意識しているのでしょうか。
技術的には、PowerTopやFastBootなど、Linuxが抱えている(モバイル関連の)課題を解決する取り組みであることを紹介しました。
「MeeGoは“Wonderful”と“Freedom”を両立する」
基調講演の1番手は、スピーチ巧者で定評のあるLinux FoundationのJim Zemlinさんが登壇。オープンソースのビジネスメリットを中心に、MeeGoがコンピューティングの転換点だと語りました。
まず「今日は重大な発表があります…私の娘の2歳の誕生日です」と観客の笑いをさそったあと、10年前にIBMが10億ドルをLinuxに投資することを決定したインパクトを紹介。スーパーボウルのTVコマーシャルをまじえ、この10年間でLinuxが著しく成長したことを説明しながら、Meegoを「第二の“IBM mement”」になぞらえました。
続いて、お得意の、Linuxにまつわるさまざまな数字を紹介するトークのあと、モバイルが同じような転換期に来ていると語りました。
そこでLinuxやMeeGoを使う理由を説きました。まずはコスト。現在では製品開発のコストが高くなっている一方で、携帯などのように製品の陳腐化が早く利益を得る時間が短くなっています。そこでLinuxのような共有型の開発が有効である、という理由です。
2番目の理由は、「パーソナルコンピューティング」の形が変わっていること。PCのみならず、スマートフォン、ネットブック、ブラウザ、e-Book、フォトフレーム、TV、車、飛行機など、パーソナルコンピューティングのプラットフォームが幅広くなり、「インターネットがキラーアプリケーション」という状態になっています。ちなみに、Zemlinさんはこれらの共通点はLinuxだとも語りました。
パーソナルコンピューティングが変わっている中で、アプリやコンテンツのベンダーがMicrosoft・Adobe・Apple・Googleに金を払う構造ができています。それに対し、ロイヤリティーを払う必要がなく独自のサービスやアプリケーションストアを作れるオープンなプラットフォームがMeeGoだと語りました。
3番目の理由がサービスへの移行と、今はやりの「FREE」。モバイルキャリアの資金でFree Laptopまで登場している中、モノよりサービスで利益を出すことが重要になっています。また、エンタープライズでもハードやソフトを持たないクラウドサービスが登場しています。そして、「LinuxがなければGoogle、Amazon、Facebookは今日のようになっていたか? .NETを使っていたら?」と、Linuxの重要性を主張しました。
これらの重要性について、Zemlinさんが必要なことと語るのが「Upstreamのプロジェクトで協力すること」「オープンソースの法的な保護」「fit&finish」3つ目について、Zemlinさんは、Steve JobsがiPadを紹介するビデオからリミックス的に「Magical」「Wonderful」を繰り返してみせ、続いてRichard Stallmanのビデオから同様に「Freedom」を繰り返してみせて笑いをとったあと、「両者は正反対だが、どちらも重要なこと。いままではどちらかをとる“OR”だったが、これからは両立させる“AND”が必要。そしてこれこそがMeeGoが目指すもの」だと語りました。
そのうえで、MeeGoの現状を紹介。さまざまな業種の企業が参加していて、情報を完全に公開している、リリース間隔は6か月に1度とシンプル、ということが説明されました。そして、ほかのモバイルや組み込みLinuxとの違いとして、技術的な要求、FLOSS、カスタムブランド、マルチアーキテクチャ、参加が容易で参入障壁が低い、同じソフトをアーキテクチャをまたがって使うための強力なプラットフォーム、フリーの構築ツールなどの特徴を説明しました。
最後に、MeeGoはLinuxにとってブレークスルーであると語り、「Join us」の言葉で締めくくりました。
「スマートフォンのアプリケーションプラットフォームはまだ成長の余地がある」
基調講演の2番目は、組み込みOSベンダーWind RiverのDamian Arttさんが登壇、スマートフォンの次の進化について語りました。
スマートフォンが、市場、性能、低価格化で格段の成長を続けていることをデータをもとに紹介。「36か月間に倍になる」「5年ですべての携帯がスマートフォンになる」「PCの台数より多くなる」「インドは携帯の純増としてホット」という意見などを引いて説明しました。
こうしたスマートフォン市場は、AppleのiPhoneが牽引していますし、Androidも成長率では目覚しいものがあります。そこになぜまた新しいスマートフォンOSかという点について、Arttさんは、AppStoreのエコシステムの重要性を取り上げ、「MeeGoこそがこの課題にこたえられる」と利点を語りました。
そのうえで、Wind Riverのソリューションを紹介。最後に「スマートフォンのエコノミーができてきている」と語って締めくくりました。
「NovellはIntel CPUのネットブックにMeeGoを提供」
基調講演の3番手は、NovellのGuy Lunardiさんが登場し、ネットブックのMeeGoとNovellについて語りました。
MeeGoにはいろいろなフォームファクターがあり、Novellが多くにコミットしていることを説明。そのうえで、Intelとのパートナーシップによるネットブックに焦点を当てていると語りました。背景として、ワールドワイドでは、ネットブックの1/3はWindows以外を搭載しており、Mac OS XやVDIなども注目されていて、ユーザーはWindows以外を求めていること紹介。そして、ネットブッックのMeeGoはエキサイティングと語りました。
話の主題は「SUSE MeeGo」。Linux Foundationの仕様に完全準拠し、15秒以内で起動。いわく、「すぐ電源を入れてFacebookを使いたい」という要求に応える仕様だとか。そのほか、同期サービスやAdobe Reader、JavaVMなどを紹介しました。
Qtの技術概要を紹介
個別セッションは、ノキアの鈴木佑さんから。Qtに惚れ込んでTrolltechに入社し、買収にともなって現在Nokia社員だそうです。
まず、Qtの基本を解説。発音は「キュート」。C++のクラスライブラリで、UIのみならず、ネットワーク、DB、マルチメディアなど800以上のクラス数からなるそうです。X11、Windows、Mac OS、Embedded Linux、Windows CE、Symbianなどで動いているクラスプラットフォームで、オープンソースのためコミュニティでQNXやVxWorksにも移植されているそうです。
また、開発ツールとして、MeeGoでも採用されている統合開発環境Qt Creatorや、ビルドツール、UIデザインツール、ドキュメントビューア、国際化ツールなどが用意されているそうです。
ライセンスはオープンソースで、GPL・LGPL・商用ライセンスの3つから選べる。Qt Servicesとして、サポート、トレーニング、コンサルティングなども提供されているとのこと。使用事例としては、KDE SCのほか、Linux版SkypeやGoogle Earthなど、世界で5,000社以上が採用しているとのことでした。
そのうえでQtの機能を紹介しました。Qtはモジュールに分かれていて、必要なモジュールだけ使って開発できるよいうになっています。QtCoreは非GUIの基本機能で、文字・文字列やファイル、コンテナ(リストやハッシュマップなど)、マルチスレッドなどを扱うモジュールです。QtGUIはGUIライブラリで、色、フォント、描画、GUIイベントなどを扱います。
基本的なウィジェットのQWidget(ラベル、チェックボックス、グルーブプボックスなど)、リストや表で表示するモデルビュー、ウィジェットをプラットフォームやウィンドウサイズを考慮して自動的に並べるレイアウトマネージャ、プラットフォームごとに自動で見た目を作るスタイル(C++によるプラグイン、またはCSS風のスクリプトによる調整)なども紹介されました。
GUI以外では、ネットワークを扱うQtNetwork、データベースアクセスを扱うQtSql、ブラウザエンジンのQtWebKit、マルチメディアを扱うPhonon(各プラットフォームでネイティブのバックエンドを使用)、といったさまざまなモジュールが紹介されました。
そして、開発環境を紹介しました。Qt SDKはWindows・Linux・Mac用が用意。SDKはQtライブラリとIDEのQt Creatorの組み合わせとのことです。Qt Creater自身もQtで作られたクラスプラットフォームのアプリで、Qt開発に最適化されたエディタ、UIデザイナ、ドキュメントビューアを統合し、ネットブックでもさくさく動く軽快な動作が特徴とのことでした。
そのうえでQt Creatorをデモしました。まずプロジェクト作成し、とりあえずビルドすると空のウィンドウのみのアプリができます。そして、テキストラベルで「Hello World」を表示したり、フォントを変更したり、いろいろなウイジェットを置いてみtari,WebKitのウィジェットを追加したりといった例を見せました。
最後に、「Qtは非常に簡単にアプリケーションを作るためのフレームワーク」であるという言葉とともに、キャッチフレーズ「Code less. Create more.」を紹介。ドキュメントや書籍、最近スタートしたブログ「Qt Labs Japan」を紹介して締めくくりました。
自社ライブラリと開発ツールを生かして3D UIを実現
エイチアイの鈴木啓高さんが、自社の得意とするリッチユーザインターフェースをMeeGo上に移植した体験を語りました。携帯向け3D UIエンジン「MASCOT CAPSULE」が広く使われていて、マチキャラやバイオハザード4、みんなのゴルフなどに採用されているそうです。
対象は、Intelから提供されたMID端末。「要はx86とLinuxなので、苦労するわけがない」とジャブをかましつつ、苦労した点を語りました。
Intelと話をした時点ではまだMoblinだったそうですが、話が進むうちにMeeGoになっちゃった、ClutterじゃなくてQtになっちゃったということがあります。ただ、ClutterやQtの経験もそれほど蓄積されていなかったので、とりあえず素のX11(Xlib)上で自社開発のUIフレームワークを使って開発れたそうです。
もうひとつ問題だったのは3Dのハードウェア。OpenGL ESが提供されているということで、使えるかと思ったら、調べてみたら動かない。いろいろやってみて、結局OpenGLなら動いたのでそちらで開発したとのことでした。「よくある話」と話しながら、そのあたりがいちばん時間がかかったようです。
開発環境の特徴は、プログラマーの環境のほかに、デザイナーさんの環境も用意していること。最近のGUIオリエンテッドなリッチUIの世界では、デザイナさんが絵や動きを作り込む要素が大きいということです。これまでの開発フローではデザインが決まってからプログラム実装というウォーターフォールっぽい工程になりますが、使って動かしてみないとわからないので、デザイナーさんの環境も用意することで、デザインとプログラム実装をトライ&エラーで繰り返せるようになったそうです。
その工程をデモ。市販の3D制作ツールで作って素材を書き出して、オーサリングツールで読み込み、ドラッグ&ドロップでレイアウトしてイベントに対応したアクションを作ってみせました。イベント自体はプログラマーの作業になるそうです。また、Photoshopでレイヤー分けしたデザインを、レイヤーごとにパーツとする様子も見せました。
この環境を使って、2009年12月に開始した作業が、年末年始、年度末、携帯新機種などのかたわら完成。OpenGL対応の部分が解決したら、1~2か月の作業だったそうです。また、ダメ出しにもさほど問題なく作りなおしができたそうです。
会場では、ありものの3Dをとりあえず乗せてみた、格闘ゲーム風のカンフーのデモや、3D+タッチインターフェイスを使ったランチャーのデモなどを見せました。
最後に、「UIからUXへの変化」としてデバイスがユーザーに働きかける「アクティブUI」を論じ、センサー利用やパーソナライズされたUI、ベイジアンネットワークで状況と操作をつなげる研究などを紹介しました。
「Atomに最適化した環境を提供する」
最後にインテルの池井満さんが登壇し、インテルがMeeGoに取り組む理由を解説しました。
まず語ったのが「Software Continuum」(連続性、ソフトを使い続けること)。かつてPCはIA+Windowsのエコシステムとなっていたものが、90年代のはじめから、WebやJava、Flashなどで変化しはじめました。そのような状況な中で、IntelはMeeGoによって1つのOSで複数のデバイスに対応し、Atom用ソフトウエアの連続性を担保すると説明しました。
そして、改めてMeeGoを紹介。QtをMeeGoに対応させる、MeeGo UIフレームワークというレイヤーが加わっているものの、内部構成はほぼMoblinと同じ。ベースは「まったく普通のLinuxで、そのうえにミドルウェアと、携帯向けとネットブック向けのUXが乗っている。Qtがベースですが、ClutterのAPIも残っているそうです。
特徴としては、用途別のUX、ネットワーク接続を管理するconnman、テレフォニーフレームワークofono、PIMやクラウドの同期、統合SNS、アプリ開発環境、電源管理、高速起動、マルチメディアサポート、マルチ言語,ジャスチャtolマルチタッチのフレームワーク、センサーフレームワークなどが語られました。
また、Intelではハードやソフトだけではなく、Intel AppUp CenterとIntel Atom Developer Programを通じてサービスも提供するという話でした。AppUp Centerはアプリを売る店で、現状はβ。アメリカとヨーロッパで始まりましたが、法律上の問題で日本では買えないそうです。「ネットブックの使用方法や環境に最適化されたアプリケーションはない」ことからいまはネットブックのみですが、ネットブック以外のデバイスメーカーとも話し合ってやっていきたいという話でした。
最後に4~5月にMeeGo 1.1がリリースされ、以後6か月間隔で新しいバージョンがリリースされると紹介して締めくくりました。
「ごろつき船」上・下
「鞍馬天狗」の作者である大佛次郎が、昭和ヒトケタ年代に書いた時代小説。
…というのから想像されるのとは全然違う、モンテ・クリスト伯かマンガか(おおげさか)、という波瀾万丈の冒険時代伝奇小説だ。いや、「鞍馬天狗」のことをよく知らないのだけど。
江戸幕府から見て番外地的な松前藩で起きた事件をかわきりに、あれよあれよという間に想像の上をいくスケールの大きなストーリーが展開される。登場人物もキャラが立ってるし。あの女性キャラなんて、そのまま今のマンガやアニメやラノベにでも出てきそう。とても80年以上前に書かれた娯楽小説とは思えない新鮮さ。いやー、面白いな、これ。
解説の北上次郎は、愛国啓蒙ヒーロー物語が風靡していた時代に書かれた特異な物語と紹介している。今でも新鮮なのは、そんな、国とかお上とかに縛られない登場人物たちの自由さによるのかもしれない。
なお、本書は「北上次郎選 昭和エンターテインメント叢書」の第1弾。
「日経Linux」2010年5月号
日経BP出版センター
第2特集「最強・格安のLinux機を作ろう」が、題名から想像してなかったけど、Gentoo Linuxの入門とインストールガイドになっていて面白い。
「Visual Studio 2010 Ready Day」テクニカルセッションを聴いた
4月13日、Visual Studio 2010のローンチイベント「Visual Studio 2010 Ready Day」に参加してきました。
基調講演に続いて、各テクニカルセッションのメモです。技術者向けのイベントなので、やっぱりコードや工程を見せながらの説明がわかりやすいですね。
「"7" 時代の次世代 Windows 開発」荒井省三
スキモノな開発者層に名の知れた荒井さんが、Windows 7の主にUIまわり(ただしSilverlightは除く)の開発について、Visual Studio 2010や.NET Framework 4での変更点を紹介しました。
まず、Windows Formを使う場合。これは、従来と変わらないとのこと。変わった点として、追加されたChartコントロールがデモされました。
続いて、WPFを使う場合。WPFも(MSのジンクスにいうような)3世代目を迎えた、という話から入りました。変更点としてまず、Windows Formのようにダブルクリックによるイベントハンドラの記述をサポートしたことが紹介されました。いままではXAMLの知識が必要だったのが敷居がさがった(でも知っておいたほうがいいけど)、と語られました。また、Visual Studio 2010からは、アニメーション以外はExpression Blend不要でVisual Studioだけで開発できることも紹介されました。
デモでは、新しいコントロールとしてDate Pickerを紹介したあと、Windows Formでは難しいWPFの利点として、日付をブラックアウトするカスタマイズやベクターグラフィックスによるボタン、コードを書かずにデータグリッドを使う例などを紹介しました。また、WPFのデザイナーの新機能のコネタとして、WPFの膨大のプロパティを検索しながら選べるところも紹介されました。
これらをふまえ、Windows FormとWPFの選択について、環境や表現力にあわせて選べばいいと言ったあと、「個人的にはWPFを押している。オーナードローなどは、できれば作らずに済ませたいので」と語りました。
UIに続いて、ADO.NETのデータアクセス技術。DataSetは変更ないものの、Entity Frameworkを機能強化したことが紹介されました。Entity Frameworkは新たなデータモデルで、XMLで概念モデルを定義してLINQなどから呼び出せ、シリアライズしたときにXMLが大きくなるのを解消するそうです。短所はDataSetに比べるとオーバーヘッドは増えることで、長所は.NET Frameworkでの理解できるオブジェクトであればどこにでも持っていけることだと説明されました。なお、マネージプロバイダとして、Oracleプロバイダはサードパーティが充実してMicrosoft製品はあまり使われていないので廃止になったという話でした。
続いて配布技術。インストーラープロジェクトはUACの扱いなどがあっていちから作り直されたこと、ノータッチデプロイメントは廃止されたことなどが紹介。また、ブラウザアプリケーションXBAPに完全信頼モードを追加して、ExcelやCOMを呼べるようにした(Silverlight4のブラウザ外アプリケーションと同じ)ことも説明されました。
また配布技術では、.NET Framework 3.5SP1から導入されたクライアントプロファイルが4で機能強化され、WPFやVSTOのアプリも扱えるなども紹介。セキュリティ面では、Silverlightのようにレベル2のセキュリティ透過モデルが導入されて、完全信頼と部分信頼が分けられたことが語られました。
.NET Frameworkの新機能としては、アプリケーションにあとからボタンなどの機能を追加したりできるプラグインアプリケーション機能がデモされました。ファイル名を変えるだけで画面が変わるもので、Managed Extensibility Frameworkと、それのベースとなる遅延バインディング、さらにそれのベースとなる動的言語ランタイム(DLR)などの組みあわせでできているという説明でした。
ここまでの内容をふまえて、Windows 7の機能を使ったアプリの開発について説明とデモがなされました。まず、タスクバーとして、オーバーレイアイコンに、タスクバー上のプログレスバー、サムネイルクリップをXAMLからTaskbaItemInfoで設定。サムネイルツールバーをXAMLからTaskbaItemInfoのThumbButtonInfoで設定。ジャンプリストをXAMLからJumplistで設定できることを説明しました。
続いてマルチタッチ。まず、5本指を検出できるところと、指の大きさも取れるところをデモしました。タッチ操作は、低レベルAPIでは、TouchDown、TouchMove、TouhUpイベントを検出します。ただし、高レベルAPIでは、パン、ズーミング、ローテーションのジェスチャーが取れるそうです。WPF独自のものとしては、タッチで操作した画面上のオブジェクトが壁で反射するところ(ManippulationStartingイベント、ManipulationDeltaイベント)なども紹介しました。
リボンインターフェースについては、Ribbonコントロールライブラリをダウンロードして追加してみせました。スタイルシートで、Officeスタイルなどを指定できるそうです。また、Win32でも、RibbonコンパイラでWin32オブジェクトを生成して使えるという話も紹介されました。
センサー&ロケーションについては、.NET FrameworkにロケーションAPIが追加された(ドライバは別途)ことを紹介。ロケーションセンサー+BingMapで現在地点を表示するところがデモされましたが、あいにく地下だったためかうまくいかなかったようです。
最後にまとめとして、WPFは非常に作りやすくなったこと、Windows7アプリの機能はWPFならXAMLを書くだけで作れること、Windows Formは開発方法は変わっていないものの下回りが強化されていてWPFのデモと同じようなことができることが語られて終わりました。
「Silverlight 4 データ駆動アプリケーション開発概要」小高太郎
Silverlight 4について、「グラフィックなどではなく、データ処理にフォーカスして地味にやります」と前置きがあり、Silverlightを実アプリ開発に使うためのデータストレージまわりが解説されました。開発者のニーズに応えられる環境が強化されて、業務アプリに使えるようになった、というふれこみです。
まず、Silverlightのデータアクセスの特徴は、データベースに直接接続できないことです。かわりに、SOAPやWCF Data Services(RESTベース)でWebサービスに非同期でアクセスします。データ共有のRESTfulプロトコル「OData」も紹介されました。
SOAPとWCF Data Serviceの使い分けについては、フロントのCRUD処理にはWCF Data Service、コアのOLTP処理にはSOAP、というのがよいそうです。
XAMLベースのデータバインドでは、Dependencyオブジェクトや、2つの項目にまたがるエラー検出(どちらか設定されていればOK、など)を扱うINotifyDataErrorInfo、StingFormat(入力データのフォーマットを変換する)などのバインディングプロパティなどが紹介されました。
もう少し上の層の機能も紹介されました。リッチテキストや印刷、クリップボードなどが解説されましたが、クリップボードAPIで扱えるのはテキストのみという制限があるそうです。そのほか、コンボボックスで選んだ値に対応した値の表示をXAMLだけでとか、右クリックメニュー(従来はSilverlight自身のメニューだけ出ていた)なども紹介されました。
Silverlightを使ってC/S開発のようなことをするWCF RIA Servicesも紹介されました。複数の層があると業務ロジックをどの層に持たせるかが問題になり、分散してしまうこともよくあります。WCF RIA Servicesでは、サーバーのロジックをクライアントへ射影する、つまり、サーバーのDomain Serviceを元にクライアントのDomain Contextを生成する、ということができるそうです。
最後に、Silverlightは多数のプレゼンテーション層テクノロジーと多数のデータソースの選択肢をサポートしていると語って締めました。
「Visual Studio 2010 & .NET 4 時代の並列プログラミング」川西裕幸
先進的な技術者の間では何かと話題になっている並列プログラミングについて、Visual Studio 2010から標準でサポートしている機能を紹介しました。
まず、「CPUが高速化するおかげでソフトはなにもしなくても高速化した時代があった」と皮肉まじりに語り、「今はマルチコア時代なので、並列化を意識しないソフトは速くならない」ということを説明しました。ある程度はコンパイラが助けてくれますが、オールマイティに並列化できるコンパイラはなく、人間が並列化を意識する必要があるそうです。
そこで、Visual Studio 2010では、並列ライブラリー(実装パターン)、同時実行可能なデータ型、、同時実行ランタイム、並列ツール(デバッガやプロファイラ)をサポートしていることを、デモをまじえて紹介しました。
デモしたプログラムは、一貫して二分木をたどるプログラム。まず素直な直列プログラムを実行してみせたあと、それを単純に左右をたどるごとにスレッドを生成するように変更、実行してもると返ってこなくなってしまうことから、スレッド生成は負荷やメモリがかかることを示しました。続いて、ThreadをVisual Studio 2010のタスク並行ライブラリー(TPL)のTaskに単純に置きかえて、直列プログラムより速くなるところを見せました。TPLはマネージ同時実行ランタイムのスレッドプールの上で動き、スレッド数が無闇に増えないようにしているそうです。
続いて、やっかいな並列実行のデバッグ。スレッドやタスクとその持っている値をビジュアルに表示して、デッドロックも発見できるところをデモしました。
Parallel.for関数に相当する関数を自作するところも見せました。Environment.ProcessorCount関数(コア数を得る)を見ながら処理を分けていましたが、スレッドの負荷が不均等なときに本物に負ける、というところを並列プロファイラで見せました。
そのほか、PLINQや協調型データ構造(スレッドセーフなConcurrentStack<T>やBlockingCollection<T>など)も紹介。暗号化と圧縮をパイプライン化して同時処理するところなどをデモしました。
「Visual Studio 2010 Ready Day」基調講演を聴いた
4月13日、Visual Studio 2010のローンチイベント「Visual Studio 2010 Ready Day」に参加してきました。
全般的に、コンセプトや新機能羅列だけじゃなくて、ポイントを絞った説明や実演を重視していたところなど「現場のエンジニア」目線を狙っていたように感じました。そういえば、参加報告書の素をサイトで配ってましたねw
まずは基調講演のメモ。「Life Runs on Code」(未来はコードで創られていく)というタイトルがいいですね。
開発ツール、チーム開発、品質向上の3点
開発ツール製品部部長の遠藤敦子さんは、「開発ツールはMICROSOFT BASICで始まるMicrosoftでもっとも長い製品」と語りました。そして、Visual Studio 2010について、開発ツール、チーム開発、品質向上の3つが新機能のポイントだとオーバービューを示しました。
ASP.NET MVCやjQueryでモダンなWebアプリ開発
Microsoft本社のVisual StudioプロダクトマーケティングディレクターMatt Caterさんが登壇。開発者の直面する問題を「継続的な仕事への割り込み」「保守的な開発環境」「メンバー間の連携不足」の3点で説明し、Visual Studio 2010により作業サポートや最新環境への対応が受けられると語りました。特にチーム内での連携については、進捗レポートを作業から自動生成したり、他人が書いたコードから意図を可視化したり、テストや過去の状況を再現する機能を紹介しました。
それを受けて、近藤和彦さんがWebアプリの開発について、サイトを改善する手順をデモしました。まずコードとWeb画面をマルチモニタで分けて表示。複数バージョンの.NET Frameworkに対応していてドロップダウンリストで選べるところや、ASP.NET MVCなどを紹介しました。
さらに、Visual Studio自体がWPFベースで作られていてホイールでフォントを拡大縮小できたりすることや、Extension ManagerからVisual Studioの拡張機能を追加できるところ、HTMLコードスニペットが強化され、jQuery 1.4.1に対応してアニメーション効果をさっと追加できるところなどを実演しました。
最後に、「未来はコードで創られていく」テーマを無償公開していることも紹介しました。
C++でWindows 7っぽいアプリ
続いてCaterさんは、Visual Studio 2010はWindows 7の新機能に対応し、マルチタッチやリボンUI、ジャンプリストなどを使った「Windows 7っぽいアプリ」を開発できることを紹介しました。
それを受けて、太田寛さんがC++でのネイティブアプリケーションをデモしました。アプリケーションにリボンを追加し、そこにボタンを追加してアイコンとIDを割り当て、メインフォームに追加
してみせました。これらには、復活したMFC Class Wizardが使われました。
タッチ対応では、同じくMFC Class Wizardを使いWM_APPCOMMANDにハンドラを追加し、マルチタッチでズームするためにOnGestureZoomメソッドを定義するところを実演しました。
SharePoint開発も一般の.NET開発と同じように
次にCaterさんが紹介したのはSharePoint開発。Visual Studio 2010では27ステップから数ステップに工程が短縮されたことを紹介しました。
それを受けて松崎剛さんがデモ。64bitのWindows 7/Vistaでも動くこと、さまざまなテンプレートがデフォルトで入っていること、ASP.NETベースのWebパーツが使えること、スニペットのショートカット、パッケージのSolution Explorer、サーバーエクスプローラなどを紹介しました。
特に大きく変わったのがデータアクセスだそうです。いままではXMLで定義する必要があり、「一般の.NET開発者はひいてしまうような面倒さ」だったとのこと。それがLINQなどが使えるようになったということで、実際にコードを見せました。さらに、F5キーでビルドしてバックグラウンドで自動的にデプロイしたり、ブレークポイントを設定したりというところを実演して、「一般の.NET開発とおなじようにできるようになった」ことを改めて強調しました。
エラーの状況を一発で呼び出し、シーケンス図も自動生成
Carterさんはさらに、Windows Phone開発やWindows Azure、今週リリースされる予定のSilverlight 4にも言及。そのあと、テスターなどの同僚と仲良くして人的資源を最大化するためのチームワークについて語りました。Team Foundation Serverです。
今度のTeam Foundation Serverは、クライアントOSでも動く、買収したテクノロジーを元にしたTeam Explorer Everywhere 2010で、LinuxのEclipseなどとも連係できる、他人のコードを理解するために、ソースコードからシーケンス図を自動生成する機能、進捗ミーティングのかわりに開発の中で状況を収集する機能、バグをよりよく修正するためにテスト管理やUIテストの自動化の機能、などを紹介しました。
それを受けて、長沢智治さんがデモしました。まずは、進捗や共同開発のために他人のコードを分析するための機能。DGMLでプロジェクトを可視化したり、アセンブリの依存関係をグラフ化したらい、コードからシーケンス図を生成したりしてみせました。
また、開発者とテスト担当者とのチームワークのための機能も披露しました。テストマネージャにより、両者が同一のリポジトリにアクセスしてバグ情報なども一元管理します。さらに、テスト時に生成されたレポートに含まれる例外の状況からその時点を再現してデバッグを実行したり、一連の操作を動画で再生したり、UIのテスト操作を自動で再現したりして、問題の再現を簡単にする機能も追加されています。ほか、テストの進捗、ビルドごとの状況、バグ、カバレッジ、などを自動的にグラフで見せるダッシュボードなども紹介されました。
製品構成をシンプルに
再び遠藤敦子さんが登壇。対応パートナー企業が多数ついていることが語られたあと、パートナーとして、NEC(業務システムの統合開発環境での対応)、NTTデータ(社内開発環境整備)、新日鐵ソリューションズ(開発環境のクラウド化)、MOTEX(ネットワーク管理製品LanScopeの開発)の4社の事例が紹介されました。
最後に、製品構成をシンプルにすることを発表。そして、リリーススケジュール、優待パック、開発者支援策、MCP認定資格などを発表して締めました。それぞれについては正式な発表やニュースをご参照ください。
日本Androidの会2010年4月のイベントに参加
イベント「日本Androidの会2010年4月のイベント」を聞きに行ってきました。お題が、Xperiaと、ユーザー参加型ストリートビュー。Xperiaとジオメディアという流行のネタで、ミーハーの私は興味深く聞いていました。スマートフォンで何気に参加して大きなものにつながる、というソーシャルメディア性が面白いですね。
以下、メモです。
「研究者もAndroidに期待」---東大瀬崎氏
まず、今回の会場である東大生産技術研究所の瀬崎先生が挨拶しました。専門が都市センシング関連ということで、いままで専用機器を使い「交渉力、コネ、予算が揃わないとできない」研究が、Androidというオープンなプラットフォームで安価にできるようになったとして、期待を語りました。なお、今回発表した石塚宏紀さんが瀬崎研でAndroidを使って研究した例です。
展望としては、たとえば発展途上国での医療診断やe-bankingでの可能性を挙げ、ただし脆弱な電力インフラへの対応が必要、と語りました。
「日本のAndroidアプリ開発者は桁違いの能力」---ソニーエリクソン小林氏
ソニーエリクソンの小林弘明さんが、XperiaとAndroidの可能性について語りました。資料はほかのイベントと兼用の部分も多いと前置きしていましたが、スマートフォンとソーシャルメディアについての感覚的な可能性の話が印象的でした。
小林さんは当初、スマートフォンより日本のケータイのほうが先にいっている、と思ったそうです。特にソニーエリクソンの端末は、録画したTVを転送して見れる機能があったりしますし。しかし、プレゼンや実機の動作を見て、動画やフルブラウザ、地図などの操作感から、「できると使えるは違う」と考え直したという話でした。
Xperiaの発売に向けては、アプリに対応してもらうことを重要視して、開発者に先行してコンタクトをとったそうです。それらのアプリをいくつか紹介しながら、2週間でAndroid独自機能を入れ込んで移植したり、キャリアやメーカーが一生懸命作っているのと同じものをほぼ個人でさっくり作ったりと、「Androidでアプリケーションを作る人は桁違い。バケモノ」と賛辞を送りました。そのうえで「Androidアプリケーションはハードの使い方をも劇的に進化させる」と感じたそうです。
Evernoteにも触れ、「現段階は詳しくいえない」と前置きしつつ、ソニーのAV製品のいくつかで似たようなことをやりたい、という構想も語りました。
スマートフォンのキラーアプリのひとつといえばTwitterです。ソニーエリクソンでも@Xperia_OPUSアカウントを作って活動したところ、バナーやRSSなどよりもTwitter経由のアクセスの流入が大きかったそうです。これを見て、「Twitterで、従来のケータイとはまったく違う新しいコミュニケーションスタイルになる」「こういうところから変化が起きてくるのではないか」という感触を得たという話が興味深く感じました。
後半の話は、対iPhoneについて。スティーブ・ジョブズのiPad発表スピーチで「モバイル機器の会社として、ノキアよりもサムスンよりもソニーよりも大きい」と言われてしまったという話をツカミにして、まずiPhone市場が桁違いに大きいということを語りました。
そこで、iPhoneの弱点として、キャリアのHandset Incentives(売り上げ奨励金)の問題や、アップルストアでの売り上げの問題を挙げ、これらはAndroidのチャンスであるという見方を述べました。
さらに、日本語入力、ソニーグループの連携、日本のAndroidアプリ開発者層の3つを挙げ、「Androidが勝てるのは日本」との主張を語りました。
最後に、アプリケーション開発者向け活動として、「DeveloperWorld」と「PlayNow」を紹介し、「ソニーなら21か国で売れる」とアピールして締めました。
「ユーザーから集めたメタデータ付き写真からストリートビュー」---東大石塚氏
先の瀬崎さんの研究室の石塚宏紀さんが、「Android端末を使ったPeople-Centric Sensingの魅力」という題で発表しました。
まず、センサーノードが相互接続して面的に情報を収集する「センサーネットワーク」の概念を紹介しました。ただし、センサーネットワークの課題として、センサーデバイスの設置密度(たくさん設置するのは大変)、設置センサデバイスのメンテナンス(バッテリや磨耗などの保守運用)、ネットワークインフラの3つがあります。
そこで出てきたのがPeople-Centric Sensing。人や車にセンサをつけて、歩き回ることで網羅的にセンシングする手法だそうです。国内のPeople-Centric Sensingの事例として、瀬崎研究室のAllibaプロジェクトが紹介されました。日本で一番暑いという館林市内の気温測定をするもので、KDDI研究所と共同でやったそうです。実はBREWアプリの開発が大変だったとのことです。
ただし弱点としては、センサデバイスの密度がエリア内の人に依存すること、同じセンサデバイスを持っていないといけないことがあります。そこで、スマートフォンを使うとこれらが解決できる、と話し、「Androidの登場でおもしろくなりそう、と感じている」と研究者としての期待を語りました。
実際にAndroidを使って石塚さん自身が研究しているのが「ユーザー参加型ストリートビューシステム」。Googleのストリートビューは便利ですが、たとえば夜の繁華街や花火の日の隅田川、朝のラッシュ、などの時間による変化はとらえきれません。そこで、一億総カメラマン時代を反映して、デジカメ画像に位置情報などの付いた「空間のメタ情報がついた写真」をユーザー参加型で集めてストリートビューとして集計する、という研究だそうです。見る側は、検索条件で気象や時間帯などを指定できるとか。
プロトタイプの撮影システムを使ってすでに実験した例を紹介しました。Android端末のほか、照度センサーをつないだノートPCを用意し、秋葉原で5人で3,500枚の写真(実際の撮影枚数は5,800枚)を撮影し、ストリートビューを生成するというものです。照度で分けて昼と夜のストリートビューを生成した例を画面で見せました。
ただし、スマートフォンのGPSや重力センサーの精度が悪いという問題も、質疑応答で語られました。今回の実験では、事前にOpenStreetMapに歩行者ルートのデータを入れて地図を作り、それをベースにマップマッチングで補正したそうです。
今後の計画としては、ビューアを開発すること、そして撮影アプリとセットして公開しすることでユーザーに参加してもらうことが語られました。さらには、Open Street MapのようにOpen Street Viewとかできればというビジョンが語られました。
「生命保険のカラクリ」
タイトルだけで判断して本を手に取らなかったり、読み飛ばした人ほど誤解しているようなので、その誤解を解くために改めて強調すれば、すべてが無料になるとか、無料になるべきだと主張したかったわけではない。製品がデジタル化されれば、“無料”が市場における価格設定のひとつになると言いたかった。
という言葉は、ベストセラー「FREE」の著者クリス・アンダーソンのインタビューから。
本書は、フリーミアム論のとおり、PDFで全文無償公開されたことで話題になった。私はPDF版をダウンロードした勢いで書籍も購入して読み、AAに描いたような釣られっぷり。
…じゃなくて本書の場合、無償公開の原資は、著者にとっては本業の生命保険契約であると思う(版元にとっては別として)。生命保険のビジネスはボリュームモデルではなくバリューモデルだし。本書の中でも著者は、人海戦術モデルによる生命保険営業は、メリットもあるがコスト高であると主張している。特に、従来の生命保険会社と異るモデルをウリにしているため、そのモデルを広く伝えて1つでも多く契約が成立するのが著者の狙いなのだろうと想像した。
著者が主張するのは「生命保険は複雑」ということ。それに対して著者とライフネット生命が提案するのが「シンプルでコストを抑えた生命保険」。本書からそのあたりの主張を拾ってみる。
- 従来の生保は高コスト。35~62%が経費や利益に当てられている。店頭販売やインターネットならコストを下げられる
- 生保には保障と貯蓄の2つの機能が組み合わせられている。貯蓄はほかの手段という選択肢があってもよい
- 終身保険は貯蓄
- ちなみにフランスでは生保の8割以上が貯蓄系商品
- 病気のリスクが過大に言われている
- 特約が多すぎる。不払いの原因にもなる
そのほか、契約を考えてない私も、転換セールスとか、シサ・リサ・ヒサとか、かんぽや共済との関係とか、興味深く読んだ。
「キリン」38巻、「HALMAN」
こりゃおもしれェ
今回は特に走りまくりで、うれしい。クランクケースをガリガリいわせたり、ダートラみたいに滑らせたり。やっぱり走ってナンボだよね。
と思ったら、次巻でWONDER NET WANDER編完結らしい。
「HALMAN」は東本昌平の掌編集。大人の童話っぽい話が並んでる。中でも「イエティ」がいいな。