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 🙂