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

WWW::Salesforce 0.082 -> 0.090 での非互換というかなんというか

おそらくものすごく役に立つ人が少ない情報。Perl で Salesforce 使ってる人どれぐらいいるんだろうか。 独自オブジェクトを WWW::Salesforce で扱う際に、カラムの型を定義してやらないと 2byte 文字とかが入らないので、0.082 までは $WWW::Salesforce::Co…

DNS cache サーバ unbound を動かす

CentOS-4 で、DNS cache サーバとして unbound を動かしたのでメモ。 127.0.0.1 のみ Listen して純粋にキャッシュサーバとして使う (外向けのアドレスでは、すでに bind がコンテンツサーバとして動いてるので) 日本 unbound ユーザ会のページから、http://…

Hobbit のネットワーク系テストで timeout を指定

ネットワーク系のテストはデフォルトで 10秒以内に応答がないとエラーになる。開発用サーバの httpd を監視しているのだけど、キャッシュが切れたタイミングで応答に 10秒以上かかってしまうことがあり、アラートが飛んでしまう。 (本番サーバで 10秒以上時…

HP ML115 G5 & VMware ESXi での NIC 認識

メモ。 BTO で PCI-E の NIC ("NC110T PCI Express Gigabit Server Adapter") を増設。ヒートシンクでチップは見えないが、中身は Intel (e1000) だった。 これで起動すると VMware ESXi では vmnic0 : PCI-E NIC (Intel e1000) vmnic1 : オンボード NIC (Br…

初代 MacBook を SSD に換装

発売になったばかりの CFD 販売 120GB SSD (CSSD-SM120NJ) を¥27,800 で買ってきた。spec Read 140MB/s, Write 90MB/s の MLC タイプ。 2ヶ月前に60GBのを買ったのに、値段同じで容量倍だ……MacBook に取り付けて、TimeMachine からレストア。noatime を指定…

IPC::Open2 が Catalyst のテストサーバで動かない件の対処

IPC::Open2 (Open3) が Catalyst のテストサーバでまともに動かない。ハンドルを操作しようとすると Broken pipe のエラーが起きる。 package MyApp::Controller::Foo; sub foo :Private { my ( $self, $c ) = @_; open2( my $out, my $in, "/path/to/comman…

mod_concat で複数ファイルを連結して配信する

先日リリースした某サービスの HTML を見ていたら、外部 js ファイルの読み込みに が十数行ずらずらと並んでいるのを発見。 これ、確か Apache module でまとめて配信してくれるのがあったよなあ……とブクマを掘り起こして、mod_concat を見つけたので試して…

Squid で帯域制限

遅い回線のエミュレーションをしたかったので、Squid で帯域制限をやってみた。 以前にも同じようなことを FreeBSD で bridge + dummynet でやったのだが、今回はお手軽に Squid のみで。dummynet だと IP レベルで制限をかけるので遅延もエミュレーションで…

DRBD + Keepalived + iSCSI target を VMware ESXi から使うメモ

単なるメモです。 ホストを 2台用意して DRBD でミラーリング iSCSI Enterprise Target で iSCSI target にする Keepalived VRRP で VIP を振って Master/Backup 構成で failover 可能に VMware ESXi からその iSCSI target 上に仮想マシンを構築 failover …

SSD (FTM60GK25H) のベンチマーク

SUPER TALENT FTM60GK25H Rev.2 というもの。本当は Buffalo のやつを買うつもりだったが、金曜の時点で売り切れていた。Bonne++でベンチマーク。CPU:Pentium-M 1.6GHz Memory:1GB OS:CentOS-5.2 $ bonne++ -s 2047 Version 1.03 ------Sequential Output---…

VMware ESXi 3.5 が落ちた

突然。ブルーじゃなくてパープルスクリーン。"Faild to ack TLB invalidate" でぐぐったら VMware ESX Server 3.0.3 Release Notes が見つかって、 ESX Server Stops Responding and Displays a Purple Screen This release fixes an issue where ESX Server…

VMware ESXi 3.5 パッチ適用

8/12 になると VM が起動できなくなるというバグがあったので、パッチ適用。VMware ESXi3 update 2 パッチ適用 - ゆういちろうのひとりごと で書かれているまんまですが、一応自分でもメモ。 ESX Server 3i Installable Setup Guide(PDF)Remote CLI でコンフ…

VMware ESXi を USB メモリにインストールして HP ML115 で起動

VMware ESXi が無料化されたので試してみた。安売りしてたので衝動買いした HP ML115 (¥15,750 + CPU換装 + メモリ 4GB増設) に、ESXi を入れようと CD-R からインストールを開始したところ Unable to find a supported device to write the VMWare ESX Ser…

TheSchwartz で時間が掛かる job を実行するときは grab_for に注意

TheSchwartz の worker で、一つの job が worker->grab_for (default 3600) 秒以上掛かる処理をすると、処理中の job を他の worker が掴んでしまう。具体的には大量のメール送信をしていたんだけど、Data::Valve でスロットリングしてゆっくり送っていたら…

Data::Visitor の変更で Data::Visitor::Encode がこけた

つい先日、2008-07-21 にリリースされた Data::Visitor 0.18 をインストールしたら Data::Visitor::Encode がコンパイルエラー。 Can't locate object method "mk_accessors" via package "Data::Visitor::Encode" Data::Visitor の Changes には 0.18 - Wea…

Apache2::AuthenOpenID を使ってみたらはまったので直してみた

Apache2::AuthenOpenID を使って trac に OpenID 認証を掛けようとしたら嵌ったので、coderepos で branch 作っていじってみました。 http://coderepos.org/share/browser/lang/perl/Apache2-AuthenOpenID/branches/per_dir_configまず trac の複数のプロジ…

Perl + Win32::OLE で Skype に発信

ほんのとっかかりだけ。 use strict; use warnings; use Win32::OLE; my $user_name = shift || die; my $skype = Win32::OLE->new('Skype4COM.Skype'); unless ( $skype->Client->IsRunning ) { $skype->Client->Start(); } my $user = $skype->User($user_…

Mail::Sendmail で RFC 違反のメールアドレスに送信

問題になった「RFC違反のメールアドレス」は、携帯でよく問題になる foobar.@example.com みたいな奴。 普通に送信しようとすると、"No recipient!" と例外が飛んでしまう。Mail::Sendmail は送信時に while ($recip =~ /$address_rx/go) { push @recipients…

TheSchwartz を PostgreSQL / SQLite で使うと worker プロセスが太る(のは解決済)

MySQLだと問題ないみたい。あと、job の引数に何を渡すかで変わってくるらしい……[2010-2-16 追記] 追記時点での DBD::Pg と DBD::SQLite の最新版 (DBD::Pg-2.16.1, DBD::SQLite-1.29) では、以下に記述されているメモリリークは解消されています。記事自体…

macbook の HDD が死にそうなので換装 → Time Machine からレストア

osx

最近、どうもHDDのアクセスで待たされるような感じがするなあ,と思ったら、system.log に disk0s2: 0xe0030005 (UNDEFINED).というエラーが度々記録されていた。 先代の HDD も同じような症状が出ていたのを、なんとなく動くからと放置していたら本当に死ん…

Catalystのfinalize処理

Catalyst で DB への commit / rollback のためにこんなコードを書いていて…… package MyWebApp; # 略 sub finalize { my $c = shift; my $r = $c->NEXT::finalize(@_); if (正常終了) { $dbh->commit; } else { $dbh->rollback; } return $r; } 他の finali…

Daemon::Generic 2題

以下 2点。ちょいと困ったので調べた。 1. Daemon::Generic で書いた daemon を cron から起動するとゾンビが残る件 2. logger 経由で表示されるログの pid が、自分のじゃない件まず、プロセスを daemon 化する処理について。 Unix Programming Frequently …

URI::Fetch で Cache Hit すると http_response が取れない

decoded_content が欲しかったので $res = URI::Fetch->fetch( $uri, Cache => $cache ); $res->http_response->decoded_content; ってしたのだが、Cache にヒットすると http_response が空っぽ。 Cache に書き込む部分は以下のようになっていて、http_resp…

Spread Toolkit + Perl で cagra みたいなのを実装してみた

分散ストレージシステム Cagra が面白そうだなあと思いつつ以下の図を見たら、 これ、Spread Toolkit でセッションレプリケーション - 酒日記 はてな支店 で書いた図に似ているなと。 要するに、client は localhost(でなくてもいいけど) の daemon と通信し…

mod_auth_openid を使ってみる

Apache で OpenID 認証を行う mod_auth_openid を試してみた。 インストールする OS は CentOS-4 (多分 5の方が楽)。 まず C++ で書かれた OpenID ライブラリ libopkele をインストール……するのだけど、その前に pkg-config で libpcre を扱えるように、libp…

TheSchwartz の worker を安全に停止する

TheSchwartz の worker を Ctrl-C とか kill で止めた場合に、job の処理が半端な状態で終わられると困る、という話。以前 Deamon::Generic で TheSchwartz の worker をデーモン化する(2) - 酒日記 はてな支店 で諦めたんだけど、ちょっと必要に迫られたの…

rsync 3.0

rsync 3.0 がリリースされたそうです。 差分更新の時に、転送元と転送先を同時に走査し、すぐに差分の転送を始める。 rsync 3.0: uyota 匠の一手 という、素晴らしい機能強化が。 今までは rsync は一旦全ての転送元ファイルをチェックしていたので、巨大な…

CentOS4 & SQLite & Python

とあるサーバにて。再起動して trac にアクセスしたら、何故か httpd (mod_python) がメモリをバカ食いし始めた。 yum update したら、これまた yum がメモリを食い尽くす。 再起動の理由がディスク障害だったので、ハードウェアがらみで何かか? と思ったの…

Livedoor IdP の動作変わった?

Net::OpenID::Consumer (Catalyst::Plugin::Authentication::Credential::OpenID) を使っていたアプリケーションで、Livedoor の OpenID URL でログインすると別 ID になる現象が。http://profile.livedoor.com/***** (末尾に / なし) へのアクセスが 301 で…

ついにやらかした rm -rf /

UNIX の root なら誰もが必ず一度はやるという、rm -rf / をついにやった。root歴10年にして…… 社内の開発サーバだったのが不幸中の幸いではあったが。 vsftpd でホームディレクトリがない時の挙動を確認したくて、テスト用のユーザ fujiwara2 の home を mv…