<?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-1564581765546363562</id><updated>2011-07-28T09:26:27.805-07:00</updated><title type='text'>Now Where'd I Learn That?</title><subtitle type='html'>Learning from mistakes begets new discoveries</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1564581765546363562.post-7839237882937929265</id><published>2010-07-27T22:23:00.000-07:00</published><updated>2010-07-27T22:25:47.070-07:00</updated><title type='text'>Deploying a snapshot onto Artifactory</title><content type='html'>Can't deploy your artifact onto Artifact?  Check the permissions - &lt;br /&gt;&lt;a href="http://wiki.jfrog.org/confluence/display/RTF/Managing+Permissions"&gt;Managing Permissions on Artifactory&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;*Remember to check the Deploy box ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1564581765546363562-7839237882937929265?l=nowhereilearnthat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/7839237882937929265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nowhereilearnthat.blogspot.com/2010/07/deploying-snapshot-onto-artifactory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/7839237882937929265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/7839237882937929265'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/2010/07/deploying-snapshot-onto-artifactory.html' title='Deploying a snapshot onto Artifactory'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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-1564581765546363562.post-1153701026989805389</id><published>2010-05-11T23:46:00.000-07:00</published><updated>2010-05-11T23:49:21.133-07:00</updated><title type='text'>Get your annotated hibernate tablename :D</title><content type='html'>Thanks to stackoverflow, I now know how to use reflection with &lt;a href="http://stackoverflow.com/questions/1320864/get-annoted-hibernate-tablename-from-pojo"&gt;annotations in hibernate!!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1564581765546363562-1153701026989805389?l=nowhereilearnthat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/1153701026989805389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nowhereilearnthat.blogspot.com/2010/05/get-your-annotated-hibernate-tablename.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/1153701026989805389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/1153701026989805389'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/2010/05/get-your-annotated-hibernate-tablename.html' title='Get your annotated hibernate tablename :D'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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-1564581765546363562.post-4419377993167894799</id><published>2010-04-29T21:13:00.001-07:00</published><updated>2010-04-29T21:17:21.666-07:00</updated><title type='text'>How to profile your app with Memory Analyzer and JConsole</title><content type='html'>&lt;a href="http://dev.eclipse.org/blogs/memoryanalyzer/2008/04/21/immortal-objects-or-how-to-find-memory-leaks/"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Start java app&lt;br /&gt;Start JConsole and attach as Local (pid for eclipse will be seen once the JConsole starts)&lt;br /&gt;Enter pathname to a *.hprof memory dump file in the dumpHeap (p0 value) in JConsole's MBean tab &gt; HotSpotDiagnostic &gt; Operation&lt;br /&gt;Open the hprof file in Memory analyser in Eclipse&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1564581765546363562-4419377993167894799?l=nowhereilearnthat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/4419377993167894799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nowhereilearnthat.blogspot.com/2010/04/how-to-profile-your-app-with-memory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/4419377993167894799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/4419377993167894799'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/2010/04/how-to-profile-your-app-with-memory.html' title='How to profile your app with Memory Analyzer and JConsole'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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-1564581765546363562.post-4784754520751371607</id><published>2010-01-06T06:23:00.000-08:00</published><updated>2010-01-06T06:24:55.286-08:00</updated><title type='text'>Check out what the java compiler is doing to the class file...</title><content type='html'>with javap command!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1564581765546363562-4784754520751371607?l=nowhereilearnthat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/4784754520751371607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nowhereilearnthat.blogspot.com/2010/01/check-out-what-java-compiler-is-doing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/4784754520751371607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/4784754520751371607'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/2010/01/check-out-what-java-compiler-is-doing.html' title='Check out what the java compiler is doing to the class file...'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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-1564581765546363562.post-7887885333839665299</id><published>2010-01-06T06:06:00.001-08:00</published><updated>2010-01-06T06:06:43.563-08:00</updated><title type='text'>*Slap *Slap</title><content type='html'>From Effective C++, by Scott Meyers :&lt;br /&gt;&lt;br /&gt;"Anytime you find yourself writing code of the form "if the object is of type T1, then do something, but if it's of type T2, then do something else," slap yourself.&lt;br /&gt;&lt;br /&gt;solution : overriding the method&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1564581765546363562-7887885333839665299?l=nowhereilearnthat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/7887885333839665299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nowhereilearnthat.blogspot.com/2010/01/slap-slap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/7887885333839665299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/7887885333839665299'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/2010/01/slap-slap.html' title='*Slap *Slap'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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-1564581765546363562.post-2702832871549178075</id><published>2009-12-06T01:49:00.000-08:00</published><updated>2009-12-06T01:52:50.958-08:00</updated><title type='text'>First-time Vista users...like me</title><content type='html'>Want a quick shortcut by right-clicking on folder to get to your cmd.exe in Vista?&lt;br /&gt;&lt;br /&gt;Hold Shift &amp; right-click on the folder and you will see a "Open Command Window Here".&lt;br /&gt;&lt;br /&gt;Waahaha..I'm starting to like Vista - I don't need to install PowerToy or edit my folder settings already... :P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1564581765546363562-2702832871549178075?l=nowhereilearnthat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/2702832871549178075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/12/first-time-vista-userslike-me.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/2702832871549178075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/2702832871549178075'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/12/first-time-vista-userslike-me.html' title='First-time Vista users...like me'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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-1564581765546363562.post-1147616792377850553</id><published>2009-09-13T00:51:00.000-07:00</published><updated>2009-09-13T00:53:28.011-07:00</updated><title type='text'>SVN export with Tortoise</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; "&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;After using Tortoise for some time, it's only now that I found out that it is possible to export files the easy way. I right-clicked all the folders containing svn files and dragged to my working folder and a pop up menu will appear for options to export all items.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It REALLY pays to be lazy....... =p&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1564581765546363562-1147616792377850553?l=nowhereilearnthat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/1147616792377850553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/09/svn-export-with-tortoise.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/1147616792377850553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/1147616792377850553'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/09/svn-export-with-tortoise.html' title='SVN export with Tortoise'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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-1564581765546363562.post-8258412098609878544</id><published>2009-07-28T08:02:00.000-07:00</published><updated>2009-07-28T08:18:36.181-07:00</updated><title type='text'>maven newbie...</title><content type='html'>&lt;div&gt;Being a newbie to maven, I jumped headfirst into the application without reading much documentation, and I was perplexed by my application not compiling until I read the &lt;a href="http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html"&gt;Maven Standard Layout&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;*note to self - don't forget the main folder!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1564581765546363562-8258412098609878544?l=nowhereilearnthat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/8258412098609878544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/07/maven-newbie.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/8258412098609878544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/8258412098609878544'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/07/maven-newbie.html' title='maven newbie...'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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-1564581765546363562.post-2229055990820566796</id><published>2009-07-20T08:32:00.001-07:00</published><updated>2009-07-20T08:35:10.911-07:00</updated><title type='text'>Metering for exposure</title><content type='html'>I have done it again.........forgetting to switch my TTL metering on my SLR while taking photos, and I ended up with spot metering for each photo, making them overexposed in some. Thanks to Mr. Ho, I have learnt that uneven lighting creates overexposure in spot metering.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By the way, I've just got myself a polarising filter, so I'm definitely looking forward for more pretty skies and no more hazy skylines!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1564581765546363562-2229055990820566796?l=nowhereilearnthat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/2229055990820566796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/07/metering-for-exposure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/2229055990820566796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/2229055990820566796'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/07/metering-for-exposure.html' title='Metering for exposure'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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-1564581765546363562.post-4831711281938979093</id><published>2009-07-14T03:35:00.000-07:00</published><updated>2009-07-14T03:39:05.771-07:00</updated><title type='text'>One file for all, and all loading from one?</title><content type='html'>Lesson in making trees:&lt;br /&gt;&lt;br /&gt;Never use a single xml file to store your stuff if you are not even thinking of chopping it into several parts to cater for lazy-loading for your tree.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1564581765546363562-4831711281938979093?l=nowhereilearnthat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/4831711281938979093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/07/one-file-for-all-and-all-loading-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/4831711281938979093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/4831711281938979093'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/07/one-file-for-all-and-all-loading-from.html' title='One file for all, and all loading from one?'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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-1564581765546363562.post-2572153451092144681</id><published>2009-07-14T03:27:00.000-07:00</published><updated>2009-07-14T03:32:36.225-07:00</updated><title type='text'>My fingers wouldn't listen to me!</title><content type='html'>I have a bad habit when I play the piano that I inherited from my organ-learning days. Since the organ doesn't have touch-response I could tap with any level of finger force I'd like and now it seems that it is going to harm my piano lessons....&lt;br /&gt;&lt;br /&gt;Teacher says, "Tap with strength from the fingers, not the wrist."&lt;br /&gt;&lt;br /&gt;But I kept tinkering with my wrist going up, down, up, down.... argh so frustrating. I had my friend and the teacher hold both of my wrists while I was playing from the book at class. Feels weird having to concentrate on the fingers and the piano keys at the same time!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1564581765546363562-2572153451092144681?l=nowhereilearnthat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/2572153451092144681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/07/my-fingers-wouldnt-listen-to-me.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/2572153451092144681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/2572153451092144681'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/07/my-fingers-wouldnt-listen-to-me.html' title='My fingers wouldn&apos;t listen to me!'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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-1564581765546363562.post-5223629409389826437</id><published>2009-07-14T01:36:00.000-07:00</published><updated>2009-07-14T03:21:11.613-07:00</updated><title type='text'>Lessons from the validators</title><content type='html'>&lt;span style="font-size:85%;"&gt;In my previous Java project, I had to code validators for a bunch of classes that have no concrete requirements specified and I was a bit clueless as to how big is the implementation scope and how should I validate the text fields that may accept different kinds of patterns of different data types. First of all, they needed a field that could accept only * and 0-9&lt;/span&gt;, &lt;span style="font-size:85%;"&gt;and naturally Regex came to mind........ and that being a former PHP scripter, I inadvertently used regex in all of my validations, which, in the end, was not as elegant as I thought!  (&lt;/span&gt;&lt;span style="font-size:85%;"&gt;Although some seasoned OOP developers may feel regex is unnecessary, in my opinion it is quite handy.&lt;/span&gt;)&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;As I struggled in getting the correct method to use and at the same time getting help from the seniors, I realised that I could have separated my validation methods into regex parsing and the regular numeric data type parsing.  And then,  I have decided that the middle road is the way to go in my future projects.&lt;br /&gt;&lt;br /&gt;This is my conclusion :&lt;br /&gt;1) If the field consists of special characters and/or alphanumeric -&gt; use Java regex&lt;br /&gt;2) If the field is only tied to one data type, for instance only numeric -&gt; use the Java number class to do the parsing e.g. Double.parseDouble&lt;br /&gt;&lt;br /&gt;Mix and match is good eh?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1564581765546363562-5223629409389826437?l=nowhereilearnthat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/5223629409389826437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/07/lessons-from-validators.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/5223629409389826437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/5223629409389826437'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/07/lessons-from-validators.html' title='Lessons from the validators'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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-1564581765546363562.post-1366981746635124173</id><published>2009-07-14T01:29:00.000-07:00</published><updated>2009-07-14T01:35:50.235-07:00</updated><title type='text'>Pick out the null and throw in an Empty</title><content type='html'>&lt;a href="http://www.ibm.com/developerworks/java/library/j-diag2/" name="h1"&gt;&lt;span class="atitle"&gt;The Dangling Composite pattern&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have learnt not to assign a null to a reference in a list object's constructor, because when the equals() method is applied, I will get a NullPointerException. It says creating an Empty class will fix that - I guess it's because it's still a class (although it does look weird in the UML diagram...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1564581765546363562-1366981746635124173?l=nowhereilearnthat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nowhereilearnthat.blogspot.com/feeds/1366981746635124173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/07/pick-out-null-and-throw-in-empty.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/1366981746635124173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1564581765546363562/posts/default/1366981746635124173'/><link rel='alternate' type='text/html' href='http://nowhereilearnthat.blogspot.com/2009/07/pick-out-null-and-throw-in-empty.html' title='Pick out the null and throw in an Empty'/><author><name>lolipoops</name><uri>http://www.blogger.com/profile/05130100622533283381</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>
