複数の NIC が存在する場合
ipmsg.exe /NIC 192.168.1.100
と利用する NIC が持つアドレスを指定します。
IP Messenger の v2.04 からの機能として、トップページに普通に書いてありますね。
VMware Player 導入による仮想 NIC で若干とまどったのでメモ。
VMware Player をインストールしているディレクトリの直下にある vmnetcfg.exe を実行します。
ダイアログにある NAT タブを選択し編集。外部へ公開するポート番号を入力します。
後は Virtual Machine IP Address に対象の仮想マシンの IP Address と稼働している サーバのポートを指定します。
最後にファイアウォールが先ほど設定した公開用の許可したポート番号を 拒否していないかチェックします。
Sleipnir から Firefox に移行したときに URI アクションが なくて少し不便だったので Firefox の拡張プラグインを作りました。
http://www.code-seed.org/firefox/uri_processor/
簡単な機能説明としては、指定した URI に対して外部アプリケーションに URI を渡す拡張プラグインです。
Sleipnir には URI ごとにセキュリティを設定できる機能がありますが、 Firefox はタブごとにセキュリティを保持していません。
そのためセキュリティの機能に関しては実装できていませんので、 アプリケーションの制御だけになっています。
Perl もやってみたいし簡単にしか触っていない Ruby も 今のところ一番とっつきやすいです。
でやってみようと思うのは PHP。スクリプト言語による開発を行ったが ないわけですが、開発で一番平均的に落ち着きやすい気がするからです。
単純に PHP ユーザが特に多い(ように思う)からなのかも しれませんが、まずはやってみようと思います。
エディタを Emacs に変えてみました。
Windows に xkeymacs を入れて Emacs の キーバインドを適用して、エディタは Meadow でやっています。
とうとうエディタが Emacs、ブラウザが Firefox、メーラーが Thunderbird(Gmail)、となりどの環境でもできるようになるんではないかという期待。あくまで期待。
まずはもっと Emacs に慣れてみようと思います。
PHP を始めるに至って他人の家に上がることから まずはルールおよびマナーを学ぼうと思います。
ルールとマナーはコーディング作法にあたるということで、 まずは簡単に検索してみたところ Zend Framework の標準コーディング規約 が見つかりました。
本家フレームワークの提唱するものなんだからこれで大体いいはずです。
http://framework.zend.com/manual/ja/coding-standard.html
特に気をつけようと思った点
さらっと流して読んだ程度では Java と比較して考えた場合の 違いはこれぐらいな気がしました。
Java とそんなに変わらない印象です。ただアロー演算子を打つのが面倒そうです。
気をつけようと思った最後の 2 点は冗長な感じ。
名前空間がないためアンダースコアで一意にする必要があり、これは 6.0 に搭載されるみたい。
インターフェイスは C# であれば I を先頭につけるだけ(Java はプロジェクトのコーディングルール次第)。
後は臨機応変に切り替えてやっていこうと思います。
*1 one true brace 形式というらしい
まだやり始めてさっぱり理解もしていないのですが、データベースにアクセス できないと(テキストなど永続化できるもの)アプリケーションのありがたみがありません。 まずはデータベースにアクセスしてみたいと思います。
そこで調べてみたところ PDO という抽象化されたデータベースアクセスライブラリが PHP5 から提供されているようです。
PEAR で提供されているものに比べ、ネイティブな C 言語で書かれている ため高速のようで、 Zend_Db にも採用されているみたいです。
Ubuntu でいきなり PDO をインストールしようとしても phpize という実行ファイルを 求められ失敗してしまうため、それが含まれている php5-dev を インストールする必要があります。
apt-get install php5-dev pecl install pdo
続いて PDO の MySQL ドライバをインストールします。 抽象化されているものを具体化するためのものです。
今度は MySQL のヘッダーがないとコンパイルで失敗するため、 それが 含まれている libmysqlclient15-dev をインストールします。
apt-get install libmysqlclient15-dev pecl install pdo_mysql
最後にはまったのが php.ini の extension_dir を指定していなかったため、 適当な場所を指定。自分は /usr/share/php/ext ディレクトリを作成し、そこを 指定しました。後ビルドした後に記述してくださいというメッセージのものを php.ini に追加。
extension=pdo.so extension=pdo_mysql.so
extension_dir として指定した場所に、先ほどビルドした pdo.so と pdo_mysql.so をコピーします。
cp /usr/lib/php5/20060613+lfs/* /usr/share/php/ext/
これで大丈夫とテストコードの php を叩いても
'The PDO extension is required for this adapter but not loaded'
他に間違っていないことを確認しても問題なさそうと時間を食っていたところ ふと apache の php.ini しか直していないことにここで気づきました\(^o^)/
/etc/php5/cli/php.ini を修正し、実行したところ例外を吐かれずうまくいきました。これでデータベースまで接続するところまでは環境ができあがりました。
Zend_Db を使ってみたテストコード。例外処理も書いていなければ何もできません(笑)。
<?php
require_once 'Zend/Db.php';
$params = array(
'host' => '127.0.0.1',
'username' => 'test',
'password' => 'test',
'dbname' => 'mysql');
$db = Zend_Db::factory('Pdo_Mysql', $params);
$db->getConnection();
$stmt = $db->prepare('select * from user');
$stmt->execute();
$db->closeConnection();
?>
立ち上げたところ更新の通知が来たためダウンロード。
更新したところ NAT の設定が吹っ飛びました。
幸い許可しているものが www と ssh だけだったのですぐに復旧。
更新してすぐに日本語化されていることに気がつきました。
バックアップをしなかったのはまずかったとして、 PC のデータのバックアップを そろそろしておかないといけないなあ。
W41CA から機種変更しました。変更する理由は、
といいつつ携帯でもニコニコを見てみたいと思っただけです。
今は W52CA が出ているわけですが、選択しなかった理由は
ペンギンはまだしも W51CA では背面液晶があるのに W52CA ではなくなっている のはダウングレードじゃないの?と思ってしまいました。
他にも東芝とか見ていていいなあと思ったものはあったのですが、 CASIO のキータッチが心地よくて他を選べませんでした。
購入し早速携帯からニコニコを見てみましたけど、 悪用防止のためらしく選択ボタンを押しつつ(通信許可)再生しないといけないみたいです。
あと予想はしていましたが動画がコマ送り状態になっているため、見ていてあまり分からない。
やっぱり PC で見ようと思いました。見ながらコメント入れられないとテンポも悪いですし。
最後に記憶媒体が miniSD から microSD になったので、また購入する はめになりました。もうこれ以上小さくならないよなあ。
インストーラ形式(msi)のファイルがサーバにアップロードされていました。
Apache HTTP Server のトップページから archive download site に たどり binaries/win32 の中にありました。
Vista で 2.2.4 をインストールすると、 ApacheMonitor の起動が できませんでしたが、最新版のものだと起動できるようになっていました。
Windows での開発環境として PDT を選択しました。
PDT をダウンロードし任意の場所に解凍します。
ねねとまつの小部屋さんのエントリをかなり 参考にさせてもらいました。
続いて xdebug のサイトの Windows modules の最新版をダウンロード(php_xdebug-2.0.0-5.2.2.dll)し、 PHP の extension_dir に放り込みます。
php.ini の最後に以下の内容を追加しました。
[xdebug] zend_extension_ts = "C:\Program Files\PHP\ext\php_xdebug-2.0.0-5.2.2.dll" xdebug.remote_enable=1 xdebug.remote_handler="dbgp" xdebug.remote_mode=req xdebug.remote_host="localhost" xdebug.remote_port=9000 xdebug.manual_url = http://jp2.php.net xdebug.collect_params = On xdebug.dump.GET = * xdebug.dump.POST = *
PDT の設定を開いて PHP の Debug と PHP Executables に xDebug を指定。
スクリプトの実行とサーバの実行で、ブレークポイントで止まることを確認します。
なかなか時間が取れず(言い訳) PHP の勉強が進んでいませんが、さっくり つくる場合は好みのエディタ。 腰を据えて動きを追う場合には IDE のデバッグ実行でやってみようと思います。
PDT に自分の作った拡張が動いたときは、ちょっと感動しました。
bash で十分だと思っていましたが、実際に使ってみたところかゆいところに手が届くシェルだと思いました。
「ぜっとしぇる」じゃなくて「ずぃーしぇる」なんですね。
機能変更、お知らせなど - はてな技術発表会日記 - 5月15日の技術勉強会 で公開してくれているものと、 WEB+DB 今月号の naoya さんが公開しているものをほとんどコピペしました。
bash を使っていて不便に思ったのは、 UNIX は Windows と違ってファイルの大文字と小文字は明確に違いを分けています。 それが移動やファイル編集時に違いを意識する必要がありました。zsh なら出来るんじゃね?とググったら出てきました。(サイトは失念)
.zshrc に以下の設定を追加することで、大文字小文字を区別すること なく補完してくれるようです。便利。
# 補完時に大文字小文字を区別しない
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
ただ bash から zsh に移るとプロンプトが寂しいことに気づきます。
まちゅダイアリーさんのエントリを 参考に Ubuntu の zsh のプロンプトを bash っぽくしてみました。
.zshrc に追記します。
## プロンプトを bash 風にする
PROMPT='${USER}@${HOST}:%~%(!.#.$) '
%(!.#.$) で root の #/$ の切替えができるみたいです。どんな機能ですかと。
ただ Ubuntu では root がいませんので、 # になる確認を取っていないです。
$ にしてしまうと bash と区別がつかないので % にしておいたほうが、無難かもしれません。
PROMPT='${USER}@${HOST}:%~%(!.#.%%) '