teranex weblog


This category contains posts that where imported from my old devblog at dev.budts.be. I used it while I developed on the Nucleus CMS core. It was part of the NUDN (Nucleus Developers Network).


A few days ago i started experimenting with Stylish. Much like Greasemonkey, Stylish is a Firefox-extension to apply CSS to any webpage or even the Firefox Chrome.

I also created two userstyles. One to make the del.icio.us tagcloud look a bit nicer, and one to remove some annoying ads from slashdot. I also added a page to gluefish where you find all my userstyles.

server move

You might have noticed that this site was hosted on a slightly different url last few weeks. This was because i was moving all my sites to another webhost. Now this site, together with all my other sites, is happily hosted by Dreamhost, which is a pretty good host.

In case you want to give Dreamhost a try you can register using the promocode 'TERANEX' and get a one time $60 reduction! (well if you sign up for one month level 1 (crazy domain insane), you'll only get $50 because it only costs $59,90, which means the setup fee will be $0 :) )

Announcing SiPPF 0.1

A few days ago I have released version 0.1 of SiPPF - Simple PHP5 Persistency Framework.

SiPPF is an Open Source (LGPL) library which can be used to store and load objects into a database. While there are other existing libraries for PHP that try to do this, they allmost always require you to adapt a special design for the classes that need to be stored (like inheriting from a special class). While this will work in a lot of cases, you might run into trouble some day because it is not very flexible. Inspired by Hibernate/NHibernate, SiPPF tries to be as flexible as possible and in the end it will probably only require that a persistable class has a default constructor (a constructor which allows zero arguments).

SiPPF is built around ADOdb, to support a maximum of DBMSes.

The release is available through the SourceForge file release system (preferred download location)
or from http://files.gluefish.net/sippf/


I have released a new version of YAASP. This release adds another quick hack to prevent spam on your weblog. It stores the date and time on which the comment form was generated and when accepting a comment it checks that at least a configurable amount of seconds (default 15) have passed before the comment is accepted. I hope this will prevent most comments that are posted by scraping the comment-form and the dumping the spam in it and immediately posting it. For normal (legal) comments this interval won't be noticed (unless you set it to a very high value) because it takes a few seconds to write a real comment. (see related task: 46)

In the next version i'll implement the anti-spam API. (related task: 60)

More info and download at the gluefish.net yaasp page

SiPPF is now a SourceForge.net project

Yesterday I registered SiPPF as a project at SourceForge.net and it was accepted :)

In short: SiPPF - Simple PHP5 Persistency Framework - is a small and easy to use persistency framework for PHP5, which doesn't require you to adapt special design patterns for your entities. It will be used in Nucleus Boron, the next generation Nucleus.

Currently it's in a pre-alpha stage so i don't have much more information...

prototype.js testcase

Yesterday i found a nice tutorial on prototype.js. To play with it for a bit, i created a very small (*really* small) testcase for it. I could never have imagined that creating a page that uses AJAX could be so easy :)

UnitTesting PHP

Once you've discovered the advantages of unittests you'll never want to write one single line of code without a test for it (well allmost ;)). You'll become "test-infected" :).

A few months ago, while doing a project in .NET, I discovered these advantages. Having unittests for your code helps you to refactor your code and add new/modified features to your application without having to fear that you'll break your code. Ofcourse you can still break your code, but if you have good unittests you'll immediately notice that you broke something and, depending on how good your tests are, you will also know where you broke something. When you have UnitTests you'll feel a lot safer when touching your code.

Today allmost every language has one or more unittesting frameworks. Most of them are based on JUnit, and are called xUnit frameworks. One example is NUnit, which is the JUnit port to .NET. Also PHP has it's unittesting frameworks, of which PHPUnit and SimpleTest are the best known.

Continue reading on my mainblog...

Decline and fall of the version number

NewsForge | Decline and fall of the version number. Interesting article about the problems with different version numbering-schemes.

MasterMind 2001: wow that's old :)

While browsing through some really old files on my hard disc i found a little game i wrote back in 2001. It is a very simple Mastermind written in VB6. Just in case it could be of any use for somebody I made it available: http://dev.budts.be/releases/old/. I included the sourcecodes and licensed it under the GPL.

Please note that this is very old code and the program has a very bad design. Today my programs have a much nicer architecture ;). Also note that i'm not responsible for any damage ;)

Darcs repo on an FTP server

darcs logo
Like i explained before, with darcs you can make a repository available on a normal webserver. However darcs cannot update ('push') changes to that repository (it needs SSH to do so). First i used Filezilla to simply upload all the files of my local repo to the repo on the server. However, since patches never change this is a bit stupid ofcourse. On the mailinglist i found the solution: Sitecopy. It's a CLI program which uploads only new/modified files. It does this by keeping the state of files locally so that you do not need to trust timestamps on the server.