# Wednesday, 15 July 2009
Finally, XP2Win7 is released! I've been watching this one for a long time. It's designed to show off both Windows 7 features and development good practices. The same binaries behave differently on XP and on 7 - on 7 it lights up and shows 7 features like the taskbar or libraries support, as well as Vista features that never got the attention they deserve like Restart and Recovery.

The application itself is a photo viewer and that makes it a natural fit for hooking into libraries, search and organize, and the preview system. It has an intuitive jump list on the taskbar:

It also uses the new Sensor support, Aero glass effects, trigger-started services for backing up images when a USB key is inserted, MMC and Powershell integration, the new Event Tracing for Windows (ETW) and so much more. This will be your roadmap to Windows 7 development. Of course all the code is available, as well as a simple MSI if you'd just like to play with the application a bit and understand what Windows 7 has to offer.

Get your copy and start learning and exploring!

Kate

Wednesday, 15 July 2009 09:32:56 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 13 July 2009

A whole pile of really smart people, many of whom I am lucky enough to call my friends, have contributed to a new eBook on development topics. Check these titles:

  • Working with Brownfield Code by Donald Belcham (Microsoft MVP)
  • Beyond C# and VB by Ted Neward (Microsoft MVP)
  • Remaining Valuable to Employers featuring Barry Gervin, Billy Hollis, Bruce Johnson, Scott Howlett, Adam Cogan, and Jonathan Zuck
  • All I Wanted Was My Data by Barry Gervin (Microsoft Regional Director and MVP)
  • Efficiency Upgrade by Derek Hatchard (Microsoft Regional Director and MVP)
  • Getting Started with Continuous Integration by Sondre Bjellås (Microsoft Regional Director and MVP)
  • On Strike at the Software Factory by Daniel Crenna (Microsoft MVP)
  • C# Features You Should Be Using by Ted Neward (Microsoft MVP)
  • Accelerate Your Coding with Code Snippets by Brian Noyes (Microsoft Regional Director and MVP)
  • Is Silverlight 2 Ready for Business Applications? by Jonas Follesø (Microsoft Regional Director and MVP)
  • Innovate with Silverlight 2 by Daniel Crenna (Microsoft MVP)
  • Real World WPF: Rich UI + HD by Gill Cleeren (Microsoft Regional Director and MVP)
  • Hidden Talents by Peter Jones
  • Creating Useful Installers with Custom Actions by Christian Jacob
  • Banking with XML by Peter Jones
  • Sending Email by Derek Hatchard (Microsoft Regional Director and MVP)

Also, it has comics in it. Really. And if you prefer a printed copy, you can order one (black and white or colour) at a nominal cost. And these aren't little blog posts, they're decent length articles. All told the PDF is 132 pages. Each article conveys, on top of the technical information you'd expect, a glimpse into the personality and style of the author. A highly recommended download and read.

Update: This whole recommending thing works even better when you include a link: http://devshaped.com/book. Slow brain day today, I guess.

Kate

Monday, 13 July 2009 13:00:57 (Eastern Daylight Time, UTC-04:00)  #    
# Saturday, 11 July 2009
Remember that post by Aaron Margolis I linked to about launching a non elevated app from an elevated one? I mentioned that he'd left the managed version of his code as an exercise for the reader. Well Sasha Goldshtein has taken up that challenge and written the managed code. Not only that, he's added it to his UAC Helpers project on CodePlex, a collection of code that helps you work with UAC. Nice!

Kate

Saturday, 11 July 2009 17:22:20 (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, 09 July 2009

We have a long running Agile project underway. Every month or so we deliver a new release, then work with the customer to decide what will be in the next release. Unlike many Agile shops, this isn't our only project - we have other small software development projects, mentoring work, and so on that take up about two thirds of the team's time, leaving one third for this project. What's more, we do this as a little fixed bid project every month, and both my bottom line and the customer are happy with the cost of each release. The key to that, of course, is accurate estimation of the effort in each iteration.

In some ways we have it easy now. The client has working code, and each month all we need to estimate are the changes and additions to that code. But how would it be if we were starting from nothing and planning to build a whole big system over the course of a year or so, for someone who wanted a fixed cost up front and a reasonably complete list of features to be delivered for that cost? Stephen Forte gave a talk recently on just that topic. Plenty of good ideas and a fun listen.

Kate

Thursday, 09 July 2009 07:38:19 (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, 07 July 2009

I do a lot of work in VB, though I am a C++ MVP not a VB one. This year at the MVP Summit many of the VB MVPs did short interviews with Beth Massi about how they got started and what they do in VB. Get to know some of these folks a little better. I spotted Julie Lerman, Rob Windsor, Ken Getz, Deborah Kurata, Daron Yondem, Jackie Goldstein, and even a thirteen year old! It's a mix of video interviews and text ones, and a very small time committment.

Kate

Tuesday, 07 July 2009 07:31:52 (Eastern Daylight Time, UTC-04:00)  #    
# Sunday, 05 July 2009

Ian McKenzie has a funny list of 20 ways to tell you're Canadian. My only quibble is that for #4 I would say cottage instead of camp. Other than that, rock on!

Kate

Sunday, 05 July 2009 19:09:17 (Eastern Daylight Time, UTC-04:00)  #    
# Friday, 03 July 2009

At Tech Ed this year, a whole pile of my friends (and me too) were invited to pontificate a little on fairly light weight technical topics like "what technology have you enjoyed lately?" and "how do you keep up with everything that's changing all the time?". The result is a fun series featuring luminaries inside and outside Microsoft: Scott Hanselman, Billy Hollis, me, Richard Campbell, Stephen Forte, Clemens Vasters, Tim Huckaby, Michele Leroux Bustamente, Jim Wilt, Brian Noyes, Loke Uei Tan, Matt Hessinger, Don Box, Juval Lowy, Jeffrey Palermo, and Tim Heuer. They're being uploaded one a week or so - you can get started now and enjoy more later.

Here's a direct link to mine if you need it: http://msdn.microsoft.com/en-us/dd776253.aspx

Kate

Friday, 03 July 2009 17:08:51 (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, 01 July 2009

So I guess I am totally having a "get off my lawn" moment here. I read, on a blog I generally enjoy reading, the following rant about "bad customer service":

  • Why am I still required to fill out my personal details (city, birth date, job title) while registering on web sites, when all they need to do is fetch that data from my LinkedIn page?
  • Why does my new Internet provider give me a new email address (which I won't use), requiring me to read that mailbox regularly for service updates? Why not send me tweets?
  • Why do I have to go to the web site of my vendor of contact lenses to re-order my monthly set of lenses? Why not enable me to send a "reorder" message through Facebook?
  • Why does the agile 2009 conference require that I upload my presentation to their site, in PDF form with maximum size of 5 MB? Why not integrate with the much more advanced SlideShare where I already have an account?
  • Why do I get offers for products that I clearly don't want or that I already own, which can be easily deduced from my reviews, ratings, and rantings on various social sites?

Prior to this bulleted list was a complaint that an ISP hadn't magically noticed that some emails weren't reaching the ranter, and didn't email about it, or didn't go figure out what @tag to use in a Tweet so that their customer would know there was a problem with some emails. I mean really, "send me a tweet"? Tweets are broadcast messages, not one-on-one communication, aren't they?

Good heaven. If I went to a random web site and on the registration page entered "Kate Gregory" (or "Barack Obama") and it trundled off to LinkedIn and filled in where I live, what I do, my birthday etc I would be majorly creeped out and want nothing to do with that web site. Maybe, just maybe, I would be ok with a button that said "go find this out on the public web" but I doubt it. I think OpenID is a better way to go, and I do appreciate that most Microsoft sites now just let me use my Live ID, but for sites with no business relationship to share what they know about me just creeps me right out. Reorder contact lenses on Facebook? What does Facebook have to do with buying stuff from completely unrelated third parties? Why would it be a good thing to put intermediaries (Facebook, Twitter etc) in all my transactions? The big excitement of Web 1.0 was that it took intermediaries out of the picture and let me interact directly with the producers of the things I wanted to buy. One of the major inconveniences of Web 2.0 is excited under-30's (sorry to generalize, a handful of over-30's are excited like this too) making me sign up for yet another account on yet another Social Networking Silver Bullet that they are going to use to manage their event/project/party/virtual team.

I disagree with the fourth bullet, too. I would much rather just be told where to upload my stuff and be done with it. I also have some empathy for folks who want to use the same way to communicate with everyone on a reasonably large list. Can you imagine the job (probably unpaid in his or her free time) of the conference organizer who says "everybody please put your slides somewhere, anywhere on the web that works for you, and send me the link, and here are links to free places you can put your slides in case you're not on SlideShare." And this organizer probably still has to run the upload-your-slides here site for everyone who doesn't have an account somewhere else. And has to accept and send not just emails about it (with or without links) but also tweets, blog posts, and comments on one speaker's YouTube channel and another speaker's CodePlex project home page, because why should they be obliged to look in more than one place for attempts to communicate? And then this poor organizer needs to know how to download from 10 or 20 different document sharing sites, and register for notifications if they're changed, because the speaker figures uploading new docs and not telling anyone will be fine, since after all the site sends notifications if they're changed.

The last bullet is hilarious. Dude, I get offers for things that I clearly don't want. The spammers can't be bothered to check my gender or what country I live in. You really think they're going to check your MySpace to see you already tried acai berry and whether it worked for you or not?

But under all that rankling and disagreeing is the germ of a really important truth. Just as David Platt likes to say "Know your Customer, for he is not you", I can see that I might not offer enough options to the millennials, and they might not offer enough options to my and my fellow post-boomers. It's an interesting culture clash considering we write software for each other, and one that's worth thinking about. If a customer service department doesn't offer service the way you want it, if the conference speaker wrangler doesn't wrangle speakers the way they want to be wrangled, if my software doesn't let you talk back to me the way you want to talk back to me and if I don't listen when you talk the way you want to, then that's a problem. Hmmm.

Kate

Wednesday, 01 July 2009 16:51:06 (Eastern Daylight Time, UTC-04:00)  #