Wednesday, November 5, 2008

Blog for "Fastware!"

I've started a blog for discussion of issues related to the book I'm working on
called "Fastware!" The book itself is about how to produce software systems that
are fast, but the issues I'm currently addressing in the blog are about the
writing itself rather than the technical content. I hope to move on to
content-related topics before too long, but first I have some authoring problems
to resolve. I encourage you to take a look at the blog at and offer comments on the issues I raise
there. (Currently, there are only two entries, but tomorrow is another day.)
My conversations with authors and publishers have not been terribly helpful in
resolving the questions I'm wrestling with, so I'm hoping that by exposing these
issues to the world at large, I'll get feedback that will help me produce a book
that's well suited to the future of publishing as well as the past.

Please let others know about this blog if you think they are likely to be
interested in authoring issues (now) or speed-related issues (later).



Tuesday, September 23, 2008

New Article Just Published

The C++ Source has just published a new article of mine, "Enforcing Code Feature
Requirements in C++." You'll find it at . Here's the summary from the
top of the article:

>Functions often depend on particular behavioral characteristics
>(“features”) of code they invoke. For example, thread-safe code must
>invoke only thread-safe code if it is to remain thread-safe, and
>exception-safe code must invoke only exception-safe code. This paper
>describes a technique that enables the specification of arbitrary
>combinations of user-defined code features on a per-function basis and
>that detects violations of feature constraints during compilation. The
>technique applies to member functions (both nonvirtual and virtual),
>non-member functions, and function templates; operators are excluded.

The article has a definite "researchy" feel to it (you may sense that from the
summary above), and in fact I originally wrote it for publication in the
academic community. Still, I think the ideas and techniques it describes are
relevant to many problems C++ developers regularly confront.

The research behind the article took over a year (off and on), and the article
itself was extensively modified twice (essentially rewritten) before it got into
its current form, so it represents a lot of work on my part. I'm pleased with
the way things turned out. I hope you find it interesting.


Thursday, July 17, 2008

All March Interview Parts Now Available

Last month I mentioned that a video interview I gave in March had been broken
into four parts and was being posted piecemeal. All four parts are now
available, and you can find links to them at my "Articles and Interviews" page, .


Sunday, June 22, 2008

New Web Site Plumbing

A significantly revised version of my web site has just been installed, and,
with any luck, you won't notice a thing. The fundamental look and content has
not been changed. Under the hood, however, much is different. Frames are gone,
and that means that bookmarking and printing should work a lot better. Most
pages are now standards-conformant, and the few that are not (typically those
with tables that were tricky to replace with CSS) will be soon (I hope).
Cross-browser compatibility should be better. Fundamentally, all the stuff that
used to work should continue to work, and many things that didn't work before
should work now.

Included among the old things that should continue to work are URLs. It really
makes my blood boil when I bookmark a page at a site and later find that the URL
I saved is broken, because the webmorons maintaining the site couldn't be
bothered to ensure that old URLs remained valid when said morons decided to
reorganize. One of my primary constraints during the work on my web site was
that old URLs should continue to work, and one of the reasons I'm telling you
about the revised plumbing is that I'd like you to tell me if any URLs into my
site that used to work don't any more. If an old URL fails to work, that's a
bug, and we'll do our best to fix it pronto.

If you happen to notice any other implementation aspect of the revised site that
isn't what it should be, please let me know. I welcome comments on content,
too, but my focus right now is on getting the HTML and CSS, etc., working the
way it should be.



Wednesday, June 11, 2008

New Podcast interviews available

In March, Addison-Wesley asked Ted Neward to interview me about the forthcoming
electronic versions of my books as well as about my thoughts on C++0x, and that
interview has now been chopped into four pieces and scheduled for publication in
both audio and video podcast form. The first two parts (covering my thoughts on
electronic publication) are now available:

Audio form:
Video form:

You should be aware that the audio form is simply the audio track of the video
form. Unfortunately, the video form shows the interview topic and names of the
participants only through video, so if you listen to the audio only, it'll be
easiest to understand if you note the topic and names (Ted Neward and me) in

The remaining two parts of the interview will be published on June 17 and 24,
and there are RSS feeds at the site so you can arrange for automatic
notification, if you like.

Incidentally, the PDF versions of my books are currently undergoing final QA,
and I'm hoping they'll become available later this month. That's a couple of
months later than we'd originally planned, but we've been addressing more
"issues" than we anticipated during their preparation, most arising from
"undocumented features" in several tools we've been using. We've also had to
wrangle with the usual impossible things taking place -- you know, the stuff
that just seems to happen when doing anything software-intensive the first time

I hope you enjoy the podcasts.


Wednesday, April 30, 2008

Talk in Redmond, WA, on May 20

On Tuesday, May 20, I'll be giving a talk at the Northwest C++ Users Group in
Redmond, Washingon. I'll be describing a fully compile-time mechanism for
enforcing arbitrary code constraints. It's an updated version of a talk I gave
at the Users Group last year and at the Software Development Conference earlier
this year. The current approach checks everything during compilation,
approximates support for contravariant constraints down an inheritance
hierarchy, and allows overloading on constraint sets. I think it's kind of

Details are available at . I hope to
see you there.


Wednesday, March 19, 2008

Books' PDF Update; October Talks in Germany

It's hard to believe it's been nearly six months since I first wrote about the
forthcoming availability of my books in electronic form. We've done a lot of
work since then, and the PDFs are nearly completed. Initial availability is
expected to be next month. We've largely hewed to the plan I posted in October,
but we did make one major change: the PDFs will use no DRM. Instead, we'll
rely on "personalization" technology that adds purchaser information (e.g.,
their name) to the PDFs when they are purchased. Presumably, this will
discourage people from posting their PDFs on the Internet.

The lack of DRM means you can put copies of the PDFs you buy on all your
machines, you can annotate and print them to your heart's content, you can
access them through desktop search tools, etc. In other words, you can
literally (and legally) do pretty much all the things with your PDF copies of my
books that I can, as long as the result is for your personal use. I've attached
a marketing flyer that gives more information about the electronic versions of
my books and also gives an email address to write to if you'd like to be
notified when they become available.

* * * * *

For the tenth year in a row, I'll be presenting a series of technical seminars
in Europe in the fall. This year all the talks will be in Stuttgart, and one of
the highlights will be my recently-developed two-day course on making effective
use of C++ in embedded systems. You can find links to all the seminars at my
Upcoming Talks page, .

Thanks for your continuing interest in my work.