PHPIntra project (PHP) : My Bachelor thesis

  DLernen project (PHP + GTK) : Small application that may help you to learn germans nouns' genders easily and faster.

  AdPost project (PHP) : Small ad posting site. Can be used as example. One day project.

  php_ccmath module : Wrapper around CCMATH (Slackware 8 package) mathematical library (LGPL) by Daniel A. Atkinson. CCMath is coded in C and contains functions for linear algebra, geometry and trigonometry, curve fitting, complex arithmetic, numerical integration, roots and optimization, Fourier analysis, simulation generation, statistics, special functions, high precision computations, sorts and searches and time series models. !! Currently wrapped are only the complex arithmetic functions!!

  php_gsl v 0.3 : Wrapper around GSL(GNU Scientific Library) for PHP. Since GSL's license (GPL) is not compatible with PHP's and PECL's license (PECL = PHP's equivalent of CPAN, for extensions written in C), this module cannot live into PECL's repository. Even more it is illegal to compile and use this module (incompatible licenses). For now this module is orphaned. If there is interest in it, the development will continue(if there the both licenses become more compatible).

  Statistics routines module for PHP (implemented in C). You can download the extension as tgz file. Use "phpize" or "./buildconf" to be able to use it. Inspired by UCLA statistics module.
You can find documentation in statistics.c. Some functions have short explanations while others have really longer (copied from randlib and dcdflib sources for quicker reference). UCLA's documentation can he found here (pdf format). Now this module lives in PECL CVS (PHP's repository for C extensions). The CVS is here. A module (dll) to be used with PHP 5 on Windows can be downloaded from here (php_stats.dll). Load it with dl() in your scripts or in php.ini.

  "PHP 5 and Design Patterns"(.sxi,.pdf,.ppt) - slides presented at the first Bulgarian Web Technologies conference (March 6th,7th 2004 Sofia, Bulgaria).

  NEW (18.06.2004) : I needed code for parsing command line parameters of a PHP script. So I wrote one class by myself. The class is very handy and small. There are PHP 5 version and PHP 4 one. The one specific to PHP 5 has better code since of newly introduced in the language class variables. In the PHP 4 implementation a dispatching method is used and it has static variables which emulate the class variables. You may ask yourself why I wrote those 2 classes when there is function like getopt() or PEAR package like Console_Getargs. Well, getopt() only allows switches no longer than 1 letter and I would like to have longer ones which are human understandable. Console_Getargs is suited if one uses PEAR. I don't and currently I don't like to start only because of Console_Getargs. Even PEAR is not PHP 5 ready in means of exceptions.

  NEW (18.06.2004) : The first public version of MSGRPC, a PHP Framework for creating distibuted applications running on one machine. This means that the framework is usable only on SMP's or in cases when one wants to emulate what VL-SRM is doing - (almost) never ending applications or simulation of threads. One (for now) cannot share data between the "threads" but what he can do is calling methods on objects that are running in another process. The call is fully transparent since the framework utilizes the overloading capabilities provided by PHP 5/Zend Engine II. The specific thing is only the instantiation of the objects which are used at the client side - a factory method of RPCClient class is used. A factory method design pattern is used to cache the instances created (only one) on the client side. What inspired me was the CORBA technology which I study currently at Fachhochschule Stuttgart in the "Middleware technologies" course. I have also decided to include a naming service called NameService which is another daemon used to register and resolve services provided by server sided object (objects which are used by the client side PHP scripts)(however everything is server-side :)). How to run? Read readme.txt. One needs ext/sysvsem & ext/sysvmsg extensions compiled in the PHP binary used(preferable CLI).

  NEW (23.06.2004) : Slides (in .sxi format), (in .ppt format), (in .pdf format) from my talk about doing "Inter-Process Communication with PHP" at the LAMPArea of LinuxTag 2004.