Week 24 Photos
Stuggling, but only 3 weeks to go now...
Posted: Oct 06 2009, 09:09 AM by nick | with no comments
Filed under:
Visual C++ SP1 Sample
If you've downloaded SP1 of Visual Studio 2008, and are looking through the Visual C++ samples trying to locate anything to do with TR1 language extensions or the MFC Feature Pack, you'll notice they aren't there. The SP1 samples are avialable, but ship as part of a seperate download available from MSDN Downloads.

The sample pach weigh's in at a heft 7.9MB, and contains a heap of samples to get going with the major MFC improvments that SP1 contains.
Posted: Apr 01 2009, 10:48 PM by nick | with no comments
Filed under:
My first book cover - Introduction to Psychology, 12th Edition by Dennis Coon
Posting high-resolution photos on your web-site brings in the occassional request for permission to use the photos is some publication. I've had requests before from Israel Ministry of Agriculture to use camel shots from Broome in one of their publications, and Busselton Online (which doesn't seem to be online anymore :)) wanted to use one of my shots of the area on their website.

A couple of weeks ago I got a request from Cangage Learning to use of of my Antelope Canyon shots on the cover of one of their text books. The website page for the textbook is online now, and my Canyon shot made it through the review process to make the cover. While not on the same scale as a Nat Geo cover, making the front cover of a book by a reputable publisher is a nice achievement.
Posted: Nov 01 2008, 05:36 AM by nick | with 2 comment(s)
Filed under:
Cronulla to Kiama
Over the weekend of 25-26 Oct, I paddled from Cronulla to Kiama with an overnight at Corrimal. After really bad weather mid-week that culminated with 4m swells and 40 knot winds from the south on Wednesday, it looked like the conditions weren't going to be suitable for a long paddle. Over Thursday and Friday, a high-pressure system moved in, allowing the swell to begin to drop, and Saturday morning dawned with a good forecast of 2m swell and variable winds of about 15 knots out of the north.



The goal of the first days paddle was Corrimal, with is one of the beach-side suburbs north of Wollongong. Corrimal has a really nice council-run caravan park at the back of the beach, and the plan was to leave early (up at 5:15, on the water at 5:40), and meet the family at Corrimal around 1pm. The conditions around the Jibbon Bumbora were quite rough, with steep swells coming from all over the place, but after passing the Bumbora and getting a kilometer or so off the coast, the swell became more consistent and less step, and the paddling was quite easy. There was a lot of foam in the water from the mid-week gale conditions, and it was quite strange paddling in the foam, which dampened all sound, creating a weird silence.



Once past the Royal National Park and along the beaches north of Wollongong, it was clear that a beach landing was going to be hard. There was 6ft dumping sets on most beaches, and a low tide also made conditions pretty bad. I had planned to land at Bellambi Pt if a beach landing look dicey, but get my Points mixed up, and ended up landing at Bulli Pt, which is about 3km north. I rang the family, and they where close by in the car, so I got them to pick me up and the kayak went on the roof for the final few kms to the camp ground.



By the Sunday, the swell had dropped, and taking off from the beach at Corrimal was easy. The Sunday trip had 3 distinct 12km sections - the first to Big Island off Port Kembla, then another 12km to Bass Point, then the final 12 or so kilometers into Easts Beach, just south of Kiama. The seas of Wollongong where fairly calm, and the first 12km went by fast.

Off Big Island, a seal was basking in the sun, but disappeared before I could get the camera out. There were heaps of gulls nesting on Islands, and it was a good spot for a break out of the swell between Big Island and the mainland.





After Big Island, it was getting hazy, and I initially aimed for Windang Island off Lake Illawarra rather than Bass Point. About 1km off Windang Island, I realised my mistake, and turned east to get to Bass Pt. I landed for a while on the Pt, and had some sandwiches for lunch. For the first two hours of each paddle, I had a Gu Gel at the hour mark, and then had a carb drink and sandwich at the 3 hr mark, and then repeated the cycle for the next 3 hours. Breaking the paddle into hour long sections (which was 8kms travelled) made it easy to focus on short-term marks, and the Gu's and drinks keep my energy pretty high.

The last 12kms into Kiama was with a strengthening NE and swells picking up to 1.5m which made for fast paddling.



I had hoped to continue the paddle into Jervis Bay on the Monday, but the weather deteriorate, with 30 knot N/NW winds forecast and a 3m swell. There is a 25km open crossing south of Kiama from Black Pt to Currarong (across the Shoalhaven Bight), and with the bad conditions, the paddle wasn't worth it. Instead I drove down to Jervis Bay with the family and relaxed at Honeymoon Bay out of the wind and swell. This is Jess at the Kiama campground.



The overall distance travelled was 45.1km on the first day, and 38.3km on the second day. The body pulled up well, with no real soreness in the shoulders or back, no sunburn and only very minor blisters on the hands. It was disappointing to not be able to get to Jervis Bay, but looking out at the sea conditions from Currarong on the Monday afternoon, it was apparent I'd made the right choice not to attempt the crossing. Black Pt wasn't visible across the Shoalhaven Bight, the wind was howling, and the temperature was up to the mid- to high-30s. Hopefully over the summer I'll launch from Kiama and finish the last leg of the paddle.
Posted: Oct 28 2008, 11:19 PM by nick | with no comments
Filed under:
Sea kayaking with a GPS
I recently purchased a Garmin GPSMAP 60CSx for use as both an in-car unit and a sea kayaking navigation aid. While navigation on the current routes I'm doing in pretty easy (essenitally, keep the land on left while heading north), its good to track the speed I'm paddling and get a good handle on distance to go. Mounting the GPS on the kayak was something that I was initially concerned about, but last Sunday I did the 40km paddle from Yowie Bay in the Port Hacking to Watsons Bay in Sydney Harbour with the GPS unit mounted to the front of the kayak using the auto suction-cup mount with good results.

The conditions on Sunday where pretty calm (more details here), but a few waves did come over the front of the kayak without causing any movement or loosening of the suction cup. The suction cup gives quite a strong connection, and its is possible to take most of the 25kg-plus weight of the loaded kayak without having the suction cup detached. This is the basic set-up


I wrapped the unit in a medium zip-lock bag and electical taped the bag to the mount. The 60Csx is water-resistant to IPX7 standards, but I thought 5+ hours of having salt-water dripped onto the unit from the paddle was going to decrease the life of the unit if not kill it outright. Pulled tight, the zip-lock didn't have too much of an impact on screen visibility, and after the paddle only a few drops had managed to work there way into the bag.

The other precaution against unit damage/loss was a stainless-steel cable clipped to the shock-cord mounts and run through the middle of the mount. The stainless steel cable only cost $12 to make, which is reasonable insurance for the cost of the GPS. The photos below show the details of the cable.





The only thing that I didn't like much about the GPS was the lack of details displayed about coastal landmarks like beach and headland names. The detail is all there in BlueChart maps, and viewing the charts on the desktop using MapSource shows heaps of details. No matter how close I zoomed and where I moved the pointer too, I couldn't get the name of a beach or bay to display on the GPS unit. While that isn't much of a drama with familar areas, it is a significant missing feature if you're in unfamilar waters. The one work-around is to add way-points to prominant locations and download them onto the unit before heading out, which is what I plan to do when I do the paddle down to Kiama in a couple of months.
Posted: Jul 31 2008, 12:30 AM by nick | with no comments
Filed under:
ASP.NET MVC at SDNUG on Thursday
After 6 months buried in a banking project, I'm emerging from the other end with a presentation this Thursday at SDNUG on ASP.NET MVC. Full details on the SDNUG site - if you're in Sydney, come along and be wowed.
Posted: Jun 02 2008, 06:17 AM by nick | with no comments
Filed under:
Handango not posting negative reviews
A couple of weeks ago I purchased the eGlass BookReader from Handango, partly because of the problem with WMDC that I spoke about in my last post. The reader was pretty poor, particularly in its reading experience of PDF books. In reflow mode, you have to change back to scaled view before you can advance to the next page in the document, which makes for a tedious reading experience. In the end, I ditched the eGlass reader out of frustration.

I got an email from Handango asking for a review, and as the product had been particularly useless, I decided it was worth the time warning others not to waste their money. The rules for reviews on Handango are quite restrictive, but I made sure I stayed within the guidelines and only mentioned I was unhappy with the product because of the clumsy paging-turning support in the PDF reader. For the record, I gave the product the lowest review of 1 star.

Suspiciously, my review has yet to appear, and I've received no feedback or confirmation from Handango. Here is the page for the product, which miraculously contains no reviews at all.

It seems my sensored review is not an isolated case. Another one here. And another.
Posted: Nov 23 2007, 11:49 PM by nick | with no comments
Filed under:
WM6 to Vista Sync Error 0x8503001c - Fixed by going back to WMDC 6.0
I had the frustrating experience of having a new WM6 device (HTC Touch) developing a problem synching to a new Vista machine. The Touch was in its third week of a synch relationship with Vista, so it could be hoped that honeymoon bliss was still lingering in sufficient proportions to prevent a dreaded 0x8503001c error. The only change to the system has been to do a sync over Bluetooth, and that seems to have toasted WMDC somehow. I tried deleting and re-creating the partnership (which didn't work), and taking off synch items, which produced the result of a successful sync with Mobile One Note and nothing else. After trying the partnership delete, I tried an uninstall/ reinstall of WMDC 6.1, again with no success. The next tactic I tried was creating a new PST file for Outlook and importing everything from the old file to the new one with no success. The next tactic, which did work, was to unistall WMDC 6.1 and install WMDC 6.0. Amazingly, this fixed the problem. Its a shame that WMDC seems to have all the same problems of ActiveSync, and yet has less features. I hope WMDC 6.2 will see a return of the file conversion functionality that was part of ActiveSync - at the moment I need to print PDFs to a third-party reader application because the file conversion that adds reflow support to a PDF file doesn't work with WMDC. Nick mentions the other side of this problem in this post. If the Mobile Device team want to deliver on their sales pitch that they are the best platform for business and productivity and fight off the combined competition from the iPhone and Google, WMDC needs to be rock-solid.
Posted: Nov 15 2007, 07:43 AM by nick | with 5 comment(s)
Filed under:
Dealing with linked servers in VSTS Database Pro
Working with linked servers in VSTS Database Pro can be a bit painful, especially when the linked server is a production server that should be (and typically is) inaccessible from developer's machines. If the appropriate linked server settings aren't set up on the design-time validation database server(which is the local database by default), the Database Pro project won't be able to build, which will prevent all sorts of useful things like schema compares for happening.

The solution to the problem is replicate the schema of the production database to another server (local is fine), and then to use sp_addlinkedserver to add the linked server using an alias rather than the actual server name, and then to use this alias in any stored procs that reference the linked server. The syntax for the call is:

EXEC sp_addlinkedserver @server='ServerAlias', @srvproduct='', @provider='SQLNCLI', @datasrc='ActualServerName'

Once sp_addlinkedserver has been called, the appropriate security settings still need to be set up, and this can be done from Management Studio or via sp_addlinkedsrvlogin.

By using an alias rather than the actual server name, the need for developers to have any login details for production systems on their machines is removed.
Posted: Oct 31 2007, 11:05 AM by nick | with 2 comment(s)
Filed under:
A few quick tips for using SQL Server 2005 Linked Servers
I've just completed a short,rushed project that involved moving data from one SQL Server 2005 in a DMZ to another SQL Server 2005 server inside the network. The database in the DMZ is deployed on a per-web site basis, and there can be many copies of the same database sending data back into the central database. I initially choose a push model, which would ease the deployment burden, as each copy of the website database could point back to the central server to push its data back. If a new site was deployed, there was no configuration necessary to get the data pushed back to the central location apart from setting some meta-data in a particular table, and scheduling a stored procedure to run.

As is typical in rushed projects, there was no consultation with the infrastructure guys about the feasibility of the design, and we didn't find out a few issues till we where scheduled to deploy. The problems (in the order that they occurred) where:

  • For someone that has always had network guys to set up DTC, its not as straight forward as I'd assumed. I spent ages setting all the correct DTC configuration values on the remote machine without ever enabling it on the central server. When I tried to issue a BEGIN DISTRIBUTED TRANSACTION from the central server, I got an error saying that the remote server had disabled its support for distributed transactions. The error message was wrong - the local server hadn't been set up for distributed transactions. Turning on DTC on both servers (obviously) fixed the problem.
  • Getting DTC working through a firewall is hard. This KB article documents how to do it, but as there was no name resolution between the web server and the central server (to quote the KB article 'DTC also requires that you can resolve computer names by using NetBIOS or DNS'), distributed transactions weren't a goer.
  • @@IDENTITY and scope_identity() don't flow across servers. Using the push model, I needed to set a foreign key in one of the inserted tables, which means I needed to know the primary key on the row inserted earlier in the stored proc. In the end, I had to go to a pull model, which was a pretty easy change.
    While it would have been nice to identity and sort out all these issues before we started baning out TSQL, the project scope was small enough that we could resort to heroics to overcome design short-comings.
    Posted: Oct 24 2007, 04:30 AM by nick | with 1 comment(s)
    Filed under:
  • Filling in a technical support web form, and getting a response- well done DiskView!
    A couple of months before Vista was release, I purchased a copy of DiskView to track down where all my hard disk space was being eaten up on a Windows XP install (it turned out to be several multi-gigabyte files that DivX converter had left lying around).

    A version of DiskView that support Vista has recently been released, but when I tried it, I got an error with code 2738 during installation. I checked the website support page, and didn't see any resolution for this issue, so I tried filling in the support page without much hope of ever receiving an answer. Only a couple of hours later I got the following email:

    Error 2738 may occur in Windows Vista when a custom install action is required by a software installer and VBScript is not registered. I'm not sure why it is occurring on your computer, as it seems to work fineon other Vista installations. I also just installed DiskView with no errors on a fresh Windows Vista Ultimate virtual machine.

    Can you try the following?

    Start Button > All Programs > Accessories Right-click on "Command Prompt"
    Select "Run as Administrator"
    Type cd \ and press ENTER
    Type cd C:\Windows\System32 and press ENTER Type regsvr32 vbscript.dll and press ENTER You should receive a message that the DLL has been successfully registered.

    Try the DiskView installation again. Please let me know how it goes.

    Re-registering vbscript.dll fixed the problem
    So, not only is DiskView a really good product, there technical support is excellent.
    Posted: Oct 05 2007, 10:53 AM by nick | with 2 comment(s)
    Filed under:
    New CodeGuru article up
    This months offering looks at upgrading an old MFC application to take advantage of Vista. Some months the article come quickly (less than 4 hours). This month, it took a couple of days. The documentation for the MFC 9 updates is still pretty minimal.
    Posted: Sep 05 2007, 04:43 AM by nick | with no comments
    Filed under:
    In Perth tomorrow night
    The website is up to date now - I'm in Perth tomorrow night for the Code Generation presentation (if APEC hasn't caused the too many problems with my flight)
    Posted: Sep 05 2007, 04:40 AM by nick | with no comments
    Filed under:
    Week 23 Pics
    After a long break, I've finally finished the gallery for Week 23 of my six month trip around Australia in 2005. As expected, the Tassie portion of the trip produced a lot of shots, and it took a long time to go through them. 15 shots in this gallery, which is the most since Week 8, which covered the Mt Isa rodeo and Ayers Rocks.

    Printing a calendar for Christmas Presents
    Last year I used 13 of the photos I took from my 6 month trip around Australia in 2005 to make a calendar for a Christmas present for family and friend. The print company I used was Kainos Print from the ACT, and the actual order form for the calendar is here - they make the process quite simple. The final proof for this years calanar (4+MB PDF) is up on my site if you're interested in seeing how it turned out. Generally I was very happy with the result, and plan on using Kainos again this year.

    The main change I need to make for the years images is to lighten the dark images significantly (March and May look very dark when not in direct light). Other than that, the 2007 calandar looks great.

    The 2008 images will come from my trip to Arizona, Utah and Nevada before the MVP summit. Wupatki Pueblo is pencilled in for Jan, and Antelope Canyon will be in there too.

    If you're interested in purchasing a copy, please drop me an email. Cost will be around AU30 including postage in Australia. Happy to send OS for a bit extra postage, but be warned that the public holidays and school holidays in the calandar are mostly Australia-specific.
    Posted: Aug 10 2007, 05:49 AM by nick | with no comments
    Filed under:
    Visual C++ 2008 - CodeGuru Articles Up
    Its hard to believe that its been over three years since I started doing the C++ column at CodeGuru (and still no missed columns). I plan to keep going to beat Kate Gregory's record of 42 articles, at which point in time I'll demand to get the URL for the column changed (http://www.codeguru.com/columns/Kate/). I know Kate is fairly vindictive, and believe this is one possible response from Kate's fans:



    (I've got into trouble before for not making it absolutely clear when I'm making stuff up, so for the record, I actually don't know Kate, and I'm sure she is not vindictive or has any knowledge of our relative article count).

    The last two articles I've done have been on VC++ 2008, which has some pretty nice new features, particularly around Interop. The August article shows how easy it is to extend the marshaling library, and this is likely to be one of the most used new features of Orcas for C++ developers. Next months article will look at upgrading the version of Scribble that ships with the Visual C++ 6 sample to use the Vista common controls. If there is anything you'd like to see covered in upcoming articles, please leave a comment and I'll happily suggest it to my editor.
    First INETA Speaker Bureau Gig coming up - Perth 6 Sep
    The site's not updated yet, but I'm happy to confirm that I'll be in Perth on 6 Sep to present my Code Generation in the Real World talk. The blurb for the talk is:

    Real-world Code Generationby Nick Wienholt There is a lot more to real-world code generation than simple spitting out a bunch of objects based on a database schema.What is the re-generation story?How are the generated objects extensible?How do I integrate custom stored procs?How do I return a collection with only a sub-set of fields populated?What is the performance like?How do I maintain source control on the database, the generated objects and the settings used for the generation? This presentation will cover a code generation process using CodeSmith, .net Tiers and VSTS Database Professional that addresses all these points and more.The end result is a development process that can go from schema modification to full back-end regeneration in under 10 minutes.
    The talk was well received when I did it at SDNUG, and the great Adam Cogan told me after the session it was his favorite session he seen so-far in 07.
    I haven't been to the Perth User Group since Dec 04, and I'm looking forward to catching up with Mitch W and Nick R when I'm over there.
    I'm flying out of Sydney on the day before APAC and coming back on the red-eye on the day of the start of the summit. Should be interesting.
    Thanks to Sanjay and Sin from INETA APAC for making the trip possible by funding the flight.
    Posted: Aug 10 2007, 04:28 AM by nick | with no comments
    Filed under:
    SOA in the Real World Book from Microsoft Architecture Group
    Released a couple of weeks ago, SOA in the Real World is a good summary of the guidance that Microsoft has been putting out for the last 5 years. As my main task in the current gig is the writing a document of integration stategy and then working with the development team implementating web services for the first time, the e-book is a timely helper with this task. I'm still working through the first few chapters, but it looks promising.
    Posted: Aug 10 2007, 03:47 AM by nick | with no comments
    Filed under:
    MSDN Subscription - Why isn't there a cheaper download-only offering?
    As part of the MSDN Subscription offering, a box of discs is delivered most months with updated versions of Microsoft software. Because a single DVD has many products on it, the disc churn rate is reasonably high. In addition to the disks that come in the mail, MSDN subscribers can download all the software available as part of their subscription directly from a Passport-secured website

    There is about a three month lag between a product being available on the download site, and the physical disc arriving, so any product that you're really keen to use (like Visual Studio, Office, Windows and SQL Server) gets downloaded and burnt to a DVD long before the discs every arrive. Even without broadband, it is possible to download big releases like Visual Studio - in the days of severe broadband usage limits, I downloaded Visual Studio.NET 2002 over dial-up. The download can be paused, so I just kicked it off each night before I went to sleep, and the full download only took a couple of nights.

    It seems to make a lot of sense for Microsoft to offer a download-only offering for MSDN Subscription. The price of a subscription has roughly doubled in the last five years, and in my conversations with lots of folks around the user group and at work, there are plenty of ex-subscribers around who find the cost too high. It would be great if the savings in disk distribution that would be achieved with a download-only MSDN Subscription offering could be passed directly onto the developer community, and the rate of folks with subscriptions could pick up again.

    Posted: Jul 16 2007, 02:19 AM by nick | with no comments
    Filed under:
    Connecting to the VSS WebService on connections other than port 80
    When connecting to VSS over the internet to a server that has the VSS web service on a web site that isn't sitting on port 80, the full name of the service needs to be specified in the connection settings on the client side, as shown below. If you simply try to specify http(s)://x.x.x.x:y (where y is the port number), Visual Studio will somehow miss the port when it parses out the server's IP address. To fix the problem, use the full path to the webservice, such as http://x.x.x.x:y/SourceSafe/VssService.asmx. Visual Studio will pick up the port number correctly when the URL is specified this way.

    To set up internet access to VSS on a web site that isn't the default web site on the server side, I used the the VSS Admin exe to setup internet access according to this article, backup the ISS virtual directory that SourceSafe created, and then restored it to the website on the arbitrary port.

    Posted: Jul 15 2007, 10:58 AM by nick | with no comments
    Filed under:
    More Posts Next page »