2009-11-01から1ヶ月間の記事一覧

shellのコマンドをtask登録してworkerに実行させる

別にGearmanでやる必要は無いし危険だしどのworkerが実行するかわからないから意味ないけど 別のマシンにshellのコマンドを実行させられる client側 #!/usr/bin/env ruby require 'rubygems' require 'gearman' c = Gearman::Client.new(['192.168.200.243:7…

Gearmanインストール、Rubyから使う

参考 http://d.hatena.ne.jp/okinaka/20090823/1251036470 sudo apt-get install gearman-server /etc/default/gearman-server を編集、trueにする ENABLED="true"sudo /etc/init.d/gearman-server start最近のバージョンのgearmanはport 4300で動くらしいが…

opencv-haartraining -data haarcascade_rightfront-hand -vec hand-front7207_36.vec -npos 7207 -bg bg.txt -nneg 3491 -nstages 30 -nsplits 2 -mem 1500 -weighttrimming 0.90 -mode ALL -w 36 -h 36 opencv-haartraining -data haarcascade_rightfront-…

漫画家

おとといの夢を思い出した。好きな漫画家が家に来て一緒に飯を食った。 俺は何を話していいかわからずアワアワしていた。ファンですと言っても大変そっけない態度でした・・

文字列中の()や「」や<>がペアになっていなかったら取り除く

木を作るか1文字ずつ読んでいくか考えたが、面倒だったので最初に区切り文字で配列に分割して左端から見ていくようにした。 今回気づいた事 配列の配列はjoinしてsplitすると1次元の配列になる Rubyで全角半角混じった文字列を1文字ずつ処理するの、面倒 aho…

tscreen

Mac

wget http://www.steve.org.uk/Software/tscreen/dist/tscreen-0.4.9.tar.gz tar -zxvf tscreen-0.4.9.tar.gz cd tscreen-0.4.9 ./configure --prefix=/usr/local make sudo make installhttp://hasumi.info/~h2/2009/11/11/tscreen%E3%81%AB%E7%A7%BB%E8%A1…

ディレクトリ下のファイルの行数を数えるワンライナー

俺が使う言語に全部マッチさせると場合 ruby -e 'pattern=/.*(\.as|\.js|\..+ml|\.cpp|\.c|\.cs|Makefile.*|\.rb|\.sh)$/; sum=0; for i in 0..10 do Dir.glob("*/"*i+"*").delete_if{|n|!(n =~ pattern) or File::ftype(n) != "file"}.each{|f| n=open(f).r…

~/tmp/opencv-1.0.0/apps/haartraining/src/opencv-createsamples -info pos.txt -vec hand-front15142_30.vec -w 30 -h 30 -num 15142 ~/2nd/tmp/opencv-1.0.0/apps/haartraining/src/opencv-haartraining -data haarcascade_rightfront-hand4 -vec hand-fr…

ディレクトリ内の画像の一括反転

imgflip.rb #!/usr/bin/env ruby # -*- coding: utf-8 -*- # 画像を回転させて上書きする require 'rubygems' require 'fileutils' require 'RMagick' include Magick if ARGV.size < 3 puts 'pathと保存先と反転の向きが必要です' puts ' e.g. ruby imgflip…

wavファイルのdata chunkを取り出す

WavFile.rbでは今まで全chunksを配列で取り出していたが、よく考えたらformat chunkとdata chunk以外は捨てても構わない情報なので chunk配列からdata chunkだけを取り出す関数を追加した。 readDataChunk.rb http://shokai.org/projects/ruby-wavfile/index…

lambdaを配列にとっておいてevent dispatch

前にObject#method(:関数名).callで高階関数を使ったが Proc.newかprocかlambdaでblockを受けて無名関数を作って配列に入れておくと、簡単なEventDispatcherとして使える class Dispatcher attr_accessor :onNext, :now def initialize @now = 0 @onNext = A…

wavファイル同士を重ねて合成する

音の合成は、波なので足すだけでいい。ただし16bitを越えてしまうので2で割るなりして音量を下げる必要がある。 base.wavを元として、sound.wavを1、3.3、8秒目に置いてresult.wavとして書き出す例。 ruby compositeWav.rb base.wav sound.wav 1 3.3 8 resul…

wavファイルの波形を見てみる

改行区切りテキストで吐き出してExcelでグラフにすると見れる ruby dumpWav.rb sound.wav dump.txt pbcopy < dump.txtmacはpbcopyでファイルをクリップボードに読み込める dumpWav.rb http://shokai.org/projects/ruby-wavfile/index.cgi/file/0971a11a4fd6/…

wavファイルを左チャンネルのみ、右チャンネルのみにする

wavファイルをrubyでいじって、左チャンネルだけ消して右だけ聞こえるようにする。右を消して左だけにしたファイルも書き出す。 http://d.hatena.ne.jp/shokai/20091102/1257189122 のWavFile.rbを使う。 splitChannelWav.rb #!/usr/bin/env ruby # -*- codi…

逆再生するwavを作る

dataチャンクから配列として波形を取り出せるか試してみた。Rubyはunpackで取り出してpackでバイナリに戻せる(しかもけっこう高速に)のでこれを使っていこうかな。 nameがdataのchunkのデータ部分が波形データなので、wav formatを見て16bitか8bitか確かめて…

wavファイルを複数つなげる

前の記事に書いたWavFile.rbは、dataチャンクを増やした時にファイルフォーマットや各チャンクのsize値も更新するようになっているので、こんな風に複数wavを接続するのも簡単にできる。 ただしformat chunkが同じwavファイル同士のみ。formatが違うとデータ…

wavファイルのフォーマットを書き換えて倍速再生にする

前:wavファイルのフォーマットを読み込む - 橋本詳解 wavのDSPをやる準備が整った。 wavヘッダをメモリに読み込んでrubyの変数として扱って、バイナリに書き戻せるようになった。dataチャンクの中の波形をいじれば音を変えれる。 まずは波形ではなくwavヘッ…