<?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/"
	>

<channel>
	<title>Vitor Rodrigues &#187; Open Source</title>
	<atom:link href="http://www.vitorrodrigues.com/blog/category/tech/software/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vitorrodrigues.com/blog</link>
	<description></description>
	<lastBuildDate>Mon, 28 Sep 2009 18:05:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>EclipseDay 2009 at the Googleplex</title>
		<link>http://www.vitorrodrigues.com/blog/2009/08/31/eclipseday-2009-at-the-googleplex/</link>
		<comments>http://www.vitorrodrigues.com/blog/2009/08/31/eclipseday-2009-at-the-googleplex/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 04:09:21 +0000</pubDate>
		<dc:creator>vitor</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.vitorrodrigues.com/blog/?p=144</guid>
		<description><![CDATA[Last Thursday, August 27th, Google kindly hosted the second edition of the EclipseDay at the Googlepex. The event was a full day of technical sessions on Eclipse. Having been an Eclipse tools developer for the last 1-year, this event was an excellent opportunity to improve my Eclipse skills, network with other Eclipse developers and attend [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Last Thursday, August 27th, Google kindly hosted the second edition of the <a href="http://wiki.eclipse.org/Eclipse_Day_At_Googleplex_2009">EclipseDay at the Googlepex</a>. The event was a full day of technical sessions on Eclipse. Having been an Eclipse tools developer for the last 1-year, this event was an excellent opportunity to improve my Eclipse skills, network with other Eclipse developers and attend a series of excellent talks.</p>
<p style="text-align: left;">The <a href="http://wiki.eclipse.org/Eclipse_Day_At_Googleplex_2009#Agenda">agenda </a>divided the sessions in two tracks and I selected the following sessions to attend:</p>
<ul style="text-align: left;">
<li style="text-align: justify;"><strong>Eclipse in the Enterprise: Lessons from Google</strong>, by Terry Parker and Robert Konigsberg from Google: the day started with this joint keynote session from Terry and Robert, where they described how Eclipse at Google evolved from the days when it was just used by a small group of developers and any integration with Google&#8217;s building system was done through external scripts and some manual hacks, to today&#8217;s enterprise deployment of a customized Eclipse environment with complete integration with the build system, in addition to usability/functionality enhancements to automate some developers&#8217; tasks.</li>
<li style="text-align: justify;"><strong>OSGi for Eclipse Developers</strong>, by Chris Aniszczyk from EclipseSource: I enjoyed all the sessions, but this was the best session of the day for me! After reading a few tutorials about <a href="http://www.osgi.org">OSGi</a> and getting the feeling that I was missing something about it, Chris presentation finally nailed it for me! The fact that he started by explaining OSGi without mentioning Eclipse helped a lot, as previous tutorials I had read mixed both OSGi and <a href="http://www.eclipse.org/equinox/">Equinox</a> and I ended up not understanding what was pure OSGi and what was Eclipse. The session covered several topics, as the OSGi services architecture, bundles, life cycle and even how you can run <a href="http://buglabs.net/products">BUG modules</a> on OSGi <img src='http://www.vitorrodrigues.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Overall a great session, and it was good to talk to him later during the break and discuss OSGi a bit more.</li>
<li style="text-align: justify;"><strong>Developing for Android with Eclipse</strong>, by Xavier Ducrohet from Google: Xavier is the lead for the Android SDK and in this session he covered several aspects of the SDK, from a quick start with the SDK to issues they have found while developing, it the most common used features and opened the curtain on some new features to come. Xavier also covered some of the issues/limitations with using the emulator instead of a real device.</li>
<li style="text-align: justify;"><strong>Deploying Successful Enterprise Tools</strong>, by Joep Rottinghuis from eBay: based on his experience with leading an Eclipse tools team at eBay, Joep described the process of building, deploying and supporting tools in the enterprise level. The session was not specifically focused on Eclipse but nonetheless offered very valuable insights on the challenges one encounters when deploying tools in the enterprise, from early adoption to user feedback, maintenance, documentation and support, besides the effort necessary to come up with new and improved functionality.</li>
<li style="text-align: justify;"><strong>Build and Provision: Two Sides of the Coin We Love to Hate</strong>, Ed Merks, EMF lead: after having read several chapters from <a href="http://www.amazon.com/gp/product/0321331885?ie=UTF8&amp;tag=vitorrodrigue-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321331885">EMF: Eclipse Modeling Framework (2nd Edition)</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=vitorrodrigue-20&amp;l=as2&amp;o=1&amp;a=0321331885" border="0" alt="" width="1" height="1" /> just a few months ago, I really wanted to attend Ed&#8217;s talk. After all, I have been using a fairly decent dose of EMF lately and it is always great to hear the leaders in the technologies we use.  However, as the title suggests, the session was not about EMF but about the Eclipse&#8217;s build and provision system. Ed&#8217;s presentation focused on how the build is an essential tool to any project and, at the same time, not generally liked by most of the participants in the project, (especially) due to the constraints caused when the build breaks. Then he went on to explain the Eclipse build process, together with the efforts that have been done on automation and provisioning.</li>
</ul>
<p style="text-align: justify;">Overall, it was a great day! Although 3 sessions focused on build/provisioning/deployment, each one of them tackled different aspects of the process and contributed with valuable insights. Another thing I would like to note is the quality of the speakers and their sessions! No product or marketing pitch, just pure technical joy <img src='http://www.vitorrodrigues.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: justify;">As of this writing, the slides are available online at <a href="http://wiki.eclipse.org/Eclipse_Day_At_Googleplex_2009#Presentation_Slides_.26_Videos">http://wiki.eclipse.org/Eclipse_Day_At_Googleplex_2009#Presentation_Slides_.26_Videos</a></p>
<p style="text-align: justify;">Thanks to the organizers for EclipseDay 2009, and hope to join you again in 2010!</p>
<img src="http://www.vitorrodrigues.com/blog/?ak_action=api_record_view&id=144&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.vitorrodrigues.com/blog/2009/08/31/eclipseday-2009-at-the-googleplex/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Debugging Ant tasks in Eclipse</title>
		<link>http://www.vitorrodrigues.com/blog/2009/07/10/debugging-ant-tasks-in-eclipse/</link>
		<comments>http://www.vitorrodrigues.com/blog/2009/07/10/debugging-ant-tasks-in-eclipse/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 08:16:31 +0000</pubDate>
		<dc:creator>vitor</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jpda]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[trick]]></category>

		<guid isPermaLink="false">http://www.vitorrodrigues.com/blog/?p=138</guid>
		<description><![CDATA[Today I came  an issue that required me to debug a custom Ant task that we have. While the Eclipse integrated debugger allows you to step through the targets and tasks in the build.xml file using the action Debug As -&#62; Ant Script, it doesn&#8217;t actually let you step into the java class that implements [...]]]></description>
			<content:encoded><![CDATA[<p>Today I came  an issue that required me to debug a custom Ant task that we have. While the Eclipse integrated debugger allows you to step through the targets and tasks in the build.xml file using the action <em>Debug As -&gt; Ant Script</em>, it doesn&#8217;t actually let you step into the java class that implements the task. This is a major drawback, as most of the complexity (and issues <img src='http://www.vitorrodrigues.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ) tend to be in the task implementation code.</p>
<p>After searching around for a bit, I came across the Eclipse Remote Debugger debug configuration. This configuration allows you to remotely debug applications, by establishing a JDWP (Java Debug Wire Protocol, part of JPDA &#8211; <a href="http://en.wikipedia.org/wiki/Java_Platform_Debugger_Architecture">Java Platform Debug Architecture</a>) connection between the running application and the debugger. After learning about this, setting up the environment to debugg Ant tasks from within Eclipse was pretty straightforward.</p>
<p>The first step is to setup the Ant script launcher to run in debug mode and attach to the debug server. The following should be used as JRE arguments for the Ant configuration:</p>
<p>-Xdebug -agentlib:jdwp=transport=dt_socket,server=y,address=8000</p>
<p>You can setup your Ant configuration by going to <em>Run -&gt; External Tools -&gt; External Tools Configurations</em> and creating a new <em>Ant Build</em> configuration. Inser the location of the build file in the <em>main</em> tab and setup the arguments in the <em>JRE</em> tab:</p>
<p><a href="http://www.vitorrodrigues.com/blog/wp-content/uploads/2009/07/ant_jre_arguments.jpg"><img title="ant_jre_arguments" src="http://www.vitorrodrigues.com/blog/wp-content/uploads/2009/07/ant_jre_arguments.jpg" alt="" /><br />
 </a></p>
<p>After the Ant configuration is setup, we need to take care of the remote debugger configuration. Go to <em>Run -&gt; Debug Configurations&#8230;</em> and create a new configuration for <em>Remote Java Application</em>. Make sure you set the same port number that you used in the Ant configuration, and you are good to go.</p>
<p><img src="http://www.vitorrodrigues.com/blog/wp-content/uploads/2009/07/remoteantdebugger.jpg" alt="" /></p>
<p>Now, place the breakpoints in your build.xml and java classes. In order to debug, you need to first launch the Ant script and then attach the debugger to it. Do right click in the build.xml file and select <em>Debug As -&gt; Ant Script</em>. Then go to <em>Run -&gt; Debug Configurations&#8230;</em> select the <em>Remote Ant Debugger </em>and click <em>Debug</em>. The debugger will now attach to the running proccess and let you step through both the xml file and the java classes:</p>
<p><a href="http://www.vitorrodrigues.com/blog/wp-content/uploads/2009/07/debug_ant_task.jpg"><img title="debug_ant_task" src="http://www.vitorrodrigues.com/blog/wp-content/uploads/2009/07/debug_ant_task.jpg" alt="" /></a></p>
<p><a href="http://www.vitorrodrigues.com/blog/wp-content/uploads/2009/07/debug_ant_task.jpg"><img title="debug_ant_task" src="http://www.vitorrodrigues.com/blog/wp-content/uploads/2009/07/debugging_ant_task.jpg" alt="" /></a></p>
<p>Have fun!</p>
<img src="http://www.vitorrodrigues.com/blog/?ak_action=api_record_view&id=138&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.vitorrodrigues.com/blog/2009/07/10/debugging-ant-tasks-in-eclipse/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Monitor calibration in Linux</title>
		<link>http://www.vitorrodrigues.com/blog/2008/10/27/monitor-calibration-in-linux/</link>
		<comments>http://www.vitorrodrigues.com/blog/2008/10/27/monitor-calibration-in-linux/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 03:09:11 +0000</pubDate>
		<dc:creator>vitor</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[argyll]]></category>
		<category><![CDATA[argyllcms]]></category>
		<category><![CDATA[calibration]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[editing]]></category>
		<category><![CDATA[gimp]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[monitor]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[spyder2]]></category>
		<category><![CDATA[spyder2express]]></category>

		<guid isPermaLink="false">http://www.vitorrodrigues.com/blog/?p=135</guid>
		<description><![CDATA[If you are into photography, then you should already know that calibrating your monitor is something really important if you plan to print your pictures. I recently printed some photos and noticed that the printed colors were considerably different from the colors on my LCD. After comparing my monitor with a few others, it was [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">If you are into photography, then you should already know that calibrating your monitor is something really important if you plan to print your pictures. I recently printed some photos and noticed that the printed colors were considerably different from the colors on my LCD. After comparing my monitor with a few others, it was obvious that mine, and some of the others too, were not color calibrated.</p>
<p style="text-align: justify;">Monitors can be calibrated to display the &#8220;correct&#8221; colors by using a calibration device, complemented by the vendor software. I decided to buy the <a href="http://spyder.datacolor.com/product-mc-s2e.php">Spyder2Express</a> since it had good reviews and a reasonable price. Unfortunately, there is no color calibration device that is supported on Linux by its vendor and I currently use Linux (openSuse) as my main operative system. I could use my work laptop running windows to calibrate the monitor, then export the color profile and import it in Linux. There is an article <a href="http://jcornuz.wordpress.com/2007/09/26/color-managed-monitor-i/">here</a> on how to do it. With help from one of the comments in that article, I found about <a href="http://argyllcms.com/">Argyll Color Management System</a>. Argyll is a monitor calibration software package for Linux that supports most of the existing calibration devices. It uses the Windows binary software to create a Linux binary in order to be able to communicate with the device to run the calibration tests and create a color profile. It also provides an utility to apply the color profile to your monitor.</p>
<p style="text-align: justify;">The steps to calibrate your monitor in Linux using Argyll are pretty simple. In my case, using the Syper2Express device, all I had to do was runt the following commands(as root, or give the user permission to communicate with the usb device):</p>
<pre>$ cd Argyll_V1.0.3/
$ ./spyd2en -v /media/ColorVision/setup/setup.exe (creates binary file to communicate with device)
$ ./dispcal -v -y l -o MyMonitor (runs calibration tests and creates monitor color profile)
$  ./dispwin MyMonitor.icc (applies color profile to monitor)
</pre>
<p style="text-align: justify;">The generated color profile can also be imported to your post processing software like <a href="http://www.gimp.org/">GIMP</a> in order to use the monitor color profile instead of using a more common profile like sRGB or Adobe RGB.</p>
<img src="http://www.vitorrodrigues.com/blog/?ak_action=api_record_view&id=135&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.vitorrodrigues.com/blog/2008/10/27/monitor-calibration-in-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Batch update of EXIF info</title>
		<link>http://www.vitorrodrigues.com/blog/2008/09/06/batch-update-of-exif-info/</link>
		<comments>http://www.vitorrodrigues.com/blog/2008/09/06/batch-update-of-exif-info/#comments</comments>
		<pubDate>Sat, 06 Sep 2008 19:26:40 +0000</pubDate>
		<dc:creator>vitor</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[exiftool exif opensource linux commandline utility phot]]></category>

		<guid isPermaLink="false">http://www.vitorrodrigues.com/blog/?p=134</guid>
		<description><![CDATA[exiftool is a very useful utility that allows you to query or edit EXIF information from pictures. Going through some of my pictures recently, I have found some sets of pictures with incorrect date in the EXIF info, be it a few hours off or even 1 year and a few days off. Fixing them [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sno.phy.queensu.ca/~phil/exiftool/">exiftool</a> is a very useful utility that allows you to query or edit EXIF information from pictures. Going through some of my pictures recently, I have found some sets of pictures with incorrect date in the EXIF info, be it a few hours off or even 1 year and a few days off. Fixing them one by one was not an option, so after a couple of searches on google I found exiftool. It is a command line utility that lets you edit EXIF information and you can do it in batches of files or folders, even using conditions to specify when a change must be applied.</p>
<p>For me, the need was only to change some photos info so that it shows the real time they were taken, three hours before the saved setting. The command was as simple as this:</p>
<p><code>exiftool -DateTimeOriginal-='0:0:0 3:0:0' -CreateDate-='0:0:0 3:0:0' myfolder/</code></p>
<p>The format for date changes is &#8216;YYY:MM:dd hh:mm:ss&#8217;.</p>
<img src="http://www.vitorrodrigues.com/blog/?ak_action=api_record_view&id=134&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.vitorrodrigues.com/blog/2008/09/06/batch-update-of-exif-info/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mylyn task manager</title>
		<link>http://www.vitorrodrigues.com/blog/2008/07/01/mylyn-task-manager/</link>
		<comments>http://www.vitorrodrigues.com/blog/2008/07/01/mylyn-task-manager/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 21:19:45 +0000</pubDate>
		<dc:creator>vitor</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[clearcase]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[mylyn]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[taks]]></category>

		<guid isPermaLink="false">http://www.vitorrodrigues.com/blog/?p=131</guid>
		<description><![CDATA[When I migrated my development environment to Eclipse 3.4 Ganymede, one of the things that caught my attention on Eclipse&#8217;s update website was a plugin called Mylyn. A visit to the website, a look over the webcast and it sounded something promising. It definitely is! Mylyn is a task manager that changes your IDE context [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">When I migrated my development environment to <a href="http://www.eclipse.org/ganymede/">Eclipse 3.4 Ganymede</a>, one of the things that caught my attention on Eclipse&#8217;s update website was a plugin called <a href="http://www.eclipse.org/mylyn/">Mylyn</a>. A visit to the website, a look over the webcast and it sounded something promising.</p>
<p style="text-align: justify;">It definitely is! Mylyn is a task manager that changes your <a href="http://en.wikipedia.org/wiki/Integrated_development_environment">IDE</a> context based on tasks. You create a task, add resources to its context and when you activate the task, it hides all the other (unneeded) resources from your views (project/package explorer, outlines, editors, etc&#8230;). It provides integration with several task repositories, like <a href="http://www.bugzilla.org/">Bugzilla</a> and <a href="http://trac.edgewall.org/">Trac</a>. Unfortunately, it doesn&#8217;t provide a connector to <a href="http://www.ibm.com/software/awdtools/clearcase/">Clearcase</a>, but I&#8217;m still able to use it in an automated way.</p>
<p style="text-align: justify;">I find the tool really awesome when I do something basic like switching tasks: it just closes all the editor windows and projects in the explorer for the task I&#8217;m leaving and opens all the files I was working on for the task I&#8217;m switching to. This would take me several minutes to do by myself, so having a tool that does that in 1 second is pretty neat!</p>
<p style="text-align: justify;">Here are some more things I like about Mylyn:</p>
<ul>
<li>ability to customize <a href="http://en.wikipedia.org/wiki/Concurrent_Versions_System">CVS</a>/<a href="http://subversion.tigris.org/">SVN</a> checkin comments based on templates. Most, if not all, of my commit comments are in the form of &#8220;Bug#xxxxx: 1 line description of the bug and fix&#8221;. With Mylyn, I can get the comment populated automatically with information from the associated task.</li>
<li>when I (re)activate a task, it positions the cursor in the file and method (if java file) I was working on.</li>
<li>I can use the URL feature to link to the Clearcase defect page for each one of my defects</li>
<li>dynamically adds resources as we follow method references</li>
<li>Mylyn filters unrelated content from all views, but I especially like the end result for the package explorer and outline view. When working with classes that have tens of methods, showing just a handful of them in the outline simplifies things a lot!</li>
</ul>
<p>And the things I don&#8217;t like that much:</p>
<ul>
<li>no connector to Rational ClearCase. I have to copy some notes and Defect info from Clearcase to my task manually.</li>
<li>the option to show filtered content only shows content at the same level. I would like to have a &#8220;show all&#8221; option for when I need to look for some resource.</li>
<li>It slows down the system a bit. Not too bad, but I do notice it when I have several eclipse instances running.</li>
</ul>
<p>Overal, I think Mylyn is a great tool and very useful! Even more if you are working with Bugzilla/Trac projects.</p>
<p>If you want to give it a try, this is <a title="Mylyn" href="http://www.eclipse.org/mylyn/">Mylyn&#8217;s homepage</a> and this is a <a title="Mylyn Tutorial" href="http://www.ibm.com/developerworks/java/library/j-mylyn1/">Mylyn tutorial</a>.</p>
<p style="text-align: justify;"> </p>
<img src="http://www.vitorrodrigues.com/blog/?ak_action=api_record_view&id=131&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.vitorrodrigues.com/blog/2008/07/01/mylyn-task-manager/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Persisting XML with OpenJPA</title>
		<link>http://www.vitorrodrigues.com/blog/2007/10/23/persisting-xml-in-openjpa/</link>
		<comments>http://www.vitorrodrigues.com/blog/2007/10/23/persisting-xml-in-openjpa/#comments</comments>
		<pubDate>Tue, 23 Oct 2007 18:15:46 +0000</pubDate>
		<dc:creator>vitor</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[db2]]></category>
		<category><![CDATA[db2express-c]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jpa]]></category>
		<category><![CDATA[mapping]]></category>
		<category><![CDATA[openjpa]]></category>
		<category><![CDATA[orm]]></category>
		<category><![CDATA[persistence]]></category>
		<category><![CDATA[purexml]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.vitorrodrigues.com/blog/2007/10/23/persisting-xml-in-openjpa/</guid>
		<description><![CDATA[I&#8217;ve been looking at JPA &#8211; Java Persistence Architecture and decided to play a bit with OpenJPA using DB2 as the back-end. My goal: to persist and query XML data in DB2, making use of DB2&#8242;s pureXML capabilities to query the XML data using SQL/XML&#8216;s XMLQUERY() function. However, while OpenJPA has an extensive documentation, the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking at <a href="http://java.sun.com/javaee/overview/faq/persistence.jsp">JPA &#8211; Java Persistence Architecture</a> and decided to play a bit with <a href="http://openjpa.apache.org">OpenJPA </a>using <a href="http://www.ibm.com/db2/express">DB2 </a>as the back-end. My goal: to persist and query XML data in DB2, making use of DB2&#8242;s <a href="http://www.ibm.com/software/data/db2/9/editions_features_purexml.html%20">pureXML </a>capabilities to query the XML data using <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=35341">SQL/XML</a>&#8216;s XMLQUERY() function.
</p>
<p>However, while OpenJPA has an <a href="http://openjpa.apache.org/docs/latest/manual/manual.html">extensive documentation</a>, the examples are not always complete and there isn&#8217;t a lot of information on the web regarding OpenJPA error determination and solving. So, here are some recommendations for some of the problems I have encountered. The class <em>xml.Addres</em>s is the one to be persisted as XML in the database using JPA and it is stored as the field <em>shipAddress </em>of the <em>Order </em>objects.<br />
  
</p>
<pre> [java] Exception in thread "main" &lt;openjpa-1.0.0-r420667:568756 fatal user error&gt;
org.apache.openjpa.persistence.ArgumentException:
Type "class xml.Address" does not have persistence metadata.&nbsp;
</pre>
<p><strong>Suggestion:</strong> Remove the reference to <em>xml.Address</em> from <em>persistence.xml</em>.&nbsp;
</p>
<pre>[java] Exception in thread "main" &lt;openjpa-1.0.0-r420667:568756 nonfatal user error&gt;
org.apache.openjpa.persistence.InvalidStateException:
Encountered unmanaged object "xml.Address@9b2a51" in
persistent field "xml.Order.shipAddress" of managed object "xml.Order@12b3349"
during flush.&nbsp; However, this field does not allow cascade persist.&nbsp;
You cannot flush unmanaged objects.
  [java] FailedObject: xml.Address@9b2a51
</pre>
<p><strong>Suggestion</strong><strong>:</strong> Make sure you have no <em>@Entity</em> or <em>@Embeddable</em> annotations in <em>xml.Address</em>. The main annotation is <em>@XmlRootElement</em>.
</p>
<pre> [java] Exception in thread "main" &lt;openjpa-1.0.0-r420667:568756 fatal general error&gt;
org.apache.openjpa.persistence.PersistenceException:
"xml" doesnt contain ObjectFactory.class or jaxb.index
</pre>
<p><strong>Suggestion</strong><strong>:</strong> add a file <em>jaxb.index</em> into your <em>xml </em>package containing all the classes to be persisted as XML: a file containing <em>Address</em> in our case.</p>
<img src="http://www.vitorrodrigues.com/blog/?ak_action=api_record_view&id=116&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.vitorrodrigues.com/blog/2007/10/23/persisting-xml-in-openjpa/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Photoshop filters on GIMP</title>
		<link>http://www.vitorrodrigues.com/blog/2007/10/18/photoshop-filters-on-gimp/</link>
		<comments>http://www.vitorrodrigues.com/blog/2007/10/18/photoshop-filters-on-gimp/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 15:48:44 +0000</pubDate>
		<dc:creator>vitor</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://www.vitorrodrigues.com/blog/2007/10/18/photoshop-filters-on-gimp/</guid>
		<description><![CDATA[For the GIMP users that, like me, keep complaining that Photoshop has so much more filters to do some fancy effects, the agony is over I just found this today, but it dates back to 2004. There is a GIMP plugin that handles Photoshop plugins. It is called PSPI and it works like a charm [...]]]></description>
			<content:encoded><![CDATA[<p>For the <a href="http://gimp.org/">GIMP </a>users that, like me, keep complaining that Photoshop has so much more filters to do some fancy effects, the agony is over <img src='http://www.vitorrodrigues.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />
</p>
<p>I just found <a href="http://www.gimptalk.com/forum/topic/Installing-using-New-Photoshop-Plugin-Or-Filter-For-with-Gimp-3-1.html#P_295">this</a> today, but it dates back to 2004. There is a GIMP plugin that handles Photoshop plugins. It is called PSPI and it works like a charm on the filters I have tested so far.
</p>
<p>Here are the instructions on how to get it working on Windows:
</p>
<ol>
<li>download the binary package from <a href="http://www.gimp.org/%7Etml/gimp/win32/pspi.html">here</a>.<br />
  </li>
<li>copy the plugin file to &#8220;C:\Program Files\GIMP-2.0\lib\gimp\2.0\plug-ins&#8221;</li>
<li>start GIMP</li>
<li>click on Menu Xtns -&gt; Photoshop Plug-in Settings</li>
<li>add the folders where you have your photoshop plugins (.exe or .8bf files)</li>
<li>restart GIMP</li>
<li>all the compatible plugins in the folders you specified in step 5 will show up under the Filters menu (*)<br />
  </li>
</ol>
<p>This was a new for me, and I&#8217;m quite happy as there was a couple of photoshop filters that I like to play with sometimes (just for fun, but still).
</p>
<p>(*) For some odd reason, all my plugins appear under the sub-menu &#8220;Flaming Pear&#8221;, the creators of the first <a href="http://photoshop.pluginsworld.com/plugin.php?directory=adobe&amp;software=photoshop&amp;plugin=201">photoshop plugin</a> I loaded into GIMP.<br />
  </p>
<img src="http://www.vitorrodrigues.com/blog/?ak_action=api_record_view&id=115&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.vitorrodrigues.com/blog/2007/10/18/photoshop-filters-on-gimp/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>DB2 on Rails update</title>
		<link>http://www.vitorrodrigues.com/blog/2007/10/17/db2-on-rails-update/</link>
		<comments>http://www.vitorrodrigues.com/blog/2007/10/17/db2-on-rails-update/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 20:45:35 +0000</pubDate>
		<dc:creator>vitor</dc:creator>
				<category><![CDATA[DB2 pureXML]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[db2]]></category>
		<category><![CDATA[db2onrails]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[mapping]]></category>
		<category><![CDATA[oxm]]></category>
		<category><![CDATA[purexml]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ror]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.vitorrodrigues.com/blog/2007/10/17/db2-on-rails-update/</guid>
		<description><![CDATA[I&#8217;m back to fiddling around with my Ruby on Rails experiments(1)(2). I was able to create a very useful 2-way mapping between Ruby objects and xml data stored in DB2 pureXML. Basically, trying to replicate some of ActiveRecord&#8217;s functionality but for XML data. I still find it odd, though, that both ROXML and xml-mapping haven&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m back to fiddling around with my Ruby on Rails experiments(<a href="http://www.vitorrodrigues.com/blog/2007/06/13/ruby-libxml-annoyances/">1</a>)(<a href="http://www.vitorrodrigues.com/blog/2007/07/05/xml-mapping-in-ruby/">2</a>). I was able to create a very useful 2-way mapping between Ruby objects and xml data stored in DB2 pureXML. Basically, trying to replicate some of ActiveRecord&#8217;s functionality but for XML data. I still find it odd, though, that both <a href="http://roxml.rubyforge.org">ROXML </a>and <a href="http://xml-mapping.rubyforge.org/">xml-mapping</a> haven&#8217;t had much activity as of late. I&#8217;m wondering if there is any new OXM library around that I don&#8217;t know of.<br />
  
</p>
<p>Also on the same topic:
</p>
<ul>
<li>the main <a href="http://db2onrails.com/">DB2 on Rails</a> website is up and running again, with a revamped design and now using wordpress instead of typo.</li>
<li>a new version of the ibm_db driver was also released, containing several bugfixes. Update it through gems (gem update ibm_db) or from here: http://rubyforge.org/projects/rubyibm/&nbsp;</li>
</ul>
<img src="http://www.vitorrodrigues.com/blog/?ak_action=api_record_view&id=114&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.vitorrodrigues.com/blog/2007/10/17/db2-on-rails-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DB2 Student Ambassador</title>
		<link>http://www.vitorrodrigues.com/blog/2007/09/15/db2-student-ambassador/</link>
		<comments>http://www.vitorrodrigues.com/blog/2007/09/15/db2-student-ambassador/#comments</comments>
		<pubDate>Sat, 15 Sep 2007 10:14:57 +0000</pubDate>
		<dc:creator>vitor</dc:creator>
				<category><![CDATA[DB2 pureXML]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.vitorrodrigues.com/blog/2007/09/15/db2-student-ambassador/</guid>
		<description><![CDATA[After reading Alcides Fonseca&#8217;s post regarding is opportunity to become an MSP and asking whether other companies have similar programs, I would like to introduce two programs related with DB2 that are targeted for university students: DB2 On Campus and DB2 Student Ambassador. DB2 on Campus: The DB2 on Campus Program is a project designed [...]]]></description>
			<content:encoded><![CDATA[<p>After reading <a href="http://alcides.ideias3.com/blog/108">Alcides Fonseca&#8217;s post</a> regarding is opportunity to become an MSP and asking whether other companies have similar programs, I would like to introduce two programs related with DB2 that are targeted for university students: DB2 On Campus and DB2 Student Ambassador.
</p>
<p><strong>DB2 on Campus</strong>: The DB2 on Campus Program is a project designed to promote the use of DB2 in universities. The logistics and delivery of the program is performed between the DB2 Express-C team, and the local <a href="http://www.ibm.com/university/academicinitiative/">IBM Academic Initiative</a> representative. The program consists of the following items and activities:
</p>
<ol>
<li>A speech titled “The role of DB2 Express-C in the Information on Demand World”. This speech explains DB2 9 technology, with an emphasis on pureXML™, and encourages students to use DB2 Express-C, create university DB2 user groups, participate in the DB2 forums, and write documents about DB2. All of these activities can help them to advance their future careers.</li>
<li>Introductory DB2 courses to obtain DBA and developer skills.</li>
<li>Free DB2 books donated to the university library</li>
<li>Free DB2 certification exams offered to the students</li>
</ol>
<p>I will be at University of Minho on September 19th doing the speech for the DB2 on Campus program. There was not enough time to prepare the full-day event, but if you or someone at your university is interested in having this full-day event happening at your university, please feel free to email me and I&#8217;ll put you in contact with the program&#8217;s manager in order to schedule the event (my email is vrodrig at us.ibm.com).
</p>
<p>There is a DB2 On Campus Facebook group. Follow <a href="http://www.ibm.com/developerworks/forums/dw_thread.jsp?forum=805&amp;thread=165580&amp;cat=19&amp;message=13960847&amp;treeDisplayType=threadModel#13960847">these instructions</a> to join.&nbsp;
</p>
<p>Subscribe to the <a href="http://db2expressc.blogspot.com/">DB2 Express-C blog</a> to keep updated on news regarding this <a href="http://www-306.ibm.com/software/data/db2/express/index.html">free to develop, deploy and distribute database</a>(1).&nbsp;
</p>
<p><strong>DB2 Student Ambassador</strong>: This is a program for individual students that want to promote the use of DB2 at their education institutions. Though the program is voluntary, it gives students a chance to learn more about DB2, develop presentation skills and marketing skills. All of these skills will be valuable in their careers. <strong>At the end of the program, the student will receive a letter of recommendation from IBM</strong> including all the details of the activities performed. The more activities performed, the better the letter of recommendation! We hope this will help the student get a job more easily in the future.
</p>
<p>I consider this to be an excellent opportunity to get involved and interact with developers from a huge project like DB2, distributed across Toronto and Silicon Valley laboratories.</p>
<p>More information&nbsp; about this program can be found here: <a href="http://www-306.ibm.com/software/data/db2/express/students_programs.html#ambassador">http://www-306.ibm.com/software/data/db2/express/students_programs.html#ambassador</a>
</p>
<p>&nbsp;
</p>
<p>Although I&#8217;m only familiar with the DB2 programs, for the ones interested, there is also an IBM Academic Initiative program, focused on <a href="http://www-304.ibm.com/jct09002c/university/scholars/academicinitiative/">Open Standars, Open Source and IBM resources for the academic world</a>.
</p>
<p>The opportunities are out there, so just grab the one you like and boost your career <img src='http://www.vitorrodrigues.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />
</p>
<p>(1) Yes, it is the fully loaded version available for free, with one limitation: it can only use up to 4GB of RAM <img src='http://www.vitorrodrigues.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> &nbsp;
</p>
<p>&nbsp;
</p>
<p>
  </p>
<img src="http://www.vitorrodrigues.com/blog/?ak_action=api_record_view&id=105&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.vitorrodrigues.com/blog/2007/09/15/db2-student-ambassador/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XML Mapping in Ruby</title>
		<link>http://www.vitorrodrigues.com/blog/2007/07/05/xml-mapping-in-ruby/</link>
		<comments>http://www.vitorrodrigues.com/blog/2007/07/05/xml-mapping-in-ruby/#comments</comments>
		<pubDate>Thu, 05 Jul 2007 16:34:07 +0000</pubDate>
		<dc:creator>vitor</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[aptana]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[mapping]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.vitorrodrigues.com/blog/2007/07/05/xml-mapping-in-ruby/</guid>
		<description><![CDATA[Dear lazy web&#8230; I&#8217;ve been playing with Ruby and XML lately, and one of the key features I need to use is XML mapping from XML to Ruby objects and vice versa. However, both ROXML and XML::Mapping do not seem to be very active at the moment. Both forums contain un-replied questions&#160; several months old, [...]]]></description>
			<content:encoded><![CDATA[<p>Dear lazy web&#8230;
</p>
<p>I&#8217;ve been playing with Ruby and XML lately, and one of the key features I need to use is XML mapping from XML to Ruby objects and vice versa. However, both <a href="http://roxml.rubyforge.org">ROXML </a>and <a href="http://xml-mapping.rubyforge.org">XML::Mapping</a> do not seem to be very active at the moment. Both forums contain un-replied questions&nbsp; several months old, and I can&#8217;t find any examples that are not a couple of years old.
</p>
<p>Is there any XML Mapping library for Ruby that is currently active(*)? XML::Mapping was serving me good enough, until the moment that I needed some of the <a href="http://xml-mapping.rubyforge.org/files/README.html#choice_node">documented features</a> and found that they are not supported in the current release <img src='http://www.vitorrodrigues.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />
</p>
<p>&nbsp;(*) by active I don&#8217;t mean it needs to be in exclusively in code development, but at least with some recent activity in forums, documentation, examples, etc..
</p>
<p>
  </p>
<img src="http://www.vitorrodrigues.com/blog/?ak_action=api_record_view&id=96&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.vitorrodrigues.com/blog/2007/07/05/xml-mapping-in-ruby/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

