コンピュータ12ページ目の日記です

目次

前のページ
2012-02-06 ビデオ圧縮
2012-02-09 Android版ChromeのUserAgent
2012-02-22 経験した中で最大のバグ
2012-03-02 スマホとPCの見分け方
2012-03-12 D/A とガジェット
2012-03-17 windows8
2012-03-19 Windows8 と Wii と AtEase
2012-03-23 仮想ソフト変更
2012-05-07 スマホ購入
2012-05-09 ダライ・ラマとは関係ありません
2012-08-23 サーバー故障
2012-08-27 サーバー故障中間報告
2012-09-03 サーバー修復
2012-09-06 サーバー設定 2012夏
2012-09-25 iMacros
2012-10-12 発掘
2012-12-06 Nexus 7 買った
2012-12-12 nexus 7 と US キーボード
2013-01-05 CMSプログラム更新
2013-01-06 Windows8 導入
次のページ
ビデオ圧縮  2012-02-06 14:10:58  コンピュータ 家族

▲目次へ ⇒この記事のURL

半年前にPCを買い換えたとき、目的の一つに「家族のビデオを圧縮する」ことがあった。


家族のビデオは、miniDV テープで撮ってあったものを、デジタルデータのままPCで吸出し、NAS に置いてある。

しかし、LAN の伝送速度の問題で気軽に見られず、データ容量を小さくしたい、という目的だった。


#保存容量の問題ではない。miniDV テープ1時間分のデータ容量は、およそ 10GByte 。

 1TByte の NAS を使っているので、100本は入るが、そんなに撮ってない。


その後、Picasa にアップロードしてしまったほうが気軽に見れることが判明し、結局再圧縮は行わず。




大学の先輩から、「大学祭のビデオを発掘したので公開する」というメールが来た。

公開、といっても、もちろん関係者のみ。

先輩のサーバーに、パスワードつきでおいてあるから、見たい人はダウンロードするように、との通達。


メールには、「事実上のバックアップ要請」とも書いてあった。

つまり、間違って消えたときに備えて、みんなで分散して持っていろと。


気軽にダウンロードに行って驚いた。

1本 7G の mpeg2 データが、 7本置いてある。しかも、個人サーバーなので転送速度は遅め。


ダウンロードのために PC をつけっぱなしにはしたくない。

幸い低消費電力サーバーがあるので、 wget にダウンロード指示を出しておいて、ほったらかし。



2日後、全部ダウンロードできていたので、内容を「少しだけ」見てみる。

もう、20年も前の画像だ。自分たちが若くて驚いた、初公開時の comet が懐かしかった、という感想はさておき、20年置いておかれた VHS ビデオなので、画質は悪い。時々同期が狂って縦スクロールする。未編集なので、灰色画面が5分続くところもあったりする。


まぁ、このままおいておく必要もないだろう。圧縮してみる。



Freemake Video Converterを使って圧縮。

mpeg4 ビデオ、H.264 圧縮にしてみる。


2時間のビデオが、20分ほどで圧縮完了した。

どうせ元画質が悪いのだからと圧縮率を上げたら、7G が 700M ほどに縮んだ。1/10 だ。




気をよくして、家族ビデオの圧縮に取り掛かってみる。


まずは、SD 画質時代のもの。(DVフォーマット)

DV フォーマットは、MotionJPEG に類似の方法で記録されているため、圧縮率はそれほど高くない。


家庭用ビデオ画像で、特に動きが激しかったりもしないので、「標準設定」で圧縮してみる。

…2.5% に縮んだ。縮みすぎて笑った。


HD 画質のものも圧縮してみる。(HDVフォーマット)

こちらも同じ miniDV カセットを使う(つまり、同じビットレートだ)が、mpeg2 圧縮。

もともと圧縮されているので、それほど圧縮は利かない。とはいえ、20% 程度になった。


しかし、HD 画質だと、圧縮に時間がかかる。

i3 の 3GHz で、大体実時間。


SandyBridge だから、QuickSyncVideo 対応ソフトがあれば、劇的に速くなるはずなのだけど、「圧縮したいものが多すぎて困る」ほどではないので、このままでいいや。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

家族

別年同日の日記

04年 1日30品目

04年 「間違っている」は間違っている

13年 文旦の飾り剥き

15年 最初のゲーム業界仕事

16年 やなせたかし 誕生日(1919)

18年 データバックアップ

18年 インフルエンザ


申し訳ありませんが、現在意見投稿をできない状態にしています

Android版ChromeのUserAgent  2012-02-09 16:57:07  コンピュータ

▲目次へ ⇒この記事のURL

Android 版の Chrome が発表になった。



最近、仕事でスマホ用の WebSite を作っているが、「スマホであること」の確認に、UserAgent を利用している。


UserAgent なんて、偽装可能だけどね。

仕事で作っている以上、動作保障しないとならないので、「スマホの標準ブラウザ」以外では見られないようにしているだけ。

偽装して見られても構わないが、動作保障はしない。そういうスタンスを明確にするための UserAgent 制限。



さて、Android の Chrome は「標準ブラウザ」ではないが、気になったので UserAgent を調べてみた。


Mozilla/5.0 (Linux; U; Android 4.0.1; ja-jp; Galaxy Nexus Build/ITL41D) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7


ちなみに、以下が「標準ブラウザ」のもの。


Mozilla/5.0 (Linux; U; Android 4.0.1; ja-jp; Galaxy Nexus Build/ITL41D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30



標準では「Version/4.0」とあるところが、Chrome では「CrMo/16.0.912.75」となっている。

CrMo は Chrome Mobile の略だろう。…クロームモリブデン鋼ではない、と思う。

PC 版の Chrome は、ちょうど今日 ver.17 が出たところだから、少し古いバージョンとなっている。




Google としては、Android と Mobile の両方の文字列が入っているものは、スマートフォンだと考えてほしい、とアナウンスしている

Chrome も、ちゃんとその作法に従っていた。



ということは、このブラウザでサイトが見られることが保障されないといけない?

まぁ、ベータだとわかっているブラウザだから、まだいいか。




目立った動作の違いとしては、スマホ用の meta タグで「拡大動作の禁止」をしているにもかかわらず、拡大できてしまう。

CSS で重ねて表示しているものが、大きくずれて表示されることがある。

…という程度は、すぐに気づいた。


CSS は、PC 版の Chrome とも、Android 標準ブラウザとも、iPhone のブラウザとも違う、ということ。


すぐに気づく程度の「非互換性」がまだある、ということだ。

まぁ、ベータ版という位置づけなので…ね。


google のことだから、今後の頻繁なアップデートで解消されるだろう。



▲目次へ ⇒この記事のURL

別年同日の日記

06年 Roomba を修理

15年 ビル・メンズチの誕生日(1945)

15年 バイトでやった CD-I の仕事


申し訳ありませんが、現在意見投稿をできない状態にしています

経験した中で最大のバグ  2012-02-22 11:30:31  コンピュータ

▲目次へ ⇒この記事のURL

知人と与太話をしているときに、「自分が経験した、最も恐ろしいバグ」の話になった。


僕がこういうときにする話は決まっている。

プログラムを知らなくても、技術話がわかる人には鉄板でウケる。


生々しい話でもあるし、企業秘密でもある。

ゆえにネット上で公開などはしていなかったのだが、もう時効だと思うので(20年も前の話だ)ちょっと書いてみよう。




自分が経験した、と言っても、自分がいた部署の、別チームのプログラムの話。

だから、僕は直接的にはかかわっていない。



まず、「一番恐ろしいバグ」というのは、完成間近のプログラムを一晩エージングテスト(動かし続けて問題が出ないか調べる)しておいて、朝来たら止まっている、というものだ。


画面がブラックアウトしていたら完璧。

どこで、どんな原因で止まったかわからない。


しかも、状況確認の仕組みを備えてもう1度エージングをしたら、…今度はいつまでたっても止まらない。

確実に止まる、ということがわかっているが、その条件がわからず、再現できないのだ。



大抵、エージングテストと言うのは完成間近にならないとやらない。

完成間近なのに、原因不明で、致命的な状況が生じていることだけはわかる。

そして、原因究明がいったいいつになるのかわからない。タイムスケジュールが見通せない。


さぁ、行軍ラッパの音は高らかに鳴った。デスマーチの始まりだ。




しかし、これより恐ろしいバグ、と言うのが存在したのだ。


さんざんエージングも行って、停止しないことが確認された。

少なくともそのつもりだった。


開発部隊の手を離れ、品質保証部隊がチェックする。

ここでも、エージングテストや、想像もつかないような操作でバグが出ないかがチェックされる。


それらの多くの関門を潜り抜け、出荷されたと言うのに…市場に出回ってから「止まりました」報告が次々あがってくる。

これは、悪夢以外の何者でもない。


すでに開発機材がつなげられていない機械なので、何が起きているかは、本当に、まったくわからない。

この状況に比べれば、「朝来たらブラックアウト」のほうが、山のように情報があった感じがする。


使用者に平謝り、当面はリセットで凌いでもらうことにして、すぐに原因を究明、修正バージョンを作る、という作業になる。


まずは停止条件の再現をしたいのだが、この作業を「ノーヒント」で行わなくてはならない。

エージングなら散々したし、思いつく限りの過酷な操作もやったはずなのに、これ以上どんな条件があるのか?


とりあえず、最初の行動は頭を抱え込むことだ。




そして、これから記すのが、自分の経験で最大のバグ。


使用者に平謝りして、リセットを試みてもらうも…再起動しない!

「当面しのぐ」ことができなくなる。いったんは全商品を回収して、返金に応じなくてはならない。


数千万の金を掛けて開発しているのに、評判はがた落ち、修正して再発売しても、買ってもらえるかわからない。


プログラムは ROM に焼かれているし、いったい「再起動しない」っていうのはどういう状況なんだ?

上司から、原因の徹底究明が言い渡される。




まず、原因は割込みルーチン内にあった。


とあるスイッチが何回押されたか、と言うカウントは、「絶対に」取りこぼしてはいけないことになっている。

そこで、このスイッチは割込み信号を起こすようになっており、カウントは割込みルーチン内で行われる。



割込みルーチン、というのがどういうものか、プログラマでない人にもわかるように解説する必要があるだろう。

通常、サブルーチン(プログラムのひとまとまり)と言うのはプログラムの中から呼び出される。


しかし、外部からの操作に対して、現在実行中のプログラムがどのような状況であっても、必ず処理しないといけないような場合がある。

このときに、「割込み」が発生し、実行中だったプログラムは「ひとまず」停止、サブルーチンが呼び出される。



割込みルーチン内では、実行中だったプログラムが、あとで問題なく作業を続けられるように、「割込み時の状態」を保存することからはじめる。


割込みルーチン内で「破壊」してしまうレジスタ(変数みたいなもの)などを保存し、作業終了後に元に戻してから「割込み終了」するのだ。

この作法を守らないと、プログラムはおかしな動作をすることになる。




このとき使用していた CPU は NEC の V60 だった。

この CPU は非常に…信じられないほどの高機能で、「指定アドレスから始まる、指定された終端文字をもった文字列が、別に指定されたアドレスから、指定されたサイズまでのメモリ内の、どこに存在しているか検索する」などの動作が、1命令で完了した。


#と思う。少なくとも文字列操作命令はあったが、記憶によるものだから、少し違うかも。


さて、V60 の文字列操作命令、非常に高機能だが、「暗黙のうちに、2つのレジスタを破壊する」という問題があった。文字列だから、ソース側とディスとネーション側で、2つのポインタが必要になるためだ。


CPU インストラクションには書いてあったが、問題となった割込みルーチンでは、割り込み冒頭の「状態保存」で、暗黙に破壊されるレジスタを保存していなかった。

にもかかわらず、割込み内で文字列操作命令を使用した。


そのため、割込み終了後にプログラムの動作がおかしくなり、「暴走」したのだった。




暴走したのはよいとして、なぜリセットまで効かなくなったのか?


このプログラムを動作させていた基盤には、プログラムのデッドコピーを防ぐ仕組みがあった。


この基盤では、プログラムの ROM は、CPU から直接呼び出されるようにはなっていない。

間に、スクランブル回路が入っているのだ。


スクランブル回路は、入ってきたデータに対して一定のビット演算を施し、出力する。

この回路が、データバスに挟まっていた。


スクランブル回路の中には、小さな PROM が入っていた。

PROM とは、一度だけ書き込める ROM だ。ここにキーが書き込まれていて、ビット演算の内容を制御している。



つまり、基盤から ROM を抜き取ってコピーしても、スクランブルが掛かっているので他の基盤で動作させることができない。

スクランブル回路は、一般には市販されないカスタム IC だった上、プログラムごとにキーが変更されるので、動作が推定できない。



しかも、ここからがすごい。

スクランブル回路だけ取り出されて、散々実験されて動作を推定されるのを避けるために、スクランブル回路には「正しい手順でアクセスしないと自爆する」仕組みが付けられていた。


#スクランブルは、状況によって解除したりもできた。

 (ROM からのデータ読み込みでスクランブルが解除されるのはよいが、メモリマップド I/O の読み込みでビット演算されてしまうのは余計なお世話)

 そのため、スクランブル回路自体にアクセスして、動作を変更できた。


自爆、といっても本当に爆発するわけではない。PROM の内容を破壊してしまうのだ。

こうなると、正しいキーが失われるので、外部からの動作推定は不可能になる。




まとめると、つまりはこういうことなのだ。


V60 の命令インストラクションには癖があり、「暗黙の」レジスタ破壊が起こることがある。

しかし、それに気づかなかったプログラマが、割込みルーチン内で破壊されるレジスタを保存しなかった。


該当レジスタは「たまたま」あまり使用されておらず、割込み時の破壊が問題とならなかった。

しかし、絶妙なタイミングで割り込みが起きた場合だけ、割込み後にプログラムがうまく復帰できず、暴走してしまった。


そして、暴走したプログラムは、スクランブル回路に「おかしな方法で」アクセスしてしまった。

スクランブル回路は異常を感じ、自爆。基盤は2度と起動しないようになった…




原因はわかった。

報告を聞いて、原因究明を命じた上司は、責任者を探すように命じた。


責任者は、破壊されるレジスタを保存しないような割込みルーチンを書いた奴だろう。

実際、返金で億単位の損害が出てしまったのだ。誰かが責任を取らなくてはならない。



この割込みルーチンは「絶対に取りこぼしてはいけない」重要信号を扱うものだった。

信頼性が重要なので、はるか以前に書かれたルーチンが使い続けられていた。

(いくつものプログラムで使われていたにもかかわらず、いままで「たまたま」問題が出なかったのだ)


最初に使われたプログラムはどれか?

古いプロジェクトの資料が引っ張り出され、調査されたところ…

プログラムを書いたのは、原因究明を命じた上司だった。



このことが上司に伝えられると、それまでこの件に対して厳しかった上司の態度は一変。



「まぁ、人間だから間違えることもあるよな。ははは…」


…そして、問題は有耶無耶のうちに葬り去られたのでした。



#製品は再発売されたが、悪評がついてしまったためほとんど売れませんでした。











2014.9.27追記

僕が過去にかかわった仕事の裏話なんかを、今後少しづつ出していこうと考えています。

そのために必要なので、笑い話をつまらなくしてしまうのですが、お断りを追記しておきます。


この記事書いたときには、ウケを狙う意味もあって、嘘は書いていませんが事実も伝えていません。

まるで上司が犯人で、問題を握りつぶしたように書いていますが、事実はそうではありません。



確かに上司が過去に書いたプログラムで問題が出たわけですが、書かれた時点では「暗黙の破壊」は承知の上です。


暗黙に破壊されるレジスタは、いつうっかりミスが起きるかわかりません。

「使わない」と言うルールでコーディングを行っており、一番確実な対処法でした。



ただ、上司がそのプログラムを書いた時点では、そのプログラムが「重要部分だから手を加えないで使いまわす」ようになるとは考えていません。


ただ、必要だったから書いただけのプログラムです。

だから、使い方の説明を詳細に残したりもしていません。



後に、別のプロジェクトでこのプログラムが流用され、それでも当初は「暗黙に破壊されるレジスタは使わない」作法が守られていたようです。


やがて、いつの間にか重要ルーチンだから手を加えてもならない、となっていき、手を加えてはならないから中身を詳細に調べることもなく、「暗黙に破壊されるレジスタを使ってはならない」という作法も忘れ去られます。


そして、問題のバグが生じたわけです。



当初は小さなプログラムだったため、十分に少人数でプログラムを作っていた、というのも、「暗黙に破壊されるレジスタは使わない」という作法が守られる理由となっていたでしょう。


しかし、プログラムが肥大化し、多人数で作るようになると、お互いの分担部分ごとで、守らねばならない作法があることが徹底できなくなっています。

過去のプログラムを使いまわしただけで、誰も把握していないプログラムが入り込んでいるとなるとなおさらです。



ここまで説明するとわかっていただけるかもしれませんが、上司が自分の責任と判ったので有耶無耶にした、というよりは、「誰の責任でもないとわかったので、誰も処分しなかった」と言うのが正確な表現です。


大問題でしたから、会社からは責任の明確化を求められていたでしょう。

誰かに責任をかぶせ、クビにしてしまえば上司の立場は守られます。でも、そうはしなかった。


笑い話としては上司の責任にした方が面白いのでそう書きましたが、本当は全く逆。

部下を守るために、上司はあえて自分の立場を難しくする判断を選んでいるのです。



この上司、この件に限らず、自分の立場が多少悪くなっても、必要なことだと判断したら実行する方でした。

その点、良い上司だったと思っています。


以上、僕が今後過去の仕事を明らかにすることで、上司が誰か推察されて彼にあらぬ疑いがかかる前に、釈明しておきます。





ついでになってしまうけど、上の話書いて公表した後で、やっぱりというか案の定というか「ココに書かれている製品は何だろう」と調べている方がいました。


で、その方が調べていた痕跡を公開しているので追いかけて、自分の記憶の曖昧さも判りました (^^;;

大体の話の筋としては正しいのですが、ハードウェアの仕組みとか多少間違って書いております。


却って煙に巻く効果があり、製品が何であるかは特定されておりませんでしたが、今後いろいろ書くうちに、わかってしまうとは思います。


その際に「ハードウェアの記述が間違えている」と思われるかもしれませんが、記した通り自分が経験したバグではありませんし、自分が後に扱ったハードウェアとの混同もありました。この点についてはお詫びいたします。



▲目次へ ⇒この記事のURL

別年同日の日記

03年 美術と芸術

05年 確定申告

10年 八景島

14年 雪・科学館・おゆうぎ会

16年 スティーブ・ブリストー 命日(2015)

19年 完全停止


申し訳ありませんが、現在意見投稿をできない状態にしています

【SP】 組み込み系でエージングテストのバグが出ると大変ですよね。同じ苦労をした事があります。 (2012-03-07 06:04:04)

スマホとPCの見分け方  2012-03-02 15:24:33  コンピュータ

▲目次へ ⇒この記事のURL

ちょっとした Hack。


ガラケーとかフィーチャーフォンとか呼ばれているものでは、IP アドレスを見ることでPCと見分けが可能だった。

しかし、スマホでは WiFi アクセスが可能なため、見分けることができない。


一応、UserAgent で見分けることはできる。

でも、UserAgent なんて偽装も簡単だ。



そこで、こんな方法を考えてみた。

if(typeof(ontouchend)=='object') スマホ用の処理 ;

単純明快。


typeof( ~ )


に、メソッドを書いている。本来は window.ontouchend だが、javascript の規約に従い、window は省略可能。


onTouchEnd メソッドは、PC にはないが、Android / iPhone には存在する。

onTouchStart でも、onTouchMove でも、onTouchCancel でもいいが、End が一番文字数が少ないので、これを使用した。


で、メソッドが存在すれば、typeof( ) で object という文字列が帰るので、スマホであることを確認できる。

存在しなければ undefined という文字列が帰るので、PCであることが確認できる。



IP アドレスチェックのように、サーバー側 CGI で完結する仕組みではない。

でも、これで「特別な」パラメーターを送る、など工夫すればよい。




問題点:

IP アドレスに比べれば、やっぱり偽装は可能だ。

でも、UserAgent よりは偽装しにくいだろう。


UserAgent を使えば、スマホとタブレットを見分けることも可能だが、上記の方法は区別できない。

UserAgent と同時に使って、偽装されていないか確認するなど、その程度の使い方にとどめるのがよいと思う。




▲目次へ ⇒この記事のURL

関連ページ

Programming Tips

別年同日の日記

03年 土砂降りの中

10年 おゆうぎかい

13年 冒険遊び場

15年 ワンサガン


申し訳ありませんが、現在意見投稿をできない状態にしています

D/A とガジェット  2012-03-12 13:08:31  コンピュータ

▲目次へ ⇒この記事のURL

ちょっと昔話。OldGoodComputer ミニ。


僕は、Mac の OS としては System6 が一番好きだった。

知っている人がほとんどいない古いものだが、知っている人には「それなりに」賛同してもらえる。


Mac は、よく「Window システムの元祖」的に言われる。

まぁ、それはそうなのだが、Mac の Window というのは、最初はそんなにたいしたものではなかった。


だって、マルチタスクじゃないんだから。

Window が出ている、と言っても、1つのアプリケーションだけだ。

アプリケーションが複数の Window を開くことはあるかもしれないが、画面が Window だらけでごちゃごちゃ、と言うような事態にはならなかった。



マルチウィンドウシステムを初心者にいじらせると、間違えて「現在使用しているのとは違う」アプリの Window をクリックしてアクティブにしてしまい、見ていたウィンドウが裏に回って消えたことで混乱する、ということになりやすい。


System6 では、このようなことは起こらなかった。

だってマルチタスクじゃないんだから。


これが、僕が System6 が好きな理由だ。

Mac が目指した「文房具としてのコンピューター」、初心者でも気軽に使えるものだった。




…蛇足ながら付け加えておけば、System6 はマルチタスクではなかったが、マルチジョブに「できた」。


デフォルトでは、本当にシングルタスク、シングルジョブである。

でも、Multi Finder を使うと、複数のアプリケーションを同時に起動できた。(マルチジョブ)


マルチジョブ状態でも、動作しているプログラムは1本だけ(シングルタスク)で、ユーザーがタスクを切り替えると、別のプログラムが動き始めた。


実は、CPU が非力な時代はこちらのほうが効率がよかった。



System7 以降は、OS が一定のタイミングででタスクを自動的に切り替えていく「マルチタスク」になった。

同時に、先にあげた「アクティブウィンドウ以外をクリックして混乱」という現象が起きるようになり、初心者向けではない「パソコン」になってしまった。




さて。

Jobs は、Mac を「文房具」として設計した。

オフィスのデスクに置かれた、新しい文房具。コンピューターを知らない人でも気楽に使える。


その後、Sculley によって Jobs は Apple から追放。

Sculley が Mac を「再設計」させる過程で、より普通の PC になった。


Windows は、最初から Mac を真似ていた。

…というと語弊があるか。Gates だって alto の存在は知っていた。


でも、Windows は Alto を真似したものではなく、Mac を真似したものだ。

そして、System7 と同じ失敗をしていた。


おそらく、Gates はこの失敗を理解していた。

でも、どうすればうまくできるのかはわかっていなかったように思う。




Jobs が Apple に復帰してからは、多くの人が知っているだろう。

iPhone で、GUI を「一新」した。


iPhone の GUI は、 System6 と非常によく似ている。

画面は、1つのアプリケーションが占有する。間違って別のウィンドウをアクティブにしてしまう心配は無い。



iPhone 以前、Gates は、スマートフォン向けにも Windows を提供していた。

Windows といっても、PC との互換性は無いものだが、小さな画面で、タッチパネルで操作するには…ずいぶんと使いづらいものだった。


しかし、iPhone 以降、スマートフォン向け Windows は GUI が一新され、iPhone 風になった。

そして、普通の PC 向けの Windows も、次の Windows8 で同じ GUI に統一されることになった。



つまり、ここに来てやっと、自分が「一番使いやすかった」と思っている、System6 に、時代が追いついてきたことになる。

いや、追いついてきたのではなく、ぐるっと一周回ってきたのかな。


ただ同じ地点に着たのではなく、螺旋階段のように上のステップに移っているが。

今度は、ちゃんとしたマルチタスクだ。




ところで、System6 には、デスクアクセサリ( D/A )という仕組みがあった。

シングルタスクの System6 で、「ちょっとだけ」違う仕事をさせるための、小さなプログラムのことだ。


D/A は、アプリの起動中でもいつでも呼び出せた。

標準では電卓とか、時計とか、スケジュール帳とか、メモ帳とかが用意されていたけど、サードパーティ製の高機能な D/A なんかもあった。


D/Aは、いつでも呼び出せるようにするため、特殊な形式でプログラムする必要があった。

でも、System7 になってからは、マルチタスクになったため D/A は無くなった。

同等機能のプログラムが「アプリケーション」として用意されていたので、問題は無かったけど。



今は、画面が広いので、こうした「ちょっとしたツール」は、デスクトップガジェットとして表示しっぱなし、と言うものが多い。


ガジェットも、普通のプログラムとは仕組みが違う、という点では D/A と似ている。

ガジェットは、HTML と Javascript でできている。つまり、小さな WEB ページみたいなものなのだ。


(ガジェット、という仕組みを最初に提唱したのは Mac OS X だが、その元は「OS と WEB ブラウザの融合」を図った WinXP + IE に行き着く。

 さらに、XP + IE で OS と WEB ブラウザが融合したのは、WEB ブラウザは将来 OS になる、という Netscape の野望を逆から攻めるためだ)



D/A の「いつでも動かせる」と言う仕組みは、マルチタスクと言う形に進化し、D/A は発展的に消滅した。

同じことが、今起ころうとしている。


Windows8 では、HTML + Javascript で、「普通の」アプリケーションを作ることができる。

ガジェットだけが特別な時代は終わり、発展的に消滅するのだ。



でも、これはちょっと話が違う。

「常に画面の隅にあって便利」というものが、「画面はアプリケーションが占有」というコンセプトにしたがって、1つの画面に広げられてしまうのだ。


ちょっと時間を確認するために、画面を切り替えて時計を探さなくてはならない。

ちょっと天気を確認するために、画面を切り替えて天気予報を探さなくてはならない。



すでにマイクロソフトは、ガジェットの「消滅」に向けて準備をしている。


公式に用意されていたガジェットライブラリのページはすでに閉鎖されており、再インストールなどで「今まで使っていた便利なガジェット」を失うと、もう入手することが出来ない、と言う可能性がある。


(そういう問い合わせが、Q&A ページに多数掲載されている。

 ガジェット作者のページで配布されている場合なども、人気があるがジェットほどマイクロソフトのライブラリページを紹介するリンクが多いため、公式ページが埋もれてしまって探せない、という悲劇が起きている)



さて、ガジェットは本当に「発展的に消滅」できるのだろうか?

それとも、誰かが「Windows8 で無理やりガジェット表示」するようなハックアプリを作ることになるのだろうか?



▲目次へ ⇒この記事のURL

関連ページ

Windows8 導入【日記 13/01/06】

windows8【日記 12/03/17】

別年同日の日記

13年 シフォンケーキ

15年 残業の話

15年 WWW の提案日(1989)


申し訳ありませんが、現在意見投稿をできない状態にしています

windows8  2012-03-17 17:49:59  コンピュータ

▲目次へ ⇒この記事のURL

先日、Windows8 でのガジェットの扱いを心配(?)するような記事を書いた


あの時点で、Windows8 に興味はあったが、じつはまだ使っていなかった。

で、現在この日記は、Windows8 (Consumer Preview版)のデスクトップ版 IE10 から書いてみている。


Metro スタイルは、一部の人が強烈に心配するほどには悪くない。

もっとも、これは当然に好みの問題が入る。


僕は、先日書いたように Mac の System6 が好きだった。Metro は System6 に似ている。



7 以前の Windows では、一部のソフト…ゲームとか、動画再生ソフトでは、「全画面表示」に対応している。

この場合、起動後に「全画面表示」を選ぶ形になるが、必ず全画面で使う、と分かっている人には、自動で全画面にするような設定ができるソフトもある。


Metro は、最初から全画面にしか対応していないソフトが作れる、というだけの話だ。

全画面表示なので、ウィンドウをクリックすることで別アプリに切り替え、と言う方法は使えないが、そこは伝統の(?) alt + tab で切り替えればよい。



あいかわらずデスクトップ画面はあって、マルチウィンドウのほうが使いやすいようなソフトは、そこで使えばよい。

過去の遺産もここで使える。特に問題はない。


で、デスクトップ内では、あいかわらずガジェットがつかえた。

これはこれでいいのかな… 全画面表示がしたい場合は画面端にガジェットがあるのは邪魔なのかもしれない。


でも、常に見たい情報ってあると思うのだけどな。どうなんだろう。

画面端に「チャーム」(メニュー項目)を出すことができるけど、このチャームにガジェットを埋め込む API 、とかが作られれば解決する問題かも。



デスクトップに関しても、強烈に心配したがるユーザーは「Explorer までリボンインターフェイスになった」とか、「スタートメニューがなくなった」などと騒いでいるのだが、使ってみればそれほど問題なし。


リボンインターフェイスは、「縮小」して最上列だけ表示していれば、普通のメニューとたいして変わらない。

あれは、最大化した時に「初心者がわかりやすいように」メニューを展開しているだけの話だ。


Explorer は、Windows7 では、この「最上列」すら表示していなかった。(alt を押すと出てきたけど)

この、必要以上の表示の縮小は混乱を招いていたので、元に戻ったのは歓迎。


スタートメニューの位置には、「スタート画面」に戻るための機能がある。

いちいち画面切り替えが発生して面倒だ、という人がいるが、ラウンチャがほしいのなら、タスクバーに登録すればすむ話。

(Quick Launch つかってもいいしね)


今だって、よく使うソフトはいちいち「スタートメニュー」を開かないで起動できるようにしてあるでしょ?



時々しか使わないプログラムなら、画面切り替えが発生してもそんなに面倒ではないし、どうしても、というのなら、誰かが「スタートメニュー」互換のラウンチャを作るだろう。それを、タスクバー左端に置いておけばよい。


あとは、起動時にデスクトップから始まるような設定があれば、何の違和感もなく Windows7 から乗り換えられるように思う。

(Windows XP からの乗り換えは、多少戸惑うかもしれない。でも、それは Metro の問題ではなく、XP から Vista への変更が大きいためだ)




ところで、これは「デスクトップ版」IE10 から書いている、と書いた。

Metro 版 IE10 では、なぜか家庭内 LAN に置いたWEB サーバーが見えないのだ。


サーバーの log を見ても、アクセス自体が来ていない。

外部サイトは見られる。google chache とかを読み込ませると、表示はできるようなので、HTML の書き方が悪い、とかではないようだ。(先に書いたように、アクセス自体来ていないので、HTML 以前の問題なのだけど)


デスクトップ版では見られるのだから、PC の設定はおかしくないと思うのだが…原因はまだ特定できていない。


▲目次へ ⇒この記事のURL

関連ページ

Windows8 導入【日記 13/01/06】

Windows8 と Wii と AtEase【日記 12/03/19】

別年同日の日記

04年 誕生日?

08年 いろいろ書く

08年 下の子入院

11年 自宅待機

11年 「輪番」停電について

15年 ジョン・バッカスの命日(2007)

15年 手相開発時の技術話(3)

17年 長男卒業式


申し訳ありませんが、現在意見投稿をできない状態にしています

Windows8 と Wii と AtEase  2012-03-19 14:23:51  コンピュータ

▲目次へ ⇒この記事のURL

しばらく使ってみていて、気づいた。


Windows8 のスタート画面は、 Wii のチャンネル一覧画面と同じなんだ。


四角い「アイコン」がたくさん並んでいて、ポイントすれば起動できる。

起動しない状態でも、「アイコン」に簡単な情報表示が出来る。

アイコンが増えると横スクロールで対応する。



Wii で数多く並ぶチャンネルは「どれも同じ扱い」なのだが、1つだけ特別扱いがある。

それが、「ディスクドライブチャンネル」だ。


これを選んだときだけ、ディスクからゲームを起動する。

過去の遺産である、ゲームキューブのゲームもここで遊ぶことが出来る。



Windows8 でスタート画面に数多く並ぶアイコンは「どれも同じ扱い」なのだが、1つだけ特別扱いがある。

それが「デスクトップ」だ。


これを選ぶと、見慣れたデスクトップが表示される。

過去の遺産である、Windows7 までのアプリもここで使うことが出来る。




同じく、気がついた。


Windows8 の操作感は、なんか MacOS System 7 の「AtEase」に似ている。


AtEase は Finder (OS 起動直後にデスクトップを表示し、ファイル管理などを行うソフト。Windows の Explorer にあたる)の替わりに使うソフトだった。


話を続ける前にいくつか解説しておく必要がある。


「ダブルクリック」という操作には、激しく指を動かさなくてはならないが、その間手のひらを動かしてはならない、という相反する動作を求められる。慣れるまでは非常に難しい操作だ。


Alto にはこんな操作は無かった。ダブルクリックは、Mac 開発チームの発明だ。


初代 Mac を作った人たちは、ファイルを選択するために「クリック」を使うなら、ファイルを開くにはどうすればよいか? という点で悩んだ。

Mac の元になった Apple 社のマシン、「Lisa」では、「ファイルを選択して、メニューから「開く」を選ぶ」という操作だった。しかし、これは余りにも面倒だ。


そこで生まれたのが「ダブルクリック」という発明だ。

そう、「プログラムの実行」を、「ファイル操作」の一部として行おうとしたからこんなことになったのだ。



また、MacOS は System6 までシングルタスクだった。当然、1アプリが画面を占有していた。


System7 では、マルチタスクになり、ウィンドウをクリックすることでアプリケーションを切り替えられるようになった。

しかしこれは、初心者に対する混乱を招いた。パソコンに慣れていない初心者にとって、マルチウィンドウは「不便」なのだ。



これを前提として以下の話を読んでほしい。



AtEase 環境では、起動すると画面いっぱいに四角く整列したアイコンが並ぶ。

シングルクリックでプログラムを起動できる。


MacOS System7 はマルチタスクだが、AtEase を使っていると、「1アプリが画面を占有する」状態になる。

複数アプリを同時起動して切り替えることは可能だが、マルチウィンドウではない。


しかし、AtEase にはファイル管理を行う機能は無い。

ファイルを管理したければ、一端 AtEase を終了して、今までなら最初に起動されていた「Finder」をわざわざ起動しないといけない。



Windows8 では、起動すると「スタート画面」に四角く整列したアイコンが並ぶ。

シングルクリックでプログラムを起動できる。


Windows8 はマルチタスクだが、Metroアプリを使っていると、「1アプリが画面を占有する」状態になる。

複数アプリを同時起動して切り替えることは可能だが、マルチウィンドウではない。


しかし、スタート画面にはファイル管理を行う機能は無い。

ファイルを管理したければ、今までなら最初に起動されていた「デスクトップ」をわざわざ起動し、Explorer を使わないといけない。




さて、Wii のチャンネル一覧のような、MacOS の AtEase のような、Windows8 のスタート画面。


多くの人が「初心者向けすぎて仕事に使えない」とか「デスクトップ PC に適さない」とか言うが、そんなことは Microsoft だってわかっている。


幸いなことに、スタート画面は AtEase のように「完全に Explorer を置き換える」ようなものではない。

スタート画面から、デスクトップが呼び出せるのだ。


そして、デスクトップは、ほぼ Windows7 と同じように動作する。



最初に、「デスクトップだけ特別」と書いたけど、実はこれは面白く書くためにちょっと嘘が入っている。

本当は、Metro アプリだけでなく、従来アプリもスタート画面に置く事ができる。


この場合、従来アプリを起動すると、自動的にデスクトップ画面に切り替わる。

実は、Explorer は (Win8 CP 版では)最初からスタート画面に入っている。



だから、先日(はじめて使った直後に)書いたように、「最初からデスクトップが起動するオプションがあればいい」なんてことは無い。


デスクトップが起動しても、きっと最初にやることは「目当てのアプリを起動する」ことだからね。

じゃぁ、やっぱ最初はスタート画面でいい。そこに、よく使うアプリを置いておけばいい。



「Windows 8 は余りにも新しすぎて戸惑う」と言うような声も聞かれるが、先に書いたように、AtEase や Wii のチャンネル一覧など、過去の知恵を導入し、悪かったところはちゃんと解消している。


実のところ、上に挙げていない Windows Mobile (旧CE) の悪いところも対策されているし、よく出来ていると思う。



使わないで期待するのも、使わないで批判するのも嫌なので使ってみたら、案外普通の OS だった、ということろか。



▲目次へ ⇒この記事のURL

関連ページ

Windows8 導入【日記 13/01/06】

別年同日の日記

06年 定価より高い

16年 プログラム教育に対する誤解

16年 プログラム教育の目指すところ

19年 ジャングルウォーズ2 発売日(1993)


申し訳ありませんが、現在意見投稿をできない状態にしています

仮想ソフト変更  2012-03-23 15:47:01  コンピュータ

▲目次へ ⇒この記事のURL

先日書いたとおり、Windows8 を試してみています。

インストールは仮想環境に行っています。


Oracle VirtualBox にインストールすることを薦める記事を読んだので、そうしていました。

VirtualBox は、Windows8 のインストールに対応していて、設定を適切に行ってくれます。


なるほど、手間要らず。簡単インストール。



…でも、インストール後の「VirtualBox の挙動」が不安定。

それに、3D 、2D のグラフィックアクセラレーションを ON にしても、Direct3D を使っているような画面描画が非常に遅い。


画面サイズを自由に選べないのも不満。

自分のデスクトップと同じサイズに出来ないから、必ずウィンドウ表示になってしまって、「画面隅にマウスを持っていく」という多用する操作が面倒なんだよね。


#画面隅にマウスを持っていく、は Windows8 では多用する操作。

 でも、この操作をするとPyroを思い出してしまう…



というわけで、VirtualBox にはさようなら。


VMWare Player を試してみる。

Windows7 のインストールには対応しているが、Windows8 には非対応。


「Windows7 としてインストールできる」と薦める記事もあるけど、ここは「インストールなし」で仮想マシンを作成後、Windows8 のインストールディスク(のイメージ)から起動するのが吉。


VMWare Tools を(ホストマシンに)インストールしろ、と言われるので、インストール。

この間、Windows8 の仮想マシンへのインストールは平行して進む。


Tools のインストールが終わると、仮想マシンウィンドウの下に「仮想マシンに Tools をインストールしろ」という指示が出る。

でも、OS インストール中なのでここはぐっと我慢。


Windows8 のインストールが終わったら、仮想マシン Windows 下の「Tools インストール」のボタンを押す。

すると、仮想マシン上は、インストール CD が挿入された状態になる。


あとはインストールプロセスに任せる。



詳しくは知らないが、Tools は一種のハイパーバイザドライバのようだ。

ゲスト OS 上には、普通のデバイスドライバのふりをして組み込まれる。


しかし、実際にはホスト OS との間に「穴」をあけ、一部の処理を仮想マシンではなく、ホスト側で行うようにしてしまう。


たとえば、Direct3D の処理。

最初に書いたように、VirtualBox では非常に遅かった。これは、ビデオカードの機能を、ソフトで「仮想的に」実現しているためだ。


でも、ハイパーバイザドライバを使って「ホスト側に載っている本物のビデオカード」で処理すれば、本当の速度が出せる。



VMWare では、画面解像度もかなり自由に選べる。

ホスト側の実画面と同じにして、最大化してしまえば、仮想化ではなく「普通に」Windows8 を使っている感覚を体験できるだろう。





Windows8 CP を試している人は多いようだが、文句を出している人は2つのパターンに集約されるように思う。


・スタートボタンが無くなった

・使うのに Microsoft アカウントが必要になったのが気持ち悪い



試せるようになる前は「Metro が使いにくそう」もあったのだけど、デスクトップを使えば今までと変わらない、と気づいて、Metro に対する批判は影を潜めたようだ。


替わりに、そのデスクトップで最大の変化である、「スタートボタンが無くなった」が大きく言われるようになった。




使い慣れていたものが無くなる、と言う不満はわかるが、しばらく使っていると気にならなくなると思うのだけどなぁ。


大体、スタートボタンが導入されたときは、非難轟々だったのだが、覚えている人はどれくらいいるだろう?


Win3.1 のときは、「プログラムマネージャ」からプログラムを起動していた。

これは一種のランチャだが、ここに登録していないプログラムは起動できなかった。



Win95 になったとき、プログラムマネージャは無くなり(実はこっそり残してあったが、それはまた別の話)、替わりに「スタートメニュー」という、新たなランチャが用意された。


プログラムマネージャは、アイコンを使い、グラフィカルな2次元配置でプログラムを管理した。

しかし、スタートメニューは「上下に並ぶ」だけで、使いにくかった。

これが、スタートメニューが批判された主な理由だ。


(注:どちらも、プログラムをまとめて階層化はできる。)



スタートメニューは基本的な構造が変わらないまま XP まで受け継がれ、Vista で大幅に変更された。

「上下に並ぶだけで使いにくい」という批判に対し、「よく使うプログラムだけ表示」になったのだ。


そしたら、今度は「勝手に位置が変わるので使いにくい」と批判された。



今回、ふたたび「皆が使いやすいといっていた」プログラムマネージャの形式…2次元管理にもどった。

(階層化がなくなったことは残念だが、Live Tile という新しい便利さも提供されるのでやむなし)


そしたら、やっぱり批判されている。

ユーザーは常に無いものねだりをするものだ。



ちなみに、「スタートボタンが無くなった」と言われているが、「見えなくなった」と考えたほうがよい。

今まであったところにマウスカーソルを持っていくと、ちゃんと「スタート画面」が開くのだから。表示が無いだけで機能は残っているのだ。




Microsoft アカウントについては、気持ち悪ければ使わないでもよい。


でも、使っているといろいろなメリットがある。

今回、仮想マシンを変えるにあたり、詰まるところ「別のマシンに再インストール」を行ったわけだが、同じアカウントを使っていると設定なんかを自動的に移行してくれる。



Google のアカウントなんかもそうだが、一人で複数台の PC やガジェットを持つようになると、そのデータの同期は重要問題だと思う。


ネットワークを使って自動的に同期される、と言うのはひとつの理想形。


「今までどおり使えればいいんだ」といってMicrosoft アカウントを作らないのもありだと思う。

でも、その場合は今までどおりにしか使えない。新たな便利は享受できない。そういうことだ。





▲目次へ ⇒この記事のURL

別年同日の日記

04年 音楽

04年 訃報

09年 携帯の絵文字

13年 山菜


申し訳ありませんが、現在意見投稿をできない状態にしています

スマホ購入  2012-05-07 16:07:07  コンピュータ 歯車

▲目次へ ⇒この記事のURL

4月25日、子供を迎えに保育園に行ったとき…


次女のロッカーの引き出しに、オムツのストックが何枚あるかを毎日記録しています。

翌朝には、規定枚数入れておく必要があるためです。


この日も枚数を調べていつものように携帯に記録を…と思ったら、携帯の画面が点きません。

おや? とおもってよく見ると、後ろからなにか「びよーん」と飛び出しています。


…スライド式携帯の、画面とキーボードをつなぐフィルム基盤が飛び出しているのでした。


後ろから電線が飛び出して故障、なんて漫画みたいな壊れ方をするとは思いませんでした。



壊れた、とわかって軽くパニック。

もう一度フィルム部分つなげば戻るかな?

とか、画面が表示されていないだけで、うまくすればデータ吸いだせるかな? とか。


とりあえず子供の帰る支度をしながら考える。

冷静になると、絶望的だとわかってくる。


フィルム基盤だから、単純には接続できない(後で見たら、思った以上の線数が入っていたし)。

キーボード側には分厚い電池が入っているし、画面に対して送る信号が多いので、おそらくメイン基盤は画面側。

ということは、「画面が出ない」だけではなく「電源が供給されない」ので、データを取り出すのは無理。




家に帰ってからは子供の相手で忙しい。

翌日調査。


同じ壊れ方は、同機種購入者の多くが経験している。

早い人では1ヶ月で壊れている。

フィルム基盤が曲げ伸ばしされる構造なので、疲労を起こして折れるようだ。


発売から2年経つが、今でも「新規に」購入した直後に壊れた、という報告がネット上に挙がっている。

しかし、ショップに持ち込んでも、ドコモ・シャープの認識としては「同様な報告は他になく、使い方が悪い」ので有償修理、とのことのようだ。


僕の場合2年使って月賦払いは終わった(やっと終わって、これからは月額料金が安くなる、と喜んだばかりだった)。

2年も使うと、修理しても他の部分で不具合が出そうだし…


しかし、月額780円で使っていると、スマホに乗り換える気がしない。

スマホ以外の選択肢を見ると…こちらは、ドコモの「スマホに乗り換えて欲しい」思惑もあって、本体代金に対する補助が少ない。機種も少ないので選択肢の幅も無い。


他社への乗り換えも含め、じっくり検討…


1日悩んで出た答えは、ドコモのままでスマホ購入。

ただし、できればパケホーダイプランには入らない。



仕事柄ほとんど家にいるので、WiFi が使えれば十分。

外出時は通信を SP モードメールに限れば、パケット料金は加算されない。


これなら、今までと月額料金は余り変わらない。


この場合、ねらい目の機種は GALAXY NEXUS。

Android 4.0 (ICS と呼ばれる。開発コードネームである、Ice Cream Sandwitch の略。)を搭載するフラッグシップモデルなのに、1万円程度まで値段が下がっている。


#普及のために google が補助金出してるから。


ただ、仕事でこの機種借りているのだけど、互換性が悪くて動かないソフト多いんだよね。

google 製のソフトですら、異常終了したりする。


互換性を気にするなら、あえて 2.3 を購入したほうが良い。

(ちなみに、3.0~3.2 はタブレット用の OS になっていて、携帯電話用は 2.3 の次が 4.0 になる。4.0 は 3系列の機能も取り入れたため大きく内部が変化しており、それが先に書いた互換性の悪さの原因)




27日、考えていても仕方が無いので買いにいってみる。

翌日から G.W. に入ってしまって、子供の相手で購入どころでなくなるだろう。



家に一番近いヤマダ電機へ…行ったら、半月ほど閉店してビルの工事をしていたのが「新装オープン」の当日だった。


人がごった返していて、とてもゆっくり選べる雰囲気ではない。

携帯コーナーに行ったら、キャリアごとではなく、メーカーごとに機種が並んでいる。


スマホは事実上同じものを、3キャリアに降ろしている形だから、この方が「MNP で安いですよ」感が出せるようだ。


で、ゆっくり見て回ろうとすると、端末メーカーの法被を着た人が「ご案内しましょうか?」とよってくる。

かわしても、すぐに別のメーカーの人が…今度はキャリアの人が…


で、買うのやめて別の店へ。




少し離れたノジマ電機に行くと、ヤマダの新装オープンを意識してか、「他店徹底対抗」と書いたビラがたくさん貼ってあった。


ヤマダでは、GALAXY NEXUS は売り切れだった。

ノジマでは、売り場に最初から置いてすらいなかった。


でも、「徹底対抗」を謳うだけあって、総じて安くなっていた。

特に安かったのは Xperia acro (SO-02C) と、Lumix phone (P-02D)。で、両方「実質0円」。



少し考えて、Panasonic P-02D を購入。

決め手は、最後のアルファベットがこちらのほうが「後」だったから、という単純なもの。


(ドコモの規則では、ハイフンの前はメーカー名、最後のアルファベットが発売年度。ただし、年度は冬が頭。数字は年度内の「ドコモ内での」整理番号。発売順とは多少前後する場合もある)



実質0円って、どういう計算ですか、とお決まりで聞いてみる。

ドコモの「月々割り」を適用するのは当然で、それに加えてノジマ側の指定するコンテンツサービスに入ることが条件。

(このサービスを薦める「販売奨励金」が端末代金の残りに充てられる)


サービスは入るだけで、翌月解約でも可? と聞いてみる。

一応、加入月と翌月は無料なので、その次の月までは入っていて欲しい、とのことだけど、調べる方法が無いので解約されてもわからないそうだ。


それならいいでしょう、と購入を決定。




指定された時間に行くと、処理は終わっていたけど、店員が最後の通信確認をやり忘れていた。


目の前で確認して、受け取り。

…後で気づいたが、つまり「指定したサービス」に登録されていない。

これは店員のミスなので、知ったことではない。




というわけで、いまさらスマホユーザーに。


仕事で使っていたから「知っているつもり」だったけど、自分が使うつもりになると案外わかっていなかった、と気づく。


AU の IS05 のステータスバーのインターフェイス使いやすかったのだが、あれは標準では無いのか…

似たのを探す。有料ならあるみたいなのだけど、金払ってから「思っていたのと違う」のはイヤなので、とりあえず無料で。


じゃぁ、妥協してこれとこれを組み合わせて…とか。


子供の相手をしながらなので少しづつ環境を整え、やっと満足できるようになったところ。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

歯車

関連ページ

LUMIX Phone Update【日記 13/04/23】

0sim【日記 17/12/13】

山歩き【日記 12/10/28】

別年同日の日記

13年 サーカス

14年 社長の一番大切な業務

15年 エドウィン・ハーバード・ランド 誕生日(1909)

18年 G.W.中のできごと

18年 評議員

18年 バーベキュー


申し訳ありませんが、現在意見投稿をできない状態にしています

ダライ・ラマとは関係ありません  2012-05-09 16:22:30  コンピュータ

▲目次へ ⇒この記事のURL

スマホなんて買わないぞ、とずっと決めていたのに、買ってしまったのでいろいろいじっている。


買わないと決めていた理由のひとつは、いじりたくなっちゃうから、というものでもあった。

だいたい、スマホブームの前に一度買っているからね。

「いじり倒していて仕事がはかどらない」のがもう一度持つのをためらっていた理由なのだ。




自分の使い方は、かなり偏っている。

これは「普通の人と同じ設定では使いにくい」と言うことに他ならない。


まず、僕はほとんど家にいる。自宅で仕事をしているからだ。

目の前にパソコンはあるし、WiFi だってつなぎ放題の環境だ。


この状況で「スマホは持ち歩ける PC だから便利ですよ」とか言われても便利そうに思えないし、「パケット使い放題で5千円」と言われても安いと思えない。



というわけで、スマホを使うとして、基本設定は次のようになる。


・WiFi で接続して、自動同期 ON。WiFi はスリープしない設定。

・屋内で使うので画面の明るさは一番くらい状態で固定。

・画面のロックの解除。電源 ON ですぐ使えるのが望ましい。

 (ロック解除のソフトを導入した。標準ではできない)


生活していれば、もちろん外出しないでも無い。

一番多い外出は、保育園の送り迎え。家から 1km 程度の外出だ。


この間も、メールは受け取りたい。

SP モードメールは通信料無料だからこの通信は構わないのだが、他の通信が勝手に発生すると困る。


このときの設定は次のようになる。


・3G で接続して、自動同期 OFF。

・バックグラウンドで勝手に通信されないように、他のアプリの終了をよく確認。

・画面の明るさは「自動」に。

・画面ロックの設定。人に勝手に使われないように。



この方法、バックグラウンドアプリの確認、というのが面倒くさい。

購入して3日ほどで、ポリシーは次のように変わった。


・WiFi も 3G も、通信は全部 OFF。

・メールが届いたことはわかるので、届いたら手動で本文取得。


しかし、「メールが届いたことがわかる」のは、画面を見たときだけ。

SPモードメールでは、本文取得後にしか音を鳴らす設定が無い。




さて、ここで Llama の出番だ。時速 45km/h で走る、らくだのようなラマ…

ではなくて、Android 用の「Location Profile」ソフト。


このソフトを見つけて3日。

かなり癖の強いソフトで使いこなすのに苦労するが、入れていたほかのソフトがいくつか不要になるほど強力なソフトだった。


Profile は、海外の携帯で使われる概念。

日本では「モード」だろう。マナーモード、ドライブモード、オリジナルモードを作れる機種も多かった。


Llama は Location Profile のソフトだ。

場所によって異なるモードに設定するソフト、と考えてよい。


でも、本当は「場所によって」ではない。それは一番の特徴ではあるけど、「状況によって」かなり自由に設定を変更したり、ソフトを起動したりできる。


基本的な使い方は、次のとおりだ。


・携帯電話基地局の ID を使って、荒く「位置情報」を取得。

 それにより設定を変更する。



携帯電話なので、通話用の通信は必ず行っている。

これを使って位置を把握するので、WiFi や GPS を起動するのと違って、電池を余計に消費したりはしない、というのがミソ。


でも、携帯電話基地局からの電波は、半径 2km くらい届く。

家から外出するときでも 1km 程度の僕は、これでは精度不足。


大丈夫。Llama は、他の方法でも位置を取得できる。

GPS、WiFi、Bluetooth …いろいろな方法で、指定した場所に居るかどうかを調べられる。


僕の場合、家では WiFi をつなげっぱなしにするのが前提なので、WiFi で調べる。


でも、週に何度かは、遠くまで外出するのだ。

そんなときに WiFi が付けっぱなしだと、無駄に電池を使ってしまう…。



これも大丈夫。

2段階で考えればよいだけの話。


・基地局で「近所」を調べて、近所なら WiFi を ON にする。

 (近所でなければ、WiFi は OFF にする)

 

・WiFi で「自宅」を調べて、自宅に居れば自宅用の設定に切り替える。

 (自宅でなければ、外出用の設定に切り替える)



さて、夜になったら僕は、携帯電話で目覚ましをセットして枕の下に入れる。

音量は小さめだが、振動するようにしてある。


これで、同室で寝ている家族を起こさずに、自分だけ起きることができる。


ついでに言うと、寝ている間にメールなどで起こされたくない。

つまり、寝るときの設定はこうだ。


・WiFi も 3G も、通信は OFF。(緊急電話は受け付ける)

・音量は 0 。だけど、アラーム用の音量だけは小さめ、バイブレーションも入れる。


…さて、この設定をしてみたら、困ったことが起きた。


WiFi を OFF にしたため、「自宅」に居ることがわからなくなり、外出時の設定になってしまうのだ。


大丈夫。Llama では、この程度の状況は考慮してある。


Llama は、変数を持つことができる。変数には文字列を入れられるので、「同じ」か「違う」の判断ができる。(数としては扱わないので、大小の判断はできない)


変数を使って状態遷移を作る。

WiFi で自宅であることを確認したときには、設定変更とともに、変数に「自宅」をセットする。

WiFi が切断され「外出した」と判断しても、変数が「自宅」で無い場合は、外出の設定に切り替えない。


この状態でなら、変数に「夜」をセットした上で、WiFi を切断しても「外出」とは判断されない。

Llama では時間による判断もできるので、夜になったら変数を「夜」にして、夜の設定にするようにした。




さて、Llama がすごいのは、実はここからだ。


外出時に sp モードメールが届くと、通知領域に「メールが届いた」というメッセージが表示されるが、音などは鳴らしてくれない。

これを解決しよう。


Llama では、通知領域に特定アプリがメッセージを出した、ということを条件に、動作を行うことができる。


ちなみに、この機能を使うには、本体の「設定」から「ユーザー補助」に入り、Llama に権限を与えなくてはならない。

(ちゃんとソフト内で説明されるのだが、この設定を行わないで「うまくいかない」と悩んでいる人がネット上に山ほどいる)


まずは、sp モードが通知したら、音と振動で伝えるようにしてみた。

本文の取得は手で行う必要があるが、これだけでも、十分実用になりそうだ。



でも、もっと設定したくなった。


Llama では、Android で別のアプリと通信するための「Intent」を送信できる仕組みがある。

spモードメールのアプリが使用する Intent がわかれば、自動的にメール問い合わせを実行できるのだが…


調べてみると、データの一部に日付を入れないといけない、とのこと。

Llama では、さすがにそこまではできない。


かわりに、「spモードメールBOX2 Free」と言うソフトを使えばよい、とわかった。

このソフトは、spモードメールアプリの各種機能へのショートカットを作成できるもので、メール問い合わせも実行できる。


Llama からはショートカットの実行機能もあるので、組み合わせればこうなる。


・WiFi 接続していないときに、spモードが通知領域にメッセージを出したら…

・3G 接続を開始する。

・(接続が完了するまで)1分ほど待って、spモードメール BOX2 の「メール問い合わせ」を呼び出す。

・(ダウンロードが完了するまで)1分ほど待って、3G 接続を切断する。


この場合、メール着信音は spモードメールが出すので、先に書いた「通知があったら音と振動で知らせる」という設定は不要になる。



ついでに、「アプリケーションがアクティブになったら」という条件も作れるので、spモードを起動したら 3G 接続を行い、終了したら切断する、という動作も作っておいた。


返信しようとすると、3G 接続を開始する。

接続には30秒程度はかかるが、返信を書いている間に接続が終わるだろう。

そして、送信してアプリを終了する(もしくはバックグラウンドにする)と、接続終了。


ここまでやって、やっと「今までの携帯電話」と同じように、設定を気にせずにどこにでも持ち歩いて使えるようになった。




ちなみに、先に書いた「ロック画面の解除」だが、Llama 単体で解決できる。

しかも、場所で自動化できる Llama のほうが便利だ。

(入れていたソフトも、WiFi を感知して自動で解除したのだが、夜 WiFi を OFF にすると当然ロックがかかってしまっていた)


このためにインストールしていたソフトは、削除した。



完全なる余談だが、外出時に画面をロックしたまま「携帯電話をなくした」時のために、ロック画面には僕の連絡先を表示している。


HP-200LX は、持ち主を表示する機能が標準であったのだけど、Android では工夫しないとできないのね。

(Lock Screen Message というソフトを使っているが、これは「アラーム用のメッセージ領域に、表示したいメッセージを書き込む」ためのソフト。こうすると、ロック画面にメッセージが表示できる)




さて、Llama ではこれだけのことができてしまう、と言うことはご理解いただけただろうか?


設定はと言うと、非常に難しい。

プログラム言語ではないが、それに近い論理性を持っている。


矛盾した設定をかくと、うまく動かない。


先に書いたとおり、「WiFi で自宅位置を調べる」が「夜になると WiFi を切る」なんていうのは矛盾した設定だ。

変数も使って、うまく矛盾を解消してやる必要がある。



その上、説明はほとんど英語だ。

…英語は苦手だ、と言う人は、ロシア語やフランス語、スロベニア語で表示することはできるが、日本語は今のところ翻訳されていない。

(翻訳ボランティア募集はしている)


そして、この説明は「フレンドリーな文体を心がけてくれ」と翻訳者に要求している。

実際、英語もかなりくだけた、フレンドリーな文体だ。


つまり、読む側に「ネイティブ」な能力を要求する。

英語が苦手な人には、かなりハードルが高い。



日本語の情報では、このページが一番まとまっているように見える。


が、ページをまとめた人はプログラマでは無いようで、プログラムの知識が必要となる部分では翻訳が怪しい。

単純に、くだけた英語の翻訳に失敗しているところもある。

(Noisy contacts は、「うるさい連絡先」ではなく、「目立たせたい連絡先」だろう)


さらにいえば、Android 特有の「癖」も随所に顔を出す。

WiFi polling 間隔を設定すると、WiFi は暗黙に ON されるようだ、など。

(OFF にして、念のため polling 間隔も「polling しない」にして…とやったら、OFF にならなかった)




さて、この複雑なものを理解したうえで…もしくは、少しづつ動作を調べながら設定を行っていると、すぐに設定がごちゃごちゃになる。


矛盾無く設定するのが大切なのに、ごちゃごちゃすると設定の間違い…つまりはバグが増える。ここらへん、まったく「プログラム言語」と同じだ。


一緒に行う設定、たとえば「WiFi を ON にするときは、polling 間隔を 5分に設定して、sleep policy は never sleep にする」などを、サブルーチン化してしまうとよい。

こうすると、複数の条件から同じ「WiFi の ON 」を呼び出していても、設定が分散してミスをすることが減る。



サブルーチン化、と言う機能は Llama には無い。

しかし、Llama では、アプリケーションのショートカットを呼び出すことができる。

そして、Llama で作った「設定」は、ショートカット化して呼び出すことができる。


つまり、まとまった設定を、呼び出し条件無しで登録しておいて、特定条件時に「ショートカットとして呼び出し」すればよいのだ。



ここから後日追記。


上記の方法、問題がありました。

Llama はリエントラントにできていませんでした。そのため、ショートカット呼び出しは「GOSUB」ではなく、「GOTO」として作用します。

設定の呼び出しが1つなら問題ないけど、2つの設定(通信設定と画面設定など)を呼び出そうとすると、後の呼び出しが実行されません。


自分の場合、「画面」と「通信」の設定をわけて、状況により使い分けようとしていました。

このような場合は、基本的に「場所」を認識した時点で変数を設定し、その変数を条件として設定を行う、という2段階で考えると良いようです。


その上で、特殊な状況でのみ、ショートカット呼び出しで設定を行う。

この場合、GOSUB でなく GOTO でも十分実用になります。



画面や通信ごとに別の変数を設け、状況ごとにスイッチして…

と言う方法はお薦めしません。


変数の変更によって5回以上、設定が呼び出されると、Llama はエラーを出して、以降の設定を行いません。

これは、設定ミスで延々と呼び出しが続いてしまうことを防ぐために、Llama 側で制限しているようです。



追記終了。




これにはさらにおまけがつく。

Llama は、設定を自然な文章にして表示してくれる機能があるが、先に書いたように日本語表示はできない。

しかし、「設定」には名前をつけることができて、日本語でつけても良いのだ。


これで、先に書いた WiFi ON 時に一緒にやることの設定を「WiFi開始」などのわかりやすい名前で表示できる。

こうすれば設定のミスがあっても見つけやすい。



登録した設定が増えると、これだけでごちゃごちゃしてしまう。


しかし、設定は「グループ化」ができる。

大抵は、ある状態に「なったとき」と「終わったとき」が対になるので、同じ対をグループ化しておこう。


先に書いた、サブルーチンとしての設定集は、設定集としてグループ化すればよいし、僕の場合 sp モード関連がたくさんできたので、それもグループ化してある。


グループ同士や、グループ内での設定の並びは、文字コード順だ。

だから、並びを整えてわかりやすくしたければ、先頭に数字をつけると良い。




最後にプログラマー向けのアドバイス。


Llama は、非常にプログラム的な設定を行うが、プログラム言語ではない。

GUI を使って、条件と、その条件が満たされたときの「アクション」を選んでいく、と言う設定方法だ。

(条件は複数設定可能で、and / or も設定できる)


でも、その設定は自然な文章として表示される。

なので、組みあがった条件がたくさん並んでいる様は、プログラム言語で組まれているように見える。


そして、これがプログラム言語だとすれば、その制御構造は、awk に非常に良く似ている。

全体を括るループなどは存在せず、「条件」と「処理」だけが列記されている、と言う構造だ。


なので、そのつもりで取り組むと、すぐに理解できるのではないかと思う。


5/30 追記

llama のページ作りました。

上に書いた記事は、使い始めてすぐに書きなぐったもので、今見ると勘違いもあります。

訂正などは新たに作ったページで。


▲目次へ ⇒この記事のURL

別年同日の日記

04年 ケーキ食べ放題

11年 しんぶんし


申し訳ありませんが、現在意見投稿をできない状態にしています

サーバー故障  2012-08-23 16:11:51  コンピュータ

▲目次へ ⇒この記事のURL

数年に一度はこういう話題やっているな。



夏の風物詩、サーバーが故障しました。

暑さでハードディスクがいかれた模様。


ただ、今回はいつもとちょっと違う。

ずっと昔から、サーバーは「外部向け」と「仕事の実験用」の2台使っている。


これを、4年前に仮想化している。



物理サーバーは2台。仮想サーバーも2台。

じゃぁ仮想化なんか必要ないじゃん、と言われそうだが、この仮想化は耐障害性を増すためのものなのだ。


仮想化したサーバーの「実態」はファイルに過ぎない。

2台の物理サーバー間で、定期的にファイルのコピーを行っておけば、障害時にもすぐに復旧できる。


…はずだった。




なにか様子がおかしい、と気づいたのは、今週頭の20日。


スマホで WiFi 接続しようとしても、IP アドレスがなかなか取得できない。

つまるところ、DHCP サーバーの動作がなんかおかしい。


DHCP サーバーは、家庭内向けの実験サーバーにおいてあった。

設定が悪いのかな? と見直してみる。


ところが、設定ファイルを読み込もうとするだけで、妙に重い。

ls をとっても重い。top を見るのも重い。


でも、とくに CPU を使っているプロセスは無い。

なのに、Load Average だけ 4 以上になっている。



どうしたことだ?

いろいろ試すが、どうもディスク関係の処理が重い。

I/O 待ちが増えて Load Average が増している感じか。


ディスク関連は、仮想化したサーバーと言うよりは、親サーバーの仕事だ。

親サーバーに接続して、仮想化マネージャを使ってみることにする。

(コマンドラインでいろいろやることも出来るが、仮想サーバーの負荷などをグラフで見たい)



仮想化マネージャを使いたいので、X window に接続したい。

Windows から Xming で接続…を試みるが、応答が無い。


おかしいな。たまにしか X 接続しないから、なにかおかしくなっているかな。

あらためて ssh で入り、X の設定ファイルを見直す。

もしかしてここが悪いのかな? というところを書き換えようとするが…


「ファイルが読み込み専用だ」と怒られる。


パーミッションを見ても、書き込めるはず。

念のためパーミッションを変えてみよう…が、「ファイルシステムが読み込み専用だ」と怒られる。



え? どういうこと?

ここにきて、やっとシステムログを見る。

8月18日に、ファイルシステムのエラーが起こって、破壊してしまわないように読み込み専用で再マウントされていた。




えーと、物理サーバーのディスクが読み込み専用だけど、その上で動いている仮想サーバーはディスクに書き込みが出来ている。

これってどういうこと?


…とりあえず、怖いので、最近仕事でいじったファイルを、問題のないサーバーにコピー。

万が一消えてもショックがないようにね。


仮想サーバーをシャットダウン。…これまた、妙に時間がかかる。


物理サーバーを再起動時に fsck したい。

そうするには、touch /forcefsck して…って、ファイルシステムが読み込み専用だから出来ない。


えーと、どうすればいいんだ?

tune2fs を使って、次回起動時に fsck がかかる設定にする。これは問題なく出来た。



そして、物理サーバーを再起動。

自動的に fsck がかかる。で、エラーを検出する。


「自動で直せるもんじゃないよ」って意味のメッセージが出て、自動的にシングルモードに移行。

fsckを手動で行ってね、って言われている。


fsck すると、でるわでるわ… 「修復して良い?」ってきかれるから、全部リターン(デフォルトが yes)。


で、ファイルシステムは直ったよ、といわれたので、再起動。



問題なくサーバーは起動した。仮想サーバーも動いている。


ここまでの作業で、20日は終了。




翌日21日は、仕事で外出。

外出先から自宅サーバーにリモートログインするが、やっぱりなにかおかしい感じがする。


22日、つまり昨日になって本格的に修復作業を開始する。



まず、仮想化したサーバーを、正常な物理サーバーに2台同居させよう。

…と、ファイルを転送するが、これがまた妙に遅い。


転送終了後にそのファイルで起動しようとしたところ、ファイルシステムが壊れている、と怒られた。

つまり、ファイルが壊れているのだ。


壊れた仮想サーバーは、当初は仮想ディスクを1台だけ作っていた。

しかし、様々な事情で、途中で2台目を増設した。


ここで、自分が大ポカをやっていたことに気づく。

増設した2台目をバックアップする設定を行っていなかった。


1台目ディスクのバックアップはある。

週1回、ファイルとして別の物理サーバーにコピーするとともに、自分自身の物理サーバー内でもコピーする。

そして、3世代残してある。つまり、1ヶ月前までは遡れる。


しかし、2台目ディスクにはこの設定をしていなかった。

まったくバックアップが無い。


困ったことに、「2台目ディスク」に /home ディレクトリを置いてあった。

つまり、最近の変更のほとんどは、2台目に入っている。



いろいろ試すと、「1台目」ディスクは、故障したらしい18日より前のものを使うことで起動可能だった。

変更はほとんど無いはずなので、これで OK 。


「2台目」は先に書いたとおり、ファイルシステムが壊れていると判断される。

ただし、コピーしなければ、現実的に(妙に遅いが)仮想化サーバーで起動できている。


ということは、ファイルシステムの「どこか」は壊れていても、ファイルの多くは読み出し可能だということだ。

ディスクイメージとして救出するのは諦め、tar を使ってファイルをバックアップすることにする。



これがまた、妙に時間がかかる。しかし考えは成功だった。

問題の無い物理サーバーで新たなディスクイメージを作り、そこに tar を解凍することでほぼ元通りの状況を作り出した。


tar がドットファイル(隠しファイル)をバックアップしてくれない、ということを忘れていたが、簡単に復旧できる範囲の問題だった。



これで、仮想化サーバーを正常な物理マシンに2台同居させたところで、22日は終了。

「ひとまずは」問題が回避されたことになる。



結構大変だったように見えるが、これでも仮想化のおかげでかなり楽になっている。


(仮想化前なら、データのバックアップを取って再インストールして、サーバーのプログラムインストールして…と、問題回避するまでだけで2日はかかったのだ)





さて、本日23日。復旧開始。


仮想化サーバーがいなくなって、負荷がかなり減ったはずの「おかしな物理サーバー」は、やはり時々妙に重くなる。


smartctl で S.M.A.R.T. 情報を見てみる。

ペンディングセクタが3つある、と言われる。それ以上はおかしくないようだ。


しかし妙に重い。ディスクアクセスは特に重い。


仮説は2つ。


1) ディスクが物理的におかしくなった。


2) Linux のファイルシステムとしてはかなり行かれているだけで、ディスクはそんなに悪くない。



ペンディングセクタ3つ、というのはそれほどひどいわけではないし、他に S.M.A.R.T. 情報に悪いところは無いので、仮説2のほうを疑ってみる。



というわけで、現在この日記を書いている後ろで(物理的に背後で)、サーバーを再インストール中。


…このインストールも妙に遅い気がするが、CentOS 6.3 のインストールは初めてだし、マシンは遅い atom なので、気のせいかもしれない。



インストール後には詳細がわかるだろうが、今日はもう時間切れかな…



▲目次へ ⇒この記事のURL

関連ページ

サーバー故障中間報告【日記 12/08/27】

別年同日の日記

02年 DVD作成

11年 節電その後(その2)

13年 チューリングのチェスプログラム


申し訳ありませんが、現在意見投稿をできない状態にしています

サーバー故障中間報告  2012-08-27 10:08:02  コンピュータ

▲目次へ ⇒この記事のURL

先日壊れたサーバ、その後復旧を試みるも、どうもHDDが壊れている気がします。


…気がします、というあいまい表現なのは、とりあえず動いているから。


ディスクのシーク速度が異常に遅くなっている、気がする。

シークが終われば、大きなデータでもそれなりに読み出す、気がする。


これが何を示しているのか確信が持てない。

マザーボードのディスクコントローラーが壊れたのか、HDD が壊れたのか。

S.M.A.R.T. の値は正常だ、というのが余計に不気味。


再インストールは異常に遅かったが、完了した。


そしたら、CentOS 6.3 では、Xen が使えないことに気がついた。

「メインとしては KVM」だけど、「互換性のために Xen も残してある」と、調べもせずに信じていた。



使用マシンが Atom なので、KVM は使えない。

改めて 5.8 をインストールしようと思ったけど、余りの遅さに途中でやめた。


HDD を新調して再度試してみるしかないだろう、と思うが、SSD にするかどうかで検討中。



▲目次へ ⇒この記事のURL

関連ページ

サーバー修復【日記 12/09/03】

別年同日の日記

02年 知恵の輪

09年 キャンプ

10年 デジカメ購入

10年 家族旅行・2010年夏(目的地まで)

10年 家族旅行・2010年夏(富士サファリパーク)

10年 家族旅行・2010年夏(ぐりんぱ)

10年 家族旅行・2010年夏(宿)

10年 家族旅行・2010年夏(富士急ハイランド)

10年 家族旅行・2010年夏(帰り)

14年 レフ・テルミンの誕生日(1896)


申し訳ありませんが、現在意見投稿をできない状態にしています

サーバー修復  2012-09-03 13:11:31  コンピュータ

▲目次へ ⇒この記事のURL

壊れたサーバー

仮想化技術があると、あわてないでゆっくり修復できる。


仕事先から 80GB の HDD を借りてきて、動作を確認。

故障箇所が特定できていなかったのが、HDD 故障と特定。



今から HDD を買うなら SSD か、と考えていた。

でも、仮想サーバーの数世代のバックアップも考えると、128G ではちょっとつらい。

256G はさすがにまだ高い…


と言っていたら、仕事先の社長から次のような答え。



・128G じゃ、バックアップも考えると足りない。

 →バックアップには安い HDD を使えばよい。


・2台つないだら電気も食うし、熱もこもるのでは?

 →SSD は HDD より熱も出さないし電気も食わない。バックアップ HDD は、使わないときは止めればよい。



…なるほど。

なんか、妙に納得して 128G を購入。




次の悩みは、ext4 を導入するかどうかだった。

Linux のファイルシステムは、ここ数年で ext3 から ext4 に世代交代している。


ext3 は、古いシステムなので、いろいろと悪い面もわかってきている。

ext4 は悪い面が克服されているが、まだ新しいので信頼性も低いし、周辺ソフトも整っていない。


しかし、数年かけて移行してきたおかげで、そろそろ ext4 でも大丈夫、と言う状況。

なによりも、ext3 は SSD の機能をフルに生かせないが、ext4 なら対応できている。



CentOS は、6 から ext4 に対応している。

しかし、先に書いたように、6 からは仮想化方法が KVM に変更された。


KVM は CPU が VT 対応で無いと動作しない。

うちのサーバーは atom で、 VT 対応ではないので Xen でないといけない。


一応、5.8 でも「正式対応ではないが」 ext4を使える。

ただ、この場合インストール後に ext3 から ext4 に変更する、ややこしい操作が必要となる。


さてどうしよう…

と悩んでいたら、購入した安い SSD が TRIM コマンドに対応していないとわかった。

ext4 の SSD 対応最大の利点は、TRIM に対応したこと。


じゃぁ、特に意味無いじゃん、と、ext3 のまま行くことに決定。




でも、この際いい機会だから、しばらくアップデートを行っていなかった実験用サーバーの OS を、最新版にアップデートしてみる。


その後、fdisk してみたら、いろいろ壊れている。

HDD 故障で壊れたのではなく、仮想サーバーを動作させながら cp でディスクファイルをコピーしたのがよくなかったようだ。


50G もあるデータをコピーするので、30分以上かかる。

この間に、ディスクの内容が更新されるのだ。不整合も起こる。


fdisk で強制的に修復させてみたら、大量の「不正箇所」を修復して、結果としてディスクが完全に壊れた。

まぁ、少し前のバックアップはあるので、そこまで戻って起動は出来た。




さて、どうするか…

SSD をつけた新しいマシンに、CentOS 5.8 をインストール。


ディスクのパーテーションを自分でいじる。

LVM 領域から、32G を root に、32G を実験用サーバーに、32G を公開用サーバーに割り振る。

8G ほどを swap 領域にして、あとはあまらせておく。


インストール後、実験用サーバーに割り振った領域を、さらにパーティション分割。

ext3 の /boot と、同じく ext3 の root 、swap 領域にする。



古い実験用サーバーのディスクイメージを、ループバックデバイスとして認識。

パーテションを認識させ、/boot と root を dump する。

ディスクとして不整合になっていても、dump ならファイルを取り出せる。


そして、新しいマシンの LVM 領域に作った実験用サーバー用のパーティションで、restore 。

/boot/grub/grub.conf と /etc/fstab を書き換える。


さらに xen の設定ファイルを書き換え、このパーテションを phy で認識するようにさせて、起動してみる。



…ラベルが見つからない、と言われた。

ここまでディスク構造自分でいじったこと無かったから知らなかった。

ラベルを頼りにパーテション探したりしているのね。


tune2fs でラベルを付けられる、と調べて知ったので、正しくラベルをつける。

これで、無事起動。




いままで仮想サーバーはイメージファイルを使っていたが、パーテションを割り当てることにした。

これで、LVM のスナップショットを使い、安全にバックアップが取れる。


そして、今まではディスクイメージ丸ごとコピーでバックアップを取っていたが、これは時間がかかりすぎるので、dump の差分バックアップを使うことにする。


ひとまずは、これで完成。




2台の xenの土台(DOM-0)の設定が同じでないと、仮想サーバーの可搬性が落ちる。

公開サーバーをまず、SSD を搭載したサーバーに移行させてから、公開サーバー用の土台を再インストールしよう。


…と考えて、公開サーバーの全ファイルを、SSD の接続されたマシンに rsync した。

rsync にしたのは、一度 rsync 後、公開サーバーを停止して、もう一度 rsync するつもりだったから。

これなら停止が最小時間で整合性が保たれる。


が、うっかり間違えて、SSD の「公開サーバー用」パーティションにファイルを入れるつもりが、root に入れてしまった。

つまり、システムファイルグチャグチャ。



おかげで、SSD 搭載サーバーを再インストールすることに。

今度は面倒なので、パーティションを dd でイメージファイルにバックアップし、公開サーバの土台でイメージファイルから起動。


現在、SSD 搭載サーバーの土台を再インストール中…





▲目次へ ⇒この記事のURL

関連ページ

サーバー設定 2012夏【日記 12/09/06】

別年同日の日記

02年 パズル

13年 世界最初のテレビゲームって結局どれなの?

15年 用語選びの難しさ

18年 決算終了


申し訳ありませんが、現在意見投稿をできない状態にしています

サーバー設定 2012夏  2012-09-06 12:11:16  コンピュータ

▲目次へ ⇒この記事のURL

先日壊れてからいろいろといじっていたサーバーの設定が終わった。

他の方への参考と、自分が忘れないためのメモをかねて記録しておく。




前提:

すでに、2台の atom マシンでサーバーを組んであった。

それぞれの上に、Xen で仮想サーバーを1つ載せてある。KVM でないのは、Atom が VT 対応で無いから。


本体に問題がでた場合、仮想サーバーは問題が無い側に寄せて実行される。

これによって、停止時間を減らすようにしていた。




仮想サーバーを使うようにしてから、ハードディスクが壊れたのは初めて。

つまり「片側に寄せる」作業すら支障が出たわけで、実際に「停止時間が減ったか」といえば、そうでもなかった。


もっとも、仮想マシンのディスクイメージをバックアップしてあったので、再構築の手間はかなり省けた。



実際に環境再構築を試みて、反省点が1つ。


仮想マシンを CentOS のデフォルト状態で入れていた。

こうするとストレージ上に LVM で論理ボリュームを構築し、その上にパーテションを作成して、インストールを行う。


つまり、ファイルとして準備された仮想ディスクに、パーテションを設定して boot と LVM が作成される。

そして、LVM の論理ボリューム上に root パーテションが作成され、インストールが行われる。


この仮想ディスクファイルの「中身を見たい」と思ったとき、以下の操作が必要となった。


・仮想ディスクファイルをループバックデバイスとして認識

・LVM のボリュームグループとして、ループバック接続されたデバイスを認識。

・LVM のボリュームグループ内の論理ボリュームを認識。

・論理ボリューム内のパーテションを認識。

・パーテションをマウント


…非常に面倒くさい。使い終わったら逆の手順で開放が必要になる。




LVM はメリットのある技術だ。LVM を使うと、物理的なデバイス(HDDなど)を、論理的なボリューム(記録領域)と切り離せる。


…話がややこしいので丁寧に解説しよう。

デバイスには、固有の記憶領域がある。これを「物理ボリューム」と呼ぶ。

ディスクの場合、パーテションが区切られていると、それぞれが物理ボリュームになる。


Windows などでは、物理ボリュームに直接データを書き込む。

システム領域を小さめのパーテションに…などと分割していると、データ領域は十分空いているのにシステム領域が足りなくなる、などの厄介ごとにも繋がる。

かといって、パーテションを分けていないと、システムが壊れて再インストールしたらデータも消える、と言うことになる。


LVM では、物理ボリュームを集めて合算し、「ボリュームグループ」を作る。

そして、ここから「論理ボリューム」を取り出して使う。


論理ボリュームは、ボリュームグループに余裕があれば、後から拡張することも可能。

ボリュームグループ自体、後から物理ボリュームを追加して容量を増加できるので、いろいろと便利。



また、論理ボリュームを取り出す際に、別の論理ボリュームの「スナップショット」にすることが出来る。

簡単に言えば、特定の論理ボリュームのコピーを作ると言うことだ。

ただし、実際にはコピーは行わず、同じものを参照するので、作成は一瞬。


ここで、もとのボリュームに変更が行われると、その時点でスナップショット側にデータがコピーされる。

これにより、スナップショット側からは「データは変化していない」ことになる。


後でもう一度説明するが、データのバックアップには便利な機能。



もっとも、CentOS のデフォルト状態では空き容量無しにディスク容量を使い切ってしまうので、この機能は使えない。

使いたければ、インストール時に詳細に指定を行う必要がある。




さて、CentOS のデフォルトで、物理サーバー(以下、土台と呼ぶ)も仮想サーバーもインストールしていると、どちらもディスクを LVM でフォーマットしている。

LVM では論理ボリュームに名前をつけて管理するが、デフォルトの名称も一緒だ。


ここで、仮想サーバーのディスクイメージを、上に書いた手順で読み書き可能にしようとすると、エラーとなってしまい、中身を見ることが出来ない。

このエラーは、土台サーバーで使っている LVM ボリューム名と、仮想サーバーの LVM ボリューム名が同じため、混乱して生じるものだ。


よって、先の面倒くさい手順に、さらにもう1手順、「ボリューム名の変更」を加えなくてはならない。

さらに面倒になった。




さて、土台マシンが不調になっても、仮想マシンのバックアップがあるから大丈夫…


と思っていたら、ことはそう単純でなかった。

仮想マシンをバックアップから起動してみたら、ディスクが不整合を起こしていた。


仮想マシンは、実験などでそれなりにデータを使用しているので、50GByte のディスクを割り振っていた。

…これは、ちょっと多すぎたと思う。でも、最初に容量を決めてしまうと、後から変更しづらいのだ。


この 50GByte を、仮想マシンを動作させたまま、コピーすることでバックアップを行っていた。

週に1度バックアップを行い、4世代前、およそ1ヶ月前のデータまで保存してあった。


50GByte のコピーには、ローカルで30分ほどかかった。

つまり、稼動しているディスクの、頭とお尻の部分で 30分のずれがある、ということだ。


さらに、コピー済みのデータは「もう一台」の土台マシンに送られ、安全に保存されていた。

土台が不調になったとき、「もう一台」のデータから仮想マシンを再起動したことになる。



結果は、先に書いたとおり、ディスク内の不整合が起きていた。

このバックアップ方法はあまりよくなかった、と言うことになる。


ディスク全体としては壊れているが、先の方法でマウントを行い、中身はファイル単位で可能な限り取り出した。




以上の状況を踏まえ、新しい環境構築を行う。


・土台マシンは LVM を使用し、仮想マシンのディスクには、各々論理ボリュームを割り振る。

 また、LVM の領域は余らせておき、スナップショットを撮れるようにしておき、バックアップ時に使用する。

 土台マシンが使用するLVM のボリュームグループ名は、念のため2台のマシンで変えてある。


・仮想マシンは、LVM を使用せず、素直に基本パーテションのみを使う。

 こうすると、土台マシンからディスク内容を見たいときは、「パーテションの認識」だけ行えばマウントできる。


・バックアップは基本的に dump で行う。土台同士のコピー速度を高速化するためと、世代バックアップ容量を最小化するため。



旧仮想ディスクは、ファイル単位で dump して、新しく作ったパーテションに restore した。

ディスクの構造が LVM では無くなり、ただのパーテションになったので、grub.conf と fstab を書き換えた。

また、tune2fs でパーテションにラベルを付けておかないと起動できない。

(fstab 内で LABEL=/boot を参照している)


土台マシンでのバックアップに、こちらの記事の dumpHanoiByDate をいただいた。

その上で、仮想マシンを一瞬停止してスナップショットを撮り、そのスナップショットを dumpHanoiByDate でバックアップするスクリプトを組む。


こんな感じ。


#! /bin/sh


if [ "$1" = "" ] ; then

echo backup [master] or [public]

exit;

fi


xm pause $1

lvcreate --snapshot --size=3G --name $1_snap /dev/VGatom/$1

xm unpause $1


kpartx -a /dev/VGatom/$1_snap


d=`date +%m%d`

./dumpHanoiByDate /dev/mapper/$1_snap1 > /backup/$1/boot.${d}.bz2

./dumpHanoiByDate /dev/mapper/$1_snap2 > /backup/$1/root.${d}.bz2


kpartx -d /dev/VGatom/$1_snap

lvremove -f /dev/VGatom/$1_snap


スナップショットの名前の一部に、サーバー名を入れるようにしてある。

これは、dump が差分バックアップを行う際に、デバイス名をヒントに使用するため。

別のディスクだったら、スナップショットも別名にしないと混乱するってことだ。



最後に、cron.daily でバックアップを取る設定を行う。

取ったバックアップは、もう一台の土台サーバーに転送する設定も行った。


これで、一応安定運用に戻ったと思う。


▲目次へ ⇒この記事のURL

関連ページ

新サーバー購入【日記 18/12/16】

別年同日の日記

04年 SWHインテリア打ち合わせ

14年 続・6502は遅かったのか?

15年 X68k 復活


申し訳ありませんが、現在意見投稿をできない状態にしています

iMacros  2012-09-25 10:01:52  コンピュータ

▲目次へ ⇒この記事のURL

今までに iMacros の話って書いたこと無かったな。



仕事などで、大量のデータが必要になることがある。

データサンプルが欲しかったり、複数部に分割されたリファレンスを手元においておきたかったり。


大抵は、wget でダウンロードする。


これは、WEB ページを丸ごとダウンロードするためのツール。

とあるページを起点に、そこから4回のクリックで到達できる範囲は全部取得する、とか、jpg ファイルに限って取得する、とか、URL のディレクトリ階層が下位の部分のみ取得する、とか、いろいろな条件をつけてダウンロードできる。


これで大抵の作業は完了する。

でも、時々 wget では取得できないことがあるのだ。


こういうツールで引っこ抜かれることを嫌がるのか、ブラウザ判別や cookie による一時キーの発行などを使って、ダウンロードできないようにしてあるページは、結構存在する。




たとえば、w3m を使う、という方法もある。

これは「変なブラウザ」ではあるが、ちゃんとしたブラウザだ。cookie だって使える。


その一方で、w3m は「ツール」でもある。

ダウンロードしたデータの保存も指定できるし、バッチ実行が可能だ。


しかし、近年 Javascript が活用されるようになり、w3m は力不足になった。

w3m では javascript がまともに動かないのだ。




というわけで登場するのが、iMacros。

これはかなり強力なツールだ。


といっても、使うことは1年に1度あるかないか。普通は wget で十分だから。


なので、使うときだけ導入して、使い終わったらアンインストールしてしまうことが多い。




iMacros は、IE、Firefox、Chrome など、いくつかのブラウザで使用できるプラグインだ。

もっとも、chrome 版はまだ開発途上で機能が少ない。


全機能が欲しいなら IE 版がよいのだろうけど、僕は Firefox 版を使うことが多い。


で、iMacros で何ができるかと言うと、名前のとおりマクロを組める。

言い換えれば、ブラウザの操作を自動化できる。



マクロを作るのは簡単だ。

「RECORD」ボタンを押して記録状態にしたら、自分でマウスなどを使ってブラウザ操作するだけ。


これで、大抵の動作は覚えてくれる。

複雑なことをしたい場合でも、自動記録で雛形を作っておいて、修正することで簡単に目的を達成できる。




しかし、これだけだとただの「自動化ソフト」に過ぎない。

iMacros の本領は、HTML の操作機能にある。


HTML を正規表現で検索し、見つけ出した対象に対してアクションを実行できる。

たとえば、特定の URL パターンを持つ画像を見つけ出し、保存したりできる。


このとき、「保存」は、ブラウザの保存機能を呼び出すわけではない、というのがミソだ。

iMacros はブラウザの動作を自動化するソフトだが、独自の動作も持っているのだ。


「保存」を行うと、あらかじめ指定してあるディレクトリに対し、あらかじめ指定した名称で(もしくは、ダウンロード URL に含まれた名称で)、すでにダウンロードしたキャッシュデータを保存する。


再ダウンロードは必要ないので、目の前にあるデータを確実に保存できる。

(状況によっては、リロードできないページと言うのも存在するのだ)



HTML を直接操作しているので、「右クリックで保存」を CSS や Javascript を駆使して禁止しているような場合でも保存が可能だ。

…禁止しているものを可能にするのだから、著作者の意向とは違うことをしているかもしれないことは胸に留めておこう。




ここから少し、iMacros の話ではなく、法的な話になる。


iMacros を使えば、「技術的には」データのダウンロード保存が可能となるかもしれない。

しかし、技術的に可能だから保存してよいかと言えば、そうではない。


データの利用条件をよく読み、ダウンロード禁止と明示されていない場合にのみ、保存が許されると考えてよいだろう。


厳密なことを言えば、「ダウンロード禁止」と謳っている WEB サイトがあったとして、その禁止条項自体の有効性には疑問がある。


WEB の仕組みと言うのは、データをダウンロードして閲覧させるものだからだ。

つまり、WEB に掲示している時点でダウンロードを許可していることになり、「禁止」と明示することに意味が無い。


しかし、規約と言うのは明文化されたものではあるが、杓子定規に解釈するものではない。


ダウンロードが前提である WEB で「ダウンロード禁止」と書いてあるのだとしたら、WEB で閲覧する以上のダウンロード行為…明示的、かつ永続的に再利用するためのファイル保存を禁じていると考えるべきだろう。


この場合、ブラウザが「メモリ上に」ダウンロードして閲覧させることや、「一次的に」キャッシュファイルを残すことは除外される。


つまり、一般的な感覚における「ダウンロード」こそが、規約として明示された「ダウンロード」に該当するわけだ。



逆に言えば、ダウンロードを禁じてはおらず、別の条項…2次利用の禁止や再配布の禁止が定められている場合は、自分自身があとで再度参照するために手元にデータを残すことは禁じられていない、と考えてよいだろう。

(ダウンロード可能であることを前提としなくては、2次利用や再配布の禁止に意味が無い)



ともかく、データ著作者の意向は守ること。

強力なツールを手に入れたとき、これは最低限のモラルとなる。




iMacros のもう一つ便利な点は、「繰り返し実行」という実行方法があることだ。


1つのデータをダウンロードして、次のページに進み、再びダウンロードを繰り返す、ということは、よくある。

普通、プログラムを作るのであれば、ループを組むようにしなくてはならない。

しかし、iMacros ではループプログラムは不要だ。繰り返したい回数を入れて、「繰り返し実行」すればよい。



かくして、100ページにも渡るデータであっても、丸ごとダウンロードして保存しておくことが出来るようになる。




初めて iMacros を使ったのは、知り合いに頼まれて、政府系機関が公開しているデータを大量に取得したときだ。


その機関では多くのデータを公開していたが、古いデータは順次公開終了となる仕組みだった。

消える前にデータを保存しておきたかったそうなのだが、政府系機関なので(?)なぜかセキュリティが厳しく、公開されたデータであるにもかかわらず、wget などでは自由に取得できなかったのだ。



最近久しぶりに iMacros にお世話になっているのは、自分の趣味のデータを保存したかったからだ。


そのサイトでは、データの2次利用、再配布を禁じており、簡単にはダウンロードできないようにしてあった。

しかし、利用許諾を見る限り、ダウンロードが禁止、と言うわけではないようだった。


再配布を警戒してダウンロードしにくいようにしてあるだけだったのだろう。

また、サイトに行けばいつでもデータを見られるので、普通に考えればダウンロードする意味も無い。



しかし、僕としては携帯端末でデータを見たかったのだ。

残念ながら、その端末では WEB 接続してサイトに行くことが難しかったので、iMacros を駆使してファイル保存する方法を選んだ。


こういうときに、小回りが利くツールがあると、ちょっと便利である。




注:もう一つのサイト側の意向としては、ダウンロードされてしまうと広告表示できない、と言うこともあると思う。

 これに関しては、サイトの意向を尊重して、サイトを訪れる際には気になる広告は内容を見てみる、ということで対処させていただいている。



▲目次へ ⇒この記事のURL

別年同日の日記

02年 悪いこと…

13年 シーボルト国外追放の日(1829)


申し訳ありませんが、現在意見投稿をできない状態にしています

発掘  2012-10-12 17:04:27  コンピュータ 家族

▲目次へ ⇒この記事のURL

しばらく前にサーバーのHDDが壊れ、データの保全作業を行った。


…要らないデータが山ほど入っていて、データコピーに時間がかかった。


HDD の容量は年々増え続けている。



高校の頃、父が会社から持ち帰った(レンタル落ちの)オフィスコンピューターには、「8メガバイト大容量固定磁気ディスク」が搭載されていた。(ちなみに、フロッピーディスクは「標準8インチディスク」だった)


大学においてあった PC-9801 は、40M の HDD を20M*2のパーテーションに切って使っていたっけ。

その後、自分が手に入れた X68k は 40M をパーテーションなしで使えた。海のように広大な容量だと思った。


でも、この話を妻にすると、「そんな昔話は知らない」と一蹴される。

妻が最初に使ったパソコンは Mac の Perfoma で、HDD は 340M あった。

僕も X68k の次は Perfoma を使っていた。モデルは違ったが、ディスク容量も同じ 340M だったように思う。



初めて容量が「ギガ」で表現されるようになったときは、すごいと思った。

まさかこんな単位が出てくるとは。


でも、このころは使用するデータ量の伸びもすごかった。

X68k のころは、データは自分で作り出したものが主だったが、この頃には Internet が普及し始めていて、ダウンロードしたデータが主になっていた。

(ちなみに、回線はまだアナログで、28.8kbps のモデムを使っていた。ダウンロードしたデータは「もったいなくて」消せなかった)


また、QV-10 の登場で「写真データをパソコンで管理する」ようになっていた。

これがまた、(現像代がいらないので)気軽に写真がとれてうれしかったが、ディスク容量を圧迫した。


だから、ギガ単位の容量があっても、データを時々整理しないと容量が足りなくなった。




現在は、容量で困ることは余りない。

データが増えすぎて、整理する気も起きない。


新しい環境に移るとき、取捨選択するのが面倒で「全部コピー」してきた。


しかし、サーバーのダウンタイムを最小化するために、サーバー内部のデータだけでも整理しなくちゃならんだろ。

…とおもって、古いデータを時々見直し始めた。


そうしたら、もう存在しないと思っていたデータが、次々出てくる。


10年前に仕事で作成していたが、途中で開発中止になったCGI プログラム…なんてものは、もういらないだろう。こんなものは消去。

10年前の年賀状のあて先データも、もう要らない。というか、今更読み込めるソフトがない。


8年前に家を設計していたとき、「家の間取り体感ソフト」で作ったモデリングデータももういらない。


15年前に、当ページの(!)オフ会で撮影した写真が出てきた。

当ページのオフ会、というだけあって、古いパソコンの写真がごろごろある。


これ、「いつかこのページに載せる」と約束していた気がするが、いつか載せないとな。



そして、当ページの最初期からのファイルを保存してあるのを発掘した。

現在、当ページは自作の CMS を使って、記事のデータを元に HTML を自動生成している。


しかし、昔は HTML タグを手打ちしていた。CMS に移行する際に、それまでのデータを全部保存しておいたものだ。


基本的にはデータは全部移行しているので、当時からある内容に関しては大差ない。


昔使っていた「歴代タイトルロゴ」があるな。

当初は、季節ごとに、季節感のある写真に変えたりしていたのだよ。


各コーナーも、現在はテキストでコーナータイトル作っているけど、当初は画像が入っていた。

(なにぶんアナログモデム時代だったので、「出来るだけ軽いほうが良い」という意見をもらって、コーナータイトルはテキストのみで作るようになった)


過去の日記も発掘した。

この「日記データ」が、CMS 導入時に移行しなかった最も大きなデータだと思う。



発掘した日記は、96年9月28日から、98年10月11日まで。基本的には、毎週1度書いていたようだ。

…あれ? 当ページ、一番古いデータは「1996年10月1日」に作ったことにしてあるけど、実際はもう少し前に出来ていたようだ。


懐かしい日記。元々公開していたものだから、また公開したい気もする。(誰も得しないけど、個人的な思い出・当ページの歴史として)


でも、今見ると公開できない内容もあるんだよね (^^;;


当時はネットは今ほど「気軽に見れる」時代でもなかったし、「簡単に探し出せる」時代でもなかった。

だから、個人情報に当たるものや、企業秘密にあたるものを書いてしまったりしている。


まぁ、問題ないように加筆修正しながら、気が向いたら公開するかもしれません。




▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

家族

別年同日の日記

13年 ジャック・デニスの誕生日(1931)

17年 オーラのプログラム分担


申し訳ありませんが、現在意見投稿をできない状態にしています

Nexus 7 買った  2012-12-06 16:22:55  コンピュータ 家族

▲目次へ ⇒この記事のURL

Nexus 7 買った

すでに話題になって久しいし、特に目新しくも無いけど、Nexus 7 買った、と記録しておく。


Google Play から注文したのは先週の水曜日。

初期に買った人のBlog記事などに寄れば、海外から発送される、とのことだったけど、すでに日本でも人気が出ているし、どうせ国内から発送だろうとタカをくくっていた。


…シンガポールのgoogle法人から注文明細が届いた。

つづいて Fedex で送った、という、メールが届き、発送地は香港だった。


まぁ、のんびりまとうと思ったら、Fedex はやいはやい。翌日には税関に到着し、翌々日の金曜日の朝には横浜の集配センターまで来ていた。

これは、金曜日中に到着するか! …と心待ちにしたが、届かなかった。


ネットで調べると、Fedex は国内に入るまでは早いが、国内に入ると信じられないくらい遅い、という評判が見つかる。

国内配送は西武運輸が行っているが、主に企業向けの運輸会社なので、多くの企業が休みである土日は配送を行わないのが原因らしい。


まぁ、最初からのんびり待つつもりだった。週末は届かないものと諦めよう。

土曜日は子ども会で近所の公園の草取りがあったので、家族総出で公園まで行って、適当に掃除しながらこどもを遊ばせる。


…帰ってきたら、日通航空の不在者票が入っていた。

Fedex の提携先は西武運輸で、「沖縄のみ」日本通運だと Wikipedia に書いてあったが、さすが Wikipedia だ。嘘だった。


というわけで、すぐさま再配達のお願いをして Nexus 7 入手。

目的の一つとして、妻の誕生日プレゼントでもあったので、間に合った。

(僕も共用するのだけどね)


ところで、一緒に使う予定のNexus 7 専用キーボードは国内からの発送だったので、注文翌日には届いていた。




話が前後してしまうが、昨日の日記に書いたように、妻は仕事で借りている Galaxy Nexus (通称「おっきいスマホ」)を頻繁に使っている。

主に WEB で調べ物をしているのだが、出来ることならメールもやりたい、という。


Galaxy Nexus では、仕事で使うべく自分のアカウントを設定しているので、それは出来ない。

じゃぁ、安いし画面広くて便利だし、Nexus 7 買ってしまおう、という流れだった。



本当は、Nexus 10 を欲しくて迷いもしたのだが、Google は「国内でも売る」と言っておきながら売ってくれないし。

出さないなら出さないと最初から言ってくれれば、2000円クーポンが付いてくる期間中に購入したのに。

(今回購入したのは、最近発売の32Gモデルではなく、安いほうの16Gモデル。うちの使い方ならこれで十分なので。しかし、この機種なら1ヶ月前に買えばクーポンが付いてきた)


すでに Android 4.2 発表後だが、Nexus7 は 4.1 インストールで送られてきた。

速攻で強制 4.2 インストール。(普通に使っていると、自動アップデートまで結構待たされる)

妻と僕が共用するので、4.2 の新機能であるマルチアカウント使いたいから。



購入して1週間ほど使っているが、これと言って特筆すべきことは無い。

画面が大きくてすばらしい! ということも特に無いし、非互換に困った、ということもない。

つまるところ、何のトラブルもなく便利に使えているよ、ということです。

ガジェットとしては一番望ましい状態。


#一応、画面が広いのでコミックビュワーが使いやすいとか、WEB が使いやすいとか、そういうメリットはあります。

 でも、画面が狭くても出来ていたことが「ちょっと便利になった」程度で、特筆するほどではないの。


▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

家族

関連ページ

Nexus 7 復活【日記 18/04/24】

Amazon Fire HD 10 購入【日記 19/04/26】

別年同日の日記

07年 妻の誕生日

10年 誕生日に必要なもの


申し訳ありませんが、現在意見投稿をできない状態にしています

nexus 7 と US キーボード  2012-12-12 11:50:02  コンピュータ

▲目次へ ⇒この記事のURL

特にトラブルはない、と書いて日が浅いが、トラブル話。


そういえば、先に日記を書いたときに、すでに1件問題が生じていたのであった。

しかし、問題の切り分けが出来ておらず、「自分の設定のせいだろう」くらいに思っていた。


これが、根が深いので記録しておく。

同じ症状で悩んでいる人は多そうなので、役に立つかもしれない。


時間とともに解決されそうな問題なので、日付に注意しないとまったく役に立たないかもしれない。




先に書いたとおり、Nexus 7 には、専用のキーボードを一緒に買った。

日本では Nexus 7 は「好き者の間で」盛り上がっている程度なのだが、アメリカではかなりのヒット商品になっている。


そのため、Nexus 7 専用の商品が結構発売されている。

専用キーボードはその一つ。


しかし、どこかの会社が販売している、というものでもない。

どうも、中国あたりの会社が作ったものを、OEM で多数の会社から販売させている。

(Nexus 7 を設計・製造している ASUS だって台湾の会社だ。中国・台湾あたりにはよいものは作るのに独自ブランドを持たず、 OEM で販売する会社は非常に多い)


まぁ、いろいろ説明するより、実物のレビューを書いている人もいるので、そちらを読んだ方がわかりやすい。


Nexus 7 とまったく同サイズで、ピッタリはまるカバーとなり、共通の充電器で充電が出来る。

妻は「純正品かと思ってた」というくらい良く出来た製品。


OEM 先によって2580円6980とかなり値段に幅がある。

ハードウェアは全く同じもの(箱やマニュアルなどは違うかも)なので、自分は最安値で購入した。



さて、このキーボードだが、US キーボードである。

レビューのページにあるが、US キーボードとしては「TABキーが無い」という欠陥を持つ。


自分は JIS 派で、US キーボードは若干苦手ではあるが、ものすごく使い込もうというわけではないので、これでも OK。

(HP-200LX だって、変則キーボードだけどベースは US だった)



TAB がないこと以外は、ごく普通の Bluetooth US キーボードだ。


Android は Bluetooth のサポートは行っているが、キーボードを認識するかどうかは「メーカー依存」だった。

それが、4.0 からはキーボード認識が標準になり、4.1 からはレイアウト変更が可能になり、4.2 からはユーザーが追加レイアウトをインストールできるようになっている。(作ることも可能だが、知識が必要)




…と、ここまでが前知識。


先に書いた専用キーボードは、TAB がないという問題はあるが、ごく普通の US キーボードであり、レイアウトは標準で入っている。

これを使えば、キーボード上の刻印どおりの文字が打てる。


しかし、である。なぜか日本語入力中は、JIS キーボードとして認識されてしまう。

さらにいえば、「日本語IMEを通して」アルファベットを入力していても、JIS キーボードとして認識されてしまう。

IME を使わなければ、ちゃんと US キーボードとして認識する。


なにかがおかしい。



IME の存在でおかしくなるのだから、当然 IME が悪いのだろうな、と、標準ではない IME を入れてみる。


ちなみに、Nexus 7 の標準 IME は、iWnn 。Watashino Namaeha Nakanodesu. の略、というのはどうでもいい話だな。(今ネット検索したら、この話当たり前に流布しているのね。15 年前だと、Wnn は有名だったけど名前の由来知っている人は限られていたから、この話するとウケタのに)


これを Google 日本語入力に変えてみる。


…やっぱりあった。Google 日本語入力の設定の中に「ハードウェアキーボード」のレイアウト変更がある。

ここを US キーボードにしたら、IME 入力中でも刻印どおりに打てるようになった。


しかし、別の問題が発生。

Google 日本語入力では、日本語/アルファベットの入力切替に、「半角/全角」キーを使うらしい。


US キーボードにはそんなもの付いていない。タッチパネルの左下に切り替えボタンも出してくれるのだが、いちいち押すのが面倒くさい。

iWnn では Shift + Space で切り替えが出来たのに。



しかし、OS でキーボードレイアウトを選ばせているのに、IME でも選択させるというのも奇妙な話。




問題の根本は、Android 4.0 以前は、公式な Bluetooth キーボード対応がなかった、ということにありそうだ。


さっきから IME と書いているが、これは Android の用語としては正しくない。

Windows でいう「IME」の機能は、Android では「キーボード」の一部だ。


キーボードは、画面上にソフトウェアキーボードを表示し、入力を OS に渡す役割がある。

だから、Windows でいう IME と違って、英語環境でも動作する。日本語(だけでなく、CJK 言語圏)だけの問題ではない。


日本語の場合、ソフトウェアキーボードの表示と入力検知だけではなく、漢字変換までを行っている、というだけだ。

結局、OS から見れば「キーボード」のソフトを起動して任せておけば、入力文字列が送られてくる、というだけで変わりは無い。



つまりは、「キーボード」は、入力をすべて司るソフトウェアだ。

だからこそ、Android が公式に Bluetooth に対応する以前から、iWnn や Google日本語入力が、Bluetooth キーボードの対応を行ってきた。


Android 4.0 以降、OS が Bluetooth キーボードの処理を行うことになった。

ここらへん、どういう枠組みで動かそうとしているのかわからないが、iWnn なども、Android 4.0 以降であれば、OS を通して Bluetooth キーボードのキーを検知すべきなのだろう。


しかし、まだシステムは切り替わったばかりで、アプリケーションが追いついていない。

今までどおり、IME に当たる存在が、キーボードのハードウェアを直接処理している。


そして、その処理が大変だからこそ、「日本語を扱うのだから、キーボードは JIS ってことで」処理しているとしても、心情として理解できる。

レイアウト変更に対応している Google日本語入力が褒められるかといえば、OS と IME の2箇所でキーマップを扱うようになっているという混乱が生じているだけで、あまり良い状況ではない。



結局、これは「Android 4.x は互換性が悪い」という、ありふれた話に帰結するのだろう。




結局、日本語入力したいなら JIS キーボード使え、って話なのかもしれないが、一体感のあるキーボードというのは結構魅力だ。

というか、買っちゃったから使いたい。


当面は、IME を探せば解決できる問題かもしれない。その一方で、IME は入力のしやすさを非常に左右するので、むやみに変なものを入れようとも思わない。


まぁ、今のところ、ここら辺が悩みどころ。

当面は、刻印が違っても気にしない、というのが対処法になりそうだ。

(JIS になっている、と解っていれば、刻印と違っても大体の記号位置は覚えているので)




▲目次へ ⇒この記事のURL

別年同日の日記

01年 12/11

02年 粗大ゴミ

11年 カレンダー

14年 ロバート・ノイス 誕生日(1927)

17年 IP電話


申し訳ありませんが、現在意見投稿をできない状態にしています

CMSプログラム更新  2013-01-05 11:33:54  コンピュータ

▲目次へ ⇒この記事のURL

「魔法使いの森」は、自分で作成した CMS (Content Management System:コンテンツ管理システム)を利用している。


サイトを作り始めたのは 1996年だが、ファイルの管理が面倒になり、忙しくて更新できないこともあって、2000年ごろに一度閉鎖した。

しかし、「内容が有用なので、更新しなくても良いので公開を続けて欲しい」という有難い意見を多数いただき、管理しやすくするためのシステムを自分で構築し、2001年から再公開した。


このときは、自分が欲しいシステムを作っただけで、CMS という概念は知らなかった。

その後 CMS が一般化し(Wikipedia によれば2005年ごろだそうだ)、あぁ、自分が作ったのは CMS だったのか、と認識した。




自分が必要だと思ったときにすでにフリーの CMS があったとしたら、自分では作らなかっただろう。

でも、現状存在しているフリーの CMS が自分のニーズを満たすかというと、そうではない。


自分が欲しかった機能、というのが、世間のニーズとは少し違うのだ。


何よりも自分で作って便利なのは、常に全体を把握していることだ。

新しい機能が必要となれば追加できる。


もっとも、追加したいと思って面倒で追加できない、というものもある。

今回追加したのもそんな機能。もう、5年位前から欲しかった。




その機能とは、「版の管理」である。

ページの内容を書き換えたとき、古い内容を上書きするのではなく、保持しておく。


Xanadu には構想段階から存在していた考え方だ。



自分のページ、記述が古い部分が多数ある。

とりあえずは「追記」で済ます場合が多い。しかし、これを繰り返すとごちゃごちゃになる。


大幅に書き直したいなぁ、と思うのだが、有難いことにページにリンクしてくれている人がいる。

ただのリンクでなく、内容に言及していたり、一部引用していたりする。


…これは困った。内容を大幅に書き換えると、リンクの期待するものと変わってしまう。


ここで、「版の管理」が必要になる。

ページは更新するが、更新前のページをいつでも参照できる状態に残しておく。



実は、この CMS をベースにして改造したものを、とある大手企業に販売したことがある。秘密保持契約により、どこの会社かは明かせないけど。


改造と言っても、結局9割9分書き換わってしまって全くの別物なのだが、そちらのシステムには「版の管理」がある。


ただし、こちらの場合は閲覧者には見えない。作成者側で、一度公開した内容は永久に保存し、後で内容を確認したり、使いまわしやすいようにするためのものだ。

複数の担当者で記事を作れるようにしてあるため、責任の所在を明確にする意味でも必要なシステムだった。



このシステムの開発完了がもう5年位前で、そのときから自分のシステムに、少し形を変えた版の管理をバックポートしたかったの。

それがやっと作れた。作る気になったら1日でできたけど。




話はいきなり飛ぶが、自分が翻訳を手伝った「Llama」が、年末に正式公開になった。


で、翻訳前に、英語版を前提にしながら、部分的に「β訳」で書いていた Llama のページ群を書き換えたい。

この際、先に書いた理由で元のページも残しておきたい。これが、版の管理を思い切って作った最大の動機。


β訳と最終訳で、ずいぶん日本語も、方針も変わったからね。


というわけで、まずは Llama 関連の話題から書き換えていきます。



▲目次へ ⇒この記事のURL

別年同日の日記

03年 続・C700レビュー

08年 お年玉

09年 寝ズ正月

12年 あけましておめでとうございます

12年 最近のうちの子

15年 年越しそばの起源

15年 妻の実家へ


申し訳ありませんが、現在意見投稿をできない状態にしています

Windows8 導入  2013-01-06 10:46:49  コンピュータ

▲目次へ ⇒この記事のURL

Windows 8 の発売前から、期待するような日記書いてきたが、正式版が出てから全然触ってなかったりした。


一応、店頭でいじってみたりはした。まぁ、「こんなもんか」という感じ。

でも、そろそろ割引キャンペーン終わる。そろそろ入れておこうか、と思い立った。


割引キャンペーンは1月末まで。

1万5千円程度の Win8Pro が、ダウンロード販売に限り 3300円で購入できる。まぁお得!




というわけでダウンロードして、インストール。

ダウンロードに45分くらいかかったか。でも、これは単に「ダウンロード」の時間なので、作業のバックグラウンドで処理できる。


そのままインストールもできるし、DVD を作って、そこからインストールもできる。

ここは DVD を作っておく。でも、再起動はしないで(DVDは使わないで)そのままインストール。


この作業は結構長い。PC が使えない状態で1時間半くらい。夕食を食べている間に行ったので正確な時間はわからないけど。


これで、Windows 7 の設定をそのまま引き継ぎつつ、Windows 8 にアップグレードできた。




インストール開始時に、互換性がないソフトについての警告が出る。

ガジェットは Windows 8 では使えません。Office 2000 は使えません。


ガジェットは、セキュリティがザルだったので廃止になった。便利に使っていたが仕方がない。

Office 2000 は、サポート期間が過ぎたので MS としては「保証しない」という意味で動かないわけではない。


ひとしきり使ってみる。


…何も変わらない。Windows 7 で作業していたことが、なんの手間もなくそのまま続けられる。



Windows 8 は、「変わりすぎ」だという批判が非常に強い。

でも、使ってみればよくわかる。なにも変わっていない。3300円出した価値はどこにあるのか、というくらいに変わっていない。



と、金だけとられた詐欺のように書くとマイクロソフトがかわいそうなので説明すれば、もちろん変更はある。


起動は、宣伝通り確かに早くなっている。これはもう、素晴らしいほどに速い。


でも、もともとハイバネーションを積極的に利用していた。

こちらは「速くなった気がする」程度で、あまり恩恵がない。


セキュリティモデルも進化しているそうだが、これは使用していて感じるようなものではない。


スタートメニューがなくなった、とよく言われるが、実際マイクロソフトがいうように「あまり使われていない」機能だったと思う。

僕はスタートからアプリを起動、なんてことは時々しかやらない。よく使うアプリは XP 以来の伝統で QuickLaunch を使う。

QuickLaunch は Vista 以降標準では表示されなくなったが、7 でも 8 でもちゃんと使える。


たまにしか使わないソフトはどうするのか、という人もいるだろうが、見えないだけでスタートメニューはちゃんとある。

マウスカーソルを左下にもっていけば、「スタート」という表示が表れて、クリックするとスタート画面が表示される。


「スタートメニュー」ではなく、「スタート画面」だ。

メニューは、多くのソフトが縦に(1次元に)羅列されて見にくかった。

画面では、2次元的に並ぶのでわかりやすいし、位置を自分で好きなように並べられるし、普段使わないものを隠す機能もついている。


使いやすくなったので大歓迎。


ちなみに、「ランチャ」として以外の機能は、やはり左下で右クリックすると出てくる。

こちらも今まであった場所に、あるべきものがちゃんとおさまっているわけで問題はない。



Vista で取り入れられた「Aero」UI は、完全ではないが廃止された。


ウィンドウの枠は半透明ではない。あれ、邪魔だったから別にいい。


ALT + TAB を押したときにウィンドウが 3D っぽく斜めにならぶ「Aero プレビュー」もなくなり、XPのときのウィンドウ切り替えに戻った。これもこちらのほうが使いやすい、


すでに書いたが、Vista で導入されたガジェットもなくなっている。

つまり、Windows 8 は、UI 的には XP に戻った。



なくなったばかりかよ、といえば、もちろんそうではない。

タスクマネージャはつくりかえられていて、ちょっと驚いた。今までのものよりもわかりやすい。


ほかに気になったところは今のところないのだけど、



というわけで、Windows8 は、UI に関しては XP に戻り、不便だったスタートメニューを改良したもの、となっている。

Vista や 7 がなかったことにされた、というわけではなく、内部構造は堅牢になっているし、セキュリティモデルもよりよくなっている。


というわけで、3300円くらいの価値は十分にある。




おいおい、Modern UI には全く触れないのかよ、という向きもあるだろう。

それこそが Windows 8 「らしさ」ではないのか。


そう、一応は期待していた。

でも、今のところ面白いものではない。


まだ日本語対応の Modernアプリが少なすぎるのね。

あるにはあるけど、「選べる楽しさ」がなければ意味がない。


bing 検索とか Mail とか、一応試してみたけど、全画面を切り替えながら使うほどの価値が見いだせなかった。


というか、bing 検索が起動するだけで遅すぎる。

デスクトップの Chrome なら、(常駐状態にあるので)すぐ起動するし、すぐ検索できる。


まぁ、Modern UI が悪いとは思わない。

ウィンドウがないだけ、GPU が全力で突っ走れるし、ゲームなどには向いているだろう。


以前に書いたように、僕は初心者にはウィンドウシステムでないほうがよい、と思っている。

その意味でも、全画面を覆ってしまう Modern UI はわかりやすいと思う。


ただ、今はアプリが少なすぎて十分な評価対象にならない、というだけ。




そうそう、不安に思っていたことの「答え」をひとつ。

同じく不安な人はいるかもしれないからね。


最初に表示されるのはスタート画面ですが、デスクトップはバックグラウンドで勝手に走り始めます。

だから、デスクトップに切り替えた時には、すでに「スタートアップ」のプログラムは走り始めている。


スタート画面の表示まで待って、デスクトップをクリックしてからさらに待たされる、ということではないです。




些細なトラブルについても触れておきましょう。


Win7 から Win8 に移行すると、ほとんどのソフトがそのまま使えます。

でも、Avast! は「ネットワークシールド」が使えなくなりました。


既知の現象のようです。Avast! を修復インストールすれば治ります。




▲目次へ ⇒この記事のURL

関連ページ

続・Windows8【日記 13/01/09】

別年同日の日記

03年 仕事始め

04年 おもしれぇ

09年 Q&Aコミュニティ

10年 あけましておめでとうございます

19年 松の内にやったこと


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -