Category: 開発日記

Windows Vistaの標準ではWindowsヘルプは表示できないということで、HTMLヘルプなどに移行する必要があります。

何度かとまどった経験があるので自分でも忘れないよう、簡単な移行手順をまとめてみました。

1.
現在のWindowsヘルプ。
これをHTMLヘルプに移行してみる。

2.
まずは「HTML Help Workshop」を起動。
[スタート]→[すべてのプログラム]→[HTML Help Workshop]→[HTML ヘルプワークショップ]メニューを選択。

3.
「HTML Help Workshop」の画面から、[File]→[New]メニューを選択。
「New」ダイアログが表示されるので「Project」を選択し、新規プロジェクトを作成する。

4.
WinHelpからの変換するため、「New Project」ダイアログで「Convert WinHelp project」をチェック。

(さらに…)

楽天がついにAPIを公開するそうです。
三木谷社長が初めて明かす、Web 2.0時代の「楽天経済圏」
以前、楽天市場非公式ウェブサービス「RakuAPI」についてブログを書いたが、ついに本家の登場となる。
公開されたら勿論「アフィリサーチ」にも組み込む予定。
今のところ、Amazon、電脳卸、RakuAPIに対応している。
これに本家「楽天」を追加するとかなり強力な商品検索ツールになりそう。
この他に、価格.com、biddersもWebサービスを公開しているらしいので、これらも
できれば組み込んでいきたい。
更に余裕があれば、Web版も作りたい。
# 全然余裕無いけど。。。

自作ソフトVMeter2のWindows Vista対応に大苦戦している。

主な問題点は以下。
1.CPU使用率が取得できない。
2.ネットワーク使用率が取得できない。
3.キーボード入力を拾えない(キーボードフック)

まず、「1.CPU使用率が取得できない」について。
今までのVMeter2をそのままVista上で実行すると、CPU使用率が取得できず
常に0%表示となる。

原因はCPU使用率などパフォーマンス取得するためには管理者権限が必要なため。
セキュリティー強化したVistaでは、そう簡単には実行させてもらえない。
いろいろ調べた結果、これらシステム情報なんかを取得するためには
実行時に管理者権限が必要らしい。

で、Vistaで管理者権限付きで実行するためには以下の方法がある。

方法1

exeファイルを右クリックし、ポップアップメニューから
「管理者として実行」を選択しアプリケーションを実行させる。

方法2

exeファイルを右クリックし、ポップアップメニューから
「プロパティ」を選択し、ダイアログ内の「互換性」タブ内にある
「管理者としてこのプログラムを実行する」を選択する。

方法3

ユーザアカウント制御(UAC)の設定を行う

方法4

アプリケーション作成時に、マニフェストとして追加する。

まず方法1については、毎回使用者に強要することはできないため論外。
方法2も1回設定すればいいとは言え、論外。
方法3は、このアプリのためにOSのセキュリティレベルを下げるようなもので、これも非現実的。

残ったのは方法4。これが一番、使用者にとっては自然で誤解も少ない。
ということで、マニフェストを使用することにより、管理者権限でexeやdllを実行するための方法を調べてみた。
(さらに…)

Virtual PC 2004上にWindows Vista を構築すると動作が異常に重い。
CPU使用率は常に100%で、CPUファンはうなりっぱなし。
Vista beta2の頃はインストールに12時間もかかった。

しかし、Vista RC1では2時間程に短縮された。
が、まだまだ動作が重い。

どうやら、Virtual PC 2004側にも問題があったっぽい。
Virtual PC 2004が出た頃はβ版Vistaも出てなかったから、Vistaのインストールは当然未対応ということになるが。
しかし、「VM Additions for Vista Beta 2」ってのを適用すれば、問題が解決されることが分かった。
パッチみたいなモノかな?

その「VM Additions for Vista Beta 2」の入手方法は、http://connect.microsoft.com/ のサイトに行き、「Virtual Server 2005 R2 SP1 Beta Program」のプログラムに参加すると、「VM Additions for Vista Beta 2」がダウンロードできます。
適用方法は、まずダウンロードしたファイルをホストOS側にインストール。

すると、isoイメージファイルが作成されるので、Vertual PC 2004の[PC]→[ISOイメージのキャプチャ]メニューでisoファイルをマウント。
次に[操作]→[バーチャル マシン追加機能のインストール/更新]メニューを実行。
後は、Vista上でSetup.exeを実行しインストールすればOK。

これでほんの少し動作が軽くなる!?
<2007.2.20追記>
Vistaに正式対応したVirtual PC 2007が公開されました。
http://www.microsoft.com/windows/products/winfamily/virtualpc/
</2007.2.20追記>

今日、Windows VistaのDVD-ROMが届いた。

…と言っても、現在公開中のRC1(Release Candidate 1 Customer Preview Program)。
9/19に、Vistaダウンロードサイトより注文していたDVD。

当時、ダウンロードを試みたが混雑し、まともにダウンロードできず、注文していた。
しかし、その後、混雑は解消され普通にダウンロードできた。
おまけに、インストール済み。

全く意味の無い媒体となってしまった。orz
で、捨てるのももったいないので空けてみた。

DVD-ROMは2枚入り。
32bit版(x86)と、64bit版(x64)。
まぁ、自宅には64bit環境は無いので更に意味ナシ。
ちなみに、製品版は2007年1月末発売予定とのこと。
Amazonでは既に注文を受付中。

Microsoft Windows Vista 製品版(仮称)
by AffiliSearch

ネット上のショッピングサイトはいくつもあるが、開発者向けにWebサービスとしてAPIを公開しているサイトはまだ少ない。

メジャーなところで、Amazon、ビッターズ、電脳卸がWebサービス(REST)を公開しているが、何故か大手の楽天市場が公開していない。
APIを公開すると、楽天以外の商品も一気に検索できることができ、楽天としては不都合の方が多いという判断なのだろうか。
いくら待っても公開する気配が無い。

そんななか、しびれを切らしたユーザが独自で楽天市場非公式ウェブサービス「RakuAPI」を公開した。
まだベータ扱の非公式サイトで出どころもよく分からない。

突然、消滅する可能性もありそうだが、面白そうなんで早速、自作ソフト「アフィリサーチ」に実装してみた。


もともと本家の楽天から公開されたWebサービスでないため、ちょっとクセがある。
(クセというか取得できない情報がある)

例えば、他ASPでは商品画像として大、中、小のサイズを用意しているがRakuAPIでは基本的に「小」しか取得できない。
ちょっと工夫をして「大」のサイズを取得できる場合もあるが、Webサービスから取得できる情報は「小」のみ。
あと、商品検索の結果が30件までしか取得できない。
なので、検索結果というか、そのキーワードの商品のベスト30といった感じになる。
他にも取得できる情報が少ない。

ここら辺はやはり本家、楽天が何とか作り込んでくれない限りどうしようもない。
今後の楽天に期待。
何はともあれ、楽天の膨大な商品を検索できるRakuAPIに感謝。

Windows Vista beta2に続き、Vista RC1をインストールしてみた。

Windows Vista RC1(ビルド5600)は現在(2006/9)、一般ユーザ向けにも公開されている。
以前ブログでも書いた通り、無料のMicrosoft Virtual PC 2004(仮想OS)と組み合わせれば、今のWindows XP上でVistaが動かせるので、興味のある方は是非お試しを。
# 一応、Windows XP Home Edition上でVirtual PC 2004を動かすことがでた。

ダウンロード:
 Microsoft Windows Vista RC1
 Microsoft Virtual PC 2004
(さらに…)

200609069/4にヤフーのデスクトップツール「YAHOO!ウィジェット」が公開された。

Macでは、ウィジェットは、もうおなじみっぽいが、Mac触ったこと無いんで、YAHOO!ウィジェットやVistaのガジェットとかは個人的に興味がある。
何がいいって、気軽にデスクトップツールが作れるところ。
# いや、まださっきチュートリアル見ながらHelloWorld作っただけなので全然偉そうなこと言えないけど、明らかにVC++とかで作るより簡単そう。

ガジェット同様、基本はXML + JavaScriptで作るらしい。
まぁ、Vistaのガジェットが真似したんだろうが。
日本語版のドキュメントも揃ってるんで、YAHOO!ウィジェットに挑戦してみよう。
コードはテキストエディタで編集できるけど、グラフィックは辛そうだな。
グラフィック描けないや。。
ペイントしか持ってないし、GIMP使うのしんどそうだし。

[Yahoo!ウィジェット]
http://widgets.yahoo.co.jp/
[Yahoo!デベロッパーネットワーク – YAHOO!ウィジェット]
http://developer.yahoo.co.jp/widgets/

さっきの続き。
Windows Vista新機能のガジェットの作成方法をちょこっと調べてみた。
どうやら、Vista Beta2の前のCTP版では.NET Framework 3.0に含まれるWPFで作るようになっていたらしいが、Beta2から(?)HTMLベースに仕様変更したらしい。

HTMLベースの方が敷居が低いからなんでしょう。きっと。
だから、頑張ればメモ帳でも作れるらしい。
単純にHTMLベースと言っても、HTMLの知識は勿論、スタイルシートやXML、JavaScript等の知識も最低限必要っぽい。

試しになんちゃってVista環境を立ち上げて以下のフォルダを確認してみた。
C:\Program Files\Windows Sidebar\Gadgets\CPU.Gadget
これはVista標準で入っているCPUメーターのガジェットの格納場所。


確かにHTMLベースで作られているっぽい。

これなら、プログラミング経験が無くても、ちょっと頑張ればガジェット作れるっぽい!?

# でも、個人的にはHTMLベースより.NET Frameworkベースの方が良かったなぁ。
# Visual Studioでサクっと作れるようにして欲しい。

窓の杜の記事によると、MSとインプレスでWindows Vista用プログラミングコンテストの作品募集を開始したそうな。
対象はVistaの新機能の「ガジェット」、「Windows Presentation Foundation(WPF)」に関するもの。
はて。ガジェットってナンだろう。
WPFもちょこっと記事を見た記憶もあるけど、イマイチなんだか分からない。

とにかく、Vistaの新機能らしい。
ちなみに、このコンテストに募集しようと考えている人は、1,980円でWindows Vista Beta2を入手できるらしい。
6月にダウンロードし損ねた人は是非。
この際、ガジェットなるものにも挑戦してみましょう。

ガジェットについて、ちょっと記事を読んでみた。
なかなか面白そうなんで、ちょっと触ってみようかな。
…と思ったはいいけど、これって何で開発するの?
Visual Studio 2005じゃできないだろうし、専用のSDKでも配布されているのか?

まだ、開発に関する情報が少なく良く分からない状態。
# 行き着くところは英語サイト。。。orz

何だかHTMLで書くっぽいことも書いてある。
イマイチよくわからない。
そのうち暇を見つけて調べてみるつもり。

フリーとなったVirtual PC 2004上にWindows Vista Beta2をインストールしてみた。


先月まで一般ユーザ向けにWindows Vista Beta2がダウンロード可能であった。

実はこの時、ダウンロードして自分のPCにインストールを試みて失敗していた。
さすがに今のXPを上書きインストールは出来ないし、新たにHDDを買い、差し替えて試すことも面倒だったので、USB接続のHDDをベースにインストール。
勿論、BIOS設定でUSBブートとして。

途中まではインストールできるけど、再起動で何故か最初のメニューに戻ってしまう。
きっとハードが対応していないんだろう。
その時はそれであっさり諦めた。
(さらに…)

RSS速報を1.xxから2.00にメジャーバージョンアップする予定。

主な目的は、.NET Framework1.1から2.0に引き上げたいため。
開発環境もVisual Studio 2003から2005へ。
最初はVS2005の機能である「Visual Studio変換ウィザード」を使って.NET Framework2.0対応としようとしていたけど、スレッド関連のチェックが厳しくなったせいで手直しが必要ということが分かった。

で、どうせ手直しするなら、VS2005として新規作成しピュアな.NET Framework2.0対応にしてみようということで、只今、Version2.00に向け作り込み中。
と、言ってもロジックは基本的にコピペ。

GUIはまっさらな状態から作り直し。
最新のコントロールに切り替え、見た目もそこそこ良くなってきた。
これでいいかなと思ったけど、簡易ブラウザの画面も作り直したくなってきた。
以前、RSSリーダーなので3ペイン型にして欲しいって要望も受けていたので頑張って作ろうかなと。

(さらに…)

6/20に電脳卸WEBサービス(DWS)が無事復活しました。
3/14のダウン以来、実に3ヶ月ぶりの復活。
あまりの長さにサービス終了したのかと思う程。。
でも復活して良かった良かった。
自作ソフトのアフィリサーチについても、3月に必死で作り込んだソースに
少し手直しを加え、無事、復活版DWSに対処できました。

(さらに…)

Visual Studio 2005 Express Editionがついに無料になるようです。
え!?
買っちゃった人はどうするの?
なんて、人のこと言えないけど。

これからプログラミングに挑戦しようと考えている人にはオススメです。
もともとExpress Editionは期間限定で無料だったけど、今度は期限なし!?
と思ったら、

(さらに…)

電脳卸のWebサービス(DWS)がダウンしてるんで、今度はAmazonのWebサービス(AWS)に挑戦中。
SOAPではなくDWSと同じRESTに挑戦。

しかし、DWSより指定&取得できるパラメータが多く、またしても梃子摺っている。
まず、AWSのバージョンがいくつか用意されていることに気付くのに時間が掛かった。

Webで単純に調べても旧版の情報が殆ど。
Amazonから提供されてる英語マニュアルもあるが。。。
DWSより少し敷居が高い。

電脳卸のWebサービス「DSW」を使用したフリーソフトがそこそこ出来上がってきたので、そろそろβ版として公開しようかなと思っていたら、DSWがダウンしてしまいました。
昨日の夜から繋がらない状態に陥った。

てっきり、開発中に何度もアクセスを試みていたのでIDを無効にされたのかと思った。
でも、公開前にダウンしてくれたのは不幸中の幸い。

お蔭様で異常系のテストもできた。
公開直後にダウンでなく良かった良かった。
DSW復旧までお預け。

新作

また新たなフリーソフト開発中。
ここ1ヶ月ぐらいどっぷりハマってる。
一難去ってまた一難。最近、この繰り返し。
もうそろそろベータ版扱いの代物は公開できそうかな。

前回に続き某Webサービスに挑戦中。
返されてきたXMLを使用し画像をHTML表示しようとするがうまくできない。
XSLT変換されたHTMLソースを見てみると

<img src=”http://sun.d-064.com/include/implession.php?flag1=samnail1&amp;amp;pid=4565″>

となっていた。
問題は、「&amp;amp;」の部分。
ここは「&」とならなければならない。
# ちなみに”&”の実体参照は”&amp;”となる。
これをXSLTで

<xsl:element name=”img”>
<xsl:attribute name=”src”><xsl:value-of select=”ImageUrlSmall” /></xsl:attribute>
</xsl:element>

と書き変換していた。
変換結果は「&amp;amp;」。
xsl:value-ofの属性としてdisable-output-escaping=”yes”を指定すると実体参照を変換してくれるらしいが、何故かxsl:attributeの属性値として使用すると実体参照がそのまま残ってしまう。
# xsl:attributeの外で使用すると普通に変換(&amp;→&)される。
仕方ないので、↓こんな感じで変換することにした。

<xsl:text disable-output-escaping=”yes”><img src=”</xsl:text>
<xsl:value-of select=”ImageUrlSmall” disable-output-escaping=”yes”/>
<xsl:text disable-output-escaping=”yes”>”&gt;</xsl:text>

これで、正しく「&amp;」と変換され画像表示ができるようになった。


某Webサービスを使ってみた。
簡単に使えそうだなぁなんて思い作り始めたがスキルの無さで梃子摺っている。

まず、URLエンコード。
C#でURLエンコードする場合、HttpUtility.UrlEncodeを使用するが、これが、すんなり使えない。

元々、ASP.NET用と考えているようでWindowsアプリとして使用する場合System.Web.dllの参照を追加する必要があった。
これに気付かず四苦八苦。

あと、返されたHTMLを保存する処理でもハマった。
StreamWriterで書き込んだはいいが、XMLファイルが途中で切れる。
これでまた悩む。

結果、Flush、Closeしていないという初歩的なミスと判明。orz
これで何とかXMLは取得&表示できるようになった。
後は、XMLをXSLTで変換するのみ。

XSLTなんて余裕。

なんて思ってたらすっかり文法を忘れている。。
結局、今日は中途半端な形までしか表示できなかった。

VS2005到着


Amazonで注文してたVisual Studio 2005が到着。
ちょっぴり痛い出費だったけど、これでバリバリ新しいモノ作れそう。
今までは(と言っても、ここ1ヶ月)無料のVisual Studio 2005 Express Edition(C#)を使っていたんで、まずはこいつをアンインストール。
でも、今日は時間が無いから止めておこう。
(さらに…)

只今VMeter2のバグ修正&機能追加中。

次のエンハンス内容はこんな感じ。
・ネットワークスピードを数値(bps)で表示する機能を追加
・ネットワーク使用率選択時、ネットワークアダプタ無選択の場合、警告メッセージを促すよう変更
・オプション設定のタブを切り替える度に”ネットワークアダプタ”の項目が増え続ける問題を修正
・ネットワークアダプタが非選択になってしまうバグを修正

で、ネットワーク速度のお話。
ネットワークの速さを示すbps(Bits Per Second)。
これって、1秒間に何ビットを送受信するかの単位。バイトでは無くビット。
まぁ、これは常識でしょうが、一般的には1kbpsは1,000bpsということは知らなかった。
1kbps=1,024bpsと勘違いしていた。
一説によると、大文字の「K」の場合×1024で、小文字の「k」の場合、×1000らしい。
これもはっきりしていないらしいが。
# これはbpsの話です。
なので、VMeter2では一般的といわれている1kbps=1,000bpsで実装中。


RSS速報を起動中、とあるDVD再生ソフトで画像が表示できないという報告を受けた。
私の持っている別のDVD再生ソフトでは問題なく再現環境が無い。

とりあえず、RSS速報の描画処理を簡単に再現したテスト用プログラムを報告者に送り、テストしてもらうことにした。

せっかく作ったので、ついでにソースを一部公開。
(さらに…)

2006/1/1 8:59:60のうるう秒について日記を書いていたけど、実際にどうなったんだろう。
冬休みに入ってすっかり忘れていたけど、何かトラブルとか出たのかな?
まぁ、最初から1秒ズレたぐらいで大騒ぎするような問題って無いような気もするが。

C#(VS2005)の新規プロジェクト作成で「スクリーンセーバー スタートキット」、「ムービーコレクション スタートキット」なんてものが追加されている。

(さらに…)

ダウンロードしたVisual C# 2005 Express Edition(1年無償版)で試しにVC# 2003で作成したRSS速報を変換してみた。


変換はウィザード形式でいたって簡単。
(さらに…)

Visual Studio 2005 Express Editionが1年間は無償提供らしい。
知らなかった。
とりあえず、コレ使ってみよう。
Web Developer、C#、C++の3つが欲しいけど、2月までの場繋ぎなんでC#だけにしておこう。
http://www.microsoft.com/japan/msdn/vstudio/express/

Visual Studio 2005の日本語版の開発が12/15に完了したとのこと。
MSDN会員はWebからダウンロード可能らしいが、一般のパッケージ販売は2/3。
価格はこちら

普及価格で登場すると言っていたんで期待してたけど、Visual Studio2003と大して変わらない値段。
個人レベルで買えるのは「Visual Studio 2005 Standard Edition」の29,800円が限度かな。

言語を1つに絞り込めばExpress Editionの4,800円ってのもある。
けど、C#、C++両方使いたいし、ひょっとしたらVBもASP.NETで使うかも知れないからやっぱり最低Standard Edition。
作りたい物が沢山あるんで即効で買おう。そのとき金があれば。。。


JavaScriptの本を買ってみた。
実はこの本、3冊目。

過去2回の改訂が行われ、今回は「改訂第3版」。
前の2冊はもう要らないやと思って売ってしまった。。。
他にもJavaScriptの本はいろいろ出ているけどやっぱりこれが一番いい。