XPモード入れた

Ubuntu 12.04 64bit LTS の VirtualBox 4.2.6 r82870 の GuestOS の Windows 7 Professional 64bit で XPモードをインストールしようと思った。

客先に納品したパソコンで Windows 7 Home premium 64bit だったのだが、弥生会計09 をインストールしようとしたら、無情にも「64bit 環境にインストールできません」と拒否られた。

Windows 7 の64bit版は、32bit アプリケーションだと、C:\Program Files(x86) にインストールされるから大丈夫だと思っていたが、インストーラでOS種類を識別して弾くものがあるなんて思ってもみなかった。

Windows 7 Professional 64bit は仮想マシンだが、その仮想マシンの中で仮想マシンを動かそうというのは、かなり無茶な話。

Screenshot_from_2013-01-19 17:32:35

Ubuntu 12.04 64bit LTS のVirtualBox で動かした Windows 7 Professional 64bit上で、XPモードのセットアップ

Windows の純正仮想マシンは VirtualPC というプログラムだが、これで XPモードのセットアップを行なうと、途中でUbuntu 12.04 の VirtualBox ごと落ちる。

Screenshot_from_2013-01-19 18:22:37恐らく、Microsoft の事だから、他者と差別化の為にかなりお行儀の悪い事をやってると思われる。

18回ほど頑張ってみたが、無理っぽいので、他の方法を検索すると、
Virtual PCではなくVirtualBoxでXPモードを実行する方法 : ライフハッカー[日本版].
ってのがあった。

しかし、Oracle VM VirtualBox 4.2.6 をインストールした状態で、VMLiteWorkstationPlugin をインストールしようとしても、「Sun VirtualBoxが無いよ。ダウンロードページを表示する?」(適当意訳)と言ってくる。

Virtual PC の XP モードを VirtualBox で動作させるために VMLite プラグインを利用する | すぐに忘れる脳みそのためのメモ.
を見ると、どうやら、Sun Microsystems の頃の古いVirtualBox を入れる必要があるようだ。

で、VMLiteを入れたら、XPモードの設定が始まり、無事インストール…と思いきや、XPのネットワークインターフェースドライバが入らない。

ネットが使えない仮想マシンで外部からファイルを入れるには、CDに焼く位しか手が無いが、面倒なので、再度VMLiteのインストールやり直し。

これで、Oracle VM VirtualBoxのバージョン上げれば、VirtualBox で XPモードとなるはずが、VirtualBox 起動しても仮想マシンが存在しない。再度VMLite のインストールやり直し。

何か、やる度に結果が違って、不安定極まりない。

Screenshot_from_2013-01-20 15:40:57

で、何とかここまで来た。

これから VirtualBox を最新版にしたら、仮想マシン on 仮想マシンでWindows XPが動くようになるが、「客先のサイトをWindows XPのInternet Explorer 8 で見たらどうなるの?」位の使い途しかないな。

PRN137見っけ

家のサーバーの時計の為にGPS測位しているが、xgps というGUIで測位状況を見る事ができる。

そのGPS で MTSAT-1R(PRN129)は把握していたが、運輸多目的衛星MTSAT-2(PRN 137)を初めて補足。

prn137□137 のマークがそれで、MTSAT-1Rよりちょっと東寄り。

時計合わせの方は、

誤差が大き過ぎるのか、参照されていない(^^;
時間合わせは主に、nict 様の世話になっている。

監視カメラシステムの ZoneMinder がCPUパワー食うのと、USBのGPSではシリアル通信のタイムラグが大きいのかな?

まあ、ネットワーク途絶時に、1秒以内誤差ならそれでよし。

Firefox 17でE4Xが無効に

ブラウザゲームを快適に操作する為の Greasemonkey ユーザースクリプトが急に動かなくなった。

プログラムソースを追っかけると、E4Xのヒアドキュメント形式変数代入や、toXMLString() が動いてない。

https://blog.mozilla.org/addons/2012/11/08/compatibility-for-firefox-17/

Turn javascript.options.xml.content off by default. This disables E4X entirely for content. E4X is also on a removal path, so you shouldn’t use it.

なんて書いてある。使うべきでは無いと言われても、ヒアドキュメントやめて、文字列を” で括って、変数展開部分を + で繋いでとかチマチマやっとれんわ!

まあ、取り敢えず動けばいいやって事で、アドレスに about:config で
javascript.options.xml.content をfalse から true に変更し、無事動いた。

この動けばいいやってズボラな姿勢は、いずれ壮大なしっぺ返しを食うだろう 🙂

Ubuntu 12.04 64bit 環境にandroid sdkいれたった

android のSDKをダウンロードして、展開し、android-sdk-linux を /home/noizumi/src/ へ持ってくる。

Installing the SDK | Android Developers. を読みながら設定。

cd /home/noizumi/src/android-sdk-linux/tools
./android sdk

で、Android SDK Manager の GUIのメニューが出てくる。わしのPCは、Javaを入れてあるので、入れるところは割愛。

android 4.0.3 をインストールすると、HTCDEVMOTDEVに登録しないとダウンロードさせてくれないので、アカウント作成。

インストールが完了したら、toolsメニューの 「Manage AVDs…」で仮想デバイスを作成する。

[New..]ボタン押して、
Name: avda4
Target: [Android 4.0.3 – API Level 15]
CPU/ABI: [ARM(armebi-v7a]

で、「Create AVD」を押す。

Android Virtual Device Manager 終了して、Android SDK Manager終了して、コマンドラインで、

./emulator -avd avda4

とやったが、 libGL.so が無いって怒られる。
libGL.so のシンボリックリンクを /usr/lib に貼った。

$locate libGL.so
/usr/lib/fglrx/libGL.so
/usr/lib/fglrx/libGL.so.1
/usr/lib/fglrx/libGL.so.1.2
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2
/usr/lib/x86_64-linux-gnu/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2
/usr/lib32/fglrx/libGL.so.1
/usr/lib32/fglrx/libGL.so.1.2

AMD Mobile Radeon の fglrx ドライバを使ってるので、32bit 版の fglrx のlibGL.so を使う。

sudo ln -s /usr/lib32/fglrx/libGL.so.1.2 /usr/lib/libGL.so

再び、

./emulator -avd avda4

何か、グラフィックハードウエアアクセラレーション使ってるらしいのだが、凄く遅い。

画面はわしが開発中のサイト。

 

 

 

 

大人の事情により、Xpria での見た目を確認しないといけないので、Xperia の SDK も入れる。

Xperia X10のSDKはソニーの開発者サイト検索して、
http://developer.sonymobile.com/downloads/tool/sony-ericsson-xperia-x10-add-on-for-the-android-sdk/
から落とした。

展開して、/home/noizumi/src/android-linux-sdk/add-ons に XPERIA-X10_r1 をぶっこむだけ。

,/android

で、Android SDK Manager 呼び出して、Android Virtual Device Manager で、

[New..]ボタン押して、
Name: XperiaX10
Target: [X10(Sony Ericsson Mobile Communications) – API Level 4]
CPU/ABI: [ARM(armebi]

で、「Create AVD」を押す。

Android Virtual Device Manager 終了して、Android SDK Manager終了して、コマンドラインで、

./emulator -avd XperiaX10

 

と、こんな感じ。

jQuery Mobile 1.2.0 使ってたけど、動かないので、1.1.0 に戻した。

jQuery Mobile は(・∀・)イイ!!

 

 

 

 

参考:
Android SDKをインストールする [AndroidでHello Worldする]
.
Android開発環境構築(その 8):SHARP SDK、SonyEricsson Xperia SDKアドオンの追加: tomcat27’s 備忘録
.
Android エミュレータの導入 » Blog System of .NET.

Ubuntu 12.04 LTS 64bit に Google 日本語入力入れた

ubuntu 12.04.1 へ Mozc をインストール « やおよろグッ!を参考に、Google 日本語入力を入れた。

今までは、Anthy を使っていたのだが、自分の名前入力するのも結構大変で、「野泉雄嗣」と入れるにも「の」の単独変換、「いずみ」の単独変換、「ゆう」の単独変換、「じ」の単独変換と、毎回面倒な手順で変換作業を強いられるのが結構苦痛だった。

それと、日本語入力をしていて、よく使う単語が第一候補に出ず、何度もスペースキー連打で変換候補を何ページにも渡って探すとか、それはもう大変だった。それと、老眼も手伝って、後で入力した文書を見て、「何でわしはこんな漢字を入力しているのだ!?」と仰天する事もあった。

Google 日本語入力に変えたら、無茶苦茶日本語入力が捗るので素晴らしい。大体、スペースキー一発で自分の思った候補が出ているのでスペースキー連打する回数が格段に減った。なぜ、今までこれを使わなかったのだろうと後悔する事しきりである。

リモコンPC-OP-RS1こうにう

mythtv で WinTV-PVR USB2でテレビを観ているが、チャンネル切り替えを手動で行わないといけないのが面倒臭い。

そこで、パソコン用学習リモコンPC-OP-RS1をAmazonで買った。
設定とか、PC-OP-RS1 の制御は次のページを参考にした。

・仙石浩明の日記: 赤外線リモコンを Linux からコントロール
まやろぐnounai – Linux からエアコンを操作

で、irrr のスクリプトに、赤外線のコード仕込んで、/usr/local/bin へ配置。
そして、次のスクリプトを作成

[/usr/local/bin/chchg.sh]
#!/bin/bash
irrr $1
v4l2-ctl -d /dev/video1 –set-input=1

mythtv の方は、mythtv-setup の 5.Input Connection にて、外部チャンネル変更コマンドの項目に、chchg.sh を指定してやれば、選択したチャンネルの数字を第一パラメータに設定してスクリプトを呼んでくれる。

ただ、このパラメータは、mysql データベース mythconverg の channel テーブルの freqid フィールドに設定された数字となるが、mythtv-setup でチャンネルを作っても、この項目は空欄となり、設定されない。

従って、phpMyAdmin などで、手動でチャンネル番号を書き込んでやる必要がある。

mythtv で操作が完結していい感じ 🙂

mythtv 0.25.2 で composite 入力を使う

mythtv 0.24までは composite 入力の設定ができていたのが、0.25 からチャンネルスキャンして、受信できたチャンネルを初期チャンネルにするというアルゴリズムになり、Video Input などは指定不能になった。

しかし、mysql のデータベース mythconverg を直接弄る事で、WinTV-PVR USB2 のビデオ入力が使用可能になった。

肝は、mythtv-setup で、 5.Input Connectionsを開く

この画面だと、既に開始チャンネル番号1000が入っているが、最初に設定した時は、Please add … になっているので、このまま設定を完了させる。

次に、6. Channnel Editor を開く。

チャンネル番号1000番を作成し、mythtv-setup を終了する。

phpMyAdmin などで、データベース mythconverg の cardinputテーブルの startchanフィールドを

Please add → 1000

に変更する。これで Composite が使用可能になる。

libreoffice 文字化けの件で、Ubuntu 12.04 LTS の mythtv のせいじゃないかと思ってたが、やっぱりそうだった。 fonts-droid パッケージがインストールされ、このパッケージを削除しようとすると、mythtv も道連れで削除される。

fonts-droid が入ると、libreoffice と google-chrome が文字化けするので、mythtv はソース取ってきて野良ビルドした。

とは言え、TZ-HR400P は余ってたハードディスクHD-PF320U2-BKを付けて、72時間ほど録画可能になってるから、チャンネル桜録画するには mythtv 要らなくなってるんだよなあ…。

libreoffice 文字化け

Ubuntu 12.04 64bit のlibreoffice 3.5.2.4 にて、また豆腐文字化けが発生した。
Windows で編集したExcelファイルをlibreoffice calc で開いたところ、メニューが化けしているのを発見した。

libreoffice アンインストールしても直らない。
ゲストセッションでログインした環境でも同じ。
google-chrome も設定が豆腐文字化けする。
ubuntu-tweak でシステムフォントをTakao Pゴシックに変えても直らない。

という事で、システムのフォントが壊れたっぽい。

前回は、google-chrome はフォント指定変えたら、何とかなったので、libreoffice の文字化けは放置状態だったが、ハードディスクを容量のデカいものに交換した際に、再インストールしたので、結局、原因は分からず終い。

気になるのは、libreoffice の既定フォントが、 Droid Sans になっているところ。Droid Sans ? Takao Pゴシックか、IPA ゴシックで無いのはおかしい。

synaptic パッケージマネージャでdroid-font をさっくり削除。libreoffice も google-chrome も無事直った。

しかし、droid-font が入ったか、壊れたかした経緯が分からない。何せ、libreoffice のメニューだけ化けていて、中は化けておらず、ふと、メニューを見て気づくというパターンなので、正確にいつ化けたのかが分からない。

Excelで編集後の表計算ファイルを編集して化けるんだったら、もっと、検索で事例が引っ掛かるはずだし、ひょっとしたら、昨日、mythtv を入れたり消したりしていたが、それも関係あるのかなあ。

再現方法が未だ不明だが、再インストールを覚悟していたのが、直って良かった。

javascript のスタックフレーム

とあるゲームのツールを弄ってて、関数呼び出しすると、変数内容が化けるという現象に遭遇した。

C言語だと、スタックに変数が積まれるから、関数コールしてしまったら呼び出し元は変数に何を代入しようがコール先関数の変数内容は保証されているのだが、どうやら、JavaScript は変数ポインタか何かで参照で呼び出しているようだ。

と大ループの数だけ、変数を呼び出し元で確保して関数呼び出しを行なうと変数内容が化けなくなった。

シーケンシャルな処理なら、前のコードで問題は無いが、最近は ajax で非同期通信するのが当たり前になっているので、関数呼び出し中に、更に関数呼び出しが起こるなんてザラ。今回の場合、3回関数がコールされ、変数が全て、一番最後にコールした値になってしまった。

C言語みたいにスタックフレーム確保してくれるなら問題起きなかったのに、JavaScriptは面倒くさいのう。

意味が分からない機能追加


客の要望があり、「普段はログインする人も少ないので、ログインの部分小さくしておいて欲しい」との事。

ログインフォームのページを別に作るのも面倒くさいので、次の様にボタンを押したらログインフォームが現れるようにした。

そして、後に「畳む」を付けてくれと要望があったのだが、問題はこの部分。

こんなの誰が使うんだ? と思った人も多いだろう。
まあ、このページに限定すれば、開いたり畳んだりして遊ぶというのもアリだが、2~3回で飽きるだろう。

実際問題として、ログインしたい人はログインする為にボタンを押す訳だが、その人が何らかの理由でログインする事をやめたとして「畳まないと死んでしまう!!」みたいな理由があるのだろうか?

別に畳まなかったからと言って、システム的に何かができなくなるとかそういう不利益は無い。

強いて存在理由を挙げるとすれば、会員で無い人が、好奇心からボタンを押し、「元に戻さないと大変な事になる」という脅迫観念に囚われた場合に「畳む」というのがあると、安心できるかもしれないという程度かな?

他の重要な機能追加の時間を犠牲にしてでも、これを追加するという価値観は、わしには到底理解できんなあ。