Projects and Ideas

Here are some projects and ideas that I'm working on. The general problem is that, since my "programming burn-out":http://www.zefhemel.com/archives/2004/03/13/the-change, I prefer writing and thinking about them over actually implementing them. Therefore many of the projects below are sort-of lacking in implementation. If you want more information or the current code of these projects, let me know. *Adia* Adia is/will be a "Python":http://www.python.org framework that allows you to develop web-applications at a very high pace, especially web-applications that mainly deal with data. This productivity is achieved my generalizing and automating stuff that nearly all data-related web-applications have to deal with: entities and the relations they have. Adia will follow the Model-View-Controller pattern. On the the model it will make it very easy to declare entity types and the relations. You declare the type in your Python program and Adia will take care of the rest. It will create and adapt the database tables for you and provide you with easy to use methods to add, update and remove instances of those entities. Methods and classes are also provided for 1:1, 1:N and N:M relations. This is the part that, so far, has been done most work on. Some "working example code can be found here":http://www.zefhemel.com/upload/adiaexample.txt.

The ideas behind Adia are described in "Adia: Doing More with Much Less":http://www.zefhemel.com/archives/2005/01/04/adia-doing-more-with-much-less (also contains information to get the latest Adia code).

*Enversion* Enversion is a simple version control system written in Python on the client-side and PHP on the server side. The vision behind Enversion is that everybody should have access to version control, no matter if you can afford a server or not. With most current version control systems a special server program has to be installed on the server end. This usually requires root-access to the server, which many people don't have. The power of Enversion is that its server-side part is just a PHP script. Most web-hosts support PHP by default and therefore allow you to run Enversion. You no longer need your own server to do version control, a cheap webhost with PHP support is enough. Communication between de client and server takes place using XML-RPC.

"This article describes the idea in more detail":http://www.zefhemel.com/archives/2005/02/12/php-version-control.

*Web-Application Plug-ins* With more and more communities centering around single web-applications, like Amazon and Gmail, it's interesting to see if you can turn these applications into developer platforms. Would it be possible to develop plug-ins for such applications. Right now some of them offer some of their functionality to your applications using web services, but what if you wanted to develop a plug-in for their system. What if I would want to extend Gmail with a calendar plug-in for example. How can this be achieved. For this I intend to develop a proof-of-concept web-application that is extensible with plug-ins that actually run on third-party servers.

A more "extensive description can be found in this article":http://www.zefhemel.com/archives/2005/03/09/web-application-plugins.

h3. Previous Projects

In my pre-programming-burn-out days I started and worked on a couple of software projects.

*YaBB* "YaBB":http://www.yabbforum.com is the first open source bulletin board (forum) solution written in Perl. I would like to say it was the first open source bulletin board, but sadly "phpBB":http://www.phpbb.com started a little earlier than YaBB. I was the person that started YaBB in 2000. As time went on many people joined me, which resulted in one of the most successful bulletin board projects in the world. Many resource and language support sites exist(ed) for it (such as YaBB.nl and YaBB.it). I left the YaBB project as lead developer in 2001. As more and more people started prefering PHP solutions, YaBB's popularity decreases, but there are still thousands of YaBB forums on the internet today. YaBB's main strength today is it's so-called "mod community", which is a group of programmers that write modifications that add certain features to YaBB. A group of YaBB developers decided to port YaBB to PHP and started the very successful "YaBB SE":http://www.yabbse.org. Later this project was renamed to "Simple Machines Forum":http://www.simplemachines.org. It's fun for me to see that quite a few of the initiators of leading bulletin board solutions today were once part of the YaBB team (for example "Matt Mecham":http://www.mattmecham.com of "Invision Power Board":http://www.invisionboard.com).

*KeyTopic* After having developed a bulletin board in Perl and in PHP (the latter was never released), it was time for a new challenge: develop an application on a platform that the big guys use: Java. As I considered bulletin boards to be the coolest of web-applications at the time, I decided I would, again, write a bulletin board. This time in Java, using JSP(Java Server Pages) and MySQL. "KeyTopic":http://www.keytopic.com, as I decided to call it, also turned out as a nice product. This time, however, I decided to start a company to try to earn some money off it. Together with two friend I started a company called "MillHouse Solutions":http://www.millhousesolutions.nl. After we had sold our first copy "the change":http://www.zefhemel.com/archives/2004/03/13/the-change occured. I realized that this kind of programming is actually quite boring and no longer had fun doing it. We decided to shut the company down as soon as we have sold KeyTopic. So far we haven't found a buyer, so if you're interested "let me know":mailto:zef@zefhemel.com. KeyTopic, in the meantime, has been used multiple times in software engineering projects at our university (both regional and international), all with satisfying results.

*Lightning Redirector* Just to show that I have done something else than writing bulletin board software, I'll also mention the first, fairly popular (in its niche market), software product I released. It was called Lightning Redirector, a script that allowed you to set up your own redirection service, like "CJB.net":http://www.cjb.net. If you had your own domain name and could run Perl scripts, you could let your users register http://theirname.yourdomain.com-like domain names that redirected to their website. This was quite popular back when domain names were still expensive. Lightning Redirector had a couple of quite ingeneous features, that were later copied by CJB, something I was very proud of at the time.

Lightning Redirector isn't available for download anymore and to be honest, I lost the source code.