 Thursday, 09 March 2006
Anyone who thinks that C++ is a forgotten language at Microsoft that has been put into the corner and ignored needs a quick reality check. And if you've always wanted to work at Microsoft, or if you're looking for work where you can use C++ every day, how does this sound:
Want to build the next generation of C++ development tools? The Visual C++ team has multiple openings working on the libraries. You will have an opportunity to work with environments, components and tools that are used in complex projects like Windows Vista which has about 50 million lines of C++ code. If you are willing to take up the challenge of delivering high performance, scalable, and most usable set of features to the most sophisticated and demanding developers in our community and have a passion for handling new technologies that is in Microsoft's horizon, then please send in your resume. We're looking for senior individual contributors ready to code, design and provide the next generation of code reuse leadership at Microsoft. Candidates are required to possess a bachelors or masters degree in computer science, and five years relevant experience.
If you are someone who's ready to design code that will be used and critiqued by the whole developer community; ready to have a direct connection to customers whose problems you understand then the Visual C++ Libraries team is the place for you. We are building new libraries that drive developer productivity and power on the native and managed platforms. Next version we'll bring our MFC and ATL libraries up to date to work with the new Win32 APIs of the Vista Wave. And we'll help our customers work with WinFX and move forward their existing code. We own the full set of C++ Libraries -- C Runtime Library, Standard C++ Library, MFC and ATL. In future we'll also address challenges like parallel programming, and migration of existing native applications to managed code. If you have prior experience of large scale ISV development with MFC or ATL, we'd be especially keen to hear from you.
Just as was the case about seven months ago when I blogged a hiring opportunity, you need to email Martyn Lovell for this. I figure most folks who qualify for the job can find his email address, but here's a hint: you could always email me and ask for it 
Kate
 Wednesday, 08 March 2006
It's all about the presentation layer for the next few months at East of Toronto .NET User Group:
- March 23rd, Justin Lee will demonstrate Atlas, tools to let you do AJAX-y things without hand-coding a TON of script yourself. "ASP.NET “Atlas” is a package of new Web development technologies that integrates an extensive set of client script libraries with the rich, server-based development platform of ASP.NET 2.0. “Atlas” enables you to develop Web applications that can update data on a Web page by making direct calls to a Web server — without needing to round trip the page. With “Atlas”, you can take advantage of the best of ASP.NET and server-side code while doing much of the work in the browser, enabling a richer user experience. This presentation will showcase what Atlas will bring to you, and how Atlas can change the way you develop web applications." Register so we get enough pizza.
- April 5th, we move our regular meeting date to accomodate a mini-Canadian tour by Rod Paddock of CODE magazine. Rod will be talking about Windows Presentation Foundation, formerly known by the much friendlier code name Avalon. "This introductory session will demonstrate how to use Windows Presentation Foundation (WPF) to build line of business applications. The session will begin with a tutorial on WPF basics. How to build a basic WPF application, basic XAML constructs, WPF controls, responding to events, etc. The session will then move into the realm of data binding and using controls to best represent line of business style applications (data entry with one to many capabilities). Developers will leave this session with a basic understanding of how to build WPF applications." Again, we really need you to register.
Chris has some great prizes to hand out at these meetings, but more importantly come out to learn and to meet other developers who live, you know, East of Toronto. Both meetings are at the Whitby Public Library so they're easy to get to after work.
Kate
 Wednesday, 01 March 2006
You really want to download and read http://www.gotw.ca/publications/C++CLIRationale.pdf. It's 54 pages (just under 2 MB) of WHY the C++/CLI product is the way it is. Why isn't it a library? (Because the compiler really needs to be in on what you're doing to hook in the runtime support properly.) Why doesn't it use underscores? (Because programmers hated them.) You don't have to be a compiler-writer to follow the rationales laid out here. It provides some interesting insight into the way the standards process works and the way that decisions get made by a team or by one person who is strongly committed to "doing it right this time." However this is no dry committee report or academic paper: you will find the word "I" throughout the paper, along with anecdotes about conversations, code written out quickly to help guide a decision, and other vignettes that make this must reading for all we C++ people.
Some quotes (words outside "" or in [] are mine, not Herb's):
- "Many C++ programmers tried hard to use [Managed Extensions], and most failed."
- Mapping destructors to dispose bidirectionally (probably my favourite C++/CLI feature) was "nontrivial, and required C++/CLI to influence CLI to modify and regularize its pattern)."
- "There comes a point where you have to admit that you’re trying too hard." (On having a class that inherits from System::Object magically be a ref class without having to use the keyword, an idea that wouldn't have been good anyway since it would have ruled out mixed types.)
- "Having private as a default matters so much that Stroustrup correctly felt it was worth the high cost of taking a new keyword just to have a category of user-defined types where the default was private." (In a section drawing parallels between some C++/CLI decisions and the decades-old decision to add class to a language that already had struct.)
- "...in the C++/CLI design effort, some people tried hard to leave open the possibility of allocating C++ objects physically on the CLI heap; that is impossible in general, and trying to persist in this led to confusions in the type system that have now been avoided and removed." (Ouch!)
- "As for whether this set of extensions amounts to a different superset language, a compatible dialect, and/or a binding: I think you can find reasonable people who view it any of those ways. Whichever noun you prefer, it is the most compatible set of extensions I know of to any programming language, standard or otherwise, including for nearly all macro cases — which are notoriously next to impossible to support in a compatible way. Achieving that required putting requirements in C++/CLI that placed a greater burden on compiler writers in favor of preserving strong ISO C++ compatibility and avoiding conflict with C++0x evolution, and improving programmer usability so that programmers would use the feature instead of switch to another language (unlike with the Managed Extensions). These choices reflect the designers’ great respect for ISO C++."
The paper closes with an FAQ that includes questions I can only describe as rude. I am guessing that Herb has been patiently answering these in email and at meetings for many years now.
If you still aren't really clear on WHAT the C++/CLI version of C++ is, what happened to the underscores, or how C++ can be the best .NET language of all (offering features C# and VB just cannot offer) then this paper might not be the place to start, since it's not a syntax review or a tutorial. But then again, maybe understanding the WHY will motivate you to go and learn the WHAT. And if you want more WHY, the paper is liberally sprinkled with links to blog entries by Herb and Brandon (mostly in 2003) with even more details.
Go! Read it, now!
Kate
 Saturday, 25 February 2006
I have no clue who would come up with a number such as that, but anyone who approaches me with a cheque for $17,500 (or should I say check, I bet that's US dollars) is very likely to become a proud blog-owner :). And that's a 54 cent discount!
Kate
 Monday, 20 February 2006
Visual Studio Team Systems is a huge product... diagramming tools, code generators, source control, work item tracking, project management, documentation generators, and much more besides. Some people I know have already decided to adopt VSTS because of one set of features, but really don't know how to use some of the other features. Others are still undecided about whether they want it, or which "stack" - tester, architect, developer, or all three in the Suite product - they want.
Why not attend a two-hour session that will help you to see what you can do with this amazing technology?
The abstract I received says "This session is intended to provide an introduction to Visual Studio Team System, highlight the new functionality and business value in each offering, and outline the transition steps for existing Visual Studio and MSDN customers. We will also demonstrate Visual Studio Team System in action." Why not check it out while there are still spaces available?
Kate
 Wednesday, 15 February 2006
There's good news and bad news on the "C++ product team blog" front. The good news is that Nikola Dudar has a new entry after about three months of silence. The bad news is that it's to announce that STL/CLR will have to wait a little longer. It slipped out with beta 2 but it's not in the release version, and was planned as a web download. But the team is heads-down on a number of fronts and this is one of the items that has had to be postponed. The big focus is MQ, an internal milestone that all the languages and tools are working on.
Patience is a virtue, Kate
 Monday, 13 February 2006
As someone commented the other day at a presentation I was doing, I still have VS 2005 in a VPC and not on my base machine. Why? Well I have a big ASP.NET project finishing up that is all done in 2003 (an Enterprise client, not an early adopter at all and it's been 18 months since we started) and I was just a little nervous that if I put the 2.0 Framework and the like onto my laptop that I would mess things up. I had no proof of that, and no time to go find out one way or the other, it was just a gut worry born of spending 25+ years doing this stuff. I decided to use the 2005 VPC for demos and playing with the new tools and carry on with 2003 on the actual metal.
Well today someone gave me a way cool tool that I really wanted to use -- and it needed the Framework 2.0. I decided to give it a whirl. The actual installation was nice and quick and didn't even require a reboot (though the installer did insist on my closing a few things I didn't think were framework dependent.) Then, cool tool installed, I went back to my final bug triage on the ASP.NET project, and when I brought up a report (using the ReportViewer control on the aspx page):
The report server cannot decrypt the symmetric key used to access sensitive or encrypted data in a report server database. You must either restore a backup key or delete all encrypted content and then restart the service. Check the documentation for more information.
Aaaargh! I have no clue how to restore a backup key, or what my encrypted content is and how I would feel about deleting it! So what to do? Toss that string into a search engine and you'll find links to a KB article that says "oh, you should have done xyz before you changed the user account that SRS runs under." The resolution is of no help to anyone who accidentally did so (and no, I didn't think that installing a new version of the framework would change the user account under which SRS runs.)
I uninstalled and reinstalled SRS, then redeployed my reports by opening each 2003 solution that I'm actively using on this machine, right clicking the Reports project in each and choosing Deploy. Took less than half an hour counting the near panic attack when i first got the message. But that's not a strategy for the production machine, so I just added another ToDo to the post-go-live list, since the client is sure to want the Framework 2.0 on that machine eventually.
Kate
 Friday, 03 February 2006
One of the main "deliverables" of a code camp is to attract attendees who don't normally go to conferences, launches, or even user group meetings. Another is to attract first time speakers. I love seeing "that look" on someone's face, when they are fresh off the stage, they gave their talk, the demos worked and they are still alive! Little do they know they're hooked at that point .
Here are some blog entries by brand new speakers at the Toronto Code Camp:
- Paul Scarlett wrote to DotNetRocks about the experience... his link is to Carl reading the letter and then Carl and Richard talking about how terrific we all are
. If you poke around elsewhere in his blog you will find various other postings describing the speaking experience for Paul.
- Shaun Hayward blogs about his Code Camp experience... he liked it so much he's the speaker for February's meeting of the East of Toronto .NET User Group. (Register now!)
Congratulations guys, and welcome to the club!
Kate
 Thursday, 02 February 2006
Let's say for the sake of argument that you own a small Canadian business and you are about to employ a child of yours to work in that business. You know that you don't deduct Employment Insurance (EI) premiums from yourself, because you own more than 40% of the company. But what about your child? So you search a little and you find two official government websites (.gc.ca means Government of Canada .ca). Here is what they say:
http://www.hrsdc.gc.ca/asp/gateway.asp?hr=/en/ei/information/self_employed.shtml&hs=tyt:
If you are a family member, i.e. spouse or child, paid as an employee by the family enterprise —business or farm— you are like any other worker and can be paid EI benefits, as long as you meet the requirements for regular or maternity, parental, sickness and compassionate care benefits.
http://www.cra-arc.gc.ca/E/pub/tg/t4001/t4001-06-e.html#P483_48714:
Even if there is a contract of service, employment is not insurable and is not subject to EI premiums in the following situations:
- casual employment if it is not for your usual trade or business;
- employment when you and your employee do not deal with each other at arm's length. There are two main categories of employees who could be affected: related persons and non-related persons.
- Related persons: These are individuals connected by blood relationship, marriage, common-law relationship, or adoption. In cases where the employer is a corporation, the employee will be related to the corporation when the employee is related to a person who either controls the corporation or is a member of a related group that controls the corporation.
That's right, HRSDC Canada says go ahead and deduct, your kids are just like anyone else and they will be eligible. But CRA-ARC, which is the organization that will punish you if you get this wrong, says don't deduct.
What do you do? You might consider phoning the government. This will be entertaining in a way, what with listening to the hold music, playing voice mail hell, and listening to government employees say "oh gee I didn't know that", but not what you might call educational. But after several such phone calls, you can discover that it is possible to request a written ruling from the tax people. And then you resolve to do whatever the ruling says to do and stop worrying your pretty little head about what makes sense or what is right. And take some satisfaction, if you're that kind of person, in knowing that many of the "I didn't know that" guys have promised to show their boss the contradictory information.
Kate
 Tuesday, 24 January 2006
The word is starting to spread about the concurrency skills we are all going to need sooner rather than later. And work is underway at dev-tool-makers to offload some of that work to the "system" -- maybe the language, the compiler, a library, the framework, the operating system -- anything other than the programmer because most of us are even worse at threads-and-locks than we were at malloc-and-free or new-and-delete or any other kind of memory management.
If you were wondering about Microsoft's committment to this (and the PDC talks on the topic weren't enough to convince you) then read Kang Su's latest blog entry about the new Bay Area Office they are establishing for this sort of progress... and wait till you see who's going to be working there...
Kate
 Monday, 16 January 2006
Code Camp was a blast! Some pictures are starting to show up on the web site. I had a jam-packed room, I think word must have got out there was no C++ in my talk . But I had some time at the end so I am going to adapt this talk a bit for DevTeach and put some C++ into it 

Chris and Jean-Luc did a fantastic job getting volunteers and running the event - and they both spoke, too! It was also fun to reconnect with Val Matison who first got me up in front of an audience doing a technical presentation... more years ago than I care to figure out right now. I couldn't stay all day but the energy was great, the logistics were working well and I think everyone involved deserves a big round of applause!
Kate
 Friday, 13 January 2006
 Sunday, 08 January 2006
The December lull is past, for sure. Here's where I'm headed in the next month or so:
- January 11th, CNY .NET Users Group, Syracuse NY, Windows Forms: Deploying Applications with ClickOnce: Advanced Topics
- January 14th, Toronto Code Camp, Yonge and Bloor, The Future is Concurrent
- January 17th, Regina .NET Users Group, Regina Saskatchewan, Managing the Software Lifecycle with Visual Studio 2005 Team System
- January 18th, Saskatoon .NET Users Group, Saskatoon Saskatchewan, Managing the Software Lifecycle with Visual Studio 2005 Team System
- February 7th, SouthColorado .NET, Colorado Springs CO, TBD but probably the ClickOnce talk
- February 8th, TRINUG, Cary NC, TBD but probably the ClickOnce talk
That should keep me from being bored, eh?
Kate
 Wednesday, 04 January 2006
As we flip calendar years I am delighted (even if I'm not really surprised) to learn that I am being renewed as both a Regional Director and an MVP (for C++.) These two programs are both a big part of my professional life. (The RD program is more exclusive, with only 120-140 RDs around the world compared to thousands of MVPs, but the two programs serve different needs, of course.) They each provide me with amazing information and access to the product teams. They open doors for me throughout the Microsoft-oriented world. Most of all, they introduce me to other RDs and MVPs around the world... an amazing team to feel part of. I am also still a user group leader, a member of the INETA North America and MSDN Canada speaker bureaus, and of course I have a business to run with clients throughout North America.
In not-unrelated news, I qualified for Elite on Air Canada and almost halfway to Super Elite. The previous year I just squeaked to Elite... wonder how much flying 2006 holds for me?
Kate
 Wednesday, 21 December 2005
Actually, my fellow RDs make headlines in industry mags often, especially when they write the article. But this was a bit of a surprise to me: http://www.eweek.com/article2/0,1759,1904532,00.asp?kc=EWRSS03119TX1K0000594. Not the announcement (Clemens let some of us know before the papers) but the attention it garnered. Though really, I shouldn't have been surprised. It is an important hire for Microsoft and Clemens, I wish you a happy time "building stuff" at the mother ship.
Kate
 Sunday, 18 December 2005
Chris has uploaded the deck and a zip file of code for my "Moving C++ Applications to the .NET Framework" talk to the East of Toronto .NET User Group. If you're still thinking about C++/CLI maybe seeing what it does will help your thought processes.
http://gtaeast.torontoug.net/Downloads/1307.aspx
Kate
 Saturday, 17 December 2005
December for me has been, well, challenging. And though it seems that everyone around me is shutting down for the year, I still have miles to go before I sleep. So I was pleased to notice that the standards process is marching on: ECMA reports that the 90th General Assembly held in Nice, December 9, 2005, approved Standard ECMA-372 (C++/CLI Language Specification).
Back to way too much of everything, Kate
 Thursday, 01 December 2005
Vertigo is a seriously cool company that does a lot of .NET work and a lot of C++ work. Like us, they know how to combine the two. Unlike us, they are in California. Here's what CEO Scott Stanfield (a super hard working RD) told me about the job:
We’re trying to hire a full-time C++ developer to help us work on [pretty high-profile work for Microsoft.] Needs knowledge of Windows API (old-school stuff), COM, etc. Maybe ATL.
Intruigued, I got more details:
Must have:
- 2 to 4 years of Unmanaged C++/Windows Apps
- C++ Standard Library (Iterators, containers, etc.)
- ATL
- VS 2003
- Using COM with #import
Knowledge that is nice to have but not necessary:
- Passport
- Windows 2003/XP or VISTA experience (ie. building apps for Microsoft)
- WTL
- Client side (single thread, event driven, custom drawing, experience with 32-bit, globalization)
- Server side (multi-threaded, critical sections, mutex – 1 app instance)
- Networking (WinHTTP, web services)
- VS 2005
P.S. Bear in mind that our core expertise is .NET so the person would have to be willing to learn .NET and work on other projects besides C++ stuff every so often.
And of course, it is a great company to work for :). We do a great job with developing careers and it is rock solid financially with excellent benefits. Plus there is very minimal travel.
If you follow the links in the first paragraph, you'll figure out how to apply :)
Kate
 Saturday, 26 November 2005
Maybe it's the Rum Swizzle, but this limerick really worked for me:
I used to think math was no fun 'Cause I couldn't see how it was done Now Euler's my hero For I now see why zero Is e to the pi i plus 1.
Thanks to Language Log,
Kate (Math major for a year or two, but ended up in Engineering)
Yesterday's beach was nice, but not really pink. So today's mission was to find a pinker one. It's one of the few days I've been able to check off everything on my todo list 

Kate
 Friday, 25 November 2005
Treasure chests, glass bottles, ropes of crystals that look like seeweed, the usual ribbons, balls, and pearls, all of that I can handle. Beyond the surrealism of Christmas decorations while you wander around in your bathing suit, that is. But one particular ornament on this tree made it worthy of a picture:

Ah yes, nothing says Christmas like a deadly jellyfish! Good thing I consider it too early for Christmas anyway.
Kate
 Monday, 14 November 2005
I've been talking about C++/CLI in public for quite a while now: Tech Ed USA 2004 and 2005, Tech Ed Africa 2004 and 2005, C++ Connections in Las Vegas last week, several private webcasts, and of course in this blog. But in the last 18 months, travelling as far as 10,000 miles from home, I haven't done any part of this shapeshifting talk here in my own home. So it's time to change that. Come to the November meeting of the East of Toronto .NET Users Group and find out why people are saying:
- "I love the .NET Framework, I love C++, and the new stuff looks to provide me a beautiful integration of the two. Question is, once it is released, will I ever code in C# again?" - Ed Ball
- "this new development in C++ seriously undermines the justification for C# as a language. " - Grumpy Old Programmer
- "By standardizing the syntax and semantics of a general purpose binding for C++ and the CLI, Ecma TG5 will provide the huge C++ developer community with a tool that enables them to easily write applications that make full use of the CLI platform, and will provide the developer community targeting the CLI with full support for the powerful C++ language. " - ECMA Standards Committee
- "Visual C++ is positioning itself as the lowest level programming language for targeting the CLR. There should be no cause to use any other language, not even Microsoft intermediate language (MSIL). Secondly, .NET programming should be as natural as native C++ programming. ...If you love C++ and want to use all the power that C++ has traditionally offered, but also want the productivity of C#, then this is for you. - Kenny Kerr, MSDN article
- "C++ is here to stay for a long time and we are committed to providing the best tools for C++ development." - Soma Somasegar
- "now that the language looks just like C# and you still have the power of C++/templates/STL as well, it's staging a major comeback." - Sam Gentile
I dug out some abstract that was kicking around from one of the versions of the talk:
Come and see how real C++ projects are moving to the CLR without a full port or rewrite. Learn how to easily migrate existing native code -- including MFC applications -- to run under the CLR. Strategies for choosing which parts of the application remain native and which are managed will be discussed. See how to take advantage of the power of the framework libraries. Finally, this session will provide guidance on how to build high-performance managed "wrappers" enabling reuse of native libraries.
But that was a one hour talk, and I have such a hard time fitting into a single hour, and this is my user group after all, so expect to see quite a bit more on the general "C++ for the .NET Framework" situation.
Wednesday November 30th, Whitby Library, please register. Pizza and chitchat at 6, C++/CLI starting at 7. See you there!
[updated: the link above now leads to a page that has a registration link. Please register.]
Kate
 Friday, 11 November 2005
Jensen Harris, in his excellent Office User Interface blog, reveals the top 5 commands (most frequently used) in Word:
- Paste
- Save
- Copy
- Undo
- Bold
Doesn't surprise me at all. Cut and Copy probably add up to the almost same as paste (in most cases any given thing is only pasted once, but of course it might have been copied in another application and then pasted into Word) but they split the vote. The popularity of Undo (which one of my nontechnical friends calls the "Bite Me" key) is a testament to all the times Word is being "helpful" as I type. Man I hate software that thinks it's smarter than me. Apparently a lot of folks do. Or perhaps a lot of folks change their minds a lot, or mis-click a lot.
What I think is cool, given that this data was gathered from users who are keyboardy and mousy, context menu users (right-clickers) and regular menu users, experienced and novice, etc, is that every one of these commands is a one-hand chord on the keyboard:
- Paste Ctrl-V
- Save Ctrl-S
- Copy Ctrl-C
- Undo Ctrl-Z
- Bold Ctrl-B
Now you see why not being able to use that left Ctrl key made things so difficult when my laptop was being flaky.
Kate
... must be firmly in the hands of Steve Teixeira, who has been blogging regularly from C++ Connections. Quite a decent subset of the team is here, and I am really enjoying meeting those I haven't met before and seeing the others again. (An aside: how many people do you think are on the C++ team? Yesterday Brandon, when I kiddingly asked who was left in Redmond since a dozen or so had come to Vegas, said there are 130 people on the C++ team. Tonight Herb said there are about 150 but 20 or 30 are on Phoenix which you might say wouldn't count. Over a hundred is a lot more than other language teams have and a good indication of both the importance and difficulty of keeping Visual C++ at the top of its game.)
Today Martyn Lovell gave a great presentation on the IDE that I enjoyed immensely (even though I knew all the features he was showing) because he has a wicked sense of humour. When he got spontaneous applause for docking indicators on tool windows (who knew?) he commented that he should have shown them first to get the audience warmed up 
I really hope the success of C++ Connections means there will be other C++-only conferences once again. In fact tonight I believe I heard Kevlin Henney say to Bjarne "we're doing this again next year, right?" and Bjarne say "yes". If so, I plan to be there too! This has been a terrific week and when I'm in my own time zone again I will have more to write about it.
Kate
 Wednesday, 09 November 2005
Once again I find a friend has written almost the blog entry I would have, sparing me the effort. You just have to read Don Kiely's summary of Bjarne's C++ Connections keynote this morning. I am going to sleep on my thoughts from the keynote, this afternoon's talk, and tonight's panel, and see what I synthesize from them tomorrow.
Kate
 Tuesday, 08 November 2005
Today at C++ Connections I have attended two Bjarne Stroustrup talks. And yes, I learned something from both talks and took plenty of notes. Bjarne used what he called Ye Olde Shape Example in a discussion of the brittle base class problem. He mentioned that this is an ancient and yet still useful example that he got from the Simula folks way back when. After the talk I asked if he knew when it dated to, since I use it as an example of polymorphism in the OO/UML course I teach at Trent. He thinks it's about 1971. I was disappointed that it wasn't older than me, and he offered "well, there's always the cars and vehicles, stop, go, turn kind of thing. That's from about 1967 or so." I burst out laughing since I use that example too! It doesn't quite make the "older than me" bar, but it's certainly got a history.
Kate
The theme for the global launch of Visual Studio, SQL Server, and BizTalk was "Rock the Launch" with a subtheme of being ready. It was a very fun day complete with impersonators (I saw Elvis, Cher, Madonna, and Tina Turner), and a decor of posters and equipment boxes. Scott Stanfield has a nice summary complete with the pictures I haven't got around to taking yet of the gorgeous special editions of the software we recieved. A number of RDs were there: I saw Scott, Rich Hundhausen, Richard Campbell, and Carl Franklin. Richard offered me a ride to Vegas in the dotnetrocks-mobile but I decided to stick with the plane tickets.
Kate
 Monday, 07 November 2005
Marcie lowered her profile a bit earlier this year but she's back.. with a new name since Microsoft went and changed the DataGrid to the GridView. Take a look at her new blog: http://www.gridviewgirl.com/GridViewGirl/
Kate
I love being "in the loop" on new software. It can get kind of surreal, though, when you are at a conference and find a technology kind of boring and everyday, and skip the sessions on it since it's "old stuff" ... and then realize it isn't even shipping yet! I spend time in betas, alphas, SDRs and the like, so it's often years between the time I start working with a technology and the time it releases. When I speak at Tech Ed I tend to hang at the cabanas where I can hear real stories of how people are using the tools and the problems they need help with.
The PDC though, that's a different story. Well, it should be anyway. The PDC is all about the future, right? The workflow announcement was a big deal, but the material wasn't new to me. I began to worry if I would ever attend a session that sparked my interest in something new and important. Then I found it. I've waited to blog it until the sessions were available online.
What Jan Gray had to say in FUN302 and Herb Sutter introduced in TLN309 totally grabbed me. Because clock speed cannot go up any more we all have to write concurrent code even if it's single user:

And since most people can't write good concurrent code (see Herb's Singleton example which still doesn't work even with the double checking and the volatile keyword, at least not all the time) then the OS or the framework or the language needs to do it for them. Herb and Jan are proposing different approaches, but these two guys are among the smartest I know (I've known Jan almost 30 years) and if they are both into this, then I need to learn more about it. You probably do too.
Kate
 Friday, 04 November 2005
While I was over ten thousand miles from home, my laptop started to get weird on me. First, it started to spontaneously power itself off, for no reason at all, while I was using it. Alarming! But then I eventually discovered that it only did so if I pressed the left Ctrl key. Confining myself to the right Ctrl key was a challenge -- I am hugely keyboard oriented and do Ctrl-S, Ctrl-B, Ctrl-C, Ctrl-V sort of things all the time without looking or to be honest even thinking keystrokes, I think Bold and my fingers do the right thing -- but I was able to do a whole presentation without it powering itself off. Then it started to get more delicate. Any pressure on the left side of the keyboard would power it down. And it got harder and harder to power it up. 5 tries, 10 tries, 20 tries... I did manage to power it up in the Jo-burg airport but it shut down while I was working and never did come back up again. I just slept instead of working and put it out of my mind.
When I got home, I confirmed it was still under warranty, next day on site service, and arranged a service call. Then I wanted my files back... I wasn't going to last all weekend without my files. Luckily the hard drives in laptops are delightfully standard things. For $13 Canadian, I bought a little wrapper that turns any 2.5" drive into an external USB drive:

I put the drive in it and ---ooooh, there are all my folders! Yay! But I can't see any actual files! Boo!
Turns out the power cycling and hard power downs (many many of them) had not been nice to the drive. So I got a little utility called File Scavenger from QueTek. I started with the trial version to prove to myself it worked, then got a personal licence and set to work bringing back everything I cared about -- the pictures I took while I was away, my Outlook PST file (yes I backed up before I left, but a lot happened that week) and a lot of work I was in the middle of. Phew!
The service call ended up stretching over several days ... replacing the motherboard, keyboard, palm rest, and hard drive wasn't enough, it also needed a new processor. But now it works again. And what do I get to do with my copious free time? Reinstall things. A lot of things.
Ah well, a good way to clear out junk you don't need any more. It was pretty much repaving time anyway, the machine had been kind of flaky for the last few months. And I'm ready to leave for SF and Vegas now... or at least my laptop is 
Kate
 Thursday, 03 November 2005
I promised my South African friends that I would show them how our autumn compared to their spring. We have our own beauty here and while we're pretty much giraffe-free, there are charms in this northern landscape. These pictures were all taken within minutes of my home on one of the many walks and rambles we do. Gregory Consulting board meetings are quite often held under an arch of golden leaves; it's one of the things I like about living this way.

Kate
 Monday, 24 October 2005
When you go to a conference, there's a tendency to see nothing beyond the airport, your hotel, and the convention centre. Maybe a few nice restaurants if you're lucky enough to be invited to a press dinner or the like. The minute I got off the plane a year ago for Tech Ed Africa, I knew I wasn't going to have that kind of experience. And this year Julie and I have upped the ante by taking advantage of the Gametrackers services offered right from within the resort where the conference is being held. I took over 40 pictures this morning, here are just a few:

Wish you were here?
Kate
 Saturday, 22 October 2005
Julie and I have a twelve hour layover in Frankfurt so we decided to go into town for a little sightseeing. Here's where we had our lunch:

What did we have? Sausages (bratwurst to be precise) and potato "salad". Yum!
Next stop, Johannesburg and then on to Sun City!
Kate
 Friday, 21 October 2005

Leave my house 11:30 am. Flight to New York departs 2:30. Here I am in New York, at about 5:30. In four hours my flight to Frankfurt leaves. 8 hours across the Atlantic. 12 hour stopover in Frankfurt. 10 hours down to Jo-burg. Clear whatever we need to clear, get baggage, wait for the bus, that's another hour, then two more hours to Sun City. Total travel time: 43 hours. Six of it is behind me. It's extra-rehearsing time for me now, here in the Lufthansa lounge of Kennedy airport. Friday night and Saturday night the only sleep I will get will be on planes. Luckily, I'm good at that.
Kate
 Wednesday, 19 October 2005

No kidding. What will they think of next? (The keyword-matching for the ads needs work, though.)
Kate
 Wednesday, 12 October 2005
I just registered for the global launch in San Francisco November 7th:

(Yes, I will be in Las Vegas that whole week to speak at C++ Connections. I'm just going to the launch on Monday and then to Vegas.)
If a flight to SF is out of the question, why not see if you can get into one of the Canadian dates?
November 8 |
Toronto |
November 10 |
Ottawa |
November 15 |
Edmonton |
November 17 |
Victoria |
November 22 |
Vancouver |
November 24 |
Calgary |
November 29 |
Montreal |
December 1 |
Quebec |
December 6 |
Halifax |
December 8 |
Winnipeg |
http://www.microsoft.com/canada/launch2005/default.aspx has all the details and registration links.
Didn't act soon enough? Didn't think a launch event could sell out? Watch for announcements of user group launch events through the fall.
Kate
 Monday, 10 October 2005

The Code Camp web site is up and running and ready for you to sign up!
- Want to speak? Get the speaker registration form and send it in.
- Want to volunteer behind the scenes! Please do, we need as many of those volunteers as speakers.
- None of the above, but you're planning to attend? Get registered before the spots all go.
See you there!
Kate
 Thursday, 06 October 2005
At the PDC, we were shown what Office 12 is going to be like, and it was impressive. But since then more announcements keep coming out about it that in many ways are more impressive than the new user interface. (If you're thinking "what new user interface?" you need to check out the future Office page at MSDN for details.) Apparently the Channel 9 Video has been insanely popular also. In some ways the Open XML formats are more exciting than the UI , especially for developers. And now this: Office 12 - not just Word, but Excel, PowerPoint, Visio, everybody - will all know how to publish their documents as PDF. No third party tool, no add in, it will just work. I read about it on Brian Jones' blog, but there are also details on that future Office page.
Kate
 Saturday, 01 October 2005
I fly quite a lot. Over the first six months of this year (I pretty much stopped travelling after TechEd USA) i flew 25,000 miles. That's not a lot compared to those who reach Air Canada Super Elite status at 100,000 miles (a handful even fly 300,000 miles a year) but it felt like a lot to me. I'm about to fly another 30,000 in just a few weeks... to South Africa and back, then a week later to Las Vegas and back. But it's nothing compared to what someone I know is up to.
Air Canada is selling an "unlimited" North America travel pass. $7000 gets you all the flights you can stand in October and November. A fellow Flyertalker with two months off has bought one and is trying to get the maximum possible mileage from it. Because he's already Super Elite, he gets a 50% bonus on every mile he flies, and there's a promotion on to get a 25% bonus as well (I earned a 542 mile bonus to and from LA for the PDC). Add in threshold bonuses and he has determined he is going to earn a million Aeroplan miles for just $7,000 ... and two solid months of his time. Most of it will be up front, thanks to the upgrade certificates he's going to earn as he goes, and his status moving him to the front of the line for "op-ups" on full flights. His sleep, what there is of it, will be exclusively on overnight transcontinental flights.
He's blogging his progress... a must read!
Kate
Update: there are now four Flyertalkers doing this, but Marc is the one blogging it. Today he mentioned on FT: "I was home last night, had dinner with family. Leaving at 820 am. Its a job like any other. I am home 4 nights a week. On overnight trips the other three."
 Thursday, 29 September 2005
One of the real ironies of consulting life is that when you are super busy doing work, you don't have time to look for the next piece of work. It can cause a really dangerous work hard - no money - take work you really shouldn't - work unhappily - still no real money - cycle. The only way around that is to have the discipline to land project B before project A is finished. The larger you are the easier this is, because if 1/3 of your firm has finished a project and has nothing to do, they can pitch in on whatever the other 2/3 are doing for a bit while you sell the next thing. But at six people, we really don't have that kind of buffer.
Now that I've been doing this for 20 years, and have a reputation, opportunities quite often come to me. That's certainly better than calling around trying to get people to give me work. But even the most golden opportunities come with work attached. "Can you get me a resume by noon?" But I don't have a resume, I have worked for the same company with the same job title for two decades. I can give you a bio that lists my skills and awards and some recent projects I've been on. "Sure!" Only thing is, it needs to be updated, or shortened, or lengthened, or something. It's worse when they want resumes or bios from three or four of us. Or "could you flip through the scope of work and give me a quick ballpark of how much work you think your part will be? We'll write up the detailed estimate together next week." Some truly wonderful stuff just lands in my lap, but all of it requires work to ripen it into fruit. Finding the time to do that work, quickly and responsively, and tailoring the bio or company description or whatnot to the opportunity... that's where contracts come from. Back to work for me.
Kate
The wheels of standards committees grind exceedingly fine and slow, but they do grind. Herb Sutter reports that after almost two years and eleven face-to-face meetings, the working group is recommending the C++/CLI standard for binding ISO C++ to ISO CLI (the most popular implementation of the CLI is in the CLR of course) become an Ecma standard. Next stop: an ISO standard.
Congratulations to all involved!
 Sunday, 11 September 2005
We're having a CODE CAMP in Toronto in January! I'm so excited! A Code Camp is a very different kind of community event, and one that can only happen when you have a strong and vibrant developer community. If you've never heard of it, check the Code Camp Manifesto or just Google for it and find people saying things like this:
"the buzz from Atlanta Code Camp is starting to wear off a bit and let me just say I had a great time."
"I laughed, I cried, I found a bunch of new tools to use."
"When I asked him if it was as good as a commercial conference he said that he thought so. Perhaps even better. And that comes from a guy who was just at TechEd 6 weeks ago."
Now the deal with Code Camps is that they ALWAYS:
- Are free
- Are held outside business hours (typically a weekend)
- Feature a great variety of speakers and topics (except no marketing fluff allowed)
- Provide an opportunity to speak for the first time
Many Code Camp attendees have never been to a daytime or paid-attendance event - we don't all work for companies that make that possible, after all. If you've been to plenty of such events, you might consider speaking at this one: an hour on something you know well because you're doing it at work isn't hard at all, really. This is a great chance to "crossover" to the other side of the microphone. If you haven't been to lots of these events -- you've never been able to get to a DevDays or a VSLive, or heaven forbid something out of town with actual travel expenses -- plan now to set aside a weekend in January to fill your brain with free technical content and get to know the developer community in the Toronto area.
Toronto is a large city, over 3 million people, and the "Greater Toronto Area" supports a LOT of user groups:
And out of all these people, who is spearheading the Code Camp initiative? My two co-executives from the East Of Toronto group, that's who! I'm very proud of that. The GTA is full of good organizers and speakers (and has three Regional Directors on top of that) and I know we will be able to put on an amazing day. Right now Jean-Luc is finding a location and sponsors (or Contributors as Code Camp likes to call them) and shortly he'll be gathering speakers. You should use his blog to get in touch. My firm is sponsoring for sure: a Code Camp is a really low-cost event to put on and reaches a number of developers other events never do.
Kate
ps: I wanted to say that this would be the first Code Camp outside the USA, but once again Derek Hatchard has shown what a star he is: there will be a Code Camp in Atlantic Canada just next month. Go Derek!
Update: They've had them in the UK too (http://www.developerday.co.uk/ddd/default.asp ... Benjamin Mitchell is the RD involved in those) and in Australia (www.codecampoz.com.)
 Friday, 09 September 2005
This morning I got an email that my blog was down... turned out that one of the drives in my web server had died. We were in the process of moving everything off that server anyway, to a more modern one, but needless to say this accelerated the schedule a little. While we were at it, we upgraded dasBlog to 1.8. I believe all the comment spam should have gone as part of the upgrade, and from now on you will need to do the Captcha thing to leave comments. If you hate that, email me and we'll discuss it. I sure was hating clearing out the you-know-what.
Kate
 Monday, 05 September 2005
The Regional Directors had so much fun doing the GrokTalks at Tech Ed USA, we just couldn't leave it as a one-time thing. So at the PDC, we've arranged an event called PDC Underground. While we won't be filming and uploading the talks, we will be able to accomodate an actual audience. If you're going to be in LA, or if you're there all the time anyway, you want to come to this event. Ten RDs, fifteen minutes each, just the essence of what you need to know about one topic.
I'm doing "C++ is alive and well":
Abstract: The "C++ for the runtime" in Visual Studio 2005, C++/CLI, features everything developers love about C++ -- including templates and deterministic destruction -- and everything we love about the CLR -- including generics and garbage collection. This best-of-both-worlds approach enables the fastest and easiest interop between managed and unmanaged code. Preserve your legacy without a port, use the same binaries to support old and new clients, control the cost of interop: that's what C++ does so well.
More details and a registration link at http://www.pdcunderground.com/. If you're a member of a user group in the LA area, contact your leader who probably can get you a button to wear.
See you there!
Kate
 Wednesday, 31 August 2005
Kang Su kicks off his blog (two and a half weeks ago, I can't believe it took me this long to notice) with a big red HIRING in the middle of his first post, then goes on to give you the C++-eye view of PDC including the so-worth-your-while upgrade lab. Then he tells you how to find out what the Profile Guided Optimization process discovered about your code. Excellent and you know I'll be reading regularly.
Next time I get out to Redmond, though, I am going to have to ask for a tour of the office so I can see where they keep the “your turn to blog regularly” baton or hat or whatever they use. It seems as soon as one or two start, the others all stop. :-(.
Kate
 Wednesday, 24 August 2005
In less than three weeks I will be at the PDC! On the first day, I'll be a panelist at the Women in Technology panel. If you've been to one of these at TechEd, all I can say is PDC isn't TechEd. Things will be a little different this time. Here's the abstract that's going in the guide:
This panel will cover how women have used their intelligence and creativity to excel in the software industry. Hear from women IT professionals who are successful in a male-dominated industry. Learn, connect, and engage at this networking panel, where your questions drive the agenda, and hear tips and tricks on how to succeed as a woman developer or technical professional in the computer sciences and technology marketing. Both men and women are invited to join in the conversation, and learn from each other about how to grow diversity in the IT industry.
One thing that will be the same is the quality of the panelists. I'm not going to brag about myself, but let me tell you the other panelists are fantastic: Angela Mills (Microsoft), Anne Thomas Manes (Burton Group), Dee Dee Walsh (Microsoft), Michele Leroux Bustamente (IDesign Inc.), Shoshanna Budzianowski (Microsoft) and our moderator, Esther Schindler (Ziff-Davis). I've been lucky enough to watch most of them in action before and you're sure to pick up valuable career insight.
And in case that sentence from the abstract didn't quite click the first time, let me paste it again: Both men and women are invited to join in the conversation. See you there!
Kate
 Tuesday, 23 August 2005
Last year I had a marvelous time at Tech Ed Africa, and made the Top 5 list. I am thrilled to announce that I will be there again this year! It will take me about 41 hours to travel from my house to the conference center, and about 36 hours to get home a week later. This place is seriously far from home.
My talks:
Microsoft Visual C++ 2005: A Look at the New Features for Building Fast Native and Managed Code Whether you build end-to-end applications or components for enhancing larger applications, the new Microsoft Visual C++ 2005 is the power tool for Windows programming. In this presentation we spend extensive time in the Visual C++ 2005 development environment -- highlighting new productivity features -- as we dive into its support for building high-performance, first-class native and managed applications. Learn about native code compiler optimizations, security enhancements, 64-bit development, and support for multiprocessor/grid computing systems. In addition, this presentation demonstrates how Visual C++ 2005 now provides CLR/.NET Framework support that allows it to stand toe-to-toe with any other tool in terms of elegance and productivity… with the additional benefit of high-performance access to native code and the ability to easily move native code to the managed environment.
Microsoft Visual Basic 2005: Application Frameworks and Advanced Language Features This is a must-see session for Visual Basic developers who are new to Microsoft Visual Studio 2005, and also reviews the major feature changes and additions for beta 2. Take a top-down look at the new application architecture and RAD development enhancements in Whidbey, including several key productivity features that are exclusive to Visual Basic. This session covers the new Visual Basic lightweight application model for client applications, the My namespace, Data, Settings and Resources, and many more features that speed development for connected applications.
Windows Forms: Deploying Applications with ClickOnce This session covers examples of ClickOnce deployment technology at work in the real-world as well as advanced scenarios, including an in-depth look at leveraging ClickOnce APIs for server-side extensions and on-demand deployment of application components.
Only two things could have made my trip last year better: an extra day to explore and soak in the marvelous place where this conference is held, and a friend from "home" to travel and explore with, to while away the long trip there and back. Can you believe I get both my wishes! I must be living right.
Oh, did you want to register? Too bad, it's sold out. 
Kate
 Sunday, 21 August 2005
Gregory Consulting is in its 20th year of operation, and at the moment has six employees. I think it's fair to point out you can't stay solvent over that length of time, meeting payroll, paying rent and ISP fees, without some business sense. One of our most important rules is Fail Fast. If you're doing something that might not work, and it's going to fail, it is so much better to fail in the first week than in the sixth month. This leads to all kinds of useful practises like doing the risky bits first, prototyping, making little proof of concept apps or subapps, and the like. Note that we don't do these things because a Methodology said we should. We do them because our gut or some little voice in our head says “are you sure that's going to work?” and then our brain comes up with a way to fail fast. Of course not failing at all is better than failing, and these techniques can also put you in the delightful position of knowing it's going to work, and just having to write it.
Fail Fast and "let's try it" can also save you a ton of time spent arguing about what's the best way to do something. Last week, I was at a early code review of an partly-written ASP.NET 2.0 application where someone had put some DataSet instances into Session even though they were used only on a single page. I wanted them in ViewState, because sessions expire and you have some hoops to jump through to ensure the work won't be lost. One developer on the team said putting things in ViewState made your pages too big. I said that wasn't an issue for the amount of data in this app. After about ten minutes of "what if someone pulls up the whole department for a year?" back and forth we decided to just try it. It took 30 seconds to flip the code between using Session and using ViewState. And guess what? After disabling viewstate on the grid, which was making both versions of the page really slow, there was no measurable difference (even for a year's data) between the two approaches. So it's going to use ViewState to make the coding simpler. But I would have been happy even if the experiment had shown the ViewState approach was infeasible, because we'd have found out before a hundred pages were coded.
Joel Spolsky says pretty much any methodology makes good software in the hands of those who are good enough to develop methodologies, and they pretty much all can fail in the hands of those who just follow the rules and do what the methodology says. Big complex process (and as we grow, our process naturally gets more complex) runs the risk of becoming opaque to those who are asked to follow it. That's why we like to come back to some touchstones that explain why we do what we do. Like Fail Fast.
Failure can be a good thing. If it saves you from following a doomed path for a year, you're glad to have failed early rather than late. If you can learn from something that didn't work, it will have earned its keep. This morning I read a story by Steven Sinofsky (no longer an entry level programmer ) at Microsoft about the failure of a C++ application framework, essentially the first try at what became MFC. He concludes:
When I think back about the dismal failure of our first library ... and how we regrouped, learned lessons, and put those into play, I realized that without that first failure we never would have developed the success criteria that allowed us to build MFC.
I'm never afraid to fail and I am not ashamed when I do. The only shameful things would be to continue to waste time avoiding the final decision that it is a failure, or not to learn from it.
Kate
 Friday, 12 August 2005
Yesterday I was at a client and we talked, among other things, about how their story would make a good one to deliver at a launch event. They have an existing project in C++, client-server with MFC etc. Using Visual Studio 2005, building on the beta, they have wrapped an ASP.NET UI around the server engine so that users who don't have the main product installed on their desktops can still look at and edit some of their data. The new features in ASP.NET 2.0 were so compelling that this client has decided to use the go-live licence and deploy on the beta. The availability of the beta to MSDN customers, and the updates with the CTP process, have helped this ISV get 6 months to a year ahead of those who wait for the launch.
Then today, I faxed back my contract for C++ Connections, which is happening the week of the launch. Although I have at least one confirmed (and two strong maybe) conference trips between now and Nov 7, I am very much thinking about that week and the excitement that will build as more and more people learn what's in the 2005 release.
Those of us who are in the loop, reading blogs from team members and executives, grabbing betas and CTPs, living out on the bleeding edge putting Vista on the laptop, can sometimes forget that a launch is still a really big deal to people who've been waiting for Microsoft to make a big “here's what we've got event”. While such events will always be important for getting the attention of those who weren't looking, these days you can see what they've got right now. If you're in the loop enough to read my blog, you can be just about as completely in the loop as I am. What a fun time to be a developer!
Kate
 Thursday, 11 August 2005
This is a cool little service, “Not Endorsed nor Authorized by Google in any way”, that lets readers show me where you are. Go on, zoom and pan and whatever till you find your location, then double-click to add your little face icon to the map.
Inspired, as I so often am, by Scott Hanselman.
Kate
© Copyright 2025 Kate Gregory
Theme design by Bryan Bell
newtelligence dasBlog 2.3.9074.18820  | Page rendered at Thursday, 11 September 2025 15:30:32 (Eastern Daylight Time, UTC-04:00)
|
On this page....
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
---|
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 | 11 |
Pluralsight Free Trial
Search
Navigation
Categories
Blogroll
Sign In
|