Boost logo

Boost :

Subject: Re: [boost] [chrono] Documentation suggestions
From: Roland Bock (rbock_at_[hidden])
Date: 2010-06-24 03:38:43


vicente.botet wrote:
> ----- Original Message -----
> From: "Roland Bock" <rbock_at_[hidden]>
> To: <boost_at_[hidden]>
> Sent: Wednesday, June 23, 2010 3:27 PM
> Subject: [boost] [chrono] Documentation suggestions
>
>
>
>> Hi,
>>
>> I have a few remarks/suggestions for the documentation of Boost.Chrono:
>>
>> *General:
>> *http://svn.boost.org/svn/boost/sandbox/chrono/libs/chrono/doc/html/index.html
>>
>> There are several sections which attract my attention when trying to get
>> a grip on the library:
>>
>> * Getting Started
>> * Tutorial
>> * Examples
>>
>> Each of those looks a bit like a random collection of valuable hints to
>> me (sorry, if I missed the pattern). My personal troubles in
>> understanding the basics are documented in the mail referenced in the
>> tutorial section.
>>
>
> I have try to follow the structure of Boost.Proto. Getting started include just the associated Hello World example.
>
I looked at Proto: Sure, "Getting Started" contains just two "Hello
World" expamples, but it also uses them to show or give hints to all
sorts of usage aspects.

The Getting Started section in Chrono just shows one example which looks
like a more verbose version of boost::progress_timer. Nice, handy, but
not exactly exciting.

Don't get me wrong. This is a good example, of course. But chrono offers
so much more (like the thread clock for instance, or suspending clocks,
or reading out values, or conversions...). I think you should show more
aspects of what could be done with chrono. Make the reader eager to read on.

Citing from Proto's "Getting Started":
"Hopefully, this gives you an idea of what sorts of things Proto can do
for you. But this only scratches the surface. The rest of this users'
guide will describe all these features and others in more detail."

> The follows the tutorial that tries to explain to the user how to use the library. Last, the examples section should contain complete examples without too much explanation on how the things are done. I will see if there are some Examples that could be better in the Tutorial section.
>
>
>
>> I think it would be worth it to reorganize all three into one section
>> (e.g. tutorial) which shows how to utilize the different parts of the
>> library. For instance with the following subsections:
>>
>> * Clocks (including stopwatch and thread_clock)
>> * Formatters
>> * Reporters
>> * Conversions (see also Tutorial section below)
>> * ...?
>>
>
> I will see if this decomposition makes clearer the tutorial.
>
I am not sure if my suggestion is the best. But I am pretty sure that
starting the tutorial with "how to create your own clock" is not
optimal. It was a bit of a turn-off for me, at least.

I think dedicated sub sections (with separate files) are helpful,
because they allow the reader to easily skip the parts which they
consider irrelevant for their purposes. In my case, I would have skipped
formatters and reporters.

I'd start each subsection with the really simple things, one- to
three-liners. Then move on to the more complex ones.

>
>
>> *Users Guide:
>> *http://svn.boost.org/svn/boost/sandbox/chrono/libs/chrono/doc/html/boost_chrono/users_guide.html
>>
>> * Personally, I would move the references section to the appendices
>> (I clicked there several times when I really wanted to see the
>> Reference section)
>>
>
> I hope you don't loose to much time. I think that this is due to the fact I have decomposed the Reference section and the header files are not visible from the root table of contents. What about renaming it "External Resources"?
>
I was exaggerating, of course :-)
External References is cool, I think

>> *Tutorial:*
>> http://svn.boost.org/svn/boost/sandbox/chrono/libs/chrono/doc/html/boost_chrono/users_guide/tutorial.html
>>
>> * The section "How to define a thread clock" is now obsolete, isn't
>> it? thread_clock is now integral part of chrono.
>>
>
> Yes, now thread_clok is part of the library. Even in this case I find that this is good way to show how to define a clock.
>
Understood. In that case I would suggest a subsection for "Defining
custom clocks" for those whose usecases are not covered by the existing
clocks. I assume there are some basic concepts to be followed when
defining my own clock? They should be explained.

People not interested in creating their own clocks could then simply
skip this section.
> Thanks for your comments,
> Vicente
>
>
Sure thing :-)

Thanks for the library! I am looking forward to the day it gets accepted
into boost!

Regards,

Roland


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk