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

<channel>
	<title>Matt Casters on Data Integration</title>
	<atom:link href="http://www.ibridge.be/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.ibridge.be</link>
	<description>Venting steam after a long day of writing code...</description>
	<pubDate>Sat, 07 Aug 2010 21:09:01 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>JSON / Portugal</title>
		<link>http://www.ibridge.be/?p=186</link>
		<comments>http://www.ibridge.be/?p=186#comments</comments>
		<pubDate>Sat, 07 Aug 2010 21:09:01 +0000</pubDate>
		<dc:creator>Matt Casters</dc:creator>
		
		<category><![CDATA[Data Integration]]></category>

		<category><![CDATA[Fun]]></category>

		<category><![CDATA[JSON]]></category>

		<category><![CDATA[Kettle]]></category>

		<category><![CDATA[pentaho]]></category>

		<category><![CDATA[Pentaho Data Integration]]></category>

		<category><![CDATA[Portugal]]></category>

		<category><![CDATA[REST]]></category>

		<category><![CDATA[Samatar]]></category>

		<guid isPermaLink="false">http://www.ibridge.be/?p=186</guid>
		<description><![CDATA[Hello Kettle people!
It&#8217;s been a while since my last blog but I since there is always so much to tell you about Kettle, it&#8217;s high time to pick up the pace again.
This time I want to inform you that Kettle developer superstar Samatar informed me that he&#8217;s working on JSON steps as par of JIRA [...]]]></description>
			<content:encoded><![CDATA[<p>Hello Kettle people!</p>
<p>It&#8217;s been a while since my last blog but I since there is always so much to tell you about Kettle, it&#8217;s high time to pick up the pace again.</p>
<p>This time I want to inform you that Kettle developer superstar Samatar informed me that he&#8217;s working on JSON steps as par of JIRA case <a href="http://jira.pentaho.com/browse/PDI-3323">PDI-3323</a> (input/output).</p>
<p><a href="http://jira.pentaho.com/secure/attachment/21573/json.JPG"><img src="http://jira.pentaho.com/secure/attachment/21573/json.JPG" alt="" width="428" height="359" /></a></p>
<p>(click to see full size image)</p>
<p>Let&#8217;s hope the input step arrives in time to test Aaron&#8217;s (phytodata) REST/JSON web services on the BI server 3.7.</p>
<p>I&#8217;m also happy to inform you that Samatar will be joining us in Portugal for Pentaho&#8217;s yearly <a href="http://forums.pentaho.com/showthread.php?77165-CGP-Community-Gathering-in-Portugal-2010-Event-Details">Community Meeting</a>, September 25-26.  And, just to make sure you&#8217;ll recognize us there I&#8217;m posting a goofy picture of the both of us.</p>
<p><img src="http://www.ibridge.be/images/office_samatar.jpg" alt="" /></p>
<p>The picture was taken a few years ago when I visited his office in Paris.  I told him back then the picture would surface sooner of later <img src='http://www.ibridge.be/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Until next time,</p>
<p>Matt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ibridge.be/?feed=rss2&amp;p=186</wfw:commentRss>
		</item>
		<item>
		<title>Book Review : Pentaho 3.2 Data Integration</title>
		<link>http://www.ibridge.be/?p=185</link>
		<comments>http://www.ibridge.be/?p=185#comments</comments>
		<pubDate>Thu, 06 May 2010 18:21:56 +0000</pubDate>
		<dc:creator>Matt Casters</dc:creator>
		
		<category><![CDATA[Data Integration]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[Book]]></category>

		<category><![CDATA[Kettle]]></category>

		<category><![CDATA[Packt]]></category>

		<category><![CDATA[PDI]]></category>

		<category><![CDATA[pentaho]]></category>

		<category><![CDATA[Pentaho Data Integration]]></category>

		<guid isPermaLink="false">http://www.ibridge.be/?p=185</guid>
		<description><![CDATA[Dear Kettle fans,
A few weeks ago, when I was stuck in the US after the MySQL User Conference, a new book was published by Packt Publishing.
That all by itself is something that is not too remarkable.  However, this time it&#8217;s a book about my brainchild Kettle. That makes this book very special to me. The [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Kettle fans,</p>
<p>A few weeks ago, when I was stuck in the US after the MySQL User Conference, a new book was published by Packt Publishing.</p>
<p>That all by itself is something that is not too remarkable.  However, this time it&#8217;s a book about my brainchild Kettle. That makes this book very special to me. The full title is <strong>Pentaho 3.2 Data Integration : Beginner&#8217;s Guide</strong> (<a href="http://www.amazon.com/Pentaho-3-2-Data-Integration-Beginners/dp/1847199542/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1273161337&amp;sr=8-2">Amazon</a>, <a href="https://www.packtpub.com/pentaho-3-2-data-integration-beginners-guide/book">Packt</a>).  The title all by itself explains the purpose of this book: give the reader a quick-start when it comes to Pentaho Data Integration (Kettle).</p>
<p><img class="alignleft" style="float: left; border: 1px solid black; margin: 10px;" src="http://www.ibridge.be/images/pentaho-3.2-data-integration-books.jpg" alt="" width="512" height="384" /></p>
<p>The author María Carina Roldán (<a href="http://mariacarinaroldan.blogspot.com">blog</a>, <a href="http://twitter.com/mariacroldan">twitter</a>) is a seasoned BI consultant and a valued member of the Kettle community. Besides her frequent appearances on our forum, she is appreciated by many for the time she spent on the <a href="http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+(Kettle)+Tutorial">Kettle Tutorial</a>.</p>
<p>I&#8217;m not going to go over the detailed table of content.  Since I wrote the foreword of the book, I&#8217;m sure you&#8217;ll agree I&#8217;m <em>somewhat </em>biased. However, in all objectivity, the book covers what it claims to cover: it does help the PDI/Kettle beginner tremendously.  It covers all you need to get started and then some: the installation of PDI, the typical &#8220;Hello World&#8221; setup of PDI, reading text files, calculating, scripting, databases, repositories, etc.  As the title indicates, this book covers the current 3.2 stable release of Kettle, not the upcoming 4.0 release. However, for as far as 99% of the topics covered are concerned, that shouldn&#8217;t make too much of a difference.</p>
<p>So obviously I can recommend this book very much. It&#8217;s a time-saver for those that are starting with PDI.  For those that have dabbled with Kettle before I must say that María packed the book with nice tips and tricks so I&#8217;m sure you&#8217;ll be able to learn a thing or two.</p>
<p>Until next time,</p>
<p>Matt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ibridge.be/?feed=rss2&amp;p=185</wfw:commentRss>
		</item>
		<item>
		<title>Slides from my MySQL UC 2010 presentation</title>
		<link>http://www.ibridge.be/?p=184</link>
		<comments>http://www.ibridge.be/?p=184#comments</comments>
		<pubDate>Tue, 27 Apr 2010 10:54:41 +0000</pubDate>
		<dc:creator>Matt Casters</dc:creator>
		
		<category><![CDATA[Data Integration]]></category>

		<category><![CDATA[Conference]]></category>

		<category><![CDATA[Eyjafjallajökul]]></category>

		<category><![CDATA[Kettle]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[MySQL UC 2010]]></category>

		<category><![CDATA[PDI]]></category>

		<category><![CDATA[pentaho]]></category>

		<category><![CDATA[Pentaho Data Integration]]></category>

		<category><![CDATA[Presentation]]></category>

		<category><![CDATA[Slides]]></category>

		<guid isPermaLink="false">http://www.ibridge.be/?p=184</guid>
		<description><![CDATA[As requested by a few fans out there, here are the slides of my presentation]]></description>
			<content:encoded><![CDATA[<p>As requested by a few fans out there, here are the slides of my presentation:</p>
<p><a href="http://www.ibridge.be/files/Pentaho Data Integration 4.0 and MySQL.pdf">Pentaho Data Integration 4.0 and MySQL.pdf</a></p>
<p>I had a great time at the conference, met a lot of nice folks, friends, customers, partners and colleagues. After the conference I was unable to get back home like so many of you because of the <a href="http://twitter.com/eyjafjallajokul">Paul Simon</a> singing <a href="http://www.boston.com/bigpicture/2010/04/more_from_eyjafjallajokull.html?s_campaign=8315">Eyjafjallajökul</a><a href="http://blog.atmospheres.be/?p=2123"> volcano</a> in Iceland.</p>
<p>So I ended up flying over to Orlando for a week of brutal PDI 4.0 RC1 hacking with the rest of the l33t super Pentaho development team.  However, after 2+ weeks from home, even a severe storm over Philadelphia couldn&#8217;t prevent me from getting home eventually.</p>
<p>Until next time,<br />
Matt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ibridge.be/?feed=rss2&amp;p=184</wfw:commentRss>
		</item>
		<item>
		<title>MySQL User Conference 2010</title>
		<link>http://www.ibridge.be/?p=183</link>
		<comments>http://www.ibridge.be/?p=183#comments</comments>
		<pubDate>Fri, 09 Apr 2010 20:59:56 +0000</pubDate>
		<dc:creator>Matt Casters</dc:creator>
		
		<category><![CDATA[Data Integration]]></category>

		<category><![CDATA[Kettle]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[pentaho]]></category>

		<category><![CDATA[Pentaho Data Integration]]></category>

		<category><![CDATA[User Conference]]></category>

		<guid isPermaLink="false">http://www.ibridge.be/?p=183</guid>
		<description><![CDATA[Dear Kettle and MySQL fans,
Next week I&#8217;ll be strolling around the MySQL user conference in Santa Clara.  Even better, I&#8217;ll be presenting Tuesday afternoon (3:05pm).  The topic is Pentaho Data Integration 4.0 and MySQL.
The presentation will show you what the world&#8217;s most popular open source data integration tool can do for a MySQL user.  It [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Kettle and MySQL fans,</p>
<p>Next week I&#8217;ll be strolling around the <a href="http://en.oreilly.com/mysql2010">MySQL user conference</a> in Santa Clara.  Even better, I&#8217;ll be <a href="http://en.oreilly.com/mysql2010/public/schedule/detail/13412">presenting Tuesday afternoon</a> (3:05pm).  The topic is <em><strong><a href="http://en.oreilly.com/mysql2010/public/schedule/detail/13412">Pentaho Data Integration 4.0 and MySQL</a>.</strong></em><strong><em></em></strong></p>
<p>The presentation will show you what the world&#8217;s most popular open source data integration tool can do for a MySQL user.  It will include practical examples and will showcase the latest improvements present in the brand new version 4.0.</p>
<p>Even more than the presentation itself, I&#8217;m looking forward to meeting you all over there.  The regular crowd, MySQL users, Pentaho partners, folks from <a href="http://www.calpont.com/">Calpont</a>, <a href="http://www.continuent.com/">Continuent</a>, <a href="http://sqlstream.com/">SQLStream</a> and many others but also the many new colleagues in San Francisco.</p>
<p>More than anything else I&#8217;m looking forward to hear about your Kettle successes and real-world data integration war stories.  If you want to chat about Kettle 4, see things first-hand or simply <a href="http://forums.pentaho.org/showthread.php?t=75770">join the Pentaho gang for a beer</a>, don&#8217;t hesitate to ask.  I&#8217;ll try to regularly <a href="http://twitter.com/mattcasters/">tweet</a> my whereabouts at the user conference so you&#8217;ll know where I&#8217;m at.</p>
<p>Let me finish with a note to everybody that promised me beer in return for features and bug fixes: it&#8217;s payback time!</p>
<p>See you soon at the conference!<br />
Matt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ibridge.be/?feed=rss2&amp;p=183</wfw:commentRss>
		</item>
		<item>
		<title>Kettle log text capturing</title>
		<link>http://www.ibridge.be/?p=181</link>
		<comments>http://www.ibridge.be/?p=181#comments</comments>
		<pubDate>Tue, 02 Mar 2010 16:32:13 +0000</pubDate>
		<dc:creator>Matt Casters</dc:creator>
		
		<category><![CDATA[Data Integration]]></category>

		<category><![CDATA[4.0]]></category>

		<category><![CDATA[Kettle]]></category>

		<category><![CDATA[Logging]]></category>

		<category><![CDATA[pentaho]]></category>

		<category><![CDATA[Pentaho Data Integration]]></category>

		<guid isPermaLink="false">http://www.ibridge.be/?p=181</guid>
		<description><![CDATA[Dear Kettle fans,
As you know, Kettle 4.0 received a new logging framework not so long ago.  It allows us to know exactly where a log-line comes from, even in complex ETL situations.
So when codek asked to know the cause of errors in a job, it was quite easy to implement this.
Here is a single screen [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Kettle fans,</p>
<p>As you know, Kettle 4.0 received a new logging framework not so long ago.  It allows us to know exactly where a log-line comes from, even in complex ETL situations.</p>
<p>So when <a href="http://jira.pentaho.com/browse/PDI-3264">codek asked</a> to know the cause of errors in a job, it was quite easy to implement this.</p>
<p>Here is a single screen shot that should explain it all (click to open image):</p>
<p><a href="http://www.ibridge.be/images/log-text-capturing.png" target="_blank"><img src="http://www.ibridge.be/images/log-text-capturing.png" alt="" width="533" height="374" /></a></p>
<p>Until next time!</p>
<p>Matt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ibridge.be/?feed=rss2&amp;p=181</wfw:commentRss>
		</item>
		<item>
		<title>Re-Introducing UDJC</title>
		<link>http://www.ibridge.be/?p=180</link>
		<comments>http://www.ibridge.be/?p=180#comments</comments>
		<pubDate>Wed, 27 Jan 2010 20:36:37 +0000</pubDate>
		<dc:creator>Matt Casters</dc:creator>
		
		<category><![CDATA[Data Integration]]></category>

		<category><![CDATA[4.0]]></category>

		<category><![CDATA[Easter]]></category>

		<category><![CDATA[Janino]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Kettle]]></category>

		<category><![CDATA[pentaho]]></category>

		<category><![CDATA[Pentaho Data Integration]]></category>

		<category><![CDATA[User Defined Java Class]]></category>

		<guid isPermaLink="false">http://www.ibridge.be/?p=180</guid>
		<description><![CDATA[Dear Kettle fans,
Daniel &#38; I had a lot of fun in Orlando last week. Among other things we worked on the User Defined Java Class (UDJC) step.  If you have a bit of Java Experience, this step allows you to quickly write your own plugin in a step. This step is available in recent builds [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Kettle fans,</p>
<p><a href="http://daniele.livejournal.com/">Daniel</a> &amp; I had a lot of fun in Orlando last week. Among other things we worked on the User Defined Java Class (UDJC) step.  If you have a bit of Java Experience, this step allows you to quickly write your own plugin in a step. This step is available in recent builds of Pentaho Data Integration (Kettle) version 4.</p>
<p>Now, how does this work?  Well, let&#8217;s take <a href="http://rpbouman.blogspot.com/">Roland Bouman</a>&#8217;s example : <a href="http://rpbouman.blogspot.com/2010/01/easter-eggs-for-mysql-and-kettle.html">the calculation of the the date of Easter</a>.  In this blog post, Roland explains how to calculate Easter in MySQL and Kettle using JavaScript.  OK, so what if you want this calculation to be really fast in Kettle?  Well, then you can turn to pure Java to do the job&#8230;</p>
<blockquote>
<pre>import java.util.*;

private int yearIndex;
private Calendar calendar;

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
Object[] r=getRow();
if (r==null)
{
setOutputDone();
return false;
}

if (first) {
yearIndex = getInputRowMeta().indexOfValue(getParameter("YEAR"));
if (yearIndex&lt;0) {
throw new KettleException("Year field not found in the input row, check parameter 'YEAR'!");
}

calendar = Calendar.getInstance();
calendar.clear();

first=false;
}

Object[] outputRowData = RowDataUtil.resizeArray(r, data.outputRowMeta.size());
int outputIndex = getInputRowMeta().size();

Long year = getInputRowMeta().getInteger(r, yearIndex);
outputRowData[outputIndex++] = easterDate(year.intValue());

putRow(data.outputRowMeta, outputRowData);

return true;
}

private Date easterDate(int year) {
int a = year % 19;
int b = (int)Math.floor(year / 100);
int c = year % 100;
int d = (int)Math.floor(b / 4);
int e = b % 4;
int f = (int)Math.floor(( 8 + b ) / 25);
int g = (int)Math.floor((b - f + 1) / 3);
int h = (19 * a + b - d - g + 15) % 30;
int i = (int)Math.floor(c / 4);
int k = c % 4;
int L = (32 + 2 * e + 2 * i - h - k) % 7;
int m = (int)Math.floor((a + 11 * h + 22 * L) / 451);
int n = h + L - 7 * m + 114;

calendar.set(year, (int)(Math.floor(n / 31) - 1), (int)((n % 31) + 1));
return calendar.getTime();
}</pre>
</blockquote>
<p>All you then need to do is specify a return field in the Fields tab called &#8220;Easter&#8221; (a Date) and a parameter YEAR (the field to contain the year).</p>
<p><img src="http://www.ibridge.be/images/udjc.png" alt="Screen shot of the UDJC step" width="916" height="804" /></p>
<p>The performance on my machine (Dual Core 2 Duo 2.33Ghz) is 134,000 rows/s for the JavaScript version and 450,000 rows/s for the UDJC version.  That&#8217;s over 3 times faster to do exactly the same thing.</p>
<p>Here is <a href="http://www.ibridge.be/files/Easter-js.ktr">a link to the Kettle test transformation</a> for those that want to give it a try.  As you can see, the deployment issue of having a plugin around is completely gone since now you can do anything you can do with a plugin from within the comfort of the UDJC step in Spoon.</p>
<p>The UDJC step uses <a href="http://www.janino.net/">the wonderful Janino library</a> to compile the entered code to Java byte-code that gets executed at the same speed as everything else in Kettle.  This gives us pretty much optimal performance.</p>
<p>You can expect some tweaks to the UDJC step before 4.0 goes into feature freeze.  However, the bulk of the changes are in there and working great.  Thank you Daniel, for an outstanding job!</p>
<p>Until next time,</p>
<p>Matt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ibridge.be/?feed=rss2&amp;p=180</wfw:commentRss>
		</item>
		<item>
		<title>Job drill down &#038; sniff testing</title>
		<link>http://www.ibridge.be/?p=179</link>
		<comments>http://www.ibridge.be/?p=179#comments</comments>
		<pubDate>Thu, 14 Jan 2010 12:19:53 +0000</pubDate>
		<dc:creator>Matt Casters</dc:creator>
		
		<category><![CDATA[Data Integration]]></category>

		<category><![CDATA[Drill Down]]></category>

		<category><![CDATA[Kettle 4]]></category>

		<category><![CDATA[pentaho]]></category>

		<category><![CDATA[Pentaho Data Integration]]></category>

		<category><![CDATA[Sniff test]]></category>

		<guid isPermaLink="false">http://www.ibridge.be/?p=179</guid>
		<description><![CDATA[Dear Kettle fans,
Besides refactoring and cleaning up code, I fortunately can write some new code once in a while as well.
Today, I&#8217;m happy to demo job drill down and step sniff testing for you.
The first feature, Job drill down, allows you to drill down into a running job entry, into sub-jobs, transformations and even mappings [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Kettle fans,</p>
<p>Besides refactoring and cleaning up code, I fortunately can write some new code once in a while as well.</p>
<p>Today, I&#8217;m happy to demo job drill down and step sniff testing for you.</p>
<p>The first feature, <a href="http://jira.pentaho.com/browse/PDI-3019">Job drill down</a>, allows you to drill down into a running job entry, into sub-jobs, transformations and even mappings (sub-transformations).  All the time, you&#8217;ll see the logging for that part of the root job as well as the usual metrics:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="660" height="525" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/aYiv1H0Qr0I&amp;hl=en_US&amp;fs=1&amp;hd=1&amp;border=1" /><embed type="application/x-shockwave-flash" width="660" height="525" src="http://www.youtube.com/v/aYiv1H0Qr0I&amp;hl=en_US&amp;fs=1&amp;hd=1&amp;border=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>The second feature is also a lot of fun.  It allows you to execute a transformation in Spoon and see the rows that are coming out of a step in real time.  I called this feature a <a href="http://jira.pentaho.com/browse/PDI-3012">sniff test</a> since that&#8217;s what it seems to be doing:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="660" height="525" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/imvpQ8FFo-A&amp;hl=en_US&amp;fs=1&amp;hd=1&amp;border=1" /><embed type="application/x-shockwave-flash" width="660" height="525" src="http://www.youtube.com/v/imvpQ8FFo-A&amp;hl=en_US&amp;fs=1&amp;hd=1&amp;border=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Hope you like these small usability features.  If you want to try it out yourself, get <a href="http://ci.pentaho.com/job/Kettle/">Hudson build</a> 1598 or later.</p>
<p>Until next time,</p>
<p>Matt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ibridge.be/?feed=rss2&amp;p=179</wfw:commentRss>
		</item>
		<item>
		<title>Open Source BI : Pentaho Rules!</title>
		<link>http://www.ibridge.be/?p=178</link>
		<comments>http://www.ibridge.be/?p=178#comments</comments>
		<pubDate>Tue, 08 Dec 2009 19:28:21 +0000</pubDate>
		<dc:creator>Matt Casters</dc:creator>
		
		<category><![CDATA[Data Integration]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[JasperSoft]]></category>

		<category><![CDATA[KickFire]]></category>

		<category><![CDATA[pentaho]]></category>

		<category><![CDATA[Report]]></category>

		<category><![CDATA[Study]]></category>

		<category><![CDATA[Talend]]></category>

		<guid isPermaLink="false">http://www.ibridge.be/?p=178</guid>
		<description><![CDATA[Dear Pentaho friends,
I just wanted to share some good news with you regarding a new study that got published today.
Mark Madsen, an independent business intelligence analyst, together with the BeyeNETWORK took an in depth look at what is going in companies with respect to open source BI.**
You can find the complete report over at the [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Pentaho friends,</p>
<p>I just wanted to share some <a href="http://www.pentaho.com/open_source_solutions_report/">good news</a> with you regarding a new study that got published today.</p>
<p><a href="http://thirdnature.net/">Mark Madsen</a>, an independent business intelligence analyst, together with the <a href="http://www.beyeresearch.com/study/12261">BeyeNETWORK</a> took an in depth look at what is going in companies with respect to open source BI.**</p>
<p>You can find the complete report over <a href="http://www.beyeresearch.com/study/12261">at the BeyeNETWORK</a>, but here is the graph that particularly interested me:</p>
<p><img src="http://www.ibridge.be/images/report-pdi-graph.png" alt="" width="547" height="400" /></p>
<p>My congratulations to the Pentaho community for pulling this off.</p>
<p>Until next time,<br />
Matt</p>
<p>** This study was sponsored by JasperSoft, KickFire, Talend and Pentaho</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ibridge.be/?feed=rss2&amp;p=178</wfw:commentRss>
		</item>
		<item>
		<title>Book Review : Pentaho Reporting 3.5 for Java Developers</title>
		<link>http://www.ibridge.be/?p=177</link>
		<comments>http://www.ibridge.be/?p=177#comments</comments>
		<pubDate>Fri, 30 Oct 2009 13:24:59 +0000</pubDate>
		<dc:creator>Matt Casters</dc:creator>
		
		<category><![CDATA[Data Integration]]></category>

		<category><![CDATA[Fun]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[API]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Kettle]]></category>

		<category><![CDATA[Packt Publishing]]></category>

		<category><![CDATA[PDF]]></category>

		<category><![CDATA[Pentaho Reporting]]></category>

		<category><![CDATA[Will Gorman]]></category>

		<guid isPermaLink="false">http://www.ibridge.be/?p=177</guid>
		<description><![CDATA[Hi Pentaho fans,
These are exciting times for Pentaho for sure.  These are also extremely busy times.  However, that doesn&#8217;t mean we can&#8217;t look around once in a while.  Today we&#8217;ll take a quick look at a new book that arrived on my doorstep a few weeks ago.  It&#8217;s titled
Pentaho Reporting 3.5 for Java Developers
I&#8217;m very [...]]]></description>
			<content:encoded><![CDATA[<p>Hi Pentaho fans,</p>
<p>These are exciting times for Pentaho for sure.  These are also extremely busy times.  However, that doesn&#8217;t mean we can&#8217;t look around once in a while.  Today we&#8217;ll take a quick look at a new book that arrived on my doorstep a few weeks ago.  It&#8217;s titled</p>
<blockquote><p><em><strong>Pentaho Reporting 3.5 for Java Developers</strong></em></p></blockquote>
<p>I&#8217;m very pleased to be able to review this book as it is written by one of the smartest but more importantly also one of the nicest people at Pentaho: <a href="http://www.willgorman.com/">Will Gorman</a>.  Not only that, he apparently had help from KC (Kurtis Cruzada) and Jem (Matzan) completing the dream team for this book.</p>
<p>And what a great book it turned out to be.  It covers pretty much everything from basic reporting, over mobile reporting, calculations and formula, sub-reporting, cross-tabs, charting down to the Java API.</p>
<p>Obviously, this book as <a href="http://michaeltarallo.blogspot.com/2009/10/recovery-good-time-to-read-pentaho.html">been</a> <a href="http://blog.endpoint.com/2009/10/pentaho-reporting-35-for-java_28.html">reviewed</a> <a href="http://diethardsteiner.blogspot.com/2009/09/review-pentaho-reporting-35-for-java.html">many</a> <a href="http://pentahomusings.blogspot.com/2009/09/pentaho-reporting-35-for-java_17.html">times</a> <a href="http://haas.openbi.com/2009/10/05/pentaho-reporting-35-for-java-developers/">before</a> <a href="http://forums.pentaho.org/showthread.php?p=224687">by</a> <a href="http://book.pdfchm.com/pentaho-reporting-3-5-for-java-developers-16740/">various</a> <a href="http://www.earthtimes.org/articles/show/pentaho-reporting-35-for-java-developers-now-available,972728.shtml">people</a> and websites. (Yes, it&#8217;s that popular)   To me that means that I can&#8217;t just do a quick review, I&#8217;m going to have to actually <em><strong>use</strong></em> and read the book.  And that&#8217;s what we&#8217;ll do today for this review.</p>
<blockquote><p><em><strong>We&#8217;re going to create a report in the form of a PDF.  The data for the report comes from a Kettle transformation.  We&#8217;re going to do it with my favorite programming language (Java) and a complete stack of Open Source Software&#8230;</strong></em></p></blockquote>
<p>I began by creating a new Eclipse project called KettleBook, download the source <a href="http://mattcasters.s3.amazonaws.com/KettleReport.zip">over here</a>.<br />
To make sure I didn&#8217;t miss any library dependencies, I used the complete &#8220;lib&#8221; folder of <a href="http://sourceforge.net/projects/pentaho/files/Report%20Designer/3.5.0-stable/">Pentaho Report Designer 3.5</a> as my class path. (not included in the download)</p>
<p>First, I went to Chapter 10 in the book and started reading the paragraph titled &#8220;<em><strong>Building a report using Pentaho Reporting&#8217;s API</strong></em>&#8221; as that seems to fit the bill. (page 266)</p>
<p>That part explains plain and simple how to create a new Master Report, how data sources work.  But wait, I don&#8217;t want a DefaultTableModel, I want to read from Kettle!  Well, a few page flips later we find ourselves on page 143 reading about the KettleDataFactory.  That got me quite far actually as the sample is quite descriptive.</p>
<p>So then I created a small transformation to read from a sample customer file using Pentaho Data Integration 3.2.  This is it:</p>
<p><img src="http://www.ibridge.be/images/reporting-source.png" alt="" /></p>
<p>It reads 100 rows of sample customer data, filters out the people from California, Florida and New York state.  That gives us 91 records.  We&#8217;re going to read from the RESULT step placeholder.</p>
<p>The part on page 147 I needed was this block:</p>
<blockquote>
<pre>KettleTransFromFileProducer producer = new KettleTransFromFileProducer("Customer data", transFile, stepName, "", "", new String[0], new ParameterMapping[0]);</pre>
<pre>KettleDataFactory factory = new KettleDataFactory();
factory.setQuery("default", producer);</pre>
</blockquote>
<p>This part describes a producer to the engine.</p>
<p>I then proceeded on page 269 and put a document header and footer on the report and an item band.  Then I put 4 columns on the page and the report was written.  This took me all of about 30 minutes. The nice folks at Pentaho Orlando will have to forgive me, reporting is not my specialty. Personally I was quite pleased that it was that easy to do.</p>
<p>So, with the report definition ready, I now wanted to create an actual PDF out of that.  More reading revealed that we needed a PDF Output processor (to generate the actual file) and a page-able report processor to paginate and process the report definition.  This is how it looks in my case:</p>
<blockquote>
<pre>  FileOutputStream fos = new FileOutputStream("files/output.pdf");
DefaultConfiguration configuration = new DefaultConfiguration();
PdfOutputProcessor processor = new PdfOutputProcessor(configuration, fos);
PageableReportProcessor reportProcessor = new PageableReportProcessor(report, processor);
reportProcessor.processReport();</pre>
</blockquote>
<p>5 lines of code to generate a PDF! Suffice it to say I was very happy.</p>
<p>In total I spent a little over an hour to produce this document:</p>
<p><img src="http://www.ibridge.be/images/reporting-pdf.png" alt="" /></p>
<p>It&#8217;s quite simple: if it weren&#8217;t for the book I would have a really hard time figuring out where to begin.  I probably would have had to talk to Thomas Morgner, the brain child of Pentaho Reporting.  A nice fellow as he is, communicating to him is not for the faint hearted. (Fortunately he recently moved to Ireland so things will get better soon)</p>
<p>All joking aside, if you are planning to create reports using the Java API, do yourself a favor and <a href="http://www.packtpub.com/pentaho-reporting-3-5-for-java-developers/">buy this book right away</a>.  Even if you&#8217;re not going to use the API, Pentaho Reporting principles and concepts are explained in great detail.</p>
<p>Many thanks to Packt publishing for sending me the book to review and congratulations to Will Gorman and the reviewers for an excellent job.  Congratulations to Thomas and his community too for making Pentaho Reporting 3.5 a smash hit.</p>
<p>Until next time,<br />
Matt</p>
<p>P.S. I&#8217;ll be obviously covering more of this Java API sample at <a href="http://www.ibridge.be/?p=175">the upcoming Devoxx conference</a> in Antwerp.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ibridge.be/?feed=rss2&amp;p=177</wfw:commentRss>
		</item>
		<item>
		<title>My new netbook&#8230;</title>
		<link>http://www.ibridge.be/?p=176</link>
		<comments>http://www.ibridge.be/?p=176#comments</comments>
		<pubDate>Sat, 24 Oct 2009 15:43:15 +0000</pubDate>
		<dc:creator>Matt Casters</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[personal]]></category>

		<category><![CDATA[Netbook]]></category>

		<guid isPermaLink="false">http://www.ibridge.be/?p=176</guid>
		<description><![CDATA[Dear Linux fans,
Last weekend I saw an ad for a netbook in a Carrefour superstore leaflet that I guess was just too good to refuse.

Unlike other netbooks, this one was priced really low: €199,00 (including taxes which makes it cost my company €164.46 or about 200 $USD).  For me, that&#8217;s the price point where a [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Linux fans,</p>
<p>Last weekend I saw an ad for <a href="http://hercules.com/nl/ecafe/bdd/p/114/ecafe-trade-ec-900b-h120g-v-linux-/">a netbook</a> in a Carrefour superstore leaflet that I guess was just too good to refuse.</p>
<p><img src="http://hercules.com/thumb/?q=95&amp;w=308&amp;h=308&amp;src=D:\inetpub\www.hercules.com\fichier\h_photo\456\photo_file_linux.ec900.png&amp;f=jpeg&amp;bg=FFFFFF" alt="" width="308" height="308" /></p>
<p>Unlike other netbooks, this one was priced really low: €199,00 (including taxes which makes it cost my company €164.46 or about 200 $USD).  For me, that&#8217;s the price point where a netbook makes sense, not €400-500 what you see all over the place.</p>
<p>Now, for that low price, you get the following machine:</p>
<ul>
<li>1.6Ghz VIA C7-M CPU</li>
<li>512MB RAM (DDR2 667, shared with video, 384 available)</li>
<li>120GB hard disk (2.5&#8243;, 7200rpm)</li>
<li>1024&#215;600 LCD screen (pretty good quality actually)</li>
<li>Webcam</li>
<li>WIFI b/g</li>
<li>2xUSB 2.0</li>
<li>VGA port</li>
<li>a multi-format card reader (SD, SDHC, MMC)</li>
<li>Microphone</li>
<li>Sound in/out</li>
<li>Mandriva Linux 2009.1</li>
</ul>
<p>It was very interesting to see that &#8220;Windows 2007 Home Premium&#8221; was priced at exactly the same price.  Talk about a total waste of money on the Microsoft side.</p>
<p>OK, back to the netbook.  The memory issue is not a problem.  I already ordered a 2GB DDR2 RAM module for the machine at €39.</p>
<p><em><span style="text-decoration: underline;"><strong>UPDATE 10/27</strong></span> : the RAM arrived, was installed in 5 minutes and all works fine now.  With 1.9GB available the machine is a lot snappier too.</em></p>
<p>Performance is obviously not stellar but I didn&#8217;t expect this either.  I paid less for it then my current cell phone.  However, it plays full screen AVI without a glitch.</p>
<p>The only real problem the box has is that it comes with &#8230; Mandriva Linux.  Maybe I&#8217;m spoiled by years of Ubuntu use, but this distribution <em><strong>really </strong></em>sucks.  Can I please just install some software, customize the UI a bit?  Please?  I don&#8217;t recall the last time I couldn&#8217;t install a piece of software on Ubuntu because a package couldn&#8217;t be downloaded.  WTF?  And charge €28 just to get a couple of codecs to play audio/video? I can legally use these drivers in Europe without a problem.</p>
<p>Don&#8217;t get me wrong, all hardware is supported and works fine, including audio, the webcam, skype, flash, etc.</p>
<p>Anyway, I tried to put Ubuntu Netbook Remix 9.04 on it by booting from a USB stick.  Unfortunately, either the image or the stick has an issue since it freezes upon installer boot.  The live system boots but has a nasty video problem.  So I&#8217;m going to retry later next week.  Heck, maybe it&#8217;s better to just wait until Kubuntu 9.10 Netbook Remix comes out next week.</p>
<p>Feel free to leave advice on what distro to pick and how to best handle the install.  Also feel free to leave tips on how to explain the kids that this is <strong><em>not</em></strong> a toy.</p>
<p>Thanks in advance!</p>
<p>Cheers,</p>
<p>Matt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ibridge.be/?feed=rss2&amp;p=176</wfw:commentRss>
		</item>
	</channel>
</rss>
