    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>ACCU  :: The ACCU Conference 2004</title>
        <link>https://members.accu.org/index.php/articles/678</link>
        <description>Professionalism in Programming</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>Administrator</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.xaraya.org" /> 
        <admin:errorReportsTo rdf:resource="mailto:webeditor@accu.org" />
       <sy:updatePeriod>hourly</sy:updatePeriod>
       <sy:updateFrequency>1</sy:updateFrequency>
       <docs>http://backend.userland.com/rss</docs>




<div class="xar-mod-head"><span class="xar-mod-title">CVu Journal Vol 16, #3 - Jun 2004</span></div>

<table border="0" cellpadding="1" cellspacing="0">
    <tbody>
    <tr>
        <td valign="top">
            Browse in :
       </td>
       <td valign="top">

                                            <a href="https://members.accu.org/index.php/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c76/">Journals</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c77/">CVu</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c102/">163</a>
<br />
</td>
   </tr>
   </tbody>
</table>




<div class="xar-error">
   <p>
 <strong>Note:</strong> when you create a new publication type,
the articles module will automatically use the templates
<em>user-display-[publicationtype].xt</em>
and <em>user-summary-[publicationtype].xt</em>.
If those templates do not exist when you try to preview or display a new article,
you'll get this warning :-)  Please place your own templates in themes/<em>yourtheme</em>/modules/articles . The templates will get the extension .xt there. </p>
</div>
<div class="xar-norm xar-standard-box-padding">
   <h1><strong>Title:</strong>&nbsp;The ACCU Conference 2004</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 03 June 2004 13:16:06 +01:00 or Thu, 03 June 2004 13:16:06 +01:00</p>
<p><strong>Summary:</strong>&nbsp;<p>Another year, another ACCU conference. And this year's conference, like its predecessors, was an excellent event. In this write-up a number of attendees will tantalise you with brief reports of what went on. Let it serve as a memory-jog and piece of nostalgia for those who attended, and as an encouragement to come next year.</p></p>
<p><strong>Body:</strong>&nbsp;<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e42" id="d0e42"></a>A Report</h2>
</div>
<div class="blockquote">
<blockquote class="blockquote">
<p>The lion and the calf shall lie down together but the calf won't
get much sleep. (Woody Allen)</p>
</blockquote>
</div>
<p>Another year, another ACCU conference. And this year's
conference, like its predecessors, was an excellent event. In this
write-up a number of attendees will tantalise you with brief
reports of what went on. Let it serve as a memory-jog and piece of
nostalgia for those who attended, and as an encouragement to come
next year.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e50" id="d0e50"></a>The Small
Print</h2>
</div>
<p>The 2004 ACCU conference took place between 14th-17th April, and
this year returned to the centre of Oxford. A sense of grandeur was
lent by the venue, the Randolph Hotel. Although it's comparatively
hard to get into deepest darkest Oxford (the Park and Ride serves
admirably), the central location made it much easier to fall out of
the conference into the local night life - an essential part of
conference attendance.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e55" id="d0e55"></a>A Taste of the
Atmosphere</h2>
</div>
<p>All four days were packed full of high quality seminars,
presentations, tutorials, workshops, &quot;bird of a feather&quot; sessions,
and socialising. The ACCU conference is always a great place to
meet like-minded individuals; people who like to program, love to
learn, and want to sharpen their skills. Many ACCU members relished
the opportunity to put faces to the names they see in periodicals
and on the mailing lists. It's always surprising when your mental
image of an intellectual giant is dashed against the harsh rocks of
reality!</p>
<p>The geeks (let's face it, that's all of us) were particularly
pleased by the Randolph's freshly installed wireless network, and
many a happy hour was spent pulling out hair whilst trying to
configure the darned thing to work.</p>
<p>Friday night's speakers banquet was a great success, if not an
amusing occasion as delegates struggled to find enough spaces to
eat! It was a good quality meal with an added twist - between each
course delegates had to switch tables; a chance to meet several
speakers, and the many other delegates. Who said technical
conferences are dull?</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e64" id="d0e64"></a>A Taste of the
Sessions</h2>
</div>
<p>At the core of any ACCU conference are the keynotes and
seminars. On each day there were five concurrent themed tracks,
ranging from <span class="emphasis"><em>Process</em></span> to
<span class="emphasis"><em>Python</em></span>, from <span class=
"emphasis"><em>Open Source Software</em></span> to hardcore
<span class="emphasis"><em>C++</em></span>. The conference boasted
more than 70 speakers, with many new speakers rising from within
the ranks of ACCU, a refreshing trend - especially considering the
high quality of their talks.</p>
<p>To provide a flavour of the content here are a selection of
brief overviews. Unless otherwise specified, these have been
supplied by <tt class="literal">accu-general</tt> regular Ric
Parkin (<span class=
"errorcode">ric.parkin@ntlworld.com</span>):</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e89" id="d0e89"></a>Keynote: World
Domination - Eric S Raymond</h2>
</div>
<p>A talk about Open Source Software, from the writer of the highly
influential &quot;The Cathedral And The Bazaar&quot;. While evangelical, he
made some interesting points about <span class=
"emphasis"><em>domination relationships</em></span>, which is where
your business depends on someone else, out of your control. In
particular, software vendors often dominate their customers'
future, and not always in a good way. In this light, OSS can be
seen as a way of managing your risk - you have more control over
your software. For software vendors, this implies a change from
making software as a manufacturing company, to supporting software
as a service company.</p>
<p><span class="emphasis"><em>Paul Grenyer adds:</em></span> The
conference fun started in the first keynote, when Eric Raymond
mistook Francis Glassborow for nothing more than &quot;The Camera Guy&quot;,
due to the fact he was filming the session, when he raised his hand
to ask a question.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e101" id="d0e101"></a>Keynote:
C++/CLI - Herb Sutter</h2>
</div>
<p>Herb is always an excellent speaker, and here he was going over
some aspects of the proposed new C++ binding to the .Net CLI. There
are two major design decisions that look to me to be vital, and to
be done well:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>The first is the realisation that garbage collection and
lifetimes are orthogonal - GC helps to reuse heap memory when
needed, destruction is for tearing down objects when their lifetime
is over. In C++/CLI they're changing the destructor to be
equivalent to calling <tt class=
"methodname">IDisposable::Dispose</tt>, and the compiler will Do
The Right Thing with members. This is a major step forward, and
will make C++ a better language to use than C# etc. where you have
to call this stuff by hand.</p>
</li>
<li>
<p>The second is to realise that GC references and C++ pointers are
different, and no amount of fancy tricks will let you pretend
otherwise. So a different syntax is used.</p>
</li>
</ul>
</div>
<p>Herb also did a whirlwind tour of the context sensitive keywords
used to declare managed types, and some differences between .Net
Generics and templates. To finish, he announced that not only are
Microsoft going to give away the VC7.1 command line tools free from
today with no restrictions, but they're also going to do the same
for the new version as soon as it comes out...</p>
<p><span class="emphasis"><em>Paul Grenyer adds:</em></span>
Another highlight was when Herb Sutter admitted something that I am
sure many of us feel deep down inside: &quot;I Love C++&quot;. This, along
with his announcement about the now freely downloadable Microsoft
Visual C++ compiler (yes free!!!) and the marrying off of two
couples of ACCU members as an example of the pairing between C++
and CLI, made the session very memorable.</p>
<p><span class="editorial">[The compilers can be found at <a href=
"http://msdn.microsoft.com/visualc/vctoolkit2003/" target=
"_top">http://msdn.microsoft.com/visualc/vctoolkit2003/</a> - it
does not include the GUI, but when I spoke to the chap from
Microsoft, he did say you can drop the free versions over the
previous binaries and everything should still work - Ed]</span></p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e128" id="d0e128"></a>Code Craft -
Pete Goodliffe</h2>
</div>
<p><span class="emphasis"><em>Tony Barrett-Powell
writes</em></span>: Pete's session was about how to write better
software and used the framework of a road sign to structure the
session. His first assertion was that the main differentiator
between good and bad programmers was not technical excellence but
attitude. To illustrate this assertion the session quickly
proceeded into a 5 minute practical to work in teams followed by
Pete discussing some archetypal programmer attributes and finally
to think about your attitude during the practical. He went on to
note that software is generally developed in teams and that the
individual attitudes effect the team. Finally he presented the
ideal programmer in terms of attitudes and his suggestion that
adoption of these attitudes would improve a programmer was well
received by the audience.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e135" id="d0e135"></a>Design
Experiences in C++ - Mark Radford</h2>
</div>
<p>A wide ranging talk about various designs found to be useful,
and some thoughts on costs and risk. Many ideas came from managing
the risk inherent in writing software - by catching problems early
you reduce the risk and costs of finding them later.</p>
<p>An example was making value types rather than built ins. The
idea is that you write a new type for every type your domain
problem uses. For the small upfront cost (small if you write a
decent templated type generator) you write a domain level language
that gets the compiler to catch mistakes, and makes the code more
expressive in its intent.</p>
<p>Other subjects included tying the units of a quantity into the
type system, the different trade offs when choosing how to iterate
over a collection, looking at genericity and virtual calls to
express static versus dynamic variability.</p>
<p>Mark finished off by looking at using design to capture and
manage complexity. Despite some recent languages, OO is not the
only, or best paradigm to use. C++ is unusual in being
multi-paradigm which allows it to model complexity well. It is:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p><span class="emphasis"><em>Object Based</em></span> - allows
working with &quot;values&quot;, not runtime polymorphism. Offers abstraction
and encapsulation</p>
</li>
<li>
<p><span class="emphasis"><em>Object Oriented</em></span> - it
provides runtime polymorphism as a first class feature.</p>
</li>
<li>
<p><span class="emphasis"><em>Procedural</em></span> - it deals
with control flow and decisions</p>
</li>
<li>
<p><span class="emphasis"><em>Generic</em></span> - you can
parameterise on types</p>
</li>
</ul>
</div>
<p>These different paradigms are tools, to be used when
designing.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e169" id="d0e169"></a>Beyond the
Gang of Four - Henney</h2>
</div>
<p><span class="emphasis"><em>Tony Barrett-Powell
writes</em></span>: Kevlin's session considered design patterns and
how the Gang of Four's book design patterns has influenced, or
impeded, the progress of design patterns. Using the framework of
the 23 design patterns from the Gang of Four, Kevlin presented some
inconsistencies and flaws in the design patterns. For some of the
patterns Kevlin reconstructed them to show that in fact they hid
further, more fundamental, patterns. The best example of this was
his reworking of the Singleton, a much abused pattern and the
source of a substantial secondary industry. The result of the
reworking was a community of patterns with a genuine creation
constraint and much clearer consequences. In summary Kevlin
reiterated what patterns were and that the Gang of Four is a
historical subset of the patterns we need for effective design.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e176" id="d0e176"></a>Remembering
Code Experiment - Derek Jones</h2>
</div>
<p>A quick session over lunch to get some real world statistics on
how well programmers can remember, by performing a series of
tasks.</p>
<p>Participants were shown three variables and their values. When
you thought you had memorized them, you turned the page. There was
a nested if statement of the form <tt class="literal">if((a &lt; e)
&amp;&amp; (u &lt; a))</tt> then <tt class="literal">if(e &lt;
u)</tt> then <tt class="literal">A else B;</tt> Assuming the first
if was true, you ticked which statement got executed, A or B. Now
that you've been distracted, there was then a list of the previous
variable names, plus a fourth one. You had to write down the
values, or tick if you would have to look again, or if the variable
was the extra one.</p>
<p>This was surprisingly difficult, especially as the same names
and values came up regularly but in different permutations, so you
couldn't mentally build a system model, as it would mislead you.
The results are to be analysed and written up for C Vu.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e194" id="d0e194"></a>Correcting
STL Problems - Dietmar K&uuml;hl</h2>
</div>
<p><a href="http://www.dietmar-kuehl.de/cxxrt/" target=
"_top">http://www.dietmar-kuehl.de/cxxrt/</a></p>
<p>The STL is great, but there are problems. People write loops by
hand instead of writing an algorithm, because functors are a pain.
Libraries like <tt class="literal">Boost.Lamda</tt> can help but
are not perfect. Also, passing pairs of iterators is usually too
difficult and unnecessary - most of the time whole containers are
used. So we add lots of algorithm overloads and use meta
programming techniques to sort out possible ambiguities in the
signatures. This gets you code like:</p>
<pre class="programlisting">
std::for_each( intcontainer, std::cout &lt;&lt; _1
      &lt;&lt; &quot; squared is &quot; &lt;&lt; _1 * _1 &lt;&lt; &quot;\n&quot; );
</pre>
<p>But there are worse problems. The STL concepts are too
restrictive:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p>proxy containers are not allowed, leading to the farce that
<tt class="classname">std::vector&lt; bool &gt;</tt> isn't a
Container!</p>
</li>
<li>
<p>input iterator is limited - writing <tt class=
"literal">copy_until</tt> is impossible.</p>
</li>
<li>
<p>limited algorithms.</p>
</li>
<li>
<p>it's difficult to chain algorithms together - e.g. want to pass
result of <tt class="function">equal_range</tt> to <tt class=
"function">for_each</tt>.</p>
</li>
</ul>
</div>
<p>The solution is to refine some of the iterator concepts - it has
a position cursor, and some properties that may be able to be read,
written, or treated as an l-value (i.e. a reference taken to the
underlying value):</p>
<pre class="programlisting">
T val = get(propertymap, positionkey);
put(propertymap, positionkey, value);
T&amp; ref = at(propertymap, positionkey);
</pre></div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e238" id="d0e238"></a>Beyond
Methodology - Allan Kelly</h2>
</div>
<p>A wide ranging conversation with the audience, ripping apart the
idea of having a Methodology as a panacea. It tended too far into
the evangelical; deriding what's wrong without proposing enough to
replace it. Still, there were some thought provoking ideas, even if
they weren't always well received. For example, Alan suggested that
bug tracking systems are often used to <span class=
"emphasis"><em>hide</em></span> bugs - if it's 'in the system' it's
easy for no one to take responsibility for a bug. This is true, but
the solution isn't always to not have a bug tracking system!</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e246" id="d0e246"></a>Design And
Implementation Of Templates For Input - Francis Glassborow</h2>
</div>
<p>A case study of how Francis developed some wrappers for reading
and validating user input for a book on teaching C++. A few
interesting gotchas, but mainly useful as a reminder that things
shouldn't be difficult to use and we would all benefit from better
wrappers at the right level.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e251" id="d0e251"></a>What is C++
Missing - Alan Griffiths</h2>
</div>
<p>A lunchtime Birds Of A Feather informal meeting, which wasn't so
much about the language, but what tool support was missing, and why
this was so. A lot came down to C++ being a hard language to parse,
and people not being used to going and getting a library from
elsewhere (the number of people who had independently written their
own unit testing tools was amazing!)</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e256" id="d0e256"></a>Manipulating
Streams - Dietmar K&uuml;hl</h2>
</div>
<p>Dietmar is one of the experts on the C++ IOStreams library,
especially the fiendish formatting framework. This was a very
useful run through on what you can do and where you should do it.
It covered writing your own facets for numerical formatting, and
custom stream buffers.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e261" id="d0e261"></a>Boost
Iterator Library - Thomas Witt</h2>
</div>
<p><a href="http://www.boost.org/libs/iterator/doc/index.html"
target=
"_top">http://www.boost.org/libs/iterator/doc/index.html</a></p>
<p>Another solution to some STL problems, this is how boost has
written an iterator framework. Similar to Dietmar, they presented a
set of new iterator concepts:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p><span class="emphasis"><em>Traversal</em></span>, one of:
Incrementable, Single Pass, Forward, Bidirectional, Random, where
each builds on the preceding</p>
</li>
<li>
<p><span class="emphasis"><em>Access</em></span>, one or more of
the orthogonal: Readable, Writeable, Swappable, L-Value
(Referenceable),</p>
</li>
<li>
<p><span class="emphasis"><em>Interoperability</em></span>, e.g.
convert and compare <tt class="classname">iterator</tt> to
<tt class="classname">const_iterator</tt></p>
</li>
</ul>
</div>
<p>Thomas then presented two class generators: Iterator Facade that
implements an iterator in terms of a small core interface, and an
Iterator Adapter that takes another iterator and makes a new
iterator that uses the other as part of its implementation. There
were lots of useful examples.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e292" id="d0e292"></a>C++ Class
Design, a Check-List Approach - Alan Bellingham</h2>
</div>
<p>To avoid forgetting things in the rush to write code, Alan
presented a classification of types, and sets of rules for each
type to avoid problems. The types are:</p>
<div class="itemizedlist">
<ul type="disc">
<li>
<p><span class="emphasis"><em>Object Types</em></span> - they have
identity; their address 'defines' them; not much copying, which
implies they don't go directly into containers; often
polymorphic.</p>
</li>
<li>
<p><span class="emphasis"><em>Value Types</em></span> - no
identity, just value; address is irrelevant - all copies are
equivalent; gets copied a lot; not polymorphic.</p>
</li>
<li>
<p><span class="emphasis"><em>Functor Type</em></span> - no data,
just functionality; operator() or single method; very simple</p>
</li>
<li>
<p><span class="emphasis"><em>Pure Type</em></span> - no data, no
functionality; role is to be different from other types; e.g. tags,
<tt class="literal">std::no_throw_t</tt>; sometimes a hierarchy;
exceptions sometimes are pure, as all that is important is the
type.</p>
</li>
</ul>
</div>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e321" id="d0e321"></a>More C++
Threading - Kevlin Henney</h2>
</div>
<p><a href=
"http://www.two-sdg.demon.co.uk/curbralan/papers/accu/MoreC++Threading.pdf"
target=
"_top">http://www.two-sdg.demon.co.uk/curbralan/papers/accu/MoreC++Threading.pdf</a></p>
<p>Kevlin is another excellent speaker, and here he raced through
the two main models for writing multithreaded code - a C-style
procedural API, and a classic OO inheritance model. He then ripped
them apart to show how one was error prone, and the other was the
wrong abstraction, and then introduced his own novel abstraction
using generic techniques to separate concerns and reduce coupling,
which ended up very, very neat.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e329" id="d0e329"></a>Honey I
Shrunk The Threads - Andrei Alexandrescu</h2>
</div>
<p>Andrei was in a forgiving mood this conference - his talks were
comparatively light on meta programming, so didn't make your ears
bleed as much as usual. Here, he looked at using generic techniques
to help with the difficulties of avoiding races and deadlocks. An
overview of locking strategies brought forth several problems, and
he presented some techniques for getting the compiler to help you
out.</p>
<p><span class="emphasis"><em>Paul Grenyer adds</em></span>: As
expected both Kevlin Henney and Andrei Alexandrescu gave two high
quality and well attended sessions, on threading, exceptions and
patterns.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e338" id="d0e338"></a>Speakers
Dinner</h2>
</div>
<p>On Friday evening we had a semi-formal dinner which gave
everyone a chance to talk to the various speakers for a while. Much
technical and not so technical discussion ensued, which I found
great fun and very informative. They continued in the bar, late
into the night.</p>
<p><span class="emphasis"><em>Paul Grenyer adds</em></span>: The
banquet gave further amusement, first with there being too many
attendees and not enough tables and then with the fire alarm going
off at about 1.30am. Those who had already gone to bed were forced
to resurrect themselves to come and stand in the rain. I think this
was a cunning plan by the hotel to raise revenue as most people
opted for the bar rather than returning to bed.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e347" id="d0e347"></a>Writing
Exception Safe Code - Andrei Alexandrescu</h2>
</div>
<p>Andrei zooms into the difficulties in writing exception safe
code, working on the problems with manual commit/roll-back schemes,
an improvement using manual RAII handles, and finally diving into
implementing his ScopeGuard helper.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e352" id="d0e352"></a>Interviewing
Skills Panel</h2>
</div>
<p>A very interesting talk about how to approach hiring people,
mainly focussing on taking an interview and how to find out if the
candidate is suitable. Some good advice on preparation, and some
reinforcement of some of the things I try and do.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e357" id="d0e357"></a>All Heap, No
Leaks - Paul Grenyer</h2>
</div>
<p>A quick talk (well, it was the last session and we all wanted to
go home!) on how Paul wrote a simple smart pointer, and enforced
it's use to avoid mistakes.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e362" id="d0e362"></a>A Personal
View: &quot;Revenge of the Camera Guy&quot;</h2>
</div>
<p><span class="emphasis"><em>by Paul Grenyer</em></span>
<tt class="email">&lt;<a href=
"mailto:paul@paulgrenyer.co.uk">paul@paulgrenyer.co.uk</a>&gt;</tt></p>
<p>I have been attending ACCU conferences since 2001 and this year
has certainly been the best, both in terms of the breadth and
quality of subjects and speakers, and in terms of the inevitably
excessive socialising. Any fears (if there were any) that the
conference would falter under its new organisational committee have
been well and truly silenced. A superb job has been done by all.
The hotel was of the highest standard, my only criticisms were that
the WiFi network didn't work in my room and that shoes were a
necessity for breakfast.</p>
<p>My favourite session was Jon Jagger's look at the Design and
Evolution of C#. I found it very interesting to see how the
language was shaped from the successes and failures of C, C++ and
Java.</p>
<p>It's difficult to see how this year's conference could be
topped, but I am sure that it will and I am very much looking
forward to next year.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e377" id=
"d0e377"></a>Acknowledgements</h2>
</div>
<p>The conference wouldn't have been possible without the hard work
of a dedicated team of people. Attendees owe a debt of gratitude to
the conference committee, who organised an excellent programme, and
to the conference organisers who ensured the whole thing ran
smoothly.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e382" id="d0e382"></a>Next
Year?</h2>
</div>
<p>Plans are already under way for next year's conference, and even
now it's looking to be unmissable event. Stay tuned... For its low
cost the ACCU conference continues to represent staggering value.
If nothing else, it's a great chance to pretend to be deeply
interested in technical issues when you really just want to meet
ACCU regulars and insult them face-to-face.</p>
<div class="sidebar">
<p>Thanks to Chris Wakefield of CTA Direct for the logo at the top
of this article.</p>
</div>
</div>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
