<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Reporting Tales</title>
	<atom:link href="http://www.on-reporting.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.on-reporting.com</link>
	<description>Pentaho Reporting Tips and Tricks</description>
	<lastBuildDate>Mon, 17 Jun 2013 16:39:51 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Pentaho Reporting version will be 5.0, in sync with BA-Server</title>
		<link>http://www.on-reporting.com/blog/pentaho-reporting-will-be-5-0/</link>
		<comments>http://www.on-reporting.com/blog/pentaho-reporting-will-be-5-0/#comments</comments>
		<pubDate>Mon, 17 Jun 2013 16:39:06 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.on-reporting.com/?p=352</guid>
		<description><![CDATA[<p>It is now official. The next release of Pentaho Reporting will be numbered 5.0, in sync with the Pentaho Suite 5.0. Future releases will then keep in sync with the suite version number and will be released at the same time as the Pentaho Server. Although it is a shame that you will no longer [...]</p><p>The post <a href="http://www.on-reporting.com/blog/pentaho-reporting-will-be-5-0/">Pentaho Reporting version will be 5.0, in sync with BA-Server</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>It is now official. The next release of Pentaho Reporting will be numbered 5.0, in sync with the Pentaho Suite 5.0. Future releases will then keep in sync with the suite version number and will be released at the same time as the Pentaho Server.</p>
<p>Although it is a shame that you will no longer be able to impress friends and family with the arcane knowledge of what PRD goes with a given release of the BA-Server, it will simplify the story for support, marketing, sales and everyone else.</p>
<p>We are now also officially in feature-lock-down. We thus have finally entered the last stages of the development process (the remaining phases being &#8216;stress&#8217;, &#8216;panic&#8217; and &#8216;outright agony&#8217;). That means, no new features get added, regardless how good they are, and we now concentrate solely on working though the remaining items of the sprint backlogs.</p>
<p>The post <a href="http://www.on-reporting.com/blog/pentaho-reporting-will-be-5-0/">Pentaho Reporting version will be 5.0, in sync with BA-Server</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.on-reporting.com/blog/pentaho-reporting-will-be-5-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pentaho Reporting extensions points</title>
		<link>http://www.on-reporting.com/blog/pentaho-reporting-extensions-points/</link>
		<comments>http://www.on-reporting.com/blog/pentaho-reporting-extensions-points/#comments</comments>
		<pubDate>Wed, 05 Jun 2013 13:27:19 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Report Designer & Engine]]></category>

		<guid isPermaLink="false">http://www.on-reporting.com/?p=346</guid>
		<description><![CDATA[<p>Pentaho Reporting provides several extension points for developers to add new capabilities to the reporting engine. When you look at the code of both the reporting engine and the report-designer, you can easily see many of the existing modules. Each extension point comes with a meta-data structures and is initialized during the boot-up process. The [...]</p><p>The post <a href="http://www.on-reporting.com/blog/pentaho-reporting-extensions-points/">Pentaho Reporting extensions points</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Pentaho Reporting provides several extension points for developers to add new capabilities to the reporting engine. When you look at the code of both the reporting engine and the report-designer, you can easily see many of the existing modules.</p>
<p>Each extension point comes with a meta-data structures and is initialized during the boot-up process. The engine provides the following extension points:</p>
<ul>
<li>Formula Functions</li>
<li>Named Function and Expressions</li>
<li>Data-Sources</li>
<li>Report Pre-Processors</li>
<li>Elements
<ul>
<li>Attributes</li>
<li>Styles</li>
</ul>
</li>
</ul>
<p>Formula functions are part of LibFormula. LibFormula is Pentaho&#8217;s adaption of the OpenFormula standard. OpenFormula is a vendor independent specification for spreadsheet calculations. Formula functions provide a very easy way to extend the formula language with new elements without having to worry about the details of the evaluation process. It is perfect if you want to encapuslate an calculation and still be flexible to use it in a general purpose calculation.</p>
<p>Named functions and expressions are the bread-and-butter system to calculate values in a report. Expressions can be chained together by referencing the name of an other expression or database field. Named functions are the only way to calculate values over multiple rows. Adding functions is relatively easy, as named functions only need the implementation as well as the necessary metadata.</p>
<p>Data-Sources are responsible for querying external systems and to provide the report with tabular massdata. Pentaho reporting already ships with data-sources for relational data, OLAP, a PDI data-source that executes ETL-Transformations to compute the data for the report and various scripting options. Adding a data-source is more complex, as an implementor needs to write the datasource, the meta-data and the xml-parsing and writing capabilities. In addition to that, the author needs to provide a UI to configure their new data-source.</p>
<p>With Pentaho Reporting 4.0 we add two additional data-source options, which make it easier to create new data-sources.</p>
<p>The first option uses our ETL tool as backend to parametrize template-transformations. Therefore a data-source developer only has to provide the transformation template, and the system will automatically provide the persistence as well as all dialogs needed to configure the data-source.</p>
<p>The second option uses a small parametrized Java-Class, similar to formula expressions. These calculations, called sequences, are managed by the Seqence-Data-Source, which takes care of all persistence and all UI needs.</p>
<p>Report-Pre-Processors are specialized handlers that are called just before the report is executed the first time. They allow you to alter the structure of the report based on parameter values or query results. These implementations are &#8216;heavy stuff&#8217; for the advanced user or system integrator.</p>
<p>Last but not least, you can create new element types. Elements hold all data and style information to produce a renderable data-object. The reporting engine expects elements to return either text (with additional hooks to return raw objects for export-types who can handle them), graphics or other elements. An element that produces other elements for printing acts as a macro-processor and can return any valid content object, including bands and subreports.</p>
<p>Element metadata is split into 3 parts. The element itself is a union of the element&#8217;s type, attributes and style information. Implementing new basic elements requires you to write a new ElementType implementation (the code that computes the printable content) and to declare all styles and attributes the element uses.</p>
<p>The available style-options are largely defined by the capabilities of the underlying layout engine and thus relatively static in their composition.</p>
<p>An element&#8217;s attributes is a more free-form collection of data. Elements can contain any object as attributes. The build-in xml-parser and writer handles all common primitive types (string, numbers, dates and arrays thereof). If you want to use more complex data structures, you may have to write the necessary xml-parser and writer handlers yourself.</p>
<p>The post <a href="http://www.on-reporting.com/blog/pentaho-reporting-extensions-points/">Pentaho Reporting extensions points</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.on-reporting.com/blog/pentaho-reporting-extensions-points/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A better launcher for the Pentaho Windows clients</title>
		<link>http://www.on-reporting.com/blog/a-better-launcher-for-the-pentaho-windows-clients/</link>
		<comments>http://www.on-reporting.com/blog/a-better-launcher-for-the-pentaho-windows-clients/#comments</comments>
		<pubDate>Fri, 31 May 2013 15:30:22 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Report Designer & Engine]]></category>

		<guid isPermaLink="false">http://www.on-reporting.com/?p=332</guid>
		<description><![CDATA[<p>As my Macbook Pro gave up after just 4 years of service, and given that Apple removed all serious offers and retained only toys, I am back to using Windows. But boy, our Windows integration is painful. On the Mac, I unzip the app-bundle, drag it into &#8220;/Applications&#8221; and the OS deals with associating it [...]</p><p>The post <a href="http://www.on-reporting.com/blog/a-better-launcher-for-the-pentaho-windows-clients/">A better launcher for the Pentaho Windows clients</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-335" alt="shuttle-launcher" src="http://www.on-reporting.com/wp-content/uploads/2013/05/shuttle-launcher.jpg" width="300" height="201" />As my Macbook Pro gave up after just 4 years of service, and given that Apple removed all serious offers and retained only toys, I am back to using Windows.</p>
<p>But boy, our Windows integration is painful.</p>
<p>On the Mac, I unzip the app-bundle, drag it into &#8220;/Applications&#8221; and the OS deals with associating it with the prpt files on my disk. Launching the report-designer there feels fairly native (for the amount of work we actually did). Oh, and the JDK is installed and just works. (Well, 1.6, not that crappy Oracle thingie! That&#8217;s just buggy like hell.)</p>
<p>On Windows, I get a different story. I have the JDK installed. After the install, I have NOT set the JAVA_HOME, as the installer does not do that. I unzip the report-designer and end up with a directory on the disk that has a report-designer.bat file. Starting that file flashes a console window into my face. Highly technical, and totally 1980&#8242;s.</p>
<p>Clicking on a PRPT file in the Explorer, the Report-Designer does not start. Instead I get a dialog telling me that no application can open that file. Well, I wrote the beast, so I am sure that the report-designer can handle PRPT files. And manually fixing that is ugly. No normal user would go through that.</p>
<p>Its time for a change!</p>
<p>Using my rusty C# skills I normally only use for game-development, I created a small launcher that improves the integration of the Pentaho Fat-Clients with Windows. The launcher is simply a smarterway of invoking the batch-files we use for our products.</p>
<p>The launcher hides the ugly command window and deals with setting up and maintaining the file associations with the .prpt and .prpti files. And the best of all: It works for all existing Pentaho Report-Designer installations. Just drop it into any of your PRD-3.7, 3.8 or 3.9 installation and enjoy a modern experience.</p>
<p>This small change greatly hides the fact that our tools are not native Windows applications and makes launching them feel more native.</p>
<p>So <a href="http://www.on-reporting.com/wp-content/uploads/2013/05/Pentaho-laucher.zip">download </a>the (experimental) launcher, put it into your report-designer installation directory and give it a try. In case you encounter problems, please give me a shout here or in the <a href="http://forums.pentaho.com/forumdisplay.php?78-Pentaho-Reporting">Pentaho Forum</a> so that we can iron them out quickly.</p>
<p>Download the <a href="http://www.on-reporting.com/wp-content/uploads/2013/05/Pentaho-laucher.zip">Pentaho Report Designer Launcher</a>.</p>
<p>The post <a href="http://www.on-reporting.com/blog/a-better-launcher-for-the-pentaho-windows-clients/">A better launcher for the Pentaho Windows clients</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.on-reporting.com/blog/a-better-launcher-for-the-pentaho-windows-clients/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Anonymized reports &#8211; Report bugs without exposing your business</title>
		<link>http://www.on-reporting.com/blog/anonymized-reports-report-bugs-without-exposing-your-business/</link>
		<comments>http://www.on-reporting.com/blog/anonymized-reports-report-bugs-without-exposing-your-business/#comments</comments>
		<pubDate>Wed, 22 May 2013 15:59:03 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Basic Topic]]></category>
		<category><![CDATA[Tech-Tips]]></category>

		<guid isPermaLink="false">http://www.on-reporting.com/?p=321</guid>
		<description><![CDATA[<p>When reporting a tricky bug, it is mandatory for us to get a sample of a report that shows the bad behaviour. The worst bugs are bugs that consistently show up at the customer&#8217;s system but refuse to be seen on my own computer. The best bug-reports are reports that contain a small sample report [...]</p><p>The post <a href="http://www.on-reporting.com/blog/anonymized-reports-report-bugs-without-exposing-your-business/">Anonymized reports &#8211; Report bugs without exposing your business</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>When reporting a tricky bug, it is mandatory for us to get a sample of a report that shows the bad behaviour. The worst bugs are bugs that consistently show up at the customer&#8217;s system but refuse to be seen on my own computer. The best bug-reports are reports that contain a small sample report along with the data necessary to show the bug&#8217;s effects.</p>
<p>However, not everyone is willing or allowed to share sensitive data. If the bug occurs in your HR reports, its probably not the best idea to attach the report and data to a public JIRA case. When you live in the EU, disclosing personal data of non-consenting persons is a rather serious act.</p>
<p>With Pentaho Reporting 4.0 creating good bug-reports finally becomes easier.</p>
<p>Select &#8220;Extras-&gt;Anonymize Report&#8221; and your report&#8217;s text goes through a randomization process. All characters in the labels are replaced by a randomly chosen character, while preserving both word length, punctuation and capitalization.</p>
<p>The select the report&#8217;s query and select &#8220;Extras-&gt;Anonymize Query&#8221; and your data undergoes the same process. Numbers stay numbers, but are replaced by randomly chosen numbers of the same magnitude. Text and dates are scrambled too. Once this is finished, remove your old query from your data-source and your report now uses the new query.</p>
<p>Note that the query-anonymization works on the preview data. If your query has parameters the preview usually does not return data without proper parameter values. In that case you need to rewrite your query to remove the parameters before you can anonymize it.</p>
<p>With this selective process we preserve most of the characteristics of the report that are important for the layout calculation, but remove most of the sensitive data that was contained in the report.</p>
<p>The post <a href="http://www.on-reporting.com/blog/anonymized-reports-report-bugs-without-exposing-your-business/">Anonymized reports &#8211; Report bugs without exposing your business</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.on-reporting.com/blog/anonymized-reports-report-bugs-without-exposing-your-business/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crosstab update &#8211; Pagebreaks and header visibility</title>
		<link>http://www.on-reporting.com/blog/crosstab-update-pagebreaks-and-header-visibility/</link>
		<comments>http://www.on-reporting.com/blog/crosstab-update-pagebreaks-and-header-visibility/#comments</comments>
		<pubDate>Fri, 17 May 2013 18:05:52 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Report Designer & Engine]]></category>

		<guid isPermaLink="false">http://www.on-reporting.com/?p=324</guid>
		<description><![CDATA[<p>It has been a while since I wrote something about the eternal project. So here&#8217;s a quick update. I just checked in a few changes to the crosstab backend and the magical create-a-crosstab dialog. In addition to selecting the row- and column-dimensions (as usual), you now get a bunch of extra options for your crosstab. [...]</p><p>The post <a href="http://www.on-reporting.com/blog/crosstab-update-pagebreaks-and-header-visibility/">Crosstab update &#8211; Pagebreaks and header visibility</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="size-medium wp-image-325 alignright" alt="prd-screen-capture-6" src="http://www.on-reporting.com/wp-content/uploads/2013/05/prd-screen-capture-6-289x300.png" width="289" height="300" />It has been a while since I wrote something about the eternal project. So here&#8217;s a quick update.</p>
<p>I just checked in a few changes to the crosstab backend and the magical create-a-crosstab dialog. In addition to selecting the row- and column-dimensions (as usual), you now get a bunch of extra options for your crosstab.</p>
<p>The most interesting ones are the switch from a static width and height (80x20pt) to relative sizes. With that a crosstab now tries to fill the available space as good as possible, expanding and shrinking elements when needed.</p>
<p>Marius requested an option to show title headers for the measures. You can control whether you want such headers (they are there by default) or not. As bonus, you get control over the title headers of your column dimensions as well, in case you like it minimalistic.</p>
<p>Last but not least: When a crosstab is larger than a single page, then we now create proper pagebreaks and preprint the header-section on the next page.</p>
<p>For this release, that basically concludes the feature hunt. Until we actually wrap up and do a release build, its hardening and bug-fixing time. So give it a try, and if you tickle a bug out of it, I would be pleased if you could feed our <a href="http://jira.pentaho.com/browse/PRD">JIRA beast</a> with it.</p>
<p>The post <a href="http://www.on-reporting.com/blog/crosstab-update-pagebreaks-and-header-visibility/">Crosstab update &#8211; Pagebreaks and header visibility</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.on-reporting.com/blog/crosstab-update-pagebreaks-and-header-visibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PRD-2087: Widows, Orphans and we are all keeping together, aren&#8217;t we?</title>
		<link>http://www.on-reporting.com/blog/prd-2087-widows-orphans-and-we-all-keeping-together/</link>
		<comments>http://www.on-reporting.com/blog/prd-2087-widows-orphans-and-we-all-keeping-together/#comments</comments>
		<pubDate>Fri, 19 Apr 2013 12:38:10 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Report Designer & Engine]]></category>

		<guid isPermaLink="false">http://www.on-reporting.com/?p=303</guid>
		<description><![CDATA[<p>One long-standing, never resourced, never fixed issue we had was the case of managing orphans and widows in reports. Well, with the cold wind of austerity blowing over Europe, we can&#8217;t forget the widows and orphans, can&#8217;t we? What are Widows and Orphans? In typography, an orphan is the single line left of a paragraph [...]</p><p>The post <a href="http://www.on-reporting.com/blog/prd-2087-widows-orphans-and-we-all-keeping-together/">PRD-2087: Widows, Orphans and we are all keeping together, aren&#8217;t we?</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright  wp-image-308" alt="Thomas_kennington_orphans_1885" src="http://www.on-reporting.com/wp-content/uploads/2013/04/Thomas_kennington_orphans_1885.jpg" width="163" height="256" />One long-standing, never resourced, never fixed issue we had was the case of managing orphans and widows in reports. Well, with the cold wind of austerity blowing over Europe, we can&#8217;t forget the widows and orphans, can&#8217;t we?</p>
<h2>What are Widows and Orphans?</h2>
<p>In typography, an orphan is the single line left of a paragraph left on the previous page. A widow is a lonely line that did not fit on the previous page and now sits alone on the next page. With texts, these rules are somewhat easy to solve, as paragraphs are a flat list and not nested into each other.</p>
<p>In the field of reporting, we usually care less about lines of text, we care about the greater unit of sections. When you create a report, you don&#8217;t want a group-header being all alone at the bottom of the page, without at least one more details band to go with it. Likewise, a group-footer should not be the only thing on the last page for that group. The trouble starts when you consider these rules in a deeply hierarchical structure as we see in reports.</p>
<p>Like so many layouting concepts, orphans and widows are easy to explain, but usually a pain to resolve. Orphan and Widow rules are cumulative. When you have nested groups, then the orphan declarations of the outer group cannot be solved in isolation.</p>
<p>Lets take the simple example of a two-level report , where each group declares that it wants at least two sections as orphan area. Assuming the group-headers are filled, it means that group&#8217;s header and at least the next section must be kept together. For the outer group, that is the outer group-header and the inner group-header. For the inner group it is the group-header and the first details section.</p>
<p>The inner group&#8217;s header is covered by two orphan rules now. It is both part of the first group&#8217;s unbreakable section, as well as part of the second group&#8217;s section. When rules partially overlap each other both rules must be merged.</p>
<p>Last but not least, in the light of these rules, we now can redefine the &#8216;keep-together&#8217; (or in PRD speech: Avoid-page-break-inside) as a infinitely large number of orphans in the break-restricted area.</p>
<h2>How to use this feature</h2>
<p>The Orphans, Widows and Keep-together properties can be defined on any section or band. By default, all root-level bands (details, group-header,footer etc) have a default value for &#8216;keep-together&#8217; of &#8216;true&#8217;.</p>
<p>The Orphan and Widow style settings take a positive integer as value. Negative values are ignored.</p>
<p>A orphan or widow constraint controls how pagebreaks within that element are handled. A widow or orphan constraint only affects child nodes of the element that has the constraint defined. So if you want to keep a group-header together with the next few detail sections, you have to define the orphan-constraint on the group-element. Defining it on the group-header will not have the desired effect.</p>
<p>The reporting engine treats all root-level bands as elements that count as content in the keep-together calculations. All other elements are ignored for the purpose of the widow-orphan calculations. If you explicitly want an element to be used for these calculations, you can set the style-key &#8216;widow-orphan-opt-out&#8217; to false on that element.</p>
<p>If a element that counts for the widow-orphan calculation contains other widow-orphan enabled elements, the parent element will be ignored for the widow-orphan calculations.</p>
<p>Elements with an canvas or row-layout form a leaf node for the widow-orphan calculation. Their child elements cannot take part in any of the parent&#8217;s widow- and orphan calculations. However, they can establish their own widow-orphan context. Therefore, all subreports, even inline-subreports, can declare widow-orphan rules.</p>
<p>The defaults built into the reporting engine ensure that each section on the report is treated as an element for the widow-orphan calculations, even across subreports.</p>
<h2>Performance</h2>
<p>Solving widow and orphan rules is a costly exercise. Our reporting engine allows user-calculations and user-defined formatting to react to page break events. This allows you, for instance, to reset row-banding at the beginning of the page, or to format pages differently for odd and even page numbers. And finally, it allows you to update the page-header and page-footer on a page break so that you can show data from the current page on the headers.</p>
<p>If an section is finished (for instance a group has been fully processed), we can safely evaluate widows and orphans for that group.</p>
<p>For ongoing content generation: When an orphan value greater than zero is declared on a section, the engine suspends the layout calculation until enough content has been generated to fulfill all orphan rules currently on the report. Likewise, for widow-calculations the report processing is suspended until more than the number of widow elements have been generated as content &#8211; and only those elements that are not marked as covered by the widow-rule will be considered for layouting.</p>
<p>Suspending the layout processing can have a severe negative impact on the report processing time. When the engine suspends the layout-calculation, it keeps the unfinished layout in memory until it reaches a point where the layout can be safely calculated again. In the worst case, this suspends the layouting until the report generation finishes.</p>
<p>Keeping the unfinished layout in memory does consume more memory than the normal streaming report processing. When the engine finally detects a page break that fulfills all orphan and widow rules that are active on the report, it has to roll-back to the state that generated the last visible element on the current page to inform any page-event listener about the page break in the right context. Every rollback is expensive and the reporting engine has to discard any content that had already been generated after that page break, as functions may have reconfigured the report state in preparation or response of the page break.</p>
<p>Orphan calculations are usually less expensive as Widow or Keep-together rules.</p>
<p>However, if you export large amounts of data, try to avoid widow- or orphan-rules on your report. Your report will finish up to 100% faster that way.</p>
<p>&nbsp;</p>
<p>Finally: This major fix is available for both Pentaho Reporting 3.9 and Pentaho Reporting 4.0. The fix did not make it into this month&#8217;s roll-up release for the Pentaho Suite 4.8.1 release, but will be available for the general public in the next roll-up release in July. In the mean time, the fix is in the source code repositories, ready to be checked out and built locally <img src='http://www.on-reporting.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>The post <a href="http://www.on-reporting.com/blog/prd-2087-widows-orphans-and-we-all-keeping-together/">PRD-2087: Widows, Orphans and we are all keeping together, aren&#8217;t we?</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.on-reporting.com/blog/prd-2087-widows-orphans-and-we-all-keeping-together/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Crosstabs got pushed from 5.0 &#8211; but my work goes on</title>
		<link>http://www.on-reporting.com/blog/crosstabs-officially-pushed-from-5-0-but-my-work-goes-on/</link>
		<comments>http://www.on-reporting.com/blog/crosstabs-officially-pushed-from-5-0-but-my-work-goes-on/#comments</comments>
		<pubDate>Tue, 16 Apr 2013 18:56:03 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.on-reporting.com/?p=292</guid>
		<description><![CDATA[<p>On Friday, Pentaho development and product management made the decision to remove crosstabs out of the next release. Therefore, the Pentaho Suite 5.0 will not claim support for crosstabs. The decision came upon us after looking at the scope of the remaining work across the whole stack. So let me give some context to this [...]</p><p>The post <a href="http://www.on-reporting.com/blog/crosstabs-officially-pushed-from-5-0-but-my-work-goes-on/">Crosstabs got pushed from 5.0 &#8211; but my work goes on</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="size-full wp-image-294 alignright" alt="211px-Punishment_sisyph" src="http://www.on-reporting.com/wp-content/uploads/2013/04/211px-Punishment_sisyph.jpg" width="211" height="239" />On Friday, Pentaho development and product management made the decision to remove crosstabs out of the next release. Therefore, the Pentaho Suite 5.0 will not claim support for crosstabs. The decision came upon us after looking at the scope of the remaining work across the whole stack.</p>
<p>So let me give some context to this decision and how it impacts the ongoing and future development work of the reporting stack.</p>
<h2>What does it mean for the Pentaho Suite 5.0 release?</h2>
<p>The BI-Suite will ship with Pentaho Reporting 4.0. I will continue to finalize the reporting engine&#8217;s support for crosstabs, and that will ship with the release. The engine will fully support crosstab reports.</p>
<p>However, the user interface for creating crosstabs will be basically limited to what we have in the current development version, plus fixes to make it work stable. Given the fact that we can&#8217;t reasonably expect anyone but consultants and programmers to use a feature that has no proper UI, we will refrain from publicly claiming that the reporting system supports crosstabs (yet).</p>
<p>That means, you create crosstabs via a dialog and you can select and format elements in the graphical editor. Everything beyond that won&#8217;t have proper UI support, and thus reconfiguring an existing crosstab requires hard work in the structure tree.</p>
<p>The Pentaho Reporting engine has still some interesting new features to offer to make a upgrade worthwhile. Stylesheet support now allows you to create shared style definitions that can be hosted centrally. A new class of datasources driven by Kettle templates adds support for Big-Data/No-SQL datasources. These templates are parametrized, and deployed as plugins and thus allow you to write reusable datasources that are user-friendly to use. And last but not least: We opened up the layout system, giving you new options on how to format reports.</p>
<h2>What were the reasons for the push?</h2>
<p>The decision was a classical result of reducing the risk of the upcoming release. The next release contains a massive rewrite of the internals of the Pentaho BI-Server, updating the architecture to the standards of the 21st century. Adding the JCR repository and REST services required paying for a large amounts of work, which will pay off in the future with faster release cycles and easier to maintain code.</p>
<p>We have roughly 6 weeks left until the code needs to be finished and handed over to the release process. Many of the committed features have only few bits missing or need debugging to be checked off as finished.</p>
<p>Over the last month or two, the crosstab UI work was somewhat sidelined by bug-fixing work for the service packs and by work on other features. With too many tasks for not enough hands, at some point something has to give in.</p>
<p>Faced with a large workload that would finally leave little time for QA and documentation, it was only sensible to cut our loses short for this release. To create a release that contains as many goodies as possible, it is more sensible to finish what is nearly done than to work on the larger risk items.</p>
<p>It is difficult to push cases where the missing feature would be a regression or leave a visible gap. At the end, the crosstab cases were clearly separate from the other features, and with clear lines for the cut the safest to push.</p>
<p>&nbsp;</p>
<p>The post <a href="http://www.on-reporting.com/blog/crosstabs-officially-pushed-from-5-0-but-my-work-goes-on/">Crosstabs got pushed from 5.0 &#8211; but my work goes on</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.on-reporting.com/blog/crosstabs-officially-pushed-from-5-0-but-my-work-goes-on/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pentaho publishes its first montly Service Pack</title>
		<link>http://www.on-reporting.com/blog/pentaho-publishes-its-first-montly-service-pack/</link>
		<comments>http://www.on-reporting.com/blog/pentaho-publishes-its-first-montly-service-pack/#comments</comments>
		<pubDate>Mon, 04 Mar 2013 15:02:29 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.on-reporting.com/?p=273</guid>
		<description><![CDATA[<p>Last week, Pentaho delivered it&#8217;s first service pack full of bug-fixes for the last two releases to our existing customers. I think this now marks the point where Pentaho crossed over from being a wild teenager towards being an responsible adult. We provide commercial support for our customers as part of the Pentaho support offering, [...]</p><p>The post <a href="http://www.on-reporting.com/blog/pentaho-publishes-its-first-montly-service-pack/">Pentaho publishes its first montly Service Pack</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright  wp-image-282" alt="Pentaho_Content" src="http://www.on-reporting.com/wp-content/uploads/2013/03/Pentaho_Content.jpg" width="320" height="386" />Last week, Pentaho delivered it&#8217;s first service pack full of bug-fixes for the last two releases to our existing customers. I think this now marks the point where Pentaho crossed over from being a wild teenager towards being an responsible adult.</p>
<p>We provide commercial support for our customers as part of the Pentaho support offering, and as part of that we have a long history of fixing critical bugs in releases outside of the normal release cycle.</p>
<p>The main selling point of any commercial support contract is that of an insurance policy &#8211; if something goes wrong and your critical systems are down, there is someone who cares and who can fix them for you. It is the kind of service that lets managers sleep at night in the safe knowledge that their factories will run and their reports continue to be delivered when they wake up the next day.</p>
<p>Until recently, customers with show-stopping problems (severity class 1, with no work-around) would have to go through an escalation process to get the bug-fix machine rolling. The escalation, received by our support department, would land on the desk of the engineering group, who would scramble on their feet to fix it as fast as possible. After we have a fix, it goes through some more testing (which can include that we send out early versions of the fix to validate that it really works in your production system) before it gets wrapped up and officially handed back to support as a &#8216;customer deliverable&#8217; patch release.</p>
<p>One major drawback of that system was: If a bug was not a show-stopper, you would have a rather hard time to get that through as an worthy emergency fix. This easily leads to situations where a low-intensity bug affects a lot of customers, making everyone unhappy, but it never gets addressed for existing releases, as the bug is not severe enough for a single customer.</p>
<p>This system is working well when there is a crisis, and stays around. Sometimes you just can&#8217;t wait until the next patch release comes out.</p>
<p>But for us, as engineering group, dropping all tools and jumping onto emergency bug-fixes causes large disruptions in our engineering process. Emergency patches are born in an expensive process.</p>
<p>Therefore, Pentaho now introduces &#8216;Service Packs&#8217;. Similar to how Microsoft, Oracle and all the old companies publish bug-fixes for their software on a regular schedule, Pentaho&#8217;s service packs are following that same approach.</p>
<p>Roughly every 4 weeks &#8211; to be precisely, usually in the 3rd week of the month &#8211; we package up all bug-fixes that we created over the last month, and make it available to all customers as a patch release.</p>
<p>When we allocate some quality bug-fix time in our planing way before there is a panic call, we can work on the fixes without having to jump around wildly. We get more work done by concentrating a week or so on fixing a series of bugs than by context-switching between our product development work and us delivering emergency fixes.</p>
<p>And when we fix bugs regularly, it makes everyone happy.</p>
<p>Customers are happier, as they see we care, that we fix bugs that annoy them, even though they are not blocker problems. Engineering is happier, as we can fix bugs under less pressure, creating a larger number of fixes with less tears. And when it comes to renewal, sales is happier too, as customers who got help during the year are more likely to see the value of a support contract.</p>
<p>How do we decide what issues get fixed?</p>
<p>When the time comes to assemble the list of things we want to address, we have a list of criteria that help us pick and choose. Here are some of the criteria we use, but bear in mind that this list is in no particular order and not complete:</p>
<ul>
<li>How critical is it? (we rather fix critical issues than cosmetic issues)</li>
<li>Is it a regression of an existing functionality?</li>
<li>What is the impact on customer(s)?</li>
<li>Is there a work around available</li>
<li>How many customers reported the problem?</li>
<li>Is it a data &amp; security issue?</li>
<li>How complex is the fix? Does it require large changes? Is it risky?</li>
<li>How close to the patch package cut-off date has this bug been reported?</li>
</ul>
<p>All these metrics get mixed together to help us form an opinion. So a more severe bug that affects only one customer in a highly arcane scenarios may get fix later than a small fix that affects dozens of customers.</p>
<p>Some issues cannot be solved in the short time frame of the allocated bug-fix time. These issues are likely to be scheduled to the next feature release, especially if fixing them involves major code work, along with the risk to create new problems. A bug fix is not really a bug fix if it introduces new bugs, right?</p>
<p>We currently produce service packs for the Pentaho 4.5 and Pentaho 4.8 release. For report designer, this maps to Pentaho Report Designer 3.9 and 3.9.1 respectively.</p>
<p>Let me repeat it to be extra clear: The old escalation process for show-stopper problems (severity class 1, no workaround available) is still there and will not go away. So when you encounter an issue that has a very negative impact on your operations, please continue to use the escalation process to make us aware of that. We then work together to resolve your problem.</p>
<p>Adding Service packs as an additional tool just makes it easier for us to improve our existing products in a more timely fashion, with fixes made to work within your existing product and installation. This way, getting and installing bug fixes can be as easy as installing the latest Windows Update, so that you can spend more time growing your business.</p>
<p>The post <a href="http://www.on-reporting.com/blog/pentaho-publishes-its-first-montly-service-pack/">Pentaho publishes its first montly Service Pack</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.on-reporting.com/blog/pentaho-publishes-its-first-montly-service-pack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LibCGG &#8211; how to render CCC charts without a server</title>
		<link>http://www.on-reporting.com/blog/libcgg-how-to-render-ccc-charts-without-a-server/</link>
		<comments>http://www.on-reporting.com/blog/libcgg-how-to-render-ccc-charts-without-a-server/#comments</comments>
		<pubDate>Wed, 20 Feb 2013 11:57:49 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Report Designer & Engine]]></category>

		<guid isPermaLink="false">http://www.on-reporting.com/?p=267</guid>
		<description><![CDATA[<p>The CGG plugin does a nice job, trouble is: It is vendor locked-in. Lets see whether we can change that. Years ago the smart guys at Web-Details started to use Protovis to create modern charts for their Dashboards in a project called CCC (Community Chart Components). Inevitably, these charts need to be printed from time [...]</p><p>The post <a href="http://www.on-reporting.com/blog/libcgg-how-to-render-ccc-charts-without-a-server/">LibCGG &#8211; how to render CCC charts without a server</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-268" alt="Sunburst_chart_small" src="http://www.on-reporting.com/wp-content/uploads/2013/02/Sunburst_chart_small.jpg" width="300" height="278" />The <a title="CGG@Webdetails" href="http://www.webdetails.pt/ctools.html#tabcgg">CGG plugin</a> does a nice job, trouble is: It is vendor locked-in. Lets see whether we can change that.</p>
<p>Years ago the smart guys at Web-Details started to use Protovis to create modern charts for their Dashboards in a project called <a title="CCC @ Webdetails" href="http://www.webdetails.pt/ctools.html#tabccc">CCC (Community Chart Components)</a>. Inevitably, these charts need to be printed from time to time, so shortly after that they created the CGG-plugin for the Pentaho BI-Server to do that.</p>
<p>I like the Bi-Server. I also like printing. But I don&#8217;t like having to have a server running to get my charts as images into a report. So a few weeks ago, I took the CGG plugin and pruned everything that relates to BI-Server specific code. Refactored. Sliced it a bit. As a result, we now have <a href="https://github.com/tmorgner/libcgg">LibCGG, readily available on GitHub</a>.</p>
<h3>What is LibCGG</h3>
<p>LibCGG is an abstract layer to render CCC/Protovis charts. Its only focus is rendering. It takes the relevant javascript that makes up the charts and produces SVG or PNG output. LibCGG comes with some JUnit test-cases showing that simple samples provided by Web-Details actually run. None of these samples have been modified in any way, they just run.</p>
<h3>What is it NOT</h3>
<p>LibCGG does not deal with data-sources. It does provide an interface that can be implemented, but it does not come with data-sources itself.<br />
LibCGG does not deal with HTTP requests or even the format in which charts may or may not be stored, defined or delivered to users. It is up to the actual implementation to deal with that. I have <a href="https://github.com/tmorgner/cgg">modified a version of CGG</a> to use LibCGG as a prove of concept. After all, we dont want to loose functionality, don&#8217;t we?</p>
<h3>What do we need to use LibCGG in the reporting engine?</h3>
<p>At the moment, I have not written any glue code to connect LibCGG with the reporting engine. Ultimately, this will happen though &#8211; why else would I care to separate CGG from the server? The barriers are surprisingly low. Pentaho Reporting already handles SVG data, and thus LibCGG needs just a thin wrapper around an existing element for a first show-off.</p>
<p>After that, we will need a chart editor. Pedro assured me that CCC charts come with enough metadata to make it easy to get a basic one up and running quickly. Once we have that, I am sure our UI team will want to come in to make that experience less geeky.</p>
<p>And last but not least: We need to separate CCC from CDA (Community Data Access) a bit. At the moment, there is a silent assumption that CCC charts exclusively communicate with a CDA datasource. It should not be too hard to reroute those calls to directly go to the report&#8217;s declared data-sources instead.</p>
<h3>And now: The one million dollar question: When .. will it be ready?</h3>
<p>With a bit of week-end magic, how about May? April should (hopefully) see us get feature complete on the committed features for Pentaho Reporting 4.0, so there is plenty of time for some Ninja coding. I even have a designated place for it: The &#8216;extensions-charting&#8217; module, which was reserved for Pentaho&#8217;s next-generation charting that never really made it. CCC &#8211; be welcome, and never mind the ghosts of past visualizations.</p>
<p>The post <a href="http://www.on-reporting.com/blog/libcgg-how-to-render-ccc-charts-without-a-server/">LibCGG &#8211; how to render CCC charts without a server</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.on-reporting.com/blog/libcgg-how-to-render-ccc-charts-without-a-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>InfoWorld &#8211; clueless beyond rescue (and JavaWorld reprints it unread)</title>
		<link>http://www.on-reporting.com/blog/infoworld-clueless-beyond-rescue-and/</link>
		<comments>http://www.on-reporting.com/blog/infoworld-clueless-beyond-rescue-and/#comments</comments>
		<pubDate>Tue, 22 Jan 2013 13:23:00 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://www.on-reporting.com/?p=4</guid>
		<description><![CDATA[<p>I recently stumbled across one of the most clueless Java-bashing articles ever published in a Java magazine. JavaWorld reprinted a piece (I would not call it &#8216;article&#8217;) from Infoworld called &#8220;How to kill Java dead, dead, dead&#8220;. I don&#8217;t mind killing Java in the browser, along with flash and all the other garbage that clogs [...]</p><p>The post <a href="http://www.on-reporting.com/blog/infoworld-clueless-beyond-rescue-and/">InfoWorld &#8211; clueless beyond rescue (and JavaWorld reprints it unread)</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>I recently stumbled across one of the most clueless Java-bashing articles ever published in a Java magazine. JavaWorld reprinted a piece (I would not call it &#8216;article&#8217;) from Infoworld called &#8220;<a href="http://www.javaworld.com/javaworld/jw-01-2013/130115-how-to-kill-java-dead.html?page=1" target="_blank">How to kill Java dead, dead, dead</a>&#8220;.</p>
<p>I don&#8217;t mind killing Java in the browser, along with flash and all the other garbage that clogs up my CPU. I have enough bad things to say about the <a href="http://www.zdnet.com/why-does-crapware-still-exist-follow-the-silicon-valley-money-trail-7000009830/">crapware-installing Java-Installer</a> Oracle (and before that Sun) produce. As if there are not enough toolbars out there for unsuspecting users to catch.</p>
<p>No, what I despise is the level of unprofessional ranting from the intern who wrote that article. Seriously, don&#8217;t you have any journalists who know how to research an article anymore?</p>
<p>Java in the browser is dead. The Java security model is as flawed as the Flash sandbox model &#8211; nice idea but once you get big enough it becomes too complex to handle it safely. </p>
<p>But lets wade through the article. </p>
<p>First, someone please explain that guy that there is a difference between a Java JRE installed on a system and a Java Plugin added to your browser. A program on your system does not necessarily cause a problem. The problem only starts when someone from outside can run programs on your computer without your consent. </p>
<p>
When you use your browser (the internet viewer, dear author), then that browser runs programs for you. These programs, in the form of JavaScript or Java-Applets come from a outside source (the web-server) and run on your local machine. So if your browser or one of the plugins has a flaw that allows the outsider to run dangerous stuff, then he can gain control over your computer.</p>
<p>To fix this, fix your browser. Remove the plugins that you don&#8217;t need, block JavaScript by default (and use NoScript to enable it when needed), and you will be quite safe. When you remove the Java Plugin, then it does not matter whether your Java installation itself is unsafe, as your <i>browser</i> does not make use of it without a plugin. </p>
<p>After a few paragraphs of clueless rants, he then comes to describe how the Flashback virus was caused by a bad Java installation. Oh, my. Read the first paragraphs of the <a href="http://www.securelist.com/en/analysis/204792227/The_anatomy_of_Flashfake_Part_1" target="_blank">analysis of Flashback</a> and you learn: It came as a drive-by infection via web-sites. What do you use to view web-sites? A browser. So what do you need to fix? Your browser!</p>
<blockquote><p>The feds recommended that users disable Java in the browser, and they should. But that still leaves Java on the desktop where it can be exploited, as Mac users found out a couple of years ago to Apple&#8217;s chagrin.</p></blockquote>
<p>
Well, let me repeat. Computer do not run stuff on their own. If you are computer-illiterate it may look like it, but someone somewhere has to initiate that communication and tell your computer to invoke a program. If you don&#8217;t visit web-sites with your browser, it is unlikely that someone will do something on your system. (If you have a firewall, as Windows users affected by <a href="http://en.wikipedia.org/wiki/SQL_slammer_worm" target="_blank">SQLSlammer</a> found out.)</p>
<p>Apple disabled Java mainly for political reasons. First, maintaining a separate JDK fork was expensive and second, Apple wanted to foster a bit of vendor lock-in with its App-Store and hopefully everyone coding Objective-C forever. A platform independent programming system is not good if you are selling a closed platform.</p>
<p>On to page 2 of the article.</p>
<p>Websites using Java? What is this &#8211; 1999? None of the banks I know in Germany, Ireland and the UK use Java. None of the Airlines I use (Lufthansa, British Airways, Aerlingus, KLM, etc) use Java. Heck, even Ryan-air does not use Java, even though their website looks like it is from 1999.</p>
<p>Claiming that Java (as applet) is used for thousands of mission critical websites is probably true. The same goes for IE6 along with old ActiveX controls. Internal web-sites of companies are slow to change. But the same companies have administrators who should be able to secure their systems. As a start, they can ensure that separate browsers are used for intranet and internet. If they can&#8217;t do that, how about firing them?</p>
<p>(Fact: They don&#8217;t. I get two waves of spam delivered and filtered on my servers. One between 9 and 10 my time, and one between 9 and 10 US east coast time. No waves on weekends and public holidays.)</p>
<p>Then he goes on claiming that Java is critical and hard to disable, because of French ex-territorial voters. What? If a french person decides to leave Gods own country to live amongst English speaking people, isn&#8217;t that alone reason to take their voting rights away? Or maybe the french government is as clueless as every other government when it comes to technical decisions.</p>
<p>But claiming that a few thousand French people&#8217;s reliance on Java for voting every 4 years or so makes Java indispensable is ridiculous. </p>
<p>And he goes on that</p>
<blockquote><p>&#8220;unscheduled outages&#8221; would be devastating if OS X and Windows suddenly blocked Java, as the feds essentially asked                               us to do this week.</p></blockquote>
<p>
Didn&#8217;t he state on page one that Apple, literally overnight, disabled Java in the browser. And did the world stop? How about Microsoft not shipping Java since somewhere around 2002? How did that stop the world?</p>
<p>And now my favorite sign that your author is not educated in computer terms:</p>
<blockquote><p>But here&#8217;s what Apple and Microsoft can and should do: Announce that the next major versions of OS X and Windows will not run Java, period.</p></blockquote>
<p>
An operating system is not able to stop users from running software of their choice unless that system is so locked down that only approved software can run, like IOS or MacOS when you crank up the paranoid mode to only allow apps from the App-store. </p>
<p>I guess Apple, world dominator with ambitions, would love that model. But here&#8217;s the catch: You can only do that when you lock out everyone. No more custom software for you, naughty author. And once every computer is locked down, whoever holds the key holds the power. Yes, I know, Steve Jobs always wanted that, but I would not accept it. </p>
<p>And filtering it out? Apart from the legal implications of anti-competition laws, so far no OS vendor was able to filter out virus- and trojan software. </p>
<p>I stop here, as afterwards the poor author goes into rambling mode after exhausting any sensible argument. </p>
<p>I end it with the quote from the last page:<br />
<blockquote>If Microsoft and Apple don&#8217;t make Windows and OS X Java-free platforms like [..] Android&#8230;</p></blockquote>
<p>and go back to my JDK to write a Android application while it is not yet outlawed.</p>
<p>Lessons learned:</p>
<p>Now that all journalists are fired and after they moved into PR, we are left with interns to fill our brains with garbage. <br />
And we need more regulation to get Java off the streets, so that kids can start playing with guns instead of applets. <br />
And the world would be a better place if computer were not allowed to run dangerous stuff, so guvn&#8217;r please rescue us.</p>
<p>The post <a href="http://www.on-reporting.com/blog/infoworld-clueless-beyond-rescue-and/">InfoWorld &#8211; clueless beyond rescue (and JavaWorld reprints it unread)</a> appeared first on <a href="http://www.on-reporting.com">Reporting Tales</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.on-reporting.com/blog/infoworld-clueless-beyond-rescue-and/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
