とっちゃん's Blog

WindowsInstaller に WiX はいかがですか~

目次

Blog 利用状況

ニュース

とっちゃんって?

コミュニティ

メーリングリスト

@ITの記事

CodeZineの記事

WiX チュートリアル

唯一の日本語書籍

人気のほどは...

記事カテゴリ

書庫

日記カテゴリ

インストーラ関連

旧館

2010年8月24日 #

前編が再びランクイン

先月Codezineに書いた「時間のかかる処理で「処理中」を表現する」の 前編 がなぜか再びランクインしてます。一か月もたつのにw

どういう集計でランキングを図ってるのかわからんのですがw

ちなみに、後編のPVが高いなら、続編でインジケータ動かすとか考えてたんですが。。。後編のPVは前編に比べるとあんまり高くないんですよねーw

みんなスレッド処理とかいらねーよってことなのかなぁ?ま、市販でもやってなければ多種多様な環境で。。。とか少しでも高速に。。。とか関係ないんだろうなぁw

posted @ 16:30 | Feedback (3)

明日から横浜。。。

いよいよ明日から Tech・Ed 2010 が始まります。今年のNativeネタは、土曜日までお預けです。

その代り今年は http://www.microsoft.com/japan/teched/2010/comm/communication.aspx にも書いてあるように、Communication Lounge エリア なるところで「よろず相談に乗ります。」なコーナーがあるらしいです。

ちなみに、おいらは初日と最終日のどちらも最終枠で座ってます。ま、それ以外でも主に3Fをうろうろしてると思いますがw

 

そんでもって土曜日は わんくま同盟横浜勉強会#3。今年は C++Day です。まだまだ席に余裕があります。

じゃんけん大会であのカードがもらえるのも横浜が最後の予定です。まだゲットできてない!という人は参加してみてはいかがでしょう?

posted @ 16:02 | Feedback (0)

2010年8月9日 #

9月にCLR/Hでしゃべります。

ネタ元:http://clr-h.jp/

北海道に行く理由が。。。とか書いてたらいつの間にやら登壇することにw<理由それしかないしwww

ってことで、コンポーネントベンダーのお二方を招くUXデイにおまけでインストーラなネタを持っていきます。

UX...なお話はあんまりないかもw

【タイトル】
Windows Installer XML(WiX) toolset で始める Windows Installer 開発入門

【概要】
Windows 2000とともに導入された、Windows Installer。
もともと開発チームがサポート向けに作っていたスクリプトベースのツールを
全面刷新して使いやすいようにし、さらにオープンソースにして早6年。

バージョン3.5も開発終盤を迎えた今、最新の開発環境、OSをサポートし続ける
ツールの一つとして、一つの完成系を迎えようとしています。

そんな WiX を使って実際にインストーラを作ってみましょう。

 

って感じでやらせてもらいます。

問題は、コンテンツこれから作るってところと、90分ってどのくらいしゃべれるのかよくわからないというところw<おい!

時間のボリュームはわかるんだけど。。。どこで集中力が切れるかよくわからない。。。w

一応、知らない人ばっかりのための前振り・本編・知ってる人ばっかりのための応用編位のボリュームで構成考えておけば大丈夫かなぁ?

集まるメンツとか市場とかわからないからどの辺にフォーカスおけばいいかもわからないのが一番厳しい。。。><

Tech・EdにCLR/Hの人も何人か来るみたいだから、その時に聞いてみればいいか。

posted @ 18:48 | Feedback (6)

2010年8月5日 #

後編も公開

ネタ元:時間のかかる処理で「処理中」を表現する(後編)

ということで、後編も無事公開されました。前編の伝統芸的対処法とは違い、現代風の対処法になってます。こうあるべしというコードじゃありませんがねw

posted @ 16:45 | Feedback (0)

2010年8月4日 #

PPLでやってみた。

ネタ元:OpenMP 面白い

せっかくなので、PPLにしてみました。でもって、PPLが使えるランタイムライブラリは、マルチスレッド版なのでCRTの各関数も利用できます。

ライブラリ(先人の知恵の集合体)って偉大ですね。main関数じゃないほうが圧倒的に小さくなっちゃいました。

 

#include <stdio.h>
#include <tchar.h>
#include <windows.h>
#include <ppl.h>

#define MAX_THREADS	 10
#define BUF_SIZE	255
struct ThreadArgument{
	int	x;
	int	y;
};
DWORD WINAPI threadFunction(const ThreadArgument& arg)
{
	_tprintf( _T("パラメータ = %d, %d\n"), arg.x, arg.y );
	return 0;
}
int _tmain()
{
	Concurrency::parallel_for( 0, MAX_THREADS, [](int i )
	{
		ThreadArgument arg;
		arg.x = i * 100;
		arg.y = i + 100;
		threadFunction( arg );
	});
	return 0;
}

posted @ 15:10 | Feedback (0)

2010年8月1日 #

久しぶりに記事書きました。

ネタ元:時間のかかる処理で「処理中」を表現する(前編)

ここで断片的なコードを載せていた、例の待機を表現するのWeb版ですw<なにそれ!

もともとは、セッション用のネタに大幅加筆して、記事として仕立て直したものです。

前編は、Windows の GUI アプリの作成できるC++コンパイラとリンカがあればなんでもOKです。後編は 8/4 に公開予定です。

 

すっかり忘れてたよw

posted @ 22:08 | Feedback (2)

2010年7月28日 #

Native ニーモニックなプロジェクトは…

ネタ元:MASMを動かしてみた

MASM のMは、Microsoft のMではなくて、MacroのMだと確か昔々どこかで見た気がします。ま、それはともかく。。。

.asm なファイルをビルドする方法を書いておきます。

VS2008の場合。

  1. C++のプロジェクト(望む形式&Managedではないもの)を作成。
  2. ソリューションエクスプローラでプロジェクトを選択しコンテキストメニュー(右メニュー)を表示。
  3. メニューから「カスタム ビルド規則」を選択。
  4. Microsoft Macro Assembler(*.asm) を選択。
  5. 既存ファイルの追加または新規の追加(新規の場合はテキストファイルか何かで.asm拡張子にする)で、.asmを追加

で、実現できます。

VS2010の場合は、3の部分が「ビルドのカスタマイズ」に変わり、4のダイアログが若干違いますがやることはほとんど同じです。

VS2008も、2010も、MASM用の専用プロパティページが用意されているので、細かな設定も可能になってます。今までカスタムでビルドしてたーという人は一度使ってみるといいでしょう。2008はPro以上でできることを確認済み(ExpressとStdは環境がないので不明ですが、Stdはたぶんできるはずです)です。2010はExpressから利用可能です(確認済み)。

posted @ 17:55 | Feedback (2)

8月最後と言えば。。。

8月最後の土曜日と言えば、うちの町内にある神社(二ツ橋神明社)の夏祭りです。神輿(子供みこし)が出ます。うちの小学校は二期制(横浜はほぼ全部二期制らしい)なので、夏休みが8月末までではないため、ちょうどこの辺りから学校が始まります。ま、それはいいんですがねw

確かおととしだったと思いますが、市の助成(横浜市は分別とかいろいろやってる町内会・自治会に対して特別な助成金が出る)で神輿が新調されたんですよ。それまではそれっぽいもの。。。だったのが立派なものに変わったんです。で、重くなった(子供みこしとて大人一人で抱えるのは無理なくらい重い)ので、子供だけじゃ担ぎきれない(人数的な問題もある)ため、山車に乗せてるはずなんです。なぜ?はずなんて書いてるかって?神輿を新調してから一度も出てないんですよ。

なぜかって?

毎年この日は横浜勉強会があるのです。今年で3回目になります。毎年申し込みがいっぱいなので、会場が年々大きくなっています(今年は手頃な箱がなくてわんくま勉強会全体でみても最大規模の会場w)。

今年は、こゆ~くC++Onlyです。わんくま勉強会でも何度か登壇してもらってます アキラ さん。そして、わんくまでは初登壇になるSEXYHOOKの作者 rti さん。わんくま同盟からは茶藝部顧問の επιστημη さんが登壇します。

当日のスケジュールは

  • 11:30 ~ 開場・受付開始
  • 12:00 ~ 12:10 わんくまについて
  • 12:10 ~ 13:00 「Boostのあるプログラミング生活」by アキラさん Lv3くまー
  • 13:15 ~ 14:05 「とある関数の接合部 sexyhook !」by rtiさん Lv2くまー
  • 14:20 ~ 15:10 「Observer-0X」by επιστημη Lv2くまー
  • 18:00 ~ 懇親会
  • セッション終了後は、恒例のじゃんけん大会があります。今年はTechEdのお土産なんかあるのかなぁ?MSDNのカードは横浜が最後ですね。

    懇親会までちょっと時間があります。中華街をゆっくり散策してもいいですし、ほかにも観光名所がいろいろあります。ちなみに、近場の二郎は関内店です。二郎の後に懇親会は厳しいので、やめたほうがいいと思いますが、お昼なら大丈夫かな?スタートに間に合わなくなるので、行く場合は開店直後を狙うといいでしょう。

     

    ちなみに、勉強会会場のキャパ(100オーバー)に対して、懇親会会場のキャパ(50弱)が足りてません。セッションでは語りきれなかったことや、懇親会でしか語られない話題などなど、勉強会とはまた違った雰囲気があるので、懇親会にも参加したいなぁと思ってる人は早めに参加申し込みしてください。

    ちなみに、懇親会が終わってからでも東海道新幹線の最終(新大阪)には十分間に合います。さすがに飛行機は無理ですが。。。orz

    posted @ 13:33 | Feedback (2)

    2010年7月26日 #

    [WiX3.5]開発環境を用意しよう

    なぜか唐突に F#って VSShell+アドインでとか言ってたなぁ。。。ということを思い出しました。

    で、もしかしたら、Votiveもいけんじゃね?と思って。。。VC++2010Expressがインストールされている仮想マシンに Microsoft Visual Studio 2010 Shell (Integrated) 再頒布可能パッケージ と、WiX 3.5(記事執筆時点での最新版は3.5.1923.0) を入れてみました。

    VC++ Express だけだと、インテリセンスは使えるようになるけど、プロジェクト管理はサポートされてないよ。というメッセージが出るんですが、VS-Shell を入れれば、プロジェクトも作成できる&インテリセンス月の編集もできると、Pro版とそん色なく開発が行えます(ただし、各種カスタムアクションはサポートなし)。

    完全じゃないですが、WiXのカスタムアクションを。。。という人はそれなりな規模の開発してるだろうから、Pro版位は買ってるだろうし。

     

    ちなみに…[WiX]3.5.1902.0のWix35.msiは。。。の不具合はもう治っています(1909で修正済みらしい<致命傷だったからねw)。

    はやく 3.5 もRTWしないかなぁ?来年に向けていろいろやるには今の時期が一番いいんだよなぁ。。。

    posted @ 17:42 | Feedback (3)

    2010年7月25日 #

    無駄に並列化してみる

    ネタ元:0から1000までの0の数を数える

    並列化してみました。

    #include <iostream>
    #include <ppl.h>
    int _tmain(int argc, _TCHAR* argv[])
    {
    	Concurrency::combinable<int> count;
    	Concurrency::parallel_for( 0, 1001, [&]( int n ){
    		do{
    			if( (n % 10) == 0 ){
    				++count.local();
    			}
    			n /= 10;
    		}while( n > 0 );
    	});
    	int total = count.combine( std::plus<int>() );
    	std::cout << total << std::endl;
    
    	return total;
    }
    

    やっぱり、今の時代、可読性がよくないと!

    posted @ 12:07 | Feedback (2)