# Thursday, May 27, 2010

Update: fixed the link. Thanks, Hanako Izumi.

C++0x is finally becoming real to me. I started demoing some C++0x features over a year ago; but now here is Visual C++ 2010 and it's just packed full of goodness. Does it have everything? No. Does any compiler? Good question.

Here is a handy table from the C++ team about what Visual C++ 2010 supports. The MSDN blog redesign seems to have borked the table a little, but the colours should probably be all you need if you know that the last column is VC10. Use View Source if you must know more. Scott Meyers keeps a spreadsheet, and is nice enough to export it out to the public web, covering gcc and VC, with handy links to more details on the features or a substitute (usually something from Boost) you can use if it's not there. He has plenty of helpful links on the cover page, too. There's also a wiki with less detail, but covering more compilers.

If you're wondering about the state of the standard, and whether x is going to end up being A, B, or C, your best bet is to read Herb Sutter's blog. He posted when the Final Committee Draft (FCD) was text-complete, and a pointer to how anyone can comment on it if they wish to.

If you haven't been paying attention, now's the time to catch up!

Kate

Thursday, May 27, 2010 1:39:39 PM (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, May 25, 2010
When I started out in this industry (and I'm in my fourth decade of being paid to program) there was a definite culture of rudeness within it. Smart people weren't just allowed to be rude to not-so-smart people, it was expected. Being rude to others was how you proved you were smart, whether it was with a cutting insult thought up on your feet, or with a cruel proof of just where they had gone wrong. As a group we were especially fond of insulting those who weren't developers with brilliantly disguised insults they couldn't understand, or so the theory went. Who hasn't heard someone refer to "error codes" like PEBCAK or ID-ten-T?

But over the last generation or so I've noticed a switch. I hear the chair, keyboard thing still, but only self-referentially. That is after someone has asked for help, perhaps with a starting position of "I have found a bug in Windows", and then sorted it all out and realized they were doing something wrong, they may say "well it turns out the problem was between the chair and the keyboard after all, eh?". When I interview developers for a job at my firm, I ask about working with non developers (testers, technical writers, users, project managers) and I need to see (not just be told about) respect and interest for those people and those jobs.

Now not everyone feels that way. Meredith Levinson asks if there is a still a place for the "I'm smart, I don't need soft skills" geek pride of old. Commenters point out that speaking truth to power is important, and those who won't be rude sometimes don't do it. David Starr talks about how to tell someone that a thoughtless habit, like always coming late to meetings, is bothering you. I would skip the praise sandwich, but I support the idea of pointing out the consequences of something another person may have thought had none. Interestingly, Susanne Biro points out how people who are actively interested in learning soft or social skills can still be blundering about doing very rude things, apparently unaware.

I think in the end it's not that our industry has changed much. It's that people who are just starting out in it are often a bit rude. OK, sometimes they're very rude. But as they gain technical skill, many of them also gain the ability to take others into account and to work in teams. Those people get promoted. So now, hanging out with decision makers, with people who are allowed to represent their companies in public, with people who get paid to help other people get better, I mostly meet polite and interesting geeks. The rude ones probably still exist -- I just don't run into them very often. Which group would you rather be in?

Kate

Tuesday, May 25, 2010 8:02:37 AM (Eastern Daylight Time, UTC-04:00)  #    
# Sunday, May 23, 2010
I have quoted Albert Einstein here before, but only one quote. Amber Naslund has found 14 nice quotes and connects them to social media issues. I'm sure you could find a way to connect those quotes to what you work on all day, too. I'm going to spend some time thinking about "Everything that can be counted does not necessarily count; everything that counts cannot necessarily be counted."

Kate

Sunday, May 23, 2010 11:08:34 PM (Eastern Daylight Time, UTC-04:00)  #    
# Friday, May 21, 2010

The C++ team gave me a heads up about a neat new initiative called Hilo. Here's a quick description:

“Hilo” is a series of articles and sample applications that show how you can leverage the power of Windows 7, Visual Studio 2010, and Visual C++ to build high performance, responsive rich client applications. Hilo provides both source code and the written guidance that will help you design and develop compelling, touch-enabled Windows applications of your own.

The articles are on MSDN - the first is there now - and the code is on Code Gallery.

I like this section from the article:

The rich user experience of Windows 7 is best accessed through a powerful, flexible language, and that means C++: by using C++ you can access the raw power of the APIs for Windows 7. To build the Hilo sample applications, all you need is Visual C++ Express and the Windows SDK for Windows 7, both of which are available as free downloads.

Hilo applications show how to design and develop an application for Windows 7. But while the code showcases the APIs for Windows 7, it is not wedded to any particular application framework. Instead, Hilo implement a lightweight common application layer that directly uses and highlights the APIs rather than obscuring them. This common application layer is used to support all of the Hilo applications. It illustrates the best practices for developing Windows applications, and while it is not complete—it was designed simply to provide the features needed by the Hilo applications—it does show the best practices used in designing re-usable frameworks and can be extended to provide additional features.

Looking forward to reading more!

Kate


Friday, May 21, 2010 10:52:48 PM (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, May 19, 2010

A colleague of mine who is not near Toronto has a client in Toronto who needs .NET developers. They would like to start out with a contract position and it could become permanent if it's a good fit for everyone. Here's the job description:

Position: Senior Programmer / Analyst

Pay: $7,500 per month contract (negotiable)

Applicant must be an expert or proficient in:

  • MFC
  • ATL
  • COM
  • .NET Framework  /  C#
  • .NET Services
  • Microsoft SQL Programming

Experience in the following areas would be helpful but not required:

  • WCF
  • WPF/SilverLight
  • ASP.NET
  • Visual SourceSafe
  • Mechanical engineering experience

Responsibilities:

The primary responsibility is to modernize a legacy C++ distributed application. This may include a redesign and possible rearchitect of the application. The final application should be an n-tiered application. The tiers would ideally be:

  • WPF/Silverlight  as the presentation layer
  • A business layer with business components (C#) exposed via WCF
  • A data layer

Where necessary, COM components can be preserved.

Other responsibilities include:

  • Move image files from file database to SQL database
  • Document the application
  • Handle ongoing change requests.

Someone who moved from C++ to C# but didn't forget their C++ would be perfect. They are looking for more than one person so it sounds like a fairly meaty project. This is strictly onsite work, no remote work, which is why I mentioned where they are (east of the DVP; west of Pickering.)

Anything you email to me about this I will forward to my colleague who will in turn forward it to the Toronto folks. Good luck!

Kate

Wednesday, May 19, 2010 4:19:23 PM (Eastern Daylight Time, UTC-04:00)  #    
# Monday, May 17, 2010

Have you seen this yet? It's a letter from Leonardo da Vinci (yes, that Leonardo da Vinci) to a prospective patron. He lists fully 9 paragraphs of way cool things he can do that are relevant to the warfare of the time (portable bridges, bombing strategies, stone flingers, ways of tunnelling into places and so on) and then mentions:

10. In times of peace I believe I can give perfect satisfaction and to the equal of any other in architecture and the composition of buildings public and private; and in guiding water from one place to another.

11. I can carry out sculpture in marble, bronze, or clay, and also I can do in painting whatever may be done, as well as any other, be he who he may.

Given how well he followed through on those last two (this letter was written before his most famous works) you kind of have to believe all the siege/bombardment stuff too.

The article I've linked to has an image of the actual letter - not in English of course - and some lovely commentary on what makes it a good cover letter. It's not really a resume but it sure is a job-getting device. Apparently the Duke did indeed hire him - as a painter, not a fighter. And if you'd like to see it translated into modern day geekery, I spotted that too.

Kate


Monday, May 17, 2010 5:22:49 PM (Eastern Daylight Time, UTC-04:00)  #    
# Saturday, May 15, 2010

I really enjoyed the Winter Olympics this year. I could basically watch 24 hours a day if I wanted, and on a lot of channels. Typically I had a choice of 4 or 5 different broadcasts on the TV, more if I was willing to watch in French, plus all I could possibly ask for (literally every event that was happening) online. In a lot of cases I would have the online up even while I was watching live, because the online gave you details that you would have to wait for the announcers to happen to say - split times, individual stats, who got the assist and so on - and because you could rewind the online and see it again yourself instead of hoping someone else chose to replay it. And if I didn't have the TV on, people could (and did) IM me or visit my desk telling me "you have to see this shot!" and we would find the stream, find the little highlight marker in the timeline, go to that place and watch the cool thing again together. The online experience from CTV was really a big aspect of my enjoyment of the entire Olympics.

Now a case study has been released that talks about the nuts and bolts that made it all so much fun. The headline starts "CTV Streams 6.2 Petabytes of Winter Olympics To over 3.9 Million Visitors" and that alone is astonishing. It was all built with Microsoft technologies, including Silverlight and IIS Smooth Streaming. I like this quote:

Marcovici initially expected most viewers to be interested in a few minutes of highlights and then to move on. Much to his surprise, the average Canadian viewer spent more than an hour watching Winter Olympics video content online every single day.

That means somebody must have watched just a few minutes, because I was well over the one hour mark every day. I think we were even over the one-hour-per-person-in-the-house mark. I also liked the behind the scenes video from Vancouver. It was a nice reminder of the emotions of those weeks, plus it gives props to Vertigo, who built the player.

There are also case studies about the NBC Olympic experience, the Norwegian Broadcasting Company Olympic experience, and the France Televisions experience with the Olympics and other sports. They are all built on the same base and it goes to show that effort put into place for the Olympics could be used for many other events as well. I would love to see elections dealt with this way, so I could see the press conference for my riding even if something else was happening on the "main screen" or so I could rewind a speech or show someone else an amazing moment.

Aren't these interesting times? Staying connected is gaining a whole different meaning.

Kate  

Update: in July another case study was released. Check that one too.

Saturday, May 15, 2010 11:03:56 AM (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, May 13, 2010

Stack Overflow is an amazing resource. It's a place to ask questions and get them answered, but it's a lot more than that. Like any other online community, people get to know each other and some of them start to relax and have fun. In that spirit came the question "What is, in your opinion, the most surprising, weird, strange or really "WTF" language feature you have encountered?" with over two hundred answers. The current highest-voted answer is how C++ is fine with:

10[a]

(for some array a) and it just means the same as

a[10]

I also like the Javascript answer, in which a commenter points out that "111" - -"222" gives 333 and "111" + "222" gives "111222". And another answer I blogged about eighteen months ago. You could spend far too long reading all these and laughing.

Kate

Thursday, May 13, 2010 8:36:27 AM (Eastern Daylight Time, UTC-04:00)  #