<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title> BRob On Tech</title>
	
	<link>http://robinsontechnology.com/blog</link>
	<description>Reflections on technology and business   </description>
	<lastBuildDate>Thu, 18 Apr 2013 14:00:33 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/BrobsTechnologyBlog" /><feedburner:info uri="brobstechnologyblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>39.879713</geo:lat><geo:long>-74.9719</geo:long><feedburner:emailServiceId>BrobsTechnologyBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>The Best Pentaho Data Integration Tip Ever for Orderly People</title>
		<link>http://feedproxy.google.com/~r/BrobsTechnologyBlog/~3/o6pw_nqATLo/</link>
		<comments>http://robinsontechnology.com/blog/2013/04/18/the-best-pentaho-data-integration-tip-ever-for-orderly-people/#comments</comments>
		<pubDate>Thu, 18 Apr 2013 14:00:33 +0000</pubDate>
		<dc:creator>Brian Robinson</dc:creator>
				<category><![CDATA[PDI]]></category>
		<category><![CDATA[Pentaho]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://robinsontechnology.com/blog/?p=416</guid>
		<description><![CDATA[I am on a mission.  Several actually, but this one is about enabling the masses of PDI and Kettle users to keep their proverbial ducks in a row. What I&#8217;m talking about is the bevy of errant connections that are meant to be straight, but are off ever so slightly.  But you and I know <a href='http://robinsontechnology.com/blog/2013/04/18/the-best-pentaho-data-integration-tip-ever-for-orderly-people/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I am on a mission.  Several actually, but this one is about enabling the masses of PDI and Kettle users to keep their proverbial ducks in a row.</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/ducks-in-a-row.jpg"><img class="aligncenter size-large wp-image-417" title="Ducks in a row" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/ducks-in-a-row-1024x682.jpg" alt="" width="695" height="462" /></a></p>
<p>What I&#8217;m talking about is the bevy of errant connections that are meant to be straight, but are off ever so slightly.  But you and I know better, we see that errant line, the angle that is off by 3 degrees.  And it MUST BE FIXED!</p>
<p>Let&#8217;s look at an example.  Below we have a transformation that reads some sales data, does some data cleansing and data enrichment, and outputs the results into a fact table.  Now does that look terrible or what?  Every line is crooked.</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/messy.png"><img class="aligncenter size-full wp-image-419" title="messy" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/messy.png" alt="" width="663" height="237" /></a></p>
<p>If you&#8217;re like me, you&#8217;ll spend extra time making sure every line is truly straight.  Then, you&#8217;ll need to add or change something about your transformation and do the line-straightening thing all over again.  Let&#8217;s face it, that&#8217;s a waste of time.  Wouldn&#8217;t it be great if there was a way to have our ETL steps automatically lock into place, say, on a grid perhaps?  Well you&#8217;ve come to the right place.  Open up the Tools &#8211;&gt; Options menu.</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/toolsMenu.png"><img class="aligncenter size-full wp-image-420" title="toolsMenu" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/toolsMenu.png" alt="" width="165" height="135" /></a></p>
<p>Switch to the &#8220;Look &amp; Feel&#8221; tab, and change the &#8220;Grid Size&#8221; field to something larger.  I&#8217;ve found 30 to be a good value to set here, mostly because that&#8217;s what <a href="http://www.linkedin.com/pub/lynn-yarbrough/1/b5a/232" target="_blank">Lynn Yarbrough</a> suggested during my <a href="http://www.pentaho.com/services/training/data_integration_for_database_developers/" target="_blank">PDI training class</a>.  Thanks Lynn!</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/lookAndFeelOptions.png"><img class="aligncenter size-large wp-image-421" title="lookAndFeelOptions" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/lookAndFeelOptions-1024x636.png" alt="" width="695" height="431" /></a></p>
<p>Now we can clean up our transformation and straighten everything out with the quickness!  Check it out:</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/clean.png"><img class="aligncenter size-full wp-image-422" title="clean" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/clean.png" alt="" width="760" height="251" /></a></p>
<p>See?  Look how nice that is.</p>
<p>So there you have it &#8211; the best PDI / Kettle tip ever for orderly people.  Don&#8217;t you agree?  <span style="font-size: 13px; line-height: 19px;">Learn more goodies like this in our </span><a style="font-size: 13px; line-height: 19px;" href="http://www.pentaho.com/services/training/data_integration_for_database_developers/" target="_blank">PDI training course</a><span style="font-size: 13px; line-height: 19px;">!</span></p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=o6pw_nqATLo:Ls_iiKZ6mHg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=o6pw_nqATLo:Ls_iiKZ6mHg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://robinsontechnology.com/blog/2013/04/18/the-best-pentaho-data-integration-tip-ever-for-orderly-people/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://robinsontechnology.com/blog/2013/04/18/the-best-pentaho-data-integration-tip-ever-for-orderly-people/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-best-pentaho-data-integration-tip-ever-for-orderly-people</feedburner:origLink></item>
		<item>
		<title>How to add a column to a data set with Pentaho Data Integration</title>
		<link>http://feedproxy.google.com/~r/BrobsTechnologyBlog/~3/YQE3Xb9W4G0/</link>
		<comments>http://robinsontechnology.com/blog/2013/04/11/how-to-add-a-column-to-a-data-set-with-pentaho-data-integration/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 14:15:38 +0000</pubDate>
		<dc:creator>Brian Robinson</dc:creator>
				<category><![CDATA[PDI]]></category>
		<category><![CDATA[Pentaho]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://robinsontechnology.com/blog/?p=395</guid>
		<description><![CDATA[This post answers questions like "How do I get this disconnected set of application dates to be included as a column with the rest of my data set?]]></description>
			<content:encoded><![CDATA[<p>I have a little project going on right now.  I&#8217;m trying to build out a demonstration of our software that highlights how the platform could be leveraged for lending risk management.  One big problem with this is that I am not a bank, and therefore I do not have the necessary data to illustrate the use case (and Pentaho&#8217;s capabilities).  Therefore, I must create it.</p>
<p>So I found some public data regarding mortgage applications, which is great, but it&#8217;s still not exactly the right kind of data, though it&#8217;s a good foundation.  It&#8217;s missing key fields for the use case, like the application date, decision date, and closing date for the loan, not to mention payment status, home price, etc.  You know, information that a real bank would have at its disposal.</p>
<p>I set out to sample the data I found (a CSV file), and loaded it into a staging table via a simple transformation:</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/stage.png"><img class="aligncenter size-full wp-image-396" title="stage" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/stage.png" alt="" width="721" height="86" /></a></p>
<p>In this transformation, I&#8217;m loading the fields from the CSV file, setting certain field values to null if they contain &#8220;NA&#8221; instead of a blank entry, sampling 500,000 records (out of the ~15M in the CSV file), and loading it into a staging table.  Pretty straightforward.</p>
<p>Now I have a table with about 45 fields in it, but none of them with a specific application date field, which I want to add in.  I found a tool called <a href="http://sourceforge.net/projects/spawner/" target="_blank">Spawner</a> that can generate fields of various types within certain ranges, including dates.  Here&#8217;s a quick screen shot of how I set up <a href="http://sourceforge.net/projects/spawner/" target="_blank">Spawner</a> to generate an ApplicationDate field:</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/spawner.png"><img class="aligncenter size-full wp-image-397" title="spawner" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/spawner.png" alt="" width="810" height="668" /></a></p>
<p>I do want the data to reflect seasonality through the months of a year to reflect the seasonal home buying patterns and the resulting mortgages, so I&#8217;m generating a months worth of data at a time.  On the output tab I configured <a href="http://sourceforge.net/projects/spawner/" target="_blank">Spawner</a> to generate a CSV to hold the number of January dates that I want reflected in the data.</p>
<p>Now the big question is: <strong>how do I get this disconnected set of application dates included as a column with the other 45 fields from the public data I found?</strong></p>
<p>I&#8217;m not going to lie, I tried a lot of different steps in PDI before it dawned on me.  If I&#8217;m allocating a certain percentage of the total number of records for each month I&#8217;m representing, there is no reason I can&#8217;t generate a sequence in both the public data set and the generated application dates, and leverage a stream lookup step in PDI to do the match.  After this revelation, I added a sequence as my &#8220;Id&#8221; field in <a href="http://sourceforge.net/projects/spawner/" target="_blank">Spawner</a> for my January dates, and I quickly modified the staging transformation to include a sequence.  Now every record in the staging table has a unique identifier (a new field called &#8220;Id&#8221;):</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/stageWithSeq.png"><img class="aligncenter size-full wp-image-398" title="stageWithSeq" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/stageWithSeq.png" alt="" width="904" height="91" /></a></p>
<p>Now in the transformation in which I load the fact table, I can use a stream lookup to load my randomly generated January dates:</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/streamLookup.png"><img class="aligncenter size-full wp-image-399" title="streamLookup" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/streamLookup.png" alt="" width="327" height="173" /></a></p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/streamLookupDetails.png"><img class="aligncenter size-full wp-image-400" title="streamLookupDetails" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/streamLookupDetails.png" alt="" width="853" height="629" /></a></p>
<p>The stream lookup is configured to match the Id field from the staging table with the Id field that I generated in the January CSV file, and retrieve the associated ApplicationDate for that specific record.  After doing this process for the remaining months in the year (which is admittedly a little bit tedious), the data will reflect the seasonality I want it to show.</p>
<p>So hopefully this will save people some time when they try to figure out how to add new columns to an existing set of data.  If you have suggestions on an even more expedient way to achieve the same result, please do leave a comment here or <a href="http://twitter.com/br524" target="_blank">catch me on Twitter</a> and let me know!  Also, if you want to give PDI a spin, grab the <a href="www.pentaho.com/testdrive/" target="_blank">trial download here</a> and have fun!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=YQE3Xb9W4G0:Sm8G_9hd9UY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=YQE3Xb9W4G0:Sm8G_9hd9UY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://robinsontechnology.com/blog/2013/04/11/how-to-add-a-column-to-a-data-set-with-pentaho-data-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://robinsontechnology.com/blog/2013/04/11/how-to-add-a-column-to-a-data-set-with-pentaho-data-integration/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=how-to-add-a-column-to-a-data-set-with-pentaho-data-integration</feedburner:origLink></item>
		<item>
		<title>Average Trend Measures in Pentaho Analyzer</title>
		<link>http://feedproxy.google.com/~r/BrobsTechnologyBlog/~3/TID1Ufs8PWg/</link>
		<comments>http://robinsontechnology.com/blog/2013/04/05/average-trend-measures-in-pentaho-analyzer/#comments</comments>
		<pubDate>Fri, 05 Apr 2013 13:45:47 +0000</pubDate>
		<dc:creator>Brian Robinson</dc:creator>
				<category><![CDATA[Pentaho]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://robinsontechnology.com/blog/?p=362</guid>
		<description><![CDATA[Rolling averages can be defined via a trend measure in Pentaho Analyzer.  This post shows how to do it.]]></description>
			<content:encoded><![CDATA[<p>Last week I posted about how to define <a title="Pro Tip: Rolling Averages in Pentaho Analyzer" href="http://robinsontechnology.com/blog/2013/03/29/pro-tip-rolling-averages-in-pentaho-analyzer/">rolling averages in Pentaho Analyzer</a>. Since then, my colleague <a href="https://twitter.com/agrohe21" target="_blank">Andy Grohe</a> pointed out that this could also be done via a trend measure rather than having to use MDX.  I found this to be true with a minor caveat, but more on that a bit later.  Andy&#8217;s suggestion is a great one because this method is far more accessible than getting into MDX.</p>
<h2>Average Trend Measures</h2>
<p>For now, let&#8217;s look at how to set up a trend measure to calculate averages based on prior periods.  Let&#8217;s start with a simple example.  In this data set, we&#8217;re filtering on March and April of 2013, and showing the numbered week of the year and a count of requests opened during those weeks:</p>
<p><a style="text-align: center; font-size: 13px; line-height: 19px;" href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/trendMeasure1b1.png"><img class="aligncenter  wp-image-379" title="trendMeasure1b" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/trendMeasure1b1.png" alt="" width="695" /></a></p>
<p>Right clicking on the &#8220;Requests&#8221; dimension reveals a bevy of useful options, one of which is &#8220;User Defined Measures&#8221;, under which a &#8220;Trend Measure&#8221; can be defined.  From here we can define our new &#8220;Average Requests&#8221; measure as follows:</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/trendMeasure2.png"><img class="aligncenter size-full wp-image-365" title="trendMeasure2" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/trendMeasure2.png" alt="" width="569" height="337" /></a></p>
<p>Now we&#8217;ve got our new user defined measure included in our analysis, derived from the prior four time periods:</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/trendMeasure3b.png"><img class="aligncenter size-full wp-image-371" title="trendMeasure3b" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/trendMeasure3b.png" alt="" width="588" height="317" /></a></p>
<p>If we switch to a column-line combo chart, we get this view:</p>
<p style="text-align: center;"><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/trendMeasure4b.png"><img class="aligncenter  wp-image-373" title="trendMeasure4b" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/trendMeasure4b.png" alt="" width="695" /></a></p>
<p>Right away you should notice something interesting: the average is based on the prior four time periods, so the line that is plotted is actually kind of a lagging indicator.</p>
<h2>Rolling Time Periods</h2>
<p>In an attempt to correct this &#8220;lag&#8221; issue, I thought I would leverage relative date filters in an attempt to force the average to be calculated on a rolling basis, including the weeks from the current and previous month, rather than explicitly filtering on March and April of 2013.  For a more detailed discussion of how to set that up, please refer to <a title="Relative Date Filtering in Pentaho Analyzer" href="http://robinsontechnology.com/blog/2013/04/02/relative-date-filtering-in-pentaho-analyzer/">my prior post on the topic</a>.</p>
<p><span style="font-size: 13px; line-height: 19px;">After implementing the necessary changes to my schema, I leveraged the new filtering option (note the different filter selection in the filter pane), but the result was the same (still driven from the prior time periods):</span></p>
<p style="text-align: center;"><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/trendMeasure5b.png"><img class="aligncenter  wp-image-374" title="trendMeasure5b" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/trendMeasure5b.png" alt="" width="695" /></a></p>
<p>I did also try filtering on current and previous 4 weeks (instead of months as above), but the behavior was the same.</p>
<p>This is where I think MDX becomes necessary, since you can use it to specify a formula the explicitly includes the current member as part of the range to be averaged for a calculated measure.  For details on how to set that up, please refer to <a title="Pro Tip: Rolling Averages in Pentaho Analyzer" href="http://robinsontechnology.com/blog/2013/03/29/pro-tip-rolling-averages-in-pentaho-analyzer/">my prior post on the topic</a>.</p>
<p>Using MDX you can achieve average calculations that are potentially as fine as the grain of your time hierarchy (which is very cool), but you may want to forecast expected future values as well.  Such capabilities could really enhance decision making regarding resourcing, investment, retention, quality, or cost reduction.  Pentaho does support such <a href="http://www.pentaho.com/resources/131/pentaho-predictive-analytics/" target="_blank">predictive analytics</a>, but alas, that&#8217;s a post for another day.  In the meantime, feel free to take Pentaho for a <a href="http://www.pentaho.com/testdrive/" target="_blank">test drive</a>.</p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=TID1Ufs8PWg:dki3bXLmjmU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=TID1Ufs8PWg:dki3bXLmjmU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://robinsontechnology.com/blog/2013/04/05/average-trend-measures-in-pentaho-analyzer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://robinsontechnology.com/blog/2013/04/05/average-trend-measures-in-pentaho-analyzer/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=average-trend-measures-in-pentaho-analyzer</feedburner:origLink></item>
		<item>
		<title>Relative Date Filtering in Pentaho Analyzer</title>
		<link>http://feedproxy.google.com/~r/BrobsTechnologyBlog/~3/rfh6eYeaWIM/</link>
		<comments>http://robinsontechnology.com/blog/2013/04/02/relative-date-filtering-in-pentaho-analyzer/#comments</comments>
		<pubDate>Tue, 02 Apr 2013 19:26:24 +0000</pubDate>
		<dc:creator>Brian Robinson</dc:creator>
				<category><![CDATA[Pentaho]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://robinsontechnology.com/blog/?p=341</guid>
		<description><![CDATA[Describes how to define Pentaho analyzer reports that leverage rolling dates.]]></description>
			<content:encoded><![CDATA[<p>A week or two ago I had a request for how to create visualizations that leveraged rolling dates.  For example, show the event count for the last 4 weeks (rather than specifically filtering on the last four specific weeks of the year).  My teammate <a href="https://twitter.com/arubawayne" target="_blank">Wayne Johnson</a> referred me to some <a href="http://infocenter.pentaho.com/help/index.jsp?topic=%2Fanalysis_guide%2Fconcept_relative_date_filters.html" target="_blank">documentation on how to modify your Mondrian schema file to enable this</a> capability in Pentaho Analyzer, and it took me a while to really figure out how to get it to work, so I thought I&#8217;d share an example that I was successful with.</p>
<p>First, the goal.  For this test data set, I wanted to be able to show something like the image below, and have it be correctly up to date each day to show only the prior four days.</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/lastFour.png"><img class="aligncenter size-large wp-image-343" title="lastFour" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/lastFour-1024x676.png" alt="" width="695" height="458" /></a></p>
<p>&nbsp;</p>
<p>So how did I get there?  Have a look at the Mondrian schema file:</p>
<div>&lt;Cube name=&#8221;Events&#8221; visible=&#8221;true&#8221; cache=&#8221;true&#8221; enabled=&#8221;true&#8221;&gt;</div>
<div>    &lt;Table name=&#8221;fact_events&#8221;&gt;</div>
<div>    &lt;/Table&gt;</div>
<div>    &lt;DimensionUsage source=&#8221;Date&#8221; name=&#8221;Date&#8221; visible=&#8221;true&#8221; foreignKey=&#8221;date_key&#8221; highCardinality=&#8221;false&#8221;&gt;</div>
<div>    &lt;/DimensionUsage&gt;</div>
<div>    &lt;Measure name=&#8221;Events&#8221; column=&#8221;id&#8221; formatString=&#8221;#,###;(#,###)&#8221; aggregator=&#8221;count&#8221;&gt;</div>
<div>    &lt;/Measure&gt;</div>
<div>&lt;/Cube&gt;</div>
<div>&lt;Dimension type=&#8221;TimeDimension&#8221; visible=&#8221;true&#8221; highCardinality=&#8221;false&#8221; name=&#8221;Date&#8221;&gt;</div>
<div>    &lt;Hierarchy name=&#8221;Date&#8221; visible=&#8221;true&#8221; hasAll=&#8221;true&#8221; primaryKey=&#8221;date_id&#8221;&gt;</div>
<div>        &lt;Table name=&#8221;dim_date&#8221;&gt;</div>
<div>        &lt;/Table&gt;</div>
<div>        &lt;Level name=&#8221;Year&#8221; visible=&#8221;true&#8221; column=&#8221;year_key&#8221; type=&#8221;Integer&#8221; uniqueMembers=&#8221;false&#8221; levelType=&#8221;TimeYears&#8221; hideMemberIf=&#8221;Never&#8221;&gt;</div>
<div>            &lt;Annotations&gt;</div>
<div>                &lt;Annotation name=&#8221;AnalyzerDateFormat&#8221;&gt;</div>
<div>                    &lt;![CDATA[[yyyy]]]&gt;</div>
<div>                &lt;/Annotation&gt;</div>
<div>            &lt;/Annotations&gt;</div>
<div>        &lt;/Level&gt;</div>
<div>        &lt;Level name=&#8221;Quarter&#8221; visible=&#8221;true&#8221; table=&#8221;dim_date&#8221; column=&#8221;quarter_key&#8221; nameColumn=&#8221;quarter_desc&#8221; type=&#8221;Integer&#8221; uniqueMembers=&#8221;false&#8221; levelType=&#8221;TimeQuarters&#8221; hideMemberIf=&#8221;Never&#8221;&gt;</div>
<div>            &lt;Annotations&gt;</div>
<div>                &lt;Annotation name=&#8221;AnalyzerDateFormat&#8221;&gt;</div>
<div>                    &lt;![CDATA[[yyyy].['Q'q yyyy]]]&gt;</div>
<div>                &lt;/Annotation&gt;</div>
<div>            &lt;/Annotations&gt;</div>
<div>        &lt;/Level&gt;</div>
<div>        &lt;Level name=&#8221;Month&#8221; visible=&#8221;true&#8221; column=&#8221;month_key&#8221; nameColumn=&#8221;month_desc&#8221; type=&#8221;Integer&#8221; uniqueMembers=&#8221;false&#8221; levelType=&#8221;TimeMonths&#8221; hideMemberIf=&#8221;Never&#8221;&gt;</div>
<div>            &lt;Annotations&gt;</div>
<div>                &lt;Annotation name=&#8221;AnalyzerDateFormat&#8221;&gt;</div>
<div>                    &lt;![CDATA[[yyyy].['Q'q yyyy].[MMM yyyy]]]&gt;</div>
<div>                &lt;/Annotation&gt;</div>
<div>            &lt;/Annotations&gt;</div>
<div>        &lt;/Level&gt;</div>
<div>        &lt;Level name=&#8221;Date&#8221; visible=&#8221;true&#8221; column=&#8221;date_id&#8221; nameColumn=&#8221;date_desc&#8221; type=&#8221;Integer&#8221; uniqueMembers=&#8221;false&#8221; levelType=&#8221;TimeDays&#8221; hideMemberIf=&#8221;Never&#8221;&gt;</div>
<div>            &lt;Annotations&gt;</div>
<div>                &lt;Annotation name=&#8221;AnalyzerDateFormat&#8221;&gt;</div>
<div>                    &lt;![CDATA[[yyyy].['Q'q yyyy].[MMM yyyy].[yyyy-MM-dd]]]&gt;</div>
<div>                &lt;/Annotation&gt;</div>
<div>            &lt;/Annotations&gt;</div>
<div>        &lt;/Level&gt;</div>
<div>    &lt;/Hierarchy&gt;</div>
<div>&lt;/Dimension&gt;</div>
<div></div>
<p>&nbsp;</p>
<p>The key to getting this to work is <strong>matching up the annotation format from each dimension level with the values from the date/time dimension table</strong>.  In this case, the values from my date dimension looked like this:</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/lastFourTableFull.png"><img class="aligncenter size-full wp-image-348" title="lastFourTableFull" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/lastFourTableFull.png" alt="" width="722" height="362" /></a></p>
<p>As such, I had to provide some string literals within the &#8220;AnalyzerDateFormat&#8221; annotation and use the year for every level.  For example, &#8216;[yyyy].['Q'q yyyy].[MMM yyyy]&#8216; matches the year, quarter, and month format.  &#8217;[yyyy]&#8216; is clearly the year format, but the &#8216;quarter_desc&#8217; column in the dim_date table held values that were non-standard according to the documented formatting rules.  The &#8216;Q&#8217; in &#8216;['Q'q yyyy]&#8216; matches directly with the data, whereas the &#8216;q&#8217; matches with the numeric quarter (1 in the graphic above).</p>
<p>Once I figured out how to configure the format strings, all I had to do was make use of the newly available filtering option for dates.  After right clicking on &#8220;Date&#8221; and choosing &#8220;Filter&#8221;, now I can &#8220;choose a commonly used time period&#8221; and select a specific number of previous dates (in this case 25, because my data is a little bit old).</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/filterOnDate.png"><img class="aligncenter size-full wp-image-355" title="filterOnDate" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/filterOnDate.png" alt="" width="555" height="467" /></a></p>
<p>If I set my system clock forward a day and re-run the report, we see that the report automatically updates (in this case showing only three days worth of data):</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/lastFourv2.png"><img class="aligncenter size-large wp-image-356" title="lastFourv2" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/lastFourv2-1024x679.png" alt="" width="695" height="460" /></a></p>
<p>Hopefully this is helpful!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=rfh6eYeaWIM:1fY8t_KU_7Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=rfh6eYeaWIM:1fY8t_KU_7Y:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://robinsontechnology.com/blog/2013/04/02/relative-date-filtering-in-pentaho-analyzer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://robinsontechnology.com/blog/2013/04/02/relative-date-filtering-in-pentaho-analyzer/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=relative-date-filtering-in-pentaho-analyzer</feedburner:origLink></item>
		<item>
		<title>Quick tip: Custom visualizations in Pentaho PDI and Instaview</title>
		<link>http://feedproxy.google.com/~r/BrobsTechnologyBlog/~3/r-5SfDVtQyc/</link>
		<comments>http://robinsontechnology.com/blog/2013/04/01/quick-tip-custom-visualizations-in-pentaho-pdi-and-instaview/#comments</comments>
		<pubDate>Mon, 01 Apr 2013 20:44:10 +0000</pubDate>
		<dc:creator>Brian Robinson</dc:creator>
				<category><![CDATA[Pentaho]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://robinsontechnology.com/blog/?p=333</guid>
		<description><![CDATA[ I discovered that those visualizations could be deployed for use in PDI and Instaview by unzipping them to a specific location.]]></description>
			<content:encoded><![CDATA[<p>Over the holidays, Pentaho developed and released the <a href="http://events.pentaho.com/12days-of-Big-Data-Visualizations.html" target="_blank">12 days of visualizations</a>, demonstrating the platform&#8217;s flexibility and how easy it can be to add new ways to visualize data.  I of course installed them all, enabling them within Pentaho Analyzer in the Pentaho User Console, but I never did figure out how to get them to run in PDI or Instaview.  But today changed everything&#8230;</p>
<p>Thanks to my colleague <a href="https://twitter.com/sal_scalisi" target="_blank">Sal Scalisi</a>, I discovered that those visualizations could be deployed for use in PDI and Instaview by unzipping them to this location:</p>
<pre>&lt;installation-directory&gt;\design-tools\data-integration\plugins\spoon\agile-bi\platform\pentaho-solutions\system</pre>
<p>After restarting PDI, the custom visualizations were all available in the Visualization perspective, as shown here:</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/pdi-with-viz.png"><img class="aligncenter size-large wp-image-334" title="pdi-with-viz" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/04/pdi-with-viz-1024x710.png" alt="" width="695" height="481" /></a></p>
<p>I would like to re-articulate the <a href="http://wiki.pentaho.com/display/COM/Holiday+Visualizations" target="_blank">disclaimer</a> made along with the release of these visualizations though:</p>
<blockquote><p>These visualizations are provided <span style="color: #ff0000;"><strong>for demonstration purposes ONLY</strong></span>.  They are provided with no warranty or commitments regarding the quality of the sample and/or platform support.  Many of the underlying charting libraries used in these samples only work on a subset of browsers that are part of Pentaho&#8217;s official support matrix.</p></blockquote>
<p>Note that you will be installing these at your own risk.  For support purposes, you may be asked to disable these plugins within PDI and Instaview in order to fully debug any issues you may be experiencing.</p>
<p>Also, please note that this is not an April Fool&#8217;s joke, despite my posting it on April 1st.  If you want one of those, see <a href="http://blogs.alfresco.com/wp/developer/2013/04/01/alfresco-announces-hipster-compatible-enterprise-content-management-sdk/">here</a>.</p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=r-5SfDVtQyc:X2epSofahG4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=r-5SfDVtQyc:X2epSofahG4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://robinsontechnology.com/blog/2013/04/01/quick-tip-custom-visualizations-in-pentaho-pdi-and-instaview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://robinsontechnology.com/blog/2013/04/01/quick-tip-custom-visualizations-in-pentaho-pdi-and-instaview/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=quick-tip-custom-visualizations-in-pentaho-pdi-and-instaview</feedburner:origLink></item>
		<item>
		<title>Pro Tip: Rolling Averages in Pentaho Analyzer</title>
		<link>http://feedproxy.google.com/~r/BrobsTechnologyBlog/~3/UfuWdt4dspw/</link>
		<comments>http://robinsontechnology.com/blog/2013/03/29/pro-tip-rolling-averages-in-pentaho-analyzer/#comments</comments>
		<pubDate>Fri, 29 Mar 2013 17:11:36 +0000</pubDate>
		<dc:creator>Brian Robinson</dc:creator>
				<category><![CDATA[Pentaho]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://robinsontechnology.com/blog/?p=321</guid>
		<description><![CDATA[This week I had a request for how to calculate a rolling average for the last five time periods for a particular measure.]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: 13px; line-height: 19px;">I&#8217;m fairly new to the business analytics space, so multidimensional expressions (MDX) are not even close to second nature to me.  This week however, I had a request for how to calculate a rolling average for the last five time periods for a particular measure.</span></p>
<p>Clearly, I was going to need the <a href="http://msdn.microsoft.com/en-us/library/ms146067.aspx" target="_blank">Avg()</a> function, so I <a href="http://msdn.microsoft.com/en-us/library/ms146067.aspx" target="_blank">checked the reference</a> for it:</p>
<pre>Avg( Set_Expression [ , Numeric_Expression ] )</pre>
<p>The numeric expression was the easy part &#8211; that would simply be the measure (in this case aggregated by count) I want the average of.  The set expression I was less sure about.  After a bit of trial and error (and some guidance from <a href="http://www.linkedin.com/in/boborland" target="_blank">Bo Borland</a>), I discovered that I needed to supply a <a href="http://msdn.microsoft.com/en-us/library/ms146001.aspx" target="_blank">range</a> that identified the set to average based on the date, and that one great way to do that was to leverage <a href="http://msdn.microsoft.com/en-us/library/ms146001.aspx" target="_blank">&#8220;:&#8221; operator</a> and the <a href="http://msdn.microsoft.com/en-us/library/ms144866.aspx" target="_blank">Lag()</a> function.  In the end, my new calculated measure looked like this:</p>
<pre>Avg({[Date].[Date].CurrentMember.Lag(5):[Date].[Date].CurrentMember}, [Measures].[Events])</pre>
<p>In this case, the first occurrence of &#8220;Date&#8221; refers to the name of the dimension referenced by the cube, and the second instance of the word &#8220;Date&#8221; refers to the level that describes the actual date of the event.  Here are the relevant sections of the schema file I used:</p>
<pre>&lt;Cube name="Events" visible="true" cache="true" enabled="true"&gt;
 &lt;Table name="fact_events"&gt;
 &lt;/Table&gt;
 &lt;DimensionUsage source="Date" name="Date" visible="true" foreignKey="date_key" highCardinality="false"&gt;
 &lt;/DimensionUsage&gt;
 &lt;Measure name="Events" column="id" formatString="#,###;(#,###)" aggregator="count"&gt;
 &lt;/Measure&gt;
 &lt;CalculatedMember name="Rolling Avg Events" formula="Avg({[Date].[Date].CurrentMember.Lag(5):[Date].[Date].CurrentMember}, [Measures].[Events])" dimension="Measures" visible="true"&gt;
 &lt;/CalculatedMember&gt;
&lt;/Cube&gt;</pre>
<pre>&lt;Dimension type="TimeDimension" visible="true" highCardinality="false" name="Date"&gt;
 &lt;Hierarchy name="Date" visible="true" hasAll="true" primaryKey="date_id"&gt;
 &lt;Table name="dim_date"&gt;
 &lt;/Table&gt;
 &lt;Level name="Year" visible="true" column="year_key" type="Integer" uniqueMembers="false" levelType="TimeYears" hideMemberIf="Never"&gt;
 &lt;/Level&gt;
 &lt;Level name="Quarter" visible="true" table="dim_date" column="quarter_key" nameColumn="quarter_desc" type="Integer" uniqueMembers="false" levelType="TimeQuarters" hideMemberIf="Never"&gt;
 &lt;/Level&gt;
 &lt;Level name="Month" visible="true" column="month_key" nameColumn="month_desc" type="Integer" uniqueMembers="false" levelType="TimeMonths" hideMemberIf="Never"&gt;
 &lt;/Level&gt;
 &lt;Level name="Date" visible="true" column="date_id" nameColumn="date_desc" type="Integer" uniqueMembers="false" levelType="TimeDays" hideMemberIf="Never"&gt;
 &lt;/Level&gt;
 &lt;/Hierarchy&gt;
&lt;/Dimension&gt;</pre>
<p>As a result, I&#8217;m now able to show the rolling average number of events in a column line combo chart (or any number of our other visualizations) as well as a convenient tabular view, such as below.</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/03/rollingAvgColLineCombo.png"><img class="aligncenter size-large wp-image-322" title="rollingAvgColLineCombo" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/03/rollingAvgColLineCombo-1024x603.png" alt="" width="695" height="409" /></a></p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/03/rollingAvgTable.png"><img class="aligncenter size-full wp-image-323" title="rollingAvgTable" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/03/rollingAvgTable.png" alt="" width="653" height="318" /></a></p>
<p>One improvement I haven&#8217;t quite figured out yet is how to make the value supplied to the Lag() function dynamic instead of it always being 5.  But that&#8217;s a post for another day.  Hopefully this one is helpful for anyone looking to create a rolling average calculation for use in Analyzer!</p>
<p>Update, 4/9/2013 &#8211; there is an easier way, though it has slightly different results.  See my post about it here: <a href="http://robinsontechnology.com/blog/2013/04/05/average-trend-measures-in-pentaho-analyzer/">http://robinsontechnology.com/blog/2013/04/05/average-trend-measures-in-pentaho-analyzer/</a>.</p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=UfuWdt4dspw:hI1yw5KN7Yg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=UfuWdt4dspw:hI1yw5KN7Yg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://robinsontechnology.com/blog/2013/03/29/pro-tip-rolling-averages-in-pentaho-analyzer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://robinsontechnology.com/blog/2013/03/29/pro-tip-rolling-averages-in-pentaho-analyzer/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=pro-tip-rolling-averages-in-pentaho-analyzer</feedburner:origLink></item>
		<item>
		<title>Pro Tip: Pentaho Microsoft Excel Input Step</title>
		<link>http://feedproxy.google.com/~r/BrobsTechnologyBlog/~3/gbRE7q4Zfig/</link>
		<comments>http://robinsontechnology.com/blog/2013/03/18/pro-tip-pentaho-microsoft-excel-input-step/#comments</comments>
		<pubDate>Mon, 18 Mar 2013 14:05:48 +0000</pubDate>
		<dc:creator>Brian Robinson</dc:creator>
				<category><![CDATA[Pentaho]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://robinsontechnology.com/blog/?p=310</guid>
		<description><![CDATA[Let me just sum this up for you right up front: If you have multiple sheets in a spreadsheet with different fields in them, use multiple Excel input steps, not just one.  Read on for the long version.]]></description>
			<content:encoded><![CDATA[<p>Let me just sum this up for you right up front: If you have multiple sheets in a spreadsheet with different fields in them, use multiple <a href="http://infocenter.pentaho.com/help/index.jsp?topic=%2Fpdi_user_guide%2Freference_excel_input.html">Excel input</a> steps, not just one.  Read on for the long version.</p>
<p>This week I got some sample data in Excel format.  The file contained 17 sheets, each with a different set of fields in the header row (which was on the 2nd row by the way, not the first).  So I dragged an Excel input step into PDI, and went to work configuring it.  Based on the data model description (provided in a separate file), I got all 17 sheet names and then narrowed them down to the 3 that I needed for my purposes.  I set the start row to &#8220;1&#8243; for each (apparently the header row is 0 based), and got all the fields.  There were over 800 of them.  I narrowed those down to just the 80 or so I needed, and continued to set up the dimension tables via the &#8220;Dimension Lookup / Update&#8221; step.  I was also sure to update the &#8220;Spread sheet type (engine)&#8221; to Excel 2007 XLSX (Apache POI) to match the file format I was provided.</p>
<p>Once I had it all set up, I ran the transformation, which completed successfully.  Unfortunately it only successfully pulled data out of one of the three worksheets.  Upon closer inspection, I found that the two sheets from which data was not retrieved had some formatting in them.  The cells within that sheet looked like this:</p>
<p>&nbsp;</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/03/excel-cell.png"><img class="aligncenter size-full wp-image-311" title="excel-cell" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/03/excel-cell.png" alt="" width="268" height="45" /></a></p>
<p>When I hovered over the warning sign, the message was &#8220;The number in this cell is formatted as text or preceded by an apostrophe.&#8221;  My first thought was that I needed to get a new data set that had no formatting, and I wasn&#8217;t sure where to go from here.  I asked around, and <a href="https://twitter.com/sal_scalisi" target="_blank">Sal Scalisi</a>, a colleague of mine here at Pentaho produced a more simple example with the same formatting I had in which everything worked just fine.  The difference?  He only had one sheet in his Excel file.  He suggested that I use one Excel input for each sheet in the Excel workbook, and he was right on the money.  I rearranged the transformation, and everything works extremely well.  This is the end result:</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2013/03/excel-result.png"><img class="aligncenter size-large wp-image-312" title="excel-result" src="http://robinsontechnology.com/blog/wp-content/uploads/2013/03/excel-result-1024x371.png" alt="" width="695" height="251" /></a></p>
<p>Hopefully this tip is helpful to some of you out there dealing with Excel data!</p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=gbRE7q4Zfig:o0kuGisp4S8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=gbRE7q4Zfig:o0kuGisp4S8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://robinsontechnology.com/blog/2013/03/18/pro-tip-pentaho-microsoft-excel-input-step/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://robinsontechnology.com/blog/2013/03/18/pro-tip-pentaho-microsoft-excel-input-step/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=pro-tip-pentaho-microsoft-excel-input-step</feedburner:origLink></item>
		<item>
		<title>A New Chapter</title>
		<link>http://feedproxy.google.com/~r/BrobsTechnologyBlog/~3/r0Jk28GYK0c/</link>
		<comments>http://robinsontechnology.com/blog/2013/01/02/a-new-chapter/#comments</comments>
		<pubDate>Wed, 02 Jan 2013 14:17:16 +0000</pubDate>
		<dc:creator>Brian Robinson</dc:creator>
				<category><![CDATA[Pentaho]]></category>

		<guid isPermaLink="false">http://robinsontechnology.com/blog/?p=291</guid>
		<description><![CDATA[Today I start a new chapter in my career, as a pre-sales solutions engineer for Pentaho, a leading provider of cost effective relational and big data analytics, and I'm very excited about it!]]></description>
			<content:encoded><![CDATA[<p>&#8220;If you want to succeed, you should strike out on new paths, rather than travel worn paths of accepted success.&#8221;  - John D. Rockefeller</p>
<p>Today I start a new chapter in my career, as a pre-sales solutions engineer for <a title="Pentaho" href="http://pentaho.com">Pentaho</a>, a leading provider of cost effective relational and big data analytics, and I&#8217;m very excited about it!</p>
<p><iframe src="http://www.youtube.com/embed/n_w4oSCJIQk?rel=0" frameborder="0" width="640" height="360"></iframe></p>
<p>I have a lot to learn, and I look forward to understanding the problem space more completely, mastering the myriad of technologies involved, and communicating the value of the Pentaho platform to customers and prospects in coming years in order to bring valuable business insights into their organizations.</p>
<p>It&#8217;ll be a lot of work, but this is going to be fun!</p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=r0Jk28GYK0c:MPXBzrzcoRg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=r0Jk28GYK0c:MPXBzrzcoRg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://robinsontechnology.com/blog/2013/01/02/a-new-chapter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://robinsontechnology.com/blog/2013/01/02/a-new-chapter/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=a-new-chapter</feedburner:origLink></item>
		<item>
		<title>Why I Need Alfresco Cloud Sync</title>
		<link>http://feedproxy.google.com/~r/BrobsTechnologyBlog/~3/OGpDK-fFGWw/</link>
		<comments>http://robinsontechnology.com/blog/2012/08/14/why-i-need-alfresco-cloud-sync/#comments</comments>
		<pubDate>Tue, 14 Aug 2012 21:39:16 +0000</pubDate>
		<dc:creator>Brian Robinson</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://robinsontechnology.com/blog/?p=265</guid>
		<description><![CDATA[I am a solutions engineer for Alfresco Software covering the northeastern United States. As such, I believe it is important to clearly communicate the many ways in which our enterprise content management platform can be used in the financial services industry, which is very prevalent in the northeast. Therefore, I have done some research on <a href='http://robinsontechnology.com/blog/2012/08/14/why-i-need-alfresco-cloud-sync/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I am a solutions engineer for Alfresco Software covering the northeastern United States. As such, I believe it is important to clearly communicate the many ways in which our enterprise content management platform can be used in the financial services industry, which is very prevalent in the northeast. Therefore, I have done some research on current customer use cases as well as potential use cases discovered from a few sources.  Namely, the annual reports of some of the biggest banks in the world, and discussions with several colleagues internally and at some of our partner companies. One of those partners agreed to work with me to flesh out the bits and bytes to be able to demonstrate one of the use cases, and so of course I created a site in Alfresco&#8217;s cloud at <a href="http://my.alfresco.com">http://my.alfresco.com</a> and invited a few folks from the partner company to join and collaborate with me there.  I uploaded the document in which I was collecting use case research, and another that included details of the design for the first use case.</p>
<p><strong>And therein lies the problem.</strong></p>
<p>Both of those documents were already in their own folder within our U.S. Solutions Engineering Share site in our on-premise deployment of Alfresco, because I&#8217;ve been collaborating with some of my colleagues on them as well.  Now I&#8217;m collaborating with two different groups of people on the same documents, and I have to carefully manage updates in both directions.  This is why I need <a href="http://wiki.alfresco.com/wiki/2012_Product_Roadmap#Cloud_Sync" target="_blank">Alfresco cloud sync</a>.</p>
<p><a href="http://robinsontechnology.com/blog/wp-content/uploads/2012/08/sync.png"><img class="aligncenter size-medium wp-image-286" title="sync" src="http://robinsontechnology.com/blog/wp-content/uploads/2012/08/sync-300x216.png" alt="" width="300" height="216" /></a></p>
<p>Fortunately, Alfresco&#8217;s product management, engineering, quality assurance, and release management teams are inching ever closer to releasing this capability to the world, upon which time I will gladly begin to take advantage the automatic nature of Alfresco cloud sync.  I&#8217;ll set up synchronization of the folder containing the two documents within our on-premise deployment of Alfresco with the document library of the site I created in the Alfresco cloud to collaborate with our partners.  And forever after, I can collaborate on this project seamlessly both internally and externally while maintaining changes and versions from both places.</p>
<p>Seriously, how cool is that?</p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=OGpDK-fFGWw:JDqfvyqqphE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=OGpDK-fFGWw:JDqfvyqqphE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://robinsontechnology.com/blog/2012/08/14/why-i-need-alfresco-cloud-sync/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://robinsontechnology.com/blog/2012/08/14/why-i-need-alfresco-cloud-sync/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=why-i-need-alfresco-cloud-sync</feedburner:origLink></item>
		<item>
		<title>My 3 Words for 2012</title>
		<link>http://feedproxy.google.com/~r/BrobsTechnologyBlog/~3/yjsk0hD3Xss/</link>
		<comments>http://robinsontechnology.com/blog/2012/01/01/my-3-words-for-2012/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 14:57:38 +0000</pubDate>
		<dc:creator>Brian Robinson</dc:creator>
				<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://robinsontechnology.com/blog/?p=260</guid>
		<description><![CDATA[Usually we're all inundated with articles about "the top 10 whatevers of 2011" or "the 7 things to do in 2012", or posts with predictions for the new year.  Chris wrote about how he sets his goals for the new year, which is exactly how I do it as well.

So in the spirit of sharing (and to begin executing on one of mine immediately), here are my three words for 2012: Plan, execute, network.]]></description>
			<content:encoded><![CDATA[<p>This morning I came across a post by <a href="http://twitter.com/chrisbrogan">Chris Brogan</a> about his <a href="http://www.chrisbrogan.com/3words2012/">three words for 2012</a>, and for once, I was pleased with what the blogosphere had to say during this new year time period.  Usually we&#8217;re all inundated with articles about &#8220;the top 10 whatevers of 2011&#8243; or &#8220;the 7 things to do in 2012&#8243;, or posts with predictions for the new year.  Chris wrote about how he sets his goals for the new year, which is exactly how I do it as well.</p>
<p>So in the spirit of sharing (and to begin executing on one of mine immediately), here are my three words for 2012: Plan, execute, network.</p>
<ol>
<li><strong>Plan. </strong>For me, planning encompasses big picture thinking, strategy, and consistent weekly planning.  I intend to spend some time every week thinking about how I&#8217;m spending my time, and whether it&#8217;s the best use of my time in pursuit of my goals.  I will also continue my practice of planning by the role in my life (husband, father, student, employee, etc.), as suggested by Stephen Covey in &#8220;<a href="http://www.amazon.com/gp/product/B000WJVK26/ref=as_li_ss_tl?ie=UTF8&amp;tag=bronte-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B000WJVK26">The 7 Habits of Highly Effective People</a>&#8220;, which I had to re-read this year for a class I took.  I&#8217;ve been doing this for a couple of months now, and together with the help of <a href="http://itunes.apple.com/us/app/omnifocus-for-ipad/id383804552?mt=8">OmniFocus for the iPad</a>, it&#8217;s been working very well for me.</li>
<li><strong>Execute. </strong>This is about focus for me.  Part of the changeless core within me is that I find everything interesting, and typically think I can get anything (and everything) done, regardless of how busy my life is.  Though I know that I have my limits, I always struggle with this.  In 2012, I intend to take pause before I commit to taking on a new project of any kind.  I need to learn to separate my enthusiasm from my workload, and pay more attention to the latter.</li>
<li><strong>Network. </strong>This is a big one for me that encapsulates several things at once, namely strategic thinking in IT, making new industry connections, solution selling, relationship development, and social media.  That may seem like just a big list of stuff, but it does all come together.  Now that I&#8217;ll be a bit more freed up this year since I&#8217;ll complete my MBA in May, I intend to spend some of that newly found time developing my base of knowledge regarding what CIOs are thinking about and struggling with.  I expect to do some blogging along the way, make new connections in pursuit of that knowledge via Twitter, LinkedIn, etc., and use that knowledge to help solve problems for my customers and prospects.</li>
</ol>
<p>So those are my three words for 2012.  I&#8217;d love to hear what you think about it, so please, drop me a note here, or catch me <a href="http://twitter.com/br524">on Twitter</a>.  What are your three words for 2012?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=yjsk0hD3Xss:o6ktIxH59F4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?a=yjsk0hD3Xss:o6ktIxH59F4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/BrobsTechnologyBlog?d=7Q72WNTAKBA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://robinsontechnology.com/blog/2012/01/01/my-3-words-for-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://robinsontechnology.com/blog/2012/01/01/my-3-words-for-2012/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=my-3-words-for-2012</feedburner:origLink></item>
	</channel>
</rss>
