しょんぼり技術メモ

まいにちがしょんぼり

RubyでDNSを解決したりする

自分用メモ。Net::DNS(net-dns) irb(main):001:0> require 'rubygems' => true irb(main):002:0> require 'net/dns/resolver' => true irb(main):003:0> require 'pp' => true # 8.8.8.8(google public dns)を使って名前解決を行うインスタンスを生成 irb(ma…

ファイルを開く際のモード指定の罠

いやぁハマった。RubyでFile.open()する際のモードの話。結論から言うと、"r+"が万能で、"w+"はすでにファイルがあるときは0バイトにされ、"a+"は末尾にしか書けない。リファレンスはこれ。読んだつもりだったけど理解が不十分だったらしい。 やりたいこと 1…

Ruby/PGPlot

ソースから入れたら詰まった。悲しい。 extconf.rbでは共有ライブラリ(.so)を見に行くけど、ソースからのインストールだとスタティックライブラリ(.a)しか作られないのが原因だったっぽい? NArray gemから入れる。 # gem install narray PGPlot 諦めてRPMか…

続・ディスクイメージのスループット

ディスクイメージのスループット - しょんぼり技術メモの続き。ext3パーティションを作ってからマウントして計測していたが、思ったよりもvirtioがふるわずという結果に。twitterで相談したら、デバイスファイルに直接読み書きしてみたら?とアドバイスを受…

ディスクイメージのスループット

コミケ原稿の関係でKVMをいじっていたので、ついでにide modeとvirtioで比較してみようと思いついたので、早速測定。環境:C2Q 6600 / 4GB RAM / HGST 500GB SATA2.0 / Fedora 12 x64 / KVM(yumから)ゲストOS:2CPUs / 2GB RAM / Fedora 13 x64 準備 ホスト…

SuicaとかPiTaPaは何の略?

と言う疑問が、予想外のところで解決した。発端は情報処理学会のデジタルプラクティス。いつものようにトイレで用を足しながら流し読みしていたのだが、今月は「特集:ICカードが社会を変える」というもの。研究室物販システム用に、FeliCaのIDmを使った簡易…

億とか京とか

Ruby-listのMLで流れていた、[ruby-list:47175] 金額を漢字フォーマット 億, 千, 万を見て、汎用的に「n桁で区切っていく接頭辞系」を作れないかなと思って試しにやってみた。 #!/usr/bin/ruby -Ku # -*- coding: utf-8 -*- Units = [ "" , "万", "億", "兆"…

あるディレクトリにある全てのファイルの内容を置換する

d:id:d-kami:20100613を見て、それ別にRuby使わなくてもシェルで、しかも一行でできるよ、と思ったので書いておく。原理はカンタン、対象となるファイルをfindでリストアップして、xargsで他のコマンドに渡すだけ。sedコマンドは、"-i"オプションでファイル…

IPアドレスを扱う

IPアドレス・サブネット関係の処理が必要になったので調べた。 "IPAddr"クラスを使うようだ。そのメモ。参照:プログラミング言語 Ruby リファレンスマニュアル irb(main):001:0> require 'pp' => true irb(main):002:0> require 'ipaddr' => true irb(main)…

V-Fieldを使ってみた

りべんじ。 前回のエントリについて 前回(d:id:syonbori_tech:20100530)はコンパイルに成功したところまで。そこでいくつか修正を行ったが、それがあってるかどうか不安だったので、[twitter:@frsyuki]に聞いてみた。 どうやら、"-static"はgccへの指定で、…

V-Fieldを使ってみたい

読み取り専用の分散多重化共有ブロックデバイス、V-FIELD(http://viver.sourceforge.jp/index.php?Scrapbook/V-FIELD)を使ってみたようとした。 環境 Fedora12, x86_64, V-FIELD changeset 69 下準備 レポジトリへのアクセスにmercurial、コンパイルにimake,…

dRubyをSSL越しに、クライアント認証付きで使う

http://segment7.net/projects/ruby/drb/DRbSSL/を参考に。SSL/クライアント認証を使わない場合に比べどれくらいのオーバヘッドが生じるのかを簡単にベンチマークしてみた。500回「new_with_uriして there_object.hello("")する」ベンチマークスクリプトを10…

FUSEをつかってみる

http://sourceforge.net/apps/mediawiki/fuse/index.php?title=Hello_Worldを丸パクリ。Linuxで、FUSE(Filesystem in userspace)を使ってHello worldなプログラムを書いてみる。 書かなきゃいけないもの ファイル情報を取得する getattr() ディレクトリ内の…

RFuse-ngを使ってみる

Fedora12 x64で試す。ruby1.8, ruby-develを入れておく。解凍してパッチを当てる。次の内容のrfuse-ng.patch を作る diff -Nurdp org.rfuse-ng/ext/rfuse.c rfuse-ng/ext/rfuse.c --- org.rfuse-ng/ext/rfuse.c 2010-05-04 01:57:18.000000000 +0900 +++ rfu…

Rubyの例外について

Rubyのbegin-rescueについて勘違いしていたのでメモ。Rubyでは、Object->Exception->StandardErrorのような継承構造になっており、独自の例外クラスを作って識別する際には、Exceptionを継承するのではなく、StandardErrorを継承した方が(俺の)思っている…

イベントハンドラみたいなのをRubyで書きたい

C#で言うところのEventHandlerみたいな奴がRubyで欲しくなったので勉強してみた。 #!/usr/bin/ruby -Ku # -*- coding: utf-8 -*- # 呼ばれる側 その1 class Class1 def class1_print puts " called:Class1.class1_print()" end def class1_print_with_arg(ar…

http://to./が開けるしくみ

※2010/04/14 11:55追記 ブコメでのご指摘の通り、「なぜ開けるか」に対する答えは、「"to"のトップレベルドメイン(TLD)にAレコードが設定されているから」というシンプルなものです。"to"はトンガのTLDで、古くからTLDを売って外貨を稼いでいます。恐らく、…

Firefoxのブックマークで「キーワード」を指定すると便利だね、というエントリ

まあそれだけなんですが、備忘録もかねて。Firefoxでは、ブックマークの項目に「キーワード」というものがあります。これを使うと、ある特定のURLを簡単に入力できるようになります。たとえば、この図のように 名前 ふぁぼったー URL http://favotter.matope…

DSとしてShule-aroonを使う

@repeatedly謹製のDS(Discovery Service)である、Shule-aroonを使ってみたメモ。 インストール 環境はCentOS5.4。SPとして動作させているサーバ上にDSを構築。 gitをインストーる。 http://brass.to/blog/yum_dag.htmlを参考にしてdagレポジトリを登録してお…

RindaのnotifyでマルチスレッドなTupleSpace

前回に続いてRinda。RindaのTupleSpaceを使ってデータをやりとりできるようになったので、今度はほかのプロセスからデータが更新されるようなケースで、その更新を反映させながら動作するようなデーモンっぽいものを作ってみます。ほかのプロセスなどによる…

Rindaで遊ぶ

LindaのRuby実装、Rindaを使うことになったのでそのメモ。Rindaすげーよ! Rindaについては http://www.druby.org/ilikeruby/d208.htmlをご覧ください。非常に丁寧な解説があります。 TupleSpaceデーモンを作ってみる いきなりかよ、って感じですが、今回作…

CentOS 5.4にXen3.4.2をソースからインストール

以前のエントリがいろいろ胡散臭かったので書き直し。ソースの展開まではお約束として、Xenをtarballからインストールするには、Mercurialがたぶん必要です。 READMEに書いてなかったりして地味なトラップです。 CentOS5.4の場合、rpmforgeのレポジトリにあ…

MahjongFS -Mahjong in FUSE-

イメージ ※アイコンはhttp://www.vector.co.jp/soft/win95/amuse/se102669.htmlからお借りしました。ありがとうございます。 注 ※妄想です。誰か動くもの作ってくださいw 概要 FUSE(Filesystem in USEr space)、特にそのWindows実装であるDokanを利用し、麻…

QCOW形式のディスクイメージをマウントする

ゲストOS用のディスクイメージを、そのゲストOSを起動することなくDomain0でマウントしたい場合は、xm block-attachコマンドを使用する。参考:http://lxr.xensource.com/lxr/source/tools/blktap/manドキュメント: block-attach domain-id be-dev fe-dev mo…

Xen 3.4.1をソースからインストール

※不十分な部分があったので書き直しました。CentOS 5.4にXen3.4.2をソースからインストール - しょんぼり技術メモ http://www.xen.org/products/xen_source.html からソースを落として展開。 $ wget http://bits.xensource.com/oss-xen/release/3.4.1/xen-3.…

GnuCashのXML(の取引部分)を読む

GnuCashでクレジット決済の記帳がめんどくさくてしょうがないので、自動化できないかと検討しているので、帳簿ファイルのXMLを調べてみたメモ。 シーンとしては、2009/10/13にスーパーで1418円分の品物を、あるクレジットカードで決済したというものを想定し…

TypableMap Timelineコマンドを追加する

TIG(TwitterIRCGateway)のTypableMapについては、TwitterIRCGatewayをより(俺にとって)便利にする - しょんぼり技術メモをご参照ください。あるユーザの発言を表示したいときには、#Consoleで、 timeline [screen_name]としてやれば最近の発言が取得できま…

CentOS 5.3でmechanizeを使う

CentOS 5.3で WWW::Mechanizeを使おうとしたら、どうもうまく行かなくて困った。 libxml2-develやlibxslt-develをインストールしてもダメ。http://groups.google.com/group/nokogiri-talk/browse_thread/thread/56db4580e3670aedを見る限り、どうやらRuby 1.…

PKCS#11対応USBトークンをいじる

OpenSCを使ってPKCS#11対応のUSBトークンにアクセスするメモ。http://www.opensc-project.org/opensc/からソースをダウンロードして、インストーる。 # yum install libtool-ltdl libtool-ltdl-devel # ./configure --prefix=/usr/local/opensc --enable-ope…

TwitterIRCGatewayをより(俺にとって)便利にする

※注意:本記事はすべてTwitterIRCGateway 2.xについての記述です。 また、TIGや付属のスクリプトはMITライセンスで提供されているため、 本記事におけるコードもMITライセンスとします。 TwitterIRCGateway(以下TIG)は、TwitterをIRCクライアントから使うこ…