皆が良いと言うcolinux試してみました。

それまではVMWareを使ってましたがNTサービスとして登録できるところが気に入った!それまでWindows上のApacheでPHPなどの動確とってましたが、こっちで行けそう。

cofs(Windows上のディスクをcolinuxのデバイスとしてマウントできる)が安定したら更に便利そうですが、いまはWoodyに http://packages.dotdeb.org のPHP4.3.10を入れて使ってます。colinux上に置いたEclipseのworkspaceをsamba経由で直接修正して、Apacheのドキュメントルートをworkspaceにしとけば相当楽。

PHPのリモートデバッグ環境も整えれば開発が速くなりそうです。

[ 参考 ] Cooperative Linux(coLinux)のメモ

xored software – TruStudio Downloads

trusdutio.gif

Preconfigured TruStudio 1.0M7 BundleThis preconfigured and ready-to-launch bundle recommended for novice Eclipse/TruStudio users and includes TruStudio Professional 1.0M7, Eclpse 3.0.1, and FTP/WebDAV plug-in. Download Now

EclipseのPHP/Python開発環境TruStudio 1.0M7がようやくリリース。人柱の先輩からのメールを引用すれば、

「M7入れたら壊れた」

だそうなのでEclipse同伴版?を別に入れて試した方が良さそう。 UIとかがPHPEclipseより洗練されてる気がしてホントはこっちに早くでて欲しいです。

virus.png (厭なHello World)

ちょっとしたときにWindowsバイナリが作りたい時があります。PHPにもbcompilerなんてものがありますが、わざわざPHPを使うのもいかがなものかと。(それはそれで面白いけど)

Windows環境でわざわざVisual Studioを避ける意味は特に無いんですが、面白そうなのでEclipseのC/C++開発環境CDTを試してみました。

C用のProjectにはStanderd Make C ProjectManaged Make C Projectの二つがあります。Standerdの方は単純に手でMakefileを書いて、Build Projectでmakeする形。ManagedはちゃんとMakefileを自動で作ってくれます。 (WindowsではMinGWのmingw32-makeなどを使う)

あまり複雑なのは試してないですが、ちょろっと書くには十分だと思います。

PHPUnit再評価。PHPUnit_Skeltonで雛形吐けるようになってるとは知りませんでした。

require_once("PHPUnit/Skeleton.php");
$ps = new PHPUnit_Skeleton("Book", "Book.php", true);
$ps->createTestClass();
$ps->writeTestClass();

吐かれるテストケースはこんな感じです。

/**
 * PHPUnit test case for Book
 * 
 * The method skeletons below need to be filled in with 
 * real data so that the tests will run correctly. Replace 
 * all EXPECTED_VAL and PARAM strings with real data. 
 * 
 * Created with PHPUnit_Skeleton on 2005-01-06
 */
require_once 'PHPUnit.php';
class BookTest extends PHPUnit_TestCase {

    var $Book;

    function BookTest($name)
    {
        $this->PHPUnit_TestCase($name);
    }

    function setUp()
    {
        require_once 'Book.php';
        $this->Book =& new Book(PARAM);
    }

    function tearDown()
    {
        unset($this->Book);
    }

    function testgetname()
    {
        $result   = $this->Book->getname(PARAM);
        $expected = EXPECTED_VAL;
        $this->assertEquals($expected, $result);
    }

    function testgetprice()
    {
        $result   = $this->Book->getprice(PARAM);
        $expected = EXPECTED_VAL;
        $this->assertEquals($expected, $result);
    }

    function testgetreleasedate()
    {
        $result   = $this->Book->getreleasedate(PARAM);
        $expected = EXPECTED_VAL;
        $this->assertEquals($expected, $result);
    }

}
// Running the test.
$suite  = new PHPUnit_TestSuite('BookTest');
$result = PHPUnit::run($suite);
echo $result->toString();

Antでこの辺もっと良い使い方になんないか考え中。

xored software – When is m7 coming?

Hi Yegor,

can you give us a more detailed timeframe ? One Week ? Two Month ?

EclipseのPHP開発用Plugin Trustudio。ロードマップでは去年リリース予定でした。RCどころかM7が出ない。いい加減に突っ込みが入ってきてます。

軽快なJava―Better,Faster,Lighter Java
ブルース・A. テイト ジャスティン ゲットランド Bruce A. Tate Justin Gehtland 岩谷 宏
オライリージャパン (2004/09)
売り上げランキング: 5,443
通常24時間以内に発送
おすすめ度の平均: 4.67
4 Javaプログラマ必読
5 率直な筆者の経験は必読
5 シンプル

軽快なJavaに感化される。特にためになったのが、透明性を確保するための方法について。つまりアプリケーションの各ドメインがそれぞれ独立して他に依存しないようにする方法。ぱっと考えてそんなことできるのかと思いましたが、現在主流になってる方法は

・リフレクション  (きたオブジェクトに動的に対応) ・コードインジェクション  (Build時にAntで自動的にコードを付け加える) ・コードジェネレーション  (コード自体を生成する)

の3つらしい。そしてそこに重要な役割を果たすコンフィグレーション。アプリケーションの独立性/再利用性を考えるときにAPIをこねくり回してコードで解決するより設定ファイルにしてしまえと。

PHPUnitを使って実感したこと、テスト容易性は設計の独立/透明性を表す。を最も重視して真っ先に取り組むことなんじゃないかという気がしてきた。コンパイルが無い分PHPでのUnitTestの重要性は高いんじゃなかろうか。テスティングの簡単な方法や有効な使い方は?早く調べないといけない気がする。コレとかいいのかも!

Mojaviなどのコンポーネント的フレームワークの嫌な点が見えてきた。純粋に「ActionとかViewクラスってどうやってテストすんの?」ていう疑問に答えられない。StrutsだとStrutsTestCase for JUnitなんていうのがあるみたいだけどようするにフレームワーク自体を模倣する何かが必要なわけで、それじゃあMojavi for PHPUnitを作れってことか?それは容易とは言えない気がするし、透明な設計とは言えない。

■自分覚書き

・設定ファイルはどんどん使ってよい。(Mapleはとっくにこれに気づいている) ・POPO?(Plain Old PHP Object)を扱うテストが容易なフレームワーク。 ・継承を避ける。(継承は階層構造にクラスを縛る) ・コードジェネレーションを恐れず使う。

[ThinkIT]徹底比較!!PHP&JAVA

今回は、GoF(the Gang of Four)のデザインパターンの中でも最も簡単なSingletonパターンを利用して、PHP4とJavaのオブジェクト指向を比較してみたいと思います。

ThinkITで土橋さんのPHPとJavaの比較の連載。

「PHPでスレッドセーフなプログラムってどうやって書けばいいのかな?」と聞かれてこないだ調べてたわけですが、singleton・・・この連載のためだったんですね。

次回(第6回)が生産性についての比較ということで連載の本題になりそうな雰囲気です。

KinoWiki – Log/2004-12-12/IDE お試しメモ – MagumaWorkbench、PHPEclipse

PHPEclipse

ここ最近 TruStudio より勢いが良い。

英語圏では TruStudio よりこちらが伸びていきそうな雰囲気。

PHP観測所だったphphp.netが復活してるじゃないですカッ!しかもすでにPHPEclipise > TruStudioって勢いを察知してる辺りアツイ。 ここ最近っていうかTruSdutioのM7が予定日に出なかった日でかなりPHPEclipseに流れたのではないのかと。(おれだけ) requireしてる別ファイルのメソッドを説明付きでコード保管してくれるのはありがたい。PHPUnitの設定があるのが相当気になるので試してみたい。TruStudioは1.0が出たらまた検証です。(年内出ないクサイ)

それとは別に実は↓がすごく見たい・・・。

Mojavi/Mojavi QuickForm Smarty – Live-Emotion.com – memo

PHP観測所さんのサンプルがわかりやすいかも。

[PHP-dev 986]Re: 無名のメンバ変数

試してみたら、メンバ変数に限らず普通の変数でも空の名前が 使えるようです。 さらに直接的なreproduce code( ${’’} と書く)に仕立てて、 「マニュアルの変数名規約と合わない」のような言い方で バグレポートしてみました。(蹴られそうな予感。^^;) http://bugs.php.net/bug.php?id=27059

${’’} のような長さ0の変数名が使えるんだそうです。

Perlの$_みたいに暗黙の変数として使ったらどうか → 意味無い。 ネタ元の無名メンバ変数になると更に紛らわしいです。

PHP 4.3.10 & 5.0.3 released!

The PHP Development Team would like to announce the immediate release of PHP 4.3.10 and PHP 5.0.3. These are maintenance releases that in addition to non-critical bug fixes address several very serious security issues. All Users of PHP are strongly encouraged to upgrade to one of these releases as soon as possible.

PHP 4.3.10と5.0.3が出ました。 バグとセキュリティ絡みの修正のようです。Zend Engine2がやたら速くなるという次のやつが早く見たい。