Sunday, March 05, 2006

Virtual Earth Streetlevel


I'm a big fan of Google Earth and, to a lesser extent, Google Maps. I regularly use the services to give me directions and learn about foreign places.


Microsoft's Virtual Earth (now Windows Live Local) has always been an also-ran in my books though in typical MS fashion they've perservered and worked hard to make it a very competitive product. I've no doubt that it will continue to get better.


So I wasn't totally surprised to see Chandu Thota, a key developer in the Virtual Earth team, announce a new technology preview this morning. The team have extended the regular Virtual Earth interface to deliver street level images. It was only a matter of time I suppose, but this technology is very exciting and Microsoft should be pretty happy with themselves - there's gotta be an awful lot of data they're managing there! While the interface is still a little kludgey (and IMO would fit much better in a client-side Google Earth style application) it has the potential to be elegant enough to be useful.


I have been saying for a long time now that GIS-enabled software will spurn a bunch of new software applications and I believe more good stuff is yet to come. :)


Anyways, go check it out:



Windows Live Local Virtual Earth Technology Preview



Scoble also blogged about it (and there's a video on Channel 9).

[Update: The excellent Google Earth Blog made the point that you can achieve a similar effect in Google Earth.]


Thursday, March 02, 2006

ABC RSS Feeds

I used to subscribe to the Age's RSS feeds to get my dose of Aussie news. I generally like the Age, their reporting is usually even handed and reasonably fair. But I agree with Will that the ABC feeds are much better.

For a start they've got summaries. With the Age feeds you only get headlines - and they're typically quite vague. The ABC gives headlines and a short one-line summary of what the article is about. It's not full text (which would be ideal!) but it's pretty good. And the quality of the ABC articles, while a bit drier than the Age, is also high.

So bye-bye Age, hello ABC. :)

Wednesday, February 15, 2006

The brrreeeport report

Helpin' out Scoble where I can...this is the brrreeeport!

Sunday, February 12, 2006

Kate Gregory gives a "migrating C++ apps to .NET" presentation

Kate Gregory, a terrific C++ presenter, has posted some slides and code from a C++/CLI presentation she recently gave on migrating C++ applications to the .NET framework.

Friday, December 16, 2005

Matts Mind

I promised a link to a more personal blog of mine that I'm writing in while I'm OS. Naturally I forgot. So here it is:

Matts Mind

I'm posting much more to that blog for the forseeable future but if I want to write any software-related posts it'll be done here.

Google Music Search...and maybe an iTunes killer?

Google just announced the addition of a music search feature. Now you can search for your favourite artist's name and get some enhanced information, not just web site links.

There are also some pretty significant rumours that Google are going to release some sort of iTunes Store competitor. Dave's regularly on the mark and he's far from the only one spouting that kind of story (just do a Google search!)

I'm all for competition in this space! I love my iPod but the online music options are underwhelming.

Thursday, December 15, 2005

C++/CLI now an International Standard!

Sooo, now there's officially a new language on the block! C /CLI was just approved as an international standard.

I like C /CLI but don't see it being used a great deal. Simply because it's more (!) complex than C (seeing as it's essentially a superset). However, for those times where you really need to interface transparently to a C or C++ library and/or performance is a significant issue then it'll find a home.

The Microsoft team did a great job fleshing out this spec - there's a lot of complexity in integrating the .NET aspects yet it feels quite natural to C++ developers.

Thank goodness we've seen the last of Managed C++. ;)

Wednesday, November 16, 2005

Google Earth placemark test

While I'm overseas I want to use Google Earth to display locations that I visit so that my family and friends can join me on my journey. :)

As a test, here's the apartment I'll be staying at. If you've got Google Earth installed you should just be able to click on the link and press OK.

Monday, November 14, 2005

Google Analytics

Google has complemented their AdWords business by offering Google Analytics for free. Analytics is some pretty sophisticated tracking software that shows you a great deal about who is visiting your website. What keywords they've searched with to get there, what browser they're using, what resolution their display runs at, where (geographically) they're from, how effective AdWords is - a veritable treasure of information.

This service is free (as long as you have five million hits or less per day - or are an active AdWords customer) and easy to use. I've incorporated it into Sublime Software to see what it's like. I'll keep ya'll posted. :)

ArsTechnica has a good overview of the service.

Friday, November 11, 2005

Shopping for webcams

Quick story about good customer service from a couple of computer hardware suppliers.

I wanted to order three webcams so I can communicate with my family and Melissa while I'm overseas. I didn't have a clue which models were good or bad so I jumped into Google and tried to find reviews. Surprisingly (well, to me) it was really hard to find a site that did good webcam reviews - I found that the best resource was doing a search for "webcams" in Amazon and taking a look at the customer reviews. A terrific use of what Scoble likes to term “slave generated content”. ;)

Anyway, once I'd isolated the models that were generally well-liked (and fitted my price and feature requirements) I used the trusty Static Ice search engine to find the best local prices.

If you're an Aussie looking for PC hardware Static Ice is a great resource. Just type in product keywords and SI will return you the list of online vendors that advertise that product - sorted in (lowest first) price order. [1] [2]

Static Ice listed Centre.net.au as having the best price for the webcam I'd settled on. So I placed an order with them. Unfortunately, shortly after, I received an email stating that they were unable to source stock for my item until late November and to confirm if that was OK. It wasn't (remember I'm leaving on the 23rd!) so I called them up and asked if I had any other options. The girl I spoke to on the phone was fantastically helpful. She looked up other products that were similarly specced, priced and in stock and was patient and cheerful with me. It was a shame that, in the end, they didn't have anything that I wanted and I asked if it was possible for me to cancel the order. "Of course, no problems at all sir."

This is service that I want. I'll come back to Centre.net.au. And I recommend others try it out.

Back to Static Ice looking for vendor #2. Infinity Computer Group. Their website advertised the product I was after but this time I rang to check that they had it in stock and could ship it within the next week. Unfortunately the service here wasn't great. After repeatedly being put on hold I was informed that the store that I'd rang (Brunswick) didn't have any in stock. I could try calling one of their other stores if I wished. Oh, and by the way, the store price is different (quite significantly!) to the website price. No thanks. Any vendor that has a web presence needs to have a centralized system and have the same price at their store and website.

Can't recommend Infinity.

As it turns out, third time lucky. City Software advertised my product on their (pick of the bunch) website at a reasonable price. I called them to check availability and expected shipping times and I spoke to a very helpful person who listened attentively and told me what I needed to hear ("yes we have that in stock, yes it'll be on your doorstep in time"). He was professional and friendly and, after a brief chat, offerred to waive the shipping fee!

Excellent, highly recommended. Assuming I get my webcams next week of course! :)


[1] Remember that you can narrow the Static Ice results to products by vendors only from your state by using the "state" syntax, much like Google's "site:" feature. For example, I searched for "logitech quickcam stx state:vic".

[2] If you're a Firefox user you need to set up a smart keyword search for Static Ice. I tweaked the default location to "http://www.staticice.com.au/cgi-bin/search.cgi?q=%s state:vic" so that my searches are always Victoria only. Now I just type "si webcams" into my location bar in Firefox, press enter and voila! I get a price-sorted list of webcams available online around Victoria.

Monday, October 31, 2005

Holiday - and enjoy the cup!

And now I'm off! Heading down to Apollo Bay for a much-deserved week away with Melissa. I'll probably be incommunicado until Sunday. It'll be the longest I've unplugged for in aaaages. I won't know what to do with myself! ;)

And I'm scared to think how many blog postings I'll have waiting for me when I jump online again.

Have fun at - or watching - the Melbourne Cup folks!

VS2005 issues

In my last post I mentioned that VS2005 was tighter than its predecessor. I thought it'd be useful to show where we had some problems (we're still working through them so this isn't an exhaustive list) and some of our solutions.

The changes are all covered in detail in the MSDN document "Breaking Changes in the Visual C++ 2005 Compiler" but I'll try and give some real examples that we faced.

Pointer-to-members now require qualified name and &

The compiler is much stricter about the types of function pointers. The error C3867 is generated with the following code:

  CAThing()
: m_MyObserver(this, MyCallback)
The resolution is to qualify the function pointers and pass the addressof the function in. e.g.
  CAThing()
: m_MyObserver(this, &CAThing::MyCallback)

const_cast can't down cast / Previously implicit string
casts are no longer allowed

This code does not compile (error C2440)
   BSTR bstrMessage = SysAllocString(T2OLE(const_cast(MyThing.ErrorMessage.c_str())));
This was replaced with the following (the BSTR could be deallocated after use):
   CComBSTR bstrMessage(MyThing.ErrorMessage.c_str());
This code will also give the same error:
   OLECHAR* pStringBuffer;
USHORT* pString = pStringBuffer;

COM/C++ Attributes with enumeration values should not be enclosed in quotes.

This code:
    coclass,
threading("free"),
event_source("com"),
aggregatable("never"),
Should be rewritten without the quotes as:
    coclass,
threading(free),
event_source(com),
aggregatable(never),
The first time that the quotes get compiled gives warning C4581. This implies that the double quotes (") need to be replaced with single quotes ('). However, if you do this you then get error C3455. This error will say that "none of the attribute constructors matched the arguments".

Public attributes are stricter

The error MIDL2072 will be emitted for this code:
    typedef [public] enum EEventIdType
{
E_DEFAULT_EVENT_ID,
E_DEBUG_EVENT_ID,
} EEventIdType;
The solution is to place the public attribute earlier:
    [public] typedef enum EEventIdType

The scope of variables in control constructs is limited to
the construct

In this code:
    for (int i = 0; i*max  ;++i)

The scope of i is limited to the for loop. (The * is meant to be a less than operator but I'll be damned if I can get blogger to cooperate!)

Method declarations must explicitly indicate return types

This code gives the error C4430:
    virtual CheckChar(UINT maskChar, UINT nChar, int endPos);
The return type must be explicitly defined. e.g.
    virtual int CheckChar(UINT maskChar, UINT nChar, int endPos);

Private types are not accesible outside of the class they
are declared in

This code gives the error C2248:
    class cdxCSizingPropSheet : public CPropertySheet
{
private:
struct StandardControls
{
...
};
};

...
static struct cdxCSizingPropSheet::StandardControls psheetCtrls[] =
...
In this example, the struct StandardControls needs to be available at the global scope for psheetCtrls.

Deprecated methods

For security, many methods/functions that can cause buffer overruns have been deprecated. The recommended action is:
  • replace the deprecated methods, or
  • define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES as 1 so the compiler will use a template overload to replace the deprecated method with another. N.B. security template overloads are not available for everything. Alternatively,
  • define _CRT_SECURE_NO_DEPRECATE or the warning pragma to not display this warning.
If you want my opinion (sure you do!) any function that can cause buffer overruns ought to be an error and avoided. You'll thank me later. ;)

OK, that's it for now. We had a few more but I've had it with trying to lay out code in Blogger. Does anyone know any good blogging software to write code? It's damn hard from within the Blogger editor. I'm thinking of moving to my own system hosted at home for this reason alone (actually there are a few more!). If I was to move to my own system which can you recommend that do a good job of handling code?

Anyway, I hope that was useful to you - and a huge thanks to Ben who wrote most of this in our Wiki at work. The good work was his, the errors mine. :)

Friday, October 28, 2005

VS2005 and .NET is shipping!

The newest version of Miscrosoft's development suite - and the matching .NET framework - has just ben released to MSDN subscribers!

Kudo's to Geoff for watching so attentively. You may not have gotten the scoop buddy but you were the first person I saw that made the announcement. :)

Personally, our company will be making the switch (from VS2003) quite quickly, and I can't wait.

Beware though folks, if you're compiling C++ code you may have a fair chunk of work migrating. The compiler is significantly more strict and we've found many errors (and warnings) that have to be rectified. As a positive, remember that your code will be cleaner when you're finished!

Wednesday, October 26, 2005

Heading OS for awhile

My role at Agilent Technologies is soon going to change. On the 23rd of November I'll be heading off to San Jose, California to support our products at one of our largest customer sites. It's a six month assignment and I'm damn excited about it! :)

It's a pretty big change. For the past few years I've been a full-time software engineer, beavering away developing features for our product line. This new role is totally about support. It's unlikely that I'll write any code except perhaps for some automation scripts. That'll take some getting used to as I really enjoy writing code.

However, helping customers understand and solve problems with our products is a new challenge that I welcome. I've always believed that to be a really good software engineer you need to thoroughly understand your customers needs so this experience will be invaluable from that point of view.

And I'm really looking forward to spending time soaking in the California culture (alas not much of the sun - I'll be there through winter!) and seeing some of the sights.

The only really tough bit is that my amazing girlfriend Melissa won't be able to come with me. She'll be (hopefully) joining me for a month in the middle of the trip - which will be fantastic! - but we've hardly spent more than a couple of days apart, let alone months. Ugh, that's going to suck.

Baby, if you're reading this, I'm going to miss you like crazy.

Thank goodness for webcams, broadband connections and video chat. ;)

Anyway, I just wanted to give y'all a heads up to let you know that I won't be in the country for much longer. I'll also be starting up another blog to document my adventures over there - I'll post a link to it when I get around to creating it.

Thursday, October 20, 2005

Three links of potential goodness

My bookmarks folder is a mess and I've got a brazillion (hehe) tabs open in Firefox. So I figure why not post a couple of useful links here? You may even find them useful.

ShinyFeet is a site that advertises unlimited email and file storage. It's also got some sort of photo gallery feature. Don't yet know what the catch is (probably advertising).




YouSendIt is a cool site that allows you to send a file (up to a gig!) to someone. Here's how it works. Type in a recipient's email address. Upload a file. The file is stored temporarily (for about a week I think) on the YouSendIt server and a link to the file is sent to the recipient. Again, not sure of the gotcha (advertising again?) but it's a pretty nifty idea.




Inquisitor is a(nother) search engine but has AJAX goodness and searches as you type. Pretty sweet. It gathers it's results from Google.

Tuesday, October 04, 2005

Other blogs

Speaking of other blogs...I write in a couple now and just thought I'd quickly 'advertise' them.

Matts iPod News is a blog all about iPods and iPod accessories.

Wireless Cranium is my friend Jiggy's blog. Jiggy is a music buff and really knows his stuff - probably because he owns a pooload of CD's and spends all his spare time absorbed in the world of music. ;) I occasionally write in the blog since I also love listening to sweet, sweet music...

Photo Impression, as mentioned recently, will contain photography news and information as well as links to photos that Jarek (aka J-Man) or I like. It's only early days for this blog but we'll see where it goes...

Then there's this blog which I'm still, even after over a year, trying to figure out what to really do with. I'd like to write more articles on software development but damn they take some serious time that I just haven't had lately. Mostly it's just become a dumping ground for stuff I want to say, which is fine but probably terrible to read! Anyway, I'll try and sprinkle a few software-related posts in amongst the drivel. I hope you get something, even if it's only a tiny something, out of reading this blog!

Monday, October 03, 2005

Lens fixed, a 'new' camera and a new blog

Speaking of cameras...I'm sure you remember the heartache, the despair and the horror of the day my lens broke. Well, my 80-200 has come back from repair and it's better than new!

The wonderful folks at the Camera Clinic (no web site unfortunately) on Easey St in Collingwood did a fantastic job with the lens. Not only that but it was just a pleasure dealing with them - they kept me well informed, were sympathetic, spelt out my options and gave me a reasonable price. If you've got a problem with your camera gear I can highly recommend them.

Here's some (hastily taken) shots of my new and improved baby:





Note the general roundness. ;) I heart that lens. :)

The other bit of photograpy-related news is that I bought a 'new' camera. It's an old-school Yashica medium format TLR camera from the early 60's. No photos since I left it at work (maybe tomorrow!) but there is a shot of it in the eBay listing that I won.

I've been fascinated by all sorts of photographic equipment and I've wanted to play with a medium format cameras for years. I haven't run any film through this Yashica yet but, assuming it works properly (it makes all the right sounds though the shutter is a little suspect), I'm intrigued that this relic can produce better images than the most expensive, top-of-the-line digital SLR.

Maybe next up will be a large-format view camera, who knows!?

Finally, I'm going to try and minimise the photography-related posts to this blog from now on. I've set up a new blog, Photo Impression, solely for photography related news. My friend Jarek and I are keen hobbyist photographers and we'll endeavour to post links to photos we like and share any photography-related information. So if you're interested in cameras, lenses and striving to capture the perfect photo take a squiz or subscribe.

Geek Dinner this Friday

My mate Tejas has organised a geek dinner for this Friday at Gopal's vegetarian restaurant on Swanston st at 6:30.

Check out the details at Tejas' Blog.

My camera and I are going to make every effort to be there!

Thursday, September 15, 2005

Google Blog Search

OK, OK I'm a Google fanboi. But this blog search looks pretty nice indeed - certainly feels better than Technorati ever has:

Google Blog Search

And an ego search reports a link to this blog - and damn fast too! Kudos Google.

Tuesday, September 13, 2005

Doppler and NPR feeds

I use Doppler to manage my podcasts. Recently I added a bunch of NPR feeds to Doppler (highly recommended BTW!) but found that they wouldn't download. Turned out that Doppler has an issue with the URL that NPR supply, the solution was found in the Doppler Forums.

Hopefully this'll help someone else!