Webコンサルタントの愚痴とアジャイル,生産性向上,Trac,オープンソースなどの与太話
Perlのサブルーチンが何をやっているか調べたいときには
perl -MO=Deparse <スクリプト名>
新サーバにZope2.10.2をインストールしてみた。新サーバはCentOS4.4なので、色々と微妙に嵌ったが、なんとか設定完了。
最近ストレス溜まり気味。
とある案件の火消し、新規案件、既存案件、接待、その他もろもろ色々ありすぎ。しばらくずっと夜は8時くらいには会社を出ていたのだが、最近は昼食の時間もままならないことも多かったり、だんだん不規則気味。これが続くと思うとげんなり。
そんな中新たなオープンソースプロダクトを検証中。dotProjectとGroupOffice。開発の活発さからして前者が圧倒的有利なのだが、後者の携帯対応も捨てがたい。少々色々試してみることにする。
PHPはJAVAみたいにスレッド間で共通のデータを持つことは出来ないので、どうしても性能が要求されるシステムになると無駄が多い。
そこで、試しにはてなやmixiでも稼動させているらしいメモリキャッシュ機構であるmemcachedを使ってみた。
実際の利用シーンとして考えられるのは、一定期間は更新がないデータベースを参照して画面を出力するような処理。これであれば、メモリの許す限り時間制限付でキャッシュすべきだ。そうすることでDB接続のオーバーヘッドはなくすことが出来る。
1. まずlibeventを導入しておく必要がある。
配布元http://monkey.org/~provos/libevent/から最新を取得する
2007年1月13日時点では1.2a 解凍して、configure、make、make installする
2. 配布元(http://www.danga.com/memcached/download.bml)から最新を取得する。
2007年1月13日時点では1.2.1
解凍して、configure、make、make installする
3. PHPにおけるPECL拡張をインストールする。
pear install http://pecl.php.net/get/memcache-2.1.0.tgz ※1
その後、/etc/php.dに新たに以下のようなファイルを作る
memcache.ini
中身は
extension="memcache.so"
apacheを再起動する。
4. memcacheの起動 ※2,※3
# /usr/local/bin/memcached -d -m 64-l 127.0.0.1 -p 11211 -uroot
5. テスト用スクリプトの実施
6. 実行してみる。
注意
※1 pearコマンドを実行する際に、もしPHPを複数バージョン導入していたりすると嵌る可能性がある。
自分の場合、PHP4とPHP5を同居しているが、PHP4の方がパス上早く認識されるので、PHP5用の導入したつもりがライブラリ周りがおかしく全然動作しなかった。
※2 もし違うサーバにキャッシュするのであればF/Wの設定等が必要な場合もある。
※3 デーモンなので常時起動するように監視しておかないといけない。
購入したメモリが届いた。梱包も丁寧。注文したのがおとといの深夜だから約1日半で届いた。これで物がよければかなりナイス。
という事で、明日一部の時間帯において、メモリ追加のため、サービスを停止します。
これで性能向上しなかったらどうしよう・・・。
とりあえず、オークションでもなかなか見つからないので、痺れを切らして、オンラインショッピングでメモリを購入。
ショップはグッドウィル。なんか介護会社っぽい名前がするが、それとは別らしい。
ノーブランドのDIMM DDR SDRAM PC2700 256MB CL 184pinで2990円。結構安い。もちろんバルクなので相性悪くて動作しない可能性もあるが、その場合は適当にオークションに出せば良いや、ということで。
週末までに届くと良いなぁ。
JAVAスクリプトとCSSを使うと簡単に対応できる。
http://www.dhtmlgoodies.com/index.html?whichScript=form-field-tooltipにアクセスしてzipファイルをダウンロードする。
解凍すると、js、css、imagesディレクトリがあるので、そのままの構成でサーバにアップする。
後は、ツールチップヒントを出したい画面に以下のような記述を挿入する。
<head>部
<body>部の最下部
ツールチップを出したい箇所
以上で終了だ。
特に複雑な入力を求めるものやいつも間違えてしまうような画面に適用すると良いだろう。
付属のサンプルを表示した例が以下である。FirstNameの右横にツールチップが表示されている。

Web2.0時代は色々なAPIが無償で用意されているから使いがいがあって楽しい。
今日採用したのは、Snapというサービス。ハイパーリンクのhoverイベントに反応して、リンク先のサムネイルを表示してくれる、という優れものである。
サイトURLはこちら:http://www.snap.com/about/spa1A.php
ちなみに、導入は非常に簡単で、上記サイトにアクセスしてサインアップし、生成されたJAVAスクリプトをページに挿入するのみである。(以下は適宜改行が入っている)
日本では、simpleapiなどのAPIが無償提供されているが、海外にも色々あるようだ。
自分のサイトがちょっとした工夫でにぎやか(微妙にうざいかも汗)になるので、どんどん探してみよう。
なんか、中央競馬の全レースがオンラインで動画で見れるようになったので、自作ソフトと連携してみた。
不利やら位置取りやらも全部分かるから、見るのに時間がかかることを除けば非常に良い。
1週間に一度ライセンス認証をしないといけないのは鬱陶しいが。
#ついでに阪神競馬場のコース新設対応なども実施。1.19でリリース予定
奥さんが初売りで外出し、息子も昼寝してたので、新鯖を構築する。
箱は以前に奥さん用に購入したマウスコンピュータのデスクトップマシン。確かWindows2000をインストールして使っていたのだがなんか不安定であまり使わなかったマシン。Linuxだったら動くだろ、ってな感じで構築。
OSは以前のバージョンアップで結構懲りたのでFedoraは避けて、CentOS4.4を採用。ちなみにサーバ用途の場合はインストールCDが1枚あればOK。あとはインストール後にyumでアップデートすれば良い。(ミラーサイトもFCに比べて結構応答が良い)
色々インストール記録を書こうかと思ったが、あまりにインストール簡単すぎて何も書くこと無し(w
日記 PHP オープンソース Linux Trac Perl wordpress フリーソフト Agile 自宅サーバ phpMyFaq Plugin 書評 Delphi apache プラグイン Subversion アジャイル mojavi セキュリティ Ruby Firefox Ajax/Web2.0 eclipse サーバ Zope フレームワーク CakePHP 文字化け scuttle OpenVZ 自宅 phpBB CMS 翻訳・日本語化 Excel ApacheDS 生産性向上 仮想化 hacks CodeIgniter XAMPP LDAP SBM taskfreak Ajax 修正 言語ファイル mod_security ダウンロード HTML::FillInForm 情報共有 格安 メンテナンス 移転 アンケート レンタル PhpScheduleIt 翻訳 API