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

2006年9月30日

秋のイベント

今年もIT系のイベントが始まりますね。

CEATEC JAPAN 10/3~7 幕張メッセ

Security Solution 2006 10/18~20 東京ビックサイト

WPC TOKYO 2006 10/18~21 東京ビックサイト

僕は毎年欠かさず行っているCEATECとWPC EXPOには行きたいと思います。

トラックバックとPageRank

今日このブログのトップページのPageRankが3になっていたことに気づいた。

ただ、被リンクは自サイトのみということになっている。

Google Sitemapへの登録によって確実にインデックス数は増えているもののPageRankが3になる理由は思い当たらない。

おそらくトラックバックによる影響だろう。現在トラックバックをしているのは、CNET JAPANIT Mediaだったりするわけだが、最近Blog Pingを送るようにもしているので、(検索結果には出てこないが)PageRankの高いサイトからの被リンク数が増えたことが大きいのかもしれない。

やはりトラックバックというのは無視できないようそのようだ。

なぜか翌日調べてみるとPageRankが0になっていました。0のほうが正常なのですが、もしかすると、昨日だけPageRankのアルゴリズムにバグがあったのかもしれません。

2006年9月29日

Windows起動時に\system32\Config\Systemが破損しているため起動できないというエラーが発生する

友人のパソコンでWindows起動時に\system32\Config\Systemが破損しているため起動できないというエラーが発生していたので、検索してみたら結構エントリがありました。自分は一度も遭遇していないけれども、こういうことがあるらしい。

http://www7.plala.or.jp/asahikawa-ing/winxp_2.html

こちらに詳しい対処方法を掲載したので参考にしてください。

2006年9月28日

ajaxが外部ホストを参照できない

これはAjaxの仕様のようだ。XMLHttpRequestはまだ標準が存在しないが、大方のブラウザにおいては外部ホストを参照できないようになっている(例外をthrowする)。なぜ参照できないかを記述したWebサイトが見当たらないので理由は良く分からないのだが、これができるともう少し幅が広がるような・・・???


関連サイト:

やまねこのWebメモ

Ajaxの勉強

2006年9月27日

512バイト未満の場合にカスタムエラーが表示される

IEの場合、仕様により404エラーなどが512バイト未満で出力された場合、IE内部で持っているカスタムエラーを代わりに表示させてしまうことはあまり知られていないようだ。

https://www.microsoft.com/windows2000/ja/advanced/iis/default.asp?url=/windows2000/ja/advanced/iis/htm/core/iierradd.htm

Zend Japanが提唱するコード標準

今日、とある理由でZend Japanの社長とお会いすることができました。Zend Japanのページを見てみると、コード標準が存在していました。社内でもコード標準があるのですが、制定するのにずいぶん苦労しました。こういう形でガイドラインがあれば非常に参考になりますね。

http://www.zend.co.jp/tech/index.php

一次元配列→多次元配列への変換

array('a', 'b', 'c', 'd')のような1次元配列をarray('a'=>array('b'=>array('c'=>array('d'))))のような多次元配列に変換するにはどのようなアルゴリズムを用いればよいだろうか?

おそらくこれを実現するのは、ポインタを使わざるを得ないだろうということで以下のようなコードを実装してみた。

 function _makeTreeStructure($arr_level, $value){
  $arr_data = array();
  $p = &$arr_data;
  for ($i = 0; $i < count($arr_level); $i++){
   $p = array($arr_level[$i] =>
    ($i == count($arr_level) - 1) ? $value : '');
   $p = &$p[$arr_level[$i]];
  }
  return $arr_data;
 }


実行コード

var_dump(makeTreeStructure(array('a', 'b', 'd', 'a', 'b', 'd'), 3));

結果は以下の通り

array(1) {
 ["a"]=>
 array(1) {
  ["b"]=>
  &array(1) {
   ["d"]=>
   &array(1) {
    ["a"]=>
    &array(1) {
     ["b"]=>
     &array(1) {
      ["d"]=>
      int(3)
     }
    }
   }
  }
 }
}

もといた勤務先が吸収される

学生派遣のときに仕事をしていたキュリオシティが去年Yahooに吸収されていたことが分かりました(いまさらですが)。中で仕事をしていた時に思ったのは、いろんな事にチャレンジしようとして入るものの、収益構造の確立ができずに失敗しているなぁと思ったことでした。

その感はまんざらでもなかったようで、三井物産から生まれた社内ベンチャーはITの流れの中にもまれて消えていったのでした。

http://www.itmedia.co.jp/news/articles/0503/31/news061.html

2006年9月26日

PHP5の環境においてfgetcsvの処理後のカラムが文字化けする

fgetcsv関数はVer.4→5の間で仕様変更があり、ロケール設定を考慮するようになったので、場合によっては文字化けしたり、\""に囲まれた改行を正しく処理できなかったりする。その場合には、

setlocale(LC_ALL, 'ja_JP.eucJP');

をコードに埋め込むか、もしくは、/language/japanese/global.phpに記述すると良い。

iptables

ファイヤーウォールを初期化して保存する方法について

iptables -L #ファイヤーウォールの設定状況を確認する
iptables -F #ファイヤーウォールの設定を初期化する
iptables -A RH-INPUT-CHAIN -p tcp --dport 80 -mstate --state NEW -j ACCEPT #80番ポートの受け入れを許可(厳密にはSYNパケットを許可)
#外部DNSを参照できなくする(こんなことはほとんどすることはないが。。。)
iptables -A OUTPUT -p tcp --dport 53 -j REJECT
iptables -A OUTPUT -p udp --dport 53 -j REJECT
#外部にメールが飛んでいかないようにする
iptables -A OUTPUT -p tcp --dport 25 -j REJECT
/etc/init.d/iptables save #ファイヤーウォールの設定を保存する(これを実行しないと(iptablesを)再起動すると元に戻ってしまう)

usキーをjp106へ変更する方法

/etc/sysconfig/keyboard で

KEYBOARDTYPE="pc"
KEYTABLE="jp106"

に変更するとjp106に変更できる。(/etc/sysconfig/keyboard が存在しないこともあるのでその場合には作成する)

TIMTOWTDI

perlの良い点でもあり、悪い点でもあるところを表現した言葉に「There is more than one way to do it.」というのがあります。

これは、「正解は一つではない」「もっと別のやり方もある」「他にもやりかたはあります」「一つの方法だけじゃない」を示していて、飽くなき探究心を持ったPerlプログラマーへの訓示でもあるようです。

2006年9月25日

ネットワーク検定

今、日経BP社でネットワーク検定をやっています。もしよければ参加してみてください。

勉強になったのは、NetBIOS系のトラブルシュートはNBTSTATコマンドを利用できるということ。OUIを調べるには、IEEEを参照すればよいことでした。

2006年9月23日

phpにおけるマルチバイトマッチング

Perlでマルチバイトマッチングを行うためには、jcode.plで $a =~ /[亜-煕]/ のようにするとマッチングできる。また、Perl 5.6からはUTF-8にてマッチングが可能だ。

PHPでもmb_eregという関数が用意されており、こちらでマッチングできるのだが、perg_match関数のようなPerl互換の強力な正規表現は用意されていない。

すべての漢字を取り出す正規表現としてコードが公開されているが、もうすこし効率の良いマッチングがPHPでもできれば柔軟な正規表現をかけるのだが。

ところで、HotPHPPER Feedには結構面白いブログのフィードが投稿されているようなので、今後はチェックしていきたい。

2006年9月22日

特定コマンドがどのRPMパッケージに含まれているのか知りたい

http://www.itmedia.co.jp/help/tips/linux/l0644.html

# rpm -qf /usr/bin/dig

bind-utils-9.2.1-9

mb_send_mail関数がFALSEを返す

mb_send_mail関数がFALSEを返すという症状に遭遇した。error_reporting(E_ALL);に設定してもエラーメッセージは一切出力されないので、問題解決に苦労した。

/var/log/maillogには何も出力されていなかったので、おそらくPHPがSMTPサーバーにメールを渡せていないのだろうと考え、Googleで調べてみたところ際コンパイルしてみたほうが良いとのことで、際コンパイルをしてみたらうまくいった。

おそらくコンパイル時に/usr/sbin/sendmailを認識できないとmail関数は利用できないということのようだ(まぁ、あたりまえか)。

それにしても、エラーが出ないとトラブルシューティングしにくいですね。

Movable Type + Google Sitemap

Moveble TypeをGoogle Sitemapに登録させるためのテンプレートの作成方法がTOTAL WEB紹介されていた。

以下をインデックステンプレートに登録し、出力ファイル名でつけた名前で呼び出せばよい。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
<loc><$MTBlogURL encode_xml="1"$></loc>
<priority>1.0</priority>
</url>
<MTCategories>
<url>
<loc><$MTCategoryArchiveLink encode_xml="1"$></loc>
</url>
</MTCategories>
<MTEntries lastn="9999">
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
</url>
</MTEntries>
</urlset>

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

9/22 15:40現在 インデックス数は30件です。

9/24 1:40現在 インデックス数は92件になりました。

9/30 1:40現在 インデックス数は108件になりました。

11/20 21:45現在 インデックス数は220件になりました。

2006年9月21日

様々な攻撃手法

ブルート・フォース攻撃 総当り攻撃。効率が最も悪い。

Dos攻撃 特定のホストまたはネットワークへのネットワーク負荷を多くすることで、事実上サービス停止にする攻撃。

2006年9月20日

session_id関数

以下のプログラムを実行してみるとおもしろい結果が分かる。PHPはセッションIDを知っているにもかかわらずsession_start関数が呼ばれなければ、session_idを返さないのだ。

<?php
var_dump(session_id());
var_dump($_COOKIE['PHPSESSID']);
session_start();
var_dump(session_id());
?>

セッションIDはクライアントとサーバーで同じIDを保持しており、クライアントが指定するセッションIDに日も付けられたデータをサーバーは$_SESSIONに格納する。したがって、少なくともブラウザを終了するまでの間は、2度目以降の遷移ページにおいてsession_start関数を呼び出さなくても、セッションデータは取得できるはずなのだ。

jcode.plとjcode.pm

Perlにおける日本語処理の権威はjcode.pl作者の歌代和正さんとperlの日本語化版を作成された渡辺博文さんだろうと思う。Perl.5.8がリリースされるまでの間、マルチバイト処理をする上で、両氏のライブラリが有益だったことは言うまでもない。

一方jcode.pmを開発するDan Kogaiさんについては良く知らなかった。ちょうど、職場でjcode.plとjcode.pmについての話題があったので調べてみた。

jcode.plとjcode.pmの違いについてDon Kogaiさんが説明したページは、残念ながらもう存在しないが、Googleはキャッシュという形で残してくれている

2006年9月19日

timeコマンド

コマンド処理時間を計測するLinuxのコマンド。

time (コマンド名)

コマンドの経過時間(real)、計算時間(user)、入出力時間(sys)を知ることができる。

array_mergeと+演算子

配列の結合関数array_mergeと+演算子には挙動の違いがあるので注意したほうが良い。

<?=var_dump(array('A' => 'a', 'B' => 'b') + array('A' => 'c', 'D' => 'd')); ?>

<?=var_dump(array_merge(array('A' => 'a', 'B' => 'b'), array('A' => 'c', 'D' => 'd'))); ?>

array(3) {
["A"]=>
 string(1) "a"
 ["B"]=>
 string(1) "b"
 ["D"]=>
 string(1) "d"
}

array(3) {
 ["A"]=>
 string(1) "c"
 ["B"]=>
 string(1) "b"
 ["D"]=>
 string(1) "d"
}



<?=var_dump(array('A' => 'a', 'B' => 'b') + array('C' => 'c', 'D' => 'd')); ?>

<?=var_dump(array_merge(array('A' => 'a', 'B' => 'b'), array('C' => 'c', 'D' => 'd'))); ?>

array(4) {
 ["A"]=>
 string(1) "a"
 ["B"]=>
 string(1) "b"
 ["C"]=>
 string(1) "c"
 ["D"]=>
 string(1) "d"
}

array(4) {
 ["A"]=>
 string(1) "a"
 ["B"]=>
 string(1) "b"
 ["C"]=>
 string(1) "c"
 ["D"]=>
 string(1) "d"
}

正規表現

多くのプログラミング言語でも正規表現は実装されているが、実はかなり奥深い。そして、普通の人が聞いたら間違いなく「性器表現」と勘違いする不思議な言葉だ。現在、Oreillyから出版されている『詳細 正規表現 第2版』を読んでいて改めて正規表現について認識する必要があると考え、以下のとおりまとめてみた。これは今後順次改訂していく予定です。

正規表現の種類
正規表現にはPerlやPHP, Java, .NET, Python, Ruby, sedに実装されているNFAとawk, egrep, MySQLで実装されているDFAというものがある。NFAは従来からある正規表現であり、記述方法で動作速度が決まる。つまり、どれだけでも遅い正規表現を書くことが出来る(ひどい場合ではSegumentation Faultとなり、実行できない)と言うことになる。NFAで正規表現を記述するにはそれなりの知識と経験が必要になる。
一方で、DFAは最適化される正規表現であり、効率の悪い正規表現も実行動作前(コンパイル時)に最適化されて実行することになる。


文字クラス
リテラルをグループ化して、いずれか1つをあらわす。

[a-z] 小文字のアルファベットすべて
[^a-z] 小文字のアルファベット以外(「^」を最初におくと文字クラスが否定される)
[0-9] 数字すべて
[a-zA-Z] 大文字小文字を含むアルファベット
[a-zA-Z&[^mM]] 大文字小文字を含むアルファベット。但しMおよびmは除外される。


グループ
複数のパターンを表す。

(a|bc) aまたはbc
(?!a|bc) aでもbcでもない(否定形)


量子指定子
前に付くリテラルならびに文字クラス、グループを修飾する。

* 0文字以上
+ 1文字以上
? 0または1文字
{2,5} 2文字以上5文字以下
{,5} {0,5}の省略
{3,} 3文字以上


NFA拡張(Perl拡張)
NFA拡張にはキャプチャなし括弧(?: ...)、先読み(?= ...)、戻り読み(?<= ...)がサポートされている。
(?:aaa|bbb) aaaまたはbbb。但し(aaa|bbb)と異なり、括弧の中は$1で取得できないようにする(つまりメモリを節約することができる)。

(?<=aaa)bbb 直前にaaaがくるbbbにマッチ(先読み)。
(?<!aaa)bbb 直前にaaaがこないbbbにマッチ(否定先読み)。
aaa(?=bbb) 直後にbbbがくるaaaにマッチ(戻り読み)。
aaa(?!bbb) 直後にbbbがこないaaaにマッチ(否定戻り読み)。


・モード修飾子
多くの言語の場合には、大文字小文字の区別なしや改行を無視するiやxのモードを言語側で用意している。たとえば、Perlでは
$a =~ /a-z/i; #大文字小文字のアルファベットにマッチ
$a =~ /abc
def/x; #abcdefにマッチ(正規表現内の改行とタブを無効化する)
だが、正規表現内でもこれが利用できる。
(?i:[a-z])、(?:x:abc
def)で代用できる。iモード修飾子の場合には、正規表現内で大文字小文字を区別しないケースとするケースを混在させられる便利な修飾子といえる。


・欲張り型と非欲張り型
NFAにはバックトラックと言う機構によってパターンマッチングを行っている。バックトラックを抑止する方法が欲張り型であり、後続のマッチ文字列に配慮することなくマッチングする。逆に量子指定子の働きを最大限抑制する方法が非欲張り型である。いずれもNFAでサポートされている。
.++または(?>.+) 任意の文字列を欲張り型でマッチ(この場合はほとんど全ての文字列にマッチすることになり、後続するマッチ文字列の指定があれば失敗することになる)
.+? 任意の文字列を非欲張り型でマッチ。.+?aは[^a]+と同義となる。また、.*?aは[^a]*と同義。バックトラックが起こらない分だけ、それぞれ同義のマッチ文字列の方が早い。

2006年9月18日

Google Mapsでの緯度経度を調べるツール

高橋登史朗さんの運営するAjaxライブラリにGoogle Mapsでの緯度経度を調べるツールが公開されていたのでリンクします。住所から緯度経度を調べるツールはあったんですが、必ずしも正確ではなかったので、このツールで微調整するとよさそう。

あと、GMap+YUI+じゃらんAPIをマッシュアップしたツールも紹介されていて、これは感激しました。ここまでくるとWebをつかってできないことはないんじゃないかという錯覚に陥りそうになります。

テンプレートを共通化する

 Symfonyではvalidateディレクトリ内にあるconfirm.ymlに定義されたルールが存在しないか、ルールに合致していれば、templateディレクトリ内の(アクション名)Success.phpが呼び出されるが、ルールに合致しない場合には(アクション名)Error.phpが呼び出される。

 入力内容のエラー処理は多くの場合入力前のテンプレートにエラーを付けて表示したりするケースが多いので、これでは同じ内容のテンプレートを2つ書かなければならず問題がある。

 そこでactionsディレクトリ内にあるaction.class.phpのhandleError(アクション名)関数をオーバーライドして戻り値を設定してあげるとテンプレートを共通化できる。

※Confirmアクションの例(ここではregistアクションからconfirmアクションに遷移するケースを考える)

public function handleErrorConfirm()
{
//通常テンプレートを返す
return sfView::SUCCESS;
}



なお、エラーメッセージはテンプレート中(今回の場合には、registSuccess.php)に
echo form_error('nickname');

などとすればよい。

2006年9月17日

Symfonyリンク集

Symfonyの有用なドキュメント一覧

Symfony API

Symfony開発日記

Symfonyチュートリアルの和訳(第5日目~第7日目)

YAHOO.widget.Calendar

YUI(Yahoo UI Library)のカレンダーを出力できるライブラリシングルカレンダー版を作成しようとしたらCalendar2upクラスに存在するsetChildFunction関数に該当する呼び出し関数はCalendarクラスには、存在しないことが判明。

仕方なくdivタグにonselectイベントを追加して対応しようと思ったが、onselectイベントは利用できず、変わりにonclickイベントが利用できた。しかし、onclickイベントではカレンダーのどの部分をクリックしても実行されてしまうので、サンプルにあるような挙動をシングルカレンダーでは実現できなかった。

今後もテストを繰り返して挑戦してみたい。

(2006/11/19 追記)
サイトがリニューアルされていたようで、リンク先を変更してみました。またついでにシングルカレンダーでホップアップされる例も載っていましたので紹介しておきます。

キーワードアドバイスツール

SEMを行う際にどのようなキーワードが効果があるかを検証するツールとして有用。SEOの際もどのようなキーワードにユーザーが関心があることを認識しておく必要はあるかもしれない。



Overtureが提供するアドバイスツールです。類似キーワードというわけではありませんが、特定のキーワードを入れた際に複合キーワードで検索するケースをランキングで表示してくれます。抽象キーワードは単価は高いですが、複合キーワードで購入すれば単価はずっと安くなります。ただ、安くても検索されなければ同じなので、このようなツールでチェックして、効果的で勝つ単価の安いキーワードを見つけることができるのです。

Adwords Editor

Google Adwordsの出稿管理をクライアントで行うことができるツール。

http://services.google.com/adwordseditor/intl/ja/よりダウンロードできる。

従来からまとまった出稿を行う際には、Adowrds APIなどの利用という選択肢があったが、月ごとの出稿上限などが決められてしまっており、また出稿に際してはAPIを使いこなす必要があり、ハードルが高かった。

今回、このツールが発表されたことにより、出稿ごとにページ遷移を繰り返す必要がなく、まとめてデータを入れた後で出稿が可能になり、非常に軽減されたように思える。

実際に使ってみたところ、一部動作がぎこちないが、おおむね良好に使える。但し、最近拡張された配信時間設定などの細かい設定はできない。

Googleはクライアントアプリケーションを全てウェブアプリケーションにとって変えようとしている流れを作っているのに、皮肉にも出稿アプリケーションはクライアントソフトウエアをリリースすることになるとは。

2006年9月16日

Weather Hacks

Livedoorが提供するお天気情報APIです。
http://weather.livedoor.com/weather_hacks/webservice.html
ブログに簡単につけられるスクリプトコードもあります。

サイトの登録先

サイトを新しく立ち上げた際に、SEOの観点からすべき内容は・・・



1.クロール対象となるように登録する。(インデックス登録してもらう)

これはそもそもエンドユーザーからサイトを見つけてもらうために必要となる作業である。

Google

Yahoo(会員登録が必要)

MSN



2.PageRankをあげるために、PageRankの高いサイトから登録してもらう。

・たとえば、Yahooカテゴリサーチ

・たとえば、JOY


3.PageRankがなければクロール範囲が限定されてしまう可能性があるので、効率的に全てのページをインデックスしてもらうようにする

Google Sitemap



4.SEOからSEMへ切り替えを行っていく

Overture

Google Adwords

Adwordsの方が機能や操作性は充実しているが、日本のユーザーにおいては、使用される検索エンジンがGoogleよりもYahooの方が多く、Yahooに広告出稿を行っているのはOvertureであることに注意。

The Definitive Guide to Symfony (Definitive Guide)

Symfonyに関する解説本が出版される見込みです。まだ日本語版なんて遠い先ですが、Symfonyは少しずつ定着しつつあるフレームワークのひとつになりそうな予感があります。

今後のWebプログラミングにおいては、フレームワークに対する理解もまた重要なスキルのひとつになることは間違いなさそうです。(クライアントアプリケーションプログラミングにおいては、フレームワーク(ロジックとビューを分離して、コントローラーで制御する)はRADにおいて当たり前のように使われているわけで、ようやくWebプログラムもそれに追いついたのかもしれない)

2006年9月15日

ハードディスクレコーダーの未来

DLNA(Digital Living Network Aliance)対応ハードディスクレコーダーが周辺機器として増設できるようになれば家庭内のストレージとして機能するようになる。

そうなってくるとストレージ市場もますます熱くなってくるかもしれないし、今後はSATA-II対応のHDDを搭載した機種なども出てきて、ますます面白くなってきそうだ。

また今日はラジオでも放送されていたけれども、PLC(電力線通信)が今年末までにはリリースされるらしい。DLNA+PLCでエンドユーザーは家電がネットワークにつながっているということをそもそも気にしなくなるかもしれない。

2006年9月14日

ファイルセーフとフェイルソフト

どこかにトラブルがあっても他の部分でカバーして全体の機能に影響がでない仕組みを「フェイルセーフ」といい、若干機能が落ちるもののなんとか動く場合を「フェイルソフト」という

http://www.ffortune.net/comp/tidbit/failsafe.htm

2006年9月12日

IISログの書き込み権限

IISログの書き込みに使われるディレクトリはeveryoneユーザーに書き込み権限がなければならない。

但し、ログのファイル所有者はAdministratorになっていて、なぜエラーになってしまうのか分からない。

2006年9月 9日

Symfony

PHPのフレームワーク Symfony を試してみました。
おかげさまでWindowsで検証された方がいたので、助かりました。
http://papipookoo3.com/wp/?p=4ただ、最後まで読まずにすごいところで躓きました。

実行するとつねにInternal Server Errrorが出る(それもエラーのテンプレートが)のです。

詳細なエラーが何も出ていなかったので、原因を調べるためにフレームワーク内をステップ実行するハメに。結局のところ例外出力をしているところにたどり着いて、結果的にはエラーのテンプレート(error500.html)をリネームすれば例外メッセージが出ることに気づきました。

その結果、、、
magic_quotes_gpc = Off でなかったことが原因でした。

ちゃんとHPに書いてあるのに読まなかったことが最大の時間の無駄になってしまいました。

2006年9月 8日

SCSIとSATA

SCSIの歴史
SCSI-1
SCSI-2
SCSI-3(Ultra SCSI) パラレル接続 80MB/s
Ultra3 SCSI パラレル接続 160MB/s
Ultra320 SCSI パラレル接続 320MB/s
SAS(Serial Attached SCSI) シリアル接続 300MB/s → 最終的には3.0Gbpsに
※Ultra320とSASを比べると大域幅が減少しているが、パラレル接続+デイジーチェーンはすべてのディバイスが320MB/sを共用することを意味しており、それぞれが300MB/sを占有できるSASはかなり高速になっている。

SATAの歴史
SATA-I シリアル接続 1.5Gbps(190MB/s)
SATA-II シリアル接続 3.0Gbps(380MB/s)
SATA-III シリアル接続 6.0Gbps(760MB/s) まだリリースされていない

※ICH8はATAを捨ててSATAのみをサポートする。ただしCD-ROMを始めとするほとんどの工学メディアドライブはATAのため、ICH8を搭載するM/BはATAカードを別途実装しているケースが多いそうだ。

SEOのおもしろ情報

以下のキーワードで検索してみよう
18歳未満 ・・・ Yahoo Japan
ダメルコ ・・・ メルコ
エロデータ ・・・ アイオーデータ

2006年9月 4日

LVSとipvsadm

トランスポート層でサポートされている負荷分散装置LVSについて。kernel 2よりサポートされている ipvsadm パッケージがある。

http://jlvs.infoscience.co.jp/

http://www.atmarkit.co.jp/ad/ms/linuxvswin/linuxvswin09.html

紹介してもらったこちらのドキュメントが非常に参考になる。

http://dsas.blog.klab.org/archives/50664843.html

Microsoft Baseline Security Analyzer

Windows環境における監査ツール

http://www.microsoft.com/japan/technet/security/tools/mbsahome.mspx

2006年9月 1日

プログラマ主役型プロジェクトのススメ ~ソフトウェア開発現場で本来の力を発揮するために~

プログラマ主役型プロジェクトのススメ ~ソフトウェア開発現場で本来の力を発揮するために~

職場の人から薦められて読んだ本。

端的に言えば、プログラマは取って代わることのできる工場労働者、プロジェクトマネージャーを筆頭に組織的な仕事をしているというのが一般的な考え方とされているが、この本では、納品物を製作するプログラマこそ不確定要素をどんどんつぶしてプロジェクトを成功させることができる唯一の職種であると説いている。

ソフトウエア開発は、製造業ではなく、サービス業とされる理由は、無形というあまりに納品物が不確定なのものをいかにしてエンドユーザーに満足してもらうかというところにあると思う。なぜ工場労働者であってはいけないか、そして明日からの仕事の仕方について考えさせられる一冊である。