# Friday, 20 June 2008

Well, to be honest, the BBC probably didn't sit down and say "We hear Herb Sutter and the gang are going to show Bill Gates all about their plans for lambda functions in C++0x, we have got to get on a plane and capture footage!" They were probably like everyone else "blah blah retiring blah blah career retrospective blah blah dig out those embarrassing old photos" but they happened to capture this meeting. And I actually quite liked the entire episode, really. It's an hour long, stuck up on YouTube as 6 ten-minute segments and a 6 minute one (As each ends you'll get links to the next.) The review meeting with the C++ team gets splonked in repeatedly in between the stuff you've heard a million times about the founding and the dropping out and the early big sales and so on. But there are things I hadn't heard, like just when that picture of everyone looking impossibly young, geeky, and hairy was taken, or how they re-enacted it years later. It's an entertaining and informative recap.

I spotted Herb, Soma, Bill Dunlap, and Ronald Laeremans in the meeting. Any sharper-eyed people who can provide more names?

Kate

Friday, 20 June 2008 22:29:37 (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, 19 June 2008

Jim Bolla has a list of questions to ask someone you're thinking of working for. Some of them are just kind of warmups to get everyone in the mood, and honestly I would expect the employer to volunteer stuff like "what our organization does" and "how IT helps us do that more effectively" in the little speechy bit at the beginning. But absolutely, if you get to the "do you have any questions" part and you still aren't clear on what the company does, it would be very wise to ask. After that we get into some really good stuff. If you're unfortunate enough to be interviewed by HR you may not be able to push hard on their source control or continuous integration strategy, but you will want to. These are the details that add up to whether you will like the job or not. I know because I come in to mentor these people when they are unhappy and unproductive, and these are the things I end up telling them to change :-).

Kate

Thursday, 19 June 2008 22:18:03 (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, 18 June 2008

Recently, a young man who has just completed his post secondary education (programming etc) asked me for help connecting to local communities. He's looking for work and he knows from experience that networking and connections are vital. But out of the college atmosphere, it's not always clear where to find people. I suggested user groups, of course. For those of you who live vaguely north-and-east of Toronto, as I do, I suggest:

  • The East of Toronto .NET Users Group. I founded it because I didn't like driving all the way to Mississauga for user group meetings. Chris Dufour runs it brilliantly. Expect speakers from Microsoft, INETA speakers from all over North America, me once or twice a year, plus pizza for everyone and door prizes for a handful of folks each meeting. Meetings are generally in Oshawa or Whitby.
  • Durham Personal Computer User's Club. More consumer focused than developer, but industry speakers do come and you will meet geeky people in the area. I recognize several names on the speaker list as possible employers of new graduates. They meet in Courtice.
  • The Kawartha section of CIPS. Enterprise focused in many cases, IT Pro material as well as developers, and excellent networking opportunities. Meetings are generally in Peterborough and once a year (in January) they specifically hold a meeting for upcoming graduates to talk about employment topics.

It's quite likely that there are Java or PHP or Ruby user groups nearby; if you know of any please leave a comment. Unfortunately most groups suspend meetings for the summers, so it may be a while until they are meeting again. Still, meeting other people is the best way to find a job you will love. Remember, when someone is looking to hire, they aren't doing you a favour - they're meeting their own needs. They will count themselves lucky they met you, or were introduced to you.

Kate

Wednesday, 18 June 2008 22:09:47 (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, 17 June 2008

A long time ago, C++ MVP Bruno van Dooren started a new job. He blogged about why the procedures they follow are important:

We make medicine. Ours is injected directly into the bloodstream of patients who are already weakened by their condition. It goes without saying that there is absolutely no room for making mistakes. Any possibility for error has to be eliminated.

Most of us don't have stakes quite that high, but we work in environments where mistakes should not happen. And yet, they do. And more importantly, every once in a while a cascade of mistakes (I typed something in error, then I didn't run the tests because it was such a small change, then someone else just copied without checking etc etc) means that something bad actually happens "in production". Our procedures are designed to prevent this - the bad cascade happens when people don't follow procedures.

I've found that everyone sets procedures aside some of the time. Heck, if you have something wrong in production at 7pm Friday night, you don't leave it like that because you can't raise a second person to sign your release form, you fix it, and you do the release form Monday. And some procedures seem to be always ignored, which is a sign (when I have my I Own The Company Hat on) that they should be changed. But what interests me is that some people almost always ignore procedures, even good and helpful procedures that everyone else follows. Why would that happen?

I don't have a lot of data on this. People don't like to sit down for an open and honest chat with their boss about why they don't do things the approved way. In fact, most folks who never follow procedure go to some trouble to make it look as though they do follow it. What's more, once I become aware that someone routinely ignores a procedure and hasn't come forward to suggest it should be changed, our opportunities for conversation tend to dwindle, since they're usually busy with a new employer :-). But it seems to come down to one of three things:

  • The procedure takes a little extra time. The person is selfish or lazy or both, and skips that time. The pain the procedure saves is not their own, so they would rather have the time to either do other work and look very productive, or relax at work and have more free time. Sometimes this is a cue to me to reduce the time that the procedure adds, but not always. If you had a developer who took the read only flag off all source files so as not to be bothered with the time it takes Visual Studio to check those files out on edit, would that be OK?
  • The person doesn't know or understand the procedure, or doesn't believe that management will change the procedure if they come forward and suggest a better way. This is why we all suffer through endless "presenting the new procedure" meetings. How else can you tell people? How else can you make people believe? Thing is, I don't know anyone who was actually convinced by a "presenting the new procedure" meeting. I do better by following it myself (tough, because for many tasks in the firm I only get near them in those emergency "I'll do the forms tomorrow" situations) and by paying strict attention to whether others are following. I also need to be more transparent about "presenting the new procedure that was changed because X convinced me this new way is quicker but still prevents errors".
  • The person has discovered a way to do the tasks that is quicker or easier, and still prevents errors, (or maybe that prevents more errors, or whatever) but actively doesn't want the rest of the firm to know it. A sort of "I'm all right Jack" approach that makes that person more productive and perhaps more promotable, but does the firm as a whole no service. I often find out about this only long after the person has "left to pursue other opportunities" since hoarding information and increasing your personal success only are not paths to promotion with me, and this behaviour tends to show up consistently in many things the person does.

Of the three, the hoarding one is the hardest to deal with as a manager. Believe me, you will get more gold stars for having the idea that made your whole department faster than you will for being the fastest in your department. Even if, after your new procedure is implemented, you are somehow second fastest, I will know whose brain is saving/making me money.

Kate

Tuesday, 17 June 2008 07:53:23 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 16 June 2008

So you have your app on Vista now and it's working great. It needs to elevate maybe? Or part of it does? And do you cringe a little when you see that An Unidentified Program Wants Access To Your Computer super-scary version of the UAC consent prompt? Would you like to stop being called Unidentified Publisher? Well then you need to sign your application. But how do you do that? How much does it cost? Isn't it hard?

I seem to only have questions in this particular post. Well John Robbins has answers. Check it out. Try it. Let me know if it worked for you.

Kate

Monday, 16 June 2008 23:47:47 (Eastern Daylight Time, UTC-04:00)  #    
# Sunday, 15 June 2008

This fall there will be a PDC. Yay! What will it be about? Some hints are starting to emerge. I predict you will hear the word Cloud a lot. I predict things I blog about pretty regularly will get some serious coverage. I predict I will be there. That one's a sure bet actually ... I'm registered and everything.

http://microsoftpdc.com/

Yeah, I know, LA again, but hey! It's the PDC! How bad can that be?

Kate

Sunday, 15 June 2008 23:35:01 (Eastern Daylight Time, UTC-04:00)  #    
# Saturday, 14 June 2008

I watch a lot of videos. Technical interviews and webcasts, mostly. I'm not much of a YouTube person. Channel9, DNRtv, the DVDs with all the TechEd sessions on them, that's what I watch. And I watch on planes and in hotel rooms, to pass the time, or because there's one specific thing I want to learn. But I am an impatient person. Especially when I'm alone, I just cannot go slow. So I love that I can speed videos up with Windows Media Player.

It's not a simple option to find. You click Now Playing, then Enhancements, then Play Speed Settings. And presto, you control your impatience level:

I generally live at 1.4. This gets you through a 1 hour video in 43 minutes with really no loss of understandability. I might slow it down to 1.0 during a demo if I want to take notes and capture the code or the steps as the demo proceeds. I move up to 2.0 if the person is explaining something I already know. This is one way to make that huge pile of stuff you are trying to catch up with just a little more bite sized. As well, because you really have to concentrate at 1.4, I don't do that continuous partial attention thing where the video is playing but I'm checking my email, answering a few things, IM-ing two people and the hotel room TV is on CNN all at the same time, and then -surprise!- I can't really remember much of what I just watched. By really really watching for half or 3/4 of the time, I really learn what I set out to learn. Works for me.

Kate

Saturday, 14 June 2008 22:20:27 (Eastern Daylight Time, UTC-04:00)  #    
# Friday, 13 June 2008

I mentioned in an earlier post that applications with manifests that require Administrator privileges will show up with an overlay icon of the shield on their exe icon in Windows Explorer. Applications with manifests that deny needing Administrator privileges will not get the icon. What about applications without manifests? Well, among other things some Vista heuristics come into play. I found some really old executables (15 year old games) and did a little experiment. Obviously these are manifestless apps. I copied Tetris.exe and renamed the copy Setup.exe. That's all I did. The timestamp is still unchanged. But there's a fairly obvious difference as a result of the rename:

If the file name contains Setup, Patch, or some other magic strings then you will get the overlay and you will be prompted for elevation consent when you run it. (If you're curious, Tetris plays just the same elevated.) Then something fun happens. After you run a file called Setup.exe, if your program files directory is unchanged, your registry is unchanged, your System32 directory is unchanged etc, something is probably wrong. Well, not if you're just playing Tetris, but if the plan was to install something, there's a good chance it didn't install. So Vista says:

If you let it try again, it actually uses Group Policy to store extra information about this application - including whether it needs to elevate or not, should be lied to about Windows version, and other settings you can find on the Compatibility tab of the properties:

Why do you care? You care if Vista has wrongly guessed that an app of yours needs to elevate, and prompts you every time. Understanding these heuristics gets you closer to being able to clear away that overlay icon for your not-administrative-at-all application.

Kate

Friday, 13 June 2008 21:45:22 (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, 12 June 2008

How can you avoid the UAC prompt for applications you frequently run? Well, you could turn off UAC entirely, but that's a bad plan. There are two ways: one is realistic and feasible, and one much less so.

The less feasible one is that you could re-enable the Administrator account (not just some account you happen to have that is in the Adminstrators group, but the actual Administrator account) and log on as that. Pretty much everything you do will be elevated and you won't be prompted about it. But I don't want to do that. I want to log on as me. Plus, I kind of want to control my prompt-noprompt life, or we're right back to malware using my powers without me knowing.

So here's my solution. Get yourself an elevated command prompt (Start menu, spot a command prompt shortcut, right click, Run as Administrator.) Consent once and for all (till your next boot) to elevating that prompt. Now everything you launch from there is elevated, no prompt. Don't believe me? Try regedit. Try notepad. Then try, say, editing your hosts file with that notepad. Cool, no?

Leave the elevated command prompt open, and use it whenever you want to do something elevated. No prompting. You have to type the name of the app (Visual Studio is devenv, which you will care if you're still using 2005.) But pretty painless.

Kate

Thursday, 12 June 2008 21:28:29 (Eastern Daylight Time, UTC-04:00)  #