<br>Hi Michael,<br><br>Thanks for this detailed description.<br><br>As you pointed out, <br>it is important to provide more context on how to use methods for a class.<br><br>We find easier to do this in the Examples, than in the Doxygen documentation,<br>
but it clearly could be done in both.<br><br>You point out as well that a lot more of cross-referencing could be helpful.<br>The PDF version of the Software Guide, has hyperlinks to the Doxygen<br>documentation, but not the other way around.<br>
<br>It will be nice if the Doxygen documentation pointed out to sections of<br>the Software Guide (we will have to come up with a maintainable system<br>of links... preferably fully automatic...).<br><br>Clarifying what should be the order of method calls is very important.<br>
This is commonly overlooked and a becomes a common cause of<br>frustration. Developers tend to be aware of the "order dependencies"<br>and forget to make them explicit in the documentation.<br><br>All in all, we should find a channel for gathering the collective wisdom<br>
and experience of the ITK community, in such a way that users can<br>get quickly to functional examples of code, sets of parameters and<br>example images.<br><br><br><br> Luis<br><br><br><br>--------------------------------------------------------------------------------------------------<br>
<div class="gmail_quote">On Wed, Jul 1, 2009 at 7:59 AM, Michael Schildt <span dir="ltr"><<a href="mailto:michael.schildt@ifn-magdeburg.de">michael.schildt@ifn-magdeburg.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello all,<br>
<br>
This SoftwareGuide is a good starting point. Even if it is outdated somehow. And some kind of semiautomatic update would be great.<br>
But i would like to point out an issue with ITK documentation. A lot of information is available for ITK (Insight into images book, ItkSoftwareGuide, Doxygen documentation, Wiki, examples, Insight Journal, Mailing List). This is very impressive and should be enough. I use all of them and still struggle with trivial problems from time to time. Basically, by missing hidden but existing dependencies or wrong understanding of what a function does.<br>
It is from my point of view impossible to figure out dependencies of function calls with the Doxygen generated documentation. For example often an implicit order for functions calls of an object is assumed. When you take an example from ITK and copy/paste it in your application it normally runs. If you change some component then at least for me something goes wrong often. A good documentation example is <a href="http://www.itk.org/Doxygen314/html/classitk_1_1MatrixOffsetTransformBase.html#dbafaf9635750c1b0e204c52deb1de46" target="_blank">http://www.itk.org/Doxygen314/html/classitk_1_1MatrixOffsetTransformBase.html#dbafaf9635750c1b0e204c52deb1de46</a><br>
It tells you what you have to set next and names an alternative. It gives me important context information.<br>
But documentation like <a href="http://www.itk.org/Doxygen314/html/classitk_1_1MatrixOffsetTransformBase.html#bab57111fda06e69309c80fdf6fbee38" target="_blank">http://www.itk.org/Doxygen314/html/classitk_1_1MatrixOffsetTransformBase.html#bab57111fda06e69309c80fdf6fbee38</a><br>
is useless if i don't know what fixed parameters are. No link to releated functions or concepts. I can find this information somewhere else, but typically for a beginner it is not easy to find this information. I guess, it would be of great benefit to include some more information or links to the right place in doxygen generated documentation. I know it will be redundant, but typically you have a concrete problem and look for it at the expected position in the documentation.<br>
<br>
The examples of ITK are a good starting point too and are documented in the Guide and tells what is allowed and possible with ITK. Maybe it would be a good place to tell what is not allowed, what is not possible, where a certain order of function calls is required. That could probably reduce the amount of posts in the mailing list.<br>
<br>
Or is it the way i am working with ITK?<br>
1) I make myself clear off the problem i want to solve.<br>
2) I look for an example in the itkSoftwareGuide<br>
3) If not found there i look in the example folder or the application folder<br>
4) look for the things i need to change in the examples to solve my problem<br>
5) look in the Doxygen generated documentation for the description of function which are not clear to me or look for alternatives needed for my problem (often not satisfying)<br>
6) If neccessary look up in the Insight into Images book for description of concepts<br>
7) put things together, compile, execute and sometimes run into unexpected issues<br>
8) debug, use google to search mailing list and try to fix<br>
9) realize there must be something else, not mentioned in the docu<br>
10) use mailing list and hope for willing itk-users to help me out, which most of the time is happening :)<br>
Is there another (maybe more efficient) way to use ITK?<br>
<br>
Best reguards,<br>
Michael Schildt<br>
<br>
Darren Weber schrieb:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">
<br>
It seems that a lot of the software guide is coded in the examples, using comments in the example .cxx src. Perhaps contributors for new classes can develop simple examples with similar comments for inclusion in a regular build for the software guide, to provide some degree of updating for the guide. It's fairly simple latex text in the comments. I know most everyone has learned M$ Word these days, but I would imagine latex is still prevalent among the math and comp-sci community. The advantage to this is that the examples can be compiled and distributed with the src code, while the wiki is not.<br>
<br>
Take care,<br>
Darren<br>
<br>
<br>
<br></div><div><div></div><div class="h5">
On Tue, Jun 30, 2009 at 10:04 PM, asamwm <<a href="mailto:asamwm@gmail.com" target="_blank">asamwm@gmail.com</a> <mailto:<a href="mailto:asamwm@gmail.com" target="_blank">asamwm@gmail.com</a>>> wrote:<br>
<br>
Hi Luis,<br>
since this is all in the spirit of open source community,<br>
part of whose growth is credited to people from the<br>
community, why not create agree on an architecture<br>
for community-based documentation where everyone<br>
who participates in developing/evaluating/using a filter<br>
can contribute to the wiki. The journal is a stepping<br>
stone but the more detailed, elaborated documentation<br>
would be the wiki.<br>
There would be fixed sections such as:<br>
general purpose (what problem it attacks, image examples)<br>
advantages / why this one ,<br>
known disadvantages (why not),<br>
how it works (optimization),<br>
same category as in (list of other filters)<br>
see also (broader area)<br>
code snippets<br>
pitfalls<br>
<br>
<br>
I know one concern is to be careful not to misinform,<br>
but this is the beauty of open source. The community<br>
will correct falsehoods with time. Besides, this does<br>
not need to replace the itksoftwareguide since<br>
that one is specific to the basics.<br>
<br>
Just my 2c.<br>
I do not know how everyone feels about this.<br>
Please share.<br>
Regards.<br>
<br>
<br>
On Tue, Jun 30, 2009 at 3:06 PM, Luis Ibanez<br></div></div><div><div></div><div class="h5">
<<a href="mailto:luis.ibanez@kitware.com" target="_blank">luis.ibanez@kitware.com</a> <mailto:<a href="mailto:luis.ibanez@kitware.com" target="_blank">luis.ibanez@kitware.com</a>>> wrote:<br>
<br>
<br>
<br>
Hi Oliver,<br>
<br>
<br>
<br>
1) Yes, the ITK Software Guide is overdue for an update.<br>
<br>
<br>
2) You can see a manifesto of new filters on the Wiki<br>
page of every release.<br>
<br>
For example:<br>
<br>
<a href="http://www.itk.org/Wiki/ITK_Release_3.14" target="_blank">http://www.itk.org/Wiki/ITK_Release_3.14</a><br>
<a href="http://www.itk.org/Wiki/ITK_Release_3.12" target="_blank">http://www.itk.org/Wiki/ITK_Release_3.12</a><br>
<a href="http://www.itk.org/Wiki/ITK_Release_3.10" target="_blank">http://www.itk.org/Wiki/ITK_Release_3.10</a><br>
....<br>
<br>
<br>
3) Yes, the ITK Software Guide will be updated,<br>
probably in the next year or two.<br>
<br>
<br>
4) Since 2006, All new classes in ITK must have been<br>
described in Insight Journal papers.<br>
<br>
If you need information about a New class,<br>
there must be a paper in the Insight Journal<br>
describing this class.<br>
<br>
<br>
For example, the Chan and Vese level set filters<br>
are described in<br>
<br>
<a href="http://www.midasjournal.org/browse/publication/322" target="_blank">http://www.midasjournal.org/browse/publication/322</a><br>
<br>
<br>
<br>
<br>
Regards,<br>
<br>
<br>
Luis<br>
<br>
<br>
----------------<br>
Oliver Gloger wrote:<br>
<br>
Hello together,<br>
<br>
Is it true that the SoftwareGuide did not change since<br>
2005? On the other hand I can see from the mailing-list<br>
that there exist new filters now (i.e.<br>
itkScalarChanAndVeseSparseLevelSetImageFilter or other<br>
filters, which are not mentioned in the ITKSoftwareGuide).<br>
Will the ITKSoftwareGuide be updated? Where can I be<br>
informed about how to use new adjoined classes and filters<br>
in the ITK?<br>
<br>
best regards<br>
Oliver!<br>
<br>
<br>
<br>
_____________________________________<br></div></div>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a> <<a href="http://www.kitware.com" target="_blank">http://www.kitware.com</a>><div class="im"><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
<br>
<br>
<br>
_____________________________________<br></div>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a> <<a href="http://www.kitware.com" target="_blank">http://www.kitware.com</a>><div class="im"><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
<br>
<br>
------------------------------------------------------------------------<br>
<br>
_____________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at: <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
<br>
</div></blockquote><div><div></div><div class="h5">
_____________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at: <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
</div></div></blockquote></div><br>