<?xml version="1.0" encoding="iso-8859-1" ?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wiki="http://purl.org/rss/1.0/modules/wiki/" ><channel rdf:about="http://twiki.org/cgi-bin/view/Blog">
  <title>TWiki Blog - full RSS feed</title>
  <link>http://twiki.org/cgi-bin/view/Blog</link>
  <description>TWiki is a Web-Based Collaboration Platform for the Enterprise.</description>
  <image rdf:resource="http://twiki.org/p/pub/TWiki/TWikiLogos/T-logo-140x40-t.gif" />
  <dc:language>en-us</dc:language>
  <dc:rights>Copyright 2008 by contributing authors</dc:rights>
  <dc:publisher>Peter Thoeny [peter.thoeny.public@twiki.net]</dc:publisher>
  <dc:creator>The contributing authors of TWiki</dc:creator>
  <dc:source>TWiki</dc:source>
  <items>
    <rdf:Seq>
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x9" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x8" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x6" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x5" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x4" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x3" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x2" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x1" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200809x2" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x7" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x6" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x5" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x3" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x2" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x1" />
      <rdf:li rdf:resource="http://twiki.org/cgi-bin/view/Blog/BlogEntry200807x4" />
    </rdf:Seq>
  </items>
</channel>
<image rdf:about="http://twiki.org/p/pub/TWiki/TWikiLogos/T-logo-140x40-t.gif">
  <title>Powered by TWiki.Blog</title>
  <link>http://twiki.org/cgi-bin/view/Blog</link>
  <url>http://twiki.org/p/pub/TWiki/TWikiLogos/T-logo-140x40-t.gif</url>
</image>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x9">
  <title>Relaunch TWiki.org Project</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x9</link>
  <description> 
 <![CDATA[ There are some tremendous opportunities for our project. In order to take full advantage of these, today Peter Thoeny and the management team at TWIKI.NET decided to re-launch the TWiki.org project with a new governance model. We want to reach out to all community members to explain:
<p /> <ul>
<li> why we decided to do this
</li> <li> some thoughts on our new top level direction
</li> <li> our invitation to re-confirm your membership in the community 
</li></ul> 
<p />
We invite you to participate in this exciting new direction. Please read the details at http://twiki.org/cgi-bin/view/Codev/RelaunchTWikiOrgProject 
 ]]!&gt; 
(last changed by PeterThoeny) </description>
  <dc:date>2008-10-27T19:55:29Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.PeterThoeny">
      <rdf:value>PeterThoeny</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x8">
  <title>Project Network Diagrams From Tables</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x8</link>
  <description> 
 <![CDATA[ <div class="twikiToc"> <ul>
<li>  Introduction
</li> <li>  How it Works <ul>
<li>  Step 1: Maintain Tables
</li> <li>  Step 2: Extract Tabular Data to Create "DOT" Code
</li> <li>  Step 3: Generate the DOT Code
</li> <li>  Step 4: Generate the Diagram
</li></ul> 
</li> <li>  Some Implementation Details
</li> <li>  Next Steps
</li> <li>  Related Resources <ul>
<li>  Background for TWIKI usage
</li> <li>  Development result =&gt; NEST Project Platform
</li></ul> 
</li> <li>  Vision and main issues for TWIKI usage <ul>
<li>  Independent project platform?
</li> <li>  Benefits of TWIKI
</li> <li>  Team behind development
</li> <li>  Software Developement Tools which are included in NEST 1.1 Platform
</li></ul> 
</li> <li>  Implementation Details <ul>
<li>  Displaying Data
</li> <li>  Extracting Data
</li></ul> 
</li> <li>  Conclusion
</li> <li>  Steps to Create a Moldy Oldies Tracker <ul>
<li>  Global Variables
</li> <li>  WebViewTemplate <ul>
<li>  Notes on the Template
</li></ul> 
</li> <li>  Comment Template <ul>
<li>  topiccomment
</li></ul> 
</li></ul> 
</li> <li>  Enable the Moldy Oldies Tracker
</li> <li>  Update the Datestamp on Useful Pages
</li></ul> 
</div>
<p />
<h2> Introduction </h2>
CPM/PERT diagrams (which Microsoft Project refers to by the ambiguous name of "network diagrams") are useful for planning what needs to be done in what order. Often thought of as a "one-off" project planning aid, more generally these precedence diagrams can be used for visualizing recurring procedures like the operations in a manufacturing assembly line, or even a guided procedure for business processes (like on-boarding an employee, which can include orientation, provisioning of equipment, granting security access, and of course forms to be filled out).
<p />
This application is based on Stefan Althoefer's Holiday Calendar Blog, which first showed how to generate diagrams from TWiki tables. In that respect, this blog is a sequel.
Where Stefan's application requires the EasyTimelinePlugin, this one requires the DirectedGraphPlugin. In both cases, the script that generates the graph can be tedious to work with, and so tables enhance the usability. 
<p />
I prefer this application's diagrams to MS Project's because they are easier to configure, maintain, and read. It is also <em>much</em> easier collaborate on these diagrams with TWiki than to use MS Project's collaboration environment.
<p />
Here's an example of a finished precedence diagram, based on a familiar process. (Of course everyone puts their pants on one leg at a time, but here's proof! With shading applied to completed nodes, you can see that our subject has been caught with his left leg unpanted).
<p />
<div align="center">
   <strong>Figure 1: Sample Precedence Diagram - "How To Get Dressed"</strong> <br /> 
   
</div>
<p />
 the diagram in this topic is not dynamically updated because DirectedGraphPlugin and FilterPlugin are not installed at twiki.org.
<p />
<h2> How it Works </h2>
<h3> Step 1: Maintain Tables </h3>
Two data tables are used in this application: <ol>
<li> The (mandatory) set of nodes (tasks or milestones) with the following fields/columns: <ul>
<li> Node (row number): is the used by the predecessor field. To maintain the referential integrity nodes should not be renumbered, e.g., by deleting rows or sorting table. <code>%EDITTABLE{changerows="add"}%</code> was used to prevent rows from being deleted.
</li> <li> Label: text that appears in diagram. Use <code>\n</code> to force a line break (e.g. to change the appearance of a node symbol.
</li> <li> Predecessors: a text field of comma-separated values. It would have been <em>nice</em> to use a multiple select here instead, but neither EditTablePlugin nor EditRowPlugin support multiple selects at this time. Large projects could use a separate topic for each node, and a predecessor field in a TWikiForm (since those <em>do</em> support multiple selects). But to avoid "topic proliferation" I would rather have the content in one place if possible.
</li> <li> Milestone flag: an indicator to overload node the default node shape
</li> <li> Completed flag: an indicator to overload node the default node shading
</li> <li> Cluster name: a named group items (see below)
</li> <li> Notes: long text that describes the task or milestone.
</li></ul> 
</li> <li> The (optional) set of "clusters" or groups of nodes. These might be used to show sub-projects, or a set of tasks assigned to particular resource.
</li></ol> 
<p />
 
<p />

<div class="editTable">
<form name="edittable1" action="http://twiki.org/cgi-bin/viewauth/Blog/RssTest#edittable1" method="post">
<input type="hidden" name="ettablenr" value="1" />
<input type="hidden" name="etedit" value="on" />
<table cellspacing="0" id="table1" cellpadding="0" class="twikiTable" rules="cols" border="1"><caption> <strong>Table 1: Nodes (Tasks &amp; Milestones)</strong> </caption>
	<thead>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol0 twikiFirstCol"> <font color="#252b37">Node</font> </th>
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol1"> <font color="#252b37">Label</font> </th>
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol2"> <font color="#252b37">Predecessors</font> </th>
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol3"> <font color="#252b37">Flags</font> </th>
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol4"> <font color="#252b37">Cluster name</font> </th>
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol5 twikiLastCol"> <font color="#252b37">Notes</font> </th>
		</tr>
	</thead>
	<tbody>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> 1 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> START\n(naked) </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2"> &nbsp; </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol3"> Milestone , Completed </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol4"> &nbsp; </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol5 twikiLastCol"> &nbsp; </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> 2 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> Ready for work </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2"> 7,10 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol3"> Milestone </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol4"> &nbsp; </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol5 twikiLastCol"> &nbsp; </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> 3 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> Ready for winter </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2"> 2,12,14 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol3"> Milestone </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol4"> Winter </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol5 twikiLastCol"> &nbsp; </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> 4 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> Ready for a fire alarm </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2"> 9 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol3"> Milestone , Completed </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol4"> &nbsp; </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol5 twikiLastCol"> &nbsp; </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> 5 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> Pants (left leg) </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2"> 9 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol3"> &nbsp; </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol4"> OneLegAtATime </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol5 twikiLastCol"> &nbsp; </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> 6 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> Pants (right leg) </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2"> 9 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol3"> Completed </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol4"> OneLegAtATime </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol5 twikiLastCol"> &nbsp; </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> 7 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> Shirt </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2"> 1 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol3"> Completed </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol4"> &nbsp; </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol5 twikiLastCol"> &nbsp; </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> 8 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> Jacket </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2"> 11 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol3"> &nbsp; </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol4"> Winter </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol5 twikiLastCol"> &nbsp; </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> 9 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> Underwear </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2"> 1 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol3"> Completed </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol4"> &nbsp; </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol5 twikiLastCol"> &nbsp; </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> 10 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> Shoes </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2"> 5,6,13 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol3"> &nbsp; </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol4"> &nbsp; </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol5 twikiLastCol"> &nbsp; </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> 11 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> Sweater </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2"> 7 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol3"> &nbsp; </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol4"> Winter </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol5 twikiLastCol"> &nbsp; </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> 12 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> Hat </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2"> 11 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol3"> &nbsp; </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol4"> Winter </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol5 twikiLastCol"> &nbsp; </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> 13 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> Socks </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2"> 1 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol3"> Completed </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol4"> &nbsp; </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol5 twikiLastCol"> &nbsp; </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol twikiLast"> 14 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1 twikiLast"> Gloves </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2 twikiLast"> 8,10 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol3 twikiLast"> &nbsp; </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol4 twikiLast"> Winter </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol5 twikiLastCol twikiLast"> &nbsp; </td>
		</tr>
	</tbody></table>
<input type="hidden" name="etrows" value="15" />
<input class="editTableEditImageButton" type="image" src="http://twiki.org/p/pub/TWiki04x02/EditTablePlugin/edittable.gif" alt="Edit this table" /> </form>
</div><!-- /editTable -->
<p />
<p />

<div class="editTable">
<form name="edittable2" action="http://twiki.org/cgi-bin/viewauth/Blog/RssTest#edittable2" method="post">
<input type="hidden" name="ettablenr" value="2" />
<input type="hidden" name="etedit" value="on" />
    <table cellspacing="0" id="table2" cellpadding="0" class="twikiTable" rules="cols" border="1"> <caption> <strong>Table 2: Clusters</strong> </caption> 
	<thead>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol0 twikiFirstCol"> <font color="#252b37">Name<br>(no spaces)</font> </th>
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol1"> <font color="#252b37">Label<br>(optional)</font> </th>
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol2 twikiLastCol"> <font color="#252b37">Background Color<br>(optional)</font> </th>
		</tr>
	</thead> 
	<tbody>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> OneLegAtATime </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> Everyone Does It... </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2 twikiLastCol"> #f1fff1 </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol twikiLast"> Winter </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1 twikiLast"> Brrrrr </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2 twikiLastCol twikiLast"> #ccccff </td>
		</tr>
	</tbody> </table>
<input type="hidden" name="etrows" value="3" />
<input class="editTableEditImageButton" type="image" src="http://twiki.org/p/pub/TWiki04x02/EditTablePlugin/edittable.gif" alt="Edit this table" /> </form>
</div><!-- /editTable -->
<p />
<!-- Set cluster list -->
<p />
<p />
This application has "database-like" behaviour, in that the clusters defined in one table are used when maintaining the other, as shown below: 
<p />
<div align="center">
   <strong>Figure 2: Table of Nodes in Edit Mode</strong> <br /> 
   
</div>
<p />
<h3> Step 2: Extract Tabular Data to Create "DOT" Code </h3>
As with the earlier blog, FilterPlugin was used for some of the trickier extractions.
<p />
<div class="twistyPlugin twikiMakeVisibleInline">
 <span id="twistyIdBlogRssTest1show" class="twistyTrigger twikiUnvisited twistyHidden twistyInited"><span class="twikiLinkLabel twikiUnvisited">Show the table extractions&nbsp;</span> </span> <span id="twistyIdBlogRssTest1hide" class="twistyTrigger twikiUnvisited twistyHidden twistyInited"><span class="twikiLinkLabel twikiUnvisited">Hide&nbsp;</span> </span>  </div><!--/twistyPlugin twikiMakeVisibleInline--> <div style="display:inline;" class="twistyPlugin"><div id="twistyIdBlogRssTest1toggle" class="twistyContent twikiMakeHidden twistyInited">
<pre>&#60;dot&#62;
digraph Title {
   graph &#91;rankdir&#61;LR, ranksep&#61;0.0, bgcolor&#61;&#34;#eeeeff&#34;];
   node &#91;shape&#61;box style&#61;filled fillcolor&#61;white fontsize&#61;10]; /&#42; Default node style &#42;/

/&#42; Labels for all nodes (tasks+milestones) &#42;/
&#37;SEARCH{
   &#34;^\&#124; &#91;0-9]&#42; &#34;
   topic&#61;&#34;BlogEntry200810x8&#34;
   multiple&#61;&#34;on&#34;
   nonoise&#61;&#34;on&#34;
   type&#61;&#34;regex&#34;
   format&#61;&#34;   &#91;label&#61;\&#34;. \&#34;]&#34;
}&#37;

/&#42; Milestones (overload shape) &#42;/
&#37;SEARCH{
   &#34;^\&#124; .&#42;\&#124;.&#42;\&#124;.&#42;\&#124;.&#42;Milestone.&#42;&#34;
   topic&#61;&#34;BlogEntry200810x8&#34;
   multiple&#61;&#34;on&#34;
   nonoise&#61;&#34;on&#34;
   type&#61;&#34;regex&#34;
   format&#61;&#34;   &#91;shape&#61;diamond]&#34;
}&#37;

/&#42; Completed nodes (overload fillcolor) &#42;/
&#37;SEARCH{
   &#34;^\&#124; .&#42;\&#124;.&#42;\&#124;.&#42;\&#124;.&#42;Completed.&#42;&#34;
   topic&#61;&#34;BlogEntry200810x8&#34;
   multiple&#61;&#34;on&#34;
   nonoise&#61;&#34;on&#34;
   type&#61;&#34;regex&#34;
   format&#61;&#34;   &#91;fillcolor&#61;grey]&#34;
}&#37;

/&#42; Clusters &#42;/
&#37;EXTRACT{topic&#61;&#34;BlogEntry200810x8&#34; expand&#61;&#34;off&#34; skip&#61;&#34;1&#34;
   pattern&#61;&#34;^ \&#124; (&#91;^\&#124;]&#42;) \&#124; (&#91;^\&#124;]&#42;) \&#124; (&#91;^\&#124;]&#42;) \&#124;&#34;
   format&#61;&#34;subgraph cluster$1 {label&#61;\&#34;$2\&#34; bgcolor&#61;\&#34;$3\&#34; &#37;SEARCH{\&#34;\&#124; $1 \&#124;\&#34; topic&#61;\&#34;BlogEntry200810x8\&#34; multiple&#61;\&#34;on\&#34; nonoise&#61;\&#34;on\&#34; type&#61;\&#34;regex\&#34; format&#61;\&#34;\&#34;}&#37;}&#34;
}&#37;

/&#42; Precedence &#42;/
&#37;EXTRACT{topic&#61;&#34;BlogEntry200810x8&#34; expand&#61;&#34;off&#34;
   pattern&#61;&#34;^\&#124; (&#91;0-9]&#42;) \&#124; (&#91;^\&#124;]&#42;) \&#124; (&#91;^\&#124;]&#42;) \&#124; (&#91;^\&#124;]&#42;) ?\&#124; (&#91;^\&#124;]&#42;) ?\&#124; (&#91;^\&#124;]&#42;) ?\&#124;&#34;
   format&#61;&#34;  &#37;CALC{$SUBSTITUTE($TRANSLATE($3,$comma,;),;, -&#62; $1; )}&#37; -&#62; $1 
&#34;
}&#37;
}
&#60;/dot&#62;</pre>
</div></div><!--/twistyPlugin-->
<p />
<h3> Step 3: Generate the DOT Code </h3>
The DirectedGraphPlugin stores a file with the <code>.dot</code> extension in <code>/twiki/working/temp/</code>.
<p />
<div class="twistyPlugin twikiMakeVisibleInline">
 <span id="twistyIdBlogRssTest2show" class="twistyTrigger twikiUnvisited twistyHidden twistyInited"><span class="twikiLinkLabel twikiUnvisited">Show the DOT code&nbsp;</span> </span> <span id="twistyIdBlogRssTest2hide" class="twistyTrigger twikiUnvisited twistyHidden twistyInited"><span class="twikiLinkLabel twikiUnvisited">Hide&nbsp;</span> </span>  </div><!--/twistyPlugin twikiMakeVisibleInline--> <div style="display:inline;" class="twistyPlugin"><div id="twistyIdBlogRssTest2toggle" class="twistyContent twikiMakeHidden twistyInited"><pre>
digraph Title {
   graph &#91;rankdir&#61;LR, ranksep&#61;0.0, bgcolor&#61;&#34;#eeeeff&#34;];
   node &#91;shape&#61;box style&#61;filled fillcolor&#61;white fontsize&#61;10]; /&#42; Default node style &#42;/

/&#42; Labels for all nodes (tasks+milestones) &#42;/
  1 &#91;label&#61;&#34;1. START\n(naked)&#34;]
  2 &#91;label&#61;&#34;2. Ready for work&#34;]
  3 &#91;label&#61;&#34;3. Ready for winter&#34;]
  4 &#91;label&#61;&#34;4. Ready for a fire alarm&#34;]
  5 &#91;label&#61;&#34;5. Pants (left leg)&#34;]
  6 &#91;label&#61;&#34;6. Pants (right leg)&#34;]
  7 &#91;label&#61;&#34;7. Shirt&#34;]
  8 &#91;label&#61;&#34;8. Jacket&#34;]
  9 &#91;label&#61;&#34;9. Underwear&#34;]
  10 &#91;label&#61;&#34;10. Shoes&#34;]
  11 &#91;label&#61;&#34;11. Sweater&#34;]
  12 &#91;label&#61;&#34;12. Hat&#34;]
  13 &#91;label&#61;&#34;13. Socks&#34;]
  14 &#91;label&#61;&#34;14. Gloves&#34;]

/&#42; Milestones (overload shape) &#42;/
  1 &#91;shape&#61;diamond]
  2 &#91;shape&#61;diamond]
  3 &#91;shape&#61;diamond]
  4 &#91;shape&#61;diamond]

/&#42; Completed nodes (overload fillcolor) &#42;/
  1 &#91;fillcolor&#61;grey]
  4 &#91;fillcolor&#61;grey]
  6 &#91;fillcolor&#61;grey]
  7 &#91;fillcolor&#61;grey]
  9 &#91;fillcolor&#61;grey]
  13 &#91;fillcolor&#61;grey]

/&#42; Clusters &#42;/
subgraph clusterOneLegAtATime {label&#61;&#34;Everyone Does It...&#34; bgcolor&#61;&#34;#f1fff1&#34;
  5
  6
}
subgraph clusterWinter {label&#61;&#34;Brrrrr&#34; bgcolor&#61;&#34;#ccccff&#34;
  3
  8
  11
  12
  14
}

/&#42; Precedence &#42;/
  7-&#62; 2; 10 -&#62; 2 
  2-&#62; 3; 12-&#62; 3; 14 -&#62; 3 
  9 -&#62; 4 
  9 -&#62; 5 
  9 -&#62; 6 
  1 -&#62; 7 
  11 -&#62; 8 
  1 -&#62; 9 
  5-&#62; 10; 6-&#62; 10; 13 -&#62; 10 
  7 -&#62; 11 
  11 -&#62; 12 
  1 -&#62; 13 
  8-&#62; 14; 10 -&#62; 14 
}</pre>
</div></div><!--/twistyPlugin-->
<p />
The original code for the cluster/subgraph section was a bit ugly because I couldn't get a newline to appear in the output of <code>%EXTRACT%</code>. For legibility of this article, I manually cleaned up the white space a bit (I cheated  ).
<p />
<h3> Step 4: Generate the Diagram </h3>
The DirectedGraphPlugin calls Graphviz to generate the diagram from the <code>.dot</code> file.
<p />
<p />
<h2> Some Implementation Details </h2> <ul>
<li> A space was inserted before each line in the cluster table, to differentiate the tables during data extraction (a different regular expression works too).
</li> <li> SEARCH strings like <code>"\| ([0-9]*)</code> are used to find all lines in the topic that have table data <em>except</em> for the table header, which does not a number in the first cell.
</li> <li> The predecessor extract skips nodes without predecessors by virtue of those cells containing only one space.
</li> <li> The node numbers were prefixed to the node labels (e.g., "1. START") as an aid when maintaining the predecessor lists.
</li> <li> Precedence (this was the trickiest bit): after the FilterPlugin EXTRACTs the row number and predecessor list, the SpreadSheetPlugin is used to split the comma-separated predecessors into separate entries. But since its SUBSTITUTE can't handle commas, they first had to be TRANSLATEd into semi-colons. But in the end: <ul>
<li> <strong>this</strong>: <code>"| Node_x | Predecessor_1,Predecessor_2 |..."</code>
</li> <li> <strong>becomes</strong>: <code>"Predecessor_1 -&gt; Node_x; Predecessor_2 -&gt; Node_x"</code>
</li></ul> 
</li></ul> 
<p />
<h2> Next Steps </h2> <ul>
<li> Use the Graphviz imagemap feature to create links from nodes to the appropriate table row, for ease of maintenance. That would provide behaviour similar to clicking on a node in MS Project.
</li> <li> Fields for start dates, durations, resources... Gantt charts, and all the other stuff that MS Project has.
</li> <li> Edge labels: Graphviz has the ability to add labels to the lines (or 'edges'). Besides providing additional annotation, this could be used by those who prefer 'activity-on-the-line' diagrams to this 'activity-on-the-node' diagram.
</li></ul> 
<p />
<h2> Related Resources </h2> <ul>
<li> Stefan Althoefer's Holiday Calendar Blog
</li> <li> DirectedGraphPlugin: when installed, the plugin also has a useful subtopic, <span class="twikiNewLink">HowtoDirectedGraphs?</span> .
</li> <li> FilterPlugin
</li> <li> Graphviz: <ul>
<li> General documentation
</li> <li> Node, Edge and Graph Attributes.
</li> <li> CPM/PERT charts with Graphviz (WikiMedia)
</li></ul> 
</li></ul> 
<p />
 ]]!&gt; 
(last changed by SeanCMorgan) </description>
  <dc:date>2008-11-04T01:12:15Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.SeanCMorgan">
      <rdf:value>SeanCMorgan</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x6">
  <title>First TWiki book ever ... in German language!</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x6</link>
  <description> 
 <![CDATA[ There we go! I would like to announce that there will be the first book about TWiki in German language available from November this year! Being passionate about TWiki since more than one year I thought that TWiki certainly deserves some more attention as it is the greatest Wiki ever!
<p />
Since the twiki.org website and the documentation are of no real marketing benefit I wrote a book to introduce the power of TWiki to the market. The book starts with installing TWiki to write your first small plugin in Perl. It is targeted on newbies, everyday users and administrators, who have to introduce TWiki quickly.
<p />
With the book comes a CD, which contains a full Vmware version of TWiki 4.2.3 containing all the samples described in the book. The concept of the book enables you to develop your own TWiki step by step.
<p />
Those, who are interested or need a TWiki dictionary are welcome to have a look at:<br><br>
<center>
 </center>
<p />
The book was written driven far more by enthusiasm rather than by commercial interests, which become obvious, if you know the rate per hour  .
<p />
If somebody has questions or remark just send an email to Wolf
 ]]!&gt; 
(last changed by WolfMarbach) </description>
  <dc:date>2008-10-22T05:09:09Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.WolfMarbach">
      <rdf:value>WolfMarbach</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x5">
  <title>Issues Upgrading TWiki</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x5</link>
  <description> 
 <![CDATA[ Having just made some positive comments in my last couple of blog posts, I must also, sadly, make some negative ones.
<p />
The capability of the configure script to import plugins is I think a great advance - a great shame I can't use it. My ISP has a certain set structure to its direcotries and my TWiki installationis therefore undera "TWiki" sirectry alongside the "cgi-bin". The configure scriptseems to think the subdiredtories of TWiki are at the same level as cgi-bin, so it copies the installer scripts into the directory above TWiki &amp; then can't find them when it tries to run them!
<p />
Today I tried to upgrade to TWiki 4.2.3. It's been a disaster. I'm writing this as I roll back To my eariler version.
<p />
Errors in even the EditTablePlugin- I've no idea why, but my main "moan" is about using TinyMCE. I think it's a great idea for novice users &amp; it works well with new topics, sich as this posting, (although tonight even that went wrong &amp; it mangled my signature line by half converting it to I don't know what translation), but it's not good with old topics with complex structures - such as the ones I've created for my ISO 9000 &amp; accounting systems. As an old fogey, I'd just rather it wasn't the default.
<p />
It's just finished my copying &amp; I'm back to where I was 7 hours ago.
<p />
Upgrading is still a major issue with TWiki.
 ]]!&gt; 
(last changed by ChrisHogan) </description>
  <dc:date>2008-10-24T08:01:03Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.ChrisHogan">
      <rdf:value>ChrisHogan</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x4">
  <title>ISO 9000 Compliance System</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x4</link>
  <description> 
 <![CDATA[ On the same theme as my last post, we;ve also been able to implement an ISO 9000 compliance monitoring system. We're members of the Professional contractors Group who ahev a scheme which is approved and has many accredited users: http://www.PCGQS.ORG.UK
<p />
It has its own system, based on an SVN repository, but it didn't have the dynamic capability of a TWIki based system. We've subsituted the static word &amp; excel documents the PCG provided with interactive TWiki forms.
<p />
It's already had a major impact on our company, and is proof of how much you can do with a TWiki forms based system.
 ]]!&gt; 
(last changed by ChrisHogan) </description>
  <dc:date>2008-10-17T18:51:09Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.ChrisHogan">
      <rdf:value>ChrisHogan</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x3">
  <title>TWiki Based Accounting</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x3</link>
  <description> 
 <![CDATA[ A somewhat belated posting.
<p />
Last year I started to port a number of spreadsheets I had into TWiki. I based topics on someexamples I found on the main TWiki site, such as the account ledger which used a "mashup" of the Spreadsheetplugin &amp; the Commentplugin.
<p />
The result is a number of different tools: a petty cash balance, a mileage caulcator for expenses; a credit card reconciiation; bank statment reconciliation.
<p />
Obviously, I've used attachmentsto hold scans of invoices to us.
<p />
 It now has an invoicing capability, reproducing the exact layout of our former accunting system. I'm still working on the VAT reporting side of things.
<p />
This isn't really boasting about what we've done, it's an example of what we've been able to do with TWiki. Yes, we've had to employ a few plugins (and an addon to import the bank &amp; credit card details), but I feel that we've gained a lot by being able to port our PC based accounting system to a web platform by using TWiki.
 ]]!&gt; 
(last changed by ChrisHogan) </description>
  <dc:date>2008-10-17T18:41:48Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.ChrisHogan">
      <rdf:value>ChrisHogan</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x2">
  <title>New release of ToolTipPlugin addresses security issue</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x2</link>
  <description> 
 <![CDATA[ I've fixed a security issue in the TWiki:Plugins.ToolTipPlugin. Any sites using this Plugin should upgrade to the newest version. If your site uses any topic or web view access restrictions, it's especially important to update. The exposure has existed going back at least a couple of years. TWikibug:Item6040 addresses the issue. The fixed plugin is version 17565 (02 Oct 2008) or later.
 ]]!&gt; 
(last changed by GeorgeClark) </description>
  <dc:date>2008-10-04T00:31:26Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.GeorgeClark">
      <rdf:value>GeorgeClark</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x1">
  <title>TWIKI as foundation for the "NEST" Project Platform </title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200810x1</link>
  <description> 
 <![CDATA[ ---++ TWIKI as foundation for NEST 1.1 Project Platform
<p />
Hi TWIKI community!
<p />
I am Marko "NarsuMan" Rintamäki and I am working at Ixonos PLC (http://www.ixonos.com/en) as Senior Test Engineer/Consultant. I have been using TWIKI now 5 years with a good spirit! I would like to share my "internal feelings" about using TWIKI as foundation for Project Platform 
<p />
<h3> Background for TWIKI usage </h3>
<p />
Last couple years I've been working with "large" ~70-100 person multisite project where TWIKI has been used as knowledge base and document store. We have been also using my favourite tools like Testlink (http://testlink.sourceforge.net/docs/testLink.php) and good old Bugzilla (http://www.bugzilla.org/) for test and defect management in project. All those tools have been installed on one Linux server, which has been working as a central point for project. Because of "good vibrations" about those tools I have been building training environment for software testing course at Jyväskylä University of Applied Sciences(http://www.jamk.fi/english).
<p />
During customer project phases and training course use I found out that there is lot of good plugins available in TWIKI org! Those plugins could be used to integrate tools like Bugzilla better together with twiki. This was a main reason for start up to some research and development for new version of project platform. Idea of this platform is not containing anything so explosive, but it could be seen as one reference of installation possibilities. Main work has been done in those active open source communitys around the world. Thank for You!
<p />
Requirments for platform:
<p /> <ul>
<li> One server can take care of small project team
</li> <li> Team can administrate whole server if needed
</li> <li> Requirement management should be possible in project environment (trying to get rid off excels 
</li> <li> Platform is agile and ready for changes which are needed because of nature of different projects
</li> <li> Server should be running as low resources eg. 512MB mem 15GB hardisk
</li></ul> 
<p />
<h3> Development result =&gt; NEST Project Platform </h3>
<p />
Now After 1.5 years work I have been able to install/build virtual server image which contains several Open Source tools pre-installed with small work flow. I call server image as "NEST 1.1 Project Platform"
<p />
<br /> 
<p />
NEST is kind of a Micro Project Platform - MPP which can be used for small project teams and training purposes. Virtual Server image is based on Centos 5.2 and contains several well known tools like TWIKI  , Trac, Testlink and bugzilla and many more (look list below). Main issue is that TWIKI is a core tool for whole environment. All tools are selected from my personal or our teams point of view. Do not panic if there is not yours favourite tool on list :)! This is only one man's vision you can build your own world!
<p />

<p />
There is some low quality  videos in you tube about current implementation http://www.youtube.com/watch?v=U-JjitFbPDU http://www.youtube.com/watch?v=0jHF_cFxZ4Q http://www.youtube.com/watch?v=JgJMPc5iGlY
<p />
You can find also a blog about my project here http://narsus.wordpress.com and shore slide set about testing management using "NEST" http://narsus.files.wordpress.com/2008/04/nest-slides.pdf
<p />
Do Not Under Estimate power of Open Source ! 
<p />
BR,
<p />
<span class="twikiNewLink">NarsuMan?</span> 
<p />
<h2> Vision and main issues for TWIKI usage </h2>
<p />
<h3> Independent project platform? </h3>
<p />
My vision has been thatn we have to enable project team to work as agile as possible. There can be limits in huge organization for small teams and small server contexts allows to do changes locally. This need leads to idea of using pure Open Source tools for creating independent project environment. This platform can be used by team alone without external IT-infrastructures (eg. user managment/administration). This is "my vision" <em>I think there is lot of same kind of idea around</em> : ) of creating new kind of organization model where all project teams are using own "NEST's" as working places.
<p />

<p />
There is no corporate style centralized servers. This kind of model is able to deploy only by using virtual servers. Virtualisation allows copying template project image and create multiple project servers easily. Problem is that "NEST" server image should contain several tool domains. TWIKI is basic element of this vision! Look at picture below...
<p />

<p />
<h3> Benefits of TWIKI </h3>
<p />
I see TWIKI as a project engine and glue for all kind of environments. You can implement all kind of features for
<p /> <ul>
<li> Structured Wiki - TWIKI can be used easily as knowledge base, but it as also powerful mechanism of creating structure/forms and templates for wiki pages.
</li></ul> 
Those features can be used for enable process for eg. information capturing and classifying. Normally many projects are using Wiki as wild area, there is no any kind of process or classification. During long time usage information is spreading around wiki base. If there is no classification or any kind of ways to keep control over knowledge there will be problems!
<p /> <ul>
<li> Requirement Management missing part in Open Source?
</li></ul> 
<p />
One of main problems was find out solution for requirement capturing or management. I was searching for open source based requirement management tools, but I was not able to find a good one. This urgent need pushed me to think about using TWIKI as a requirement management tool. I did some research around TWIKI org's requirement model and available plugins. Result was creat quite simple model where "feature" and "requirements" are naturally wiki pages and they can be used as links in other documents. This is not a magic as you know when you are using normally TWIKI  but some how it's breaking old ideas of requirement management! I wanted also to add some kind of graphical view for tracing features and requirements, after some evaluation I found out to use <span class="twikiNewLink">DirectedGraphPlugin?</span>  and <span class="twikiNewLink">DirectedGraphWebMapPlugin?</span>  as engine for trace drawing...
<p />
Here is description current possible traces between project artefacts..
<p /> <ul>
<li> Because of nature of Wiki there is easy to create links between diffrent project artefacts... 
</li></ul> 
<p />

<p /> <ul>
<li> TWIKI Master of Integrations
</li></ul> 
<p />
TWIKI community has provided several wonderful plugins! I would like to thank you all who have been implementing those! I hope we can share asap our team's result for you. I noticed that there is already new plugins which are solving same problems which I had with integrations (for example: TracOnTWikiContrib) Look at picture below for example of integrations
<p />
 <ul>
<li> <em>TWIKI is able to fetch information form serveral sources like Testlink, Bugzilla, Subversion, Forums etc...</em>
</li></ul> 
<p />
There is lot of plugins but here are most important for my project
<p />
<table cellspacing="0" id="table3" cellpadding="0" class="twikiTable" rules="cols" border="1">
	<tbody>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> Plugin </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1 twikiLastCol"> Comment </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> DirectedGraphPlugin and DirectedGraphWebMapPlugin </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1 twikiLastCol"> This plugin enables trace between requirements </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol twikiLast"> BugzillaQueryPlugin </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1 twikiLastCol twikiLast"> All Defects are reported by using Bugzilla </td>
		</tr>
	</tbody></table>
<p />
We have to implement several new plugins... I hope I could release code for community soon!
<p />
<table cellspacing="0" id="table4" cellpadding="0" class="twikiTable" rules="cols" border="1">
	<tbody>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> BBvsTopicPlugin </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1 twikiLastCol"> You can user TWIKI words now in phpBB3 forum </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> TracQueryPlugin </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1 twikiLastCol"> You can user macro to show trac tickets as a table on wiki page </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> CSVExporterPlugin </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1 twikiLastCol"> Requirement metadata should be able to export/import </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" colspan="2" valign="top" class="twikiTableCol0 twikiFirstCol"> SVImporterPlugin </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol twikiLast"> TestlinkQueryPlugin </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1 twikiLastCol twikiLast"> Testlink cases can be shown on wiki page as table </td>
		</tr>
	</tbody></table>
<p />
<h3> Team behind development </h3>
<p />
I would like to thank you my work collegues for helping me with this project!
<p /> <ul>
<li> Jan Lapinkataja - Ixonos PLC
</li> <li> Heikki Paajanen - Ixonos PLC
</li> <li> Kai Perälä - Landis&amp;Gyr
</li> <li> Kimmo Varis - Ixonos Plc
</li> <li> Pasi Mäkinen Ixonos PLC
</li> <li> Harri Valkeinen - Aksulit Oy
</li> <li> JarmoRossi - Landis&amp;Gyr
</li></ul> 
<p />
<h3> Software Developement Tools which are included in NEST 1.1 Platform </h3>
<p />

<div class="editTable">
<form name="edittable3" action="http://twiki.org/cgi-bin/viewauth/Blog/RssTest#edittable3" method="post">
<input type="hidden" name="ettablenr" value="3" />
<input type="hidden" name="etedit" value="on" />
<table cellspacing="0" id="table5" cellpadding="0" class="twikiTable" rules="cols" border="1">
	<thead>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol0 twikiFirstCol"> <font color="#252b37">Tool</font> </th>
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol1"> <font color="#252b37">Home Page</font> </th>
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol2 twikiLastCol"> <font color="#252b37">Comment</font> </th>
		</tr>
	</thead>
	<tbody>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> Testlink </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> http://www.teamst.org/ </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2 twikiLastCol"> Test Management </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> Subversion </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> http://subversion.tigris.org/ </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2 twikiLastCol"> Version Control </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> TRAC </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> http://trac.edgewall.org/ </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2 twikiLastCol"> Work Flow </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> Agilo 42 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> http://www.agile42.com/ </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2 twikiLastCol"> Promising Scrum Modification </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> ViewVC </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> http://www.viewvc.org/ </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2 twikiLastCol"> Source code analyze tool </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> SVN Statistics </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> http://www.statsvn.org/ </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2 twikiLastCol"> Subversion statistics </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> Moodle </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> http://moodle.org </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2 twikiLastCol"> E-Training environment </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> TWIKI </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> http://twiki.org </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2 twikiLastCol"> Master of Universe </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> Bugzilla </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> http://bugzilla.org </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2 twikiLastCol"> Defect Management </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> Requzilla </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> &nbsp; </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2 twikiLastCol"> Modified Bugzilla for Requirement Management process </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> dotProject </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> http://www.dotproject.net/ </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2 twikiLastCol"> Project Management </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> WordPress </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> http://wordpress.com </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2 twikiLastCol"> Blog </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> AJAX Chat </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> https://blueimp.net/ajax/ </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2 twikiLastCol"> Chat </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> PHPBB3 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> http://www.phpbb.com/development/ </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2 twikiLastCol"> Forum </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> phpESP </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> http://sourceforge.net/projects/phpesp </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2 twikiLastCol"> Survey tool </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> GLPI </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> http://glpi-project.org/ </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2 twikiLastCol"> Service Desk </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> CACTI </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> http://www.cacti.net/ </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2 twikiLastCol"> Server load statistic </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> Webmin </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> http://www.webmin.com/ </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2 twikiLastCol"> Server administrator's right hand </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> phpLDAPadmin </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> http://phpldapadmin.sourceforge.net </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2 twikiLastCol"> User account management </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol twikiLast"> BuildBot </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1 twikiLast"> http://buildbot.net/repos/release/docs/buildbot.html#Introduction </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2 twikiLastCol twikiLast"> Build server </td>
		</tr>
	</tbody></table>
<input type="hidden" name="etrows" value="21" />
<input class="editTableEditImageButton" type="image" src="http://twiki.org/p/pub/TWiki04x02/EditTablePlugin/edittable.gif" alt="Edit this table" /> </form>
</div><!-- /editTable -->
 ]]!&gt; 
(last changed by MarkoRintamaki) </description>
  <dc:date>2008-10-03T12:18:31Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.MarkoRintamaki">
      <rdf:value>MarkoRintamaki</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200809x2">
  <title>Case study - Improving performance of TWIKI using Glassfish/LRWPinJava</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200809x2</link>
  <description> 
 <![CDATA[ A case study that shows Glassfish/LRWPinJava improving the performance of TWIKI has been published on the LRWPinJava website. <font face="Arial, sans-serif">Glassfish/LRWPinJava improves TWIKI performance more than 2x with 10x less load compared to Apache 1.3/cgi-bin on Solaris 10 and T2000, a Sun/SPARC CMT based system. 
<p />
Glassfish is a J2EE open source Application Server while LRWPinJava is an open source implementation of the LRWP protocol in Java. 
<p />
LRWPinJava is similar to fast cgi, speedy cgi and mod perl and uses a persistent connection to improve performance. LRWPinJava uses a cgi-wrapper to run Perl applications, like TWIKI unchanged. 
<p />
More details of the case study and LRWPinJava can be obtained from the following URL: https://lrwpinjava.dev.java.net </font>
 ]]!&gt; 
(last changed by RafaelAlvarez) </description>
  <dc:date>2008-09-29T23:18:39Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.RafaelAlvarez">
      <rdf:value>RafaelAlvarez</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x7">
  <title>TWiki Application Report - Holiday Planner</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x7</link>
  <description> 
 <![CDATA[ My group in our company had the same problem as all groups: How to coordinate annual holiday
for the group members?
<p />
Recently we used the wall-calendar in my office to remember each members holiday plan.
After plans had changed, it looked odd. And it worked only inside <em>my</em> office.
<p />
As we already use TWiki for project management and knowledge base, I looked for a Wiki based solution. 
I browsed through
the rich TWiki plugin area, but nothing fulfilled my wishes. Especially no plugin was
able to show an annual overview.
<p />
I created a solution by combining EasyTimelinePlugin and FilterPlugin.
<p />
A table is maintained, where group members can define their holiday plans. Keywords in the
last column define whether it is acknowledged holiday, a plan for holiday or some other
kind of absence of a person.
<p />
<p />

<div class="editTable">
<form name="edittable4" action="http://twiki.org/cgi-bin/viewauth/Blog/RssTest#edittable4" method="post">
<input type="hidden" name="ettablenr" value="4" />
<input type="hidden" name="etedit" value="on" />
<table cellspacing="0" id="table6" cellpadding="0" class="twikiTable" rules="cols" border="1">
	<thead>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol0 twikiFirstCol"> <font color="#252b37">Who</font> </th>
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol1"> <font color="#252b37">Begin</font> </th>
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol2"> <font color="#252b37">End</font> </th>
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol3 twikiLastCol"> <font color="#252b37">What</font> </th>
		</tr>
	</thead>
	<tbody>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> John </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> 21.07.2008 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2"> 08.08.2008 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol3 twikiLastCol"> HOLIDAY </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol"> Paul </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1"> 25.07.2008 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2"> 01.08.2008 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol3 twikiLastCol"> HOLIDAY? </td>
		</tr>
		<tr class="twikiTableEven twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol0 twikiFirstCol"> Susan </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1"> 21.08.2008 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol2"> 29.08.2008 </td>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol3 twikiLastCol"> ABSENT </td>
		</tr>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted1 twikiTableRowdataBg1">
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol0 twikiFirstCol twikiLast"> Susan </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol1 twikiLast"> 07.06.2008 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol2 twikiLast"> 14.06.2008 </td>
			<td bgcolor="#f2f3f6" valign="top" class="twikiTableCol3 twikiLastCol twikiLast"> HOLIDAY </td>
		</tr>
	</tbody></table>
<input type="hidden" name="etrows" value="5" />
<input class="editTableEditImageButton" type="image" src="http://twiki.org/p/pub/TWiki04x02/EditTablePlugin/edittable.gif" alt="Edit this table" /> </form>
</div><!-- /editTable -->
<p />
The table can easily be modified by all team members, even such that have no
Wiki skills.
<p />
Now EasyTimelinePlugin is used to render an overview. Data is extracted
from the table with FilterPlugin. Note that the image simulated as required 
Plugins are not installed in this TWiki.
<p />

<p />
You can now easily see, that Paul will have problems in getting his holiday acknowledged,
as John jumped ahead.
<p />
<p />
<h2> Implementation Details </h2>
<p />
<h3> Displaying Data </h3>
<p />
Below you find the EasyTimeline code to render the calendar. Syntax details are beyond the scope
of this application note. However, you should find it easy to do gently modifications (e.g. translate
labels, change size, change/add keywords or add team members).
<p />
<pre>
&#60;easytimeline&#62;
ImageSize &#61; width:700 height:200
PlotArea  &#61; width:570 height:125 left:130 bottom:75
AlignBars &#61; justify
DateFormat &#61; dd/mm/yyyy

Period     &#61; from:01/01/2008 till:10/04/2009
TimeAxis   &#61; orientation:horizontal
ScaleMajor &#61; unit:year    increment:1 start:01/01/2008
ScaleMinor &#61; unit:month   increment:1 start:01/01/2008

Colors &#61;
  id:HOLIDAY       value:green  legend:acknowledged&#95;Holiday
  id:HOLIDAY?     value:pink   legend:planned&#95;Holiday
  id:ABSENT        value:red    legend:Absent&#95;for&#95;other&#95;reason
  id:RULER            value:gray(0.9)

LineData &#61;
  layer:front
  at:01/02/2008 color:RULER width:0.1
  at:01/03/2008 color:RULER width:0.1
  at:01/04/2008 color:RULER width:0.1
  at:01/05/2008 color:RULER width:0.1
  at:01/06/2008 color:RULER width:0.1
  at:01/07/2008 color:RULER width:0.1
  at:01/08/2008 color:RULER width:0.1
  at:01/09/2008 color:RULER width:0.1
  at:01/10/2008 color:RULER width:0.1
  at:01/11/2008 color:RULER width:0.1
  at:01/12/2008 color:RULER width:0.1
  at:01/01/2009 color:RULER width:0.1
  at:01/02/2009 color:RULER width:0.1
  at:01/03/2009 color:RULER width:0.1

Legend &#61; orientation:horizontal position:bottom 

PlotData&#61;
  align:left textcolor:black fontsize:8 width:28 shift:(3,-4)  anchor:till

  bar: John
&#37;EXTRACT{topic&#61;&#34;BlogEntry200808x7&#34; expand&#61;&#34;off&#34; 
  pattern&#61;&#34;\&#124;\s&#42;(John)\s&#42;\&#124;\s&#42;(&#91;0-9]+)\.(&#91;0-9]+)\.(&#91;0-9]+)\s&#42;\&#124;\s&#42;(&#91;0-9]+)\.(&#91;0-9]+)\.(&#91;0-9]+)\s&#42;\&#124;\s&#42;(.&#42;?)\s&#42;\&#124;&#34; 
  format&#61;&#34;   from:$2/$3/$4 till:$5/$6/$7 color:$8 
&#34;
}&#37;

  bar: Paul
&#37;EXTRACT{topic&#61;&#34;BlogEntry200808x7&#34; expand&#61;&#34;off&#34; 
  pattern&#61;&#34;\&#124;\s&#42;(Paul)\s&#42;\&#124;\s&#42;(&#91;0-9]+)\.(&#91;0-9]+)\.(&#91;0-9]+)\s&#42;\&#124;\s&#42;(&#91;0-9]+)\.(&#91;0-9]+)\.(&#91;0-9]+)\s&#42;\&#124;\s&#42;(.&#42;?)\s&#42;\&#124;&#34; 
  format&#61;&#34;   from:$2/$3/$4 till:$5/$6/$7 color:$8 
&#34;
}&#37;

  bar:Susan 
&#37;EXTRACT{topic&#61;&#34;BlogEntry200808x7&#34; expand&#61;&#34;off&#34; 
  pattern&#61;&#34;\&#124;\s&#42;(Susan)\s&#42;\&#124;\s&#42;(&#91;0-9]+)\.(&#91;0-9]+)\.(&#91;0-9]+)\s&#42;\&#124;\s&#42;(&#91;0-9]+)\.(&#91;0-9]+)\.(&#91;0-9]+)\s&#42;\&#124;\s&#42;(.&#42;?)\s&#42;\&#124;&#34; 
  format&#61;&#34;   from:$2/$3/$4 till:$5/$6/$7 color:$8 
&#34;
}&#37;

  bar:Month color:white
  at:15/01/2008 align:center text:Jan
  at:15/02/2008 align:center text:Feb
  at:15/03/2008 align:center text:Mar
  at:15/04/2008 align:center text:Apr
  at:15/05/2008 align:center text:May
  at:15/06/2008 align:center text:Jun
  at:15/07/2008 align:center text:Jul
  at:15/08/2008 align:center text:Aug
  at:15/09/2008 align:center text:Sep
  at:15/10/2008 align:center text:Okt
  at:15/11/2008 align:center text:Nov
  at:15/12/2008 align:center text:Dec
  at:15/01/2009 align:center text:Jan
  at:15/02/2009 align:center text:Feb
  at:15/03/2009 align:center text:Mar
&#60;/easytimeline&#62;
</pre>
<p />
Notes: <ul>
<li> The EaysTimeline code will work only for a particular year. If you step to the next year,     you'll have to edit.
</li> <li> All group members have to be included in the EasyTimeline code. Just adding a new     member into the holiday table will not be enough.
</li> <li> Normally you would want to use the group members Wiki name in the table (e.g. <code>Main.JohnDoe</code>)
</li></ul> 
<p />
<p />
<h3> Extracting Data </h3>
<p />
While the EasyTimeline rendering is fine in itself, the holiday planer application would be a pain if
you had to edit the EasyTimeline code itself for changing the events. It becomes usable by extracting the
event dates from a table (which is easily modified). This is done with the help of FilterPlugin.
<p />
Refer to this slice of the EasyTimeline code:
<p />
<pre>
  bar:Susan 
&#37;EXTRACT{topic&#61;&#34;BlogEntry200808x7&#34; expand&#61;&#34;off&#34; 
  pattern&#61;&#34;\&#124;\s&#42;(Susan)\s&#42;\&#124;\s&#42;(&#91;0-9]+)\.(&#91;0-9]+)\.(&#91;0-9]+)\s&#42;\&#124;\s&#42;(&#91;0-9]+)\.(&#91;0-9]+)\.(&#91;0-9]+)\s&#42;\&#124;\s&#42;(.&#42;?)\s&#42;\&#124;&#34; 
  format&#61;&#34;   from:$2/$3/$4 till:$5/$6/$7 color:$8 text:$2-$5
&#34;
}&#37;
</pre>
<p />
With <code>%<void>EXTRACT%</code> the table(s) inside the current topic are searched for lines with <code>Susan</code> in the
first column. The regular expression (refer to <code>pattern</code>) then matches the dates in column 2 and 3 and the keyword in
the last column. Finally the matched data is rearranged and inserted into the <span class="twikiNewLink">EaysTimeline?</span>  code
(refer to <code>format</code>).
<p />
EasyTimelinePlugin will see this code:
<p />
<pre>
  bar:Susan 
    from:21/08/2008 till:29/08/2008 color:ABSENT text:21-29 
    from:07/06/2008 till:14/06/2008 color:HOLIDAY text:07-14 
</pre>
<p />
Notes: <ul>
<li> The table uses German date syntax. You can change this by modifying the regular     expression pattern.
</li></ul> 
<p />
<h2> Conclusion </h2>
<p />
TWiki is fine in itself. It becomes outstanding when you can do gentle application programming
by combining plugin features as above. Which other Wiki can do that?
 ]]!&gt; 
(last changed by ArthurClemens) </description>
  <dc:date>2008-09-07T13:47:31Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.ArthurClemens">
      <rdf:value>ArthurClemens</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x6">
  <title>TWiki's Latest, No. 1</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x6</link>
  <description> 
 <![CDATA[ 
<p />
<strong>Gardening, the K. way</strong>
<p />
 ]]!&gt; 
(last changed by MichaelDaum) </description>
  <dc:date>2008-08-17T11:52:47Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.MichaelDaum">
      <rdf:value>MichaelDaum</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x5">
  <title>TWiki 4.2.2 fast patch release out now.</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x5</link>
  <description> 
 <![CDATA[ I just built and released a patch release TWiki 4.2.2 that fixes the following issues found by users:
<p /> <ul>
<li> Registration with verification fails in 4.2.1
</li> <li> REVINFO with web specified in topic param renders as though topic does not exist.
</li> <li> TWiki::Compatibility has undefined variable error 
</li></ul> 
<p />
A number of other small issues were resolved, including updating the release process. I Hope this will be the begining of a tradition of creating patch releases as soon as fixes are available.
<p />
Please go ahead and download the latest TWiki-version at: http://www.twiki.org/cgi-bin/view/Codev/DownloadTWiki
 ]]!&gt; 
(last changed by MartinSeibert) </description>
  <dc:date>2008-08-10T18:06:42Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.MartinSeibert">
      <rdf:value>MartinSeibert</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x3">
  <title>TWiki in The Conversation Prism</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x3</link>
  <description> 
 <![CDATA[  
In his article,  Introducing The Conversation Prism, Brian Solis writes:
<blockquote>
Over the last month, I worked with Jesse Thomas of JESS3, to create a new graphic that helps chart online conversations between the people that populate communities as well as the networks that connect the Social Web. The Conversation Prism is free to use and share. It's our contribution to a new era of media education and literacy.
<p />
The conversation map is a living, breathing representation of Social Media and will evolve as services and conversation channels emerge, fuse, and dissipate.
</blockquote>
<p />
Take a closer look at the Conversation Prism, especially at the yellow petal (upper left) labeled "Wiki".
<p />
     
 ]]!&gt; 
(last changed by VickiBrown) </description>
  <dc:date>2008-08-27T16:54:16Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.VickiBrown">
      <rdf:value>VickiBrown</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x2">
  <title>Release Managers comments on TWiki 4.2.1</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x2</link>
  <description> 
 <![CDATA[ Here is the release manager's (KennethLavrsen) reflection on TWiki 4.2.1
<p />
As release manager for TWiki for almost 3 years I have been managing the releases of quite many TWiki versions now.
<p />
But the release 4.2.1 is probably the release I have put more heart and energy into and also the release I have felt most pleased with getting finished and made available for our many users.
<p />
TWiki release 4.2.0 was a significant release feature wise. It introduced a fantastic new Wysiwyg editor. It introduced the query search which greatly increases the possibilities for the application builder. And it introduced a major code re-factoring that enables adding external user mappers, so you can have a common user database with other applications. But with new features comes new bugs. Most of these bugs were quickly fixed but a few were very hard and time consuming to fix.
<p />
The typical situation is that bugs marked urgent get a lot of attention while the normal and low priority tends to pile up. But for 4.2.1 we were a few that decided to attack the Normal and Low priority bugs to bring down the backlog and the result is that 4.2.1 closes more than 150 bugs of which many were several years old. I am proud to know that I personally closed more than 50 bugs.
<p />
So what is in it for the users? Should I upgrade? The answer is very much Yes! No doubt.
<p />
The Wysiwyg editor is a much more nice experience than it was in 4.2.0. The user will experience much better stability and much less random corruption. Attachment feature now finally works inside the Wysiwyg editor.
<p />
For non-English speakers TWiki 4.2.1 handles non-english characters much better. Especially in the Wysiwyg editor. TWiki has moved towards better support for utf-8. TWiki is not yet fully supporting utf-8 but especially Chinese/Japanese/Korean users can have an advantage of trying to use utf-8. This however requires a manual conversion of existing topics to utf-8. The better international support unfortunately also means that we have had to give up support for the old Perl 5.6. Latin type languages are much better off using iso-8859 character sets (default).
<p />
EditTablePlugin has been known to not preserve Twiki variables as variables but instead save their value. This has prevented many twiki applications to take full advantage of the plugin. This is now fixed making EditTablePlugin a really cool plugin.
<p />
Perl 5.10 has hit the street and is now part of newer Linux distributions. TWiki 4.2.1 has been tested with 5.10 and a few bugs have been fixed to make it work with 5.10. Installers should pay attention to the release note related to specific versions of the CGI CPAN lib which are broken and needs to be upgraded on some perl 5.10 installations.
<p />
Finally the user mapping (maps login name to wikiname) has been fixed. You can now again use login names in access rights settings. There was a bug related to login names containing non A-Z0-9 characters in 4.2.0 which in rare cases (requires an unusual but possible use of TWiki) could allow an attacker to take the identity of another user. Additionally the bug did not encode non-English characters correctly. This is all resolved in 4.2.1. If you have setup TWiki 4.2.0 to allow login names containing characters '_@.-' it is vital that you upgrade as soon as possible.
<p />
Upgrading 4.2.0 to 4.2.1 is easy!  
Take a back up of your running installation. Download the upgrade package from the TWikiRelease04x02x01 page and throw it on top of your running installation. The upgrade package does not contain the files that an admin typically tailor. Note that TWiki.TWikiPreferences will be overwritten so if you edited this (not recommended - always move settings to Main.TWikiPreferences) you should first move altered settings to Main.TWikiPreferences before you apply the upgrade package. An upgrade of a TWiki 4.2.0 to 4.2.1 may only take 15 minutes unless you have modified an unusual amount of things yourself.
<p />
Enjoy 4.2.1. We put a lot of hard work into it for 7 months.
 ]]!&gt; 
(last changed by KennethLavrsen) </description>
  <dc:date>2008-08-04T22:29:45Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.KennethLavrsen">
      <rdf:value>KennethLavrsen</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x1">
  <title>More stability for TWiki 4.2 - Over 150 bugs fixed</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200808x1</link>
  <description> 
 <![CDATA[ The TWiki community has just released a big patch release for the newest TWiki version 4.2. In the new release, that can be found at http://www.twiki.org/cgi-bin/view/Codev/TWikiRelease04x02x01 both <strong>stability and performance have improved</strong>. One main focus was to improve the <strong>reliability of the WYSIWYG-editor</strong>: "We have made big improvements with this feature that brings TWiki one more step closer to the community of non-tech-savvy people." says Kenneth Lavrsen (Motorola), who is in charge of release management for the community.
<p /> <ul>
<li> TWiki 4.2.0 was released January 2008 and introduced some hot new features that make TWiki a better user experience for both beginners and experienced application developers. It also contained quite a number of bug fixes since 4.1.2.
</li> <li> TWiki 4.2.1 is a patch release which only contains bug fixes. <strong>More than 150 bugs have been fixed</strong> since the release of 4.2.0 in all areas of TWiki.
</li> <li> It is <strong>highly recommended to upgrade</strong> TWiki 4.2.0 to 4.2.1. Users will find the 4.2.1 much more stable in daily use. 
</li></ul> 
<p />
<table cellspacing="0" id="table7" cellpadding="0" class="twikiTable" rules="cols" border="1">
	<tbody>
		<tr class="twikiTableOdd twikiTableRowdataBgSorted0 twikiTableRowdataBg0">
			<th bgcolor="#d8dde4" valign="top" class="twikiTableCol0 twikiFirstCol twikiLast"> <font color="#252b37">Download and complete release notes</font> </th>
			<td bgcolor="#ffffff" valign="top" class="twikiTableCol1 twikiLastCol twikiLast"> Please find a complete list of release highlights in the major release 4.2 and this bugfix-release in the release notes, which is on the download page. </td>
		</tr>
	</tbody></table>
<p />
TWiki-founder Peter Thoeny adds: "It is a strong sign for both the community and the market, that our core development team has fixed all these severe and minor bugs within the last weeks. I am glad, that the community showed their ability to deliver. My special thanks go to KennethLavrsen, SvenDowideit and CrawfordCurrie."
<p />
 If you are a fan of TWiki please consider to spread the word about this new version. E-Mail your friends. Blog oder Twitter about it. Organize a TWiki User Meet-up in your city. Praise the work of the developers with a simple comment or help us in other ways to foster the community.
 ]]!&gt; 
(last changed by PeterThoeny) </description>
  <dc:date>2008-08-05T05:57:15Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.PeterThoeny">
      <rdf:value>PeterThoeny</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item>
<item rdf:about="http://twiki.org/cgi-bin/view/Blog/BlogEntry200807x4">
  <title>Moldy Oldies</title>
  <link>http://twiki.org/cgi-bin/view/Blog/BlogEntry200807x4</link>
  <description> 
 <![CDATA[ How can you determine if old content is "moldy" (stale) or simply doesn't <strong>need</strong> to be changed regularly?
<p />
TWiki is terrific. Anyone can add pages. However, if you don't have a dedicated TWiki librarian, content can become stale. I wanted a relatively easy way to mark "old" pages and ask for feedback: is this content still useful?
<p />
I installed a custom <strong>view template</strong> and combined that with a comment form. Pages older than a pre-defined date now appear with an extra block of text at the top:
<p /> <ul>
<li> Screenshot of the top of an "old" page <br />     
</li></ul> 
<p />
Any "votes in favor" of the usefulness of the page are added to a list (table) on a MoldyOldies page.
<p /> <ul>
<li> Screenshot of the "votes" in favor of old pages: <br />      
</li></ul> 
<p />
The computer keeps track. Pages no-one visits never get a vote. Over time, I'll be able to use the "votes" to determine which old pages are truly outdated and should be archived or removed vs. which are valuable (and, perhaps, should have their date stamp updated. 
<p />
<h2> Steps to Create a Moldy Oldies Tracker </h2>
<p /> <ol>
<li> Define several useful <strong>global variables</strong>, including a variable that stores my definition of "old".
</li> <li> Create a custom <strong>view template</strong>, wrapping the standard skin view template. I use PatternSkin so I'm starting from <code>view.pattern.tmpl</code>. See TWiki/TWikiTemplates for details regarding customizing the view template.
</li> <li> Create a <strong>comment template</strong> (or use one you already have). I created a template that captures the name of the page being viewed, as well as the comment date, commenting user, the comment (optional) and the REVINFO of the page. This information is appended to a table on a single tracking page.
</li> <li> Enable the Moldy Oldies Tracker.
</li></ol> 
<p />
<h3> Global Variables </h3>
<p />
My view template uses several global variables.
<p />
<code>SHELFDATE</code> defines "old".
<p />
<pre>
   &#42; Set SHELFDATE &#61; 01 Jan 2007
</pre>
<p />
<code>PAGEAGE</code> prints the last-modified date of the current page.
<p />
<pre>
   &#42; Set PAGEAGE &#61; This page was last modified: &#37;RED&#37; &#37;REVINFO{&#34;$date&#34;}&#37; &#37;ENDCOLOR&#37; 
</pre>
<p />
<code>HILITE_PINK</code>  highlights the background behind some text. I used pink to avoid conflicting with the default BROADCAST_MESSAGE color.
<p />
<pre>
   &#42; Set HILITE&#95;PINK &#61; &#60;span style&#61;&#34;background-color: #FFCCFF;&#34;&#62;
   &#42; Set END&#95;HI &#61; &#60;/span&#62;
</pre>
<p />
(Note: our TWiki already had HILITE_PINK defined, as well as variants for green, purple, blue, yellow, and orange. We've found these to be generally useful on many pages.)
<p />
<h3> WebViewTemplate </h3>
<p />
My <strong>view template</strong> imports the default TWiki view template, then wraps the body text of the page in a test for age.   For simplicity, I named my template page <code>WebViewTemplate</code>.  
<p />
<pre style="white-space:-moz-pre-wrap; white-space:pre-wrap; word-wrap: break-word;">
&#37;TMPL:INCLUDE{&#34;view&#34;}&#37;


&#37;TMPL:DEF{&#34;topiccomment&#34;}&#37; $NOP(&#37;)HILITE&#95;PINK$NOP(&#37;) &#60;b&#62;&#60;i&#62;$NOP(&#37;)PAGEAGE$NOP(&#37;)&#60;/i&#62; &#37;BR&#37; Please let us know if the content is still useful.&#60;/b&#62; $NOP(&#37;)END&#95;HI$NOP(&#37;) &#37;BR&#37; $NOP(&#37;)COMMENT{type&#61;&#34;topiccomment&#34; target&#61;&#34;MoldyOldies&#34;}$NOP(&#37;) &#60;hr&#62; &#37;TMPL:END&#37;

&#37;TMPL:DEF{&#34;textcontent&#34;}&#37;&#60;div class&#61;&#34;patternTopic&#34;&#62;&#37;TMPL:P{&#34;broadcastmessage&#34;}&#37; 

&#37;CALC{$IF(&#37;REVINFO{&#34;$epoch&#34;}&#37; &#62; 86400, $IF($TIME(&#37;SHELFDATE&#37;) &#62; &#37;REVINFO{&#34;$epoch&#34;}&#37;, &#37;TMPL:P{&#34;topiccomment&#34;}&#37; , ), ) }&#37;

&#37;TEXT&#37;

&#60;/div&#62;&#60;!-- /patternTopic--&#62;&#37;TMPL:END&#37;
</pre>
<p />
<h4> Notes on the Template </h4>
<p />
1. I defined <code>topiccomment</code> in my template to avoid causing the <code>IF</code> statement to become large and unwieldy.
<p />
3. Ephemeral pages, e.g. the page that says "This topic does not exist" do not have a modification date. I needed to configure my "old" test so that these pages weren't marked.  So, the first thing I do is ensure that the ppage has a datestamp and it's newer than January 1, 1970.
<pre>
$IF(&#37;REVINFO{&#34;$epoch&#34;}&#37; &#62; 86400
</pre>
<p />
2. My company is still using TWiki 4.05, in which the <code>$epoch</code> argumednt to <code>%REVINFO%</code> is not yet supported. So, I had to calculate seconds myself, using
<pre>
$TIME(&#37;REVINFO{&#34;$date&#34;}&#37;
</pre>
instead of 
<pre>
&#37;REVINFO{&#34;$epoch&#34;}&#37;
</pre>
<p />
The sample WebViewTemplate code shows the more "modern" way. If your TWiki is old, use <code>$TIME(%REVINFO{"$date"}%</code>
<p />
<p />
<h3> Comment Template </h3>
<p />
My comment template provides a simple one line text box.  It writes the results to a table in another page. That table collects results from any use of the template in any page in the TWiki. 
<p />
Use:
<pre>
   &#37;COMMENT{type&#61;&#34;topiccomment&#34; target&#61;&#34;SomeOtherPage&#34;}&#37;
</pre>
<p />
Result forat:
<pre>
  &#124; Topic &#124; Comment Date &#124; Commenter &#124; Comment text &#124; Rev Info &#124;
</pre>
<p />
If you've never created a comment template, see TWiki.CommentPlugin for details .
<p />
<h4> topiccomment </h4>
<pre style="white-space:-moz-pre-wrap; white-space:pre-wrap; word-wrap: break-word;">
&#37;TMPL:DEF{PROMPT:topiccomment}&#37;
Your response will be &#34;signed&#34; with your TWiki name and dated with today&#39;s date.  &#37;BR&#37;
&#60;input &#37;DISABLED&#37; type&#61;&#34;hidden&#34; name&#61;&#34;base&#95;topic&#34;  value&#61;&#34;BlogEntry200807x4&#34; /&#62; &#37;BR&#37;
&#60;input class&#61;&#34;twikiInputField&#34; &#37;DISABLED&#37; type&#61;&#34;text&#34; size&#61;&#34;100&#34; name&#61;&#34;comment&#95;text&#34; id&#61;&#34;comment&#95;text&#34; value&#61;&#34;&#34; /&#62; &#37;BR&#37;
&#60;input &#37;DISABLED&#37; type&#61;&#34;submit&#34; class&#61;&#34;twikiButton&#34; value&#61;&#34;&#37;button&#124;Submit&#37;&#34; /&#62; 
&#37;TMPL:END&#37;
</pre>
<p />
<pre style="white-space:-moz-pre-wrap; white-space:pre-wrap; word-wrap: break-word;">
&#37;TMPL:DEF{OUTPUT:topiccomment}&#37;&#37;POS:AFTER&#37;&#124; &#37;URLPARAM{&#34;base&#95;topic&#34;}&#37; &#124; &#37;DATE&#37; &#124; &#37;WIKIUSERNAME&#37; &#124; &#37;URLPARAM{&#34;comment&#95;text&#34; }&#37; &#124; &#37;REVINFO{topic&#61;&#34;&#37;URLPARAM{&#34;base&#95;topic&#34;}&#37;&#34; &#34;$date - $wikiusername&#34;}&#37;  &#124;  &#37;TMPL:END&#37;
</pre>
<p />
<p />
<p />
<h2> Enable the Moldy Oldies Tracker </h2>
When all the pieces are in place, enable the Moldy Oldies tracker by setting <code>VIEW_TEMPLATE</code> in WebPreferences.
<p />
<pre>
   &#042; Set VIEW_TEMPLATE = Blog.WebViewTemplate
</pre>
<p />
<h2> Update the Datestamp on Useful Pages </h2>
<p />
When a page is marked as useful, I update it by adding a block of TWIKi code at the end, like this:
<p />
<pre>
---------
&#37;TWISTY{showlink&#61;&#34;datestamp updated 06 Aug 2008&#34;}&#37;

content last updated &#37;BR&#37;
  09 Sept 2006 - 14:29:58 UTC - Main.MarySample

page timestamp updated - 06 Aug 2008 &#37;BR&#37;
-- Main.VickiBrown 

This page has had at least one vote in favor of its continued value (&#91;&#91;MoldyOldies]]). &#37;BR&#37;
      21 Jul 2008  Main.AnnWhite -- &#34;I refer to this daily&#34;

&#37;ENDTWISTY&#37;
</pre>
<p />
This logs the comment and removes the "moldy oldies" form from the top of the page.
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
<p />
 ]]!&gt; 
(last changed by VickiBrown) </description>
  <dc:date>2008-08-07T17:25:23Z</dc:date>
  <dc:contributor>
    <rdf:Description link="http://twiki.org/cgi-bin/view?topic=Main.VickiBrown">
      <rdf:value>VickiBrown</rdf:value>
    </rdf:Description>
  </dc:contributor>
</item><!--
<p /> <ul>
<li> Set SKIN = rss
</li></ul> 
-->
</rdf:RDF>