# Thursday, 28 September 2006

I saw this interesting graph over at Language Log:

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

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

Kate

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

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

Agenda 

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

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

Kl. 10.15-10.45:             Pause

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

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

Kl. 12.45-13.30:             Frokost

Kl. 13.30- 14.30:            Fremtiden er nu

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

Kl. 14.30-15.00:             Q&A

Kl. 15.00:                      Tak for i dag

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

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

See you there, I hope!

Kate

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

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

Notable names on this speaker list:

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

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

Kate

 

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

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

Some names I know in the speaker list:

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

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

Kate

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

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

Kate

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

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

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

Kate

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

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

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

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

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

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

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

Kate

 

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

The other day I spotted this:

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

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

That obvious arrow is lurking here:

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

Kate

Friday, 22 September 2006 14:49:21 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]
# Thursday, 21 September 2006

How many Visual Studio Developers know about autoexp.dat? My guess is not many. This file, located in C:\Program Files\Microsoft Visual Studio 8\Common7\Packages\Debugger for a typical install, controls how the debugger shows values in the Data Tips, locals window, auto window, etc. The file is yours, it's on your own computer, and you're free to edit it. Here's how to do so for a really simple (and redundant) type, Point:

class Point
{
private:
 int x, y;
public:
 Point (int xx, int yy)
 {x=xx; y=yy;}
 int getx()
 {return x;}
 int gety()
 {return y;}
};

I ran a really simple app that constructed a point, and paused in the debugger for a data tip:

Then I edited autoexp.dat, adding this line:

Point =(<x>,<y>)

I saved it and ran the debugger again, and now the tip looks like this:

You can do this for any class you write. It's your program, you might as well make your debugging life easier.

Oh, if you're wondering why my data tips are actually readable instead of in some tiny 3 point font, I blogged that earlier this summer.

Thursday, 21 September 2006 13:29:07 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]