More N95 Gadgets

It came through the mail today and its being added as the latest gadget in my collection. It's a Nokia SU-8W wireless keyboard. Much more detailed review can be found here.


Playing with N95

Just a test shot of the video recording from my new toy, the Noka N95 phone.


Horde Groupware is Great

I was installing a new mail server and I was sticking with my usual suspects. I usually use Postfix for handling SMTP and Cyrus for IMAP and POP3 access. No surprises there.

But then the people you install a mail server for usually want you to make their mail accessible via some web interface. There, the situation is not so clear in my mind. There are several options to pick from. There is SquirerelMail, a very easy to install program with many plugins and options available. But its functionality can be seen as limited and it has some performance issues on very huge IMAP mailboxes.

On the other hand we have IMP, part of the Horde project. This is a fully featured webmail program that performs really well. The problem with IMP and Horde was that it was really difficult to install and configure. But now we the good people of the Horde project has provided us with a solution.

Horde Groupware Webmail Edition is a package where in one download you get all the pieces that make a good webmail applications. You get extra goodies like shared calendar, address book, notes, etc. The latest release also supports the integration with the Kolab Server.

The best thing of all: the nightmare of installing Horde and all its applications is over! Now you unpack the tarball, run a setup script and your groupware webmail application is up and running in under two minutes. The sheer wealth of functionality that this install provides is a real joy.

Nothing else to say but to congratulate the Horde developers for such a great application. Highly recommended.


Serendipity on Lighty

I have been moving some of my sites around and the turn came to my blog. Since I have decided to try lighttpd on my new server I was wondering how easy would it be to setup Serendipity on it.

Well the basic install went pretty smoothly, but I wanted, of course, to use "friendly" URLs. For that Serendipity supplies .htaccess file with Apache mod_rewrite rules. With a little bit of effort it was possible for me to convert those into rewrite rules that lighttpd would understand:

# Serendipidy rewrites
url.rewrite-once = (
"(archives/([0-9]+)-[0-9a-zA-Z\.\_!;,\+\-]+\.html)" => "index.php?/$1",
"(authors/([0-9]+)-[0-9a-zA-Z\.\_!;,\+\-]+)" => "index.php?/$1",
"(feeds/categories/([0-9;]+)-[0-9a-zA-Z\.\_!;,\+\-]+\.rss)" => "index.php?/$1",
"(feeds/authors/([0-9]+)-[0-9a-zA-Z\.\_!;,\+\-]+\.rss)" => "index.php?/$1",
"(categories/([0-9;]+)-[0-9a-zA-Z\.\_!;,\+\-]+)" => "index.php?/$1",
"archives/([/A-Za-z0-9-]+)\.html" => "index.php?url=/archives/$1.html",
"([0-9]+)[_\-][0-9a-zA-Z_\-]*\.html" => "index.php?url=$1-article.html",
"feeds/(.*)" => "index.php?url=/feeds/$1",
"unsubscribe/(.*)/([0-9]+)" => "index.php?url=/unsubscribe/$1/$2",
"approve/(.*)/(.*)/([0-9]+)" => "index.php?url=approve/$1/$2/$3",
"delete/(.*)/(.*)/([0-9]+)" => "index.php?url=delete/$1/$2/$3",
"(admin|entries)/(.+)?" => "index.php?url=$1/$2",
"admin$" => "index.php?url=/admin",
"archive/?" => "index.php?url=/archive",
"(index|atom[0-9]*|rss|b2rss|b2rdf).(rss|rdf|rss2|xml)" => "rss.php?file=$1&ext=$2",
"(plugin|plugin)/(.*)" => "index.php?url=$1/$2",
"search/(.*)" => "index.php?url=/search/$1",
"(serendipity\.css|serendipity_admin\.css)" => "index.php?url=/$1",
"index\.(html?|php.+)" => "index.php?url=index.html",
"htmlarea/(.*)" => "htmlarea/$1",
"(.*\.html?)" => "index.php?url=/$1"

We only need to prevent some files from being sent to the user:

url.access-deny = ( ".tpl.php", ".tpl", ".sql", ".inc.php")

I guess the future will show how many security holes I have opened playing with these regexs :)


Leaving Emini

I have known that I would be leaving Emini, company that I have founded with two partners in 2003, for a couple of months now but I was hesitant about writing about it. I hesitated because I don’t really want to go into details and explain the reasons.

I was working with the same people since 1999. It all started out as a college project to prove that “alternative” technologies could be used for powering an “ecommerce” application. The company that allowed us to use their resources and play with their technologies was Proventum and the “alternative” technology was PHP that was just going into beta testing of their new and upcoming version 4.


Back to VC6 for PHP Windows build

We are back to using VC6 compiler for the official PHP Windows build. VC8 (Visual Studio 2005) was causing trouble with loading the new C runtime. You can read about the details of the problems encoutered in this thread. So I had to make yet another build, this time using good old VC6.



Here is the comparison of running Zend/bench.php from the PHP source using VC++ 8.0 (Visual Studio 2005) and VC++ 6.0. The test was done on my Lenovo laptop with Celron M 1.6 GHz processor and 1.5 GB ram.