30 Days of Geek #5: Quick nifty hacks you’re proud of.

I’ve decided to partake in Jethro Carr’s 30 Days of Geek challenge, so I’ll be writing a post a day on my geekiness for an entire month! You can find all the posts in one spot here.

Today’s post is in a very similar vein to yesterday’s post, so I’ll keep it short and sweet:

  • The very short C program that I wrote to remove all the spaces out of one of my teacher’s spreadsheets and turn them into tabs. I think I probably saved her hours of tedium.
  • The script I wrote that stored all my Microsoft product keys within itself. The bash script would accept a search pattern for a product name, and spit out a product key. Much easier than going looking for a physical box.
  • The numerous abuses of iproute2 I’ve made in the last few months, in the quest to make computer networking make sense. My favourite networking hack is this one (in /etc/network/interfaces):

    iface lo:0 inet static
    address 172.24.16.1
    netmask 255.255.255.255

    What it does is add in a second loopback address, not within the 127.0.0.0/8 block. Not original perhaps, but very useful for BGP routing.

30 Days of Geek #4: Greatest application written to date.

I’ve decided to partake in Jethro Carr’s 30 Days of Geek challenge, so I’ll be writing a post a day on my geekiness for an entire month! You can find all the posts in one spot here.

Unfortunately, since I don’t really consider myself a programmer, and I don’t really do any programming, it’s a bit hard for me to say what my greatest application is. I can however tell you of some of the programming achievements I’ve made in my past.

Way back in high school I started out programming using a programming language called BlitzBasic. Over the couple of years I used this language I wrote a number of games, most of them pretty awful. But two games did go somewhere. The first was a side-scrolling platform game I called RollingBall (the main character was a yellow ball). It’s where I first learned about game physics (albeit very primitively) and about how not to write a program (i.e. GOTO = bad). The second was a top-down RPG game in a similar style to the Pokemon games. Although both of these games suffered from a bad case of programmer artwork, they were pretty fun to play (or my deluded variety of fun, anyway).

The greatest achievement I’ve made though was the moment I finally got an operating system kernel that I had written entirely from scratch working on my home computer. It did nothing more than print ‘H’ in the top-left hand corner of the screen… but that’s all it needed to do. Knowing that the code you’ve written is the only code running on a computer system is a pretty awesome feeling.

30 Days of Geek #3: What does your day job involve?

I’ve decided to partake in Jethro Carr’s 30 Days of Geek challenge, so I’ll be writing a post a day on my geekiness for an entire month! You can find all the posts in one spot here.

I’ll answer this question in two different ways.

My “job” is working as a computer technician for a computer shop based in Hobart, Tasmania. I only work on Saturdays (at the moment, it used to be full-time), so that leaves me quite a bit of the week free for other pursuits. My work involves three main parts:

  • Fixing dead computer hardware. 90% of the time it’s a dead power supply, which is an easy fix, but occasionally there are some amazing problems that just shouldn’t happen. And those are a good fun learning experience.
  • Fixing broken Windows installations. 90% of the time it’s a virus, which is an easy fix, but occasionally there are some amazing problems that just shouldn’t happen. And those are a bastard. Most non-Microsoft application developers are stupid and lazy, it seems.
  • Dealing with customers on the phone. This is both the best and worst part of my job.

I’m fairly lucky with my work, in that I get paid to learn. 🙂

The activity that I spend most of my week doing is system administration. I don’t get paid much for this (not yet, anyway), but I’m continually learning and one day I’m going to have 1337-h4x0r skills (no, really). I have the feeling that system administration is where I will probably end up in my career.

30 Days of Geek #2: Preferred programming language?

I’ve decided to partake in Jethro Carr’s 30 Days of Geek challenge, so I’ll be writing a post a day on my geekiness for an entire month! You can find all the posts in one spot here.

First off, I don’t really consider myself a programmer any more. I do code occasionally, but only when my degree requires it, or I have a pressing need for a tool that Google just won’t divulge.

My favourite programming language is C. It’s got so much power, and yet it’s such a clean language, unlike C++ or other similar languages. I used it a lot in the past for writing operating system kernels, which is what it’s really designed for. It makes me happy when I see some well-formatted, well-commented C code (hint: you won’t find any in the Linux kernel, Linus Torvalds is a Git).

The language I code the most in these days though is the bash shell scripting language. It’s not technically a formal programming language perhaps, but it’s certainly very useful. I’m a system administrator for a number of servers in my spare time, and automating tasks is the best way to stay sane (that’s why we have computers, isn’t it?). I’m not brilliant at bash scripting, and I’m sure if the UNIX wizards of old saw my scripts they’d turn over in their graves, but I can get the job done.

There are a number of other programming languages I like the look of, or the concept of, but I just don’t use them as much. Java is one. I know most geeks reserve a special hatred for Java, but I honestly don’t know why. It’s a nice clean language, and the number of included libraries makes it really easy to knock together applications. Another language I think is pretty neat is Lisp. I almost never use it, and can only do the basics, but it’s just so wonderful and different. And that variety in programming languages is what makes every single one of them so special.

30 Days of Geek #1: Why do you consider yourself a geek?

I’ve decided to partake in Jethro Carr’s 30 Days of Geek challenge, so I’ll be writing a post a day on my geekiness for an entire month! You can find all the posts in one spot here.

I consider myself a geek for a few reasons. Firstly, being a geek is how I spend almost all my time. My day job is as a computer technician (more on this later in the month), and most of my spare time is spent staring into a computer screen of some kind. I am trying to decrease the amount of time spent in front of a computer, because it’s starting to become quite detrimental to my health, but at the moment it’s still quite significant.

Secondly is the fact that I adore gadgets. In the past I’ve been doing the tourist thing around a foreign city, only to interrupt it to go into a department store and check for new geek gadgets. Trawling eBay for old computer junk I find fun. I upgrade my computer in some way every 2 or 3 weeks (even when I’m otherwise broke). It’s a horrible addiction, and I love it.

Thirdly, and most importantly, I consider myself a geek because it allows me to be friends with a set of wonderful people, some of whom I only know through being a geek. I’ve met several people at a computer camp who are just pure awesome, and I consider it a privilege to know them. The people you meet are always the best part of life, and being a geek is no exception.