Author: nkourtellis
Date: Thu Sep 17 17:53:37 2015
New Revision: 1703661
URL: http://svn.apache.org/viewvc?rev=1703661&view=rev
Log:
samoa-45 fix (true one)
Added:
incubator/samoa/site/documentation/SAMOA-Developers-Guide-0.0.1.pdf (with
props)
Removed:
incubator/samoa/site/SAMOA-Developers-Guide-0-0-1.pdf
Modified:
incubator/samoa/site/documentation/Bylaws.html
incubator/samoa/site/documentation/Content-Event.html
incubator/samoa/site/documentation/Distributed-Stream-Frequent-Itemset-Mining.html
incubator/samoa/site/documentation/Executing-SAMOA-with-Apache-Storm.html
incubator/samoa/site/documentation/Processing-Item.html
incubator/samoa/site/documentation/Processor.html
incubator/samoa/site/documentation/Stream.html
incubator/samoa/site/documentation/Task.html
incubator/samoa/site/documentation/Vertical-Hoeffding-Tree-Classifier.html
incubator/samoa/site/index.html
Modified: incubator/samoa/site/documentation/Bylaws.html
URL:
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Bylaws.html?rev=1703661&r1=1703660&r2=1703661&view=diff
==============================================================================
--- incubator/samoa/site/documentation/Bylaws.html (original)
+++ incubator/samoa/site/documentation/Bylaws.html Thu Sep 17 17:53:37 2015
@@ -85,17 +85,17 @@
<p>Apache projects define a set of roles with associated rights and
responsibilities. These roles govern which tasks an individual may perform
within the project. The roles are defined in the following sections.</p>
-<h3 id="users:">Users:</h3>
+<h3 id="users">Users:</h3>
<p>The most important participants in the project are people who use our
software. The majority of our developers start out as users and guide their
development efforts from the user's perspective.</p>
<p>Users contribute to Apache projects by providing feedback to developers in
the form of bug reports and feature suggestions. In addition, users participate
in the Apache community by helping other users on mailing lists and user
support forums.</p>
-<h3 id="contributors:">Contributors:</h3>
+<h3 id="contributors">Contributors:</h3>
<p>All of the volunteers who are contributing time, code, documentation, or
resources to the SAMOA project. A contributor that makes sustained, welcome
contributions to the project may be invited to become a Committer, though the
exact timing of such invitations depends on many factors.</p>
-<h3 id="committers:">Committers:</h3>
+<h3 id="committers">Committers:</h3>
<p>The project's Committers are responsible for the project's
technical management. Committers have access to all project source
repositories. Committers may cast binding votes on any technical discussion
regarding SAMOA.</p>
@@ -105,7 +105,7 @@
<p>A Committer who makes a sustained contribution to the project may be
invited to become a member of the PMC. The form of contribution is not limited
to code. It can also include other activities such as code review, helping out
users on the mailing lists, documentation, and testing.</p>
-<h3 id="project-management-committee-(pmc):">Project Management Committee
(PMC):</h3>
+<h3 id="project-management-committee-pmc">Project Management Committee
(PMC):</h3>
<p>The PMC is responsible to the board and the ASF for the management and
oversight of the Apache SAMOA codebase. The responsibilities of the PMC
include:</p>
Modified: incubator/samoa/site/documentation/Content-Event.html
URL:
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Content-Event.html?rev=1703661&r1=1703660&r2=1703661&view=diff
==============================================================================
--- incubator/samoa/site/documentation/Content-Event.html (original)
+++ incubator/samoa/site/documentation/Content-Event.html Thu Sep 17 17:53:37
2015
@@ -75,7 +75,7 @@
<article class="post-content">
<p>A message or an event is called Content Event in SAMOA. As the name
suggests, it is an event which contains content which needs to be processed by
the processors.</p>
-<h3 id="1.-implementation">1. Implementation</h3>
+<h3 id="1-implementation">1. Implementation</h3>
<p>ContentEvent has been implemented as an interface in SAMOA. Users need to
implement <code>ContentEvent</code> interface to create their custom message
classes. As it can be seen in the following code, key is the necessary part of
a message.</p>
<div class="highlight"><pre><code class="language-text"
data-lang="text">package com.yahoo.labs.samoa.core;
@@ -89,23 +89,23 @@ public interface ContentEvent extends ja
public boolean isLastEvent();
}
</code></pre></div>
-<h3 id="2.-methods">2. Methods</h3>
+<h3 id="2-methods">2. Methods</h3>
<p>Following is a brief description of methods.</p>
-<h5 id="2.1-string-getkey()">2.1 <code>String getKey()</code></h5>
+<h5 id="2-1-string-getkey">2.1 <code>String getKey()</code></h5>
<p>Each message is identified by a key in SAMOA. All user-defined message
classes should have a key state variable. Each instance of the custom message
should be assigned a key. This method should return the key of the respective
message.</p>
-<h5 id="2.2-void-setkey(string-str)">2.2 <code>void setKey(String
str)</code></h5>
+<h5 id="2-2-void-setkey-string-str">2.2 <code>void setKey(String
str)</code></h5>
<p>This method is used to assign a key to the message.</p>
-<h5 id="2.3-boolean-islastevent()">2.3 <code>boolean isLastEvent()</code></h5>
+<h5 id="2-3-boolean-islastevent">2.3 <code>boolean isLastEvent()</code></h5>
<p>This method lets SAMOA know that this message is the last message.</p>
-<h3 id="3.-example">3. Example</h3>
+<h3 id="3-example">3. Example</h3>
<p>Following is the example of a <code>Message</code> class which implements
<code>ContentEvent</code> interface. As <code>ContentEvent</code> is an
interface, it can not hold variables. A user-defined message class should have
its own data variables and its getter methods. In the following example,
<code>value</code> variable of type <code>Object</code> is added to the class.
Using a generic type <code>Object</code> is beneficial in the sense that any
object can be passed to it and later it can be casted back to the original
type. The following example also adds a <code>streamId</code> variable which
stores the <code>id</code> of the stream the message belongs to. This is not a
requirement but can be beneficial in certain applications.</p>
<div class="highlight"><pre><code class="language-text"
data-lang="text">import com.yahoo.labs.samoa.core.ContentEvent;
Modified:
incubator/samoa/site/documentation/Distributed-Stream-Frequent-Itemset-Mining.html
URL:
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Distributed-Stream-Frequent-Itemset-Mining.html?rev=1703661&r1=1703660&r2=1703661&view=diff
==============================================================================
---
incubator/samoa/site/documentation/Distributed-Stream-Frequent-Itemset-Mining.html
(original)
+++
incubator/samoa/site/documentation/Distributed-Stream-Frequent-Itemset-Mining.html
Thu Sep 17 17:53:37 2015
@@ -73,11 +73,11 @@
</header>
<article class="post-content">
- <h2 id="1.-introduction">1. Introduction</h2>
+ <h2 id="1-introduction">1. Introduction</h2>
<p>SAMOA takes a micro-batching approach to frequent itemset mining (FIM). It
uses <a href="https://dl.acm.org/citation.cfm?id=2396776">PARMA</a> as a base
algorithm for distributed sample-based frequent itemset mining. PARMA provides
the guaranty that all the frequent itemsets would be present in the result that
it returns.It also returns some false positives. The problem with FIM in
streams is that the stream has an evolving nature. The itemsets that were
frequent last year may not be frequent this year. To handle this, SAMOA
implements <a href="https://dl.acm.org/citation.cfm?id=1164180">Time Biased
Sampling</a> approach. This sampling method depends on a parameter
<em>lambda</em> which determines the size of the reservoir sample. This also
tells us how much biased the sample would be towards newer itemsets. As PARMA
has its own way of determining sample sizes, SAMOA does not allow users to
choose <em>lambda</em> and determines its value using the sample size
determined by PARMA
using the approximation <code>lambda = 1/sampleSize</code>. </p>
-<h2 id="2.-concepts">2. Concepts</h2>
+<h2 id="2-concepts">2. Concepts</h2>
<p>SAMOA implements FIM for streams in three processors i.e.
StreamSourceProcessor, SamplerProcessor and AggregatorProcessor. The tasks of
each of these are explained below.</p>
@@ -91,7 +91,7 @@
<p><img src="images/SAMOA%20FIM.jpg" alt="SAMOA FIM"></p>
-<h2 id="3.-how-to-run">3. How to run</h2>
+<h2 id="3-how-to-run">3. How to run</h2>
<p>Following is an example of the command used to run the SAMOA FIM task.</p>
<div class="highlight"><pre><code class="language-text"
data-lang="text">bin/samoa storm target/SAMOA-Storm-0.0.1-SNAPSHOT.jar
"FpmTask -t Myfpmtopology -r
(com.yahoo.labs.samoa.fpm.processors.FileReaderProcessor -i
/datasets/freqDataCombined.txt) -m
(com.yahoo.labs.samoa.fpm.processors.ParmaStreamFpmMiner -e .1 -d .1 -f 10 -t
20 -n 23 -p 0.08 -b 100000 -s
com.yahoo.labs.samoa.samplers.reservoir.TimeBiasedReservoirSampler) -w
(com.yahoo.labs.samoa.fpm.processors.FileWriterProcessor -o /output/outPARMA)
"
Modified:
incubator/samoa/site/documentation/Executing-SAMOA-with-Apache-Storm.html
URL:
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Executing-SAMOA-with-Apache-Storm.html?rev=1703661&r1=1703660&r2=1703661&view=diff
==============================================================================
--- incubator/samoa/site/documentation/Executing-SAMOA-with-Apache-Storm.html
(original)
+++ incubator/samoa/site/documentation/Executing-SAMOA-with-Apache-Storm.html
Thu Sep 17 17:53:37 2015
@@ -121,7 +121,7 @@ kryo.register:
<li><code>bin/samoa-storm.properties</code> contains deployment
configurations. You need to set the parameters in this properties file
correctly. </li>
</ol>
-<h3 id="-samoa-storm.properties-configuration"><a
name="samoa-storm-properties"> samoa-storm.properties Configuration</a></h3>
+<h3 id="samoa-storm-properties-configuration"><a
name="samoa-storm-properties"> samoa-storm.properties Configuration</a></h3>
<p>Currently, the properties file contains two configurations:</p>
Modified: incubator/samoa/site/documentation/Processing-Item.html
URL:
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Processing-Item.html?rev=1703661&r1=1703660&r2=1703661&view=diff
==============================================================================
--- incubator/samoa/site/documentation/Processing-Item.html (original)
+++ incubator/samoa/site/documentation/Processing-Item.html Thu Sep 17 17:53:37
2015
@@ -86,7 +86,7 @@ There are two types of Processing Items.
<li>Entrance Processing Item (EntrancePI)</li>
</ol>
-<h4 id="1.-simple-processing-item-(pi)">1. Simple Processing Item (PI)</h4>
+<h4 id="1-simple-processing-item-pi">1. Simple Processing Item (PI)</h4>
<p>Once a Processor is wrapped in a PI, it becomes an executable component of
the topology. All physical topology units are created with the help of a
<code>TopologyBuilder</code>. Following code snippet shows the creation of a
Processing Item.</p>
<div class="highlight"><pre><code class="language-text"
data-lang="text">builder.initTopology("MyTopology");
@@ -95,7 +95,7 @@ ProcessingItem samplerPI = builder.creat
</code></pre></div>
<p>The <code>createPI()</code> method of <code>TopologyBuilder</code> is used
to create a PI. Its first argument is the instance of a Processor which needs
to be wrapped-in. Its second argument is the parallelism hint. It tells the
underlying platforms how many parallel instances of this PI should be created
on different nodes.</p>
-<h4 id="2.-entrance-processing-item-(entrancepi)">2. Entrance Processing Item
(EntrancePI)</h4>
+<h4 id="2-entrance-processing-item-entrancepi">2. Entrance Processing Item
(EntrancePI)</h4>
<p>Entrance Processing Item is different from a PI in only one way: it accepts
an Entrance Processor which can generate its own stream.
It is mostly used as the source of a topology.
Modified: incubator/samoa/site/documentation/Processor.html
URL:
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Processor.html?rev=1703661&r1=1703660&r2=1703661&view=diff
==============================================================================
--- incubator/samoa/site/documentation/Processor.html (original)
+++ incubator/samoa/site/documentation/Processor.html Thu Sep 17 17:53:37 2015
@@ -80,7 +80,7 @@
<p>There are two ways to add a processor to the topology.</p>
-<h4 id="1.-processor">1. Processor</h4>
+<h4 id="1-processor">1. Processor</h4>
<p>All physical topology units are created with the help of a
<code>TopologyBuilder</code>. Following code snippet shows how to add a
Processor to the topology.
<code>
@@ -89,7 +89,7 @@ builder.addProcessor(processor, paralell
</code>
<code>addProcessor()</code> method of <code>TopologyBuilder</code> is used to
add the processor. Its first argument is the instance of a Processor which
needs to be added. Its second argument is the parallelism hint. It tells the
underlying platforms how many parallel instances of this processor should be
created on different nodes.</p>
-<h4 id="2.-entrance-processor">2. Entrance Processor</h4>
+<h4 id="2-entrance-processor">2. Entrance Processor</h4>
<p>Some processors generates their own streams, and they are used as the
source of a topology. They connect to external sources, pull data and provide
it to the topology in the form of streams.
All physical topology units are created with the help of a
<code>TopologyBuilder</code>. The following code snippet shows how to add an
entrance processor to the topology and create a stream from it.
@@ -109,15 +109,15 @@ public interface Processor extends java.
</code></pre></div>
<h3 id="methods">Methods</h3>
-<h4 id="1.-boolean-process(contentevent-event)">1. <code>boolean
process(ContentEvent event)</code></h4>
+<h4 id="1-boolean-process-contentevent-event">1. <code>boolean
process(ContentEvent event)</code></h4>
<p>Users should implement the three methods shown above.
<code>process(ContentEvent event)</code> is the method in which all processing
logic should be implemented. <code>ContentEvent</code> is a type (interface)
which contains the event. This method will be called each time a new event is
received. It should return <code>true</code> if the event has been correctly
processed, <code>false</code> otherwise.</p>
-<h4 id="2.-void-oncreate(int-id)">2. <code>void onCreate(int id)</code></h4>
+<h4 id="2-void-oncreate-int-id">2. <code>void onCreate(int id)</code></h4>
<p>is the method in which all initialization code should be written. Multiple
copies/instances of the Processor are created based on the parallelism hint
specified by the user. SAMOA assigns each instance a unique id which is passed
as a parameter <code>id</code> to <code>onCreate(int it)</code> method of each
instance.</p>
-<h4 id="3.-processor-newprocessor(processor-p)">3. <code>Processor
newProcessor(Processor p)</code></h4>
+<h4 id="3-processor-newprocessor-processor-p">3. <code>Processor
newProcessor(Processor p)</code></h4>
<p>is very simple to implement. This method is just a technical overhead that
has no logical use except that it helps SAMOA in some of its internals. Users
should just return a new copy of the instance of this class which implements
this Processor interface. </p>
@@ -132,15 +132,15 @@ public interface EntranceProcessor exten
</code></pre></div>
<h3 id="methods">Methods</h3>
-<h4 id="1.-boolean-isfinished()">1. <code>boolean isFinished()</code></h4>
+<h4 id="1-boolean-isfinished">1. <code>boolean isFinished()</code></h4>
<p>returns whether to expect more events coming from the entrance processor.
If the source is a live stream this method should return always
<code>false</code>. If the source is a file, the method should return
<code>true</code> once the file has been fully processed.</p>
-<h4 id="2.-boolean-hasnext()">2. <code>boolean hasNext()</code></h4>
+<h4 id="2-boolean-hasnext">2. <code>boolean hasNext()</code></h4>
<p>returns whether the next event is ready for consumption. If the method
returns <code>true</code> a subsequent call to <code>nextEvent</code> should
yield the next event to be processed. If the method returns <code>false</code>
the engine can use this information to avoid continuously polling the entrance
processor.</p>
-<h4 id="3.-contentevent-nextevent()">3. <code>ContentEvent
nextEvent()</code></h4>
+<h4 id="3-contentevent-nextevent">3. <code>ContentEvent nextEvent()</code></h4>
<p>is the main method for the entrance processor as it returns the next event
to be processed by the topology. It should be called only if
<code>isFinished()</code> returned <code>false</code> and
<code>hasNext()</code> returned <code>true</code>.</p>
Added: incubator/samoa/site/documentation/SAMOA-Developers-Guide-0.0.1.pdf
URL:
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/SAMOA-Developers-Guide-0.0.1.pdf?rev=1703661&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/samoa/site/documentation/SAMOA-Developers-Guide-0.0.1.pdf
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: incubator/samoa/site/documentation/Stream.html
URL:
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Stream.html?rev=1703661&r1=1703660&r2=1703661&view=diff
==============================================================================
--- incubator/samoa/site/documentation/Stream.html (original)
+++ incubator/samoa/site/documentation/Stream.html Thu Sep 17 17:53:37 2015
@@ -75,7 +75,7 @@
<article class="post-content">
<p>A stream is a physical unit of SAMOA topology which connects different
Processors with each other. Stream is also created by a
<code>TopologyBuilder</code> just like a Processor. A stream can have a single
source but many destinations. A Processor which is the source of a stream, owns
the stream.</p>
-<h3 id="1.-creating-a-stream">1. Creating a Stream</h3>
+<h3 id="1-creating-a-stream">1. Creating a Stream</h3>
<p>The following code snippet shows how a Stream is created:</p>
<div class="highlight"><pre><code class="language-text"
data-lang="text">builder.initTopology("MyTopology");
@@ -83,7 +83,7 @@ Processor sourceProcessor = new Sampler(
builder.addProcessor(samplerProcessor, 3);
Stream sourceDataStream = builder.createStream(sourceProcessor);
</code></pre></div>
-<h3 id="2.-connecting-a-stream">2. Connecting a Stream</h3>
+<h3 id="2-connecting-a-stream">2. Connecting a Stream</h3>
<p>As described above, a Stream can have many destinations. In the following
figure, a single stream from sourceProcessor is connected to three different
destination Processors each having three instances.</p>
@@ -91,7 +91,7 @@ Stream sourceDataStream = builder.create
<p>SAMOA supports three different ways of distribution of messages to multiple
instances of a Processor.</p>
-<h4 id="2.1-shuffle">2.1 Shuffle</h4>
+<h4 id="2-1-shuffle">2.1 Shuffle</h4>
<p>In this way of message distribution, messages/events are distributed
randomly among various instances of a Processor.
Following figure shows how the messages are distributed.
@@ -99,7 +99,7 @@ Following figure shows how the messages
Following code snipped shows how to connect a stream to a destination using
random shuffling.</p>
<div class="highlight"><pre><code class="language-text"
data-lang="text">builder.connectInputShuffleStream(sourceDataStream,
destinationProcessor);
</code></pre></div>
-<h4 id="2.2-key">2.2 Key</h4>
+<h4 id="2-2-key">2.2 Key</h4>
<p>In this way of message distribution, messages with same key are sent to
same instance of a Processor.
Following figure illustrates key-based distribution.
@@ -107,7 +107,7 @@ Following figure illustrates key-based d
Following code snippet shows how to connect a stream to a destination using
key-based distribution.</p>
<div class="highlight"><pre><code class="language-text"
data-lang="text">builder.connectInputKeyStream(sourceDataStream,
destinationProcessor);
</code></pre></div>
-<h4 id="2.3-all">2.3 All</h4>
+<h4 id="2-3-all">2.3 All</h4>
<p>In this way of message distribution, all messages of a stream are sent to
all instances of a destination Processor. Following figure illustrates this
distribution process.
<img src="images/SAMOA%20Explain%20All%20Shuffling.png" alt="SAMOA Explain All
Shuffling">
Modified: incubator/samoa/site/documentation/Task.html
URL:
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Task.html?rev=1703661&r1=1703660&r2=1703661&view=diff
==============================================================================
--- incubator/samoa/site/documentation/Task.html (original)
+++ incubator/samoa/site/documentation/Task.html Thu Sep 17 17:53:37 2015
@@ -75,7 +75,7 @@
<article class="post-content">
<p>Task is similar to a job in Hadoop. Task is an execution entity. A
topology must be defined inside a task. SAMOA can only execute classes that
implement <code>Task</code> interface.</p>
-<h3 id="1.-implementation">1. Implementation</h3>
+<h3 id="1-implementation">1. Implementation</h3>
<div class="highlight"><pre><code class="language-text"
data-lang="text">package com.yahoo.labs.samoa.tasks;
import com.yahoo.labs.samoa.topology.ComponentFactory;
@@ -110,17 +110,17 @@ public interface Task {
public void setFactory(ComponentFactory factory) ;
}
</code></pre></div>
-<h3 id="2.-methods">2. Methods</h3>
+<h3 id="2-methods">2. Methods</h3>
-<h5 id="2.1-void-init()">2.1 <code>void init()</code></h5>
+<h5 id="2-1-void-init">2.1 <code>void init()</code></h5>
<p>This method should build the desired topology by creating Processors and
Streams and connecting them to each other.</p>
-<h5 id="2.2-topology-gettopology()">2.2 <code>Topology
getTopology()</code></h5>
+<h5 id="2-2-topology-gettopology">2.2 <code>Topology getTopology()</code></h5>
<p>This method should return the topology built by <code>init</code> to the
engine for execution.</p>
-<h5 id="2.3-void-setfactory(componentfactory-factory)">2.3 <code>void
setFactory(ComponentFactory factory)</code></h5>
+<h5 id="2-3-void-setfactory-componentfactory-factory">2.3 <code>void
setFactory(ComponentFactory factory)</code></h5>
<p>Utility method to accept a <code>ComponentFactory</code> to use in building
the topology.</p>
Modified:
incubator/samoa/site/documentation/Vertical-Hoeffding-Tree-Classifier.html
URL:
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Vertical-Hoeffding-Tree-Classifier.html?rev=1703661&r1=1703660&r2=1703661&view=diff
==============================================================================
--- incubator/samoa/site/documentation/Vertical-Hoeffding-Tree-Classifier.html
(original)
+++ incubator/samoa/site/documentation/Vertical-Hoeffding-Tree-Classifier.html
Thu Sep 17 17:53:37 2015
@@ -75,7 +75,7 @@
<article class="post-content">
<p>Vertical Hoeffding Tree (VHT) classifier is a distributed classifier
that utilizes vertical parallelism on top of the Very Fast Decision Tree (VFDT)
or Hoeffding Tree classifier.</p>
-<h3 id="very-fast-decision-tree-(vfdt)-classifier">Very Fast Decision Tree
(VFDT) classifier</h3>
+<h3 id="very-fast-decision-tree-vfdt-classifier">Very Fast Decision Tree
(VFDT) classifier</h3>
<p><a href="http://doi.acm.org/10.1145/347090.347107">Hoeffding Tree or
VFDT</a> is the standard decision tree algorithm for data stream
classification. VFDT uses the Hoeffding bound to decide the minimum number of
arriving instances to achieve certain level of confidence in splitting the
node. This confidence level determines how close the statistics between the
attribute chosen by VFDT and the attribute chosen by decision tree for batch
learning.</p>
@@ -87,7 +87,7 @@
<p>For more explanation about available parallelism types for decision tree
induction, you can read chapter 4 of <a
href="../SAMOA-Developers-Guide-0-0-1.pdf">Distributed Decision Tree Learning
for Mining Big Data Streams</a>, the Developer's Guide of SAMOA. </p>
-<h3 id="vertical-hoeffding-tree-(vht)-classifier">Vertical Hoeffding Tree
(VHT) classifier</h3>
+<h3 id="vertical-hoeffding-tree-vht-classifier">Vertical Hoeffding Tree (VHT)
classifier</h3>
<p>VHT is implemented using the SAMOA API. The diagram below shows the
implementation:
<img src="images/VHT.png" alt="Vertical Hoeffding Tree"></p>
Modified: incubator/samoa/site/index.html
URL:
http://svn.apache.org/viewvc/incubator/samoa/site/index.html?rev=1703661&r1=1703660&r2=1703661&view=diff
==============================================================================
--- incubator/samoa/site/index.html (original)
+++ incubator/samoa/site/index.html Thu Sep 17 17:53:37 2015
@@ -74,7 +74,7 @@
<h1>Apache SAMOA Developer's Guide</h1>
- <h2><a href="SAMOA-Developers-Guide-0-3-0.pdf"><img
style="max-width:95%;border:3px solid black;" src="Manual.png" alt="SAMOA
Developer's guide" height="250"> </a></h2>
+ <h2><a href="./documentation/SAMOA-Developers-Guide-0.0.1.pdf"><img
style="max-width:95%;border:3px solid black;" src="Manual.png" alt="SAMOA
Developer's guide" height="250"> </a></h2>
</section>
<section class="tutorial">