アーカイブ:  « 2006年10月 | メイン | 2006年12月 »

2006年11月29日

Mysqlに関する管理コマンド

#rootユーザーのパスワードを設定
mysqladmin -u root password '(password)'

#DBの追加
mysql -u root -p
mysql> CREATE DATABASE hogehoge
なお、5.0では大文字小文字を区別するらしく、create databaseはエラーになる。

#ユーザーの追加(すべてのDBに権限を付与の場合)
mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO (username)@localhost IDENTIFIED BY '(password)';

#ユーザーの追加(hogehogeデータベースの任意テーブルに権限を付与する場合)
mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON hogehoge.* TO (username)@localhost IDENTIFIED BY '(password)';

run level

Linuxのrun levelだがnoisettle.ddo.jpにあるように

0:システムの停止
1:シングルユーザーモード(管理者モード)
2:NFSを使わないマルチユーザーモード
3:マルチユーザーモード
4:未使用
5:GUIログインを行えるマルチユーザーモード
6:システムの再起動
となっており、多くの場合には、3(CUI)もしくは5(X Windowsシステムを利用したGUI)になっている。
/sbin/runlevel
で現在のランレベルと以前のランレベルを調べることが出来る。
なお、/sbin/chkconfig (サービス名) on
とすると2, 3, 5がonになる。

Mailmanの通し番号を変更する

Mailmanで2.1.6からsubject_prefixに指定できる通し番号(採番)は以下のように変更することが出来る。
# /usr/lib/mailman/bin/withlist (メーリングリスト名)
>>> m.Lock()
>>> m.post_id
139.0
>>> m.post_id = 140
>>> m.Save()
>>> ^D

Mailmanメーリングリストから引用しました

リスト管理者としてそれはマズいんじゃない?!

Maimanの日本語化でメーリングリストの削除をしようとすると発生するメッセージ。通常は、
(管理ツールのURL)/rmlist/(メーリングリスト)
で削除できるが、このメッセージが出て削除できない。ただ、コマンドからは削除が出来る。
/usr/lib/mailman/bin/rmlist (メーリングリスト)
この場合には、確認メッセージ等が出ないので注意したい。

Fedora Core6 + Postfix + Mailmanではまる

Fedora Core6からIPv6のサポートが正式に始まった。これによってIPv6の環境下でもインストールを行うことが出来るようになった。がしかし、ソフトウエアがまだ完全に対応していないために思わぬところではまってしまった。

PostfixはIPv6に対応しているもののデフォルトはIPv4対応になっている。
inet_protocols = all
main.cfに設定して再起動しなければ、IPv6用に待ち受けしないので、
telnet 127.0.01 25
とやると問題ないのに
telnet localhost 25 もしくは
telnet ::1 25 とやると

Trying ::1...
telnet: connect to address ::1: Connection refused
telnet: Unable to connect to remote host: Connection refused

のメッセージが出てしまう。Mailmanはデフォルトでlocalhostに配送しようとするので、この問題で配送されない状態が続くということになる。

(追記)
もしmynetworks = 127.0.0.1 となっている場合には、mynetworks = 127.0.0.1, [::1] としてあげる必要があるかもしれない。
そして、xinetdはオプション付でなければIPv6に対応せず、Fedora Core6では対応してなさそうだ。
また、無効にしたいときは、
/etc/modprobe.confの中に次の記述を追加する。
# Turn off IPv6
alias net-pf-10 off
alias ipv6 off

mailtoについて

RFC822に規定されているリンクの形式のうち、mailtoに関するものについて。mailtoには、mailto:aaa@bbb.comのほかに送信先を指定するto, CCを指定するcc, タイトルをつけるsubject, 本文を入れるbodyがheadersに規定されている(RFC1738)。詳しくは、RFC2368の翻訳をご覧ください。

たとえば、あて先aaa@bbb.com、 CCにxxx@yyy.com, タイトルddd, 本文eeeを付加するリンクを生成するとすれば、
mailto:aaa@bbb.com?cc=xxx@yyy.com&subject=ddd&body=eee と指定するか
mailto:?to=aaa@bbb.com&cc=xxx@yyy.com&subject=ddd&body=eee と指定すればよさそうだ。

sshで指定されたグループのみを許可する

AllowGroupsパラメータでグループ名を指定すると指定されていないグループに所属するログインユーザーを拒否することが出来る。パラメータはDenyUsers, AllowUsers, DenyGroups, AllowGroupsの順に処理されるらしい。

2006年11月28日

Postfix + DovecotでPOP before SMTP

もう認証方式としてはあまり使われなくなっているらしいPOP before SMTP方式ですが、SMTP認証方式は多少なりとも初心者ユーザーへのハードルが高いことは事実。PostfixとDovecotを使ってPOP before SMTPを実装する方法がTAKEDA Hiroyukiさんのページで紹介されていました。僕の環境の場合、BerkeleyDBのCPANインストール時に

db.h: No such file or directory

で躓きましたが、db4-develパッケージをインストールすることで解決しました。

postfixの設定

postfixでMaildir形式での運用をするときには、/etc/postfix/main.cfを以下のように変更する。
#home_mailbox = Maildir/
#mail_spool_directory = /var/spool/mail

home_mailbox = Maildir/
mail_spool_directory = /var/spool/mail

また、Fedora CoreやRedhatではローカルのみメールを配送するように設定されているために、
telnet localhost 25とすると

Trying ::1...
telnet: connect to address ::1: Connection refused
telnet: Unable to connect to remote host: Connection refused

というエラーに悩まされるかもしれない。
そこで、以下のように設定を変更する。
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost

inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
それから、Fedora Core6の環境で悩まされた問題だが、inet.dの再起動に失敗して
postfix[XXXX]: fatal: parameter inet_interfaces: no local interface found for XXX.XXX.XXX.XX
というエラーが/var/log/maillogに記載されることがあるかもしれない。そのときは、
/etc/hosts
ファイルを見直すとよい。

パケットをキャプチャする

WindowsではEthereal(Wireshark)が有名だが、Linuxではtcpdumpコマンドが利用できる。たとえば、SMTP(25番)ポートで通信が行われているかどうかは、

# tcpdump port 25
を実行することで確認できる。

mailmanをバーチャルホストで運用する

mailmanを日本語化するには
[/etc/mailman/mm_cfg.py]
MTA = 'Postfix' # メールサーバーの種別を指定
DEFAULT_SERVER_LANGUAGE = 'ja' # 管理画面を日本語化
OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes # 登録メンバー以外は、メーリングリストの使用を不可にする
DEFAULT_REPLY_GOES_TO_LIST = 1 # メーリングリスト一覧を非公開にする
DEFAULT_GENERIC_NONMEMBER_ACTION = 2 # 件名のフォーマット(記事№を付加)
DEFAULT_REPLY_GOES_TO_LIST = 1 # 返信先を投稿者ではなくメーリングリストにする(Reply-Toの書き換えを行う
を加える(Naoki Hirataさんのサイトを引用)

また、個人的には以下のものをオススメしたい。
DEFAULT_REQUIRE_EXPLICIT_DESTINATION = No #バーチャルドメインで運用する場合にエイリアスを張ったMLに送信すると保留されるのを防ぐ
DEFAULT_MSG_FOOTER = '' #フッターの署名をつけない

もしexample.comとvirtual.comをバーチャルホストで運用するには以下の2行も追加する。
add_virtualhost('www.example.com','example.com')
add_virtualhost('www.virtual.com','virtual.com')
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['example.net', 'virtual.com']

そして以下のコマンドを実行し、
# touch /etc/mailman/virtual-mailman
# chown apache:mailman /etc/mailman/virtual-mailman

[/etc/postfix/main.cf]
virtual_alias_maps = hash:/etc/postfix/virtual, hash:/etc/mailman/virtual-mailman
とする。(引用:NTTPCの特集)

変更後は、
/usr/lib/mailman/bin/genaliases
でデータベースを反映させる。

なお、ルートパスワードは
/usr/lib/mailman/bin/mmsitepass
で変更できる。

(追記)
なお、この方法では同一アカウント(test@example.netとtest@virtual.com)でのメーリングリスト運用が出来ない。そこで、このような方法で回避できる。
MLの生成時には、
(アカウント).(ドメイン名)
という形でメーリングリストを生成し、/etc/postfix/virtual に
(アカウント)@(ドメイン名) (アカウント).(ドメイン名)
を登録する。そうすると実メーリングリストのアドレスは、(アカウント).(ドメイン名)@(ドメイン名)だが
(アカウント)@(ドメイン名)宛てにメールを送っても正しく処理されるようになる。

rpmかソースコンパイルか・・・

RedHat LinuxやTrubo Linuxにはrpmというコンパイル済みパッケージが存在している。一方、アーキテクチャに依存しないソースコンパイルが存在する。rpmの方が保守性に優れているが、パッチを当てることが出来ないという問題がある。rpmとソースコンパイルをソフトウエアごとに選ぶことも出来るが、依存関係に悩まされる可能性が高いので、多くの場合どちらかに統一することを推奨する。

postfixでバーチャルドメインを運用する

[/etc/postfix/main.cf]
virtual_alias_domains = example.com
virtual_alias_maps = hash:/etc/postfix/virtual #おそらくデフォルトで設定されている

[/etc/postfix/virtual]
example.com anything #ドメインをバーチャルドメインとして認証させる
tommy@example.com foo #tommy@example.comをfooアカウントに転送.
設定の変更は

/usr/sbin/postmap /etc/postfix/virtual
/etc/init.d/postfix restart
で適用できる。

2006年11月27日

HDD市場が熱い

PS3の発売によってさらにHDDの売れ行きが変わってきたようだ。通常のデスクトップ用の3.5インチだけでなく、ノートパソコン用の2.5インチについてもPS3の発売で売れてきているようだ。今後更にデジタル家電が家庭に広まるようになってくればさらにハードディスクの販売量が多くなっていくことは間違いなさそうだ。

sshへの断続的なログインを防止する方法

rootユーザーで何度もsshでログインを試みようとしているものがログに残されているケースはかなり多い。総当り攻撃されれば、いつかはログインできてしまう可能性があるので、これを防ぐ方法がITMediaに掲載されていたので、紹介する。

# vi /etc/ssh/sshd_config
MaxStartups 2:80:5 #2つまでの接続要求を受け付け、3つを超えるそれ以降の要求を80%の割合で拒否し、さらに要求が増え続けて5つを超えると以降すべてを拒否する.

ユニバーサルサービス制度

NTT東日本、NTT西日本が提供する加入電話、公衆電話、緊急通報などの公共性の高いサービスを、全国で公平かつ安定的に利用できる環境を確保するために電話契約者は2007年1月から、毎月1電話番号あたり一定額のユニバーサルサービス料の負担が発生する制度。つまるところ、都心部では設備投資や維持費をペイできているが、過疎地においては大幅に赤字になっている部分を通信設備を使うみんなで負担しあうもの。

日経NETWORK12月号によると、実は2002年に制定された制度のようで、東西NTTが2006年8月に制度の適用を申請したことで運用が開始されるようになったそうです。

過疎地なんて通信できなくなってもいいというぶっきらぼうな議論もあるだろうが、もし田舎に旅行することがあって緊急事態があって通信が利用できなかったらどうだろうか?やはり通信はインフラのひとつであるように、いつでもどこでも利用できなければならない。そのための費用負担があってもやむをえないだろう(一部ではNTTの経営努力が足りないという指摘もあるわけだが・・・)。

ユニバーサルサービス料は実績に基づいて半年に一度見直しが行われる。

2006年11月26日

httpdをサービス登録する

ソフトウエアをinet.dにサービス登録するためにはchkconfigコマンドを利用して以下のように行う。

# /sbin/chkconfg --add httpd #おそらくrpmインストールされているサービスはこのコマンドが実行されている

# /sbin/chkconfig --list httpd #現在のサービス登録状況を確認.
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off #なにも登録されていない.

# /sbin/chkconfig --level 35 httpd on #ランレベル3, 5にて起動するように設定する.

# /sbin/chkconfig --list httpd #もう一度現在のサービス登録状況を確認.

httpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off #うまく反映されている

2006年11月22日

アクセラレーター

ソースコードを変更せずにPHPの動作を高速化することが出来るアクセラレーターがあるようです。検証結果がcubic9.comさんにありますので、掲載しておきます。なお、MMCacheはeAcceleratorに変更になっています。

今度試して検証結果を報告したいと思います。

PHPの割り当てメモリ量を知る関数

PHPはコードの書き方にもよるけれども、結構メモリを食うことがある。しかし、どれくらい食っているかはなかなかわかりづらい。そこで、こんな関数を使ってみてはどうだろうか?


いずれもPHP を --enable-memory-limit オプション付きでコンパイルしたときのみ使用できるとのことです。それにしてもPHPは結構関数が多いので、ないだろうと思ってPEARにあたろうとすると意外にあったりするんだけども、なかなか探しづらいのが難点(そもそもあったら良いなと思う関数が標準関数にあるだろうという発想がないのが問題か・・・)。

include_metas()が正しくエンコードを処理できない問題

metaタグに関連するデータを出力する関数include_metas()はUTF-8以外のエンコードでは正しく処理されない不具合があるようだ。たとえば、Shift-JISでは以下のように変換されてしまう。

将来→・cent;来
株式→株・reg;
開発→開・shy;

EUC-JPでもこの問題は確認していて、不具合の理由を調べてみたいと思う。

view.yml

テンプレートの属性を制御するview.ymlは(init-appで指定した名前)/config/view.ymlとmodules/(module_name)/config/view.ymlが存在しており、後者のview.ymlは前者のview.ymlを継承しているので、変更される箇所だけを指定すればよい。

view.yml内のスペースの数はview.yml内の親子の関係を示しているので、スペースの数は非常に重要となる。

たとえば、has_layoutとmetasは兄弟関係にあるので、

default:
metas:
 title: タイトル

has_layout: on
layout: layout_hogehoge

は正しくレイアウトが適用されるが
default:
metas:
 title: タイトル


 has_layout: on
 layout: layout_hogehoge
はhas_layout, layoutがmetasのこの関係になってしまうので、正しく動作しない。僕はこれで一度ハマったので、注意していただきたい。

※なお、上記はそのままコピーしないでください。スペース2つが全角スペースになっています。

feedburner

RSSがどれくらい利用されているかどうか気になることはありませんか?そんなときは、ブログのRSSフィードURLをfeedburnerへ登録して、そこで発行されたURLを変わりに差し替えるだけで利用者数をチェックすることが出来ます。また、カウンター用のブログパーツも用意されていますから、そこで人気をアピールすることも出来ますので、ぜひ利用してみると良いでしょう。

yujisさんにこのサービスは紹介してもらいました。ちなみにこのサービスをやっているのはGMOなのです。日経平均に連動して株価が低い状態にありますが、頑張ってもらいたいですね。

Mac OSのゼロデイ脆弱性に対する攻撃コードが公開に

ソフトウエア開発の難しさと今後の自分自身への警鐘とするニュース。

どんなシステムでも脆弱性がない問題はない。ましてや最近は攻撃用ツールが高度化している関係で、脆弱性が見つけられやすくなっている。そして情報の共有化が進み、脆弱性へ対応できる開発者が対応にかかる時間よりも攻撃するための時間が圧倒的に短くなっていることがこのような問題が発生する要因であろう。

今後は脆弱性が間違いなくゼロディ攻撃につながるとすればアプリケーション開発者は脆弱性のないアプリケーション開発をする=品質の高いアプリケーションを提供しなければならない。しかしながら一方で、脆弱性が含まれないアプリケーションを開発することが困難なことは自明であるから、バグを早期に洗い出せるスキルをもつ人材の育成やツールの開発が必要になるだろう。

Symfonyのテンプレートにコメントする方法

Analyticsによるアクセス解析をしていたら意外に「symfony テンプレート コメント」というキーワードで来てもらっている人が多いことに気づく。そこで、Symfonyのテンプレートにコメントする方法について考える。

SymfonyのテンプレートはPHPそのものなので、方法としては、

<?php
/*****
ここにコメントするとか

*****/
//こうやってコメントするとか

?>
が使えると思う。ただ、Smartyのコメントのように{* *}が利用できないことは、テンプレートを実際に変更すると思われるデザイナーの人にコメントを見せられないということが問題になってくるかもしれない。(つまりテンプレートファイルをDreamWeaverなどのオーサリングソフトで処理してしまうと「?」マークになってしまってコメントが出ないからだ)

なにか良い方法があれば、追記していきたいと思う。また、知っている方がいらっしゃれば是非コメントを頂きたい。

ダイナミックDNS

ダイナミックDNSとは固定のグローバルIPアドレスを取得できないユーザーが自宅サーバーを公開する際にマイドメインでアクセスするために必要なDNSのこと。一般的にはDiceのようなソフトウエアを使って、IPアドレスの変更をダイナミックDNSに通知する必要がある。

ダイナミックDNSには国内にも複数サービスがあるが、実際に僕が使っているのは以下の2つ。

ddo.jp

ddo.jpのサブドメインであればフリー。それ以外は月額500円。メール転送やオフライン時のWeb転送、MXレコードの複数設定ができるので、より安定したサービスを行いたい場合に向いている。

mydns.jp

フリーのダイナミックDNS。マイドメインも無料で登録できる。POP認証によりIPアドレスの変更を通知できる。MXレコードとCNAME(最大5つ、なお*指定可)レコードが設定できる。

Googleサイトマップ自動作成ツールの検証

Googleサイトマップ自動作成ツールというのを見つけたので検証してみた。

ローカルのファイル一覧を取得してサイトマップ用の一覧を生成するプログラム。URLが一覧表示されるだけでサイトマップ形式になっていればまだ使えるかもしれない。ローカルのファイル一覧から取得する関係上、動的なページが多いサイトにおいては効果を発揮しない可能性が高い。

2006年11月21日

Oops! There was an internal server error.

このエラーが出た場合には、デバッグ用のプログラムを起動させて詳細エラーを出力したほうが良いだろう。デフォルトの場合、front_dev.phpになっているので、(symfonyプロジェクトURL)/index.php/(module)/(action)/を、(symfonyプロジェクトURL)/front_dev.php/(module)/(action)/とすればよい。初歩的なエラーとしては、

・cacheディレクトリに書き込み権限がない(init-projectコマンドで実行した場合にはchmodによって適切な権限が設定されるがWindows環境では動作しないのでこの問題が起こる)
などが考えられる。

またクリック型報酬広告がリリース

DeNAがサイバーエージェントと提携してコンテンツマッチ広告をリリースした。ClickMatch!というサービスだが、基本的には競合のCM-Click(TrafficGate)やマッチスマート(Value Commerce)と同じ。もはやコンテンツマッチ広告はおなかいっぱいというのが正直なところ。結局広告主が集まらなければコンテンツマッチすらしないという恐ろしい状況だ。

Wikipediaの暗い影

今日Wikipeidaを編集しようとしたら広域ブロックというものでブロックされていることに気づきました。どうも加入しているISPの一部のホストが大量にスパム行為を行ったらしいです。

巻き添えを食っているISPはウチだけでないようで、Yahoo! BB (220.0.0.0/10)やinfowebの一部(58.0.0.0/16)も含まれているようです。でもサブネットが10ビットってかなりのホストを制限しすぎているような気がしますが。。。。

WikipediaではISPに対策をとってもらうまでの間、制限を解除したりはしないとのことで、このような制限が広がれば広がるほどWikipediaへの活発な議論が行われなくなるのは残念なことだと思います。根本の問題はスパム行為なわけですが、これを問題にしてしまうと埒があかないので・・・

Plagger

フィードアグリゲーターと呼ばれるソフト。簡単に言えば、ある情報源(または複数の情報源)から情報を取得し、整理して(ファイル形式の変換なども含む)提供するソフトウエア。概要は@ITでうまく説明されている。公式サイトはTracで構築されていますね。Trac習得しないとなぁ・・・。

Movable Type(MT-Mobile) + Google Sitemap

MT-Mobileプラグインでモバイル用コンテンツを展開した場合にもGoogle Sitemapへ登録する方法について考えてみた。基本的にはこちらと同じ原理で追加すればよいのだが、一部異なる。

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<MTEntries lastn="1"><url>
<loc>(mtm.cgiのURL)?b=<$MTBlogID$></loc>
<lastmod><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url></MTEntries>
<MTEntries lastn="1000"><url>
<loc>(mtm.cgiのURL)?m=ind&amp;b=<$MTBlogID$>&amp;e=<$MTEntryID$></loc>
<lastmod><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url></MTEntries>
</urlset>

ちなみにこのブログのインデックスは http://blog.development-network.net/ung/mobile_sitemap.xml である。

2006年11月20日

Movable Type Plugin

Movable Type Pluginをいくつか試してみた。

mt-aws
AmazonのWebサービスを使って指定されたキーワードに関連する商品を掲載するもの。UTF-8の環境では文字化けしてしまう(Amazonの枠だけは文字化けしない)ようで、ソースコードをいじってみたもののうまくいかなかった。

MT-Mobile
A8.netを運営するF@N Communicationsが提供するプラグイン。なんと携帯で見られるようにすることができるプラグイン。ただリンクが差し代わったりするわけではないので、完全な携帯用コンテンツにはならないが、かなり使える。たとえば、このブログのモバイルはこちら

Windowsの環境に入れる際に「エラーが発生しました: Can't locate Mobile/App/CMS.pm in @INC」が表示されてしまったので、以下の方法で解決した。

インストールしたmtm.cgiを以下のように変更する
use lib 'lib';
use MT::Bootstrap App => 'Mobile::App::CMS' Directory=>../../;


use lib 'lib';
use lib '(Movable Typeインストール先の完全なパス)\plugins\Mobile\lib';
use MT::Bootstrap App => 'Mobile::App::CMS';

また、モバイル対応なのにリンク先がPCのままというのもユーザーフレンドリーではないので、Full Browser Onlyという注意書きを入れるよう以下のように改良した。

CMS.pmを以下のように変更する。

sub _convert_html {
my ($app, $text) = @_;

my $out;


sub _convert_html {
my ($app, $text) = @_;

$text =~ s/<a.*? href=(['"])(.+?)\1.*?>(.+?)<\/a>/<a href="\2">$3(Full Browser only)<\/a>/ig;
return $text;

my $out;

その他面白そうなプラグインがたくさんあったので、紹介しておきます。

(追伸)
プラグインの作り方について詳しく説明してあるページがありましたので、こちらも紹介しておきます。Movable Typeは知れば知るほどすごいアプリケーションであることが分かりますね。

PL/PHP

PostgreSQLのストアドプロシージャPL/PHPに関する説明。アプリケーションサーバーとDBサーバー間でのオーバーヘッドが無視できない状況においては、検討する価値は十分あるだろう。

スタイルシートでプルダウンメニューを作る方法

クライアントアプリケーションのようにサブメニューを含んだ形でメニューを作るとなると、Javascriptを使って作りこむ方法が浮かぶが、これではメニューのリンク先がクロール対象から外れてしまう。そこでスタイルシートを使ったメニューの作成方法がある。WEB工房きくちゃんにはこの手法が掲載されているので紹介しておく。

ただ実際に実装してみると困ったことがあった。それはプルダウンするメニューならば大丈夫だが、プルアップするメニューの場合には適用できないということだ。もしこちらも実装できるようなことがあれば紹介してみたい。

(2006/11/22 追記)
UTF-8のエンコードのページで実装しようとしたときにハマりました。実はスタイルシートの中に日本語のコメントが入っていて、Shift-JISで保存されているために、違うエンコードのページに実装するときに問題が発生したようです。エンコードが違うサイトに実装するときには注意してみてください。

2006年11月19日

Sleipnir2.49を試す

いままで愛用してきたSleipnirは1.66。ずっとバージョンアップしていなかったが、mixiのプラグインを試してみたかったのでアップグレードしてみた。プラグインはここから取得する。 マイミクメンバは、日記を書いているメンバー、頻繁にアクセスしているメンバーなどが一目瞭然でわかるのでなかなかいい仕上がりになっていると思う。 ただBasic認証のページをそのままにしているとフリーズしてしまうケースがあるようで、一部バグが残っているようだ。

コスト誰が負担? ネット回線拡充に業界悲鳴

コンテンツホルダーと回線事業者が真っ向から対立する問題。コンテンツホルダーはリッチコンテンツを流して何が悪い、回線事業者は通信量に応じた従量制にすべきという議論。なぜこんな問題が起こるのだろうか?

回線事業者はブロードバンド化に伴い、コスト競争の波にさらされてきた。通信帯域の増大に関してはある程度設備投資をしていってもペイできるかどうかのギリギリまでコストを抑えて集客をしてきた。つまり、エンドユーザーから徴収する月額費用を抑えてでも、顧客の獲得ができれば全体としての売上は変わらないかあわよくば増えるといった目論見だった。

しかし、コスト競争になった時にこの考え方は往々にして正しくない。ネット証券の手数料引き下げの時も同じような構図だった。そもそもニーズが限られているにもかかわらず需要過多になりがちなのだ。

そこにプロバイダが意図しないほどのリッチコンテンツが増えてきた。USENのGyaoやYouTubeにみられるような動画配信だ。

ただこれは一概に回線事業者が悪いというわけでもない。このような形にしていったインターネット全体の問題であることには間違いないわけだから。

回線事業者はユーザー離れを防ぐために、エンドユーザーから徴収せずにUSENやYouTubeのようなパケットを垂れ流しつづけるアプリケーションプロバイダーから課金をしようとしている。おそらく歴史的な経緯を考えるならば、エンドユーザーから徴収せざるを得なくなるだろう。これは回線事業者がさらに淘汰されて、エンドユーザーは結局回線事業者を選べなくなることによる。

インターネットがこれだけ重要度を増している現在、ネット回線も電気や水道、ガスなどと同じようにコスト面においてひとつのインフラへの支払いを行っていると考えるべきだろう。

これだけのブロードバンドを支えるにはそれなりの維持費用もかかるし、さらに設備投資も必要となる。24時間365日インフラを使いつづけることができる(今後もいつでも当たり前のように使いつづけられる)ようにするためにも・・・

今週の注目すべきニュース

グーグル、ウェブベースの表計算ソフトを開発するイスラエル企業iRowsを買収へ

GoogleがDocs & Spreadsheetsに加えて更にWebベースの表計算ソフトを統合する。Googleはどんどんいろんなベンチャー企業をお買い上げしてマッシュアップを進めていくのか??

100ドルノートPCの最新試作機が登場

以前から発展途上国に提供可能な形でのノートPCが開発されてきたが、ようやく形となった模様。年を重ねるごとにデジタルディバイドは大きくなり、情報を持つものと持たないもの(駆使できるもの駆使出来ないもの)の所得格差が大きくなっている。本人の好む、好まざるにかかわらず、教育の段階からこのように格差が出てしまうことは残念なことであり、一刻も早く多くの人に使われることを望む。

PS3、米でも発売に--サンフランシスコMetreonでは24時間以上前から大行列、「即転売」との声も

ハードウエアの発売がこれほどまでに問題になったことはなかっただろう。Windows95の発売のときでさえ、こんなことはなかった。転売目的の買占めや、それに伴う犯罪など、本当にゲームを愛しているユーザーがゲーム機を買えないなんてどういうことだろうか??ゲーム機がもはや子供のためだけでなくなったこと、ハードウエアの性能向上に伴う価格の高騰、、、少なくとも5年前には考えられなかったことである。

MS、企業ユーザー向けイベントで登場間近のVista&Office 2007をアピール

マイクロソフトはリリースが遅れていたVistaとOffice2007についてようやくリリースにこぎつけられることとなった。WPC EXPO2006でも大々的にブースのスペースを割いてコンシュマー向けにアピールを行っており、実際に見ると乗り換えたくなるような機能(Vistaに搭載されたAero(エアロ)など)が多いことは事実だ。

マイクロソフトを取り巻く環境は非常に厳しい。ハードウエア性能の向上とブラウザベースアプリケーションの充実により、以前ほどクライアントアプリケーションが重要でなくなり、そしてより高速なアプリケーション開発が求められるようになった。今回のようにリリースの遅延に加え、機能の削除を行ってようやくリリースにこぎつけるようなことを繰り返せば、競争力が落ちていくことは目に見えているからだ。

グーグル、ヤフー、MSが提携--ウェブインデックス作成機能を共通化へ

とうとうGoogle Sitemapがデファクトスタンダードになりそうだ。YahooとMSNはまだSitemapの受け入れを開始しているわけではないが、間違いなく今後はSitemapがSEOにおけるキーポイントになりそうだ。コンテンツ開発者はいかにSitemapの形式ですべてのページを吐き出すことが出来るか、CMSにおいてもこの機能は必須になりそうだ。

注目すべきはGoogleがデファクトスタンダードとしての地位を不動のものとしつつあることだ。デファクトスタンダードといえば、ブラウザのInternet Explorer、文書ドキュメントのPDF(Acrobat)、オフィス文書のOffice(Microsoft)などあるが、これらは時代の流れとともに長年不動の地位を築いてきたものが置き換わっていくのかもしれない。

コンテンツマッチ広告

コンテンツマッチ広告には以下のものがある。

Google Adsense

Googleが提供するコンテンツマッチ広告。なんといっても広告主が多いので割りとマッチした広告が配信されるが、同じテーマのコンテンツを展開している場合、表示される広告が同じになりやすく、コンバージョンレートが低いのが難点。

Matchsmart(マッチスマート)
ValueCommerceが提供するコンテンツマッチ広告。完全なコンテンツマッチ広告だけでなく、キーワード指定形などが選べるので、広告が飽きられるといったことが少ない反面、まだ広告主が少ない点は否めない。

CM-Click
TrafficGateが運営するコンテンツマッチ広告。サイバーエージェントと提携。

ClickMatch!
Biddersが運営するコンテンツマッチ広告。サイバーエージェントと提携。

情報を制限することのメリットとデメリット

リーダーがメンバーに情報をあえて伝えない場合のメリットとデメリットを整理してみる。

・良い情報を制限する場合
(メリット)特になし

(デメリット)メンバーに少なからず不信感を与える

・悪い情報を制限する場合
(メリット)メンバーの士気を下げずにすむ

(デメリット)情報に期限が含まれている場合、後で現場で火を噴く可能性が高い。

知らなくても良い情報があることは確かであり、太古の昔から情報を握っている人間が必ず物事を有利に進められることは既知の事実であるが、情報を公開しない場合にはメンバーに少なからず不信感を与えることは必死である。

2006年11月18日

This campaign is currently not active because the expiration date has been reached

指定した広告掲載開始日を過ぎていても掲載が開始されず、キャンペーンのプロパティタブにてこのメッセージが表示されている場合には、phpAdsNewでメンテナンスが完了できているかどうかを確認してみよう。設定タブのユーザーログタブにメンテナンスという操作が含まれていなければ、以下をスケジューリングする。

php (phpAdsNewのディレクトリ)/maintenance/maintenance.php

パスワードの管理と復号

多くのパスワードをどのように管理されていますか?定期的に変更しなければセキュアでないとしてもパスワード自身を忘れてしまっては元も子もない。パスワードを集中管理するにはID Managerを、もし万一忘れてしまった場合にはみえみえパスワード(Basic認証など)を使ってみると良いだろう。 

2006年11月17日

ADOdb

どのようなDBであるかを意識することが必要なくなる抽象レイヤライブラリ「ADOdb」の利点について。名前の由来はMicrosoftが提唱していたADO(ActiveX Data Objects)にちなんでいる??

・プレースホルダを利用することでプログラマはSQL injectionに対する心配をしなくても良い
・DB依存しなくなるため、DBの変更が容易(アプリケーションとDBの結合度を下げる)
・キャッシュ機構を利用することができ、よく発行されるクエリに対して高速に応答することができるようになる

参考サイト:

具体的な例
詳細なガイド

2006年11月16日

DeNAのビジネスモデル

DeNAはbiddersというPCで大きなオークションサイトで有名な企業だが、最近はケータイビジネスへの進出が目覚しい。モバゲータウンというSNS、モバイルのオークションサイト「モバオク」、アフィリエイとサービスプロバイダ「ポケットアフィリエイト」などだ。

しかしながら事業部が分かれているためか、PCとモバイルの融合が弱いような気がする。ワンソースマルチユースといわれて久しいが、今後はメディアの融合が問われていくのかもしれない。

2006年11月14日

Webアクセス解析ソフト

アクセス解析ソフトにはWebサーバーのログを解析する方法と、Webページにタグを埋め込んで解析するビーコン型がある。

ログ解析型

フリーウェアではAnalogAWStatsWebAlizerなどがある。Analogはもう時代遅れといった感が否めない。メリットとしてはコンテンツに手を入れなくてすむ、ページが表示できないページをチェックできたりする反面、クラスターを組んでいる場合にはログを集計する手間が発生したり、解析対象が多いと解析に非常に時間がかかるようになり、リアルタイムにチェックしにくい。

AWStats:IISでの導入記
webalizerを日本語にして使う
参考:各ソフトウエアの比較サイト(英語)

ビーコン型
フリーサービスではGoogle Analytics(エンジンにはUrchinを使用)、有償ソフトではVisionalistがある。メリットとしては、ユーザーの遷移を追うことが出来る。デメリットとしては、解析対象となるすべてのページにビーコンと呼ばれるタグを埋め込む必要がある。

2006年11月12日

Symfonyのチートシート

http://www.symfony-project.com/weblog/2006/04/25/admin-generator-cheat-sheet.htmlこれを理解できるまでには後どれくらいかかるのだろうか??

その他のチートシートもあります。よかったらどうぞ。

Smarty(PDF版はこちら)
PHP

2006年11月10日

モバイルサイトの検証方法

モバイルサイトを開発する際に実機検証はパケット代がかかったりと大変。またテストサーバーの状態を検証するわけには行かないので、エミュレータが必要になったりする。

僕が使っているエミュレータ―は以下のとおりです。

iモードHTMLシミュレーター・・・エミュレーションだけでなく、構文チェックなども行ってくれるので非常にオススメです。

2006年11月 9日

Webメール

もし自宅サーバーやホスティングサービスを使っていてメールサーバーを立てるようなケースがあれば、是非Webメールに対応したいところ。Webメーラーを探してみたところよさげなソフトウエアがあったので紹介しておきます。

Scalix

Webメーラーであることを感じさせないインターフェイスです。まだまだ知名度が低いですが、注目のソフトウエアであることは間違いありません。インストールした際の評価は今後行い、このブログで紹介したいと思います。

IMP
フリーのWebメーラー。Webメールの必要条件は満たしていると思います。

K4
イスラエル人が作ったメールサーバーXMailServerに対応するWebメーラー。Webメーラー自体は日本人が作成しており、XMailServerの管理ツールであるXMailCFGと連動して非常に使いやすいです。今現在使っていますが、特に不便を感じたことはありません。ひとつ言えば、違うSMTPサーバーに変更できないのが難点でしょうか?

SquirrelMail
メジャーなWebメールソフト。Fedora Coreであればパッケージに含まれているので、インストールもかなり容易。IMAPサーバー(dovecotなど)が必要。日本語化されたRPMはこちら(Ver.1.4.5)からダウンロードできる。

SqWebMail
Maildir形式のメールボックスを扱い電子メールを送受信するWebメールソフト。

2006年11月 8日

メール中継が拒否される理由

メール配送が554で中継拒否される理由については以下が大きく考えられる。

ORDBなどの不正中継DBに登録されている

・配送元の逆引きと正引きが正しくない(逆引きしたホストを正引きした結果のIPアドレスがもともとのIPアドレスと違う)

・メールアドレスのMXレコードが引けない
最後に行けばいくほど可能性が少ないわけだが、SMTPサーバーしか設置していないホストにおいては最後のMXレコードの登録についてはよく注意したほうがよさそうだ。

エンジニアの生きる道

エンジニア(プログラマー/S.E.)として付加価値をつけていくにはどうしたらよいのだろうか?僕が今考えているのは、

・徹底的に特定の言語に固執してスペシャリストになる。

・言語(や開発手法)を幅広く学習して、課題に対して適切な解決策を提案できるスペシャリストになる。
のいずれかではないだろうか?

言語はツールであるから、日本人はブームに弱いので一時的には需要が変化したとしても、その言語で作られたシステムは存在し続ける以上保守が必要であるから、スペシャリストであり続ける限り仕事はこなせるだろう。

また、後者の場合においては、コミュニケーションスキルが必須になるだろう。提案するためにはその内容を適切に把握する必要があり、必要に応じてその情報を引き出しを開けて説明できなければならない。

どちらにしてもエンジニアである以上は勉強をし続けなければならないのは間違いのないことだろう。まぁ、これはどんな職種であってもさほど変わることではないのだろうけれども。

SEO tools

今の掲載順位は各サーチエンジンでどれくらいなんだろうと毎日調べるようなことがあったらこれは骨の折れる作業だ。何か便利なツールでもないだろうかと調べていたら同僚からSEO TOOLS βなるものを教えてもらいました。

URLを入れるだけでSEOアクセス解析を行ってくれたり、キーワードでの検索結果がGoogle, Yahoo, MSNでそれぞれ何位なのかを教えてくれます。

ただ少し重たいのが難点ではありますが。。。。

2006年11月 7日

trac

チーム開発するにおいては必要な進捗管理およびバージョン管理のためのソフトウエア。詳しい概念は、discypus.jpに紹介されているので参考にしてみてください。lighttpdやMovalog Plugins、Symfonyなどのオープンソースのプロジェクトでも利用されています。

スパムホスト

ブログシステムを作ると必ずといっていいほどトラックバックスパムに悩まされることが多いのではないだろうか?そこでトラックバックスパムを制限する方法について今日は調べてみた。

スパムホストかどうかをチェックするためのDBがDNSBLというものだそうだが、それを利用できるモジュールがPEARにあったので紹介する。

2006年11月 6日

tableタグを使わないでレイアウトする方法

ブロックごとに文章と写真などをレイアウトしていく時についついtableタグを利用しがちだが、これはSEO対策的にはNGらしい。理由としては複雑な入れ子になりやすいからということがある。ま、これはあくまでそうらしいということであって、クローラーのアルゴリズムを見たわけではないのでそんな確証も無いわけですが。ちなみにこのサイトではtableを使わないでdivタグを使って綺麗にレイアウトする方法を紹介しています。

COALESCE

取り出したデータがNULLのとき、「-」表示をしたい場合などはどのようにされていらっしゃるだろうか?たとえばプログラム側でデータを取り出してきて、NULLだったら代わりに「-」を出力するというロジックが思いついた場合には、COALESCEというSQL92の関数の利用を検討すると良いと思う。

たとえば、hogehogeフィールドからデータを取得したい場合には、

SELECT COALESCE(hogehoge, '-')
FROM table_name;

とすることでhogehogeがNULLだった場合に-が返るようになる。SQL92対応なので、基本的にはどのRDBMSでも対応しているはず。COALESCEは引数を無制限にとるので、COALESCE(a, b, c)ならばaがNULLならbが、bがNULLならcが利用されるといった形になってとても便利である。

このようなテクニックが数多く掲載されているプログラマのためのSQL 第2版はSQLを日ごろ利用している人でも一見の価値があると思う。

2006年11月 5日

Internet Week 2000

2000年12月18日~大阪国際会議場で行われていたセミナーの映像を見ることが出来るサイトを見つけました。なかなかマニアックな内容も含まれていますので、聞いているだけでも面白いかもしれません。

しかし、6年前というだけあって話の節々に出てくる話題が古いです。ただ、原理は何も変わっていないようです。

ネットワーク関連のコマンド

Linuxにおけるネットワーク関連コマンドには以下のものがある。ifconfigを除き基本的にrootユーザーのみ利用できる。

ifup

ネットワークディバイスを開始する

ifdown
ネットワークディバイスを停止する

ifconfig
ネットワークディバイスの論理設定を見る

ethtool
ネットワークディバイスの物理状態(通信速度やLinkupしているかなど)を見る

2006年11月 4日

atコマンドとatqコマンド

スケジュールを登録

#at -t 200611120300
at> /sbin/shutdown -h now
at> (Ctrl+Dを押す)
job 2 at 2006-11-12 03:00

スケジュールを確認

#atq
2 2006-11-12 03:00 a root

エラーに対する対処方法

Linuxでコンパイルインストールなどの際にエラーに悩むことは多いかと思いますので、今までに遭遇したエラーについて記述していきたいと思います。
openssl/err.h: No such file or directory

openssl-develパッケージが入っていないため → yum install openssl-devel でインストールした後に際コンパイルしなおす

SATA disks accessed via libata are not currently supported by smartmontools. When libata is given an ATA pass-thru ioctl() then an additional '-d libata' device type will be added to smartmontools.
smarttoolのバージョンが古く、SATAのデータが取得できないため → smarttoolをアップグレードする。もし見当たらない場合には、kernel-utilsをアップグレードする

SSLeay.xs:102:25: error: openssl/err.h: No such file or directory
perl -MCPAN -e shellからinstall Net::SSLeayコマンドを実行した際に表示される可能性のあるエラーでopenssl/err.hがないため、コンパイルに支障があることを示している→openssl-develパッケージをインストールする。

postfix/cleanup[XXXX]: fatal: open database /etc/postfix/virtual.db: No such file or directory
Postfixでバーチャルホスト設定をした際に
# postmap postfix/virtual
を実行していなかったために起こるため、このコマンドを実行する。

cannot access the server configuration file "/var/lib/pgsql/data/postgresql.conf": Permission denied
/etc/init.d/postgresqlのPGLOGで設定したファイル(デフォルト:/var/lib/pgsql/pgstartup.log)に書き込まれるエラー。init.dでpostgresqlが起動しないときには、SELinuxの設定がどのようになっているかチェックする。getenforceコマンドでenforcingが帰ってくる場合には以下の方法で無効にした上で、再起動する。

# vi /etc/selinux/config

#SELINUX=enforcing


SELINUX=disabled
に変更する

Error in IMAP command APPEND
SquirrelMailはPHP5での動作に不具合があるため修正が必要。Vine Linuxで自宅サーバーに情報源がありましたが、/usr/share/squirrelmail/functions/imap_general.phpの888行目付近を以下のように変更します。

function sqimap_append ($imap_stream, $sent_folder, $length) {
  fputs ($imap_stream, sqimap_session_id() . " APPEND \"$sent_folder\" (\\Seen) \{$len
gth}\r\n");
  $tmp = fgets ($imap_stream, 1024);


function sqimap_append ($imap_stream, $sent_folder, $length) {
//  fputs ($imap_stream, sqimap_session_id() . " APPEND \"$sent_folder\" (\\Seen) \{$len
gth}\r\n");
  fputs ($imap_stream, sqimap_session_id() . " APPEND \"$sent_folder\" (\\Seen) {" . $le
ngth . "}\r\n");
  $tmp = fgets ($imap_stream, 1024);

仮想ホストが不明です

Mailmanをバーチャルホストで運用しようとした際に、発行しようとしているメーリングリストのドメインと管理ツールのドメインが異なっている際にmm_cfg.pyにadd_virtualhostが設定されいないために発生します。

Symbolic link not allowed or link target not accessible

Apacheのログにこれが出ている場合には、httpd.conf内のDirectoryディレクティブ(ディテクティブではない)のOptions設定でFollowSymLinksが含まれていないためによるもの。

[crit] [client XXX.XXX.XXX.XXX] (13)Permission denied: /home/YYY/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

Apacheのログにこれが含まれている場合には、.htaccessが読み込めないものによる。ただし、DocumentRootに/home/YYY/ZZZ/などになっているにもかかわらず、DocumentRootよりも上位のディレクトリの.htaccessに読みとりエラーが出ていたらそれは/home/YYYディレクトリに対してotherの実行権限がないことによる問題が考えられる。

ネットワークの基礎を学ぶ

ネットワークを勉強するには、実際にハブやルータなどのハードウエアを動かしてネットワークを構築することから始まるのではないかと思う。ただ、実際のところ大規模なルーティングが必要なネットワークを構築できることはまれだし、当たり前につながっているネットワークになぜが生まれることは少ない(実際のところ、ネットワーク障害が発生して初めて学ぶことも多いはず)。

中国・四国インターネット協議会主催のIIJのセミナーのレジュメが公開されており、非常に分かりやすいので紹介する。ただし、201ページもある大作なので少しずつ見たほうが良いかもしれない。

Google Cacheされるまでの時間

Googleにインデックス登録されて検索ができるまでにはどれくらいの時間がかかるのだろうか?このブログの場合、PageRank3で、Google Sitemapに登録されていたのが今日時点で10/28のブログまでなので、約6日間程度のタイムラグがあるといえる。

一方ブログを記述してからロボットがサーチするのにどれくらいかかるかというと・・・

10/30 13:13のブログのクロール時間をログから調べたところ

MSN bot 10-30 21:34:39
Googlebot 11-01 02:32:46
BecomeBot 11-02 03:44:29
Yahoo Slurp なし

だった。なので、botはページを認識していてもインデックスに登録されるまでには、Googleでは3日以上かかることが分かる。

2006年11月 3日

SATAハードディスクとSAS/SCSIハードディスクの違いと選定のポイント

日本HPのページにSATAハードディスクとSAS/SCSIハードディスクの違いと選定のポイントが掲載されていてかなり参考になります。SATA-IIが出て俄然SATAの方が優勢だと思っていたんですが、実はハードウエア自体のMTBFがそもそも違うんですね。

2006年11月 2日

カレントドライブの移動方法

Windows 2000からコマンドライン上でカレントドライブから別のドライブに移動できなくなった。つまり、

C:\Documents and Settings\Administrator>
となっている状態において、cd c:\
C:\>
なるけれどもcd e:\とやっても

E:\>
とはならず、

C:\>
となってしまう。移動するには、E: とやるらしい。なぜコマンドでもないようなやり方で移動できるのかが不思議だ。

HTML Project2

HTMLを書いている時、タグの入れ子が正しくないことに悩まされたりしたことは無いでしょうか?デザインが崩れるだけでなく、SEOの観点から見ても、正しく解析されるかどうかは疑問視されるところです。そんなの時に使えるのがHTML Project2というソフトウエアです。HTMLソースを流し込めば入れ子がおかしい箇所だけでなくHTMLに準拠していない内容についても指摘してくれる便利なソフトウエアです。

2006年11月 1日

kernel2.6.18

9/20にLinuxのKernelがバージョンアップしていた。Fedora Core6が出ていたが、最新のkernelを利用したいためだけにFedora Core6を入れるのもおかしな話だったので、yum installでバージョンアップさせることにした。(kernelのアップグレードは yum update kernelでは適用できない)
kernel2.6.18にはCache Pollution Aware Patchが適用されており高速化が見込めるようだ。詳しくはこちらを参考にされたい。

RedHat スキルチェックテスト

RedHat社でオンラインのスキルチェックテストを実施しています。3コースに限り無料でテストすることができるようです。https://www.jp.redhat.com/training/assess/index.php

ちなみに僕がLinux基本コース(RH033)のテストを受けた際の結果は以下のとおりでした。

スキルチェックテスト結果

Red Hat Linux 基本コース(RH033)


基本的なファイルシステムとファイルのコマンド あまり詳しくない 1
Linux ファイルシステム構成 とても良く理解している 4
パーミッションと属性 良く理解している 3
フロッピーディスクの操作 あまり詳しくない 1
vi と vim エディタ あまり詳しくない 1
正規表現 とても良く理解している 4
標準入出力システム 良く理解している 3
プロセスの制御 とても良く理解している 4
クライアント側の暗号化コミュニケーション 良く理解している 3
bash コマンドラインのショートカット 良く理解している 3
シェルスクリプトの作成 とても良く理解している 4
タスクの自動化 とても良く理解している 4


あなたのテストの得点結果は 35Point です。

[診断]:
その技術レベルの内容に関するかなりの知識を持っていますが、さらに上を目指しましょう

[おすすめのコース]:
*RH033コースをお薦めします。

*RH133コースを受講する場合は、ご自身でRH033の内容を学習して下さい。


ちなみに学んでおくべき用語は次のとおりでした。

ls -F
chattr +i file
tar tf /dev/fd0
fdformat /dev/fd0
tee
ls -lR /data 2>&1 > /tmp/output
!?cat
at コマンド

サーバー発注

自宅用のサーバーが古くなってきたので、いつも仕事で使っているDELLのサーバーPower Edge840(保守性に非常に優れている)を発注することにした。そういえば、自宅用サーバーは3年ごとにリプレースしている。

2001年 Celeron 1.2GHz 512MB(PC133) 40GB

2003年 Pentium4 1.6AGHz 1024MB(PC2100) IDE 120GB×5(RAID5)

2006年 Xeon 3050 2.13GHz 1024MB(PC4200) SATA-II 250GB×2(RAID1)

やはり時代の変化を感じざるを得ない。