2012-01-01から1年間の記事一覧

RubyからPHPをネイティブ連携させるRuby extension「php_vm」を作った

RubyからPHPのクラスとかをネイティブに呼び出すRuby extension「php_vm」を作った。 百聞は一見に如かず。 なんということでしょう、PHPで定義したクラスがRubyのクラスのようにインスタンス化したりメソッドを呼んだり出来るではありませんか。 Source #!/…

PHPのジェネレータ(yield)について調べた

PHP

PHP5.5で追加されるyieldについて調べた。 とりあえずインストール。 cd /tmp git clone https://git.php.net/repository/php-src.git cd php-src/ ./buildconf ./configure --prefix=/tmp --disable-all make make install ジェネレータオブジェクトとは ぱ…

PHPでtry-catch-finallyする綺麗な書き方思いついた

PHP

これ結構いい気がする…! finallyで後処理だけして、発生した例外を握り潰さず呼び出し元に投げる時に便利。 何もすごい事はしていないけど、割りと見やすくてなんとなくtry-catch-finallyっぽい。 見様によっては再throwを書く場所が違うだけに見えなくもな…

ZFSの基本的な使い方とZFSとEXT4のベンチマーク比較

ZFSの基本的な使い方と、ZFSとEXT4のベンチマーク比較をまとめた。 ZFSの使い方 初期 一番最初は何もない。 [root@kvm ~]# zpool list no pools available [root@kvm ~]# zfs list no datasets available ストレージプール作成 ストレージプール、tankを作成…

最近はてなでのアウトプットが少なくなった

これは非常にまずい。 その理由を考えた。 その瞬間必要だったTipsやソースは自分用Wikiに書くようになった はてなはソースコードをシンタックスハイライトしてくれるのが魅力だと思ってた。 でも自分用Wikiを作ってから、はてなである必要がなくなった。 ソ…

VyattaにiPhone/iPadでPPTP接続が出来ない時の対処方

VPN

iPhone/iPadだと認証は通過して接続は成功してるけど、いざパケットのやり取りを始めるとVPNが途切れる。 Macからだと途切れないのに…。 という状態。 途切れた時のログは以下の通り。 May 30 18:57:48 vyatta pptpd[3395]: GRE: read(fd=7,buffer=80505a0,l…

MacOSX Lionにアップグレードしてgccとかgitとかいろいろ動かなくなる時の対処法

Mac

Snow Leopardでインストール出来るXcodeが古くて、iPad3向けにビルド出来ない事が判明。 それで遂にLionにアップグレードした。 よく解らないけど、/usr/includeがなくなっちゃったのには驚いた。 開発に必要なものはあらかた/Applications/Xcode.app/Conten…

RVMでRails2環境とRails3環境を共存させる

RVMとかRubiesとかBundlerとか、いろいろあって訳わかんないけど、 とりあえずApache + RVM + Nginxが一番楽かなという印象。 (Rails3アプリを管理するのにBundlerも使うけど) 80番ポートを受け付けるのはApache。 そのApacheがプロキシになって、後ろのNg…

forked-daapdでID3タグが文字化けるのを直したdebパッケージ作った

前回作ったFFMpegのShiftJISパッチを適用してforked-daapdをビルドした。 本当はCentOSでやれればよかったんだけど、依存しているパッケージが古すぎて面倒だったからDebianでやる事にした。 今の所何の問題もなく快適に動いているけど、自己責任で。 ShiftJ…

FFMpegでID3タグが文字化けるのを直すパッチを作った

forked-daapdで文字化けしてるから、それを直したい。 とりあえず文字化けの原因は潰したから今度試す。 パッチの前にちょっと解説。 なぜ文字化けるのか ID3v2が対応している文字コードは、 ID3v2.2〜ID3v2.3の場合、ISO-8859-1とUTF-16だけ。 ID3v2.4の場…

CentOS6にnetatalkをインストールする

Macで使われている一般的なファイル共有プロトコルAFPを使えるようにnetatalkを入れる。 依存関係はYumで入れる。 パスはCentOS標準に合わせる。 デーモンはrc.dで管理。 インストール yum install avahi avahi-devel openssl libgcrypt db4-devel yum insta…

KVMで仮想マシンに物理ハードディスクを直接接続させる

KVM

virsh editでに定義を追加する。 source devは/dev/sdXで指定するとホストマシンの構成が変わった時に変わる可能性があるから、/dev/disk/by-XXXで指定した方がいい。 target devは、ユニークになるように指定。 仮想マシンで直接マウント出来るから管理も楽…

LVMのLogical Volumeをコピーする

同じサイズのLVを作って、ddでまるごとコピー出来た。 毎度やるのは面倒だからスクリプト作った。 Volume Groupを超えて使える。 lvcopy.sh #!/bin/bash SRC_VG=$1 SRC_LV=$2 DST_VG=$3 DST_LV=$4 # check args if [ -z "$SRC_VG" -o -z "$SRC_LV" -o -z "$D…