ソフトウェア開発」カテゴリーアーカイブ

Silverlight SuberanighTalkに行ってきた

Microsoftで行われたSilverlight SuberanighTalk(スベラナイトーク→滑らない話)というイベントに顔を出してきました。

Silverlight SuberanighTalk
http://developerscafe.jp/

今回はマイクロソフトが主催ではなく

  1. 株式会社アークウェイ
  2. 株式会社アゼスト
  3. NRIネットワークコミュニケーションズ
  4. 株式会社セカンドファクトリー
  5. 株式会社ピーク・ワン

の共催という形で行われました。いつも開催されるイベントとは異なり、なかなかバラエティ溢れる内容になって面白かったです。形式がまず斬新でした

●ルール

  1. セッション時間は10分
  2. 面白いことを基本的に考える
  3. 面白くなかったら(滑った場合)イエローカードが出される
  4. あまりにも面白くなかった場合は時間の前に終了

講演者はなかなかのプレッシャーがかかったのではないでしょうか。内容としてはβな技術にありがちな問題点や不満点もあったり、新技術ならではの面白さの紹介があったりと”勉強会”っていうか、イベントとして面白い試みだったと思います。こういう場合は一部ウケを狙いすぎてしまって難しいですね(^^;

今日一番驚いたのはDeepZoomを使用する場合の座標軸の話。通常のイメージするXY座標と方向が逆だったり、座標の単位が実にわかりづらい仕様だったりともうわけがわからない。これ、知らなかったらすごい苦労するかもしれないな。このあたり、実際にリリースされる頃には変わるのだろうか?それともこのままなのか?そもそも何でこんな風なつくりになっているのだろうか。なぞは深まるばかりです。

ガリガリ君 (コロコロドラゴンコミックス)

ガリガリ君 (コロコロドラゴンコミックス)

SilverlightをApacheで

Silverlight 2をApacheで使うためのイロハ–Silverlight 2の通信機能 (ZD Net)
http://builder.japan.zdnet.com/sp/silverlight-2-with-apache-2008/story/0,3800086670,20374624,00.htm

β2リリースも間近になってきて、ちょこちょことSilverlight関連の記事も増えてきました。ZD NetではApache上で動かすための連載記事がスタート。ただし、これはサーバーサイドがPHPで記述されたもののようですね。私自身はPHPに詳しくないので連載を通して触りだけでも見ておこうかなと思っています。

Silverlight2が今週リリース!

家はまだまだダンボールハウス状態です。ネットもつながらないので不便。

なお記さんのブログでも取り上げられていますが、ついにSilverlight2β2の告知がようやく出ました

Silverlight 2 Beta 2がTech・Ed 2008で発表!リリースは今週中 (なお記)
http://d.hatena.ne.jp/naoki0311/20080604/1212529122

New Features in Silverlight 2 Beta 2  (Dan Wahlin’s WebLog)
http://weblogs.asp.net/dwahlin/archive/2008/06/03/new-features-in-silverlight-2-beta-2.aspx

ようやくのβ2リリースですね。確か、β2ではGoLiveライセンスで提供されるんじゃなかったかな?それを考えると、とても意味のあるリリースになりますね。WPFと比べるとコントロール数に不足感が否めないSilverlight。もちろん、表現方法と言う意味で既存コントロールに近い形で提供する事や異なる表現で提供する事もできるのだろうけどやっぱり個人的にはもっと欲しい。コンボボックスがないとか。。。自作をわざわざするのも面倒だしなぁ。って事でβ2でコントロールが一気に増えないかな!って思っていたのですが、上記ブログを見る限りでわかるのは

  1. TabControl
  2. text wrapping and scrollbars for TextBox

くらい。「 Most controls are now in the runtime instead of packaged with the application.」ってのがちょっと気になるけど、いまいちいい訳が思いつかないな。何にせよ、今週中にいろいろと情報が出てくるだろうからとても楽しみです。っていうか、今週中リリースなんだから実際に触れるだろうし。

あぁーーー!!
引っ越ししてまだ家ではネットつながってないんですよね。と言うわけで平日にリリースしてほしいな。大丈夫ですよね?

今更ながらAjaxを勉強

今後、Silverlightが結構な勢いではやってくるんじゃないかな~と個人的には思っている。思ってはいるものの、会社で仕事として使うのにはまだ早いとも感じている。確かにMicrosoftが力を入れてきているのはわかるし、実際にいいものができるんだと思う。ただ、これまでもそうだったのだが、新しい技術が出て最初というのは問題があれこれと付きまとっていく。WindowsがSP出るまで安心できない(出ても安心はできないことが多いんだけど)ように実際の業務で使うのにはよほどの営業的なアピールを必要としてない限り早いのかとも思う。

というわけで、Silverlightに関しては個人的に細々と調べていこうかと考えている。いつか会社を見返してやるために。そう、いつだって私は偏屈である。

というわけで、現状でWeb技術と言えば~的な発想でAjaxに白羽の矢がたった。恥ずかしながら、私は今までまともにこの手の技術をちゃんと勉強はしていない。確かに初代のASP(ActiveServerPage)をいじっていたのでJavaScriptやVBScriptは多少はやってはいるのだが、勉強して~っていうより”無理やりやっている”って感じが多かった。というわけでちょうどよさそうな本を買ってみた

Ajaxの基本と実践 システム開発に役立つ知識とテクニック

Ajaxの基本と実践 システム開発に役立つ知識とテクニック

ただ単にAjaxの本となるとWebページ用の内容が多かったりするんだけど、この本はどちらかというとシステム開発者向けに書かれているために、WebアプリケーションをAjax・JavaScript・CSSを使って構築しようと考えている私にはいい勉強になるのではないかと思っている。

ところどころ題材として登場する画面も受注登録機能であったりと、とても仕事で使う事に即した内容になっていると思う。どちらかというと、入門書に近い位置づけになるのだとは思う。もう少し突っ込んだ形では別の本がいいのかもしれない。

うーん、Ajax勉強する上でいい本って何があるのかな?

Digital Users Day

Microsoft主催のDigitalUsersDayというイベントに行ってきました。

デジタルビデオやデジタルカメラを使った映像コンテンツ等に対するイベントですね。今まで私がよく参加する開発者向けのイベントではなく、どちらかというと一般向けのイベントです。今回私がこのイベントに参加したのは

  1. 家のデジタルビデオで撮った動画を編集してない(しなきゃ;;)
  2. SilverLightのセッションでどんなことをやるのか気になった

ってのが理由です。せっかくデジタルビデオを良いの買ったんだからもう少し有効利用したい!ってのが一番の目的。それにまだβ技術であるSilverLightをこういう一般向けイベントでどう宣伝するのかが気になった。

セッションは3つ。一つの基調講演と二つのブレイクアウトセッションだったのだが、基調講演はとてもビデオ編集をしたくなった。頑張らなければ。

SilverLightのセッションは、意外と面白かった。どうしても普段は「XAMLが~」とか「WPFと比べて~」とかっていう話ばかり聞いていたので、一般レベルでどういうところから行くのかってのの一端が見れた気がする。今回紹介されたのは「PhotoZoom」サービスを使った画像コンテンツの共有とブログ等での利用。「SilverLightStreaming」サービスによる動画配信だった

PhotoZoom
http://photozoom.mslivelabs.com/Default.aspx

Silverlight Streaming
http://www.microsoft.com/silverlight/overview/streaming.aspx

PhotoZoomは早速使えそうだったので試してみようと思い、今回会場で撮影した(と言っても携帯で撮ったのでたいして解像度がないのだが)写真をアップロードしてみた。。。。が

アップロード自体は何とかできたのだが、ブログへ反映するための「iframe」タグを取得することができない。おかしいな?って色々見ていると右下のほうに

f:id:krote:20080511232536j:image

「Processing album zoom data」って文字がある。つまり、まだ作成中って事ですね。どうやらアルバムを作った直後なのか、アップロードをした直後なのか。すぐには使えないみたいだ。

って、あれこれやっているうちに出来上がっていた。諦めていつもどおりはてなにアップロードしたりなんだりした後で気がついたので。。1時間くらいだろうか?それなりに時間はかかるものの、アップロードしたコンテンツそのままが表示されるわけではないのでしょうがないのかもしれない。

<iframe src=”http://silverlight.services.live.com/invoke/14030/zf2a1aa0af0434790b81de500e0c885d2/iframe.html” scrolling=”no” frameborder=”0″ width=”100%” height=”100%”></iframe>

あれ?うまくいかない。

はてなダイアリーでは「iframe」を使用することができないらしい。ココログとかでは出来てたのにな~。ちょっと残念だと思っていたら、うまい方法をしている人がいた

はてなダイアリーに任意のiframeを貼り付ける
http://d.hatena.ne.jp/Gimite/20080114/1200313343

こちらのブログでiframeをgoogleガジェットに変換してくれるコンバーターを公開していた。早速使ってみた。

<script src=”http://gmodules.com/ig/ifr?url=http://gimite.net/rails/iframe_gadget/xml%3Fscrolling%3Dfalse%26url%3Dhttp://silverlight.services.live.com/invoke/14030/zf2a1aa0af0434790b81de500e0c885d2/iframe.html&synd=open&w=100%&h=100%&title=&border=%23ffffff%7C3px%2C1px+solid+%23999999&output=js”></script>

うまくいかない。なんでだーー!!

ブログパーツ貼り付けタグのまとめ+Googleガジェット@はてな
http://labs.unoh.net/2007/08/google_1.html

これを見ると、はてなにGoogleガジェットを貼り付けるのは結構厳しいらしい。むーむーむー!とはいえ、解決策がよくわからない。

とうだうだと駆け回っていると、いつの間にかコメントに神が表れていた。コンバーターを作成してくれたGimiteさんである。なんてタイムリーなんだ。ご指摘の通りに変更してみる

うまくできただろうか?今回の絵は携帯画像なのではっきり言ってDeepZoomの価値は全くないのだが、今まであまり価値を見いだせなかったデジカメの高画質もこういう形で使えるのであれば、一般的な普及も意外と簡単にいくのではないか?と思った。せっかく高画質でとってもブログにアップロードする時にトリミングしたり画質を落としたりしていてはあまり意味がないからねぇ。

さて、簡単にできると思っていたこれが、とんでもなく躓いてしまった。嫁がパソコン前でうだうだしている私を見て怒り狂い始めてしまった。。。

かっこいい!

川西さんのブログで紹介されていたSilverLightのサンプル。かっこいい!

川西 裕幸のブログ
http://blogs.msdn.com/hiroyuk/archive/2008/05/09/8477812.aspx

MS CUI Patient Journey Demonstrator
http://www.mscui.net/PatientJourneyDemonstrator/

とくに一番右側のデモが私はお気に入り。思わずゴリゴリと遊んでしまった(笑)本当に「こんな場面でこんなUIが求められるのか?」って問題はあるのかもしれないけど、純粋に触って楽しいものを作れるというのはいいですね。それにしてもかっこいいな。

うーん、こういうのが作れるように頑張らなければ!。。。とは思うもののどこから手をつけたものか。ない頭をひねって考えなければ。

Yahoo!が!

ヤフーがSilverlight採用、2008年6月にサービス開始
http://itpro.nikkeibp.co.jp/article/NEWS/20080409/298468/

MicrosoftとアメリカYahooでは買収を巡ってあれこれしているみたいですが、日本のYahooはマイクロソフトと仲良くしていくのかな?SilverLightをYahoo動画等に使う形でのマルチプラットフォームをYahoo!Japanでは考えたようです。そう考えると、日本単体で考えればSilverLightの普及率は一気に上がるはず。

でも、これも結局は動画って使い方なんだよね。どこかもう少しアプリケーションで使わないかな~

SilverLightでのUnitTest

SilverLightでのUnitTestが紹介されている記事があった

Jeff Wilcox
Unit Testing with Silverlight 2
http://www.jeff.wilcox.name/2008/03/31/silverlight2-unit-testing/

Video walkthrough of the Silverlight 2 control unit tests
http://www.jeff.wilcox.name/2008/03/20/vid-silverlight-control-ut/

SilverLightに対してのテストを行うにはどうしたらいいのだろうかな~って思っていたところなのでナイスタイミングでありますよ!VideoのほうではおそらくMixで発表された内容だとは思うのですが、実際にSilverLightのUnitTestが動いているのが見れてなかなか面白い。英語は苦手だけど。。。

ソフトウェアを取り巻くテストの手法というのはここのところあれこれ出てきて、正直私はまだまだ勉強が足りない。会社の現場では、それらの潮流に全くと言っていいほど乗れてないのでなおさら取り残されている感じがする。

UnitTestをこういう形で提供されるのであれば、この周りを根つめて勉強してみるのもありなのかもしれない。開発手法もテスト手法も、知れば知るほど自分の無知さに気がつくので面白いですね。それだけまだ私は知ることができるのだ。頑張らねばいけない。

SilverLight Tutorial アップデート

ScottさんのSilverLightチュートリアルが更新されていました。

ScottGu’s Blog
First Look at Using Expression Blend with Silverlight 2
http://weblogs.asp.net/scottgu/archive/2008/02/28/first-look-at-using-expression-blend-with-silverlight-2.aspx

今までは基本的にVisualStudio2008を使用してのSilverLight製作でした。つまりUIのデザインも基本的にはVisualStudio上でXAMLを直接修正する形でしかなかったのです。WPFではできるVisualStudioのプレビューを使った修正もできない現在の状態ではつらいですね。

というわけなのか、Blendを使ってのチュートリアルがトップにのっかっていました。

それにしてもこのチャットの文字。。。

f:id:krote:20080401231814j:image

すごい字体だな。。。これは。

た、たのしそう

Silverlight Tutorial Part 6: Using User Controls to Implement Master/Detail Scenarios

ScottさんのTutorialもようやく6番目まできました。

Silverlight Tutorial Part 6: Using User Controls to Implement Master/Detail Scenarios
http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-6-using-user-controls-to-implement-master-detail-scenarios.aspx

今回はちょっとしたダイアログを出して詳細を表示するんですね。よくよく見ていると、ダイアログを出すというよりは表面にあらかじめパネルを用意しておいて、それを非表示。リストを選択したときだけ表示する。。。というやり方のようですが。うーん、やっぱりダイアログみたいなものはウェブではウィンドウを別に出すんだろうかな~。とりあえず、気を取り直してやってみました。

はい、だんだんページに露出するソースの量が減っていっている上にそのままではいかないです。

まず、Page.xamlに追加したStoryDetailsViewを認識させるためにネームスペースを追加します。

xmlns:Digg="clr-namespace:DiggSample;assembly=DiggSample"

そしてDiggSampleクラスのメンバUriの型をstring→Uriへ変えて、Page.xaml.csの

HrefLink = ((string)story.Attribute("link")).Trim(),
を
HrefLink = new Uri((string)story.Attribute("link")),

へ、変更。

ちなみに、私は落としてきたサンプルを見ながらApp.xaml内のスタイルは作ってしまいました。とりあえず、ぺたぺたと

<Style x:Key="DiggPanel" TargetType="StackPanel">
<Setter Property="Margin" Value="10" />
<Setter Property="Width" Value="55" />
<Setter Property="Height" Value="55" />
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0,5,1" StartPoint="0,5,0" >
<GradientStop Color="#FFFFF098" />
<GradientStop Color="#FFFFF9D4" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="NumDigsBlock" TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="FontSize" Value="18" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="Foreground" Value="DarkSlateGray" />
</Style>
<Style x:Key="NumDigsSubBlock" TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="FontSize" Value="12" />
<Setter Property="Foreground" Value="DarkSlateGray" />
</Style>
<Style x:Key="ThumbnailPreview" TargetType="Image">
<Setter Property="Margin" Value="7,7,5,5" />
<Setter Property="Height" Value="55" />
</Style>
<Style x:Key="TitleBlock" TargetType="TextBlock">
<Setter Property="FontFamily" Value="Trebuchet MS" />
<Setter Property="TextAlignment" Value="Left" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style x:Key="CloseButton" TargetType="Button">
<Setter Property="HorizontalAlignment" Value="Right"/>
<Setter Property="Width" Value="50" />
<Setter Property="Height" Value="25" />
</Style>
<Style x:Key="TitleLink" TargetType="HyperlinkButton">
<Setter Property="FontFamily" Value="Trebuchet MS"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="FontSize" Value="28"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Width" Value="500"/>
<Setter Property="Grid.Row" Value="0"/>
<Setter Property="Grid.Column" Value="1"/>
<Setter Property="Grid.ColumnSpan" Value="2"/>
</Style>
<Style x:Key="DiggPanelDetail" TargetType="StackPanel">
<Setter Property="Margin" Value="10"/>
<Setter Property="Width" Value="55"/>
<Setter Property="Height" Value="55"/>
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFFF098"/>
<GradientStop Color="#FFFFF9D4" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Grid.Row" Value="1"/>
<Setter Property="Grid.Column" Value="0"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Top"/>
</Style>
<Style x:Key="DescriptionBlock" TargetType="TextBlock">
<Setter Property="FontFamily" Value="Trebuchet MS"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="Foreground" Value="white"/>
<Setter Property="Width" Value="380"/>
<Setter Property="Grid.Row" Value="1"/>
<Setter Property="Grid.Column" Value="1"/>
</Style>
<Style x:Key="DetailsThumbNailPreview" TargetType="Image">
<Setter Property="Margin" Value="10, 0, 10, 0"/>
<Setter Property="Width" Value="100"/>
<Setter Property="Grid.Row" Value="1"/>
<Setter Property="Grid.Column" Value="2"/>
</Style>
<Style x:Key="PosterBlock" TargetType="TextBlock">
<Setter Property="Foreground" Value="white"/>
<Setter Property="FontFamily" Value="Trebuchet MS"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
</Style>
<Style x:Key="SubmitDetails" TargetType="StackPanel">
<Setter Property="Grid.Row" Value="2"/>
<Setter Property="Grid.Column" Value="1"/>
<Setter Property="Orientation" Value="Horizontal"/>
</Style>

変更点そのものはたいしてなかったのですが、Uriの所に気付かず、画面が真っ白の状態になってしまって時間をロスしてしまいました。うーむ。

スタイル指定は便利なようで、これくらいのデモを作る分には少し面倒だなぁ。