月曜日, 11月 26, 2007

フランスで海賊行為者のウェブアクセスを禁じる新制度

フランスで、海賊ソフトを取り締まる新制度が発表されたという。独立機関が、ネットユーザーに警告し、アカウントを停止させる可能性があるという。引き換えに、デジタル著作権管理(DRM)による保護をはずし、機種間でのプロプラエタリーな規格を禁じるという、過激な制度である。

違法ソフトの摘発は、企業などで使われている海賊版を摘発することで可能といえるが、個人に対し、違法MP3ファイルのダウンロードを検出することは現在のところ不可能である。この際、違法ファイルの保持が顕著、という指摘でさえ不可能である。ごく一部の対象を取り締まることは、法の下の平等を保障しない。つまり、ある個人を違法ソフトで摘発すると、法律の恣意的な適用となる可能性が高い。

効果的なのは、個人相手ではなく、供給側に規制をかけることである。違法ファイルを置くサイトへの警告は、少なくとも日本では行われている。中国の違法DVDの販売は、中国国内での著作権をも損なうという主張がある。訪中しているサルコジ仏大統領は、中国の著作権について言及したという。中国側の反応は伝えられていないが、効果を期待したい。

フランスで海賊行為者のウェブアクセスを禁じる新制度 (2007-11-26)
フランス政府が、オンラインの海賊行為対策のため特別機関を設置へ (2007-11-26)
訪中のサルコジ仏大統領、人民元上昇を促す (2007-11-26)

火曜日, 11月 20, 2007

米アマゾン、電子書籍参入を発表・新聞や雑誌も入手可能

アップル社の iPod の成功は、デザインや機能もさることながら、魅力的なコンテンツを手ごろな価格で便利に入手できる、という「社会的要因」によるもの――という認識が、電子機器メーカーの経営者陣にあるかどうかは知らないが、他のMP3プレーヤーと「競争にならない」市場を作り出したアップル社の目覚しい発展は、技術を持つ各社が消費者の利便性を考えて「もう少し政治的に連動することができたら」可能である市場の開拓への感慨をもたらすものである。

このたび米アマゾンは、電子書籍に参入するという。有償で電子ブック「キンドル」を販売し、コンテンツをネット配信するという。価格設定は、書籍で9.99ドル、新聞が月5.99~14.99ドル、雑誌が月1.25~3.49ドル。OEMはHon Hai Precision Ind. Co., Ltdといい、ネット回線のキャリアはSprintだという。創業者でCEOのジェフ・ベゾス氏は、「思いついたら60秒」で本を入手できるメリットを語っているという。

ここで、電子化された書籍など、素直にデスクトップで読めばいい、というナイーブな意見の持ち主には、著作権がらみのコンテンツの利用法についての考慮を要請するものである(笑)。プロの情報を、正規ルートで入手する方法というのが、現在のインターネットでは実現していない現状があるからである。そして、さらに価格設定を含め、利便性を最優先し、著作権保護をも可能にする米アマゾンのマーケティング手法と、iPod の成功を考えて欲しい。

電子ブックで先行するソニーなどは、ネットからダウンロードして「貸本」が読める、「リブリエ」を発売していた。米国では、電子ブックリーダーとして現在も販売している。性能比較しているサイトがあるが、技術屋の物悲しさを覚えるように思う。リブリエを実践で使う利用者にとっては、投資してもいいと思わせる有益な情報が、支障なくタイムリーに入手できることが、デザインや機能より優先する、最大の懸念であるからである。

トラブル・フリーな既製品をブラックボックスで販売するのは、日本企業の得意技とされている。しかし、そこには消費者の利便性という決定的な要素が軽視されているように思える。消費者の利便性の本当の意義とは、企業による人権侵害にも似たサービスの強要を言うのではなく、あくまで「社会的」なメリット、最大多数の幸福を目指したものだという面を強調したいものである。

アマゾン・コム、書籍用の電子端末発売 (2007-11-20)
米アマゾン、電子書籍参入を発表・新聞や雑誌も入手可能 (2007-11-21)
Amazonの電子ブックリーダーKindle公開、399ドル (2007-11-18)
Front company and OEM for Amazon Kindle is… (2007-11-19)
Amazon Kindle vs. Sony Reader (2007-11-19)

火曜日, 11月 13, 2007

中国人ジャーナリスト逮捕事件、ヤフーが和解を決定

米ヤフーは、中国当局に提供した情報によってジャーナリストが拘束された訴訟で和解を決定したと発表したという。国境なき記者団によると、ヤフーが中国当局に提供した情報により、「ネット上の体制批判者」とされる少なくとも4人が禁固刑を受けているという。

中国人ジャーナリスト逮捕事件、ヤフーが和解を決定 (2007-11-14)

木曜日, 11月 08, 2007

中国当局への情報提供、米公聴会でヤフーCEOに批判

メロドラマのようだ、と思ったのは、ヤフーに対する米上院委員会の茶番である。ちょっと面白いので、リンクをたどって見てみると、「いやがらせ」というのは実は法的処置をしなくてすむように、米国IT企業への弁護だということが分かる。ほら、われわれも黙ってみてるわけじゃない、と有権者に訴える目的の、「金の絡まない」(=企業にとっては時間つぶし以外の意味を持たない)制裁である。

中国当局への情報提供、米公聴会でヤフーCEOに批判 (2007-11-8)

火曜日, 11月 06, 2007

画像を壁紙に設定する

コードを直接ネットに載せると、「恥をさらすようだ」という意見が(笑)あるが、くだらぬことに時間を割きたくないプログラマのために、画像を壁紙にするコードを載せておく。

あまり誇れるコードでもない、というのは、情報がなくてBMPの一時ファイルにする方法しか見つからなかったせいで、ある画像を画面の大きさにして壁紙に設定するだけのコードである。

なにかの役に立つかどうか分からないし、「いちおう」などと照れる必要もないだろうが、以下がそのコードである。

void CMyView::Setasdesktopbackground()
{
CImage image;
int screenWidth=::GetSystemMetrics(SM_CXSCREEN);
int screenHeight=::GetSystemMetrics(SM_CYSCREEN);
int bpp=m_pImage->GetBPP();
if(image.Create(screenWidth,screenHeight,bpp))
{
HDC hDC=image.GetDC();
SetStretchBltMode(hDC,HALFTONE);
m_pImage->Draw(hDC,0,0,screenWidth,screenHeight);
CString fileName=L"c:\\Windows\\Web\\Wallpaper\\background.bmp";
HRESULT res=image.Save(fileName);
image.ReleaseDC();
if(!FAILED(res))
SystemParametersInfo(SPI_SETDESKWALLPAPER,NULL,
(PVOID)fileName.GetBuffer(),SPIF_UPDATEINIFILE);
}
}

日曜日, 11月 04, 2007

MFC:プリンタ印刷をカスタマイズ

先日、MFCライブラリを使ってプリンタ印刷をカスタマイズする機会があったので、気づいたことを書いておこうと思う。

MFCでは、CScrollViewなどCView派生クラスを使えば、印刷はCView::OnFilePrint()をメニューに登録し、呼び出すだけで印刷ができる。この際には、OnPreparePrinting()を再定義してDoPreparePrinting()の一行を記述する必要がある。CView::OnFilePrintPreview()を使えば何を変更することもなくプレビューができる。

縦横(Portrait/Landscape)など印刷する紙の向きなどカスタマイズする際には、CWinApp派生クラスで定義されている、m_hDevModeを変更する必要がある。m_hDevModeは外部からアクセスできないため、CWinApp派生クラスで値を変更せねばならない。つまり、このようなコードを書かねばならない。

void CMyApp::SetOrientation(short orientation)
{
CPrintDialog printDlg(FALSE);

BOOL bRet=GetPrinterDeviceDefaults(&prinDlg.m_pd);
if(bRet)
{
DEVMODE FAR *pDevMode=(DEVMODE FAR *)::GlobalLock(m_hDevMode);
pDevMode->dmOrientation=orientation;
::GlobalUnlock(m_hDevMode);
}
}

CView派生クラスでは、DoPreparePrinting()を呼び出す前にCWinApp派生クラスで定義された上記のSetOrientation()を呼ぶと、紙の向きがカスタマイズできる。

BOOL CMyView::OnPreparePrinting(CPrintInfo* pInfo)
{
int imageWidth=m_pImage->GetWidth();
int imageHeight=m_pImage->GetHeight();

CPhotoAlbumApp* pApp=(CMyApp*)AfxGetApp();

short orientation=DMORIENT_PORTRAIT;
if(imageHeight<imageWidth)
orientation=DMORIENT_LANDSCAPE;

pApp->SetOrientation(orientation);
return DoPreparePrinting(pInfo);
}

上記のコードでは、m_pImageで指定されているCImageの縦横の長さに応じて、デフォルトでの紙の向きが指定される。

流れとしては、OnFilePrint()では、OnPreparePrinting()が呼び出され、OnPreparePrinting()を再定義してDoPreparePrinting()を呼び出すと、そこではDoPrintDialog()が呼ばれ、その際にはCWinApp派生クラスのm_hDevModeが指定されるので、OnPreparePrinting()においてDoPreparePrinting()の前にm_hDevModeを指定することになる。

Qt: 外部プログラムを起動する

  Qt/C++ のアプリは、外部へ直接アクセスできます。これはネットアプリでは不可能な Qt のメリットです。 外部プログラムを起動することもできます。QProcess::startDetached() を使うと独立したプロセスを立ち上げることができます。 この QProces...