Posts categorized “Technical Notes”.

ブログ移設しました

今まで自宅の G4 Cube でがんばって動いていたブログを外部のサーバに移設しました。ついでに Wordpress をアップグレードしました。裏側が変わっただけで、見る分には何も変わってません。

これを機にURLは www.simplebeep.net から simplebeep.net を正式なものにしようと思います。 www つけてもアクセスはできますので、これも気にしなくていいのですが。

というわけで、何か不具合を発見された方はご一報いただけるとありがたいです。

移設+アップグレード作業では文字コードの問題でちょっとつまずきました。MySQL関係ではよく文字化けに悩まされます。今回の場合、設定ファイルの wp-config.php に以下を設定しておくとうまく行きました。

define('DB_CHARSET', 'utf8');

こうするとDBにアクセスするときに SET NAMES 'utf8' をやってくれるようです。

MacのFlash Player 9でtraceをファイルに出力

以下でデバッガ版 Flash Player をダウンロードしてインストール。
Adobe Flash Player - Downloads

/Library/Application Support/Macromedia に mm.cfg というファイルを作成。中に以下を記述。

ErrorReportingEnable=1TraceOutputFileEnable=1MaxWarnings=10000

trace文をしこんだswfを実行すると、
~/Library/Preferences/Macromedia/Flash Player/Logs/flashlog.txt
というファイルに結果が出力される。ターミナルで tail -f しておくといい感じ。

デバッガ版の Flash Player の構成 — Flex 2
MacでFlashPlayer9のTraceが出力されない問題解決 (Unknown Quality)

MacBookのHDD交換

仕事の関係でまともに使えるWindows環境が必要になったので、Boot CampのWindows XPを再インストールしようと思ったのだが、ParallelsをBoot Campパーティションで使ったためかうまく再インストールできない。原因を調べるのも面倒なのでOS Xごと全部入れ替えてしまおう、そしてこの際80GBのHDDをもっと容量の大きいものに交換してしまおう、と思い立ってしまった。MacBookはメモリのみならずHDDの交換も簡単にDIYでできてしまうのです。

ということで秋葉原に買い物へ。日立の2.5インチ、160GB、シリアルATAのHDD2.5インチ用のケースを購入。HDDは垂直磁気記録という方式のやつ。HITACHIのサイトでおもしろおかしいアニメーションで説明してくれてます(英語)。

交換に先立ってOS X (10.4.8)のデータの移行が必要なのだが、起動ディスクを起動可能な状態で丸ごとコピーするにはコツがいります。有償、無償のツールもあるんだけどこちらのページを参考にrsyncコマンドを使ってやりました。

$ sudo /usr/bin/rsync -E -auvxS / /Volumes/NewHDD
$ sudo bless -folder /Volumes/NewHDD/System/Library/CoreServices \
-bootinfo /usr/standalone/i386/boot.efi

無事データ以降完了。新しい方のHDDで起動ができることを確認してから内蔵HDDと入れ替え。手順はこちら。メモリはなんか固くて入れるのに苦労したけど今回はすんなり行った。すごく簡単。

無事交換完了。ということであとはBoot Campでパーティション作ってXPをインストール。今回は32GB割り振ってみた。特に問題なくXPインストール完了。めでたしめでたし。

ダイナミックDNSの更新スクリプト

自宅のサーバは普通のADSL接続なのでたまにIPが変わってしまう。なのでIPが変わってないか常に監視して、変わったらDNSを更新してやらないといけない。今まで What’s Up! というソフトを使っていたのだが、たまに更新できずにいて外からサーバにアクセスできなくなっていることがよくあった。DNSの更新にわざわざグラフィカルなインターフェイスとかいらないのでこの際自分でスクリプトを書いてしまおうと思い立った。最近仕事でシェルスクリプトを覚えたし。

ダイナミックDNS更新シェルスクリプト
というわけでこちらのサイトを参考にさせていただく。処理の流れとしては、まずADSLモデムの管理画面のHTMLを wget でとってきてそこからWAN側IPを抜き出す。

current_ip=`wget -q -O - '管理画面のURL' | cat -n | grep 行番号 |
awk '{print $2}'`

wget -O - でとってきたHTMLを標準出力に渡し、 cat -n | grep 行番号 で指定した行だけ抜き出し、 awk でIP部分を抜き出すという寸法。

で、前回更新した IP をファイルに書き込んでおいたものを取り出してきて、今 wget でとってきた IP と比べて変更されていたら DNS に新しい IP を教えてやればいい。 DNSの更新の仕方はサービスによるけどたいてい GET の引数に各種情報を入れたURLにアクセスするだけでよいのでこれも wget を使えばよい。

そんな感じで作ったスクリプトを cron で5分毎に実行。IPが変更されたときはちゃんとログを書き出すようにしておくべき。昨日の夜から動いているが早速変わっている。しかも0.0.0.0ってなんかIP取得に失敗している瞬間があったり。思ったより回線状況は不安定?

VimのインサートモードでEmacsなキーバインド

なんとなくvimを使い始めた。早速邪道に走る。

インサートモードで上下左右、行末、行頭へのカーソル移動にEmacsのキーバインドを使う設定。

inoremap  l
inoremap  h
inoremap  j
inoremap  k
inoremap  0
inoremap  $

ついでにノーマルモードで行頭、行末移動のキーマップを変更。

nnoremap  0
nnoremap  $

さらにコマンドラインモードで左右移動。

cnoremap  
cnoremap  

コマンドラインモードでも行頭、行末移動が使いたいのだがやり方がわからなかった。ご存知の方ご教授ください。

Mac OS XでSSL&WebDAVサーバ

旅行の写真を共有するためにWebDAVサーバを実現しようとここ何日か作業していた。以前Linuxでサーバを運用していたときに一度使っていたのだが,OS Xに替えてからは導入していなかった。

WebDAVはすごく便利なんだけどいろいろと厄介なことが多い。おなじみの日本語文字コードの問題もあるけど,この際ファイル名は英数のみとすることで考えないことにする。

WebDAV自体に認証の機能はないのでBasic認証かDigest認証と併用することになる。Windows XPからの接続はセキュリティの問題からかDigest認証かSSLを併用したBasic認証しか通らないようになっている。ただしXPのWebDAVクライアントには認証の際にユーザ名にホスト名を付け足す変な挙動があって,これに対処するためにmod_encodingというApacheのモジュールを導入するんだけど,これがDigest認証には未対応っぽい。というわけでBasic認証+SSLという選択肢しかない。

が,しかし10.3 (Panther) 以前のMac OS XのFinderに組み込まれているWebDAVクライアントはSSL接続に対応していないので,こっちは通常のHTTPで接続しなければならない。なのでhttpでもhttpsでも接続できるようにすればよい。

以下,Mac OS X 10.3 (Panther) 上のApacheでSSLとWebDAVを導入するための情報。

MacOSXでSSLサーバー
Mac OS XでWebDAVサーバ

Mac OS X用mod_encodingのMakefileに必要な修正。

3行目
DEFS = -DMOD_ENCODING_DEBUG=1 -Wc,-framework -Wc,CoreServices
 ↓
DEFS = -Wl,-framework -Wl,CoreServices
15, 18行目
www.opendarwin.org
 ↓
cvs.opendarwin.org
24行目
$(APXS) -c $(DEFS) mod_encoding.c vfs_utfconv.o
 ↓
$(APXS) -c $(DEFS) mod_encoding.c vfs_utfconv.o -framework
CoreServices

Power Mac G4 Cube HDD交換計画実践編

Apple Store銀座でYMCKのライブを見て来た。Macとファミコンとディスクシステムが並んでるだけでテンションあがるよ(笑)。ファミコンとかはただの飾りぽかったけど,2コンのマイクでしゃべってる感じのパフォーマンスとかヤバかった。

計画していたサーバのHDD交換,ついに実行。事前に準備しておいたものはHDD(Seagate ST340015A [40GB, 5400rpm])とトルクスドライバー(T-8),あとマイナスドライバー。必要なものと交換手順はアップルのサポートページに動画までついて丁寧に説明されているので迷うことはない。

在宅自己交換修理 - Power Mac G4 Cube

手順通り交換したあとバックアップしてあった外付けHDDから起動(起動時にoptionキーを押しておいて起動ディスクを選択)。内蔵HDDをディスクユーティリティで初期化してからCarbon Copy Clonerで外付けHDDを内蔵HDDにコピー。起動ディスクを内蔵HDDに変更してから再起動。これで無事完了。すんなりできた。

気になる音だが,ほぼ無音と言ってよい。これは大成功。パフォーマンスも前よりは向上してるはず。

Power Mac G4 Cube HDD交換計画準備編

サーバにしているG4 CubeのHDDがやたらと高周波音を出してうるさいので交換しようと思っていて,今日は秋葉原に行ってきた。秋葉館で聞いてみたらCubeは熱がこもりやすいから5400回転のが無難だけどここには置いてないとのこと。いまどき5400はあんまないらしい。結局ツクモでちょうどいいのを見つけてきた。

ケースを買うのをけちって,前から持っていた外付けHDDに入れ替えてサーバの中身をコピーしようと思っていたが外付けHDDが開けられずに断念。しょうがないのでとりあえず外付けHDDの2つあるパーティションのひとつを消してそこにサーバのHDDをコピーすることにした。ファインダーから中身をコピーしてもそっくりそのまま移すことはできず起動もできなくなる。ボリュームをそっくりそのままコピーするにはCarbon Copy Clonerというソフトを使う。やってみたらすんなりとコピー完了。外付けHDDからサーバが起動した。内臓ドライブをアンマウントしてみるとそれだけで静かになった!これでよくない?

せっかく買ったので交換はするけど。また後日。というわけで現在このサーバは外付けHDD起動で動いてます。つうことは,iPodからサーバ起動とかできるわけだ。無駄に。

RSSパーサー

早速Webminのおかげで作業がはかどった。

PHPでRSSを読み込んでブログに見出しを表示させることを考えていた。そのために必要なのがRSSパーサー。Magpie RSSというのが良さそうなので使ってみた。当然のごとく最新版(0.72)をダウンロードして試してみたら何故か文字化けしてしまった。いろいろ調べてみたらどうやら最新版にバグがあるらしい。0.61を入れたら問題なく動いた。

というわけで,これを使って左のカラムにBBSの最新記事の見出しを表示するようにしました。要するにRSSリーダーです。いちいち掲示板に飛ばなくてもここでチェックできるので便利かと。

参考サイト

MagpieRSS - PHP で使える RSS パーサー。
nJOY BLOG::サイトにRSSを埋め込んで表示させる方法

Mac OS XでWebmin

MacOSXでサーバー稼業 : Mac OS XにWebminをインストールしよう

ブラウザからサーバー管理が何でもできてしまうWebminというツールがある。リンク先の解説を参考にさせてもらってインストールしたらいとも簡単にできてしまった。いろんな設定がブラウザからグラフィカルにできて便利。リモートからアクセスできるようにすれば,ブラウザだけでどこからでもファイルをアップロードしたり編集したりできてしまう。それだけに危険なので,接続元IPは限定しておいた方が良さそう。