# Thursday, 23 November 2006

Has someone sent you a .docx file yet? That's the Word 2007 file format.  (The new Excel format is .xlsx, the new Powerpoint is .pptx, and so on.) The first time I tried to open one with Word 2003, I got a helpful dialog offering to get and install the converter for me, and I did, and now I can move the files back and forth around my network without concern. But a few people have mentioned to me that they didn't get this helpful dialog. You can hand-download and install the converter from the Office preview site. Make sure you are up to date on Office Service Packs... there are links from the download page. And though the converter says it's for the Technical Refresh 2, it has worked fine for me on files created with earlier betas.

Kate

Thursday, 23 November 2006 14:02:09 (Eastern Standard Time, UTC-05:00)  #    
# Wednesday, 22 November 2006

I don't have a tag cloud on this blog yet because I haven't figured out how to do it with dasblog. But I think they're cool when I see them on other people's blogs. I came across a site that uses the cloud approach (larger fonts mean more occurrences) to report on word frequency in US presidential speeches. It's really neat to see Constitution fade over time, while economy or economic stays always there, and new words rise up. Play with the slider a little. I wonder what other bodies of text you could apply tag clouds to? I wonder what all the powerpoints on this laptop would produce?

Kate

Wednesday, 22 November 2006 13:43:56 (Eastern Standard Time, UTC-05:00)  #    
# Tuesday, 21 November 2006

When Microsoft discovers a bug in a product, whether it's Windows, Visual Studio, or some other product, they typically fix it. And once that fix is tested and working, the question becomes how to deploy it. Sure, you can put the corrected code into the next version of the product, but that might be years away. There are service packs, but they are pretty far apart, and for good reason. So the first deployment vehicle is the hotfix or QFE (Quick Fix Engineering.) These are typically available only from support and only after you've convinced support you're facing the problem that the hotfix takes care of. (At least, that's the theory. Since a hotfix is a single file, people can and do share them although I suspect you're not supposed to.)

Now there's a new pilot program underway where some hotfixes are being made public, so that you don't have to wait for a service pack. Of course you should approach this with caution, but it can make investigating those hard problems a little smoother. At the moment I see seven hotfixes there: three are for Visual C++.

Kate

Tuesday, 21 November 2006 12:56:15 (Eastern Standard Time, UTC-05:00)  #    
# Monday, 20 November 2006

Ed Bott has published some advanced tips for Vista. My favourite? Master the Quick Launch bar, including the Add to Quick Launch context menu item and (I didn't know this) keyboard shortcuts for the items in the Quick Launch. More reasons piling up why I want to move this laptop to Vista ... not much longer!

Kate

Monday, 20 November 2006 12:24:17 (Eastern Standard Time, UTC-05:00)  #    
# Sunday, 19 November 2006

XPS is a new document format. Office 2007 uses it, and your applications can use it too. Under the hood, an XPS document is just a zip file of many XML files and some binary resources (such as images.) The Microsoft XPS page says:

Microsoft has integrated XPS-based technologies into the 2007 Microsoft Office system and the Microsoft Windows Vista operating system, but XPS itself is platform independent, openly published, and available royalty-free. Microsoft is using XPS to bring additional document value to its customers, its partners, and the computing industry.

Since XPS documents describe layout and rendering as well as just content, you can think of them a lot like PDF files. As a result they're likely to show up on web sites or to be emailed to you. If you haven't yet moved up to Vista/Office 2007/IE7 you may not know what to do with them.

The solution is a free XPS viewer. It's up to you whether you want it integrated into IE6 -- I got the standalone viewer from the XPS Essentials. Took only a minute or so to download and install, and I didn't even have to reboot. Get it and be one of the cool kids again.

Kate

Sunday, 19 November 2006 07:58:15 (Eastern Standard Time, UTC-05:00)  #    
# Saturday, 18 November 2006

Microsoft's Developer Division is really taking this transparency thing seriously. First it opened much of the spec for Orcas, the next version of Visual Studio, to the MVPs, and now it's opening it to the public. Seriously! And not only that, but they're asking you how you feel about these features:

Which features do you think are important? Are we making the wrong assumptions about how you will use Visual Studio and .NET? Are we forgetting about your scenario?

This page lists specifications for Visual Studio and .NET "Orcas". These specifications document the new features you will find in CTP's and provide an opportunity for you to give feedback. Please remember, some features specified below may be cut and others may be significantly altered. We'd love your feedback to help us with this decision process. Your feedback will be delivered into our bug database and shared with the feature team. The team will use your feedback to develop the specification or make improvements to future releases of Visual Studio.

So how important is STL/CLR to you? Or friend templates? Read the specs and scenarios, try them out in the September CTP, then speak up!

There are two things you should know about these documents. First, they can be quite large. The STL/CLR one is 38 pages. Second, they're XPS. On my Vista development machine, with IE7 and Office 2007, I just click to read them. On my XP machine with IE6 and Office 2003, it's not so seamless. Time to get me an XPS document viewer for the laptop.

Kate

Saturday, 18 November 2006 07:40:13 (Eastern Standard Time, UTC-05:00)  #    
# Friday, 17 November 2006

Microsoft Canada is running a contest. Nominate a developer (or team of developers) who is making software that makes a difference. Subscribe to the MSDN Flash (you should anyway) to make yourself an eligible nominator. Like the nomination form says:

Judges are seeking nominations that present an innovative solution that

  • defines how Microsoft technology (e.g. Visual Studio® development system, Microsoft® SQL Server™ 2005, Windows Vista™ operating system) played a role in making the solution possible;
  • not only helps your business, charity, or community but could help other businesses, charities or communities; and
  • has had a positive impact on a business or within the community.

And when I say "judges", I mean me, Mark Relph and Barnaby Jeans of Microsoft Canada, Stephen Ibaraki and Barry Gervin. Come on, impress us! Nominations are online-only.

And prizes? Of course there are prizes. Like actual cash money for the winning developer, the winning team, and their favourite charities. Not to mention a trip to Toronto (hotel and a plane ticket if you need it) to receive your prize. So what's stopping you? Heck, with a deadline of April 12th, you still have time to write the application and then enter! (Be sure to read the rules about telling the nominees you're nominating them, dealing with applications that use some third party code, and so on.)

Kate

Friday, 17 November 2006 07:27:22 (Eastern Standard Time, UTC-05:00)  #    
# Thursday, 16 November 2006

The nice folks at Microsoft Denmark have uploaded most of the materials from my recent talk. Thanks to Nikolaj for the link. All of this is in Danish but I suspect most of you will figure it out... my materials are in English once you get them. Højere produktivitet will soon be yours!

Kate

 

 

Thursday, 16 November 2006 10:03:01 (Eastern Standard Time, UTC-05:00)  #    
# Wednesday, 15 November 2006

The nice folks at O'Reilly, who make very good geeky books, have a fun little quiz going on. They show you a code snippet and you guess what book it's from. This is usually (but not always) a matter of guessing what the language is, and that's harder than you might think at first. There's a little timer counting down so the longer you take to make up your mind, the less points you get. Here's a really easy example:

<html>
  <body>
    <p>Here is a paragraph.
    <p>And here is another.
  </body>
</html>

Is that from:

  1. Gaming Hacks
  2. Learning XML, 2nd Edition
  3. GNU Emacs Pocket Reference
  4. HTML & XHTML: The Definitive Guide, 4th Edition

Trust me, most of them are much harder :-)

Kate

Wednesday, 15 November 2006 12:27:22 (Eastern Standard Time, UTC-05:00)  #    
# Tuesday, 14 November 2006

The recording of our panel at Tech Ed Developers Europe is now available at the .NET Rocks site. "Kate Gregory, Stephen Forte, and Roy Osherove join Richard Campbell and Carl Franklin on stage at TechEd Europe in Barcelona for this discussion about Agile methodologies." We enjoyed doing the show, the folks who were there in person asked plenty of questions, and I hope you enjoy listening to it.

Kate

Tuesday, 14 November 2006 12:05:04 (Eastern Standard Time, UTC-05:00)  #    
# Monday, 13 November 2006

Apparently a lot of people come to me for their physics experiment information, so I have an update. The pitchdrop experiment is listed as one of the longest running experiments ever. It surely must be one of the slowest.

Pitch, like glass, is a very very thick liquid that can be shattered and that most people think of as a solid. This experiment has been measuring its viscosity by timing the drops... they fall about once every 8 or 9 years. There have been 8 so far, most recently in November 2000, and no-one has ever seen one fall - that is, separate from the funnel. There's a webcam pointed at it, but it should be a while yet before you need to start monitoring it.

Kate

Monday, 13 November 2006 11:57:21 (Eastern Standard Time, UTC-05:00)  #    
# Sunday, 12 November 2006

Data tips are really cool. It's fun to drill down into containers and complex objects and really see what's going on:

So imagine you're in the debugger. You've expanded all this stuff, and you really understand what's in mapVectString now. It has two entries, each is a vector of strings, and you're looking at entry #1 and it has three strings, and you have a good mental picture of the object. Nice. So when I'm debugging, my next step is to say to myself what the code is going to do, given what the object holds. I know most of us do that -- we solve the bug before control even reaches the bad line. But there's one problem... these delightful data tips are covering up the code!

Now, you could move your mouse off the tips, let them fade, read the code, and bring them back again, but that isn't exactly fun or efficient. So try this instead. Press Ctrl. Nothing else, just press Ctrl by itself.

See that? the data tips go almost (but not completely) transparent. Let go of Ctrl and they come back! I bet the first time you try this you will press and release Ctrl a bunch of times with a silly grin on your face. I know I did. Enjoy! BTW, it appears to be Visual-Studio-wide so feel free to apply this tip to your VB and C# programming also.

Kate

Sunday, 12 November 2006 11:56:08 (Eastern Standard Time, UTC-05:00)  #    
# Saturday, 11 November 2006

The abstract promised:

If building games for the Xbox 360 or Windows gets you excited then you have to be at this event. For the first time, Microsoft will take you through the details of our (soon to be released) XNA Studio Express. If you didn’t already know, anyone can now build interactive, high performance games for Windows or Xbox 360. We’ll take you through an introduction to XNA and XNA Studio Express. Then we’ll equip you with the skills to start building games ranging from simple 2-D to stunning interactive 3-D.

And that's what we got!

As you can see, the space was JAMMED and the demographic skewed a little younger than your typical Microsoft event. There are more pictures at Barnaby's Flickr site, which is where I got this one :-)

Here's one I took myself, of a very nice gesture:

Since you probably can't read the letter I'll paraphrase it: "we know it's Remembrance Day, we've made a donation on behalf of the attendees, please take and wear a poppy." Christian Beauclair, who was speaking as 11:00 rolled around, paused us for our minute of silence and the room fell completely still.

A great introduction to both game development and the world of MSDN events for plenty of young people. XNA is really going to make things interesting for developers who want to just play and try things.

Kate

Saturday, 11 November 2006 13:29:18 (Eastern Standard Time, UTC-05:00)  #    
# Friday, 10 November 2006

One of the comments in the evals for my Barcelona talk was "extend it to a day!" Well that's just what Microsoft Denmark chose to do, giving me an entire day to talk about C++/CLI, moving to managed code, interop, combining MFC with WinForms, incredible IDE tricks that I promise you never knew, and the importance of concurrent programming going forward, along with some guidance about how to get there.

I had such a great time I forgot to be tired.... for a while.

I found that Danish has one thing in common with Spanish: I can kind of read it if I try. (Example: Danish for "fire" is "brand".) And I saw a LOT of bicycles. This is a country that gets just as cold as Canada, but people don't insist on driving everywhere. I spoke at a movie theatre and took this picture just outside:

That's right, a separate indoor parking lot for bikes. And it's full, so they're all over the sidewalk. Apparently all the visitors take pictures of the bikes.

I really enjoyed the talk. If anyone is reading this who thinks their local DPE group would welcome a C++ day, please drop me a line. Having a full day to do all the demos I don't normally have time was a marvelous experience.

Kate

Friday, 10 November 2006 13:17:41 (Eastern Standard Time, UTC-05:00)  #    
# Thursday, 09 November 2006

I had such a good time this week at Tech Ed Developers! I really enjoyed delivering my talk to a PACKED room (148 evaluations and apparently 155 chairs, how's that for interest in C++) as well as participating in the DotNetRocks panel on agility. This is my room, during my tech check (love that yellow highlight):

A week for me of old friends and new faces, and general good moods all around. And from what I read in the blogs, a week of real interest in C++ and especially C++/CLI.  Steve has a roundup over on the VC++ team blog. Bruno van Dooren, a C++ MVP, blogged all the talks and even though he said some overly flattering things about me I will still give you a link to his blog. Don't worry, my head still fits through normal-sized doors.

Here I am with Arfa, the eleven year old (look at the poise! And she's incredibly well spoken in English, her SECOND language) who has two Microsoft Certifications already. She actually did a demo in the keynote and when I complimented her on how she did, she turned it around and complimented me on how I handled panel duties at the Girl Geek Dinner. (Stress-wise, I had the way easier gig.) Keep your eye on her, she's going places.

Kate

C++ | MVP | Speaking
Thursday, 09 November 2006 13:05:59 (Eastern Standard Time, UTC-05:00)  #    
# Wednesday, 08 November 2006

Spotted in the speaker room in Barcelona:

That's right, donuts entirely coated in decent chocolate. Mmmmmmm.

For those keeping track, the MVP shoes are in this speaker room also. They follow me around :-)

Kate

Wednesday, 08 November 2006 08:20:49 (Eastern Standard Time, UTC-05:00)  #    
# Tuesday, 07 November 2006

Here I am at my second Tech Ed in three weeks and ready for a great time. The RDs already had a great dinner Monday night, and Tuesday is Girl Geek night. I've picked up an extra session, too, a panel discussion Wednesday afternoon:

DEVPD01 .NET Rocks! Talks Agile Development!

Carl Franklin , Richard Campbell , Stephen Forte , Roy Osherove , Kate Gregory

Wed Nov 8 15:15 - 16:30 Room 116

Enjoy a live audience recording of .NET Rocks as Carl and Richard bring together a group of serious thinkers on agile development for a no-holds barred debate on what works and what doesn’t in the world of agile. Bring yourselves and your questions to the panel and help create a future episode of .NET Rocks!

Kate

 

Tuesday, 07 November 2006 07:46:44 (Eastern Standard Time, UTC-05:00)  #    
# Monday, 06 November 2006

Tim Sneath has a neat trick: how to launch something "Run As Administrator" without right-clicking it and selecting from the context menu. And no, I don't mean use the ContextMenu key on your extended keyboard.

"Simply press Ctrl+Shift+Enter from the search bar on the start menu with a selected application, and that triggers elevation."

This is part of a series of useful tips you should probably read.

Kate

Monday, 06 November 2006 07:40:17 (Eastern Standard Time, UTC-05:00)  #    
# Sunday, 05 November 2006

How much story can you pack into six words? Apparently Hemingway wrote "For sale, baby shoes.  Never used." Aaaawww, so sad.  But for true pathos, how about the sad laments of cast-off programming languages? Who says "They’ll come crawling back. You’ll see!" or "I was it once! What happened?" Let me try my own for C++ right now:

Unmanaged APIs everywhere. It Just Works.

What do you think?

Kate

 

Sunday, 05 November 2006 06:27:53 (Eastern Standard Time, UTC-05:00)  #    
# Saturday, 04 November 2006

http://msdn.microsoft.com/canada/liveforyou/

Every Tuesday in November, at noon Eastern, you can tune in and learn about Windows Live while it's still in beta. Search, Virtual Earth, Gadgets, and Messenger Bots are the four topics. This is a presentation of MSDN Canada.

Sign up and watch!

Kate

Saturday, 04 November 2006 06:04:36 (Eastern Standard Time, UTC-05:00)  #    
# Friday, 03 November 2006

I've been using Windows since the beginning. And I use the system icon in the upper left quite a lot, mostly to close things, and especially when the window is off the screen a bit so the X isn't available. In Vista, it looks like that icon/button is gone, but it isn't. Just click where it should be:

Double-click to close the window, or do any of the things you would otherwise do on that menu. Isn't that cool?

Kate

Friday, 03 November 2006 05:52:51 (Eastern Standard Time, UTC-05:00)  #    
# Thursday, 02 November 2006

Lots of C++ content in this talk with Soma on Channel 9. I spoke to Charles about this interview and he told me he really didn't know where it was going to go when it started, and it didn't need any editing, which is unusual for a VP. Soma also blogged it.

Thursday, 02 November 2006 05:47:59 (Eastern Standard Time, UTC-05:00)  #    
# Wednesday, 01 November 2006

Spotted in the speaker room in South Africa:

Those feet belong to Karen Young, MVP Regional Manager for EMEA:

 

Alas, the shoes aren't swag. Karen had them done at a street stall in China that was painting roses and anime characters onto shoes. They're one of a kind!

Kate

Wednesday, 01 November 2006 05:06:57 (Eastern Standard Time, UTC-05:00)  #    
# Saturday, 28 October 2006

[backdated with dasBlog]

We didn't have a church ceremony for my father. Instead we gathered at the sailing club. A family friend acted as MC and each of us (the five children and my dad's wife) spoke, read a poem, or played some music. A table nearby was piled with newspaper clippings about his inventions, his trip around the world, and so on, as well as the sextant he used on his trips, his pipes, and so on.

Afterwards we got onto the boat, which is 26 feet long. A gale was forecast for that night, but it was afternoon and we were only 15 minutes from home. We had something to do and we went out and did it. His hat was still floating on the waves when a pulley that holds the tender (small dinghy) up out of the water broke. There followed several exciting minutes while the only two qualified sailors (my brother, who sailed the Atlantic with him 20 years ago, and my sister, who is eight months pregnant) wrestled it out of the remaining pulley, got it tied behind us, and got all the water out of it. When this was all settled we realized we had gone quite a long way and decided to take down the small sail we'd been using and motor back home.

The motor started fine and the prop turned, but it didn't make the boat move. This is the point where Dad would have opened things up and fixed them, had done so even just a few days after abdominal surgery, but none of us could. We tried a few things and then called the Coast Guard.

The ocean is big and even when you're on a cell phone telling them what island you think you are going past, it can take a long time to find you. It was getting darker and windier by the minute. We got a sail up (my brother wore the safety harness he'd worn in the North Atlantic) and actually got into a cove and at anchor by the time they found us. They said we'd lose the boat if we left her there that night, and decided to tow us to a marina. That all went without incident. Afterwards, standing around in our funeral clothes outside someone else's wedding reception, we acknowledged that maybe we hadn't been super smart in what we'd done, but that we'd been fine till the engine broke. That's when the Coast Guard guy said "Boats can be tricky that way." I thought he was going to patronize us, point out they take you onto the ocean or some such, but he went on "they don't like losing their owners." Told us a few tales of boats that sank the day they were sold and the like.

Later, my brother realized the pulley that broke just as we finished our private remembrance was the last thing my father had fixed on that boat. And I realized that when "bloody hell" (my Dad's favourite oath) started, and competence and capability (things my father valued highly, along with brute force) kicked in, the crying stopped. The five of us kids pulled together and rescued ourselves, now that we don't have Dad to rescue us any more. We're going to be OK.

Kate

Saturday, 28 October 2006 07:59:36 (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, 24 October 2006

[backdated with dasBlog]

OK, I know you really come here for C++ stuff and the occasional picture of autumn leaves, but there are some things I want you to do. First of all, if you're the donating type, and you want to make a donation in my Dad's memory, please don't give it to those "cancer is a word, not a sentence" people. Nothing they did helped him. (Research is fine, just all that cheer-up-it's-not-so-bad stuff bothers me.) He died two days short of the one-year anniversary of his diagnosis, which is actually pretty good for esophageal cancer. The heroes in our minds are the VON. Back in August, had my dad stayed one more day in the hospital I believe he would have died there. Going home gave him many more months and gave us all more time with him and more time to come to grips with what was happening. The VON were what made that possible. Sometimes they came every day, sometimes every other, sometimes two and three times a day. They dealt with his abcess, his draining tube, his pain, his weakness, with all the things that would have otherwise had him in the hospital. They were always polite and respectful and supportive. They didn't bustle around like hospital nurses, bossing everyone and controlling their territory. You can donate to your local VON if you have one, or to the ones who helped Dad at VON of Greater Halifax, 7001 Mumford Road, Tower 1, Suite 300, Halifax NS, Canada B3L 4N9.

Second, if you ever have trouble swallowing, have a terrible acid stomach for which you regularly take antacids, or have a family member who died very quickly of "a growth in the throat" or something similar, go and ask your doctor to test you for Barrett's esophagus. That's about the only hope for prevention of this, the fastest-growing cancer in North America.

Third, no matter how old you are, it wouldn't hurt to talk to your family about your end of life wishes. Whether it's dying at home, what songs to play at the ceremony,  or burial-vs-cremation, the decisions are so much easier when you actually know what the person would have wanted.

Kate

Tuesday, 24 October 2006 07:34:35 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 23 October 2006

[back-dated with dasBlog]

While I was in Africa my father's condition worsened and then he slipped away. He died at home, in the bed he'd been using for several months, without pain, knowing he was dying and that it was time to go. He had taken care of the things he needed to take care of: explaining his latest project to his former graduate students so that they can prove his theory and rewrite some text books, explaining the trickier aspects of the boat motor to my sister, giving some instructions to his lawyer. He was content to go at the end.

His obituary was in the Globe. It could easily have been twice as long.

Kate

Monday, 23 October 2006 07:23:19 (Eastern Daylight Time, UTC-04:00)  #    
# Saturday, 14 October 2006

The code definition window is not just for C++. Here's a C# screen shot:

Doesn't seem to do anything for VB at all though. I just see No definition selected no matter where I click.

Kate

Saturday, 14 October 2006 05:26:08 (Eastern Daylight Time, UTC-04:00)  #    
# Friday, 13 October 2006

Not enough people know about the code definition window in Visual Studio 2005. I see them trying to understand code by getting editor tips on the classes and functions they see in use:

A reasonably clever trick is to use Ctrl+Shift+Space to get parameter tips for the function:

But the tips are transient, they go away when you use your mouse and try to do some work. So most people fall back on good old Go To Definition:

Sure, this isn't transient, but it leaves you sitting in another file and needing to flip back and forth from file to file when you're just trying to understand what a particular function call does. What I like to use in this case is the code definition window. It's on the view menu:

And here's what it gives you:

It also works to show you the code for a function you're calling. Once it's open, just click on the thing you want to see in the code definition window:

Once you get in the habit of just glancing down to the bottom of the screen to get a little more information, you'll wonder how you ever did without it.

Kate

Friday, 13 October 2006 05:15:57 (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, 12 October 2006

Here's an article on static code analyis that makes some nice points. I love the title: I’m not in denial, I’m in a hurry. It can be tough, at the end of a project, to find the time for that tidying up that you once thought there'd be time for. Better to get the comparison of what you're doing to best practices as you go along. In fact, every time you build your app. Then you'll know where you stand.

Kate

Thursday, 12 October 2006 09:36:37 (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, 11 October 2006

One of the things I do for many of my clients is code review. This comes in two flavours. The first is where we all pile into a room with a projector and someone walks us through the code while we ask questions. Sometimes as a result of this the original author has to go away and rewrite bits of the code, but it's just as likely that the outcomes will be everyone understanding how something works, or knowing what there is in someone else's part of the application. The second is less interactive. I read over code and point out bad, dangerous, sloppy, or hard to maintain code. This might be hardcoded error messages in a multilingual application, or non parameterized dynamic SQL, or poor object orientation, or any one of hundreds of other things. Often I point it out not to the author of the code directly, but rather to the author's manager. Or in at least one case, their former manager. (As in, now that we got rid of this person, can you tell just how much mess he left behind?)

Now, if you are thinking of going to Team Systems, let me give you another reason to do so. It can automate a lot of these types of checks. For example, here's a really quite poor little class:

Public Class Company
    Private networth As Integer = 0
    Public name As String
    Private foundingdate As Date

    Public Sub New()

    End Sub

End Class

When I run static analysis against this, in no time flat it points out:

Running Code Analysis...
C:\Program Files\Microsoft Visual Studio 8\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe /o:"bin\Debug\Information.dll.CodeAnalysisLog.xml" /f:"bin\Debug\Information.dll" /d:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" /r:C:\Program Files\Microsoft Visual Studio 8\Team Tools\Static Analysis Tools\FxCop\\rules
MSBUILD : warning : CA1020 : Microsoft.Design : Consider merging the types defined in 'Information' with another namespace.
MSBUILD : warning : CA2209 : Microsoft.Usage : No valid permission requests were found for assembly 'Information'. You should always specify the minimum security permissions using SecurityAction.RequestMinimum.
MSBUILD : warning : CA2210 : Microsoft.Design : Sign 'Information' with a strong name key.
MSBUILD : warning : CA1014 : Microsoft.Design : 'Information' should be marked with CLSCompliantAttribute and its value should be true.
C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\Information\Information\Class1.vb(6): warning : CA1805 : Microsoft.Performance : Company.New() initializes field networth of type System.Int32 to 0. Remove this initialization as it will be done automatically by the runtime.
MSBUILD : warning : CA1823 : Microsoft.Performance : It appears that field 'Company.foundingdate' is never used or is only ever assigned to. Use this field or remove it.
MSBUILD : warning : CA1051 : Microsoft.Design : Make 'name' private or internal (Friend in VB, public private in C++) and provide a public or protected property to access it.
MSBUILD : warning : CA1823 : Microsoft.Performance : It appears that field 'Company.networth' is never used or is only ever assigned to. Use this field or remove it.
Code Analysis Complete -- 0 error(s), 8 warning(s)
Done building project "Information.vbproj".
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========

Meaningless initializations, unused variables, public member variables... they get found. It's a great start.

Kate

Wednesday, 11 October 2006 09:33:04 (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, 10 October 2006

Are you ready?

It's time to launch Office, Vista, and Exchange in Canada. Five cities get a large version of the all day event, with business, IT pro and developer tracks, and seven get IT pro and developer talks only. It starts in late November and goes on until January. Registration is free and these things usually full up fast, so register now.

Kate

Tuesday, 10 October 2006 09:05:19 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 09 October 2006

I've been messing a lot with time zones lately, planning my trips to South Africa, Spain, and Denmark, along with flight connections through other countries, and trying to be sure that I correctly map the local times people tell me with the Eastern times I need to enter in my Outlook calendar. As part of that I found a neat time zone map at http://www.travel.com.hk/region/timezone.htm. Now time zone maps are not exactly hard to come by, but this one gave me some interesting insight.

Until I found this map I believed, in a vague never-bothered-to-check way, that Newfoundland was the only place whose time zones differered by half an hour rather than an hour from the neighbouring zones:

But this map uses that hash pattern to indicate the not-an-hour timezones, and so for the first time I noticed there are other places that do this too:

 

It's all over the place! But I wonder if people on the other side of the world would get the Canadian joke: The World Will End at Midnight! 12:30 in Newfoundland.

Kate

Monday, 09 October 2006 07:35:06 (Eastern Daylight Time, UTC-04:00)  #    
# Sunday, 08 October 2006

I was looking forward to next year's Tech Ed USA for more than the usual reasons we look forward to a Tech Ed. You see, it was going to be in New Orleans, and I've never been there. Everyone said it was a place you really should see, and here was my chance to both see it and somehow feel like I was doing a good deed by contributing to the economy. But that's not how it's going to be, apparently, not in 2007 anyway. (Story on bink.nu) It seems the airlines haven't bounced back yet in terms of allocating capacity to the city, so Tech Ed 2007 will be somewhere else. Any chance they'll consider Toronto? :-)

Kate

Sunday, 08 October 2006 00:28:45 (Eastern Daylight Time, UTC-04:00)  #    
# Saturday, 07 October 2006

Confused about what .NET 3.0 is and is not, and what the next set of libraries after 2.0 will be called? Here's a pretty comprehensive summary from Julie Lerman that lays it out for you.

.NET 3.0 is.NET 2.0 plus the four new components [WPF, Cardspace, WCF, Workflow]. Those four core technologies are called the ".NET 3.0 Components".

The four new components were developed as part of the Vista effort but are so cool that everybody wanted them to be available downlevel, which they are to varying degrees. Julie also gets into Orcas, Atlas/Ajax, LINQ, and what works with what and when (roughly) you'll see it. Check it out.

Kate

Saturday, 07 October 2006 00:36:52 (Eastern Daylight Time, UTC-04:00)  #    
# Friday, 06 October 2006

Airports, like software, need to be tested before they're released -- or I guess for an airport, you'd say opened. That's why the Greater Toronto Airports Authority, which operates Toronto Pearson International Airport (YYZ), is asking for volunteers to come to the airport on the morning of Oct 28th and wander around like they were trying to catch a flight, or arrive from a flight, or whatever. Can you read that sign as you head down the elevator? Is it obvious that you are not at ground level and need to find an elevator to get to ground level? Is this hallway really wide enough when two planes arrive at once and 400 people are walking through it? It's not like there wasn't any thought put into that sort of thing in advance, but before you open the doors, testing is a really good idea.

If you live in the Greater Toronto Area and want to tell your grandchildren you once beta tested an airport (perhaps the fact that you parked and ate at an airport for free will excite them more) then head on over to http://www.gtaa.com/airportvolunteer/ and sign up. Apparently there's some sort of souvenir in it for you, and you'll get to see the new parts of the terminal months before they open. Go for it!

Kate

Friday, 06 October 2006 17:20:01 (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, 05 October 2006

Some people are so busy playing UAC-a-mole on their Vista machines that they aren't even looking at the dialogs. In fact these "annoying interruptions" are actually full of information, and it would be a good plan to learn how to read them. In today's installment, I'll show you the results of right-clicking two different shortcuts and choosing Run as Administrator:

See, they're really quite different. The top one is saying "Part of Windows! OK to Trust!" and the bottom one is saying "Stop a minute! Do you really know this app?"

The problem is that most of us are going to read "blah blah blah blah do you want to keep working / playing blah blah blah" and just click Continue without even thinking. That's a shame.

Kate

Thursday, 05 October 2006 16:30:26 (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, 04 October 2006

One of the best things about being a Regional Director is the other Regional Directors. These are wonderfully smart people who share their knowledge with each other. Most of them also share with the public through blogging. If you're an avid reader of my blog you'll have seen links to other RD blogs over time. If you'd like a one-stop-shopping approach to RD blogs let me recommend http://indepthtalk.net/Feed.aspx, which shows the first paragraph or so of each post, or  http://indepthtalk.net/Community/RD.category which gives links to all the blogs and shows just headlines. There's also an RSS feed at http://indepthtalk.net/Community/RD/Feed.rss.

This is hand-aggregated content, just like TechEdBloggers and its cousins. That means not every post is aggregated, and they don't show up the instant they're posted. But it's a fantastic way to see what we're up to and to get to know some blogs you may not be reading yet. Give it a whirl!

Kate

Wednesday, 04 October 2006 10:09:52 (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, 03 October 2006


Under Vista, an application can have a manifest that identifies the privilege level it needs to run. These manifests can serve other purposes, too: they're also known as fusion manifests and can be used to identify dependencies among other things. Adding one to your application starts with adding a file to your project (right click and choose Add, New Item: depending on the language you're using you might be able to choose XML file or else Text file will do.) Then you put appropriate XML in it, like this:

<?xmlversion="1.0" encoding="utf-8" ?>
<
assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<
assemblyIdentity version="1.0.0.0"
processorArchitecture
="X86"
name
="Sample"
type
="win32" />
<
description>Sample Manifest Test Application</description>
<
trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<
security>
  <requestedPrivileges>
 <!--
<requestedExecutionLevel level="requireAdministrator" /> -->
 
<requestedExecutionLevel level="asInvoker" />
 <!--
<requestedExecutionLevel level="highestAvailable" /> -->
 </requestedPrivileges>
 </security>
 </trustInfo>
</
assembly>

You save the file as ApplicationName.exe.manifest. (When I intend to embed the manifest, I tend to call it app.manifest instead. If you plan to embed it, the filename doesn't really matter, but then if you change your mind and want an external manifest you'll need to remember to rename the file.)

At this point, you can follow the instructions in Catherine Heller's blog. The thing is, when I first read them I thought she skipped a step or something in explaining how to do it with Visual C++ 2005. After all, the other approaches had tons of steps!  There are .rc files, and .res files, and custom build steps, and unloading projects so you can open them differently, and never-mind-the-error-message notes, and all of that. And then for C++ it's just "open the project properties dialog, on the left-hand pane expand the Configuration Properties->Manifest Tool node and select Input and Output. You can enter the name of an external manifest file in the Additional Manifest Files field." But you know what? That's it! You make the manifest, put its name in the dialog, build the project.

Presto, your app has a manifest. Depending on the value you enter for requestedExecutionLevel and the account under which you run the app, you will see different behaviours at runtime.

Kate

Tuesday, 03 October 2006 07:35:51 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 02 October 2006

I use the Recent Documents list on my Start menu quite a lot. I often work on a number of documents types at once, all from the same folder (organized by project, for example). I open one document that way, but then if I want some other document from that folder, it gets tiring going to Recent Documents all the time. As a result I tend to use Start, Run, and start to type the name of the folder -- since things I typed recently are remembered, it doesn't take many keystrokes:

But now on Vista I have something even easier to deal with. There's an extra choice on the context menu for the Recent documents list:

That's a timesaver for sure!

Kate

Monday, 02 October 2006 18:14:36 (Eastern Daylight Time, UTC-04:00)  #    
# Sunday, 01 October 2006

A client of mine, International Time Recorder, is hiring in Etobicoke. Here's the job description:

Job Title:  Senior Application Developer

Senior developer responsible for contributing to the design, development and implementation of commercial software solutions to a diverse marketplace.

Duties
• Contribute to the analysis and design, while being accountable for the support, development, testing and implementation of solutions and enhancements to software systems.
• Design and develop software components and features.  This includes working with stakeholders in developing Detailed Functional Specifications, designing certain key components of the product and implementing the solutions.
• Support and design of maintenance and test procedures and test cases for the product.
• Participate in schedule development and ensure timely product delivery.
• Assist in the creation and implementation of concrete procedures for tracking and releasing product updates.
• Coach and mentor junior development team members in best practices for support, development, testing and implementation of software solutions conducting code reviews as needed.

Qualifications
Education:  University Degree in Computer Science, or equivalent experience
Experience:  8 – 10 Years

Required Skills:
• Familiarity with the following technologies: C#, ASP.NET, C++,  ADO.NET, ADO, Web Services (SOAP/XML), RPC, all Windows Operating Systems, IIS, COM, Active Reports
• Two years experience in .NET development in commercial software development using C#, ASP.NET, ADO.NET
• Eight years experience in commercial Windows Application Development
• Experience in Scaleable Distributed Application design
• Three years experience in designing SQL Server databases
• Proven experience in developing database-driven Web and Windows applications with demonstrated flair for design and layout
• Two years experience as a project lead

Nice-to-Have Skills:
• Time and attendance industry experience
• Experience with Microsoft Visual Studio Team Systems.
 

The firm is doing active development in both C++ and C#. If you're looking for a place to use both old and new skills (and a chance to get regular mentoring from me :-) ), drop me a line and I will forward your information along.

Kate

Sunday, 01 October 2006 13:28:10 (Eastern Daylight Time, UTC-04:00)  #    
# Saturday, 30 September 2006

Woo hoo! STL/CLR is back! It made an accidental brief appearance in a Whidbey beta, but wasn't ready for prime time at all and went off for some retooling. If you grab the September CTP of Orcas, you can give it a whirl yourself. Here are some links stolen from Nikola's blog announcing it:

http://www.microsoft.com/downloads/details.aspx?FamilyID=82243606-d16d-445c-8949-9ee8c10cda2e%26DisplayLang=en to download the CTP.

http://connect.microsoft.com/VisualStudio/ to report bugs or issues with the CTP including STL/CLR.

http://blogs.msdn.com/vcblog/archive/2006/09/30/777835.aspx  Known issues and some workarounds.

So many paying projects to finish... but I will get working with this soon. Time to adjust my November talks to stop using the old unofficial version and start using the CTP version.

Kate

 

 

Saturday, 30 September 2006 15:22:26 (Eastern Daylight Time, UTC-04:00)  #    
# Friday, 29 September 2006

Fall is here and that means hammock time is pretty much over for another year. I just had to mention the hammock we got this year: small and light enough to take camping, to the beach, or anywhere else. Sets up in a minute or so. Here it is on my front lawn:

It weighs less than a pound and when it's in its stuff sack, I bet it would fit in a roomy jacket pocket. It certainly takes up less room in a beach bag than a towel, and it adjusts to handle trees of varying distances apart. It came from Lee Valley, where so much of my money has gone over the years. They'll ship anywhere. If you decide you want a Lee Valley catalog, drop me an email. I'll refer you to them and the company will give some money to charity.

Kate

Friday, 29 September 2006 15:15:50 (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, 28 September 2006

I saw this interesting graph over at Language Log:

It compares "empathizing quotient" with "systemizing quotient" -- the extent to which you connect to others' emotions and the extent to which you like to categorize things and people, and fit them into your system of understanding. (This is just for one sample of people and doesn't necessarily apply to the entire world.) You can score very high in both, or very low in both, but as this graph shows, women tend to have higher EQ and men tend to have higher SQ, though the difference between the groups is less than a typical difference between individuals. Engineers and scientists tend to have much higher SQ and also lower EQ. The green symbols on this graph are results from people with Aspergers, or people diagnosed as High Functioning Autistic. Their SQ varies but their EQ is very low. You can take the test yourself if you like. I was surprised by questions like "When I read something, I always notice whether it is grammatically correct" -- that is 100% true of me but I thought it was my little quirk, not something that would appear on a test for personality traits. Then there was "Whenever I run out of something at home, I always add it to a shopping list." Who doesn't?

My results are perfectly ordinary for someone with a PhD in engineering, I think: EQ 36, SQ 77. That puts me about where the S is in the "extreme S" label. Interesting.

Kate

Thursday, 28 September 2006 14:58:55 (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, 27 September 2006

I've been dying to announce this one. I'm leaving Tech Ed Developers one day early to go to Copenhagen and do a C++ day November 10th. There's an announcement in Danish on the msevents site now. Here's the agenda:

Agenda 

Kl. 9.00-10.15:                   Visual C++: Højere produktivitet med Visual Studio 2005

Visual Studio 2005 indeholder en lang række produktivitets-forbedringer for C++ udvikleren. I denne session ser Kate Gregory nærmere på de mange nye features og forbedringer Visual Studio 2005 tilbyder. Endeligt viser hun en række tips og tricks, som ingen C++ udvikler bør være foruden.

Kl. 10.15-10.45:             Pause

Kl. 10.45-12.45:             Sådan flytter man C++ applikationer til .NET

Se hvordan man flytter C++ projekter til .NET og CLR’en uden at skulle porte eller genskrive hele koden. Lær hvordan man nemt kan migrere eksisterende native C++ kode – inklusiv MFC applikationer – til at køre under .NET. Kate Gregory vil også gennemgå strategier til at vælge hvilke dele af applikationen, der skal forblive i native kode og hvilke der skal flyttes til managed kode (.NET). Og endelig viser Kate hvordan du kan bruge .NET’s klassebibliotek og du kan bygge managed ”Wrappers”, som muliggør genbrug af eksisterende C++ klassebiblioteker.

Kl. 12.45-13.30:             Frokost

Kl. 13.30- 14.30:            Fremtiden er nu

Så længe, der har været software, har der været pc’er med stadigt stigende clockfrekvenser. Nu lader det til at den tendens er stoppet – i dag bliver maskinerne hurtigere ikke fordi clockfrekvens stiger, men forbi de får stadigt flere CPU’er. Det betyder at selv enkeltbruger-applikationer bliver nødt til at være multi threaded. Det skræmmende ved dét, er at de fleste udviklere ikke kan skrive thread safe kode. Kom og se, hvad det kan få af betydning for fremtidens software udvikling!

Kl. 14.30-15.00:             Q&A

Kl. 15.00:                      Tak for i dag

I will be speaking entirely in English. (I'm not sure what "Sprog: Dansk" means but I hope it doesn't mean Language: Danish.) So far I have learned the word "Tak" and hope to use it extensively. I believe "Tak for i dag" means "thanks for the day" and that is going to be my motto this fall. Should you happen to live in Denmark, or near enough to it that you could attend this, and yet not know enough Danish to muddle through this agenda, I will tell you the titles of the sessions as I submitted them:

  • IDE Features for Visual Studio 2005
  • Moving C++ Applications to the Common Language Runtime
  • The Future is Concurrent

See you there, I hope!

Kate

Wednesday, 27 September 2006 14:19:15 (Eastern Daylight Time, UTC-04:00)  #    

The sessions for Tech Ed Africa in Sun City are now available online at http://msevents.microsoft.co.za/teched2006/Sessions.aspx. I have three sessions there, here's how they look:

Notable names on this speaker list:

  • Andre de Beer
  • Ayal Rosenberg
  • Colin Erasmus
  • Dave Webster
  • Hilton Giesenow
  • Jay Schmelzer
  • Ken Everett
  • Kimberly Tripp
  • Ruari Plint
  • Simon Harris
  • Steve Riley

Folks I've seen speak here before, for the most part. This is always a very enjoyable conference for me and I'm looking forward to seeing everyone again.

Kate

 

RD | Speaking | Travel | Vista
Wednesday, 27 September 2006 14:03:28 (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, 26 September 2006

You can search sessions and see the schedule now, at http://www.mseventseurope.com/Teched/06/Pre/static/Developers/SessionSearch.aspx. Here's how my talk looks there:

Some names I know in the speaker list:

  • Anders Hejlsberg
  • Ayman Shoukry
  • Brian Randell
  • Carl Franklin
  • Catherine Heller
  • Christian Weyer
  • Clemens Vasters
  • Ingo Rammer
  • Jackie Goldstein
  • Jan Tielens
  • Jay Schmelzer
  • Jeff Prosise
  • Kimberly Tripp
  • Mike Fitzmaurice
  • Patrick Tisseghem
  • Richard Campbell
  • Scott Hanselman
  • Stephen Forte
  • Steve Teixeira
  • Steve Lasker

RDs, blogs I read, MS people... it's going to be a great time!

Kate

C++ | RD | Speaking | Travel
Tuesday, 26 September 2006 13:52:10 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 25 September 2006

Shankar Vaidyanathan, who's been on the VC++ team for over 12 years, talked to Channel 9 in late July about why C++ devs actually do use and care about the IDE. He also shares some of the challenges for writing an IDE for very demanding customers. Watch this one immediately after the Boris one and you'll be an IDE guru!

Kate

Monday, 25 September 2006 16:13:53 (Eastern Daylight Time, UTC-04:00)  #    
# Sunday, 24 September 2006

I don't know why I didn't see this earlier, but then again I had a tough summer. Here is Boris talking about the C++ IDE and a lot of the tips that were in my Tech Ed IDE talk ... the one with no slides. If you weren't at my talk then I guarantee you will learn something about VC++ from this video, and even if you were, you still might.

Update: I really should have included this link to Boris' blog. Maybe he will update it more often if he gets more traffic.

Kate

Sunday, 24 September 2006 15:40:29 (Eastern Daylight Time, UTC-04:00)  #    
# Saturday, 23 September 2006

No, I'm not talking about where the brace brackets go! Coding guidelines are so much more than style guidelines. One of the things that sets me apart from many other developers I know, and especially the authors of code I am asked to fix, is a drive for simplicity. For me, that comes down to three things:

  • Start by solving the problem you're actually facing, not some enormous superset of it
  • Write the straight ahead way first, then adjust for the exceptions and strange corner cases
  • When it's all working, and every time you touch it from then on, look it over to see if you can make it simpler.

That last one is the one so many people seem to skip. Then later when I come along and read the code, I see how it could be simpler, but I hesitate to change it. They must have done it this complicated way for a reason, I think to myself. It can take quite a long time to prove to myself that no, they just settled for 'working' and ran away as fast as they could, leaving this mess for someone else to sort out later.

A mentoring client gave me a pointer to an article ostensibly on Coding Guidelines which is as much philosophical as anything else. I like it. The rules are:

  1. Make your code look like other people's code.
  2. Use the simplest design possible.
  3. Don't re-invent the wheel.
  4. Document your code.
  5. Keep security in mind.
  6. Work in increments.
  7. Work in iterations.
  8. Have your code reviewed.
  9. Don't stay blocked.
  10. Do unto others as you would have them do unto you.

There are no false notes in this list and I endorse this set of philosphies whole-heartedly.

Kate

 

Saturday, 23 September 2006 18:07:23 (Eastern Daylight Time, UTC-04:00)  #    
# Friday, 22 September 2006

The other day I spotted this:

It's two people around a bowl of salsa, holding a nacho chip as big as each of their heads (which is why it takes both of them to hold it, I guess.) But I had never noticed it before:

That reminded me of something else I never saw even after looking at the logo a million times:

That obvious arrow is lurking here:

So subtle, till someone shows it to you. Then so obvious. So it is with bugs, eh?

Kate

Friday, 22 September 2006 14:49:21 (Eastern Daylight Time, UTC-04:00)  #