maps.google.com.au

Ahhh, my life is now complete… now I can search for coffee shops in Sussex St without leaving the office! That will make life soo much easier :)

Seriously though (as I remove my tongue from my cheek), I feel like we are getting to some kind of mapping nirvana, a synergy of place that didn’t previously exist. I wonder how long until Google release a print version to rival the UBD.

Then again, I wonder how long until the mobile version of Google Maps is fast and intuitive enough to be a better option that opening the UBD whilst you are actually sitting in your car…

Exhibit and WordPress 2.1

So, I’m a little slow in upgrading my WordPress build – primarily because I still use a great little plugin called Exhibit, which was created by Owen Winkler what seems like a thousand years ago. Now there may be many better options out there that I haven’t explored, but I like Exhibit because it’s a simple, no-nonsense image plugin. Also, heaps of my previous posts use it, so to maintain reverse compatibility I had a little hack today and have worked out how to get it and WordPress 2.1 enjoying each other’s company!! Yay :)

Since 1.5, getting it to work has been a big hassle, and consequently im still running 1.5.2… but not for long. Hopefully by next weekend I will have had enough spare time to back up the current data and migrate all the goodness over to the spiffy new build of WP. And a new theme may follow… i’ll keep you posted. Until then, revel in my web 1.5.2 ness.

EDIT : You can now download my hacked version of Exhibit for WordPress 2.1 : here – exhibit_for_wp2.1.rar. Happy posting.

A brave new world of OS

Well, this is an idea that has been kicking around for some time, but it was highlighted by a discussion I was having at work today. When will the OS as we know it die, and be replaced by the browser as the OS of choice? Consider all of the applications offered by Google, which are increasingly tackling tasks previously mastered only by the most expensive software known to man.

Certainly, things like OpenOffice offer free alternatives to the standard desktop application, but what i’m talking about is a more fundamental shift, away from the installed app, and toward a decentralised approach to computing.

Imagine the day when you purchase a Linux box that comes with the latest build of Firefox (or its ilk), and instead of all the apps, you just launch the browser, log into your favourite online app service, and away you go.

It’s not so crazy, when you think about it – at least for the average home user. What do we really use at home anyway? Email, photos, basic word docs, spreadsheets, and movie/game playback. Don’t know how it would work with big business, but by using tools like Confluence (which we use at Red Ant), and free web-based blog software like WordPress, the shift to the online documentation of process has begun in earnest.

So my question is, will there be a complete shift away from the standard desktop-based paradigm, and if so how long will it take for it to occur?

For all the Vim fans…

So you like coding in Ruby, but want to optimise your production speed? Rails and Vim. OJ, this one’s for you.

Try ruby (in your browser)

We are in the process of experimenting with Radiant CMS at work, and while looking at the sites that have been built with it, I stumbled across an excellent (and aparently well loved) Ruby site called Try Ruby (in your browser).

I’m sure im the last person in the world to have visited this site – but in case im not, go check it out. For beginner ROR’s like myself, it offers a really nice inline tutorial interface, and for advanced ROR’s… well im sure you know what you can do better than me!!

Ubicomp, new technologies, and the future

So, ive had a few minor revelations over the past few days – which i’d like to share and get feedback on. Here they are – in no particular order.

1. Small business and ubicomp

As I look out my window, I see a man steering a small boat underneath the Anzac bridge. He’s a coffee man. He travels around Sydney in his aussie-gondola, selling coffee to people on beaches too removed from the rest of the world to have kiosks, boardwalks or pools. It’s a great business. Question is, do you think he has a need for ubiquitous computing?

Well, what could he get out of having better access to the world, from within the comforts of his floating coffee shop? I can think of at least one thing : more customers. Imagine if people on their secluded beach could open up their phones, launch a little web app, placing an order. He’d be able to launch his side of the app, see the list of orders, and plan a route that would best maximise his dollar. He could use something like the Google Maps Java app for mobile phones in conjunction with his own custom orderring system and viola!

Or, if he does decide to go the ubicomp way… perhaps his implementation will be via an SMS service, and the cost of the coffee will be charged to the users mobile account. He’ll forgoe Google Maps Mobile, and instead use a tablet pc to map his route out. People will recieve his current location (based on a GPS signal) and know how long until he arrives at their beach.

Question is… would he really use any of this technology? Just because ubicomp is coming, doesn’t mean that every small business will be on the ever-connected band-wagon. And just because it has the name ubicomp, doesn’t meant that it’s a one size fits all scenario. In actual fact, it’s the complete opposite. And for small business, I can see the future being a fun messy place of technologies as they jump head long in the brave new world.

2. Personal computing and ubicomp

OJ has started an interesting discussion about the state of personal computing – with respect to the family pc. It is an interesting discussion, which goes on to suggest a non-MS default for all standard home pc’s – a great idea.

I love the notion that every new computer will get shipped with an open source operating system – capable of becoming a Windows, or OSX or Linux box – depending on the need of the individual. Hence the “personal” in personal computing. But what interests me even more, is what shape the personal computer will take in 10 years time…

Many people are moving to the now user-friendly install of Ubuntu, and we already know that MS aren’t about to rush out and make another version of Windows after Vista…so this number will just continue to rise. We have just seen in the last few days Adobe hand over much of its proprietry Flash virtual machine to the Mozilla foundation. Google seem to come out with yet another free application every second day, and are pushing the use of their personalised javascript widgets heavily. And many smaller devices – digital playback, network elements, etc – come with Linux as the default standard OS because of it’s light weight, and yet fully flexible, robust, secure and open sourced framework.

This constant push I think will make these curently “geeky” devices more and more common in the household – and perhaps spell the demise of the personal computer… or at least force the reshaping of it, to become something much more ad hoc, and “personalised”.

3. Market pressure

The road to these possible futures will forever be pushed and pulled by market pressure. You only have to look at the current mess surrounding the new LG LCD advertising which had to be pulled and reworded, because it promoted people skipping ads. Then there is the continued ICE TV debate in Australia between it and Channel 9.

In the same way that Sydney streets do not follow a discernable pattern, nor too will the future of interactive technologies. And maybe that’s a good thing – ever lived in a city with nothing but straight streets? It might be easy to get from A to B, but is it any fun?

Adobe donates Flash to Mozilla

Yup, a very clever move. The Flash player will no longer be a proprietry closed source plugin, shunned by the developers of the world. Hopefully the donation of the Flash player to Mozilla will herald a new age of interative development, and better and more standards compliant integration of Flash content with HTML, AJAX and the browser.

Read about it at these places:

  1. Adobe announcement
  2. Linux and open source blog
  3. Read Write Web
  4. Mozilla project home
  5. Implications – from Browser Den
  6. Linux Insider
  7. Desktop Linux

Gmail Mobile

Well, if this isn’t the coolest (im sure i’ve said that before!!) app to come out of google… Gmail on your mobile!


Image © Google.com

And I don’t just mean surfing the Gmail website on your mini mobile browser… I mean full blown Java app designed SPECIFICALLY for your thumb :) Seriously, it is fantastic, and will change the way you recieve email (at least it has changed me!!) and it looks super cool on my Nokia 6280, which is also a plus :D

If you want it, point your mobile to : http://gmail.com/app. You know you want to!

Animating Masked Dynamic Text

Last week I had the need to animate a mask over a dynamic text field. Having loaded the content successfully, and setting the dynamic text field to the value of the XML, I then initiated a mask transition that affected the display of the dynamic text. (Ive mocked up a set of simple examples to demonstrate).

A. Not working
[kml_flashembed movie="/blog/swf/notworking.swf" width="400" height="160" fversion="7" /]

Now, Ive used Flash for a very long time, and have never had this problem, so I was (and still am to be honest) baffled as to why, after the transition was complete, my dynamic text field lost its content, because it seemed like such a simple thing to do.

Let me point out a few things.

  1. The dynamic text field was inside a Movie Clip
  2. There was NO keyframes in the movie clip. IE, there was only one instance of it on the stage
  3. The font was embedded
  4. The mask was a keyframed shape animation and NOT set at runtime

I did some research to see if others had the problem, and found out that masking dynamic text has been a battle ground between designers and Adobe for many a year. I’m posting my solution to the problem here for you to use, or comment on, or improve. Is it a bug? Is it known behavior? Im not sure, but here’s how to reproduce both the problem, AND 2 solutions :

1. Reproduce the problem

After finding a solution, I set out to reproduce the problem in a simple movie… but initially I couldn’t. This made me question whether there was, in fact, a problem after all.

B. Working, but not solving the problem
[kml_flashembed movie="/blog/swf/working_nomc.swf" width="400" height="160" fversion="7" /]

Turns out, in the example above, the reason it works is because the mask was applied DIRECTLY to the dynamic text field – whereas in my project at work I had applied the mask to a Moive Clip that inside it had a dynamic text field. So, there’s a solution right there… however this DOES NOT answer the question, and is a very limiting solution -imagine you wanted to fade the dynamic text out or move it’s location… it would need to be INSIDE a Movie Clip.

2. Understand the problem

So, in step 1 I was able to narrow in on what the issue actually was – which turns out to be specific to masking a dynamic text field that is in a movie clip. The next thing I did was to try and find out why it was going wrong. To do this, I tried a few things :

  1. change the location of where I set the dynamic text
  2. change the way I mask the movie clip
  3. try remaking the text field
  4. try viewing in a browser as opposed to the IDE
  5. searching the web for answers

Of the above, the only thing that began to work was changing where I set the dynamic text. This sounds crazy, but it appeared that Flash was equating a keyframe in the mask animation to a new instance of the movie clip!! Which meant that each time there was a keyframe, I had to reset the dynamic text – because in this “new instance” no properties had been set. I know (at least I hope) this isn’t what’s actually happening, but anyway, it got me closer.

3. The solution

Where did that leave me? Well, initally, quite annoyed. Because my animation was quite involved, it would mean that i’d have to have actionscript on each keyframe setting the value of the dynamic text… which is a COMPLETE WASTE OF TIME and space.

So, trying one last thing, I decided that I would set the value of the text field in an onEnterFrame handler instead.

onEnterFrame = function(){
textMC._data = "Lorem Ipsum Dolor Sit Amet";
}

This I know is a messy solution, but it was the cleanest I could come up with, and more importantly… it works! See for yourself :

C. Working!!
[kml_flashembed movie="/blog/swf/working.swf" width="400" height="160" fversion="7" /]

4. Gotchas

Now this is wierd… if the onEnterFrame handler occurs OUTSIDE the scope of the mask and Movie Clip, when you delete it (the onEnterFrame that is), the dynamic text will disappear. The below example is the same as the working example, the only difference is that the onEnterFrame belongs to the _root timeline.

D. Not working again, because of scoping problem
[kml_flashembed movie="/blog/swf/notworking_scope.swf" width="400" height="160" fversion="7" /]

I told you it was wierd!!!

5. Links

If you have any suggested improvements id love to hear them. Below is a list of the FLAs used in this post ( Flash 8 ).

Interesting Threadless article on 37 Signals

My boss just pointed out an article over at 37 Signals about Threadless, my favourite Tshirt company. If the figures quoted in the article are correct, they are doing a fine business, and good luck to them. The reason people (like me) keep coming back is because it treats us the way we want to be treated.

The shirts are cool, the UI is spot on, and the community rocks.