 Wednesday, 11 June 2008
If you've ever watched Star Trek: The Original Series you know it had a trope or a meme where an "away team" would beam down to the planet and suddenly one of them would be killed. Usually vapourized or dragged off by a yeti or somesuch. And as my four year old once said to me "Red people fall down. Not red people don't fall down." This is also known as the redshirt phenomenon. To this day, when I see three main characters (on any show) plus some guy we've never seen before, someone is sure to call that guy out as a red shirt just as the suspenseful music starts to rise.

Well, Matt Bailey has run the math. Are red-shirted crewmen more likely to die than yellow or blue shirts? Indubitably. But - is it good news or bad news, redshirt-wise, if the episode also features what I've always referred to as Kirk putting his boots on, though strictly speaking he does that after the plot point Matt refers to as "meeting" alien women. See how some solid data analysis and well chosen visuals can truly illustrate the redshirt phenomenon on Star Trek, at least for TOS. The powerpoints alone are worth the click.
Kate
 Tuesday, 10 June 2008
Have you seen the Deep Zoom example with the Hard Rock Cafe artifacts? It's pretty darn cool. If you don't have Silverlight and would like to see why it's cool, there's a video on the Mix blog. But I love the zooming into Virtual Earth example I was just sent. It's a CodePlex project, so you can be part of it. It can take a while to load so be patient. I showed it to someone who said that Google Earth did that, but requires downloading and installing an application. If you already have Silverlight, you don't need anything else to use this. I like that.
Kate
 Monday, 09 June 2008
I've been carrying this link around for a while and it seems like a good time to share it. Rico Mariani knows a LOT about performance and why it's important. And he knows that many of us no longer care. We trust optimizers and runtimes and frameworks and auto-caches and such to take care of things for us. Sometimes, we're right to do that. Other times, we're not. Thinking about games will naturally make you think about performance.
Kate
 Sunday, 08 June 2008
One of the questions I got in the booth at Tech Ed was about First Chance Exceptions. The attendee was getting these messages in the output window in Visual C++ warning about "first chance exception" and was concerned about it. A long-long-neglected neuron fired. I think I ran an article in a journal I edited 10 or so years ago in which Mike Blaszczak covered this. And I think the bottom line was "don't worry." So I ran a quick search and found this knowledge base article that indeed says "don't worry." The debugger gets the exception first, before your code. It just writes to the screen that it got it. Then your code handles the exception and life goes on as before. If your code doesn't handle the exception, then the debugger gets it again, and then perhaps something interesting happens. But first chance exceptions are nothing.
Having a long memory for tiny details is handy sometimes.
Kate
 Saturday, 07 June 2008
UAC prompts you whenever you do something that requires your administrator privileges, with a couple of exceptions I'll get to later. Part of not being driven crazy by UAC is coming to expect that prompt. When you choose particular menu items or click particular buttons, you are warned with the shield:

What lots of people don't spot is that some executables are also marked with the shield. Compare these two:
 
One of these will get you a UAC prompt if you run it, and one won't. Once you know to look for it, it's easy to see -- at least down in the properties area with the big thumbnail. Look closely at the little icon in the main part of the window (the icon you would double click) and you'll see it, too.
What puts that icon there? What suppresses that icon? Well these two executables have manifests. One says the exection level is asInvoker and the other says requireAdministrator. So that's a pretty obvious distinction. There are other things that put the overlay there, but thery all boil down to this: if Vista plans to show you a UAC prompt (and there are reasons other than a manifest why it might) it will overlay the icon to warn you.
Remember, though, that the icon on menus and buttons and such is not magically put there by the OS. It's put there by a thoughtful programmer who likes users to know what's going on. The same sort of programmer who puts ... on menu items that will bring up a dialog (take a look at File, Save in almost any program) and omits ... on menu items that will just act (such as File, Close.). If you're programming for Vista, you need to be that kind of programmer.
Kate
 Friday, 06 June 2008
In addition to the talks with C++ in the title (3 of them) and with C++ or a related word in the abstract (3 more) I listed in an earlier posting, I spotted this in a Tech Ed deck:

Heh. That sure isn't C#. What talk is it?
MBL302 Building Windows Mobile Applications That Work with Windows Vista Sync Center
The new Sync Center in Windows Vista will become the hub for all data synchronization between the PC, Mobile Devices, and online services. Take a closer look at the development framework, as well as the end-user experience that Sync Center helps create. This session dives into the code you need to write in order to plug your application into the Sync Center user interface. If you're writing an application for Windows today that has any synchronization components, you should not miss this session.
The speaker has a blog entry that states his pro-C++, pro-COM position unambiguously:
This is easy, this is Windows software development like it has been for at least 10 years. It is well defined, well known and well supported...go and learn C++ and COM, it is how many of the Windows Vista features are exposed to developers and with good reason. If you are not prepared to learn how to program your computer then you should question why you are in the software development business.
I think easy might be an overstatement, but I do certainly agree that "old style" programming techniques still have real value in the Vista universe. Keep your skills sharp!
Kate
 Thursday, 05 June 2008
How many C++ talks are there at Tech Ed this year? Well if you just run your eye down the titles, you'll see these:
MBL202 Maximizing the Usability and Compatibility of Your Mobile Microsoft Visual C++ Application
This session is targeted towards native (C++) developers. The next version of Windows Mobile will have a radical new look, with lots of new common controls and UI capabilities. This session helps you understand what you can do today to minimize backward compatibility issues. We also share many tips and best practices for improving the usability and overall quality of your mobile applications.
TLA327 Parallelize Your Microsoft Visual C++ Applications with the Concurrency Runtime
Introducing concurrency into native Visual C++ applications has long been the domain of true experts and gurus. Yet, as the hardware industry shifts toward multi-core and manycore processors, all developers will need to be able to write robust and scalable parallel applications. As part of its work on Visual C++ and Visual Studio, the Parallel Computing Platform team is building a key set of technologies that will enable the development of such applications. In this talk, we explore libraries for expressing concurrency, a set of messaging APIs that allow developers to consistently build parallel applications that are robust and resilient, and a shared user mode runtime for scheduling and for coordinating system resources. Come learn about these exciting new technologies that will help bring concurrency to the masses.
TLA403 Microsoft Visual C++ 2008 for Unrepentant C++ Developers
Visual C++ 2008 is packed full of changes for those who prefer the C++ language syntax and power. This session covers STL/CLR, the new extensible marshalling library, and changes coming in the C++ standard, specifically TR1. If templates don’t scare you, Boost has intrigued you, and you’re the one everyone turns to for mixing managed and native code, this session is for you.
But there are others, they just don't have C++ in the session title.
TLA321 Microsoft Visual Studio 2008 IDE Tips and Tricks
Harness the power of the 2008 IDE using new tips and tricks used by top Microsoft MVP developers and Microsoft employees. We look at new keyboard shortcuts, new options, the powerful "Quick Command" system, macros, tweaking IDE performance, and more that will make any developer using Visual Studio instantly more productive. The entire session is hands-on inside the IDE and applicable to any language, including Microsoft Visual Basic, Visual C#, and Visual C++. If you've been using Microsoft Visual Studio 2005 or have never touched Visual Studio, you're guaranteed to walk away a VS power user.
WIN312 Windows Presentation Foundation and Legacy Code
Yes, legacy (MFC/Win32) applications can interoperate with a Windows Presentation Foundation (WPF) user interface. Companies that have large Microsoft Visual C++ codebases can modernize their legacy applications by giving them a contemporary user interface. They can do this without having to rewrite the core of their codebase. This talk presents "best practices" for how to modify an application so that the native code operates correctly with a new WPF-based managed user interface. The talk covers such questions as "Can MFC applications move to use WPF," "Does it make more sense to rewrite or upgrade the UI," and "How do you design an interop solution between MFC/Win32 and WPF?” As the talk unfolds, it includes a number of "do's" as well as "don'ts."
TLA326 MFC Updates for Microsoft Visual Studio 2008 and Beyond
This session demonstrates the new features added to MFC in Visual Studio 2008, including support for Windows Vista Common Dialogs, Vista Common Controls, the 2007 Microsoft Office system look and feel (including support for an Office Ribbon-style interface), Office and Visual Studio-style Docking Toolbars and Tabbed Documents.
If you're here and you missed one of these, grab the slides on CommNet and see if you can find the speakers on site. If you didn't come to Tech Ed this year, consider ordering the DVD of all the sessions.
Kate
(note to self: add "C++" to abstract of any future MFC talk I deliver .)
 Wednesday, 04 June 2008
On Tuesday, Day 1 of TechEd, I was lucky enough to join a small group of people for lunch with Bill Gates. While spending an hour or two with Bill would be an honour at any time, to do so at his last Tech Ed was extra special. The invitees spanned a wide range of the developer spectrum, and what we had in common was our contributions to community. There were Regional Directors, MVPs, MCTs, INETA people, and so on. Bill arrived just in time for a group photo (I'll post it when I get it) and then sat down to answer questions for an hour or more. I was so impressed; more impressed than I planned to be. I found his answers really illuminating and inspiring. Our geeky minds and way of approaching problems can be turned to far more than just designing software. Why not, if you don't have to worry about covering your mortgage payment, try fixing the problems of disease, education, agriculture, and even the United Nations?
We were given an enormous (and heavy) memento:

It's going on the "bookshelf of showing off" for sure, but the inspiration and the practical information are more to me than the crystal .
Kate
Update: Fellow attendees Andrew Brust, Matthew Roche, Daniel Egan, Scott Golightly, Stephen Forte, and Neil Roodyn have blogged their impressions also. So has Soma, who graciously welcomed us all to the lunch and is well known as a friend of developer community people.
 Tuesday, 03 June 2008
It's one hour till my first breakout session. There isn't time enough to start anything, like actual work from the office at home. It's pointless to worry about my session - I'm well prepared for it anyway but if I wasn't, there isn't time to add a demo or change the deck or anything like that. I just have to sit and wait. It's one of my poorest skills. So I sit and stew instead, which is nowhere near the same thing.
But if you're reading this, and it's not 4:45 yet, come on to S230C and learn about MFC Updates. Why not?
Kate
 Monday, 02 June 2008
I've been talking with attendees already and thought I would share some ideas I've been passing along. Planning is key to getting the most out of this week. The last thing you want is to be wandering the endless halls of a huge convention centre wondering where you should go next.
Start by planning your sessions with the schedule builder. You should put at least two sessions into almost every slot. Here's why: some of the sessions you plan to go to will not be right for you. They will be too introductory, or too advanced. They will cover just one little part of a technology that you don't know enough about, or a giant overview when you've already decided to concentrate on one corner. This should be clear about 5 minutes into the talk, and then what you need to do is leave. The slides will be on CommNet or the attendee DVDs, so you can get your overview or introduction later. But this hour of your life spent in the same room with someone who knows the topic needs to be spent carefully. So you quietly leave, and head to the other session you planned for this time slot. There really isn't time for you to start flipping through the catalog for possibilities once you've already ducked out. On the other hand, if the session you chose is amazingly great, stay, and plan to get the slides for the other talk instead.
As the week goes on, you'll learn the leveling codes. Every session has a code like TLA326 (my Tuesday afternoon talk.) TLA means Tools and Languages, which is appropriate since my talk is about MFC updates the team has just delivered. the "26" part doesn't really mean anything, it's just an identifier, but the 3 is the most important part of the session code. It means this is a 300 talk. These talks are advanced level, for experienced developers. They are supposed to include:
- Drilling into how a Product / Technology is designed
- Real world examples
- Complex coding, known issues and workarounds (sample code/examples)
Compare that to a 400 level talk (like my TLA403 late Friday.) These are expert level, and likely to have:
- Advanced coding considerations/challenges
- Design considerations/challenges
- Architecture considerations/challenges
- Troubleshooting techniques at the debug level
The best description I've heard is that a 400 level talk will make your head hurt, in a good way. But really you just have to start attending talks and then you will start to see the difference. You will also start to recognize key phrases in talk titles and abstracts such as A Lap Around and know what to expect from that session.
The next tip is that sooner or later you will have a timeslot with no sessions. Maybe you ducked out of one, and then ducked out of your second choice too. That's OK! Head down to the lowest level and wander by the product team booths in the TLC, or the Community Lounge, or do a Hands On Lab. These things are often the most important part of Tech Ed. More on that later!
Kate
 Sunday, 01 June 2008
Here I am again in Orlando, getting ready for another Tech Ed.

Being in a familiar place, doing something I've done so many times before, it makes me finally ready to blog again. A lovely quote I read just yesterday, "Blogging, like speaking at a Quaker meeting, is something one must do only if the spirit moves one." And today, in a hushed convention centre that will hold over 10,000 tomorrow but seems to have only a dozen today, it moves me. (Read the whole article, btw. And reflect that at Tech Ed we are exhorted to Learn, Connect, Explore.)
Tomorrow, my precon on Vista programming. And plenty more to follow. My friends, in more ways than one, here we are again.
Kate
 Thursday, 31 January 2008
The keynotes for SD West have been announced. Can you guess which title got the biggest reaction from me?
- Agility at Scale: Applying Agile Software Development Techniques on Real-World Projects
- Beautiful Code
- Is Agile Really Working for You?
- Object-Oriented Programming and Generic Programming and What Else?
- Parallel or Perish!! - Are you Ready?
The abstract for the last one starts, "A software revolution is underway, triggered by the shift to multi-core hardware architectures. " It sure is!
Kate
 Wednesday, 30 January 2008
Daniel Moth alerts us that a new icon has been added to System.Drawing.SystemIcons in SP1 of the .NET Framework 2.0. It's the shield - the one you put on a button by sending a BCM_SETSHIELD message with true as a parameter. Now there's another way to put the shield on things and alert people that what they are about to do will trigger a UAC prompt. Cool!
Kate
 Tuesday, 29 January 2008
Yes! Finally one of my favourite conferences comes to one of my ... er ... nearest cities! DevTeach, star of Montreal and recently Vancouver, is coming to Toronto and bringing many of my friends and colleagues with it. I’m speaking there too... the sessions are at http://www.devteach.com/Session.asp. My talk needs it’s abstract tweaked but the title is good: What's New in Visual C++ 2008. Register before February 1st for the early bird deal. As always, Jean Rene is offering deals to user group members and other community people, so check with your contacts if you have any.
If you’ve never been to a technical conference before, and you aren’t sure anyone would pay travel and hotel for you to go to one, DevTeach is a great way to prove the value of conferences to yourself and your boss. World class speakers (many of whom will be delivering on the same topics at much bigger and more expensive conferences just a few weeks after DevTeach), topics that are relevant to your work right now, and a marvellous delegate-friendly atmosphere combine to attract attendees and speakers – why not you?
Kate
 Monday, 28 January 2008
This year for the first time I am speaking at SD West. This is a conference I have watched from afar and often wanted to attend. I’m delivering a half day tutorial on Vista Programming, and a new breakout session called Practical Visual Studio Team Systems. In between I will be at Sutter and Stroustrup on C++ and a host of other feed-my-brain sessions that you might also want to attend. Check the full session list and register quickly... the early bird deadline is February 8th.
The Vista Programming abstract is:
Windows Vista is the most compelling operating system release in nearly a decade. With major improvements in the areas of security, user experience, and performance, Windows Vista offers a robust and dependable platform for building a breadth of solutions. This half day seminar prepares you for building a new class of applications that take advantage of these improvements. Come and see how to take advantage of some of the most interesting new native APIs, inter-op techniques, and .NET Framework 3.0 technologies. Learn how to build the next generation of smart client applications with the Windows Presentation Foundation (WPF), and improve user experiences with technologies like task-based dialogs, sidebar gadgets and customized Windows search functionality. Learn inter-operability techniques with managed wrappers and how to leverage the Vista Bridge. Dive into the best practices for upgrading existing applications, and understanding User Access Control (UAC). Learn how to build more reliable and secure applications with technologies like Application Restart/Recovery. And lastly, learn how to build more connected systems with Windows Communication Foundation (WCF) and RSS platform support.
The Team Systems abstract is:
The real strength of VSTS is its adaptability. Our small shop (no professional project managers, everyone’s a developer of some kind, not-officially-agile-but-not-CMMI-either) has learned a lot about making VSTS and TFS fit the way that we work. Topics include knowing which project people are working on without asking them, adding your own fields to those provided out of the box, writing your own queries and reports, and customizing your project portal. This session will help you get up to speed with the features the most practical features VSTS has to offer, and best practices will be suggested.
See you there!
Kate
 Sunday, 27 January 2008
Tech Ed breakout selections are almost complete, and I should have an announcement soon about my Tech Ed presence. We can get started with my PreCon: Windows Vista Programming: User Experience, Application Compatibility, Reliability and Connections. The pre cons are on Monday of Tech Ed week this year, and registration should open soon. In the meantime, plan to travel Sunday night and attend this pre con so you can come up to speed on programming for Vista and with .NET 3.5 including WCF and WPF.
Kate
 Saturday, 26 January 2008
A little while ago I appeared on GeekSpeak, talking about the Vista Bridge and how managed code developers (C# and VB.NET, for the most part) can get to some of the cool new Vista stuff without having to get into the worlds of C++/CLI or of interop. I love those worlds but I understand plenty of people don’t. The recording is now on Channel 9. Geekspeak is an unusual webcast because there’s no powerpoint, and no agenda. You show up, people ask you things, you talk, you demo, and before you know it an hour has gone by. I had a great time and I hope you enjoy it too.
Kate
 Friday, 25 January 2008
Larry O’Brien continues his musings on what makes a good developer and a bad one. Now he’s bringing methodology and your code base into the mix. You just have to read it, that’s all. Best quote: “To me, a good programmer is one who contributes to the practices that maintain a silver codebase -- no matter how quickly they write code! Bad programmers are those who don't care about the quality of the codebase.”
Kate
 Thursday, 24 January 2008
I don’t like this. Really, I don’t. But there are people who are turning off UAC on their whole machine because there is one application for which it is a deal killer. So, reluctantly, I will tell you how to turn off UAC for just one application. I would rather you didn’t do this. Please, have a good reason.
And remember, UAC applies only to interactive applications. If it was a service, it wouldn’t be affected by UAC. So that whole tale of woe about nobody is at the keyboard to consent to the prompts? Then why not make it a service? Honestly, that would be better. Let this just be a stopgap. OK?
Kate
 Wednesday, 23 January 2008
When .NET first burst on the scene, we talked a lot about “XCopy deployment”. What we meant was that you didn’t need registry entries, you didn’t need to copy DLLs to windows\system32 or whatever, you didn’t need to mess around with the person’s computer hardly at all – you just copied the exe and dlls into some folder somewhere, optionally a foo.exe.config into the same folder, and you were good to go. But we really should have called it “FTP deployment” because people would come up to me at the end of talks and ask where to find the XCopy utility that you needed to deploy .NET applications. Ooops. For those who never knew it, XCopy was a command (extended copy, a replacement for the original copy) that came with DOS. It was so much better than copy because, among other things, if the target floppy drive was full when you were copying a whole pile of files, it would prompt you to put in another one and keep going, where ordinary copy would go “disk full” and abandon the whole thing.
I admit, it’s been well over a decade since that’s been an issue, so it perhaps was no surprise to read that XCopy has gone the way of all utilities ... replaced by something shinier that has less compatibility issues with the new operating system. Of course it isn’t exactly gone, just deprecated. OK. I might have to learn Robocopy now. But I promise never to speak of Robocopy deployment. That just sounds weird.
Kate
 Tuesday, 22 January 2008
Well, if not gone at least transformed into a concurrency blogger. Steve Teixeira, who speaks and blogs on C++ topics and has a wicked sense of humour, has joined the Parallel Computing Platform team. On the one hand, this is great news, because concurrency is hugely important to me and having Steve there will be good for it. But on the other hand, who is blogging C++ things now? Sigh.
Kate
 Monday, 21 January 2008
I decided to add a Concurrency Category, and to go back in time and add things to it. I hope it helps you find my posts on this increasingly important topic. I enjoyed reading some of what I've been writing about concurrency for the last two years.
Kate
 Sunday, 23 December 2007
You know something is mainstream when it starts to get named. I've been talking about concurrency matters for over two years now. And now it seems almost every day somebody comes out with something you just have to read or watch on this matter. An attendee at Tech Ed Developers in Barcelona asked me "isn't it confusing and wrong that people are doing such different things in this space?" I don't think it is. Some folks are trying things with libraries, with compiler directives, with new language keywords, with whole new languages, with frameworks, with the operating system, with the hardware, ... with everything you can think of. And I don't know which things will work out and how the various things will work with each other. None of us do! But it sure is fun to watch it happen, and it's probably the only way to do it.
So, some links for you, accumulated over the fall:
Herb's advice is good. He says "Expect at least dozens of major product announcements and releases across the industry, before the toolset expansion phase is fully underway and approaching some maturity. We the industry have undertaken to bring concurrency to the mainstream, and as with OO and GUIs it will take multiple years, and multiple major releases, across the industry on all platforms." Bring it on!
Kate
 Saturday, 22 December 2007
The screen on my Dell laptop was very very broken earlier this year:

The nice Dell people came out and fixed it under warranty, but they were missing a part in the stuff they sent to the repair tech. The missing part was sent to me to install myself (don't worry, it's self-adhesive.) A box arrived roughly the size of those MSDN CD shipments - about 4" x 6" x an inch or more thick. Inside there was a lot of foam and other padding, and these (I added the penny for scale):

That's six little black dots on their self adhesive backing. Turned the six screw heads around the edge of my laptop from uncovered to covered:

I like the look, but why couldn't they have trusted the tech with them as part of the first repair?
Kate
 Friday, 21 December 2007
Raymond Chen asked why QuickEdit mode isn't always on for command prompts. Then he gives a cogent explanation of why, but he left me wondering what QuickEdit mode is and why I never knew about it. I copy things out of command prompts (or DOS boxes as I usually call them) all the time - usually file names, but sometimes results from things I ran or commands that I am pasting into instruction manuals. As you may know, this generally involves getting into "mark mode" first:

But there is such a thing as QuickEdit for a command prompt, and it basically means you're always in Mark mode. You can change the properties for the shortcut (on my Vista machine, the Visual Studio 2005 command prompt is in C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Visual Studio 2005\Visual Studio Tools and that's probably where it is on yours too.) Here's the option:

You have to consent to using your admin powers when you save this change, and then that command prompt is in quick edit mode every time you launch it.

It may not save much time but it saves so much frustration! Hope it helps you too.
Kate
 Thursday, 20 December 2007
Long ago I blogged about a motto of ours: Fail Fast. Some people replied with comments like "why fail at all?" but that misses the point. Mottos are short and pithy; a more accurate version of the motto would be "if you're going to fail at all, get it over with at the beginning." Here's another take on the concept ... how a week's stall while a decision gets made can cost a company thousands of dollars in hard costs. It's my experience it costs far more in reduced morale and productivity over time.
Kate
 Wednesday, 19 December 2007
Are you going to Mix? Still trying to decide? Maybe The Signal can help you decide ... or get you warmed up if you're already committed to attending.

Kate
 Tuesday, 18 December 2007
Soma blogged this before Tech Ed Developers and I actually snagged a few bullet points to add to my slides, but I never posted a pointer to the original. It's nice to see some firm numbers and as always nice to see "higher ups" remembering C++.
Kate
 Monday, 17 December 2007
So, you're the proud owner of a ton of Visual Studio 2005 projects. And you've heard that converting them to 2008 projects is pretty much a flawlessly easy thing to do ... just open the project, let the conversion wizard run, and save it. Done! Except that if you have a hundred projects, that would be a crummy way to spend your time. Who has a hundred projects? Well a book might, or a course, or a presenter with tons of demos kicking around (I resemble that remark), or a development team with a lot on the go, I suppose.
Anyway, even if you only have dozens, wouldn't you like to be able to deal with them practically instantly instead of opening each in VS, watching the wizard do stuff, clicking Next and Finish on relatively pointless dialogs that essentially mean Are You Sitting Comfortably? No problem. John Robbins has a cool tip for you, but it's so short I can include it here in its entirety.
Open a Visual Studio Command prompt. CD your way to the folder with your project in it. Issue this command, subbing in your own sln file name:
devenv /upgrade MySoln.sln
Move on to the next folder. That's gotta be faster than watching wizards work! Remember, typing is a valuable skill even for the developers of today.
Kate
 Sunday, 16 December 2007
As I've mentioned before, I don't generally consider snow in December to be newsworthy around these parts. It's normal and in fact, it's nice. But we're in the midst of a storm that's getting a lot of attention. One headline told us "You'll be Telling Your Grandchildren About This Storm" which seemed a little over the top. But this morning's radar capture tells me they weren't kidding:

This makes the capture from three years ago seem positively anemic. Back then I said I'd never seen the whole circle filled in, nor had I seen orange for snow... this one has red! OK, it's not near us, but it's still on the screen.
Since I don't live under a rock, I knew this was coming. I did my errands Saturday and today we're tucked up safe and warm with only housework and coding to do 
Kate
 Saturday, 15 December 2007
 Friday, 14 December 2007
I've mentioned before that sometimes when I search for information about topics that matter to me, the search results frustratingly include mostly things that I wrote. That's annoying when you're trying to learn more! But from time to time that same search turns up things I've forgotten, like this interview from over four years ago with Stephen Ibaraki. He's a good interviewer and it's interesting what the interview covers. People ask me all the time "how can I be a speaker too?" or "what does a Regional Director do, anyway?" There are some answers to those, and some tips about writing, interop, porting a project over to .NET, running small business, and more too. It's pretty cool!
Kate
 Thursday, 13 December 2007
In Barcelona I was lucky enough to meet Lynn Langit who told me about a number of important initiatives she's working on. I mean how can you resist "we're saving lives with Visual Studio Team Systems" as an elevator pitch? She means it, too. Lynn also does geekSpeak webcasts - no slides, no detailed agenda, just show the people something, wait for a question, show them the answer to the question, repeat for an hour. It sounds like terrific fun and I watched a few to make sure it would be, then I said yes, I would do one.
MSDN Webcast: MSDN geekSpeak: The Windows Vista Bridge for .NET Programmers (Level 300)
Event ID: 1032362711
Language(s): |
English. |
Product(s): |
.NET. |
Audience(s): |
Developer. |
|
|
Duration: |
60 Minutes |
Start Date: |
Wednesday, January 16, 2008 12:00 PM Pacific Time (US & Canada) |
Event Overview |
In this installment of geekSpeak, Kate Gregory, C++ expert, unravels the mystery of the "Windows Vista Bridge." This webcast has little or no C++ content and is aimed at Microsoft Visual Basic and Visual C# programmers who want to access cool Windows Vista stuff without the C++/CLI approach. If you have a question or comment you would like us to address during the webcast, visit the geekSpeak blog and submit it now.
Presenters: Kate Gregory, Regional Director, Gregory Consulting |
Register now! Ask questions in advance on the geekSpeak blog!
Kate
 Wednesday, 12 December 2007
Recently Eileen Crain, who used to manage the RDs, linked to a video we made "way back when" to try to explain the program. It's kind of a hard program to explain, but you might like seeing some of us try.
Kate
 Tuesday, 11 December 2007
At Tech Ed Developers Europe, one of my talks was on STL/CLR and the marshaling library. There are three super cool things about the marshaling library that all C++ developers need to know. The first is that the random boilerplate code we used to write to convert between two kinds of strings is now taken care of for us: char* stringfromnativelibrary; //gets set somehow ManagedFunctionExpectingSystemString(marshal_as<String^> stringfromnativelibrary);
The second is that it's just templates, meaning it is fast at runtime and intuitive for a C++ developer. The third is that because it's templates, we can write our own specializations, and convert between any two types we feel we will be using - typically on either side of the managed/native border, though that's not a requirement at all.
This last part is really exciting to me. Imagine you have some library you wrote ages ago that takes a RECT and does something with it related to your business logic. But you've replaced your UI and now you have a System::Drawing::Rectangle to represent what your user selected. Wouldn't it be cool to write: oldfunction( marshal_as<RECT> RectangleFromWinForms);
That's not a problem as long as someone has written that specialization. You can do it, or you can try to find one someone else already wrote.
Date and time, arrays, anything related to screen position, these are going to be types everyone uses. Why not share the effort of writing these conversion functions? That's the thought that hit me at the end of my talk. So I came home and set up a site - www.marshal-as.net - to use for just this purpose. I've had a few submissions from Jason, who was at my talk and was there when I thought of it, and a wish list from a "little birdie". The C++ team knows what I'm up to and they are excited too. Now what I need is submissions and lots of them!
So, drop me an email, comment on this post, or (better) comment on the first post over at www.marshal-as.net. I'll post the specializations one per post and we'll build a library. I'm inspired by pinvoke.net and would like to see this as the destination for finding a specialization instead of writing one. Can you help?
Kate
 Monday, 10 December 2007
Harry Waldron has an interesting post. He's been doing some testing, and he can show that a longer password is harder to crack than a short complex password. We've been using passphrases for some time in our offices - collections of words and spaces like It's Almost Time to File Taxes that are actually quicker to type than the short complex password you might create from them (try it - compare that sentence, which to my knowledge has never been a password on my network, but could have been, with Iattft, a short password made from the first letters of each word.) I actually went to passphrases for this reason - they're quicker to type and easier to get right. Now I know that they're also harder to crack. Nice!
Kate
 Sunday, 09 December 2007
On Tuesday, December 11th, I’ll be presenting Developing as a Non-Admin in the Ignite Your Coding series of webcasts. I’ll be showing Visual Studio 2008 and Vista and my focus will be on understanding the UAC consent dialogs, and how to keep your application from needing them. Register for it now, or later use the same link to come back and view the recording. But if you attend live, you can ask questions, and that’s often the best part of a webcast.
Kate
 Saturday, 08 December 2007
Wednesday December 12th is the Christmas Party for the East of Toronto .NET User Group. Mark Relph will come and talk about where he sees the industry going, your $10 cover charge will cover “nibblies”, and there’s a cash bar. Come and meet your fellow user group members and socialize a little. Please register in advance!
Kate
 Friday, 07 December 2007
Last year at Tech Ed Developers in Europe, I had a very impromptu Channel 9 interview. A “shop talk” conversation broke out in the lobby of the Hilton, and Charles decided to film it. This year we planned it in advance and I sat down with Steve Teixeira and Ale Contenti of the C++ team. Watching the video, I love watching the two of them get visibly happier as they start to talk about the product and the big changes and news they announced at Tech Ed. Steve was really quite sick and depending on throat lozenges to be able to talk at all. Despite that, it turned out to be a really fun interview.
Kate
 Thursday, 06 December 2007
Here’s a little video I did with Paul Foster on C++ and Vista topics. 15 MB, 2.5 minutes. Short but sweet!
Kate
 Wednesday, 05 December 2007
The Virtual Side guys do a great job of capturing some of the fun and buzz from Tech Ed day by day. Here’s a roundup video that features a little bit of me judging Speaker Idol. 12 MB, 2 minutes.
Kate
 Tuesday, 04 December 2007
Have you been missing your fix of Ale Contenti at the whiteboard? Are you unclear on the differences between try and __try? Or between exception handling and structured exception handling? Watch two guys who really understand how all this works and learn why not handling an exception can be as important as handling one.
Kate
 Monday, 03 December 2007
Everyone has UI woes. Users want more controls on the dialogs, or they want them simpler, or smaller, or larger, or combined, or split. The thing you think makes perfect sense they refuse to understand. But it could be so much more complicated. Take this insightful post on the Shell Blog about one of the games that has come with Windows for as long as anyone can remember: Minesweeper. Some folks who use Windows don’t actually think that mines are funny things or that avoiding them is a game. Well, probably if you asked them, most people would agree that mines are bad, but for some people it's a far more personal and upsetting reality than for others. (BTW the mines in Minesweeper are apparently water mines, not land mines, but that doesn’t really increase the fun factor.) So they changed it to give you an option to find flowers instead:

Be sure to read the whole post to understand why that was only the start of the work involved.
Kate
 Sunday, 02 December 2007
There are plenty of webcasts on “what’s new in ProductName 2007” or “Introduction to XYZ Security” or various other technical topics. I’ve done my share and will continue to do so. But this is something a little different:
- Becoming a Better Developer
- Building Your Skill Set
- Discovering Your Trusted Resources
- Becoming Your Own Boss
- Creating Your Own Start-Up Business
Some of the high flyers of the Canadian developer community are here... you want to watch these. The webcasts are available on demand and there are plenty of handy links as well for you to use as you’re following along.
Kate
 Saturday, 01 December 2007
I recently started reading Rands In Repose, a business blog of sorts that is full of advice I will never need (how to enjoy a gambling trip to Vegas) and plenty more that I find very useful. Take The Laptop Herring, for example. He argues strongly for the banning of laptops in meetings. Oh dear. I take my laptop to essentially every meeting. But he then goes to on to direct some good thinking towards WHY a person would sit in a meeting room and surf the web or check their email. Either you’re in the meeting or you’re not, right? Well, no, because most of us don’t have the power to say “that hour would be a waste of my time” so we have to go. I had a client whose meetings always lasted exactly an hour. People found a way to use up that time even if the decisions were all made at the 37 minute mark. Grrr. But whether or you not you can refuse to attend meetings that are a total waste of time, there is value in realizing that laptop use is a dramatic indicator of what people feel about the meeting they are in.
And from his comments, here’s a challenge for the brave. You want your laptop in the meeting because you’re taking notes / assigning work items / running queries / checking that against the requirements? No problem. Put it on the projector. That’ll keep you off email / IM / YouTube, won’t it?
Kate
 Friday, 30 November 2007
My last post before my hiatus was Give Before You Take. Steve Clayton expressed a very similar sentiment while talking about making yourself, as an employee, high value and hard to replace. Worth reading, and follow his link over to a nice categorization of employee values and behaviours. It’s not enough to provide high value to your employers or customers – if you provide “commodity service” that others can also provide, you’re replaceable. And who wants to be replaceable?
Kate
 Thursday, 29 November 2007
I’m a big Larry O’Brien fan, and a big DotNetRocks fan, so when you put the two together, I’m in! Then tell me they talked concurrency – one of my fave topics for a number of years now and I’m sure for a number of years yet to come. That makes this one a don’t miss for sure!
Kate
 Wednesday, 28 November 2007
Nick Wienholt took over my column at CodeGuru several years ago, and has written roughly as many columns now as I did. Yet the URL for the column still has my name in it, a discrepancy he pretended to complain about in an August blog post. He has a nice look at the marshalling library ... something you’ll be hearing more about from me too.
Kate
 Tuesday, 27 November 2007
Eric Lippert talks about some choices that were made in creating C#. He emphasizes repeatedly that C# is not “C++ with the X parts taken out” – where X might be “stupid” or “complicated” or “reserved for smart people” depending on who you talk to. And I agree with him. C# is its own language with its own strengths. It enjoys a big advantage, too: it came from a blank page and wasn’t constrained by an existing code base. For example, one subtle source of bugs in C++ applications is that the order of subexpression evaluation is not enforced by a standard. If I write x=f(y) + g(z); it’s possible that one compiler (or one version of a compiler) might evaluate g(z) first, while another evaluates f(y) first. If these functions have side effects, this matters. I’ve always advised developers that if your functions have side effects, and you care what order they go in, split these expressions up into lines that happen in the order you want: x1= f(y); x2 = g(z); x = x1+ x2; for example.
Eric asks, “is there any benefit to the user of having this order of operations be unknown?” and of course there is not. The reason the order is unspecified in C++ is because there were compilers (from more than one vendor) before there was a standard. That’s not a constraint the C# team faced, so they laid down the law – subexpressions are evaluated from left to right. [Yes, I know some people claim it is a benefit to the user that the compiler is free to optimize by adjusting the order of evaluation. I just fail to see an optimization available by doing things in a different order.]
Two morals of this story. First, new languages can do some things older ones can’t, and that’s a good thing about those languages. Second, you really need to know how your language works, or some day it’s going to bite you.
Kate
 Monday, 26 November 2007
Michael Easter posted his own personal and opinionated list of the seven most wonderful programming languages of all time. Generally he gives points for changing the world and influencing generations of developers. Perhaps you would choose your wonders based on what you can do with them today, in which case I guess Fortran wouldn’t make your list. But the wonders of the ancient and modern worlds didn’t have to hold up to scrutiny like how many bathrooms they have or whether they’d be hard to clean, and I think that should be true for languages too. If they’ve inspired us, why not recognize it? Michael chose Fortran, Lisp, Smalltalk, C, Python, Java, and JavaScript. His commenters add plenty more!
Kate
© Copyright 2025 Kate Gregory
Theme design by Bryan Bell
newtelligence dasBlog 2.3.9074.18820  | Page rendered at Monday, 21 April 2025 02:50:17 (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
|