++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

Archive for 8月 2010

Microsoft Tech·Ed Japan 2010 終了

leave a comment »

ブログ書くまでが Tech·Ed ですキリッ

という話が多々聞こえてくるので色々と。正規セッション、閉幕後の懇親会で話した内容問わず。基本的に開発系。適当にまとまりなく。

  • 開催前の話だけども: 【TechEd】 閑話休題:どれが正しいんだよ~ という話
    • 半角・・・中点・・・だと・・・!?
      • Unicode だと U+FF65
    • ちなみに、英語圏の Tech·Ed は latin middle dot(U+00B7)みたいです。
    • どうしてこうなった・・・
      • Shift JIS に入ってる記号の中で latin middle dot に一番似ていた説
      • Word が悪さする説(実際、Word で latin middle dot を入力すると勝手に bullet(U+2022)に置き換えられる)
    • Unicode に全角・半角の区別残しちゃったのは黒歴史な気もするなぁ
      • 既存システムの移行のためなのはわかるけども
      • 「番地は全角数字で入力してください」みたいなシステム見るたびに泣きそう
  • 1ペタバイト ←Windows Update で配信してるデータ量 [/月]
  • Bing Maps Apps
  • 既存アプリの Azure 化、簡素なものならほぼコピーで移植できるけども、実アプリはもっと複雑で結構書き換え必要
    • 今後、Azure の制約もどんどん解消されて、書き換えなきゃいけない部分減っていきそう
      • VM Role(IaaS 型に近いサービスの提供)
      • Windows Azure Platform Appliance(サード バーティ製 Azure の登場で融通の利く度合が増しそう)
  • クラウド化で何が変わる?
    1. 2種類のデータ ストレージ
      • RDB と KVS
    2. オンプレミス/クラウド連携
      • サービス バス(処理連携)
      • フェデレーション認証(認証連携)
    3. 運用監視
      • リモート監視になる
      • ミドル以下がブラックボックス → 不具合調査、場合によっては、ログとかを元に MS に調べてもらうことに
  • VS 2010 新機能といえば
    • テスト機能拡充
    • IntelliTrace
    • コード化された UI テスト
    • Visual Studio Lab Management 2010 によるテスト環境の仮想化
    • MS Test Manager でテスト実施管理
    • (Ultimate 必要だったり、Pro の場合別ラインナップで買わないと行けなかったりするけども)
  • .NET で関数型的な末尾再帰コード書くと遅いと思う?
    • 実は、.NET って末尾再帰の最適化用に Tail 命令(Call とかの前に置くプレフィックス命令)ってのを持ってたり
      • こいつが付いてるとちゃんと末尾再帰をループに展開する
      • F# で再帰コード書くとちゃんとこの命令入る
    • 64ビット版の .NET Framework の場合、Tail 命令入ってなくても最適化できそうなら末尾再帰のループ化する
      • 試しに永久に再帰抜けないようなコード書いてもスタック オーバーフローしない(もちろん実行止まらないけど)
      • ただし、Release ビルドのみ
  • WP7、何かを見るための端末としては申し分なさそう・・・
    • テキスト入力心配
    • ケータイでそんなに文字入力しないと思う?
      • http://d.hatena.ne.jp/ufcpp/20100216/1266337507http://d.hatena.ne.jp/ufcpp/20100219/1266594885 ←この記事とか、ほとんど電車の中で立ったまま片手でケータイ入力してますよ
        • PC でやった作業ははてな記法に整形しなおしたのと、ところどころハイパーリンク足したのと、動画差し込んだだけ
        • といっても数千文字程度ですけども
      • 片手入力で、qwerty 配列入力はかなり無理臭い
  • やっぱ業務アプリ的には Silverlight Out of Browser 実行使いたいんだろうか
    • ClickOnce を駆使して、あたかもウェブサイトの一部であるかのようにふるまおうとしてる WinForms アプリ見たことあるし
  • サーバー実装なんて Data Serivces だけでいいじゃん
    • クライアント技術とか、色々変えたり移植したりしたくなるんだし
    • BOF-10「マイクロソフトの Web テクノロジ最前線と現実解を語ろう」でそんな感じのデモがあったようで
      • 実際サーバー上は Data Services だけで、HTML5 + JavaScript で作ったアプリ
      • サーバーの役目はデータの永続化だけ
  • 電子書籍
    • ダウンロードした PDF なり何なりに金を払いたいんじゃない
    • サーバー上に「購入した」というフラグを立てたいんだ!
広告

Written by ufcpp

2010年8月29日 at 11:46

カテゴリー: .NET

3D 化

with one comment

C# たん、3D 化しました。

C# たん 3D

取り急ぎモデルの up のみ。オブジェクトとかボーンの構造の資料もあるんで、いずれ up します。

Written by ufcpp

2010年8月23日 at 11:56

カテゴリー: C#たん

VB たん(魔法バージョン、上京前)

leave a comment »

VB たんは都会に出る前後でずいぶん変わったという設定で、こいつは田舎時代版。

VB たん 上京前 魔法使い版

作画: Paese

  • VB たんの田舎時代、魔法少女版は「べたな魔女」で
    • 武器もべたに魔法のほうき
    • ただし、マントの下はいもジャージ
  • 割かし珍走な感じのほうき捌き

Written by ufcpp

2010年8月22日 at 10:44

カテゴリー: C#たん

Lisa Feigenbaum Q & A、All-In-One Code Framework 規約集、等々

leave a comment »

Written by ufcpp

2010年8月16日 at 12:46

カテゴリー: .NET

やっぱ実行時よりビルド時

leave a comment »

動的コード生成 VS ビルド時コード生成

こないだ、動的コード生成がらみのネタで1ページ書いて公開したところ、「ビルド時で済むものは動的コード生成じゃなくてビルド時コード生成にして欲しい。」との至極まっとうなご意見をいただきまして。

最近、ViewModel の実装が面倒という問題に対して、DynamicObject を使った動的プロキシが流行ってるみたいだけど、ViewModel なんてビルド時コード生成で事足りる最たるもので、あんまり動的にやって欲しくないという。まあ、ごもっとも。

まあ、僕としても方向性としてはおおむねこの意見に割かし賛成だったり。具体的には:

  • DynamicObject の実装が思いのほか簡単なので、「手抜き実装」としてはあり。
  • ちゃんとやるならやっぱり静的に(ViewModel 手書きするか、ビルド時コード生成するか)した方がいいと思う。

くらいに思っています。

dynamic は、ちゃんと使えば静的なコードの5~10倍程度のペナルティで済むという話に対しても、「過度に恐れる必要もないけども、そりゃ避けれるなら避けるよね」くらいの立ち位置。動的にやるのが避けられない状況(例えばユーザーの入力に応じたコード生成が必要とか)になっても別に慌てなくてもいいよという。

テキスト テンプレート

現状、Visual Studio 使って開発するなら動的コード生成の方が楽なんですよねぇ、微妙に。ビルド時コード生成よりも。ほんと、微妙に。式ツリーとか CallSite になれてる人ってのもそう多くないでしょうけども、自分的には。正直、ビルド時コード生成は次(か、ひょっとしたらそのさらに次くらい?)のバージョン待ちかなぁなどと思っていたり。

というような話をすると「T4 を使え」とのご意見もらいまして。前は日本語情報なさ過ぎてちょっとくじけてた T4 テンプレートを、久々に調べて使ってみるなど。

でも、T4 は何か微妙に使いづらいなぁとか考えてたら、昔、元同僚が「テキスト テンプレートなんてヒア文字列と、文字列中での変数展開だけあればいい」って言ってたのを思い出したり。そうよ、PowerShell の方がたぶん使いやすい!

ということで、ちょっと書いてみました、PowerShell でテキスト テンプレート。

使い方は、

$x = [xml](Get-Content 'SampleClass.xml')
.ViewModelTemplate.ps1 $x.Definition > SampleClass.cs

出力されたファイルは以下のような感じ。

悪くはないかも。まあ、Visual Studio と統合されてるわけじゃないのが微妙ですけども。もうすっかりゆとりで、IntelliSense なしでコード書くのが苦痛だったりしますし。あと、定義ファイルが XML なのも微妙だし。XSD 書けば多少マシになりますが。

Written by ufcpp

2010年8月16日 at 12:10

カテゴリー: C#

++C++; 本体に3ページほど追加

leave a comment »

twitter 上に有明での戦況報告流れる中、黙々と引きこもって、久々に更新作業を行っていたりなど。

Written by ufcpp

2010年8月14日 at 18:26

カテゴリー: C#

No More

leave a comment »

このような話題を見かける:

失敗談とか繰り返しちゃいけないような酷い事例の共有って実はすごく重要なはずなのに、成功談と比べると非常に少ないんですよねぇ。匿名文化もありうる昨今、もっと失敗談共有して行ってもいい気がする。(黒い発言しちゃうと、あまりにもひどいことやってる会社は実名さらされても文句言えないと思いますけどねぇ。まあ、そこは置いておいて。)

その昔、こんなのありました。

もう17年前のもので、C 言語時代のものなので今となっては笑い話・・・のはずよね?・・・あれ、今でも見るような話題もなくも・・・あれ?保守案件・継続案件はともかく、あれ・・・?

一定ペースで人が引退し、新人が入ってくるわけで、ほっとくと絶対に歴史繰り返すんですよねぇ、人間って。歴史の研究とか、学校での歴史教育が「歴史 = 年号と事件名暗記すること」になっちゃってるせいでブレがちですけども、歴史をひも解く価値って、同じ過ちを2度繰り返さないよう、「何をやった結果どんなことになった」という知識を残すことなわけですけども。

Written by ufcpp

2010年8月13日 at 19:22