New version of 88 Miles goes live!

For the past couple of months, I’ve been slaving away prepping the next version of 88 Miles, my simple time tracking application and now, I can happily announce it is alive! There are heaps of new features, and bug fixes, including a migration to Rails 2, a migration to a new server as well some dabbling in the wonderful world of Rails plugins. Some of the features are below:

Saasu.com integration

Many people have been asking for invoicing from 88 Miles, but since it is really outside of where I’d like to see 88 Miles go (The strap line is Simple time tracking for a reason) so Saasu | The web finance engine to the rescue! I wrote the the Rails plugin that talks to Saasu.com, and I’ll be releasing it shortly after making a few cleanups (There are some parts of the API I’m not using in 88 Miles that are still a little rough around the edges). The plugin will allow users to sync companies and contacts as will as create invoices straight from their timesheets. I’m pretty excited by this feature.

OpenID support

88 Miles is now OpenID aware, so you can use your third-party OpenID to login to 88 Miles. Just between you and me, OAuth will be coming soon (as soon as the rails plugin and ruby library settle).

New REST endpoints

There has been quite a bit of work on the REST API — it should now be much more consistent (i.e the data that the server sends and the data that the server expects is the same). I’ve also removed the /api in the endpoint URL, as it was becoming a nightmare to maintain.

New Server

Finally, the biggest change is our new server! We have moved over to a Joyent accelerator, which are specifically tuned to the Ruby on Rails platform. This means everything will be quicker. The old Media Temple server, whilst great didn’t really allow for much customisation, and with the Christmas special of two years for the price of one, it was kind of hard to pass up.

It’s been a fun ride - this project is always a great learning experience for me - and it helps that there are others out there that like it. Go and try it out if you haven’t before (or even if you have) :)

Browser version switching - quick fix?

I have just finished reading the two A List Apart articles (by Aaron Gustafsen and Eric Meyer) on the concept of using browser meta tags to specifically target browsers. Go and read the articles to get the full story, but the basic premise it to devise a meta tag that stipulates which browser version the site is targeted at, eg:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

It’s an interesting concept to say the least, and I’m quite torn - the standards-nazi in me wants to yell from the roof tops how stupid an idea it is. The time-poor developer in me is jumping for joy, because I could target a specific set of browsers and KNOW that is would forever more work in said browsers.

The biggest problem I see is that browser vendors will need to ship multiple layout engines with each release - the number of which grows at a rate of n. So after a couple of releases, imagine how big the binary installs (and source code) would be? Just as an example, Firefox 2.0.x is currently up to point release 12 - that is 12 difference rendering engines since mid-last year.

Couldn’t the browser developers use a decision tree approach to minimise the codebase? No, not really, as this would potentially add bugs into previous versions - that is programming 101. This would break the previous renderer, defeating the purpose of this idea.

I really see this as THE show stopper. Why are the browser makers going to add to their work load? They are stuggling to build to the standards specification as it is. Programming is hard, this just makes it harder.

Having said that, if the browser makes can work a way around this issue, it does fix the problem, which is one that I’ve been piping up about for ages (I thought I’d written a blog post about it, but apparently not). When IE 7 came out, the goal posts moved - sure IE 6 was broken, but at least we had had 5 years of understanding HOW it was broken. Now all of a sudden, this new browser comes out and things change (exactly the issue causing this kafuffle). Firefox releases a new browser every couple of months - sure they are point releases, but there are still rendering bug fixes in there - so the goal posts are just moving they are being flung at a rate of knots.

I’m not saying that the browser developers should go dormant as Microsoft did, but maybe, just maybe being able to lock down a target to work against would make our lives a little more pleasant? I know the open source world has issues with the concept of “stable” code, but this effectively gives us web developers a “stable” baseline to work with - yes there will be bugs, but at least, if we work around the bugs, the hacks won’t break in future versions.

To those that argue this would encourage lazy programmers, maybe, but there are still a lot of people out there that are using tables and spacer gifs to mark up their websites - there will always be slackers, but there will also be those who strive for more. Why should those that are pushing the envelope be punished by a browser upgrade?

Will there still be a problem after February 12?

According to this article, a forced IE 7.0 rollout will occurring about three weeks. So the only people using IE 6.0 will be places that forcibly deny the update (it’s opt-out, not opt-in as it was before). One could argue that such a mechanism, as meta tag switch would have meant that the long suffering IT staff charged with blocking Windows update would have been able to strike that task off their list, as IE 7.0 would drop back to IE 6.0 mode for these users. Therefore, the question should be would this technique ALLEVIATE the problem?

Things the need to happen to make it work:

  1. We need to still be able to use standard mode. If we don’t specify a meta tag, it should default to the latest and greatest rendering engine
  2. The browser vendors need to work out a good way of serving up multiple version of their engines that don’t conflict with each other - maybe some sort of download on demand thing?
  3. If a browser finds a site targeted at a newer version it doesn’t know about, it should try to render it anyway - it is up to the web developers to make sure it degrades nicely (they have to at the moment).
  4. The browser vendors still need to care about standards - they still have to play nice, because this fix doesn’t improved CROSS-BROWSER compatibility.

As long as we, as web developers and they, as browser developers still strive for the holy grail, and they can work out how to have multiple rendering engines coincide with out out having to maintain a separate 500Gb harddrive just to contain them, it might not be as bad an idea as everyone initially thinks it is…

AWIA Event: Ideas4

For those of you who don’t remember, AWIA (and back in the day: Port80) has been running a series of talks, deemed “the Ideas series”, and I’m proud to announce the next one in the franchise: Ideas4!

We are lucky enough to have Lisa Herrod, a User Experience expert (and all-round nice gal) flying over from Sydney and local girl, Rachel Cook talking on startups. We might even have a special international guest, if everything falls into place ;)

Ideas 1,2 and 3 were awesome, and I’m expecting nothing less from Ideas 4, so make sure you mark 30 January 2008 in your diary. Tickets are $25 for AWIA members and $35 for non-members.

Head over to http://www.webindustry.asn.au/ideas4 for the rest of the details and to get your tickets.

Hurry though, they’ll sell out. They always do…

Freelancer Friday - 2008 Edition

I can’t believe we are almost 0.083333% of the way through the year. By now everyone should be back at work - those of us at the Silicon Beach House are. Well as a result, Freelancer Fridays are back! Keeping with the “Last friday of the month” timeline, the next Freelancer Friday is on 25 January at the Silicon Beach House - Level 2, 90 King St, Perth WA. Turn up anytime between 9am and 5pm.

If you are interested in turning up (as always) add your name to the Work@Jelly wiki.

Today, I was discussing with one of the housemates, Angela about the problems in finding other freelancers when you need to do something outside of your skill set. We discussed what I called Company-as-a-Service and came to the conclusion that Freelancer co-ops were definitely plausible. Well, to facilitate some better communication between us freelancers, I’ve created a Google Group: http://groups.google.com/group/australian-freelancers. If your are a freelancer, please sign up, that way we can all support each other, and find experts when we need them!

Enterprise Rails

Anyone in the Rails community would have read Zed Shaw’s rant about Rails. For those of you who don’t know Zed, he wrote Mongrel, which is the default web server library used in Rails. It has blown up and been discussed on just about every list, including Rails Oceania. I’m not going to discuss what he said, or his tone, as it has been done to death, and he seems like the type of guy that you need to know to understand where he is coming from.

What did hit home from me was what he said out enterprise Rails. To frame this correctly, have a listen to the first half of this podcast from RailsConf.

As a rubyist, I could never understand why projects like JRuby or IronRuby existed. Why would you want to run another language in a different virtual machine? After reading and listening to Zed, the answer is obvious - integration for enterprise. If you look at existing enterprise systems they will run on technologies such as Java and ASP.NET and with good reason: Support. You can go to certified training courses and become a certified engineer, which makes hiring for these large corporates easy. There is also a a large number of consultants that have based their business models on these technologies. These guys know things like Tomcat and IIS - they don’t know (or care) about Mongrel or Lighttpd or even Apache.

Web 2.0 is not going to be around forever - regardless of whether you think the web-o-sphere is in a bubble at the moment, it will cycle at some point, and there is going to be a hell of a lot Rails developers out of jobs. Software-as-a-Service will alleviate some of this, but there is one BIG area that has been ignored - and that is corporate and government applications. The beauty of targeting this audience is that it is big and constant - their will always be big business that need IT systems. There is a number of reasons why this segment has been ignored by Rails coders that Zed rattles off - issues with connecting to legacy databases, lack of LDAP/central login system access - but these are technical issues, which are easy for programmers to fix.

I think the bigger issue is the complexity culture of enterprise systems - DRY isn’t something is in their vocabularies, so we don’t like to talk to them, because it makes our lives harder, and they don’t want to talk to us, because they don’t think the systems we build will do what they are asking. Having said that, I’ve seen enough hacked up Access databases in government and the education system to realise that this is complexity, for complexity’s sake.

Things like JRuby and IronRuby are going to make the the integration side of things easier - now we need to start getting back in to the corporate space.

SaaS is basically the same thing as ASP - ASP is what it was called during the last dot-com boom.

« Previous Entries