<?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>Gobán Saor &#187; Java</title>
	<atom:link href="http://blog.gobansaor.com/category/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gobansaor.com</link>
	<description>A country datasmith.</description>
	<lastBuildDate>Tue, 27 Jul 2010 17:23:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.gobansaor.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/67e164f5d51c2b3115a7819b84505c13?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Gobán Saor &#187; Java</title>
		<link>http://blog.gobansaor.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.gobansaor.com/osd.xml" title="Gobán Saor" />
	<atom:link rel='hub' href='http://blog.gobansaor.com/?pushpress=hub'/>
		<item>
		<title>New universal SQLite JDBC library.</title>
		<link>http://blog.gobansaor.com/2008/07/21/new-universal-sqlite-jdbc-library/</link>
		<comments>http://blog.gobansaor.com/2008/07/21/new-universal-sqlite-jdbc-library/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 16:54:42 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[kettle]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[JDBC]]></category>
		<category><![CDATA[universal]]></category>
		<category><![CDATA[zentus.com]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=417</guid>
		<description><![CDATA[Both Talend (Java) and Kettle distribute the Zentus.com pure-Java SQLite JDBC driver and for most purposes this run-anywhere version is fine. But, if you really need to take advantage of SQLite&#8217;s speed then connecting using the native JNI version is a must.  Doing this was easy enough, just change over to using a generic JDBC [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=417&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Both Talend (Java) and Kettle distribute the <a href="http://www.zentus.com/sqlitejdbc/">Zentus.com pure-Java SQLite JDBC driver</a> and for most purposes this run-anywhere version is fine. But, if you really need to take advantage of SQLite&#8217;s speed then connecting using the native JNI version is a must.  Doing this was easy enough, just change over to using a generic JDBC connection specifying the required native jar and placing the associated dll/so on your system path.</p>
<p>But now there&#8217;s an easier way, the latest version (V052, in fact from V050 on) is a universal jar, it contains native JNI libraries for Windows, Linux and MacOS alongside the pure-Java version.  It will automatically pick the correct lib for the platform and fall back to the pure-Java version if required.  You can tell if it&#8217;s picked up the native lib by calling conn.getDriverVersion(); it&#8217;ll return &#8220;native&#8221; if it has.</p>
<p>To upgrade to this jar in Kettle see <a href="http://blog.gobansaor.com/2007/10/05/using-the-latest-pure-java-sqlite-jdbc-driver-in-kettle/">this</a>, this time replacing the nested jar with <strong>sqlitejdbc-v052.jar</strong>.</p>
<p>For Talend:</p>
<ul>
<li>Either rename the new V052 jar to <strong><em>sqlitejdbc_v037_nested.jar</em></strong>, replace the existing V037 jar in the ../lib/java folder with this new renamed file.</li>
<li>Or, you could edit the Java specific XML files in the various tSQlite component folders, replacing the references to the old nested V037 jar.</li>
<li>Or, and this is what I would do, don&#8217;t use the tSQLite components, replace them with tJDBC generic components, then you can pick whatever version of the driver you require, you could even change to a different database provider!</li>
</ul>
<p>The Talend tradition of a separate set of components for each type of database, seems to be a hangover from its Perl-generating roots. It&#8217;s true that database specific components are required for certaing tasks such as  bulk-loading, ELTs and so on, but JDBC was designed to be generic and as long as the SQL syntax is compatible, it makes switching in an out database providers very easy.  So unless there&#8217;s a good reason, stick to using tJDBC.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/417/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/417/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/417/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=417&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/07/21/new-universal-sqlite-jdbc-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>Groovy as Talend&#8217;s scripting language</title>
		<link>http://blog.gobansaor.com/2008/07/20/groovy-as-talends-scripting-language/</link>
		<comments>http://blog.gobansaor.com/2008/07/20/groovy-as-talends-scripting-language/#comments</comments>
		<pubDate>Sun, 20 Jul 2008 18:04:57 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[Jetty]]></category>
		<category><![CDATA[SQLite user defined functions]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=387</guid>
		<description><![CDATA[Although I had decided to use Talend (Java version) as my primary ETL tool I still had one major problem with it, its lack of a scripting tool.  Kettle (Pentaho PDI) has Javascript, Excel has VBA, Picalo has (well OK, is) Python and Talend in its Perl version has Perl.  I could have gone (and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=387&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Although I had decided to use <a href="http://www.talend.org">Talend</a> (Java version) as my primary ETL tool I still had one major problem with it, its lack of a scripting tool.  Kettle (Pentaho PDI) has Javascript, Excel has VBA, <a href="http://www.picalo.org/">Picalo</a> has (well OK, is) Python and Talend in its Perl version has Perl.  I could have gone (and did experiment) with calling Javascript, Jython or JRuby via <a href="http://www.jcp.org/en/jsr/detail?id=223">JSR223</a>, but I wasn&#8217;t happy with the level of integration afforded by this, opting instead to make command line calls to Python (using SQLite as a data carrier).</p>
<p>Then, I discovered <a href="http://groovy.codehaus.org/">Groovy</a>, or I should say rediscovered it, as I&#8217;d come across it many years ago when it was far less developed than is now, liked it then but couldn&#8217;t see a use for it at the time and promptly forgot about it.  Then it appeared wrapped in a Talend component, prompting me to do a quick visit to the Groovy website, which turned into a deep-dive into the language; I&#8217;d found my scripting tool!</p>
<p>Groovy (by the way what a terrible name for a language, or is that just me?), is not really a stand-alone language but more an extension to Java itself; offering the full power of Java but with addition of closures, builders and dynamic types.  In fact, over time Groovy has become more and more Java like (the biggest missing being lack of support for anonymous inner-classes).</p>
<p><span style="text-decoration:line-through;">To underline this convergence, Groovy is being developed under the separate <a href="http://www.jcp.org/en/jsr/detail?id=241">JSR 241</a> rather than JSR 223.</span> There&#8217;s full interoperability between both languages; Groovy  compiles down to <a href="http://en.wikipedia.org/wiki/Java_bytecode">JVM bytecode</a> and can use Java classes and objects, Java can likewise use Groovy generated bytecode.  This allows for fast prototyping and development without compromising access to Java&#8217;s vast collection of libraries.</p>
<p>Here for example, is a piece of code to try out the <a href="http://www.jpalo.com/en/news.html">JPalo library&#8217;s</a> ability to access a <a href="http://www.palo.net">Palo</a> cube &#8230;</p>
<pre class="brush: plain;">

[sourcecode language='Java']

import org.palo.api.Connection;
import org.palo.api.ConnectionFactory;
import org.palo.api.Cube;
import org.palo.api.Database;
import org.palo.api.Element;
connection = ConnectionFactory.getInstance().newConnection(&quot;localhost&quot;,&quot;7777&quot;,&quot;admin&quot;,&quot;admin&quot;)
database = connection.getDatabaseByName(&quot;Demo&quot;);
;cube = database.getCubeByName(&quot;Sales&quot;);
rowElements = cube.getDimensionAt(0).getElementsInOrder();
columnElements = cube.getDimensionAt(1).getElementsInOrder();
dataSet = [rowElements,columnElements,]
dataSet &lt;&lt; cube.getDimensionAt(2).getElementAt(0)
dataSet &lt;&lt; cube.getDimensionAt(3).getElementAt(0)
dataSet &lt;&lt; cube.getDimensionAt(4).getElementAt(0)
dataSet &lt;&lt; cube.getDimensionAt(5).getElementAt(0)
// fetch data set
datas=cube.getDataArray(dataSet as Element[][])
connection.disconnect();
// parse the return string
rowcount = rowElements.length;
columncount = columnElements.length;
data=[]
heading=[]
// first row set to the row names (i.e. &quot;Product name&quot; followed by the country names )
heading &lt;&lt; &quot;Product&quot;
for (i in 0..columncount-1) {
    heading &lt;&lt; columnElements[i].getName()
   }
data &lt;&lt; heading
// Now  out each line
for (i in 0..rowcount-1) {
    row = []
    row &lt;&lt; rowElements[i].getName()
    for (j in 0..columncount-1) {
         row &lt;&lt; datas[((i + (j*columncount)))]
         }
    data &lt;&lt; row.flatten()
   }

//output to csv file
def csvOut= new FileOutputStream('c:/data/File.csv' )
for (lines in data) {
         lines.eachWithIndex{col,i -&gt;
                             if (i &gt; 0) {
                                 csvOut &lt;&lt; &quot;,&quot;
                             }
         csvOut &lt;&lt; col
     }
     csvOut &lt;&lt; &quot;\n&quot;
}
csvOut.close()
[/sourcecode]
</pre>
<p>This was done in the Groovy console as a proof of concept, it was then transferred to a tGroovy component where it was parametrised and instead of outputting to a CSV file, it was used to fill the globalBuffer structure (the structure used by tBufferOutput component).</p>
<p>Other things I managed to do with Talend tGroovy over a few days:</p>
<ul>
<li>Extended <a href="http://www.sqlite.org">SQLite</a> with my own user-defined Palo functions.</li>
<li>Set-up a Talend job as an Excel accessible RESTful web service using Jetty.</li>
<li>Interfaced with Amazon S3.</li>
</ul>
<p>Although I was very familiar with the S3 and the JPalo API, both <a href="http://files.zentus.com/sqlitejdbc/api/org/sqlite/Function.html">SQLite UDFs</a> and <a href="http://www.mortbay.org/jetty-6/">Jetty</a> were new to me, and that&#8217;s were scripting proves it worth, giving the developer the maximum support with the minimum of background noise.  But it&#8217;s not just weird and wonderful new APIs that scripting helps expose but as a datasmithing tool, languages such as Groovy give analysts the ability to quickly de-construct and model datasets (for example, see <a href="http://groovy.codehaus.org/Tutorial+6+-+Groovy+SQL">Groovy&#8217;s SQL database support</a> and <a href="http://groovy.codehaus.org/Collections">collections&#8217; functionality</a>).</p>
<p>As a <span style="text-decoration:line-through;">in</span>famous Irish farming-pharma TV ad of my youth put it, &#8220;<span style="font-style:italic;">It&#8217;s a queer name but great stuff</span>&#8220;.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/387/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/387/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/387/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=387&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/07/20/groovy-as-talends-scripting-language/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>Java &#8211; at the eye of a perfect storm</title>
		<link>http://blog.gobansaor.com/2008/03/11/java-at-the-eye-of-a-perfect-storm/</link>
		<comments>http://blog.gobansaor.com/2008/03/11/java-at-the-eye-of-a-perfect-storm/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 21:36:36 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[Palo ETL-Server]]></category>
		<category><![CDATA[Jetty]]></category>
		<category><![CDATA[WaveMaker]]></category>
		<category><![CDATA[Oracle APEX]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=356</guid>
		<description><![CDATA[The &#8220;perfect storm&#8221; of ubiquitous broadband, powerful and cheap laptops, virtual machines, cloud-based services/infrastructure and open-source software is changing the nature of IT in a way that&#8217;s reminiscent of the revolution started by the IBM PC. Although a lot of emphasis has been put on the influence of consumer-focused services on the enterprise, the Web2.0 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=356&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>The &#8220;perfect storm&#8221; of ubiquitous  broadband, powerful and cheap laptops, virtual machines, cloud-based services/infrastructure and open-source software is changing the nature of IT  in a way that&#8217;s reminiscent of the revolution started by the IBM PC.   Although a lot of emphasis has been put on the influence of consumer-focused services on the enterprise, the Web2.0 effect; there&#8217;s also traffic in the other direction.</p>
<p>Tools that were once the preserve of large multi-national or governmental organisations are now becoming available to a much larger audience at a fraction of the cost (either free via open source or pay-as-you-go via on-line services such as <a href="http://aws.amazon.com/ec2">Amazon Ec2</a> or <a href="http://www.salesforce.com">salesforce.com</a>).</p>
<p>As a result of this leakage from the enterprise, I&#8217;m more and more using a skill that I though I&#8217;d left behind in the hallowed halls of &#8220;big business&#8221;,  my knowledge of enterprise Java.  Two of the tools that are at the centre of my datasmithing arsenal are Java to the core,   <a href="http://www.talend.com">Talend ETL</a> and <a href="http://www.wavemaker.com/">WaveMaker</a> and a third <a href="http://blog.gobansaor.com/2008/01/03/palo-etl-server-more-sightings/">Palo&#8217;s new ETL Server</a> is built on a Java stack.</p>
<h2>Talend</h2>
<p>My first impressions of the &#8220;Java Project&#8221; version of Talend were, as they say in Texas, &#8220;all hat and no cattle&#8221;.  I&#8217;ve stuck with it  though, and have had the opportunity over the last few weeks to re-visit the product. Initially, my attitude to Talend was coloured by my experience with <a href="http://kettle.pentaho.org">Kettle</a> (aka Pentaho PDI), which under the direction of Matt Casters and the patronage of Pentaho has grown from strength to strength, but once I attuned myself to the idea that Talend is, in essence, a code generator, generating code in a language I know well, I became more comfortable with it.</p>
<p>What I like about Talend, is the ability to convert an ETL process into either a  <a href="http://en.wikipedia.org/wiki/POJO">POJO</a> or  a <a href="http://en.wikipedia.org/wiki/Sun_WAR_(file_format)">WAR file</a> representation of the solution, both stand-alone and fixed-in-time. Talend as a company or as a product could disappear in the morning, as could I, but the solution, cast in Java, will continue on regardless, a solution expressed in a standards based language, widely used and understood by a large number of  IT professionals.</p>
<p>This is really important when you consider the ETL/BI products that have been swallowed by the rent-book collectors of the IT business, e.g. Essbase/Hyperion by Oracle, Business Objects by SAP (I might  be a bit unfair to SAP, who continue to show real commitment to software R&amp;D).  The new owners of these once ground-breaking products will continue to milk the licence holders for &#8220;rent&#8221; long into the future , a situation that would be acceptable if they continue to offer value above a &#8220;protection&#8221; service more associated with that provided by your local hoodlum; but alas, most were bought to strengthen the purchaser&#8217;s  control of their market, so I wouldn&#8217;t hold my breath.</p>
<p>I&#8217;ve always been a lazy programmer, so I&#8217;ve over the years developed numerous productivity aids to help automate development (i.e. reduce the boredom factor for me and the cost for my customers/employers) and to reduce errors (a cost to both sides).  Code generation has been at the heart of many of these efforts, so I find myself at home with both Talend and Wavemaker&#8217;s approach.</p>
<h2>WaveMaker</h2>
<p>I&#8217;d not heard of Chris Keene&#8217;s  <a href="http://www.wavemaker.com/">WaveMaker</a> until a few weeks ago. WaveMaker (previously know as ActiveGrid) belongs, along side Talend, Pentaho and Jedox, to a <a href="http://www.keeneview.com/2008/02/silverado-rules-for-open-source-success.html">new breed of open-source businesses</a>, and the product brings new life to Java web development.  I was lucky to escape the worst of the J2EE nonsense and could never understand why an easy to use GUI builder like this never existed in the Java world, no wonder<a href="http://www.keeneview.com/2008/02/great-migration-j2ee-to-net.html"> .NET continues to outgun J2EE in the market place.</a></p>
<p>Those  of you with a background in VB6/VBA or VisualStudio will feel right at home here, but instead of desktop GUIs you&#8217;ll be building <a href="http://en.wikipedia.org/wiki/AJAX">AJAX</a> web applications.  The  resulting application is packaged as a WAR file which can be hosted by any standards based Java server  (e.g. <a href="http://tomcat.apache.org/">Tomcat</a> or <a href="http://www.mortbay.org/">Jetty</a>).  It&#8217;s open source and built on <a href="http://www.wavemaker.com/solutions/forit.html">industry standards</a>, Hibernate,Spring and the Javascript Dojo framework.</p>
<p>Not only can  WaveMaker act as a front-end to traditional databases, it&#8217;s designed to be equally at home with data served up by web services or POJOs. And, as Talend  WAR projects and the Palo ETL Server (Jetty based) both expose <a href="http://ws.apache.org/axis/">Axis</a> based web services, these three products are a match made in Java heaven.</p>
<h2>Oracle Application Express</h2>
<blockquote><p>So, If you only came across WaveMaker recently, what did you intend to use as a Web/GUI front-end before this?</p></blockquote>
<p>Well, for many tasks, Excel, backed by web-service aware VBA will continue to be an option, my <a href="http://blog.gobansaor.com/2008/02/22/xlaws-excel-vba-code-for-accessing-amazons-s3-and-simpledb/">xlAWS library</a> and xLite code base will continue to be useful.  Obviously, Excel is a natural front-end to Palo itself and VB6 is always there for quick and dirty Window&#8217;s GUI apps.  I may also use <a href="http://blog.gobansaor.com/category/proto/">Proto</a> if circumstances warrant it.</p>
<p>For web front-ends, in the past I toyed with using Oracle Apex, then Rails, then JotSpot, then Zimki.</p>
<ul>
<li> <a href="http://www.rubyonrails.org/">Rails</a> taught me a lot about &#8220;good web app design&#8221; and introduced me to Ruby (and SQLite) but it didn&#8217;t offer me the speed of development and ease of deployment I&#8217;ve become accustomed to.</li>
<li><a href="http://blog.gobansaor.com/2008/02/05/google-forgets-to-renew-jotspot-domain/">JotSpot</a> got swallowed up by Google and spat out again as Google Sites minus the innovative &#8220;wiki database&#8221; capability.</li>
<li><a href="http://blog.gobansaor.com/2007/12/13/zimki-the-spirt-lives-on/">Zimki, alas, is no more</a>.</li>
<li>That left me with Oracle&#8217;s impressive <a href="http://www.oracle.com/technology/products/database/application_express/index.html">Application Express</a> (aka APEX aka HTML DB).</li>
</ul>
<p>Application Express is excellent if your background is in Oracle databases and/or Oracle Forms and if you work in a Oracle shop and have not checked it out, then do so, you&#8217;ll be impressed.    It&#8217;s standard with all versions since 10G and can be installed on V9 databases.  It&#8217;s also the front-end for Oracle XE &#8211; the free edition of the database server.</p>
<blockquote><p>So why jump ship to WaveMaker?</p></blockquote>
<p>APEX is Oracle specific, closed source, costs a fortune once you outgrow Oracle XE, is a bit &#8220;odd&#8221; to configure, and, I&#8217;m not sure Oracle know what to do with the product (afraid it might cannabalise its lucrative J2EE business!).</p>
<p>WaveMaker embraces the world, is open source and is really easy to use, while still allowing access to the underlying code (both Java and Javascript) and CSS styling. And, it can be easily deployed.</p>
<p>No contest, I&#8217;m afraid.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/356/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/356/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/356/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=356&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/03/11/java-at-the-eye-of-a-perfect-storm/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>PALO ETL Server, more sightings &#8230;</title>
		<link>http://blog.gobansaor.com/2008/01/03/palo-etl-server-more-sightings/</link>
		<comments>http://blog.gobansaor.com/2008/01/03/palo-etl-server-more-sightings/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 19:07:13 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[Apache Axis]]></category>
		<category><![CDATA[Jetty]]></category>
		<category><![CDATA[Palo ETL-Server]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[WSDL]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/2008/01/03/palo-etl-server-more-sightings/</guid>
		<description><![CDATA[First day back after Christmas, snow falling outside. More additions to the PALO ETL-Server SourceForge project, new version of the core and, a new web server &#8211; built using Jetty and Apache Axis. Axis is a SOAP handler so I looked around for the WSDL file to see what services are to be exposed and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=347&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>First day back after Christmas, snow falling outside.</p>
<p>More additions to the <a href="http://sourceforge.net/projects/palo-importer/">PALO ETL-Server SourceForge project</a>, new version <a href="http://blog.gobansaor.com/2007/12/06/palo-etl-server-first-sighting/">of the core</a> and, a new web server &#8211; built using <a href="http://www.mortbay.org/">Jetty</a> and <a href="http://ws.apache.org/axis/">Apache Axis</a>.  Axis is a <a href="http://en.wikipedia.org/wiki/SOAP">SOAP</a> handler so I looked around for the <a href="http://www.w3.org/TR/wsdl">WSDL file</a> to see what services are to be exposed and found a reference to a drillThrough service which I guess is the mechanism by which we&#8217;ll soon be able to drill back from a <a href="http://www.palo.net">PALO</a> cube to its source data tables.    At the moment I&#8217;m just wandering through the source code, I&#8217;ll need to fire up an <a href="http://aws.amazon.com/ec2">EC2</a> instance to give it a test run as the new server code doesn&#8217;t fully support Windows.</p>
<p>Happy New Year!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/347/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/347/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/347/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=347&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/01/03/palo-etl-server-more-sightings/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>Using the latest Pure Java SQLite JDBC driver in Kettle</title>
		<link>http://blog.gobansaor.com/2007/10/05/using-the-latest-pure-java-sqlite-jdbc-driver-in-kettle/</link>
		<comments>http://blog.gobansaor.com/2007/10/05/using-the-latest-pure-java-sqlite-jdbc-driver-in-kettle/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 10:45:01 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[kettle]]></category>
		<category><![CDATA[JDBC]]></category>
		<category><![CDATA[out of memory]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/2007/10/05/using-the-latest-pure-java-sqlite-jdbc-driver-in-kettle/</guid>
		<description><![CDATA[The bug in the pure Java SQLiteJDBC driver that caused an &#8220;out of memory&#8221; error when trying to connect to a SQLite database using standard windows drive letters (e.g. c:\kettle\mydata.db) is now fixed. The current version (V037) has also been updated to SQLite version 3.4.2. To use the latest driver within Kettle, download the file [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=331&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>The bug in the <a href="http://www.zentus.com/sqlitejdbc/index.html">pure Java SQLiteJDBC driver</a> that caused an <a href="http://blog.gobansaor.com/2007/01/20/kettle-and-sqlite/">&#8220;out of memory&#8221; error</a> when trying to connect to a SQLite database using standard windows drive letters (e.g. c:\kettle\mydata.db) is now fixed.  The current version (V037) has also been updated to SQLite version 3.4.2.  To use the latest driver within <a href="http://kettle.pentaho.org">Kettle</a>, download the file from <a href="http://www.zentus.com/sqlitejdbc/dist/sqlitejdbc-v037-nested.tgz">here</a>, go to the ../libext/JDBC folder, delete the included sqlitejdbc-v023-nested.jar and replace with sqlitejdbc-v027-nested.jar.</p>
<p><strong>Update:</strong></p>
<p>Matt Casters of the Pentaho Kettle team left a comment to say version 2.5.2 and version 3.0.0-RC2 will ship with the sqlitejdbc-v027-nested.jar</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/331/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/331/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/331/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=331&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2007/10/05/using-the-latest-pure-java-sqlite-jdbc-driver-in-kettle/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>Facebook Apps using Ruby on Rails</title>
		<link>http://blog.gobansaor.com/2007/07/19/facebook-apps-using-ruby-on-rails/</link>
		<comments>http://blog.gobansaor.com/2007/07/19/facebook-apps-using-ruby-on-rails/#comments</comments>
		<pubDate>Thu, 19 Jul 2007 12:15:03 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web2.0]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[recipes]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/2007/07/19/facebook-apps-using-ruby-on-rails/</guid>
		<description><![CDATA[This is what I love about Ruby and Ruby on Rails, once you learn the basics of Ruby and how a RoR app is put together you can use this knowledge to learn about other technologies, in this case Facebook Applications. The reason for this is, as soon as a new technology hits the street [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=294&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>This is what I love about <a href="http://www.ruby-lang.org/en/">Ruby</a> and <a href="http://www.rubyonrails.org/">Ruby on Rails</a>, once you learn the basics of Ruby and how a RoR app is put together you can use this knowledge to learn about other technologies, in this case <a href="http://developers.facebook.com/anatomy.php">Facebook Applications</a>.  The reason for this is, as soon as a new technology hits the street somebody is bound to either build a Ruby library or a RoR plugin targeting the new (and presumably cool) platform.   In two excellent articles <a href="http:/http://www.liverail.net/pages/about-the-author">Stuart Eccles</a> shows <a href="http://www.liverail.net/articles/2007/6/29/tutorial-on-developing-a-facebook-platform-application-with-ruby-on-rails">how to build a Facebook app</a> using <a href="http://rubyforge.org/projects/rfacebook/">the rFacebook Rails extension</a>.  I guess I could have looked at a PHP or Java example but I chose (as I nearly always do) the Rails route as the layers of abstraction and the standard infrastructure of RoR apps allow me to quickly get an overview of the new technology in action but also, if I so desire, allow me to easily deep dive into anything that requires more detailed investigation.</p>
<p>In the late nineties I learned Java (and later .NET) for a similar purpose not as a primary development tool but because of its role as the &#8220;language of account&#8221; of most new technologies at the time.  And although I still come across environments where the only examples are in a Java (or .Net or PHP) I know if I wait a few weeks some bright Rubyist will eventually &#8220;document&#8221; it in either Ruby or Rails.</p>
<p>Using the <a href="http://apps.facebook.com/socialrecipe/">sample application</a> built by Stuart I&#8217;ve added one of my favourite salad recipes,<br />
<a href="http://apps.facebook.com/socialrecipe/recipes/show/7">Banana &amp; Tomato in a Mustard Dressing</a><br />
..enjoy.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/294/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/294/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/294/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=294&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2007/07/19/facebook-apps-using-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>Talend vs. Kettle (Pentaho PDI)</title>
		<link>http://blog.gobansaor.com/2007/05/27/talend-vs-kettle-pentaho-pdi/</link>
		<comments>http://blog.gobansaor.com/2007/05/27/talend-vs-kettle-pentaho-pdi/#comments</comments>
		<pubDate>Sun, 27 May 2007 16:40:22 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[kettle]]></category>
		<category><![CDATA[xLite]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/2007/05/27/talend-vs-kettle-pentaho-pdi/</guid>
		<description><![CDATA[Over the last few weeks I&#8217;ve received a lot of traffic from Goggle searches comparing Talend and Kettle and also from Vincent McBurney&#8217;s ITtoolbox article comparing the two products, so where do I stand? As ETL tools they take different approaches, Kettle is a meta data driven framework (which is in turn tightly integrated into [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=279&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Over the last few weeks I&#8217;ve received a lot of traffic from Goggle searches comparing Talend and Kettle and also from <a href="http://www.ittoolbox.com/profiles/vmcburney">Vincent McBurney&#8217;</a>s <a href="http://blogs.ittoolbox.com/bi/websphere/archives/wiki-wednesday-comparing-talend-and-pentaho-kettle-open-source-etl-tools-16294">ITtoolbox article</a> comparing the two products, so where do I stand?</p>
<p>As ETL tools they take different approaches, Kettle is a meta data driven framework (which is in turn tightly integrated into an even larger BI framework, the <a href="http://blogs.ittoolbox.com/bi/websphere/archives/wiki-wednesday-comparing-talend-and-pentaho-kettle-open-source-etl-tools-16294">Pentaho BI Project</a>), while Talend is at the end of the day a code generator.  The code generator nature of Talend does impart certain capabilities such as the ability to easily integrate into other BI platforms (such as <a href="http://www.jaspersoft.com/">JasperSoft</a> and <a href="http://spagobi.eng.it">SpagoBI</a> ) and as <a href="http://gobansaor.wordpress.com/2006/12/28/ruby-and-sqlite-a-micro-etl-environment/">micro-ETL</a> tool. On the other hand Kettle&#8217;s increasing integration into the Pentaho family makes it natural choice for larger BI implementations.  So which one would I recommend ?  It&#8217;s got to be Kettle and the main reason for that choice is the Pentaho PDI <a href="http://forums.pentaho.org/forumdisplay.php?f=69">community</a>.</p>
<p>My experience so far with the <a href="http://www.talendforge.org/forum/">Talend community</a> has not been good.  Admittedly I&#8217;ve only asked two questions, one looking for more details on a statement regarding <a href="http://www.talendforge.org/forum/viewtopic.php?id=660">ERP and CRM connectors</a> mentioned in <a href="http://www.talend.com/press/java-data-integration.php">a press release</a> and the other a technical query about a new<a href="http://www.talendforge.org/forum/viewtopic.php?id=721"> tSQLite connector</a>.  Neither were answered. OK I&#8217;m a big boy I can handle the rejection and I&#8217;m also technically savvy, I can eventually fix most of my own problems.  But I&#8217;m sure if I posted similar questions on the Pentaho forums I would have received an answer, probably from <a href="http://www.ibridge.be/">Matt Casters</a> if he though the general community would not be able to provide the answer.</p>
<p>So will this experience stop me from using Talend?  Maybe not, the code generation capability may come in handy as a micro-ETL tool (but I do have <a href="http://gobansaor.wordpress.com/projects/xlite/">other options</a>); however, through an offline <a href="http://gobansaor.wordpress.com/2007/04/26/talend-etl-a-new-contender/#comment-1384">conversation</a> with  <cite>Samatar </cite>(an <a href="http://forums.pentaho.org/search.php?searchid=74414">active member of the Kettle community</a>) and Matt Casters I learned of a new XML input step and of a <a href="http://kettle.pentaho.org/">PDI</a> alternative to the Talend tJavaFlex component, the &#8220;Modified Java Script Value&#8221; step.  This allows for the creation of START, TRANSFORM (i.e. for-each-row) and END JavaScript scripts.  As Kettle uses the Rhino scripting engine I have access to any Java API (e.g. <a href="http://www.jpalo.net">Palo</a>,<a href="http://www.bluishcoder.co.nz/2006/05/amazon-s3.html">S3</a>, <a href="http://code.google.com/apis/spreadsheets/developers_guide_protocol.html">Google Spreadsheets</a>) but with the flexibility of JavaScript; <a href="http://www.bbc.co.uk/comedy/fastshow/characters/brilliant.shtml">brilliant</a>!</p>
<p>Not only that, since my experience with Talend tJavaFlex reintroduced me to the world of Java I though I might as well look into creating my own Kettle plugin and guess what, it looks easy enough.  So I&#8217;m going to develop my first plugin to be based on the ScriptValueMod step, replacing the Rhino engine with the Java 6 <a href="http://java.sun.com/javase/6/docs/api/javax/script/ScriptEngineManager.html">ScriptEngineManager</a>.  This will give me access to the latest version of Rhino which supports E4X (<a href="http://www.devx.com/webdev/Article/33393/0/page/1">will make handling XML must easier</a>) and also opens the possibility of using <a href="http://gobansaor.wordpress.com/2007/05/19/javafx-a-gui-dsl/">JavaFX</a> or indeed <a href="http://jruby.codehaus.org/">JRuby</a> as Kettle scripting languages.</p>
<p>UPDATE:</p>
<p>I&#8217;ve received <a href="http://talendforge.org/forum/viewtopic.php?pid=3146#p3146">a reply</a> to my tSQLite question!</p>
<p>UPDATE: July 2008</p>
<p>This post is now over a year old, Talend as a product and as a community has improved enormously in the last 12 months; so much so, I now use Talend  (Java) in preference to PDI for most of my datasmithing needs.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/279/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/279/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/279/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=279&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2007/05/27/talend-vs-kettle-pentaho-pdi/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>JavaFX &#8211; a GUI DSL</title>
		<link>http://blog.gobansaor.com/2007/05/19/javafx-a-gui-dsl/</link>
		<comments>http://blog.gobansaor.com/2007/05/19/javafx-a-gui-dsl/#comments</comments>
		<pubDate>Sat, 19 May 2007 15:12:26 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/2007/05/19/javafx-a-gui-dsl/</guid>
		<description><![CDATA[Having mastered JavaScript (OK master is too strong a word &#8211; having become comfortable with both its syntax and usage patterns) my next port of call is JavaFX the recently announced Flash/Silverlight competitor. What led me to JavaFX Script was not its role in this Flash/AJAX alternative platform (which unless  Sun improves the JRE download [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=278&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Having <a href="http://gobansaor.wordpress.com/2007/05/12/javascript-101/">mastered JavaScript</a> (OK master is too strong a word &#8211; having become comfortable with both its syntax and usage patterns)  my next port of call is <a href="http://www.sun.com/software/javafx">JavaFX</a> the recently announced Flash/<a href="http://blogs.zdnet.com/microsoft/?p=426">Silverlight competitor</a>.  What led me to JavaFX Script was not its role in this Flash/AJAX alternative platform  (<strike>which unless  Sun improves the JRE download experience i</strike><strike>s dead in the water</strike> they may have a chance with the <a href="http://weblogs.java.net/blog/enicholas/archive/2007/05/announcing_the.html">promised consumer JRE</a> ) but its status as the 2nd scripting language to be supported by the Java 6 <a href="http://java.sun.com/javase/6/docs/api/javax/script/ScriptEngineManager.html">ScriptEngineManager</a> &#8211; the first being JavaScript. Although the JavaFX  platform is still in alpha, the  important elements of the scripting language appear to be usable.</p>
<p>Why do I need another  scripting language? Well JavaFX Script is a DSL (<a href="http://en.wikipedia.org/wiki/Domain-specific_language">domain-specific  language</a>) and the domain in question  is  the GUI and  as a GUI DSL, JavaFX is impressive.</p>
<p>In my quest for a micro ETL environment the lack of a fast and powerful GUI tool has been a problem.   Admittedly, in my Excel/Sqlite  <a href="http://gobansaor.wordpress.com/projects/xlite/">xLite </a>suite GUI generation is not a problem as VBA forms are both fast to develop in and feature rich, but the other two options (Java and Ruby) both lack a cost-effective GUI tool (I know there&#8217;s Swing and <a href="http://www.rubycentral.com/book/ext_tk.html">Tk</a> but for somebody who&#8217;s used to the speed of development of tools such as VB forms or <a href="http://www.oracle.com/technology/products/database/application_express/index.html">Oracle&#8217;s Application Express</a>, neither appealed).  JavaFX changes all that, it&#8217;s elegant, powerful, fast to develop in and portable.  Further pushes me down the road of <a href="http://gobansaor.wordpress.com/2007/04/30/ive-got-talend-and-im-going-to-use-it/">using Talend</a> generated Java as my <a href="http://gobansaor.wordpress.com/2006/12/28/ruby-and-sqlite-a-micro-etl-environment/">micro-ETL environment</a> of choice.</p>
<p>It&#8217;s easy to dismiss JavaFX as hype but the technology behind the hype looks sound.  The language borrows powerful features from other languages, object literals from JavaScript,  list-comprehensions from Python/Erland/Haskell and first-class functions from JavaScript/Lisp all combined with the full power and glory of Java.  The end result:</p>
<blockquote><p>..is a declarative and statically typed programming language. It has first-class functions, declarative syntax, list-comprehensions, and incremental dependency-based evaluation. The JavaFX Script language makes intensive use of the Java2D swing GUI components and allows for easy creation of GUIs.</p></blockquote>
<p>Go the <a href="https://openjfx.dev.java.net/">community page</a> for FAQs, tutorials and <a href="https://openjfx.dev.java.net/JavaFX_Programming_Language.html">reference information</a>.  <a href="http:/http://www.oreillynet.com/pub/au/1738">Timothy O&#8217;Brien</a> has a good <a href="http://www.oreillynet.com/onjava/blog/2007/05/javafx_first_steps_hello_onjav_1.html">first pass</a> at calling JavaFX from a Java program and <a href="http://www.onjava.com/pub/a/onjava/2006/04/26/mustang-meets-rhino-java-se-6-scripting.html">this article</a> by <a href="http://www.oreillynet.com/pub/au/2429">John Smart</a> explains the basics of using ScriptEngineManager to call JavaScript.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/278/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/278/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/278/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=278&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2007/05/19/javafx-a-gui-dsl/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>I&#8217;ve got talend and I&#8217;m going to use it&#8230;</title>
		<link>http://blog.gobansaor.com/2007/04/30/ive-got-talend-and-im-going-to-use-it/</link>
		<comments>http://blog.gobansaor.com/2007/04/30/ive-got-talend-and-im-going-to-use-it/#comments</comments>
		<pubDate>Mon, 30 Apr 2007 11:22:26 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[kettle]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[xLite]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/2007/04/30/ive-got-talend-and-im-going-to-use-it/</guid>
		<description><![CDATA[For the last few months I&#8217;ve being looking for my ideal ETL platform. That ideal would be open source, platform independent (well at least Windows and Linux), flexible, and easily deployable. It had looked like a combination of Kettle and my micro-ETL combinations of Ruby/SSQLite and Excel/SQLite would be the eventual &#8220;winners&#8221;. That was until [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=273&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>For the last few months I&#8217;ve being looking for my ideal ETL platform.  That ideal would be open source, platform independent (well at least  Windows and Linux), flexible, and easily deployable.  It had looked like a combination of <a href="http://kettle.pentaho.org">Kettle</a> and my <a href="http://gobansaor.wordpress.com/2006/12/28/ruby-and-sqlite-a-micro-etl-environment/">micro-ETL combinations of Ruby/SSQLite</a> and <a href="http://gobansaor.wordpress.com/projects/xlite/">Excel/SQLite</a> would be the eventual &#8220;winners&#8221;.  That was until I <a href="http://gobansaor.wordpress.com/2007/04/26/talend-etl-a-new-contender/">discovered</a> (or rather rediscovered) <a href="http://www.talend.com/index.php">Talend</a>, to be more precise the just <a href="http://talendforge.org/blog/?p=39">released</a> <a href="http://www.talend.com/products-data-integration/talend-open-studio.php">Open Studio V2.0</a>.</p>
<p>Having spent a few hours this weekend getting to know the new Java Project features I&#8217;ve come away a Talend fan-boy.  I think I&#8217;ve found my ETL tool, one suitable for both heavy-duty server-side processing and  client-side micro-ETL tasks.  The tJavaFlex component allowed me to add missing functionality with ease; for example, I managed to..</p>
<ul>
<li>write to a <a href="http://www.jedox.com/en/enterprise-spreadsheet-server/excel-olap-server/palo-server.html">Palo</a> Cube,</li>
<li>upload data to a <a href="http://docs.google.com">Google Spreadsheet</a></li>
<li>and push a file to my <a href="http://aws.amazon.com/s3">S3</a> account</li>
</ul>
<p>&#8230;all within two hours of first starting to evaluate the product. (OK, I had evaluated the Perl version several months ago, so I wasn&#8217;t a total noobie!).</p>
<p>Because Talend is a code generator (Perl or Java) I can store my work as a &#8216;tool-independent-snapshot&#8217; for future use,<img src="http://www.talend.com/img/logo_talend-open-data-solution.jpg" align="right" height="63" width="175" /> modify by hand if need be, and use it on any JRE or Perl supporting OS.  It&#8217;s not that I&#8217;ll stop using the other solutions (the Excel/SQLite <a href="http://gobansaor.wordpress.com/projects/xlite/">xLite</a> utility has proved to be particularly useful and flexible) but Talend looks like it will become the tool-of-first-preference (along side Excel of course!) in the Gobán Saor&#8217;s datasmithing armory.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/273/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/273/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/273/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=273&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2007/04/30/ive-got-talend-and-im-going-to-use-it/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>

		<media:content url="http://www.talend.com/img/logo_talend-open-data-solution.jpg" medium="image" />
	</item>
	</channel>
</rss>