Sunday, November 21, 2004

Boost 1.32 out

For you C++ heads out there, the Boost team has just released a new vesion of their amazing collection of libraries. If you code in C++ these libraries should be part of your development environment, it's as simple as that.

It's been almost 10 months since the last release and the Boost gang have used that time to create a whole slew of new libraries (Serialization, Assignment, Program Options, Multi-index Container, String Algorithm - just to name a few) and they've significantly updated many of the existing libraries (Graph, Python, MPL, Signals). Not to mention a huge number of defect fixes and documentation improvements.

'Nuff said, update your revision tool to include the new version of Boost! :)

As a long-time lurker to the boost mailing list, I'm well aware of the effort that is put into these libraries - and the uncompromising quality applied in the review process is phenomenal. HUGE thanks to the Boost guys from a very grateful C++ developer!

If you're a C++ developer who doesn't use, or see the need for, Boost libraries, please get in contact with me. I'll do my best to change your mind.

Thursday, November 18, 2004

World Wind - Endless Possibilities!

I assume that, by now, everyone has at least heard of NASA's World Wind application.

For those that haven't yet come across this fantastic piece of open source software, it's basically an interactive 3D view of Earth that you can spin around, and zoom in and out of. The wicked-cool thing is that as you zoom, it downloads satellite data to augment the 3D Earth.

[Oh yeah, this baby requires a fat internet connection - the fatter the better! My 512K ADSL connection struggles...thankfully they have caches of data that you can download to reduce the data you have to pull in from the 'net.]

You can also choose to download weather and historical - even animated! - data and overlay that too. Location names that increase in detail as you zoom in, are also present.

As I said, wicked-cool.

But what I find most intriguing is the possibilities that this software presents. One obvious area I'd love to see explored is extending this program for educational use. After using it for an hour or so I absorbed much more about U.S. geography than I had in years. "Oh, there's the Statue of Liberty! That's where Alcatraz is! Check it out! The Hollywood sign!". Kids would be totally blown away. And, with some guidance, they could really learn what's typically considered a 'boring' subject - geography.

Maybe we could add a 'narrating tour guide'. It would list things like:
  • Visit the sites of the seven wonders of the world
  • Learn where all the important political (or museum, or trade centres or...) strutures are located
  • Drop by the top ten tourist locations in Europe

You could press a button and zoom! Off you go, learning while watching the Earth spin in front of you while the tour guide informs you what you're looking at.

Less ambitiously, a list of significant landmarks could be created and some easy way to search and jump to them provided. Neat.

[Incidently check out the hotspot finder that has screen grabs of locations found in World Wind.]

And what about adding some form of charting overlay functionality? Wouldn't it be cool to see a bar graph extending out of the Earth for major locations - and the length of that bar represented population. Or number of homeless per thousand. Or average wage. Life expectancy. Perhaps pie graphs could hover over each state in a country breaking down how that state voted in an election. Imagine being able to somehow hook World Wind to Excel so you could modify those graphs dynamically!

Maybe instead of graphs you could colour the towns/states/countries. So a red country could represent high unemployment and green low. What a great way to visualise geographic data!

What about reducing the World Wind app into a component that could easily be plugged into, and controlled from, other applications? Imagine your favourite instant messenger embedding such a component to show you where the person(s) you're communicating with are located. And of course, your friend's local time and weather could also be displayed so you know if you've woken them up in the middle of a stormy night.

How about performing a trace route and plotting the lines as your packet travels from location to location?

Imagine a souped-up telephone directory - you perform a search for someone and bam, the embedded World Wind rotates and zooms in to show their house. (Actually that's kinda spooky)

What about integrating it with airplane flights? You could type in a flight number and see the start and end locations. If you added some way to represent time then you could even see where the flight is expected to be at any specifed time during it's flight (and hey! You could even 'look' underneath the airplane's location to see what's below.).

Take it one step further - why not plan holidays with World Wind aided software? All of your flights could be chosen with it (imagine the lines drawing over the Earth as you 'simulate' your flights from country to country) and you could use the software to look around your destinations, picking the interesting places to walk to from the detailed satellite images.

And if you could hook google into the system then wouldn't it be useful to search for stuff in a location-aware manner? "Where are the restaurants around this place?" Thirty four dots appear over the satellite images. Click on a dot and you're taken to the restaurant website.

[I wonder if google have thought about this already and that's the reason for their recent acquisition of Keyhole (a commercial competitor to World Wind)?]

I can't stop thinking of ideas.

GPS offers more possibilities. What about integrating it with a taxi service so they can track their vehicles? Many taxis have GPS transponders on the car - if they were to constantly trasmit the GPS information from the taxis to a base station then each taxi could be plotted in World Wind! And each taxi could have an embedded World Wind in the car so that when a new fare arrives on their list they can see where they wish to be picked up from!

Given that many newer cameras are coming out with the ability to embed photos with positional data (from an inbuilt GPS transceiver), what if you could upload your embedded photos to a huge online database? Then connect World Wind to the database. You could then view all the photos that were taken around any area that you zoom in on!

We could replay significant moments in history. All we'd have to do is provide a way to navigate through time, add some historical data and voila! Man, it'd be amazing to progress through our known history - watching as Christ was born, the Romans building their empire, World Wars... All of that would need to be computer generated, of course (I'm not aware of any satellite's flying over Christ's head!), augmenting the satellite data. Could we make both geography and history fun?!

Of course ultimately our ideas would grow to loftier aspirations. Celestia and Stellarium are two programs that are similar in nature to World Wind - they allow you to zoom in and move around a virtual landscape. Only in these programs that landscape is the entire universe, not just Earth. You can fly around the universe watching the planets in motion, and (natural) satellites in orbit. Stars, planets, satellites and whole galaxies are accurately modelled. These programs don't have the same level of detail (no satellite data!) that World Wind has though so what would be waaay cool is if we could mix the two types of programs. Use Celestia/Stellarium to fly through the universe then, when the Earth is zoomed upon, switch to World Wind technology.

Is there any underwater data/images? Could we add that to World Wind?

Anyway, the more I think about it the more applications I can envisage. And given that I'm a software developer and all the code is just there then it's pretty exciting.

What do you think? Do you have a whacky idea related to World Wind?

Now if you'll excuse me I've got to try and turn my mind off and get some sleep...


Saturday, November 13, 2004

End of Holidays

Well, here I am nearly at the end of a two week break from work. My girlfriend Melissa and I spent a fantastically relaxing holiday on Hamilton Island just off the coast of sunny Queensland. Oh yeah, uber nice. :) The weather was perfect (high 20s, low 30s every day) and everywhere you looked appeared to be straight off a tropical postcard photo. Damn I hate the post-holiday blues. ;)

I can highly recommend going there - here's some highlights for anyone else who is thinking of going:

  • We took a day trip on the Banjo Patterson (a sixty foot yacht) to Whitehaven and Corkie's - a terrific experience. Whitehaven beach is breathtaking - make sure you get there (though I'd suggest avoiding the Fantasea catamaran, it's just too mass-market for me).
  • The buggy's are terrific to drive around. :)
  • Go with the Safari Tours boys to Coral Cove - a magnificent, tiny, quiet beach. The hosts are great fun!
  • Spend time around the pool sipping cocktails - and make sure you order one from the in-pool bar. :) Our favourite was "Mud Baby". Mmmm. :) Remember to bring some good books to read.
  • Take out a catamaran for an hour or two. But remember to apply sunscreen!
  • I ran out of time but in hindsight I would have loved to have gone scuba diving with the H20 team. They can give scuba training if need be or alternative just go snorkelling on the reef. Only heard good reports about the reef trips from people I spoke to.
  • Enjoy eating out - Romano's was a highlight (the Gnocchi Gorgonzola was fantastic) as was the Rib Eye Fillet at Spinnakers. The Outrigger is lovely too, especially for quieter more intimate dining.
  • For a cheap eat grab a hot dog for lunch from the Bougainvillea bar (near the pool in front of the Reef View hotel).
  • Wake up early (4:30!) one morning and watch the sunrise from the "sunset" lookout. You'll have to walk though as you aren't allowed to drive the buggy at that time. Be amazed at the wildlife that you'll see (kangaroos, peacocks, cockatoos etc).
  • Go to the same place at sunset - remember to buy a cocktail. :)
  • Be wary of the Irukandji jellyfish that start populating the Whitsundays from mid-November!
  • Check out the Wire Flyer for some flying fox/hanggliding action.
  • Take advantage of the photographers that roam around. The deal is that they take a handful of photos of you (and partner, family, whatever) and put them up on a big board in the photo shop. The next day you can see the photos and just buy the one(s) you want.

It's a great place with a very relaxing vibe...I wouldn't hesitate going back! :)

When I get my photos developed (yep, I'm an old school 35mm photographer - only because I can't afford the $2K for the digital SLR that I want!) I'll scan them in and post them.

Now I've got to come to terms with going back to work... :( What's a partial template specialization again?? ;)

Thursday, November 11, 2004

Firefox 1.0 has been released!

If you're still using Internet Explorer (ick!), do yourself a favour and download and install a copy of Firefox. (Or better yet, use one of the mirrors)

Firefox is so warm and fuzzy it'll make your days oh-so-much better. :)

It's finally reached version 1.0 after a two year development period and is now ready to take on the world (well, IE). Good luck Firefox!

Big thanks and respect to Ben Goodger and the team.