Archive for 2月, 2009

copy コマンドで簡単にできるんだね。知らなかったー。

copy /b file.a + file.b file.ab

バイナリファイル連結とか便利だなぁ。

InfoQ の SSHとRubyでファイル・アップロードを自動化 の再帰版は自分も利用してるんだけど、こいつは階層の深いディレクトリ作成に問題がある。
以下はInfoQからの引用。

RUBY:
  1. 19:         begin
  2. 20:         remote_dir = File.dirname(remote_file)
  3. 21:         sftp.stat(remote_dir)
  4. 22:     rescue Net::SFTP::Operations::StatusException => e
  5. 23:       raise unless e.code == 2
  6.  
  7. 24:       sftp.mkdir(remote_dir, :permissions => dir_perm)
  8. 25:     end

何か不思議なインデントだけど、それは置いておいて。
ディレクトリを再帰的に潜っていくのだけれども、ファイルを見つけた時点で必要なディレクトリを作成している。
sftp.mkdir(remote_dir, :permissions => dir_perm) でディレクトリを作成しているのだけども、こいつは親ディレクトリがない場合はディレクトリ作成に失敗する。

ちゅーことで下記のように修正して利用している。

RUBY:
  1. begin
  2.   remote_dir = File.dirname(remote_file)
  3.   sftp.stat(remote_dir)
  4. rescue Net::SFTP::Operations::StatusException => e
  5.   raise unless e.code == 2
  6.  
  7.   # sftp.mkdir(remote_dir, :permissions => dir_perm)
  8.   shell = ssh.shell.sync
  9.   if shell.open?
  10.     shell.send_command("mkdir -p #{remote_dir}")
  11.     shell.exit
  12.   end
  13. end

巷にはトワイライトハックという Wii の改造方法があるらしい。
改造といっても、ハードウェアをいじるわけではなくて、Wii のメニュー画面に自作アプリが動くチャンネルを追加するといったもの。
あんまりやる気は無いんだけど、自作アプリが動かせるってのはやっぱ興味を惹かれるなぁ。
興味がある人はぐぐるといいよ!

# うちにあるトワイライトプリンセスは初期版のやつで、ハック可能なやつだったよ。

趣味で調べてたんだけど、nsf ファイルを自作アプリで再生させるにはまず apu とかをエミュレートできるようにしないとだめか。
apu のエミュレートとかは、 winamp とか kbmedia のプラグインやvirtualNES のソースが参考になる。
エミュレートできてサンプリングできれば、DirectSound あたりで再生できそう。

まぁ、エミュレートするのが結構しんどいんですがね。。
フリーで利用できるライブラリを探してみようかな。