今期末

うちの会社は6月が締なんだけど業務報告を提出するために、
今年3月から6月までの業務内容を分析してみたら、
自分の研究がらみの割合は18.43%しかとれなかったことがわかる。
そのうち実験等の計画書作成が51.82%でほぼ半分の時間を使っていて、論文執筆が39.32%だった。
まあこれはその通りだわ。そのほかは打ち合わせ等々。

全体の業務のうち会議の割合が多いのは若干びっくり7.08%。

20%ぐらいまで研究の割合を増やしたいところ。無理か。

Visual Studio 2008 Visual 2010 Office テンプレートが消えた

Visual Studio 2008 Visual 2010 Office テンプレートが消えた

VSTO開発をしている人は少ないのか、ネットで調べても解決策が英語でも見つからなかったので、ちょっと乱暴な方法で、とりあえずできたのでメモ。

Visual 2008(VS2008)ではプロジェクトの新規作成でOfficeソリューションに 2003 と 2008 が表示される。問題の現象としては、このうち2007のテンプレートを選択しようとしたらテンプレートが何も表示されなかったということ。2003では一連のVSTOプロジェクトテンプレートが表示されていた状態。
一方、Visual Studio 2010(VS2010)では2007 と 2010 が選択できるようになっているが VS2010 ではこのリストビューアイテムが動的に生成される設計になっているらしく各アイテムを洗濯してもリストビューそのものへのフォーカスができない状態。
先にVS2010の現象を発見したため、リストビューに対する、VSのキーボードナビゲーションそのものの問題かと思ってMicrosoftアクセシビリティの担当者に尋ねてみたんだけど、それはアクセシビリティではないのでVSTOサポート窓口で訪ねてくれとのこと。
自分で調査するうちに上述のようなリストビューであることがわかり確かにアクセシビリティとは関係ないことがわかったけど、Microsoftの社員ってそんなに狭く深い知識しか知らないのかとちょっと幻滅してしまった。蛇足。
で、いったんVS2008もVS2010もアンインストールして、再インストールを試みるも状況は変わらず。
kame-taro.spaces.live.com/blog/cns!CD806281181610EF!1401.entry の記事を参考に devenv /installvstemplates とかもやったんだけど何も変化なし。
じゃあなんだいということで個人フォルダにVS用の設定情報が書き込まれているはずということで、
C:Documents and Settings[Your account]Application DataMicrosoftVisualStudio
を見つける。別にVSで特別な設定をしているわけでもなかったので、この中に配置されている各バージョンのフォルダをごっそり削除して、再起動をかけてみた。そしたら表示されるようになったわけ。

というわけで、半日インストールやらアンインストールやら、余計な作業をしてしまったけど、こんなに簡単な方法で復活できましたよ、というお話。

余談だけど VS2010ではPIAをアセンブリに含めることができるらしい。まだ実際にVS2010を使ったVSTO作業をしていないのだけれど、コードセキュリティーの苦しみから一つ解放されるのかと思うとかなりうれしい。楽しみ楽しみ。

妻へ

いつも支えてくれてどうもありがとう!
いつも服の洗濯してくれてどうもありがとう!
いつも部屋の掃除をしてくれてどうもありがとう!
いつも子どもたちの世話をしてくれてどうもありがとう!

子どもっていっても犬だけどね。我が家の子どもたちは犬です。

iTunes for Windows Store エラー -50 を解決する

いつの間にかiTunes for Windows で iTunes Store(ストア) にサインインしたり、認証したり、認証を解除しようとすると、エラーでストアへの接続ができなくなっていた。

ネットで調べても的を得た回答が得られなかった。

で、次のようにやったら直せたのでメモ。

まずiTUnesの設定→詳細でリセットを行う。

次に C:Documents and Settings[Your Account]Application DataApple Computer 内のファイルとフォルダすべてを他のフォルダ(ex.USBメモリ、マイドキュメント等)へ待避する。

その後 iTunes を起動する。

初期設定を行う。
ストアへサインインする。
問題なくサインインできた。

なお、待避したファイルやフォルダはiTunesをしばらく使ってみて問題ないと思われたところで消去しても問題なさそう。

論文を書く作業

今日までの納期の開発業務が何とか昨日までで終わった。
そのために来月早々に提出予定の論文の執筆がまったく手についていない状態だった。
論文後1週間で書けるのか。査読はないから内容は勘弁してねと言いたいところ。
もちろん実験できちんとした結果はすでに出せているのでそういうレベルのお話ではないわけ。
まずは今日は全体を包括する。
明日は前段をまとめる。
その次は実験方法の詳細を記述する。
別途開発と合わせて週末まではこれで終わり。
土日に実験の結果と考察を考える。
来週早々に結果と考察をアウトプットする。
次にすべての見直しを行い、形になるのが来週の水曜日といったところか。
遅くても来週木曜までにクリアしないと。
その後、共同研究者へ内容のチェックをしていただく。
こう考えると何とかなりそうな予感。

C++ CLI Managed string UnManaged pointer

This sample string pointer for C# application to c++ CLI DLL.

C# application:
out String value Managed pointer

C++ CLI DLL
String^ % and LPWSTR on unmanaged pointer

// c# Form Application
TestClass obj = new TestClass();
string testBuf = null;
obj.TestFunc(out testBuf);
MessageBox.Show(testBuf);

// c++ CLI Class Library(DLL)
using namespace System::Runtime::InteropServices;

void TestClass::TestFunc(
[Runtime::InteropServices::Out] String^ %buf
)
{
LPWSTR msg ;
LPCWSTR wcs = L”TestFunc Loaded”;
BSTR tmp = ::SysAllocString(wcs);
if ( tmp == NULL ) {
return ;
}

SysFreeString(msg);
msg = tmp;

buf = Marshal::PtrToStringUni((IntPtr)msg);
}

亀井氏、閣僚辞任へ 郵政法案見送りで 連立維持の方針

・ 亀井氏、閣僚辞任へ 郵政法案見送りで 連立維持の方針
www.asahi.com/politics/update/0611/TKY201006100540.html

いんよう開始

 国民新党代表の亀井静香・郵政改革担当相は11日未明、菅直人首相が今国会での郵政改革法案の成立を見送る方針を決めたことを受け、閣僚を辞任する意向を固めた。一方、国民新党は党所属国会議員による会議を開き、連立政権には残る方針を決めた。

引用終了

郵政法案が今国会で成立できないからといって閣僚を辞任しなくともいいのでは?と多くの人が思っていると思うのですが・・・。いつぞやの世論にあったけど、急いで何でもかんでも法案を通すよりも、国民に開かれた議論が尽くされていれば、国民は納得できると思う。なので、今国会で成立できなかったから辞めるのではなくて、法案が通るまで辞めないで責任を通してほしかったですよ。

職業プログラマー・職人プログラマー どっちなのさ

論文提出が1ヶ月前に近づいてきたので開発から研究の方へちょっとシフトしないといけないと思い、
今日からぼちぼちと論文を書き始めようと思って通勤してみたけど、
パソコンの画面を開いて、いざというときに自宅に実験データ等々置き忘れてきたことに気がつく。

そこで、ふと職業プログラマーと職人プログラマーとは?

なんて、あほなMeditationに走って調べてみる。

ref1.職業プログラマとは ─ よく わかるかもしれない IT・コンピュータ 用語辞典 [真・コンピュータ用語辞典]
glossary.tank.jp/t07ED.html

上記の解説からすれば自分は職人プログラマーらしいことがわかる。しかし、自分自身はあまり職人とは思われたくない節があるな。それにしても上記のURLの内容は、ここで職業プログラマーと呼ばれている人々に対して悪意に満ちあふれていること。

そこで職人プログラマーについて調べてみる。

ref2.プログラマーは職人? – BIGLOBEなんでも相談室
soudan1.biglobe.ne.jp/qa2311277.html

ref1を補足するような内容である。

ref3.うつぎの日記 職人プログラマー
blog-money.2guard.org/?eid=692339

本物の職人プログラマーは高品質なコードを書けるらしい。また作業も早いらしい。

ref4.職人的デバッグと科学的デバッグ
www.csg.is.titech.ac.jp/~chiba/notes/debug.html

いままでとはちょっと支店が異なる。筆者自身は科学的デバッグであると述べている。一方で職人的デバッグとは、いわばハッカーのような人々がよく行う方法で彼らは小さなバグが多く含まれていても、それは後で直せばよいことで、まずはアプリケーションを作り上げることに主眼を置いているといった具合。

そうなると、自分自身は、どちらかといえばハッカー的な資質のように思える。が、必ずしもいつもそうではない。仕事柄ハードウェアに依存したコードを書くことが多いけれど、よりハードウェアに近いところは時間をかけてコードを書く。予めどういったコードの書き方がハードウェアの性能を引き出すのに最適かどうかを頭で考える。その後コードを書きながらコード上のエラーチェックを考えながら追加していく。ハードウェアから遠ざかる方向、すなわちUIのデザインや操作になるほど、書いてみてデバッグしてという行動を繰り返しているように思える。

自分の近くに、明らかに職人プログラマーだろうと思える人がいる。私の目から見て職人プログラマーとはすべてのコードを自分で仕上げられる力がある人で、頑固なこだわりのある人である。プログラマーにとってここで気をつけないと行けないのは頑固さである。頑固なコードは論理性に優れ完成度が高い代わりに、バグが出だすと次から次絵とバグが見つかるようになってしまう。ある一位の完成されたコードであるほど、それ以外の対処がしにくいことがあるという意味である。

高品質というのがどの支店なのか、これは開発しているソフトウェアの局面によって相当異なってくるように思える。高品質でシンプルでというのは確かに理想の一手なのかとは思えるが、上位のアプリケーション開発ではそれはあり得るけれども、下位の開発ではシンプルさを追求することよりも詳細なエラーチェックとなる。そうなれば当然コードは複雑になるし、コード料も数万行単位でふくらむ。
というわけで、自分自身は、職人プログラマーであるけれどもハッカー資質があって、ある程度いい加減なコードを記述することができる人間なのかなという、どうしようもない結論に落ち着いてしまうわけだ。
どうでもいいネタだった。

c# Application to C++/CLI ref, out, Keywords

c# Application to C++/CLI ref, out, Keywords

c# Application to C++/CLI ref, out, Keywords

// [ref] keyword
// c# code
void Csharp_TestFunc1()
{
TestObject obj = new TestObject();
int i = 0;
obj.TestFunc1(ref i);
MessageBox.Show(i.ToString());
}

// c++/cli
void cpp_TestFunc1(int %i)
{
i = 1;
}

// [out] keyword
// c# code
void Csharp_TestFunc2()
{
TestObject obj = new TestObject();
int i;
obj.TestFunc2(out i);
MessageBox.Show(i.ToString());
}

// c++/cli
void cpp_TestFunc2([Runtime::InteropServices::Out] int %i)
{
i = 1;
}