"Computers are my best friends. When I help people find each other without knowing they used a computer, my best friends and I revel in our little secret!"    -Langel




Why Writing a Blogging Engine is not an Absolute Waste of Time

Wednesday, July 22nd 2009 7:04pm

Writing your own blog engine may not be an absolute waste of time. But, pragmatically speaking, it will massively divide your time. Tracing and killing bugs is an exhausting sport, and bug hives are a side effect of programming. You'll most likely not get everything right the first try, and sometimes you won't find out there is something wrong until much later.

If your blog engine has apparent defects it's alright to feel embarrassed. In fact, you better feel embarrassed. If you don't feel at least slightly embarrassed then you might lack the masochistic machismo character that would define you as a secluded hacker. Seriously, if you are thinking of writing your own blogging engine, and you enjoy regular happiness, install WordPress and call it a day.

I am a troubled programmer. Coding always takes longer than expected no matter how many years of experience I have under my belt. One of my main faults is that I would rather build something myself, understanding exactly how the thing works, rather than learning to navigate some other system.

"Banging your head against the keyboard"-style takes discipline, stubbornness, and a slight bit of masochism. It's much like kung-fu except your body rots while your mind festers. The reward, in the end, is "Look at what I built." :)

So why did you do it?

I have no formal education as a web designer or web applications programmer. I am 100% self taught through books, internet articles, and trial & error. This may partly be why I have had doubts about being a freelance website builder. I mean, if I can't build a simple, functioning blog app then what good would I be at developing a much more complex and dynamic system?

As some of you know, I started building a little website called Battle of the Bits over five years ago. The original version had some MySQL redundancies that could throw a hippopotamus into epileptic shock. Two years ago, I began facing up to the major challenge of completely retooling the BotB system and keeping the data intact. Fast forward about 18 months and BotB 2.0 finally launched.

Why did it take so long? Well, that first year was spent reading, experimenting, and developing a light-weight php/mysql MVC framework that sits under my web applications. Great, no problem! Now just slap together a CMS on top of it.

And what did you learn?

Designing and building a user interface takes time as well. Making something easy to use takes omniscient foresight; it is not common sense. People who think or say that are either mouthy jerks and/or haven't tried it themselves. I'm not only talking about a rich, glowy user experience. I'm also on about defensive programming. You have no idea what a user will try with an app once they get their mits on it.

The internet is a very tricky place indeed. How many language layers sit on top of your backend system? Oh, let me count the ways &mdash (x)html, css, javascript & xml for your feeds. Once you can read, write, and understand these four syntactical mongrels you might be finally set...

But then, one day, a client might discover html entities like ™™, using it in their title for a blog post, and breaking their rss feed. Why would it break their feed you ask? Because html allows entity 'noun names' whereas xml strictly uses numeric identifiers. Then you get a phone call, "Hey, bitch, I payed for a @%&#* working website. Wtf?" It's not like you can simply reply, "Why didn't you type in 蒂 coz that's what works," off the top of your head.

Most people on the internet are not malicious, but most people are human, and most humans make mistakes. If you offer up a bare-bones, half-assed web app is it the users' fault they make a mistake and get mad? And who else can they blame? In such a situation it is the programmer at fault, being human, making mistakes of innocent ignorance. Not the client. {Cue further embarrassment.}

The project in review...

I'm glad I took the path I did. What I got out of this was some seriously needed experience. In future projects I will already be aware of many pitfalls to various designs and practices. Yeah, that's right, I'm glad I took the time to try and succeed even if it was mostly painful and never truly complete. :D

I don't think it's the route for everyone, of course. If you just want to throw up a portfolio and write about what you know, I have this advice —

Reduce your headaches early on! Utilize a tried and true solution! All the kids are raving aboutWordPress!
You'll thank me, promise. That is, unless you want to develop your own tools, waiting for them to feign in battle against circumstance so you can beef them up on steroids of code until they grow into seasoned veterans of website technology. Now that's romantic prosperity!

posted by Langel

Leave a Comment

no html