メイン

2010年03月14日

Tartoies SVNのセットアップ手順(ビデオ)

人生初YouTube投稿だったり。

やっぱり音(解説)がないと変だからちゃんとヘッドセット買おう。

2010年03月12日

テスト二題

ちょうどソフトウェアテストに関するBlog記事が二つあがったので紹介。

そろそろ大規模ソフトウェア開発に一言いっておくか。デイリービルドとリグレッションテスト

よしおか氏によるOracle在籍当時のデイリービルドとリグレッションテストに関する記事。

最新のソースをチェックアウトする→コードとテストを書く→入力と出力のテストデータを作る→テストする→修正→テスト通るまで繰り返す→同僚によるレビュー→チェックイン→デーリービルド&リグレッションテスト→次の日の朝→テスト結果の確認

このような1日のサイクルだったらしい。

テストの重要性に言及。

新規に開発するプログラムテストがなければレガシーシステムである。そして初めからテストを書いていれば、実装したプログラムの機能を確認できて、安心であり、心の平静が保てる。

テスト駆動開発の効果はどのくらいある? - Publickey

TDDはコード量を若干上げるが単体レベルでのバグを90%~30%減少させ品質を向上させるというレポートに関する記事。

TDDは一人からでも始められるので始めていたらどうだろうというまとめ。

ASP.NET MVC 2 RTM

ということで、これを待望にしていた皆さんおめでとうございます。

Download details: ASP.NET MVC 2 RTM

この公開は.NET 3.5/VS2008向けです。.NET4/VS10向けはVS10の製品リリースにあわせた方になると思います。

2010年03月06日

Ch9 : Your Rx.NET Prescription Has Been Refilled

Get Microsoft Silverlight

Your Rx.NET Prescription Has Been Refilled | Rx Dev Videos | Channel 9

その筋の人向け。

2010年03月03日

NUnit 2.5で追加されたAssert.Throwsでの注意点

NUnit 2.5からAssert.Throwsというメソッドが追加されていて、インラインでエクセプションのテストができるように拡張されています。

こんな感じですね。

   1:  private void ExceptionDashimakuri(string a) {
   2:      if (a == null) {
   3:          throw new ArgumentException("a is Null !!");
   4:      }
   5:  }
   6:   
   7:  [Test]
   8:  public void TestExceptionDashimakuri() {
   9:      string a = null;
  10:      var ex = Assert.Throws<ArgumentException>(
  11:              () => ExceptionDashimakuri(a)
  12:          );
  13:      Assert.That(ex.Message == "a is Null !!");
  14:  }

インラインで想定されているExceptionが飛んできているか、その後Assert.That等によってメッセージ内容が適切か、Exceptionのソースが適切か等も確認することができます。

Assert.Throwsすばらしいですね。見事ですねという感じなのですが、テスト実行の時に一つだけ注意点があります。Visual Studio上でテスト実行する場合には「必ずDebug無しで実行する」事です。Debug実行してしまうとVisual Studioに例外がハンドルされていないって冷たく言われます。。。(常識ですよねそうですよね。。。30分ぐらい悩んじゃった。)

しかし、日本語の情報無いなー。

Tech Fest 2010

Tech FestはMicrosoft Research(MSR)の一般への研究発表の場でいわば学園祭です。

Get Microsoft Silverlight

上は責任者であるリチャード・ラシッドによるイントロデュースです。

また、これ以外にもTech Festに発表された研究がCh9で公開されています。

http://channel9.msdn.com/tags/TechFest/

Natural User Interfaces with Physiological Sensing | TechFest 2010 | Channel 9

Mobile Surface | TechFest 2010 | Channel 9

Project Gustav: Immersive Digital Painting | TechFest 2010 | Channel 9

TechFest 2010: Project Gustav | Laura Foy | Channel 9

2010年03月02日

I18N:縦書きの話

Sorting it all outで久しぶりの日本語だと思ったら縦書きの話でした。

ちなみに最近ではアジア言語でも縦書きが常用されるのは日本語だけとか。

Sorting it all Out : When something is just flipping wrong

JapanShirt
(元記事から引用)

縦書きのバランスの話もありますが、主な内容はプリンタ「ー」の音をのばす横棒の話です。

多くの日本人ならまず間違えない漢字の「一」と「ー」が違うというのは、漢字の意味なんて当然知らないし、漢字が絵にしか見えない人たちにとっては、まぁ区別つかないよね。ましてや縦書きになったら字が反転して回転するなんて考えもしないでしょう。(おっと、「ー」は漢字じゃないやw)

ということで、「ニホンゴムズカシイネ」という例の一つですね。

(テクニカルな話は是非もと記事を)

2010年02月25日

TechDays 2010 2日目 T2-302 Visual Studio 2010で実践するアジャイル開発 #techdaysj

講師:長沢智治

VS2010におけるチーム開発機能、ユニットテストツール、コード分析機能、モデリング機能とチーム開発環境との連携、仮想化を使ったテスト環境の管理ツール、VSとは独立したテストスィートに関する説明でした。

VS開発チームが実際にVSを使いScrumで開発を行っており、そのフィードバッグが製品に良く反映されているのだと思います。

VSのコードエディタ上でメソッド選択して、リバースでUMLのおシーケンス図を書いてくれるのにはちょっと感動しました。(逆はできませんけど)

あるいみ、VSのUMLモデリング機能はものすごくスケッチャー向けの機能なんだと思います。

ではtsudaりのまとめ。

TechDays 2010 2日目 T2-306 WCF Data Servicesの新機能とOpen Data Protocol #techdaysj

講師:小高太郎

Open Data Protocol(OData)とそれを.NET上で実現するWCF Data Servicesについての説明でした。

OSSのサーバーソフトウェアだとよくXML RPCによるAPIがあり外部プログラムから操作可能ですが、それと同様なことがMSのサーバー製品やその他においてもODataで実現されていくのだと思います。他社への実装の働き崖が大事になってくると思います。

ではtsudaりのまとめ。

TechDays 2010 2日目 T2-301 .NET Framework 4.0 時代の言語 #techdaysj

講師:荒井省三

内容は.NET 4で取り入れられた、あるいは改良されたプログラミングパラダイムについての解説で、その中でF#, XAMLといったものが解説されました。

Ruby作者のMatzさんとかも言っていますが、今後10年の言語トレンドは宣言型、あるいは関数型のパラダイムが主流になっていくと思っているので、資料を見れる方は見ていると良いかもしれません。

  • 引き続きRoom C #T2_301 #techdaysj posted at 10:48:59
  • .NET Framework 4.0 時代の言語 #T2_301 #techdaysj posted at 10:54:13
  • Dynamic(動的) #T2_301 #techdaysj posted at 10:57:29
  • 動的とは?ダックタイピングを実現するのが「動的」 #T2_301 #techdaysj posted at 10:58:12
  • Linqがすでに導入されている。エクスプレッションツリーを調べるとラムダ式が遅延実行されていることが理解できる #T2_301 #techdaysj posted at 11:00:31
  • DLRが.NET4から正式に追加される。System.Dynamic名前空間。言語ごとのバインダーがある。バインダーは振る舞いを決めるもの。 #T2_301 #techdaysj posted at 11:01:31
  • DLRと動的言語との関係。表にまとめられている。オープンソースのDLRコアは2.0対応になっているので名前空間が.NET4と違う。Mcrosoft.Scriptingで始まるヘルパーはOSS #T2_301 #techdaysj posted at 11:04:03
  • C#4、VB10とDynamic 各言語ごとのバインダーがある。C#ではdynamicキーワードが追加。実際にはこれはクラス。 #T2_301 #techdaysj posted at 11:05:22
  • VB10ではレイとバインディングを実現するクラスがDynamicを使うように再設計された #T2_301 #techdaysj posted at 11:05:57
  • DLRを提供するメリット。動的言語が作りやすい。性的言語と動的言語、動的言語同士ののり付けがしやすい。Dynamicオブジェクトが作れる、新しいCOM互換性の提供 #T2_301 #techdaysj posted at 11:09:00
  • 埋め込みスクリプトのデモ #T2_301 #techdaysj posted at 11:10:24
  • C#のコードと動的言語のスクリプトとの相互運用についてのデモ。簡単なペイントアプリケーション。ペイントオブジェクトを動的言語で制御する。 #T2_301 #techdaysj posted at 11:13:47
  • RCW Runtime COM Wrapper #T2_301 #techdaysj posted at 11:16:50
  • @k1ha410 IronRuby, IronPythonの話も出ていますが、話の内容としてはC#/VB側からの視点です。 #T2_301 #techdaysj posted at 11:23:09
  • ExpandoObjectはリテラルなメンバとDelegateを動的に増やすことができる #T2_301 #techdaysj posted at 11:24:49
  • いつDyamicを使うべきか #T2_301 #techdaysj posted at 11:25:26
  • DIコンテナの代わりにスクリプトをホスト(コンテナ)の代わりにする。振る舞いの変更をスクリプトにする。いろいろな方法論があるけど難しいかも。 #T2_301 #techdaysj posted at 11:27:45
  • 動的言語ユーザーはAOPに関心がない。(そりゃ振る舞いを自由に変えられるんだからね。。) #T2_301 #techdaysj posted at 11:28:34
  • 宣言型とは何か。 関数型言語、処理方法ではなく対象の性質を宣言する。 #T2_301 #techdaysj posted at 11:29:41
  • 宣言型パラダイム。Linq, ラムダ式 ラムダ式は関数型言語の基礎。ノイマン型プログラムはラムダ式で表現できる #T2_301 #techdaysj posted at 11:30:43
  • 宣言型パラダイム。 XAML。XAMLは対象オブジェクトの性質を宣言している。オブジェクトの複合化、依存プロパティシステム。 #T2_301 #techdaysj posted at 11:32:05
  • .NET4でのXAML。汎用言語化。SLのXAMLとWPFのXAMLとの互換性向上 XAML2009(?) #T2_301 #techdaysj posted at 11:33:09
  • 宣言型パラダイム F#言語 F#はマルチパラダイム言語 #T2_301 #techdaysj posted at 11:33:52
  • XAMLの進化。Syste.Xaml.dll XAMLエンジンの共有化され、フレームワーク化されている。 #T2_301 #techdaysj posted at 11:35:24
  • XAMLノードストリームのDemo #T2_301 #techdaysj posted at 11:35:49
  • XAMLで汎用的にオブジェクトのシリアライズ、デシリアライズができる #T2_301 #techdaysj posted at 11:40:46
  • マークアップ拡張 #T2_301 #techdaysj posted at 11:41:50
  • F# 関数をファーストクラスをとして持つ。型推論 #T2_301 #techdaysj posted at 11:44:37
  • 「副作用がない」店に関するデモ #T2_301 #techdaysj posted at 11:47:28
  • F#の型推論の説明 #T2_301 #techdaysj posted at 11:49:58
  • F#は対話インターフェイスとコンパイラが用意されている #T2_301 #techdaysj posted at 11:51:08
  • 関数は式、式は絶対値を返す。 #T2_301 #techdaysj posted at 11:54:47
  • 同時実行(Concurrent) #T2_301 #techdaysj posted at 11:55:26
  • ムーアの法則 CPUはメニーコアへ。リーク電流により実際には微細化は難しくなってきている。絶縁体の工夫、立体化による延長はあるが。。 #T2_301 #techdaysj posted at 11:56:47
  • マルチコアのの同時実行はタイムスライスによる疑似並列は違うことに注意 #T2_301 #techdaysj posted at 11:57:55
  • アムダールの法則 基本的に悲観論 #T2_301 #techdaysj posted at 11:58:08
  • .NETでの並列 #T2_301 #techdaysj posted at 11:59:38
  • OSのユーザーモードスケジューラーの説明。OSスレッド単位での管理 #T2_301 #techdaysj posted at 12:00:22
  • ユーザーモードスケジューラ。OSのカーネルベースのスケジューラーとユーザー空間内のスケジューラーを分ける #T2_301 #techdaysj posted at 12:01:12
  • .NET 3.xまではスレッドプールのキューはAppDomainごとに一つ #T2_301 #techdaysj posted at 12:01:47
  • .NET4ではタスク(ワークスレッド)ごとにスケジューリングキューを持つ。マルチコアでのキャッシュ破壊をできるだけ少なくしたい #T2_301 #techdaysj posted at 12:03:09
  • 言語と同時実行 F#にはASYNCライブラリがある #T2_301 #techdaysj posted at 12:03:50
  • PLinq #T2_301 #techdaysj posted at 12:04:01
  • PlinqのDemo #T2_301 #techdaysj posted at 12:04:18
  • まとめ #T2_301 #techdaysj posted at 12:08:28
  • 並列化を突き詰めていくとアルゴリズムになる。関数型言語でなくても良いが関数型のパラダイムを取り入れる必要が出てくる #T2_301 #techdaysj posted at 12:09:47
  • このセッションのつぶやきは以上 #T2_301 #techdaysj posted at 12:10:00

2010年02月24日

TechDays 2010 2日目 T2-303 並列プログラミングパターンとVisualStudio 2010を使ったその適用 #techdaysj

講師:川西裕幸

Visual Studioで追加された並列関係機能、特に.NET 4.0での並列化についての解説でした。このようなフレームワークによる並列化支援はあるものの、結局のところアムダールの法則を乗り越えるには正しいアルゴリズム設計、分割可能なデータ構造の設計といったものが結局のところ必要だと感じました。

ではtsudaりのまとめです。

2010年02月23日

TechDays 2010 1日目 T1-402 クラウド時代のアーキテクチャ + Azure + Data #techdaysj

講師:森屋英治(株式会社アークウェイ)

このセッションでとりあえず参加費の元は取れました。

セッション資料中の図表類は非常に効率的で有用なので、参加者の方は今すぐ見ておくことを進めします。また資料は後日一般公開がされるようなので、参加されてない方もAzureでの開発はなくても一般的なエンタープライズアプリケーションの構築に関わる方はごらんになっておくと良いと思います。

とにかく縦横無尽にWCF何とかを中心としたアーキテクチャ解説とデモは見事というしかありません。エクセレント。

TechDays 2010 1日目 T2-307 コードネーム”Oslo”の今、そして #techdaysj

講師:長沢智治

Osloは交代しているように見えるが実は現実的なところに戻って、これから元々の構想のように大きくなっていくのではないかという長沢さん言葉が印象的でした。

では自分のtsudaりのまとめです。

  • Room E #T2-307 #techdaysj posted at 14:31:32
  • 無線LANが不安定 #t2-307 #techdaysj posted at 14:36:01
  • コードネームOsloの今、そして#t2-307 #techdaysj posted at 14:38:06
  • 2007年 複数年にわたる計画として発表 #t2-307 #techdaysj posted at 14:38:43
  • PDC08 ビジネスモデリングツール #t2-307 #techdaysj posted at 14:39:01
  • PDC09 SQL Server Modeling #t2-307 #techdaysj posted at 14:39:20
  • 一エヴァンジェリストの意見としては知事待っているように見えるが現実的なっているだけ #t2-307 #techdaysj posted at 14:40:10
  • IT's ALLL DATA アプリケーションもデータである #t2-307 #techdaysj posted at 14:40:52
  • PDC08 M Quadrant Repository モデリングプラットフォームとしての要素 #t2-307 #techdaysj posted at 14:43:03
  • PDC09の段階でも構成要素は変わらないが位置づけと呼び方が変わった(決まった) #t2-307 #techdaysj posted at 14:43:42
  • SQL Server Modeling CTP VS201 Beta2が対象なので注意 #t2-307 #techdaysj posted at 14:44:23
  • Oslo Developer Center は無くなり Data Developer Centerに統合 また、英語版のサイトで確認すること(日本語のWEBでは表示されない) #t2-307 #techdaysj posted at 14:45:34
  • SQL Server Modeling 対象はアーキテクトと開発者 SQL Serverの将来バージョンの一部として提供される予定 #t2-307 #techdaysj posted at 14:47:35
  • M言語 言語仕様は08から大きく変更はないが、呼び方塔で変更がある。#t2-307 #techdaysj posted at 14:49:20
  • M言語の仕様はオープンになる #t2-307 #techdaysj posted at 14:49:40
  • Mはデータのための言語 MからT-SQL, EDMX等へのトランスレートが考えられる #t2-307 #techdaysj posted at 14:50:38
  • MVCやMVVMのModelをM出記述する #t2-307 #techdaysj posted at 14:51:23
  • ”M" えどったー #t2-307 #techdaysj posted at 14:52:48
  • プロジェクトのプロパティにM Deploymentというタブが尽かされ、リポジトリの位置を特定する。 (デモ中) #t2-307 #techdaysj posted at 14:55:32
  • M Languageのデモ中 #t2-307 #techdaysj posted at 15:04:25
  • Quadrant 開発者に様々なデータとの対話を提供 SQL Serverのデータを可視化していくためのツール 今回のCTPからはワークフロー間駅は視野に入っていない #t2-307 #techdaysj posted at 15:10:07
  • Quadrant のデモ #t2-307 #techdaysj posted at 15:10:31
  • QudrantはInteliPadの機能も内包し、様々なビューでデータの表示が行える #t2-307 #techdaysj posted at 15:15:41
  • Mによってモデリングのやり方に多様性がある。Mは構文解析ができるなど柔軟性がある #t2-307 #techdaysj posted at 15:20:58
  • Repository = SQL Server Modeling Service #t2-307 #techdaysj posted at 15:21:42
  • 現行CTPではできないがSQL Server Modeling Serviceよりリポジトリ情報を読み込んで、VS10で依存関係の表示(demo) #t2-307 #techdaysj posted at 15:27:43
  • Eclipseを使ってXMIのSQL Server Modeling Serviceへのインポートデモ #t2-307 #techdaysj posted at 15:35:37
  • すべてのデータがレポジトリ似格納される時代が来るかもしれない#t2-307 #techdaysj posted at 15:43:04
  • OData #t2-307 #techdaysj posted at 15:45:30
  • このセッションでのつぶやきは以上です #t2-307 #techdaysj posted at 15:47:40
  • @shin135 がんばって気力のある限りつぶやいていきます #t2-307 #techdaysj posted at 15:59:51

TechDays 2010 1日目 T1-301 Windows Azure アドバンスドアプリケーション解説 #techdaysj

講師:スティーブ・マークス

このセッションに関して私がtsudaった内容のまとめです。

また、セッション資料は後日一般向けにも公開されるようです。

PDC09以降Azureでの変更点特にWorker Roleの役割の大きな変更似合わせ、今のAzureアプリケーションの作成方法、アーキテクチャーに関するナイスな解説でした。

  • T1-301 は事前スライドなしか。がんばってつぶやく posted at 13:10:28
  • Azure上で動作しているPort 25を開いているサービスに送信するデモ。 Telnetでの送信デモ #T1-301 #techdaysj posted at 13:15:00
  • ロールアーキテクチャ #T1-301 #techdaysj posted at 13:15:44
  • WEBアーキテクチャ ASP.NET MVC SMTP(TCPListner) Search Lucene.NET でデモをしている #T1-301 #techdaysj posted at 13:16:41
  • Azure の新機能も使用 インターロールコミュニケーション 非HTTPエンドポイント ロールインスタンスライフサイクル VMサイズ ローカルストレージ #T1-301 #techdaysj posted at 13:17:46
  • Azureのアプリケーションモデリング 箱と矢印で書く 箱はサービス(ロール) サービスの参照方向が矢印。これから始めてみる #T1-301 #techdaysj posted at 13:19:44
  • どのロールがインターネットを向いているのか、Azureの中だけを向いているのか、外部はHTTPなのか、他のプロトコルなのか、なんで作るのかを考え、WEBロールを決定していく #T1-301 #techdaysj posted at 13:21:18
  • 入力エンドポイント 同一ドメイン上の異なるポート 常に付加分散される Service.Definition.csdefで定義。WEBロールのIISで処理。Workerロールであれば自分でどのようなプロトコルでも実装できる。 #T1-301 #techdaysj posted at 13:24:12
  • 入力エンドポイントのデモ #T1-301 #techdaysj posted at 13:24:35
  • 外に開かれているポートと実際にアプリケーションがListenするポートは違うので、APIでListenするポートを確認する必要がある #T1-301 #techdaysj posted at 13:28:41
  • スパマーがAzureを使う可能性がある。BlackListにAzureのIPアドレスが載ってしまう可能性がある リレーによるメール送信がおすすめ(Hotmailtとか) 受信は問題がない #T1-301 #techdaysj posted at 13:30:34
  • Search Lucene.NET 人気のある検索API C#の実装 データのインデクシングの機能 検索の提供(WCF) #T1-301 #techdaysj posted at 13:32:30
  • キューを使用しない非同期処理 テーブルを使った非同期の処理 セカンダリインデックスの構築 オーダー参照 (クロックドリフトに注意)要は常にテーブルに検索をかけ、変化を確認し、変化に応じた処理をする。 #T1-301 #techdaysj posted at 13:36:40
  • インスタンス間で時刻がちゃんと同期されていないので、時刻をキーにせず数字で代用するなどする必要がある (クロックドリフト) #T1-301 #techdaysj posted at 13:37:28
  • 初期化 listenするまで受信できない ロールインスタンスライフサイクルを使う OnStart() Run()#T1-301 #techdaysj posted at 13:38:32
  • OnStop() のイベントが発生する #T1-301 #techdaysj posted at 13:38:54
  • OnStart() で必要な初期化を行いポートを開く準備をする。 Run() 通常の状態 ここでPortを開き通常の動作を行う OnStop() では停止を安全に行うためにリソースをスイープする #T1-301 #techdaysj posted at 13:40:29
  • 内部エンドポイント システム内部で使われるエンドポイント Service.Definistion.csdefでエンドポイントを定義 WorkerRoleと同様にAPIでlistenするポートを確認する必要がある。#T1-301 #techdaysj posted at 13:42:02
  • ポートはAzureのシステムがランダムに決定する 相手先についてはAPIにてすべてのロールのIPアドレスを取得することができる #T1-301 #techdaysj posted at 13:42:57
  • Searchのデモ中 #T1-301 #techdaysj posted at 13:43:53
  • 内部エンドポイントのインスタンスはロードバランサーがないので使う側が自分で相手先を選択する必要がある #T1-301 #techdaysj posted at 13:46:37
  • デモのコードって後で公開されるんだろうか #T1-301 #techdaysj posted at 13:47:09
  • RAMの追加 RAMDirectoryはすべてをメモリに置くストレージ 多くのメモリがいるのでVMサイズを選択する #T1-301 #techdaysj posted at 13:50:05
  • Smallで2GB Extra Largeで16GB 設定ファイルで定義できる #T1-301 #techdaysj posted at 13:50:46
  • インデックスの保存 オンメモリのインデックスはOnStop()で保存 設定ファイルに設定を書くときにローカルストレージに保存するように設定できる。ただし、必ず保存される保証はない。 保証がほしいならAzure Storageを使用する #T1-301 #techdaysj posted at 13:52:59
  • サイドバイサイドアップグレード バージョン1とバージョン2でIPアドレスをスワップする(つまり元に戻せる) #T1-301 #techdaysj posted at 13:57:24
  • インプレースアップグレード(ローリングアップグレード) どのロールをアップグレードするかの特定。(全体をSWAPしなくて良い) ローカルストレージデータの維持。ステートフルなロールに最適 #T1-301 #techdaysj posted at 13:59:19
  • まとめ中 #T1-301 #techdaysj posted at 14:03:30
  • とりあえずここでのつぶやき終わりです #T1-301 #techdaysj posted at 14:04:47

TechDays 2010 1日目 キーノート Tsudaったまとめ #techdaysj

自分でtsudaった分のまとめです。

3スクリーン + クラウドの解説と関連製品・サービスの紹介。

Azureの導入事例の紹介でした。とりあえず今Azure上でシステム構築する場合オンプレミスとクラウドをうまく連携させることを考えるとうまくいくようです。

TechDays 1日目 CM-204 Visual Studio 2010でプチ・パラダイムシフトせよ!つぶやきまとめ

頭の中を変えなければならないが、適したパラダイムにすればコードがシンプルになる #tdcm204 #CM-204 #techdaysj
posted at 16:33:27

関数型 関数脳が必要 #tdcm204 #CM-204 #techdaysj
posted at 16:24:01

宣言型の記述の方がS/N比が低い #tdcm204 #CM-204 #techdaysj
posted at 16:21:37

VS10でクラススタブ、プロパティスタブが追加された #tdcm204 #CM-204 #techdaysj
posted at 16:19:27

VS10ではTDD強化 TDDは「どうかくか脳」から「何を書くか脳」に変化させるのですき #tdcm204 #CM-204 #techdaysj
posted at 16:16:27

プログラミングはモデリングなので言語ツール選択が重要 #tdcm204 #CM-204 #techdaysj
posted at 16:15:02

宣言型 "What"を記述 今までは"How"を記述 #tdcm204 #CM-204 #techdaysj
posted at 16:13:10

マルチパラダイム 関数型(C#の進化 F#) 動的 並列 #tdcm204 #CM-204 #techdaysj
posted at 16:12:21

Ctrl + コロコロ で検索しても無駄 #tdcm204 #CM-204 #techdaysj
posted at 16:10:41

Navigate To #tdcm204 #CM-204 #techdaysj
posted at 16:10:02

VBとかC#とか行っているのは時代遅れ #tdcm204 #CM-204 #techdaysj
posted at 16:07:35

VBでないといけない理由 条件式のショートサー期キットをしたくない Myを使いたい #tdcm204 #CM-204 #techdaysj
posted at 16:06:51

気に入らない Call Hierarcy VBに無いのがいや#tdcm204 #CM-204 #techdaysj
posted at 16:05:52

InteliTrace 値変化のログがとれるので落ちないバグを探すのに良い #tdcm204 #CM-204 #techdaysj
posted at 16:04:48

お気に入りの新機能 #tdcm204 #CM-204 #techdaysj
posted at 16:03:36

#tdcm204 このタグをつけてつぶやくべし #CM-204 #techdaysj
posted at 16:03:20

MEF - Release: MEF Preview 9

The Managed Extensibility Frameworkのプレビュー9が出ていました。

MEF - Release: MEF Preview 9

変更点としてはSilverlight向けにいくつかの名前の変更や名前の空間に変更があったのと、バグフィックス、サンプルの追加となっています。

2010年02月22日

TechDaysキーノートライブ配信 #techdaysj

明日からいよいよ始まるTechDaysですが、キーノートがSmoothStreamingで公開されます。(要Silverlight)

技術的な背景とか詳しいところは以下で。

Twitterを活用したTechDaysの楽しみ方(その2):高画質版のUST?でキーノートライブ配信:Azureの鼓動:ITmedia オルタナティブ・ブログ

現在もページは生きていてデモのSmoothStreamingのビデオが流されているので、自分の環境で見ることができるか確認しておくといいでしょう。

キーノート ライブ中継 - Microsoft Tech·Days 2010
http://td10.ds.ipcasting.jp/?lang=original

2010年02月21日

昨日印象に残ったお言葉

仮装化をしない/それは/重力に魂を引かれている

 

まぁ昨日は浜松ITカンファレンスに2010に行ってきたのですが、その中での日本仮想化技術 宮原徹氏のお言葉。

仮装化しないのがオールドタイプ。世間的に仮装化を反対していた上司が、システムを仮装化をして思わぬ効果があった場合にはぜひこれが、オールドタイプと言うことなのか。(ライラ・ミラ・ライラ)」と言ってほしいが、言わないだろうな。

なんかMSの某エバンジェリストのBlogみたいになってきたな。

2010年02月19日

Introduction F# @ Channel 9

MSRの主任研究員でF#の開発者でもあるSyme先生によるF#解説の3回シリーズがChannel9で公開されています。これはエリック・メイヤー先生による長かったHaskellを使った関数型言語講義に続くChannel 9の講義シリーズのようです。

Get Microsoft Silverlight

続きを読む "Introduction F# @ Channel 9" »

2010年02月17日

Visual Studio 2008 でも定期的に累積パッチを出せないんだろうか

以下のページにVS2008 SP1以降に出たパッチ類の情報があります。

Visual Studio 2008 サポート ページ

かなりの数があって、直接のダウンロード、メールでの問い合わせによるダウンロードができるものがありますが、ほとんどはサポートの電話問い合わせが必要です。

これだけの数のパッチについてそれをやるにはあまりにも大変なので、一括でダウンロードできるようにしてほしいです。

かつて、VS2008にはGDRが出た実績もあるのだし、これらのパッチについてもSQL Serverのように定期的に累積パッチを出せないものなんでしょうか。

2010年02月13日

書評:Microsoft.NETでのテスト駆動開発

ジェームス・ニューカーク,アレクセイ・ウォロンツォフ
日経BPソフトプレス
発売日:2004-09-02

実際はだいぶ前に読み終わっていたのですが、社内向けTDD勉強会向け資料作成のため読み返した。

NUnit自体の記述についてはもう出版されてから数年たっていることもあって古くなってきてはしまっているが、TDDやユニットテストの本質が多きく変わったわけではないので、NUnitに関して自分で情報をアップデートできれば、ほとんど問題ない。

実際問題として、日本語で読めるTDDの本はそれほど多くないし、ましてや.NETに関するものほぼこれだけなので大変貴重。

洋書も出版後アップデートしてないのだが、VSの単体テスト機能やNUnitのアップデートにあわせた改訂版がそろそろほしいところ。

(ブクログより転載)

2010年02月12日

Inside Sync Framework 2.0

って言う本があったら今すぐ買う!っていう状態なのですが、そんな本はありません。ただ、幸いなことに以下のMSDNドキュメントに続くものがほぼそれに相当するので、何とかなりそうです。。。

標準のカスタム プロバイダーの実装

自らカスタムプロバイダーを作ろうという人はそんなにいないとは思いますが、標準のプロバイダを使っていてもこういう時にどうするんだろうとか、リファレンスを読んでもその言葉に意味がわからないと言うときにはこちらを読むと、Sync Frameworkがやっていることが何となくわかって、目的の物を見つけられたり、サンプルだけでは合点がいかなかったところが合点がいくようになります。

まぁ、Sync Frameworkは何も考えなければ数行でファイル同期とれるようになるすごいやつなのは確かなので、あまり日の目を見ませんがこういうものがあると覚えておくといいと思いますよ。

何も考えなければこれだけ。(ちなみにこれは動かしてないですw)

   1:  using System;
   2:  using System.IO;
   3:  using Microsoft.Synchronization;
   4:  using Microsoft.Synchronization.Files;
   5:   
   6:  namespace FoldersSync
   7:  {
   8:      class MyFolderSync
   9:      {
  10:          public void FoldersSync() {
  11:              SyncOrchestrator agent = new SyncOrchestrator();
  12:              FileSyncProvider source 
  13:                  = new FileSyncProvider(@"C:\Folder1");
  14:              FileSyncProvider destination 
  15:                  = new FileSyncProvider(@"C:\Folder2");
  16:              agent.LocalProvider = source;
  17:              agent.RemoteProvider = destination;
  18:              agent.Synchronize();
  19:              return;
  20:          }
  21:      }
  22:  }

2010年02月11日

IronRuby 1.0 RC2

そゆもの。DLは以下からお願いします。

Download – IronRuby

変更点はRubyForgeの方をご覧ください。

RubyForge: IronRuby: リリースノート

また、.NET Fx 4.0 RC対応のものがほしい方は以下より入手できます。

IronRuby - Release: CTP for .NET 4.0 RC(Code Plex)

IronPython - Release: 2.6.1 RC1 for .NET 4.0 RC

IronPython - Release: 2.6.1 RC1 for .NET 4.0 RC

.NET  Fx 4.0 RC向けがリリースされました。

2010年02月10日

Visual Studio 2010のヘルプシステム。

image

基本はオンラインのMSDNライブラリのようです。

インストール時にローカルにヘルプドキュメントをインストールできます(分かりづらい)が、上にあるように以前のような専用ツールではなく標準ブラウザでローカルのHTMLを見るようになりました。

また、このローカルドキュメント管理のために以下のようなツールが追加されています。

image

ここでオンライン・オフラインの切り替えなど行うようです。

2010年02月09日

VIsual Studio 2010 & .NET Framework 4.0 RC

英語版ですが、RCがMSDNでダウンロードできるようになりました。

Somasegar's WebLog : Visual Studio 2010 and .NET Framework 4 Release Candidate now available

Jason Zander's WebLog : Announcing VS2010 / .NET Framework 4 Release Candidate (RC)

2010年02月06日

静岡Developers勉強会 第二回Haskell読書会 募集中です。

1月より始まっったプログラミングHaskell読書会の第二回を行います。もちろん第一回に参加されていない方でも参加できます。

日時:2月27日(土)13:00~17:30
場所:静岡市産学交流センター 演習室3
店員:20名
費用:1000円(学生・未成年は無し)
課題図書:プログラミングHaskell (ISBN:4274067815)
環境:OS依存はしないが、GHC又はHugsを事前導入しておく事
範囲: 3 章

今回は第3章が読書会対象ですので、参加される方は第三章まで読み進めてください。

詳しい内容、申込先につきましては以下の回のお知らせにてご確認ください。

第二回Haskell読書会開催のお知らせ (Haskell読書会)
http://www.haskell.shizu-dev.org/news/dainikaihaskelldokushokaikaisai

プログラミングHaskell
プログラミングHaskell 山本 和彦

オーム社 2009-11-11
売り上げランキング : 5619

おすすめ平均 star
starわかるってたのしいなー。
starHaskell

Amazonで詳しく見る
by G-Tools

2010年02月03日

「プログラマという職業は「ふつう」の人には厳しくないか」いやそうではないプログラマには一足早くそれがきているだけ。

UK STUDIO - プログラマという職業は「ふつう」の人には厳しくないか

「ふつう」の人達はプログラマになるべきじゃないのだろうか? 例えば、プロスポーツ選手であれば普段の生活からそれ相応の生活を求められるだろうが、プログラマもそういう職種なのだろうか。

少なくとも今現在まわりと見渡すと「ふつう」のプログラマも結構いるように思う。結婚して妻子がいて、そういう勉強の時間があまり取れないって人もいると思う。そういう人達にプログラマはもう無理だねと言ってしまってもいいのだろうか。

これはプログラマやIT技術者が他の人より一歩先にこういう状態になっているだけ。基本的にいわゆるホワイトカラーと呼ばれる業種についている人間はそういう状態になるし、勉強量の差はあるだろうけどそれは程度の問題になると僕は思っているわけだけど。実際企業会計に関わっている人たちもやれJSOXだ、国際会計ほにゃららだと毎年のように新しい法規や制度でが出てきて対応しなければならない状態が続いているし。

ドラッカーの言うように頭を使ってお金を得る人たちは総プロフェッショナル化の道に進んでいるのは間違いないだろうし、それは確かにプロ野球選手のように生活することなんだと思う。(それも程度の差があるわけだけど)

本件興味を持たれたなら以下の本をお薦めします。

プロフェッショナルの条件―いかに成果をあげ、成長するか (はじめて読むドラッカー (自己実現編))
プロフェッショナルの条件―いかに成果をあげ、成長するか (はじめて読むドラッカー (自己実現編))
ダイヤモンド社 2000-07
売り上げランキング : 163

おすすめ平均 star
star当たり前だけど大切なこと。
star手許に置いといて良かった。
star知的な興奮を感じる一冊

Amazonで詳しく見る
by G-Tools

2010年02月02日

Windows Azure : Windows Azure Tools and SDK 1.1 Released

Windows Azure : Windows Azure Tools and SDK 1.1 Released

いよいよWindows Azure Drive対応となりました。

そのほかは基本Bug Fixのようです。

This release supports Visual Studio 2008 SP1 and the upcoming Visual Studio 2010 RC.

VS2010 RC ??

ダウンロードはこちら

Download details: Windows Azure Tools for Microsoft Visual Studio 1.1 (February 2010)

2010年01月28日

Microsoft TechDays 2010の参加証届く

届きましたよと。

うーんTwitterでどんだけMS好きなんだといわれましたが、確かに言われても仕方のない番号。

何でも早く登録した人特典でプレミアム特典がついたらしいです。

そんなTechDaysも後二十といくつか寝たら来てしまいますねー。皆さん宿の手配、飛行機の手配等々おぬかりなく。

参加登録がまだの人は以下のバナーをクリック。

公式twitterハッシュタグは #techdaysj です。今のうちから追っかけておくといいことがあるみたいですよ。

Tech・Days 2010

2010年01月21日

Kindle Development Kit(KDK)の申し込み受け付け開始

詳細内容全く不明ですが、以下のリンク先にてKindle SDKというか、KDKと言うものの申し込みを受け付けています。どんな言語を使うとか、どんな開発環境なのかはよくわかりません。一応Amazonで販売した場合Amazonの取り分は3割、こちらは7割となるようです。

動作環境の制限がiPhoneやAndroidよりも遙かに厳しいので、よりアイデア勝負な感じになると思います。

個人的には初代Simcityなんていいんじゃないかと思ったりします。モノクロだし。

Kindle Development Kit

2010年01月20日

All-In-One Code Framework

All-In-One Code Frameworkは.NETやWindows開発での様々なコードサンプルを一つにまとめて、一挙に提供しようというプロジェクトのようです。現在のコードサンプルは290。

以下のサイトよりダウンロードできます。

All-In-One Code Framework

うーんこれすごいかも。

書評 : ソフトウェア開発はなぜ難しいのか ~「人月の神話」を超えて (技評SE選書)

ソフトウェア開発はなぜ難しいのか ~「人月の神話」を超えて (技評SE選書)
ソフトウェア開発はなぜ難しいのか ~「人月の神話」を超えて (技評SE選書)

ブルックスの「人月の神話」を踏まえ、ソフトウェアエンジニアリングの歴史を網羅し、そのれぞれの問題点を踏まえ、それらについて解説した本。

ブルックスの著作を読み終わっており、ソフトウェアエンジニアリングについての知識を持っているなら第4章から読み進めてもかまわないかもしれない。

最後の最後で『新しいパラダイムでも本質的困難は普遍的であり、これをあるがままに受け入れる姿勢が求められている。』と身も蓋もなく救いの無い文で終わっているが、これはおそらく人間がソフトウェア開発を続けている限り逃げ切れないものなんだろうと思う。

(以上ブクログから再掲)

追記:

脚注がすばらしい。更なる学習への道筋を示している。同様に巻末の読書ガイドも秀逸。

2010年01月19日

KODU PC版Tech preview

以前紹介したXBox 360のキッズ向けヴィジュアルプログラミング環境のKODUのPC版が出たようです。

image

KODU Game Lab

使用に当たっては.NET Framework 3.5とXNAのランタイムが必要になります。(インストーラでインストールするように言われ、ダウンロード先がリンクされます)

また、操作に当たってはXBox 360コントローラと互換性のあるPC用ゲームコントローラがあった方がいいと思います。

image

image

image

image

【レビュー】複雑化するゲーム開発と『Kodu』の意義 - ゲーム作りの興味を失う前に | ネット | マイコミジャーナル

2010年01月16日

静岡デベロッパー勉強会 第1回プログラミングHaskell読書会

第1章

関数型言語とはなんかという話とHaskellの歴史。

明らかにラムダ式は(数学として)知っているぐらいの書き方なので、関数型言語入門書としてはあれげ。ただ、コンピュータサイエンス学科の学生向け教科書の第1章としてはこんなものかと思います。

第2章

Haskellとしてのイントロダクション。

文法の基本と書き方の基本。

次回

次回は2月27日です。

第3章が対象。発表担当は高橋会長です。

2010年01月15日

Haskell Platform Download (Beta)

Haskell Platform Download (Beta)

Haskellのコンパイラ、対話環境、各種ライブラリをまとめてインストールできるもののようです。

私のようにとりあえずHaskellを始めてみようという方にはよろしいのではないかと思います。

ということで、明日は静岡デベロッパー勉強会 Haskell読書会の第1回読書会です。

まだ、参加申し込みは可能なので以下からよろしくお願いします。

第一回Haskell読書会

2010年01月04日

謹賀新年 2010

新年あけましておめでとうございます。

以下は国立情報学研究所佐藤先生の1月3日分の日記から

Windows開発者の皆様方にはたいへん失礼な物言いなのですが、Windows向けアプリケーション開発は時間が止まったような世界。そんな世界に浸った開発者がクラウドコンピューティング向けの新しいサービスを作れるかというと疑問なのですよね。あるプラットフォームが既存の開発者が有利という印象を与えたら、新規開発者はそのプラットフォームは避けるものです。Azureをイノベーティブになるには、既存のWindows開発者を切り捨ててでも、新規の開発者をAzureに引き込む必要があったのではないでしょうか。

それと過去の歴史を考えると新旧プラットフォームでアプリケーションの重複はない。例えばメインフレートとミニコンでは、メインフレームからミニコンに移行したアプリケーションよりも、ミニコン向けに新たに開発されたアプリケーションの方が多い。Azureのことに話題を戻すと、現在のWindowsのアプリケーションはWindowsで動かせばよく、Azureで動くアプリケーションは今までにないものになるということです。このため既存Windows開発者をAzureに連れて行ったために、Azureというせっかく新しいプラットフォームなのに古いアプリケーションを動かし続けることになりかねません。

ならばどうすればいいのかですが、他のプラットフォームの開発者を引き入れることも重要ですが、やはりエンドユーザによる開発ができるようにすることが求められるように思います。実際、Force.comはWebブラウザで開発できるので、開発ツールや統合環境のインストールは不要なのですが、こうしたインストール有無だけでもエンドユーザ開発の障壁になっていましたから、Visual Studioのインストールが必要なAzureって時代錯誤なのですよね。

Ichiro Satoh Homepage

Windowsの開発で時間が止まっているのはそうだろうな。SilverlightといってもVBから続くフォームベースのRADと大きく何かパラダイムが変わっているわけではないですし。

AzureですがAzure自体ワーカーロールで実質何をしてもいいという状態になり、いったいユーザー(この場合はAzure上にアプリケーションを作る立場の人・物)に何をさせたいのか余計にぼやけてきていますが、EUC(エンドユーザーコンピューティング)は一つの方向性を示していくと思うけど、なんでもつくれるAzureのままなんだろうなぁ。

ということで、今年はクラウド・コンピューティングが現実的な選択肢になり、本格的な普及に向けて最適なプロセス、最適な設計手法を求めてすったもんだして行く年になるのでしょう。

今年こそ、今までの何かの焼き直しでない突き抜けた新技術を見てみたいところ。オブジェクト指向を過去の物として本当に置き換える何かとか、既存のマイクロプロセッサアーキテクチャを根底から覆すようなプロセッサーアーキテクチャとか、いい加減HTTPから離れて、これからの時代に合う新しいプロトコル(wave?どうだろう?)とか、そういう物をみたいですね。

2009年12月18日

Microsoft TechEd Japan 2009のセッションが一般公開に

以下のリンク先でTechEd 2009のセッション内容をストリーミングで確認できるようです。 (要Silverlight)

Microsoft TechEd Japan 2009

スライドもPDFとして落とせるようになっています。

Azureストレージのテーブルでは最終的に非正規化するが設計において正規化しないわけではないと思う

 Azureストレージのテーブルでは正規化しないことがポイント - かめログ2

いくつかのソリューションサンプルを見たり、プロトタイプを作成しているうちに件の結論に行きつきました。間違っていたら教えてください。

単純に正規化しないは間違ったメッセージだと思います。

これははじめから正規化を放棄した(する)と受け取ったのですが、実際の設計作業ではそうでないと思います。KVSというかISAMが1つのKey値しか持ち得ないため、最終的なそれのデータ構造が非正規化してしまうのはある種仕方のないことなのですが、それがすぐに設計段階でデータを正規化しなくていいと言うことにはならないです。

基本的には一度従来通り正規化を行った上で、アプリケーションの特性や、Azureのテーブルならテーブル、GAEならGAEにと、それぞれにあわせた形で非正規化を行っていくというプロセスになると思っています。

無秩序にKey付きの構造化されたデータがあちこちに散らばるという状況はおそらく収拾がつかなくなるのでしょうし、RDBのように結合やグルーピングで後から任意の形にデータをまとめることができませんし、それを前提に将来のアプリケーション改修や保守を見込む必要もあり、むしろRDBの時よりAzureのようなKVSの方がデータ構造の設計は難しくなってきていると考えます。

当然非正規化されてしまっているので、データ更新するプログラムの処理も煩雑でわかりにくいコードになりがちです。

データパティーショニングの粒度設計なども絡んでクラウド・コンピューティングでのデータ設計の方が、従来のDBMSを前提としたC/SシステムやWebアプリケーションよりもデータ設計やソフトウェア設計においては難易度が高く、安易に考えない方がよいと思います。

いや、ほんとサンプル以上のものを作るのは大変だと思うんですよね。。。

Mono 2.6 ,MonoDevelop 2.2 and Moonlight 2

Nine Months Later: Mono 2.6 and MonoDevelop 2.2 - Miguel de Icaza

Releasing Moonlight 2, Roadmap to Moonlight 3 and 4 - Miguel de Icaza

ということで、立て続けにリリースされました。

たぶん一番大きいのがMonoでLLVMを使用したことだと思います。

2009年12月16日

IronRuby 1.0 RC1 - Ruby Forum

何というか、これが正式アナウンスのようです。

ということで

IronRubyがとうとうRCになりました。

[ANN] IronRuby 1.0 RC1 - Ruby Forum

こちらのBlogのスライドにありますが、だいたい全体的にCRuby(1.8.6?)との互換性は90%以上にまでなってきたようです。

2009年12月15日

新春座談会 このコンピュータ書がすごい! 2010年版 2009年に出たコンピュータ書ならこれを読め!

http://www.junkudo.co.jp/newevent/evtalk.html#20100109ikebukuro

ということで、今年も開催の運びとなったようです。

■2010年1月9日(土)19:00~
昨年度店頭・ネットで好評を博した、あのコンピュータ書年間ふりかえり企画が帰ってきました!
1年間365日8760時間のあいだに発行されるコンピュータ書は1000点以上。その中から注目したい作品を数十冊ほど選び出し、1時間半の間に紹介し倒すというチャレンジングな企画。おかげさまで前回開催当日は会場の定員を超える多くの方々に参加していただいた上に、開催後もネットで話題にのぼったり、紹介された本の著者様から感謝のお言葉をいただく等、実に大きな反響がありました。
その声に後押しされ、今年も「このコンピュータ書がすごい!2010年版」と銘打って、この2009年に発売されたコンピュータ書を振り返ってみたいと思います。
ベスト3、ベスト10などと絞りこむのはもったいない、20冊や30冊でもまだ足りない。ベストセラーやロングセラーや話題作だけでなく、コンピュータやそれを取り巻く現在の環境・状況をするどく見せてくれる本、これまでの類書とは一味違う新しさを感じさせてくれる本、そんな見逃せない本の数々をご紹介できれば幸いです。
講演者は昨年同様、コンピュータ書を生み出す最前線で活躍されている出版社の方々と、「日本Rubyの会」会長で『たのしいRuby』などの著者(共著)としても知られる高橋征義さんです。

できるだけ今年も行こうと思いますが、どうなることやらw

2009年12月14日

NTEmacs 23.1をインストールしてみた

自分の中で秀丸以外のエディタ環境を模索しつついろいろ試していますが、ある意味王道であるEmacsに戻ってみることにしました。

まずは環境作り。(NT)Emacsはバージョン23系が最新で、Windows用のものはNTEmacsと呼ばれています。(今はソースコードレベルでは本家にマージされているはず)日本国内の有志の方々がIMEでの日本語入力に対応するパッチの配布、パッチ適応のバイナリ配布をされているのですが、残念ながらSourceForge.jpのプロジェクトではまだ公開されていません。どうも最近は2chのスレで公開が主流らしい的な話もあってどうしたものかと思ったのですが、まとめていてくれた方がいらっしゃいました。

[ソフトウェア] NTEmacs 23.1 のインストール・設定 - itouhiroメモ

基本的に、ここに書かれている手順でダウンロードインストール、設定ファイルの作成を行えばほぼ問題はありません。

次にEmacsをインストールしたならC#も色づけしたくなるのが人情なので、C#モードの追加、設定もしたいところです。これまたやり方を書かれている方がいらっしゃいます。

Emacs/MeadowにC#モードをいれてみる - うっかりプログラミング日誌

これも悩むことはありません。書かれているとおりで問題ありません。ただC-x/cで呼び出すコンパイルのコマンドはCSCなので、そこは設定ファイルの修正が必要です。

また、素直にrunemacsを起動してしまうと、コマンドラインの.NETのツール類にパスが通ってなく、使いづらいので以下のようなバッチを作ってそこから起動しています。

@Echo off
cd /d %home%
call "c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
C:\bin\emacs\bin\runemacs.exe -rv %*

ちなみにこれはVS2008をインストールしている場合です。

SDKオンリーやC# Expressionオンリオーの場合には適宜同様にバッチで環境変数やパスを通してからEmacsを起動するようにすると便利だと思います。

まぁ後は精進といったところですね。。。

IronPython - Release: 2.6

リリースとなりました。 1年ぶりのメジャーバージョンアップです。

IronPython - Release: 2.6

うーんDLR自体には変化がないなぁ。。IronPythonが正式リリースとなったので、こちらもリリースとなるのではないかと思います。

2009年12月10日

SQL Server Compact Editionはじめました

諸般の都合でSQL Server Compact Edition 3.5を使い始めることとになり、いろいろと祟られています。。

まぁぼやいていても仕方ないので、自分で調べたところはWikiの方にまとめ始めましたので、興味のある方はご覧ください。

しかし、これも情報が少ない。MSDNだけでもとりあえず何とかなりますが。。。

2009年12月09日

IronRuby - Release: 1.0 RC1

ということで、先月20日RCだったみたい。。。

IronRuby - Release: 1.0 RC1

なんかRSSにはRCxだのRC2とかあるけどみなかったことにしておこう。

2009年12月08日

IronPython.net

IronPython.net

IronPython 2.6の正式リリースに向け、IronPythonのサイトができたようです。これから最新のリリースバイナリや文書の提供といった正式な窓口はこちらになるようです。ただし、CodePlexのサイトは今まで通りなので、最新および開発中のコード・バイナリの入手、バグ登録はこちらを使うことになります。

2009年11月06日

VMware Player 3.0がちょっとすごすぎる件

朝から感動していますw

vmwarePlayer3AndWin7x64

いつの間にかPlayerではなく、普通のデスクトップ仮想環境になっていました。当然ですがWorkstationよりは機能がありません。ただ私にはこれで十分かな。Virtual PCの機能は全部あってかつAMD64対応だから。

ちなみに上の図はVMware PlayerにWindows 7 Ultimate x64日本語版をインストールしてスコアを出させたところです。

良かったところは以下の点です。

  • 簡易インストールが楽。
    • Windowsだと最初にプロダクトキーとアドミニストレータのパスワードを入力してしまえば、あとはほぼ何もせずにOSセットアップが始まり、VMware toolsのインストールまで終わってしまいます。
  • ゲストのWindows 7でAeroが使えている。
    • 有償のWorkstationならともかく無償のPlayerでできてしまいます。Windows Virtual PCもVirtual Boxもこれはできません。
  • パフォーマンスインデックスがまず使えてそこそこの数字が出てくる。
  • ディスクアクセスが早い
    • Virtual Boxに比べゲストのディスクアクセスが体感的に早く感じます。

で、ただ。

ダウンロード等についてはこちらを参照。

http://www.vmware.com/jp/products/player/

2009年11月03日

IronRuby - Release: 0.9.2

ということで、日本時間的に今日リリースされました。

IronRuby - Release: 0.9.2

チェンジログはこちらです。

http://rubyforge.org/frs/shownotes.php?release_id=41087

2009年10月31日

Halloween special

Trick and Treat !(あれ?)

今日はアングロサクソンのお盆です。(キッパリ)

と言うことでCh9もホラー風味です。

Get Microsoft Silverlight

Bug Killer – A Channel 9 Halloween special | Laura Foy | Channel 9

2009年10月27日

静岡で開発・言語系の勉強会立ち上げます - 静岡 IT Pro 勉強会日誌

去年、その場の勢いでやると言ってしまった静岡ITPro勉強会ですが、みなさんの協力でなんとか続けることができています。

そこで、調子にのって、開発・言語系の勉強会を立ち上げます。

静岡で開発・言語系の勉強会立ち上げます - 静岡 IT Pro 勉強会日誌

私も調子こいてのかって見たいと思います。

まだ方向性も定まってませんが、立ち上げに参加したいという方がおられましたら、以下のGoogle Groupに参加していただけたらと思います。

静岡 IT勉強会 準備会 | Google グループ

2009年10月22日

Visual Studio 2010 Beta2を入れてみました。

image

まだ入れてみましたってところです。

個人的にいいなぁとお思ったところは、VS2008で設定していたフォント設定や背景色、C#のソースコードの書式設定等をちゃんと引き継いでいるところです。

IDEもBeta1の時より確実に早くなっている気がします。

IronRuby, IronPythonのVIsualStudio 2010, .NET Fx 4 Beta2向けCTP

IronRuby、IronPythonそれぞれで10/4 B2向けCTPが公開になったようです。

IronPython - Release: 2.6 CTP for .NET 4.0 Beta 2

We’re quite pleased to announce the release of "IronPython 2.6 CTP for .NET 4.0 Beta 2". This is our third preview of IronPython running under the Dynamic Language Runtime that is built directly into a .NET 4.0 release! As before, this release allows you to use IronPython objects and types as .NET 4.0 dynamic objects from within C# and Visual Basic code. This release is extremely similar to IronPython 2.6 RC 1. Please also note that "IronPython 2.6 CTP for .NET 4.0 Beta 2" will run only under .NET 4.0 Beta 2.

IronRuby - Release: CTP for .NET 4.0 Beta 2

We’re pleased to announce the release of the IronRuby CTP for .NET 4.0 Beta 2. This is our third preview of IronRuby running under the Dynamic Language Runtime that is built directly into a .NET 4.0 release! As before, this release allows you to use IronRuby objects and types as .NET 4.0 dynamic objects from within C# and Visual Basic code. These binaries are roughly equivalent to the functionality found in IronRuby 0.9. Please also note that the IronRuby CTP for .NET 4.0 Beta 2 will run only under .NET 4.0 Beta 2.

ネタもと:
DevHawk - IronPython and IronRuby CTPs for .NET 4.0 Beta 2

2009年10月21日

Visual Studio 2010 Beta2が一般公開

MSDNを持っていなくてもB2を試用できるようになったようです。

Try Visual Studio - Trial Options

どうもネットワークインストールしかできないようなので、それなりの時間は覚悟する必要はありそうです。

2009年10月20日

Visual Studio 2010 and .NET Framework 4 Beta 2

そゆこと。

Visual Studio 2010 and .NET Framework 4 Beta 2

MSDNサブスクライバダウンロードより段ロード可能です。現在のところ英語版のみ。

2009年10月17日

IronRuby in Action

ということで、アメリカではIronRuby本出版のようで、早速Eary Access Editionがでています。

第1章のみPDFでただで読むことが出来ます。

Manning: IronRuby in Action

筆者サイト : Ivan Porto Carrero

2009年10月16日

Microsoft がスマートグリッドに関するホワイトペーパを発表

Microsoft Power and Utilities Blog : Microsoft Worldwide Utilities Group Releases Architecture Vision for Smart Energy Ecosystem

マイクロソフトがスマートグリッドに関するホワイトペーパを発表しました。全部で130ページほどあるなかなか気合いの入ったものです。

http://download.microsoft.com/download/0/C/2/0C2F64B1-241D-4433-9665-5F802E7510D6/Microsoft%20Smart%20Energy%20Reference%20Architecture.pdf

スマートグリッドとはいわば電力線のネットが情報のネット化すると同時にこれまで、日本であれば電力管内という県をまたぐ大きな地域レベルで行われてきた電力の需給バランス調整を、極端な言い方をすれば町内会レベルの超ミクロなレベルを行うと言うことです。

そのためにはスマートメーターと言われているような、プロセッサを積んで、ITネットワークにデータを流せる電力計や、それらの間やそれと電力会社とを結ぶバックボーンのITネットワークインフラが必要なのはもちろんですが、本当に必要なのは超ミクロなレベルでの電力調整を実現するための莫大な情報処理能力です。

したがって、その莫大なな情報処理能力(ソフトウェアの力)を得るためにGEはGoogleと組んで、Googleのクラウンドコンピューティングにその処理をさせようとしていたりします。

特に北米では元々基幹の送電電力網の設備がかなり古くメンテナンスにも限界があることや、オバマのグリーンニューディールでスマートグリッドに関する投資期待がかなり高くなっています。

当然そうした状況にマイクロソフトがただ指をくわえてみているだけのはずが無く、満を持してこのホワイトペーパが出てきたのではないかと推察します。

どっかの経産官僚は日本にスマートグリッドなどいらんとか行っているらしいですが、この国でも家庭や小規模な事業所が設置する太陽光発電や燃料電池や、これから流行りそうなそれらの余剰電力を蓄える蓄電池の有効活用を考えればスマートグリッド化は必要で不可避な流れだと思うので、将来突然仕事が回ってきたりするかもしれないので関係ないとは言わずに読んでみると良いと思います。

ああCEPってこう使うんだとか、ESBとかもう普通だよねとかまぁいろいろ思う所もあるんじゃないかと思います。

うーんMSはArevaと組みそうなのか、同じAで始まる別の会社じゃないのか。。残念。。

2009年10月12日

Windows 7 64-bit 環境で Application Manifest が無視されることがあるように見える - NyaRuRuの日記

めも

Windows 7 64-bit 環境で Application Manifest が無視されることがあるように見える - NyaRuRuの日記

Application Manifest (Windows)
http://msdn.microsoft.com/en-us/library/dd371711(VS.85).aspx

Windows 7/Server 2008 R2のプログラムだと宣言する - 新日々此何有哉
http://d.hatena.ne.jp/kkamegawa/20090705/p1

2009年10月07日

Windows 7でCOM APIが拡張されていてびっくり

そしてその拡張の地味っぷりにもw

Changes to COM in Windows 7 (COM)

追加された関数はこれ。

CoGetApartmentType Function (COM)

自分自身の現在のアパートメントタイプを返してくれるようです。

2009年10月04日

Pairwise Independent Combinatorial Testing(PICT) Tool

お恥ずかしながら、MSにこんなツールがあるとは知りませんでした。

Pairwise Independent Combinatorial Testing (PICT) Tool

PICT is an efficient way to design test cases and test configurations for software systems. With PICT, you can generate more effective test cases than you could reasonably hope to achieve manually, and in a fraction of the time that normal test case design consumes.

Downloads

このツールを知ったのはこの論文です。
Pairwise法と制約表による制御パステストのテストケース自動生成

このツールを元に、MTGと言うExcelベースのツールを作られているようです。

MTG プロジェクト トップページ - SourceForge.JP

ソフトウェアテストはまだまだ勉強不足で学ぶことがいっぱいありますが、この論文も大変参考になりました。

元ネタ:

【公開】SQIP2009講演資料「チケット駆動開発- BTSでExtreme Programmingを改善する-」: プログラマの思索

これ以外の論文も大変勉強になります。

2009年10月03日

TracLightning 2.4.0 alpha1

Heretic Programmer(2009-10-03)

TracLightningがTraMを取り入れて、マルチプロジェクト対応した、2.4.0の開発を始めたようです。

自社の現行のTracにTraM入れようかと思ってましたが、バージョンアップを素直に待とうw

リリース情報
http://sourceforge.jp/projects/traclight/releases/43810

2009年10月01日

Courier デモビデオ

Courier User Interface from Gizmodo on Vimeo.

続報で判明! クリエイターに大重宝な魅惑のMSタブレット「Courier」の詳細機能(動画) : Gizmodo Japan(ギズモード・ジャパン), ガジェット情報満載ブログ

これを見て、ああ確かにCEにSilverlightが必要だよねと言うのと、CEなのかとも嘆息。CEだとも言い切れないけど、おそらくそうでしょう。(XBoxのWindowsミニカーネルだって可能性もまだあるけど)

Xerox Parcで15年前ぐらいに研究されていたタブレット端末のアイデアから大きく外れていないとはいえ、(コラボレーションという意味では衰退!)今の技術でより洗練されたものであるのは確か。PCでない何かの一つの方向性ではあるんだろうと思う。いや、やっぱPCか。

なんて言うか、最近本当にこれは見たこともないぐらい新しいぜ!と言うものに出会わないんですが、技術に対するわくわく感が減衰していく一方なので、見たこともないもの出してください。そういうものがみたいです。

2009年09月30日

気になる本

技評のSE新書シリーズが最近静かだと思っていたら、過去でたものの第二版がでるようです。両方ともなかなか良かったので、これは期待。

ソフトウェア開発の名著を読む 【第二版】
ソフトウェア開発の名著を読む 【第二版】

Amazonで詳しく見る
by G-Tools

ソフトウェア開発で伸びる人、伸びない人 【第2版】 ソフトウェア開発で伸びる人、伸びない人 【第2版】

技術評論社 2009-10-21
売り上げランキング :

Amazonで詳しく見る
by G-Tools

IronPython - Release: 2.6 Release Candidate 1

すっかり見逃していましたです。

23日に2.6 RC1となりましたよ。

IronPython - Release: 2.6 Release Candidate 1

2009年09月29日

IronRuby - Release: 0.9.1

そゆもの。

IronRuby - Release: 0.9.1

基本的にバグ修正のみのようです。

Linq to XML 入門 その4 結合(JOIN)その2

忘れた頃にやってくる連載記事です。

今回は、やらないと前回書いた左外部結合とグループ化結合について説明します。

また、サンプルで使用するXMLファイルで、前回との違いは、category.xmlにカテゴリを一つ追加しています。

   1: <?xml version="1.0" encoding="utf-8" ?>
   2: <Categories>
   3:   <Category id ="1">
   4:     <CategoryName>飲料</CategoryName>
   5:   </Category>
   6:   <Category id ="2">
   7:     <CategoryName>前菜</CategoryName>
   8:   </Category>
   9:   <Category id ="3">
  10:     <CategoryName>主菜</CategoryName>
  11:   </Category>
  12:   <Category id ="4">
  13:     <CategoryName>デザート</CategoryName>
  14:   </Category>
  15:   <Category id ="5">
  16:     <CategoryName>お持ち帰り</CategoryName>
  17:   </Category>  
  18: </Categories>

グループ化結合

グループ化結合は、階層データ構造を作成する場合に便利です。グループ化結合は、最初のコレクションの各要素と、2 番目のコレクションの相関関係を持つ要素のセットを組み合わせたものです。

使用するXMLは内部結合のものと同じです。

以下の例ではカテゴリごとの料理のリストを作成しています。

   1: XDocument menu = XDocument.Load(@"..\..\menu.xml");
   2: XDocument category = XDocument.Load(@"..\..\category.xml");
   3:  
   4: var menuList = from c in category.Descendants("Category")
   5:                join m in menu.Descendants("item")
   6:                on
   7:                    (string)c.Attribute("id")
   8:                equals
   9:                    (string)m.Attribute("CategoryId")
  10:                into menusByCategory
  11:                select new {
  12:                    ID = c.Attribute("id"),
  13:                    CategoryName = c.Element("CategoryName").Value,
  14:                    Menus = from me in menusByCategory select new { Name = me.Element("name").Value }
  15:                };
  16:  
  17: foreach (var c in menuList) {
  18:     Console.WriteLine("{0} - {1}", c.ID, c.CategoryName);
  19:     foreach (var m in c.Menus) {
  20:         Console.WriteLine("\t{0}", m.Name);
  21:     }
  22: }

1,2行目でXML文書を読み込みます。

5行目から今回新しく説明するポイントです。

5行目のjoin句で、4行目のfrom句でcategory.xmlから取り出したxmlのエレメントに結合するmenu.xmlのエレメントを指定します。

6行目からon句から始まり9行目までが結合条件で、この場合にはcategory.xmlがもつidアトリビュートとmenu.xml側が持つ CategoryIdアトリビュートの値の一致をもって結合するようにしています。アトリビュート同士の値が同値であることの確認には"=" (オペレータ)ではなくequals句を使う必要があります。正確には

from <左辺XML>

join <右辺XML>

on <左辺条件> equals <右辺条件>

となります。

10行目ではinto句を使ってcategory.xmlのエレメントが持つidアトリビュートごとにmenu.xmlのエレメントをグループ化して、category.xmlのエレメントに結合します。

14行目ではselectをネストして、グループ化された中からメニューの名前のリストを作成しています。

動作結果

   1: d="1" - 飲料
   2:        コーラ
   3:        アイスコーヒー
   4:        ブレンドコーヒー
   5:        生ビール
   6: d="2" - 前菜
   7:        フレンチフライ
   8:        湯で海老
   9:        チーズ盛り合わせ
  10:        オニオングラタンスープ
  11:        シェフのお任せミニサラダ
  12:        シェフのお任せスープ
  13: d="3" - 主菜
  14:        御殿場高原で育った子羊のロースト
  15:        あしたか牛のフィレ肉を使ったビーフシチュー
  16:        沼津港スズキのグリル
  17:        焼津マグロのカルパッチョ
  18:        あしたか牛のサーロインステーキ
  19: d="4" - デザート
  20:        韮山苺を使ったショートケーキ
  21:        西浦みかんのババロワ
  22:        朝霧高原の牛乳から作ったティラミス
  23: d="5" - お持ち帰り

左外部結合

左外部結合は、2 番目のコレクションに相関関係を持つ要素があるかどうかに関係なく、最初のコレクションの各要素が返される結合です。LINQ を使用すると、グループ結合の結果に対して DefaultIfEmpty を呼び出すことで、左外部結合を実行できます。

以下の例は、カテゴリーID、カテゴリー名、メニュー名を表示するプログラムで、カテゴリーに対応するメニューが無くてもカテゴリーIDとカテゴリー名は表示します。

処理の手順は次のようになります。

最初手順ではグループ結合を使用して内部結合を実行します。今回の例ですと、先ほどと同じようにmenu.xmlのエレメントのリストは、 category.xmlのエレメントが持つidアトリビュート と一致する menu.xmlのエレメントに基づいて、category.xmlのエレメントの一覧に内部結合されます。

2 番目の手順では、右側のコレクションに一致する要素がない場合でも、最初 (左側) のコレクションの各要素を結果セットに含めます。これを行うには、グループ結合から一致する要素の各シーケンスで DefaultIfEmpty を呼び出します。以下の例では一致する menu.xmlのエレメントの各シーケンスで DefaultIfEmpty が呼び出されます。一致する menu.xmlのエレメントのシーケンスがすべての category.xmlのエレメントに対して空の場合、各 category.xmlのエレメントが結果コレクションに表示されるように、1 つの既定値を含むコレクションが返されます。

   1: XDocument menu = XDocument.Load(@"..\..\menu.xml");
   2: XDocument category = XDocument.Load(@"..\..\category.xml");
   3:  
   4: var menuList = from c in category.Descendants("Category")
   5:                join m in menu.Descendants("item")
   6:                on
   7:                 (string)c.Attribute("id")
   8:                equals
   9:                 (string)m.Attribute("CategoryId")
  10:                into menusByCategory
  11:                from mx in menusByCategory.DefaultIfEmpty(
  12:                 new XElement("item", new XAttribute("id", c.Attribute("id").Value), new XElement("name", ""), new XElement("price", "")))
  13:                select new {
  14:                    ID = c.Attribute("id"),
  15:                    CategoryName = c.Element("CategoryName").Value,
  16:                    MenuName = mx.Element("name").Value
  17:                };
  18:  
  19: foreach (var c in menuList) {
  20:     Console.WriteLine("{0} - {1} \t:\t{2}", c.ID, c.CategoryName, c.MenuName);
  21: }

11行目はメニューで使われていないカテゴリが表示できるように、DefaultIfEmptyメソッドでmenusByCategory内の各シーケンスを調べ、シーケンスが空でないならシーケンスの各要素をmxに入れ、シーケンスが空であるなら、規定値としてDefaultIfEmptyメソッドの引数で与えている値がすべて空のitemエレメントをmxに入れています。(ここでは値の無いエレメントを追加していますが、それが適切かどうかは場合によります。)

動作結果

   1: id="1" - 飲料   :       コーラ
   2: id="1" - 飲料   :       アイスコーヒー
   3: id="1" - 飲料   :       ブレンドコーヒー
   4: id="1" - 飲料   :       生ビール
   5: id="2" - 前菜   :       フレンチフライ
   6: id="2" - 前菜   :       湯で海老
   7: id="2" - 前菜   :       チーズ盛り合わせ
   8: id="2" - 前菜   :       オニオングラタンスープ
   9: id="2" - 前菜   :       シェフのお任せミニサラダ
  10: id="2" - 前菜   :       シェフのお任せスープ
  11: id="3" - 主菜   :       御殿場高原で育った子羊のロースト
  12: id="3" - 主菜   :       あしたか牛のフィレ肉を使ったビーフシチュー
  13: id="3" - 主菜   :       沼津港スズキのグリル
  14: id="3" - 主菜   :       焼津マグロのカルパッチョ
  15: id="3" - 主菜   :       あしたか牛のサーロインステーキ
  16: id="4" - デザート       :       韮山苺を使ったショートケーキ
  17: id="4" - デザート       :       西浦みかんのババロワ
  18: id="4" - デザート       :       朝霧高原の牛乳から作ったティラミス
  19: id="5" - お持ち帰り     :

このように「お持ち帰り」はメニューに存在しませんが表示されています。

ということでひとまず結合を含むクエリ式の説明はこれで終わりです。

それではまた次回!(あるのかー)

これまでの記事:

参考図書:

Essential LINQ (Microsoft .NET Development Series)

Essential LINQ (Microsoft .NET Development Series)
Charlie Calvert
Addison-Wesley Professional 2009-03-22
売り上げランキング : 109833
Amazonで詳しく見る by G-Tools

プログラミングMicrosoft LINQ (マイクロソフト公式解説書 Microsoft Visual Studi)

プログラミングMicrosoft LINQ (マイクロソフト公式解説書 Microsoft Visual Studi)
小高 太郎 (株)オーパス・ワン
日経BPソフトプレス 2009-05-25
売り上げランキング : 43591
Amazonで詳しく見る by G-Tools

2009年09月28日

Barrelfish

Barrelfish

このOSは将来のヘテロジーニアスなメニイコア環境を見据えて、それに合致したOS構造の構築を目指しているようです。

The Multikernel: A new OS architecture for scalable multicore systems.

詳しくは上の論文を読んでほしいのですが、このOSはマルチカーネルモデルを選択し、コアごとに単独のカーネルを持ったOS nodeを要します。この用意されるOS nodeもしくはその複数のOS nodeがアプリケーションをホストし、OSノード間は非同期メッセージにて通信するようです。このためシングルカーネルモデルな今のたいていのOSに比べ、アプリケーション間の独立性がより確保され、全体としての堅牢性が増すであろうことが予想されるのと、ヘテロジーニアスなマルチプロセッサ(コア)環境において余計な切り替えや特別な命令実行なしにそれぞれのプロセッサに適したアプリケーションを実行しやすくなります。

デメリットとして考えられることはアプリケーション間の通信が非同期メッセージのみとなり、アプリケーション間でのデータ交換の効率性が悪くことが予想されるので、一つ一つのアプリケーションの完結度を高めた設計や実装が必要になってくるでしょう。

アプリケーションプラットフォームにおいてメニイコア対応というか、並列性の向上は実際には待ったなしのきわめて重要なテーマで、CLRやJava VMのような言語実行環境やOpen MPのようなプログラミングライブラリでの対応が第1段階で、次の段階がこのようなメニイコアに適合するオペレーティングシステムの登場による実行環境の最適化が次の第2段階、その次がその環境に適したプログラミング言語の登場(あるいは再発見)、デバッグやテストを含めた開発環境の提供だと思っていますが、確実に第2段階に行く準備がされているようです。

元ネタ:

マイクロソフトが研究中の分散OS「Barrelfish」、スナップショットを公開 - Publickey

2009年09月26日

Java 7 JSR 275: Units Specification

F#のUnits of Measureについて書きましたが、 Java 7でJavaでもこの機能が追加されるようです。(matarilloさん多謝)

具体的にどんな書き方になるかは以下を見ていただくとして、いい感じです。

【コラム】Java API、使ってますか? (9) けっこう便利! 単位を扱うAPI -- JSR 275: Units Specification | エンタープライズ | マイコミジャーナル

で、まぁこれを見て思ったのは.NETの標準クラスライブラリにならないのかなと言うこと。やはりF#に限らず使えると便利だと思うんですよね。

jsr-275: ホーム
http://www.google.co.jp/search?hl=ja&q=JSR-275&sourceid=navclient-ff&rlz=1B3GGGL_jaJP339JP340&ie=UTF-8

HTML 5, Standards and Developer Features in Microsoft Internet Explorer 8 | Jafa | Channel 9

Get Microsoft Silverlight  

HTML 5, Standards and Developer Features in Microsoft Internet Explorer 8 | Jafa | Channel 9

IE8で拡張された機能説明。Web Developer向け。

Cavasとかvideoとかは期待しちゃだめです。

2009年09月25日

桁丸めメモ

全く世の中ってめんどくさいわ。

数値の丸め方 JIS Z 8401-1999
http://www.bsddiary.net/doc/jis-z8401.html

端数処理 – Wikipedia
http://ja.wikipedia.org/wiki/%E7%AB%AF%E6%95%B0%E5%87%A6%E7%90%86

IEEE 754 – Wikipedia
http://ja.wikipedia.org/wiki/IEEE_754#.E6.B5.AE.E5.8B.95.E5.B0.8F.E6.95.B0.E7.82.B9.E6.95.B0.E3.81.AE.E4.B8.B8.E3.82.81

2009年09月23日

Simple Cloud

http://www.simplecloud.org/home

Zendが用意したPHPのフレームワークで、簡単に言うとMS Azureのストレージ3種類を抽象化した糖衣を作って、その糖衣上で書いたPHPのコードは他のクラウドサービスでも変更無しに使えるようになるかもよというものです。

データアクセス部をプラグインにして自由に変更できますって言うのは他でも聞いた気がするけどうまくいきますやら。とりあえずはGAEにも対応しないとフレームワークとしての信頼感がないかと。俺はMS Azureだけだぜって人はMSのSDKだけよりもコードが簡単にかけそうなのですぐにでも使ってみる価値はあるかもです。

しかしこれとは直接関係ないですが、MS Azureで直接PHPのアプリケーションがホストされることはあるんだろうか。いつもでも中途半端にストレージだけ使える状況って言うのはライバルであるGAE考えるとよろしくなさそうに思うのだけど。

さて、リソース並べておきますね。

Interoperability @ Microsoft : Microsoft, Zend and others announce Simple API for Cloud Application Services
http://blogs.msdn.com/interoperability/archive/2009/09/22/microsoft-zend-and-others-announce-simple-api-for-cloud-application-services.aspx

Interoperability @ Microsoft : July CTP of PHP SDK for Windows Azure Released and support in Zend Framework
http://blogs.msdn.com/interoperability/archive/2009/07/07/july-ctp-of-php-sdk-for-windows-azure-released-and-support-in-zend-framework.aspx

Introducing Simple API for Cloud Application Services | jccim | Channel 9
http://channel9.msdn.com/posts/jccim/Introducing-Simple-API-for-Cloud-Application-Services/

F# Units of Measure

Get Microsoft Silverlight  

Andrew Kennedy: F# Units of Measure | Charles | Channel 9

F#のUnits of MeasureはそのままF#で単位と単位変換を処理できるようにするものです。

詳しくは下に書くリンク先のMSDNライブラリを参照してほしいですが、あらかじめ単位と変換式を定義しておくことで、F#のコードで単位付きの工業技術計算式をほぼそのまま書くことが出来ます。

これは僕らのように工業技術計算が主となるアプリケーションを作っている人間にとってはソースコードの可読性を大幅に向上し、潜在的な単位変換によるミスを減らすことが出来るので大きな進歩です。非常に強力なツールになりそうです。

Units of Measure (F#)
http://msdn.microsoft.com/en-us/library/dd233243%28VS.100%29.aspx

Microsoft F# PowerPack for .NET 4.0 Beta1
http://www.microsoft.com/downloads/details.aspx?FamilyID=e475a670-9596-4958-bfa2-dc0ac29b4631&displaylang=en

Units of MesureはPowerPackに含まれています。

また、ビデオにもでているアンドリューのBlogも参考になります。

Andrew Kennedy's Blog
http://blogs.msdn.com/andrewkennedy/default.aspx

Blogを見るとSI単位系等メジャーなものについては定義があらかじめされているようです。

http://blogs.msdn.com/andrewkennedy/archive/2008/09/02/units-of-measure-in-f-part-two-unit-conversions.aspx

2009年09月22日

Windows 2008 R2 Server Core上でPHPをFastCGIで使用する方法@Channel 9

Deploying IIS 7.5 + FASTCGI + PHP on Server Core | philpenn | Channel 9

Get Microsoft Silverlight

2009年09月21日

STM.NET, .NET Frameworkでソフトウェアトランザクショナルメモリを使用する。

川西 裕幸のブログ : STM.NET

STM.NETに関しては上の川西さんのBlogに付け足すことなんて無いです。

ググったらbingったら8月はじめぐらいにInfoQで記事になってたんですね。

並列化のプログラムでやっかいなのが共有リソース(特にメモリ)に対するロック、特にデッドロックが起きることです。このデッドロックを回避するためにフレームワークが提供する機能を利用したり、デッドロックを回避するためのアルゴリズムを実装するわけですが、たいていコードは複雑化して、そしてデッドロックします。

このため、並列化プログラムにおける共有メモリに対する処理をコード的にわかりやすくし、出来るだけデッドロックの恐怖から解放するための仕組みがソフトウェアトランザクショナルメモリになります。まぁ私がうだうだ書くよりWikipediaでも読んでいただいた方がいいですね。

とりあえずこのすばらしいソフトウェアトランザクショナルメモリ(STM)が.NET Fx上でも使えるようになりますよと言うことですね。来年と言わずに今すぐくださいw

STM.NET
http://msdn.microsoft.com/en-us/devlabs/ee334183.aspx

リリースノートやプログラミングガイド、ブツもここです。

チームBlog
http://blogs.msdn.com/stmteam/

2009年09月18日

ソースコードのコピペ

Don't Live with Broken Windows:柴田 芳樹 (Yoshiki Shibata):So-net blog

言い換えると、仕事でソフトウェアを開発している場合には、自分が書いたソースコードは、誰かに真似されることがあるのです。したがって、出来る限りきちんと書いておく必要があります。残念ながら、きちんと書いていても、詳細を理解することなくコピーして修正(改悪)してしまう人がいます。
コードレビューの際に、「あなたが他の人のコードを真似(参考に)したように、あなたが書いたコードを誰かが将来また真似(参考に)する可能性はあります。悪いコードを真似されるよりは、良いコードを真似される方が良いので、この際、書き直してください」と指導したこともあります。
他人が書いたコードでも、そのコードを引き継いだ場合には責任がありますので、悪い部分は修正していく必要があります。

ヒント4: 割れた窓を放置しておかないこと
Don't Live with Broken Windows

書籍『達人プログラマー』より

しかし、割れていると認識できるレベルに自分の技量を高めないと、割れている窓は、割れていないように見えてしまいます。

しかしこれで思い出すのが

UTF-8の冗長なエンコードとは何で、なんでそれがセキュリティ的に危ないのか?を文字コード知識レヴェル3くらいの凡プログラマが考えてみる - それ図解で。・・・tohokuaikiのチラシの裏

      r ‐、
      | ○ |         r‐‐、
     _,;ト - イ、      ∧l☆│∧  セキュリティ エバンジェリストの諸君!
    (⌒`    ⌒・    ¨,、,,ト.-イ/,、 l  われわれPHPerにとって大切なのは
    |ヽ  ~~⌒γ⌒) r'⌒ `!´ `⌒)  すぐ使えるサンプルか、コピペで動くコードだけだ。
   │ ヽー―'^ー-' ( ⌒γ⌒~~ /|  PHPerを買いかぶらないでもらいたい
   │  〉    |│  |`ー^ー― r' |
   │ /───| |  |/ |  l  ト、 |
   |  irー-、 ー ,} |    /     i
   | /   `X´ ヽ    /   入

これ。これが現実かも。

これが現実問題とするなら、セキュアで、良いコードを広めるにはSEOテクニックでも使って、検索上位に良いコードがくるようにしないとだめなのかもね。

noop

Googleが発表した新言語。JVM上で動作します。

noop - Project Hosting on Google Code

言語仕様がwikiに書かれていて、なかなか面白いので。ちょっと上げておくと

  • コードブロックに依存させずにScopeキーワードで任意に指定できるインスタンスのライフサイクル。(using(..)?)
  • 「言語仕様」に含まれているIOCとテスト
  • 安全なDeepCopy

Java言語仕様がが年代を経て大きすぎると言って、簡素化していく動きはまぁ自然かなと思います。

2009年09月16日

クラウド時代にSIerはどう変わるのだろう? セールスフォースの展示会場に飛び込んで聞いてみたを読んだ

人によっては予想どおりと思うか、お先真っ暗と思うか、なかなか刺激的。

クラウド時代にSIerはどう変わるのだろう? セールスフォースの展示会場に飛び込んで聞いてみた - Blog on Publickey

この記事を読んでの感想ですが、個人的には予想どおりいろいろ動いてきたなと言うのと、SIerでも生き残ろうと考えて動いているところはちゃんと動いて対応しようとしてきているなってのがわかって希望はあるなぁと思ったところ。

チャンスと見るか、知らないふりをしてある日絶望の淵に立つかはそれぞれの会社中の人たち次第だと思いますので、お互い視野を広げておきましょう。

Microsoft SDL - Developer Starter Kit

Microsoft Security Development Lifecycle (SDL)にあわせたセキュアなプログラミングための学習キットという感じでしょうか。

Download details: Microsoft SDL - Developer Starter Kit

2009年09月15日

JUDE が astah* に生まれ変わります。:An Agile Way:ITmedia オルタナティブ・ブログ

ということだそうです。

JUDE が astah* に生まれ変わります。:An Agile Way:ITmedia オルタナティブ・ブログ

2009年09月14日

Virtual PC 2007 Service Pack 1 用機能改善パッチが出ました

Virtual PC 2007 Service Pack 1 用の修正プログラム ロールアップ パッケージ (2009 年 2 月 20 日) について

詳細・ダウンロードは↑をクリック。

主な改善点は次のような感じです。

  • XP/VistaのHomeエディションサポート
  • NAT使用時のネットワークパフォーマンスの改善
  • 最大解像度が1600 x 1200から2048 x 1920 (32 ビット)に拡大された
  • そのほかのバグの修正

個人的にはVPCでUWXGAが使えるようになったのがうれしいですね。

2009年09月11日

CodePlex Foundation

CodePlex Foundation

The CodePlex Foundation, a non-profit foundation formed with the mission of enabling the exchange of code and understanding among software companies and open source communities, launched today, September 10, 2009.

10日CodePlexの運営母体がMicrosoft Corp.からNon-profit foundationであるCodePlex Foundationに変更され、MSから管理と運営が同団体に委譲されたました。

CodePlex FoundationはMSから援助を受けるもののアメリカ国内法に基づくNPO法人として設立され、法人としてはMSとは全く別の法人となります。

これはmonoのMiguelが書いているように、MSにとっては過去フィクションとも思えていたような大きないい方向への変化だと思います。

Miguelも理事会に入るようですね。

CodePlex Foundation - Miguel de Icaza

I am glad that I was asked to be part of the board of directors of the foundation. And to work together with some great advisory board.

I hope that I can last more on this foundation than I lasted at the FSF, where I was removed by RMS after refusing to be an active part of the campaign to rename Linux as GNU/Linux.

なるほど、RMSみたいに意に沿わないからって尻を蹴っ飛ばす人はいないと思うけど。

2009年09月10日

Server hagging またはサーバー抱擁

Server Hagging(サーバー抱擁)は日経コンピュータ記者中田氏の言うようにオンプレミス的に流行るかもしれない。 サーバー抱擁と訳してきたのはExcite翻訳なんだけど、「はなしたくないっ、はなれたくないっ」的な情感がにじみ出てきていい感じです。

Microsoft says remote server management requires an internal culture shift. The need to be near one’s servers – a tendency known as “server hugging” – is deeply rooted and can play a large role in a company’s decisions on outsourcing and data center site location.

Microsoft Data Center Battles Server Hugging « Data Center Knowledge

記事の内容はマイクロソフトがソフトウェア開発用のデータセンター(50,000スクエアフィート、サーバ35,000~50,000台)をワシントン州のレドモンドにMSのHQかた「たった」8kmしか離れていない場所に作っていて、それってどうよって内容です。結局お宅ら客にはクラウドとか言っておきながら、自分たちが手放せないんじゃんと。

記事の最後でMSの人間が認めているように、一番難しいのは文化を変えることというのは、クラウド導入でも変わらないようです。

Expression Studio 3 (x86) - DVD (Japanese)

そゆうものがMSDNサブスクライバダウンロードに

2009年09月09日

Microsoft Robotics Developer Studioのお勉強ページ

そゆもの。

Microsoft Robotics Developer Studio

日本語化されることは・・・・・・・まず無い。

2009年09月08日

1日1.5テラバイトですと?!

NYSEユーロネクストの扱うデータ量は膨大で、1日当たり1.5テラバイトのデータを扱い、その量も年率40%~100%増量し続けているという。NYSEだけでも1日0.5テラバイトのデータ量だ。同社では、このデータの12カ月分(240テラバイトを2.4倍に圧縮して保存)を、現在ネティーザの「NPS 10800」に格納。新しく1カ月分のデータを格納する度に、古い1カ月分のデータを「FFF(Flat File Farm)」へ移し、6年間分保管しているという。「リロードの速さは製品選定のうえで非常に重要なポイントだった。米国の法律で、金融機関は1カ月分のデータを1日でリロードできなければならなかったからだ。そのため、この『1カ月分のデータを1日でリロードできる』というのがまず第一の選定ポイントとなった」という。

1日1.5テラバイトのデータを格納するために超並列を選択 - @IT

もうエンタープライズ過ぎてにやにやするしかないし、ちょっとだけこのプロジェクトに関わってみたいなぁと思ったけどやっぱり全力で否定しておくw

2009年09月06日

Windows アプリケーションのクラッシュダンプはどう扱われているか

ACM主催のSOSP 2009でWindowsでアプリケーションがクラッシュした場合にMSに送信されるミニダンプ他の情報(WER:Windows Error Reporting)がどう扱われ、どう解析されているかの論文発表があったようです。

Debugging in the (Very) Large: Ten Years of Implementation and Experience
http://www.sigops.org/sosp/sosp09/papers/glerum-sosp09.pdf

多いときで1日100万を超えるバグレポートを非常に高度の自動化された分散システムで効率よく処理しています。論文を読む限り多数のデータに対するエキスパートシステムとしても大変よくできていると思います。

元ネタ:

SOSP 2009適当まとめ - moratorium

Sessions :: Microsoft PDC09

PDC09のセッションリストが公開されているが、確実に去年のPDCでは目玉であったはずのOsloのOの字もないという。 まぁまだ全部じゃないようなので、これから追加されるかもわかりませんけど。

Sessions :: Microsoft PDC09

2009年09月04日

TracLightning 2.3.0

TracLightning 2.3.0 - かおるんダイアリー

ベータを含めて変更点をまとめるとこんなとこでしょうか。

さて、明日あたりあげてしまおうか。

VBA連携は可能性がありまくりなんだよなぁ。

Silverlight 3 GDR 2

Nicholas Allen's Indigo Blog : Silverlight 3 GDR 2

Silverlight 3 has been updated with a small set of bug fixes and support for the GB18030 code page for developing Chinese localized applications.

いつの間にGDR1が出てたんだって方が気になりますが、GDR2が出たようです。

GB18030のサポートと言うことで、外字を使われている方は検証をしっかりやった方が良さそうです。Macでもすべきかはちょっと資料が見つけられてなくてわかりません。Silverlightの文字列周りは実際には環境依存するらしいので、気になる方はGB18030の文字でUNICODEにマップできない文字がどこにマップされるのか調べて、自分たちが使用している外字エリアと重ならないか確認した方がいいでしょう。

Windowsについては以下を参考にしてください。

OPC Diary: WindowsにおいてはUNICODEのユーザーエリアに東アジア言語のコードページ用の予約領域がある。

2009年09月02日

ironrubyのruby specへの準拠度は92.4%

ironruby.info

一応上のリンク先の数字が現在の数字らしい。

個人的にあんまり意味のない数字だと思っていたりもするのだけど、純粋にIronRubyをCRubyの代替として使いたい人には気になる数字だろう。

私としてはRails動くとか言うよりも.NETやSilverlight上でそれらのクラスライブラリや自作のライブラリやCOMを簡単に扱えるRuby言語であってほしかったりもしたのだけどもう方向性違うよなぁ。

2009年09月01日

ビービーシステム TFS Online サービス

ビービーシステム TFS Online サービス

TFSをサービスとして提供されるようです。

ユーザー数課金のようなのですが、レポジトリデータベースの容量制限についてどこにも書かれて無く、人ごとながら心配です。。。

2009年08月30日

C#たん

C#たん - Windows Live

C#擬人化と言うことで、ufcppさんが知り合いの人に頼んでいたものがほぼ完成でしょうか。

ものすごくいい感じです!

ufcppさんのBlogでは髪留め2パターンとなっていますが、C#のイメージカラーが緑なので、断然こっちの方がいいw

さてこの子の性別は。。

2009年08月29日

CodeRush Xpress 9.2 Ships

Charlie Calvert's Community Blog : CodeRush Xpress 9.2 Ships

Free Coding Assistance Add-in for Visual Studio Developers

このツールはかなりいいかも。

2009年08月27日

Tech Ed Japan 2009 1日目 BOF-03 Windows 7 で世界をセンシング!!

Windows Sensor and Location platformのお話。

でも中心のセッションででも内容としてはFreescaleの評価をキットを使ったデモで、評価キットの傾斜センサーの入力にあわせ、WPFのアプリケーション上のモデルが動作するものなどが中でした。あとは、DPWSのお話。

Windows sensor adn location platformは温度センサー、照度センサー、傾斜センサー、GPSなどのデータを統一して扱うためのCOMのAPIセットで、これまでそれぞれのデバイスメーカーごとに異なっていたAPIを統一しデバイスメーカ側にはそのためのドライバを書いてもらおうというものです。センサーは何でもかんでもあるわけでも抽象的過ぎるわけではなく、モバイルPCに付属(同じ筐体内)したり、USBで簡易に取り付けられそうで、あると便利なものが選択されている感じです。

これ向けのドライバはユーザーモードデバイスドライバフレームワーク(UMDF)として作成するので、カーネルモードデバイスドライバを作成するよりも開発が楽に行えると思います。(カーネルレベルでのデバッグをしなくてもよいので)

最後にフリースケールの評価キットまでいただいたので、これからがんばって勉強したいと思います。

リソース:

ユーザーモードでバスドライバフレームワーク

MSDN Code Gallery : Windows Sensor And Location Platforms
ここにFreescale評価キットを動かすためのコードがあります。

Windows Sensor Development Platform featuring the Flexis JM USB Microcontroller: JMBADGE2008-B Product Summary Page

Flexis JM USBマイクロコントローラ搭載のWindows向けセンサ開発プラットフォーム:JMBADGE2008-B
(Freescaleの評価キット)

http://jp.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=6768698
通販で販売されてます。うっこんなするんだ。。

Jim Travis's Blog
US担当者のBlog

“匠の国”、日本で、組込み全開!!
講師太田さんのBlog

デバイスドライバーズ 組み込みLinux Windowsデバイスドライバ開発
DPWSの開発をされた会社

2009年08月25日

VB6はどこまで生き延びることができるか?

VB6はどこまで生き延びることができるか? - Blog on Publickey

日本での現在の調査結果は見つかりませんでしたが、僕が知る範囲でも、新規開発で使われている例はさすがにありませんが、過去にVB6で開発されたパッケージソフトのカスタマイズを案件ごとにVB6で行っているという例はまだ少なくないようです(VB5で開発されたパッケージですらまだ現役で使われているようです)。こうした現状があるからこそ、マイクロソフトはいまだにVBマイグレーションセンターのリニューアルなどに勤めているのでしょう。

いや、まだ新規案件の話とか聞くから。。。

記事にある通りまだ10年ぐらいは残ると思う。

とりあえず、VB6から.NET Framework環境へのマイグレーションは以下を参照。

VB マイグレーションセンター

まぁ基本作り直す覚悟は必要ですが。。

Cloud Computing向けパターン

simonguest.com : Patterns for Cloud Computing

http://www.slideshare.net/simonguest/patterns-for-cloud-computing

前半では全般的なクラウドコンピューティングの解説と利点の説明、後半ではAzureを使用する場合のソフトウェアアーキテクチャパターンについて、今までのWebアプリケーションのそれとの比較をしながら説明しています。

TracのWikiをWordに貼り付けてみた:へっぽこ実験Blog:So-net blog

TracのWikiをWordに貼り付けてみた:へっぽこ実験Blog:So-net blog

目的:

TracのWikiをダウンロードしてきて、Wordに貼り付ける。

http://www014.upp.so-net.ne.jp/mima3/data/TracWikiConvertToDoc.zip

環境:

  • Word 2000
  • Trac10.4

 

おお。TechEdから戻ったら試してみよう。