<?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-6623112</id><updated>2011-07-20T12:56:53.916Z</updated><category term='firefox'/><category term='tools'/><category term='blogging'/><category term='utils'/><title type='text'>Datamal Blog</title><subtitle type='html'>Programming and the Web</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6623112.post-2535416866305897504</id><published>2008-04-17T01:53:00.004Z</published><updated>2008-06-06T19:06:49.783Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='utils'/><title type='text'></title><content type='html'>&lt;span class="zemanta-img" style="margin: 1em; float: right; display: block;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Image:Probe_scanner.jpg"&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/en/3/39/Probe_scanner.jpg" alt="Scanner" style="border: medium none ; display: block; width: 311px; height: 230px;" /&gt;&lt;/a&gt;&lt;span class="zemanta-img-attribution" style="margin: 1em 0pt 0pt; display: block;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.zemanta.com"&gt;Zemanta&lt;/a&gt; is a blogging aid that reads what your writing and then fetches matching material to add into your blog.&lt;br /&gt;&lt;br /&gt;What it is suppossed to do :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Search for images based on the blog content&lt;/li&gt;&lt;li&gt;Search for links related to the blog content&lt;/li&gt;&lt;li&gt;Search for articles also concerning the material your writing about.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;You can then peruse the material it has found if you want to and ultimately add it to your blog if you think it is worth it.&lt;br /&gt;&lt;br /&gt;This should all enhance your blog content and enrich it with media that otherwise can be a bit of a hassle to retrieve.&lt;br /&gt;&lt;br /&gt;As an example, the image and related links for this post were found by Zemanta.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;fieldset class="zemanta-related"&gt;&lt;legend&gt;Related articles&lt;/legend&gt;&lt;ul class="zemanta-article-ul"&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a title="Open in new window" href="http://mashable.com/2008/06/03/blogging-discovery-zemanta/"&gt;Blogging Discovery Tool Zemanta Adds A Slew of New Features&lt;/a&gt; [via Zemanta]&lt;/li&gt;&lt;li class="zemanta-article-ul-li"&gt;&lt;a title="Open in new window" href="http://funkykaraoke.blogspot.com/2008/03/zemanta-content-suggestion-engine-for.html"&gt;Zemanta - A content suggestion engine for blogging&lt;/a&gt; [via Zemanta]&lt;/li&gt;&lt;/ul&gt;&lt;/fieldset&gt;&lt;div style="margin-top: 10px; height: 15px;" class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/3554bdd8-3619-4385-94d9-e92ee9fec018/" title="Zemified by Zemanta"&gt;&lt;img style="border: medium none ; float: right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_a.png?x-id=3554bdd8-3619-4385-94d9-e92ee9fec018" alt="Zemanta Pixie" /&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/6623112-2535416866305897504?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/2535416866305897504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=2535416866305897504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/2535416866305897504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/2535416866305897504'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2008/04/zemanta-is-blogging-aid-that-reads-what.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-115629197772483870</id><published>2006-08-23T00:12:00.002Z</published><updated>2008-04-17T01:13:51.581Z</updated><title type='text'></title><content type='html'>&lt;p&gt;I have been adding all sorts of apps to the Mac recently and I'd really like to keep tabs on what I've been up to.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ragingmenace.com/software/menumeters/"&gt;MenuMeters 1.3&lt;/a&gt; - a set of CPU, memory, disk, and network monitoring tools. Having looked at this it really is groovy. All that info just goes into the Menu Bar and there's no need to have the Activity Monitor open anymore.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;small&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/mac"&gt;mac&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/apps"&gt;apps&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/utils"&gt;utils&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/good"&gt;good&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-115629197772483870?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/115629197772483870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=115629197772483870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/115629197772483870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/115629197772483870'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/08/new-apps-on-mac.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-115482993813086672</id><published>2006-08-06T02:05:00.000Z</published><updated>2006-08-06T02:05:38.136Z</updated><title type='text'>First post on Mac-Mini</title><content type='html'>&lt;p&gt;I have downloaded &lt;a href="http://www.qumana.com"&gt;Qumana&lt;/a&gt; as a desktop client web logging tool and am in the process of giving it a whirl. I think it will take a bit of getting used to and in the mean time I shall continue the search.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I have also finally created a &lt;em&gt;del.icio.us&lt;/em&gt; account and started adding semantic tags to web resources there. Check it out at &lt;a href="http://del.icio.us/Mal2006"&gt;Mal2006&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-115482993813086672?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/115482993813086672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=115482993813086672' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/115482993813086672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/115482993813086672'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/08/first-post-on-mac-mini.html' title='First post on Mac-Mini'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114674070898959715</id><published>2006-05-04T11:05:00.000Z</published><updated>2006-05-04T13:25:43.160Z</updated><title type='text'>Working with Jira and a Task List</title><content type='html'>&lt;p&gt;I am using &lt;a href="http://www.atlassian.com" onMouseover="ddrivetip('Jira is a project management and bug/ issue tracking system. It runs in Tomcat and uses an HSQL DB.','#EFEFEF', 300)" onMouseout="hideddrivetip()"&gt;&lt;hasAToolTip&gt;Jira&lt;/hasAToolTip&gt;&lt;/a&gt; and &lt;a href="http://www.mylifeorganized.net/index.htm" onMouseover="ddrivetip('MyLife Organized (MLO) is a personal task outliner and to-do list manager which will help you to organize your goals, projects and tasks into a tree. The To-Do list with actions that require immediate attention will be generated. This list of next actions will be sorted in order of priority to keep you focused on the most important tasks.','#EFEFEF', 300)" onMouseout="hideddrivetip()"&gt;&lt;hasAToolTip&gt;MyLife Organized&lt;/hasAToolTip&gt;&lt;/a&gt;&lt;p&gt;The procedure I follow to ensure that all important information is captured is as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Jira - add a comment on a task&lt;/li&gt;&lt;li onMouseover="ddrivetip('This is a personal call depending on the level of granularity you want to capture within the project.','#EFEFEF', 300)" onMouseout="hideddrivetip()"&gt;&lt;hasAToolTip&gt;Jira - add a Work Log entry if there is a recordable quantity done&lt;/hasAToolTip&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;MyLife Organized - add any follow-up tasks etc. to the lists.&lt;/li&gt;&lt;/ul&gt;This procedure captures the work done in Jira and saves searching project tasks individually to see what the next actions are. Your daily tasks are in MyLife Organized.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I started using MyLife Organized when I came across David Allen's &lt;span onMouseover="ddrivetip('A work-life management system by David Allen that transforms personal overwhelm and overload into an integrated system of stress-free productivity','#EFEFEF', 300)" onMouseout="hideddrivetip()"&gt;&lt;hasAToolTip&gt;Getting Things Done&amp;trade;&lt;/hasAToolTip&gt;&lt;/span&gt; methodology; speaks for itself when it comes to 'what is it'. Seems to be working well at the moment.&lt;br /&gt;There is a good resource of related applications &lt;a href="http://www.listible.com/list/gtd-software" title="Getting Things Done Software"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114674070898959715?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114674070898959715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114674070898959715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114674070898959715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114674070898959715'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/05/working-with-jira-and-task-list.html' title='Working with Jira and a Task List'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114673776100440970</id><published>2006-05-04T10:16:00.000Z</published><updated>2006-05-04T16:21:09.223Z</updated><title type='text'>DHTML Tooltip effect on blog</title><content type='html'>&lt;p&gt;I am using some DHTML to generate a tooltip effect over any HTML element on the page. To do this I have used a technique described at &lt;a href="http://www.dynamicdrive.com/dynamicindex5/dhtmltooltip.htm"&gt;Dynamic Drive&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Briefly, all you have to do now is add the following inside any link or page element that will contain a tooltip:&lt;blockquote&gt;&lt;pre&gt;&lt;hasAToolTip onMouseover="ddrivetip('Can use colour names or #EFEFEF values.','#EFEFEF', 300)" onMouseout="hideddrivetip()"&gt;onMouseover&lt;/hasAToolTip&gt;="ddrivetip('JavaScriptKit.com JavaScript tutorials','yellow', 300)"&lt;br /&gt;onMouseout="hideddrivetip()"&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;The key here is the function ddrivetip(); you should understand how it works:&lt;br /&gt;&lt;blockquote&gt;&lt;pre onMouseOver="ddrivetip('The color and tip width are optional.','#EFEFEF',200)" onMouseOut="hideddrivetip()"&gt;&lt;hasAToolTip&gt;ddrivetip&lt;/hasAToolTip&gt;('TEXT_TO_DISPLAY', 'OPTIONAL_BACKGROUND_COLOR', OPTIONAL_TIP_WIDTH)&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;The last two parameters are optional, and not specifying them causes the script to default to the settings within your CSS file.&lt;p&gt;&lt;br /&gt;&lt;p&gt;Pass your mouse over the word &lt;span onMouseover="ddrivetip('DHTML stands for Dynamic HTML','#EFEFEF', 300)" onMouseout="hideddrivetip()"&gt;&lt;hasAToolTip&gt;DHTML&lt;/hasAToolTip&gt;&lt;/span&gt; to see what it does. Or try the code snippets above.&lt;br /&gt;&lt;p&gt;Unfortunately, the content of the inlined text is not read by the Blogger search tool so you won't get results in your searches for content in the Tooltips. It should just be used to get basic info about something across, saving the user a few clicks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114673776100440970?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114673776100440970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114673776100440970' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114673776100440970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114673776100440970'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/05/work-regime-with-jira-and-task-list.html' title='DHTML Tooltip effect on blog'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114658514788301401</id><published>2006-05-02T15:52:00.000Z</published><updated>2006-05-02T15:56:35.296Z</updated><title type='text'>Worth checking out</title><content type='html'>This is a list of things worth revisitiing as I browse the web.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;Item&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.easyeclipse.org/site/home/" title="Easyclipse"&gt;Easyclipse&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;A pre-packaged Eclipse with loads of plugins already installed.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114658514788301401?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114658514788301401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114658514788301401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114658514788301401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114658514788301401'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/05/worth-checking-out.html' title='Worth checking out'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114657978332279263</id><published>2006-05-02T14:23:00.000Z</published><updated>2006-05-04T15:50:25.083Z</updated><title type='text'>Substance in NetBeans Swing not so with Eclipses SWT</title><content type='html'>&lt;p&gt;You can do loads with the substance look and feel jar, which runs on top of Swing. Append it to your classpath and start playing around with laf and other custom command-line directives. This &lt;a href="http://www.netbeans.org/kb/41/substance-look-and-feel.html" title="Substance in NetBeans"&gt;article&lt;/a&gt; makes a good start at showing what can be done.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Unfortunately, Eclipse cannot be made to do this because there is no literal "LAF" in Eclipse to change, as Eclipse does not use Swing, and &lt;hasAToolTip onMouseover="ddrivetip('Look And Feel','#EFEFEF')" onMouseout="hideddrivetip()"&gt;LAF&lt;/hasAToolTip&gt; is a component of the window toolkit Swing. There are two ways to change colors / fonts / etc., the equivalent of LAF, in Eclipse:&lt;ul&gt;&lt;li&gt; via Eclipse preferences&lt;/li&gt;&lt;br /&gt;&lt;li&gt; or the host OS's display settings. Menu bar option Window -&gt; Preferences -&gt; General -&gt; Appearance -&gt; Color and Fonts can be used to individually tweak colors &amp; fonts to each individual's likings.&lt;/li&gt;&lt;/ul&gt; The Eclipse options can be ported from installation to installation of Eclipse because preferences can be saved outside the IDE in a serialized file. These individual preferences for color, font, etc. do not need to be used, and can instead default to the OS's requested defaults. The OS display settings, when changed, apply to Eclipse automatically. This is because Eclipse is based on the native windowing toolkit &lt;hasAToolTip onMouseover="ddrivetip('The Standard Widget Toolkit','#EFEFEF',300)" onMouseout="hideddrivetip()"&gt;SWT&lt;/hasAToolTip&gt;, and therefore respects / obeys the OS's requests for how it should display the IDE. This is opposed to Netbeans using Swing, a non-native windowing toolkit, that does not honor the requests of the OS on how the windowed application (Netbeans) should display. Therefore the proprietary display configuration, LAF, controls Netbeans.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114657978332279263?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114657978332279263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114657978332279263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114657978332279263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114657978332279263'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/05/substance-in-netbeans-swing.html' title='Substance in NetBeans Swing not so with Eclipses SWT'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114622367485148695</id><published>2006-04-28T11:27:00.000Z</published><updated>2006-04-28T11:27:54.856Z</updated><title type='text'>Representing Monetary values in Java.</title><content type='html'>&lt;p&gt;Using float to represent a monetary value is a bad idea because the floating point number is not the true number but the closest approximation. So you will get rounding errors this way. BigDecimal is what you should use for monetary calculations, all very well explained &lt;a href="http://www.javapractices.com/Topic13.cjp" title="Java Practices"&gt;here&lt;/a&gt;. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;There is also a currency class which can be investigated further too.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114622367485148695?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114622367485148695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114622367485148695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114622367485148695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114622367485148695'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/04/representing-monetary-values-in-java.html' title='Representing Monetary values in Java.'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114597482450988441</id><published>2006-04-25T14:20:00.000Z</published><updated>2006-04-25T14:20:24.513Z</updated><title type='text'>New web framework</title><content type='html'>&lt;a href="http://www.javalobby.org/java/forums/t69362.html"&gt;Click&lt;/a&gt; is a new web framework with Spring Integration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114597482450988441?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114597482450988441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114597482450988441' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114597482450988441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114597482450988441'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/04/new-web-framework.html' title='New web framework'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114596545721361274</id><published>2006-04-25T11:44:00.000Z</published><updated>2006-04-25T11:44:17.226Z</updated><title type='text'>Hashing a file in three lines</title><content type='html'>Try &lt;a href="http://blogs.sun.com/roller/page/andreas?entry=hashing_a_file_in_3"&gt;this&lt;/a&gt; as a quick way to hash files.&lt;br /&gt;&lt;br /&gt;Why is Tomcat called Tomcat is one of those questions which is answered for us &lt;a href="http://hoskinator.blogspot.com/2006/04/why-is-tomcat-called-tomcat.html"&gt;here&lt;/a&gt; along with the  burning question why Java is called Java.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114596545721361274?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114596545721361274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114596545721361274' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114596545721361274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114596545721361274'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/04/hashing-file-in-three-lines.html' title='Hashing a file in three lines'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6623112.post-114596138402442427</id><published>2006-04-25T10:36:00.000Z</published><updated>2006-04-25T10:36:24.073Z</updated><title type='text'>Web Testing in Java</title><content type='html'>&lt;a href="http://gabrito.com/post/why-nobody-is-web-testing-in-java"&gt;Good&lt;/a&gt; question asked here about the lack of integrated Web Testing available out the box in modern IDE's. He did mention some of the candidates including :-&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://jakarta.apache.org/cactus/"&gt;Cactus&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://httpunit.sourceforge.net/"&gt;HttpUnit&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://cargo.codehaus.org/Home"&gt;Cargo&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.autoriginate.com/"&gt;HostedQA&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.openqa.org/selenium/"&gt;Selenium&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;A useful alternative was suggested by A. Slominski:-&lt;br /&gt;&lt;br /&gt;Very good workaround is to use embedded servlet container (like tomcat) and create new JUnit test runner that starts embedded tomcat before tests and shuts it down when test are finished - it is very fast, no WARing, and you can set breakpoints both in server and application code &amp;#8230;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114596138402442427?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114596138402442427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114596138402442427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114596138402442427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114596138402442427'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/04/web-testing-in-java.html' title='Web Testing in Java'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114546078812370570</id><published>2006-04-19T15:26:00.000Z</published><updated>2006-04-19T16:58:19.276Z</updated><title type='text'>Inside a Mac Mini</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.macintouch.com/macmini/miniopen.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 160px;height: 84px;" src="http://www.macintouch.com/macmini/miniopen.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;The Mac Mini has everything crammed into a very small space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114546078812370570?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114546078812370570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114546078812370570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114546078812370570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114546078812370570'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/04/mac-mini-has-everything-crammed-into.html' title='Inside a Mac Mini'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114545899324199417</id><published>2006-04-19T15:00:00.000Z</published><updated>2006-04-19T15:26:26.266Z</updated><title type='text'>Got a Mac-Mini</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7740/366/1600/macmini.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/7740/366/320/macmini.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I bought a Mac Mini recently. I will say that I was impressed with what it can do straight out of the box . it's quite small you know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114545899324199417?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114545899324199417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114545899324199417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114545899324199417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114545899324199417'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/04/i-bought-mac-mini-recently.html' title='Got a Mac-Mini'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114545757634638203</id><published>2006-04-19T14:39:00.000Z</published><updated>2006-04-19T14:39:36.410Z</updated><title type='text'>Disk Utils For Mac</title><content type='html'>Nice &lt;a href="http://blogs.zdnet.com/Apple/wp-trackback.php?p=179" title="Put Your Mac On a Diet"&gt;url&lt;/a&gt; for Mac Utils, including :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://monolingual.sourceforge.net/" title="MonoLingual"&gt;MonoLingual&lt;/a&gt; (Universal Binary) - removes unnecessary language resources from Mac OS X and freed up about 500MB of disk space on a MacBook Pro&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.apple.com/downloads/macosx/automator/maintenance.html" title="Maintenance"&gt;Maintenance &lt;/a&gt;is an elegant freeware Action for Apple's Automator designed to keep your Mac running healthily. Maintenance runs a series of system maintenance scripts via the Terminal: repair permissions, verify preference files, run periodic and update prebindings.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.derlien.com/" title="Disk Inventory X"&gt;Disk Inventory X&lt;/a&gt; -  is a free disk usage utility for Mac OS X 10.3+ that displays the sizes of files and folders in cool graphical "treemaps". The original windows version is also &lt;a href="http://windirstat.sourceforge.net/" title="Win Dir Stat"&gt;available&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114545757634638203?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114545757634638203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114545757634638203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114545757634638203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114545757634638203'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/04/disk-utils-for-mac.html' title='Disk Utils For Mac'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114475465677420349</id><published>2006-04-11T11:24:00.000Z</published><updated>2006-04-28T10:51:21.896Z</updated><title type='text'>Securely configuring MySQL on MacOS X</title><content type='html'>&lt;p&gt;This &lt;a href="http://duncandavidson.com/essay/2006/04/mysqlconf"&gt;link&lt;/a&gt; provides a good tip for securing MySQL from unwanted attention and aiding performance in OS X.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;As a summary, you just add the following lines to the my.cnf file :&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;[mysqld]&lt;br /&gt;skip-thread-priority&lt;br /&gt;skip-networking&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;skip-thread-priority is an optimisation under load conditions.&lt;br /&gt;skip-netwroking prevents the default service coming up on port 3306, instead it only comes up on the file system socket - localhost.&lt;br /&gt;You can also use the following in your config file instead of skip-networking :&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;bind-address = 127.0.0.1&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;This will let those clients that can't use the file system socket work and yet keep any network connections not originating on your machine from reaching your MySQL installation.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;More intelligent configuration tips to align your installation to standards &lt;a href="http://www.justatheory.com/computers/databases/mysql/configuration.html"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114475465677420349?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114475465677420349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114475465677420349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114475465677420349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114475465677420349'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/04/securely-configuring-mysql-on-macos-x.html' title='Securely configuring MySQL on MacOS X'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114442907809648003</id><published>2006-04-07T16:57:00.000Z</published><updated>2006-04-07T16:57:58.146Z</updated><title type='text'>Editing Worklog entries in Jira</title><content type='html'>The worklog entry maintains a record of the amount of work spent on an issue/ task/ bug etc.&lt;br /&gt;&lt;br /&gt;By default you cannot edit a worklog entry. This is a real problem if an incorrect or bogus entry has been made.&lt;br /&gt;&lt;br /&gt;The workaround is to look for the file editworklog.jsp from the internet and put it in the directory ${jira_home}/secure/admin&lt;br /&gt;&lt;br /&gt;Now you can enter this jsp's address and then enter the WorkID of the entry that you want to edit.&lt;br /&gt;&lt;br /&gt;If a bogus entry has been made then this can be deleted by editing the database.&lt;br /&gt;&lt;br /&gt;Delete the row in the table JIRAACTION which has an 'actiontype' of 'worklog' and the 'actionbody' field contains the text that was entered in the work log entry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114442907809648003?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114442907809648003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114442907809648003' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114442907809648003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114442907809648003'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/04/editing-worklog-entries-in-jira.html' title='Editing Worklog entries in Jira'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114416806688477699</id><published>2006-04-04T16:27:00.000Z</published><updated>2006-04-04T16:27:46.943Z</updated><title type='text'>JarAnalyser and GraphViz</title><content type='html'>&lt;p&gt;&lt;a href="http://www.kirkk.com/main/Main/JarAnalyzer"&gt;JarAnalyser&lt;/a&gt; identifies the dependencies between jar files. It's all explained in the link but I am going to write about getting started really quickly by giving a few concrete examples; always helps. Lets say you've downloaded and installed JarAnalyser and &lt;a href="http://www.graphviz.org/About.php"&gt;GraphViz&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p class="cmd"&gt;Enter :&lt;br /&gt;rundotsummary.bat&lt;br /&gt;path.to.lib&lt;br /&gt;output.file.name&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This generates the dot/ graph file. You then need to run GraphViz on this file. E.g. :&lt;/p&gt;&lt;br /&gt;&lt;p class=cmd"&gt;&lt;/p&gt;dot -Tpng -Nshape=box -Nfontsize=30 -Nwidth=1.5 -Nheight=1.25 .\output.file.name.from.last.step .\graphic.file.name.png&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114416806688477699?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114416806688477699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114416806688477699' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114416806688477699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114416806688477699'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/04/jaranalyser-and-graphviz.html' title='JarAnalyser and GraphViz'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6623112.post-114407100213200323</id><published>2006-04-03T13:30:00.000Z</published><updated>2006-04-03T14:48:51.680Z</updated><title type='text'>OAI Harvesting Implementation Overview</title><content type='html'>&lt;p&gt;I have been doing some work on the "Open Archives Initiative - Protocol for Metadata Harvesting".&lt;br /&gt;From the servers point of view, it has the responsibility to respond to a number of requests - called &lt;a href="http://www.openarchives.org/OAI/openarchivesprotocol.html#ProtocolMessages"&gt;verbs&lt;/a&gt;.&lt;p&gt;&lt;br /&gt;&lt;table frame=border&gt;&lt;tr&gt;&lt;th&gt;Verb&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Identify&lt;/td&gt;&lt;td&gt;Identifies a repository&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;ListMetadataFormats&lt;/td&gt;&lt;td&gt;Lists the formats that the repository provides; examples include Dublin Core and LOM&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;ListIdentifiers&lt;/td&gt;&lt;td&gt;This verb is an abbreviated form of ListRecords, retrieving only headers rather than records.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;ListRecords&lt;/td&gt;&lt;td&gt;This verb is used to harvest records from a repository. Optional arguments permit selective harvesting of records based on set membership and/or datestamp&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;ListSets&lt;/td&gt;&lt;td&gt;This verb is used to retrieve the set structure of a repository, useful for selective harvesting.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;GetRecord&lt;/td&gt;&lt;td&gt;Used to retrieve an individual metadata record from a repository.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;The order of operation is usually the client coming along and making the following requests : &lt;/p&gt;&lt;br /&gt;&lt;table frame=border&gt;&lt;tr&gt;&lt;th&gt;Request&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;ul&gt;&lt;td&gt;&lt;li&gt;Identify&lt;/li&gt;&lt;/td&gt;&lt;td&gt;The client finds out the identify of the server.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;td&gt;&lt;li&gt;ListMetadataFormat&lt;/li&gt;&lt;/td&gt;&lt;td&gt;The client finds out what formats are available.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;li&gt;ListRecords&lt;/li&gt;&lt;/td&gt;&lt;td&gt;The client gets a truncated list of records (say 10) and a resumption token.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;li&gt;GetRecord&lt;/li&gt;&lt;/td&gt;&lt;td&gt;For each of the records in the list obtained from the ListRecords request, the client makes a GetRecord request to get the contents.&lt;/td&gt;&lt;tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;li&gt;Repeat last 2 steps&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;td&gt;The client continues to ListRecords, passing in the resumption token, and gets the next list of 10 records; on each of which it does a GetRecord. This is repeated until the list is expired, at which point the server does not return a resumption token.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114407100213200323?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114407100213200323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114407100213200323' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114407100213200323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114407100213200323'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/04/oai-harvesting-implementation-overview.html' title='OAI Harvesting Implementation Overview'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6623112.post-114347322618003794</id><published>2006-03-27T15:27:00.000Z</published><updated>2006-04-03T16:18:56.980Z</updated><title type='text'>Configuring multiple Spring Context files</title><content type='html'>This is taken from a &lt;a href="http://www.jroller.com/page/jwboring?entry=configuring_multiple_spring_context_files"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;p&gt;You can use either contextConfigLocation within the web.xml file or an import tag within the "parent" context file. Below are examples of each.&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;context-param&gt;&lt;br /&gt;    &amp;lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;&lt;br /&gt;    &amp;lt;param-value&gt;/WEB-INF/applicationContext.xml,/WEB-INF/routerContext.xml&lt;/param-value&gt;&lt;br /&gt;&lt;/context-param&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&amp;lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;beans&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;import resource="/WEB-INF/routerContext.xml" /&gt;&lt;br /&gt;&lt;br /&gt;.....&lt;br /&gt;&amp;lt;/beans&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Another item contextConfigLocation is useful for is referencing Spring context files of other components (see code below). By this I mean independent source code projects that are JAR-ed up and placed in the web apps lib directory. Independent source code projects allow teams to code, test and deploy subsystems independently from the main web application. Thanks to Matt Raible for posting this trick on Spring-live.&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;context-param&gt;&lt;br /&gt;    &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;&lt;br /&gt;    &lt;param-value&gt;\WEB-INF\applicationContext.xml,classpath:/routerContext.xml&lt;/param-value&gt;&lt;br /&gt;&lt;/context-param&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Of course, your unit testing needs to also be aware of the new "component" and this can be accomplished simply by passing a String array to the FileSystemXmlApplicationContext constructor (see code below).&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;String[] contexts = new String[]{"C:\\dev\\data\\workspaces\\impulse\\gate\\Web Content\\WEB-INF\\applicationContext.xml",&lt;br /&gt;"classpath:/routerContext.xml"};&lt;br /&gt;&lt;br /&gt;appContext = new FileSystemXmlApplicationContext(contexts);&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114347322618003794?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114347322618003794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114347322618003794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114347322618003794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114347322618003794'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/03/configuring-multiple-spring-context.html' title='Configuring multiple Spring Context files'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114244616097039668</id><published>2006-03-15T18:09:00.000Z</published><updated>2006-03-15T18:09:21.003Z</updated><title type='text'>Maven 2 surefire-report-maven-plugin set-up</title><content type='html'>&lt;p&gt;With Maven 2, out of the box reporting of your tests does not work! To overcome this, go to the svn repository and download the &lt;a href="http://svn.mojo.codehaus.org/trunk/mojo/surefire-report-maven-plugin"/&gt;tarball&lt;/a&gt;. Then extract it to somewhere convienient, it contains a tar which you then have to untar again to a convenient location. Then you need to rename some files which don't seem to have the correct names. Namely in the following trees :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;src/main/java&lt;/li&gt;&lt;br /&gt;&lt;li&gt;src/test/java&lt;/li&gt;&lt;br /&gt;&lt;li&gt;src/test/resurces&lt;/li&gt;&lt;br /&gt;What seems to have happened is that the extensions are incorrect or the name isn't quite all there. So you can get the correct names of the java files by putting them in a text editor to see what the class name is. The other files in the resource dir are quite intuitive to change.&lt;p&gt;&lt;br /&gt;&lt;p&gt;Next you need to compile this which is as easy as mvn test. Once this is successful you need to install this to your local repository by doing mvn install.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Now you can use this new version by putting the following in your pom.xml file&lt;br /&gt;&lt;p type="code"&gt;&lt;br /&gt;  &lt;reporting&gt;&lt;br /&gt;    &lt;plugins&gt;&lt;br /&gt;      &lt;plugin&gt;&lt;br /&gt;        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;&lt;br /&gt;        &lt;artifactId&gt;surefire-report-maven-plugin&lt;/artifactId&gt;&lt;br /&gt;        &lt;version&gt;2.0-beta-2-SNAPSHOT&lt;/version&gt;&lt;br /&gt;      &lt;/plugin&gt;&lt;br /&gt;    &lt;/plugins&gt;&lt;br /&gt;  &lt;/reporting&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114244616097039668?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114244616097039668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114244616097039668' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114244616097039668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114244616097039668'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/03/maven-2-surefire-report-maven-plugin.html' title='Maven 2 surefire-report-maven-plugin set-up'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114226772240333693</id><published>2006-03-13T16:35:00.000Z</published><updated>2006-03-13T18:12:10.343Z</updated><title type='text'>Maven 2 - Use &amp; Installation</title><content type='html'>On a Unix machine, your Maven repository can be found in the &lt;i&gt;~/.maven/repository &lt;/i&gt;directory, and on a Windows machine your Maven repository is in your &lt;i&gt;%USERPROFILE%\.m2\repository &lt;/i&gt;directory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114226772240333693?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114226772240333693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114226772240333693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114226772240333693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114226772240333693'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/03/testng-setup.html' title='Maven 2 - Use &amp; Installation'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114200970715647030</id><published>2006-03-10T16:55:00.000Z</published><updated>2006-03-10T16:55:07.230Z</updated><title type='text'>Reading Http Header Info</title><content type='html'>&lt;p&gt;I needed to read the headers exchanged between web request made through a browser. Two good tools for this in Internet Explorer are &lt;a href="http://www.blunck.info/iehttpheaders.html" target="_blank"&gt;ieHttpHeaders&lt;/a&gt; and &lt;a href="http://www.simtec.ltd.uk/" target="_blank"&gt;HttpWatch&lt;/a&gt;. ieHttpHeaders is free. HttpWatch has a free version but it doesn't give you much info.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In Firefox you can try &lt;a href="http://livehttpheaders.mozdev.org/" target="_blank"&gt;LiveHttpHeaders&lt;/a&gt; which, once installed can be toggled using ALT + L&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114200970715647030?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114200970715647030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114200970715647030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114200970715647030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114200970715647030'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/03/reading-http-header-info.html' title='Reading Http Header Info'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114198933980896722</id><published>2006-03-10T11:15:00.000Z</published><updated>2006-03-10T11:15:39.813Z</updated><title type='text'>Firefox Smart Keyword</title><content type='html'>Say you search on a lot of different things - corporate phonebook, imdb, etc... wouldn't it be handy to have convenient aliases to all these searches? You bet it would be.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Go to the page that has the search box on it, right click on the box and choose "Add a Keyword for this Search"&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In the "Add Bookmark" dialog that appears enter a name and a short "keyword" and save the Bookmark&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Now you can type "kw search string" in the URL, e.g. "pb Janet Robinson" for a quick phonebook lookup. I can't live without my keywords. Oh, and it handles POST forms too, unlike most other browsers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114198933980896722?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114198933980896722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114198933980896722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114198933980896722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114198933980896722'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/03/firefox-smart-keyword.html' title='Firefox Smart Keyword'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114198918216824698</id><published>2006-03-10T11:13:00.000Z</published><updated>2006-03-10T11:13:02.196Z</updated><title type='text'>Moving Firefox Toolbars</title><content type='html'>To get more room for web page content it is worth rearrange your toolbars.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Go to View-&gt;Toolbars-&gt;Customize Toolbars&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click in the blank space between the "Help" menu item and the throbber on the right side of the menu bar and drag the empty space into the toolbar palette. The throbber will move over to the left, by the Help Menu Item&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Now drag the Bookmarks Toolbar items up off the Bookmarks Toolbar in between the Help Menu item and the Throbber&lt;/li&gt;&lt;li&gt;Click "Done" on the Customize Toolbar window&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Now go to View-&gt;Toolbars-&gt;Bookmarks Toolbar to turn off the empty Bookmarks Toolbar. &lt;/li&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114198918216824698?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114198918216824698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114198918216824698' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114198918216824698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114198918216824698'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/03/moving-firefox-toolbars.html' title='Moving Firefox Toolbars'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-114056079471289946</id><published>2006-02-21T22:12:00.000Z</published><updated>2006-02-21T23:05:45.956Z</updated><title type='text'></title><content type='html'>&lt;h1&gt;Proxy Web Server and SSH.&lt;/h1&gt;&lt;p&gt;&lt;br /&gt;Doing some ssh setup for new Mac Mini, first I need to get it working on WinXP.&lt;br /&gt;&lt;br /&gt;Installed WinProxy on port 4480, it's working fine.&lt;br /&gt;Installed OpenSSH for now as oppossed to Cygwin, sshd is up and running fine.&lt;br /&gt;When I&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;code&gt;ssh -l ruser -L 4478:localhost:4480 localhost&lt;/code&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;it works fine; I can set Firefox to use port 4478 which gets forwarded to 4480 and everything is fine.&lt;br /&gt;However, localhost (127.0.0.1) also has an ethernet interface with ip 192.168.0.1 which is the interface that the rest of the machines on my local network are on. So when I do&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;code&gt;ssh -l ruser 4478:localhost:4480 192.168.0.1&lt;/code&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I get&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;ssh: connect to host 192.168.0.1 port 22: Connection timed out&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;It just won't connect to that interface which defeats the object as I don't need a proxy on the machine with a connection! &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;PS. It's also possible to do the following :&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;code&gt;ssh -L 4478:localhost:4480 ruser@localhost&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;note the user id has moved to the remote machine part, I think it's a little neater.&lt;/p&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-114056079471289946?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/114056079471289946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=114056079471289946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114056079471289946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/114056079471289946'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2006/02/proxy-web-server-and-ssh.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-110824225527505784</id><published>2005-02-12T21:04:00.000Z</published><updated>2005-03-09T11:10:10.316Z</updated><title type='text'>Hibernate-Ant Set-up</title><content type='html'>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;HibernateNotes.html&lt;/title&gt;&lt;br /&gt;&lt;meta http-equiv="keywords" content="hibernate,ant"&gt;&lt;br /&gt;&lt;meta http-equiv="description" content="This is my Hibernate page"&gt;&lt;br /&gt;&lt;meta http-equiv="mal-see" content="Eclipse project Wiring-Hib-Spring-Struts"&gt;&lt;br /&gt;&lt;!--&lt;link rel="stylesheet" type="text/css" href="./styles.css"&gt;--&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;p&gt;What fun this can be! The ant file can be made to use some nice&lt;br /&gt;Hibernate tasks. How to set this up from scratch is described very well&lt;br /&gt;by this &lt;a href="http://www.hibernate.org/72.html"&gt;page&lt;/a&gt; on the hibernate website.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;There is also an introductory &lt;A href="http://www.informit.com/articles/printerfriendly.asp?p=353737 "&gt;article&lt;/A&gt; that describes some nice things you can do with Ant and Hibernate.&lt;br /&gt;&lt;h3&gt;SchemaExportTask&lt;/h3&gt;&lt;br /&gt;&lt;h4&gt;Notes&lt;/h4&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;hibernate2.jar has to be in the classpath referenced by the taskdef.&lt;/li&gt;&lt;li&gt;In the classpath of this task, you must ensure that &lt;STRONG&gt;your&lt;/STRONG&gt; classes are also in the classpath.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Once you get the hang of it you can also see &lt;a href="http://xdoclet.codehaus.org/"&gt;XDoclet 2&lt;/a&gt; which you can also &lt;a href="http://sourceforge.net/projects/xdoclet-plugins"&gt;download&lt;/a&gt;.&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-110824225527505784?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/110824225527505784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=110824225527505784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/110824225527505784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/110824225527505784'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2005/02/hibernate-ant-set-up.html' title='Hibernate-Ant Set-up'/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-110130065102942077</id><published>2004-11-24T13:34:00.000Z</published><updated>2005-02-12T00:37:20.706Z</updated><title type='text'></title><content type='html'>&lt;h3&gt;User Available Tables in Oracle&lt;/h3&gt;&lt;br /&gt;To get all the tables that a user(you) have access to in a given schema use :-&lt;br /&gt;&lt;pre&gt;&lt;h3&gt;select table_name from all_tables&lt;br /&gt;where owner = '&amp;lt;SCHEMA_NAME&amp;gt;';&lt;/h3&gt;&lt;/pre&gt;&lt;br /&gt;Note that the schema_name MUST be in capitals as Oracle usually store it that way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-110130065102942077?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/110130065102942077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=110130065102942077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/110130065102942077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/110130065102942077'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2004/11/user-available-tables-in-oracle-to-get.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-109990795849790720</id><published>2004-11-08T09:52:00.000Z</published><updated>2004-11-08T10:48:59.416Z</updated><title type='text'></title><content type='html'>&lt;h3&gt;JFC/Swing benchmark&lt;/h3&gt;&lt;br /&gt;You can now do some Swing benchmark testing and Linux native java compilation.&lt;br /&gt;&lt;br /&gt;There is an &lt;a href="http://sys-con.com/story/?storyid=46901&amp;DE=1&amp;jdj=on"&gt;article&lt;/a&gt; on Sys-Con / JDJ and you can get the tests from &lt;a href="http://www.excelsior-usa.com/jfcmark.html"&gt;JFCMark&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Eclipse Visual Editor Project&lt;/h3&gt;&lt;br /&gt;Similar to Insatantiations SWT/Swing Designer the Eclipse Visual Editor project has gone into v1.0 since 20th. September 2004. Worth looking at - it is free.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-109990795849790720?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/109990795849790720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=109990795849790720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109990795849790720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109990795849790720'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2004/11/jfcswing-benchmark-you-can-now-do-some.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-109749331618044604</id><published>2004-10-11T11:13:00.000Z</published><updated>2004-11-08T10:48:43.110Z</updated><title type='text'></title><content type='html'>&lt;h4&gt;Cygwin functionality in ordinary Dos shell&lt;/h4&gt;&lt;br /&gt;Add the bin dir of the cygwin install to your path var. This allows the cygwin tools to be available in any DOS shell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-109749331618044604?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/109749331618044604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=109749331618044604' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109749331618044604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109749331618044604'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2004/10/cygwin-functionality-in-ordinary-dos.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-109596340636534801</id><published>2004-09-23T18:14:00.000Z</published><updated>2004-09-23T18:19:19.483Z</updated><title type='text'></title><content type='html'>&lt;H3&gt;JUnit thru Ant&lt;/H3&gt;&lt;br /&gt;&lt;pre&gt;&lt;H3&gt;&lt;br /&gt;  public MyTestSuite() {&lt;br /&gt;    this.add(new MyTest("someTest));&lt;br /&gt;    this.add(new MyTest("someOtherTest));&lt;br /&gt;  }&lt;br /&gt;&lt;/PRE&gt;&lt;/H3&gt;&lt;br /&gt;This can go to the Ant build. This way you no need to rebuild your test classes and for me Ant's Fileset look very similar to the groups in TestNG. For example &lt;br /&gt;&lt;pre&gt;&lt;h3&gt;&lt;br /&gt;  &amp;lt;junit ...&gt;&lt;br /&gt;    &amp;lt;batchtest ...&gt;&lt;br /&gt;      &amp;lt;fileset dir="${src.dir}"&gt;&lt;br /&gt;        &amp;lt;include name="**/*Test.java"/&gt;&lt;br /&gt;      &amp;lt;/fileset&gt;&lt;br /&gt;    &amp;lt;/batchtest&gt;&lt;br /&gt;    ...&lt;br /&gt;  &amp;lt;/junit&gt;&lt;br /&gt;&lt;/H3&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-109596340636534801?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/109596340636534801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=109596340636534801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109596340636534801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109596340636534801'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2004/09/junit-thru-ant-public-mytestsuite-this.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-109596198232604956</id><published>2004-09-23T17:45:00.000Z</published><updated>2004-09-23T18:02:54.956Z</updated><title type='text'></title><content type='html'>&lt;h3&gt;Printing Ant properties for dubugging or logging&lt;/h3&gt;&lt;br /&gt;&lt;P&gt;Say you have some id that you want the value for :-&lt;br /&gt;&lt;pre&gt;&lt;h3&gt;&lt;br /&gt;    &amp;lt;path id="tools.class.path"&gt;&lt;br /&gt;      &amp;lt;pathelement location="${xerces.jar}"/&gt;&lt;br /&gt;      &amp;lt;pathelement location="${testlet.jar}"/&gt;&lt;br /&gt;      &amp;lt;pathelement location="${junit.jar}"/&gt;&lt;br /&gt;      &amp;lt;pathelement location="${tools.jar}"/&gt;&lt;br /&gt;      &amp;lt;fileset dir="${tools.dir}/lib"&gt;&lt;br /&gt;        &amp;lt;include name="*.jar" /&gt;&lt;br /&gt;        &amp;lt;exclude name="testlet.jar"/&gt;&lt;br /&gt;        &amp;lt;exclude name="xerces.jar"/&gt;&lt;br /&gt;      &amp;lt;/fileset&gt;&lt;br /&gt;    &amp;lt;/path&gt;&lt;br /&gt;&lt;/h3&gt;&lt;/pre&gt;&lt;br /&gt;&lt;P&gt;It would be nice to be able to print the contents of this path, for debugging. The obvious approach:-&lt;br /&gt;&lt;PRE&gt;&lt;H3&gt;&lt;br /&gt;    &amp;lt;echo message="tools.class.path is ${tools.class.path}"/&gt;&lt;br /&gt;&lt;/H3&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;P&gt;Does _not_ work. Here's how to do it:-&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;First declare a property, referring to the path.&lt;br /&gt;&lt;li&gt;Then print the property:&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;PRE&gt;&lt;H3&gt;    &amp;lt;property name="cp" refid="tools.class.path"/&gt;&lt;br /&gt;    &amp;lt;echo message="Classpath is ${cp}"/&gt;&lt;br /&gt;&lt;/H3&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-109596198232604956?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/109596198232604956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=109596198232604956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109596198232604956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109596198232604956'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2004/09/printing-ant-properties-for-dubugging.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-109587588853452868</id><published>2004-09-22T17:57:00.000Z</published><updated>2004-09-22T17:58:08.536Z</updated><title type='text'></title><content type='html'>&lt;P&gt;&lt;H3&gt;Searching files with Grep on Windows using Cygwin&lt;/H3&gt;&lt;br /&gt;&lt;P&gt;&lt;code&gt;The following is an extract taken from Bruce Eckel's &lt;a href="http://mindview.net/WebLog/log-0057"&gt;weblog&lt;/a&gt; relating to this title.&lt;/code&gt;&lt;br /&gt;&lt;P&gt;Just go to &lt;a href="http://www.cygwin.com"&gt;http://www.cygwin.com&lt;/a&gt; and follow the directions, and you'll end up with the equivalent of a DOS command window running Linux, with all the tools like grep built in. If you want more information about grep, just type info grep. If you'd like to be able to have a "bash prompt here" facility, see this &lt;a href="http://mindview.net/Etc/Cygwin/BashHere"&gt;page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;    Later: someone pointed out that Windows now has &lt;code&gt;findstr&lt;/code&gt; already installed. I've been using cygwin and grep for awhile now so I wasn't looking for this, and didn't know it had been added (or when). But it appears to be quite powerful and includes regular expressions -- and has the benefit of already being on your machine. I use cygwin to solve many other problems, so it has far more value than just grep. &lt;br /&gt;&lt;br /&gt;With cygwin installed, go to the root of the Java source code directory (after you've installed the lastest version of JDK 5.0 from java.sun.com, of course). Here's the grep command that I used:&lt;br /&gt;&lt;br /&gt;grep -R -n -B 3 -A 10 --include="*.java" "([A-Z]\[\])" .&lt;br /&gt;&lt;br /&gt;The -R flag tells grep to recurse through all subdirectories. The --include="*.java" flag tells it to only include Java files in the search. -n says to print line numbers. -B 3 says to print three lines before the match, and -A 10 says to print 10 lines after the match. And the regular expression itself says to find everything that looks like an array cast to a generic type, for example '(T[])'. You can see that GNU grep is a powerful tool for searching the Java sources for example code.&lt;br /&gt;&lt;br /&gt;The findstr equivalent is:&lt;br /&gt;&lt;br /&gt;findstr /N /S /R "([A-Z]\[\])" *.java&lt;br /&gt;&lt;br /&gt;Unfortunately, you do not get the benefit of being able to print lines before and after the match, as you do with GNU grep. (It is possible that someone has ported GNU grep to Windows by itself, so that you don't have to install all of Cygwin).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-109587588853452868?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/109587588853452868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=109587588853452868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109587588853452868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109587588853452868'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2004/09/searching-files-with-grep-on-windows.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-109584940397199311</id><published>2004-09-22T09:51:00.000Z</published><updated>2004-09-22T17:57:14.466Z</updated><title type='text'></title><content type='html'>In windows the classic way to get the ip address of your machine is to use the DOS prompt and type &lt;code&gt;ipconfig&lt;/code&gt;.&lt;br /&gt;&lt;p&gt;Try :-&lt;br /&gt;&lt;p&gt;&lt;code&gt;ipconfig /all&lt;/code&gt;&lt;br /&gt;&lt;P&gt;and you'll get a whole lot more info.&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;P&gt;&lt;H3&gt;App Server Vendor Independence &lt;/H3&gt;&lt;br /&gt;&lt;br /&gt;The best thing to do is to use a DAO (Data Accesss Object) pattern with your BMP beans.&lt;br /&gt;&lt;br /&gt;Basically, you write a base DAO object that does all the CRUD. Create, Delete, Lookup, Store / Update. Typically, you can use a factory that returns the BASE DAO, driven by an EJB env property for the class name of the DAO impl class.&lt;br /&gt;&lt;br /&gt;&lt;P&gt;For example, say you have an OrderBMP. The order bean would use &lt;P&gt;&lt;code&gt;Factory.getOrderDAO(ejbcontext.getProperty("OrderDAO.className")&lt;/code&gt;&lt;br /&gt;&lt;P&gt;to get the proper DAO for the installation.&lt;br /&gt;&lt;br /&gt;Normally, DAOs are singleton.&lt;br /&gt;&lt;br /&gt;The BaseOrderDAO implements all the methods it can in a platform independant way, it might be abstract.&lt;br /&gt;&lt;br /&gt;Then you implement an Oracle9iOrderDAO, a TeraDBOrderDAO etc satisfying all those things you need.&lt;br /&gt;&lt;br /&gt;When you deliver to the customer, all that is needed is a single line change in the env entries for the bean in the deployment descriptor.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-109584940397199311?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/109584940397199311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=109584940397199311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109584940397199311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109584940397199311'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2004/09/in-windows-classic-way-to-get-ip.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-109472991402331129</id><published>2004-09-09T11:01:00.000Z</published><updated>2004-09-22T11:54:15.820Z</updated><title type='text'></title><content type='html'>XDoclet and EJB's&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;It's good practice to put interfaces (such as remote/local interfaces, data objects and home interfaces) in a separate "interfaces" package rather than in the EJB bean implementation package.&lt;br /&gt;&lt;/span&gt; &lt;p&gt;&lt;span style="font-size:100%;"&gt;Previous versions of XDoclet dictated this behavior, so if the package name of a bean ended with *.beans or *.ejb then the interfaces were put into the * .interfaces package. Now you have full control over it.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:100%;"&gt;If you don't use a packageSubstitution element, then all interfaces are generated to the same package as the bean implementation class. But if you want to follow the pattern and put interfaces into a separate package you can, by providing the list of package name tails that interfaces of beans inside that packages should be placed into.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size:100%;"&gt;For example interfaces of test.ejb.CustomerBean will be placed in test.interfaces by the following packageSubstitution:&lt;/span&gt;&lt;/p&gt; &lt;pre&gt;&lt;code&gt;     &lt;packagesubstitution packages="ejb,beans" substitutewith="interfaces"&gt;&lt;br /&gt;&lt;/packagesubstitution&gt;&lt;/code&gt;&lt;/pre&gt; All this is available inside MyEclipse/Xdoclet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-109472991402331129?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/109472991402331129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=109472991402331129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109472991402331129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109472991402331129'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2004/09/xdoclet-and-ejbs-its-good-practice-to.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-109412524792180594</id><published>2004-09-02T22:00:00.000Z</published><updated>2004-09-22T11:53:12.143Z</updated><title type='text'></title><content type='html'>&lt;span style="font-size:130%;"&gt;SQL*Plus&lt;/span&gt;&lt;br /&gt;&lt;P&gt;Q. How do you get the previous commands in the SQL prompt?&lt;br /&gt;&lt;p&gt;A. With windows clients if you use &lt;span style="font-style: italic;"&gt;sqlplus.exe&lt;/span&gt; instead of &lt;span style="font-style: italic;"&gt;sqlplusw.exe&lt;/span&gt;&lt;br /&gt;(which is the default), you can make use of arrow keys.&lt;br /&gt;Otherwise, you can display the contents of afiedt.buf line by line&lt;br /&gt;in the sql prompt.&lt;br /&gt;&lt;P&gt;In unix clients you cannot help it.&lt;br /&gt;&lt;br /&gt;Q. How do you run a script?&lt;br /&gt;&lt;br /&gt;A. At the prompt type:-&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 102, 204);"&gt;SQL&gt;&lt;/span&gt;@(path_to_script)/(script_name)&lt;br /&gt;&lt;br /&gt;for example:-&lt;br /&gt;&lt;span style="color: rgb(102, 102, 204); font-weight: bold;"&gt;SQL&gt;&lt;/span&gt;@C:\projects\currentProject\sql\users.sql&lt;br /&gt;&lt;br /&gt;Q. How do you create a new user in a database?&lt;br /&gt;&lt;br /&gt;A.&lt;br /&gt;&lt;span style="color: rgb(102, 102, 204); font-weight: bold;"&gt;SQL&gt;&lt;/span&gt;create user (user) identified by [password]&lt;br /&gt;2  default tablespace users&lt;br /&gt;3  temporary tablespace temp;&lt;br /&gt;&lt;br /&gt;User created.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 204); font-weight: bold;"&gt;SQL&gt;&lt;/span&gt;grant connect, resource to (NewUser)&lt;br /&gt;&lt;br /&gt;Grant succeeded.&lt;br /&gt;&lt;br /&gt;Oracle Sequence for Auto-Increment&lt;/span&gt;&lt;br /&gt;Example Number 1 ...&lt;/span&gt;&lt;br /&gt;create sequence product_seq start with 1 increment 1&lt;/span&gt;&lt;br /&gt;/&lt;/span&gt;&lt;br /&gt;create or replace trigger product_insert before insert for each row begin&lt;/span&gt;&lt;br /&gt;select productseq.nextval&lt;/span&gt;&lt;br /&gt;into :new.product_id&lt;/span&gt;&lt;br /&gt;from dual;&lt;/span&gt;&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;/&lt;/span&gt;&lt;br /&gt;Example Number 2 ...&lt;/span&gt;&lt;br /&gt;How to create an autoincrement field in a table with a sequence ...&lt;/span&gt;&lt;br /&gt;SQLWKS&gt; create table bob(a number , b varchar2(21));&lt;/span&gt;&lt;br /&gt;Statement processed.&lt;/span&gt;&lt;br /&gt;First create a sequence&lt;/span&gt;&lt;br /&gt;SQLWKS&gt; create sequence x ;&lt;/span&gt;&lt;br /&gt;Statement processed.&lt;/span&gt;&lt;br /&gt;Then create the trigger.&lt;/span&gt;&lt;br /&gt;create trigger y before insert on bob&lt;/span&gt;&lt;br /&gt;for each row&lt;/span&gt;&lt;br /&gt;when (new.a is null)&lt;/span&gt;&lt;br /&gt;begin&lt;/span&gt;&lt;br /&gt;select x.nextval into :new.a from dual;&lt;/span&gt;&lt;br /&gt;end;&lt;/span&gt;&lt;br /&gt;/&lt;/span&gt;&lt;br /&gt;Example Number 3 ...&lt;/span&gt;&lt;br /&gt;First create a sequence:&lt;/span&gt;&lt;br /&gt;create sequence emp_no_seq;&lt;/span&gt;&lt;br /&gt;By default it increments by 1 starting at 0.&lt;/span&gt;&lt;br /&gt;Use its values when inserting data into the table:&lt;/span&gt;&lt;br /&gt;insert into t_emp values (emp_no_seq.nexval, 'Joe Black');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Write up : &lt;a href="http://jen.fluxcapacitor.net/geek/autoincr.html"&gt;http://jen.fluxcapacitor.net/geek/autoincr.html&lt;/a&gt;&lt;/span&gt;&lt;a href="http://jen.fluxcapacitor.net/geek/autoincr.html"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Check out : &lt;a href="http://www.techonthenet.com/oracle/primary_keys.htm"&gt;http://www.techonthenet.com/oracle/primary_keys.htm&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;PL/SQL : &lt;a href="http://www-db.stanford.edu/%7Eullman/fcdb/oracle/or-plsql.html"&gt;http://www-db.stanford.edu/~ullman/fcdb/oracle/or-plsql.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-109412524792180594?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/109412524792180594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=109412524792180594' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109412524792180594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109412524792180594'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2004/09/sqlplus-q.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6623112.post-109526401696000696</id><published>2004-07-28T11:00:00.000Z</published><updated>2004-09-15T16:00:16.960Z</updated><title type='text'></title><content type='html'>&lt;span style="font-size:130%;"&gt;Firefox and Bookmarks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you want to change the location of the bookmark file then do the following:-&lt;br /&gt;&lt;br /&gt;* Create user.js in profile dir&lt;br /&gt;* Add:&lt;br /&gt;	user_pref("browser.bookmark.file", "C:\\&lt;location&gt;");&lt;/location&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-109526401696000696?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/109526401696000696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=109526401696000696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109526401696000696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/109526401696000696'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2004/07/firefox-and-bookmarks-if-you-want-to.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-108014668171370357</id><published>2004-03-24T16:44:00.000Z</published><updated>2004-03-24T16:48:09.186Z</updated><title type='text'></title><content type='html'>&lt;h4&gt;Eclipse Config Sync Resolution&lt;/h4&gt;&lt;br /&gt;Sometimes the config of Eclipse can become out of sync with itself - what with all those plugins being installed and uninstalled all the time; you don't keep them all! So you start getting weird installation errors because the uninstall sometimes expects default files to be present which were, in fact, superceded by some other plugin - so they don't get uninstalled correctly.&lt;br /&gt;&lt;br /&gt;What you can do about this is to save the current preferences, make the required changes in the file that gets saved and then import the new file as preferences.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;File &gt; Export / [preferences]&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Make changes&lt;/li&gt;&lt;br /&gt;&lt;li&gt;File &gt; Import / [preferences]&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-108014668171370357?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/108014668171370357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=108014668171370357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/108014668171370357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/108014668171370357'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2004/03/eclipse-config-sync-resolution.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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-6623112.post-107935586507487390</id><published>2004-03-15T13:04:00.000Z</published><updated>2004-03-15T13:07:40.390Z</updated><title type='text'></title><content type='html'>&lt;font face="Verdana,Arial,Helvetica,sans-serif" color="#8080C0" size="3"&gt;Multipage forms&lt;/font&gt;&lt;br /&gt;in jsp :&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;html:hidden property="page" value = "2" /&amp;gt;&lt;br /&gt;&lt;br /&gt;then in Action use :-&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XYZFormBean bean = XYZFormBean(...)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (bean.getPage() == 2) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// do page 2 stuff&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;where the getPage() method comes from :-&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;int org.apache.struts.validator.ValidatorForm.getPage()&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6623112-107935586507487390?l=datamal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://datamal.blogspot.com/feeds/107935586507487390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6623112&amp;postID=107935586507487390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/107935586507487390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6623112/posts/default/107935586507487390'/><link rel='alternate' type='text/html' href='http://datamal.blogspot.com/2004/03/multipage-forms-in-jsp-int-org.html' title=''/><author><name>datamal</name><uri>http://www.blogger.com/profile/10188991838232016069</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></feed>
