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
http://fastwareproject.blogspot.com/ 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).
Thanks,
Scott
Wednesday, November 5, 2008
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
http://www.artima.com/cppsource/codefeatures.html . 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.
Scott
Requirements in C++." You'll find it at
http://www.artima.com/cppsource/codefeatures.html . 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.
Scott
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,
http://www.aristeia.com/publications.html .
Scott
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,
http://www.aristeia.com/publications.html .
Scott
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.
Thanks,
Scott
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.
Thanks,
Scott
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: http://www.podango.com/podcast/2243/OnSoftware_audio
Video form: http://www.podango.com/podcast/2066/OnSoftware_video
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
advance.
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
around.
I hope you enjoy the podcasts.
Scott
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: http://www.podango.com/podcast/2243/OnSoftware_audio
Video form: http://www.podango.com/podcast/2066/OnSoftware_video
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
advance.
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
around.
I hope you enjoy the podcasts.
Scott
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
nifty.
Details are available at http://www.nwcpp.org/Meetings/2008/05.html . I hope to
see you there.
Scott
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
nifty.
Details are available at http://www.nwcpp.org/Meetings/2008/05.html . I hope to
see you there.
Scott
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, http://www.aristeia.com/seminars.html .
Thanks for your continuing interest in my work.
Scott
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, http://www.aristeia.com/seminars.html .
Thanks for your continuing interest in my work.
Scott