X61tablet Windows 8 でタッチ操作

Windows 8 ではタッチ操作のためのドライバーは勝手にインストールされないようだが、Lenovo のサイトから、

をダウンロードしてインストールすると、タッチで反応するようになった。

もついでにインストールしてみたが、画面の周りにあるボタンを押しても何も起きない。
Windows 8 では使えないということかな。
画面が回転できると便利なんだが。

メール復旧ただし半年前のデータで

1か月ぶりにメールをチェックした。
Windows 8 を RP から製品版に移行した直後から HDD が不調になり、メールのデータが取り出せなくなってしまっていた。のが1か月ほど前。
仕方がないので HDD を買ってきてまた Win 8 をインストールする。
そのままでは元の HDD の中身が全く見えないので、パーティションの復旧ソフトを使ってみたりする。すると一時的に復活するもののメールデータのあるフォルダーは見えず、しばらくするとまた全く見えなくなる。それを繰り返しているとだんだん見えるフォルダーが少なくなっている様子。
ほかのフォルダーのデータはコピーしたが、メールのデータは最近の分はあきらめて半年前に PC から取り出してそのままになっていた HDD からファイルをコピーしてきた。
しかし最近くるメールといってもほとんど WWW の更新お知らせメールの類なので、消えても問題ないかと思う。
・・・本当にそうだといいけど。

X40 にWindows 8 RP をインストール

嫁のお母さんにあげた Thinkpad X40 が先日戻ってきたので Windows 8 Release Preview をインストールしてみると、インストールできてしまった。
X40 にはインストールできないという情報もあるので、初期モデルと後期モデルで違うのかもしれない。
PRODUCT ID は 2371Q3J。
プロセッサ: Pentium M 1.6 GHz
メモリ: 1.5 GB
なんと、エクスペリエンスインデックスの CPU のサブスコアが X61t よりも良い。(X61t:2.9 X40:3.1)
シングルコアなので実際は遅くなるとは思うが。
やっぱり軽いのは良いな。またメインで使おうかな?
CPU のファンが回りだすとうるさいけど。
あと、バッテリーが死んでいるようなので、交換しないといけないかもしれない。


なお、嫁の母には去年買って嫁が使っていた Thinkpad E-420 を渡していて、嫁用は新しく買った Thinkpad E-430 になっている。
中国と日本でテレビ電話をするときもカメラが元からついていて便利になったはず。

ソースコード

公式ページからコピーしたデータを表計算ソフトとエディターを使って、1行1人のタブ区切りデータのテキストファイルを作り、下のプログラムで国別データを出力した。
公式ページからデータをコピーしたのは、9/10 だった。

// medals.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"

struct Medalist
{
	TCHAR country[50];
	TCHAR athlete[50];
	TCHAR sport[50];
	int gold;
	int silver;
	int bronze;
	int total;
};

int _tmain(int argc, _TCHAR* argv[])
{
	if (argc < 2)
	{
		return -1;
	}

	Medalist medalists[2000] = {};
	int medalistCount = 0;

	FILE* f = NULL;
	if (::_tfopen_s(&f, argv[1], _T("r, ccs=UNICODE")) != 0)
	{
		return -1;
	}

	for (;;)
	{
		TCHAR line[256];
		if (::_fgetts(line, 256, f) == NULL)
		{
			break;
		}
		
		Medalist& medalist = medalists[medalistCount];

		TCHAR* p = line;

		TCHAR* tab = ::_tcschr(p, _T('\t'));
		*tab = _T('\0');
		::_tcscpy_s(medalist.country, 50, p);

		p = tab + 1;
		tab = ::_tcschr(p, _T('\t'));
		*tab = _T('\0');
		::_tcscpy_s(medalist.athlete, 50, p);

		p = tab + 1;
		tab = ::_tcschr(p, _T('\t'));
		*tab = _T('\0');
		::_tcscpy_s(medalist.sport, 50, p);

		p = tab + 1;
		medalist.gold = ::_tcstol(p, &p, 10);
		medalist.silver = ::_tcstol(p, &p, 10);
		medalist.bronze = ::_tcstol(p, &p, 10);
		medalist.total = ::_tcstol(p, &p, 10);

		if (medalist.total == 0)
		{
			continue;
		}

		++medalistCount;
	}

	::fclose(f);

	Medalist countries[500] = {};
	int countryCount = 0;

	for (int i = 0; i < medalistCount; ++i)
	{
		Medalist& medalist = medalists[i];

		for (int j = 0; j < 500; ++j)
		{
			Medalist& country = countries[j];

			if (country.country[0] == _T('\0'))
			{
				country = medalist;
				++countryCount;
				break;
			}
			else if (::_tcscmp(country.country, medalist.country) == 0)
			{
				country.gold += medalist.gold;
				country.silver += medalist.silver;
				country.bronze += medalist.bronze;
				country.total += medalist.total;
				break;
			}
		}
	}

	if (::_tfopen_s(&f, argv[2], _T("w, ccs=UNICODE")) != 0)
	{
		return -1;
	}

	::_ftprintf_s(f, _T("Country\tGold\tSilver\tBronze\tTotal\n"));

	for (int i = 0; i < countryCount; ++i)
	{
		Medalist& country = countries[i];

		::_ftprintf_s(f, _T("%s\t%i\t%i\t%i\t%i\n"),
			country.country + ::_tcslen(country.country) - 3,
			country.gold,
			country.silver,
			country.bronze,
			country.total);
	}

	::fclose(f);

	return 0;
}

とりあえず出力できればいいので、エラー判定はほとんどしてない。

ロンドンオリンピック 本当の国別メダル数

いまさらながら、オリンピックの国別のメダルの数え方がおかしいと思う。
公式ページ:
http://www.london2012.com/medals/medal-count/
だって、水泳や陸上みたいに一人で何個も取ることができる種目もあれば、サッカーのように大人数のチームを作って何日も対戦してやっとひとつ取れるというのもあるのに、それを同じ単位だというのは理不尽だ。
そこで、チーム競技についてはメダルの数×チームの人数で計算すると良いんじゃないかと思ったのだが、ペア競技や団体戦などもあるし、競技別に調べるのも面倒か・・?と思っていたら、幸いなことに公式ページでメダリストの一覧(Medal winners)がひろえることが分かったので、実際に人に渡されたメダルの数を計算することができるのだった。
Medal winners ページ でひたすら Show me more を押して最後までデータを出して表をコピーし、表計算ソフト、テキストエディター、 Visual C++ を使って、メダリスト毎のメダル数を国別に足してみた。
その結果がこちら。

金、銀、銅の順に並べたもの:

Country	Gold	Silver	Bronze	Total
USA	147	63	46	256
CHN	56	40	29	125
RUS	50	39	51	140
GBR	48	30	48	126
GER	45	27	22	94
FRA	30	30	18	78
NED	21	29	19	69
AUS	18	37	59	114
KOR	18	13	30	61
MEX	18	5	3	26
ITA	16	22	30	68
CRO	15	4	16	35
NOR	15	1	1	17
BRA	14	34	11	59
HUN	12	8	5	25
UKR	9	5	12	26
NZL	9	3	15	27
JAM	8	9	8	25
JPN	7	44	33	84
KAZ	7	1	5	13
RSA	6	2	1	9
ESP	5	34	25	64
CUB	5	3	6	14
IRI	4	5	3	12
CZE	4	4	6	14
PRK	4	0	2	6
BAH	4	0	0	4
BLR	3	12	8	23
DEN	3	5	8	16
ETH	3	1	3	7
SWE	2	18	3	23
ROU	2	8	6	16
KEN	2	4	5	11
POL	2	2	8	12
AZE	2	2	6	10
TUR	2	2	1	5
SUI	2	2	0	4
LTU	2	1	2	5
CAN	1	21	35	57
ARG	1	16	3	20
COL	1	3	4	8
GEO	1	3	3	7
SRB	1	1	14	16
IRL	1	1	3	5
SLO	1	1	3	5
TUN	1	1	1	3
DOM	1	1	0	2
TRI	1	0	9	10
UZB	1	0	3	4
LAT	1	0	2	3
GRN	1	0	0	1
UGA	1	0	0	1
VEN	1	0	0	1
ALG	1	0	0	1
MNE	0	14	0	14
IND	0	2	4	6
MGL	0	2	3	5
THA	0	2	1	3
EGY	0	2	0	2
POR	0	2	0	2
FIN	0	1	4	5
SVK	0	1	4	5
BEL	0	1	2	3
ARM	0	1	2	3
PUR	0	1	1	2
BUL	0	1	1	2
TPE	0	1	1	2
MAS	0	1	1	2
EST	0	1	1	2
INA	0	1	1	2
BOT	0	1	0	1
GUA	0	1	0	1
CYP	0	1	0	1
GAB	0	1	0	1
SIN	0	0	4	4
KSA	0	0	4	4
GRE	0	0	3	3
QAT	0	0	2	2
MDA	0	0	2	2
KUW	0	0	1	1
TJK	0	0	1	1
MAR	0	0	1	1
BRN	0	0	1	1
HKG	0	0	1	1
AFG	0	0	1	1

合計、金、銀、銅の順に並べたもの:

Country	Gold	Silver	Bronze	Total
USA	147	63	46	256
RUS	50	39	51	140
GBR	48	30	48	126
CHN	56	40	29	125
AUS	18	37	59	114
GER	45	27	22	94
JPN	7	44	33	84
FRA	30	30	18	78
NED	21	29	19	69
ITA	16	22	30	68
ESP	5	34	25	64
KOR	18	13	30	61
BRA	14	34	11	59
CAN	1	21	35	57
CRO	15	4	16	35
NZL	9	3	15	27
MEX	18	5	3	26
UKR	9	5	12	26
HUN	12	8	5	25
JAM	8	9	8	25
BLR	3	12	8	23
SWE	2	18	3	23
ARG	1	16	3	20
NOR	15	1	1	17
DEN	3	5	8	16
ROU	2	8	6	16
SRB	1	1	14	16
CUB	5	3	6	14
CZE	4	4	6	14
MNE	0	14	0	14
KAZ	7	1	5	13
IRI	4	5	3	12
POL	2	2	8	12
KEN	2	4	5	11
AZE	2	2	6	10
TRI	1	0	9	10
RSA	6	2	1	9
COL	1	3	4	8
ETH	3	1	3	7
GEO	1	3	3	7
PRK	4	0	2	6
IND	0	2	4	6
TUR	2	2	1	5
LTU	2	1	2	5
IRL	1	1	3	5
SLO	1	1	3	5
MGL	0	2	3	5
FIN	0	1	4	5
SVK	0	1	4	5
BAH	4	0	0	4
SUI	2	2	0	4
UZB	1	0	3	4
SIN	0	0	4	4
KSA	0	0	4	4
TUN	1	1	1	3
LAT	1	0	2	3
THA	0	2	1	3
BEL	0	1	2	3
ARM	0	1	2	3
GRE	0	0	3	3
DOM	1	1	0	2
EGY	0	2	0	2
POR	0	2	0	2
PUR	0	1	1	2
BUL	0	1	1	2
TPE	0	1	1	2
MAS	0	1	1	2
EST	0	1	1	2
INA	0	1	1	2
QAT	0	0	2	2
MDA	0	0	2	2
GRN	1	0	0	1
UGA	1	0	0	1
VEN	1	0	0	1
ALG	1	0	0	1
BOT	0	1	0	1
GUA	0	1	0	1
CYP	0	1	0	1
GAB	0	1	0	1
KUW	0	0	1	1
TJK	0	0	1	1
MAR	0	0	1	1
BRN	0	0	1	1
HKG	0	0	1	1
AFG	0	0	1	1

USA の強さがさらに際立ってしまった・・。すごい。
合計を比べたときは、日本もそれほど悪くないと思う。
意外にオーストラリアが強い。イギリスと大英帝国関係で足すと USA に勝っているかもしれない。(合計では)