Hatena::Diary

やや温め納豆 RSSフィード

2008-04-26

tclock-080427-analog

| 01:19 |

追記 09/02/28

TClock2ch付属サイト…では最新版を含めて、散在する各バージョンの収集が行われています。より新しい情報はこちらを参照してください。


以下は古い記事です。


追記 08/06/08

このサイトでTClockの更新は行いません。ここでは080602のバグ対応のみ行います。気が向いたら名無しで付属サイトさんのアップローダに展開するかもしれません。*1



追記 08/06/03

TClock2ch付属サイト…に更新版をあげておきました。Vista SP1でスリープからの復旧時にexplorer.exeが固まる問題を修正しています。


以下本来の記事

2つ以上CPUコアのある場合、Vista環境で書式 <%CC%> が正常に動作しない問題を修正しました(tclock-080427-analog.cab)。

.履歴
080427
    exe         :時刻合わせの設定画面でログを読み込むように変更
    dll         :Vista環境でCCがでたらめな値を表示する問題を修正
                :CPUコアごとのクロック数取得書式 CC[0-7] を追加

この問題は本家が <%CC%> を実装した段階で潜在的にもっていたものですが、XPからVistaになる際に CallNtPowerInformation に仕様変更があったことで表面化しました。


この関数は、XPでは複数のコアがある場合でも、 PROCESSOR_POWER_INFORMATION 構造体1つ分のバッファを渡せば CPU #0 の情報を取得することができました。しかしVistaでは、コア数と同じ数の PROCESSOR_POWER_INFORMATION 構造体をバッファとして要求し、バッファサイズが足りない場合は STATUS_BUFFER_TOO_SMALL を返して情報は取得できません。よって正しくは次のコードのように使用する必要があります。

SYSTEM_INFO si;
GetSystemInfo(&si);
SIZE_T sz = si.dwNumberOfProcessors * sizeof(PROCESSOR_POWER_INFORMATION);
PROCESSOR_POWER_INFORMATION* info = new PROCESSOR_POWER_INFORMATION [si.dwNumberOfProcessors];
if (CallNtPowerInformation(ProcessorInformation, 0, 0, info, sz) == STATUS_SUCCESS)
{
  for (DWORD i=0; i<si.dwNumberOfProcessors; ++i)
    std::cout << info[i].CurrentMhz << std::endl;
}
delete [] info;

従来TClockでは構造体1つ分のみのバッファを渡していたため <%CC%> は CPU #0 の情報のみを取得していました(あるいは取得に失敗しながらも、エラーチェックをしていないがためにでたらめな値を表示していました)。

今回の <%CC[0-7]%> の追加により CPU #0-7 の情報を取得できるようになり*2、従来の <%CC%> も <%CC0%> とみなすことによって変更なく使用することができるようになりました。


tclock SNTPのログを表示する

| 20:24 |

時刻合わせの設定ダイアログを表示した際、SNTP.txtの内容を読み込み表示するためのソースに対するパッチ。以下の関数を pagesntp.c の OnInit 末尾で呼び出してあげればOK。


04/27 追記

このエントリーの内容はバイナリtclock-080427-analogに反映されました。


void LoadLogFile()
{
	HANDLE hFile;
	char fname[MAX_PATH];
	char* logValue = NULL;
	char* p = NULL;
	DWORD dwSize = 0;
	DWORD i = 0;

	strcpy(fname, g_mydir);
	add_title(fname, "SNTP.txt");
	hFile = CreateFile(fname, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
	if (hFile == INVALID_HANDLE_VALUE) goto CLEANUP;

	dwSize = GetFileSize(hFile, NULL);
	if (!dwSize) goto CLEANUP;

	logValue = malloc(dwSize+1);
	if (!logValue) goto CLEANUP;

	if (!ReadFile(hFile, logValue, dwSize, &dwSize, NULL)) goto CLEANUP;
	logValue[dwSize] = '\0';

	p = logValue;
	for (i=0; i<dwSize; ++i)
	{
		if (logValue[i] == '\r')
		{
			if (logValue[++i] == '\n')
			{
				logValue[i-1] = logValue[i] = '\0';
				SendMessage(hwndSNTPLog, LB_ADDSTRING, 0, (LPARAM)p);
				p = logValue + i+1;
			}
		}
	}

	SendMessage(hwndSNTPLog, LB_SETCURSEL, SendMessage(hwndSNTPLog, LB_GETCOUNT, 0, 0)-1, 0);

CLEANUP:
	if (hFile != INVALID_HANDLE_VALUE) CloseHandle(hFile);
	if (logValue) free(logValue);
}

それにしても tclock-analog はグローバル変数が多い。IDEなしじゃあソースが追いかけれられません。

*1:名無しならキーローガーを実装できる。興味あったしちょっとがんばってみようかな。期待しないで待っててくださいです。

*2:意味があるかは知らない。

まぬまぬ 2008/05/08 01:22 初めまして、いつも楽しく記事読ませてもらってます。
早速ですが080427を使っているんですけど、080427を起動したままpcをスタンバイ状態にし、再度pcを起動させると必ずフリーズします。ちなみにエクスプローラを再起動すれば元に戻ります。あと、CU[0-7]の書式に2つのCPUが全く反応しません(どの数字でもすべて同じ使用%を示す)。よろしくお願いします

環境 C2D T7250 2.00GHz

egggardenegggarden 2008/05/08 19:05 どうもはじめまして。問題の詳細として、何点か伺いたいところがあります。
1.CUの問題、およびスタンバイの問題それぞれに再現性はあるか
2.OSのバージョンはなにか 2000SP4 / XPSP2or3 / VistaSP1?
3.スタンバイの問題は、同じ環境でTClock2chのバージョンを変えたとき、どのバージョンで再現するか
http://www.geocities.co.jp/egggarden/_blog/tclock-080425-analog.cab
http://www.geocities.co.jp/egggarden/_blog/tclock-080304-analog.cab
http://www.geocities.co.jp/egggarden/win32api/download/tclock-071230-analog.zip
http://tclock2ch.at.infoseek.co.jp/(tclock-030531-analog.zip)
4.可能なら設定をINIファイルにしてアップローダあるいはメールで送ってもらえないか
5.>どの数字でもすべて同じ使用%を示す
は CU が 25 を表示するとしたとき、CU0 -> 25 / CU1 -> 25 / CU7 -> 25
のような結果になるということか

この辺を調査のため教えていただきたいです。よろしくお願いします

まぬまぬ 2008/05/09 11:22 1.スタンバイから起動後、タスクバーの常駐ソフトはフリーズしてなくて(スタートボタン、その他常駐アイコンは呼び出すことができる)、Tclockのみがフリーズしている状態です。その場合時計をクリックするとダイアログで「このアプリは応答していません。終了しますか?」とでるので、終了にするとエクスプローラ再起動で通常の時間を刻み始めます。
2.すみません、書き忘れました。OSはVista SP1です。
3.スタンバイ状態で今試しましたが、同じ環境で 080425再現 080304再現 030531再現しない 071230再現 (030531はVista対応ではないですが、以前XPを使っていた時に常駐で使用していました。)
4.明日にでもメールで送らせていただきます
5.はい、CUで1-7までタススバーに表示させて試しましたが、すべて同じ数値を示します。

よろしくお願いします

egggardenegggarden 2008/05/11 22:05 詳細情報ありがとうございます 
ご連絡いただいた情報をもとにVM上のVistaで試していたのですが、どちらの現象も再現しません。そのため現状では手の打ち様がなく、進展する見込みがありません。INIファイルがあれば環境を近づけることができるので、連絡をお待ちしてます。

egggardenegggarden 2008/05/19 23:56 >まぬさん
Vista SP1にて[スリープ]からの復旧時の問題の発生を確認しました。進展がありましたら連絡します。

tobytoby 2008/06/03 19:22 こんにちは、TClockのVista対応版を探していてこちらにたどり着きました。
すでに報告にあるとおり、やはりVista SP1にてスリープからの復旧時にエクスプローラー(タスクバー)が固まるようです。tclock-080427-analogにて確認しました。

tclocklight-kt071229 では復旧時でも大丈夫のようです。
参考になればと思います。

環境:Vista 32bit SP1、CPU: Q6600 メモリ: 2GB

egggardenegggarden 2008/06/03 22:29 連絡ありがとうございます。
記事に問題修正版(tclock-080602-analog)へのリンクを貼りました。試していただけるとうれしいです。

tobytoby 2008/06/04 00:05 対応が早くてびっくりしましたw
無事スリープからの復帰ができるようになったことを確認いたしました。
ありがとうございました!

七誌の住民七誌の住民 2008/06/07 21:20 XPProSP2 Prestonia XEON 2.2GHz x2 HT有効 メモリ2G 試したVer080304/080425/080602
tclock-080427-analogを使用CU0CU1CU2CU3どの数値にも反応せず0固定でCUのみ動いています。
あとPC再起動後TClockの初回起動に妙に時間がかかります。

egggardenegggarden 2008/06/07 23:34 x64のプログラミングがしたくなったので今日は秋葉原に行ってきました。
Xeon Harpertown x2の構成にしようかなーなどと心躍らせています。とりあえず2008はamazonで注文しておきました。

ええと、書式CU<N>(と起動が遅い?)問題ということで、複数バージョンでの調査報告ありがとうです。プログラムのバグは基本的に私の環境で再現しないと対応できないため、INIをメールかアップローダにあげて連絡していただけると助かります。

egggardenegggarden 2008/06/08 00:07 うーん、よく考えるとここのTClockの扱いはあるべき形をとってない気がしますね。 >すべての七誌

以下その理由。
まず2chといいつつ2chを介していない。これはある種[TClock2ch]というネームバリューを勝手に使ってるようなもの。
さらに悪いことに、あたかも私の独自バージョンのように扱っている。本来であれば不特定の七誌としてコミットしていくべきだった。
特に現状のようにアクティブな特定の開発拠点があると、それ以外の人が改変しリリースするのが難しくなっちゃって、大局的にTClock2chのフリーな体制が薄れてくるように思う。
#そもそも「ここで」開発する理由がない。それこそ売名行為の材料にしてる

とはいえ、現状提供しているものに関しては、責任をもって(本当はそんなものないけど)バグをつぶしたいので、報告は歓迎します

七誌の住民七誌の住民 2008/06/08 00:28 オープンな開発環境は何人も開発に関わり去っていった(´・ω・`)あ、メールで発射しました

egggardenegggarden 2008/06/08 01:36 INIありがとうございます。
いただいたINIにて私が確認できる環境で080602の起動とOSの再起動を試してみましたが、いずれも報告にある問題が再現できませんでした。申し訳ないのですが、この件は対応の見通しが立てられません。
CU[0-7]の書式はパフォーマンスカウンタ¥Processor(0-7)¥% Processor Timeの値を使用しているので、パフォーマンスカウンタの初期化絡みのような気もするのですが、実際のバグの箇所もしくは対応策までは見出せません。

七誌の住民七誌の住民 2008/06/10 01:50 むんむん。パフォーマンスモニタの起動が数十秒かかるという状態にありました。
nliteであれこれ削ってあるしOS自体インストールから大分経っているので明らかにこちらの環境の問題ですね。
どうもお騒がせしました。

付属サイト管理人付属サイト管理人 2008/06/12 23:42 http://tclock2ch.at.infoseek.co.jp/
の管理人です。

これまでROMっていましたが、やむなく苦情を投げます。
TClock@2ch uploader へ投稿分のtclock-080614-analogですが、冗談でも(本気なのかどうかは判断できませんが)”名無しならキーローガーを実装できる。”という宣言をしているものはどうなのかと。
名無しである以上、今回の投稿が氏であるかは管理者データを参照しないと判別できないわけですが、今回はtclock-080602-analogが削除されていることから、削除キーを保持している当人であることが第三者にも特定できるため敢えてこちらへの書き込みとさせてもらいました。

正直なところ、アップローダーの管理というのは投稿者の善意に依存する部分が少なからず存在するので、今回のように悪意を持ったものと疑われる要素を内包したものを投稿されるようですと、アップローダー自体の公開を廃止せざるを得ないということに繋がりかねません。

TClock2chの創生期から5年以上経過した今日では、当時からの住人も少なくなり、過去ログが参照しずらいこともあり、なぜ開発が衰退したか理解しずらい部分もあるかとは思いますが、それ以前にWeb上でアーカイブを配布することの影響力を今一度お考え下さい。

egggardenegggarden 2008/06/13 01:16 >アップローダーの管理というのは投稿者の善意に依存する部分が少なからず存在する
まず、この点についての配慮がなく、迷惑をおかけしたことをお詫びします。
悪意ある(あるいは法に抵触する)ファイルが匿名でアップロードされたような場合、
管理者はファイルの削除、ないしはログ等の情報をもってアップロードした者を
特定し対応できるとはいえ、それが管理者にとって作業的な面だけでなく負担
となるということを認識していませんでした。

悪意をもってファイルを配布してはいないことは言明しますが、
今回の件に関して言えば、私の発言により、
犯行予告のもと付属サイトさんのアップローダを利用した、
と捉えることができる形となっているため、
通常の匿名のファイル展開とは意味が異なります。
これは悪質な使い方であり、申し訳なく思います。

付属サイトさんのページおよびアップローダは、
TClockにとって有意義な場であり、私は廃止されることを望んでいません。
このような手前、勝手ではありますがtclock-080614-analogを削除し、
以前と変わらない運営を続けていただければ幸いです。

付属サイト管理人付属サイト管理人 2008/06/13 02:46 突然の指摘にもかかわらず、的確な理解をいただいたことに感謝しています。

いくつか伝達しておきたいことがあります。

*私の個人的な感情として、Light系でないTClock2ch系列のバージョンアップは非常に歓迎しており、進行形で取り組んでいる氏へ期待を持っています。現に長期間愛用していた tclock-030531-analog から入れ替えて手元で常用してますんで。これは決して私個人に限ったものではないかと。


*>まず2chといいつつ2chを介していない
とありますが、創生期からの住人ならば2ch(本スレ)上でまともに議論ができる状態ではない(ここ数週間の比較的落ち着いた状況はさておき)ことを十分承知しているわけで。その中で付属サイトに掲示板の設置要望が出たことを受けてTClock板を作ったわけですが、活用されているとは言い難い状況です。スレにリンクが張られている段階で”ネームバリューを勝手に使ってる”などとは誰も感じていないかと。
ユーザー側の感情としては、単なる名無しよりもクレジットされている作者のほうが安心できると考えているはずです。
>それ以外の人が改変しリリースするのが難しくなっちゃって
これもむしろ逆かと。Light系のリリース頻度を見ていても、他の作者がアクティブにバージョンアップすることに触発されている事例のほうが多いように見受けられます。


*一番の問題は、ユーザーからフィードバックできる拠点を持ちクレジットされた作者がその拠点で公言してしまったことかと。開発者としてそのコードが悪意を持つものであっても興味を惹かれたであろうことは(誤解を恐れず言及すると)全く理解できないわけではありませんが、正直なところ氏への期待が落胆に変わってしまったのは事実ですし、氏のバージョンを常用することに対して懸念せざるを得ないと感じすらしています。

今回の事態は、たまたま早期に一時的な対策を講じることができたため大事に至っていませんが、昨今のSPAM多発(1分当たり2ケタ以上のPOSTすら珍しくありません)は動的コンテンツを持つサイトの管理に対して非常に手間と時間と労力を割かざるを得ない状況になっており、また各種判例においてアップローダーの管理者に対する責任を問うものすら発生している状況においては、運営の継続に対して消極的にならざるを得ません。

ですので、今回の事態が直接要因というわけでなく、アップローダーの運用は休止するつもりです。時間的な余裕ができれば再開しますが、「フォームから入力・添付して管理者承認後公開」という、投稿者・管理者・利用者いずれにも非常に面倒な形くらいしか思いつきません。これ以降はウチのサイト単独の懸案になるので、ここをお借りして思案するつもりはありませんが。


*tclock-080614-analog ですが、ここでのやりとりが消滅しない限りは明確にクレジットが存在しますので、ミラーという形でオリジナルのまま残させてもらいます。バグ潰し・新機能等、切望しているユーザーも少なく無いはずですし、ソースが添付されている以上は(私が疑っている疑っていないではなく)多くの目で検証されるはずですので。
以降のバージョンアップをもしここで継続される意志があるのでしたら、できる限りミラーリング等したいと思っていますので、その許可をいただきたく思います。

egggardenegggarden 2008/06/13 21:28 >>それ以外の人が改変しリリースするのが難しくなっちゃって
>これもむしろ逆かと。
触発され活発化する可能性があればこそ、匿名のものとそうでないものが混在する状況を避けたいと考えています。
私自身は特定の誰かが、現在進行形で開発しているものに手を加えたいとは思いませんし、「クレジットされたもの」である事がユーザが安心感(などのメリット)につながるとも思っていないため、ここで開発を継続する意思はありません。匿名であってもTClockに関心をもつ人はいるでしょう。

ミラーリングの件はとても嬉しい話ですし、再配布やミラーを制限する意図は最初からありません(と、無いつもりだったのですが直リンクはやめてね、とも書いてありますね。消しときましょう)。
tclock-080614-analogはどのように扱っていただいても結構ですが、バグを見つけたこともあるので、修正したものをとりあえずここに置くことにします。この流れのなかでアップローダ使っては意味が無いですしね。これもどのように扱っていただいても結構です。ただ一点断っておきますと、

>氏のバージョンを常用することに対して懸念せざるを得ないと感じすらしています。
「クレジットされたもの」である事を意識するのであれば、私のものを避けるのは妥当な判断かもしれません。
私は作りたいと思ったものを作るだけで、それがどのように利用されるかはあまり関心がありません。
この姿勢が刃物を作って道端に捨てるようなものであることと、その刃物を付属サイトさん場に投げてしまったのが今回の問題であることは、理解できています。
それでも、興味があればロガーであろうと実装を検討するという考え方は変わりません。ロガーとTClockの組み合わせに何か魅力的な効果があるわけではないので、TClockに実装することは無いでしょうが、件の発言の半分は本気なわけです。このことを認識していただけると、私の姿勢とプロダクトについての誤解が無くなるものと思います。

まぬまぬ 2008/07/06 14:16 お世話になります。
一つも最大化されたウィンドウが無い場合、Tclock2chの設定したフォントが太字に変化してしまいます。その場合、グラフの設定した色も変わって表示されます。OSはVista SP1 32Bitです。使用Ver080614。よろしくおねがいします。

egggardenegggarden 2008/07/11 22:40 上のほうでバグ報告をしていただいた方ですね。どうもです。
報告の現象は、私の環境で簡単に試したものの再現できていません。そのせいもあって報告されている内容がいまひとつ把握できません。たとえば……
一つも最大化されたウィンドウが無い場合とは=ウィンドウを全部閉じるということ? ウィンドウを開いて最大化すると直るということ?
設定したフォントが太字に変化=「変化して表示」される? それとも「設定値が変化」してしまう? 

等々。
再現性があるのであれば再現のためTClock2chのINIファイルと、その操作手順を時系列でスクリーンショットにまとめて送っていただけるとスムーズに調査できて嬉しいです

あとレスポンス悪くてごめんなさいね。気が向いたときにしか反応していないので……。気が向いたときにご連絡ください