<?xml version="1.0" encoding="utf-8"?><!-- generator="b2evolution/1.8.1-RC" -->
<rss version="0.92">
	<channel>
		<title>ぎじゅっやさん</title>
					  <link>http://hain.jp/index.php/tech-j</link>
			  <description>PHPエンジニアのPHPに関係ありそうな内容のブログ</description>
			  <language>ja-JP</language>
			  <docs>http://backend.userland.com/rss092</docs>
			  			  <item>
			    <title>mod_rewrite:RewriteCondの動作フロー</title>
			    <description>調べてみると意外と知らないものだな。&lt;br /&gt;
&lt;br /&gt;
(ノ・・)ン。。。。。。(((●コロコロッ&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://httpd.apache.org/docs/2.0/images/mod_rewrite_fig1.gif&quot;&gt;&lt;img src=&quot;http://httpd.apache.org/docs/2.0/images/mod_rewrite_fig1.gif&quot; alt=&quot;mod_rewrite, RewriteCond, RewriteRule&quot; width=&quot;60&quot; height=&quot;60&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;上から順番にRewriteRuleに従って書き換えを行う&lt;/li&gt;&lt;li&gt;Ruleが一致した場合、かつ直前にRewriteCondがあった場合、条件文を確認し条件文に合致していると書き換えを行う&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
＿〆(。。)メモメモ…&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://hain.jp/index.php/tech-j/2008/11/10/p224#more224&quot;&gt;[...] Read more!&lt;/a&gt;</description>
			    <link>http://hain.jp/index.php/tech-j/2008/11/10/RewriteCond</link>
			  </item>
			  			  <item>
			    <title>mod_cidr_lookup使ってみた。</title>
			    <description>半年ぶり更新。&lt;br /&gt;
&lt;br /&gt;
(ノ・・)ン。。。。。。(((●コロコロッ&lt;br /&gt;
&lt;br /&gt;
ケータイサイトを作ると必ず考慮することになる&lt;strong&gt;ＩＰ制限&lt;/strong&gt;。&lt;br /&gt;
端末ＩＤを使う会員制サイトを作る時はまずつけることになる。&lt;br /&gt;
&lt;br /&gt;
一般的な方法はApacheのmod_access(デフォルトで装備)を利用する。&lt;br /&gt;
&lt;blockquote&gt;&lt;div&gt;Order Deny,Allow&lt;br /&gt;
Deny from all&lt;br /&gt;
Allow from xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx&lt;br /&gt;
Allow from xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx&lt;br /&gt;
Allow from xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
すべてのアクセスを拒否した後、&lt;br /&gt;
アクセス承認するＩＰアドレスの一覧を記述する。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ただ、毎回思うのが、&lt;br /&gt;
&lt;div class=&quot;alignCenter&quot;&gt;ＩＰのメンテナンスってもうちょっとわかりやすくならないかなぁ。&lt;/div&gt;&lt;br /&gt;
ＩＰ一つに対してAllow Fromを一つずつ書いていくと、&lt;br /&gt;
縦長になって非常に見辛い。&lt;br /&gt;
かといって一つのAllow Fromに複数のＩＰを書くと&lt;br /&gt;
追加されたＩＰがすでに登録されたものかどうか探しにくい。&lt;br /&gt;
&lt;br /&gt;
数ヶ月に一回ぐらいの作業なので、&lt;br /&gt;
それでも言いといわれればそれまでなのだが、&lt;br /&gt;
もうちょっとリスト化されてたりファイル化されていたりして欲しいところ。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
最近、Klabがそう言ったものをリリースした。&lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;http://mod-ipenv.sourceforge.net/ja/&quot;&gt;mod_cidr_lookup&lt;/a&gt;&lt;/strong&gt;(Apache License Version 2.0)&lt;br /&gt;
&lt;a href=&quot;http://sourceforge.net/projects/modcidrlookup/&quot;&gt;http://sourceforge.net/projects/modcidrlookup/&lt;/a&gt;&lt;br /&gt;
アクセス元ＩＰアドレスから任意の環境変数を定義するApacheモジュール。&lt;br /&gt;
ＩＰアドレスのメンテナンスする上でもファイル化されているのは素晴らしい。&lt;br /&gt;
SetEnvIfで利用出来るのであれば、&lt;br /&gt;
ＩＰ制限以外でも、&lt;br /&gt;
アクセス元ＩＰごとにログを出し分けたり、&lt;br /&gt;
リライトしたりと用途は多い。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
しかし、以前からこんなのはなかったのか？と疑問に思い探してみると、&lt;br /&gt;
やっぱりあった。&lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;http://mod-ipenv.sourceforge.net/ja/&quot;&gt;mod_ipenv&lt;/a&gt;&lt;/strong&gt;(GPL)&lt;br /&gt;
&lt;a href=&quot;http://mod-ipenv.sourceforge.net/ja/&quot;&gt;http://mod-ipenv.sourceforge.net/ja/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
こちらもアクセス元ＩＰアドレスから任意の環境変数を定義するApacheモジュール。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
どっちを使うか&lt;br /&gt;
軽く比較しながら内容を検証してみようかと。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://hain.jp/index.php/tech-j/2008/09/22/p223#more223&quot;&gt;[...] Read more!&lt;/a&gt;</description>
			    <link>http://hain.jp/index.php/tech-j/2008/09/22/mod_cidr_lookup</link>
			  </item>
			  			  <item>
			    <title>PEAR::Testing_DocTest:Python風テストフレームワーク</title>
			    <description>こういうのが欲しかった。&lt;br /&gt;
&lt;br /&gt;
(ノ・・)ン。。。。。。(((●コロコロッ&lt;br /&gt;
&lt;br /&gt;
テストファーストという言葉を良く耳にする。&lt;br /&gt;
しかし、実際やってみると非常に疑問に思っていたことがある。&lt;br /&gt;
それは&lt;br /&gt;
&lt;div class=&quot;alignCenter&quot;&gt;テストケースをプログラミングするっておかしくない？&lt;/div&gt;&lt;br /&gt;
テンプレートをプログラミングするのも、&lt;br /&gt;
画面遷移をプログラミングするのも疑問だが、&lt;br /&gt;
これもその一つ。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ファイル名～TestCaseというのを作って、&lt;br /&gt;
テストフレームワークのインスタンスを使ったプログラムを行う。&lt;br /&gt;
もう、面倒くさいことこの上ない。&lt;br /&gt;
Pythonに遷った理由はこれもある。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PythonにはDocTestというのが標準搭載されている。&lt;br /&gt;
DocTestとは、&lt;br /&gt;
Pytyonコンソールのコマンド入力結果をコピー＆ペースとしてテストケースとして利用出来るテストフレームワーク。&lt;br /&gt;
プログラミングする際、コマンドラインコンソールを利用するのだが、&lt;br /&gt;
これに表示されたモノがそのままテストケースとして利用出来る。&lt;br /&gt;
非常に便利で、テストフレームワークはこうあるべきだと思う。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
さて、２００８年３月３０日のＰＥＡＲアップデートの中に、&lt;br /&gt;
非常に興味深いモノがあった。&lt;br /&gt;
それが、&lt;br /&gt;
&lt;div class=&quot;alignCenter&quot;&gt;&lt;a href=&quot;http://pear.php.net/package/Testing_DocTest/&quot;&gt;&lt;strong&gt;PEAR::Testing_DocTest&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://hain.jp/index.php/tech-j/2008/04/07/p221#more221&quot;&gt;[...] Read more!&lt;/a&gt;</description>
			    <link>http://hain.jp/index.php/tech-j/2008/04/07/Testing_DocTest</link>
			  </item>
			  			  <item>
			    <title>bliki:dokuwikiにblog機能を付ける</title>
			    <description>これこそＣＭＳ。&lt;br /&gt;
&lt;br /&gt;
(ノ・・)ン。。。。。。(((●コロコロッ&lt;br /&gt;
&lt;br /&gt;
blogとwikiの機能を兼ね備えたツールを&lt;br /&gt;
&lt;strong&gt;bliki&lt;/strong&gt;(ブリキ)というそうだ。&lt;br /&gt;
（ほんまかいな。）&lt;br /&gt;
&lt;br /&gt;
ウェブサイトを作るとして、&lt;br /&gt;
サイトのほとんどをWikiで構築したが、&lt;br /&gt;
ニュースリリースだけブログ風にしたいとか、&lt;br /&gt;
時系列の記事を書きたいなど、&lt;br /&gt;
あると結構便利だ。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
blikiサイト構築する機会があったので、&lt;br /&gt;
dokuwikiを使ってやってみた。&lt;br /&gt;
使用したdokuwikiのバージョンは2007-06-26b。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://hain.jp/index.php/tech-j/2008/03/31/p212#more212&quot;&gt;[...] Read more!&lt;/a&gt;</description>
			    <link>http://hain.jp/index.php/tech-j/2008/03/31/bliki:dokuwiki%E3%81%ABblog</link>
			  </item>
			  			  <item>
			    <title>SVN(Subversion)サーバを移転する方法</title>
			    <description>引っ越し作業も楽じゃない。&lt;br /&gt;
&lt;br /&gt;
(ノ・・)ン。。。。。。(((●コロコロッ&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;div&gt;$ svnadmin dump /home/xxx/samplerepos.old | gzip &gt; ./samplerepos_old.dump.gz&lt;br /&gt;
$ svnadmin create /home/xxx/samplerepos&lt;br /&gt;
$ gzip -dc ~/SVN_old.dump.gz | svnadmin load ~/svn/samplerepos&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
それほど難しくはないようだ。&lt;br /&gt;
&lt;br /&gt;
(￣- ￣ ) ウーン&lt;br /&gt;
&lt;br /&gt;
単純にリポジトリディレクトリごとtarで固めるだけでもいけるかも。&lt;br /&gt;
&lt;a href=&quot;http://hain.jp/index.php/tech-j/2008/03/24/p199#more199&quot;&gt;[...] Read more!&lt;/a&gt;</description>
			    <link>http://hain.jp/index.php/tech-j/2008/03/24/SVN%E3%82%B5%E3%83%BC%E3%83%90%E7%A7%BB%E8%BB%A2</link>
			  </item>
			  			  <item>
			    <title>undefined function mail()ってなんだ？</title>
			    <description>？？？&lt;br /&gt;
&lt;br /&gt;
(ノ・・)ン。。。。。。(((●コロコロッ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
譲り受けたシステム移行作業。&lt;br /&gt;
作業自体は全く問題なしに進み。&lt;br /&gt;
ふーやれやれ。&lt;br /&gt;
&lt;br /&gt;
そんな矢先、さくっとトラブル発生。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align:center;&quot;&gt;メールが送れないんですけど・・・&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
いや・いやいや。。。何を仰いますやら。&lt;br /&gt;
そんなわけないでしょ。&lt;br /&gt;
システム内部を見ても単にmail関数に渡しているだけ。&lt;br /&gt;
これで動かないって事はまずない。&lt;br /&gt;
パラメータの引き渡され具合をチェックすると、&lt;br /&gt;
全く問題ない。&lt;br /&gt;
&lt;br /&gt;
これでメールが送れないなんてことは・・・アレ？&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://hain.jp/index.php/tech-j/2008/03/17/p139#more139&quot;&gt;[...] Read more!&lt;/a&gt;</description>
			    <link>http://hain.jp/index.php/tech-j/2008/03/17/undefined_function_mail</link>
			  </item>
			  	</channel>
</rss>
