...

.... Powered by Blogger.

日曜日, 2月 13, 2011

考えることをやめた人


最近、報告書をレビューする機会が多い。そこでよく見る誤りが、相関があること=因果があると結論づけているもの。 現実には、数値で因果を説明するのは困難な場合が多いので、一般論や経験から説明することが多いんだけど、そこには当然ブレがあり議論の余地が生じるが、これは至って健全なもの。

しかし最近見るのは、"AとBに高い相関があるので、Bを引き起こした原因はAである"と言う短絡的なものばかり。このような報告を書く人は、総じて主張が曖昧で根拠を示すことができないが、それを問題として捉えられていない。「頭使って考えようよ」と言ってもできないと言うことは、考えることを忘れてしまったのだろうか。

考えることを放棄した人は、自ら負け組を選択し、将来を放棄しているようにしか思えないが、どのように考えているのだろう。


火曜日, 12月 07, 2010

cygwinでsarを使う


Cygwin上でsarコマンドを使いたいニーズがあり、sysstatをソースから導入しようとしたらリンクでエラーが発生した。メッセージによると_libintl_gettextがないとか...

これはMakefileのLDFLAGに-lintlを付けると解決するみたい。

日曜日, 9月 05, 2010

ESXi 4.1へのアップデートでエラー


少し前にESXi 3.5から4.0にアップデートしたと思っていたけど、もう4.1が出ていたのね。 ぜんぜん気づいていませんでした。 思い立ったが吉日。 今日は特に予定も無いので、思い切ってアップデートすることに。

何事も簡単が一番ということで、VMWareのサイトから「upgrade-from-ESXi4.0-to-4.1.0-0.0.260247-release.zip」をダウンロードし、vSphere Host Update Utilityでアップデートを試みるも、エラーが表示されるだけで上手く行かない。
アップグレード パッケージのメタデータを読み取ることができません: ファイル
'C:\Users\username\AppData\Local\Temp\0it2c4oO\metadata.xml' が見つかりませんでした。
確かにファイルを解凍してもmetadata.xmlは含まれてい無さそうだ。 VMWareの情報によれば、vSphere Host Update Utilityは既にサポートされていないとのこと。 これって4.0で追加された機能だったような気もするけど…3.5からあった? いずれにしてもこの方法ではアップデートできない。

ググればすぐに答えが見つかるのは便利なんだけど、これをミスをすると自宅環境が全滅してしまう可能性があるので、一応公式ドキュメントを確認して作業をすることに。 公式のvSphere upgrade guideの63ページにある手順の通り実施し無事作業完了。 やはりググって出てきた手順は、ESX向けのものでESXi向けの手順が別途あるみたい。

まあ、今回はどちらの手順でやっても結果は変わらないけどね。

日曜日, 8月 08, 2010

twitterで自動アンフォローが禁止されていること


twitterのヘルプによると、フォロー返しの自動化は良いけど、新規にフォローするとかアンフォローするのを自動化するのは駄目というルールがあるらしい。 そうなんだ~

アンフォローを自動化しフォロー管理を楽しようと思っていたけど、これでは駄目ですね。 確かに、botの作り方を紹介しているページでも自動フォローのサンプルはあるけど、新規にフォローとかアンフォローの例は余り見ない気がする。 twitterはフォロワー数を競うものでは無いので、新規フォローの自動化は制限があっても良いけど、アンフォローぐらいは認めて欲しいなと書いてみる。

アンフォローを認めると何か悪いことが起きるのかな…少し考えてみたけど特に無さそうな気がする。

まあ、自動フォロー返しができたから良しとするか。

月曜日, 1月 04, 2010

マインドマップを描くツール


発想を広げながら情報を整理しなければならない、例えば「抽象度の高いものを具体化する」「部分的な事象から全体に考を広げる」などを行うとき、マインドマップ™を使うことが多い。と言うのは、公認トレーニングを受けた訳でもなく、公認ツールのiMindMapを使っている訳でもないから...。

これまではツールとしてfreeMindを愛用していた。これを利用していた理由は、基本的な動作がキーボードのみで可能で動きも軽快なことから、思考を妨げずに使えるから。ただ出来上がったマインドマップを、資料などに使おうとするとビジュアル的にシンプルなので、パワーポイントなどで描き直すなどをする必要があり若干面倒なのが小さな不満だった。(特に書き換えるときの手間がね)

「考えているときは直感的で軽快に動作し、後で見た目を良く出来るツールが欲しい」

そこで見つけたツールがXMind。 freeMind形式を取り込めるので既存の資産を流用できるし、実際の操作感もほとんど同じで直感的に操作でき、私の基本的なニーズにマッチしている。 そして、ビジュアル的な編集機能もそこそこ用意されているので、思考・発想から資料化までをXMindで完結できるので スバラシイ。 しばらく使って問題なければXMindに完全移行するかな。

日曜日, 2月 15, 2009

パワーポイントのビジネス素材


プレゼン前日。 ストーリーの組み立てはできているのに、どうしてもデザインがまとまらない。 手を加えれば加えるほどに、どんどん悪化し、時間ばかりが過ぎて行く。結局、時間を掛けた割には納得できないまま本番を向かえ…私のいつものパターンです。私がプレゼン資料を作っている時間の大半は、デザインの修正に費やしてしまっているのです。 センスも無いのに…

それなら、デザイナーさんが作ったクールな無料素材が沢山あるから、それを使えば良いのでは?
確かにデザイナーさんの素材はクールなものばかりですが、それ故に素人には使い難いのです。その素材を使うと、ページ内でその素材だけが目だって浮いてしまうのです。そう、結局は良い素材があっても、それを生かすセンスがないのです。

これを解決するには、クールで無くても幅広く利用できる素材があれば良いのでは無いか? そんな素人考えで作ったのが今回の素材です。基本的なコンセプトは、
  1. いろいろなテンプレートに合うように中間色で作る。
  2. 極力シンプルで邪魔にならない形状。
  3. 自由に加工できるように、オートシェープだけで作る。
  4. ビジネスで良く使うパターンを用意しておく。
だけです。何度か、このテンプレートから素材を切り出して資料を作成して見た所、以前よりは圧倒的に早く完成する事ができました。もちろん、辛うじて見られるって言うレベルですが…

--ニーズがなさそうなので公開をやめました。--

日曜日, 1月 25, 2009

WTL8.0のAppWizardをVisual Studio 2008で使う


 WTL8.0のAppWizardを、Visual Studio 2008で利用するためのメモ。 どうやらWTL8.0には、Visual Studio 2008にAppWizardを追加するインストーラが付いていないらしい。 でも簡単な手順で動くことを確認できたので、その手順を少しばかり。

[前提]
  • Visual Studio 2008は、C:\Program Files\Microsoft Visual Studio 9.0 にインストール済み。
  • WTL8.0は、C:\Program Files\wtl8.0 にインストール済み。
[手順]
  1. C:\Program Files\wtl8.0\AppWiz\Files フォルダから、WTLAppWiz.vsz, WTLAppWiz.vsdir の2ファイルを、C:\Program Files\Microsoft Visual Studio 9.0\VC\vcprojects フォルダにコピーする。
  2. C:\Program Files\wtl8.0\AppWiz\Files フォルダから、HTML, Images, Scripts, Templates の4フォルダを、C:\Program Files\Microsoft Visual Studio 9.0\VC\VCWizards\AppWiz\ATL\WTL\WTLAppWiz フォルダにコピーする。
  3. コピーしたWTLAppWiz.vsz ファイルを開き、以下の2箇所を書き換える。

    VSWIZARD 7.0
    Wizard=VsWizard.VsWizardEngine.9.0
    Param="WIZARD_NAME = WTLAppWiz"
    Param="WIZARD_VERSION = 7.0"
    Param="RELATIVE_PATH = VCWizards\AppWiz\ATL"
    Param="FALLBACK_LCID = 1033"
以上で、プロジェクトの追加からウィザードを実行できるようになるはずです。

土曜日, 1月 10, 2009

アプリケーションフレームワークの選択で悩む


 久しぶりにWindowsのネイティブアプリケーションを組んでみようと思い立った。 Windowsのネイティブアプリを作るのは、7,8年ぶりになる。 このブランクは非常に大きいが、趣味で始める話なので気長に取り組むことにする。 どんなアプリを作ろうと思っているかは、アイディアが固まりきっていないので、まだ秘密です。

 とりあえずネイティブアプリなので、開発言語は実質C/C++に限定されてしまう。 C/C++でWindowsアプリを開発する場合、大きく分けて
  1. SDKだけで直接APIをガリガリ書く。
  2. MFCを利用する。
  3. WTLを利用する。
  4. QTなど、商用フレームワークを利用する。
と言う選択がある。 さすがにフレームワークを利用しないのは厳しいので、1は選択外として、2~4のどれを使うかで、アプリの作りが大きく変わってしまう。 それぞれ特徴があるようなので、私なりにポイントを簡単にまとめておく。
  • MFC
     古くからあるアプリケーションフレームワークだが、Microsoftが.netに力を入れ出してからは大きな更新されていないイメージがあった。 しかしVisual Studio 2008ではMFC9.0としてその機能が大きく拡張されており、最新のUIを用いたアプリケーション開発が可能になっている。 Microsoftからの情報提供や、Webでの具体的な解説も豊富にあるため、ほとんどの問題に対しての解決策を簡単に見つけることができるのが大きな利点。
     フレームワークの作りはM-VC、いわゆるDocument-View構造を採用しているが、その作りが分かり難い場合がある。 クラスライブラリとしての提供であるため、オブジェクトに不要なコードが含まれサイズが大きくなる傾向にある。 また、OpenMPなどへの対応をし難いため、最近のマルチコア/ハイパースレッディングに最適化することは難しい。

  • WTL
     以前はMicrosoftから提供されていたが、現在はオープンソースになって公開されているテンプレートライブラリ。 軽量/高速なアプリ開発ライブラリであるATLを拡張し、高度なUIを実現するために開発されている。 MicrosoftやWebにより情報を得ることはできるが、簡単な説明になっている場合が多く、具体的な問題にへの解説は不足しがち。 特に日本語での情報が少ないため、情報は英語で探すのが良い。
     フレームワークの作りはMFC同様に、Document-Viewを採用しているが、MFCとは異なり多重継承を利用しているため、シンプルな作りが可能になる。 また名前が表す通り、テンプレートでの提供であるため、コンパイル時に具象化されたクラスのみがオブジェクトにリンクされるため、コードサイズが小さくなる。

  • QTなど
     商用で提供されているものだけに、高度なUIの作成や独自のコントロールなど豊富な機能が多い。 また、Windows以外のOSにも対応しているため、移植性の高いコードを作成することが可能。 QTのように有名なもの(条件付きで無償利用できるもの)は、Webにも多くの情報があるが、やはり英語での情報入手が基本になる。 有償で利用する場合には、サポートを受けることが可能になるが、個人で利用するには敷居が高い。
     フレームワークの作りなどは、詳細を調べていないので言及できません…
 アプリの特性によってフレームワークの合う合わないがあると思うが、実装を頑張れば同じ機能を実現することは不可能ではない。 結局は、好み/馴れ/何を作りたいかによってフレームワークを選択すればよい。

 今回は、”スレッドプログラミング”、”シンプルな構造”、”Windowsネイティブ” なものを目指しているので、アプリケーションフレームワークはWTLを使うと決めた。 ついでに、標準ライブラリを補間するため、Boost c++を利用し、極力手間の掛かる実装をしない方向で進めてみることに。