1. Why Do We Build Web Applications?

    Creating a good user interface is no trivial task, no matter if it's running as a desktop application or inside a browser. When it comes to accessing server-side resources (a common thing in the corporate world) web applications seem to be the first choice nowadays. You have complete control over …

    read more
  2. Thoughts on Collective Code Ownership

    Agile software development methodologies like Extreme Programming (XP) propagate collective code ownership: Every developer is allowed (and encouraged) to make changes wherever necessary. But is this really a realistic, useful approach?

    The theory sounds compelling: Everybody knows their way around the code base and can work on anything. Without module …

    read more
  3. A Metadata Format For CSV Files

    Using CSV files in batch processing applications has many advantages, most prominently interoperability between programming languages and tools. One of its weaker points is data integrity though. The format has no way to declare data types or additional metadata other than assigning names to data fields using a header.

    The …

    read more
  4. Getting Started With Existing Code

    Software developers often have to work with existing code bases, whether it's for joining an ongoing development effort or for maintenance work on a legacy application. Getting familiar with foreign code takes time and can be a frustrating experience. In this article I'm going to describe my strategies for getting …

    read more
  5. (No) Comment?!

    Many software developers feel bad because they make little use of comments in their code. Often, using lengthy comments is considered good style. In the old days, with languages like C or assembler, things got messy pretty fast, so comments were the only way to keep track of processor registers …

    read more
  6. Release Management in Open Source Projects

    During my work in open source projects, I observed several ways of dealing with software releases, ranging from chaos up to well-defined release processes.

    In this article, I'm going to describe two common patterns of dealing with releases from a technical perspective. This article has been written with subversion in …

    read more