ソフトウエア工場2010/10/11 08:13

なんていう概念を、以前、会社で聞いたような気がします。直感的にはうまくいかないように思いましたが、見ている限りではうまくいっていないようです。理由は、いろいろとあるとは思いますが、雲が感覚的に受け入れられる理由はこれまでありませんでしたが、以下の記事がとても雲の感覚にあっていました。

ハードなプロセス、ソフトなプロセス

http://forza.cocolog-nifty.com/blog/2010/10/post-c16d.html

皆さんは、どのように感じられますか?

マクロの展開2010/10/11 09:19

最近、雲は、マクロに取り組んでいますが、なかなか使い道をうまく理解できないでいます。特に、 # と ## のところの上手な使いどころがわからず四苦八苦。ということで、Visual C でマクロが展開されたものを確認する方法を忘れないように書いておきます。

cl.exe /P ***.c

変数名を文字列として取得したい場合

#define print(var) std::cout<<#var"= "<<var<<std::endl

http://d.hatena.ne.jp/aki-yam/20081217/1229498370

ブロック崩し2010/10/17 11:14

雲は、パソコンがマイコンと呼ばれていた時代から、PCと遊んでいましたが、昔は、マイコンBasicマガジンに記載されているプログラムをひたすら(訳もわからず)打ち込んでゲームをしていました。ただ、今ではゲームをすることもなくなり、たまに、PS2で遊ぶくらい。折角、プログラムを書けるようになったのにゲームの一つも作ったことがない。というのが意外とコンプレックスだったりします。ということで、何か、簡単な題材は無いだろうかと思っていたら、子供の頃に最初に遊んだブロック崩しを思い出しました。で、いろいろと、探していたらよさげなHPを発見。これを元に、C# で実装して見ようかと思います。何となく、ちょっと、楽しそう。な予感がしています。

http://www.orchid.co.jp/computer/cgame/index.html

Condition Variable2010/10/18 19:03

雲は、最近、スレッドを覚えようと四苦八苦しています。何が難しいかっていうと、単純に、スレッドを起こすことはできるのだけど、どうすれば、スレッドが簡単に使えるライブラリが作れるのか?ということで悩んでいたりします。いや、きっと、どこかに良いオープンソースがあるとは思うのだけども、一度は、自分で作ってみないと身につかない気がしてます。

ところで、スレッドのライブラリを作っている時に、Monitorなるものを使うことがあります(Win32API には、Monitor が無いと思っていたので、それらしいのを自作しています)。

が、よ~く見たら、Condition Variable なるものがあるではないですか!Microsoft こういう良いものはもっとアピールして欲しいな~。と思います。雲は、結構、本とかでこういうものを読みたい人なので、Web でしか情報が無いことにストレスを感じます。

最悪、詳細は Web を参照。ということでも良いのでとっかかりになりそうなことは書籍にしませんか?最近は、オンデマンドで書籍を作ることもできるようなので、MSDN にある記事などを選択・整理してオリジナルの書籍を作成できるようにしてあると嬉しいです。

例えば、MSDN の記事から Vista 以降に追加され機能について(C++編)などを選ぶと、そういう書籍がオンデマンドで作成される。というのは、結構いけるアイデアだと思うのですが。いかがでしょう?

また、読者が選ぶ優れた記事(MSDN)や最も読まれた記事。などの観点で選べると更に良いかもしれません。

いずれにしても、技術書籍が全然出版されないのはWebが原因だと思うので、それならそれで、Web 上の記事を書籍にして販売するというビジネスモデルもありだと思うのです。

技術系に限らず、書籍は、オンデマンドで作成する時代が来ると予測している雲にとっては、読者が自分で書籍を作るためのインフラをMicrosoftが用意してくれると良いと思っています(その際、技術書を最初のターゲットに選ぶことは、Microsoftにとっても開発者にとっても、その他、オンデマンド製本を待っている人にとっても、ビジネスとして成り立つかを見るためには一番良い分野だと思います)。

変わるものと変わらないもの2010/10/28 04:45

昔、雲はどこかで、VisualBasicのような変わってしまうことがある技術ではなく、将来的にも使えるUNIX系の技術を学ぶべきだ。という記事を呼んだ記憶があります。その時のロジックは、確か、shell(bash?)は昔からあって今でも使えるのに、Windows 系の技術は使えなくなっている。というようなことだったと思います。

その頃の雲は、なるほど。そうだな。なんて素直に信じていました。今になって振り返ると、なんて素直なんだ!と笑うしかありません。

何にかをするときに、何に価値を置くか?ということはとても大事ですが、これに気がついたのはつい最近だったりします。

例えば、UNIX の技術の方がWindowsの技術と比較して足が長い。としても、それだけでは、UNIXの技術の方が学ぶ価値がある。ということにはなりませんし、Windowsの技術を学ぶと技術が変わるので学び続けなければいけない。ということが欠点であるわけでもありません。

大事なことは、一度学んだら、後は、それを使い続ける(ことができる)。ことに重きを置くのか?それとも、技術の変化を許容して学び続けることで、(自分が発揮できる価値を)維持することを目指すのか?何を目的とするかでどちらが良いかを判断すれば良いだけなのです。

結局のところ、こういうことには回答はなく自分なりに答えを出していくしかありません。雲がいつも残念に思うことは、回答は一つではないし、正しい答えも無い。ということを明確にした上で、読んでいる人に判断を委ねるための(その人なりの意見を)伝える。という努力が(ほとんど)見られないことです(いや、それは、当然の前提でしょう。という反論があることはわかりますけど)。

Windows の技術が変わることは事実だとしても、変わることで生産性が向上する。とか、これまで出来なかったことが出来るようになる。とかといったメリットがあれば、それを理由にWindowsを選択することはありだと思っています。また、業務でWindowsの技術が必要とされることもあるでしょう。ついでに言えば、変わることで発生するコストよりも生まれるメリットが大きければ、Windows を選択することもあります。

大事なことは、Windows と UNIX(に限りませんが)を比較する際には、どちらが優れているか?ということを自分の物差しで比較することです。昔の素直だった自分への教訓です。