何か創りたい。
http://toshirr.blog13.fc2.com/
* Toshi's Recess Room - Toshi Creates. - プログラミング カテゴリの記事 :: / 次のページ >>
<< 2017/09 - 2017/10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 2017/11 >>

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[ No. ]
[ 日時 : --/--/-- (--.) --:--:-- ]
[ カテゴリ : スポンサー広告 ]


StatusFlag Version 2.6.0.0

タイトルの通り、StatusFlag をバージョンアップしました。
今回は、ご要望いただいた 64 ビット版 OS へのネイティブ対応です。
[IME 状態] プラグインが 64 ビットのアプリケーションで使えるようになります。

理想は 1 つのアプリで 32 ビット・64 ビットの両方に対応することなのですが、今回は見送りました。
技術的には可能ですが、改修規模の面で。。。

久々に StatusFlag のコードを触りました。勘が鈍っています。非常に。

というわけで、若干のバグ修正もありますので、ぜひダウンロードお願いいたします。
スポンサーサイト

[ No. 997 ]
[ 日時 : 2013/10/14 (Mon.) 05:51:25 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


StatusFlag Version 2.5.1.0

久しぶりの更新です。

以前ご要望をいただいておりましたが、なかなか時間がなくご対応できておりませんでした。
GW ということでようやくコードを触れる運びとなりました。

今回は、[日付と時刻] グラフの年・曜日の表示パターンを増やした感じです。
これも当初の仕様を引きずったままで、年は西暦・曜日は英語の略称固定だったわけですが
「'12/05/02 Wednesday」とか「H24/05/02 (水)」という表示が可能になります。
つーわけでぜひぜひ新バージョンを使ってみてください。

さて StatusFlag も、バージョンが 2.5.x.x 系統まで進んだことで、
少しずつ完成されてきてるのかなという気がしてます。
ですが今回のように過去の仕様が云々ということもあるので、まだまだ改善の余地はありますね。

[ No. 991 ]
[ 日時 : 2012/05/02 (Wed.) 20:06:35 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


StatusFlag Version 2.5.0.0

2 年振りです。
StatusFlag Version 2.5.0.0 の登場です。

私がこのソフトを作り始めた頃は、メモリが 256 MB とか 512 MB とかで、
HDD も 40 GB もあれば十分で、
ネットの回線も ADSL だったので 1.5 Mbps とかで、
CPU もシングル コアで頑張っていた時代でした。

しかし、今は事情が違います。
メモリは 64 ビット OS によって 数 GB は当たり前、
HDD は TB クラスが売れに売れ、
100 Mbps の光ファイバが身近な存在となり、
デュアルコア、クアッドコアが普及しまくっています。

そんな時代にもかかわらず、今までの StatusFlag は
メモリの表示は MB 固定、
HDD の容量も GB 固定、
回線速度の表示は KB 固定、
CPU 使用率も 1 コア分の値しか分からず、周波数に至っては全く表示されない始末。
時代錯誤もいいところです。

ということで、そこらへん全部対応しました。


これでまた戦えますね。
ぜひぜひ使ってみてください。

[ No. 989 ]
[ 日時 : 2011/10/11 (Tue.) 01:23:23 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


ThroughPass Version 1.0.1.0

ということで暇ができたのでバージョンをアップする流れですね。
/delay オプションと再処理コマンドで、だいたい必要な機能は満たせたんじゃないかと思います。
欲をいえばガジェットを追加した瞬間に透過して欲しかったりするわけですが、
これはもうちょっと時間ができたら対応するかもしれません。

現在仕事は大変ですけれども、ツボにはまれば楽しいです。
そんなこと言ってられるのも今のうちじゃないかなという気持ちもありますが、
何にせよチャンスを与えられた身ですので、邁進あるのみです。

[ No. 960 ]
[ 日時 : 2010/09/04 (Sat.) 23:31:17 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


甘かった / 新しい?楽しみ方

案の定 ThroughPass にテスト漏れによるバグが見つかりました。
スタートアップに入れておくと、描画がおかしくなるガジェットが出てきます。
現時点の対策はスタートアップに入れない、というかタイミングの問題なので
入れても大丈夫なパターンもありますが...

何秒かしたら機能を有効にするみたいなコマンドライン引数があるといいですね。
暇ができれば対応します。

関係ないですが、Windows Media Player みたいな視覚エフェクトのあるプレイヤーを
タスクバーの下に被るように置いて、バックグラウンドで音楽かなにか再生させておくと、
他のウィンドウで作業しながらでもさりげなく楽しむことができます。
Aero 有効時限定ですが、Vista でも 7 でも使えます。
もしかしたら同じことを考えた方もいらっしゃるかもしれませんが、なんか楽しかったので。

[ No. 959 ]
[ 日時 : 2010/08/31 (Tue.) 01:06:16 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


ThroughPass Version 1.0.0.0

Web サイトの更新は 3 ヶ月以上ぶり、ソフトの更新は 5 ヶ月以上ぶり、
新規ソフトの公開は 8 ヶ月以上ぶり、COSMIC FORCE を除けば 1 年以上ぶりとなりました。

お久しぶりです。

Windows 7 かつガジェットを使っている方、ガジェットの下のウィンドウを操作するのに
いちいちガジェットを移動させてたりしませんか?

このソフトはそんな手間を解消してくれます。
ガジェットを表示させたまま下のウィンドウを操作できるようにしてくれる機能があるのです。
もちろん、ガジェットを操作したいときはその機能を無効にすることもできます。
常駐させながらの使い方もアリですし、常駐させない使い方もアリです。

もしかしたらなかなかニッチなところを突いているかもしれませんが、私は便利だと思います。

[ No. 958 ]
[ 日時 : 2010/08/29 (Sun.) 22:33:40 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


リボンを使おう

Office 2007 で登場したリボン インターフェイス。
自分のプログラムに組み込んでみたいなぁ、という考えは、
Windows の GUI プログラミングが好きな人なら誰しもとは言いませんがそれなりの数の人は持ったことがあるはずです。
かくいう私も興味がある人なので、調べてみました。

リボンを使う方法はいくつかあります。

・MFC
あの MFC でリボンが使えます。Visual Studio 2008 以降のようです。
タブブラウザの UI でおなじみの BCGControlBar を作っている会社が作っているらしいです。
MFC なので OS はあんまり問わなさそうですね。

・WPF (Office UI License)
Microsoft 謹製のライブラリという安心感。しかも WPF というところも Good。
ただし、評価目的でしか使えないので実質使えないに等しいです。
最初ダウンロードしてライセンス読まなかったので危うく引っ掛かるところでした。

・Microsoft Ribbon for WPF
これも Microsoft 謹製ですが、評価目的とかそういう制限は一切なし。いいですね。

・Third Party
サードパーティ製のライブラリ。まず間違いなく有償ですが、
さすがにお金を払ってる分機能的にはきちんとしている印象がありますね。

・Ribbon Framework
今のところ Windows 7 のみ対応のフレームワーク。
ネイティブ C++ ならこれしかないでしょう。
XAML と COM と Win32 API が入り混じる混沌とした世界が広がります。
(※本当に混ざってるわけではありません)

いずれにしろ XAML を書かなきゃいけないのかなぁと思ってましたが、
MFC とかなら Visual Studio 2010 でリソース エディタ上での編集ができるっぽいです。
いやはや環境って揃うもんですね。

[ No. 954 ]
[ 日時 : 2010/08/09 (Mon.) 23:55:53 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


マルチコア時代のプログラミング

大層なタイトルを付けた感じがしますが、そこまで高度な知識は持っていません。
ただ単に、マルチコアなプロセッサを利用するようになって今までと考えを改めなければならなくなったことがあっただけです。
これは主に StatusFlag などのような情報表示系ツールが関係してきます。

4 コアで Hyper-Threading Technology 有効な Intel Core i7-860 上での話として読み進めてください。
ここでは、私が持っていた "前提" を崩していきます。

前提その 1 : システムに存在するプロセッサは 1 つで、実行されるスレッドも 1 つである

はい、もうこれ通用しません。
過去 Pentium M というシングルコアで Hyper-Threading Technology もないプロセッサを使っていたので、
プロセッサの情報を得たいと思ったときにそれが 1 つだけであるという前提をコーディング時に持ってしまっていました。
ですので、「プロセッサの情報をくれ、バッファは 1 つ持ってるから」と今現在のシステムに頼むと、
「わかった、まあ実はコアもっとあるんだけど 1 個目のヤツの情報返すから」と言われて成功するか、
「え?足んねーよ」と言われて失敗するかします。
StatusFlag においては、CPU 使用率に関しては前者、CPU クロックに関しては後者のリアクションになります。
これは使用している API の仕様ですので、いかんともしがたいところがあります。

ということでマルチコアに対応させようとするならば、システムに存在するコア数を得れば万事解決ですね。

前提その 2 : システムに存在するプロセッサは 1 つだが、コアは 4 つで、実行されるスレッドも 4 つである

そう、この前提、正しそうですよね。でも違う場合があります。
Hyper-Threading Technology です。これがあると実行スレッド数が倍になりますね。
これによって、CPU 使用率は論理コアごと、CPU クロックは物理コアごとに全く別々となります。
CPU クロックが物理コアごとに異なる場合が出てくるのは、Turbo Boost Technology によるものです。
ここまで考えないと正確なプロセッサの情報は得られません。

さらに「システムに存在するプロセッサは 1 つである」という前提が...となりますがそれは置いときます。
今はコンシューマ向け PC についてはプロセッサではなくコアが複数なのがトレンドのようですし、
そこまで考えるとアプリケーションというレイヤーから見るには荷が重くなりそうですし、
何より私がそういう環境を持っていないためです。
↑このセリフ、Pentium M だった頃も「マルチじゃねぇよ」って意味で言ってましたね...。
でもこれからは

(nNumberOfPhysicalCores != 1 && nNumberOfPhysicalCores != nNumberOfLogicalCores)

という前提を持つことができます。
それだけで感慨深いものがあります...。

さて、試しに Turbo Boost Technology が効いてるかどうか確かめようと思って、
CPU-Z とかで確認もしてたんですが、これを自分でコード書いてできないもんかと思い立ってみたんです。
それで Microsoft Visual C# 2010 Express を落としてきて、StatusFlag と同じ手法でやってみたんですが、
どうにもうまく取得できません。3 GHz 超えしてるはずなのに定格 2.8 GHz にしかならないんです。
いろいろ調べたら、こんなページを見つけました。

4Gamer.net ― 特徴を徹底的に掘り下げるLynnfield基礎テスト。キモは「Turbo Boost」だ(Core i7&i5(LGA1156,クアッドコア))

以下、そのページからの引用です。


 従来のIntel製CPUでは,動作クロックに同期している内部パフォーマンスカウンタを,「RDTSC」命令を使って取得することにより,例えば「1秒間のカウント数」などから,動作クロック(=クロック周波数)を得ることができた。しかし,Core i7では,Turbo BoostやEISTがどのような動作状態にあっても,内部パフォーマンスカウンタは,必ず規定のクロックでカウントアップする仕様に切り替えられた。その結果,従来の方法を使うクロック計測ソフトを起動すると,TBが利いていても規定クロックしか得られなくなったのだ。これが,Core i7のクロックモニタリングツールが(少なくとも筆者の知る限り)ほとんど存在しないことの理由である。

 ではどうするのかだが,Intelは,Nehalemアーキテクチャのプロセッサにおける動作クロックを計測法を,「Intel Turbo Boost Technology in Intel Core Microarchitecture(Nehalem) Based Processors」というドキュメントで公開している(※リンクをクリックするとpdfファイルのダウンロードが始まります)。そこで今回は,このドキュメントに従い,1秒に1回のペースで動作クロックを計り,ログとして計測できるツールを自作することにした。プログラムの知識があれば制作はそれほど難しくないので,興味のある人には,一度ドキュメントに目を通すことをお勧めしておきたい。



文中の Intel のドキュメントはこのリンクから。PDF なので HDD の方はガリガリに注意。

Intel® Turbo Boost Technology in Intel® Core™ Microarchitecture (Nehalem) Based Processors

つまり、今までのように OS の API を呼ぶだけとかそういう手段では正確なクロック周波数は得られない、そう解釈できます。
なんとパフォーマンス モニタでも得られませんでした。
Processor Information も Processor Performance も Processor Frequency というカウンタを持っていますが、
どちらも 2800 (MHz) で頭打ちになります。
結局のところユーザー モードからではどうにもならないっぽいです。
なお、コアの温度を取得する大変さも基本的には同じだと思っていいです。
(でも論理コアごとの使用率は普通に得られると思うので誤解なきよう)

というわけで、情報表示系ツールがマルチコアに本気で対応するのはキツイ部分も確かにあるのですが、
そんな需要にも対応できるライブラリがあります。WinRing0 です。

OpenLibSys.org

プロセッサの情報を得るための普通には発行できない命令を発行してくれます。
探せばあるものですね。ちなみにかの有名な CrystalMark などのツールの開発者の方です。

[ No. 941 ]
[ 日時 : 2010/06/20 (Sun.) 23:17:01 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


気合いでどうにかなる時もある

気合いで WTL リファレンスを更新しました。
きっと誰かの役に立っているはず、と信じて、余裕がある時に少しずつでも書いていきたいと考えています。
コピペもそれなりにありますが、少しずつ修正しなければならなかったりで手間ゼロではありません。

[ No. 930 ]
[ 日時 : 2010/05/17 (Mon.) 22:33:25 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


CQuickMark Version 1.0.2.0

公開ページに Vector へのリンクを張り忘れていましたので、今回張りました。

バージョン アップの内容は細々としたものなので、ここでは触れません。
あ、そんなことしたらここで終了になるじゃねーかということでやっぱり触れます。
explorer.exe が再起動したら同時に自分も復活するように改善、その他不具合修正です。

触れてもまだ短すぎるので、explorer.exe が再起動したことをどうやって知るかをメモっておきます。
これは割と知られているような気がしますが、RegisterWindowMessage API に "TaskbarCreated" を渡して、
このメッセージが来たら Shell_NotifyIcon API で再登録してやるだけです。

そろそろいいかな、ということで二週間ほどブログを書いていなかったこの空白の期間についてのことでも書きます。
次のエントリへどうぞ。

[ No. 916 ]
[ 日時 : 2010/03/19 (Fri.) 11:17:25 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


プロフィール

Toshi

  • Author:Toshi
  • 何かを創りたい Toshi の記録


ブログ内の検索


最近の記事


最近のコメント


最近のトラック バック


カレンダー

09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -


月別の記事


カテゴリ別の記事


RSS フィード


<< 2017/09 - 2017/10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 2017/11 >>
* Toshi's Recess Room - Toshi Creates. - プログラミング カテゴリの記事 :: / 次のページ >>
http://toshirr.blog13.fc2.com/
(C) 2005 - 2009 Toshi, All Rights Reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。