Monthly Archives: November 2010

Day 05 – Quick nifty hacks you’re proud of

This post is part of my 30 days of geek challenge.

I often make quick hacks (aka customisations, workarounds, fixes) to systems in order to solve a problem or limitation, or just nifty bits of code.

I think some of my favourite are:

  • Forward porting a legacy Intel video driver for XOrg to a backported version of XOrg in order to obtain proper video functionality on my Toshiba Libretto U100 laptop with Fedora 12.
  • Writing backup software for a telecommunications company which connects to a legacy network device via telnet and proceeds to dump the configuration and OS binary data out over the same telnet session, capturing it and then storing it in a file on the backup server.
  • Writing a tool to convert a budget USB scanner into a network scanner that outputs PDF files using scanimage for Linux and some PHP glue.
  • Various little scripts, such as an automatic shutdown script to watch a process  (eg a number of downloads) and shutdown upon completion.

There are plenty of other examples that I’m sure I could look at, the above is what came to mind late at night. :-)

Day 04 – Greatest application written to date.

This post is part of my 30 days of geek challenge.

This is actually a tricky question, after all, how do you define what your greatest application is? Is greatest the largest, the most complex, the niftiest or the one that you find most useful?

I’m going to go with the Amberdms Billing System for my entry, it’s a 49,447 line PHP web application providing accounting, billing, time keeping and invoicing functionality.

  • Standard double-entry accounting.
  • Timesheets/timekeeping.
  • PDF invoice generation
  • ISP service billing, including data usage and VoIP call record charging.
  • Mostly object orientated PHP built on the Amberphplib framework.
  • Fully open source under the GNU AGPL software license.

It’s fully open source and my startup Amberdms Ltd provides hosted versions as well as software development/customisation services around it.

Reason for the selection is that it’s the largest/most complex application I’ve written, as well as having some significant uptake by others.

It also lead to the development of the Amberphplib framework, which whilst not perfect, has become a valuable base for a number of my web applications and provided a huge learning curve for building the next generation web application frameworks in future.

Day 03 – What does your day job involve?

This post is part of my 30 days of geek challenge.

As of this week I’ve just taken on a new full time job, so this has changed a little… :-)

Last month I was running Amberdms as a full time venture, which involved:

  • Lots of project management
  • Handling (herding?) staff
  • Software development
  • Support services between anything from entry level desktops up to linux servers and networking.
  • General business operations, customer interactions, etc

As of November, Amberdms has scaled down to a side venture purely for the software side of the business and I’m now working full time for my old employeer, Prophecy Networks.

My job title is “Consultant Systems Engineer” which I guess is really a combination of:

  • Project Management
  • Pre-sales and customer interaction, including writing proposals, etc.
  • Software development, focusing on web-based applications and system scripting.
  • Engineering support services focusing on enterprise Linux/UNIX and networking systems.

My new job at Prophecy is very self-driven/independent in a way, which meets my entrepreneurial desires and I have a lot of input into customer projects, recommending/designing solutions, implementing and having all the fun, with other staff being responsible for the day-to-day operations and support once deployed.

So far it’s been good fun and I’m looking forwards to the projects that are being lined up for the next few months. :-)

PS: Great to see many other geeks getting into #30daysofgeek, check back to the main article’s comments section for other great blogs. :-)

Day 02 – Preferred programming language?

This post is part of my 30 days of geek challenge.

PHP > SEX

As much as this will make some of you gag and want to cause me physical pain (or more so than normal anyway) I have to admit to being a complete and utter PHP fanboy. :-O

Yes, PHP is quirky at times, but it’s fast, lightweight, easy to develop simple or complex systems with and has a huge number of useful functions and extensions.

I love it’s multi-dimensional hashes/associate arrays, it’s syntax style and the way it feels to write and engage with, it suits me just right. :-)

The other fantastic reason why I love PHP is the vast amount of resource information available online via php.net – being able to lookup any function and see not only the official documentation, but also hundreds of user submitted comments and examples is fantastic.

I’ve developed many major web application projects in PHP (these days mostly in object orientated MVC-style structures) including:

PHP has a bad rep for being “insecure” which is more a problem with stupid configurations (eg register_globals) or the fact that a lot of new programmers start with PHP and don’t always understand the security implications of developing for the web.

Aside from PHP, I’m pretty fluent with Perl (although I kind of hate it) and know bits of C/C++ although not enough to code anything that exciting, my C knowledge is mostly enough to fix a bug in some existing code or hack in a new feature in a simple application.

I want to expand my C++ knowledge and I’m considering looking at Java (for writing apps for Android) as well as possibly experimenting with Python, Ruby or one of these other new  cool languages that people are using. :-)

Day 01 – Why do you consider yourself a geek?

This is the first post as part of my 30 days of geek challenge.

Anyone who knows me would easily be able to confirm that my level of geekiness is high enough for me to go on for hours listing the reasons, however sadly it’s 23:25 and I still have a mountain of tasks to complete before going to work tomorrow. :-(

I think it’s my obsession with computers which makes me a geek – I think my friend Chris Neugebauer summed it up well in his post – being a geek means going above and beyond a normal level of interest in something.

I’ve been using computers heavily for almost half my life and my interest has never diminished, although it has certainly changed over time and moved into different areas – the thing is technology is so exciting and I love the problem solving aspect of it and the new exciting challenges that arise almost daily.

So other than obsession, why am I such a geek? I’d go with a number of reasons:

  • There is no space on my desk that isn’t covered by computers – I have an obscene amount of computers and systems, probably enough to rival a small telco. ;-)
  • The sticker on my laptop which says “my other computer is a data center” isn’t a lie. I really do have a small datacenter. (2x 42U racks)
  • The internet is the most important thing in my life, I would argue perhaps the most important development for humanity to date.
  • I will spend hours, days if I have to, to track down and resolve a problem – to get something like Linux working on a tricky bit of hardware I’ll dig through mailing lists for kernel patches, dig into the code and lose my sanity all in the goal of obtaining a solution.
  • Real life is that thing I have to endure to get between computers.
  • My most important and cherished asset is the data on my hard drive. Everything else is just stuff that clutters up my life. (yes, it is backed up BTW!)

(As a side note, why “geek” rather than “nerd”? I consider geek a badge of honour and can be someone quite cool, nerd implies it in a negative sense, eg maybe someone more socially inept.)

Dawn of a new era!

Today was the first day of my new old job (no, that’s not a typo) at Prophecy Networks, feels strange getting back into a regular routine and doing normal people things like eating lunch at sane hours of the day and waking up in mornings.

It’s not all smooth sailing just yet, I still need to complete a number of hand over tasks and some ongoing projects, but I’m getting there – by the end of November, I should have a much more sane/normal life. :-)

If you follow along on my blog much, you will know that today is the start of 30 days of geek (#30daysofgeek) which I posted about here.

I’ll be posting the first day shortly and there are a few people joining me! :-D