2012年1月29日 (日)

LOOX U/C30でUbuntu Live CDを起動

LOOX U(のAtomの機種)はGMA500グラフィックスが鬼門でイマイチLinuxがちゃんと動きませんでしたが、今年の4月リリース予定のUbuntu 12.04 LTS (Precise) では、GMA500が正式サポートされる模様。

アルファ版を試したところ、起動手順を乗り切ればちゃんと動くことを確認しましたので、その手順を紹介します。(LOOX U/C30で試していますが、Atomを搭載した LOOX U なら他の機種でも同様と思います。また VAIO など他の GMA500 ノートでもいけるかも。)

  1. Ubuntu 12.04 Alpha 1 をダウンロード。(http://cdimage.ubuntu.com/releases/precise/alpha-1/ から Desktop CD の x86 (32ビット) 用を。) また、USBメモリからブートするため、Universal USB Installer をダウンロード (http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/)。
  2. Windows で Universal USB Installer を起動。Ubuntu 12.04 は選択肢にないので、一番下の Try Unlinsted Linux ISO (New Syslinux) を選択して、ブート用USBメモリを作成。(私の場合10分くらいかかりました。USBメモリの性能次第ですが。)
  3. LOOX UにUSBメモリを取り付けた状態で再起動。BIOS起動画面で ENTER を押し、「起動メニュー」を使ってUSBからブートする。
  4. じっと待つ。テキスト画面→グラフィック画面→テキスト画面→グラフィック画面と何回か画面モードが切り替わりながら Ubuntu 12.04 がブートストラップする。キーボードやマウス類には触らずに待つ。
  5. ついに(私の場合約3分かかる)、テキスト画面になって、「Welcome to Ubuntu Precise ...」から始まるメッセージが表示され、その数秒後にシェルのプロンプトが出る。その後すぐに画面がクリアされテキストカーソルが左上に出た状態で沈黙する。
  6. そこで、Ctrl-Alt-F1を押す。すると、画面クリア前の「Welcome to Ubuntu Precise」の画面に戻る。
  7. シェルのプロンプトに対して、以下のコマンドを入力。(キーボードがUS配列になってしまっているので、“_”は、“=”を入力するつもりでキーを押す。)
    sudo rmmod poulsbo ; sudo modprobe psb_gfx ; startx
  8. 十数秒で X が立ち上がり、さらに待つと Ubuntu の Unity Desktop になる。この状態でUbuntu 12.04 の Live 環境を試せる。
  9. 使い終わってデスクトップをシャットダウンすると、OS自体はシャットダウンされずにシェルのプロンプトに戻ってしまう(このとき、コンソールの字が小さくなっている)ので、以下のコマンドを投入。
    sudo shutdown -h now

ハードディスクにインストールした場合は、/etc/modprobe.d/ 配下に
blacklist poulsbo
を入れておけば、難しいことをやる必要がなくなる、はず。(実は私はまだ試していません。ハードディスク (SSDに交換しちゃったけど) に余裕が無くて、Linux パーティションを作れない…)

| | コメント (0) | トラックバック (0)

2011年12月10日 (土)

自動Windows Updateが終わらない

Windows 7で、いろいろインストールしたり変更したりして、手動でWindows Updateした。再起動後、もう少しいろいろやって、それで電源を切ろうとしたところ、「シャットダウン」にアップデートあり印が出ていた。

よくあることなので、インストールして電源断を選んだら、… 終わらない。

シャットダウン画面で「コンピューターの電源を切らないでください。更新プログラムをインストール中(1個中1個目)」という表示になってから、そろそろ4時間経ちます。いくらなんでも長すぎますよねぇ。ディスクアクセスをしている気配もないし。

ブチっと電源切るかなぁ。でも、さすがにこのタイミングは怖いなぁ。

とりあえず一晩放置してみますか…。

追記: 一晩寝て起きたら、無事に終わったらしく電源が切れていました。昨日の17時ころにアップデート適用開始して、ブログに書いたのが21時ころ。その後、午前1時くらいまで起きていましたがそのときはまだ終わっていませんでした。いったい何時間かかったのだろう。

| | コメント (0) | トラックバック (0)

2011年11月 3日 (木)

VC++ Express 2010にSP1を適用したらx64コンパイルできなくなったでござるの巻

私は、Visual Studioは買ってなくて、もっぱらExpressを使っています。最近のメインはVisual C++ Express 2010。Visual C++ Expressは、それ自身では32ビットコンパイルしかできないのですが、Windows SDKをインストールするとx64とかItaniumとかのコンパイルもできるようになります。

そうやって、Visual C++ Express 2010でx64バイナリを作っていたのですが、先週末から急にx64コンパイルができなくなってしまいました。コンパイルしようとすると、次のようなメッセージが出てとまってしまうのです。

Error: The "ConfigurationGeneral" rule is missing from the project

また、x64用のプロジェクトのプロパティを表示しようとすると、よくわからないダイアログが出て、プロパティを参照できない状態にもなってしまいました。

ずいぶん困ったのですが、結局これは(タイトルにも書いたとおり)Visual Studio の SP1 が原因だったようです。コンパイルできなくなっていることに気づく数日前に、Windows UpdateでVisual Studio 2010 Service Pack 1というのが来ていたのであまりよく考えずに適用したのですが、これが敗因でした。

Visual C++ Expressには32ビット版のコンパイラしか入っていないのですが、Windows SDKには、Visual C++のコンパイラ本体がフルセット(32ビット、x64、Itanium)含まれていて、だから、Windows SDK入れるとVisual C++ Expressでx64コンパイルができるようになるわけです。Visual Studio 2010 SP1は、C++コンパイラ本体も更新するのですが、どういうわけか、Visual C++ Expressに含まれる 32 ビットコンパイラだけを更新し、Windows SDKがインストールしたx64コンパイラは更新せずに放置する様子。このためx64コンパイラのバージョンが合わなくなっていたのでした。

売り物のVisual Studioにはx64用のコンパイラが入っていて、SP1は当然そのコンパイラは更新するはず。Expressの環境ではx64コンパイラがインストールされていても更新しないというのは、嫌がらせの域ですね。

最悪だったのは、VS SP1のアンインストールができないこと。

コントロールパネルからVisual Studio 2010 SP1 のアンインストールを選ぶことはできるのですが、ダイアログが出て「SP1をアンインストールすると、Visual Studioが起動できなくなって、SP1の再インストールもできなくなるけど、いいですか?」みたいなことを言われて。

そんなの、いいわけがない。

一瞬目の前が真っ暗になりましたが、System Restore(システムの復元)を使ってSP1適用前まで戻すことで、なんとか復旧できました。

マイクロソフトから何か対策が出ると信じて、SP1は適用せずに待つしかなさそうです。

| | コメント (1) | トラックバック (0)

2011年10月25日 (火)

Vectorにも置いていただきました

数ヶ月前に作っていたMobiHandlerと、先日公開したPDF Thumbnail Trimmerを、Vectorに置いていただきました。

Kindle持ってる人は日本語圏にはあまりいないと思うので、MobiHandlerの方は埋もれてしまうでしょうが、PDF Thumbnail Trimmerの方はそれなりに需要があるんじゃないかと思っています。(それで登録したのですが。)

それで、初めてVectorに登録したのですが、ソフトの登録画面に「Windows 95/98で動くか」みたいな選択肢があって絶句しました。95で動くかどうかなんて、そんなこと考えたこともありませんでした。Windows 2000ですら、サポート打ち切りになっている時代に。さすが伝統あるサイトだけのことはありますね。

| | コメント (0) | トラックバック (0)

2011年10月21日 (金)

Windows Vista/7でPDFのサムネイル(縮小版)表示を改良

Windows Vista以降では、デスクトップのファイル表示はサムネイル(縮小版というかライブアイコンというか)が普通になっています。

Adobe Readerをインストールすると、PDFファイルもサムネイル表示になりますが、上下または左右に余白ができて情けない感じになってしまいます。これを取り除くプログラムを作りました。

こんな感じ。(左が使用前、右が使用後。画像クリックで拡大。)

Ss
なお、おまけ機能として、64ビット対応も入れました。64ビットウィンドウズだと、PDFのサムネイル(縮小版)表示はうまく動かないことが多いのですが、それを調停して、64ビットでも確実にサムネイル表示ができるようにします。

例によって SkyDrive に置いてあります。ダウンロードページにアクセスし、PDFThumbTrimmer-1.0.7-setup.zip というファイルをダウンロードしてください。解凍すると中にPDFThumbTrimmer-setup.exeというファイルが入っていますから、これを実行します。するとインストールが始まります。(なお、ファイル名のうち".zip"とか".exe"の部分は、設定によっては表示されません。)PDFThumbTrimmer1.0.7-src.zipにはソース一式が入っています。普通は、ソースをダウンロードする必要はありません。

このプログラムはとても小さい(ダウンロードファイルは61KB、プログラムの本体は13KB)のですが、なぜかというと、自分でサムネイルを作っているわけではなくて、Adobe Readerが作るサムネイル画像を加工しているだけだからです。このため、単独では動作しません。あらかじめAdobe Readerをインストールしておく必要があります。

と、いうことで、PDFのサムネイルがきれいに表示されずに困っているかた、お試しください。

追記: このプログラムはWindows Vista以降専用というわけではなくて、Windows XPでも動きます。でも、Windows XPではあまり意味ないんですよね。デスクトップにはサムネイル表示できないし、フォルダビューだと必ず正方形の枠がついちゃし。

| | コメント (0) | トラックバック (0)

2011年9月25日 (日)

iriver Story HD買いました

Story HDというのはMP3プレーヤーで有名な韓国のiriver社が欧米で販売している電子書籍リーダー。これですね。日本では未発売。日本でも売ってるCoverStoryとは別。

すでに日本語で読めるレビューもいくつかあるし、そういうレビューを読んでもわからず、実際に購入して初めてわかったことだけを書いておきます。

US版とヨーロッパ版

iriver Story HDには「2種類」あります。WiFi対応版とWiFiなし版。US版とヨーロッパ版と言うこともある。つまり、アメリカではWiFi版しか売っていず、ヨーロッパではWiFiなし版しか売っていない。iriver社自身はヨーロッパ版のことをBasic Modelと呼んでいる。WiFi以外の主要な機能差は、US版はGoogle eBooks対応だが、ヨーロッパ版はそうじゃないという点。(ヨーロッパ版は非対応と言う人と、Google eBooks側がヨーロッパ居住者をサポートしないだけでStory HDの問題じゃないという人がいて、よくわからない。)

私は、違いがよくわからないままに、アメリカから買う方が楽だったのでUS版を購入。でも、これを使いながら、ヨーロッパ版のレビュー記事と比べていて気づいたのは「US版とヨーロッパ版は、まったく別物らしい」という点。

たぶん、ハードウェアは、純粋にWiFiの有無なんでしょう。でも、ソフトが違う。WiFiにもGoogleにも関係ない部分もいろいろ違っている。たとえば、PDFを読んでいるときに「OPTION」ボタンを押すと出るメニュー。私のUS版では、こういう内容になっている。

Buy This Book
Go to Page
Add Bookmark
Dictionary
Search
Bookmark List
Table of Contents
Adjust Text Size
Reflow On

でも、ヨーロッパ版では、こういう内容らしい。

Move Page
Add Bookmark
Search Dictionary
Bookmark And Word lists
Table of Contents
Dithering Off
Reflow On
Bold Off

Go to Page と Move Page は、表現が違うだけで同じ機能にも思えるけど、まったく対応しないメニューもある。Bold って何? みたいな。

あと、Languageの設定をJapaneseにするとメニュー等が日本語表示になる、という説明を見るが、これもヨーロッパ版特有のようだ。US版では、LanguageはEnglish固定で変更できない。

皆さんレビューを読むときには、どっちの話をしているのか注意しましょう。(私の場合は、特に断らない限りUS版です。)

バージョン

ソフトウェア(ファームウェア)にたくさんのバージョンがある模様。それで、US版とヨーロッパ版は、ファームが別。(上で書いたような差があるのだから、ファームが共通なはずはないが。)

ヨーロッパ版は、パソコンでアップデートをダウンロードして、USBでファイルをコピーして、という手順が必要ですが、US版はWiFi経由の自動アップデート機能があり簡単。しかし、そのためか、US版のバージョンアップの状況がよくわかりません。

iriver社のウェブサイトを見る限り、US版(wifi版)の最新ファームは9月9日リリースの1.19のように思えるのですが、実は私のStory HDは1.21だったりします。

それで、ホーム画面にrelease_noteという書籍(実際は単なるテキストファイルですが)が登録されているのですが、そこには1.14までしか変更履歴が記載されていないという…。いったい、何なんだ、って感じ。

Google Booksへのアクセス

多くのレビューが、「日本からはGoogle Booksにアクセスできない」「無料書籍のダウンロードもできない」って書いてますけど、実際にはアクセスできて、無料書籍をダウンロードできています。

住所を偽っているわけではなく、私のgoogle accountは @yaoo.co.jp のメールアドレスで登録したものだし、「個人情報」でも「国名」を「日本」にしてある。Story HDのWiFiでGoogle ebookstoreにアクセスすると無料書籍をダウンロードできます。有料の書籍は一覧に登場しないし、ebookstoreのHelpを見ると「... please note that Google eBooks are only available for sale to customers in the U.S. at this time.」って言われる。なので、明らかに、私がアメリカ居住者じゃないことを認識して、その上で無料書籍にアクセスさせているように見えます。

日本の早いレビューアの皆さんの勘違いか、それとも Google がその後方針を変更したのか、よくわかりませんが。

ただ、Amazon Kindle Storeの無料書籍と違い、Google eBookStoreの無料書籍は、あまり魅力的なコンテントとは言えません。少なくとも私には。「これはXX図書館にあった著作権切れの書籍をスキャンしたものです」っていう注釈のついているものばかり。Amazonのような、現代の作家の新作を宣伝用に無料で配る、みたいなのは皆無みたいです。(それとも、そういう無料書籍もアメリカ居住者限定なのかもしれませんね。だって、金出さない(出せない)人に対して宣伝しても意味ありませんから。)

とりあえず、不思議の国のアリス(Alice's Adventures in Wonderland)とか高慢と偏見(Pride and Prejudice)とかダウンロードしてみましたが、まぁ、そういうのしか選択肢がなくて。

電子書籍の一覧表示

HOMEボタンを押すと、いわゆるホーム画面になり、電子書籍の一覧が表示される。(業界では「書架画面」などと言うらしい。私はこの言葉は嫌いなので使わない。)

Story HDでは、一覧表示を「Collection View」と「Folder View」という二種類のどちらかに切り替えることができます。(この用語はUS版。ヨーロッパ版では「Database View」と「Folder View」と呼ばれている様子。)

Folder Viewの場合、USBケーブルでWindowsの外付けドライブとしてアクセスしたときに見えるとおりのフォルダ階層が表示されて、電子書籍ファイルがファイル名で一覧表示されます。Folder Viewでは、一覧で見ることができるのはファイル名だけで、作者名とか Google eBookStoreからダウンロードしたものかどうかとかの情報はわかりません。また、Google eookStoreで「購入」したけれどまだ実際にダウンロードしていない書籍は一覧に現れません。

Collection Viewの場合、Googleで購入した電子書籍がすぐに一覧に追加され、ダウンロードされていない書籍を読もうとしたタイミングで自動ダウンロードされます。(ダウンロードが始まるまでにかなり長い時間がかかるので、少々イラつきますが。)また、一覧表示される名前は、ファイル名ではなくて書籍のタイトルですし、作者名やその他の情報も(ダウンロード前であっても)適切に表示されます。ところが、PCからコピーしたePubやPDFファイルが、デフォルトでは一切表示されません。これは、Collection Viewのデフォルトが「Google eBookStoreで購入した電子書籍だけを表示する」というビューになっているからで、他のビューに変更すれば表示できます。ところがところが、そうやって他のファイルを表示すると、タイトルではなくファイル名が表示され、作者は一律「Unknown」になってしまいます。これは、表示機能がないわけではなく、一度その書籍を選択して画面に本文を表示すると、次からはタイトルや作者名が一覧に表示されるようになります。(なんか、理由がよくわかるような気がしますが。要は手抜きですね…。)

| | コメント (0) | トラックバック (0)

2011年8月24日 (水)

はちゅね追記

昨日の記事に対してさっそく突っ込みをいただきましたので紹介します。

ソースのForm1.csの中にglContrl1_SizeChangedというイベントハンドラがあります。このイベントハンドラは、glControl1(OpenTKが提供する、OpenGLで描画できるコントロール)の初期化が終わらないうちに呼ばれてしまうようで、初期の版ではGLメソッドの呼び出しでNullReferenceExceptionが起きていました。

何か変だと思いつつ、しかたがないので昨日のプログラムでは、Hatyuneインスタンスが作成済みかどうかをチェックするという気持ち悪い方法で回避しているのですが、

実は、GLControlのSizeChangedイベントが、GLの初期化が行われる前に呼び出されるというのはGLControlの仕様なのだそうです。それで、SizeChangedイベントハンドラでは、必ずGLControl.IsHandleCreatedというプロパティを見て、falseなら何もしないで戻るように書くものなのだそうです。

ドキュメントは一通り読んでいるつもりが、そういう記述の記憶はなかったので、どこに書いてあるのと聞いたら「OpenTKのソース中にコメントで書いてある」って…。どうしてそれが仕様ということになるかな。わけがわからないよ

| | コメント (0) | トラックバック (0)

2011年8月23日 (火)

C# でも「はちゅね」

1年半くらい前に「はちゅね」をWindows/Linuxで動かすってのを書きました。あのときは C + GLUT で作っていたのですが。

最近、C# + OpenTK (の OpenGL 部分) というのをいじっていまして、ふと思い出して「はちゅね」を書いてみました。「移植」というより、「参考にして書き直した」感じです。

いつもの通り、SkyDriveのごちゃごちゃっとしたところに置きました。Hatyunes-20110823.zipです。ソース一式とコンパイル済みバイナリが、実行に必要なOpenTKのDLLと一緒に入っています。

.NET というか CLR なので、この zip に入っている Hatyune.exe は、Linux + mono などでもそのまま動いてしまいます。うーむ、すごい。

| | コメント (0) | トラックバック (0)

2011年8月18日 (木)

LINQ

なんだか急にLINQに目覚めました。で、こんなの書いてます。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace ConsoleApplication1
{
    static class Program
    {
        public static IEnumerable<string> AsLines(this TextReader rd)
        {
            for (string line; (line = rd.ReadLine()) != null; )
            {
                yield return line;
            }
        }

        static void Main(string[] args)
        {
            using (var rd = new StreamReader(args[1]))
            {
                foreach (var s in rd.AsLines().Where(s => s.Contains(args[0])))
                {
                    Console.Out.WriteLine(s);
                }
            }
        }
    }
}

LINQですよね、これ…

| | コメント (0) | トラックバック (0)

2011年8月 4日 (木)

UserChoice\Progid

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.EXT\UserChoice というレジストリキーの下にProgidという名前の値があると、その値の内容が拡張子.EXTに対するProgIDとみなされるらしい。HKEY_CLASSES_ROOT\.EXTの@よりも優先して。

ここには、おなじみのEXT_auto_fileというProgIDの他に、Application\program.exeという文字列が設定されることもある様子。こんな\を含んだ文字列は、COMのProgIDとして許されないはずなのだが。

また、このUserChoiceというキーは、ユーザーがエクスプローラーのGUIでデフォルトアプリケーションを変更したときにできるらしいことがわかったが、変更しても常にできるわけでもなさそう。このキーが作られる条件は不明。謎が多い。

MSDNのどこにも、そんなこと書いてない(と思う。ずいぶん探したけど)。googleで探しても、このレジストリキーに関して大勢の人が混乱している様子はわかったが、ちゃんとした説明はみつからない。

ってか、問題になるレジストリキーで探すというのは、答えがわかったからできることで、トラブルの原因を探してるときにはそんな検索は不可能だし。

ってことで、結局、これに起因するバグの解決に2ヶ月以上かかったのでした。

あーあ。

MobiHandlerを試してくれたけど、うまく動いていない人(特に、.azw/.mobiに対応するビューアープログラムを複数種類インストールしていて、デフォルトアプリを切り替えている人)は、いつものSkyDriveのページから、バージョン1.1.1268をダウンロードしてお試しください。上の現象の対策が入っています。

| | コメント (0) | トラックバック (0)

«くださいコピーして登録ウィンドウにキーの下を貼り付けます