カテゴリ:開発日記( 58 )

e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

Visual Studio 2010

いままで、敬遠していた Visual Studio 2010 ですが、

使い始めてみると、今までのVSに戻れなくなりそうなほど、

かなり便利です・・・

やばすw

SP1が出て、

動作もきびきびし始めたみたいだし。

これは・・・

はまりそう。
[PR]
by isoq | 2011-10-27 23:40 | 開発日記
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

CUDAでGPGPU

物理的なシミュレーションの解像度と速度を上げようと

現状のマルチコアCPUを駆使した並行処理のプログラムを

流行のメニーコアGPUによる超並列化させようとしています。

使用するのは、NVIDIA環境でToolkitはCUDAです。

(OpenCLとかでも良いのですが、わかりにくそうなので、

 とりあえずCUDAで始めることにしました。)

まず簡単なプログラムを作成してCPUとGPUでの処理の違いを

みてみたのですが、予想していたような100倍程度の高速化には

ほど遠く、10倍程度しか高速化されませんでした・・・

書籍によれば、同じプログラムで、CPUよりも約100倍高速化されているらしいのですが・・・

いろいろ調べるうちにわかったのですが、どうやら、今使っているGPUがヨワッチイのが原因のようです。

私が使用しているのは、NVIDIA Quadro FX 4600 という

プロフェッショナル向けのハイエンド ボードなのですが、

2世代前のボードなので、compute capability が 1.0 と低い。

1.0 だと、遅いグローバルメモリへのアクセス時に完全に連続した領域へ、

順序よくアクセスを集中させる必要があるらしく、それが結構難しいのと、

メモリがDDR3で、帯域幅が少ないのと、

コアが96個しかなくて、同時処理数が少ないことと・・・・

そんな違いがあり、参考にした書籍の著者の環境と10倍の差が付いてしまったらしい。

ボードの単価にしたら、こっちの方が3倍も高いのに、10倍も遅いのだ。

こりゃ何とかしにゃぁいかん。



必要条件としては、Quadro(OpenGL/QuadBufferStereo) なので、選択肢は限られ、

10万円前後で Compute Capability が2.0のボードは、Quadro 4000 。

Quadro 2000には、3pin mini-DIN が付いていない様子だが、

ここの説明によると、

3D Vision をつなげて 「(NVIDIA IR出力付の)ジェネリック・アクティブ・ステレオ」 を選択すると、

OpenGL/QuadBuffer で、3D Vision の駆動ができるらしい。

でも、Quadro 2000だと、メモリ容量が少なく帯域が狭いので、どうせなら4000が良い。



・・・QuadBufferが、GeForce でできれば、Quadro なんて馬鹿高いボードを買う必要がないのに・・・

Compute 能力的には、GeForce GTX 460 の方が、半額以下で倍くらい強いはずなのに・・・



そう考えると、GPGPU専用にGeForce GTX 460/470/480あたりを乗せて、

ステレオ出力用に Quadro FX 380 あたりを乗せて、

2枚構成にして動くだろうか???

それができたら、もはやTeslaの出番はなくなるから、

できないようになっているのかなぁ~

とりあえず、GTX 460 を買ってみて、既存の Quadro FX 4600 と

2枚差しで動くかやってみようかなぁ~♪


ちなみに、最近世界最速!を発表した中国のスーパーコンピューターも、

Tesla C2050 を 7168 枚積んでいるそうだ。

おっかないねー




参考リンク:
ELSA GLADIAC GTX 480 1.5GB  ¥52,470  パソコン工房
ELSA GLADIAC GTX 470 1.2GB  ¥34,820  パソコン工房
ELSA GLADIAC GTX460 768MB  ¥22,200  ioPLAZA

Quadro 4000  ¥99,799  ツートップインターネットショップ
Quadro FX 380  ¥16,469  ツートップインターネットショップ

NVIDIA Tesla C2070  ¥488,000  ioPLAZA
NVIDIA Tesla C2050  ¥305,000  ioPLAZA


PR:

奥様のPCにぴったり!
信頼性抜群のレノボ製ネットノートの大本命!

IdeaPad U160 (スクエア・レッド)
特別特価(税込) ¥60,590
¥3030相当のポイント還元
送料無料!(11/1正午まで)
(詳細)

IdeaPad U160 (スクエア・レッド)は、十分な性能と広い画面を持ちながら、
バッテリーの持続性に優れた省エネタイプのネットノート(ミニノート)です。

夕べのひと時を電源ケーブルを引き回すことなく、
ソファーでもベッドでもトイレでも・・・
どこへでもワイヤレスで持ち運んで使えるので、とっても便利です。

1.2GHz駆動のデュアルコア Pentium DualCore U5400 を搭載し、
3GBメモリー、500GBHDDを搭載した高性能パソコンですが、
レッドとホワイトを基調としたおしゃれな外観で、
奥様専用のパソコンとしてお勧めです ^^

重さは1.4Kgと女性でも簡単に持ち運べます!
バッテリーも5時間持ちます!
Windows 7 Home Premiumも入っています!
無線LANもついてます!(注:リンク先ページには書かれていませんが付いてます。)
130万画素のWebカメラも付いてます!(注:リンク先ページには書かれていませんが付いてます。)
カードリーダーも入っています!
16:9液晶(1366x768) も付いてます!

これだけ、全部付いていて、たったの ¥60,590 ポッキリです。

今なら、送料も無料♪

お求めは、アイ・オー・データ直販サイト のioPLAZA まで。
[PR]
by isoq | 2010-10-31 01:41 | 開発日記
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

テスト



open()
[PR]
by isoq | 2010-08-11 13:25 | 開発日記
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

便利なPath系Win32API関数

パスの連結など、便利に利用できる Path*** 関数が Win32API に用意されています。
この関数の名前 Path*** というのを、すぐに忘れてしまうので、メモ。
(主に、自分のブログを検索した時に引っかかるように。)


Shell Path Handling Functions

--------------------------------------------------------------------------------
This section describes the Microsoft Windows Shell path handling functions. The programming elements explained in this documentation are exported by Shlwapi.dll and defined in Shlwapi.h and Shlwapi.lib.


PathAddBackslash
Adds a backslash to the end of a string to create the correct syntax for a path. If the source path already has a trailing backslash, no backslash will be added.
パスの最後に、\ 記号を追加。

PathAddExtension
Adds a file extension to a path string.
パスの最後に、拡張子を追加。

PathAppend
Appends one path to the end of another.
他のパスの後ろに、パスを追加。
例: c:\test1\test2 + test3 = c:\test1\test2\test3
相対パス非対応

PathBuildRoot
Creates a root path from a given drive number.

PathCanonicalize
Canonicalizes a path.

PathCombine
Concatenates two strings that represent properly formed paths into one path; also concatenates any relative path pieces.
フォルダ名とファイル名を連結。

PathCommonPrefix
Compares two paths to determine if they share a common prefix. A prefix is one of these types: "C:\\", ".", "..", "..\\".

PathCompactPath
Truncates a file path to fit within a given pixel width by replacing path components with ellipses.

PathCompactPathEx
Truncates a path to fit within a certain number of characters by replacing path components with ellipses.

PathCreateFromUrl
Converts a file URL to a Microsoft MS-DOS path.

PathCreateFromUrlAlloc
Creates a path from a file URL.

PathFileExists
Determines whether a path to a file system object such as a file or directory is valid.

PathFindExtension
Searches a path for an extension.

PathFindFileName
Searches a path for a file name.

PathFindNextComponent
Parses a path for the next path component.

PathFindOnPath
Searches for a file.

PathFindSuffixArray
Determines whether a given file name has one of a list of suffixes.

PathGetArgs
Finds the command line arguments within a given path.

PathGetCharType
Determines the type of character in relation to a path.

PathGetDriveNumber
Searches a path for a drive letter within the range of 'A' to 'Z' and returns the corresponding drive number.

PathIsContentType
Determines if a file's registered content type matches the specified content type. This function obtains the content type for the specified file type and compares that string with the pszContentType. The comparison is not case-sensitive.

PathIsDirectory
Verifies that a path is a valid directory.

PathIsDirectoryEmpty
Determines whether a specified path is an empty directory.

PathIsFileSpec
Searches a path for any path-delimiting characters (for example, ':' or '\' ). If there are no path-delimiting characters present, the path is considered to be a File Spec path.

PathIsHTMLFile
Determines if a file is an HTML file. The determination is made based on the content type that is registered for the file's extension.

PathIsLFNFileSpec
Determines whether a file name is in long format.

PathIsNetworkPath
Determines whether a path string represents a network resource.

PathIsPrefix
Searches a path to determine if it contains a valid prefix of the type passed by pszPrefix. A prefix is one of these types: "C:\\", ".", "..", "..\\".

PathIsRelative
Searches a path and determines if it is relative.

PathIsRoot
Parses a path to determine if it is a directory root.

PathIsSameRoot
Compares two paths to determine if they have a common root component.

PathIsSystemFolder
Determines if an existing folder contains the attributes that make it a system folder. Alternately, this function indicates if certain attributes qualify a folder to be a system folder.

PathIsUNC
Determines if the string is a valid Universal Naming Convention (UNC) for a server and share path.

PathIsUNCServer
Determines if a string is a valid UNC for a server path only.

PathIsUNCServerShare
Determines if a string is a valid UNC share path, \\ server\ share.

PathIsURL
Tests a given string to determine if it conforms to a valid URL format.

PathMakePretty
Converts a path to all lowercase characters to give the path a consistent appearance.

PathMakeSystemFolder
Gives an existing folder the proper attributes to become a system folder.

PathMatchSpec
Searches a string using a MS-DOS wild card match type.

PathMatchSpecEx
Searches a string using a MS-DOS wild card match type and a flag.

PathParseIconLocation
Parses a file location string containing a file location and icon index, and returns separate values.

PathQuoteSpaces
Searches a path for spaces. If spaces are found, the entire path is enclosed in quotation marks.

PathRelativePathTo
Creates a relative path from one file or folder to another.

PathRemoveArgs
Removes any arguments from a given path.

PathRemoveBackslash
Removes the trailing backslash from a given path.

PathRemoveBlanks
Removes all leading and trailing spaces from a string.

PathRemoveExtension
Removes the file extension from a path, if one is present.

PathRemoveFileSpec
Removes the trailing file name and backslash from a path, if they are present.

PathRenameExtension
Replaces the extension of a file name with a new extension. If the file name does not contain an extension, the extension will be attached to the end of the string.

PathSearchAndQualify
Determines if a given path is correctly formatted and fully qualified.

PathSetDlgItemPath
Sets the text of a child control in a window or dialog box, using PathCompactPath to ensure the path fits in the control.

PathSkipRoot
Parses a path, ignoring the drive letter or UNC server/share path parts.

PathStripPath
Removes the path portion of a fully qualified path and file.

PathStripToRoot
Removes all parts of the path except for the root information.

PathUndecorate
Removes the decoration from a path string.

PathUnExpandEnvStrings
Rreplaces several folder names in a fully qualified path with their associated environment string.

PathUnmakeSystemFolder
Removes the attributes from a folder that make it a system folder. This folder must actually exist in the file system.

PathUnquoteSpaces
Removes quotes from the beginning and end of a path.

SHSkipJunction
Checks a bind context to see if it is safe to bind to a particular component object.

UrlApplyScheme
Determines a scheme for a specified URL string, and returns a string with an appropriate prefix.

UrlCanonicalize
Converts a URL string into canonical form.

UrlCombine
When provided with a relative URL and its base, returns a URL in canonical form.

UrlCompare
Makes a case-sensitive comparison of two URL strings.

UrlCreateFromPath
Converts a MS-DOS path to a canonicalized URL.

UrlEscape
Converts characters in a URL that might be altered during transport across the Internet ("unsafe" characters) into their corresponding escape sequences.

UrlEscapeSpaces
A macro that converts space characters into their corresponding escape sequence.

UrlFixupW
Attempts to correct a URL whose protocol identifier is incorrect. For example, htttp will be changed to http. Priority is given to the first character in the protocol identifier section so htp will be converted to http instead of ftp.

UrlGetLocation
Retrieves the location from a URL.

UrlGetPart
Accepts a URL string and returns a specified part of that URL.

UrlHash
Hashes a URL string.

UrlIs
Tests whether or not a URL is a specified type.

UrlIsFileUrl
Tests a URL to determine if it is a file URL.

UrlIsNoHistory
Returns whether a URL is a No History URL.

UrlIsOpaque
Returns whether a URL is opaque.

UrlUnescape
Converts escape sequences back into ordinary characters.

UrlUnescapeInPlace
Converts escape sequences back into ordinary characters and overwrites the original string.
[PR]
by isoq | 2010-07-05 14:03 | 開発日記
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

フリーウェア NaiNai(ないない) v1.3.7 を公開しました。

ixc. East by Eastwest


拙作のフリーウェア、NaiNai(ないない) v1.3.7 を公開しました。

1.3.6 にて、タスクトレイに格納したアイコンを右クリックして、
メニューを表示しようとすると、エラーで落ちてしまうと言う、
致命的な不具合を解決しました。

致命的にもかかわらず、今まで全く気づかず、
利用者の方にはご迷惑をおかけしたかもしれません。
ごめんなさい。

解決しましたので、こちらで公開しました。

今後ともよろしくお願い致します。
[PR]
by isoq | 2010-03-31 02:22 | 開発日記
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

Visual Studio .NET 2003 のプロジェクトが壊れた

こんなことってあるのか???

Visual Studio .NET 2003 で開発中のソリューションorプロジェクトが壊れて、
IDEから実行開始すると、とたんにIDEが固まる。

エラーも出ない。

反応も全く無い。

リビルドしても変わらない。

意味が分からない。

手の施しようがない。

この前に行った事は、

デバッグ中に、メモリリークを捕まえようと思って、

cpp ファイルの1つに次の文を入れた。

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

エディットコンティニューで実行再開したら、

終了時に固まるようになってしまった。

一旦再起動して、リビルドして、

実行しようとすると、今度は実行前に固まる。

意味不明な状態となってしまった。

ちなみに、他のプロジェクトは正常なので、

このプロジェクトだけ壊れてしまったみたい。。。

不思議。

--追記--

ソリューションのユーザ設定ファイルである .suo ファイルを削除したところ、
正しく動作するようになりました。

スオ(suo) ファイルが壊れていたようです。
[PR]
by isoq | 2009-11-25 13:05 | 開発日記
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

Eclipse for PHP Developers を勉強中

Eclipse for PHP Developers で、PHP Webアプリケーションの作成に挑戦中です。

今日わかったことは、Eclipse以外に、PHPの実行環境と、Webサーバーが別途必要だと言うこと。
Microsoft Visual Sutdio に馴れていると、
コンパイラも、テスト用Webサーバーも入っているのが当たり前的な発想だったのですが、
Eclipse Foundationは、実行環境を作っている訳じゃないですものね。

という訳で、早速PHPとApacheをインストールしようと思いましたが、
眠くなったので今日はここまで。

でも、EclipseのIDEのコード補完は、結構便利ですね。
括弧やダブルコーテーションなどを1つめを打つと、自動で閉じてくれて、
その間にカーソルが移動する。
今まで手動でやっていたことが自動化されていて驚きました。
痒いところに手が届く感じです。

これで、Ctrl+スペースの補完リスト?(インテリセンス的なもの)がもう少し速ければ。。。
表示しようとすると、一瞬プチフリーズ状態になるのが気になります。

だいぶ昔に、C++ Builderのコード補完がセミフリーズ過ぎて、
OFFで使っていたので、かなり不便だったのを思い出しました。。。(^^;)

参考書として、以前図書館で借りた、MySQL4/PHP5によるWebデータベース構築
Amazonで注文しました。
絶版になっていて、マーケットプレイス商品しかありませんでしたが、
本体 ¥215 + 配送料¥340 と、格安で、きれいだそうなので、即注文。

PHPの文法は、Cに似ているので、(というかCからの移行が楽なように似せて作ってある)
わかりやすくはあるのですが、MySQL DB周りとか、セッション周りとか、ファイルアップロード周りとか、
よく使うテクニックも、Webで探すとバリエーションありすぎるので、
入門書の1冊は、とりあえず必要かなと。。。
歳のせいか、さいきんは忘れっぽくなってきたしね (^^;)
[PR]
by isoq | 2009-11-18 01:23 | 開発日記
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

Visual Studio 2010 試しました

自宅のPCでVisual Studio 2010のベータ版をインストールして評価中です。

スペックは、Pentium 4 3.2 GHz/2GB Memory/RADEON HD3450...

きっと、Microsoft の社員は、Core i7 Extremeのワークステーションしか
使っていないので、快適に動作するのでしょうが。。。

評価する気にもなれない...


特に、昨今はビジュアル系UIのソフトが多いですが、
パフォーマンスを犠牲にしてまで、綺麗なUIにして、何のメリットがあるのか???

PCの非力さに愛想が尽きて、新しいハードを購入させようという戦略か??

別の方向に力を入れてもらいたいなぁ~~~
ゲームやっている訳じゃないんだから。。。

何かしら、設定でスカスカに軽くなるのだろうか???
(奮闘中)
[PR]
by isoq | 2009-07-11 00:23 | 開発日記
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

プログラマ30歳定年説

世にプログラマの定年は30歳とよく言われますが、
私も30歳を超えてしまい、
定年に近づいてきたのかもしれません。

私の実感ですが、30歳定年説は、
30歳くらいになると、
次から次へと生まれてくる、いろいろな新技術に、
体がついて行けなくなるからなのかもしれません。

その1つに、技術の幅の広げすぎがあるように思います。
VB、C、C++、Java、ActiveX、.NET、C#、Ruby、Python、PHP、、、
アリとあらゆる言語、技術に挑戦し、
結果、波にのまれつつ、
全てのトレンドを追いかけるので手一杯になってしまう。

そこで、行き詰まって考えてしまう。
ああ、ちょっとつらいな。。。
追いついていけないな、、、

と感じてしまう。

30過ぎたら、もう少し見る目を養って、
いろいろな技術をふるいにかけていかないと、
これから先やっていけないのかな~
と思います。

それができないと、定年も間近か、、、
[PR]
by isoq | 2008-12-10 22:31 | 開発日記
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

NaiNai v1.3.1 リリース

拙作のフリーウェア NaiNai の新バージョン v1.3.1 をリリースしました。

新たにウインドウタイトル名の一致条件として正規表現が使用できるようになりました。

ダウンロードは こちら から。
[PR]
by isoq | 2008-11-20 01:14 | 開発日記
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇