日曜日, 11月 28, 2010

VPSとCentOS

お手軽になったVPSを申し込んだ。
今のサーバーをrootも使えるサーバーに乗り換えようという算段。

デフォルトのOSはCentOS。CentOSは初めてだし、rpm系のOSは好きではないのだが、エンタープライズ用で信頼性が高そうなので勉強もかねて使ってみることにする。

CentOSのリポジトリにはpython2.6が無いのだが、それは困るので、以下からインストール。システムのpython2.4に傷つけずにインストールできる。
http://www.activestate.com/activepython/downloads
これを/opt配下にインストールする。(標準)

ggs_betaを動かすためにpythonのライブラリを2つ追加
easy_install httplib2
easy_install simplejson

その他の構築や設定は以下のサイトを参考にした。
http://centos.server-manual.com/
http://www.crimson-snow.net/hmsvr/centos/ticentos.html

水曜日, 10月 13, 2010

夢2

夢の中で、「これは夢だ」と感じるときがあると聞いたことがある。
夢の内容を思い出しながらさっきのエントリーを書いていて思ったが、今日の夢はそういう状態に近かった。「これは夢だ」ほど明確ではないが、「これは現実ではないな」程度には意識している。起こることが論理的でないとしても、自分では逆らいようのない何らかの状況設定が外側にあって、自分もその中で動いている(あるいは演じている)と感じていたように思う。

夢の中で、これは夢だ、と意識できるようになると、夢の内容をコントロールできるらしい。いつかそれをやってみたい。

それでは、また寝るとしよう。

かなりはっきり夢の内容を覚えているので、メモ。

青山付近のビルの中。豪華なデートを終えたばかりの友人と、食事する店を探して外に出る。
場面は変わって、夜。お台場のプロムナードらしきところ。不意にサバイバルゲームが始まり、私な逃げながら茂みに飛び込む。これは映像であたり判定をするシステム。銃は持っているが、目も悪いし、装備について何も考えていなかったので、かなり不利な状況。敵に見つからないようにするにはどうすべきだったか考える。メタルディテクタは機器が発光するので必ずしも有利ではない。
場面は進んで電車の中。多分目黒線の目黒駅だが、路面電車の雰囲気。ホームの端に止まった先頭車両の中から、通りの向こうの人物を射撃。崩れ落ちる様子がAR合成されて照準スコープ越しに見える。立ったままの実像がこちらを睨む。
電車はそのまま出発。となりから薄茶色の超旧型の車両が出発して並走。しかも1両編成。途中で分岐してレトロな街角に入って行った。夢の中では多分武蔵小山という事になっている。(この風景が超いい感じ!)。おそらくこれは過去の風景を見ているのだろう、と内心思っている。その時気づいたが、並走する車両はバスだった。後輪は1輪。(このバスがまた超いい感じ!)
自分の乗っている車両も、いつのまにかバスに変わって、狭い路地に入り込む。横の家の壁際にぶつかり、立っていた柵が倒れて進路を阻む。私と、もう一人の女性の乗客で柵を立てて直そうとするが、うまく行かない。柵のパイプフレームを曲げたり、いろいろやってるうちに柵はバラバラになり、直すまでもなくどけておけば良しになる。路地を抜けた空き地で壊れたパイプを拾う。パイプにはトランペットのマウスピースが付いている。吹いてみると何とか寂しく音が出る。何かの上によじ登り、パイプを吹く。下には女の子が壊れたバイオリンを持って立っている。一緒に弾こうか?と誘ってみる。女の子、嬉しそうな顔をする。私の手には中華料理が盛られた器。私はそれを箸で食べることを知らなかった。(…という設定になっているが、当然それは設定なだけで、本当に知らないわけはなかろう、と夢の中で思っている。)ここで、目が覚める。

最後に見た中華料理が、汁麺のような、焼きそばのような、シュウマイのような、今まで見たこともないような料理。よーく覚えているので、いつか作ってみたい。このことを覚えておきたくて、このエントリーを書いたのだ。

木曜日, 9月 30, 2010

ディスクリカバリー再び(その3)

ハードディスクが不調な時は、生のままでいいからとにかくデータを安全な場所に移したい。というわけで、dd コマンドを使ってローカルに持ってきている。買ったばかりのマックがあって良かった。なにせディスクが空に近いから。

まずは1GBずつ、エラったら128MBずつ小分けにして、その中でエラった箇所を4MB、128KB と小分けにしながら dd コマンドで吸い上げてゆく。9番目のGBブロックの5番目の128MBブロックならこんな感じ。

dd if=/dev/disk2s10 of=disk2s10_08.4 bs=4k count=32k skip=8x32k

大きなブロックで読めないときは、その中のどこかにエラー箇所があるだろうと思うけど、実際にやってみると、小分けにするとエラーにならずに読める場合がある。というか、意外とそういうことが多かった。(解せないので操作ミスも疑ったが、そうではなくて本当に読めているみたい。騙し騙しやるには小刻みの方が良い、ということか?)
とにかく、小さく分けて読んでいったら、結局のところ、一番細かい128KBブロックが1個読めないだけで、あとは全部読み出す事ができた。最後に、読めなかった128KBのブロックだけを、

dd if=/dev/disk2s10 of=disk2s10_06.3.00.00 bs=4k count=32 skip=1671168 conv=noerror,sync

でエラーを無視して読み込んだら、最終的に回収できなかったのは48KB分のみ、となった。まずは満足。
回収したデータをcatで繋いでひとつのファイルにまとめ、amazonで買ったNASに放り込む。さすがに80GB分だと時間がかかるので、続きの作業は明日にする。

ともかくこれで、ハードウェアのトラブルを気にせずに、純粋に論理的な修復作業に移れる。

この先の作業には、二つのやり方がある。
望ましいのは、まとめたファイルをディスクイメージとしてマウントできるようになること。ext3のマウントについてはここに情報があったので、MacFUSE と fuse-ext2 をインストールして試してみる。正常なディスクイメージではないので、もうひと手間かかるかも知れない。それが難しそうなら(面倒そうなら)、PhotoRecを使ってファイルだけでもサルベージする。写真や映像がほとんどなので、意外とこの方法でも十分かもしれない。

月曜日, 9月 27, 2010

ディスクリカバリー再び(その2)

エラーになる度に手作業でやるのはシンドイので、1GBずつ小分けに読み込んでファイル化し、読めなかった部分は更に128MBずつに小分けにしてファイルにし…、という戦法でいくことにした。128MBの読み込みは、1GBの時のエラー出力を元に自動化するようにスクリプトをつくる。

で、1GBごとに次々読ませてゆくと…、途中で

dd: /dev/disk2s10: Device not configured

というエラーが出て、その後は全部

dd: /dev/disk2s10: No such file or directory

になる。
これはパーティション全体を読み終えたのかな?と思ったがそうではなく、途中でディスクの認識が切れてしまったみたい。うーむ、ハードのトラブルだとこういうことも起こるか。
USBを抜き差ししてドライブを再認識させ、その続きを実行する、と。

さて、まだ時間がかかりそうだし、ひとまず寝るとするか。また途中で認識が切れるんだろうなー。週末で片付けるつもりだったけど、多少気長にやるしか無いかな。

そして、amazon に NAS を注文した。BUFFALO の LinkStation LS-XH1.0TL。あさってには届くであろう。

日曜日, 9月 26, 2010

ディスクリカバリー再び

外付けハードディスクがマウントできなくなった。読みに行くと、時計の秒針のような嫌な音が続く状態…。あ、これは物理的にやられたな、と思う訳だけど、昔の仕事やプライベートのムービーやら写真やら入っていて簡単には諦められない。ので、なんとかデータだけでも救い出したいと思う。

160GBのディスクを、80GBづつ、2つのパーティションに分けて使っているが、1つめのパーティションは以前ディスクエラーがあったパーティションで、今は使っていない。(考えてみたら、その時に、ディスクごと交換しておけば良かったのだ…。)

ディスクユーティリティ等で見ると、パーティションは見えているので、テーブルは読み出せている。問題のパーティションは/dev/sdb10と見えている。ext3フォーマットだ。が、パーティションの冒頭がやられているらしく、スーパーブロックが読めなくてマウントできず。

 e2fsck -b 32768 /dev/sdb10

などと代替スーパーブロックを指定してもダメ。

ヘタってるディスクをいつまでもいじっていたくないので、ディスクの空いている別のマシンにつなぎ直し、ddコマンドで必要なパーティションだけローカルのファイルにコピーする事にした。しかし、


 ch01% dd if=/dev/disk2s10 of=disk2s10 bs=4k
 dd: /dev/disk2: Input/output error
 0+0 records in
 0+0 records out
 0 bytes transferred in 28.886230 secs (0 bytes/sec)


というエラーで止まってしまう。skipでずっと先のブロックを指定すると読み込めるので、全部が読めないわけではないらしい。読めるとこまで読んで、エラーで止まったらその次のブロックから読む、というのを手作業でやっても良いが、以下のコマンドを走らせる事にした。


 dd if=/dev/disk2s10 of=disk2s10 bs=8k conv=noerror,sync >& disk2s10.error


conv=noerror を付けると、読み書きにエラーがあっても処理を中断せずに続けてくれる。今回の場合はディスクの読み込みエラーが頻発するので、その度にskipを手作業で指定して続けるのは大変なのでこうした。conv=syncを指定しておくと、エラーがあったブロックもnullを書き出してくれる。これをしないと後でサイズが合わなくなるので必須。

さて、読み出しを始めたが…、遅い。すごく遅い。エラーにぶつかる度に待ちが入るので、平均1.5kbyte/sec。エラーブロックの割合によるが、このままでは読み込みに数ヶ月かかる計算。これはまずい。
どうせゼロしか埋まってないんだから、ある程度手探りで、読めそうなところを読むか…。

というわけで、作業続く…。

日曜日, 8月 29, 2010

計算機に歌わせる関連 w/o GUI

言わずと知れたVOCALOIDにはVST/VSTiプラグインが存在。
歌詞はGUIで入力、あるいはあらかじめ指定したファイルを ProgramChange でファイル読み込み可。
UTAUのプラグインは編集用につき w/o GUI には不向き。

Cadencii
http://www9.atwiki.jp/boare/

VSQファイル(VOCALOIDのプロジェクトデータ)があれば vsq2wav で音にできる。
http://www.geocities.jp/hatsune_wave/
VSQフォーマット
http://www5d.biglobe.ne.jp/~noocyte/Programming/FileFormat/VSQ.html

それから、PDでVST/VSTiを動かす vst~, k_vst~ がある。
http://puredata.info/Members/thomas/vst
元情報はここから(linux上でVSTを動かす方法いろいろ)
http://quicktoots.linuxaudio.org/toots/vst-plugins/

関係ないが、MMDはすごいなー。

CREST方面でもいろいろ研究あり
http://www.crestmuse.jp/index-j.html

土曜日, 8月 07, 2010

glXCreateContext failed

症状:
OpenGLのプログラムを実行したとき、glXCreateContext failed というエラーが出る。

原因:
NVidiaのGLXが呼び出せないとこのエラーが出る。(他の原因でも出ることはあるが、うちの場合はほぼこれ)
サーバーログを見るとglxエクステンションが正しくない旨エラーが出ているので分かる。

敗因:
xorg xserver をアップデートしたときに、
/usr/lib/xorg/modules/extensions/libglx.so がxorg付属のものに置き換わってしまったためと思われる。
本来は、libglx.so.173.14.25 へのシンボリックリンクになっているべき。

解決:
libglx.so のシンボリックリンクを戻せば復旧できたと思うが、nvidia 173.14.27 が出ていたため、ドライバごと更新した。当然解決。

環境:debian squeeze, linux 2-6-32-5, nvidiaプロプライエタリドライバ 173.14.25

火曜日, 8月 03, 2010

USBからインストール・リカバー

Universal USB Installer が非常によい。
http://www.pendrivelinux.com/
Linuxの各種ディストリビューションのインストーラをWindows上で作れる。
MultiBoot USB を使うと、一つのUSBに複数のLinuxをインストールできて、カバリー用の起動ディスクになる。

火曜日, 7月 20, 2010

Python の unicode

Pythonで文字列を扱ってて、'ascii'でエンコードできない文字列です、とかエラーが出たら、unicodeを疑え!
→ http://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html

Python の unicode型は UTF-8等の文字列ではなく特殊な内部形式。
表示や処理(加算やスライス等)には文字列にエンコードが必要で、
何にエンコードされるかは、ロケールの決まった表示先(端末等)以外は
デフォルトのエンコード('ascii')になる。これが曲者。
なので、必要な時に明示的に hoge.encode('utf_8') などとして
文字列に変換すること。

土曜日, 6月 05, 2010

航空管制

【解説】
実践!航空無線
http://minacchan.hp.infoseek.co.jp/air/airband.html
【ライブ配信】
世界の空港官制
http://www.liveatc.net/

月曜日, 5月 31, 2010

CameraPreview+OpenGL

カメラプレビューの上にOpenGLレイヤを重ねる件、結局この辺が参考になりました。
http://groups.google.co.jp/group/android-developers/browse_thread/thread/59823f265354257f

別スレッドには、SurfaceViewは二枚重ねられない(あるいは非常にリソースを食う)のでカスタムのSurfaceViewを作るべし、という意見もありましたが、重ねられないことはないみたいだし、そもそもカメラプレビューとOpenGLを融合させるのは(プレビューイメージをバッファ経由で描画しないかぎり(ARToolkit絡みでそういう例もありました))難しいように思えます。
もっとも、その方法もやってみる価値はあるかも。イメージ転送とオーバレイのどちらが早いか、ですが、やってみないと分からないですね。時間ができたらやってみますか。

日曜日, 5月 30, 2010

航空機の識別関連

レーダー装置は
・SBS-1 Base station
 → http://www.kinetic-avionics.co.uk/sbs-1.php
・AirNavi RadarBox
 → http://www.airnavsystems.com/RadarBox/
などがあり、どちらも同じような仕様。
RadarBoxはネット経由で世界中の情報を得られる(有料)。
Base station はネットにデータストリームを送れる。

一般的な情報はWikipediaから「空中衝突防止装置

Mode-S 番号から機体番号(Registration)への変換は、
ガトウィック飛行協会が提供する以下のデータベースで変換可能。
http://www.gatwickaviationsociety.org.uk/

それから、航空無線データを解析する類のソフトがある。(デコーダーというらしい)
KG-ACARS http://www2.plala.or.jp/hikokibiyori/soft/kgacars/index.html
フリーウェア。

よくわからんが
http://www.navigraph.com

木曜日, 5月 13, 2010

Androidいろいろ

Android端末を手に入れ、ようやく本気で Android の開発をする気になった。
で、いろいろ勉強しているが…

まだpre-releaseだが、processing for Android というものがある。
http://android.processing.org/

Androidで使える組み込み用スクリプト言語としては、pnuts というのが良さそう。
https://pnuts.dev.java.net/

月曜日, 4月 12, 2010

ofTextureはGL_TEXTURE_2Dとは限らない

openFramwork の ofTexture は、テクスチャーの形式が GL_TEXTURE_2D ではなくて GL_TEXTURE_RECTANGLE_ARB になっているので注意が必要。これは、GLEEで拡張機能を調べ、Texture_rectangle拡張が有効な環境だとそうなる。
Texture_rectangleでは、
・2のべき乗以外のサイズの画像が使える
のは便利だが、
・textureTarget が GL_TEXTURE_RECTANGLE_ARB
・テクスチャー座標が[0-1]でなく[0-w][0-h]
・shader変数の型は sampler2D でなく sampler2DRect
・shaderでのサンプリング関数は texture2DRect
なので注意。
気付かなくてかなりハマった。
ofTexture は allocation時にオプションを与えて無効にできるが、ofImage や ofxFBOTexture 経由では無効化できない。

月曜日, 4月 05, 2010

openFrameworksでFBOを使う

ofxFBOTextureをインストールして、
→ http://addons.openframeworks.cc/projects/show/ofxfbotexture
以下のサンプルで試す。
http://www.openframeworks.cc/forum/viewtopic.php?f=9&t=1866

月曜日, 3月 29, 2010

How to install PS3Eye on windows

PS3EyeをWindowsにインストールした。
tbetaでも動作を確認。
調整機能が豊富で使いやすそう。
・露出とゲインの自動/マニュアル切替
・ホワイトバランスの自動/マニュアル切替
・XY方向のオフセット、キーストーン調整可能
・レンズ歪みの補正、デジタルズーム
赤外フィルタの除去が必要。除去したら戻せない。

●PS3EyeのWindows用ドライバーは以下
http://codelaboratories.com/products/eye/driver/

●PS3Eyeの赤外フィルターの外し方は以下
http://codelaboratories.com/research/view/ps3-eye-disassembly

日曜日, 2月 28, 2010

processingのSocketException

Processingでsketchをrunした時に以下のエラーが起こる。
環境:debian squeeze
---
Exception in thread "Thread-3" java.lang.Error: Unable to launch target VM: java.net.SocketException: 無効な引数です
at processing.app.debug.Runner.launchVirtualMachine(Runner.java:421)
at processing.app.debug.Runner.launch(Runner.java:122)
at processing.app.Editor$43.run(Editor.java:1652)
at java.lang.Thread.run(Thread.java:619)
---

対処法:
rootで /etc/sysctl.d/bindv6only.conf の以下の値を1から0に変更。
net.ipv6.bindv6only = 0
その後、
invoke-rc.d procps restart
を実行する。

情報源:
http://processing.org/discourse/yabb2/YaBB.pl?num=1261483799

日曜日, 2月 07, 2010

Nvidiaカーネルのアップデート

●カーネルモジュールの開発環境を整える。
※ http://www.hakodate-ct.ac.jp/~tokai/tokai/research/kmod.html より。
1)kernel-package と必要なソースパッケージを用意する。
2)Makefile中のEXTRAVERSIONを適宜書き換え
3)/boot/config-xxxxxxxxxx を .config にコピーして make
●nvidia-installerを実行する。
-K --kernel-module-only カーネルモジュールのみ更新(ドライバーはそのまま)
--ui=none ncursesを使わない
-k --kernel-name=KERNEL-NAME 起動中ではないカーネル用にビルドする
--no-runlevel-check ランレベルが1でなくてもアボートしない
--no-x-check Xサーバーが立っていてもアボートしない

土曜日, 1月 23, 2010

Twitter API

このページが役に立ったぞい。
http://usy.jp/twitter/index.php?Twitter%20API
http://snipplr.com/view/2585/python-twitter/

金曜日, 1月 08, 2010

空きを埋めるログ

開いてた期間を埋めるためにログっとくと、
・終わった。
・モノクロカメラのフレーム作った。
・スチールの棚をIKEAで買った。
・小物の工具類をいくつか買った。
・CNCが欲しくてたまらなくなっている。
・リアプロのスクリーンを吊るした。
・手持ちのDVカメラは赤外線をカットしていた。
・1394カメラならフレームレートが高いとは限らないようだ。
・今squeezeは1394カメラが使えない。
な感じ。

Twitter再開

しました。