<?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>the empty quarter</title>
	<atom:link href="http://www.martinhammer.com/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.martinhammer.com/blog</link>
	<description>Sorry, but you are looking for something that isn’t here.</description>
	<lastBuildDate>Sat, 04 Feb 2012 12:33:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Install Oracle XE on Ubuntu</title>
		<link>http://www.martinhammer.com/blog/index.php/2012/02/install-oracle-xe-on-ubuntu/</link>
		<comments>http://www.martinhammer.com/blog/index.php/2012/02/install-oracle-xe-on-ubuntu/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 11:21:13 +0000</pubDate>
		<dc:creator>martin</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.martinhammer.com/blog/?p=691</guid>
		<description><![CDATA[Steps to install Oracle Express Edition (XE) database 10g on Ubuntu 11.10 (Oneiric). Download the Oracle XE deb package (free registration is required). Double click the downloaded file and select to install it. In terminal run sudo /etc/init.d/oracle-xe configure. You will be prompted to enter the following parameters: HTTP port number, database listener port number, [...]]]></description>
			<content:encoded><![CDATA[<p>Steps to install Oracle Express Edition (XE) database 10g on Ubuntu 11.10 (Oneiric).</p>
<ol>
<li><a href="http://www.oracle.com/technetwork/database/express-edition/downloads/102xelinsoft-102048.html">Download</a> the Oracle XE deb package (free registration is required).</li>
<li>Double click the downloaded file and select to install it.</li>
<li>In terminal run <code>sudo /etc/init.d/oracle-xe configure</code>.</li>
<li>You will be prompted to enter the following parameters: HTTP port number, database listener port number, SYSTEM and SYS database accounts password and whether the service should be started upon boot.</li>
<li>Thereafter the configuration might take a few minutes. That&#8217;s it. To start the service in the future run <code>sudo /etc/init.d/oracle-xe start</code> and to stop <code>sudo /etc/init.d/oracle-xe stop</code>.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.martinhammer.com/blog/index.php/2012/02/install-oracle-xe-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Column-wise text manipulation</title>
		<link>http://www.martinhammer.com/blog/index.php/2011/10/column-wise-text-manipulation/</link>
		<comments>http://www.martinhammer.com/blog/index.php/2011/10/column-wise-text-manipulation/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 17:02:14 +0000</pubDate>
		<dc:creator>martin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[commandline]]></category>
		<category><![CDATA[sed]]></category>

		<guid isPermaLink="false">http://www.martinhammer.com/blog/?p=676</guid>
		<description><![CDATA[GNU/Linux includes many utilities for working with text files through the shell. In this post we take a quick look at accessing and manipulating text files in a &#8220;column-wise&#8221; mode. Suppose you have the following two files, each with two columns separated by the TAB character. $cat file1 Alice   Paris Bob     Tokyo Mary    London John    New York $cat file2 [...]]]></description>
			<content:encoded><![CDATA[<p>GNU/Linux includes many utilities for working with text files through the shell. In this post we take a quick look at accessing and manipulating text files in a &#8220;column-wise&#8221; mode.</p>
<p>Suppose you have the following two files, each with two columns separated by the TAB character.<br />
<code><br />
$cat file1<br />
Alice   Paris<br />
Bob     Tokyo<br />
Mary    London<br />
John    New York</code></p>
<p><code> </code></p>
<p><code>$cat file2<br />
13 May    Orange<br />
19 Oct    Blue<br />
11 Nov    Black<br />
29 Feb    Red<br />
</code></p>
<p>The data in the two files are in fact related, i.e. file2 contains the date of birth and favourite colour of the people mentioned in file1 (assuming also that the files are sorted correctly). It would make sense to combine the two files together so that each row has the full data for each person. The <code>paste</code> command does just that.<br />
<code><br />
$paste file1 file2 &gt; file3<br />
$cat file3<br />
Alice   Paris     13 May    Orange<br />
Bob     Tokyo     19 Oct    Blue<br />
Mary    London    11 Nov    Black<br />
John    New York  29 Feb    Red<br />
</code></p>
<p>Suppose that we are only interested in the name and date of birth of each person, and we can discard the hometown and favourite colour information. The <code>cut</code> command is what we shall use:<br />
<code><br />
$cut file3 -f 1,3 &gt; file4<br />
$cat file4<br />
Alice   13 May<br />
Bob     19 Oct<br />
Mary    11 Nov<br />
John    29 Feb<br />
</code></p>
<p>Our next and final requirement is to reorder the columns differently. Instead of having the name followed by date of birth, suppose we want to have the columns the other way round. Unfortunately <code>cat -f 3,1</code> produces exactly the same output as <code>cut -f 1,3</code>, so the <code>cut</code> command will not be sufficient. We have to use <code>sed</code> instead.<br />
<code><br />
$sed -e 's/\([^\t]*\)\t\([^\t]*\)/\2\t\1/' file4 &gt; file5<br />
$cat file5<br />
13 May    Alice<br />
19 Oct    Bob<br />
11 Nov    Mary<br />
29 Feb    John<br />
</code></p>
<p>How does that work? Well \([^\t]*\) is a &#8220;named expression&#8221; which matches all characters except TAB. The search pattern looks for two of them, separated by TAB (\t). In the replace-with part, they are referred to as \2 and \1, again separated by \t.</p>
<p>Of course if file5 was what we ultimately wanted from the beginning as our output, we could have simply piped commands together:<br />
<code><br />
$paste file1 file2 | cut -f 1,3 | sed -e 's/\([^\t]*\)\t\([^\t]*\)/\2\t\1/' &gt; file5<br />
</code></p>
<p>or alternatively<br />
<code><br />
$paste file1 file2 | sed -e 's/\([^\t]*\)\t\([^\t]*\)\t\([^\t]*\)\t\([^\t]*\)/\3\t\1/' &gt; file5<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.martinhammer.com/blog/index.php/2011/10/column-wise-text-manipulation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remove HTML tags with sed</title>
		<link>http://www.martinhammer.com/blog/index.php/2011/10/remove-html-tags-with-sed/</link>
		<comments>http://www.martinhammer.com/blog/index.php/2011/10/remove-html-tags-with-sed/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 12:16:13 +0000</pubDate>
		<dc:creator>martin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[commandline]]></category>
		<category><![CDATA[sed]]></category>

		<guid isPermaLink="false">http://www.martinhammer.com/blog/?p=672</guid>
		<description><![CDATA[Sed can be used to strip out all HTML or XML tags from a file and get the plain text version. Suppose you have file gnulinux.html with the following contents: &#60;p&#62;The combination of &#60;a href=&#8220;/gnu/linux-and-gnu.html&#8220;&#62;GNU and Linux&#60;/a&#62; is the &#60;strong&#62;GNU/Linux operating system&#60;/strong&#62;, now used by millions and sometimes incorrectly called simply &#8220;Linux&#8220;.&#60;/p&#62; Tempting but incorrect [...]]]></description>
			<content:encoded><![CDATA[<p>Sed can be used to strip out all HTML or XML tags from a file and get the plain text version. Suppose you have file gnulinux.html with the following contents:</p>
<p><code><br />
&lt;p&gt;The combination of &lt;a href=&ldquo;/gnu/linux-and-gnu.html&ldquo;&gt;GNU and Linux&lt;/a&gt; is the &lt;strong&gt;GNU/Linux operating system&lt;/strong&gt;, now used by millions and sometimes incorrectly called simply &ldquo;Linux&ldquo;.&lt;/p&gt;<br />
</code></p>
<p>Tempting but incorrect &#8211; sed finds the longest possible match which in this case is the entire file, and thus will output nothing:<br />
<code><br />
$sed -e 's/&lt;.*&gt;//g' gnulinux.html<br />
&nbsp;<br />
</code></p>
<p>Correct version:<br />
<code><br />
$sed -e 's/&lt;[^&gt;]*&gt;//g' gnulinux.html<br />
The combination of GNU and Linux is the GNU/Linux operating system, now used by millions and sometimes incorrectly called simply &ldquo;Linux&ldquo;.<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.martinhammer.com/blog/index.php/2011/10/remove-html-tags-with-sed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TrueCrypt tray icon in Unity</title>
		<link>http://www.martinhammer.com/blog/index.php/2011/08/truecrypt-tray-icon-in-unity/</link>
		<comments>http://www.martinhammer.com/blog/index.php/2011/08/truecrypt-tray-icon-in-unity/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 02:16:35 +0000</pubDate>
		<dc:creator>martin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[natty-upgrade]]></category>
		<category><![CDATA[truecrypt]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://www.martinhammer.com/blog/?p=662</guid>
		<description><![CDATA[If you use TrueCrypt under Ubuntu 11.04 Natty you would have noticed an annoying behaviour. Under previous versions an icon is present in the system tray which remains there whilst a volume is mounted even if the TrueCrypt window is closed. Under Unity the tray icon is not shown. If you accidentally close the window [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">If you use <a href="http://www.truecrypt.org/">TrueCrypt</a> under Ubuntu 11.04 Natty you would have noticed an annoying behaviour. Under previous versions an icon is present in the system tray which remains there whilst a volume is mounted even if the TrueCrypt window is closed. Under Unity the tray icon is not shown. If you accidentally close the window (instead of minimizing it), there&#8217;s no easy way of getting back to it. Launching TrueCrypt again results in a error message.</p>
<p style="text-align: left;">The fix as suggested on <a href="http://www.shocm.com/2011/06/getting-some-functionality-back-in-the-system-tray-on-ubuntu-11-04/">shocm.com</a> is to set the systray-whitelist property by running the following through command line (you will need to restart afterwards):</p>
<p style="text-align: left;"><code>gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"</code></p>
<p style="text-align: left;">However, your mileage may vary, and on my netbook this did not fix the issue. It seemed like the icon was placed in the tray, but it was rendered as a very thin strip about 1-2 pixels wide which could not be clicked.</p>
<p style="text-align: left;">The only way I found of getting out of missing window scenario was to resort to <a href="http://www.truecrypt.org/docs/?s=command-line-usage">using TrueCrypt through the command line</a> to dismount all mounted volumes.</p>
<p style="text-align: left;"><code>truecrypt /d</code></p>
<p style="text-align: left;">This will also exist TrueCrypt and afterwards it can be launched as usual.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.martinhammer.com/blog/index.php/2011/08/truecrypt-tray-icon-in-unity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script to get Report Viewer servlet mapping</title>
		<link>http://www.martinhammer.com/blog/index.php/2011/08/script-to-get-report-viewer-servlet-mapping/</link>
		<comments>http://www.martinhammer.com/blog/index.php/2011/08/script-to-get-report-viewer-servlet-mapping/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 02:32:27 +0000</pubDate>
		<dc:creator>martin</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[birt]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[servlet]]></category>

		<guid isPermaLink="false">http://www.martinhammer.com/blog/?p=659</guid>
		<description><![CDATA[Sometimes it may be useful to know inside the report which servlet mapping is used to run the report (e.g. frameset, run, preview). var sMapping = reportContext.getHttpServletRequest.getRequestURI(); var nPos = sMapping.lastIndexOf( "/" ) + 1; this.text = sMapping.substring( nPos ); You can place the above code inside a label to see the servlet mapping.]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Sometimes it may be useful to know inside the report which <a href="http://www.eclipse.org/birt/phoenix/deploy/viewerUsage2.2.php#servlets">servlet mapping</a> is used to run the report (e.g. frameset, run, preview).</p>
<p style="text-align: left;"><code><br />
var sMapping = reportContext.getHttpServletRequest.getRequestURI();<br />
var nPos = sMapping.lastIndexOf( "/" ) + 1;<br />
this.text = sMapping.substring( nPos );<br />
</code></p>
<p style="text-align: left;">You can place the above code inside a label to see the servlet mapping.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.martinhammer.com/blog/index.php/2011/08/script-to-get-report-viewer-servlet-mapping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BIRT 3.7 Released</title>
		<link>http://www.martinhammer.com/blog/index.php/2011/06/birt-3-7-released/</link>
		<comments>http://www.martinhammer.com/blog/index.php/2011/06/birt-3-7-released/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 14:03:48 +0000</pubDate>
		<dc:creator>martin</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[birt]]></category>

		<guid isPermaLink="false">http://www.martinhammer.com/blog/?p=657</guid>
		<description><![CDATA[BIRT 3.7, previously codenamed Indigo, was released on June 22. Here are the necessary links to find out more about this latest version: New and Notable for BIRT 3.7 Release BIRT 3.7.0 Download Page BIRT Project Plan]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">BIRT 3.7, previously codenamed Indigo, was released on June 22. Here are the necessary links to find out more about this latest version:</p>
<ul>
<li><a href="http://www.eclipse.org/birt/phoenix/project/notable3.7.php">New and Notable for BIRT 3.7 Release</a></li>
<li><a href="http://download.eclipse.org/birt/downloads/build.php?build=R-R1-3_7_0-201106151818">BIRT 3.7.0 Download Page</a></li>
<li><a href="http://wiki.eclipse.org/BIRT_Project_Plan">BIRT Project Plan</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.martinhammer.com/blog/index.php/2011/06/birt-3-7-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generic code to get BIRT report parameters dynamically (new and improved!)</title>
		<link>http://www.martinhammer.com/blog/index.php/2011/06/generic-code-to-get-birt-report-parameters-dynamically-new-and-improved/</link>
		<comments>http://www.martinhammer.com/blog/index.php/2011/06/generic-code-to-get-birt-report-parameters-dynamically-new-and-improved/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 16:57:31 +0000</pubDate>
		<dc:creator>martin</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[birt]]></category>
		<category><![CDATA[parameters]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://www.martinhammer.com/blog/?p=635</guid>
		<description><![CDATA[In an earlier post we discussed a generic way to dynamically get the list of report parameters at run time without having to hardcode the parameter names in the script. As was correctly pointed out in the comments, the code did not work for parameter groups (and also cascading parameters). However, it is possible to [...]]]></description>
			<content:encoded><![CDATA[<p>In an <a title="Generic code to get BIRT report parameters dynamically" href="http://www.martinhammer.com/blog/index.php/2010/11/generic-code-to-get-birt-report-parameters-dynamically/">earlier post</a> we discussed a generic way to dynamically get the list of report parameters at run time without having to hardcode the parameter names in the script. As was correctly pointed out in the comments, the code did not work for parameter groups (and also cascading parameters). However, it is possible to modify the code to get it working even for those cases, and the change is not a huge one.</p>
<p>The main difference is we will use the method <a href="http://www.birt-exchange.com/be/documentation/BIRT_231/EngineJavadoc/model/api/org/eclipse/birt/report/model/api/ModuleHandle.html#getAllParameters%28%29">getAllParameters()</a> instead of <a href="http://www.birt-exchange.com/be/documentation/BIRT_231/EngineJavadoc/model/api/org/eclipse/birt/report/model/api/ModuleHandle.html#getParameters%28%29">getParameters()</a> of <a href="http://www.birt-exchange.com/be/documentation/BIRT_231/EngineJavadoc/model/api/org/eclipse/birt/report/model/api/ReportDesignHandle.html">ReportDesignHandle</a>. It seems that getParameters returns only the &#8220;top level&#8221; parameters, whereas getAllParameters flattens the groups and the nested as well as top level parameters. One thing to watch out for is that the return types of the two functions are different: <a href="http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html">java.util.List</a> (getAllParameters) vs. <a href="http://www.birt-exchange.com/be/documentation/BIRT_231/EngineJavadoc/model/api/org/eclipse/birt/report/model/api/SlotHandle.html">org.eclipse.birt.report.model.api.SlotHandle</a> (getParameters). Also, we have included a check for the class of the parameter entry in the list, in order to exclude the groups themselves. You can comment out the if statement in case you wish to see the group names as well.</p>
<p>Here is the updated working code:</p>
<p><code><br />
var sOutput = "";<br />
var parameterArray = reportContext.getDesignHandle().getAllParameters();<br />
var parameterCount = parameterArray.size();<br />
for( var i = 0; i &lt; parameterCount; i++ )<br />
{<br />
&nbsp;&nbsp;var sParClass = parameterArray.get( i ).getClass().toString();<br />
&nbsp;&nbsp;if( sParClass == "class org.eclipse.birt.report.model.api.ScalarParameterHandle" )<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var sParName = parameterArray.get( i ).getFullName();<br />
&nbsp;&nbsp;&nbsp;&nbsp;var sParVal = reportContext.getParameterValue( sParName );<br />
&nbsp;&nbsp;&nbsp;&nbsp;sOutput = sOutput + sParName + " = " + sParVal + "\n";<br />
&nbsp;&nbsp;}<br />
}<br />
this.content = sOutput;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.martinhammer.com/blog/index.php/2011/06/generic-code-to-get-birt-report-parameters-dynamically-new-and-improved/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Working with the Palette in BIRT charts, Part 1</title>
		<link>http://www.martinhammer.com/blog/index.php/2011/06/working-with-the-palette-in-birt-charts-part-1/</link>
		<comments>http://www.martinhammer.com/blog/index.php/2011/06/working-with-the-palette-in-birt-charts-part-1/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 14:31:45 +0000</pubDate>
		<dc:creator>martin</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[birt]]></category>
		<category><![CDATA[charts]]></category>

		<guid isPermaLink="false">http://www.martinhammer.com/blog/?p=620</guid>
		<description><![CDATA[On this blog we have often talked about overriding the default behaviour of the BIRT chart palette by dynamically setting colours based on data values. However, it is perhaps worth looking in more detail at the palette itself to understand the default behaviour and appreciate how it can be tweaked. Each chart has a palette. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.martinhammer.com/blog/wp-content/uploads/2011/06/Screenshot-New-Chart-.png"><img class="size-medium wp-image-623 alignright" title="Format Chart tab of the Edit Chart wizard" src="http://www.martinhammer.com/blog/wp-content/uploads/2011/06/Screenshot-New-Chart--300x239.png" alt="Format Chart tab of the Edit Chart wizard" width="300" height="239" /></a>On this blog we have often talked about overriding the default behaviour of the BIRT chart palette by dynamically setting colours based on data values. However, it is perhaps worth looking in more detail at the palette itself to understand the default behaviour and appreciate how it can be tweaked.</p>
<p>Each chart has a palette. The palette determines the colours used for drawing the series in the chart. From the UI perspective, the palette options are accessed on the last tab of the Edit Chart dialog (Format Chart), the first selection in the tree on left-hand-side (Series). It is worth noting that a chart only has one palette, even if the chart contains multiple series.</p>
<p><a href="http://www.martinhammer.com/blog/wp-content/uploads/2011/06/Screenshot-Series-Palette-.png"><img class="alignleft size-medium wp-image-624" title="BIRT chart series palette" src="http://www.martinhammer.com/blog/wp-content/uploads/2011/06/Screenshot-Series-Palette--227x300.png" alt="BIRT chart series palette" width="227" height="300" /></a>By default there are 32 entries in the palette. They are used in the chart from top to bottom, i.e. in the default scenario the first category will be coloured blue, the next one red and so on. The Add and Remove buttons in the Series Palette dialog can be used to change the number of entries. What happens when the chart contains more categories than the list of palette entries? The answer is that the palette will wrap around, i.e. the 33rd category will be coloured in the same way as the first one. If the number of categories is known in advance, one can extend the palette using the Add button to create the necessary number of palette entries. (Naturally, one should question the design of such a chart, will the user really be able to extract any meaning from a chart with 32 or more different colours? In most cases, probably not.)</p>
<p>Each palette entry itself can be edited. Not only is it possible to set one of the predefined colours, on<a href="http://www.martinhammer.com/blog/wp-content/uploads/2011/06/Screenshot-Palette-Options.png"><img class="alignright size-full wp-image-625" title="BIRT chart palette editing a palette entry" src="http://www.martinhammer.com/blog/wp-content/uploads/2011/06/Screenshot-Palette-Options.png" alt="BIRT chart palette editing a palette entry" width="204" height="274" /></a>e can also set a custom colour, a linear gradient based on two colours or even an image file. It is also possible to specify different colour for positive and negative values.</p>
<p>As we already mentioned, the palette colours are applied top to bottom without any further logic, in particular they are not tied to the actual data point values themselves. Several common scenarios and scripting approaches for solving the issue have already been discussed on this blog: <a title="Setting BIRT chart series palette dynamically" href="http://www.martinhammer.com/blog/index.php/2010/01/setting-birt-chart-series-palette-dynamically/">Setting BIRT chart series palette dynamically</a>, <a title="Setting BIRT chart series palette dynamically, part 2 – area charts" href="http://www.martinhammer.com/blog/index.php/2010/02/setting-birt-chart-series-palette-dynamically-part-2-area-charts/">Setting BIRT chart series palette dynamically, part 2 – area charts</a>, <a title="Setting BIRT chart series palette dynamically, part 3 – stacked bar charts" href="http://www.martinhammer.com/blog/index.php/2010/09/setting-birt-chart-series-palette-dynamically-part-3/">Setting BIRT chart series palette dynamically, part 3 – stacked bar charts</a>.</p>
<p>In the second part of this article we will look at how the palette and related objects can be manipulated programmatically, i.e. through scripting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.martinhammer.com/blog/index.php/2011/06/working-with-the-palette-in-birt-charts-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing description from Firefox bookmarks</title>
		<link>http://www.martinhammer.com/blog/index.php/2011/04/removing-description-from-firefox-bookmarks/</link>
		<comments>http://www.martinhammer.com/blog/index.php/2011/04/removing-description-from-firefox-bookmarks/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 12:59:14 +0000</pubDate>
		<dc:creator>martin</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[sqlite]]></category>

		<guid isPermaLink="false">http://www.martinhammer.com/blog/?p=608</guid>
		<description><![CDATA[By default Firefox populates the Description field of a bookmark with the content of the page&#8217;s &#60;meta name="Description" content="..." /&#62; tag. I find is a little annoying and was looking for a way to remove these descriptions. Since I have a lot of bookmarks I wanted to clean them all up in one go rather [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-609 alignright" title="firefox_bookmark_description" src="http://www.martinhammer.com/blog/wp-content/uploads/2011/04/firefox_bookmark_description.png" alt="Description in a Firefox Bookmark" width="358" height="170" /></p>
<p style="text-align: left;">By default Firefox populates the Description field of a bookmark with the content of the page&#8217;s <code>&lt;meta name="Description" content="..." /&gt;</code> tag. I find is a little annoying and was looking for a way to remove these descriptions.</p>
<p style="text-align: left;">Since I have a lot of bookmarks I wanted to clean them all up in one go rather than editing them one by one. Luckily there is an easy way to do this since Firefox stores the bookmarks in an <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Sqlite">SQLite</a> database file which can be opened and manipulated.</p>
<ol style="text-align: left;">
<li>Install SQLite Database Browser (Ubuntu: <code>sudo apt-get install sqlitebrowser</code> Windows: <a href="http://sourceforge.net/projects/sqlitebrowser">download</a> and install from SourceForge).</li>
<li><strong>IMPORTANT!</strong> Export your Firefox bookmarks to have a backup in case something goes wrong.</li>
<li>Close Firefox (you can&#8217;t edit the bookmarks file while Firefox is running).</li>
<li>Run SQLite Database Browser and open the places.sqlite file which is located in your <a href="http://kb.mozillazine.org/Profile_folder">profile folder</a>.</li>
<li>Run the following SQL which will remove the description from <strong>all bookmarks</strong>.<br />
<code><br />
delete from moz_items_annos where anno_attribute_id = 2 </code>&nbsp;</p>
<p>&nbsp;</li>
<li>Save and close, run Firefox.</li>
</ol>
<p style="text-align: left;">Reference on the places.sqlite file can be found on <a href="http://kb.mozillazine.org/Places.sqlite">mozillaZine</a> and <a href="https://developer.mozilla.org/en/The_Places_database">Mozilla Developer Network</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.martinhammer.com/blog/index.php/2011/04/removing-description-from-firefox-bookmarks/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Remove Mono from Ubuntu</title>
		<link>http://www.martinhammer.com/blog/index.php/2010/12/remove-mono-from-ubuntu/</link>
		<comments>http://www.martinhammer.com/blog/index.php/2010/12/remove-mono-from-ubuntu/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 00:49:49 +0000</pubDate>
		<dc:creator>martin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[lucid-upgrade]]></category>
		<category><![CDATA[maverick-upgrade]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.martinhammer.com/blog/?p=558</guid>
		<description><![CDATA[After finally getting some time to fully read up on Mono (especially on the excellent The Source) I have decided it is best to remove it from my system. The Open Sourcerer has a nicely written up set of instructions for 10.04 Lucid Lynx and 10.10 Maverick Meerkat.]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">After finally getting some time to fully read up on <a href="http://en.wikipedia.org/wiki/Mono_%28software%29">Mono</a> (especially on the excellent <a href="http://www.the-source.com/tag/mono/">The Source</a>) I have decided it is best to remove it from my system. The Open Sourcerer has a nicely written up set of instructions for <a href="http://www.theopensourcerer.com/2010/04/29/how-to-remove-mono-from-ubuntu-10-04-lucid-lynx/">10.04 Lucid Lynx</a> and <a href="http://www.theopensourcerer.com/2010/10/10/how-to-remove-mono-from-ubuntu-10-10-maverick-meercat/">10.10 Maverick Meerkat</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.martinhammer.com/blog/index.php/2010/12/remove-mono-from-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

