June 2011


I wanted to give a gentle reminder to everyone that our special pricing for C++ and Beyond room rates at Banff Springs Hotel are only available through July 7 –  one short week from now.

If you have been procrastinating on making hotel reservations, now is the time. We got a GREAT deal on the hotel rooms, so if you don’t make the reservations by July 7, you may end up paying a lot more for your room.

If you want to attend and get the special room rates, but you won’t be able to get the registration paperwork done by the 7th, you can make your hotel reservation before you’ve signed up for C&B. No need to wait and miss out!

See you there in August ~

Lisa

C++ and Beyond 2011 is now 80% sold out, which means there are only 20 tickets left.  Attendance is limited to 100, and that number won’t be increased, so when the last ticket is gone, that’s it — we’ll be sold out.  To avoid finding yourself standing outside the room with your nose pressed up against the glass (something that would be both embarrassing and uncomfortable), be sure to register as soon as you can.  The C&B Registration Page now shows the number of remaining seats, so if you find yourself in need of a shot of realtime ticket availability information, that’s the place to get it.

August 7-10 in Banff is going to be the place to be for all things C++ and C++-related, so rearrange those vacation plans, pester your boss into sponsoring your attendance, and make your travel arrangements.  Also, let us know what topics will be most valuable to you, because we want to make sure that after you’ve adjusted your vacation and pestered your boss, C&B will be worth it :-)

Scott

This year marks the tenth anniversary of “Modern C++ Design” and its promotion of policy-based design – simple, modular, white-box designs obtained by mixing and matching small behavioral components.

The technique has gone through the expected cycle – incredulous reception, hype, backlash – to become just another tool in the shed with its own well-understood advantages and disadvantages. Template templates are complicated, except when they bring enough leverage to pull their weight; freedom in design is good, except when there’s too much of it; and so on.

One thing is for sure—policy-based designs in C++ exploit some of its most advanced features and naturally could use a few more.

This talk does two things. First, it looks back at the evolution of policies up until now. Second, it explores what a “postmodern” C++ world looks like with C++2011 features in tow. Policy-based design is greatly helped by language features such as variadic templates, template aliases, and lambdas, but also by library artifacts such as function objects and smart pointers. Each of these features reduces the efforts of implementing some of today’s policy-based designs and, most importantly, open the door to even more powerful ones.

This is a prospective session, not a definite session, and there are two reasons for that.  First, I have a feeling that my treatment of the C++0x memory model may run longer than a single session, and if that’s the case, I’ll give just that talk and the one on perfect forwarding.  There won’t be time for anything else.

Second, when I announced C&B 2011 in February, I pretty much promised new talks, and this talk isn’t new.  (Technically, none of us promised new talks, we said it was a goal. We chose our wording carefully, because we wanted to retain the flexibility to, you know, weasel out of what appeared to be a guarantee :-|.)  The material for this prospective talk is taken from my seminar, Better Software—No Matter What, and a very small part of it appeared in 97 Things Every Programmer Should Know.  A somewhat larger (but still quite abbreviated) subset came out in the IEEE Software column I wrote in 2004.  If you’ve read 97 Things or the IEEE Software column, you’ll be familiar with only some of many points I make in the talk.  If you’ve seen the Better Software presentation, you’ll recognize the material (though perhaps not in its current form, because I update it on an ongoing basis).

If you feel that my giving this new-to-C&B-but-not-to-the-world talk would diminish your experience at C&B, let me know, and I’ll replace it with something truly new.  (If you’d prefer to lodge your objection indirectly, feel free to write Lisa.  She’ll forward your comment to me after stripping off identifying information.)  I’d prefer to give the talk (if time allows), because I think the material in it is both relevant and important to practicing C++ developers.

With that said, the talk itself explains why I think that the single most important design guideline is to make interface easy to use correctly and hard to use incorrectly.  I use “interfaces” in its general form, so the talk isn’t about user interfaces or command line interfaces or class or library interfaces, it’s about all those things.  It addresses both syntactic elements (e.g., what do interface users have to type or click on, etc.) as well as semantic ones (e.g., the meanings of words, labels, messages, etc.), and it gives lots of examples of how things can go wrong.  It further explains how to go right, offering a number of specific guidelines about how interfaces can be designed to make it easy for their users to do the right thing (i.e., achieve what they want to achieve) and hard for them to do the wrong thing (i.e., fail to achieve their goals).  If you’ve ever wondered about the C++ Standard Library having an algorithm called binary_search that isn’t guaranteed to run in logarithmic time, about Windows having you click on Start if you want to stop your computer or MacOS having you put things in the trash as a way to eject them, about good and bad parameter passing conventions, or about ways to design powerful interfaces that limit the likelihood of user errors, this talk is for you.

If you plan to do any sightseeing during your stay in Banff, Banff Tours is offering a special 10% discount promo code for our C++ and Beyond conference delegates!

Sightseeing and activities coverage includes:

  • Banff/Lake Louise/Icefields Parkway Sightseeing Tours (small personalized size – max 24 pax)
  • Wildlife Watching Tours – Full Day Grizzly Bear/Evening Wildlife Safari
  • Canoeing on the Bow River (rentals and guided tours)
  • Whitewater Rafting on the Kananaskis and Horseshoe Rivers (Half Day)
  • GyPSy Guide – using GPS technology to trigger your own in car guided commentary tour (~1500 points alone in the Cdn Rockies)

To claim your 10% discount:

1. Go to BanffTours.com
2. Choose your tour or sightseeing activity
3. Upon checkout, enter conferences-beyond right below where it says “Promotion Code” then click on the Apply Promotional Code orange button
4. You will see the discount applied and you can continue to enter payment information

This discount is being offered by Banff Tours. If you have any questions, you can contact them at 1-877-565-9372 or visit their webpage for more information.

Enjoy!

This coming Friday (10 June) is the final day of the Early Bird registration period, hence the final day to get the special I-registered-early US$300 off the normal registration price for C++ and Beyond 2011.  If you’ve been procrastinating about signing up, this impending deadline gives you 300 reasons why doing so this week would be a financially savvy move….

Scott

Channel 9 Robot ImageWe just got word that Charles Torre from Microsoft’s Channel 9 will be attending C++ and Beyond with camera in hand to immerse himself in and presumably report on C&B in Banff.  Herb and Andrei and I are slated to sit down with him for a collective interview, but that will take place during non-C&B hours.  An important part of the C&B experience is that you’ll have plenty of time to talk with us, and the presence of fancy high-tech video equipment (which, for all I know, in Charles’ case consists of an off-brand camera phone) won’t interfere with that.

Charles will probably also be interviewing attendees, so if you’re looking to make your break into geeky Internet-based show business and you’re enthusiastic about C&B, be sure to seek him out.  If you’re not enthusiastic about C&B, please seek us out so that we can try to address the problem.

People who’ve expressed interest in having us record the technical sessions at C&B should know that that is not what Charles will be doing there.  His job is to represent Channel 9 and their interests; nothing more.  We’re still looking into the possibility of recording our sessions, and we’re still not making any commitments one way or the other.

Scott

The final technical session of each day at C&B is devoted to your questions and our answers, often with us making comments about the others’ remarks.  It’s our take on the traditional conference panel, where we do our best to make you a part of the discussion.

The first two sessions have general themes, and the themes this year are:

  • C++0x.  The forthcoming standard (which is increasingly being referred to as C++11) brings many new features into C++.  Some are available in current compilers.  Some aren’t. Some are straightforward to use and understand.  Some aren’t.  Some are likely to be useful to essentially everybody.  Others are aimed at developers in fairly narrow niches.  This session is devoted to everything related to the new standard and the features it specifies.  We’ll do our best to answer your questions and offer our opinions on anything in or related to it.
  • Concurrency and Parallelism.  C++ developers typically have opportunities to take advantage of concurrent and parallel computation at a number of levels.  The hardware may offer vectorization units, GPUs, multiple cores, or multiple CPUs (possibly of different types).  The language, as of C++0x, offers multiple threads;  the OS typically offers multiple processes; and multiple machines may be applied to a single problem.  That means that clusters, grids, farms and, yes, clouds are also a part of the concurrency/parallelism mix, as are things like algorithm and data structure design, job partitioning, load balancing, data consistency, and much, much more.  This session throws the door open to all questions and topics related to this very broad area, from C++ itself to the parallelism challenges faced by the kinds of applications its used for. We certainly don’t know all the answers, but this is a critical topic area for C++ developers, and we’ll do our best to shed some light on at least parts of it.

The final Q&A session at C&B is as simple and open-ended as we can make it:

  • Ask us anything!  (If you have questions about this topic, um, ask them at the session.)

If you’d like to pre-load these sessions with questions or topics you’d like to see us address, use the commenting function on this page to do it.  We can’t make any guarantees about whether we’ll be able to talk about all the things that come up here (based on last year’s C&Bs, there will be too many topics for too little time), but putting your question or topic here will guarantee that we’ll be aware of it, and that’s an important first step.

Scott