2007年1月30日火曜日

サーバサイドAjax入門

Ajax本3冊目。
正式なタイトルは『サーバサイドAjax入門 Java/PHP/ASP.NET連携でAjaxプログラミングを極める!』。長い。
サーバサイドAjax入門 Java/PHP/ASP.NET連携でAjaxプログラミングを極める!

価格: 2,940円
山田 祥寛
翔泳社
これまで読んだ2冊はクライアントサイドのAjaxがメインの内容だったんですが、この本はサーバーサイドがメイン。Java、PHP、ASP.NETの3つのサーバサイド言語のAjaxライブラリが紹介されています。自分はPHPしか使わないのでJavaとASPは飛ばして読んだため、あっという間に読み終わりました。
とりあえず気になっていたPEAR::HTML_Ajaxの概要がよく分かったのは収穫でした。あとは非常に簡潔ながらもprototype.jsのリファレンスがあったのもうれしい。ていうかprototype.jsってスゴイ。Ajaxのみならず、普通にJavaScriptでコード書くときには絶対必須のライブラリになりそうです。

Vine3.2にGD.pmをインストール

perlのGD.pmをインストールしようと思い、
cpan> install GD

とやったところ、
/usr/bin/ld: cannot find -lXpm

というエラーが。
ググってみたら、Vine3.0で同じような問題を抱えた人を発見。
http://search.luky.org/vine-users.6/msg06835.html
Vine Linuxでは必要最小限以外のdevel系パッケージはCDに収録されないそうで、自分でインストールする必要があるそうです。
# apt-get install XOrg-devel

XOrg-develというのはX Window System関連のライブラリらしい。
これで必要なdevelパッケージがインストールされ、GD.pmのインストールも無事完了しました。

2007年1月26日金曜日

MySQLのバイナリログを削除する

自分が開発したLAMPのシステムに異変発生。

普通にアクセスできるものの、データの登録や更新ができない。つまり、selectはOKだけとinsertやupdateがNG。

この時点でだいたい原因は想像できた。サーバーにログインして「df -h」をしてみると、やっぱり、/varディレクトリが100%になっている。つまりMySQLが更新ログ(バイナリログ)をディスクに書き込めず、処理ができなかったというわけだ。

よく見てみると、「/var/lib/mysql/DB名.log」というファイルが肥大しまくっている。実は、開発時にデバッグ用にmy.cnfでlogオプションを有効にしており、本番運用開始後もずっとそのままだったのが原因。

さっそくログファイルを削除し、my.cnfのlogオプションをコメントアウトしてmysqlを再起動。問題は無事、解消されました。

ひとまず一件落着なんですが、同じディレクトリにあるバイナリログを見てみると、なんと116までログが増えていた。こちらも合計するとかなりのサイズなので、削除することに。

バイナリログ処理関連の構文はこちらに載ってます。
http://dev.mysql.com/doc/refman/4.1/ja/replication-master-sql.html

ひとまず、昨年末までの分を削除。
mysql> PURGE MASTER LOGS BEFORE '2006-12-31 23:59:59';

これでバイナリログがごっそり消えてすっきり。/varディレクトリの空きもぐっと増えました。
ついでに、日付指定をしないで全部のバイナリログを消す場合はRESETを使います。
mysql> RESET MASTER;

それから、今回のようなログ肥大化を防ぐために、my.cnfに下記を追加しました。
expire_logs_days = 7
7日以上経った古いバイナリログは削除する、という設定です。

詳細はこちら↓
http://www.limy.org/program/db/mysql/mysql_variables.html

AJAX Webアプリケーション アイデアブック

Ajax本2冊目。これも超ナナメ読みで済ませました。
AJAX Webアプリケーション アイデアブック


価格: 2,100円

羽田野 太巳
秀和システム
感想は、、ビミョー。。
抽象的な言い方なんですが、良くもなく、悪くもない感じ。延々とサンプルコードが続くので読むのが苦痛なんですが、ところどころで「ナルホド」と思わせるところがあったりもします。あと個人的に気になっているprototype.jsについての解説がほとんどなかったのが残念でした。
参考書に対して高望みしすぎかな?とも思いますが、懲りずに3冊目読み始めてます。

2007年1月24日水曜日

AutoMySQLBackup: MySQLの自動バックアップスクリプト

いいものを発見しました。
http://members.lycos.co.uk/wipe_out/automysqlbackup/
MySQLのバックアップ用シェルスクリプトです。
ダウンロードしたファイルの冒頭でDB名やユーザー、バックアップするDBなどを設定し、サーバーにアップして実行するだけですぐ使えます。
日別、週別、月別でバックアップをとってくれて、gz圧縮もしてくれるのでファイルサイズも小さくて済みます。また、詳しく見てないのですが、ADVANCED OPTIONSというのもあるので複雑なバックアップ設定もできるっぽいです。
今後バックアップが必要な場合はこのスクリプト使おうと思います。

2007年1月23日火曜日

Ajaxを使ったPOSTでのリクエストが失敗する

現在Ajax習得中。
POSTでのデータ送信を試していたところ、なぜかうまくいかない。リクエストは送信できるのだけれど、パラメーターを受け取れないらしい。
失敗した↓
post_data = "param1=aaa&param2=bbb";
httpObj.open("POST","test.php",true);
httpObj.send(post_data);

これはどうもおかしいぞ、と思ってググってみたら解決方法を発見しました。
成功した↓
post_data = "param1=aaa&param2=bbb";
httpObj.open("POST","test.php",true);
httpObj.setRequestHeader("content-type","application/x-www-form-urlencoded;charset=UTF-8");
httpObj.send(post_data);

こちらを参照→http://meiblog.seesaa.net/article/24638899.html
原因はめんどくさいから調べてないんですが、サーバー側の設定ぽい感じです。

2007年1月16日火曜日

入門Ajax

2007年の目標は、Ajaxをマスターして業務でバリバリ使えるようになること。に設定しました。
で、ひとまず会社に置いてあったAjaxの入門書を読んでみることに。
入門 Ajax

価格: 2,709円

高橋登史朗
ソフトバンククリエイティブ
サンプルコードが多かったので、おもいっきり斜め読みして1時間程度で読み終えました。とりあえず、Ajaxがどんなものなのか概要は把握できたのは良かったです。ただ、以下のエントリで指摘されているように、欠点もかなり多いと思います。
入門Ajaxが初心者にオススメできない理由
http://la.ma.la/blog/diary_200511260950.htm
なにぶん古い本(2005年末発売)なので仕方ないところもあるかもしれませんが、Pearとか使って可能な限り効率的に開発を進めたい、と思う自分のような人間にとってはライブラリの紹介や説明がないのは困ります。
、、、と思っていたら、最近増補改訂版が発売されたみたいです。
入門Ajax 増補改訂版

価格: 2,709円

高橋登史朗
ソフトバンククリエイティブ
こっちは読んでないのですが、『本書は前作「入門Ajax」に、基礎知識や旬のライブラリ解説などを大幅増補しました。』とあるのでだいぶ改善されているのかもしれませんね。
とりあえず、あと2~3冊くらいAjax関連本を読んでみようと思ってます。