Thursday, March 28, 2002

Possible open-enrollment seminars this summer

I am considering offering some open-enrollment courses near Portland,
Oregon, this summer, and I'd like to get some idea of which courses would
be of the greatest interest. In theory, I could offer any of the courses
listed at my Training Page (http://www.aristeia.com/training_frames.html),
but the following are the ones I'm most actively considering:

High-Performance C++ Programming
1 Day
Description at http://www.aristeia.com/high-performance_frames.html

Effective C++ Programming
5 Days
Description at http://www.aristeia.com/effective-c++_frames.html

Effective STL Programming
2 Days
Description at http://www.aristeia.com/estl/index_frames.html

An Effective Introduction to the STL
4 Days
Description at http://www.aristeia.com/eistl/index_frames.html

Cost would probably be around $500/day and would include continental
breakfast, buffet lunch, afternoon snack, and an unlimited supply of
beverages.

If you think that you or your colleagues would be able to attend a seminar,
please let me know the topics and time frame that would be best for you, as
well as the number of people. If you are interested in a topic not listed
above, please let me know that. If you think that you and your colleagues
would be unlikely to attend a seminar this summer, please do not reply to
this message.

Thanks for your help with this.

Scott

Friday, March 22, 2002

The Effective Software Development Series

For over a decade, I have tried to help bring outstanding books on software
development into existence. I've written my books and CD, I've reviewed
piles of pre-pub manuscripts for Addison Wesley, and I've encouraged
prospective authors who I thought had something important to say (perhaps
most notably Andrei Alexandrescu). Now I'm pleased to report that I'll be
acting as Consulting Editor for a new Addison Wesley book series, the
Effective Software Development Series.

I've put together a preliminary series overview, and you can find it at
http://groups.yahoo.com/group/scott_meyers/files/ESDS%20Overview.pdf
I hope you'll take the time to read it (it's only a page and a half), but
if you're in a hurry, this is the executive summary:

The Effective Software Development Series (ESDS) provides expert advice
on all aspects of modern software development. Books in the series are
well-written, technically sound, of lasting value, and tractable
length. Each describes the critical things the experts almost always do
-- or almost always avoid doing -- to produce outstanding software.

The series has just been started, and though there are things going on
behind the scenes, we're not yet in a position to announce any titles. So
why am I telling you this? Primarily to let you know that if you are
interested in writing a book that you feel would be a good fit for the
series, or if you know anybody who might be interested in writing a book
that you think would mesh well with the series, we'd love to hear about it.
Good books require good manuscripts, and good manuscripts require authors
with development insights and experiences that make them masters in their
fields. I know that many people on this mailing list are such master
developers, and I know that they know other master developers. I want to
help make the expert advice of such developers more widely available, and
I'm hoping you'll help me do that.

For information on submitting a manuscript or a proposal, feel free to
contact me (smeyers@...) or Mike Hendrickson, the AW editor for
this series (mikeh@...).

Thanks,

Scott

Monday, March 11, 2002

Updated Effective C++ CD Errata List

I just updated the Effective C++ CD errata page
(http://www.aristeia.com/BookErrata/cd1e-errata_frames.html) with the
latest batch of bug reports, as well as with a revised version of the bug
report regarding problems using IE6. That, along with the corresponding
bug report for NS6, are the most important new entries. Here's the full
list:

9/18/01 dp Under IE6, image and chunk size choices don't appear in
the navigation area, and lines don't break properly to
fit the browser window. For more information on the CD
and IE6, see href="http://groups.yahoo.com/group/scott_meyers/message/36">the message I
posted to my mailing
list on the subject
. (Despite these problems, many
people seem to feel that the CD works acceptably well
under IE6.)

11/10/01 sdm Change all URLs and email addresses that mention
awl.com to URLs/email addresses at aristeia.com
because, despite over six years of trying, the web
morons at AW are incapable of maintaining valid URLs
and email addresses.

1/19/02 ecm The CD doesn't work properly with Netscape 6.2. In
particular, images are not displayed correctly, and
chunk and image sizes are not indicated in the
navigation area.

1/22/02 ds In the magazine article "Counting Objects in C++,"
the comment in the second class definition after P55 is
incorrect: "rest of Widget" ==> "rest of ABCD"

2/ 1/02 am In the MEC++ appendix, "An auto_ptr Implemention," the
out-of-line implementation of the generalized (i.e.,
templatized) copy constructor is missing the part that
declares the template parameter U. The code should look
like this:

template<class T>
template<class U>
inline auto_ptr<T>::auto_ptr(auto_ptr<U>& rhs)
: pointee(rhs.release())
{}

Scott
--------------------------------------
Check out the *new* "THE C++ Seminar"
http://www.gotw.ca/cpp_seminar/

Thursday, March 7, 2002

My CD and Current Browsers; Leor Zolman's STL Error Decryptor

Two topics:
- Status of Effective C++ CD with contemporary browsers.
- Plug for Leor Zolman's STL decryptor -- and for Leor.


The Effective C++ CD and Contemporary Web Browsers
--------------------------------------------------

When Addison-Wesley (AW) and I developed the Effective C++ CD in 1998, the
dominant browsers were Internet Explorer 3 (IE3) and Netscape 3 (NS3),
though versions 4 were on the horizon. We developed for IE4 and NS4, and
we claimed in the marketing copy that the CD was compatible with IE4+ and
NS4+. That was true through versions 5, but in versions 6 of their
browsers, both IE and NS broke backwards compatibility, and the result is
that the CD doesn't work properly with IE6 or NS6.

AW has decided not to upgrade the CD for contemporary browsers. I'm
telling you this for two reasons. First, I want to alert you to the fact
that the CD won't work with IE6 or NS6 and there are no plans to fix this,
the marketing copy on the box and at the web site notwithstanding. (AW
will fix the marketing copy, BTW. They have no interest in lying to you.
I wouldn't continue to work with them if they did.)

Second, though fixing the CD may be beyond AW's capabilities and beyond
mine (I'm a C++ guy, not an HTML/CSS/JavaScript etc. guy), it may not be
beyond yours. AW and I both encourage you to develop patches for the CD
that will allow it to be used with current browers, including IE6 and NS6,
of course, but also browsers we never supported, such as Opera. If you
develop such patches and make them publically available, AW and I will
happily publicize them (e.g., link to them from our web sites, maybe
mention them in mailings, etc.). Our only real request is that you make
*patches* available, not complete patched copies of the CD. We'd like to
see the CD usable with current browsers, but we don't want to give the CD
away. I'm hoping you can help us out.

I apologize for the CD failing to work with contemporary browsers. We did
the best we could at the time, and I still think we produced a product to
be proud of. If you or people you know could make it possible for the CD
to be used with the latest browsers, that would make me prouder still.


Leor Zolman's STL Error Message Decryptor, etc.
-----------------------------------------------

Leor Zolman checked all the code in Effective STL before the book was
published, and he makes that code available to you at
http://www.bdsoft.com/resources/estlcode.html. In a backhanded kind of
way, however, I'm sort of responsible for his much more significant
accomplishment, because attendance at an offering of my introductory STL
course (http://www.aristeia.com/eistl/index_frames.html) inspired him to
develop a set of perl scripts to make STL error messages a lot more
readable. For example, in Item 49 of ESTL I show this error message:

example.cpp(17) : error C2440: 'initializing' : cannot convert from 'class
std::_Treestd::basic_string,class
std::allocator >,struct
std::pair,class
std::allocator > const ,class std::basic_stringstd::char_traits,class std::allocator > >,struct std::mapstd::basic_string,class
std::allocator >,class
std::basic_string,class
std::allocator >,struct
std::less,class
std::allocator > >,class std::allocatorstd::basic_stringstd::char_traits,class std::allocator > > >::_Kfn,struct
std::lessstd::basic_string,class
std::allocator > >,class
std::allocatorstd::char_traits,class
std::allocator > > >::const_iterator' to 'class std::_Treestd::basic_string,class
std::allocator >,struct
std::pair,class
std::allocator > const ,class std::basic_stringstd::char_traits,class std::allocator > >,struct std::mapstd::basic_string,class
std::allocator >,class
std::basic_string,class
std::allocator >,struct
std::less,class
std::allocator > >,class std::allocatorstd::basic_stringstd::char_traits,class std::allocator > > >::_Kfn,struct
std::lessstd::basic_string,class
std::allocator > >,class
std::allocatorstd::char_traits,class
std::allocator > > >::iterator'
No constructor could take the source type, or constructor overload resolution
was
ambiguous

Here's the same compiler output run through Leor's filter:

example.cpp(17): error C2440: 'initializing': cannot convert from
'map::const_iter' to 'map::iter' No
constructor could take the source type, or constructor overload resolution
was ambiguous

Better, no? Leor's filter(s) are freely downloadable and work with lots of
compilers and libraries (e.g., VC6-7, g++, Comeau, STLport). They can be
used from the command line or as an integrated part of the MSVC IDE. I use
them all the time, and I encourage you to try them, too. You'll find them
at http://www.bdsoft.com/tools/stlfilt.html.

As long as you're at Leor's web site, check out his training courses,
including the one called "An Effective Introduction to the STL." As you
can see at http://www.aristeia.com/training_frames.html, that's my course
:-) Leor is one of the few people I trust to teach it in my place. If
you're looking to have somebody come in and teach the STL to you or your
colleagues, I really think you should give Leor a look, especially if
you're in the Boston area. (In the interest of full disclosure, I'll point
out that if Leor teaches my course, I get a rental fee for the use of my
teaching materials. At least I'm supposed to...)

Scott
--------------------------------------
Check out the *new* "THE C++ Seminar"
http://www.gotw.ca/cpp_seminar/