Category Archives: Uncategorized

Time to end the RGV restoration

I have recently come to the conclusion that it is time to put an end to the project of re-building / restoring the RGV.  Don’t worry, this story has a happy ending!  My decision is not to give up on the project, but to finish it.  Discuss Project management for long enough and eventually you will end up talking about the three competing factors on any project.  The saying goes “Features / Timeframe / Budget.  Choose two”.  Although most of my experience with project management has been with software, the same idea applies to any project. – The RGV restoration would be no different, except for the fact that I had allocated a monthly budget of what I was prepared to spend on it.  This makes the budget a function of how long the project runs for.  So, this unnaturally skews the balance of the three competing factors. Unfortunately, it also makes for a long project!  I could have spent more each month, but I have seen too many motorcycle restoration projects run out of enthusiasm due to the large money pit that they can become (and no doubt how quickly in debt their owners can become)

Speaking of large money pits…  I kept a spreadsheet to allow me to stick to my monthly budget.  This in itself seemed like a wise idea.  It does however put sharply into focus how much money I have poured into the project.  (Should that be “poor-ed”?)  Given the prices that RGVs demand these days, it is suffice to say that I would be making a loss if I sold the project at this point in time.

In terms of where the bike is “currently at”:

  • It is still two packing shelves full of pieces.
  • I have recently had the front forks and rear suspension rebuilt.  This was only the second time I have used a commercial business to do any serious work.
  • I have sourced all the parts and I am in the middle of rebuilding the brakes.  That process will hopefully be a story for another time.
  • About the only outstanding parts left to purchase are new chain and sprockets and new tyres.  (For some reason I just don’t trust twelve year old tyres…)

Things I have learnt along the way:

  • I should not have attempted to restore this bike.  Despite starting with a “free” motorcycle, this project has cost a fortune!  It would have been cheaper to buy a running and almost road-worthy RGV and start from there.
  • By doing the boring things first (such as frame straightening) rather than the fun things (such as painting fairings and buying bling parts) the restoration project didn’t start with a bang and run out of momentum.
  • Some planning would have avoided the need to do things multiple times.  – I had to completely strip the bike to get part of the frame repaired.  I subsequently put the swing-arm rear suspension back on, only to remove the rear-shock to get it serviced later.
  • Buy good tools.  They really do make the job easier.  On the other hand…  Some once-off style jobs are not worth spending a fortune on.  Sometimes it makes sense to take the part to a workshop where the job can be done for you.  Removing the bearings from the rear-suspension linkage was a good example.
  • I have become quite good at watching where things (such as nuts / bolts / washers etc) go when I drop them on the ground.  This is an under-rated skill in my opinion.

One thing which I don’t need to learn is that this isn’t the end of spending money on the bike.  A track-bike is never finished and rarely cost free. Until I get the chance to properly put the bike through its paces, I don’t know if the gearbox is mechanically fine, whether the clutch plates slip and whether the engine will perform properly under load.  All these things will reveal themselves in the fullness of time!

Good vs. Better

Despite my desire for an Android phone, (puns are never quite as good, when intended) I actually quite appreciate the Apple iOS and its consumer based products. I am not the sort of consumer with an insatiable appetite for the latest piece of technology. This timing was not right for me to buy a replacement for our “go-anywhere” laptop. When the time comes to replace our current run-of-the-mill laptop, I would seriously consider an Apple iPad as a worthy replacement. Of course, new technology will come along before then, so it is far from a guarantee. But, it is hard to see any other manufacturer making the concerted effort to produce a slicker device in the category.

Apple advertising pitches the iPad as a revolution. The revolutionary part is not the form-factor, nor the hardware, but rather the care-factor that went in to developing the device. Prior to this device, using a computer was akin to travelling to a foreign country where the residents spoke a foreign language. Sure, you could get around but it was a slightly difficult experience. If you went to the trouble of learning the environment/language, you got more out of the experience. The iPad was more like travelling to a neighbouring country that speaks the same language. The learning curve is almost non-existent.

This salt-pan-like learning curve enables people to feel an immediate mastery of their environment. It is empowering, which in turn leads to favourable experiences. One of the aspects I admire about the iPad is the quality of the default applications on it. Too often in the computing industry, the term “quality” is approximated to “lack of defects”. Quality should extend to usability and fitness of purpose.

The derogatory term “gold-plating” is levelled at some developers. For those unfamiliar with the concept, it basically suggests that a developer spends too much time perfecting some piece of code. After all “The perfect is the enemy of the good”.  The longer your software takes to develop, the more funds it requires. Prior to the software generating income, this is a financial burden. Therefore, it is important to avoid “gold-plating” – especially for “version 1” programs, but avoiding gold-plating is not an excuse to turn in poor work.
Apple have shown that going to the extra effort to produce good quality software can be financially rewarding. If people like your product enough to pay for it, then making software that more people like has an obvious incentive. If you work in a large corporate environment, turning out systems for internal use, the benefit is not as immediately obvious. If you think about the cost to your business in terms of lost productivity and training programs, you can start to appreciate that easier user interfaces save money, even if they do not generate it.
Making better software is hard work. A lot of effort has been expended in terms of producing systems that lead to less defective software. Revision Control Systems / Unit testing frameworks / Continuous Build tools / Static Code Analysis tools and more all aim to reduce software bugs. Can you name one automated tool that provides any support for developing better User Interfaces? I suspect a lack of these tools is due to the required level of intelligence needed to produce meaningful analysis of a user interface. Writing software that analyses UI suggests that the software understands what the UI is. I am no expert in the field of artificial intelligence, but I would suggest we are not quite at that level yet!
Having decided that human intelligence is needed to design User Interfaces does not mean that automated tools cannot assist. The “usability” of clickable targets are affected by things such as their size and location. The usefulness of text is reduced by overall length (Oh the irony in this blog post!) Modal dialogues provide “speed-bumps” to the user’s “work-flow”. Such aspects are quantifiable. Maybe such tools that measure such things already exist, but they certainly do not attract the attention of the programming masses.

Apple is leading the way in terms of “user-focused” software and there is nothing wrong with having a market leader that is doing a “good job”. Here is hoping that others will help raise the overall standard further by continuing to compete with Apple’s products!

The wrong way to reach programmers

As I alluded to previously, if you are blogging to reach an audience that do not read blogs, then you’re doing it wrong I am sure there is a small percentage of programmers who want to be better at their profession but who do not know where to look, but these days this number must surely be approaching zero.  Those that will be inclined to search for good programming blogs have already done so.

Some programmers learn their craft in the approximate equivalent of a traditional trade-apprenticeship.  There is a risk though: the programmers may not be taking advice from the right channels.  In other words, the mentors in their programming journey are themselves, misled.  I do believe that as long as “students” still ask questions, they will continue to learn, despite the competence of their “mentors”. 

Despite this risk, verbal communication, feedback on progress and “learning by doing” appear to me to be the most powerful ways of learning technical skills.  At the other end of the effective learning scale, is “learning through cartoons”.  This approach may well work for young children, but I find the approach patronising!  I am wondering if there has been a sudden influx of cell-shading artists in the ranks of some of the bigger tech companies.  To be truthful, the cartoons are thinly veiled advertising for up-coming products or services, rather than an attempt at educating developers, but there is still an “undercurrent of teaching” and they are pitching to the technical end of the market. 

So far, I have only been exposed to two such cartoons.  I am fearful that they are the first of many…  The first was an introduction to the Google Chrome Web browser.  It was vaguely tolerable and not too condescending.

The second cartoon was from Microsoft.  Now I should point out that I am not a Microsoft basher.  No M$ abbreviations from me! :-) Despite a general interest in other technologies, it is programming on Microsoft Windows, that puts food on my table at the end of the day.   As a company, an IT leader and pretty much any other respect, Microsoft is not perfect, but nor is it clueless.  Which makes it harder for me to comprehend what were they thinking when they dreamed up “The Amazing Adventures of Kevlarr and the SDL.”   It really is head-shaking-ly terrible.

If you know of any other appallingly condescending cartoons for technical topics, please leave a comment.

The Trailing Edge

It does not sound as exciting as “the leading edge” does it?  I have been inspired for some time to build a PC.  I do not think it will give me an intimate understanding of how a computer works. I do not think that it will make me a better programmer.  I am not predicting a career change from software to hardware.  It just seemed like a fun undertaking.  Put that down to lots of formative years spent building Lego and a genuine interest in computing.

Whenever I have purchased a PC in the past, I have spent a fair amount of time researching and deciding what parts went into it.  I blame my programming career for making me want the best equipment that I could afford.  As a result, MTBNPC (Mean time between new PCs) tends to be fairly long. 

As technology changes quickly, this means my home computers tend to be as long in the tooth as a sabre-tooth tiger.  (And almost as current)  Because they started out close to the leading edge, they do tend to age fairly gracefully, but in the end they are old and far below the spec of anything you could get off the “bottom end” shelf by the time I replace it. 

My parents recently had a PC failure.  Their current machine has had a myriad of issues. (Probably around 3 and 4 – but as it rarely gets used for more than hour or two a day, that seems quite a lot!) As I live about an hour away, most of the times it fails, they simply take it to their local computer place to get it fixed.  From their dealings with the shop, it appears the shop staff are competent and parts are reasonably priced.  If you lived in the area that my parents do, I would have no drama in recommending them. (Apart from the fact I don’t know the shop’s name!) 

This time though, I have volunteered to fix it for them.  Given that they run Windows XP, and an old version of Office, they aren’t exactly in need of a high performance system.  As a result, the replacement parts I have chosen are at the “bargain basement” end of the spectrum.  Exact specifications and prices do not date well, so if you discover this blog in twelve months time know that the components I have chosen represent the cheapest, what I consider to be decent quality, parts my favourite shop currently sells.  A generic 500W power supply, 2GB RAM, 2.6GHz AMD Dual core processor and Gigabyte motherboard (with on-board graphics card) for under $260 AUD.  Those stats won’t make any PC-gamer excited, but unless you are running something as “hard-core” as games do you really need any more? 

I have never been much of a PC gamer.  I can seriously appreciate the talent and skill that goes into games programming, but my other hobbies and family life are such that the time I have left over for such pursuits is somewhat limited.  Given that a bit more RAM would probably see the PC comfortably run any developer environment I choose it has dawned on me that “the trailing edge” is really where I should be aiming my next home PC.