ThoughtFactory.CreateThought() A random collection of thoughts from an easily bored developer

3Apr/110

MineCraft Modding Resources

My 8 year old is an enthusiastic MineCraft player. It's basically modern day Lego without the expense of buying thousands of dollars worth of plastic blocks. Over the last few months she has built up a fairly impressive town and is now approaching the point where she wants to do more. The various MineCraft video podcasts she watches on YouTube opened her eyes to the world of modding.

We installed a few pre-built mods for her to play with, but things have now gotten to the point where she wants to create her own. I'm still not clear on whether she wants to actually learn Java and cut code for the mod, as she may be perfectly content scribbling instructions for me in her notebook. Regardless, I thought it would be a good idea to start collating resources on how to actually go about modding MineCraft.

Before you start anything, make sure you're familiar with where MineCraft stores it's application data; things like your save files etc. On a Windows 7 machine it generally uses %AppData%/.minecraft. Be sure to back this folder up before doing anything funky with your MineCraft install, lest you end up with a bunch of corrupted save files. You can always replace the MineCraft executable, but it's a bit harder to re-create the hours of work you may have spent building your own in-game version of the USS Enterprise:

Firstly, you'll need a copy of the MineCraft Coder Pack (MCP). Essentially MCP is a Java toolkit that decompiles the MineCraft .JAR files (the packaging format used by MineCraft to wrap up all the Java class files, metadata and resource files needed by the application in a format suitable for distribution) allowing you to edit and recompile the app. It also has a bunch of helper classes, batch files and a bunch of other fun stuff to make the experience more pleasant.

Next you'll want to check out the list of MineCraft Modding Tutorials on the MineCraft forums. If you scroll down in that forum post you'll see an excellent guide to setting up Eclipse to use the MineCraft Coder Pack. My 8 year old appreciated this as she has never seen Eclipse before; her only development experience so far has been with Python using IDLE and LOGO using KTurtle.

The list also contains some basic tutorials that get you started with cutting code against the MineCraft codebase. There are more tutorials like this on the tutorials section of the MCP Wiki

There are also a number of options for playing around with MineCraft that don't involve cracking open Eclipse. Be sure to check out the following:

  • MCEdit, a MineCraft Map Editor
  • The MineCraft Wiki article on Skins has some great info on modifying player and NPC skins. It also has quite a few sample skins and links off to a few external skin repositories. This is really handy for getting your head around what a MineCraft skin needs to look like before creating any of your own.
  • INVedit is a MineCraft inventory editor that my 8 year old is currently using to give herself all the items she needs to create a world of her own.
  • The MineCraft Wiki Mod page has a list of third party mods as well as links to various Mod managers that let you install mods without cracking open the .JAR file and recompiling it yourself. As with all development endeavors, it's worth checking to make sure that the feature you're trying to add hasn't already been written by someone else, making this a good place to check before you open up Eclipse.
  • The Single Player Commands Mod gives the player access to commands that add a whole lot of functionality to what you can do in-game. Here's a cool explanation of what the mod can do:

  • You can download save files (maps) that other people have created or distrubute your own.

Something cool that's mentioned on the MineCraft Wiki is the possibility of server-side Lua scripting coming to MineCraft. Notch, creator of MineCraft, mentioned it in a post way back in 2009, so I'm not sure if it's still on the cards. Still, he does mention that it will be coming during the beta, and MineCraft has only recently reached beta. If they do introduce server-side scripting then I'd imagine the barrier to entry for MineCraft modding would be significantly reduced. Still, for now it's a good excuse to teach my 8 year old some Object Oriented Programming concepts which she hasn't been exposed yet. Just a pity it has to be in Java.

29Mar/112

OmniGraffle: More than Meets the Eye

I first picked up OmniGraffle for the iPad last year, back when I had delusions about using my newly purchased iPad for work and before the device became a dedicated Dora the Explorer video player for my kids. The purchase price was pretty steep (~USD50, which was more like AUD70 at the time), but I figured that it would form a key part of my daily workflow so the price would be worth the added productivity.

Unfortunately it was not to be. My kids became the primary users of the iPad, which didn't leave much time for me to take it into work.

I managed to pick up an iPad 2 on launch day, so I figured I would give my exorbitant app purchase another try. Now, not being a Mac user anymore, I've never used the Desktop version of OmniGraffle, so I honestly had no idea what to expect. I'm a fairly heavy Visio user, and have dabbled in Aris and other modelling tools, so I had a good idea of what I wanted the product to do, though.

The first thing I noticed was that there aren't actually that many diagram types to choose from, especially in the software category. In fact, I wasn't really sure how much use I'd be able to get out of the product given that I spend most of my day creating some fairly specific diagrams.

Enter Graffletopia, the community that seems to have sprung up based around creating custom stencils for OmniGraffle. These stencils contain pre-made shapes covering a wide variety of topics, all of which you can use in your own diagrams. They even have one based around BPMN 2.0. Some of the stencils are targeted at the Mac version of the product, but there are quite a few that work on the iPad too. The site is fantastic, and I'm sure I'll be mining it for useful stencils for some time to come.

The only problem I've found with the site so far is that some of the templates refuse to open in the iPad version. Still, the majority have no issue, there are a wide variety of stencils available and the site itself is free, making it an overall pleasant experience. The functionality that it has added to OmniGraffle certainly makes me feel like I'm getting my USD50 worth.

10Jan/090

Creating a Monster – Part 1 – The Beginning

Ferreting around in a spare room/cupboard/garage/other junk storage area can sometimes yield a wonderful surprise. I recently re-discovered an old, broken guitar sitting in our spare bathroom (which has been totally stripped awaiting renovation for.. oh, about 2 years now, and is now serving as an extra large cupboard. But that's another story); an Epiphone Les Paul Special II that I picked up for AUD200 back in 1999. It was the first electric guitar I ever played on stage, and even though it's a cheap piece of junk it will always hold a special place in my heart.

Upon inspection it was clear that time had not been kind to the guitar. I had originally put it into storage after the nut broke next to the 6th string, effectively making the guitar useless in it's current state.

The original broken nut

Numerous other problems presented themselves, leading to a rather impressive list of ailments:

  • Machine heads that were falling apart and would not keep the strings in tune.
  • Broken nut, limiting the guitar to 5 strings
  • Crackling tone and volume pots
  • A loose input socket
  • Weak sound from the pickups
  • A noisy pickup switch
  • Annoying hum indicating that the guitar was not properly grounded

One of the original machine heads after it fell apart

Given that list and my eagerness to give a task a go as long as it seems interesting enough, I decided to attempt some modifications myself.

First, let me be very clear about something: I know absolutely nothing about guitar modifications, woodworking or electrics. If you're after a guide on how to do any of this then check out the various articles I reference throughout the post. I did this because I was bored and wanted to find out how to do this sort of thing. The guitar I tried it on was broken anyway and I was fine with the prospect of breaking it some more. Ultimately I'd like to get good enough to make modifications to some of my more expensive instruments, but until that time I'll settle for practising on guitars that are next to worthless.

If this works out well then I've got another two guitars that need physical repairs and another 3 that could do with shielding as well as having the grounding looked at. The cheap Yamaha bass I picked up a few years back suffered from a horrible hum when I'm not touching the strings, which indicates that it's not properly grounded, so I'll have to take a look at that, too.

The first thing I had to do was pick replacement parts. The machine heads were easy; I ordered a set of non-locking Gotohs. I've never tried locking machine heads, so I figured that I'd stick with what I know. The guitar has a fixed bridge, so it simply needs a decent set of machine heads to keep it in tune.

The nut was a different story. Normally I'd get someone to cut a new bone nut from a blank, but there was no way I had the time or patience to do that this time around. I also couldn't drop the guitar off at a shop for any period of time, as I'd be putting all the other hardware on it myself so I'd need to have access to it.

I could have bought myself a blank bone nut and shaped it myself, but it looks like a long, complicated process that involves specialist tools, a well thought out plan and actual skill; none of which I have. Fortunately I was able to buy a basic graphite nut in the same profile as the original, broken nut. As long as it is the correct height you can usually get away with attaching the nut without modification. At most I'd be up for a little filing to lower the height slightly.

But what about the electrics? How do I get rid of that hum? How do I rewire the guitar? To the intarwebs!

There's an excellent article on properly grounding and wiring guitars over at Guitar Nuts that caught my eye. The basic idea is to insulate, create a single path to ground and create a makeshift Faraday Cage. To accomplish this I would need some copper backed tape and a lot of guess work. Unfortunately the article is geared towards a Fender Strat style guitar, so there were still a few problems that I would have to solve.

Darrell Young over at Digital Darrell has an excellent article on replacing the pickups in the exact same model of guitar that I'm working on. When I do the actual modification I'm sure that I'll be be referring to this with some frequency.

Unlike Darrell there's no way I'm going to spring for authentic Gibson pickups given that this is the first time I've ever tried anything like this. Instead I'm looking at getting a pair of cheap Gotoh humbuckers. Gotoh themselves are better known for their hardware (floating bridges, machine heads etc. In fact, the machine heads I put on the guitar are Gotoh), but they make a range of cheap, relatively high quality pickups that are made in Japan and can be picked up for around AUD40-AUD50. I managed to find a wiring guide for Gotoh pickups online, so I can do some pre-planning to figure out what my circuit is actually going to look like before the pickups arrive.

In order to fix the noisy volume and tone pots I would need to replace them. A pot is basically a variable resistor that can be used to alter the signal coming from your pickups. There are two main levels of resistence used in guitars; 250k and 500k. You also occasionally see 1Meg pots. A high resistance pot will retain more of the high frequencies in the signal.

As a general rule of thumb, the 250k models are normally used with single coil pickups to avoid an overly shrill sound. Since I'll be putting humbuckers into the guitar I'll be going with 500k replacements.

New hardware, electrics and copper shielding tape

Quite a few of the parts have arrived, and over the next few weeks I'll slowly but surely be progressing with the modification. I'll be taking plenty of photos, and will be uploading themto a set on my Flickr stream as I go. Next thing on my agenda: remember enough about electronics from high school to avoid electrocuting myself.

4Jan/090

Awesome cuff links are awesome

I've never been a fan of "bling". I don't wear watches, necklaces, rings, earrings or anything of that sort. If my shirt requires cuff links then I'll usually wear the standard "monkeys fist" style silk knot cuff links that come with some French cuff shirts.

Ctrl & Esc key cufflinks

Transformers cufflinks

Saying all that, I love these cufflinks. They were a birthday present from my better half, and are sufficiently geeky without being overly garish.

They aren't exactly "hey, look at me, I'm totally unique and quirky!" items, unlike, for example, the 8-bit tie, which I could never wear to work with a straight face. Perhaps if it came in a colour that wasn't bright blue or red?

Update: I've had a few people ask me where I got these from. I've been informed that they came from http://www.benjamincufflinks.com.au/.

Filed under: Toys No Comments
25Jul/083

Coolest. Thing. Ever.

I honestly had no idea they made these. I saw them on display at the Target toy sale, but didn't get a chance to make a purchase. Ah, to be 10 again..

Halo 3 Laser Tag Game

Looking at these, I'm reminded of the all night Zone 3 sessions I used to frequent in my youth. It leads me to wonder how the Halo hardware compares to the commercial laser tag systems like they use at the modern Zone 3 equivalents like LaserCorps and DarkZone, as it would be pretty cool to have a LaserCorps style skirmish using the Halo gear. I somehow doubt they're going to have the range required, though, and probably don't have any concept of a central scoring system.

Wikipedia seems to have a nice writeup of all the different manufacturers of lasertag equipment, but it doesn't mention very many consumer kits. No matter, at least they look cool.

Filed under: Toys 3 Comments
14Jul/086

The Rumble In The Jungle

The technology industry is no stranger to brand wars, nor the fanboys that accompany them. For decades, battles have been waged in the school yard, workplace, arcade, any place where over-excited tech geeks gather, all over issues that seem inconsequential to the casaul observer. Whether it be Apple vs IBM, Amiga vs IBM, Microsoft vs everone else or Sonic vs Mario, opposing forces are willing to defend their claim to throne right down to the last soldier.

This sort of behaviour usually occurs when you make a significant financial outlay and have to choose between competing products that do essentially the same thing, either because it's only practical to own one of the devices or because you can only afford one. It's the reason that Ford and Holden owners don't get along, and why the console wars are so intense. If you'd just spend $40,000 on a car or were 14 years old and had spent 3 years of savings on a games console then you'd want to justify the purchase when it came under fire. Computers and Gadgets are not exactly known for being cheap, so it's no wonder that the industry is rife with commentators and consumers who are rather vocal about the choices they have made. After all, who would want to admit to being on the losing side of a technology war, especially after laying down a few hundred or thousand dollars on a new purchase?

N95 owners, of which I am one, are one of the latest groups to join in the self justification to avoid feeling like they have just purchased $800 of FAIL. The iPhone, with it's fancy touch screen and vast amounts of media coverage, has become somewhat of an affront to everything an upstanding Nokia user should stand for, and a scourge that must be wiped from the face of the Earth. The only logical way to accomplish this feat is through the release of many "anything you can do, I can do better" YouTube videos. Now why didn't I think of that?

Amidst all the kerfuffle, one of my close friends has said "why can't I have both??". He's a recent N95 8Gb owner, and being a total gadget geek, simply had to have an iPhone 3G as soon as they launched in Australia. He's started blogging about his experiences running both devices simultaneously, the N95 8Gb as a work phone and the iPhone for personal use. He's a long time Nokia user but also an Apple fanboy, so it will be very interesting to see how it goes. Will he remain objective? Will he throw one of the devices out the window? Will he have to buy a whole new stylish wardrobe to accompany his new iPhone? Only time will tell!

Filed under: Gadgets 6 Comments
13May/080

The Saga Continues

After the success of her first programming lesson, my 5 year old daughter was eager to start the next one.

Previously we had covered boolean logic and control flow, both of which she had no trouble with, so she was ready for something slightly more complex. I had a few ideas about what to talk about next, but I didn't want to decide until we were both sitting at the desk, ready to start the lesson.

The first lesson really drove home the similarities between teaching adults and children. It's all about being able to capture someone's interest for long enough to get your point across. The good thing about kids is that they make it fairly obvious when their attention span is waning and they are no longer taking on information. Adults have a nasty habit of trying to be polite, which only ends up wasting your time and theirs.

I left the decision to the last minute so that I could take my daughter's current demeanor, energy levels and alertness into account. If she was easily distracted then I'd want to avoid some of the more complex topics, and only explain short, easy to swallow chunks of information.

This turned out to be a good call. She had previously discovered TuxPaint on my Ubuntu box, and was already asking if we'd have time to play "the penguin game" (i.e. TuxPaint). I immediately knew my chances of having her undivided attention were shot.

As an aside, I highly recommend TuxPaint. I've installed it on her laptop, an old G4 iBook we had lying around, and she plays with it most nights. TuxPaint also has the honor of being the first open source project I've ever donated to. The guys who make it even offer really cool kid's shirts so your pre-schooler can show their support for open source software. It almost makes up for the fact that they don't sell FireFox shirts in kid's sizes. Almost.

I ended up ditching any ideas of discussing encapsulation for something much simpler. I figured that I could sell the concepts of variables and functions before she got bored and started asking about that silly penguin again. These two concepts would be enough to round out her understanding of some basic procedural programs, and probably allow us to actually create something cool.

Variables were easy to explain. I was considering starting with a brief overview of lambda calculus, but that might get us a call from child services, so i toned it down a little. At the heart of it, a variable can be explained away as an alias for something. It's just another way of referring to a particular "thing".

I appealed to her natural sense of vanity, something every 5 year old has more than enough of, and explained variables in terms of her age. She loves writing her name, so this was a good attention-getter.

EMMA'S AGE = 5
# I used this to explain what happens on her birthday
EMMA'S AGE = EMMA'S AGE + 1
EMMA'S AGE IS NOW 6

I explained that, after stating that her age was 5, we didn't need to say "5" over and over again. It was enough to say "Emma's age", because we knew that she was 5. I used her birthday as an example of changing the value of the variable. Every year she has to add 1 to her age, so on her next birthday she will be EMMA'S AGE + 1.

We tackled functions next. She loves baking, so I thought I'd use a concept of reusability that she would already be familiar with: a recipe. We wrote out a definition for baking a cake. Of course, I have no idea how to bake a cake, so I wouldn't recommend following the recipe...

BAKE CAKE()
{
	Add Flour
	Add Milk
	Add Eggs
	Add Sugar
	Add Butter
	Mix
	Put in Oven
}

Now that we knew how to bake a cake, we could bake as many of them as we liked.

BAKE CAKE
BAKE CAKE
BAKE CAKE
BAKE CAKE

After learning about functions and solving the world hunger crisis with cake we decided to call it a night.

Hopefully she's now learned enough to have a basic understanding of procedural programming, or at least enough to let her understand a simple programs, which is what we plan to do next. I don't expect her to be writing the next Crysis, but she should be able to sit over my shoulder and understand a Hello World or two.

Tagged as: No Comments
28Apr/081

Reading, Writing and Random Access Memory

There are certain important life skills that parents are obligated to instill upon their children. It's our responsibility to make sure that our kids have a have well developed I/O skills, a strong moral backbone, a social conscience and, most importantly, that they know how to program.

My 5 year old girl recently started inquiring about what I do for a living. More specifically, she wanted me to show her what I did all day and explain how I did it. Now, this would have been really easy if I was a bricklayer, as we have plenty of Bob the Builder DVDs lying around the house that I could have shown her. However, I'm not. I develop line of business applications for a living. So what exactly can you teach a 5 year old about programming, and how would you go about it?

Obviously I needed to start running through Charles Petzold's seminal book, Programming Windows, with her. The Windows Message Pump is an essential concept that all 5 year olds have to know. Or maybe not.

I decided to simply explain a few fundamental concepts that would enable her to "think like a programmer". I didn't want to push anything onto her, and I certainly want to give the impression that it was the only way to think, but at least she would be aware that the option exists.

We started out with boolean logic, introducing her to the idea of AND, OR and XOR. I used an example involving two entities that she would be familiar with, a cat and a dog, and ran through the various combinations (cat AND dog, cat OR dog, cat XOR dog etc). I was a little hesitant about doing this, considering that teaching the concept of the English Language definition of "or" to children is extremely difficult once you get into the specifics of the matter. She's not quite big enough to have a debate about disjunction, but we're working on that one. She was able to grok it straight away, and immediately started talking about how great it would be to have a cat.

Fortunately I was able to distract her by moving on to control flow, more specifically using the boolean logic skills she had just learned to discuss conditionals in an IF/THEN/ELSE form. I ended up scribbling a lot of pre-primary level pseudo-code down on a piece of paper for her to understand this. Drawing flow charts helped, too.

# I termed this as "If we had a cat and dog, we are happy,
# otherwise we're sad".
# Not exactly the most complex business rule in the world,
#but it gets the point across to a 5 year old.
IF (CAT AND DOG) { HAPPY }
ELSE { SAD }

I drew a quick flowchart of that code, showing the decision and then the two different results, and she immediately got it. The simple, one word results using terms that she was familiar with really seemed to click in her head. There's certainly something to be said for the universal appeal of a flow chart, too. Next time someone tells you that they don't understand your chart, tell them that a 5 year old can pick up the concept in a few minutes.

From there I was able to expand on control flow to include the concept of iteration and looping. By this point she was really into the whole cat analogy, and I was drawing pictures of cats under her strict direction. Pretty soon we had quite a few cats drawn on the page, so I said to her "what if you wanted to pet each one of those cats?". I got an enthusiastic response; apparently petting cats is a pretty popular activity amongst 5 year olds.

I initially made the mistake of trying to explain the concept of collections at the same time. We spoke about the cats living in a house, and how she might like to pet all the cats in the house. We ended up with the following scribble:

FOR EACH (CAT IN THE HOUSE)
{
	PET CAT
}

This was great, but it lead to an off topic conversation about why there were no dogs in the house, and how if you had small babies then you might only want to have one cat or maybe even no cats at all, and if you had cats you might want some dolphins too because dolphins could live in a pool outside and dolphins are really cool. She was concentrating too much on the house and the endless possibilities of what could be put inside the house and less on the idea of the house being a container for cats. So I dropped the house concept, drew some more cats on the page, put a circle around the cats and pointed at them while running through the following example.

FOR EACH (CAT)
{
	PET CAT
}

Removing a direct mention to the house cleared up the concept enough for her to focus on what I was saying. She could see the cats on the page, she knew that she wanted to pet each one, and she got the idea that she was going to pick up a cat, pet it, put it down, rinse and repeat until all the cats had been petted.

Then it was time to bring it all together. My daughter suggested that perhaps some cats might not be big enough to be petted. They might be babies that you need to be gentle with. Huzzah, we had our first business rule! Time to throw that in the mix.

FOR EACH (CAT)
{
	IF (CAT IS A BABY) { BE GENTLE }
	ELSE {PET CAT}
}

So now we had an example combining boolean logic, decision making and iteration/looping. It was almost like a mini JAD session, only with a 5 year old inventing random business requirements relating to cats. None of it went over her head, and I found that as long as I kept talking about something she was interested in then she'd quite freely discuss the topic and want to talk about more things that we could do to the cats. The interest was there, so she wanted to naturally evolve the conversation and learn more.

The two main ideas that I hope to tackle next are variables and the concept of ownership. Ownership will be a big one, as it will (hopefully) be a starting point for some basic OO concepts. This should lead on to separation of concern and a few other ideas. Now I just have to pick a language to demonstrate some of this stuff in. Oh look, KTurtle is installed on my machine!

15Apr/082

Won’t Someone Please Think of the Graduates?

Has anyone else noticed that the example source code given on MSDN and in most books is really, really bad?

Even Fowler's seminal Patterns of Enterprise Architecture shows direct use of ADO.Net Command objects and string based SQL in the code behind file of an ASP.Net page. Check out the Page Controller Pattern on page 333 of Patterns of Enterprise Architecture for an example of what I'm talking about.

How can the industry expect to produce quality work when the information being used as guidance contains absolute worst practice? Should we have disclaimers on all sample sites stating that the code contained within is not best practice, or even something remotely approaching it? Perhaps even graphic slogans and images like those found on cigarette packets. "Writing software like this could cause mass headaches and a loss of budget related continence."

We could even go one step further. Microsoft have a Northwind database, why not a Northwind data access object and Northwind business services layer? Then the examples could stick to what they actually want to talk about (e.g. data binding) instead of having to show horrible code.

Is there really a need to explain how a table adapter works just to illustrate binding collections to a DataGrid? Wouldn't it be better to see something like:

List<Customer> customerList = NorthwindBusinessService.GetCustomerList();

in a data binding example instead of another direct call to the database using a SqlCommand object? They could have a series of MSDN articles explaining how the DLLs were built, and maybe even install them in an examples directory when the Northwind DB gets installed.

It doesn't even have to be deeply layered or highly testable. I'm not asking for something that has appropriate hook points for Unity or that I can use with NMock. Just something nice and simple that everyone recognises as being an example business layer or data layer call.

This issue is especially important given how reliant people are becoming on "the Googles" to provide exact solutions to their problems. How many of you know someone who has cut and paste from CodeProject or MSDN directly into a bound-for-production project? How many have done it yourself?

Don't laugh, it's more common place than you think. Just wait till you see a web application that consists of one form and 15 thousand lines of code in the code behind file. After staring into that particular pit of darkness you begin to realise just how dangerous these examples really are.

10Apr/080

How I Learned to Stop Worrying and Love my Phone

There was a time when I didn't care for mobile phones. I was one of the last amongst my group of friends to get one, and I didn't do so until it was absolutely necessary. My first phone was a hand-me-down from my sister who is 4 years my junior, which shows just how long I left it.

The phone was a Bosch. I had no idea they even made phones. It could send text messages (BUT ONLY IN CAPS, funnily enough. Someone forgot to include the full ASCII character set on their phone..), and had about 10 minutes of talk time on a full charge. Needless to say, it didn't exactly convince me that a phone was an essential piece of equipment.

My friends and co-workers were starting to get sick of being told by a monotone voice that my phone was unavailable or switched off. Then one day in late 2002 I heard that an electronics store was selling off the Nokia 5510, a phone with a full qwerty keyboard that could play MP3s, all for only AUD200. It even had 64MB of storage. Remember, this was pre-iPod when you could spend AUD200 on a 32Meg Mp3 player that ran on AA batteries that lasted around 3 minutes before needing to be replaced. I could fit a whole album on there if I was conservative with the bit rate. Finally I had found a device that appealed to my gadget loving side without being too new and scary. There would be no reason to learn how to do that silly predictive text stuff, so I'd be typing up a storm in no time.

Finally I was starting to like the idea of having a mobile phone. There was only one problem: I was still on a terrible pre-paid plan, so I could only type so many SMS messages on my wonderful keyboard before I simply ran out of credit. I spent too much time thinking about how much each message or call was costing me, so I could never actually enjoy using the phone. I found myself cutting people off and sending abrupt messages in an attempt to get a conversation to end quicker. I started to view the phone as a money pit that sucked up disposable income whenever I tried to talk to my friends.

After a period of time I cracked the screen (it was in my pocket and I bumped into something made of steel) and had to go get another phone. At this point I was sick of having to think about how much it was costing me to ring friends and family, so I ditched the pre-paid account and switched to a post-paid plan with Virgin. Seeing as most of my calls were to my partner, I bought two new phones, a Nokia 6230 for myself and a Nokia 7250i for her, and signed up for a plan that gave really cheap calls and messages to phones on the same network so we could ring each other on the cheap.

So I had partially solved the problem of worrying about making a call or sending a message. I was still reluctant to ring anyone not on the Virgin network, as I could eat up my minimum spend amount very quickly, but at least I felt free enough to frequently ring home or send messages to my friends who were also on Virgin.

My new 6230 still played music, had a removable MMC card that could be used to store files, was much faster than the 5510, had a camera (only VGA, but still, this was 2004) and as an added bonus it even supported GPRS. There were just two problems: Virgin didn't (at the time) have an internet capable access point for GPRS (you were limited to accessing their Virgin Mobile site) and my brand new phone was missing a feature that I had dearly loved in my previous phone, the qwerty keyboard. I was horrified, as I'd now have to learn how to send text messages using a numeric keypad.

Ok, I lied. There were three problems. Tack "had to take the battery out to change the MMC card" on to the list. Worst. Design. Decision. Ever. But I digress.

I started off slowly. I didn't use predictive text, because I had somehow convinced myself that it was cheating and I truly deserved RSI. No, the proper way to type a message is to cycle through letters until you get the one you require. That makes much more sense than letting the phone figure out what word you're probably meaning to type. *cough* To be fair to myself I did initially give predictive text a go, but I found myself having to enter every second word into the dictionary anyway. This constant interruption was enough to make me give up on predictive text for about a month. Eventually the pain in my thumbs lead me to tough it out with predictive text until the dictionary had learned enough to make the phone relatively pleasant to use.

One of my co-workers at the time purchased a Nokia 6600, one of the first semi-decent Series-60 phones (Series 60 being the mobile OS developed on top of Symbian OS). The phone had a lot of great features, and it even played N-Gage games (although the battery lasted all of 30 minutes when doing this), but it was as slow as a dog. My Series-40 6230, while not having all the features of the Symbian based OS, seemed like the fastest phone in the world next to the slothful 6600.

The 6600 was the first Series-60 phone I had seen or used, and it didn't make a good first impression for the platform.

While my partner and I were awaiting the birth of our second child, the microphone on my trusty 6230 decided to stop working. I could hear the caller, but couldn't talk back. Considering I was expecting a "take me to the hospital NOW!" phone call at any moment I decided it would be a good idea to replace the phone.

I was in a hurry to get something, anything, and was only half way through the contract for my 6230. I wasn't about to put in weeks of research to find a really decent phone, nor did I want to sign up for another contract and end up paying two off at a time. So I did the only thing that made sense at the time; I bought the cheapest Pre-Paid Nokia I could find on the same network (so no network locking issues) and figured that I'd sort it all out later. The model I ended up with (I was going to say "chose", but that's not exactly the right word) was the Nokia 6030.

I had been spoiled with the 6230. At the time of purchase it was basically Nokia's top of the line business phone, and here I was downgrading to something that didn't even have a camera. I made a  decision to stick it out until my contract for the 6230 ran out, but when that happened I couldn't find a phone that was worth buying. The N70 and N73 were out, but I still had the bad memories of Series-60 from the 6600, and I had heard terrible things about the performance of the N70.

Then something wonderful happened.  Three were giving away the Nokia 6288 on their $29 dollar cap. The 6288 is a fairly decent Series 40 phone with a Mini SD slot on the side of the phone, a 2 Megapixel camera and 3G support. I picked up two of them and transfered both of our numbers from Virgin over to Three. I also signed myself up for the 10 MB capped internet package that Three were offering and downloaded the GMail client.

Now I had mobile email. If you've never had mobile email then you may not understand, but it truly does change the way you work. You become connected and available wherever you may be, and email becomes a first class communication medium just like regular phone calls and SMS.

The capped plan was also a huge change for the way I mentally approached making a phone call. I had free minutes to ring other Three mobiles, which took care of communicating with my partner, but I also had AUD120 worth of cap to use as I saw fit. Now I could ring people on other networks without feeling like I was pouring a cup full of 2 dollar coins down a drain.

Apparently Three were not done being awesome, so they decided to release their X-Series range. For those who haven't heard of it, X-Series is effectively a product that you can subscribe to that gives you between a 100MB and 2GB internet quota to play with every month, with prices ranging from AUD12 to AUD40. You get a bunch of other Three services, but their usefulness pales in comparison to the fact that you can now have a broadband internet connection in your pocket that doesn't cost the earth.

X-Series was important because it changed the face of mobile data access in Australia. It effectively started a price war in the mobile broadband market. As a result, companies such as Virgin now offer obscenely cheap mobile broadband packages, both standalone and bundled with a phone.
Technically Three would only offer X-Series on certain phones that have been "certified for X-Series". Unfortunately my 6288 wasn't one of these phones. It is possible to sign up for X-Series with a non-certified phone, but it is highly dependent on the sales person you talk to. The 4 different customer service representatives from Three that I spoke to wouldn't let me do it, so I decided to see about getting another phone.

While all this was happening, the Nokia N95 was in the process of being certified by Three. Some of the other phone companies had already released it, but there were apparently several major issues with the first versions of the firmware. The N95 seemed like a dream phone. HSDPA, VoiP, 802.11G and a number of other features put the phone firmly on my radar. There was only one slight problem; the N95 is a Series-60 phone.

After spending days on the web I could only find one type of non-firmware related complaint about the N95, and that was the backlash against the battery life. I was willing to resign myself to a life of charging my phone every night, so this wasn't such a big deal. Then I discovered that the N95 has video out. That was pretty much made up my mind. I got one as soon as they were released on Three, and immediately signed up for X-Series Silver (500MB of traffic a month for AUD20).

I've been using the N95 since mid-2007, and I have to say that it, combined with having a proper broadband connection in my pocket, have changed the way I work, think and generally access information. Just think about how having mobile access to Google would change the way you operate. You can read movie reviews while trying to select a DVD to rent, or check out the type of RAM your motherboard can take while waiting in line at a PC store.

I won't go into detail about the feature set of the N95, but here's a quick overview of things that I use every day. I'll include both inbuilt features and things that I've installed:

The key thing about most of these features is that they would be useless without a proper internet connection. If I didn't have a mobile broadband plan then I'd have a chunky phone with a nice camera and GPS that happens to need charged every night. Instead I've got a mobile office in my pocket.

So after 7 years of mobile use I'm totally turned around on the subject. My mobile is no longer an annoying piece of plastic that I carry around as an obligation to other people who complain that they can never contact me. It is an integrated part of my life that I'd quite frankly be lost without.

At least 3 of my close friends now have N95s, and I've seen 4 of them in the office, so I must be on to something. I know quite a few of them are using Three's X-Series or an equivalent mobile broadband plan, too. It costs more than my old phone did, but I think the advantages more than outweigh the cost. The only down side is that people jumping on the bandwagon now get to pick up the N95 8GB, and there's no way I'd ever be able to justify getting one of those. Ah well, only a year and bit left on my contract...

Filed under: Gadgets No Comments
Sharing Buttons by Linksku