Tuesday 24 July 2012

Now available: GD-CMS version 2

We've just put out a new version of our ultra-lightweight web content management system.

Version 1 of GD-CMS was conspicuous for the lack of any kind of access through a web-based management interface, and version 2 is no different in this regard: you tweak your website by creating and editing files directly on your web host's server. (Your hosting provider already provides you with authorised file access to your webspace, so why reinvent the wheel?)

Here are the new features you get:

  • The ability to have custom error pages, and even different error messages in different site categories
  • Auth flags: The ability to set flags in order to control access to specific content, or provide alternative content under particular circumstances, such as for a mobile edition of your website, or when your site goes down for maintenance.
  • Cascading templates: These give you the ability to override almost anything about your website (menu layout, title formatting, anything...), but only within a particular subcategory and its descendants. This allows you to have 'microsites' with unique layouts within the same content tree, themed page categories, you name it.
It's still completely free. It's grown to 15KB and could do with some optimisation, but as far as we're concerned, it's still the bloat-free web content manager. If you're developing a website, be sure to try it out.

Sunday 22 July 2012

The growing problem of light pollution

There's a type of environmental pollution that doesn't get much press. Light pollution. It doesn't affect our climate, but it does affect our ability to be inspired as human beings.

If you live in a medium to large city, here's a simple test to see if you're suffering from the effects of light pollution. Wait for a perfectly clear night, during a new moon (i.e. when the moon isn't there during the night time). Give your eyes a few moments to adjust to the darkness, then look straight up. If your jaw doesn't drop from the sheer impossibility of quantifying everything you see above you, your city is probably suffering from the effects of light pollution.

The problem is an ever-increasing number of city lights, illuminating the atmosphere and drowning out the stars. Fifty years ago, people looked into the night sky and were captivated by the scale of the universe, and the thought of a new frontier to explore. Today, people look into the night sky and see a dozen pinpricks of light against an ugly background glow.

What you can do

  • If your home or business has outside lighting, make sure the lights get turned off some time before midnight (leaving them on late at night is a waste of energy anyway. There's nobody around to admire your lights).
    • For security lighting, install a passive-infrared (PIR) sensor to leave the lights off until movement is detected. (These are relatively cheap nowdays, and will save you money.)
    • For lights that are off the ground (such as porch lighting), use light fittings or globes that direct light in a downward cone, not in all directions. Light that goes straight out horizontally or diagonally up is wasted light that only contributes to light pollution.
    • Use warm lamp colours, the warmer (redder) the better. The added advantage is that warm colours like yellow don't attract mosquitoes like cooler (pure white or slightly bluish) light does. Consider switching to warm LED globes. These use very little power (around 5W), are free of toxic mercury, and will save you money in running costs. (Although some retailers charge a fortune for LED globes, they can be purchased for around $3.50 each on eBay.)
    • If you have in-ground lights, the type that direct an (often invisible) beam of light straight up into the air, save them for foggy nights (the only time they really look impressive), or turn them off after dusk.

Friday 20 July 2012

The importance of generality in good software design.

'You should absolutely not dismiss simplicity for something easy. It takes design and good taste to be simple.'
Linus Torvalds, Just for Fun

Nobody sets out to create a really complicated software application. It happens naturally. You build a simple app that does exactly what you want it to, but then you realise it needs to do more (perhaps your competitor is pitching a specific feature, and you want to offer it too). Maybe the extra features don't quite fit in with the paradigm you wrote the original version for, or maybe the original vision has been lost. Either way, you want to extend the program's functionality as quickly and with as little work as possible. You're not trying to do anything complicated, but somewhere along the way your application turns into spaghetti.

The solution is not to build your program around special-case features, but general capability. If there's a need for a specific feature, don't build that feature specifically, generalise it to some broader class of capability. Just implement that general capability and not only do you get the functionality your users were looking for, you get added flexibility. Your users may find themselves able to do things in ways that neither you or your competitors have thought of yet. While your competitors are pitching gimmicks and saying things like 'only our software has OneClick-BusinessLetter™ and SuperBackspace™,' your design simply negates the need for those features to exist.

(Actually, a lot of the time that organisations come out with gimmicky features like this, it's them trying to mitigate some design oversight in their products, in order to keep up with a competitor's product claims.)

There's another advantage to keeping your design general. Fundamental simplicity. Design simplicity and flexibility go hand in hand; aim for one and you may well get the other. A lot of products out there are marketed as 'simple,' but they're really talking about inflexible gimmicks they've added to make their complex products appear more attractive.
It looks like you're writing a letter. Would you like help?
Clippit, MS Office Assistant, on the uselessness of gimmicky features.

There are drawbacks to taking a general, holistic design approach. It's harder. You often have to rework large chunks of your original design several times until you get it right (at least you end up with something small and manageable, in case you ever need to change it again!). The other drawback is that users tend not to appreciate good design. A good design is one that keeps out of the user's way. The problem is that it's hard to appreciate something that's designed to be invisible.

What's the solution to public perception? You can always make up buzzwords for the kinds of functionality your design provides by accident. Some companies do that. Another is the Apple approach, make simplicity a selling point. It's a shame that the word 'simple' has become a marketing euphemism for inclusion of gimmicky extras in products. True simplicity comes from keeping things general, and generality gives users power and flexibility.

Thursday 19 July 2012

A bit of an introduction

We're a software startup. What kind of software? Software for smart people to create cool stuff with. (We're talking about developer tools.)

We have a bit of an open-source agenda. We don't care too much about chasing rich clients or the whole debate on software piracy. We just want to get our stuff out there.

We already have our first product. It's called GD-CMS, it's completely free, and it's a no-frills web content management system (that's what CMS stands for). We wrote the first version in about an hour because it was easier than dealing with the more bloated CMS offerings out there. With GD-CMS, you need a server (or hosting provider) that supports PHP, you need file access to the server for editing your content, you need to know a few basic HTML tags for formatting, and that's about it. (Now we're up to version 1.3, and the PHP script has grown to over 9 kilobytes.) We turned it into a 'product' because we need practice getting exposure (that's part of the motivation for this blog, too). And we need feedback. Lots of feedback.

(But seriously, use it! If you were planning on creating a simple static website, use this instead. You get the kind of control you'd get from using a static website, with a lot less hassle.)