Tartoies SVNのセットアップ手順(ビデオ)
人生初YouTube投稿だったり。
やっぱり音(解説)がないと変だからちゃんとヘッドセット買おう。
人生初YouTube投稿だったり。
やっぱり音(解説)がないと変だからちゃんとヘッドセット買おう。
ちょうどソフトウェアテストに関するBlog記事が二つあがったので紹介。
そろそろ大規模ソフトウェア開発に一言いっておくか。デイリービルドとリグレッションテスト
よしおか氏によるOracle在籍当時のデイリービルドとリグレッションテストに関する記事。
最新のソースをチェックアウトする→コードとテストを書く→入力と出力のテストデータを作る→テストする→修正→テスト通るまで繰り返す→同僚によるレビュー→チェックイン→デーリービルド&リグレッションテスト→次の日の朝→テスト結果の確認
このような1日のサイクルだったらしい。
テストの重要性に言及。
新規に開発するプログラムもテストがなければレガシーシステムである。そして初めからテストを書いていれば、実装したプログラムの機能を確認できて、安心であり、心の平静が保てる。
テスト駆動開発の効果はどのくらいある? - Publickey
TDDはコード量を若干上げるが単体レベルでのバグを90%~30%減少させ品質を向上させるというレポートに関する記事。
TDDは一人からでも始められるので始めていたらどうだろうというまとめ。
ということで、これを待望にしていた皆さんおめでとうございます。
Download details: ASP.NET MVC 2 RTM
この公開は.NET 3.5/VS2008向けです。.NET4/VS10向けはVS10の製品リリースにあわせた方になると思います。
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はMicrosoft Research(MSR)の一般への研究発表の場でいわば学園祭です。
上は責任者であるリチャード・ラシッドによるイントロデュースです。
また、これ以外にも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
Sorting it all outで久しぶりの日本語だと思ったら縦書きの話でした。
ちなみに最近ではアジア言語でも縦書きが常用されるのは日本語だけとか。
Sorting it all Out : When something is just flipping wrong
縦書きのバランスの話もありますが、主な内容はプリンタ「ー」の音をのばす横棒の話です。
多くの日本人ならまず間違えない漢字の「一」と「ー」が違うというのは、漢字の意味なんて当然知らないし、漢字が絵にしか見えない人たちにとっては、まぁ区別つかないよね。ましてや縦書きになったら字が反転して回転するなんて考えもしないでしょう。(おっと、「ー」は漢字じゃないやw)
ということで、「ニホンゴムズカシイネ」という例の一つですね。
(テクニカルな話は是非もと記事を)
講師:長沢智治
VS2010におけるチーム開発機能、ユニットテストツール、コード分析機能、モデリング機能とチーム開発環境との連携、仮想化を使ったテスト環境の管理ツール、VSとは独立したテストスィートに関する説明でした。
VS開発チームが実際にVSを使いScrumで開発を行っており、そのフィードバッグが製品に良く反映されているのだと思います。
VSのコードエディタ上でメソッド選択して、リバースでUMLのおシーケンス図を書いてくれるのにはちょっと感動しました。(逆はできませんけど)
あるいみ、VSのUMLモデリング機能はものすごくスケッチャー向けの機能なんだと思います。
ではtsudaりのまとめ。
講師:小高太郎
Open Data Protocol(OData)とそれを.NET上で実現するWCF Data Servicesについての説明でした。
OSSのサーバーソフトウェアだとよくXML RPCによるAPIがあり外部プログラムから操作可能ですが、それと同様なことがMSのサーバー製品やその他においてもODataで実現されていくのだと思います。他社への実装の働き崖が大事になってくると思います。
ではtsudaりのまとめ。
講師:荒井省三
内容は.NET 4で取り入れられた、あるいは改良されたプログラミングパラダイムについての解説で、その中でF#, XAMLといったものが解説されました。
Ruby作者のMatzさんとかも言っていますが、今後10年の言語トレンドは宣言型、あるいは関数型のパラダイムが主流になっていくと思っているので、資料を見れる方は見ていると良いかもしれません。
講師:川西裕幸
Visual Studioで追加された並列関係機能、特に.NET 4.0での並列化についての解説でした。このようなフレームワークによる並列化支援はあるものの、結局のところアムダールの法則を乗り越えるには正しいアルゴリズム設計、分割可能なデータ構造の設計といったものが結局のところ必要だと感じました。
ではtsudaりのまとめです。
講師:森屋英治(株式会社アークウェイ)
このセッションでとりあえず参加費の元は取れました。
セッション資料中の図表類は非常に効率的で有用なので、参加者の方は今すぐ見ておくことを進めします。また資料は後日一般公開がされるようなので、参加されてない方もAzureでの開発はなくても一般的なエンタープライズアプリケーションの構築に関わる方はごらんになっておくと良いと思います。
とにかく縦横無尽にWCF何とかを中心としたアーキテクチャ解説とデモは見事というしかありません。エクセレント。
講師:長沢智治
Osloは交代しているように見えるが実は現実的なところに戻って、これから元々の構想のように大きくなっていくのではないかという長沢さん言葉が印象的でした。
では自分のtsudaりのまとめです。
講師:スティーブ・マークス
このセッションに関して私がtsudaった内容のまとめです。
また、セッション資料は後日一般向けにも公開されるようです。
PDC09以降Azureでの変更点特にWorker Roleの役割の大きな変更似合わせ、今のAzureアプリケーションの作成方法、アーキテクチャーに関するナイスな解説でした。
自分でtsudaった分のまとめです。
3スクリーン + クラウドの解説と関連製品・サービスの紹介。
Azureの導入事例の紹介でした。とりあえず今Azure上でシステム構築する場合オンプレミスとクラウドをうまく連携させることを考えるとうまくいくようです。
頭の中を変えなければならないが、適したパラダイムにすればコードがシンプルになる #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
The Managed Extensibility Frameworkのプレビュー9が出ていました。
変更点としてはSilverlight向けにいくつかの名前の変更や名前の空間に変更があったのと、バグフィックス、サンプルの追加となっています。
明日からいよいよ始まるTechDaysですが、キーノートがSmoothStreamingで公開されます。(要Silverlight)
技術的な背景とか詳しいところは以下で。
Twitterを活用したTechDaysの楽しみ方(その2):高画質版のUST?でキーノートライブ配信:Azureの鼓動:ITmedia オルタナティブ・ブログ
現在もページは生きていてデモのSmoothStreamingのビデオが流されているので、自分の環境で見ることができるか確認しておくといいでしょう。
キーノート ライブ中継 - Microsoft Tech·Days 2010
http://td10.ds.ipcasting.jp/?lang=original

まぁ昨日は浜松ITカンファレンスに2010に行ってきたのですが、その中での日本仮想化技術 宮原徹氏のお言葉。
仮装化しないのがオールドタイプ。世間的に仮装化を反対していた上司が、システムを仮装化をして思わぬ効果があった場合にはぜひ「これが、オールドタイプと言うことなのか。(ライラ・ミラ・ライラ)」と言ってほしいが、言わないだろうな。
なんかMSの某エバンジェリストのBlogみたいになってきたな。
MSRの主任研究員でF#の開発者でもあるSyme先生によるF#解説の3回シリーズがChannel9で公開されています。これはエリック・メイヤー先生による長かったHaskellを使った関数型言語講義に続くChannel 9の講義シリーズのようです。
以下のページにVS2008 SP1以降に出たパッチ類の情報があります。
かなりの数があって、直接のダウンロード、メールでの問い合わせによるダウンロードができるものがありますが、ほとんどはサポートの電話問い合わせが必要です。
これだけの数のパッチについてそれをやるにはあまりにも大変なので、一括でダウンロードできるようにしてほしいです。
かつて、VS2008にはGDRが出た実績もあるのだし、これらのパッチについてもSQL Serverのように定期的に累積パッチを出せないものなんでしょうか。
(ブクログより転載)
って言う本があったら今すぐ買う!っていう状態なのですが、そんな本はありません。ただ、幸いなことに以下の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: }
そゆもの。DLは以下からお願いします。
変更点はRubyForgeの方をご覧ください。
また、.NET Fx 4.0 RC対応のものがほしい方は以下より入手できます。
IronPython - Release: 2.6.1 RC1 for .NET 4.0 RC
.NET Fx 4.0 RC向けがリリースされました。
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 | |
![]() | 山本 和彦 オーム社 2009-11-11 売り上げランキング : 5619 おすすめ平均 わかるってたのしいなー。 Haskell Amazonで詳しく見る by G-Tools |
UK STUDIO - プログラマという職業は「ふつう」の人には厳しくないか
「ふつう」の人達はプログラマになるべきじゃないのだろうか? 例えば、プロスポーツ選手であれば普段の生活からそれ相応の生活を求められるだろうが、プログラマもそういう職種なのだろうか。
少なくとも今現在まわりと見渡すと「ふつう」のプログラマも結構いるように思う。結婚して妻子がいて、そういう勉強の時間があまり取れないって人もいると思う。そういう人達にプログラマはもう無理だねと言ってしまってもいいのだろうか。
これはプログラマやIT技術者が他の人より一歩先にこういう状態になっているだけ。基本的にいわゆるホワイトカラーと呼ばれる業種についている人間はそういう状態になるし、勉強量の差はあるだろうけどそれは程度の問題になると僕は思っているわけだけど。実際企業会計に関わっている人たちもやれJSOXだ、国際会計ほにゃららだと毎年のように新しい法規や制度でが出てきて対応しなければならない状態が続いているし。
ドラッカーの言うように頭を使ってお金を得る人たちは総プロフェッショナル化の道に進んでいるのは間違いないだろうし、それは確かにプロ野球選手のように生活することなんだと思う。(それも程度の差があるわけだけど)
本件興味を持たれたなら以下の本をお薦めします。
| プロフェッショナルの条件―いかに成果をあげ、成長するか (はじめて読むドラッカー (自己実現編)) | |
![]() | ダイヤモンド社 2000-07 売り上げランキング : 163 おすすめ平均 当たり前だけど大切なこと。 手許に置いといて良かった。 知的な興奮を感じる一冊 Amazonで詳しく見る by G-Tools |
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)
詳細内容全く不明ですが、以下のリンク先にてKindle SDKというか、KDKと言うものの申し込みを受け付けています。どんな言語を使うとか、どんな開発環境なのかはよくわかりません。一応Amazonで販売した場合Amazonの取り分は3割、こちらは7割となるようです。
動作環境の制限がiPhoneやAndroidよりも遙かに厳しいので、よりアイデア勝負な感じになると思います。
個人的には初代Simcityなんていいんじゃないかと思ったりします。モノクロだし。
All-In-One Code Frameworkは.NETやWindows開発での様々なコードサンプルを一つにまとめて、一挙に提供しようというプロジェクトのようです。現在のコードサンプルは290。
以下のサイトよりダウンロードできます。
うーんこれすごいかも。
ブルックスの「人月の神話」を踏まえ、ソフトウェアエンジニアリングの歴史を網羅し、そのれぞれの問題点を踏まえ、それらについて解説した本。
ブルックスの著作を読み終わっており、ソフトウェアエンジニアリングについての知識を持っているなら第4章から読み進めてもかまわないかもしれない。
最後の最後で『新しいパラダイムでも本質的困難は普遍的であり、これをあるがままに受け入れる姿勢が求められている。』と身も蓋もなく救いの無い文で終わっているが、これはおそらく人間がソフトウェア開発を続けている限り逃げ切れないものなんだろうと思う。
(以上ブクログから再掲)
追記:
脚注がすばらしい。更なる学習への道筋を示している。同様に巻末の読書ガイドも秀逸。
以前紹介したXBox 360のキッズ向けヴィジュアルプログラミング環境のKODUのPC版が出たようです。
使用に当たっては.NET Framework 3.5とXNAのランタイムが必要になります。(インストーラでインストールするように言われ、ダウンロード先がリンクされます)
また、操作に当たってはXBox 360コントローラと互換性のあるPC用ゲームコントローラがあった方がいいと思います。
【レビュー】複雑化するゲーム開発と『Kodu』の意義 - ゲーム作りの興味を失う前に | ネット | マイコミジャーナル
関数型言語とはなんかという話とHaskellの歴史。
明らかにラムダ式は(数学として)知っているぐらいの書き方なので、関数型言語入門書としてはあれげ。ただ、コンピュータサイエンス学科の学生向け教科書の第1章としてはこんなものかと思います。
Haskellとしてのイントロダクション。
文法の基本と書き方の基本。
次回は2月27日です。
第3章が対象。発表担当は高橋会長です。
Haskell Platform Download (Beta)
Haskellのコンパイラ、対話環境、各種ライブラリをまとめてインストールできるもののようです。
私のようにとりあえずHaskellを始めてみようという方にはよろしいのではないかと思います。
ということで、明日は静岡デベロッパー勉強会 Haskell読書会の第1回読書会です。
まだ、参加申し込みは可能なので以下からよろしくお願いします。
新年あけましておめでとうございます。
以下は国立情報学研究所佐藤先生の1月3日分の日記から
Windows開発者の皆様方にはたいへん失礼な物言いなのですが、Windows向けアプリケーション開発は時間が止まったような世界。そんな世界に浸った開発者がクラウドコンピューティング向けの新しいサービスを作れるかというと疑問なのですよね。あるプラットフォームが既存の開発者が有利という印象を与えたら、新規開発者はそのプラットフォームは避けるものです。Azureをイノベーティブになるには、既存のWindows開発者を切り捨ててでも、新規の開発者をAzureに引き込む必要があったのではないでしょうか。
それと過去の歴史を考えると新旧プラットフォームでアプリケーションの重複はない。例えばメインフレートとミニコンでは、メインフレームからミニコンに移行したアプリケーションよりも、ミニコン向けに新たに開発されたアプリケーションの方が多い。Azureのことに話題を戻すと、現在のWindowsのアプリケーションはWindowsで動かせばよく、Azureで動くアプリケーションは今までにないものになるということです。このため既存Windows開発者をAzureに連れて行ったために、Azureというせっかく新しいプラットフォームなのに古いアプリケーションを動かし続けることになりかねません。
ならばどうすればいいのかですが、他のプラットフォームの開発者を引き入れることも重要ですが、やはりエンドユーザによる開発ができるようにすることが求められるように思います。実際、Force.comはWebブラウザで開発できるので、開発ツールや統合環境のインストールは不要なのですが、こうしたインストール有無だけでもエンドユーザ開発の障壁になっていましたから、Visual Studioのインストールが必要なAzureって時代錯誤なのですよね。
Windowsの開発で時間が止まっているのはそうだろうな。SilverlightといってもVBから続くフォームベースのRADと大きく何かパラダイムが変わっているわけではないですし。
AzureですがAzure自体ワーカーロールで実質何をしてもいいという状態になり、いったいユーザー(この場合はAzure上にアプリケーションを作る立場の人・物)に何をさせたいのか余計にぼやけてきていますが、EUC(エンドユーザーコンピューティング)は一つの方向性を示していくと思うけど、なんでもつくれるAzureのままなんだろうなぁ。
ということで、今年はクラウド・コンピューティングが現実的な選択肢になり、本格的な普及に向けて最適なプロセス、最適な設計手法を求めてすったもんだして行く年になるのでしょう。
今年こそ、今までの何かの焼き直しでない突き抜けた新技術を見てみたいところ。オブジェクト指向を過去の物として本当に置き換える何かとか、既存のマイクロプロセッサアーキテクチャを根底から覆すようなプロセッサーアーキテクチャとか、いい加減HTTPから離れて、これからの時代に合う新しいプロトコル(wave?どうだろう?)とか、そういう物をみたいですね。
以下のリンク先でTechEd 2009のセッション内容をストリーミングで確認できるようです。 (要Silverlight)
スライドもPDFとして落とせるようになっています。
Azureストレージのテーブルでは正規化しないことがポイント - かめログ2
いくつかのソリューションサンプルを見たり、プロトタイプを作成しているうちに件の結論に行きつきました。間違っていたら教えてください。
単純に正規化しないは間違ったメッセージだと思います。
これははじめから正規化を放棄した(する)と受け取ったのですが、実際の設計作業ではそうでないと思います。KVSというかISAMが1つのKey値しか持ち得ないため、最終的なそれのデータ構造が非正規化してしまうのはある種仕方のないことなのですが、それがすぐに設計段階でデータを正規化しなくていいと言うことにはならないです。
基本的には一度従来通り正規化を行った上で、アプリケーションの特性や、Azureのテーブルならテーブル、GAEならGAEにと、それぞれにあわせた形で非正規化を行っていくというプロセスになると思っています。
無秩序にKey付きの構造化されたデータがあちこちに散らばるという状況はおそらく収拾がつかなくなるのでしょうし、RDBのように結合やグルーピングで後から任意の形にデータをまとめることができませんし、それを前提に将来のアプリケーション改修や保守を見込む必要もあり、むしろRDBの時よりAzureのようなKVSの方がデータ構造の設計は難しくなってきていると考えます。
当然非正規化されてしまっているので、データ更新するプログラムの処理も煩雑でわかりにくいコードになりがちです。
データパティーショニングの粒度設計なども絡んでクラウド・コンピューティングでのデータ設計の方が、従来のDBMSを前提としたC/SシステムやWebアプリケーションよりもデータ設計やソフトウェア設計においては難易度が高く、安易に考えない方がよいと思います。
いや、ほんとサンプル以上のものを作るのは大変だと思うんですよね。。。
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を使用したことだと思います。
何というか、これが正式アナウンスのようです。
ということで
IronRubyがとうとうRCになりました。
[ANN] IronRuby 1.0 RC1 - Ruby Forum
こちらのBlogのスライドにありますが、だいたい全体的にCRuby(1.8.6?)との互換性は90%以上にまでなってきたようです。
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
自分の中で秀丸以外のエディタ環境を模索しつついろいろ試していますが、ある意味王道である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を起動するようにすると便利だと思います。
まぁ後は精進といったところですね。。。
リリースとなりました。 1年ぶりのメジャーバージョンアップです。
うーんDLR自体には変化がないなぁ。。IronPythonが正式リリースとなったので、こちらもリリースとなるのではないかと思います。
諸般の都合でSQL Server Compact Edition 3.5を使い始めることとになり、いろいろと祟られています。。
まぁぼやいていても仕方ないので、自分で調べたところはWikiの方にまとめ始めましたので、興味のある方はご覧ください。
しかし、これも情報が少ない。MSDNだけでもとりあえず何とかなりますが。。。
IronPython 2.6の正式リリースに向け、IronPythonのサイトができたようです。これから最新のリリースバイナリや文書の提供といった正式な窓口はこちらになるようです。ただし、CodePlexのサイトは今まで通りなので、最新および開発中のコード・バイナリの入手、バグ登録はこちらを使うことになります。
朝から感動していますw
いつの間にかPlayerではなく、普通のデスクトップ仮想環境になっていました。当然ですがWorkstationよりは機能がありません。ただ私にはこれで十分かな。Virtual PCの機能は全部あってかつAMD64対応だから。
ちなみに上の図はVMware PlayerにWindows 7 Ultimate x64日本語版をインストールしてスコアを出させたところです。
良かったところは以下の点です。
で、ただ。
ダウンロード等についてはこちらを参照。
ということで、日本時間的に今日リリースされました。
チェンジログはこちらです。
Trick and Treat !(あれ?)
今日はアングロサクソンのお盆です。(キッパリ)
と言うことでCh9もホラー風味です。
Bug Killer – A Channel 9 Halloween special | Laura Foy | Channel 9
去年、その場の勢いでやると言ってしまった静岡ITPro勉強会ですが、みなさんの協力でなんとか続けることができています。
そこで、調子にのって、開発・言語系の勉強会を立ち上げます。
静岡で開発・言語系の勉強会立ち上げます - 静岡 IT Pro 勉強会日誌
私も調子こいてのかって見たいと思います。
まだ方向性も定まってませんが、立ち上げに参加したいという方がおられましたら、以下のGoogle Groupに参加していただけたらと思います。
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
MSDNを持っていなくてもB2を試用できるようになったようです。
Try Visual Studio - Trial Options
どうもネットワークインストールしかできないようなので、それなりの時間は覚悟する必要はありそうです。
ということで、アメリカではIronRuby本出版のようで、早速Eary Access Editionがでています。
第1章のみPDFでただで読むことが出来ます。

筆者サイト : Ivan Porto Carrero
マイクロソフトがスマートグリッドに関するホワイトペーパを発表しました。全部で130ページほどあるなかなか気合いの入ったものです。
スマートグリッドとはいわば電力線のネットが情報のネット化すると同時にこれまで、日本であれば電力管内という県をまたぐ大きな地域レベルで行われてきた電力の需給バランス調整を、極端な言い方をすれば町内会レベルの超ミクロなレベルを行うと言うことです。
そのためにはスマートメーターと言われているような、プロセッサを積んで、ITネットワークにデータを流せる電力計や、それらの間やそれと電力会社とを結ぶバックボーンのITネットワークインフラが必要なのはもちろんですが、本当に必要なのは超ミクロなレベルでの電力調整を実現するための莫大な情報処理能力です。
したがって、その莫大なな情報処理能力(ソフトウェアの力)を得るためにGEはGoogleと組んで、Googleのクラウンドコンピューティングにその処理をさせようとしていたりします。
特に北米では元々基幹の送電電力網の設備がかなり古くメンテナンスにも限界があることや、オバマのグリーンニューディールでスマートグリッドに関する投資期待がかなり高くなっています。
当然そうした状況にマイクロソフトがただ指をくわえてみているだけのはずが無く、満を持してこのホワイトペーパが出てきたのではないかと推察します。
どっかの経産官僚は日本にスマートグリッドなどいらんとか行っているらしいですが、この国でも家庭や小規模な事業所が設置する太陽光発電や燃料電池や、これから流行りそうなそれらの余剰電力を蓄える蓄電池の有効活用を考えればスマートグリッド化は必要で不可避な流れだと思うので、将来突然仕事が回ってきたりするかもしれないので関係ないとは言わずに読んでみると良いと思います。
ああCEPってこう使うんだとか、ESBとかもう普通だよねとかまぁいろいろ思う所もあるんじゃないかと思います。
うーんMSはArevaと組みそうなのか、同じAで始まる別の会社じゃないのか。。残念。。
めも
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
そしてその拡張の地味っぷりにもw
Changes to COM in Windows 7 (COM)
追加された関数はこれ。
CoGetApartmentType Function (COM)
自分自身の現在のアパートメントタイプを返してくれるようです。
お恥ずかしながら、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.
このツールを知ったのはこの論文です。
Pairwise法と制約表による制御パステストのテストケース自動生成
このツールを元に、MTGと言うExcelベースのツールを作られているようです。
MTG プロジェクト トップページ - SourceForge.JP
ソフトウェアテストはまだまだ勉強不足で学ぶことがいっぱいありますが、この論文も大変参考になりました。
元ネタ:
【公開】SQIP2009講演資料「チケット駆動開発- BTSでExtreme Programmingを改善する-」: プログラマの思索
これ以外の論文も大変勉強になります。
Heretic Programmer(2009-10-03)
TracLightningがTraMを取り入れて、マルチプロジェクト対応した、2.4.0の開発を始めたようです。
自社の現行のTracにTraM入れようかと思ってましたが、バージョンアップを素直に待とうw
リリース情報
http://sourceforge.jp/projects/traclight/releases/43810
Courier User Interface from Gizmodo on Vimeo.
続報で判明! クリエイターに大重宝な魅惑のMSタブレット「Courier」の詳細機能(動画) : Gizmodo Japan(ギズモード・ジャパン), ガジェット情報満載ブログ
これを見て、ああ確かにCEにSilverlightが必要だよねと言うのと、CEなのかとも嘆息。CEだとも言い切れないけど、おそらくそうでしょう。(XBoxのWindowsミニカーネルだって可能性もまだあるけど)
Xerox Parcで15年前ぐらいに研究されていたタブレット端末のアイデアから大きく外れていないとはいえ、(コラボレーションという意味では衰退!)今の技術でより洗練されたものであるのは確か。PCでない何かの一つの方向性ではあるんだろうと思う。いや、やっぱPCか。
なんて言うか、最近本当にこれは見たこともないぐらい新しいぜ!と言うものに出会わないんですが、技術に対するわくわく感が減衰していく一方なので、見たこともないもの出してください。そういうものがみたいです。
技評のSE新書シリーズが最近静かだと思っていたら、過去でたものの第二版がでるようです。両方ともなかなか良かったので、これは期待。
| ソフトウェア開発の名著を読む 【第二版】 | |
| Amazonで詳しく見る by G-Tools | |
| ソフトウェア開発で伸びる人、伸びない人 【第2版】 技術評論社 2009-10-21 売り上げランキング : Amazonで詳しく見る by G-Tools |
忘れた頃にやってくる連載記事です。
今回は、やらないと前回書いた左外部結合とグループ化結合について説明します。
また、サンプルで使用する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)
Charlie Calvert
Addison-Wesley Professional 2009-03-22
売り上げランキング : 109833
Amazonで詳しく見る by G-Tools
プログラミングMicrosoft LINQ (マイクロソフト公式解説書 Microsoft Visual Studi)
小高 太郎 (株)オーパス・ワン
日経BPソフトプレス 2009-05-25
売り上げランキング : 43591
Amazonで詳しく見る by G-Tools
この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段階に行く準備がされているようです。
元ネタ:
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
IE8で拡張された機能説明。Web Developer向け。
Cavasとかvideoとかは期待しちゃだめです。
全く世の中ってめんどくさいわ。
数値の丸め方 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
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/
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単位系等メジャーなものについては定義があらかじめされているようです。
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/
Don't Live with Broken Windows:柴田 芳樹 (Yoshiki Shibata):So-net blog
言い換えると、仕事でソフトウェアを開発している場合には、自分が書いたソースコードは、誰かに真似されることがあるのです。したがって、出来る限りきちんと書いておく必要があります。残念ながら、きちんと書いていても、詳細を理解することなくコピーして修正(改悪)してしまう人がいます。
コードレビューの際に、「あなたが他の人のコードを真似(参考に)したように、あなたが書いたコードを誰かが将来また真似(参考に)する可能性はあります。悪いコードを真似されるよりは、良いコードを真似される方が良いので、この際、書き直してください」と指導したこともあります。
他人が書いたコードでも、そのコードを引き継いだ場合には責任がありますので、悪い部分は修正していく必要があります。しかし、割れていると認識できるレベルに自分の技量を高めないと、割れている窓は、割れていないように見えてしまいます。
しかしこれで思い出すのが
UTF-8の冗長なエンコードとは何で、なんでそれがセキュリティ的に危ないのか?を文字コード知識レヴェル3くらいの凡プログラマが考えてみる - それ図解で。・・・tohokuaikiのチラシの裏
これ。これが現実かも。
これが現実問題とするなら、セキュアで、良いコードを広めるにはSEOテクニックでも使って、検索上位に良いコードがくるようにしないとだめなのかもね。
Googleが発表した新言語。JVM上で動作します。
noop - Project Hosting on Google Code
言語仕様がwikiに書かれていて、なかなか面白いので。ちょっと上げておくと
Java言語仕様がが年代を経て大きすぎると言って、簡素化していく動きはまぁ自然かなと思います。
人によっては予想どおりと思うか、お先真っ暗と思うか、なかなか刺激的。
クラウド時代にSIerはどう変わるのだろう? セールスフォースの展示会場に飛び込んで聞いてみた - Blog on Publickey
この記事を読んでの感想ですが、個人的には予想どおりいろいろ動いてきたなと言うのと、SIerでも生き残ろうと考えて動いているところはちゃんと動いて対応しようとしてきているなってのがわかって希望はあるなぁと思ったところ。
チャンスと見るか、知らないふりをしてある日絶望の淵に立つかはそれぞれの会社中の人たち次第だと思いますので、お互い視野を広げておきましょう。
Microsoft Security Development Lifecycle (SDL)にあわせたセキュアなプログラミングための学習キットという感じでしょうか。
Virtual PC 2007 Service Pack 1 用の修正プログラム ロールアップ パッケージ (2009 年 2 月 20 日) について
詳細・ダウンロードは↑をクリック。
主な改善点は次のような感じです。
個人的にはVPCでUWXGAが使えるようになったのがうれしいですね。
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みたいに意に沿わないからって尻を蹴っ飛ばす人はいないと思うけど。
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の人間が認めているように、一番難しいのは文化を変えることというのは、クラウド導入でも変わらないようです。
そゆうものがMSDNサブスクライバダウンロードに
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
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万を超えるバグレポートを非常に高度の自動化された分散システムで効率よく処理しています。論文を読む限り多数のデータに対するエキスパートシステムとしても大変よくできていると思います。
元ネタ:
PDC09のセッションリストが公開されているが、確実に去年のPDCでは目玉であったはずのOsloのOの字もないという。 まぁまだ全部じゃないようなので、これから追加されるかもわかりませんけど。
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のユーザーエリアに東アジア言語のコードページ用の予約領域がある。
一応上のリンク先の数字が現在の数字らしい。
個人的にあんまり意味のない数字だと思っていたりもするのだけど、純粋にIronRubyをCRubyの代替として使いたい人には気になる数字だろう。
私としてはRails動くとか言うよりも.NETやSilverlight上でそれらのクラスライブラリや自作のライブラリやCOMを簡単に扱えるRuby言語であってほしかったりもしたのだけどもう方向性違うよなぁ。
TFSをサービスとして提供されるようです。
ユーザー数課金のようなのですが、レポジトリデータベースの容量制限についてどこにも書かれて無く、人ごとながら心配です。。。
C#擬人化と言うことで、ufcppさんが知り合いの人に頼んでいたものがほぼ完成でしょうか。
ものすごくいい感じです!
ufcppさんのBlogでは髪留め2パターンとなっていますが、C#のイメージカラーが緑なので、断然こっちの方がいいw
さてこの子の性別は。。
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評価キットを動かすためのコードがあります。
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の開発をされた会社
VB6はどこまで生き延びることができるか? - Blog on Publickey
日本での現在の調査結果は見つかりませんでしたが、僕が知る範囲でも、新規開発で使われている例はさすがにありませんが、過去にVB6で開発されたパッケージソフトのカスタマイズを案件ごとにVB6で行っているという例はまだ少なくないようです(VB5で開発されたパッケージですらまだ現役で使われているようです)。こうした現状があるからこそ、マイクロソフトはいまだにVBマイグレーションセンターのリニューアルなどに勤めているのでしょう。
いや、まだ新規案件の話とか聞くから。。。
記事にある通りまだ10年ぐらいは残ると思う。
とりあえず、VB6から.NET Framework環境へのマイグレーションは以下を参照。
まぁ基本作り直す覚悟は必要ですが。。
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に貼り付ける。
http://www014.upp.so-net.ne.jp/mima3/data/TracWikiConvertToDoc.zip
環境:
- Word 2000
- Trac10.4
おお。TechEdから戻ったら試してみよう。