2012年4月28日土曜日

MacBook (late 2009)にWindows 8

火・水曜とマイクロソフトのセミナーを受講して、WIndows 8は正しい方向に進んでいると思ったので、まずは職場のWindowsマシンを7 Professionalから8 Consumer Previewへと移行してみたところ、全く何の問題もなく動いてしまった。従来のアプリも一切問題なくそのまま動いた。唯一、Microsoft Security Essentialだけ、移行途中にアンインストールしなければならない(8には最初からAnti-Virusのしくみが入っている)が、それだけのことだった。

というわけで、自宅に置いてある白MacBook (late 2009)のBootcamp環境を7 Proから8にしてみた。これも同様な手順で簡単に終わったのだが、問題が残った。

まず、キーボードが日本語配列の設定だった。物理キーボードはUS配列なので、これでは困る。しかし、Windows Updateをかけると15個のアップデートがあり、再起動後には英語キーボードとして認識された。で、これは解決。

ただし、デバイスマネージャで見るとわかるが、Apple Keyboard/Touch Padはエラーになっている。しかし、輝度変更などMacのファンクションキーに配列されている機能は使えている。一方、Touh Padは動かないままだ。

BootCampのバージョン2~4まですべてのドライバを試したが、どれもだめ。ものは試しと、Multitouch Vistaを入れてみたが、コントロールパネルに「ペンとタブレット」などの項目は入るが、これといった設定はできないし、ドライバが無効なのはかわらない。

ネットで調べてみたが、仮想環境で使っている場合でも、VMとセットになるWindows向けツールは対応していないようで、こればかりはいかんともしがたいようだ。

というわけで、Touch Pad、要するにマウスについては、USB接続するしかない。BlueToothは生きているのでMagic TrackPadはどうかと思ったが、面倒なので試していない。まだ正式版ではないので、夏のRCもしく正式版が出る頃にはAppleがBootcampのバージョンを上げてくるのだろう(Mountain Lionに入ってくるかもしれない)。それまでは待ちというのが現状の結論ではないかと思う。

2012年4月26日木曜日

この際だからioBook Airについて一言いっておく

久々に自腹でなく東京出張したついでに、秋葉原へ寄ってきた。というより、秋葉原が久々なので、いろいろな意味で知らないことが多かったのだが、それはそれとして、ioBook Airである。

風のうわさで聞いたような気がしていたがすっかり忘れていたこの製品、なぜかイオシスでない別のショップ店頭にあり、遠目で見てなるほど立派な中華だと感心。そして、仕事後の秋葉ショップ閉店時間に追われるようにあちこち巡った挙句、用はないのだが念のためイオシスで確認してきた次第。

で、ネットで検索してみたのだが、実物を見ないでいろいろ言っている輩が多すぎる。また、ニュースサイトの記事も煽りすぎだ。

実物に実際にさわり、店員の正直な話を聞けばわかるのだが、あらゆる部分に「なんちゃって感」溢れまくりの製品なのだ。実際いまCupertinoでデザインされた「ほんまもん」のAirでこの記事を書いているのだが、あれは共通部品らしきところはかなり少ない。

少なくとも、アルミユニボディは、素材が違う。というより、金型が違う。図面は流用しているのだろうが、いろいろ作りかけて失敗した痕跡があるのだ。

まず右側。Mini DisplayPortとUSBはそれらしいが、その手前にmini HDMI出力があり、さらにその手前に謎の横長の穴がある。これはどうも特殊形状のコネクタで有線Etherを出したかったらしい残骸とのこと。回路設計に失敗したのか、どうにも動かないらしく、イオシス側で端子部品の実装をやめる指示を出し、コストを下げたらしい。

というわけで、虚しく内部基板を覗くだけの空気穴というか好意的にとらえれば通気口がぼんやりと空いているという状態。

次に、左側面だが、ACとUSBは普通にあるが、イヤホンジャックのあるべき場所はSDカードスロットになっている。そして、イヤホンジャックの穴はその手前となる。

で、Cupertinoで設計されたものと並べてみれば、この中華はそれだけ余計なパーツを入れたことにより、筐体が厚くなっているわけだ。

また、トラックパッドはやや小さめだ。感触も、梨地といえばきれいだが、ざっくりいうと10000番台の紙やすりのような雰囲気を覚えた。筐体も同様に、ややざらざらしている。

トラックパッドが小さくなったのは、キーボード部分に押しやられたためと考えられる。

キーボードについてなぜ誰も言わないのか不思議なのだが、キートップは8bit時代懐かしの「消しゴム」風である。四角い濃いグレーの消しゴムが3mm近くは突出していると考えてもらいたい。その上に文字が印刷というか転写されている。消しゴムそっくりの手触りと、押したときのぐにゃり感はまさに8bit機のそれである。NECならPC-6001とかMSXとか、記憶がある人は各自想像してもらいたい。そして、キートップがそんな感じなためなのか、いわゆる遊びのスペースが多くとられている。そのことで、キー間隔が広がり、全体で面積をたくさんとる結果になっている。

液晶は正直、どのぐらい違うのかわからなかった。液晶パネルは同等品がいくらでもあるので、まぁそのへんで手に入りやすいものを使っているのではないかと思う。ロットによって違っていても不思議ではない。だって中華だもの。

背面の光るイオシスのロゴをどうこう言う意見がネットでは目立つが、こうした全体の「なんちゃって」感からすれば、このロゴなど別に目立つ欠点とはいえない。ダメ押ししときました、という店長の声が聞こえそうだ(大阪本店は知らないので、本人がそう思っているかどうかはわからないけれども)。

で、動いているWindows 7だが、別段言われているほど悪くはない感触だった。

さて、なぜ僕がこれをわざわざ見に行ったかというと、Windows 8のMetro環境でスナップ表示まで手っ取り早く使えるマシンとして、4万弱ってのはまぁそこそこいけてんじゃないの、という理由に尽きる。中古のもっと安いマシンで1366x768の解像度はなかなか見当たらないし、その上でSSDかつ4GBメモリならば、そこそこ妥当な価格設定ではないか、ということだ。

そこでWindows 8について尋ねてみたのだが、「Wi-FiとBlueTooth両方をひとつにしたチップが一般的じゃないやつで、ドライバの互換性が怪しい」ということだった。Windows 7用のドライバはチップメーカーからダウンロードしてくれば動くのだが、Linuxだとどうもまともに動いてないみたい、という話。大阪方面で、動くドライバがあったとかなかったとかいう声は出ているらしい、というのが現状とのこと。

こういうマシンでWi-Fiなしはかなり厳しいところだが、「普通の100MのUSBアダプタならWindows 8でもいける…と思いますよ」ということだった。たぶん、そうなんだろう。

結局、Wi-FiもBlueToothも忘れて有線で開発用に遊ぶ「なんちゃってマシン」ならば、十分いけるというのが僕の全体評価。外で本気で使うマシンではない。だって消しゴムキーボードだもの。ごりごりコードを書くにはあまりにもストレスフルだ。

ただ、画面はおんなじ雰囲気で、まぁ高精細ではあるから、その部分ではいいかもしれない。だから、開発したアプリの動作確認には十分だと思う。

結局ある意味、Windows 8標準搭載マシンが出るまでの「つなぎ」の期間である「いま」でのみ「うまみ」がある製品ではないだろうか。8ではマウス操作はオプショナルだから、本来タッチパネル搭載が望まれるのだが、Windowsが動くタブレットはまだまだ高い。ちょっと歩いて探してみたが5万ぐらいする。そこまで払うのかどうか迷った心の隙間に忍び寄ってくるマシンだと思う。

2012年4月19日木曜日

Video.jsの簡単なつかいかた

授業でビデオを観る課題などをよく出すのだけれど、Flashには死んでほしいので、授業のMoodleではmplayerモジュールは緊急避難的に使って、普通のHTMLリソースのなかにvideo要素を手で書いて対応していました。

ところがなんだか、いったんMoodle 2.2+にして大はまりしたあげく1.9に戻ってきたら、なぜだかいままでのビデオが全く表示されなくなり、一念発起してVideo.jsを使えるように無理やりlib/weblib.phpを書き換えたりなどしました。ほんとはちゃんとモジュール開発すべきなんですが、時間がなかったもので。

というわけで、Video.jsです。

なかみはとても単純で、CSSとJavaScriptで書かれたHTML5ビデオプレーヤーに、念のためFlashにfallbackするためのswfがついているという構成。設定は、CSSをheader要素間にlink要素で入れて、あとbodyにscript要素としてJavaScript本体を読むように書くだけ。

と、これだけならオリジナルサイトに書いてあるだけのことなんだけれど、ちと大きくはまったのが字幕なので、そのことについてだけ記すことにします。

まず、字幕(ここではsubtitlesということにします)は、WebVTTを使います。まぁ、一応W3C的には標準。だけど、従来の字幕とはやや趣が違うフォーマットなので、直接これを編集できるアプリケーションは、なんかMSが出しているとかいう話ぐらいしか見当たりませんでした。

でもまぁ、なんとかなるという話を以下に。

まず、ここはやはりオープンソースなAegiSubを使うことにします。これの素晴らしいところは、音声波形ビューアで、適当に音声の切れ目らしいところを単位にして、自動的に次の字幕項目を入れられること。必ずしもきれいにいくわけではないので、多少マウス操作で調整したりはしますが、時間の数値をいじることを全くしないで字幕トラックを作れるというのがたいへんありがたいと思いました。出力形式は、SRTにしときます。なぜかというと、WebVTTとかなり近いから。

とはいえ、WebVTTのほうが表現力は高く、縦書きの字幕を表示できたり(bidiも考慮されてる)、表示位置の指定ができたりといったようなことはあります。そのへんはASSから変換できたりするといいのかもしれないのですが、まぁそれはそれ。

SRTからWebVTTを作る手順は以下のとおり。

  1. SRTに入っている通し番号を削除する
  2. 1行目に先頭から「WEBVTT」と書き、2行目を空白行にする
  3. 表示タイムスタンプの時間表記を、ミリ秒の前の「,」を「.」に置き換える
仕様書に従えば、たったこれだけのことでOKということになります。vi使ってれば一瞬ですね。

%s/^[0-9][0-9]*$//
%s/,/./g

ところがよくわからんのですが、いまのVideo.jsは、仕様書ではオプションとして定義されているタイムスタンプの「hour」の項目があるとダメっぽいのです。hourなしでどうやって59分以上の長さの字幕を作るんだというと、60以上の数字にするんだとか。桁数については「59を超えたら60の剰余とし、商を上の位に上げる」的なことしか書いてないので99分超えても大丈夫なのかもしれないけどやってないので不明。

というわけで、残念ながらタイムスタンプから時間を消す編集が必要。こんな感じでしょうか。

%s/^00://
%s/> 00:/> /

で、まぁ、1時間以後は毎分ごとに60を足してやるみたいな感じでしょうか。もうこうなってくると、スクリプト書きたくなる感じですが、とりあえずこんなところで。

あと、オリジナル設定だと字幕は10ptベースの1.4emなので、日本語の表示にはちょっと小さすぎる感じです。2emにしたらいい感じになりました。あと、text-shadowとかお好みでタイプフェースをいじる等はやってくださいという感じです。font-familyもarial, sans-serifぐらいしか書いてないので、僕は日本語フォントを追加しておきました。ヒラギノとか。

2012年4月2日月曜日

回路シミュレータQUCS

電子回路の設計や学習に、PC上で回路の実験や測定ができる回路シミュレータは便利だ。それこそ、単純なオームの法則でもさくっと回路図を描いて抵抗値や電圧・電流などを測定できるので、年齢を問わず教材として使えるものだと思う。

業界標準ではSPICEということになっていて、一般的にはリニアテクノロジー社のLTSpiceをダウンロードして使うことになっている。LTSpiceは同社のアナログICなどのデバイスを買ってもらうために無償で配布している(専門家はもっと高級なものを購入するのだろう)。

問題は、Windows専用ということだろう。

そこで、他のOSを使う人で、GUIがほしいよという人はQUCSを使うらしい。Qt3ベースで、GUIのマルチプラットフォーム化を実現している。また、各国語の翻訳データも入っているので、日本語メニューに設定変更できるのも授業で使うにはありがたい。

念のため、2011年秋頃最終更新の0.0.16をダウンロードして入れてみた。Windows用バイナリは同じSourceForgeの別リンク先からとってくる。Macの場合は、MacPortsに入っているので、適当にパッチを流用するなどすれば手動でも入れられるだろう。それより、Qt3が巨大なフレームワークなので、MacPortsではQt3のコンパイルで一仕事になるように思う。

問題は、日本語メニューの表示だ。Windows 7の場合どうなるか、という記述はあまり検索上位に上がってこないようだ。なので、一応書いておくと、
  1. Languageを「Japanese (jp)」にする
  2. その2段上にある「Font (set after reload)」を「Meiryo UI」にする
  3. ScriptをUnicodeにする(と、いいのではないかと思う)
という手順になる。最も注意すべきは、「2.」だ。必ず日本語の「UI」書体を選ばなければならない。間違えて「MS ゴシック」などにすると、グリフのバウンディングボックスが負の値になるのかわからないが、一文字の大きさが巨大な横長になってしまい、もとに戻すのも一苦労だ。運がよければ、言語を「English (en)」にした時点でだいぶましになるが、そのあとで「Default Value」のボタンをクリックして、「Apply」または「OK」をクリックしなければもとに戻せない。レジストリをいじって解決することもできるかもしれないが、探した範囲では設定は見つからなかった。かといって設定ファイルも見当たらなかったし、再インストールしても以前の設定が残るので手が出ない。

なお、QUCSの開発は止まっているというような記述も一部にある。後継プロジェクトはQucsStudioらしい。QUCSにもASCOという最適化ツールやOctave(MatLabのGNU版)スクリプトを用いたシミュレーション結果の視覚化などが同梱されているが、QucsStudioはさらに多数のデバイスやシミュレーション手法、プリント基板設計やガーバーデータ出力などまで含むようで、なんだかたいへんなことになっている。Qt4ベースにも書き換えられている。しかし、GPLのQUCSをベースとしながらソースコードが公開されていないしWindows専用ということで、いまひとつ食指が動かない(起動はしてみたが)。いまのところ言語ファイルも英語とドイツ語のみ(ドイツ語のqmファイルから日本語に翻訳すればいいのかもしれないが)。

それから、コマンドラインでよければ、NGSPICEというプロジェクトもある。各種OSで動く(ただしXが必要なので、WindowsではCygwin環境ということになる)。SPICE3に準拠しているので、本格的にエンジニアリング目的で使うなら、こちらのほうがいいのかもしれない。

ついでに、QUCSはgplEDAというGPLに基づく電子回路設計ツールスイートプロジェクトの一部ということになっていて、プリント基板設計ツールや、Arduino本でおなじみの、ブレッドボード配線図などが描けるFrizingなどがファミリーとなっている。gEDAだけでも、シミュレーション以外の、回路図を描いたりプリント基板設計したり、ガーバーデータ出力したりすることはでき、WindowsでもMacでも動くので、一見の価値はあるかもしれない。