<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Gimenete on Google Summer of Code</title>
	<atom:link href="http://gimenetegsoc.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gimenetegsoc.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Thu, 16 Apr 2009 07:52:29 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='gimenetegsoc.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/5b88b53b25f3b2571e1cdc87e7588085?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Gimenete on Google Summer of Code</title>
		<link>http://gimenetegsoc.wordpress.com</link>
	</image>
			<item>
		<title>Subclipse revision graph ready to be used</title>
		<link>http://gimenetegsoc.wordpress.com/2009/04/16/subclipse-revision-graph-ready-to-be-used/</link>
		<comments>http://gimenetegsoc.wordpress.com/2009/04/16/subclipse-revision-graph-ready-to-be-used/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 07:52:29 +0000</pubDate>
		<dc:creator>gimenete</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gimenetegsoc.wordpress.com/?p=27</guid>
		<description><![CDATA[I have received some comments about how to download the subclipse graph plugin. Well, it is included in the subclipse installation as optional plugin since November 2008. In the subclipse home page there are more information about the subclipse graph plugin including installation instructions.
The subclipse team made several improvements to my contribution. I&#8217;m very happy [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=27&subd=gimenetegsoc&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I have received some comments about how to download the subclipse graph plugin. Well, it is included in the subclipse installation as optional plugin since November 2008. In the subclipse home page there are <a href="http://subclipse.tigris.org/graph.html">more information about the subclipse graph plugin</a> including installation instructions.</p>
<p>The subclipse team made several improvements to my contribution. I&#8217;m very happy about that. The Google Summer of Code was a great experience <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gimenetegsoc.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gimenetegsoc.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gimenetegsoc.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gimenetegsoc.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gimenetegsoc.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gimenetegsoc.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gimenetegsoc.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gimenetegsoc.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gimenetegsoc.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gimenetegsoc.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=27&subd=gimenetegsoc&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gimenetegsoc.wordpress.com/2009/04/16/subclipse-revision-graph-ready-to-be-used/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/182a2eaaa15b7ef7db5edad19dbd088e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gimenete</media:title>
		</media:content>
	</item>
		<item>
		<title>Cache implementation tests</title>
		<link>http://gimenetegsoc.wordpress.com/2008/08/19/cache-implementation-tests/</link>
		<comments>http://gimenetegsoc.wordpress.com/2008/08/19/cache-implementation-tests/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 15:52:14 +0000</pubDate>
		<dc:creator>gimenete</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[implementation]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://gimenetegsoc.wordpress.com/?p=23</guid>
		<description><![CDATA[I have just committed the test suite I&#8217;ve been using in order to test the cache implementation. You can find it at: http://subclipse.tigris.org/svn/subclipse/branches/GSoC2008/gimenete/org.tigris.subversion.subclipse.graph.test
I have created a basic plain text format to simulate repositories and perform queries to the cache. This is an example:
clear
load
1
A	/trunk
A	/branches
A	/tags
2
A	/trunk/project
3
A	/trunk/project/foo.txt
4
M	/trunk/project/foo.txt
5
A	/trunk/project/bar.txt
6
M	/trunk/project/foo.txt
M	/trunk/project/bar.txt
7
D	/trunk/project/foo.txt
update
test	/trunk/project/foo.txt	3
/trunk/project/foo.txt
3	A
4	M
6	M
7	D
endtest
The first line clears the cache. The second line says that the cache [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=23&subd=gimenetegsoc&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I have just committed the test suite I&#8217;ve been using in order to test the cache implementation. You can find it at: <em>http://subclipse.tigris.org/svn/subclipse/branches/GSoC2008/gimenete/org.tigris.subversion.subclipse.graph.test</em></p>
<p>I have created a <strong>basic plain text format to simulate repositories and perform queries</strong> to the cache. This is an example:</p>
<pre>clear
load
1
A	/trunk
A	/branches
A	/tags
2
A	/trunk/project
3
A	/trunk/project/foo.txt
4
M	/trunk/project/foo.txt
5
A	/trunk/project/bar.txt
6
M	/trunk/project/foo.txt
M	/trunk/project/bar.txt
7
D	/trunk/project/foo.txt
update
test	/trunk/project/foo.txt	3
/trunk/project/foo.txt
3	A
4	M
6	M
7	D
endtest</pre>
<p>The first line clears the cache. The second line says that the cache is going to be loaded with data. The following lines contain the log messages that will be saved into the cache. The lines with a number start a revision. That number is the revision number. The other lines contain the changed paths information. For example <em>A /trunk</em> indicates that the <em>/trunk</em> folder is created (<em>A</em>). The author, date and log messages are not indicated. The action (<em>A</em>) and the path (<em>/trunk</em>) are separated with a tab. Every argument in each line is separated with a tab. To finish loading data into the cache the <em>update</em> command is used. Some change paths require more information. For example:</p>
<pre>A	/branches/1.0	/trunk	2</pre>
<p>That changed path indicates that the folder &#8220;/branches/1.0&#8243; is copied from &#8220;/trunk&#8221; at revision &#8220;2&#8243;.</p>
<p>To test the queries a against the database the <em>test</em> command is used. The <em>test</em> keyword is followed by a path and a revision number that identify the file. Then the cache creates a graph of the specified file in memory. To test verify the graph is ok all branch paths are listed followed by their nodes. This is:</p>
<pre>/trunk/project/foo.txt
3	A
4	M
6	M
7	D</pre>
<p>Those lines tell that the branch <em>/trunk/project/foo.txt</em> should have the following nodes: <em>A</em> at revision 3, <em>M</em> at revision 4 and 6 and <em>D</em> at revision 7.</p>
<p>The test files are stored in a folder called &#8220;testfiles&#8221; and to run them you just need to run <em>test.CacheTest</em> using <strong>JUnit</strong>.</p>
<p>Note: the code depends on the following projects:</p>
<ul>
<li>org.tigris.subversion.clientadapter</li>
<li>org.tigris.subversion.subclipse.core</li>
<li>org.tigris.subversion.subclipse.graph</li>
</ul>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gimenetegsoc.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gimenetegsoc.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gimenetegsoc.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gimenetegsoc.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gimenetegsoc.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gimenetegsoc.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gimenetegsoc.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gimenetegsoc.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gimenetegsoc.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gimenetegsoc.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gimenetegsoc.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gimenetegsoc.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=23&subd=gimenetegsoc&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gimenetegsoc.wordpress.com/2008/08/19/cache-implementation-tests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/182a2eaaa15b7ef7db5edad19dbd088e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gimenete</media:title>
		</media:content>
	</item>
		<item>
		<title>Near to the end</title>
		<link>http://gimenetegsoc.wordpress.com/2008/08/13/near-to-the-end/</link>
		<comments>http://gimenetegsoc.wordpress.com/2008/08/13/near-to-the-end/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 16:59:48 +0000</pubDate>
		<dc:creator>gimenete</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gimenetegsoc.wordpress.com/?p=21</guid>
		<description><![CDATA[The Google Summer of Code is finishing. The final evaluation starts next Monday and it finishes 1st September according to the timeline.
I think I&#8217;m doing a good job. I&#8217;m going to continue working on the revision graph these weeks and I also would like to continue working on it after the GSoC. It&#8217;s being a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=21&subd=gimenetegsoc&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The Google Summer of Code is finishing. The final evaluation starts next Monday and it finishes 1st September according to <a href="http://code.google.com/opensource/gsoc/2008/faqs.html#0.1_timeline">the timeline</a>.</p>
<p>I think I&#8217;m doing a good job. I&#8217;m going to continue working on the revision graph these weeks and I also would like to continue working on it after the GSoC. It&#8217;s being a great experience.</p>
<p>This is a screenshot that shows the current status of the project.</p>
<p><a href="http://farm4.static.flickr.com/3055/2760319604_ea2c7bb308_o.png"><img class="aligncenter" src="http://farm4.static.flickr.com/3055/2760319604_ea2c7bb308_o.png" alt="" width="488" height="282" /></a></p>
<p style="text-align:center;"><a href="http://farm4.static.flickr.com/3055/2760319604_ea2c7bb308_o.png">Click to enlarge</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gimenetegsoc.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gimenetegsoc.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gimenetegsoc.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gimenetegsoc.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gimenetegsoc.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gimenetegsoc.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gimenetegsoc.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gimenetegsoc.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gimenetegsoc.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gimenetegsoc.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gimenetegsoc.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gimenetegsoc.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=21&subd=gimenetegsoc&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gimenetegsoc.wordpress.com/2008/08/13/near-to-the-end/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/182a2eaaa15b7ef7db5edad19dbd088e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gimenete</media:title>
		</media:content>

		<media:content url="http://farm4.static.flickr.com/3055/2760319604_ea2c7bb308_o.png" medium="image" />
	</item>
		<item>
		<title>I was at Campus Party 2008</title>
		<link>http://gimenetegsoc.wordpress.com/2008/08/05/i-was-at-campus-party-2008/</link>
		<comments>http://gimenetegsoc.wordpress.com/2008/08/05/i-was-at-campus-party-2008/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 22:22:11 +0000</pubDate>
		<dc:creator>gimenete</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[campus]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[panoramio]]></category>
		<category><![CDATA[party]]></category>

		<guid isPermaLink="false">http://gimenetegsoc.wordpress.com/?p=19</guid>
		<description><![CDATA[Last week I was invited to Campus Party 2008 by Google as I told in a previous post. Thanks to my friend plunchete, that put them on touch with me. I got two invitations so Daniel Latorre came with me.
I met Clara Rivera from Google Spain and Joaquín Cuenca co-founder of Panoramio (bought by Google). [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=19&subd=gimenetegsoc&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Last week I was invited to <strong><a href="http://www.campus-party.es/">Campus Party 2008</a></strong> by Google as <a href="http://gimenetegsoc.wordpress.com/2008/07/28/hello-from-the-campus-party-2008-valencia-spain/">I told in a previous post</a>. Thanks to my friend <strong><a href="http://plunchete.wordpress.com/">plunchete</a></strong>, that put them on touch with me. I got two invitations so <strong><a href="http://www.danilat.com/weblog/">Daniel Latorre</a></strong> came with me.</p>
<p>I met <strong>Clara Rivera</strong> from Google Spain and <strong>Joaquín Cuenca</strong> co-founder of <strong><a href="http://panoramio.com/">Panoramio</a></strong> (bought by Google). And we also were invited to the <strong><a href="http://code.google.com/intl/es/events/developerday/2008/home.html">Google Developer Day</a></strong> on September in Madrid.</p>
<p>There were also other important people like <strong><a href="http://en.wikipedia.org/wiki/Jon_Hall_(programmer)">Jon &#8220;maddog&#8221; Hall</a></strong>, and<strong> </strong><strong><a href="http://en.wikipedia.org/wiki/Tim_Berners-Lee">Tim Berners Lee</a></strong>.</p>
<p>Daniel, like me, is also working on the Google Summer of Code so we talked a little about our experience and the timeline of the program at the Google stand. The video was recorded and here it is (in Spanish, starting at minute 4).</p>
<p><span style="text-align:center; display: block;"><a href="http://gimenetegsoc.wordpress.com/2008/08/05/i-was-at-campus-party-2008/"><img src="http://img.youtube.com/vi/3QBCzWI7Rj0/2.jpg" alt="" /></a></span></p>
<p>In other areas there were talks about programming with the iPhone, how to create a startup, JSF with Oracle,&#8230; Some of them very interesting. It was a great experience.</p>
<p>Here you can see some <a href="http://www.flickr.com/photos/gimenete/sets/72157606484552974/">photos</a> and <a href="http://www.flickr.com/photos/dlato/sets/72157606524358454/">more photos</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gimenetegsoc.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gimenetegsoc.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gimenetegsoc.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gimenetegsoc.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gimenetegsoc.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gimenetegsoc.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gimenetegsoc.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gimenetegsoc.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gimenetegsoc.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gimenetegsoc.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gimenetegsoc.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gimenetegsoc.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=19&subd=gimenetegsoc&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gimenetegsoc.wordpress.com/2008/08/05/i-was-at-campus-party-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/182a2eaaa15b7ef7db5edad19dbd088e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gimenete</media:title>
		</media:content>

		<media:content url="http://img.youtube.com/vi/3QBCzWI7Rj0/2.jpg" medium="image" />
	</item>
		<item>
		<title>Cache implementation reloaded (II)</title>
		<link>http://gimenetegsoc.wordpress.com/2008/08/05/cache-implementation-reloaded-ii/</link>
		<comments>http://gimenetegsoc.wordpress.com/2008/08/05/cache-implementation-reloaded-ii/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 11:32:36 +0000</pubDate>
		<dc:creator>gimenete</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[binary]]></category>
		<category><![CDATA[subclipse]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[zest]]></category>

		<guid isPermaLink="false">http://gimenetegsoc.wordpress.com/?p=17</guid>
		<description><![CDATA[Last week I talked about many changes in the cache implementation. Well, yesterday I made more changes.
My proposal on Summer of Code was based on using an embedded database. But I changed the algorithm that builds the graph and the queries against the database also changed. These queries now are very simple so I&#8217;ve decided [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=17&subd=gimenetegsoc&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Last week I talked about many <a href="http://gimenetegsoc.wordpress.com/">changes in the cache implementation</a>. Well, yesterday I made more changes.</p>
<p><a href="http://code.google.com/soc/2008/subclipse/appinfo.html?csaid=A40A66B36AFD6BFD">My proposal on Summer of Code</a> was based on using an embedded database. But I changed the algorithm that builds the graph and the queries against the database also changed. These queries now are very simple so I&#8217;ve decided to remove the database dependency and use binary files instead. Now I&#8217;m using two files to store the log messages:</p>
<h3>LogMessages file</h3>
<p>This file stores all log messages in a binary format. I use <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/io/RandomAccessFile.html">RandomAccessFile</a> to read and write in it. RandomAccessFile lets me move to a certain byte position with its <em>seek()</em> method. Also it lets me know in which position I am, thanks to the <em>getFilePointer()</em> method.</p>
<h3>Revisions file</h3>
<p>This file indexes the previous file. It stores the offsets of each log message in the <em>logMessages</em> file. This is, from byte 0 to 7 it saves the offset of the first log message; from byte 8 to 15 it saves the offset of the second log message; and so on. That is, for the Nth revision the offset is stored at position (N-1)*8.</p>
<p>If I need to read the log message of a certain revision this is more or less what happens:</p>
<pre>revisions.seek((revision-1)*8);
long offset = revisions.readLong();
logMessages.seek(offset);
logMessage = readNext();</pre>
<p>Very simple, very fast <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>With this file it&#8217;s also very simple to know which is the latest revision number stored:</p>
<pre>long latestRevision = revisions.length() / 8;</pre>
<p>Now it takes about 3 seconds in my computer to build a graph from a repository with 4,000 revisions. The later implementation took 8 seconds. Also the <em>database</em> size is lesser and no initialization is required (the embedded database took about 10 seconds to initializate).</p>
<p>My plan now is to improve the graph output (maybe using <a href="http://www.eclipse.org/gef/zest/">Zest</a>) and try to include merge information.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gimenetegsoc.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gimenetegsoc.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gimenetegsoc.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gimenetegsoc.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gimenetegsoc.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gimenetegsoc.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gimenetegsoc.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gimenetegsoc.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gimenetegsoc.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gimenetegsoc.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gimenetegsoc.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gimenetegsoc.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=17&subd=gimenetegsoc&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gimenetegsoc.wordpress.com/2008/08/05/cache-implementation-reloaded-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/182a2eaaa15b7ef7db5edad19dbd088e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gimenete</media:title>
		</media:content>
	</item>
		<item>
		<title>Cache implementation reloaded</title>
		<link>http://gimenetegsoc.wordpress.com/2008/08/02/cache-implementation-reloaded/</link>
		<comments>http://gimenetegsoc.wordpress.com/2008/08/02/cache-implementation-reloaded/#comments</comments>
		<pubDate>Sat, 02 Aug 2008 12:52:02 +0000</pubDate>
		<dc:creator>gimenete</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://gimenetegsoc.wordpress.com/?p=15</guid>
		<description><![CDATA[It&#8217;s several days since I don&#8217;t talk about my task on Google Summer of Code. I&#8217;ve been having a great discussion in the development mailing list with Stefan Fuhrmann. Stefan has developed the revision graph for TortoiseSVN. Thanks to him I noticed my implementation didn&#8217;t scale. The algorithm wasn&#8217;t lineal, it had and exponential performance. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=15&subd=gimenetegsoc&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>It&#8217;s several days since I don&#8217;t talk about my task on Google Summer of Code. I&#8217;ve been having a <a href="http://subclipse.tigris.org/servlets/BrowseList?list=dev&amp;by=thread&amp;from=666050">great discussion in the development mailing list</a> with Stefan Fuhrmann. Stefan has developed the revision graph for <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a>. Thanks to him <strong>I noticed my implementation didn&#8217;t scale</strong>. The algorithm wasn&#8217;t lineal, it had and exponential performance. These were very bad news.</p>
<p>The problem was with deleting or copying directories. When I got a &#8220;<em>D /trunk/subfolder</em>&#8221; I was marking all subfolders and subfiles as deleted too in that revision. Clearly the performance degrades when the number of files grows. And obviously this is not acceptable since copying a directory is very common: is what is done when you create a branch!</p>
<p>During this week <strong>I&#8217;ve rewritten most of the code</strong>. Now the cache follows these steps:</p>
<ol>
<li>Store all log messages without processing them and using batch updates. Since it doesn&#8217;t process the messages (i.e. mark any calculation about subfiles or subfolders) and it uses batch updates this step has a lineal perfomance and is faster than in the older implementation.</li>
<li>Given a path and revision number it finds the first revision and path of that file (i.e. the root branch). It finds the first &#8220;A&#8221; action that is not a copy.</li>
<li>From the root branch it iterates over the next revisions finding branches.</li>
</ol>
<p><strong>Now the performance meets my expectations</strong>. Steps 2 and 3 take about 8 seconds in a repository with 4,000 revisions. Both steps just make two queries against the database. They don&#8217;t execute any write statement so they are very fast. All the graph is calculated in step 3. The graph information is holded in memory and is serializable so it gives me an opportunity to save it in a file for a future use. That&#8217;s currently not implemented but I&#8217;m discussing it in the development list. Also I&#8217;m thinking a way to avoid the use of the embedded database since the current queries and insertions are very simple and probably I could use just files to store the information. I would like to remove the database dependency because it takes about 10 seconds to be initalizated (i.e. making the <em>getConnection()</em> call).</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gimenetegsoc.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gimenetegsoc.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gimenetegsoc.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gimenetegsoc.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gimenetegsoc.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gimenetegsoc.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gimenetegsoc.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gimenetegsoc.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gimenetegsoc.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gimenetegsoc.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gimenetegsoc.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gimenetegsoc.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=15&subd=gimenetegsoc&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gimenetegsoc.wordpress.com/2008/08/02/cache-implementation-reloaded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/182a2eaaa15b7ef7db5edad19dbd088e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gimenete</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello from the Campus Party 2008, Valencia (Spain)</title>
		<link>http://gimenetegsoc.wordpress.com/2008/07/28/hello-from-the-campus-party-2008-valencia-spain/</link>
		<comments>http://gimenetegsoc.wordpress.com/2008/07/28/hello-from-the-campus-party-2008-valencia-spain/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 14:05:00 +0000</pubDate>
		<dc:creator>gimenete</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[campus]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[party]]></category>
		<category><![CDATA[valencia]]></category>

		<guid isPermaLink="false">http://gimenetegsoc.wordpress.com/?p=13</guid>
		<description><![CDATA[
Google has invited me to the Campus Party this year. All I did was writting a mail to the Google developers blog in spanish. They invited 30 people.
The Campus Party is a meeting of people that loves computers: gamers, developers, etc. It lasts 7 days. This year there are 7714 people here. We have a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=13&subd=gimenetegsoc&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img class="aligncenter" src="http://farm4.static.flickr.com/3286/2709732041_bc8c27c8dd.jpg?v=0" alt="" width="500" height="375" /></p>
<p>Google has invited me to the Campus Party this year. All I did was writting a mail to the <a href="http://programa-con-google.blogspot.com/2008/07/google-en-la-campus-party.html">Google developers blog in spanish</a>. They invited 30 people.</p>
<p>The <a href="http://www.campus-party.es">Campus Party</a> is a meeting of people that loves computers: gamers, developers, etc. It lasts 7 days. This year there are 7714 people here. We have a big internet connection and there are several events. For example Google is going to talk about Android, App Engine, etc.</p>
<p>Also Google Spain sent me an email. They want me to talk about my Summer of Code experience. I want to thank Google for this opportunity. I&#8217;ll post more about this event.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gimenetegsoc.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gimenetegsoc.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gimenetegsoc.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gimenetegsoc.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gimenetegsoc.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gimenetegsoc.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gimenetegsoc.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gimenetegsoc.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gimenetegsoc.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gimenetegsoc.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gimenetegsoc.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gimenetegsoc.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=13&subd=gimenetegsoc&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gimenetegsoc.wordpress.com/2008/07/28/hello-from-the-campus-party-2008-valencia-spain/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/182a2eaaa15b7ef7db5edad19dbd088e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gimenete</media:title>
		</media:content>

		<media:content url="http://farm4.static.flickr.com/3286/2709732041_bc8c27c8dd.jpg?v=0" medium="image" />
	</item>
		<item>
		<title>Integrating the graph into Eclipse</title>
		<link>http://gimenetegsoc.wordpress.com/2008/07/02/integrating-the-graph-into-eclipse/</link>
		<comments>http://gimenetegsoc.wordpress.com/2008/07/02/integrating-the-graph-into-eclipse/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 13:59:33 +0000</pubDate>
		<dc:creator>gimenete</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[subclipse]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://gimenetegsoc.wordpress.com/?p=12</guid>
		<description><![CDATA[Until now the graph was shown in a sepparate window. Now I&#8217;ve integrated it as an Eclipse View.

Also, now the code runs as a background task. Thanks to Steve Elsemore  
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=12&subd=gimenetegsoc&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Until now the graph was shown in a sepparate window. Now I&#8217;ve integrated it as an Eclipse View.</p>
<p><img class="aligncenter" src="http://farm4.static.flickr.com/3017/2630336779_c1ef1bc768.jpg" alt="" /></p>
<p>Also, now the code runs as a background task. Thanks to Steve Elsemore <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gimenetegsoc.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gimenetegsoc.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gimenetegsoc.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gimenetegsoc.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gimenetegsoc.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gimenetegsoc.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gimenetegsoc.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gimenetegsoc.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gimenetegsoc.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gimenetegsoc.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gimenetegsoc.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gimenetegsoc.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=12&subd=gimenetegsoc&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gimenetegsoc.wordpress.com/2008/07/02/integrating-the-graph-into-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/182a2eaaa15b7ef7db5edad19dbd088e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gimenete</media:title>
		</media:content>

		<media:content url="http://farm4.static.flickr.com/3017/2630336779_c1ef1bc768.jpg" medium="image" />
	</item>
		<item>
		<title>The cache design</title>
		<link>http://gimenetegsoc.wordpress.com/2008/07/01/the-cache-design/</link>
		<comments>http://gimenetegsoc.wordpress.com/2008/07/01/the-cache-design/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 11:44:44 +0000</pubDate>
		<dc:creator>gimenete</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[derby]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://gimenetegsoc.wordpress.com/?p=10</guid>
		<description><![CDATA[The biggest challange in my GSoC project is the design and implementation of a cache system. Why a cache system is needed? For two reasons:

To show the revision graph of a file I need a lot of information. If the file is at revision 123 I need to ask the repository for its history from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=10&subd=gimenetegsoc&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The biggest challange in my <strong><a href="http://code.google.com/opensource/gsoc/2008/">GSoC</a></strong> project is the design and implementation of a cache system. Why a cache system is needed? For two reasons:</p>
<ol>
<li>To show the revision graph of a file I need a lot of information. If the file is at revision 123 I need to ask the repository for its history from the base revision to the 123th revision. Next time, suppose the file is at revision 234, so I&#8217;ll need to ask the repository for its history from the base revision to the 234th revision. But, I&#8217;ve asked twice for the information from the base revision to the 123th revision. This is, the information I asked will never change. I should only ask for updates.</li>
<li>The second reason is the most important one. There is no way to ask SVN for the whole revision history of a file. I mean, its history and the history of its branches. If you ask for /trunk/Foo.java, SVN won&#8217;t tell you anything about its branches. If you ask for /branches/2.x/Foo.java SVN won&#8217;t tell you anything about other branches or changes in /trunk/Foo.java since the 2.x branch was created.</li>
</ol>
<p>So what to do? The solution appears to be building a cache system. The cache will store information previously asked and also will store the information about branches in order to query easily for the whole history of a given file.</p>
<p>My cache design is based in an embedded database (<a href="http://db.apache.org/derby/">Apache Derby</a>) with the following structure.</p>
<h3>The &#8220;files&#8221; table</h3>
<p>I&#8217;ve decided to give a unique ID to each file. The same ID is shared with all its branches. So /trunk/Foo.java and /branches/2.x/Foo.java have the same ID. This table tells you for example:</p>
<p><em>/trunk/Foo.java was added in revision xxx, deleted in revision yyy and has the ID 123</em></p>
<p>With this table you can ask for exmple</p>
<p><em>Which ID has the file /foo/bar.c in revision 123?</em></p>
<p>And when you get the ID of a file you can ask for all its branches and when they were created.</p>
<h3>The other tables</h3>
<p>There are other two tables: <em>revisions</em> and <em>change_paths</em>. These tables just store all the log information: author, revision number, date, action,&#8230;</p>
<h3>The algorithm</h3>
<p>When someone wants to see the graph of a file. I follow these steps.</p>
<ol>
<li>Fetch all the log information from the repository. Or only the updates from the last revision that was stored in the cache.</li>
<li>Store the fetched information in the cache. Calculating IDs and branches.</li>
<li>Query the cache for the *whole* history of a file. This is a simple query: <em>Give me all the log messages of the file with ID xxx</em>.</li>
</ol>
<p>The problem is that the first two steps can be high time comsumption tasks. But in my opinion the big goal is to make the third step as fast as possible. As I learnt in database design the queries are the most important. However I&#8217;ve thought about possible changes to improve performance.</p>
<h3>Possible alternatives</h3>
<p>To only use the &#8220;files&#8221; table. Storing just the branching information will make the cache smaller. With the information of this table you know when files were added, deleted and branched. The information about authors, comments, dates and M (modify) actions will be fetched on demand. This approach could have two steps. First building a simple graph with the branches and then the information about authors, comments,&#8230; could be loaded asynchronously.</p>
<p>To only store the log messages of selected files. This is, not to store all log messages but only the log messages of those files that are required to show the graph. This is the same than the previous approach but storing the log messeges once they have been fetched from the repository.</p>
<p>These approaches make the cache smaller. But they need to connect to the repository several times. I will only change my main approach to one of these if queries are slow.</p>
<p>My focus now is to resolve some bugs and improve the graphical part. This is, I want to integrate the graph into an eclipse view / editor and make it work with small but real-life repositories. I also want to show a progress bar while the cache is fetching information from the repository or while is calculating the IDs and branches.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gimenetegsoc.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gimenetegsoc.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gimenetegsoc.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gimenetegsoc.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gimenetegsoc.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gimenetegsoc.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gimenetegsoc.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gimenetegsoc.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gimenetegsoc.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gimenetegsoc.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gimenetegsoc.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gimenetegsoc.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=10&subd=gimenetegsoc&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gimenetegsoc.wordpress.com/2008/07/01/the-cache-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/182a2eaaa15b7ef7db5edad19dbd088e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gimenete</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenJavaDay 2008</title>
		<link>http://gimenetegsoc.wordpress.com/2008/06/24/openjavaday-2008/</link>
		<comments>http://gimenetegsoc.wordpress.com/2008/06/24/openjavaday-2008/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 09:19:49 +0000</pubDate>
		<dc:creator>gimenete</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[madrid]]></category>
		<category><![CDATA[openjavaday]]></category>

		<guid isPermaLink="false">http://gimenetegsoc.wordpress.com/?p=9</guid>
		<description><![CDATA[The day after tomorrow starts the OpenJavaDay 2008. I&#8217;m travelling this afternoon to Madrid to assist. OpenJavaDay is organized by Sun Microsystem and JavaHispano, a Java community in Spanish.
If someone wants to come I&#8217;ll be there  
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=9&subd=gimenetegsoc&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The day after tomorrow starts the <a href="http://javahispano.org/openjavaday/index.html">OpenJavaDay 2008</a>. I&#8217;m travelling this afternoon to Madrid to assist. OpenJavaDay is organized by Sun Microsystem and JavaHispano, a Java community in Spanish.</p>
<p>If someone wants to come I&#8217;ll be there <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gimenetegsoc.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gimenetegsoc.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gimenetegsoc.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gimenetegsoc.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gimenetegsoc.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gimenetegsoc.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gimenetegsoc.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gimenetegsoc.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gimenetegsoc.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gimenetegsoc.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gimenetegsoc.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gimenetegsoc.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gimenetegsoc.wordpress.com&blog=3597624&post=9&subd=gimenetegsoc&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://gimenetegsoc.wordpress.com/2008/06/24/openjavaday-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/182a2eaaa15b7ef7db5edad19dbd088e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gimenete</media:title>
		</media:content>
	</item>
	</channel>
</rss>