September 03, 2005

Ruby extend

Rubyの話です。
Rubyでは機能をあらかじめModuleで宣言しておき、Classに対してextendすることによって、その機能をクラスのスコープとして組み込むことが可能です。例えば

Module A
    def hoge; puts hoge; end
end

class B; extend A; end

B::hoge # => "hoge"


ようするにBのクラスメソッドとしてhogeという関数を取り込んでいます。

extendの実践的な使い方として、例えば時間がかかる処理を行うClassに対し、キャッシュの機能をもつModuleを書いて、そのModuleをClassに対してextendすることによってキャッシュを効かせるようにしたいということが考えられます。そこで次のようなコードを書いてみました。

続きを読む "Ruby extend"
23:59 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/422

September 06, 2005

configure; make; make install

最近インストールしまくっています。一つは自分の研究のため、もう一つは自宅のサーバの機能拡張のためです。インストールしたソフトを忘れないように書いておこうと思います。

Boost @ Cygwin
言わずと知れたC++のライブラリBoostのcygwinのgcc版をいれました。cygwinのインストーラ経由だったので楽勝。
Boost @ Visual C++ Toolkit 2003
格闘中。参考ページのとおりやったんですが、うまくいかず。gccよりもこっちのほうがはやいので、こちらを使いたいのです。
Ruby/GSL
数値演算ライブラリGSLをRubyから扱うためのラッパーライブラリ。FFTやWavelet変換もできます。塚原大輔さんのページを参考にplotutilsGSL、narrayも導入しました。ただRuby/GSL本体のconfigで、参考ページのとおり
ruby setup.rb config -- --with-narray-include=/path/to/narray.h
とやってもうまくいかなかったので、ext/extconf.rbを一部コメントアウトしてチェックをバイパスしたらインストールに成功しました。問題なく動いています。
rubygems
いわゆるCPanのRuby版。拡張ライブラリをgem install hogeで入れてくれます。ただし動作が不調。requireが上手くいかずrequire_gemで置換することで対応中、要原因究明。
Classifier
Rubyで使えるベイジアンフィルタの実装。
Madeleine
Rubyのオブジェクトダンパ。オブジェクトのスナップショットをとることができます。Clsssifierでも使用されています。gem経由。
Rake
Ruby版make。記法がMakefileと違うのでmakeとの互換性はありませんが(笑)。
thttpd
Webサーバ。apacheをメインで使っていますが、簡単に管理できるのが欲しかったので、軽い・早い・小さいのもいれてみることにしました。ただし現在MacOSX10.2.8上で動かず、格闘中。

gsl_fft.png
Ruby/GSLのサンプル、FFTをしているところ。

RubyのGSLはいいですね。演算速度も結構はやいし、Rubyで簡単にかけるというのがいいです。現在cygwin+Xサーバで使用していますが、スクリーンショットのようなことができます。

23:59 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (2) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/423

September 08, 2005

EZ-USB 調達

EZ-USB(CypressのUSB組み込み型マイコン、というかUSBインターフェイスに8051マイコンがくっついたもの)を使ってなにかしようと画策しています。

部品は

といったところでしょうか。現在回路図を引いているところです。

で、EZ-USBなのですが、部品調達をどうしようかと考えています。回路自体はオプティマイズさんmini EZ-USBをもとにやっていますが、ここの製品は部品のみでも秋葉原のITプラザというお店で店頭販売されています。チップ単価は1200円。2131よりもI/Oピンが少ない2135なら千石で取り扱いがあり、930円でした。DigiKeyは1239円、RSは取り扱いなし。

調達って何かと大変ですよね。大きな企業に資材部があるのはよくわかるような気がします。

13:31 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (2) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/424

September 10, 2005

iPod nano

[Timely]

Apple iPod nano 4GB ホワイト [MA005J/A]
iPod nanoでてしまいましたね。

早速銀座のアップルストアに行って触ってきましたが、人だかりが凄かったです。夕方頃行ったんですが、既に4GBモデルは売り切れのようでした。そのあと、アキバに行ったのですが、そちらはまだ在庫があった模様。

触った感触でいうと、かなりよくできていると思います。iPod miniよりも創りが洗練されていて、あの薄さはたまりません。薄いながらもiPod独特の裏面鏡面加工は健在でした。カラー液晶というのもいいですね。写真のスライドショー機能も搭載されていました。
問題は値段ですね。2GBモデルで21K、4GBモデルで27K。ちょっとお金だしてもいいから綺麗なのが欲しいという人にとっては買いの一品ではないでしょうか。

22:04 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/425

September 15, 2005

iPodの鏡面をやする

[Tips]

巷ではiPod shuffleだのnanoだのが出てしまったためか、かなり古くなってしまった感があるiPodの第3世代(Click'n Wheel、モノクロ液晶)ですが、僕はそれの20GBを愛用しています。新しい兄弟を買ってくれとiPod自身も思っているのでしょうか、つい先日にはかなりご機嫌斜めで、曲とびがするというHDD逝きかけ現象が発生しかけました。銀座のApple Storeに持っていって見てもらったら、なんとか無償でよくなりましたが。

これをいい機会だと思って自分のiPodがグレないように、もっと愛情を注ぎ込まなくては、と思い立ちました。まずは見栄えからということで、裏面の鏡面処理をなんとか再生したいと思います。

以前、自動車のキズを治すのにやすりとコンパウンドという研磨剤でやっていた人がいることを思い出しました。自動車とiPodではかなり違うとは思いますが、やするにしても手持ちの道具が何もなかったので東急ハンズへ。そこでいろいろ物色してみると、やすりにも色々種類があるんですね。紙やすりとか耐水ペーパぐらいまでは使ったことがあるのですが、さらにそれを凌ぐ微粒子をもつラッピングフィルムというものを発見。等級が8000番までありましたが、とりあえず1000番と3000番を購入(各160円)。早速磨いてみました。

結論からいうと、鏡面に対しては3000番でも目があらいようです。近くで見ると傷が見えます。少し離してみるかぎりは十分鏡面度が回復していますが、もっと上を目指したいので、次は6000番と8000番でチャレンジしてみたいと思います。うまくいったら写真付で記事にしてみるつもりです。

21:45 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (3) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/426

September 18, 2005

Cygwinでln

ファイルを参照したいけど、コピーは作りたくない。そのなときにシンボリックリンクを張るというのは*NIXを使っているとよくやることです。

$ ln -s source_file dist_symbolic_link

*NIXの環境をWindowsに持ってきたCygwinでも当然ln -sは実装されていて、それはショートカットで実現されているようです。Windowsのファイラであるエクスプーラから確認すると、dist_symbolic_linkにあたるものがショートカットとしてあることがわかります。

そしてある日、Cygwinでln -sで-sを付け忘れました。*NIXで-sを忘れるとどうなるかというと、ハードリンクという手法によってファイルがリンクされます。ハードリンクというのはファイルシステムによって実現されるリンク手法で、エントリテーブルと呼ばれるファイル構造が物理的に書いてある部分を編集することになります。これはプラットフォームが完全に異なるWindowsではエラーかなんかになるだろう、と思っていました。

しかし、なんとWindowsでもハードリンクってあるんですね。凄い驚きです。エクスプローラから見てもファイルがそのままあるように見える(ショートカットのように矢印付のアイコンが表示されるわけではない)し、そのハードリンクしたファイルを消しても元のファイルは消えませんでした。
色々調べてみるとWindows2000/XPに搭載されているファイルシステム(NTFS 5/5.1)の機能のようです。詳しくはハードリンク/ジャンクション作成ツールをどうぞ。

23:59 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/427

September 23, 2005

DigiKey カタログ

05-09-24_00-05.jpg
ちょっと前の話なんですが、DigiKeyのカタログ、うちにも送ってきました。送ってきたよ、と表明するのが流行りのようなので(笑)。それにしても分厚い…。

DigiKeyでもRenesas製品買えるようになったのはすばらしいことだと思います。まだカタログお持ちでない方はここから申し込みできるみたいですね。

23:59 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/428

September 26, 2005

百名山最年少制覇

小学6年生がやってくれました。百名山最年少制覇です。うらやましいなぁ。

百名山に全てに登ることにはそれほど執着していませんが、山を登る者にとてもいい目標を提供してくれていると思います。

せっかくなので自分が登った100名山を数えておこうと思います。エアリア(山のマップ)にのっている順で…
八幡平、早池峰、飯豊山、会津駒ケ岳、燧ケ岳、苗場山、五竜、鹿島槍、剣、立山、黒部五郎、水晶、鷲羽、槍、常念、笠ヶ岳、蓼科、ヤツ、雲取、金峰、瑞牆、大菩薩、富士山、鳳凰三山、北岳、間ノ、赤石、聖、宮之浦。計29。
このうちヤツは5年連続で毎年登っています。いい山です。最近だと鹿島槍にはまた行きたいと思っています。

00:32 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (3) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/429

September 27, 2005

USB with ADC

実験をする都合で基板をおこすことにしました。データを処理する部分がかなり重くなりそうなので、データ処理はパソコンにやらせて、データ取得を行う部分のみの基板をつくることにしました(ということでSH4関係は最近進んでいません…)。

USB_ADC.png

で、肝心の基板ですが、以前の予告どおり、EZ-USB(Cypress AN2131)を使ってつくることにしました。ADCには8ch 4KHz 24bit ΣΔタイプのAD7739を使用しました。あまっているピンはLED 2個と汎用ポート(8ピン)、SCI 2チャンネルとしてその他の実験(というか趣味)にも使えるようにしました。

例によってEagle回路図基板アートワークパーツリストをおいておきます。まだ動くかどうかわかりませんが(笑)。そしてファームとドライバをなんとかせねば。
これが上手くいったらADCを変えて、高速変換バージョンとかオーディオモデルとかも作ってみようかなと思っています。

※その後、基板組み立てが完了しました。

11:38 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (2) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/430