Oddwit


Re: Yahoo!がPHPエンジニアを雇う時に聞く質問

Posted in PHP, Programming, Whatnot by マルコ on the May 31st, 2007

Yahoo!がPHPエンジニアを雇う時に聞く質問

20問ほど正解してしまった。
そろそろPHPから離れたほうがよさそうだ。少なくともPHP6が出るまでは。

しかし、こういう質問で採用される職には就きたくないなぁとつくづく思う。使い古されて捨てられるのが目に見えるようだ。業界を知らないから憶測の域を出ないが。

WindowsでDNS伝播前にサイトをチェックする

Posted in Whatnot by マルコ on the May 27th, 2007

ドメインを共用ホスティングに登録した直後などは、DNSが反映されるまでサイトを見ることができなくてとてもじれったい。特に海外のホスティングだと日本へ伝播するのにはすごく時間がかかることがある。

今すぐにでもサイトをチェックしたい場合は以下のとおりにすればいい。

C:\WINDOWS\system32\drivers\etc\hosts というファイルをエディタで開く。

127.0.0.1           localhost

ここに自分のドメインと、それが指すべきIPアドレスを書き足す。

127.0.0.1            localhost
208.113.196.228      oddwit.com

それだけ。
これはLinuxの/etc/hostsにあたるファイルだから、ここに書いておけば名前解決の際に優先的に引いてくれるという仕掛け。なんと素晴らしく簡単な。

DreamHostにTracをインストール

Posted in DreamHost by マルコ on the May 27th, 2007

DreamHostにTrac 0.10.3を入れて動かす方法のメモ。

主に参考にしたサイトはこちら。
Natmaster.com - Installing Trac 0.10
基本的にここの解説に従う。

完成予想イメージ

http://svn.domain.com/projectid/ でレポジトリにアクセス、
http://trac.domain.com/projectid/ でそのプロジェクトのTracにアクセス。
また、将来的にはいくつでもプロジェクト(独立したTracサイト)を作成できる。

準備

まずは上記二つのサブドメインを作成。ちなみに名前は何でも良い。

このときそれぞれ専用のユーザーを作ったほうがあとでディレクトリがすっきりする。ここではsvnとtracというユーザーを作成したことにする。
それぞれのWEBルートは
/home/svn/svn.domain.com/
/home/trac/trac.domain.com/

次にコンパネからSubversionプロジェクトを作成。
レポジトリのディレクトリは
/home/svn/svn/projectid

各種ソフトのインストール

ここからは、ユーザーtrac(か何か)でSSH接続し、解説にあるシェルスクリプトをコピペで実行していけばいい。
ただし、

Subversionをインストールする前に

Neonを入れる必要がある。

cd $HOME/install_files
wget http://www.webdav.org/neon/neon-0.26.3.tar.gz
tar xzf neon-0.26.3.tar.gz
cd neon-0.26.3
./configure --prefix=$HOME/packages
make
make install

そして、Subversionは依存関係をすべて含んだパッケージをダウンロードし、configureするときに先ほどのneonを指定する。

cd $HOME/install_files
wget http://subversion.tigris.org/downloads/subversion-deps-1.4.3.tar.gz
tar xzf subversion-deps-1.4.3.tar.gz
cd subversion-1.4.3
./configure PYTHON=/usr/bin/python --prefix=$HOME/packages \
--with-swig=$HOME/packages/bin/swig --without-berkeley-db \
--with-ssl --with-zlib \
--with-neon=$HOME/packages/include/neon

あとは解説どおりにmake, make install, make swig-py…と続ければよい。

SilverCityのインストール

解説にはないSilverCityも必須ではないがインストールしておいたほうがいい。PHPファイルのHTMLプレビューで色分けをするために必要なはず。

cd $HOME/install_files
wget http://jaist.dl.sourceforge.net/sourceforge/silvercity/SilverCity-0.9.7.tar.gz
tar xzf SilverCity-0.9.7.tar.gz
cd SilverCity-0.9.7
./configure --prefix=$HOME/packages
make
make install

修正 2007-11-21
インストールはこちらでできるそうです。

python setup.py install –prefix=$HOME/packages

複数プロジェクトを作成する予定があるなら

解説ではドメイン直下にファイルを置いているが、サブディレクトリを作ってその中にindex.cgi、index.fcgi、.htaccessを入れればよい。ちなみに、dreamhostでは ls -a しないと.htaccessが見えない。

スッキリURLのための.htaccess

.htaccessの内容はこちらが正解。

DirectoryIndex index.cgi

Options +FollowSymLinks

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.fcgi/$1 [L]

これで動くはず

さぁアクセスしてみよう。

プラグインが認識されない

もしインストールしたはずのプラグインが動いていない場合、DreamHostのコンパネからtracを入れたドメインの設定画面へ行き、何も変更せずに送信ボタンを押す。そうすることでサーバーの再起動と同様の効果があるから、しばらく待てばプラグインが動き出すはずだ。

PHPのプレビューを出す

このままではソースブラウザでPHPファイルのプレビューが出ないので、~/trac_sites/projectid/conf/trac.iniに多少追記が必要。

:
[mimeviewer]
enscript_modes = ..., text/x-php:php:4
mime_map = ..., text/x-php:php
php_path = /usr/local/bin/php
:

あとは設定を反映させるためにドメインの編集→送信をすればOKなはず。たぶん他のものもこれと同じようにすればできる…はず。試してないけど。

日付を日本式表示にする

デフォルトではアメリカ式(12/25/07)だが、年が頭に来ないとキモチワルイのでその設定を変更する。

~/trac.domain.com/projectid/index.cgiおよびindex.fcgiで、他のexport文周辺に

export LC_TIME="ja_JP.utf8"

以上

何か変な部分があればコメントお願いします。

(more…)

PHPでは配列のキーにbooleanが使える(使いたくないけど)

Posted in PHP, Whatnot by マルコ on the May 25th, 2007

PHPの配列は、そのままハッシュテーブル(連想配列)として使える。

ふと疑問に思って試してみたところ、true/falseとnullがキーとして使えてしまった。

<?php
$array = array();

$array[true]  = 'Keyed as TRUE';
$array[false] = 'Keyed as FALSE';
$array[null]  = 'Keyed as NULL';
$array[0]     = 'Keyed as 0';

echo $array[true];    // Keyed as TRUE
echo $array[false];   // Keyed as FALSE
echo $array[null];    // Keyed as NULL
echo $array[0];	      // Keyed as 0
?>

なんじゃこりゃ。

ちなみにキー “” は キー null と同義で、キーにオブジェクトや配列を入れようとするとWarning: Invalid offsetと怒られた。

Next Page »