<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-35959902</id><updated>2012-01-25T13:28:56.348+01:00</updated><category term='xml'/><category term='hibernate'/><category term='quartz'/><category term='java'/><category term='web'/><category term='cluster'/><category term='import'/><category term='application designer'/><category term='lucene'/><category term='disk'/><category term='monitoring'/><category term='api'/><category term='open source'/><category term='labels'/><category term='chart'/><category term='birt'/><category term='pdf'/><category term='presentation'/><category term='oracle'/><category term='sql'/><category term='itext'/><category term='member'/><category term='shell'/><category term='websphere'/><category term='maximo 7'/><category term='unix'/><category term='languages'/><category term='spaces'/><category term='performance'/><category term='sparklines'/><category term='maps'/><category term='solaris'/><category term='scripts'/><category term='database'/><category term='google'/><title type='text'>ZNAPZ Blog</title><subtitle type='html'>Tivoli, Maximo, Java, Open Source, Web, MEA, MIF, BIRT, SQL</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.znapz.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.znapz.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Danny Bols</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-35959902.post-1935398243630160023</id><published>2011-11-10T13:56:00.000+01:00</published><updated>2011-11-16T23:20:53.822+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='websphere'/><category scheme='http://www.blogger.com/atom/ns#' term='cluster'/><category scheme='http://www.blogger.com/atom/ns#' term='member'/><category scheme='http://www.blogger.com/atom/ns#' term='maximo 7'/><title type='text'>Server names for cluster members</title><content type='html'>The name of a server is normally defined by the property&amp;nbsp;&lt;b&gt;mxe.name&lt;/b&gt;&amp;nbsp;in the maximo.properties file. In a clustered environment this would lead to all members having the same name since only 1 EAR is used for all these members. &lt;br /&gt;&lt;br /&gt;This article will show you how to give each cluster member a unique name.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Maximo will use this approach to define a server name:&lt;br /&gt;1.&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;First Maximo will look for a JVM system property called &lt;b&gt;mxe.name&lt;/b&gt;&lt;br /&gt;2.&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;If this is not available Maximo will look for a property called &lt;b&gt;mxe.name&lt;/b&gt; in the &lt;b&gt;maximo.properties&lt;/b&gt; file&lt;br /&gt;&lt;br /&gt;In a clustered environment using the maximo.properties file is not an option. System properties can be set using a JVM command line option:&lt;br /&gt;&lt;pre&gt;-Dmxe.name=MxServer003&lt;/pre&gt;&lt;br /&gt;&lt;h3&gt;WebSphere&lt;/h3&gt;In WebSphere all the members of a cluster have a unique name and this is stored in a variable called ${WAS_SERVER_NAME}&lt;br /&gt;&lt;br /&gt;In WebSphere we only need to do the following:&lt;br /&gt;&lt;pre&gt;Servers -&amp;gt; Application Servers -&amp;gt; MXServer003 -&amp;gt; Java and Process Management -&amp;gt; Process Definition -&amp;gt; Java Virtual Machine -&amp;gt; Generic JVM arguments &lt;/pre&gt;Add the following to the JVM arguments:&lt;br /&gt;&lt;pre&gt;-Dmxe.name=${WAS_SERVER_NAME}&lt;/pre&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/-5ZyBCOALu8Y/TqwQh5pY9CI/AAAAAAAABm4/2mnT0UaGDnw/s1600/Screen+Shot+2011-10-29+at+16.39.59.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-5ZyBCOALu8Y/TqwQh5pY9CI/AAAAAAAABm4/2mnT0UaGDnw/s320/Screen+Shot+2011-10-29+at+16.39.59.png" width="214" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;h3&gt;How to validate the server names?&lt;/h3&gt;&lt;br /&gt;&lt;h4&gt;Logfile&lt;/h4&gt;We can check the server name in the SystemOut.log. During startup maximo will log a line which looks like this:&lt;br /&gt;&lt;pre&gt;[10/25/11 9:59:10:232 CEST] 0000002d SystemOut &amp;nbsp; &amp;nbsp; O 25 Oct 2011 09:59:10:232 [INFO] BMXAA6450I - Property mxe.name = MXServer003&lt;br /&gt;&lt;/pre&gt;&lt;h4&gt;System Properties Application&lt;/h4&gt;In the System Properties application we can check the member names in the section where an instance property can be added. The server name attribute has a lookup list which containes all the different server names.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-Bl9uTBWG12U/TqwOfTwrnPI/AAAAAAAABmw/kllki6Bt9RE/s1600/Screen+Shot+2011-10-29+at+14.20.39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="172" src="http://3.bp.blogspot.com/-Bl9uTBWG12U/TqwOfTwrnPI/AAAAAAAABmw/kllki6Bt9RE/s320/Screen+Shot+2011-10-29+at+14.20.39.png" width="320" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35959902-1935398243630160023?l=blog.znapz.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.znapz.net/feeds/1935398243630160023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.znapz.net/2011/11/server-names-for-cluster-members.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/1935398243630160023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/1935398243630160023'/><link rel='alternate' type='text/html' href='http://blog.znapz.net/2011/11/server-names-for-cluster-members.html' title='Server names for cluster members'/><author><name>Danny Bols</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-5ZyBCOALu8Y/TqwQh5pY9CI/AAAAAAAABm4/2mnT0UaGDnw/s72-c/Screen+Shot+2011-10-29+at+16.39.59.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35959902.post-8175949985613814354</id><published>2011-10-28T14:47:00.009+02:00</published><updated>2011-12-27T13:31:44.782+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><category scheme='http://www.blogger.com/atom/ns#' term='import'/><category scheme='http://www.blogger.com/atom/ns#' term='labels'/><category scheme='http://www.blogger.com/atom/ns#' term='application designer'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='maximo 7'/><category scheme='http://www.blogger.com/atom/ns#' term='languages'/><title type='text'>How labels work in Maximo 7</title><content type='html'>&lt;div&gt;&lt;b&gt;How it is stored:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Maximo stores labels in multiple places. When you add a label to a field, tab or section in Application Designer, Maximo stores this in the application XML in the MAXPRESENTATION table and in the MAXLABELS table. For fields, there are also labels stored in Database Configuration, in the title field on the attribute.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;div&gt;&lt;b&gt;How it is loaded:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;When an application is opened for the first time after the application server has started, Maximo loads the application XML and gets the labels in this order: first it looks for a label in the MAXLABELS table; if no label is found it looks in the application XML for a label; and finally, if there is also no label there, it looks (only for fields) in the title field in Database Configuration. When this is done, Maximo stores the application definition in the cache memory of the application server.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If your Maximo environment has an application server cluster, every cluster member has its own cache. When the application is changed through one server, only the cache of that specific application server is refreshed. The other servers still use the old version of the application, until their cache is refreshed also by restarting the application server. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;How an import is handled:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Importing an application xml in Application Designer causes Maximo to save the application XML in the MAXPRESENTATION table, save the labels in MAXLABELS and clear the cache.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;How it works with multiple languages:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;You can translate tabs and fields in Application Designer. To do this, select the other language on the login screen and log in. Open the application in Application Designer and edit the labels of the tabs or sections. Maximo stores the translated labels in L_MAXLABELS.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For fields, use Database Configuration to translate the title and description for an attribute while logged in with the other language selected. Maximo stores the translated labels in L_MAXATTRIBUTE.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35959902-8175949985613814354?l=blog.znapz.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.znapz.net/feeds/8175949985613814354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.znapz.net/2011/10/how-labels-work-in-maximo-7-how-it-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/8175949985613814354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/8175949985613814354'/><link rel='alternate' type='text/html' href='http://blog.znapz.net/2011/10/how-labels-work-in-maximo-7-how-it-is.html' title='How labels work in Maximo 7'/><author><name>Raf Van Camp</name><uri>http://www.blogger.com/profile/04546821645990231272</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35959902.post-6564979461427377104</id><published>2010-09-07T19:25:00.002+02:00</published><updated>2011-11-06T16:34:55.922+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle escaping special characters</title><content type='html'>&lt;h4&gt;In a nutshel&lt;/h4&gt;&lt;h5&gt;Turn of special meaning of chars&lt;/h5&gt;&lt;pre&gt;-- The ampersand has no special meaning anymore&lt;br /&gt;SET DEFINE OFF;  &lt;br /&gt;SELECT 'V&amp;amp;D' FROM dual;&lt;br /&gt;&lt;/pre&gt;&lt;h5&gt;Escaping characters in LIKE&lt;/h5&gt;&lt;pre&gt;-- The meaning of the underscore is escaped&lt;br /&gt;SET ESCAPE ON;&lt;br /&gt;SELECT * FROM maxtable WHERE tablename LIKE 'A\\_%' ESCAPE '\\';&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Other Examples&lt;/h4&gt;&lt;h5&gt;Examples - Supressing special chars&lt;/h5&gt;&lt;pre&gt;-- Special chars are now treated as normal characters&lt;br /&gt;SET DEFINE OFF;  &lt;br /&gt;&lt;br /&gt;-- All characters are in the output&lt;br /&gt;SELECT 'V&amp;amp;D' FROM dual;&lt;br /&gt;SELECT 'V\&amp;amp;D' FROM dual;&lt;br /&gt;&lt;br /&gt;-- Escape characters works as expected&lt;br /&gt;SELECT * FROM maxmessages WHERE value LIKE '%\%%' ESCAPE '\';&lt;br /&gt;&lt;br /&gt;-- No results...there are no tablenames which start with letter A and a backslash&lt;br /&gt;SELECT * FROM maxtable WHERE tablename LIKE 'A\_%';&lt;br /&gt;&lt;br /&gt;-- Runs into an error&lt;br /&gt;SELECT * FROM maxmessages WHERE value LIKE '%\\%%' ESCAPE '\\';&lt;br /&gt;&lt;/pre&gt;&lt;h5&gt;Examples - Escape character&lt;/h5&gt;&lt;pre&gt;-- Set dash (=default) as an escape character&lt;br /&gt;SET ESCAPE ON;&lt;br /&gt;-- or explicitly set backslash as an escape character&lt;br /&gt;SET ESCAPE \;&lt;br /&gt;&lt;br /&gt;-- Escape char works as expected&lt;br /&gt;SELECT 'V\&amp;amp;D' FROM dual;&lt;br /&gt;&lt;br /&gt;-- Underscore and Percentage are escaped as expected&lt;br /&gt;SELECT * FROM maxtable WHERE tablename LIKE 'A\\_%' ESCAPE '\\';&lt;br /&gt;SELECT * FROM maxmessages WHERE value LIKE '%\\%%' ESCAPE '\\';&lt;br /&gt;&lt;br /&gt;-- Both statemenst have the same result (escape char has no influence)&lt;br /&gt;SELECT * FROM maxtable WHERE tablename LIKE 'A_%';&lt;br /&gt;SELECT * FROM maxtable WHERE tablename LIKE 'A\_%';&lt;br /&gt;-- Special chars are now handled as normal characters&lt;br /&gt;SET DEFINE OFF;  &lt;br /&gt;&lt;br /&gt;-- All characters are in the output&lt;br /&gt;SELECT 'V&amp;amp;D' FROM dual;&lt;br /&gt;SELECT 'V\&amp;amp;D' FROM dual;&lt;br /&gt;&lt;br /&gt;-- Escape characters works as expected&lt;br /&gt;SELECT * FROM maxmessages WHERE value LIKE '%\%%' ESCAPE '\';&lt;br /&gt;&lt;br /&gt;-- No results...there are no tablenames which start with letter A and a backslash&lt;br /&gt;SELECT * FROM maxtable WHERE tablename LIKE 'A\_%';&lt;br /&gt;&lt;br /&gt;-- Runs into an error&lt;br /&gt;SELECT * FROM maxmessages WHERE value LIKE '%\\%%' ESCAPE '\\';&lt;br /&gt;&lt;br /&gt;-- Variable substitution is performed&lt;br /&gt;SELECT 'V&amp;amp;D' FROM dual;&lt;br /&gt;&lt;br /&gt;-- Runs into an error&lt;br /&gt;SELECT * FROM maxmessages WHERE value LIKE '%\%%' ESCAPE '\';&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Oracle Documentation&lt;/h4&gt;&lt;h5&gt;SET DEFINE&lt;/h5&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/__d7B8O8Gego/TIZswMlGHxI/AAAAAAAABjI/6ya309UasNM/s1600/oracleDefine.png" imageanchor="1" style="clear: both; float: none; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="104" src="http://3.bp.blogspot.com/__d7B8O8Gego/TIZswMlGHxI/AAAAAAAABjI/6ya309UasNM/s400/oracleDefine.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;SET ESCAPE&lt;/h5&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/__d7B8O8Gego/TIZtE_--qaI/AAAAAAAABjQ/ngd7JZV9Kzk/s1600/oracleEscape.png" imageanchor="1" style="clear: both; float: none; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/__d7B8O8Gego/TIZtE_--qaI/AAAAAAAABjQ/ngd7JZV9Kzk/s320/oracleEscape.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35959902-6564979461427377104?l=blog.znapz.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.znapz.net/feeds/6564979461427377104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.znapz.net/2010/09/oracle-escaping-special-characters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/6564979461427377104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/6564979461427377104'/><link rel='alternate' type='text/html' href='http://blog.znapz.net/2010/09/oracle-escaping-special-characters.html' title='Oracle escaping special characters'/><author><name>Danny Bols</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/__d7B8O8Gego/TIZswMlGHxI/AAAAAAAABjI/6ya309UasNM/s72-c/oracleDefine.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35959902.post-5540184573397595213</id><published>2008-02-22T13:56:00.000+01:00</published><updated>2010-09-03T18:04:03.586+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='quartz'/><title type='text'>Quartz - Run Now</title><content type='html'>&lt;p&gt;&lt;a title="Quartz open source" href="http://www.opensymphony.com/quartz/"&gt;Quartz &lt;/a&gt;is an open source job scheduling system written in Java. Executing a job in quartz is based on the definition of triggers. But what if you are in a development environment where you don't want to schedule jobs and want to be able to run  them on demand?  The API of version 1.6.0 tells us that the triggerJob method in the Scheduler class can be used for that. Great! But the triggerJob method also seems to throw away your job from the scheduler. So the second time you run the job it's bingo!&lt;/p&gt;&lt;p&gt;A possible workaround we figured out for this is to reschedule the job with a simple trigger which will run immediatly:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;scheduler.deleteJob(jobName, groupName);&lt;br /&gt;scheduler.scheduleJob(&lt;br /&gt;    jobDetail,&lt;br /&gt;    new SimpleTrigger(jobName, groupName)&lt;br /&gt;);&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;You could of course also use the rescheduleJob method but then you have to be sure the job is already scheduled. In our situation this was not the case.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35959902-5540184573397595213?l=blog.znapz.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.znapz.net/feeds/5540184573397595213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.znapz.net/2010/09/quartz-run-now.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/5540184573397595213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/5540184573397595213'/><link rel='alternate' type='text/html' href='http://blog.znapz.net/2010/09/quartz-run-now.html' title='Quartz - Run Now'/><author><name>Danny Bols</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35959902.post-141815608282710660</id><published>2008-02-14T16:53:00.000+01:00</published><updated>2010-09-03T18:06:04.418+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sparklines'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='chart'/><title type='text'>Sparklines with the Google Chart API</title><content type='html'>&lt;p&gt;&lt;a title="Sparklines in wikipedia" href="http://en.wikipedia.org/wiki/Sparkline"&gt;Sparklines &lt;/a&gt;are described in Edward Tufte's book &lt;a title="An excerpt from the book Beautiful Evidence (2006)" href="http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR&amp;amp;topic_id=1&amp;amp;topic="&gt;Beautiful Evidence (2006)&lt;/a&gt; as “small, high resolution graphics  embedded in a context of words, numbers, images”.  In one of our projects we needed sparklines and one option was to use this &lt;a title="Java open source lib for sparklines" href="http://www.representqueens.com/spark/"&gt;open source package &lt;/a&gt; by &lt;a href="http://www.ogrodnek.com/larry"&gt;Larry Ogrodnek&lt;/a&gt;.  Just out of curiousity I was wondering how far we would come if we would use the &lt;a title="The Google Chart API" href="http://code.google.com/apis/chart/"&gt;Google Chart API&lt;/a&gt;. My final result looked promising ...&lt;/p&gt;&lt;p&gt;&lt;a title="Sparkline X 10" rel="shadowbox[almost-sparkline-big]" href="http://blog.znapz.org/wp-content/images/almost-sparkline-big.png"&gt;&lt;img src="http://blog.znapz.org/wp-content/images/almost-sparkline.png" alt="Sparkline with x/y axis" width="80" height="20" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;... but there was no way I could get rid of the gray x- and y-axis.&lt;/p&gt;&lt;p&gt;That was until I ran into &lt;a title="Article from 24 News" href="http://24ways.org/2007/tracking-christmas-cheer-with-google-charts"&gt;this article&lt;/a&gt; where I saw sparklines created with the Google Charts API and without the x- and y-axis. How the hell did he do it?&lt;/p&gt;&lt;p&gt;Well ... it seems to be an undocumented feature also used by Google on their financial site. Instead of using &lt;tt&gt;cht=lc&lt;/tt&gt; (chartype is line chart) you can use &lt;tt&gt;cht=lfi&lt;/tt&gt; (charttype is financial line chart).  And yes here is the final result:&lt;/p&gt;&lt;p&gt;&lt;a title="Sparkline X 10" rel="shadowbox[sparkline-big]" href="http://blog.znapz.org/wp-content/images/sparkline-big.png"&gt;&lt;img src="http://blog.znapz.org/wp-content/images/sparkline.png" alt="Sparkline" width="80" height="20" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Grab the code:&lt;/p&gt;&lt;pre&gt;&lt;a title="Live sparkline by Google" href="http://chart.apis.google.com/chart?chs=80x20&amp;amp;cht=lfi&amp;amp;chco=0077CC&amp;amp;&amp;amp;chm=B,E6F2FA,0,0,0&amp;amp;chls=1,0,0&amp;amp;chd=t:27,25,25,25,25,27,100,31,25,36,25,25,39,25,31,25,25,25,26,26,25,25,28,25,25,100,28,27,31,25,27,27,29,25,27,26,26,25,26,26,35,33,34,25,26,25,36,25,26,37,33,33,37,37,39,25,25,25,25"&gt;http://chart.apis.google.com/chart?chs=80x20&amp;amp;cht=lfi&amp;amp;chco=0077CC&amp;amp;&amp;amp;chm=B,E6F2FA,0,0,0&amp;amp;chls=1,0,0&amp;amp;chd=t:27,25,25,25,25,27,100,31,25,36,25,25,39,25,31,25,25,25,26,26,25,25,28,25,25,100,28,27,31,25,27,27,29,25,27,26,26,25,26,26,35,33,34,25,26,25,36,25,26,37,33,33,37,37,39,25,25,25,25 &lt;/a&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35959902-141815608282710660?l=blog.znapz.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.znapz.net/feeds/141815608282710660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.znapz.net/2010/09/sparklines-with-google-chart-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/141815608282710660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/141815608282710660'/><link rel='alternate' type='text/html' href='http://blog.znapz.net/2010/09/sparklines-with-google-chart-api.html' title='Sparklines with the Google Chart API'/><author><name>Danny Bols</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35959902.post-4081435391950323483</id><published>2008-01-29T17:27:00.000+01:00</published><updated>2010-09-03T18:16:12.952+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='lucene'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Lucene uses Google</title><content type='html'>&lt;p&gt;﻿Today I was figuring out how to integrate the Hibernate search API in one of my projects. At a certain point the docs referred to the Lucene documentation. My old pal Google provided me the link to the Lucene homepage and when I opened it up I saw something very weird in the upper right corner: "Search the site with Google" &lt;img title="NewImage.jpg" src="http://lh3.ggpht.com/__d7B8O8Gego/TIEfCcKwHRI/AAAAAAAABh4/WfaCvUBeFeU/NewImage.jpg?imgmax=800" border="0" alt="NewImage.jpg" width="400" height="59" /&gt;&lt;/p&gt;&lt;p&gt;Yep, Lucene seems to be using Google as a search engine! At first I was a bit astonished about it. But why bother about it, the Google service is out there and it just works. After all Lucene is a great tool and I hope to tell you more about it in the near future.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35959902-4081435391950323483?l=blog.znapz.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.znapz.net/feeds/4081435391950323483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.znapz.net/2010/09/lucene-uses-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/4081435391950323483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/4081435391950323483'/><link rel='alternate' type='text/html' href='http://blog.znapz.net/2010/09/lucene-uses-google.html' title='Lucene uses Google'/><author><name>Danny Bols</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/__d7B8O8Gego/TIEfCcKwHRI/AAAAAAAABh4/WfaCvUBeFeU/s72-c/NewImage.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35959902.post-1382306215157208542</id><published>2007-05-16T07:32:00.000+02:00</published><updated>2010-09-03T18:01:01.138+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='itext'/><category scheme='http://www.blogger.com/atom/ns#' term='birt'/><category scheme='http://www.blogger.com/atom/ns#' term='pdf'/><title type='text'>PDF documents with iText</title><content type='html'>&lt;p&gt;Just ran into a tool called iText which is focused on creating PDF documents. Read more about it&lt;a href="http://www.lowagie.com/iText/"&gt;here&lt;/a&gt;. A step-by-step guide to iText is available here at &lt;a href="http://www-128.ibm.com/developerworks/opensource/library/os-javapdf/"&gt;IBM&lt;/a&gt; or at &lt;a href="http://www.onjava.com/pub/a/onjava/2003/06/18/dynamic_files.html"&gt;O'Reilly&lt;/a&gt;&lt;/p&gt;&lt;p&gt;iText is used by &lt;a href="http://www.eclipse.org/birt/phoenix/"&gt;BIRT&lt;/a&gt; an eclipse based reporting tool&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35959902-1382306215157208542?l=blog.znapz.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.znapz.net/feeds/1382306215157208542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.znapz.net/2007/05/pdf-documents-with-itext.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/1382306215157208542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/1382306215157208542'/><link rel='alternate' type='text/html' href='http://blog.znapz.net/2007/05/pdf-documents-with-itext.html' title='PDF documents with iText'/><author><name>Danny Bols</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35959902.post-8144189498502443763</id><published>2007-02-27T12:26:00.000+01:00</published><updated>2010-09-03T17:37:34.200+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='disk'/><category scheme='http://www.blogger.com/atom/ns#' term='spaces'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><title type='text'>Unix: finding big folders</title><content type='html'>&lt;p&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;How to find the folders which are consuming much diskspace. It's easy using du:&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;du -k | sort -nr | pg&lt;/pre&gt;&lt;p&gt;And the bigist folders will be on top of the list.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35959902-8144189498502443763?l=blog.znapz.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.znapz.net/feeds/8144189498502443763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.znapz.net/2007/02/unix-finding-big-folders.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/8144189498502443763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/8144189498502443763'/><link rel='alternate' type='text/html' href='http://blog.znapz.net/2007/02/unix-finding-big-folders.html' title='Unix: finding big folders'/><author><name>Danny Bols</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35959902.post-1969030500844920294</id><published>2007-02-23T06:56:00.000+01:00</published><updated>2010-09-03T17:36:40.744+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='monitoring'/><title type='text'>Unix Performance Management</title><content type='html'>&lt;p&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;Today I was with one of our customers and we ran into a performance issue. The first request to a remote procedure call took 15 seconds extra time. Uptill now we could't figure out wat the cause was of this performance problem but these two tools could be very usefull for measuring things on OS level.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Viewing the memory statistics every 5 sec:&lt;/p&gt;&lt;pre&gt;vmstat 5&lt;/pre&gt;&lt;p&gt;Disk I/O statistics every 5 sec:&lt;/p&gt;&lt;pre&gt;iostat -Ds 5&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35959902-1969030500844920294?l=blog.znapz.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.znapz.net/feeds/1969030500844920294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.znapz.net/2007/02/unix-performance-management.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/1969030500844920294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/1969030500844920294'/><link rel='alternate' type='text/html' href='http://blog.znapz.net/2007/02/unix-performance-management.html' title='Unix Performance Management'/><author><name>Danny Bols</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35959902.post-7865597886321382490</id><published>2007-02-21T10:36:00.000+01:00</published><updated>2010-09-03T17:35:17.127+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Sun Solaris</title><content type='html'>&lt;p&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;Which version of MySql do I need to download for this sun solaris machine? To get an answer to this question the following commands can be very usefull:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;Revision info for hard- and software:&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;showrev&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;Detailed processor info:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;prsinfo -v &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;Instruction set supported by the machine:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;isainfo -v&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35959902-7865597886321382490?l=blog.znapz.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.znapz.net/feeds/7865597886321382490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.znapz.net/2007/02/sun-solaris.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/7865597886321382490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/7865597886321382490'/><link rel='alternate' type='text/html' href='http://blog.znapz.net/2007/02/sun-solaris.html' title='Sun Solaris'/><author><name>Danny Bols</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35959902.post-116413325935898084</id><published>2006-11-21T19:10:00.000+01:00</published><updated>2010-09-03T17:32:53.092+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>Spaces in filenames</title><content type='html'>&lt;p&gt;&lt;span style="font-family: arial;"&gt;Today's desktop users are familiar with filenames including spaces. The hell begins when those users can store files on a unix server using a windows desktop.&lt;/span&gt;&lt;span style="font-family: arial;"&gt;This morning I had to change the permissions of a bunch of files on solaris. Normally i would just type in the command and run it .... but NOT this morning. A lot of files which i had to access contained spaces pffff. &lt;/span&gt;&lt;span style="font-family: arial;"&gt;The unix shell is very powerfull ... so I knew there was a simple solution. I am just writing it down here so you can use it in the future:&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="font-family: courier new; font-size: 85%;"&gt;find . -type d | sed -e 's/ /\\ /g' | xargs sudo chmod 777&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35959902-116413325935898084?l=blog.znapz.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.znapz.net/feeds/116413325935898084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.znapz.net/2006/11/spaces-in-filenames.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/116413325935898084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/116413325935898084'/><link rel='alternate' type='text/html' href='http://blog.znapz.net/2006/11/spaces-in-filenames.html' title='Spaces in filenames'/><author><name>Danny Bols</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35959902.post-116074028395171768</id><published>2006-10-13T13:40:00.000+02:00</published><updated>2010-09-03T17:59:28.708+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maps'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google maps</title><content type='html'>&lt;p&gt;&lt;span style="font-family: arial; font-size: 85%;"&gt;My first steps in the world of Google API's and services.&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;A few weeks ago google anounced the complete coverage of the Netherlands. Now I would be able to translate a street address into a longitude/lattitude pair. The last barier for not using the maps api in my application was gone.&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;It was amazing how quickly I had my first integrated map. Most of the effort was not in learning the api and using it but finding the right hooks to integrate it in our cms viewbox. A first draft of this integration is now being used as a demo in our office. Curiously I am waiting for all the brilliant ideas that will pop up the next week.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35959902-116074028395171768?l=blog.znapz.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.znapz.net/feeds/116074028395171768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.znapz.net/2006/10/google-maps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/116074028395171768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35959902/posts/default/116074028395171768'/><link rel='alternate' type='text/html' href='http://blog.znapz.net/2006/10/google-maps.html' title='Google maps'/><author><name>Danny Bols</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
