Davyd's Three Laws of Software Engineering
02:45 am
So everyone does one of these, however recently I heard some things from several people that meant I really felt I had to write these down. So, these are Davyd's Three Laws of Software Engineering:

Law 1 - Design and Research
Let's say you have been contracted to deploy a content management system. Now, it's entirely possible that your client doesn't even know what a content management system actually is. So what is the first thing you go and do? Open up vim and start to write one in your favourite web development language? wrong! The first thing to do is investigate what else is on the market. Sure, there are a lot of content management systems, an awful lot of content management systems, so draw up some requirements for your system, do a bit of a Google, ask around, and come up with a shortlist of content management systems. Do any of them offer the exact feature set you need? Could you modify them to offer the features you need? Perhaps demonstrate them to your client, see which interface is more what they had in mind. Right... now you can go and start adding features and customisations to your CMS and you didn't have to start writing from scratch. Maybe non of them are what you wanted, but at least now you have an idea of what the competition can do. When you are later asked, "Why didn't you use the popular PenguinCMS?", you shouldn't ask, "Does PenguinCMS support FTP uploads?".

Law 2 - Don't Reinvent the Wheel
This is reiterated and reiterated and reiterated. Reinventing the wheel is for chumps. Let's say you need a plugin system for your software. What do you do? Again the answer does not start open vim and .... You find a well implemented existing plugin system, and you implement it for your software. Perhaps you will have an identical plugin format, it is now easy to install plugins for multiple pieces of software safely together, and you can be fairly sure there will be less bugs in your software because of it.
Returning back to our CMS example, let's say you did need to write a new CMS for some reason, do you really need to write an entire CMS, or could you perhaps adapt some existing software to your needs. Perhaps you could adapt a Wiki? Using the Wiki editor and engine with a new output system.

Law 3 - Use Revision Control
People who don't do this should have their head slammed into a door, and then be force to write 1000 lines of "I WILL USE REVISION CONTROL" on a blackboard. Especially after they delete two weeks of code. Of course, using revision control isn't simply enough, you're going to have to back up that version control tree too, since if that gets deleted, all that revision control was for nothing. I'm talking tape here people! Or at least another hard disk, on another machine. Even if you don't have a tree you use for software commonly (don't commit your CMS to GNOME CVS) it's very easy to create one. CVS (and probably other tools) work wonderfully out of a repository in your home directory, and it's very fast to commit too ;)

That's pretty much it. You've all heard it before right? So why don't some of you f-ing well follow it?
(posted on Wednesday February 2nd, 2005 at 02:45 am — 2 comments)

nothing to do with software
03:35 am
The Grand Palace
Stephanie's father got a little older, so we went out to dinner. Now lot's of people rant about how great the Grand Palace is, but I've never really understood why. Sure it's swanky, but there is still MSG in the food and the insane level of service makes me feel uncomfortable. Does that sound weird to you? There is just something weird about little Chinese women coming around and putting your serviette on your lap for you just after you order your meal. The meal hadn't arrived yet and I really am capable of doing it myself. On a previous visit, I got up to go to the toilet, and found my serviette had actually been placed neatly back on the table (I had draped it on the back of the chair) and when I sat down (the meal still hadn't arrived) a young lady rushed up to place my serviette back on my lap. To me that seems just a little redundant.
The meal arrives, and a Cavelcade of little Chinese women start trying to serve everything to everyone. Now there are certain meals that require some serving, and some of them where the serving is also somewhat entertaining (there is usually fire and such involved), however this meal was not one of them. Still it seems to take some convincing that you really know how to serve your own meal.
The other thing that drives me insane, is the fact that they keep coming around and filling up your half full glass. I was only drinking water and jasmine tea tonight, but still aren't you meant to not do that? I can only assume they do something very similar for wine (if you've bought the bottle), and I'm sure there was a series of Government adverts telling people to drink whole glasses, so that they could keep count. (This is something I do, especially at professional schmooze sessions. I find it helps to bring a pen to make marks on your thumb, or bring counters you can move from one pocket to the other. This allows you to later on work out how much free alcohol you are now throwing up, by counting the tokens in your pocket.)
There were of course, several wanktastic things. The liquor cart, complete with actual cognac glasses (as well as brandy and whisky glasses). I wanted to inform the girl that I only drank my cognac while wearing a cravat and velvet dressing gown, in front of a large fire, but I don't think she would have understood, and probably gone to find what I requested. The hot towel dispenser was also pretty hilarious, they had little trays, push the button and it dispense hot towels to take to patrons.
People might have noticed by this point, that I appear to being uncouth and condescending. That I was waited on hand and foot by small, quiet, Asian women. Well, this was in fact the case. Over the course of the night, I think I was one of 5 Caucasian people in the room, patrons and staff included. While this might accurately reflect the demographic of the area by percentage (plus, I was in a Chinese restaurant) I couldn't help but notice that every member of the waitstaff appeared to be female, Chinese, small, quiet, and so repressed I couldn't tell if they hated their work or not. So either they're not an equal opportunity employer, or there are a lot of pasty white boys out the back doin' the cookin'.

other stuff...
Thanks to everyone who said stuff about my German. Even those who corrected my spelling, grammar, typos and who knows what else. I have now learnt about the cömpose kéy, which makes typing significantly easier then using the charpicker applet (which I did know about, obviously) or learning a new keyboard map. The best part about the compose key is that everything seems to make sense, [Compose][s][s] = ß, [Compose][U]['] = Ú, etc. It's basically the way that I used to indicate the markings before I would go back and fix them up. Actually, I promised not to talk about software... So I don't need a keyboard (although I might buy one when in Stuttgart) although I would still love to get my hands on German picture books (Bilderbücher).

Concert band starts again tomorrow night, very tempted not to go.

Ok, one more software thing. I wish I worked for Novell, and could afford insanely huge TVs. I don't even own a TV. Of course, I would never watch it, but it would look nice, taking up lots of space. Perhaps I could use it to IRC in the lounge.

And then there is this.
(posted on Wednesday February 2nd, 2005 at 03:35 am — 8 comments)

Livejournal

Navigation

Related Links

Syndication

RSS 2.0 Atom FOAF

Planetarium

Web Presence

Hacking Life   UCC   GNOME

Contact Me

License

Creative Commons License