Posted by & filed under perspective.

Life ™ has been busy since inception with the search for the Holy Grail. And over the millenia, The Holy Grail has taken on many different forms largely based on the “ruling” population of the time. Today, the search for the Holy Grail is more fervent than ever and more, it exists as a multi-dimensional “thing” (not unlike Thing 1 and Thing 2).

In technology, and more specifically, coding technology, the Holy Grail looks like a Silver Bullet. They’re actually the same thing, just prone to shape shifting. And the next best thing will be the answer to all your (current) problems. What you don’t hear about are the new problems this next best thing introduces thus initiating a next round of search for the next silver bullet. And so it goes on. From languages, to methodologies, to platforms, to frameworks, to products, to services, to concepts… and even, to people.

The health/fashion/insert-name industry are much the same. No surprises here with the next best thing promising to be the answer to all your health/fashion/insert-name problems. Even religion. The buzz words abound and we hop from program to trend to achieve the ultimate goal in the shortest possible time with the least amount of effort. Except that that is as far from the Holy Grail as Patagonia is from Jerusalem. Oh the irony.

If only the Holy Grail didn’t cleverly disguise itself as determination, passion and hard work we would more easily recognise it. Ah, if only the Silver Bullet came all neatly wrapped in shiny neon with colorful crinkle wrapper and in tablet form that you only had to take twice a day with meals. And if only the answer to all our problems were easily downloadable and came with a 30-day free trial. But it doesn’t. And whatever you’re being sold that does, is not it.

In tech, I’ve seen solutions soar on hardware-software combinations that defy marketing material. In sport, i’ve witnessed achievements that defy current trends. And in health, I’ve seen results that swim upstream the mainstream. I’ve also seen the opposite.

Kitted to the nines with all the latest garb, wizardry and ca$h, software systems have exploded with little more than a well-timed “boo”. Athletes train season after season with no progress. And people get unhealthier despite the many, many (many, many) diets. Ah… but this next one is guaranteed to work, right?

The (not-so) “secret” to all the success stories I’ve encountered in articles, experiences (first, second or third hand), stories told over the campfire, coffee chats, eavesdropping, documentaries- everywhere basically; is this:

work hard with passion. pay attention to detail. don’t give up (too soon). that is the holy grail. kinda like a Po-Reading-The-Dragon-Scroll-Moment. oh, and if you hit a tipping point you’ll probably make a living doing it too. score!

Posted by & filed under Business, Technology.

The technology behind iTrainedToday is a nice mix. In fact, the chosen technology has enabled it to finally come to life.

For a web application with persistence, you need basic moving parts: UI, backend persistence (ie. database), server-side middleware to translate the communication between the UI and the persistence. Straightforward for the most part except that things are really straightforward once you dive into the belly- except of course if you live in belly in which case everything’s straightforward but just takes time.

UI: html standards, css standards, javascript and all the various frameworks available and then there’s browser issues. iTrainedToday chose jQuery with jQueryUI as much as possible to lift all the UI interaction. Simile is the only other major JavaScript component but a crucial one. It’s what displays your recent data in one consolidated view.

Server: this is where things can get expensive. ASP.NET, Rails, Django, PHP and more all need to be hosted *somewhere*. And hosting costs money. In addition to the hosting costs there are bandwidth limitations/costs involved. A minefield (unless of course, you play in minefields all day long in which case it’s just a field). Hello, Google AppEngine. Love it or hate it; it’s still pretty sweet to get going with. And whenever someone says “it’s pretty sweet to get going with” they mean “it’s great for prototyping”. I don’t mean that. It’s serving athletes nicely (and simply) and ticking along… prime-time? I’ll let you know when it starts paying for itself in a big way.

Persistence: Google AppEngine handles that for me too. I don’t really need to grok the ins and outs of what that tech is in the tiniest detail. It’s interesting to know, but it’s more important for me to know that: a) it works and b) how to work with it. Storage techies get their hands dirty in the detail ‘cos well, that’s what they do. It’s not really what I do (most of the time).

And then beyond all the moving parts is the brain behind it. Can the brain handle mixing strongly typed dynamic scripting languages with the weakly typed variety and hurdle UI intricacies with usability issues while keeping an eye on security, optimizing the bottleneck (database calls) all the while focusing on the problem domain at hand? Mostly :)

Posted by & filed under Business, Technology.

What started out as a simple utility project soon turned into geek nectar. bodyFit for the BlackBerry is born to the world of software.

Now, body fat percentages and body mass indices along with waist-hip ratios and daily “am-i-getting-fat” questions in general tend to irritate me. Just get on with training hard and having fun doing what you do and the results will be there; don’t major in the minors. At least, that’s my attitude. That said, there still *is* space for trending/tracking your body shape and that’s where >_bodyFit comes in.

iTrainedToday has a vision to make tracking your training as simple and as unobtrusive as possible- sticking to the basics, without falling for the hype of fashionable health trends which really don’t last more than a 3-4 months. For example, back in the 70’s experts were advocating a balanced diet of carbs, protein and greens (70/20/10- or thereabouts) and guess what: it’s still the simplest, healthiest and least complicated way forward. But this is not a health blog…. :)

Body fat percentage equations is where this geek got curious and stayed motivated in producing >_bodyFit.

Besides the all-famous Jackson-Pollock equations, I soon discovered equations for the young, the old, the plump, the athletic, the sedentary and the normal (whatever that means). They all use different combinations of skinfold measurements, tape measurements, weight, height and age and are all varingly (in)accurate. The goal of >_bodyFit was to use as many of the equations as is possible and applicable based on the data input. Then, according to my reasoning, you have at least 3 different results which should correlate closely with one another in order to provide you with a more comfortable picture than just a single absolute number based on one formula that’s also being used on someone with a completely different profile to you.

And it’s not the actual number that matters so much as the trend in that same process, with the same tools using the same technique. By consistently recording your measurements using the same calipers, by the same person at the same time of day you get a more accurate reflection of progress. Weigh yourself in the morning after waking up and then just after lunch. Don’t be too shocked if you picked up a kilo or even 2. It doesn’t mean you need to go on a diet straightaway. Tomorrow morning, you’ll be right back down again. Point is, the body fluctuates- a lot. Again, don’t major on the minor changes- but keep your focus on the bigger picture *over time* in order to create an authentic strategy. >_bodyFit will help you do exactly that.

Posted by & filed under Business, Technology.

Today is a good day ™ iTrainedToday has been released for early adoption and community testing/feedback. Built on Google’s app-engine, iTrainedToday is a free service for athletes wanting a simple yet informative site to record their training data. It uses Simile for displaying your training data in a easy-to-peruse fashion which, hopefully, encourages you to keep training when you start seeing massive blanks in your efforts :)

iTrainedToday is useful for part-time athletes, experienced athletes who just need to keep the recording habit up, weekend gym warriors and even the more dedicated fitness enthusiast. This is alpha, but your data will be preserved as we move the application into newer versions so feel free to start using and giving feedback.

Posted by & filed under perspective.

If you find yourself wondering how to use your old component packs (and hence simulators) from the first Eclipse plugin (v1.0), there’s a great discussion on the support forums tackling exactly that.
Creating an .ee file and adding the JRE to the workspace worked like a charm for me. I’m using the upated plugin v1.1.2 on Eclipse 3.5 and all this has been an incremental update from 1.0 (beta).

Posted by & filed under Business, Technology.

There is the popular coding challenge whereby the developer/hacker/gunslinger/coder has to create a piece of usable software in less than N hours (usually 24). You may have heard about it, read about it or actually even done it. There’s usually pizza, coke, coffee, energy drink and loud music involved and also cleverly disguised as an all-night party for binary miners. Nonetheless, if hosted to your linking, the challenge is a great way to flex some brain and skill. And it’s exactly how >_catchit was born.

The mission: create a usable, as shelf-ready-as-possible BlackBerry application within one working day: typically 6-8 hours of productive coding. The only absolute minimum requirements are: source control and an automated build process. Mission accomplished.

Remember when cellphones first came out and they suffered multiple personality order? Couldn’t decide if it was a mobile phone for communicating, an anti-mugging personal protection unit or a military grade close-quarter offensive device (I’m referring of course to it’s 2 foot aerial and 4kg of rugged manufacture). Yes, they’ve come a long way since then. But the thing I most remember about the early days of mobile phones was how they nurtured and flourished your rudeness.

You’d be talking live, face-to-face, in person when all of a sudden a phone would ring. No matter how deep the conversation or how mid-sentence you were, that was it. Conversation abandoned. Code Red! Pick up the phone! Yes, we’ve come a long way too since then (well, some of us at least). So >_catchit has been designed to help you catch those badly-timed calls when you don’t have to leave your caller hanging and you also don’t want to interrupt the “now”.

When activated, if you choose to ignore an incoming call, a screen will present you with an option to send a pre-populated text back to the caller immediately. You can alter the standard text if you like, or just send as is. Neat. In automagic mode, it’s even less obtrusive. Your caller automatically gets a text. Deactivate it, and there’s no more >_catchit. It also works with missed calls, if you want it to.

And that’s >_catchit complete. One full working day, one working product including user documentation (this post). And yes, you can safely download it from here by pointing your BlackBerry at this link.

Posted by & filed under perspective, Technology.

I’ve heard the stories, read the reports, discussed and debated, disagreed and agreed, worked together and against each other; i think there may even have been blood spilled at one stage? I vaguely remember something about a keyboard and a dwarf… Indeed, if there ever was a word in the software industry which could raise the room temperature, it’s the little word “agile”.

HINT: If you ever find yourself listening to a techie and he/she/it is boring you with details from another universe and you don’t have a clue as to what they’re talking about (or what language they’re using even if it does sound remarkably close to your mother tongue), just randomly blurt “Agile!”- then stand back or run.

One of the concepts in agile is iterative development because iterative processes help achieve a goal efficiently by giving you the flexibility to change your trajectory as the goal itself moves. If you’re aiming at a goal that never moves, then this story is not for you. Also, check your goal for a pulse- it might be dead. Hence, it makes ironic sense to adopt agile in the same manner: iteratively. That is assuming you want to adopt it at all because if you don’t then there’s no point in proceeding any further. There are none so deaf and blind is how i remember the expression…

And the processes, practices and insights that agile opens us up to- testing, refactoring, pairing, reviews, continuous integration, dry, yagni and company- are also metaphors for adopting the very process itself. And even deeper, the metaphor for every software project should also be embraced for setting up your own company’s adoption of agile. Can you feel the power of recursion starting to make your head throb?

So think of adopting agile as a software project on its own and take it from there. Create stories like “get Paul* to integrate more than once a day consistently”. Get team players to estimate on the story. The team players in this case are those who actually want to get agile ticking along (volunteers). So it’ll probably take 2 weeks before Paul gets it right. Maybe if Igor* took the story he could “convince” Paul inside a week? Create your storyboard, organise the flow, derive a project plan, split it up into more iterations (if need be)- the usual. Then “code”.

Having trouble with Paul? Pair-up with someone. Tag-team it. Refactor. Check in your working “code” regularly. Review what’s been done. Write new stories. WARNING: You might actually start having fun. Role-playing is an essential survival trait of almost every developer. It’s addictive and to pretend that you’re actually the software is going to be a little mental for some, a little esoteric for others but hysterical for a geek. Oh, and don’t be surprised if your developers start to get a little carried away and come dressed as hexadecimal numbers to work. Just keep a straight face and say “Ah. Good morning, 1.6A09E667”.

On the serious flipside, when you start to setup a project plan for adopting agile in this manner you also get to eat your own 0xbaadf00d; practise agile more; refine valuable skills; learn lessons; incorporate it into team culture; get an empirical idea of how close you are to hitting the mark and have a working team at all times (this is most serious). All the feel good fluffy things you want to hear.

And on the negative, less fluffy, pessimistic , dark and evil side of things, when you start to overrun your estimates badly on a lot of stories, you also start to get some really good feedback on when to can the adoption and/or start again or try a new tact. Ok- that’s actually good news too. But how much you try will depend on the strength of the character flaws in your project leader.

And before you know it, you’ll be miles away from being the perfect agile team. Indeed, just like software, there’s always one more feature you can add or take away. There’s always that one routine that can be a little better. And over time, you need to make changes that help you stay relevant and marketable and profitable. It’ll always be perfectly imperfect. And so you keep coding, creating and evolving something even more beautiful (and useful) than you ever imagined in your wildest electric dreams.

Posted by & filed under perspective.

It all started with the revelation that (under South African law) piracy is not a crime. That tied in oh so nicely with the declaration by the US government regarding the estimated cost of piracy. All within the same week. So what’s the real story?

How are we who copy songs from our friends (who may or may not have bought those songs in the first place) labelled criminals by the hyped-up media and propaganda campaigns while the multi-billion dollar industries who pillage and profiteer in the name of capitalism can be labelled victims of the same “crime”?

What does irk me is the untruthfulness of these campaigns. If the law did in fact make piracy (for personal use) a criminal offence then the campaigns would be legit and all would be well. But to lump it all together with the hardcore mass-scale pirates, blur it and then through propaganda make it seem like a legal precendent…

It’s no small wonder why we (and yes, we, not just me) are growing increasingly distrustful of large formal organisations and governments- they (ab)use their power to deceive the people who put their trust in them. Power corrupts…

Posted by & filed under perspective.

I did not see one this coming. Under South African law, piracy is not a crime. Contrary to all those ads on the DVDs and the big screens sponsored by the DTI and all the talk and all the hyped media…

I’m no lawyer and like most people rely on the messages that are published by authorities to understand what we can and can not do. So my boundaries are then subsequently defined for me when I choose to assimilate those messages into my day to day life. It seems that one of the big lies has been: piracy is a crime. Ok, maybe not a blatant lie. But they certainly did their best to link the criminal element in. You wouldn’t steal a handbag….?

But all is not what it seems.

It does appear to me as if the spin doctors were doing their best on this one to, well, make or save a buck. And if there’s one thing I learned a long time ago, if you don’t understand who/what/why of any situation… follow the money.

* not a crime for personal use only. not referring to them that import thousands of pirated copies and then bootleg them on the street corner. that IS a crime.