<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en"><title type="text">David Gardiner - Dave's Daydreams</title><link rel="alternate" type="text/html" href="http://david.gardiner.net.au/" /><subtitle type="html">A blog of software development, .NET and other interesting things</subtitle><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-11-04T20:30:00+00:00</updated><generator uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">617</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">25</openSearch:itemsPerPage><id>tag:blogger.com,1999:blog-10782889</id><geo:lat>-34.91774</geo:lat><geo:long>138.546664</geo:long><link rel="self" href="http://feeds.feedburner.com/DavesDaydreams" type="application/atom+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry><title type="text">Stack Overflow Careers</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/gZgbho2KL6k/stack-overflow-careers.html" /><category term="WWW" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-11-04T12:30:00-08:00</updated><id>tag:blogger.com,1999:blog-10782889.post-8468387098473777391</id><content type="html">&lt;p&gt;&lt;a href="http://www.codinghorror.com/blog/archives/001308.html" target="_blank"&gt;Jeff has announced&lt;/a&gt; &lt;a href="http://careers.stackoverflow.com" target="_blank"&gt;careers.stackoverflow.com&lt;/a&gt;, and I've jumped in quick to grab &lt;a href="http://careers.stackoverflow.com/davidgardiner"&gt;http://careers.stackoverflow.com/davidgardiner&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Some other places you can find me in the social network &amp;quot;cloud&amp;quot; are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://www.linkedin.com/in/davidrgardiner" href="http://www.linkedin.com/in/davidrgardiner"&gt;http://www.linkedin.com/in/davidrgardiner&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.facebook.com/david.r.gardiner" href="http://www.facebook.com/david.r.gardiner"&gt;http://www.facebook.com/david.r.gardiner&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://twitter.com/flcdrg" href="http://twitter.com/flcdrg"&gt;http://twitter.com/flcdrg&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-8468387098473777391?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/gZgbho2KL6k" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-05T07:00:00.120+10:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/11/stack-overflow-careers.html</feedburner:origLink></entry><entry><title type="text">Getting podcasts onto my new phone</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/dAz206QMgnw/getting-podcasts-onto-my-new-phone.html" /><category term="Podcasts" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-11-03T04:20:26-08:00</updated><id>tag:blogger.com,1999:blog-10782889.post-5088488996086456092</id><content type="html">&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="add01_3301[1]" border="0" alt="add01_3301[1]" align="right" src="http://lh5.ggpht.com/_pxqKA-ofl4A/SvAf7GNEzlI/AAAAAAAAA_M/VPse-D60EFo/add01_3301%5B1%5D%5B4%5D.gif?imgmax=800" width="240" height="240" /&gt;I recently replaced my dead iPod Shuffle with a &lt;a href="http://au.samsungmobile.com/mobile-phone/GT-C3050-overview" target="_blank"&gt;Samsung C3050 phone&lt;/a&gt; that amongst other things has music playing as a feature. I bought an 8Gb micro-SD card to go in the phone to store podcasts on. &lt;/p&gt;  &lt;p&gt;When I unpacked the phone from its packaging, I discovered that this phone uses a slightly annoying custom socket to connect to a PC, headphones or power jack. It also didn't come with a USB cable in the box (so when the box said &amp;quot;supported USB&amp;quot; it didn't mean &amp;quot;easily&amp;quot;). I ended up making my very first e-bay purchase and bought a $10 cable which did the trick.&lt;/p&gt;  &lt;p&gt;Now to get podcasts syncing…&lt;/p&gt;  &lt;p&gt;I had been using WinAmp with the Shuffle, but I found that its support for a basic USB drive (which is how the phone's SD card appears when connected to the PC) was not perfect. After scrounging the net to find a decent podcatching application. Some of the problems I encountered along the way included MP3 files getting filenames that the C3050 didn't like, MP3 files ending up in the wrong location on the SD card, and some software that just plain didn't like the feed – the &amp;quot;.&amp;quot; in &amp;quot;.NET Rocks&amp;quot; seems to be a common cause of that. &lt;/p&gt;  &lt;p&gt;I finally found &lt;a href="http://www.mediafly.com/syncclient#SelectedDevice" target="_blank"&gt;Mediafly&lt;/a&gt;. This site offers feed aggregation as well as software for syncing podcasts to various devices.&lt;/p&gt;  &lt;p&gt;I'd already started using &lt;a href="http://www.spokenword.org" target="_blank"&gt;SpokenWord.org&lt;/a&gt; to aggregate my feeds, so I just added my aggregated RSS feed URL - &lt;a title="http://rss.spokenword.org/playlist/2940" href="http://rss.spokenword.org/playlist/2940"&gt;http://rss.spokenword.org/playlist/2940&lt;/a&gt; – to Mediafly. It then started downloading the latest files, and I was able to sync them over to the SD card.&lt;/p&gt;  &lt;p&gt;So far it looks like this is working pretty well.&lt;/p&gt;  &lt;p&gt;The C3050 is a pretty basic phone (what do you expect for less that $100 from the local Vodafone shop), and the music player has a few annoying quirks – in particular it too easily forgets if it is part-way through playing a track, and there's no way to determine (from the PC) what tracks have already been listened to. But in spite of that it does the job, which is the main thing.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-5088488996086456092?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/dAz206QMgnw" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T22:50:26.524+10:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/11/getting-podcasts-onto-my-new-phone.html</feedburner:origLink></entry><entry><title type="text">Upgrading the Media Center to Windows 7</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/kYWRo9ezeVU/upgrading-media-center-to-windows-7.html" /><category term="HTPC" /><category term="Windows 7" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-10-11T03:18:33-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-3681311641088688127</id><content type="html">&lt;p&gt;After my success with upgrading my not-so-modern PC to Windows 7, I thought I'd take another plunge and do an upgrade of my Vista Media Center machine. This is the family TV so any problems would not go down too well!&lt;/p&gt;  &lt;p&gt;The Windows 7 Upgrade Advisor didn't flag any major showstoppers, but it did suggest uninstalling the ATI Control Center (which I did). It also warned that I may need to upgrade the drivers for the iMON device (this is the front-panel display on the &lt;a href="http://www.antec.com/us/productDetails.php?ProdID=15740"&gt;Antec Fusion 430 Silver&lt;/a&gt; case and IR receiver for the remote control). Conveniently, just before I installed Win7, iMON reported that there was a new update available so I allowed that to go through, hoping it would help avoid &lt;a href="http://www.soundgraph.com/forums/forumdisplay.php?f=17" target="_blank"&gt;some of the problem some people have had.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I inserted the Windows 7 Ultimate x86 DVD, ran setup and selected 'Upgrade'. Probably about an hour later (and 2-3 reboots) it was all done.&lt;/p&gt;  &lt;p&gt;A quick check confirmed that yes, live TV still worked (phew!) – and so did the remote control.&lt;/p&gt;  &lt;p&gt;Going to the Guide showed the new layout, but oh dear – there were no listings for any of the ABC or SBS channels – hmm that could be a problem. But that was enough for one night, so I left it there.&lt;/p&gt;  &lt;p&gt;The next morning, I woke up to discover that the kids had already figured out how to watch the previous night's recording of Ice Age – which was a good sign that nothing had changed too dramatically!&lt;/p&gt;  &lt;p&gt;I recall seeing mention in the &lt;a href="http://www.xpmediacentre.com.au/community/tuners-windows-7/" target="_blank"&gt;Australian Media Center Community forums&lt;/a&gt; that Windows 7 would finally allow use of the FM radio tuner included in the &lt;a href="http://www.newmagic.com.au/NM_pages/products/hauppauge/OEM/HVR2200_MCE/HVR2200_MCE.html" target="_blank"&gt;Hauppauge HVR-2200&lt;/a&gt;. I went to the FM Radio menu but it said I needed to add a tuner, even though the upgrade had found the 2 digital tuners ok, so I followed these steps:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_pxqKA-ofl4A/StGwifnAMVI/AAAAAAAAA7s/gX1jgP9ct3A/s1600-h/tv%20signal%201%5B9%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="First, choose Analogue antenna" border="0" alt="First, choose Analogue antenna" src="http://lh4.ggpht.com/_pxqKA-ofl4A/StGwj-PTTeI/AAAAAAAAA7w/TgSEbGjSoB0/tv%20signal%201_thumb%5B7%5D.png?imgmax=800" width="484" height="284" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_pxqKA-ofl4A/StGwlcQYoCI/AAAAAAAAA70/sqvG6SoZKps/s1600-h/tv%20signal%202%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Confirm 2 analogue tuners are available" border="0" alt="Confirm 2 analogue tuners are available" src="http://lh6.ggpht.com/_pxqKA-ofl4A/StGwmjDSmkI/AAAAAAAAA74/ZTJA_0ayYGw/tv%20signal%202_thumb%5B1%5D.png?imgmax=800" width="484" height="284" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_pxqKA-ofl4A/StGwoHeHbfI/AAAAAAAAA78/nKSKbfpejg0/s1600-h/tv%20signal%203%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Now choose to set up the digital tuners" border="0" alt="Now choose to set up the digital tuners" src="http://lh6.ggpht.com/_pxqKA-ofl4A/StGwpVZbIOI/AAAAAAAAA8E/8xQjy9-F6zA/tv%20signal%203_thumb%5B1%5D.png?imgmax=800" width="484" height="284" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_pxqKA-ofl4A/StGwqytnRnI/AAAAAAAAA8I/HbjOWTH013Y/s1600-h/tv%20signal%204%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Confirm 2 digital tuners" border="0" alt="Confirm 2 digital tuners" src="http://lh4.ggpht.com/_pxqKA-ofl4A/StGwsHGKxmI/AAAAAAAAA8M/5L-fEAfIp_k/tv%20signal%204_thumb%5B1%5D.png?imgmax=800" width="484" height="284" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_pxqKA-ofl4A/StGwtv-ZzJI/AAAAAAAAA8Q/Lz_3OiWb7dE/s1600-h/tv%20signal%205%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="2 analogue and 2 digital tuners will be configured" border="0" alt="2 analogue and 2 digital tuners will be configured" src="http://lh6.ggpht.com/_pxqKA-ofl4A/StGwwDU8k4I/AAAAAAAAA8U/p6rUEdD5e_A/tv%20signal%205_thumb%5B1%5D.png?imgmax=800" width="484" height="284" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_pxqKA-ofl4A/StGwyim8-RI/AAAAAAAAA8Y/gdsePXrTWow/s1600-h/tv%20signal%206%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Scanning begins" border="0" alt="Scanning begins" src="http://lh3.ggpht.com/_pxqKA-ofl4A/StGw0c5UxFI/AAAAAAAAA8c/Ce_exygbiis/tv%20signal%206_thumb%5B1%5D.png?imgmax=800" width="484" height="284" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_pxqKA-ofl4A/StGw17VSzxI/AAAAAAAAA8g/CyNOeNmRvEg/s1600-h/tv%20signal%207%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Analogue as well as digital channels are found" border="0" alt="Analogue as well as digital channels are found" src="http://lh5.ggpht.com/_pxqKA-ofl4A/StGw3fLOMmI/AAAAAAAAA8k/cgqKcv3gCVA/tv%20signal%207_thumb%5B1%5D.png?imgmax=800" width="484" height="284" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_pxqKA-ofl4A/StGw4_O5c1I/AAAAAAAAA8o/VvxCEGpJfpk/s1600-h/tv%20signal%208%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="TV Signal is now finished" border="0" alt="TV Signal is now finished" src="http://lh3.ggpht.com/_pxqKA-ofl4A/StGw6K3NJXI/AAAAAAAAA8s/Mm5wQnyp2Xk/tv%20signal%208_thumb%5B1%5D.png?imgmax=800" width="484" height="284" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Then I was able to go to the Radio menu item, choose FM Radio, then enter the frequency for a local radio station!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_pxqKA-ofl4A/StGw7E5wIbI/AAAAAAAAA8w/A2p86UW-F3Y/s1600-h/tv%20signal%209%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Enter 107.9 to get Life-FM in Adelaide" border="0" alt="Enter 107.9 to get Life-FM in Adelaide" src="http://lh4.ggpht.com/_pxqKA-ofl4A/StGw8NLe9kI/AAAAAAAAA80/NilrC6sqb9M/tv%20signal%209_thumb%5B1%5D.png?imgmax=800" width="484" height="284" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I was intrigued about what to do about the missing TV guide information for the ABC channels in the guide. Mike Hayton (from Microsoft) posted this &lt;a href="http://www.xpmediacentre.com.au/community/windows-7-epg-support/39016-windows-7-eit-epg-update-mechanism.html#post269184" target="_blank"&gt;explanation of how the guide gets updated&lt;/a&gt;, so I configured the Automatic Download setting to ensure the guide gets a chance to grab the latest listings..&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_pxqKA-ofl4A/StGw9DPlqMI/AAAAAAAAA84/Bx4JT3e4wH0/s1600-h/tv%20guide%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Windows 7 TV Guide" border="0" alt="Windows 7 TV Guide" src="http://lh5.ggpht.com/_pxqKA-ofl4A/StGw-EFTUpI/AAAAAAAAA88/aSZYt4xjbno/tv%20guide_thumb%5B1%5D.png?imgmax=800" width="484" height="342" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So, thus far everything has gone very well. The upgrade went without a hitch and everything appears to be working at least as well as before. One problem I did have with Vista MCE was for some reason I was never able to upgrade the ATI video drivers beyond around version 8.4. Every time I tried a newer version, the machine would BSOD. So far the upgraded machine seems stable with the latest video drivers from Windows Update (8.632.1.2000 17-Oct-2009).&lt;/p&gt;  &lt;p&gt;I see from &lt;a href="http://www.newmagic.com.au/Support/Hauppauge_Vista_Drivers.html" target="_blank"&gt;New Magic's drivers page&lt;/a&gt; that there's an updated driver for the HVR-2200 for Windows 7. I'll have to check whether that got installed through Windows Update, otherwise I'll install that just to keep current.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-3681311641088688127?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/kYWRo9ezeVU" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-11T20:48:33.709+10:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/10/upgrading-media-center-to-windows-7.html</feedburner:origLink></entry><entry><title type="text">From WinXP to Windows 7</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/MytO2h0KBfI/from-winxp-to-windows-7.html" /><category term="Windows 7" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-10-05T02:52:21-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-7817965567514112647</id><content type="html">&lt;p&gt;My home machine used to be pretty state of the art, but that was a few years ago now. It has an &lt;a href="http://www.intel.com/support/motherboards/desktop/d865perl/" target="_blank"&gt;Intel D865PERL&lt;/a&gt; motherboard. When I first got the machine, I used the built-in RAID to strip the two SATA disks together to get better I/O performance. This has proved quite stable, but unfortunately Windows 7 does not natively support the Intel 82801ER SATA RAID controller (the Windows 7 Upgrade advisor will warn you about this).&lt;/p&gt;  &lt;p&gt;So armed with this knowledge, I bought a brand new 1Tb SATA disk (a Hitachi HDT721010SLA360) and then attached it to a spare SATA card that was leftover from rebuilding Dad’s computer.&lt;/p&gt;  &lt;p&gt;All looked good until I started up the computer, and was greeted by a message from the SATA card that had found the Hitachi disk, but then did not proceed any further. &lt;/p&gt;  &lt;p&gt;This card identified itself as a &lt;a href="http://www.siliconimage.com/products/product.aspx?pid=63" target="_blank"&gt;Silicon Image SiI 3112 SATARaid Controller&lt;/a&gt;, with firmware version 4.1.34. I obtained the &lt;a href="http://www.siliconimage.com/support/searchresults.aspx?pid=63&amp;amp;cat=15" target="_blank"&gt;BIOS update utility and latest BIOS 4.2.84&lt;/a&gt;, upgraded the firmware and rebooted.&lt;/p&gt;  &lt;p&gt;This solved that problem, and the machine was able to complete startup and boot Windows XP successfully.&lt;/p&gt;  &lt;p&gt;I then tried to install Windows 7 from DVD onto the new Hitachi drive. First problem was that Windows 7 didn’t see the drive at all. Eventually I figured out that copying the &amp;quot;SiI3x12 32-bit Windows SATARAID Driver&amp;quot; to a USB flash drive, so then it could be loaded by the Windows 7 installer (don't make the mistake of trying the 'BASE' drivers – they're intended for motherboards, not cards).&lt;/p&gt;  &lt;p&gt;Now Windows 7 could see the drive, but it refused to install on the drive. Next stop was to change the motherboard BIOS to make the Hitachi drive the first drive (instead of the original RAID drive)&lt;/p&gt;  &lt;p&gt;That did it – Windows 7 was now able to install.&lt;/p&gt;  &lt;p&gt;One final thing to try out was whether Windows 7 could actually use the old driver for the Intel RAID controller. I located the 'drivers' folder (Program Files\Intel\Intel Matrix Storage Manager\Driver) and copied those files to somewhere that the Windows 7 installation could see them. Fearing a possible BSOD, I located the 'Intel 82801ER SATA RAID controller' entry in Device Manager, and upgraded the driver to this driver.. and it worked!&lt;/p&gt;  &lt;p&gt;So I was then able to backup files from the old RAID disks onto the new Hitachi (which I'd also split into two partitions). &lt;/p&gt;  &lt;p&gt;The good news is Windows 7 runs pretty well. I've still got a fair bit of migrating of applications but so far so good.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-7817965567514112647?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/MytO2h0KBfI" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-05T20:22:21.212+10:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/10/from-winxp-to-windows-7.html</feedburner:origLink></entry><entry><title type="text">Hotmail accounts hacked for sending iPhone spam</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/ZVciWUvcuWA/hotmail-accounts-hacked-for-sending.html" /><category term="WWW" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-09-28T17:02:05-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-9008313809547815114</id><content type="html">&lt;p&gt;I've had a few family and friends now who have apparently had their hotmail email accounts hacked for the purpose of sending spam to all the people in their contacts (including me!)&lt;/p&gt;  &lt;p&gt;The spam (who's grammar should make it obviously not from the original sender) takes the form of&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;hi,     &lt;br /&gt;how are you?      &lt;br /&gt;recently, I got a nice site: www.nottheoriginalsite.com      &lt;br /&gt;I brought some items from them. Wow, it is very nice.      &lt;br /&gt;low price and good quality (iphone new model 3GS 16 GB only 385 euro)      &lt;br /&gt;they also sell Wii, DJ, TV, laptop,camera and so on.       &lt;br /&gt;how do you think? login and have a look at it!      &lt;br /&gt;yours truly,&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;As best I can tell, they've done this either via guessing passwords or maybe via some kind of phishing attack. One reason for this belief is that for one incident I saw, the spam was saved in the sender's &amp;quot;Sent Items&amp;quot; folder, just like other regular email that they had sent.&lt;/p&gt;  &lt;p&gt;If you have a hotmail account, I'd strongly recommend you ensure your password is long enough to be extremely difficult to guess. A &lt;a href="http://en.wikipedia.org/wiki/Passphrase" target="_blank"&gt;passphrase&lt;/a&gt; instead of just a password is probably the best way to do this.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-9008313809547815114?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/ZVciWUvcuWA" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-29T09:32:05.461+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/09/hotmail-accounts-hacked-for-sending.html</feedburner:origLink></entry><entry><title type="text">Why Websense is stupid (and I told them so)</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/xVwcij4jf2Q/why-websense-is-stupid-and-i-told-them.html" /><category term="WWW" /><category term="Conferences" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-09-21T23:48:37-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-983798989047722709</id><content type="html">&lt;p&gt;One of the vendors who happened to be exhibiting at TechEd Australia this year was a company called Websense.&lt;/p&gt;  &lt;p&gt;They were giving away T-shirts, so it was only after I had received my free shirt from them that I then proceeded to tell them how stupid and horrible their software was.&lt;/p&gt;  &lt;p&gt;This seem to take the Websense staff a bit by surprise and they tried to defend their product assuring me with words to the effect that their software was wonderful and couldn't possibly be faulty and had the &amp;quot;largest database&amp;quot;. Well let me assure you &amp;quot;quantity&amp;quot; definitely does not equate to &amp;quot;quality&amp;quot;, and it may be no coincidence that their company name rhymes with &amp;quot;nonsense&amp;quot; :-)&lt;/p&gt;  &lt;p&gt;Don't believe me? Well take a look at this example:&lt;/p&gt;  &lt;p&gt;Try and browse &lt;a href="http://www.opensource.org/licenses/bsd-license.html"&gt;http://www.opensource.org/licenses/bsd-license.html&lt;/a&gt; through Websense and you are greeted with this response:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="100%" border="0"&gt;&lt;tbody&gt;       &lt;tr&gt;&lt;!-- This displays the reason why the user was blocked --&gt;       &lt;td valign="top" align="right"&gt;         &lt;p class="bold" id="ReasonLabel"&gt;Reason: &lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p id="ReasonText"&gt;The Websense category &amp;quot;Entertainment&amp;quot; is filtered.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td align="right"&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;         &lt;hr noshade="noshade" size="1" /&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;&lt;!-- This displays the URL the user attempted to surf --&gt;       &lt;td valign="top" align="right"&gt;         &lt;p class="bold" id="UrlLabel"&gt;URL: &lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p id="UrlText"&gt;http://www.opensource.org/licenses/bsd-license.html&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Presumably the legal department must have a fair bit of influence at Websense, Inc. as I don't think anyone else would consider reading software licenses 'Entertainment'.&lt;/p&gt;  &lt;p&gt;It just goes to reinforce the enhancement Mitch Denny made in his &lt;a href="http://david.gardiner.net.au/2009/09/tech-ed-2009-thursday.html" target="_blank"&gt;Software Development Pitfalls talk&lt;/a&gt; to point 5 of Jeff Attwood's &lt;a href="http://www.codinghorror.com/blog/archives/000666.html" target="_blank"&gt;Programmer's Bill of Rights&lt;/a&gt; :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Every programmer shall have a fast, &lt;em&gt;unfiltered&lt;/em&gt; internet connection&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Ah, we can but dream.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-983798989047722709?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/xVwcij4jf2Q" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-22T16:18:37.173+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/09/why-websense-is-stupid-and-i-told-them.html</feedburner:origLink></entry><entry><title type="text">BinScope and MiniFuzz</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/8mNr7S_GsoI/binscope-and-minifuzz.html" /><category term="Software Engineering" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-09-16T17:45:53-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-1017824870154643321</id><content type="html">&lt;p&gt;Following on from seeing &lt;a href="http://david.gardiner.net.au/2009/09/tech-ed-2009-thursday.html" target="_blank"&gt;Michael Howard at TechEd&lt;/a&gt; last week, here's a couple of new tools to help with analysing your applications for security issues.&lt;/p&gt;  &lt;p&gt;&amp;quot;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=90e6181c-5905-4799-826a-772eafd4440a#tm" target="_blank"&gt;BinScope&lt;/a&gt; is a verification tool that analyzes binaries on a project-wide level to ensure that they have been built in compliance with Microsoft’s Security Development Lifecycle (SDL) requirements and recommendations&amp;quot;&lt;/p&gt;  &lt;p&gt;&amp;quot;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=b2307ca4-638f-4641-9946-dc0a5abe8513#tm" target="_blank"&gt;MiniFuzz&lt;/a&gt; is a basic testing tool designed to help detect code flaws that may expose security vulnerabilities in file-handling code. This tool creates multiple random variations of file content and feeds it to the application to exercise the code in an attempt to expose unexpected and potentially insecure application behaviours&amp;quot;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-1017824870154643321?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/8mNr7S_GsoI" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-17T10:15:53.250+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/09/binscope-and-minifuzz.html</feedburner:origLink></entry><entry><title type="text">Tech-Ed 2009 – Friday</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/Bb4rkXPmFt0/tech-ed-2009-friday.html" /><category term="Conferences" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-09-13T04:55:45-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-8948085526936474559</id><content type="html">&lt;p&gt;Highlights&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Talking to Virtual PC Guy (Ben Armstrong) about his home HyperV machine that also runs Windows Home Server &lt;/li&gt;    &lt;li&gt;Watch Pete Calvert compete in one of the crazy competitions in the Mobile Smackdown &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;2008 R2 Virtualisation with &lt;a href="http://blogs.msdn.com/virtual_pc_guy/" target="_blank"&gt;Ben Armstrong&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Live migration – 1-1.5 seconds      &lt;ul&gt;       &lt;li&gt;Copies config, then up to 5 passes copying memory, then finally state (CPU etc) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Cluster shared volumes – allows direct access to NTFS &lt;/li&gt;    &lt;li&gt;Intel i7 – Hyperthreading is ok (not bad and may be good) &lt;/li&gt;    &lt;li&gt;VMQ – networking optimisation (feature of NIC) &lt;/li&gt;    &lt;li&gt;VM Memory Management      &lt;ul&gt;       &lt;li&gt;Uses shadow page tables to emulate page tables for each VM (avoids software emulation) &lt;/li&gt;        &lt;li&gt;For i7, AMD gen3 Quad &lt;/li&gt;        &lt;li&gt;Huge positive impact for 75 &lt;/li&gt;        &lt;li&gt;Solves performance issue with 3D video support &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Deferred procedure calls (used by device drivers) now run on local core instead of core 0. &lt;/li&gt;    &lt;li&gt;Power efficiency      &lt;ul&gt;       &lt;li&gt;Core parking (really processor parking) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Timer coalescing      &lt;ul&gt;       &lt;li&gt;align Windows timer ticks &lt;/li&gt;        &lt;li&gt;Allows processor to deep sleep/save power &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Native VHD      &lt;ul&gt;       &lt;li&gt;Don't need to use passthru for performance anymore &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;VHD Boot      &lt;ul&gt;       &lt;li&gt;WIM2VHD (Codeplex) &lt;/li&gt;        &lt;li&gt;Create VHD through Disk Management &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;.NET 4 Parallel Extensions with &lt;a href="http://www.acorns.com.au/Blog/" target="_blank"&gt;Corneliu Tusnea&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Need to watch out for locking &lt;/li&gt;    &lt;li&gt;Parallel extensions now part of .NET Framework &lt;/li&gt;    &lt;li&gt;Parallel.For/Parallel.ForEach &lt;/li&gt;    &lt;li&gt;New concurrent collections &lt;/li&gt;    &lt;li&gt;Automatically allocate work to to each core &lt;/li&gt;    &lt;li&gt;Task, Task&amp;lt;&amp;gt; &lt;/li&gt;    &lt;li&gt;PLinq      &lt;ul&gt;       &lt;li&gt;Need to partition data to cores &lt;/li&gt;        &lt;li&gt;Depends on underlying type – eg. List or IEnumerable &lt;/li&gt;        &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.linq.parallelenumerable.asparallel%28VS.100%29.aspx" target="_blank"&gt;AsParallel&lt;/a&gt;() &lt;/li&gt;        &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd383949%28VS.100%29.aspx" target="_blank"&gt;AsSequential&lt;/a&gt;() – to revert to single core &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Debugging      &lt;ul&gt;       &lt;li&gt;Parallel tasks window &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Big Algorithms in F# with &lt;a href="http://callvirt.net/blog/" target="_blank"&gt;Joel Pobar&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Functional Programming avoids state and mutable data &lt;/li&gt;    &lt;li&gt;Increase modularity and composability &lt;/li&gt;    &lt;li&gt;F# interactive &lt;/li&gt;    &lt;li&gt;Search      &lt;ul&gt;       &lt;li&gt;fuzzy matching (&lt;a href="http://en.wikipedia.org/wiki/Levenshtein_distance" target="_blank"&gt;Levenshtein distance&lt;/a&gt;) &lt;/li&gt;        &lt;li&gt;Polynomial &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Recommendation engine (Netflix)      &lt;ul&gt;       &lt;li&gt;Nearest Neighbour algorithm &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Mobile Smackdown&lt;/h4&gt;  &lt;p&gt;This was bizarre and quite crazy in a mostly good way. Because I'd won a token from the WCF talk, I got get a front-row (well second to front) seat and got a pile of goodies on my seat.&lt;/p&gt;  &lt;p&gt;The basic rule of the smackdown was that anytime a demo failed assorted pieces of &amp;quot;swag&amp;quot; would be thrown into the audience.. Hence the audience were keen to see things fail!&lt;/p&gt;  &lt;p&gt;Quite a few new Windows Mobile phones, headsets, mice and other nice prizes were given way.&lt;/p&gt;  &lt;p&gt;I was also pleased to see that this year, no cat food was involved in any of the competitions (unlike the session from last year)&lt;/p&gt;  &lt;h4&gt;Final thoughts&lt;/h4&gt;  &lt;p&gt;So did I get my money's worth? Yes, I think so. I felt I learned or was exposed to new things in almost every session I attended. It was also great to catch up with lots of friends and familiar faces.&lt;/p&gt;  &lt;p&gt;While the Gold Coast isn't the most convenient venue to get to from Adelaide, I do think the convention centre does an excellent job looking after and catering for everyone. No complaints about the food!&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://h10010.www1.hp.com/wwpc/au/en/sm/WF06a/321957-321957-64295-306995-306995-3872994.html" target="_blank"&gt;HP Mini 2140&lt;/a&gt; netbook is really nice. I think it was quite innovative to allow all delegates to be able to participate in the conference in an online fashion. Wireless network access at the convention centre worked pretty well considering how many concurrent users it had to cope with. Depending on which way the wind blew, I could sometime connect even when I returned to my motel room (which was just across the road). I've given my netbook to Narelle and I think she's pretty impressed already.&lt;/p&gt;  &lt;p&gt;Maybe I missed them in the crowd, but I wonder if the days of UniSA sending &amp;gt;10 delegates are over as I didn't bump into any old colleagues this year. It did feel different not having Gary, Dat, Mark around or bumping into familiar faces from IT.&lt;/p&gt;  &lt;p&gt;Finally I do especially appreciate the sacrifice my family made (both in my time away from home and financially) to allow me to attend.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-8948085526936474559?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/Bb4rkXPmFt0" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-13T21:25:45.720+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/09/tech-ed-2009-friday.html</feedburner:origLink></entry><entry><title type="text">Tech-Ed 2009 – Thursday</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/6FERfk_YPDI/tech-ed-2009-thursday.html" /><category term="Conferences" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-09-13T04:26:44-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-3374316395498157168</id><content type="html">&lt;p&gt;I woke up Thursday morning feeling pretty good, until I sneezed. &lt;/p&gt;  &lt;p&gt;Unfortunately the sneeze triggered another back spasm, so by the time I got over to the conference centre, I was not feeling super-comfortable. I felt a little better as the day progressed but it meant I did end up having to stand for most of the sessions to avoid aggravating things even more.&lt;/p&gt;  &lt;p&gt;Highlights&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Discovering Michael Howard also has a &amp;quot;Mr Happy&amp;quot; T-shirt – just like the one I was wearing during his session. &lt;/li&gt;    &lt;li&gt;Mitch has great clip-art in his presentations &lt;/li&gt;    &lt;li&gt;Winning a token to the Mobile Smackdown by answering a question in the WCF talk (don't call WCF proxies in a 'using' block as the Close() method can raise exceptions) &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Software Development Pitfalls with &lt;a href="http://notgartner.wordpress.com/" target="_blank"&gt;Mitch Denny&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Reality – software development is hard &lt;/li&gt;    &lt;li&gt;68% of projects still fail (2004) &lt;/li&gt;    &lt;li&gt;Failure #1 - &amp;quot;Customers must understand all requirements&amp;quot; &lt;/li&gt;    &lt;li&gt;Failure #2 - &amp;quot;Fixed price solutions&amp;quot; &lt;/li&gt;    &lt;li&gt;Define the vision &lt;/li&gt;    &lt;li&gt;Roles &lt;/li&gt;    &lt;li&gt;SketchFlow &lt;/li&gt;    &lt;li&gt;&amp;quot;It's about value, not frameworks&amp;quot; &lt;/li&gt;    &lt;li&gt;Minimise waste &lt;/li&gt;    &lt;li&gt;Villan #1 – Scope Creep &lt;/li&gt;    &lt;li&gt;Villan #2 – Big &amp;quot;A&amp;quot; architect (doesn't have Visual Studio installed)      &lt;ul&gt;       &lt;li&gt;Planning Poker &lt;/li&gt;        &lt;li&gt;Keep team stable &lt;/li&gt;        &lt;li&gt;Pick team members for how they relate to the rest of the team &lt;/li&gt;        &lt;li&gt;Resourcing not just about people &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Villan #3 - &amp;quot;Pony-tail network admins&amp;quot;      &lt;ul&gt;       &lt;li&gt;Developers are different &lt;/li&gt;        &lt;li&gt;Need a good PC &lt;/li&gt;        &lt;li&gt;Developers' Bill of Rights &lt;/li&gt;        &lt;li&gt;Rent servers by the hour &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;What's new in .NET 4 and VS 2010 with &lt;a href="http://adamcogan.spaces.live.com/" target="_blank"&gt;Adam Cogan&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Visual Studio 2010&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Add references improved performance (kind of) &lt;/li&gt;    &lt;li&gt;Multi-line editing &lt;/li&gt;    &lt;li&gt;Code navigation &lt;/li&gt;    &lt;li&gt;Call hierarchy &lt;/li&gt;    &lt;li&gt;SharePoint support &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;C#&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Optional parameters &lt;/li&gt;    &lt;li&gt;Named parameters &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;VB&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Less requirements for line continuation character &amp;quot;_&amp;quot; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;ASP.NET&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SEO (Routing), RedirectPermanent &lt;/li&gt;    &lt;li&gt;Live data-binding – two-way binding &lt;/li&gt;    &lt;li&gt;MVC &lt;/li&gt;    &lt;li&gt;Query extensions &lt;/li&gt;    &lt;li&gt;Deployment &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;SDL with &lt;a href="http://blogs.msdn.com/michael_howard/" target="_blank"&gt;Michael Howard&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;SDL Goals:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Reduce vulnerabilities &lt;/li&gt;    &lt;li&gt;Reduce severity of missed vulnerabilities &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Identify primary security/privacy contact &lt;/li&gt;    &lt;li&gt;Security training &lt;/li&gt;    &lt;li&gt;Track security bugs &lt;/li&gt; &lt;/ul&gt;  &lt;ol&gt;   &lt;li&gt;Strong signing and ACPTA &lt;/li&gt;    &lt;li&gt;Secure Crypto      &lt;ol&gt;       &lt;li&gt;configurable algorithms (use a factory class) &lt;/li&gt;        &lt;li&gt;Use standard libraries &lt;/li&gt;        &lt;li&gt;Use appropriate algorithms &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Firewall &lt;/li&gt;    &lt;li&gt;Threat models &lt;/li&gt;    &lt;li&gt;Support UAC &lt;/li&gt;    &lt;li&gt;Granular feature control &lt;/li&gt;    &lt;li&gt;Grant minimal privileges (drop privileges on service startup) &lt;/li&gt;    &lt;li&gt;Use minimum code gen suite (eg. latest compiler) &lt;/li&gt;    &lt;li&gt;Use /GS &lt;/li&gt;    &lt;li&gt;Use Safe Exception Handling &lt;/li&gt;    &lt;li&gt;MIDL &lt;/li&gt;    &lt;li&gt;Use ASLR &lt;/li&gt;    &lt;li&gt;Use DEP &lt;/li&gt;    &lt;li&gt;Defect heap corruption &lt;/li&gt;    &lt;li&gt;No writable PE segments &lt;/li&gt;    &lt;li&gt;Don't use banned APIs &lt;/li&gt;    &lt;li&gt;Encode long-lived pointers &lt;/li&gt;    &lt;li&gt;Use FxCop &lt;/li&gt;    &lt;li&gt;Use /analyze &lt;/li&gt;    &lt;li&gt;Use SAL &lt;/li&gt;    &lt;li&gt;Use /W4 &lt;/li&gt;    &lt;li&gt;Native code XML Parsers &lt;/li&gt;    &lt;li&gt;XSS &lt;/li&gt;    &lt;li&gt;Safe tags without attributes &lt;/li&gt;    &lt;li&gt;Use ViewStateUserKey &lt;/li&gt;    &lt;li&gt;Don't use JavaScript eval() &lt;/li&gt;    &lt;li&gt;Safe redirects &lt;/li&gt;    &lt;li&gt;SQL execute only &lt;/li&gt;    &lt;li&gt;Use parameterised queries &lt;/li&gt;    &lt;li&gt;Use stored procedures &lt;/li&gt;    &lt;li&gt;Don't depend on NTLM &lt;/li&gt;    &lt;li&gt;Don't swallow all exceptions (rethrowing is ok though) &lt;/li&gt;    &lt;li&gt;Safe error messages &lt;/li&gt;    &lt;li&gt;Fuzz testing &lt;/li&gt;    &lt;li&gt;Application Verifier &lt;/li&gt;    &lt;li&gt;Device drivers &lt;/li&gt; &lt;/ol&gt;  &lt;h4&gt;Security for Developers with Michael Howard&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;How do I sell security to management?      &lt;ul&gt;       &lt;li&gt;Sell privacy and reliability &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;#1 skill developer should have      &lt;ul&gt;       &lt;li&gt;All data is evil unless proven otherwise &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;#1 skill testers should have      &lt;ul&gt;       &lt;li&gt;fuzz testing &lt;/li&gt;        &lt;li&gt;!exploitable (WinDBG) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;#1 skill designers/architects should have      &lt;ul&gt;       &lt;li&gt;threat modelling &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;What does the bad guy control? &lt;/li&gt;    &lt;li&gt;The Turkish &amp;quot;I&amp;quot; problem &lt;/li&gt;    &lt;li&gt;Why should I not use RC4 &lt;/li&gt;    &lt;li&gt;Don't use ECB mode &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;WCF Scaling with Chris Hewitt&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Instance management (PerCall) &lt;/li&gt;    &lt;li&gt;Service throttling 3.5/4.0 &lt;/li&gt;    &lt;li&gt;Threading IIS6/7 &lt;/li&gt;    &lt;li&gt;Cache the channel factory and channel &lt;/li&gt;    &lt;li&gt;Proxies can explode      &lt;ul&gt;       &lt;li&gt;Use proxy wrapper &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Don't really need wrapper for basicHttp binding as there are no sessions &lt;/li&gt;    &lt;li&gt;Large data – stream mode &lt;/li&gt;    &lt;li&gt;Binary encoding – even over HTTP&lt;/li&gt;    &lt;li&gt;PerSession with durable services &lt;/li&gt;    &lt;li&gt;SSL load balancing behaviour &lt;/li&gt;    &lt;li&gt;&amp;quot;Dublin&amp;quot; – WAS extensions &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Thursday night a whole stack of coaches drove all 2,500 delegates to Dreamworld. I'm not big on rides, but it was nice to have a look around, grab some tea, and catch up with &lt;a href="http://blog.spencen.com/" target="_blank"&gt;Nigel&lt;/a&gt;, then bump into &lt;a href="http://www.codeassassin.com/blog/" target="_blank"&gt;Jason&lt;/a&gt; and a couple of the guys from GraysOnline (Australia's biggest online retailer, which I'd never heard of until a few months ago).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-3374316395498157168?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/6FERfk_YPDI" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-13T20:56:44.016+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/09/tech-ed-2009-thursday.html</feedburner:origLink></entry><entry><title type="text">Tech-Ed 2009 – Wednesday</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/qb_7Yk8qpjM/tech-ed-2009-wednesday.html" /><category term="Conferences" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-09-15T04:45:25-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-1151041785476860489</id><content type="html">&lt;p&gt;Wednesday morning's keynote started the conference off at 8.15am. Highlights of some of the new features of Windows 7, Server 2008 R2 and Visual Studio 2010 were demoed.&lt;/p&gt;  &lt;p&gt;They also took some photos of the attendees which have ended up as a &lt;a href="http://www.msteched.com/australia/Public/Deep-Zoom.aspx" target="_blank"&gt;deep-zoom photo&lt;/a&gt;. See if you can spot that guy near the front in the orange (actually bright red) shirt :-)&lt;/p&gt;  &lt;p&gt;I attended the following sessions. Bullet points are transcripts of the notes I wrote for each session, so they may or may not make much sense sometimes!&lt;/p&gt;  &lt;h4&gt;SQL 2008 R2 with Mark Souza&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Base engine is basically unchanged &lt;/li&gt;    &lt;li&gt;&amp;quot;Gemini&amp;quot; add-in for Excel can efficiently process millions of rows of data in memory &lt;/li&gt;    &lt;li&gt;Data-tier Application Component      &lt;ul&gt;       &lt;li&gt;unit of deployment &lt;/li&gt;        &lt;li&gt;virtualise connection strings &lt;/li&gt;        &lt;li&gt;can be moved between servers &lt;/li&gt;        &lt;li&gt;supports updating and running custom scripts &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Complex event processing &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The DAC stuff looked interesting, and appears as though it will be a useful way to deploy and update database schemas.&lt;/p&gt;  &lt;h4&gt;ASP.NET MVC with &lt;a href="http://damianedwards.wordpress.com/" target="_blank"&gt;Damien Edwards&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Sample site hooizdat.com &lt;/li&gt;    &lt;li&gt;Model-binding instead of data-binding &lt;/li&gt;    &lt;li&gt;Unit testing      &lt;ul&gt;       &lt;li&gt;arrange-act-assert &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Includes AJAX javascript library and JQuery &lt;/li&gt;    &lt;li&gt;Mobile      &lt;ul&gt;       &lt;li&gt;restrictions on cache size &lt;/li&gt;        &lt;li&gt;mdbf.codeplex.com – mobile device compatibility &lt;/li&gt;        &lt;li&gt;mobile-aware view engine &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Optimistion      &lt;ul&gt;       &lt;li&gt;Reduce HTTP requests &lt;/li&gt;        &lt;li&gt;PowerShell post-build script to strip/compress/optimise javascript and CSS files &lt;/li&gt;        &lt;li&gt;Switch to condensed javascript file (single file instead of multiple includes) in release mode &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The optimisation stuff was interesting – concatenating multiple js files into one to reduce the number of HTTP requests.&lt;/p&gt;  &lt;h4&gt;WCF and WF in .NET 4.0 with &lt;a href="http://blogs.msdn.com/graham_elliott/" target="_blank"&gt;Graham Elliot&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Simplified configuration      &lt;ul&gt;       &lt;li&gt;Able to figure out default endpoints from bindings &lt;/li&gt;        &lt;li&gt;Set default behaviours by omitting names in configuration &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Service discovery      &lt;ul&gt;       &lt;li&gt;Dynamic endpoints          &lt;ul&gt;           &lt;li&gt;ad-hoc – good within a subnet &lt;/li&gt;            &lt;li&gt;managed – uses a discovery proxy &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;Routing &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Improved REST support &lt;/li&gt;    &lt;li&gt;WF 4      &lt;ul&gt;       &lt;li&gt;XAML-only &lt;/li&gt;        &lt;li&gt;Activity library &lt;/li&gt;        &lt;li&gt;No state machine support &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;IIS 7.5 New Features with &lt;a href="http://blogs.technet.com/jorke/" target="_blank"&gt;Jorke Odolphi&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Support for Server Core on R2 – 64bit only &lt;/li&gt;    &lt;li&gt;Use DISM to install ASP.NET on Core &lt;/li&gt;    &lt;li&gt;FTP &lt;/li&gt;    &lt;li&gt;WebDAV &lt;/li&gt;    &lt;li&gt;Media Services (more integrated into IIS now)      &lt;ul&gt;       &lt;li&gt;smooth streaming &lt;/li&gt;        &lt;li&gt;demo of HyperV live migration whilst streaming video &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Web deployment tool &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Live migration of virtual machine whilst streaming video was impressive.&lt;/p&gt;  &lt;h4&gt;SQL High Availability with &lt;a href="http://sqlcat.com/members/Nicholas-Dritsas.aspx" target="_blank"&gt;Nicholas Dritsas&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;2008 SP1 can finally uninstall updates and service packs &lt;/li&gt;    &lt;li&gt;Support for HyperV – 1-2% impact if using newer hardware &lt;/li&gt;    &lt;li&gt;Mirroring enhancements      &lt;ul&gt;       &lt;li&gt;recover from I/O errors by copying from mirror &lt;/li&gt;        &lt;li&gt;log stream compression &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;ServiceU case study      &lt;ul&gt;       &lt;li&gt;Cluster at primary and DR sites &lt;/li&gt;        &lt;li&gt;Log shipping and async mirroring &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Connection string      &lt;ul&gt;       &lt;li&gt;use &amp;quot;Failover Partner=servername;&amp;quot; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Clustering new features      &lt;ul&gt;       &lt;li&gt;rolling node upgrade/patching &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Can use replication to migrate to a new server and have the ability to roll back to the original server should the upgrade fail. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;SQL Certification 70-432 Cram Session with &lt;a href="http://sqlblog.com/blogs/greg_low/" target="_blank"&gt;Greg Low&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Installing and configuring      &lt;ul&gt;       &lt;li&gt;Don't need Browser service running if using fixed port numbers &lt;/li&gt;        &lt;li&gt;Database mail depends on Service Broker &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Maintain SQL Server instances      &lt;ul&gt;       &lt;li&gt;Transparent database encryption – need to backup the certificate and private keys too &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Performing data migration tasks      &lt;ul&gt;       &lt;li&gt;Filtered INDEX can include a WHERE clause &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Monitoring and troubleshooting &lt;/li&gt;    &lt;li&gt;Optimise SQL Performance &lt;/li&gt;    &lt;li&gt;Implementing High Availability      &lt;ul&gt;       &lt;li&gt;Log shipping can be a good way to upgrade to a new server &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Not sure if I'll do this exam, but Greg did a nice job giving an overview of the required knowledge, and we got tea as well.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-1151041785476860489?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/qb_7Yk8qpjM" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-15T21:15:25.133+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/09/tech-ed-2009-wednesday.html</feedburner:origLink></entry><entry><title type="text">Tech-Ed 2009 Arrival</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/H8zJfNLF5ng/tech-ed-2009-arrival.html" /><category term="Conferences" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-09-08T05:26:03-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-3191268801924358471</id><content type="html">&lt;p&gt;The day almost didn’t happen when I realised I'd left my wallet in the car after being dropped off at the airport. Some frantic phone calls managed to catch Narelle before she'd driven too far! Boy did I feel silly!&lt;/p&gt;  &lt;p&gt;The flights to Melbourne and then to Brisbane were uneventful, and made a bit more comfortable by being upgraded to exit seats (my legs appreciate the extra room). I'd had some of my Melbourne flights automatically upgraded when I was flying over to see Nanna before she died and for her funeral, and I also discovered that often you can ask to be moved to an exit seat – if you don't ask, you won't get.&lt;/p&gt;  &lt;p&gt;Next the AirTrain down to the Gold Coast. I took advantage of booking the taxi when I collected my tickets at Brisbane airport, so they were there to pick me up from the train station and drive me directly to my motel.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.broadbeachmotel.com.au/" target="_blank"&gt;The motel&lt;/a&gt; is directly opposite the convention centre, so you can't get a more convenient location. My priorities were to get something as cheap as possible, and it probably is a case of getting what you pay for. The room is very simple – bed, TV, bar fridge and bathroom. No, it isn't the Sydney Hilton by any means, but as I'm paying for it out of my own pocket, I'm quite content.&lt;/p&gt;  &lt;p&gt;After dropping of my bags in my room, I wandered across the road and met up with &lt;a href="http://msmvps.com/blogs/robfarley/" target="_blank"&gt;Rob&lt;/a&gt;. Wearing our shirts we looked like the Lobsterpot Solutions Twins :-)&lt;/p&gt;  &lt;p&gt;There was a nice dinner on offer as part of the welcome party (I do have good memories of conference catering at the Gold Coast!) and a chance to be introduced to many of Rob's contacts, survey the expo stalls and grab a few freebies for the kids.&lt;/p&gt;  &lt;p&gt;One interesting thing I learned while chatting to one of the guys (I think it was Vaughan Knight) was that he had to change the topic of his talk because Microsoft were dropping the Live Services Framework – including Live Mesh. I've been using Live Mesh a bit (including as a way for the band-members of &lt;a href="http://www.sevenfoldband.com" target="_blank"&gt;sevenfold&lt;/a&gt; to collaborate and share lyrics, recordings and other documents), but apparently it will shortly be no more, which is a real shame.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-3191268801924358471?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/H8zJfNLF5ng" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-08T21:56:03.036+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/09/tech-ed-2009-arrival.html</feedburner:origLink></entry><entry><title type="text">Catching up</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/5_94fG9ZKKM/catching-up.html" /><category term="Family" /><category term="Life" /><category term="Hardware" /><category term="Conferences" /><category term="Podcasts" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-09-07T05:12:25-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-5452109177778622386</id><content type="html">&lt;p&gt;It's been a little while between posts, and there's been a couple of reasons for that..&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://david.gardiner.net.au/2009/08/ouch-again.html"&gt;That back injury&lt;/a&gt; has been persisting a lot longer that I'd hoped&lt;/li&gt;    &lt;li&gt;My Grandma (Nanna) Jean was hospitalised and then passed away recently&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Nanna was 96, and had pretty much been living independently in her house right up until she suffered a massive stroke. She hung on long enough for the family to travel interstate to Geelong Hospital to spend time with her before she died. &lt;/p&gt;  &lt;p&gt;I flew over to say goodbye to her (she wasn't able to speak but was alert and had limited movement), and then returned to Geelong a week later to attend the funeral service. Then last week her body was brought back over to Adelaide where she was buried.&lt;/p&gt;  &lt;p&gt;My back injury seemed to be healing well initially but a work field trip (spent largely sitting in a car) was not helpful and things seemed to plateau for too long. I've taken to avoiding sitting as much as possible – including standing on the bus to/from work and even standing in some meetings. &lt;/p&gt;  &lt;p&gt;Some more &amp;quot;enthusiastic&amp;quot; (aka painful but effective!) treatment from my Chiro and a follow-up remedial massage session seem to be helping. I'm sure my work colleagues would prefer to see me being able to sit down for most of the day rather than doing yoyo impersonations :-)&lt;/p&gt;  &lt;p&gt;Ironically my iPod Shuffle appears to have succumbed to the dreaded &amp;quot;flashing LEDs of death&amp;quot; – annoyingly on the flight home from the Geelong funeral service, so &lt;a href="http://david.gardiner.net.au/2009/08/podcasts-i-listening-too.html"&gt;all those podcasts&lt;/a&gt; will have to wait until I come up with a replacement plan.&lt;/p&gt;  &lt;p&gt;And to top it all off, tomorrow I'm heading off to the &lt;a href="http://www.msteched.com/australia/Public/default.aspx" target="_blank"&gt;Microsoft TechEd Conference 2009&lt;/a&gt; at the Gold Coast Convention Centre. I well may be the conference delegate who stands up in the sessions rather than taking a seat.&lt;/p&gt;  &lt;p&gt;Oh, and additional congratulations to &lt;a href="http://www.lobsterpot.com.au/" target="_blank"&gt;LobsterPot Solutions&lt;/a&gt;, as they are now a Gold Certified Partner. Was it that long ago they were just plain &lt;a href="http://david.gardiner.net.au/2009/08/congratulations-lobsterpot-solutions.html"&gt;Certified&lt;/a&gt;?! I'll be proudly wearing a LobsterPot shirt at TechEd and lending my support to raise the profile of &lt;a href="http://msmvps.com/blogs/robfarley/" target="_blank"&gt;Rob&lt;/a&gt;'s company.&lt;/p&gt;  &lt;p&gt;No doubt I'll be posting more about TechEd in the next few days..&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-5452109177778622386?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/5_94fG9ZKKM" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-07T21:42:25.039+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/09/catching-up.html</feedburner:origLink></entry><entry><title type="text">Media Browser for Vista Media Center</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/er2ZzBLUSpg/media-browser-for-vista-media-center.html" /><category term="HTPC" /><category term="Vista" /><category term="Podcasts" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-10-10T23:05:02-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-8967991308388441864</id><content type="html">&lt;p&gt;I came across this useful &lt;a href="http://www.mediabrowser.tv" target="_blank"&gt;Media Center plugin recently&lt;/a&gt;. As well as providing an alternate interface to browse media files it also includes an RSS reader which I've successfully configured to watch some interesting video podcasts:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://feeds.feedburner.com/DnrtvWmv" target="_blank"&gt;dnrTV&lt;/a&gt; - .NET Rocks TV&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/Feeds/RSS/" target="_blank"&gt;10-4&lt;/a&gt; – New features of Visual Studio 2010 and .NET Framework 4.0&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ted.com/talks/rss" target="_blank"&gt;TED&lt;/a&gt; – Talks from the annual Technology, Entertainment, Design conferences&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.podshow.com/feeds/wwwscraptimeca.xml" target="_blank"&gt;Scrap Time&lt;/a&gt; – A Scrapbooking video podcast for Narelle &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It is free, and is being actively developed on &lt;a href="http://code.google.com/p/videobrowser/" target="_blank"&gt;Google Code&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-8967991308388441864?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/er2ZzBLUSpg" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-11T16:35:02.421+10:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/08/media-browser-for-vista-media-center.html</feedburner:origLink></entry><entry><title type="text">Podcasts I'm listening to</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/l_G6l72gaBw/podcasts-i-listening-too.html" /><category term="Podcasts" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-08-20T18:35:43-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-3035553129651205086</id><content type="html">&lt;p&gt;For a long time now I've been listening to podcasts – first on on the &lt;a href="http://david.gardiner.net.au/2007/01/hp-ipaq-rw6828-rom-update.html" target="_blank"&gt;iPAQ rw6828&lt;/a&gt;, then a &lt;a href="http://david.gardiner.net.au/2007/11/new-phone.html" target="_blank"&gt;HTC TyTN II&lt;/a&gt;, and more recently my &lt;a href="http://david.gardiner.net.au/2008/09/new-toy.html" target="_blank"&gt;iPod Shuffle&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;My original subscriptions were:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://feeds.feedburner.com/netRocksFullMp3Downloads" target="_blank"&gt;.NET Rocks&lt;/a&gt; – Carl and Richard talk about .NET stuff&lt;/li&gt;    &lt;li&gt;&lt;a href="http://feeds.feedburner.com/HanselminutesCompleteMP3" target="_blank"&gt;Hanselminutes&lt;/a&gt; – Scott interviews interesting people&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.abc.net.au/science/k2/podcast/drk_rss.xml" target="_blank"&gt;Dr Karl on Triple J&lt;/a&gt; – Dr Karl's Science Talkback from Triple J Radio&lt;/li&gt;    &lt;li&gt;&lt;a href="http://feeds.feedburner.com/RunasRadio" target="_blank"&gt;RunAs Radio&lt;/a&gt; – The IT Professional version of .NET Rocks&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;At the suggestion of &lt;a href="http://laany.blogspot.com"&gt;Ben&lt;/a&gt; and &lt;a href="http://blog.spencen.com"&gt;Nigel&lt;/a&gt; I added:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://feeds.feedburner.com/altnetpodcast" target="_blank"&gt;ALT.NET Podcast&lt;/a&gt; – ALT.NET things – nothing new recently&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blog.stackoverflow.com/index.php?feed=podcast" target="_blank"&gt;Stack Overflow&lt;/a&gt; – Joel and Jeff talk about Stack Overflow&lt;/li&gt;    &lt;li&gt;&lt;a href="http://feeds2.feedburner.com/HerdingCode" target="_blank"&gt;Herding Code&lt;/a&gt; - &lt;/li&gt;    &lt;li&gt;&lt;a href="http://feeds.feedburner.com/Pixel8" target="_blank"&gt;Pixel8&lt;/a&gt; – Craig Shoemaker on user experience&lt;/li&gt;    &lt;li&gt;&lt;a href="http://polymorphicpodcast.com/podcast/feed/" target="_blank"&gt;Polymorphic Podcast&lt;/a&gt; – Craig Shoemaker on .NET&lt;/li&gt;    &lt;li&gt;&lt;a href="http://se-radio.net/rss" target="_blank"&gt;Software Engineering Radio&lt;/a&gt; – Interviews on broad range of computer science topics&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;And I've also added:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://feeds.feedburner.com/radiotfs" target="_blank"&gt;Radio TFS&lt;/a&gt; – Team Foundation Server&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sqldownunder.com/SQLDownUnderMP3Feed.xml" target="_blank"&gt;SQL Down Under&lt;/a&gt; – Greg Low's interviews with SQL experts&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.sqlsnapshots.com/SQLSnapshotsMP3Feed.xml" target="_blank"&gt;SQL Snapshots&lt;/a&gt; (coming soon) – Also from Greg Low, I found out about this via &lt;a href="http://msmvps.com/blogs/robfarley/" target="_blank"&gt;Rob&lt;/a&gt; after mentioning to him the idea of a podcast for a &amp;quot;Talking Books&amp;quot; version of the SQL Books Online.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The best way I've found so far to get the podcasts onto the Shuffle is to use &lt;a href="http://www.winamp.com" target="_blank"&gt;WinAmp&lt;/a&gt; and the &lt;a href="http://sourceforge.net/projects/mlipod/" target="_blank"&gt;ml_ipod&lt;/a&gt; plugin. WinAmp does come with an built-in iPod plugin, but I've found ml_ipod provides superior support, including synchronising podcasts – something iTunes won't do for a Shuffle at all.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-3035553129651205086?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/l_G6l72gaBw" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-21T11:05:43.624+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/08/podcasts-i-listening-too.html</feedburner:origLink></entry><entry><title type="text">Ouch again</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/bA0W5rUUo3s/ouch-again.html" /><category term="Life" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-08-09T04:43:26-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-7587986535852196880</id><content type="html">&lt;p&gt;I'm a &lt;a href="http://david.gardiner.net.au/2009/03/aspnet-mvc-10-and-ouch.html" target="_blank"&gt;sorry and sore case again&lt;/a&gt;. My back gave out a few minutes into the first half of a game of Basketball on Saturday. Despite initial cries of &amp;quot;foul&amp;quot; from my teammates I quickly realised that the only reason I'd fallen to the floor in pain was an all too familiar but dreaded feeling in my lower back. One I'd hoped I'd never have to endure again. &lt;/p&gt;  &lt;p&gt;It's so annoying as I'd been trying really hard to keep up the stretching and strengthening exercises given to me since the last incident. I realise this also doesn't just impact me - it messed up the rest of the weekend for my whole family, which is extremely frustrating.&lt;/p&gt;  &lt;p&gt;Maybe it's an indicator that I need to think about other forms of exercise, and my body isn't as young and flexible as it once might have been? Or maybe the timing is appropriate for me to make the transition from player to supportive parent. We'll see.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-7587986535852196880?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/bA0W5rUUo3s" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-09T21:13:26.262+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/08/ouch-again.html</feedburner:origLink></entry><entry><title type="text">Tracing the Sync Framework</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/6R1QgUXoq7k/tracing-sync-framework.html" /><category term="DotNet" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-08-03T08:21:42-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-7735860790219320205</id><content type="html">&lt;p&gt;Using the Sync Framework (aka Sync Services for ADO.NET) can feel a bit like a black box. You implement some classes, override some methods, call &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.synchronization.syncagent.synchronize.aspx" target="_blank"&gt;Synchronize()&lt;/a&gt; and it all just magically happens.. &lt;/p&gt;  &lt;p&gt;Except when it doesn't. Sometime strange things can happen, and it would be nice to know a bit more about what Sync is doing under the hood. Unfortunately this is one product that Microsoft haven't release source code for, so you can't step into it with your debugger.&lt;/p&gt;  &lt;p&gt;That was where I thought the story ended until I stumbled upon this topic on MSDN – &lt;a href="http://msdn.microsoft.com/en-us/library/cc807160.aspx" target="_blank"&gt;How to trace the Synchronization Process&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;So add some stuff to your app.config file and you should get a little more information about what is really going on.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-7735860790219320205?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/6R1QgUXoq7k" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-04T00:51:42.966+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/08/tracing-sync-framework.html</feedburner:origLink></entry><entry><title type="text">Congratulations LobsterPot Solutions</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/1gvV1P-LA5Q/congratulations-lobsterpot-solutions.html" /><category term="SQL" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-08-02T15:30:00-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-6462782733131153079</id><content type="html">&lt;p&gt;I see that Adelaide's own SQL Server-specialist consulting company – &lt;a href="http://www.lobsterpot.com.au/" target="_blank"&gt;LobsterPot Solutions&lt;/a&gt; – are now a Microsoft Certified Partner (Data Management Solutions, Business Intelligence).&lt;/p&gt;  &lt;p&gt;Well done &lt;a href="http://msmvps.com/blogs/robfarley/" target="_blank"&gt;Rob&lt;/a&gt;!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-6462782733131153079?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/1gvV1P-LA5Q" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-03T08:00:00.482+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/08/congratulations-lobsterpot-solutions.html</feedburner:origLink></entry><entry><title type="text">Registered for Microsoft Tech-Ed 2009</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/06VggJ2wc-w/registered-for-microsoft-tech-ed-2009.html" /><category term="Work" /><category term="Conferences" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-08-01T03:26:58-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-936725459146567940</id><content type="html">&lt;p&gt;The life of a contract programmer can be a lonely one. Well I guess it would be if you never spoke to anyone and live on a island all by yourself, but I didn't mean it quite like that. One of the things about being a &amp;quot;regular&amp;quot; employee of a company is that most places have some kind of professional development programme. Our old team at UniSA was no different, and we were always encouraged to attend conferences and training opportunities that would enhance our skills and benefit both us and the institution.&lt;/p&gt;  &lt;p&gt;But now it's been over 12 months since I left the the safe and familiar confines of the Flexible Learning Centre building at the old Underdale campus. I spent a short time at DECS and the remainder has been at &lt;a href="http://www.abb.com.au/"&gt;ABB Grain Ltd&lt;/a&gt;. A side-effect of that was I wasn't able to attend Tech-Ed last year, though &lt;a href="http://david.gardiner.net.au/2008/08/and-winner-is.html"&gt;not for lack of trying&lt;/a&gt;!&lt;/p&gt;  &lt;p&gt;This year I was thinking I'd miss out again, but after mentioning the group discount and free netbook with my wife, she encouraged me not to dismiss going altogether. I ran through the figures including likely travel and accommodation costs, and while it isn't cheap we can manage it. At least the cost can be claimed on tax which is better than nothing.&lt;/p&gt;  &lt;p&gt;So to cut a long story short(er), I've now registered and will be heading off to the Gold Coast in about 6 weeks time. I am also very appreciative of my wife, as I'm aware it will be a lot of work managing the kids while I'm away. She did say if I go again next year, she wants to come too (Not to the conference, but just for the holiday!) Sounds good to me :-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-936725459146567940?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/06VggJ2wc-w" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-01T19:56:58.960+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/08/registered-for-microsoft-tech-ed-2009.html</feedburner:origLink></entry><entry><title type="text">.NET Framework source code</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/NgJ24XpcFy8/net-framework-source-code.html" /><category term="DotNet" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-07-29T20:38:05-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-7331898845715754190</id><content type="html">&lt;p&gt;I knew that Microsoft were making it possible to Step Into .NET source code when you are debugging (if you &lt;a href="http://referencesource.microsoft.com/serversetup.aspx" target="_blank"&gt;configured Visual Studio&lt;/a&gt; to use the correct symbol and source server), but I didn't know that you can &lt;a href="http://referencesource.microsoft.com/netframework.aspx" target="_blank"&gt;download the entire source&lt;/a&gt; by itself as well.&lt;/p&gt;  &lt;p&gt;They currently have various bits of .NET 3.5, ASP.NET MVC and WCF. Hopefully more will follow.&lt;/p&gt;  &lt;p&gt;More details are on the &lt;a href="http://blogs.msdn.com/rscc/" target="_blank"&gt;Reference Source Code Center Team Blog&lt;/a&gt;, and there's a &lt;a href="http://social.msdn.microsoft.com/forums/en-US/refsourceserver/threads/" target="_blank"&gt;forum too&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-7331898845715754190?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/NgJ24XpcFy8" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-30T13:08:05.045+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/07/net-framework-source-code.html</feedburner:origLink></entry><entry><title type="text">P2P online backup</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/73PwS0LLJE0/p2p-online-backup.html" /><category term="Software" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-07-27T05:28:45-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-4484794552226692604</id><content type="html">&lt;p&gt;Very rarely you see an online ad that is interesting.. Today I noticed one for &lt;a href="http://www6.crashplan.com/consumer/index.html" target="_blank"&gt;CrashPlan&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;They offer both a free and paid online backup solution. The interesting thing about the free version is that you back up your data on your friends' or family's computers (rather than a central remote server). Quite a novel approach. About the only downside is that the free version apparently is ad-supported. Not sure how annoying they would be.&lt;/p&gt;  &lt;p&gt;I think all the computers would need to be online at the same time for backups to work properly. Presumably the same would apply if you needed to do a restore too. Something to take into consideration.&lt;/p&gt;  &lt;p&gt;There is also a paid offering too (for orphans or people without any friends?)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-4484794552226692604?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/73PwS0LLJE0" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-27T21:58:45.978+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/07/p2p-online-backup.html</feedburner:origLink></entry><entry><title type="text">Updating assembly versions in Visual Studio project files</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/3EquUUZh6zQ/updating-assembly-versions-in-visual.html" /><category term="PowerShell" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-07-22T22:20:09-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-7371747326605837504</id><content type="html">&lt;p&gt;Sometimes you need to update all the references to a particular assembly so that they use a newer version than the original one that was added to the project.&lt;/p&gt;  &lt;p&gt;One option is to manually edit the references for each project, removing and re-adding the assembly.&lt;/p&gt;  &lt;p&gt;Option two, which is a bit nicer, is to use something like this PowerShell script:&lt;/p&gt;  &lt;p&gt;&lt;code&gt;Get-ChildItem -recurse -filter &amp;quot;*.*proj&amp;quot; | Foreach-Object { (Get-Content $_.FullName) | Foreach-Object { $_ -replace &amp;quot;1.0.3.0&amp;quot;, &amp;quot;1.1.0.0&amp;quot; } | Set-Content $_.FullName }&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;In this example, we are replacing instances of &amp;quot;1.0.3.0&amp;quot; with &amp;quot;1.1.0.0&amp;quot; – handy if you just happened to be upgrading to the latest version of &lt;a href="http://www.castleproject.org" target="_blank"&gt;Castle&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Note the use of the parentheses () around the Get-Content - without those you'll end up with an Access Denied error as it will be trying to &lt;a href="http://www.vistax64.com/powershell/2514-weirdness-get-content-replace-set-content-file-content-deleted.html" target="_blank"&gt;write to the same file it is reading from&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-7371747326605837504?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/3EquUUZh6zQ" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-23T14:50:09.023+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/07/updating-assembly-versions-in-visual.html</feedburner:origLink></entry><entry><title type="text">CodeCampSA 2009 – Day 2</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/Nl2cWJVe4g0/codecampsa-2009-day-2.html" /><category term="Conferences" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-07-19T04:24:24-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-6533495856309711133</id><content type="html">&lt;h3&gt;Presentation notes&lt;/h3&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/nigel-spencer#2009" target="_blank"&gt;Nigel Spencer – WPF in 2010&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Easing functions – affect animation velocity &lt;/li&gt;    &lt;li&gt;Behaviours &lt;/li&gt;    &lt;li&gt;Demo of customising Visual Studio home page – XAML-based &lt;/li&gt;    &lt;li&gt;Model View ViewModel – templates &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/greg-low#2009" target="_blank"&gt;Greg Low – Spatial SQL&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;sys.spatial_reference_systems &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/dave-glover#2009" target="_blank"&gt;Dave Glover – Windows 7 APIs&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Windows 7 Training Kit &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/omar-besiso#2009" target="_blank"&gt;Omar Besiso&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Sync Framework (seemed strangely familiar!) &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/jason-stangroome#2009" target="_blank"&gt;Jason Stangroome – PowerShell and build automation&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Join-Path &lt;/li&gt;    &lt;li&gt;Use pipeline if possible      &lt;ul&gt;       &lt;li&gt;% { } (same as foreach) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Example of using netstat to confirm that build service is listening on specified port &lt;/li&gt;    &lt;li&gt;Recommend reading - &lt;a href="http://www.amazon.com/Release-Production-Ready-Software-Pragmatic-Programmers/dp/0978739213%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Ddavesdayd-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0978739213"&gt;Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)&lt;/a&gt; by Michael Nygard. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/jason-schluter#2009" target="_blank"&gt;Jason Schluter – Silverlighter&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;XHTML to Silverlight converter &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/james-chapman-smith#2009" target="_blank"&gt;James Chapman-Smith – Model View ViewModel and Unit Testing&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;ViewModel handles      &lt;ul&gt;       &lt;li&gt;UI logic &lt;/li&gt;        &lt;li&gt;input validation &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Thought while observing Jame's code – could you have INotifyPropertyChanged take a lamba expression instead of a string? – &lt;a href="http://www.ingebrigtsen.info/post/2009/07/11/Extensions-and-Helpers-for-Silverlight-and-WPF.aspx" target="_blank"&gt;Apparently yes&lt;/a&gt;! &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/peter-cornish#2009" target="_blank"&gt;Peter Cornish – AdWords&lt;/a&gt;&lt;/h4&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-6533495856309711133?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/Nl2cWJVe4g0" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-19T20:54:24.262+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/07/codecampsa-2009-day-2.html</feedburner:origLink></entry><entry><title type="text">CodeCampSA 2009 – Day 1</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/Qrs4SqyP4hs/codecampsa-2009-day-1.html" /><category term="Conferences" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-07-19T04:23:38-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-221893302431153736</id><content type="html">&lt;h3&gt;Presentation notes&lt;/h3&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/david-gardiner#2009" target="_blank"&gt;David Gardiner – Generating Unit Tests with Pex&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Fantastic &lt;/li&gt;    &lt;li&gt;Inspirational &lt;/li&gt;    &lt;li&gt;I wish I could present like this guy &lt;/li&gt;    &lt;li&gt;:-) &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/anthony-borton#2009" target="_blank"&gt;Anthony Borten – TFS 2010&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Always try to install TFS, SharePoint and Build on separate servers if possible &lt;/li&gt;    &lt;li&gt;Make sure you launch config tool immediately from the installer &lt;/li&gt;    &lt;li&gt;Note the 'test' buttons to check your server names &lt;/li&gt;    &lt;li&gt;Team Foundation Administration Console &lt;/li&gt;    &lt;li&gt;Branching – better in 2010 &lt;/li&gt;    &lt;li&gt;Team Build      &lt;ul&gt;       &lt;li&gt;Build controller &lt;/li&gt;        &lt;li&gt;Build agent &lt;/li&gt;        &lt;li&gt;Gated checkins &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Allan Baird – UniSA&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Industry partnerships – opportunities to have students work for 6 or 12 month placements. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/rob-farley#2009" target="_blank"&gt;Rob Farley – The problem with BEGIN and END in T-SQL functions&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Useful tool - &amp;quot;fences&amp;quot; – hides desktop icons &lt;/li&gt;    &lt;li&gt;Generally modularisation in T-SQL is good &lt;/li&gt;    &lt;li&gt;Funny joke about COUNT(dracula) &lt;/li&gt;    &lt;li&gt;Compare two queries – one using a user-defined function, the other just has SQL      &lt;ul&gt;       &lt;li&gt;function query appears to run faster according to query plans &lt;/li&gt;        &lt;li&gt;BUT, using SQL Profiler, it is actually much less efficient &lt;/li&gt;        &lt;li&gt;SQL sees BEGIN/END and can't inline the function &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/liam-mclennan#2009" target="_blank"&gt;Liam McLennan – MVC is better than WebForms&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;WebForms is to imperial as MVC is to metric &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/tatham-oddie#2009" target="_blank"&gt;Tatham Oddie – WebForms are better than MVC&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Used WebForms for graysonline &lt;/li&gt;    &lt;li&gt;Used application/xml mimetype to validate XHTML content with Firefox during testing &lt;/li&gt;    &lt;li&gt;XHTML 1.1 templates for Visual Studio &lt;/li&gt;    &lt;li&gt;Tool to convert bad HTML to valid XHTML &lt;/li&gt;    &lt;li&gt;.NET 4.0 – Can disable page-level ViewState, but enable it on specific controls &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/scott-barnes#2009" target="_blank"&gt;Scott Barnes – Silverlight&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Was a Flash developer before joining Microsoft &lt;/li&gt;    &lt;li&gt;400 million downloads of Silverlight &lt;/li&gt;    &lt;li&gt;Biggest competitor - HTML+JS! &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/anthony-borton#2009" target="_blank"&gt;Anthony Borton – VSTS 2010&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Eliminating no-repro bugs &lt;/li&gt;    &lt;li&gt;Virtual Lab Management &lt;/li&gt;    &lt;li&gt;Test Case Management      &lt;ul&gt;       &lt;li&gt;Record against real application &lt;/li&gt;        &lt;li&gt;Fast forward through test steps &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Microsoft Test and Lab Manager &lt;/li&gt;    &lt;li&gt;Replay – re-run test including launching application under test &lt;/li&gt;    &lt;li&gt;Coded UI Test      &lt;ul&gt;       &lt;li&gt;Test builder – records UI actions &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;&lt;a href="http://sites.google.com/a/codecampsa.com/home/speakers/paul-turner#2009" target="_blank"&gt;Paul Turner – SharePoint branding tips and tricks&lt;/a&gt;&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Start with minimal master page &lt;/li&gt;    &lt;li&gt;Enable debugging &lt;/li&gt;    &lt;li&gt;Position tool pane &lt;/li&gt;    &lt;li&gt;Standard delegates (My Site etc) &lt;/li&gt;    &lt;li&gt;Site actions &lt;/li&gt;    &lt;li&gt;Digest (MAC) &lt;/li&gt;    &lt;li&gt;Understand CSS      &lt;ul&gt;       &lt;li&gt;Add custom CSS with CssRegistration &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Don't put JS in master page &lt;/li&gt;    &lt;li&gt;Async JS with defer &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-221893302431153736?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/Qrs4SqyP4hs" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-19T20:53:38.695+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/07/codecampsa-2009-day-1.html</feedburner:origLink></entry><entry><title type="text">Bringing Developers and Designers closer together (eventually, sort of)</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/KdWUsQUY5hs/bringing-developers-and-designers.html" /><category term="Software" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-07-15T05:43:25-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-3078677153835557732</id><content type="html">&lt;p&gt;When Microsoft released their Expression suite of products, the marketing claim was that they could be used to edit the very same source files that the developers were working on.&lt;/p&gt;  &lt;p&gt;BUT, while Visual Studio 2005 included TFS, the obvious integration with any of the Expression products was missing. So the marketing claim was a bit hollow. Yes, you technically &amp;quot;could&amp;quot; work on the same files, but it was going to be a clunky experience.&lt;/p&gt;  &lt;p&gt;So it is ironic that yet again, a &lt;a href="http://blogs.msdn.com/bharry/archive/2009/07/14/expression-blend-3-has-tfs-integration.aspx" target="_blank"&gt;version 3 product finally appears to get it right&lt;/a&gt;. Note this announcement refers to Expression Blend, and it isn't clear whether Expression Web has similar capabilities.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-3078677153835557732?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/KdWUsQUY5hs" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-15T22:13:25.065+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/07/bringing-developers-and-designers.html</feedburner:origLink></entry><entry><title type="text">The art of Unit Testing with Examples in .NET</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DavesDaydreams/~3/XdZApUG9Bac/art-of-unit-testing-with-examples-in.html" /><category term="Unit Testing" /><category term="Books" /><category term="DotNet" /><author><name>David Gardiner</name><email>noreply@blogger.com</email><uri>http://www.blogger.com/profile/02636945252155832647</uri></author><updated>2009-07-14T06:22:01-07:00</updated><id>tag:blogger.com,1999:blog-10782889.post-4698189105182050876</id><content type="html">&lt;div style="float: left"&gt;&lt;a href="http://www.amazon.com/Art-Unit-Testing-Examples-NET/dp/1933988274%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Ddavesdayd-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1933988274"&gt;&lt;img alt="The Art of Unit Testing: with Examples in .NET " src="http://ecx.images-amazon.com/images/I/51%2BsvpKrtNL.jpg" /&gt;       &lt;br /&gt;The Art of Unit Testing: with Examples in .NET&lt;/a&gt; by Roy Osherove&lt;/div&gt;  &lt;p&gt;I recently bought a copy of &lt;a href="http://www.amazon.com/Art-Unit-Testing-Examples-NET/dp/1933988274%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Ddavesdayd-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1933988274"&gt;The Art of Unit Testing: with Examples in .NET&lt;/a&gt; by Roy Osherove, taking advantage of a discount being offered by Manning. &lt;/p&gt;  &lt;p&gt;Already owning &lt;a href="http://www.amazon.com/xUnit-Test-Patterns-Refactoring-Addison-Wesley/dp/0131495054%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Ddavesdayd-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0131495054"&gt;xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series)&lt;/a&gt; by Gerard Meszaros and &lt;a href="http://www.amazon.com/Working-Effectively-Legacy-Robert-Martin/dp/0131177052%3FSubscriptionId%3D0JTCV5ZMHMF7ZYTXGFR2%26tag%3Ddavesdayd-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0131177052"&gt;Working Effectively with Legacy Code (Robert C. Martin Series)&lt;/a&gt; by Michael Feathers, I was interested to see what new insights Osherove would bring, especially as he would be focussing purely on the .NET platform (code samples are in C#).&lt;/p&gt;  &lt;p&gt;The book is divided into 4 sections.&lt;/p&gt;  &lt;p&gt;Part 1 (which I skimmed through) was an introduction to unit testing. Osherove uses &lt;a href="http://www.nunit.org" target="_blank"&gt;NUnit&lt;/a&gt; for his examples which is reasonable considering it is probably the most popular unit testing framework for .NET at the moment.&lt;/p&gt;  &lt;p&gt;His preferred naming convention for test methods is interesting – &amp;quot;[MethodUnderTest]_[Scenario]_[ExpectedBehaviour]&amp;quot;. It contrasts with the &amp;quot;natural sentence&amp;quot; style I currently favour (which I'd trace back to &lt;a href="http://blog.jpboodhoo.com/" target="_blank"&gt;Jean-Paul Boodhoo&lt;/a&gt;'s unit testing episodes on &lt;a href="http://www.dnrtv.com/default.aspx?showNum=10" target="_blank"&gt;dnrTV&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;He also recommends naming test classes with a &amp;quot;Tests&amp;quot; suffix. I've always used the singular &amp;quot;Test&amp;quot;, but I take his point that each test class does contain multiple tests so plural may be more accurate.&lt;/p&gt;  &lt;p&gt;Part 2 introduces stubs, mock objects and isolation frameworks (aka mock object frameworks). Following a &lt;a href="http://weblogs.asp.net/rosherove/archive/2007/04/26/choosing-a-mock-object-framework.aspx" target="_blank"&gt;poll held on Osherove's blog&lt;/a&gt;, &lt;a href="http://ayende.com/projects/rhino-mocks.aspx" target="_blank"&gt;Rhino Mocks&lt;/a&gt; was chosen to demonstrate how a framework can simplify creating mock objects. I could be wrong, but you almost get a sense that this was done somewhat grudgingly considering Osherove himself works for &lt;a href="http://www.typemock.com/" target="_blank"&gt;TypeMock&lt;/a&gt; (who sell a commercial mocking framework). Curiously whilst including a link to the Rhino Mocks download site, he doesn't even mention Ayende's name at all.&lt;/p&gt;  &lt;p&gt;Osherove makes the following recommendations about stubs and mocks:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Use nonstrict mocks when you can &lt;/li&gt;    &lt;li&gt;Use stubs instead of mocks when you can &lt;/li&gt;    &lt;li&gt;Avoid using stubs as mocks &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I found this interesting, as we've been writing a lot of unit tests lately, and one of the things we're coming to realise is that brittle tests can be annoying. Tests that still test your code, but are more flexible about exactly how the code under test works (rather than setting strict expectations for each and every method call) are going to be more useful and less effort to maintain.&lt;/p&gt;  &lt;p&gt;Part 3 looks at various strategies for organising tests and a number of patterns and anti-patterns to follow when creating tests.&lt;/p&gt;  &lt;p&gt;Part 4 covers how to make unit testing the norm in an organisation, and how to work with legacy code.&lt;/p&gt;  &lt;p&gt;Having some experience writing unit tests, I did find this book a bit light on. Osherove references Meszaros and Feather's books regularly. I would also consider both of these works cover the topic in a more detailed and thorough manner. However they are probably not necessarily as good a starting point for someone new to unit testing, especially someone who's main experience lies in developing for the .NET platform.&lt;/p&gt;  &lt;p&gt;I finished the book surprisingly quickly – pleased that I'd learned a few new things, but left feeling that it would have been nice to learn a few more.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10782889-4698189105182050876?l=david.gardiner.net.au'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DavesDaydreams/~4/XdZApUG9Bac" height="1" width="1"/&gt;</content><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-14T22:52:01.918+09:30</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://david.gardiner.net.au/2009/07/art-of-unit-testing-with-examples-in.html</feedburner:origLink></entry></feed>
