2010年12月23日木曜日

CLR/H 第53回勉強会で利用したスライド・動画

需要があるとは思えませんが、第53回勉強会で利用したスライド、動画を公開します。

LTスライド
LTで利用した動画

セッションスライド

CLR/H 第53回 勉強会レポート

12/18 に行われた勉強会・・・らしいもののレポートです。
今回は「ハイパークリスマス」と銘打った事もあり、スピーカーの Microsoft エバンジェリストな方々や、CLR/H メンバーの方々も含め、色々な方向にやみくもなエネルギーを注ぎ込んでしまった勉強会になっていました。
今回もハンズオン、しかも WebMatrix だったのですが所用で参加できず・・・


1:クラウド?が語る PDC10 で発表した Azure 新機能が導く「約束の地」
Microsoft の Azure エバンジェリストとして、また生粋のガンダム好きとして著名な砂金さん(@shin135)のセッションです。今回の勉強会である意味最も力を入れてくださった方。そのお陰もあり今回Upできる写真は少ないですw

最近の大型アップデートもあり活気づいたかに思える Windows Azure 界隈ですが、今一度原点に立ち返り、「何故クラウドを利用するのか」から再度話そうという内容でした。

話の中で「実際に Azure を利用した例」として、携帯サイトとして利用した「デコともDX」、フランスのソーシャルゲーム「kobojo」の例を出しており、膨大なトラフィックを捌いた件と運用費を劇的にコストダウンすることが出来た件を出していました。このようなケースが自分たちの仕事としてあるかどうかは別としても、目的に添った利用を行った好例だと感じます。
 途中開発周りについての話に置いて、TechEd でお会いした @kamebuchi さんの ブチザッキ を紹介され、他にもコミュニティグループ jazug として各メンバーの方々が精力的に活動している事もアナウンスされていました。また Facebook と連携するプラグインが Codeplex で提供されているのをうけ、実際にライブで動作させてみるデモも行いました。


VM ロールについては、個人的にまだ利用目的をイメージできていないこともあるのですが、VM ロール上に展開した環境とオンプレミスな環境を統合的に管理する事を聞き、VDI イメージのベースとなる物を Azure 上でホストしておくのもアリかも、等と感じました。流石に直接 VDI 展開は・・・数年後、更に通信環境が進化しないと難しいですよねぇ。

後は、MSC2010 や PDC10JP でも披露されていた、Excel にて DataMarket から直接データを取得するデモや、よりオンプレミスな IIS に近くなった Full IIS 等の事も話されたという、激烈に盛りだくさんなセッションとなりました。


2:LightningTalk
  • ルービックキューブ2x2の最短手を求めることに挑戦(G-RABBIT) 
  • 煽りVを作ろう(Ahf) 
  • 私はこれで、会社辞めました(斎藤コア) 
  • クルシミマスが中止になった(サタン
今回は私も含めて4名の参加となりました。最初はおなじみジニアスですが・・・
ハイパークリスマスの命名・首謀者ということもあり着ぐるみでの登場ですw 内容は SQL Azure を利用し、2x2のルービックキューブの最短解を計算しよう!というもので、シンプルでかつインパクトのある内容でした。このあたり、さすがジニアス!、と言えます。
 続いてはの LT で、色々なツールで動画を作ろう!、という内容です。最初は Movie メーカー(Live Movie メーカー)だけで色々やっていたのですが、実は PowerPoint や OOo Impress 等のプレゼンソフトを組み合わせると、もっと色々面白くできるよ!というものでした。
 斎藤コアさんは Sitecore CMS の紹介。CMSはなかなか開発者として目に触れる機会が少ないのでその簡易性というか、容易にサイトのカスタマイズができる機能は羨ましいものです。
 最後は @mentaro 社長。Twitter 上で展開されていた Windows Phone 7 にまつわる話でした。相変わらずのテンポとセンスで非常に面白い内容で、「絶賛放置、マジ文鎮」「Excite 先生を利用して数十秒後に返したレスはただ一言・・・OK!」と、悲喜こもごもでしたが笑ってしまいました。


Ex:ハイパーおやつタイム
今回はミニカップケーキ!お勧めは「クマーケーキ」ですw


3:マイクロソフトの仮想化と運用管理はどう進化するか?

 高添さんのセッション。実はこの後の12/20にも Windows Intune のセミナーがあったりと、今月3回も札幌にこられていたりします。今回は仮想化についてのおさらいとこれから、という内容でした。
今回のセッションでは随所で関連する TechEd2010 でのセッションについての紹介があり、参加されていない方は資料公開されるのを待っていてくれ、との事。私は今年は参加していたので・・・。

Hyper-V Cloud プログラムの紹介については、私はあまり詳しく調べていなかったこともあり、「簡単に言えばドキュメント類の提供」という言葉を聞きようやくイメージできました。それとあわせて SSP 2.0 についても触れられ、System Center ブランドと組み合わせる事で一連の管理業務を自分たちで構築できる事を話されました。そして予算がないので SSP 2.0 の日本語化が進んでいないとも・・・w
 さらに、MED-V、APP-V、Server APP-V、Windows Intune などなど高添さんも盛りだくさんな内容でした。現在ベータ中の MED-V 2.0 での管理については SCCM 2007 R2 にて可能となる事、Azure 上へのアプリ配信で APP-V を利用できる事、とかなり興味深い話も随所に盛り込まれていました。高添さん本人が「自分の整理がつきました(笑)」と締められていましたが、管理系な人にとっても同様だったような気がします。私もかなり整理できた気がしていますw


4:Hyper-V ホストからゲストOSの状態を探る

 今回の勉強会で1・2を争うインパクトを誇る謎スピーカー、アリス。色々な意味でインパクトがあり、掲載する写真にはかなり悩みましたw 

Hyper-V 統合サービスのデータ交換機能(KVP Exchange)を利用すると、ネットワークがホスト・ゲスト間で無効であってもデータのやりとりが可能になるという内容でした。レジストリを利用することで交換を行うので、アイデア次第ではもっと色々できるかもしれない、と思うところもあり知っておくと後で助かる場面もありそうです。
 また個人的に思ったのは、全てにおいて PowerShell のスクリプトを利用していた点で、これは自前で管理ツールを用意しないといけないケースにおいて、非常にありがたいところです。ただ、PowerShell の有用性って思っているよりもアピールできていない気がするので、このあたりを色々な人に知ってもらいたいなぁと感じました。


5:クマーでもできる仮想化・私がカソウ化した理由

 最終セッションは、が仮想化について簡単なまとめを行う内容で前座をつとめ、その後メインイベントとして 天使ちゃん の「何がどうしてこうなったか」をやさぐれて語るセッションでした。なお、
当日まで高添さんがどのような内容で話されるかを知らなかった事もあり、思い切り私のセッションとかぶっていたりしますw

私のセッションでは簡単なまとめと、お金無いけど構築して試したいよね、という観点の内容でした。仮想化関連では、色々多くの技術が出ていますが「仮想化」という観点ではどれもこれも関係がある、技術個別にいくよりも全体的な視点で見てみるのはどうだ、という話を皮切りに、50万円のビデオボード・100万円の PCI-e な SSD RAID ボードなどなど、ブルジョワジーな商品を紹介、MED-V 2.0 は Microsoft Connect で今なら試すことができる、Hyper-V の登場で仮想化を試すのは非常に簡単なのでとりあえず触ってみる、という流れで話させて貰いました。

当然これらの話は前座ですw

本番はここから。天使ちゃん のやさぐれセッション。
 今までも「カソウ化しない!」と言い続けてきたハズなのに、気がつくとかなり力をいれてカソウ化してきた 天使ちゃん ですが、ここに至るまでの苦労と何故こんな事態になったのか、主犯は誰だ、といった過去を淡々と愚痴り続ける・・・非常に楽しいセッションですw
「ムダ毛処理は大変」「長い髪は大変」「トイレにいけない」「オカマはすごい」・・・ここだけ見ると何の集まりかが謎ですw

 こうして行われた第53回勉強会、スピーカーの皆さん、参加された皆さん、ご協力頂いたMicrosoft の皆さん、Ustream で参加された皆さん、本当にお疲れさまでした。
ちなみに・・・ジニアス曰く「一度で終わると思ったら大間違いだ!」だそうですw

2010年12月7日火曜日

SQL Server 動的ポート利用時のファイアウォール

デフォルトインスタンスとなる構成で動的ポートはそれほど問題がないんだけど、名前付きインスタンスになると色々と戸惑ったのでメモ。

SQL Server でファイアウォールの設定については大きく分けて二通り。

  1. プログラムごと許可する
  2. ポートを設定する

プログラムごとというのは SQL Server の実行プログラム、sqlservr.exe そのものを許可する方法。ものすごく手っ取り早いので多用するw もう一つのポートを設定するというのは、SQL Server 構成マネージャにて設定できるポートを許可するようにファイアウォールを設定しておく方法。通常はこれだけで済むんだけど、名前付きインスタンスの場合はもう少し複雑に。

SQL Server のアクセスを許可するための Windows ファイアウォールの構成 を参照してもらえれば大体わかると思うけど、プログラムごと許可する場合に覚えておいてもらいたいのは、SQL Browser を許可する事。こいつも許可してあれば接続は行えるようになる。

2010年12月3日金曜日

Windows 7 における VB6 の Strconv 関数の挙動

以前にTwitter上でつぶやいたにも関わらず、きれいさっぱり忘れてしまいなおかつその問題が別の案件で出てしまってさぁどうしよう、と悩んでしまったのでメモとして。

Shift-JIS を扱うプログラムではバイト単位に文字列を操作したいという要求が多いので、例えば「先頭5バイト」などといった場合、次のような書き方が多いと思う。

StrConv( LeftB ( StrConv ( [originalStrings], vbUniCode), 5), vbFromUnicode)

Vista まではこれで問題がないのだけど、Windows7ではStrconv関数内部で呼び出されているAPIの挙動が変化したので、これで抽出した場合でも2バイト文字の先頭1バイトは残ってしまう。VistaまではStrconv関数の処理結果として2バイト文字の先頭だけが残るようなケースでは、その部分を除去してくれていたのだけどWindows7ではそうならずにそのまま返却されてくるんだよねぇ。

対応策としては「1文字ずつ」処理するようなロジックに切り替えることぐらいしか思いついていません。大した手間でもないのでそれで十分だと思います・・・

2010年11月10日水曜日

SQLDO 11/8 第4回勉強会 レポート

 SQLDO 第 4 回勉強会として 11/8 にナイトセミナー形式にて行われました。今回は色々な事情があり、少数での勉強会となりましたが、通常のコミュニティ勉強会と異なるジャンルの話が聞けた大変有意義な勉強会になったと思います。

 ちなみにこの日の午後は MS 北海道のパートナー向けセミナーが開かれており、私と代表の tenki(@tenki28)さんが参加していました。その為昼 13 時から夜の 21 時まで MS 北海道支店にいりびたっていたという状態でした。「お腹がすいた」という tenki さんは何を思ったか・・・
何がどうなればコミュニティ勉強会で「かりんとう勉強会」になってしまうのか・・・どうしてこうなった?w

1:SQL Server Product Manager のお仕事
 [Blog:SQL Server Product Manager チームブログ]
 今回は SQL Server の Product Manager である松澤 純(@MatsuJun_MJ)さんにセッションを行ってもらえました。SQLDO だけでなく CLR/H も含め、技術系コミュの勉強会にエバンジェリスト以外の方が登壇してくれるのは私は初めてでしたので、密かに楽しみにしていたセッションでした。Tech Ed 2010 の際に初めてお会いして「 SQLDO に是非来てください!」と無理なお願いをした甲斐があったものです・・・w
 なかなか一般的には知られていない Product Manager というポジションの人間がどのような業務を行っているのか、という内容で思い切り内部な話題が大盛りという、レポートを書く側に取ってなかなか悩ましい内容というのもありますが、その分いつもとは異なる「濃さ」だったセッションだったと思います。でも細かい話は殆ど書けませんがw

 正直に言えば、私が思い描いていた Product Manager というイメージとはかなり異なり、「幅広い」「細かい」仕事が物凄く多いのだな、というのがありました。製品がRTMになり、せいぜいドキュメント等の日本語訳を用意する位だと思っていたら・・・半端じゃないほどの作業量がそこには隠されていたのが驚きです。パッケージやマニュアル、販促資料など大量の成果物を作成するに当たり物凄く細かいところまで気を配られているのがよくわかりました。このセッションを聞いた後では、色々な時に頂くこともある各種資料も見方がかなり変わりますね。

2:プログラマーにも知ってほしい統計情報
 もう一つのセッションは代表である tenki さんのセッションで、今回はレスポンスに影響を及ぼす統計情報についてのセッションでした。準備時間があまりなかったはずなのに、始まってみればしっかりとこんなタイトルスライドまで用意していたとは・・・
 データベースが効率的にデータを抽出するために用意された仕組みである統計情報、SQL Server は基本設定として「統計情報の自動作成」が ON になっているので、殆どの方は意識したことがないのではないでしょうか。
テーブルの各カラムに対してどのようなデータが存在するか、という分布情報が統計情報の正体であり、作成されるタイミングは SELECT にて抽出を行ったタイミングや、一定量のデータ更新が発生した場合だということで、このあたりは実際のデモも交えて説明を行いました。

 一応私もある程度は SQL Server と付き合ってきている( 4.21a からのお付き合いですw)ので、統計情報という言葉と表面的な挙動については知っているつもりでしたが、最初に作成されるタイミングについては初耳でした。また統計情報の更新におけるオーバーヘッドが気にするほどではないという点、統計情報の手動更新などなかなか意識していない部分の話が出てきていたと思います。

 欲を言えば、この統計情報がどのようにデータ抽出などに影響を与えているか、というデモもあればなぁ、と思っていたり。
 ちなみに tenki さんのセッションは「かりんとう勉強会」の本領発揮で、用意されたこれらかりんとうを参加者皆でつまみながら耳を傾ける、という・・・。
 このような形で行われました。ちなみに個人的に「黒こしょうかりんとう」がかなりのインパクトでちょっとやられそうでしたが、松澤さんはじめ半数ほどの方は「酒に合う!」という意見でした。チーズかりんとう、雪んこチョコかりんとう、牛乳黒糖かりんとうは私好みの味でした。生しょうゆはちょっと面白い味で最初は「生姜?」と思う口当たり、楓はかなりオーソドックス系で暖かい番茶が欲しくなりますね。

 この後、懇親会も行い更に色々とお話ができたのは非常に楽しかったです。松澤さんには是非とも真冬の北海道にまたいらしてほしいな、等と思いました。

2010年11月7日日曜日

CLR/H 第52回 勉強会レポート

11/06 に行われた CLR/H #52 の勉強会レポートです。今回は「 Windows Phone 7 デイ」と銘打って Windows Phone 7、そして XNA を用いての開発等前回に続き技術者魂を刺激する内容でした。残念ながら午前中から行われた XNA 開発のハンズオンには参加できませんでした・・・
1:Windows Phone 7 概要と最新情報

MS エバンジェリスト高橋 忍(@shinoblogavi)さんによる Windows Phone 7 セッション第一弾。まずは全体像や思想、開発環境についてなどの内容でした。高橋さんのセッションは MS の方らしくないトーク内容が含まれていたりするのでどう表現したものか非常に悩むのですが、「現時点ではリア充がターゲット」というインパクトのある発言が全てのような気がします。
後で実機も触らせて貰いましたが、新たな UI 上の試みとしてハブが導入され、現時点では世の中の多くが採用してる iPhone 系の UI とは全く異なる感覚となっています。そしてそれがかなり良い感触です。アプリを起動してどうこうするのではなく、まず必要そうな情報はメインとなるハブへ集約させる。これはかなりいいUXだと感じました。Windows Phone 7 の基本コンセプトは「メトロ」「タイブタイル」「ハブ」という事で、かなり考えられたのだろうな、というのを感じます。
またセッション中に「ハブとして○○という機能が欲しい」という要望については「 MS がやるには難しいところもある」「疑似ハブ的なアプリを作成してそこで補填する」という思想、日本でリリースするに当たって某 mixi をどう扱うか等といった非常に聞き応えのある内容でした。

2:ライトニングトーク
今回は4名の参加です。今回は私は不参加でしたが次はやるでよ・・・!
(1)Windows Phone 7 と SQLite ( @stknohg さん) [スライド]
丁度今回の勉強会テーマと合った内容で、Windows Phone 7 で SQLite を利用するための技法紹介。今のところ Windows Phone 7 上では内部で DB が利用できないとのことなので、このようにして SQLite を利用するのはかなり使いでがありそうだなぁ、と思います。

(2)Silverlight で mixi アプリをやってみた ( @plusism さん)
mixi アプリというとあまり MS 系の言語とは縁がなさそうですが Silverlight で作れます、というこれも個人的琴線に触れる内容でしたw あまり mixi アプリの動作とか基本的な部分を知らなかったので、Silverlight が利用できるのであれば色々な事ができそうだというのを実感しました。

(3)INSTALL MANIAX 4 Azure 祭り ~碧空の勇者たち~ ( @jkudo さん)
Install Maniax 4 についての話。今回は Windows Azure 上の IIS にどこまで OSS なものをインストールできるか!ということで、今までオンプレミスな IIS に対して行っていたのが今回はついに Azure 上へ。途中で紹介された「以前にインストールしたプロダクト」ということで物凄い数が並んでいましたが、半分もわかりませんでしたw

(4)CLR/H勉強会アンケートをExcelからWordに移植 ( @jsakamoto さん)
Excel で作成していたアンケート用紙を Word で作成するとこんな便利になったよ!という話で、私も Office 2010 になってからようやく Word を触り始めたというのもあり非常に共感しました。やはり文書は Word でw

Ex:おやつタイム
今回のおやつはケーキ!

3:Windows Phone 7 アプリケーション開発
高橋 忍(@shinoblogavi)さんのセッション二つ目。こちらではアプリケーション開発についてでした。今回のアップデート(?)では MS として恐らく初めてとなる下位互換をバッサリと切り捨てたこともあり、XNA と Silverlight のみが開発プラットフォームとなります。今までの Windows Mobile 開発で言われていた開発環境も今回からは無償提供。これは個人的にインパクトが大きい事の一つだと感じました。一部で言われているマルチタスク関係も、メインタスクでなくなったタイミングでスリープし戻ってきたときにレジュームがかかるという方式で、この方が電池の持ちなどでメリットがあるとの事。逆に今までの Windows Mobile でいかに動きっぱなしのプロセスが多くなりやすかったか、という問題の解消のようです。
アプリケーション間の連携は不可とのことですがこのあたりは「現時点では」という枕詞が常についてくるとのこと。ただ個人的には Windows Phone 7 のアドレス帳など既にクラウド上のデータとマージするような事がそれほど違和感ないのと、今現在携帯を利用している人の中でネットワークとやりとりしない人がどれくらいいるだろうか?と考えた時、AP 連携は実はそれほど大きい問題じゃないのかも知れない、と思いました。

また Expression Blend が物凄く素晴らしいツールというのを再確認w
そして提供予定の Windows Phone 7 用 Bingmap コントロールで表示される地図があまりにもヒドくて笑ってしまったw

4:XNA Game Studioマルチプラットフォーム開発
前回の LT で「半年間無収入で!」というヘビーな話をしてくれた大山(@mentaro)さんによる XNA 開発のセッション。以前から感じていた「トークが上手(セッションの行い方)」というのを今回も再確認。なんというか聞く・見入ってしまうのですよね。喋るだけでなくわかりやすい身振り手振りが丁度良く混じっているからなのでしょうか。
最初のつかみ(?)として、XNA は何の略称か、というネタで、「元々はちゃんとした略称があったんだけど、MS はそんなことはなかったことにするという姿勢」と、衝撃的なスタートでした。XNA 開発ツールのこれまでの歴史、開発における注意点(特にフォント)ときて、実際に簡易なアプリケーションをその場で作成、エミュレータ上の Windows Phone 7、Windows 7、そして XBox 360 でと正にクロスプラットフォーム動作する開発を説明してくれました。実際 XNA を利用して開発することで、クロスプラットフォーム開発が今まで以上に行いやすくなっているというのが素人目にも明らかで、これは今後色々いじくってみたい・・・と思いました。
個人的に魂揺さぶられたのが「C# らしいコードを書くとガベ(ガベージコレクション発動)る!」です。今の言語は色々と便利に発展していますが、ゲームの世界ではある程度の低レベルにおけるコーディング能力が必要だよなぁ、と感じます。レスポンスを重視する必要があるのですから、そこはやはり絶対必須かと。このあたりがウデの見せ所だな、というのが非常に魂揺さぶられます。前回の WebMatrix、SmallBasic、CodeContract といい最近は魂に響くのが多いですがw
このような謎弾幕STGっぽいサンプルデモをWindows7上とXBox360上で動作させてみたのは面白かったです(色々な意味でもw)
今回も非常に楽しめた内容でした。講師のお二人、参加者の皆さん、スタッフの方々、皆さんお疲れさまでした!そしてありがとうございます!


2010年10月31日日曜日

CLR/H 第51回 勉強会レポート

10/23に行われた勉強会のレポートです。

1:WebMatrix についてお話しませんか?
@jsakamoto さんによる WebMatrix を早くも取り上げたセッションです。今回は Microsoft Office Live Meeting を利用し遠方からもリアルタイムに参加できるよう試みたセッションでした。

まだベータ2ながらも今までと比較してかなり簡易な web サイト開発が行える点が非常に気になるWebMatrix。セッションの中ではその簡易さから「誰が利用するのか?」と言った、LightSwitch の際にも存在した問題が同じようにあるのが印象的でした。
今までの経緯や、Web Platform Installer を利用しての環境構築、利用されるデータストアなどに重点を置きその手軽さを垣間見た面白いセッションでした。
ただ個人的な感覚として、非技術者が利用するには微妙なポジションかな、と感じています。低予算で開発するようなケースには向いていると思いますが・・・。

ただ色々な事が簡易にできるのはかなり面白いツールとなると思いました。


Ex:おやつタイム
CLR/H恒例のおやつタイム。今回はたい焼きですー。

2:It's a SmallBasic
@salvage さんによる教育用言語 Small Basic についてのセッションです。

Small Basic という開発向けではなく教育向けとしてリリースされた言語についてのセッションで、.NET アセンブリを作る機能があったり、同じく .NET アセンブリを利用する機能があったりと、丁度 BASIC からプログラムに触れることになった私としては、非常に魂揺さぶられる内容でした。

IDE がかなり作り込まれているのと、言語仕様として非常に簡潔になっている点。BASIC言語の流れを感じさせる物で、アイデア次第ではもっと色々な事ができそうでした。ただ残念ながら色々な事情が重なって、機能追加するとか行おうとすると資料がない等の憂き目にあうというのが、全く持って残念です。

意外と新人研修あたりで使わせるというのも面白いんじゃないかな、と思ったりもしました。

3:契約による設計と Code Contracts 入門
@zecl さんによるCodeContractsというプログラム設計についてのセッションです。

いかにプログラムからバグを無くすかという話が主題で、そこから単体テストツール等に繋がる・・・予定だったのですが、参加者含めていいテンションになりかなりの前半部分で終了してしまいました。

事前条件などを組み合わせることにより、できるだけコンパイル時にはバグ発生の可能性を無くしていこうという考え方なのだそうですが、「Null はない」とかかなり衝撃の強い思想だったことが印象的です。私は DB の3値思想が体にしみこんでいるので、Null がないことのほうがどうにも・・・w

ただそのあたりがあるからこそ、バグが発生する可能性も高くなるという点は非常に同意ですので、個人的にももう少し勉強してみたいな、と感じました。

終わり際には @zecl さんがこの日のために用意されていたサンプルプロジェクトが数多くあった事を見せて貰ったのもあり、是非再度セッションを行って貰いたいなぁ、と思います。

2010年10月20日水曜日

ワークステーション(デスクトップ)のロックを検知

たまーにクライアントやターミナル環境を監査するようなAPが必要になった時に、ログイン・ログアウトと同じくらいロックしたことを検知したいときがあるんだよねぇ。

マネージでやる場合、こんな感じ。

Imports Microsoft.Win32

(中略)

AddHandler SystemEvents.SessionSwitch, AddressOf SessionSwitch

(中略)

Private Sub SessionSwitch(ByVal sender As Object, ByVal e As SessionSwitchEventArgs)
    Try
        Select Case
e.Reason
             Case SessionSwitchReason.SessionLock
                Debug.WriteLine("SessionLock")
           Case SessionSwitchReason.SessionUnlock
                Debug.WriteLine("SessionUnLock")
       End Select
    Catch
ex As Exception

    End Try
End Sub

大体こんな感じで、静的クラスの Microsoft.Win32.SystemEvents クラスの SessionSwitch イベントを利用してあげればOK。

もっと楽にやろうとするなら・・・System.ServiceProcess.ServiceBase を継承して、ってトコだろうなぁ。

2010年10月9日土曜日

CLR/H #50 勉強会の追記?


これが今回のおやつタイムに提供されたものの一つ、エクレア。


実は勉強会の最中、札幌の空はこのように珍しい色に染まっていました。写真だと少し変わって見えますが、ピンクというか紫というかちょっと普段の夕暮れとは異なる色合いでかなり綺麗。

2010年10月6日水曜日

2010年度 無償環境でシステム作成

以前は VS2005 + VWD2005 + ReportViewer + SQL Server Express という構成で無償ながらもかなりのシステム作成ができていたんだけど、VS2010 が登場してその様子はちょっと変わったんだよね。

ネックになるのは ReportViewer での帳票作成。VWD2010 で対応しなくなったのがなぁ・・・。やるとしたら次の二通り。

  • VWD2008 + ReportViewer 2008 コントロール
  • ReportBuilder3.0で作成→名前空間の手作業による変更

このどっちかになるかな。ReportBuilderで生成した RDLC は VS で生成する RDLC とバージョンの扱いが異なる(構造はどうやら同一)なのでそこだけ対応すればOK。

2010年10月3日日曜日

CLR/H 第50回 勉強会レポート

9/25 に行われた CLR/H 第 50 回勉強会のレポートです。
1:Visual Studio 2010 で最速RIAアプリケーション作成? (スライド)
インフラジスティックスジャパン株式会社より池原さん( @Neri78 )のセッション。出だしに軽いジャブを含ませたのですが残念ながらヒットせず…。セッションの題材は現在ベータ 1 として提供されている Lightswitch でした。
最初から「 5分で作る!」というデモを用いて Lightswitch の手軽さを説明。LT 用にも見えるタイマーをあらかじめ用意した上でデモに臨みました。実際に 5分という短い時間の中、簡易なデータエントリ AP を動作するまでそれほど大した操作もせずに行えるあたり、Lightswitch といツールの可能性が見えた気がします。Azure にも対応しているという事ですので、今後 Lightswitch を利用し SQL Azure 上のデータを利用する AP を作成する事も必要になるかも知れません。
またカスタマイズ関係についても言及され、「エンティティ間での値計算などを行う際にコードでの記述が可能」「実行しながらの UI カスタマイズが楽」「検証ロジックを独自コーディング可能」というメリットと、「完全カスタマイズは難しそう」というデメリットを説明されました。ただしカスタムコントロールを利用できるので項目単位であれば色々な事ができそうだという事(勿論ベータ 1 だからまだどうなるかは分からない)で、今後も注目する点は多いように思えました。
Lightswitch 自体は Silverlight を利用しているので、NetAdvantage for Silverlight Data Visualizaion に含まれている地図コントロールを Lightswitch 上にて利用するデモも行われ、別途コントロールを利用する事により純粋に Lightswitch のみで構築するよりもかなり UX に富んだ UI を構築できる事を見せてもらえました。既に Silverlight で AP 開発を行っている場合、Lightswitch を利用する事はかなりメリットがありそうだ、と感じました。
セッションの最後では「 Lightswitch は誰が使うのでしょうか? 」という質問が投げかけられました。個人的には「非開発者であり ITPro が主ターゲット」と見ていたのですが、現時点では公式アナウンスもなく海外でも明言はされていない様子。ただカスタマイズを行うにはある程度知識が必要だという点、Visual Studio の操作を知らないと難しいのではないかという点があることより、やや開発者向けなのではないかという雰囲気が感じられました。会場であがった意見としては「 Access と同じ層を狙っているのでは?」という意見もあり、今後の方向性が注目されるところです。

2:Lightning Talks

今回は告知宣伝系と普通に LT とが混ざった形となっていました。

A) @tenki28 さんの 「SQLDO コミュニティ紹介」
B) @twit_ahf による 「伝票入力にまうわる失敗」
C) @mentaro さんの 「起業までの道のり」
D) @Tocchann さんの 「わんくま同盟紹介」
E) @fukuchima さんの「和風で行こう!」
F) @Neri78 さんの 「NetAdvantage 製品紹介」

最近起業した @mentaro さんの LT は非常に濃厚な話ですが、軽快な口調でサクサクと行われたのが印象的でした。
「半年間無収入で!」というのが物凄く衝撃的です。実際に起業されている方の言葉というのもあり、物凄く説得力がありました。
@fukuchima さんの LT は Tech Ed Japan 2010 近辺で一部界隈を賑わしたキーワードが元ネタになっていた、というのを後日知りました。@fukuchima さんは自社製品である InputMan での思いやりある UX というスピーディかつテンポが良い喋りが印象的でした。ネタも適度に盛り込まれていましたし。

Bonus Stage:おやつタイム

CLR/H と SQLDO、双方のコミュニティが勉強会を行う際に「必須」であるおやつタイムは今回も万全。ドーナッツやロールケーキなどが飲み物と共に振る舞われています。

3:WiX toolset で始める WIndows Installer 開発入門(スライド)
わんくま同盟より来ていただいた高萩さん( @Tocchann )のセッション。「インストーラとはどのようなものか」に始まり実際にインストーラを作成するデモまで行われたセッションでした。
インストーラと言われるものについて、WIndows 以前から現在にいたるまでをざっと説明し、そこを踏まえた形でインストーラに求められるものを定義しました。インストーラで行うべき事、行うべきではない事を改めて押さえる事で Windows Installer で何を行うかというのを分かりやすく説明してもらえたと思います。
リレーショナルデータベースであり、作成時も実行時もデータベースとしてアクセスを行い動作するという、Windows Installer を利用した事のない方には驚かれる部分や、Product・Feature・Component と製品を構成する要素の説明。WiX toolset を利用するための環境構築など、普段インストーラに触れてない方を主軸にした貴重なセッションでした。
また現役 MVP である高萩さんが参考にされている資料についても補足説明があり、非常に有益なセッションでした。Designed for Windows XP を参考にするのが迷った際の指標となる、というのは非常にありがたい情報です。

Visual Studio 上で XML を直接編集してのインストーラ作成をライブコーディング的に行うことで、思っているよりも簡単にできるという事を目にすることができたと思います。

高萩さんのセッションで面白いと思ったのはその進め方でした。スピーカー席からの喋りだけではなく、参加者側へ視線や体を向け、「参加者達と一緒に進めている」と感じさせる方法で、これは喋る側へと回った際には是非実行してみたいと感じました。
個人的に業務としてパッケージ製品を作成しているのもあり、多少は Windows Installer と触れていたのですが、改めて体系だったセッションを行っていただけたのが非常に有難かったです。
パッケージ製品だけに限らず業務システムを作成する人にとっては、結構利用する機会が多いかと思っていたのですが、.NET になって配布が楽になったことも手伝いあまり多くないのかも知れません。ですが利用することにより、さらにしっかりとした配布が可能になる点は大きいと思います。是非利用して貰いたいものです。

4:Windows フォーム脳から WPF 脳への移行(スライド)
グレープシティ株式会社の八巻さん( @yamaki00 )のセッション。Windows Forms 時代におけるプログラミング方法から、WPF 時代における方法へどのように切り替えていくか、というセッションでした。
WPF 時代になって「データを起点に考える」という思想の変更が重要、GUI を起点とするのではなく「データをどのように視覚化するか」という、逆の発想が重要だというのが全体を通して言われたかった事と思います。
丁度 LT にて私が「データバインディング大事!」という内容を扱った事もあり、改めてデータバインディングがこれからも大きな影響を与える事が実感できたと思います。

データバインディングの基本、そしてそれを用いた画面側のロジックを変更せずに表示内容を切り替えるデモ。そして画像の一覧表示機能を持つ AP の実装デモ。余談ですが非開発者である今回のカメラマンは、このデモが一番わかりやすく興味を持った、と言っていました。
また最近話題にあがることが増えてきている、MVVM についても「重要なのは目的とその考え方」とこだわりすぎないことを言われました。セッション中に言われた最大の目的は「テストを行いやすくする」事。開発者であれば非常に納得する話です。
しかしセッションのスライドにて、某漫画のネタを随所にちりばめてきたこともあり非常にインパクトの強いセッションであったと感じます。良い意味で反則。

Extra Stage:抽選会

今回は各スピーカーの方々やスポンサー企業様から提供された品々が多く、一人一つは何かがあたるというすさまじい状態となっていました。提供してくださった皆様にはこの場を借りてお礼申し上げます。