New ideas for the restaurant reviews site…

cappucinoLike I was saying to Joe earlier, every time I speak to people about this restaurant website they seem to want to get involved or they have some excellent idea to add to the concept.

So the basic premise is a web 2.0 (and by web 2.0 I mean user generated content etc) restaurant reviews website where the reviewers are broken up into various bands according to their karma and the number of reviews they’ve written. New reviewers have their first 5 reviews moderated. Once they’ve got past their “New Reviewer” status they become “Reviewers” who can invite additional people to join the site but they only get 1 invite per review they write.

All the reviews are rated in digg’esqe manner and reviewers gain or lose karma (trust) accordingly.

Reviewers who achieve certain levels of Karma and write a minimum number of reviews become “Food Gurus” who have additional functionally available to them.

Food Gurus are the people who

  • Moderate the “New Reviewers” reviews for quality etc
  • Are also responsible for updating the non-review based restaurant data (addresses etc)
  • Respond to reviews that have been tagged as “inappropriate” or “suspicious” and potentially banning dodgy reviewers etc.

The idea is that the trust based invite system will hopefully keep the site as honest as possible. Continue reading “New ideas for the restaurant reviews site…”


The good, the bad and the overpriced.

I’ve been toying with the idea of creating a web 2.0 restaurant review site with a few twists and the obligatory overuse of gradients, big buttons, whitespace and ajax 😉

Twist 1: The actual review has to be less than 160 characters. This is not so that it can be SMSed but a way to keep people to the point.

Twist 2: When you write a negative review for a restaurant you’ll be asked to provide a “rather go to” restaurant.

Twist 3: I’m thinking of keeping it super simple with just a single star rating accompanying your 160 character review.

Twist 4: Reviewers are brought on board by invitation only… Every user’s first 5 reviews are moderated and you can only invite other people to be reviewers once you’ve reviewed 5 restaurants.

(For those of you who actually read my last rant about systems and rules; The rules I am talking about here are rules that define the specialist functionality… There are plenty of review sites that let anyone paste pages of drivel and never get to the point.)

As any good systems person would, I always test my ideas:

Restaurant: Krugmans, V&A Waterfront

Review: What a lovely surprise of a restaurant! It looks like it’ll cost an arm and a leg but the service is top notch and the food is great. I had their huge camembert & sweet chilli burger at R47. Awesome! (160)

Average Main Cost: R50

Star Rating: 5 out of 5

Restaurant: Cape To Cuba, Kalk Bay Review: Great décor but sadly the quality of food seems to have slipped. We were two large groups and only about 30% of us were “happy”. My meal, the fillet strips in chilli and chocolate, was not worth R99. (160)

Average mains cost: R70

Star Rating: 2.5 out of 5

Rather go to: Polana

Review: Chapmans, near Chapmans Peak, Hout Bay

Review: We only had two deserts and two cappuccinos. The brownies were bad, the tiramisu was bad and the cappuccinos tasted like watered down wimpy coffee and presented similarly. The bill was R90.

Average mains cost: No idea, didn’t look.

Star Rating: 0.5 out of 5

Rather go to: No idea, Where is good in hout bay?

What do you think of the idea? While typing this I thought that one benefit of the 160 character thing would be that you could get the review sms’ed to you… but really, sms is a retarded format that hopefully wont be around in a few more years?

Anyway, let the debate make it stronger or kill it early so I don’t waste my time.



Doing my bit to punt the community

I just thought I should do the obligatory punt of the GeekDinner, 27 Dinner and Clug park.

Firstly, The GeekDinner is not the 27 dinner.

If your idea of fun is listening to someone talk about the joys of hacking asterisk or joking about routing tables, feel free to sign up for the next GeekDinner. I seriously can not wait… At the last 27Dinner I was lucky enough to end up at the most awesome table full of kindred spirits. I think the conversation at that table played a part in concreting why geeks need their own dinner.

If hearing about the latest affiliate marketing scheme gets you hot then sign up for the next 27Dinner.

Finally, If you enjoy reading technology centric blogs then you should probably bookmark Clug Park, a collection of the finest South African Linux and sundry related blogs money can’t buy.

Also, I’ve got some pretty big news I’ll be dropping in the next few days, but I’d just like to say thank you to all those who know and have made it possible/supported me.



html headA while back while ranting about the lack of qualified (available) web developers I wrote that nasty piece of XHTML that I wanted people to try and correct/comment on.

The awesomeness:




<H1>Hello World</h1>

I’m not fat I’m big boned
<div id=‘greenBox’>
<li>Option 1
<li>Option 2
<li>Option 3

Of course I want some cheesy poofs
<div id=‘greenBox>
<li>Option 1
<li>Option 2
<li>Option 3

(excuse the dodgy indenting)

Ok, here goes:

  1. No Document Type
  2. No <HTML>
  3. No <Head>
  4. No Body
  5. Embedded styles are tacky
  6. <h1> is an html element; even if it was possible to create an identity definition called h1 it would still be retarded.
  7. Fixed (px) sized fonts are not good for all kinds of usability reasons.
  8. There is no such thing as “font-color”
  9. While “Red” is currently understood by most browsers, the hex colour code would be a better choice for future compatibility.
  10. Setting your <li>s globally to a foreground colour of white is a bad idea. You’ll be constantly having to override that every time you want it black(ish) again. (I even created an element on the page called greenbox to show that the entire design was going to be on a white background)
  11. id style definitions (#greenBox) really shouldn’t hint at your current presentation (Colours or Layout).  #greenBox is a bad name… especially in a years time when the design calls for that box to be purple.
  12. light-green is not a valid html colour.
  13. Personally I like to use lower case tags… but dammit, don’t mix them up. (H1, h1)
  14. Considering there is no <body>, the “I’m not fat I’m big boned is top level text. It should be inside a body, but additionally it would be better for it to be wrapped in a paragraph or label.
  15. <li>s by themselves, without being wrapped in a <ul> (unordered list) or a <ol> (ordered list) is bad form… but you’d be amazed at how often you see stuff like that on big sites like etc.
  16. Reusing the “greenBox” identity will cause various issues in various browsers. It’s an obvious mistake but sadly not picked up by too many people.
  17. greenBox should probably be a class since it’s being used like a class.
  18. The second greenBox quote isn’t closed.

There you go. 18 without any repetition. I’m sure there are some I’ve forgotten. Engage lively debate *now*.

One of those…

This is going to be one of those posts… you know, the ones where you basically just list off a bunch of things you did recently.

Implemented VERP (Variable Envelope Return Path) for something I’m building at work

Spent friday afternoon walking around Kalk Bay with the GF, had supper at the Brass Bell and then went and paid our respects to Obs (where we met 3 years ago)… Obs has not changed at all in 3 years and it’s starting to be a bit like the uncle with the pony tail… just not cool any more. (Obs was probably never cool but it seems to suit certain people at certain phases in their lives). It’s never good for that phase to last longer than 2 years.

Went to look at Cape Gate on Saturday… it’s not worth it. Bought some thermal paste at Canal Walk… Took apart GF’s laptop, cleaned out 2 years worth of dust on the heatsink. Laptop fan no longer constantly spins at full speed and the laptop doesn’t reboot whenever you do something mildly complicated. Didn’t need the thermal paste.

Woke up on Sunday to find a dead DSL link light, once again reaffirming my opinion that it is impossible for anyone at telkom to carry out even the most basic of instructions without fscking something else up. This brought my proposed Amobia switchover forward to Sunday morning. Converted my Linux box to a router, installed squid… then had breakfast.

(Oh… I had my Amobia installed… It was such a non-issue that I didn’t even blog about it… I think I had it installed on the fourth work day after requesting it. Everything is working perfectly. When people finally get their ADSL lines installed they always seem to have this weird sense of self-achievement… like somehow they’ve “Stuck it to the man” and got their ADSL installed. That’s how twisted the state of telecoms in this country is… You dont walk out of the Pick ‘n Pay thinking “Yeah, I really showed them… I got EVERYTHING I wanted!”)

Spent the day hiking in Red Hill (Near simonstown)… Went to Kleinplaas dam and cooled off, walked back to where our car was. GF is now badly sunburnt (again…) Canadians!

Yours Aloe Vera Gellishly.

Want a job? Tell me what's wrong with this html?

Maybe it’s the much talked about “brain drain” that’s retarding our country but I can’t seem to find people who know what they’re doing.

White BoardNow, I am by no means implying that we don’t have skills in this country… We have some of the most brilliant software and hardware people on the planet right on our doorstep — but that community doesn’t seem to be growing at a pace that is going to be able to keep up with the industry’s growing demands… and the industry is going to end up suffering because of it.

Case in point: I’m looking for Web Developers… The most fundamental need is a good understanding of the web and web standards… These things are the building blocks of web development; without them you’re destined to fart around in a world of buggy code and overcomplicated layouts.

Regardless of whether your coding language of choice is perl, python, php or *gasp* .Net, you need to know xhtml, css and web standards. Don’t tell me that your WYSIWYG editor did the markup and it’s therefore not your fault.

Want a job? Tell me what’s wrong with this. (I can quickly point out 15)

Update: I’ve had a few replies which I’m not posting yet because I want to try and keep the answers a little bit secret until I’ve gone through all the interviewees. The two people so far probably got A+ grades.

The 10 irrefutable rules of backing up.

(Ok, so maybe they aren’t irrefutable, but they’re 10 I came up with while writing the article. NB, These are obviously targeted at a business environment but the essence should apply at home too)

1. It can’t be manual

Humans are idiots at the best of times… we’re also forgetful and lazy. Any backup solution that relies on someone to backup various files to a CD or external hard drive just simply isn’t going to work too long unless you’re super-admin-person.

2. It has to be often

Backups that happen weekly just aren’t really good enough. Humans may be idiots but we can get a lot of work done in a week. There’s also that dreaded feeling of knowing that you have to put your brain through that same disgusting task AGAIN… that is assuming you know what you did in the last week. Daily backups are great, twice daily better.

3. It has to be off site or you might as well not do it

The reality is that most times backups are used to rescue idiot users who deleted the wrong version etc. It’s flipping awesomeâ„¢ that you were able to rescue Sue’s excel spreadsheet that she spent the whole morning on, but really, what are you going to do if your server room burns down… or gets stolen… If the backups are sitting on a removable hard drive or on a tape in the tape drive then your backups are gone. Sue’s excel spreadsheet wasted 4 hours. Not having the company data is often a death sentence for a business.

4. Have a backup of the backup

If all your company does is send off dlt tapes to a secure offsite security company then what are you going to do when you discover that the dlt tape was dirty and can’t be recovered? Sure, this is highly unlikely… but so is a fire in your server room… If all it was going to take to fix was a cheapass 500 gig external drive sitting on a rack then you’ll hate yourself for not having one.

5. Test your backups

This really leads on from number 4… Too many times I’ve heard someone say “I thought it was doing a full backup but actually…

6. Publish your backup policy

I’ve personally found out the hard way that the “server” backups didn’t include my code… If you publish the backup policy you at least give the lusers a chance at realising their impending doom.

7. Have backups aimed at mistakes and backups aimed at catastrophes

I’ve hinted at this in some of the rules above. You want to be thinking of backups with two hats on. First hat is “Rescue Sue’s excel from 5 hours ago“. Second hat is “OMFG the server room *actually* burnt down“.

8. Incremental is king

Ideally you want to be doing 4 Days (Mon,Tues,Wed, Thurs), 3 Weeks (Fri1,Fri2,Fri3), 6 Months(M1,M2,M3,M4,M5,M6), 2 Years (Y1, Y2). Yes, that’s a lot of backups… start at the beginning and see what you can do. Yes, it is paranoia, but businesses often need to go back for various reasons… Sometimes it will be as simple as finding an old database that suddenly became important again… or you might find yourself having to sift through mail folders after dodgy employees leave.

9. Dont skimp on cost

This one is particularly targeted at management. Backups are not valuable – they are priceless. If you force your techies to work with substandard gear, old tapes or pathetically slow systems you are putting your business at risk. There is no point in having a backup solution that is so slow that it can’t backup all the data in a day.

10. Grow with your needs.

Storage is not THAT expensive. Budget for backup systems growth just like you would budget for any new server hardware. If your needs can justify it, consider buying a full backup server. It is not a safe or productive solution if you keep on running over your tape limit and not getting a successful backup out the door. If individual departments have stupid amounts of media consider breaking them out of your main backup policy and develop a new one that suits them better… It might be that certain departments don’t need more than a few days incremental backups of their data.

In case you’re wondering what prompted this post… I’ve just set up a backup policy in my house. Our important data (Photographs, Thesises etc) gets stored/backed up on the server; that data is additionally stored (rsync) on a second HDD in case of primary HDD failure and then the most critical data is rsync’d up to a remote server sitting on the internet. This all happens twice daily and takes about 30 seconds due to the magic of rsync.

LVM for the WIN.

I finally got around to getting LVM (Logical Volume Management) up and running on my server at home. A few people had mentioned that it was quite difficult and I must say that it can be a bit daunting but really shouldn’t be.

I pretty much followed this article ( but I must admit that there were some things that I was confused about from the outset, hence my little introduction and LVM FAQ.

The basics

LVM allows you to combine many physical drives or partitions (Physical Volumes – PV) into one “Virtual Drive” (Volume Group – VG). You can then create “Partitions” (Logical Volumes – LV) on that Volume Group. You can add new drives or partitions to you Volume Group whenever you feel like it. Additionally you can resize your Logical Volumes whenever you feel like it too. (Image courtesy of the article… I’ll copy it onto my own server when I get back to a shell)

LVM Basics

FAQ: (Feel free to mail me questions and I’ll add them here)

Q. Why would I want LVM?

A. If you have lots of media spread across a few drives LVM can be a godsend.

Q. Do I need to reinstall linux in order to install LVM?

A. No, you can install LVM whenever you want and you can undo your changes whenever you want.

Q. What’s the best way to start?

A. I’d say you should start by playing around a bit. (You’ll need to read the article in order to understand how to do these things)

  1. Resize one of your partitions to free up 5gigs somewhere
  2. Create a 5 1G partitions to play with.
  3. Create a Physical Volume for each of your partitions
  4. Create a Volume Group and add 3 of you 1G Physical Volumes to it. (3 is just a random number, you can create a Volume Group with 1 Physical Volume)
  5. Create a 3G logical volume, Format it (ext3 is good), Mount it somewhere
  6. Put some files in it
  7. Add the rest of your 1G Physical Volumes to the Volume Group
  8. Create another 1G Logical Volume
  9. Resize your original 3G Logical Volume to 4G. (Unmount it first then lvextend() and then run resize2fs for FS’ like ext3.)

Q. Is it dangerous?

A. Yes, if you do stupid things like lvreduce() thinking that it wont wipe the data on the logical volume.

Q. Is it redundant?

A. No… that’s what RAID is for… but you can add RAIDed redundant partitions to your LVM and then your LVM will be redundant.

All in all I’m happy and almost near my life long goal of having a 1 terrabyte folder.


My list of Web Zen and Learning

GoldenI’ve put a list together, for the guys at my new company, of all the websites that I read on a daily/weekly basis with regards to web development, design, usability and open source. I can not encourage you enough to spend some time on these sites. They will make you a better person, people will love you and butterflies will spontaneously appear whenever you are around.

A List Apart –

Jeffrey Zeldman’s awesome website. He’s a well respected guy who gets the top people from all over the world to contribute articles. The site focuses on design, web standards and excellent use of CSS.

Think Vitamin –

The best thing about the new world order is that everyone seems to be playing nicely together. Think Vitamin is a place where you can learn a lot from the people on the advisory board like Cal Henderson from Flickr, Dave Shea form CSS Zen Garden and Jeff Veen from Google.

CSS Zen Garden –

You can not comprehend the real power of CSS until you spent some time on CSS Zen Garden. Remember that every single design on the site uses the exact same html… it’s only the css that is changing! –

Want to make your website do all the pretty things that the big boys do? A lot of them, including Google etc get some of their javascript Web 2.0 loveliness from scriptaculous.

User Experience Mag –

Again with the big boys, but this time all about user experience…

Matt Cutts’ Blog –

Matt Cutts is one of the few Google employees encouraged by Google to blog. He heads up the team that matters the most – Web Spam… essentially the guys who decide whether you’re invited to the party or not. We also share a wordpress template.

Jakob Nielsen –

Jakob is the godfather of usability. He’s been around for a long time and has seen it all before. His site is the epitome of usability and he encourages, sometimes a little too passionately, everyone to follow suit.

Web Style Guide –

A website about how to build websites… seem a bit redundant? Think again. Here you’ll learn all the best practices; developing a site specification, information architectures, even how to write your copy so that people stay on your site. This is the knowledge that separates the companies that are constantly struggling against themselves and those that Just Get It Done™

Firefox –

Firefox is not only more secure, more stable, more functional and has a better javascript debugger, but it also has some web development plugins that help you do your job faster and better. – Install the Web Developer Toolbar!

Moving on is hard to do…

So I’m moving on… after more than two and a half years at my current place of employment I’ve decided to kick the bucket and leave a winning team to join another, hopefully just as winning team with a bigger horizon.

Moving on

But yes, I am bailing… and the extent of my bail is becoming more and more obvious with every day. Today I struggled with the spawn of satan that is one of our legacy content management tools. Like peeing into the wind, anything written in Microsoft Access is a bad idea… Let me make myself clear: Anything written in Microsoft Access is a bad idea… ever.

Even worse than that is software written by the receptionist, which this was… and the architecture proves it.

I could go on and on about why the system is bad, but I can sum it all up in 3 points:

The 3 Rules of System Development with Microsoft Access

  1. Do not develop systems using MS Access.
  2. If you do develop systems in MS Access, make sure that the architecture and development is done by qualified developers.
  3. If you chose to ignore rules 1 and 2, make sure that you have a roadmap for replacing your creaking MS Access system before you realise it is creaking. See Addendum 1.

Addendum 1.

The life expectancy of a system written in MS Access can be calculated using the following equation:

[days before catastrophic system failure] = 365/[days to develop]

Simply put, this means: (For the mathematically challenged)

  • An MS Access application that was developed in one day will last 1 year.
  • An MS Access application that was developed in 1 year will be broken by the time it is finished.
  • An MS Access application that was developed over 5 years was already critically broken 4 years ago.
  • The more you work on an MS Access application, the more you break it.

Hence forth shall this be known as Endersby’s Rule Number 493