Web との差

ところで昨日リンクしたサーバーは PHP が使えないのね。
MySQL も、まあ普通に考えればそりゃそうだろう…

ようするに WordPress が使えないわけで。
丸ごと引っ越すのはムリだ、使うにしてもココと併用になる。
ちなみにココは

さくらインターネット

のスタンダードプランで運営している。
負荷状態や通信速度なんかの参考にでもしてくれい。

さてと。

ASP.NET も使う機会が出来そうだけどまず WPF をやらねば。
そろそろ図形に挑戦しようと思ったけどもう少しテキスト処理を。
段落を生成するには FlowDocument コントロールが必要らしい。

20080304.JPG

Bold 化をコードで書くと違和感があったが XAML で書くとピン!とくる。
あぁそういうわけね、XML で書くという方向を優先した結果なわけだと。
本当は <b></b >みたくしたかったけど色々あったてか。

ただフォーマット済みテキストのタグが何故 Run なのだろう?

それより驚きなのが三行目だ。
Web 屋には「何が凄いの?」なんだろうけどソフト屋は衝撃ですよ。
コレと同じ表現を C++ でなんてどんなロジックを組めばいいんだよ?

よく考えたら Web にはハイパーリンクが普通にテキストに含まれるわけで。
Web と普通のソフトウエアとのインターフェイスってこんなに差があったんだ!

それの融合をこんな形で実現するとは恐れ入った。
どういう場合の時にコレを使うというのは別の話。

C++ の \n やデルヒャァの #13#10 のように簡単な改行はムリ?

Windows徹底理解

WPF も魅力なのだが現行アプリもやらねば。
とりあえず今年は C++ をメインに少しづつ .NET でいく。

Windows API の本で役に立った本も紹介しておく。

2004年発行のムックだけど今でもたまに手に取っている。
やっぱりプレミアが…って定価 ¥2095 なのでそんなに付いていない。

コレを買ったのは BCC で DLL の作り方が書いてあったから。
VC++ Exp が無償で手に入る時代に今更 BCC は勧めませんが。
当時は C++ のコンパイルを BCC でやっていたのでまあ。

まあそれはそれで役に立ったわけですが、この本は凄かった。
その名の通り Windows はどうやって動いているかで始まっている。

NTFS の仕組みとか IO とか割り込みとかキューとか etc…
それも簡潔ながら図解付きで解りやすく解説されている。
実はなんとなくしか解っていなかったが本当に勉強になった。

そして基本ウインドの項目は衝撃だった。
アプリケーションは自分でメッセージをキューに取りに行っているのね。

while (GetMessage(&msg, NULL, 0, 0))

の部分で、あぁだからこの関数が必要なんだと。
そんなことも知らずにプログラミングをしていた自分を恥じた。
たったソレだけのことを知った事による影響は大きかった。

それを解説してくれる本にそれまで出会わなかった事が不思議だ。
まあそれを隠しているデルヒャァ屋だったというのもあるが。
WPF なんかも隠す方向なんだよねぇ、チト気になる。

脱線はこれくらいにして。
ファイルアクセスやメモリ管理なんかの解説も当然あるわけで。
これらもなんとなくしか解っていなかった事をこの本で改めて知った。

実は UNICODE アプリが作れるようになったのもこの本のおかげだ。
そしてフォントはふぉんとに奥が深かった(我ながらつまらん…)

ようするに API の解説ではなく Windows の解説本なのだが、
どうやって Windows が動いているのかを知って得たモノは大きい。
API というか SDK でプログラムをしようという人は必見。

Vista が出た時代だけど API 関数はほぼ同一なので問題無し。
てゆーか本当に基本の基本しか書いていない、それがよい。

でもさすがに古いムックなので代替があればイイんだけど…
見つけたらまた紹介するね。

エッセンシャル

この前買ったエッセンシャルを毎日チビチビ読んでおります。
シャンプーではありません(我ながらつまらん…)

しかし概念と言い切っているのは本気だと感じる。

どういう経緯でソレを実装してこうなったかを細かく書いている。
なのに嫌みを感じないのは伝えなければいけないことを厳選しているから。
もっと書きたいことなんて腐るほどあるだろうに見事だ。
しかも面白い、翻訳者が上手いのかもしれないがドラマ風味。

私達が本当に求めていたのは、次のようなコードです。

Button b = new Button();
b.Text = “OK”;

のくだりにはもの凄いドラマを感じた。
何故こうなったかをこんな感じで解説されると気持ちがいい。

この手の分厚い解説本は大抵が最短手順だけを解説する。
「こんなコードを書けばいいんだよ」で次に進んでしまう。
それでは応用が利かない、何故そうなるのか全然解らないまま。

実は私 WPF ってなんなのかよく解らなかった、だから本を買ったわけで。
そういう意味でも大当たりな本であった、五千円の価値は余るくらいあった。
以上書評であった。

こんな所で評価してもしかたがないような気も…

ところで、せっかくだから WPF 製の動画プレイヤーを弄くっているのだが
MediaElement で再生や停止とかをボタンなんかで制御するには
LoadedBehavior を Manual にせにゃならんとデバッガに怒られた。
恐ろしく親切なデバッガだなぁ VS2008 って。

WPF で動画プレイヤー

2/18 にメディアプレイヤー貼り付けなんてやろうとしたが
もっと恐ろしく単純な動画再生方法があった。

普通にプロジェクトを作って Window の AllowDrop を true。

MediaElement っつーのを貼り付ける。

XAML の Window 要素の中で Drop=”Window_Drop” イベントハンドラ追加。

そのハンドラで

dshow.JPG

以上でドラッグ&ドロップで動画再生するプレイヤー完成。
なんじゃこりゃ!簡単なんてレベルじゃねーぞこのやろう。

でも何で再生している?軽く調べてみる。
音楽を再生しても WMP のビジュアライゼーションは出ない。
でもコーデックによっては ffdshow をしっかり呼び出す。
ので生 DirectShow みたい。

再生制御も MediaElement メソッドで賄える。
ここまで簡単にしないでくれよ、商売あがったりだ。

.NETのソース

Visual Studio 2008で見る.NET Frameworkのソースコード ? @IT

.NET Framework って C# で作っているのか、へぇ?。
なんて勘違いしそうだ、あくまでクラスライブラリだけだよね。

まあ仮装マシン自体のソースなんか見たって何の参考にもならないが。

デルヒャァの Pro 版以上には VCL のソースが含まれている。
コレは本当に役に立った、つーか沢山パクらせてもらった。
検索で見つかるコードよりはるかに正確で簡潔なコードがそこにあった。
Palepoli の文字列変換なんてソレを見なければまず作れなかった。

と言っても組み込み関数の場合がほとんどである。
組み込み関数をちょこっとだけ拡張したくなることが結構あるのよ。
フォームやコントロールのソースコードは別に参考にならなかった。

一番参考になったのは FileCtrl.pas である。
ファイル操作はどう行えばよいのかたっぷり真似した。
もしくは一部の関数だけ抜き出してサイズ削減とかしたり…

C# では変換等は関数でなくメソッドで行うわけで。
はたしてソースを見たところで参考になるかどうか疑問いっぱい。
とはいえまだ C# は勉強中の段階だからなんともいえないが。

とりあえずヤルかもしれないので覚え書きと。

しかし丸ごとダウンロードの方法なんかこんな所に書いていいのか?
某雑誌臭くて…ってそういえば同じ会社だったわココ。

ところで昨日買った本って WPF 開発者著本の翻訳なんだね。
だから全体像を上手くまとめているなぁと感じたわけだ。
まだ序章しか読んでいないがなんか感銘したよ。
リファレンスではなく「概念」と言い切っているのが開発者らしくて好き。