<?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>mummey.org &#187; web</title>
	<atom:link href="http://www.mummey.org/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mummey.org</link>
	<description>Personal Website of Adrian Mummey</description>
	<lastBuildDate>Tue, 27 Oct 2009 03:11:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>YAML &#8211; My Favorite Non-Markup Language</title>
		<link>http://www.mummey.org/2009/04/yaml-my-favorite-non-markup-language/</link>
		<comments>http://www.mummey.org/2009/04/yaml-my-favorite-non-markup-language/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 12:02:53 +0000</pubDate>
		<dc:creator>Adrian Mummey</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[yaml]]></category>

		<guid isPermaLink="false">http://www.mummey.org/?p=527</guid>
		<description><![CDATA[I have been using YAML for awhile and decided I’d like to write a post about it. YAML is an acronym for YAML Ain’t Markup Language and it is a very useful and concise serialization standard. I use YAML all the time in when I am coding PHP projects that require some kind of configuration files. ]]></description>
			<content:encoded><![CDATA[<p>I have been using <a href="http://www.yaml.org/" title="YAML" alt="YAML" target="_blank">YAML</a> for awhile and decided I&#8217;d like to write a post about it. YAML is an acronym for YAML Ain&#8217;t Markup Language and it is a very useful and concise serialization standard. I use YAML all the time in when I am coding PHP projects that require some kind of configuration files.
<div style="clear:both;"></div>
<p>Here is what <a href="http://en.wikipedia.org/wiki/YAML" title="wiki" alt="wiki" target="_blank">wiki</a> says about it:</p>
<blockquote><p>YAML syntax was designed to be easily mapped to data types common to most high-level languages: list, hash, and scalar. Its familiar indented outline and lean appearance makes it especially suited for tasks where humans are likely to view or edit data structures, such as configuration files, dumping during debugging, and document headers (e.g. the headers found on most e-mails are very close to YAML). Although well-suited for hierarchical data representation, it also has a compact syntax for a relational data as well.</p></blockquote>
<p>Here is a sample of what YAML looks like:</p>
<pre><code class="php">connection: "local_mysql"
widget:
  type: "Table"
drawProperties:
  title: "Syslog Table"
  showRowNumber: "true"
  allowHtml: "true"
  pageSize: null
  page: "disable"
#usually the table name
entityName: logs
entity:
  table: logs
  fields:
    id:
      field: id
      type: number
    counter:
      field: counter
      type: number
initialQuery: "select id, counter from logs order by id"</code></pre>
<p>One of the great things about YAML is that it is very easy to read and takes much less syntax markup than XML. This enables you to crank out tight, clean configuration files very easily. When I load the previous YAML file up into PHP, here is the resulting data structure:</p>
<pre><code class="php">array(6) {
  [&quot;connection&quot;]=&gt;
  string(11) &quot;local_mysql&quot;
  [&quot;widget&quot;]=&gt;
  array(1) {
    [&quot;type&quot;]=&gt;
    string(5) &quot;Table&quot;
  }
  [&quot;drawProperties&quot;]=&gt;
  array(4) {
    [&quot;title&quot;]=&gt;
    string(12) &quot;Syslog Table&quot;
    [&quot;showRowNumber&quot;]=&gt;
    string(4) &quot;true&quot;
    [&quot;allowHtml&quot;]=&gt;
    string(4) &quot;true&quot;
    [&quot;page&quot;]=&gt;
    string(7) &quot;disable&quot;
  }
  [&quot;entityName&quot;]=&gt;
  string(4) &quot;logs&quot;
  [&quot;entity&quot;]=&gt;
  array(2) {
    [&quot;table&quot;]=&gt;
    string(4) &quot;logs&quot;
    [&quot;fields&quot;]=&gt;
    array(2) {
      [&quot;id&quot;]=&gt;
      array(2) {
        [&quot;field&quot;]=&gt;
        string(2) &quot;id&quot;
        [&quot;type&quot;]=&gt;
        string(6) &quot;number&quot;
      }
      [&quot;counter&quot;]=&gt;
      array(2) {
        [&quot;field&quot;]=&gt;
        string(7) &quot;counter&quot;
        [&quot;type&quot;]=&gt;
        string(6) &quot;number&quot;
      }
    }
  }
  [&quot;initialQuery&quot;]=&gt;
  string(40) &quot;select id, counter from logs order by id&quot;
}</code></pre>
<p>The YAML file is actually parsed using a PHP YAML parser called <a href="http://spyc.sourceforge.net" title="Spyc" alt="Spyc" target="_blank">Spyc</a>. The syntax for Spyc is also quite simple:</p>
<pre><code class="php">$configArray = Spyc::YAMLLoad($yamlFile);</code></pre>
<p>I was first introduced to YAML files when I began a Symfony project. Symfony makes heavy use of YAML files for all of its configuration. I really like the way Symfony was so configurable and have since added YAML config files to just about every project I work on. They are far easier to edit than XML, there is less overhead when parsing and apparently the YAML 1.2 specification is compatible with JSON which is amazing.<br />
From <a href="http://en.wikipedia.org/wiki/JSON" title="wikipedia YAML JSON" alt="wikipedia" target="_blank">wikipedia</a>:</p>
<blockquote><p>Both functionally and syntactically, JSON is effectively a subset of YAML. Specifically, as of YAML version 1.2, &#8220;every JSON file is also a valid YAML file&#8221;</p></blockquote>
<p>Configuration files are a great way to make your life easier, and the life of anyone else who need to modify your code and YAML is a great place to start for creating these.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mummey.org%2F2009%2F04%2Fyaml-my-favorite-non-markup-language%2F&amp;linkname=YAML%20%26%238211%3B%20My%20Favorite%20Non-Markup%20Language"><img src="http://www.mummey.org/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.mummey.org/2009/04/yaml-my-favorite-non-markup-language/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dashboards, Web Reporting and Business Intelligence (BI)</title>
		<link>http://www.mummey.org/2009/02/dashboards-web-reporting-and-business-intelligence-bi/</link>
		<comments>http://www.mummey.org/2009/02/dashboards-web-reporting-and-business-intelligence-bi/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 04:04:29 +0000</pubDate>
		<dc:creator>Adrian Mummey</dc:creator>
				<category><![CDATA[featured articles]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[oss]]></category>
		<category><![CDATA[pentaho]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Web Reporting]]></category>
		<category><![CDATA[ws02]]></category>

		<guid isPermaLink="false">http://www.mummey.org/?p=33</guid>
		<description><![CDATA[Obviously web reporting is nothing really new; one basic approach is this:

Aggregate your data and output it in some kind of structured format, usually XML
Request this information and generate some visualizations of it
Serve these visualizations through a web server

Pretty basic stuff. All of the tools that I have seen essentially make one or all of [...]]]></description>
			<content:encoded><![CDATA[<p>Obviously web reporting is nothing really new; one basic approach is this:</p>
<ol>
<li>Aggregate your data and output it in some kind of structured format, usually XML</li>
<li>Request this information and generate some visualizations of it</li>
<li>Serve these visualizations through a web server</li>
</ol>
<p>Pretty basic stuff. All of the tools that I have seen essentially make one or all of these processes easier. Unfortunately no matter what tools you choose, the rule of engineering stands: Fast, cheap, good &#8211; choose two</p>
<p>In this context it is more like: Less proprietary code, free software, easy to use/maintain &#8211; choose two. The good news is that all of the solutions described essentially have the same result: a web dashboard. The choice that needs to be made, is where you want to go with it? In the spirit of Enterprise software the clear winner is the solution with NO proprietary code, easy to use interfaces, and maybe some support.The biggest obstacle in this model is step 1, data aggregation and standardization.</p>
<p>Step 1 may involve lots of substeps that require some substantial development work including:</p>
<ol>
<li>Connecting to various datasources</li>
<li>Writing queries to retrieve the data</li>
<li>Parsing the data into XML (or some other standardized format)</li>
<li>If interaction is needed, the data aggregator will also need to accept inputs and query dynamically</li>
</ol>
<p>The issue is that all of these steps may differ among various datasources like oracle, csv, excel, etc. And yes, there are plenty of tools to help with this step. The main point though is that no matter what solution you choose, there will a substantial portion of development time needed for Step 1; even with a GUI you still need to write queries. It is really up to you if you want to follow this model and incur development time, however for an &#8220;executive&#8221; dashboard I feel it essential to follow this model.</p>
<p>The solutions I found can be divided into 2 categories: Web Reporting and Business Intelligence (BI). Web Reporting covers the basic aspects of the above model and nothing more; whereas the above model is just a subset of what  Business Intelligence can do. One thing to remember also is that its always &#8220;pay to play&#8221; with the support for the free solutions. They&#8217;ll give you the software, but you need to pay for their help. Also I tried to chose solutions whose free software should have all the features we need.</p>
<h3 class="children">Web Reporting Solutions</h3>
<ul class="list-no-style">
<li>
<div id="attachment_38" class="wp-caption alignleft" style="width: 160px"><a href="http://www.mummey.org/wp-content/uploads/2009/02/open-flash-charts.jpg" rel="lightbox"><img src="http://www.mummey.org/wp-content/uploads/2009/02/open-flash-charts-150x150.jpg" alt="Open Flash Charts Pie Chart" title="open-flash-charts" width="150" height="150" class="size-thumbnail wp-image-38" /></a><p class="wp-caption-text">Open Flash Charts Pie Chart</p></div><br />
1. <a title="Open Flash Chart" href="http://teethgrinder.co.uk/open-flash-chart/" target="_blank">Open Flash Chart</a> &#8211; The simplest, (cheapest?) and fastest way to get some dashboards is to just write some code. If we are only connecting to one database, no problem using some free tools like Open Flash Chart. It is the simplest because we don&#8217;t really need to abstract any data, so step 1 processes are minimized. However it isn&#8217;t Enterprise level and makes big assumptions on the sources and format of the data. Any changes to the model will require code edits and support calls which doesn&#8217;t make for good sustainability.
</li>
<li>
<div id="attachment_44" class="wp-caption alignright" style="width: 160px"><a href="http://www.mummey.org/wp-content/uploads/2009/02/open-flash-charts2.jpg" rel="lightbox"><img src="http://www.mummey.org/wp-content/uploads/2009/02/open-flash-charts2-150x150.jpg" alt="Open Flash Charts - Area Chart" title="open-flash-charts2" width="150" height="150" class="size-thumbnail wp-image-44" /></a><p class="wp-caption-text">Open Flash Charts - Area Chart</p></div><br />
2. <a title="WS02 Web Application Service" href="http://wso2.org/projects/wsas/java" target="_blank">WSO2 Web Application Server</a> + <a title="Open Flash Chart" href="http://teethgrinder.co.uk/open-flash-chart/" target="_blank">Open Flash Chart</a> &#8211; This combination is a little more enterprise. The tools are still free, which is great. The Web Application Server can handle step 1 pretty well and has a nice GUI interface to make all the data connections and output some XML as a web service, definitely enterprise level. However we still need a small middleware layer to accept the XML and generate the flash charts which require less (but still some) proprietary code as the first option. The only code changes that would be needed would be if you wanted say different charts, or a different layout, but could probably be done by someone with some basic HTML and scripting knowledge.
</li>
<li>
<div id="attachment_42" class="wp-caption alignleft" style="width: 160px"><a href="http://www.mummey.org/wp-content/uploads/2009/02/xcelsius.jpg"><img src="http://www.mummey.org/wp-content/uploads/2009/02/xcelsius-150x150.jpg" alt="SAP Xcelsius Dashboard" title="xcelsius" width="150" height="150" class="size-thumbnail wp-image-42" /></a><p class="wp-caption-text">SAP Xcelsius Dashboard</p></div><br />
3. <a title="WS02 Web Application Service" href="http://wso2.org/projects/wsas/java" target="_blank">WSO2 Web Application Server</a> + <a title="Excelsius Engage" href="http://www.sap.com/solutions/sapbusinessobjects/sme/xcelsius/xcelsiusengage/index.epx" target="_blank">SAP Excelsius Engage</a> &#8211; This combination is fully enterprise level. It could probably bet set up with no proprietary coding at all. Excelsius is stand alone program that allows one to graphically design the dashboards and connect them up with various datasources. The only problem is that it costs a minimum of $1000, and for the server edition (which I feel is unnecessary) could be as much as $5000. So that may be out of budget. But it does produce beautiful results.
</li>
</ul>
<p><br class="children"/></p>
<h3>Business Intelligence Solutions</h3>
<p>I had never heard of Business Intelligence until I started doing research for this project. The best way I can describe it is that is a huge web based platform that seems to do everything. First off it has something called Data Integration. This is a very cool program that will not only aggregate different data sources, but allow you to transform among the datasources and output to pretty much anything. For example I could query an Oracle table and an Excel Sheet, aggregate those two into one dataset perform some transformation like sorting or pivoting and then output the result to a MySQL table. Its actually quite amazing. All of these data integrations can be set up as jobs that can be run in batch or run from command or run from some web service. From there it also includes a Web BI Platform, which is kinda like a portal that can show reports, dashboards, tables, basically anything and also has some admin for user control and permissions. It also includes tools to design and build reports and dashboards. It can also do complex analysis and data mining and will probably take out your trash and wash your car too.</p>
<p>Anyways, the benefits are intense, but may be a bit overkill if you just want a dashboard. Things this complicated can quickly turn from dream to nightmare however with these BI solutions almost all aspects can be managed through GUI tools. The real problem is that it will take a serious commitment to make it work because of its complexity. I am not sure they are the right solution for you, but maybe you will think of something else that it may be useful for.</p>
<ul class="list-no-style">
<li>
<div id="attachment_45" class="wp-caption alignleft" style="width: 160px"><a href="http://www.mummey.org/wp-content/uploads/2009/02/pentaho.jpg"><img src="http://www.mummey.org/wp-content/uploads/2009/02/pentaho-150x150.jpg" alt="Pentaho Dashboard" title="pentaho" width="150" height="150" class="size-thumbnail wp-image-45" /></a><p class="wp-caption-text">Pentaho Dashboard</p></div><br />
1. <a title="Pentaho BI Suite" href="http://www.pentaho.com/" target="_blank">Pentaho</a> &#8211; A free, open source collection of BI tools. Again with the &#8220;pay to play&#8221; support. Pentaho offers all of the functions specified above and has GUI tools for managing all of them. I was able to actually install Pentaho and was able to generate some reports, however it was quite difficult to configure the server and generating my own dashboard required some very complex configuration. But the data integration tool was stellar, I think on its own it is a very powerful tool that could be used outside the scope of the BI platform.
</li>
<li>
<div id="attachment_46" class="wp-caption alignright" style="width: 160px"><a href="http://www.mummey.org/wp-content/uploads/2009/02/websphere.jpg"><img src="http://www.mummey.org/wp-content/uploads/2009/02/websphere-150x150.jpg" alt="IBM Websphere Dashboard" title="websphere" width="150" height="150" class="size-thumbnail wp-image-46" /></a><p class="wp-caption-text">IBM Websphere Dashboard</p></div><br />
2. <a title="IBM Websphere" href="http://www-01.ibm.com/software/genservers/portal/dashboardframework/" target="_blank">IBM Websphere</a> &#8211; I read all the papers for this but wasn&#8217;t actually able to try it out. But it is a huge system that probably does everything and I won&#8217;t even talk about it more because it probably costs many thousands. But it is a good basis to see what can be done.
</li>
</ul>
<p><br class="children"/><br />
Unless you see other potential value in implementing a BI system, I would say that option 3 under the web reporting is the best bet if you can spring for the software and development costs.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mummey.org%2F2009%2F02%2Fdashboards-web-reporting-and-business-intelligence-bi%2F&amp;linkname=Dashboards%2C%20Web%20Reporting%20and%20Business%20Intelligence%20%28BI%29"><img src="http://www.mummey.org/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.mummey.org/2009/02/dashboards-web-reporting-and-business-intelligence-bi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
