Rubyにバイナリファイルを読み込ませて数値(テキスト)変換する方法はないものかと調べていた。
結論としてはどうやらバイト単位で読み込んで、unpackメソッドを使えば良いとのこと。
以下、サンプル
io = File.open("hoge.dat", "rb") # バイナリファイルの読み込み sampn = io.read(400) # 400バイト読み込む m = sampn.unpack("i*") # unpackメソッドで数値変換 p m
Rubyにバイナリファイルを読み込ませて数値(テキスト)変換する方法はないものかと調べていた。
結論としてはどうやらバイト単位で読み込んで、unpackメソッドを使えば良いとのこと。
以下、サンプル
io = File.open("hoge.dat", "rb") # バイナリファイルの読み込み sampn = io.read(400) # 400バイト読み込む m = sampn.unpack("i*") # unpackメソッドで数値変換 p m
RubyでFFTなどの数値計算や描画を行うために色々と環境設定やインストールを行った。
インストールしたしかし各種ライブラリ・ラッパーのインストールがなかなか個人的に骨の折れる作業だっため、後から困らないようにメモ程度に書き残しておく。インストール環境はUbuntu10.04、Ruby 1.8.7。gemでもインストールできないことはないみたいだが、俺の場合は各種ライブラリのインストールに手こずりまくったので結局使わなかった(gemは普段1.3.5を使用)
まずはruby-devをインストールする。これがないとNArrayのインストール時にコケる。(mkmfがないとか言われる)
$ sudo apt-get install ruby1.8-dev
大規模多次元数値配列を高速に処理するライブラリ。まずはこれがないと始まらないので真っ先にインストールする。ソースはここで公開されているのでダウンロード。俺は0.5.9p9.tar.gzをダウンロードした。そして解凍、コンパイル、インストール
$ tar xvzf narray-0.5.9p9.tar.gz $ cd narray-* $ ruby extconf.rb $ make $ sudo make install $ cd ..
NArrayがインストールできたら次は拡張ライブラリーであるlibnarrayをインストールする。
$ sudo apt-get install libnarray-ruby1.8
次にNArrayがインストールされたか確認
$ irb
irbを起動し(irbを入れてない場合は事前にインストールする)
irb(main):001:0> require "narray" => true
このようにtrueが返されたらインストール成功。
次にRubyの数値計算ラッパーであるRuby/GSLをインストールする。その下準備として数値計算ライブラリーであるGSLと付属の描画ライブラリであるplotutilsをインストールする。
まずはplotutilsからインストール。ソースはftp://ftp.gnu.org/gnu/plotutils/。最新のバージョンは2.6だが、Ruby1.8にこれを入れるとインストール時に不具合が起こるので、バージョンは2.4.1を入れたほうが無難かもしれない。ちなみに2.4.1を入れる時点でflexがないと
configure: error: cannot find output from lex; giving up
というエラーが出てconfigureに叩かれるので、あらかじめ入れておく。
$ sudo apt-get install flex
$ wget ftp://ftp.gnu.org/gnu/plotutils/plotutils-2.4.1.tar.gz $ tar xvzf plotutils-2.4.1.tar.gz $ cd plotutils-* $ ./configure $ make $ sudo make install $ cd ..
次はGSL。apt-getの場合は
$ sudo apt-get install gsl-bin
上手くいかない場合はNArrayと同じくソースからコンパイルする。というかソースからコンパイルしたほうが確実。今回はバージョン1.9をインストールしたが、不具合が出たら1.7をインストールする。
$ wget http://core.ring.gr.jp/pub/GNU/gsl/gsl-1.9.tar.gz $ tar xvzf gsl-1.9.tar.gz $ cd gsl-* $ ./configure $ make $ sudo make install $ cd ..
いよいよRuby/GSLをインストールする。インストールしたバージョンは1.14.4
$ wget http://rubyforge.org/frs/download.php/72647/rb-gsl-1.14.4.tar.gz $ tar xvzf rb-gsl-1.14.4.tar.gz $ cd rb-gsl-* $ ruby setup.rb config $ ruby setup.rb setup $ sudo ruby setup.rb install $ cd ..
以上でインストールができたはず。以下、確認
$ irb irb(main):001:0> require "gsl" => true
インストール完了。
次は描画ラッパーであるDCLをインストールする。
例のごとく本家である描画ライブラリーのDCLをまずインストールする。しかしながらGTK+とNArrayMissが入っていないとDCLのインストール時にエラー出るので事前にいれておく。
GTK+のインストールは
$ sudo apt-get install libgtk2.0-dev
NArrayMissのインストールは
$ wget http://ruby.gfd-dennou.org/products/narray_miss/narray_miss-1.2.1.tar.gz $ tar xvzf narray_miss-1.2.1.tar.gz $ cd narray_miss-* $ ruby setup.rb config $ sudo $ ruby setup.rb install $ cd ..
GTK+が入ったらDCLのインストールを開始
$ wget http://www.gfd-dennou.org/arch/dcl/dcl-5.3.4.2-C.tar.gz $ tar xvzf dcl-5.3.4.2-C.tar.gz $ cd dcl-*-C $ ./configure $ make $ sudo make install $ cd ..
DCLが入ったらラッパーであるRuby/DCLのインストール。
$ wget http://ruby.gfd-dennou.org/products/ruby-dcl/ruby-dcl-1.6.2.tar.gz $ cd ruby-dcl-* $ cd lib
ruby-dcl-*の中にlibというディレクトリがある。そこを開くとdcl.rbというファイルがあるのでエディタで開き、冒頭に
require "gtk2"
を追加し保存。その後ruby-dcl-*ディレクトリに戻る。そして
$ ./configure $ ruby extconf.rb $ make $ sudo make install $ cd ..
これでエラーが出なければインストール完了。
以下、確認。
$ irb irb(main):001:0> require "numru/dcl" => true
Ruby/DCLのインストールに関してはrequire "gtk2"と書かなくてもインストールできる場合もあるっぽい。なぜだかわからんが適材適所で。
ruby1.8.7の場合、GSLが1.7、Ruby/GSLが1.10.3でないとエラーが出る模様。俺の環境の問題かもしれないが、最新バージョンを入れるとRuby/GSLのインストールの際にmatrix_complex.cでエラーが出る・・・。ruby1.9だったらいけるのかな
院での研究で必要になりそうということでRubyの勉強を始めた。というわけで購入。
去年は2000年代私的ベストアルバム10という誰得ランキングを書いたが、今年も似たテイストな感じで2010年代最初の年、2010年の私的ベストアルバム10な誰得ランキングを書き連ねていこうと思う。
第10位 The Drums
The Drums
[Moshi Moshi]
第9位 Caribou
Swim
[Merge]
第8位 My Chemical Romance
Danger Days: The True Lives of the Fabulous Killjoys
[Reprise]
Danger Days: the True Lives of
第7位 Arcade Fire
The Suburbs
[Merge]
第6位 Flying Lotus
Cosmogramma
[Warp Records]
第5位 Local Natives
Gorilla Manor
[Infectious]
第4位 Vampire Weekend
Contra
[XL]
第3位 Sufjan Stevens
The Age of Adz
[Asthmatic Kitty]
第2位 Wild Nothing
Gemini
[Captured Tracks]
第1位 The National
High Violet
[4AD]
こんな感じで2010年で聴いた、個人的に良かったものをつらつらと書いてきました。別に俺は「No music, No Life」とか言うつもりはないです。音楽なくたって人間生きていけますしね。でも、音楽があれば人生はすごく豊かになることは間違いでしょう。2011年も素晴らしい音楽に出会って、人生が豊かなものになれば良いと思います。良いお年を。
卒研のために最近Cを書く機会が多いので、この際だからちょっと体系的に勉強し直してみようと思った。
使っている本はおなじみのこれ
ふと何となくtwittering-modeを使ってみようと考え、公式サイトへ。EmacsWiki: TwitteringMode-jaを参考にしながら設定を行った。
普段emacsはVMware上のUbuntuで使っているので、twittering-mode-1.0.0.tar.gzをダウンロードして展開。自分の場合は~/.emacs.d/elisp/にload-pathを通しているので
(add-to-list 'load-path "~/.emacs.d/elisp/twittering-mode-1.0.0")
と設定。ものすごくシンプルだなーと思い、早速twittering-modeを起動させようとしたところ
Invalid format character: `%h'
というエラーが出て起動せず。
なんだこれ、と思いつつ何が悪いのか調べたところ、公式サイトで配布されているtwittering-mode-1.0.0.tar.gzの中のtwittering-mode.elが最新のものではないと分かりhayamizさんのGitHubレポジトリへ。ここのソース枠右上にあるrawからtwittering-mode.elとして保存。あとはtwittering-mode-1.0.0ディレクトリ内のtwittering-mode.elと入れ換えたら無事起動した。
自分好みの環境でTwitterができるのはやはり良いですね。好感が持てる設計だと思います。
漫画家のみやわき心太郎氏がお亡くなりになりました。ご冥福をお祈りしたいと思います。
実を言うと俺はそこまでみやわき心太郎氏の漫画に詳しいというわけではなく、知っているとすればレイプマンぐらいでした。そのレイプマンを知ったきっかけスティーブ・アルビニです。
アルビニは前日の日記に書いたとおり80年代半ばにBig Blackというバンドを結成し活動していました。で、そのBig Blackのアルバム、Songs About Fuckingのジャケに使われていたのがレイプマンです。
まあ、その後Big Blackはうやむやのうちに解散するわけですが、その後結成するのがRapemanというバンドです。もうみやわき心太郎まんまですね。アルビニ先生どんだけ好きなのかと。そしてRapemanはTwo Nuns and A Pack Muleというアルバムをリリースします。
TWO NUNS AND A PACK MULE (TG36CD)