 Tuesday, 18 November 2008
For a long time now, Google has been interested in what we search on. I remember reading an article in late 2001 that described a visit to a Google building with a screen on which search phrases scrolled by in real time. To my great surprise one of the phrases the author listed was a search I had performed myself in that time frame. Today, someone has had the insight that people search for certain keywords because of things that are happening around them.
Public health authorities the world over try to measure the frequency and severity of various infectious diseases in order to spot epidemics and pandemics in time to do something about them. For the flu, they ask doctors to report what percentage of the cases they see each week are Influenza Like Illnesses - as this percentage rises it is safe to conclude the amount of flu in the community is rising, even though not everyone with the flu goes to the doctor and not everyone with an ILI has the flu. These numbers take about two weeks to gather and are released publicly so various levels of government and quasi government can react to them.
So the Google insight was that people search for words like "fever" or "joint pain" when they or someone they know has an ILI. (I actually don't know what search terms Google is counting - it might only be the word "flu" for all I know.) These aggregated counts are available immediately with no waiting while people tally and report, tally and report up the chain. Take a look at the correlations:


Wow! That's a pretty amazing relationship between those lines. And instant results instead of waiting two weeks could make a real difference in treating an outbreak. But I am not sure how I feel about it. It's almost creepy, yet at the same time it's very cool. How can you be sure this ability will always be used for good?
Kate
 Monday, 17 November 2008
This month's meeting is November 25th. Chris Dufour will speak on Building Silverlight 2 Data Applications. The meeting is at the Whitby library, but please register so the food count will be accurate.

Kate
 Sunday, 16 November 2008
Also on Code Gallery, in addition to the Vista Bridge, you can find an interesting bit of guidance for those developing Windows 7 applications. This is 43 pages of "what is special about Windows 7" written for developers. Curious about touch and multi touch? Ink? The new taskbar, ribbon, jump lists? Libraries? How to handle previews and thumbnails for your file type? Wondering what Windows Web Services are and how they differ from WCF? (quick answer - WCF is managed, Windows Web Services is native C++ - expect more on that from me when life calms down a little.) It's all in here, with plenty of screenshots. From here you will know where you want to drill more deeply, and you will know the names of features, which is usually key to figuring out how to use them.
http://code.msdn.microsoft.com/Win7DeveloperGuide is a good starting point, and you can join discussions and so on. The Downloads tab will get you the document in Word or XPS format.
Kate
 Saturday, 15 November 2008
Friday night wrapped up with a reception in the speaker room where we'd been working all week. Some of us (including me) were a little slow to switch from workin-on-my-laptop mode to hangin-with-my-speaker-buds mode.

That's Rob Windsor in the foreground and Brian Harry next to him. I went with Cava, Rob with beer. There really are no wrong choices . In the background you can see the big screens that show the top ten speakers and also randomly display comments from any and all sessions. A number of these were very funny out of context.
Earlier Friday I took this picture from my hotel window:

Always you can see Sagrada Familia, I noticed this from the cable car and the castle also. It just rises up out of the sea of lower buildings.
Barcelona was, as predicted, warm and beautiful. Crime was not an issue this year - the police presence was intense and I heard no stories of pickpockets, muggers, or cutpurses this year at all. I discovered the best tapas in the city at Ciudad Condal - which doesn't have its name on a sign so you need to know the address, 18 Las Ramblas. Three of us arrived here - it doesn't take reservations - and fought our way inside through the crowd to reach the maitre-d', who asks "inside, outside, or at the bar?" and then told us it would be 30 minutes for our inside table. The next step is you go to the bar, ask for "tres cervesas por favor" and then point at something from the dozens of plates of gorgeous tapas and montaditos (thingies on toast) and say "tres". Presto - three beers and three (in our case) smoked salmon on toast and you go stand on the sidewalk with the rest of the city. Heaven. The beer was good, the salmon divine, and it didn't even feel like waiting. In no time we had our inside table and then the fun begins. Not a false note - and we gave them lots of opportunities because we ordered a lot of plates. Highly recommended, and actually cost less than some other dinners we had here even though we could barely move by the time we'd finished eating it all.
Will I be back? Well I guess it will be a while till Tech Ed brings me back - we move to Berlin for next year. So I'll have to bring myself back, because I'm really going to miss coming here otherwise.
Kate
 Friday, 14 November 2008
Tech Ed draws to a close and the website of videos gets updated. This is a general-access-no-login-required highlights site. The mechanism for extracting individual links seems broken, so I'll show you what to click on:

Thursdays wrapup includes footage of the Norway country party (North American speakers typically pick a country to visit for country drinks, and my gang chose Norway) and the Speaker Idol finals (I was recruited as a last minute replacement judge for the finals only.) Speaker Idol impresses me every year because it shows all of us (speakers, track chairs, etc) people who are really good but have not spoken at Tech Ed before. How good? I have a session in the top ten this year, and one of the very few people who is outscoring me is last year's Speaker Idol winner, Jeff Wharton.

The afore-mentioned session in the top ten is here, the full video. Doesn't seem to be downloadable, so set aside 80 minutes and learn about shared_ptr and lambdas. The abstract is inaccurate - I didn't do anything on STL/CLR or marshalling - that was last year. The attendees didn't seem to mind that I tossed out half my planned talk and replaced it with content that had been announced at the PDC .
There are 63 videos all told (though 5 are from last year) and they range from a few minutes long to, well, 80 minutes. See what you missed, and maybe see you next year!
Kate
 Thursday, 13 November 2008
Just in time for my Tech Ed Day 4 talk, we have the long awaited arrival of the Vista Bridge Samples Library, version 1.3, on the MSDN Code Gallery:

Here you can download the latest version, join discussions, and report issues including native APIs you wish were wrapped. Remember, this is a sample library, not a product, so don't expect the kind of support, internationalization, or full coverage a product would have. Do expect useful code for reading (if you care about how to do interop well) or just using (if you want to light up your application with Vista features without knowing about interop.)
Enjoy! I've been waiting a really long time for this!
Kate
 Wednesday, 12 November 2008
Check this out. If you go to DevTeach - and you certainly should - you will be getting more than you bargained for. First and foremost you'll be getting great sessions by great speakers. 136 sessions to be precise, plus a keynote by Ted Neward. Because of the small scale (8 simultaneous tracks instead of dozens) you will get a chance to meet and talk to many speakers and your fellow attendees during breaks and meals.
Now I happen to think that is well worth the $1250 attendance fee plus your travel and hotel. You would pay double to go to Tech Ed. Montreal the first week of December is a delightful trip, and you will learn the things you need to learn to stay current in this world, and get face time with a dazzling array of people who are not usually this accessible.
But, in case that's not enough, they've negotiated their way to giving you about a thousand dollars worth of software and learning. Seriously. I quote:
We believe that all developers need the right tool to be productive. This is what we will give you, free software, when you register to DevTeach or SQLTeach. Yes that right! We’re pleased to announce that we’re giving over a 1000$ of software when you register to DevTeach. You will find in your conference bag a version of Visual Studio 2008 Professional, ExpressionTM Web 2 and the Tech-Ed Conference DVD Set. Is this a good deal or what?
It's a very good deal. Oh, and one other thing. Did you go to TechDays? Did you get a $100 coupon? They've decided to retroactively make that a $350 dollar coupon. So you can attend for just $900.
Register now!
Kate
 Tuesday, 11 November 2008
Barcelona is a marvelous city, beautiful, warm, possessed of amazing food and drink, and lovely things to see. Having done some Gaudi things on previous years, a bunch of us resolved to do some non Gaudi things this year.

Step 1: decide where you are going. There is a cool cliff and cable car that you can see when you come along the highway from the airport. We decided that was what we wanted. Here Joel Semeniuk is taking a picture of the web page so we will have the directions with us en route. Yes, that is what we are like. Our destination is called Montjuic. (BTW, this picture is taken in the speaker's room, so you can get an idea of what it is like in there.)
Step 2: take the subway (it's so cool that the organizers give us subway passes) to the Montjuic Funicular which is clearly labelled on the subway maps and signs.

Step 3 - take the cable car from the top of the funicular to the base of the castle. Looks like I didn't take any cable car pictures.
Step 4 - explore the castle and enjoy astonishing views over the city and harbour.

Thanks to Stephen, Joel, and Goksin for an afternoon that most definitely did not suck.
Kate
 Monday, 10 November 2008

There is an older, deeper meaning for "cut and paste" and this sticker, on the laptop of a member of the C++ team, shows it nicely. The sticker was a gift, btw - somebody made it for the team member. I like it.
Kate
 Sunday, 09 November 2008
These are fun:

I got them from Knom's Developer Corner, a consistent source of goodness.
Wondering why they appear to be on my desktop? Because even in Vista gadgets can be on your desktop. Just drag them there. If you use Windows+D or Alt-Tab your way to the desktop you won't see them, but bring up the sidebar with Windows+Space and the gadgets you put on your desktop will wake up too. Neat trick I learned from a Windows 7 guy .
Kate
 Saturday, 08 November 2008
I think I have this finally all sorted out now. This map is a little inaccurate because it depicts driving, but it gets the point across:

Monday December 8th I will fly to Fort Smith (via Atlanta). Tuesday December 9th I will drive to the Northwest Arkansas meeting. Wednesday Dec 10th I will fly from there to Baton Rouge (via Atlanta) and then Thursday Dec 11th I will fly home (once again, via Atlanta.) The talk will be the same at all three, so there's no need to follow me around 
The Windows Vista Bridge: How Managed Code Developers Can Easily Access Exciting New Vista Features
Accessing new Windows Vista features is a challenge from managed (.NET) code. The level of interoperability required is out of reach for many developers. The Vista Bridge is a sample library you can use in your own projects today that provides access to new user interface features as well as “behind the scenes” power features. Discover a shortcut to Windows Vista for Microsoft Visual Basic and Visual C# programmers and how you can get involved.
This talk is freshly updated for Tech Ed Europe where I will deliver it Nov 13th. See you there!
Kate
 Friday, 07 November 2008
Guess where I plan to be mid-November next year?

What will they talk about? Let the speculation begin.
Kate
 Thursday, 06 November 2008
Jesse Kaplan gave a GREAT talk at PDC called Managed and Native Code Interoperability: Best Practices. I really enjoyed it, and it actually covers a great deal of ground. Sure, some of the diagrams expressed concepts I have expressed before, but that's a vote of confidence as far as I'm concerned.

This is a dense talk that assumes a fair amount of background knowledge, but well worth the hour to watch. And then he plugged my marshal-as site, too!

Dude, you had me at "interop boundary" and it just got better from there. But this was a great finish!
Kate
 Wednesday, 05 November 2008
Microsoft has announced BizSpark. If you know what DreamSpark is, then you might guess what BizSpark is. I was really surprised myself - essentially unlimited free licenses of developer software and hosting software such as Windows, SQL Server and SharePoint. Yes, free Team Suite for everyone in the company! You must meet three criteria:
- Be a startup, less than 3 years in business
- Have not much revenue, less than a million a year (stricter in some markets, mostly in Asia)
- Be software developers, not consultants or resellers
You prove that you meet these criteria, not to Microsoft, but to a network partner. Ideally your network partner is more than just your gateway to free software, but someone who can advise and help you on the path to success. Since the network partner has to know a bit about you, not many will just email you a key if you email them. You can look through the partners on the BizSpark site and see who would be a good match for you to establish a relationship with. Be sure to get the user guide and read the FAQ as well.
Plenty of coverage of this elsewhere on the web:
etc etc.
So, if you fit the description and want the free software, what should you do? Go to the BizSpark site's Find a Network Partner page. A lot of them are venture capitalists and investment companies. If you were hoping to find such a firm, this is a cool way to know one that is in favour of your using the Microsoft platform and won't try to make you change development tools to get funded. If you weren't planning to work with an investor, scroll through looking for a firm that offers consulting and mentoring. You can send an email and see about working together. If you can't find a firm in your geography that looks as if it could help you, try a nearby geography. For example, I'm only listed under Canada, but Americans could engage with our firm too.
Kate
 Tuesday, 04 November 2008



All three from Steve Clayton's blog which I admire tremendously. The monster (Blue Monster updated to Azure Monster)matches the logo to my eye and they're both lighter and greener than the hex from the shirt. Btw I pronounce Azure with the emphasis on the first syllable 
Kate
ps: No clue what Azure is yet and wish someone would post about that instead of colours and pronounciations? Try http://blogs.zdnet.com/microsoft/?p=1671 for Mary Jo's take.
 Monday, 03 November 2008
More PDC goodness.
Steven Sinofsky is the senior vice president for the Windows and Windows Live Engineering Group at Microsoft. He was awesome in the Day 2 keynote. Then he walked down to The Big Room and did a half hour Open Spaces talk with attendees. I recognized fellow RDs Tim Huckaby and David Yack among them. The sound quality varies but the recording is well worth watching to see how comitted he is to the Engineering 7 blog and to communicating with developers.
Then there's Joey deVilla. I've been reading his personal blog for ages and his technical blog once in a while - he was an open source guy so it wasn't always relevant to me. I love his sense of humour and spirit of community. I was delighted to learn that he would replace the departing Jean Luc David (our loss is Redmond's gain.) While at PDC, he interviewed Don Box, Miguel de Icaza, John Lam, Phil Haack and some of the .NET Micro Framework team. Great ways of learning some of what happened at PDC and getting to know Joey a little better.
But he wasn't the only one! John Bristowe was also busy with the camera. He interviewed Joel Semeniuk (another RD) and some people from Windows Home Server. This is a product I am hearing a lot of praise for that I really should install on a spare machine.
I love these videos because they start to capture some of the non-session parts of the conference. If you're wondering why on earth you would go to a conference and not go to sessions, look at these conversations. Also look in the background at the other conversations and interactions. Face time is why we all come to the same place. Sessions are a bonus.
Kate
 Sunday, 02 November 2008
We're building a backyard shed, and I recruited a certain young teen to help. Sooner than I expected, he was back inside the house. "Finished already?" "I need a rest." But I only see two or three pieces of wood carried from the under-roof storage area to the work zone. It turns out that he kept bringing the wrong piece of wood (2 x 4 when asked for 2 x 6, or 8 foot when asked for 10 foot) and having to take it back and go get the right one. This is tiring, of course. But I also found it illuminating because a similar thing happens with my new hires who are straight from school or university.
In an academic setting, if I assign you the task of getting me a 10 foot 2 x 6, and you bring me a 10 foot 2 x 4, or an 8 foot 2 x 6, I will probably give you a pretty good mark. Not 10/10, of course, but at least 7. After all, you have brought me wood, as opposed to a rabbit or some mashed potatoes. You have come back with something, rather than wandering off into the woods to play or inside to watch TV. You have even got one of the dimensions right and the other close to right. So you receive your mark and you're done. Similarly when I mark a programming assignment, maybe I spot a logic flaw or other mistake, your code won't work under certain circumstances, but it works some of the time, or almost works, or at least doesn't always blow up. I can give you 7/10.
In the real world, whether of shed building, or code writing, things are more binary. I have the wood I need or I do not. Your code meets our standards or it does not. And here is the key thing - you have to make it right. Take this wood back and bring a longer piece, or a wider piece. Take this code back and make it so it can accept strings with apostrophes in them, or so the title is centred, or whatever other bug you need to fix. You're not done until it's right.
It's a lesson that probably needs to be taught more explicitly to the new grad. It wouldn't hurt to teach it a bit in those academic settings.
Kate
 Saturday, 01 November 2008
One of my demos (OK, more than one) for my upcoming Tech Ed Europe talks is a console application. I find when you're doing complicated concepts like C++ templated code, that adding the plumbing to talk to a Windows application (whether MFC, Windows Forms, WPF or whatever) can obscure what's going on. Generally speaking people can follow cout << i << endl; just fine and it reduces the header files and so on that are needed to use the sample.
I had one problem though - on this machine, when debugging a console application I couldn't get the Properties of the command prompt to come up when stopped at a breakpoint, and of course the command prompt disappears as soon as the program finishes running. I could change the properties in the command prompt you get for "start without debugging" but they had no effect on the debug one. The font was too tiny to use in a presentation:

Here's what I did. I brought up any old command prompt, right-clicked in the title bar, and chose Defaults instead of Properties. This affects every command prompt on your machine at once. I switched to Lucida Console and a bigger size, and closed the command prompt, then debugged my console application again:

Do I care that the font is now big in all my other command prompts? Not really. I suppose if I did I could deal with their properties one by one.
Kate
 Friday, 31 October 2008
An interesting thing happened towards the close of Thursday's MFC session at PDC. Damien Watkins was taking questions, and as so often happens, some of the questions were really more comments or suggestions, feature requests and so on. It's rare for the speaker to be the person who can act on these requests. Normally we're reduced to saying "send me an email and I'll forward it to the right people." Sadly, very few attendees do that. I know it takes a great deal of initiative and even courage to ask a question at a big conference (I do remember my pre-speaker days) and when asked to send email instead, that is sometimes too high a hurdle. As a speaker I can try to make a note of it, but if it's outside my area I may not write down the most important word of the request and that may leave the team unable to respond.
So during Thursday's session, after the third or fourth "OK, I'll pass that along," Damien volunteered:
I know you're thinking "he's just nodding his head and not paying any attention", but if you're using the mike it's all getting recorded. Everybody back on the team says "hey, as soon as it's online, let us know so that we can go ahead." It is getting recorded so it's all going back.
After the talk, Damien told me that they recorded the MVP Summit sessions and replayed them frequently to hear the attendee comments in context and with precision. For the PDC talks, when they need to share comments with another team, it's as simple as sending them a URL and a minute mark and asking them to listen. In fact I've done that myself this week when asking a question of someone in Redmond who couldn't attend - I sent the URL to the talk, a screenshot of the slide, and the minute mark. One of the easiest followup emails to compose ever. It really makes it possible for the conversation to continue long after the conference. I hope the trend spreads to all my conferences.
Kate
 Thursday, 30 October 2008
Did you get a set of DVDs for Tech Ed USA this year? I did, and I find them incredibly valuable. But when I went to use one recently, I had a problem: it asked me to install Silverlight. That was weird, since I have Silverlight - in fact I have the latest version. But when I clicked the link, the problem got worse:

I contacted the folks in charge of the DVDs and they told me that in fact you can still get to all the content as long as you know the session code. The only hard part is finding the right disk. Then you browse to the folder for the session:

Once there, double click Player.wms and you should be all set.

I shrank the picture so it would fit in the blog - the text looks perfectly normal in real life.
The online site has been updated to Silverlight 2, but this lets you continue to use your DVDs. There's also a handy index of talk titles and speaker names, which I have been permitted to upload. It's an attachment to this post.
So enjoy your Tech Ed content!
Kate TechEd 2008 North America DVD Compatibility Issues.pdf (617.2 KB)
 Wednesday, 29 October 2008
Even those of us who are here can't see all the sessions we want to. I have three and four stacked across in most timeslots - and then I might end up spending that timeslot getting some vital "face time" with an RD or blue badge I don't otherwise get to see. But never fear, they're online within about 24 hours of happening! And what's more, you don't have to be registered to see them!
So, that Parallel native C++ talk that put me in the overflow room? http://channel9.msdn.com/pdc2008/TL25/ - watch the video, download the deck. The terrific Boris Jabes talk I lined up for? http://channel9.msdn.com/pdc2008/TL13/ - same deal. The MFC talk that hasn't even happened yet? The page is waiting at http://channel9.msdn.com/pdc2008/PC26/ and the video should probably show up Friday.
Want to find some more? https://sessions.microsoftpdc.com/public/timeline.aspx. This is just an amazing thing to do. It really increases the value for me of being here because it lowers my stress and worry about choosing the right session. It lets me concentrate on going to talks where I want to meet the speaker or ask the speaker a question, on going to the Labs and Lounge area to meet product team folks, and on enjoying the experience instead of frantically taking notes (or snapping pictures of demos). I think this makes me MORE likely to attend future PDCs, believe it or not.
Kate
 Tuesday, 28 October 2008
An astonishing thing happened to me on the afternoon of Day 1. I went to the room for the "Parallel Programming for C++ Developers in the Next Version of Microsoft Visual Studio" talk, and the redshirt guarding the entrance said "the room is full you have to go to the overflow room." I tried logic with her "It's a C++ talk! It's can't possibly be full!" but she chose to believe her own eyes. So I walked the hundred miles or so to the overflow room, which itself became full. The audience really enjoyed seeing how simple it can be to take advantage of multicores using templated functions. Lines and lines of boilerplate goo disappear into a library instead of your code, which means people might actually do this. Nice stuff.
Having learned my lesson, I lined up immediately for "Microsoft Visual C++: 10 Is the New 6." The room filled up just as fast:

I don't think I had heard Boris Jabes present before. He was very good indeed. The slide you see in this picture lays out the mission statement for "Dev10", the next version of Visual Studio, as far as the C++ team is concerned: Make VC10 the most productive IDE for native development. Then he proved it to us. Since it was the last talk of the day, people stayed with questions for a long time afterwards. I really enjoyed listening in on those.
Tuesday started with a keynote that really impressed me. Azure is amazing but the gritty details are not there yet. But Windows 7 - it's on the hard drive! It's real! So they showed it to us. Then they started talking about client development. Ray pointed out a number of advantages of writing a Windows application instead of (or as part of a suite that also has) a web app.

I loved the Windows 7 demo. Lots of features there I really want right now. I love Vista, but this is even nicer. And I hear the stability is great already so you could really use it. Julie plugged the Engineering 7 blog I've plugged myself.
Scott Guthrie said C++ five times. I don't think I've ever heard him say it once before.

Don't worry, he talked about managed code too. You may think of ScottGu as "the web guy" but he gave client development in general, whether C++ or WPF, some serious love in this talk. Great announcements too - grid control for one!
Want one more inside joke explained? (I just love the RD alias for this sort of stuff!)

David Treadwell's shirt had 0x007FFF embroidered on it. Think of it as 00 7F FF. RGB. Go try it in some HTML. Then think back to Day 1.
Update: better picture of the shirt by Angus Logan. Subtle-as-a-brick demo of the colour by Steve Clayton.
Missed the keynote? Based on the URL to day 1, try http://channel9.msdn.com/pdc2008/KYN02/
Kate
 Monday, 27 October 2008
Now the fun begins.

If you were there, or watched it streaming, did you wonder about the shoes?

Azure and its subsystems had a number of code names, one of which was "Red Dog" and the team got red shoes (dogs being a slang term for feet) in honour of the name.
If you missed the keynote, you can watch it at http://channel9.msdn.com/pdc2008/KYN01/
I had heard some of this before, but not all of it, and I need to digest it a bit, but I think the key difference between Azure and hosting, between Azure and the Amazon offerings, is this: it's one thing to offer you a machine (real or virtual) and tell you "feel free to remote desktop into this and do what you need to do, install things, configure things, it's a machine" but it's a completely different thing to publish your app to the cloud and to configure the cloud rather than your target machine. I like it.
Kate
 Sunday, 26 October 2008
What can I tell you about Day 0? Well I am not allowed to tell you much, the RD side meetings on Day 0 are always strictly NDA. But I can tell you I am getting excited, I'm really glad I came, and I'm changing my IM display picture for the week to this:

LA is warm, the convention centre is as huge as I remembered, and I am pumped up!
Kate
 Saturday, 25 October 2008
My Tech Ed Europe sessions are confirmed (have been for a while actually) so I had better tell you about them:

See you there!

Kate
 Friday, 24 October 2008
Here's a brand new blog, written by someone I work with from time to time at Microsoft. Well, that's who's name is in the URL, but the first post has talk of "we" so perhaps it's a team effort. The mission is
...this blog will be a “one stop shop” on the road to get yourself familiar with what Windows 7 has to offer for developers and how you can “Light-Up” using Windows 7 features in your application.
Nice. I'm reading!
Kate
 Thursday, 23 October 2008
Actually I know what it is ... it's a large code base, fully available, very graphical, and with reasonable performance demands. So many years ago, Vertigo ported Quake II to managed C++ to show how performant the app was and how easy it was to integrate something that is quick to do in managed code - a partially transparent bad-guy locator if I remember correctly. That was five years ago, before C++/CLI, so it was a thicket of underscores and general hard-to-read misery.
About a year ago, Greg Dolley did it to C++/CLI. And then in January of this year he did Quake III Arena.
Well, now Julien Frelat has done it in Silverlight! He was apparently inspired by someone who did it in Flash. This is Quake I, but he has plans for II. Adam Kinney has an interview and video.

What else can Quake be ported to?
Kate
 Wednesday, 22 October 2008
Rico, who like me wonders from time to time "am I old?", muses about how things tend to come on around again. Is C++ too old to bother learning now? Rico says no. But he also says:
...the real need facing C++ programmers is somewhat the same as what faced COBOL programmers say 25 years ago. It's not that the language is out of joint -- it isn't. I mean, ok maybe you like or don't like COBOL syntax but that doesn't doom a language and surely C++ syntax is not the zenith of wonderfulness. But that isn't what's holding C++ programmers back. The biggest problem, at least in my opinion, is one of accessing new/modern runtime features that may have a different programming environment from the context of an existing environment.
Now, what does that translate to in terms of action items for you? Good question.
Kate
 Tuesday, 21 October 2008
As you know if you attended the talks at Tech Ed USA and Tech Ed Europe, or listened to me on DotNetRocks, MFC now supports a Ribbon user interface. You can take some MFC application you haven't touched for a decade or more, add a few lines of code, leave all your command handlers and such untouched and -tada!- you can have a user interface from this century.
But it's one thing for me to demo for you what a tiny amount of code it takes to add a ribbon, and another for you to design a sensible ribbon that will lead your users effortlessly through your UI. Some guidance has now been released. For example, they are very clear that this is a bad ribbon:
.png)
There are tons of images and annotations to help you devise something your users will enjoy using. Please read it before doing any Ribbon work, whether in MFC or not.
Kate
 Monday, 20 October 2008
WPF lets you build truly beautiful user interfaces and user experiences. To do a good job, you need to think differently than a typical "grey boxes on a grey background" form based UI. Once you do that some ideas may come to you - wouldn't it be nice if you didn't have to write a lot of code to achieve the things you think up? Using effects is one way to jazz things up without doing it all yourself. Jaime Rodriguez blogged about the release of a library of effects on Codeplex. His blog includes still pictures, but really you need to see these on video. There's also a Channel 9 interview. Take a look and start to think about how users process information from your applications.

Kate
 Sunday, 19 October 2008
Word is starting to spread about the Vista Bridge. Greg Duncan's blog entry on it links to the SDK blog entry and includes a screenshot of the demo. Nice to see awareness growing on this. Interesting link on the side to a buzzword bingo game for Zune. I really need to take a few minutes and get some games onto my Zune to make those plane rides go a little faster...
Kate
 Saturday, 18 October 2008
Some schedules I have flagged with "must attend" in my calendar:
TL13 Microsoft Visual C++: 10 Is the New 6 Boris Jabes
Get more done. The next version of Visual C++ is all about improving developer productivity for large-scale applications. Learn about the IntelliSense and browsing experiences, changes to the project and build system, project-less browsing, collaboration through remote symbol indexing, and custom visualization of symbolic information.
Tags: Advanced, Languages
PC26 Microsoft Visual Studio: Building Applications with MFC Damien Watkins
The next release of MFC will provide encapsulations around a number of new Windows platform features. With this functionality you can easily build applications that integrate into features such as desktop search, application restart and recovery functionality, leverage the new Windows UI metaphors such as Live Icons and Rich Preview. These features represent one of the most significant updates to MFC in years. Come learn the details on all these new classes so you can rapidly build Windows applications that stand out from the crowd.
Tags: Advanced, Visual Studio
TL25 Parallel Programming for C++ Developers in the Next Version of Microsoft Visual Studio Rick Molloy
Build more responsive C++ programs that take full advantage of multicore hardware. We demonstrate how the new Parallel Pattern Library (PPL) enables you to express parallelism in your code and how the asynchronous messaging APIs can be used to separate shared state and increase your application's resilience and robustness. Finally, we take a look at some of the new capabilities of C++0x and Visual Studio to help you efficiently code and debug your multi-threaded applications.
Tags: Advanced, Parallelism, Visual Studio
Kate
 Friday, 17 October 2008
The concept of "a whole bunch of thingies" is a vital one in just about every programming language. Some languages support it right in the language itself. For example in C++ you can have an array of integers, or Employee objects, or Customer pointers. And when you use an array, you know that it's a continuous block of memory, and it's possible to interact either with just one element of the array or with the entire array. VB has arrays, and so does C#, and while the syntax is different between them, the essential concepts are not.
The thing is, an array is only the simplest and most accessible way to say "a whole bunch of thingies". It's important that you learn other ways to express that concept - typically by using a class of some sort that someone has written to represent it. There are a ton of these depending on whether order matters to you, does insertion speed matter more than traversing/iterating speed, and so on. Some folks, having learned one way to say "a whole bunch of thingies", look at all the other options, roll their eyes up into their heads, and stick with the one way they know.
This is bad. Not just because your code could be faster, neater, and easier to write, but also because arrays are really poorly suited for certain tasks. They especially hamper parallel programming - and you know that the future is concurrent, right?
Eric Lippert has written a cogent and compelling explanation of why arrays are rarely the right choice, and what you should do instead. It's written, naturally, from a C# perspective, but it's applicable to C++ and VB too. It boils down to this: Object Oriented Programming is the norm. Start trusting object writers. Use a class that someone else wrote and provided with your compiler, and you'll be a happier developer. And if you don't have some neurons fire over the phrase "considered harmful", here is a history lesson on that.
Kate
 Thursday, 16 October 2008
With every year that goes by, I of course get older. But I tend to feel older in bursts that are further than a year apart. Like when I first had a student in a class of mine who was born after 1977, which is the year I started university. Or when someone asked me where to get that special .NET utility "xcopy" so they could take advantage of "xcopy deployment". (Hint: it came in very very early versions of DOS. Pre Windows.)
But it turns out some technologies are not only older than when I started in this business, they're actually older than when I was born. Video games are 50, and I am not.

The circular inset shows an oscilloscope that was hacked up to let people play "tennis". But not like Pong, from above - this was from the side. From the CBC article:
Several weeks before the annual visitors' day in 1958, Higinbotham decided to liven things up. While reading through the instruction manual for one of the lab's analog computers, he found a description of how the machine could calculate ballistic missile trajectories. With some minor programming modifications, he discovered that he could turn the ballistics demonstration into a manually-controlled game resembling tennis. Higinbotham had Dvorak hook up the computer to an oscilloscope, a five-inch screen used to display electric voltages, and add a pair of box-shaped controllers, each with a knob and a button. The resultant game resembled a tennis court, as seen from the side. A horizontal line represented the court while a short vertical line in the middle was the net. Players could control the ball's direction and speed with the knob on the controller and hit it with the button. "Tennis for Two," as it was dubbed, was a simple reworking of the analog computer's basic functions. To Higinbotham, it was no big deal. "He didn't think there was anything new in there because he just used the circuits that were explained in the manual that came with the computer," says Peter Takacs, a physicist currently working in Brookhaven's instrumentation division. "He just took those circuits and figured out how to wire them together that would allow two people to hit a ball back and forth across the net. He didn't really think that was such an innovative thing." Dvorak Jr. says the whole point of the game was to simply show off the capabilities of the hot new technology of the day. "The whole idea was to show the public what a computer was, what it could do," he says. "From the perspective of society, he had no idea what he was doing."
Really cool.
Kate
 Wednesday, 15 October 2008
Normally I read Joe Duffy's blog for the concurrency goodness. But like most people, he has opinions that range quite a bit broader. His take on "what is an architect?" is really interesting reading. It's several pages long: here are the subheads:
0. Inspire and empower people to do their best work. 1. Oversight, but not dictatorship. 2. Taste is a hard thing to measure, but is invaluable. 3. Write code and get your hands dirty. 4. The power of the dyad: know your weaknesses. 5. It's for the customer, not you. 6. Admit when you're wrong, fall on your sword, and then fix it.
Joe concludes "Being an architect, in the end, is all about helping others to succeed. If you’re a really good architect, you’ll inspire people and rub off on them. You’ll gain a certain level of respect that is unmistakable and priceless. And that, in my opinion, is far more fulfilling than anything you could accomplish on your own working in a vacuum."
You may agree or disagree about whether these leadership skills are architect skills but I find this a great summary of what I'm trying to be in my firm and how I want to relate to my developers, testers, designers, and so on. Take the time to read it through.
Kate
 Tuesday, 14 October 2008
Do you recognize this man?
Maybe that's too recent a picture... try this one:

Combine these tickets with the PDC location and I have an earworm that should be with me till the end of the month.
Kate, humming
 Monday, 13 October 2008
Believe it or not, this code (snipped from something larger) compiles: unsigned int c = ( o-----o
| !
! !
! !
o-----o ).area;
assert( c == (I-----I) * (I-------I) );
assert( ( o-------------o
|L \
| L \
| L \
| o-------------o
| ! !
! ! !
o | !
L | !
L | !
L| !
o-------------o ).volume == ( o-------------o
| !
! !
! !
o-------------o ).area * int(I-------------I) );
Not only does it compile, the asserts succeed. What's more, o is not some instance of a class, and neither is I. As you might imagine, there's some bizarro stuff behind this. Templates, operator overloads, ... it's all reasonably silly and impressive at the same time. Needless to say, the ! and -- operators do not "do as the ints do" in this case.
The files you need are at http://www.xs4all.nl/~weegen/eelis/tutorial.cpp and http://www.xs4all.nl/~weegen/eelis/analogliterals.hpp. There's an explanation of sorts at http://www.xs4all.nl/~weegen/eelis/analogliterals.xhtml but my IE7 refused to load it, so I saved it on my machine and renamed .xhtml to .html. To test the code I used VS 2008, made a Win32 console app and just pasted the body of Eelis' main into my generated main, and the body of the header into an empty header file. No strange settings required and no warnings on compile.
Try it yourself!
Kate
 Sunday, 12 October 2008
I just love the Vista Bridge. I've spoken about it at Tech Ed, on Geekspeek, on DotNetRocks, and pretty much anywhere that will have me (and I have more planned.) Now the Windows SDK team is blogging about it. Yay! They include where to download it, how to make sure you get it when you install the SDK, and some workarounds for some bugs in the samples.
Stay tuned for more Vista Bridge info...
Kate
 Saturday, 11 October 2008
Headed to the PDC this month? Is it your first? Or did you go once before but ended up feeling you somehow wasted the opportunity? A huge part of conferences is the face time. The really popular sessions will be blogged (so go to sessions on more obscure topics), there will be other ways to get some of the information (not all, so choose wisely), but no screencast can compare to chatting to people who know things you need to know, to making friends, and to seeing some of your heroes as actual human beings and learning what beer they prefer. Thomas Lewis has an intruiging Guide to the PDC that covers slightly different ground than the usual guides. An intruiging combination of how to learn the most and how to get free drinks as well.
Alas I am not staying at the Westin, but the Marriot. The good news is I have an invitation to a party at the Standard .

See you there!
Kate
 Friday, 10 October 2008
Well, I already knew I was an outlier. And I knew that my number of open windows was part of that eccentricity. But just how much? According to the Engineering Windows 7 blog entry on the taskbar, pretty much everyone peaks at less than 15 open windows, and most people at less than 10:

Here's my taskbar at a typical moment:

It's routinely three high. I've never gone to four high, but I have had more open than that. 40 doesn't seem unusual to me (that's 42 there) and I can find my way around in them easily enough. I am a big-time Alt-tabber of course.
Curious how the taskbar, launch pane, start menu, and so on will be different in Windows 7? Want to understand why some features are the way they are (hint: customers are all different, except in the ways they are the same)? Read the blog!
Kate
 Thursday, 09 October 2008
The Engineering 7 blog is really something. These guys are sharing a TON of information about how they decide what will and won't be in the next version of Windows, how it will work, how they will know they're done, and so on. I enjoyed this summary of UAC issues - what they learned from Vista and what they intend to do in Windows 7. Interesting points:
- Intuitively we all know the number of UAC prompts you see should go down over time, because once you have things installed and configured, you don't run the admin apps any more. But they also go down because you used to run old versions of apps that weren't UAC-aware (think Visual Studio 2005 and having to run it elevated most of the time, especially for ASP.NET work) but later you install a newer version that is aware and doesn't have to run elevated (Hello, Visual Studio 2008!)
- The number of different applications that cause UAC prompts "in the wild" is down to about one-fifth of what it was when Vista first released. That's a great success for persuading software vendors to get new versions UAC-aware.
- They plan to add information to the dialogs in Windows 7 so you will understand more clearly what you are being asked to approve.
Can't wait to get to the PDC and learn even more about what Windows 7 will have in store for us!
Kate
 Wednesday, 08 October 2008
I know, I know, what could we possibly learn about C++ in 2008 by reading yet another interview with Bjarne? Well, as it turns out, I did learn some new things, so you can too. Like that the name was chosen to be short because some folks were calling C "old C" to distinguish it from "C with Classes" which was too long to say often. And after quite rightly disclaiming that "what would you do differently if you could do it over" is an unanswerable question, he answers among other things "I would have developed templates (key to C++ style generic programming) before multiple inheritance (not as major a feature as some people seem to consider it) and emphasized exceptions more." Wow! Or how about this quote:
If you look at some of the most successful C++ code, especially as related to general resource management, you tend to find that destructors are central to the design and indispensable. I suspect that the destructor will come to be seen as the most important individual contribution -- all else relies on combinations of language features and techniques in the support of a programming style or combinations of programming styles.
Another way of looking at C++'s legacy is that it made abstraction manageable and affordable in application areas where before people needed to program directly in machine terms, such as bits, bytes, words and addresses.
I do love destructors and deterministic destruction, can't deny it. The article is definitely worth a read!
Kate
 Tuesday, 07 October 2008
Greg Low, Australian RD, has recorded a four-part webcast on Speaking at Large Events such as TechEd. These are full of good advice.

My advice to those who want to speak is pretty simple: start speaking. Your user group, code camps, heck start with your dog if you can't get invited anywhere. In fact, start with your dog for rehearsals even if you do get invited somewhere. Just hearing yourself get all tangled up and lost 5 minutes into the talk will impress upon you the need to have an outline and a plan, to rehearse, and not to try to memorize every sentence. Every time you give a talk you will get better, and every time you hear one you will get better, so go to things. A lot of things.
Greg covers some nice practical details that I won't repeat - watch his videos!
Kate
 Monday, 06 October 2008
 Sunday, 05 October 2008
We have Team Systems hooked up to our Active Directory, which is great. It knows who created a work item (or closed it, or edited it) by who is signed in. The dropdown of who to assign things to is prefilled based on who works here. I love it. But recently we removed someone from AD, because she has left the company (to go work in a business owned by one of her family, not that the reason matters to AD or VSTS.) And that led to a problem when I went to save a work item she'd created.

Of course I can fix the "Assigned To" - after all, if I want to see this work item completed, it's pointless to leave it assigned to someone who doesn't work here any more. But "Activated By" - not so much. I can't edit that field and I wouldn't want to anyway, the value has historical meaning.
So, what to do? Neno Loje explains. You change the work item definition so that once something has been validated, that is allowed as a value going forward. You might not want to use it on the Assigned To field, but I sure want it on Activated By.
Kate
 Saturday, 04 October 2008
I guess I haven't opened a CHM (compiled help) file in a really long time. So when I downloaded one (an installation guide) and it didn't really work properly, at first I didn't know what to do:

So, off I went searching and I found this fix. Some folks blame Vista, others say it's been that way since XP SP2, still others say it's about your browser (IE 7) not your OS. Whatever. Bill Evjen has had the fix on his blog for YEARS. I right-clicked the file, looked down at the bottom for an Unblock button, and clicked it. Presto!

I've said for a long time, an enormous benefit of the RD program is getting introduced to other RDs. Thanks Bill!
Kate
 Friday, 03 October 2008
 Thursday, 02 October 2008
Gizmodo provides a lovely video showing all the planes in the air over a 24 hour period. I really like watching the line between night and day move across the planet and the swarms of planes appear as their airport curfews open. It's cool!

If you like this sort of thing, also look at Earth at Night which doesn't move, but makes it night everywhere at once (by gluing together pictures taken at different times) so you can see how we tend to live on the coasts and on rivers.

This one really demonstrates how settlement happened in my corner of the planet.
Kate
 Wednesday, 01 October 2008
At times I have to use a low bandwidth internet connection. No matter what my speed, though, I'm annoyed when I can't interact with a web site (say, scrolling down or following a link) because my browser is busy rendering some complicated chrome I don't care about, like a tree view navigation aid. Well, to be honest, I occasionally care about that chrome, just not very often.
Try these two links and see which loads faster for you:
http://msdn.microsoft.com/en-us/library/zkch586s.aspx
http://msdn.microsoft.com/en-us/library/zkch586s(loband).aspx
Even on my highspeed setup, I feel a HUGE difference between the two versions of the page. My one complaint about the low bandwidth view is that you can't see the title of the page you're on in the body itself, where it's truncated, though it appears in full in the title bar. Clicking persist low bandwith view puts you in this mode until you get yourself out of it. (The link changes to read switch off low bandwidth view.) This has the advantage that your searches and whatnot will come up faster from now on. Darn right I'm persisting low bandwidth view. I can turn it off if I want more navigation help than the breadcrumbs give me. Here's a glimpse at another page:

What are you missing when you use this view, besides the tree view? A chance to rate the page and add your own content, the collapsing zones (that I never collapse), the language filter ... everything except what you came for - the article or the explanation of the function/object/keyword you wanted to use. If you want the chrome, just turn off the low bandwidth view.
Kate
 Tuesday, 30 September 2008
Grrrr. No doubt unexpected demand. Because really, who would want to go to a website and arrange to reduce the telemarketing calls they get?

Why is the URL an IP address? I don't know ... I followed a link to http://www.lnnte-dncl.gc.ca/ and then clicked English. Sigh. If only the government could consistently use technology. Some things (taxes, passports) work great, get your expectations up, and then things like this come along.
Hitting refresh,
Kate
ps: yes, that's just after noon. I wouldn't be giving them a hard time early in the wee hours. I tried at 6am, at 8am, and several times through the morning before getting annoyed.
© Copyright 2025 Kate Gregory
Theme design by Bryan Bell
newtelligence dasBlog 2.3.9074.18820  | Page rendered at Sunday, 20 April 2025 15:37:50 (Eastern Daylight Time, UTC-04:00)
|
On this page....
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
---|
30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Pluralsight Free Trial
Search
Navigation
Categories
Blogroll
Sign In
|