ブログトップ
コンピュータと共にある創造的日常
uneoyaji.exblog.jp

メディアアート・プロジェクトにハマったオヤジの日常生活
by une0exct
カテゴリ
全体
未分類
以前の記事
2016年 06月
2014年 09月
2012年 10月
2012年 04月
2012年 01月
2011年 10月
2011年 06月
2011年 01月
2010年 07月
2010年 06月
2010年 04月
2010年 03月
2009年 08月
2009年 05月
2009年 02月
2009年 01月
2008年 12月
2008年 10月
2008年 08月
2008年 07月
2008年 06月
2008年 05月
2008年 04月
2008年 03月
フォロー中のブログ
メモ帳
最新のトラックバック
ライフログ
検索
タグ
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
カテゴリ:未分類( 65 )
極めて久しぶりに投稿してみる。
もう、完全に忘れていた。最近のマシン+OSで Core Image Filter などを使うと動作がスムースでないので、あれこれ、OpenGL に書き換えているのだが、結構、面倒。とりあえず、今日は以上。
[PR]
by une0exct | 2016-06-02 10:37
MBP Late 2013 15inch に Kinect を2つ繋いでみる。
この夏休みに集中して制作した Visual Liquidizer では、背景差分法を使っていたのだが、外光が入る場所では、時間経過と共にどうしても室内の照明条件が変わってしまい、背景を初期化しなおさないといけない。これを解消する強力かつ廉価な手段の1つが MS XBOX Kinect を使うって技なのだが、これがいろいろ面倒くさい。
素晴らしい技術なので、ロボットとかインタラクティブアートとかよく使われているし、当方も Nonstop Evolutionary Art you are embedded in と名付けた昨年の作品に取り入れてみた。OpenKinect プロジェクトの libfreenect を使うと、ご本家の MS Windows じゃない Mac OS X や Linux でもプログラム開発ができる。すばらしい。
本音いうと、OS X Lion から導入された AVFoundation の API で使えるような driver が望まれるところだが、贅沢は言うまい。
libusb と libfreenect をインストールして、Xcode の search path と link option を追加すると、普通に使える。しかし、2個つないだところで問題が発生した。2台ともRGB 画像と Depth 情報を同時に取り込むと、USB stack でパケロスが発生! 一方はスムースに動作しているのだが、他方の Depth 情報がカクカクとろいのである。何度か試しているうちに、全てのキーとマウスが効かなくなった。効いたのはパワーボタンのみ。トホホな気分で、長押し強制終了。
例によってネットから情報を漁って見ると、CPU 負荷が大きいときに起きるらしい。また、同じ現象に出くわした人は、他の USB 機器との競合があったらしい。ということで、Video format を YUV_Raw, Depth format を 11bit にして、MBP 本体の左右に1つずつ付いている USB の口からハブを外し、2台の Kinect のみ直接続してみると、なんとか動作してくれました。
やっぱ民生用というかゲーム用というか、製品間の性能の均質性については、あまり当てにしちゃいけないですね。2台同時に使ってみると、個体差が結構気になる。1つは、ホワイトバランス。もう1つは、RGB と Depth 用のカメラの軸のずれ方。軸のずれについては調整用のGUIを作って、現場調整可能にしたが、ホワイトバランスは、まだこれから。なんとかなるのかな?
[PR]
by une0exct | 2014-09-08 22:13
MacOS X 10.7 Lion に h264 と ogg theora のエンコード可能な ffmpeg を入れる。
QuickTime 7 が有料化なったこともあるので、この際、動画ファイルのバッチ変換は、AppleScript で QuickTime 7 を操るより、ffmpeg 使って Unix 的にやることにした。それで、ffmpeg のインストールだが。。。
当方の環境で取りあえず追加が必要となったのは、x264, yasm, libtheora.
まず、yasm を入れる。これはすんなり入った。
次に libtheora。これも問題なし。
そして x264 で、、、つまずきました。x264 は gcc でコンパイルされるのだが、ld がシンボルが見つからんエラーを吐いて停止。そうだよね、Lion + Xcode 4 からは gcc じゃなくて clang なんだもんね。x264 の configure の中を覗いてみると、gcc を cc に変えただけではだめそうなので、エラーで停止した ld コマンドに -framework オプションを追加してみた。必要なオプションは、
-framework CoreFoundation -framework CoreVideo -framework -VideoDecodeAcceleration と -ltheora 。
sudo make install-lib-shared でインストール完了。これでようやく ffmpeg の構築にかかれる。
ffmpeg で、./configure --enable-libtheora --enable-libx264 --enable-gpl すると、Makefile ができあがる。ここで、make して、sudo make install すれば、実装終了。
ffmpeg -i 入力ファイル.mov -strict -2 -vcodec libx264 -b:v 2M 出力ファイル.m4v
などとやれば変換できる。
Web で動画を公開するときに、Firefox 向けに ogg、iPad/iPhone 向けに .m4v。この2種類を用意しておけば、大概のユーザ環境で再生可能なはず。かな?
[PR]
by une0exct | 2012-10-15 14:00
MacOS X 10.7 Lion に netpbm を入れる。
結構昔から画像ファイルのバッチ処理には netpbm を利用していたのだが、最近ようやく OS を Lion にアップした Mac で久々に netpbm を使おうとしたら、なんと PPC コードのため実行できませんときたもんだ。つまり、おそらく昔々使っていた PowerBook G4 にインストールしたバイナリを、そのまま引き継いで使っていたらしい。ご存知のとおり、Lion からは Rosetta のサポートがなくなり、PPC用のバイナリは実行できなくなってしまった。多分、他のライブラリにも同様の問題があると思い、このさい、画像処理まわりをバージョンアップすることにした。netpbm のバージョンは、安定版で 10.47.37。
netpbm で使われるライブラリは、libjpeg, libpng, libtiff, libz など。まずは、これらも最新版のソースをダウンロードして、./configure; make; sudo make install などなどと実行して、インストールは順調に終了。古いバージョンの一部が /opt/local/ 下にあったので、これらは uninstall した。新しいバージョンはすべて /usr/local/ 下に統一した。
それで、netpbm を ./configure; make すると、コンパイルエラー発生!いろいろ探ってみると libpng のバージョンが新しすぎたらしい。1.5 で変更になった部分が netpbm で使われていた。1.5 を uninstall し、気を取り直して 1.2 の最新版をインストールし直し、再度、netpbm の構築を試みると、今度は、バイナリの作成まで問題なく終了した。make install と打ってみると、パッケージを作成してから ./installnetpbm を実行せよとのメッセージ。make package; sudo installnetpbm で /usr/local/netpbm/{bin,lib,include,...} 下にインストール完了。
当方は unix を使い始めた時に sh じゃなくて csh を使ってしまってから、ログインシェルはずっと csh その後 tcsh を使っている。んで、$path に /usr/local/netpbm/bin を追加すべく、~/.cshrc を少々変更。準備OKのはず。ということでコマンドを実行してみると、まず、libnetpbm が見つからないというエラー。ライブラリへのパスが通っていない。ここはライブラリファイルの数も少ないので、/usr/local/lib 下に /usr/local/netpbm/lib/libnetpbmなんたらのシンボリックリンクを置くことで解決。いくつかのコマンドは順調に実行できる。しかし、オプションに色の名前を指定したところで、rgb.txt が見つからないというエラーが発生した。ライブラリ関数がデフォールトで /usr/share/netpbm を探すらしい。これもシンボリックリンクで解決した。
今回、必要になった処理は、SBArt4 のヘルプファイルに埋め込む画面サンプルの自動作成。コマンド+シフト+4、スペース、クリックで保存した画面の PNG ファイルを、周囲をトリミングして、サイズを 40% に縮小して JPEG ファイルに書き出すというもの。コマンドは以下のような感じ。
pngtopnm -mix -background=white $f | pnmcrop -white | pamscale 0.4 | \
pnmtojpeg -quality=90 > ../$l.lproj/help/$fn.jpg
これまでは、いちいち、Phoshop で1つずつやっていたので、かなり簡単になりました。
[PR]
by une0exct | 2012-04-08 13:41
パソコン用の廉価NASをLinuxサーバ用に設定する
1つの URL を Linux 2台で負荷分散させて運用しているのだが、予算の都合により、これまで共有デスクはなく、それぞれ同じ内容をコピーしておったのですよ。
マシンがやや古くてディスク容量不足が目に見えてきたため、NAS を物色していたのだが、表立って UNIX 対応をうたっている製品は、法人向けのためか、結構、値が張る。パソコン用の I/Oデータとかバッファロのが安いのだが、どうも UNIX は想定外らしく、メーカが用意している情報だけでは、うまく運用できるのか不明。で、いろいろ情報をあさっていると、どうもバッファロの主要製品は OS が Linux らしい。しかも、ACPコマンドが使えるようになっていて、これで root 権限を奪取する抜け技がボランティアサイトで公開されていた。んで、やってみたわけです。
購入した製品は TeraStation TS-X8.0TL/R5。RAID 0,1,5,10 対応、2TBドライブ×4装備。
まず、本体の IP アドレス設定。設置説明書きは、DHCP を想定していて、固定 IPv4 の設定の方法が書いてない!本体には設定をいじるための操作パネルのようなものはなく、ネット HTTP 経由 WEB ベースで設定するようになっている。これじゃ設定できんではないかと思いきや、幸い、本体には2つの Ethernet ポートがあるので、2nd ポートをパソコンに直結すれば設定可能。
LAN ケーブルを接続して2分ほど待つと、プライベートアドレス 169.254.xx.xx が自動的にふられる。パソコンには製品付属の CD (DVDだったかも) を突っ込んで設定開始。
イーサポート1の固定アドレス設定、ユーザ登録、NFS の有効化、NFS クライアントのアドレス設定、NFS は user じゃなくて kernel モード、などなど。
これで、Linux から NFS マウントかけると、ちゃんとマウントできます。
しかし、Linux からマウントしたディレクトリィ内にサブディレクトリィを作ってみると、オーナ・グループが nobody になって、しかも chown が効かない。これは、Linux 側のユーザがなんでも同じ。ということは、NAS 側の exports オプションが all_squash になっていると。今回は home を NAS に引っ越そうという計画なのに、これでは使い物になりません。それで、NAS内部の設定を編集すべく、root 奪取を試みたわけです。
まず、パソコンに nas_central.org から acp_commander.jar をダウンロード。
旧製品だと
% java -jar acp_commander.jar -t 169.254.xx.xx -ip 169.254.xx.xx -pw password -o
で、telnetd が起動して、root パスワードがリセットされるはずなのだが、telnetd が動くが、パスワードリセットは利きません。(注:169.254.xx.xx は、NAS の IP アドレスです。) そこで、
% java -jar acp_commander.jar -t 169.254.xx.xx -ip 169.254.xx.xx -pw password -s
...
/root>chmod 666 /etc/shadow
>exit
で、パスワードファイルを書き込み可能にしてから、telnet でユーザ名 admin にてログインして root パスワードを消去。今度は root でログインして、/etc/shadow のアクセス許可を 644 とかに戻し、ついでに新しい root パスワードを % passwd コマンドで設定。ついでに ssh で root ログインできるように、/etc/sshd_cong 内の PermitRootLogin を no から yes に変更。UsePAM yes をコメントアウト。セキュリティ上は、あまり良い方法ではないが。。
/etc/inittab を見ると、起動スクリプトは /etc/init.d/rcS となっているので、その中身をいろいろ見ていると、/etc/init.d/nfs.sh の中に nas_confggen -c nfs というコマンドがあり、これが /etc/exports を作るらしい。つまり /etc/exports を直接編集しても、再起動するともとに戻ってしまう。ということで、nfs.sh 内の nas_confggen -c nfs の直後に以下の2行を追加。
sed /all_squash/s//no_all_squash/ < /etc/exports > /etc/exports.new
mv /etc/exports.new /etc/exports
再起動が面倒いので、上記2行を直接実行し、Linux 側の mount を解除してから、/etc/init.d/nfs.sh restart で、nfsd を再起動。Linux 側から再度 mount してみると、今度はちゃんと Linux 側のログインユーザのままアクセスできる。Linux 側で root ログインして、home 以下を NAS に % tar cf - . | (cd /mnt/nas; tar xf -) とかでコピー、、しようとしたが、root_squach を外してなかったので、できない。実は2人しかユーザがいないのをいいことに、NAS側に空のユーザディレクトリィを作っておいてから、Linux 側で各ユーザになって、tar でコピーした。
NAS側マウントポイントのディレクトリィ /mnt/array1/share のアクセス権がなんと777つまり誰でも書き込み可能になっているので、これは 755 に変更。あと、Windows は使わないので、samba を停止。NAS再起動時にも samba が立ち上がらないよう、smb.sh を細工。
いまのところ順調に稼働しています。ディスク容量が 80GB から 5.8TB に増えた。
[PR]
by une0exct | 2012-01-21 16:23
QuickTime Player で YouTube に自動 Upload
SBArt4 の自動進化機能で全自動的に作成した動画のダイジェスト版を全自動的に YouTube にアップする方法。
まず、QuickTime Player 7 (Pro) でダイジェスト版を自動生成。
これは、わりと簡単で、1つ新規の空のムービーを作っておいて、ダイジェストに入れるべき複数の動画について、それらの一部分ずつをコピペしてから、適当なファイルに保存してやる。スクリプトはこんな感じ。
tell application "QuickTime Player 7"
 activate
  set x to make new document
  repeat with m in 元の動画のパスのリスト
   open m
   tell document 1
    select at 1200 to 4800
    copy
    close
  end tell
  paste x
 end repeat
 save in 保存先のファイル
end tell

7行目の数字はダイジェストに入れる部分の時間の指定です。単位は TimeScale。普通は 600 で一秒が多いかな?つまり、1200から4800ということは2秒目から8秒目までの6秒間をコピーしています。んで、次は自動投稿ですが、QuickTime Player の共有機能で一度YouTube にログインして、情報がキーチェーンに記録されていれば、ログインの部分は省略できます。ということで、以下のスクリプトはログイン省略版です。
tell application "QuickTime Player"
 activate
 open 投稿したい動画のパス
end tell
tell application "System Events"
 tell process "QuickTime Player"
  set win to window 1
  click menu item "YouTube..." of menu "共有" of menu bar item "共有" of menu bar 1
  delay 0.5
  tell sheet 1 of win
   repeat while value of busy indicator 1
    delay 1
   end repeat
  end tell
  delay 1
  tell sheet 1 of win
   keystroke tab
   set the clipboard to 動画につけるのコメントの文字列
   delay 0.5
   keystroke "v" using command down
   keystroke tab
   delay 0.5
   set the clipboard to 動画のタグ
   keystroke "v" using command down
   delay 0.5
   click button "次へ"
  end tell
  delay 2
  tell sheet 1 of win to click button "共有"
  delay 20
  tell group 1 of scroll area 1 of window "書き出しの進行状況"
   repeat while (count progress indicators) > 0 or (count busy indicators) > 0
    delay 2
   end repeat
   delay 2
  end tell
 end tell
end tell
delay 2
tell application "QuickTime Player" to quit saving no

delay の待ち時間は適当です。
[PR]
by une0exct | 2011-10-28 12:34
AppleScript で自動ツイート
AppleScript の System Events を使うとほとんどなんでも自動化できてしまう。というか、そもそも GUI のせいでスクリプトから操作できないアプリが増えて困るという状態が常識化して年久しいわけです。Twitter のクライアントアプリとして MacOS および IOS でも動く Echofon を使ってるのだけど、これが Scripable でないんだ。こういうときの奥の手が System Evens。GUIのエレメントをクリックしたりキー入力したりという指示を AppleScript で書けるわけだから強力この上ない。
activate application "Echofon"
tell application "System Events"
 tell process "Echofon"
   keystroke "ブログにカキコなう"
  keystroke return
 end tell
end tell
これはちゃんと動く。
しかし、英文を入れようとして文章中にスペースをいれると、スペースのところで仮名漢字変換が動いてしまう。入力方法から「ことえり」を外せば、かな文字になることはないが、スペースは入力されないようである。いろいろ思案した挙げ句の解決策は、一旦、clipboard に文字列をコピーしておいてから、Echofon にペーストするというもの。こんなかんじ。
set the clipboard to "writing my blog, now!"
activate application "Echofon"
tell application "System Events"
 tell process "Echofon"
   keystroke "v" using command down
  keystroke return
 end tell
end tell
自分のウェブページを更新したら自動的に呟くように、更新のスクリプトの最後に付け加えるのも悪くないよ。
[PR]
by une0exct | 2011-10-16 15:19
Mac mini Intel Core Duo に Linux を入れる
パソコンOS の進歩は時々ユーザを困らせる。典型は、古いハードウェアに載らなくなることであろう。んで、さっそく MacOS X 10.6 Snow Leopard が載せられなくはないが、どうしたものかと思案中だった初代Intel Mac mini に Linux を載せて、予備サーバにする計画を実行してみた。
研究室の WEB + DNS サーバとして Vine Linux を載せた HP の Xeon PC があるのだが、DNS の slave と WEB のバックアップとしてもう1台追加することにした。
それで、同じOSが良かろうということで、Vine Linux 32 bit 版を DVD に落とし、Mac mini にインストールしてみると。。。 DVD からのコピーが終わって、HDD からリブートの段階で困ったことが起きた。Mac は基本、DVD メディアの取り出しは、キーボードから行なうわけだが、これが効かない。しかも、リブートに掛かった直後にフリーズ! 効くのは本体のパワーボタンのみという恐ろしい状態に陥った! ガチョーーンン!
気をとりなおして、今度は Vector Linux Light で再挑戦。これは CD 1枚に入る軽いバージョン。コピーが終わってリブート。。。おっと、また取り出しができない。で、また CD からリブートしてしまうではないか! と、ふと思いついて、リブート掛かったら即 Option キーを押す技を試してみたところ、無事、ブートディスクの選択画面が出た。よしよし、ということで、HDD を選択して、あとはうまく行きました。しかし、なんで Vine はダメなのかね。
"Light" だけあってか、apache が入ってない。他にも tcsh と ntp が無かったので、これらもネットからソースをダウンロードしてインストール。named.conf やら httpd.conf やら crontab やら passwd やら。。。。いろいろ設定して、無事、完了。
これでOS パッチ当ててる間、サービスが停止してしまうということはなくなりました。本当は、Cloud サービスを使って、外部にもバックアップサーバがあると、停電やネットワーク障害にも頑健なシステムにできるんだけどね。
[PR]
by une0exct | 2011-06-09 12:47
半年放置してた
昨年に続き、半年放置状態にしてしまった。。。
一応、まとめておくと、7月は CEC 2010 で SBArt4 の発表、8月は Dortmund での ISEA で相棒と Cycles の展示、9月は盛岡での芸術科学会 NICOGRAPH で学生が発表、10月は大学祭で学生の作品を公開、10月末から11月初旬は Augsburg の lab.30 で、またまた相棒と Cycles の展示、12月は毎年恒例 Milano の Generative Art Conference で Cycles と SBArt4 の発表。1月は,,, あとで書きます。
twitter との連動を設定したので、この投稿はそのテストも兼ねています。
[PR]
by une0exct | 2011-01-29 09:39
SBArt 4.2.3 リリース & FxPlug
SBArt 4.2.3 リリースしました。http://www.intlab.soka.ac.jp/~unemi/sbart/4/ja/からダウンロードできます。
しかし、FireFox とか Windows の IE で上記のサイトを開くと変です。Safari と Chrome では全然問題無しなんですがね。どうも、<BASE HREF=../ /> というのがうまく動かないようです。これって規格外ですか?
さて、今回のリリースの目玉は、SBArt4 自身の機能ではなく、Final Cut Pro/Express 用のプラグインも同時にリリースしまして、これに SBArt4 で育種した遺伝子を埋め込めるようにしたという点であります。以前、Quartz Composer に埋め込めるようにしたんですが、そのときは、Kernel Code を、そのままコピペすれば良かったんですけど、こんどは、コードが隠れてしまうので、コードの確認とか、チェックサムを付けたりとか、いろいろ拡張しました。プラグインについては、こちらに詳細があります。
これで少しは役に立つかな?
[PR]
by une0exct | 2010-07-31 18:20