
[ David Abrahams] I'll be giving two talks at SD West in March, one about template metaprogramming, and another called "Inside the Boost Libraries," where I plan to discuss some of the more interesting Boost internals. You can see a synopsis at http://www.cmpevents.com/SDw5/a.asp?option=G&V=3&id=271893
I'm trying to decide exactly what to cover there. I've listed some of my ideas below, but I'm obviously not familiar with the entire Boost codebase, so I thought I'd solicit suggestions. Thoughts, anyone?
More thoughts to add to this thread. Background: * I have attended presentations from folks that they have taken VERY interesting material and made it EXTREMELY boring * I have also attended presentations from folks and it has been exciting and thrilling to watch the information unfold. I was kept on the edge of my seat waiting to see what was going to happen next * I have noticed that the crowd's at the shows are not always the "Type A" programmers, and frequently don't seem to engage or have the background information necessary to really understand the topic being presented * With complex subjects, for myself, I have noticed that once I know how to "think about something" and then I "get it". I can than think about any aspect of that, because I understand the concepts necessary to process the information. * if one can find the "sweet spot" early in the presentation for getting the crowd to "think" the right way to grasp the rest of the presentation, then you have a much better chance of ending the talk with everyone excited. (because you have taught them something and then took them along for a ride where you showed how to USE that new way of thinking) * I spent *A LOT* of time with Boost.Lamda. Writing sample code, re-reading the documentation, over and over and over and over again. It took me many passes to "get it". This is an excellent library, and the document IS well done. I think this is just the classic problem of really smart people having a hard time figuring out how to present something to someone who does not "know how to think about it". I took a look at the phoenix v2 docs. What is cool is THIS PAGE: http://tinyurl.com/3khbu What stood out about it was THIS ONE PAGE would have saved me many many hours had it been in the original Lambda docs. Because it describes for me, how to "think" about the currying. My advice to you is to find a way, in your presentation of the boost internals, to make sure that you thread it such that the people watching "can think about it". If you establish this early on, you will have an excited audience and you will (hopefully) get more people to use boost. Detailed Suggestions: * the pics in the above link are conceptually excellent for describing how to think about currying. If you can accomplish something along the same lines with the techniques you are going to show, then you will really knock em dead. * Boost internals is an excellent subject matter, I think if you first hit common concepts- and THEN delve into those concepts and how the internals of the library(ies) use that concept you will give people something they can use. * in a previous mail I made the suggestion, which I will make again. Try to think of the most important techniques the boost libraries depend on, get them in peoples heads, and then delve into the internals. * a technique I have seen used in the mags, is to decompose the templates, I.e. show what the code looks like after the compiler has gone through the generation steps. * hopefully my suggestions, though not exactly what you asked for, will be of some use to you. :) Brian