<?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-7707845</id><updated>2012-01-24T12:23:09.596+08:00</updated><title type='text'>Steven Yong's Weblog</title><subtitle type='html'>Share some thoughts and opinions on software engineering, programming, development methodologies, implementation pitfalls, object-oriented concepts, principles and design patterns. And also some ramblings.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>78</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7707845.post-114070940070526547</id><published>2006-02-23T23:21:00.000+08:00</published><updated>2006-02-23T23:43:21.233+08:00</updated><title type='text'>Finally I host my own blog</title><content type='html'>Too many. It's simply too many free blogging services out there like &lt;a href="http://blogger.com"&gt;blogger.com&lt;/a&gt;, &lt;a href="http://livejournal.com"&gt;livejournal.com&lt;/a&gt;, &lt;a href="http://360.yahoo.com"&gt;360.yahoo.com&lt;/a&gt;, &lt;a href="http://spaces.msn.com"&gt;MSN Spaces&lt;/a&gt; and even &lt;a href="http://friendster.com"&gt;Friendster&lt;/a&gt;. I'm getting tired of trying them out, therefore, I decided to host &lt;a href="http://ngiap.com/blogs/stevenyong"&gt;my Weblog&lt;/a&gt; at a local datacenter with open source Weblog system, &lt;a href="http://www.s9y.org"&gt;Serendipity&lt;/a&gt;. Getting it all done has kept me busy at home for the past few days, and it is not entirely done yet. For instance, the pictures of the posts are still from blogger.com server and I'm actually considered stealing bandwidth. Luckily I'm still an active member/blogger at Blogger as my &lt;a href="http://stevenyong.blogspot.com"&gt;chinese Weblog&lt;/a&gt; is still hosted there.&lt;br /&gt;The most challenging part of migrating all my previous posts was importing every one of them, getting them categorized nicely and also resolving many broken links. I'm yet to figure out the better way to categorize all the posts as you can see there is vague category like "opinion" which most of my posts are literally my own opinion so it might turn out that almost all of them will be grouped into that category.&lt;br /&gt;Of course, the most risky part of this action is that I will have to (like now) broadcast the change to everyone I know. However, I think a "permanent" URL for my blog is worth the risk.&lt;br /&gt;&lt;br /&gt;Okie, please be informed that I'm no longer posting anything here and please, visit the new location of my Weblog (&lt;a href="http://ngiap.com/blogs/stevenyong"&gt;http://ngiap.com/blogs/stevenyong&lt;/a&gt;) whenever you free. I'd also like to tell that I'm happy to remain my chinese Weblog at blogger.com. Waiting for ya!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-114070940070526547?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/114070940070526547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=114070940070526547' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/114070940070526547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/114070940070526547'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/02/finally-i-host-my-own-blog.html' title='Finally I host my own blog'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-114017691147784085</id><published>2006-02-17T19:43:00.000+08:00</published><updated>2006-02-17T19:48:31.746+08:00</updated><title type='text'>I don't like this result</title><content type='html'>I was trying to open up J2SE 1.5 API docs by searching "j2se1.5 api". As usual, first with Google, I really don't like the result:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/goog.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/goog.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In contrast, Yahoo! is much better in this case (with exact search terms):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/yhoo.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/yhoo.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Finally I decided to change my behavior of web search from always using Google to using both Yahoo! and Google alternatively.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-114017691147784085?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/114017691147784085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=114017691147784085' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/114017691147784085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/114017691147784085'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/02/i-dont-like-this-result.html' title='I don&apos;t like this result'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-114000505950775153</id><published>2006-02-15T19:50:00.000+08:00</published><updated>2006-02-15T20:04:19.773+08:00</updated><title type='text'>Programmer can be a lifelong job</title><content type='html'>I'm asked many times when would I like to move up from programmer's job. Most of the times this question came from my friends who are also working as a programmer. It seems that most of the local programmers are hoping to move levels up within the organisation's ladder. It also means that most of the local programmers consider their current job some sort of ground and temporary work. Am I thinking too much or it is actually a fact?&lt;br /&gt;&lt;br /&gt;This is the typical job position hierarchy in most of the local software companies (in terms of power, pay and authority):&lt;br /&gt;            Project Manager&lt;br /&gt;                        |&lt;br /&gt;            System Analyst&lt;br /&gt;                        |&lt;br /&gt;            Solution Architect&lt;br /&gt;                        |&lt;br /&gt;                Programmer&lt;br /&gt;                        |&lt;br /&gt;                    Tester&lt;br /&gt;&lt;br /&gt;Many of us strive for the project management role merely because of the mentioned factors (power, pay and authority). How many of them looking for project manager position because they like to manage customers and programmers? If they really do, will they be still enjoying in such position if they have lesser power, lesser authority and lower pay comparing to what programmers have?&lt;br /&gt;&lt;br /&gt;Will this hierarchy possibly be changed where programmer can also be a very influential position? It indeed &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2006/02/09/528590.aspx"&gt;happens in US&lt;/a&gt;, but somehow, it just seems impossible for Malaysia.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-114000505950775153?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/114000505950775153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=114000505950775153' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/114000505950775153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/114000505950775153'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/02/programmer-can-be-lifelong-job.html' title='Programmer can be a lifelong job'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113999587834244600</id><published>2006-02-15T17:29:00.000+08:00</published><updated>2006-02-15T17:31:18.670+08:00</updated><title type='text'>I've got a new mouse</title><content type='html'>I did not have to make a request and the company just gave me a new optical scroll mouse and no signature required. This incident made me questioned myself that why had I been filling forms just to get a tiny device, like a mouse.&lt;br /&gt;I understand that most of us feel not safe working at &lt;a href="http://steven-software.blogspot.com/2006/01/job-openings.html"&gt;small company&lt;/a&gt;, or we don't choose small firm for a more valid reason, low pay and financial unstability. There are two kinds of big company: good and not-so-good. Do you think Google will require their top coders filling up form just to get a keyboard or mouse while they're competing with Yahoo!, Microsoft and etc. into the extent that they release new feature almost every week?&lt;br /&gt;&lt;br /&gt;"How can everyone get new hardware as they like, we must follow procedure". Sounds familiar?&lt;br /&gt;Over here in the company I'm working at, we fix a bug only if it is reported in the issue tracking system, we must follow certain application building and deployment procedure and we verify articles before posting to our internal knowledge portal. But we don't have to do anything to get our 2-button mouses replaced.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;PS: we should define, obey and follow those procedures which really offer benefits. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113999587834244600?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113999587834244600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113999587834244600' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113999587834244600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113999587834244600'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/02/ive-got-new-mouse.html' title='I&apos;ve got a new mouse'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113991149538616278</id><published>2006-02-14T18:00:00.000+08:00</published><updated>2006-02-14T18:33:58.083+08:00</updated><title type='text'>What a surprise</title><content type='html'>Glad to know that I have &lt;a href="http://key8297.blogspot.com/"&gt;one more friend&lt;/a&gt; just entered the Blogosphere. It's quite a big surprise to me because he's been giving me the impression that he isn't the kind of person who would like to express feelings about anything to public. Anyway, I found out that he'd probably focusing on the topic of photography and as I know from him that he's trying extremely hard to master all kinds of skills and techniques of photo shooting. I'll be more than happy to follow his posts as often as I can, hopefully he will keep his posting short and often. :-)&lt;br /&gt;I'm pretty sure that there will be a lot of nice pictures coming on his blog. Enjoy!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;PS: Finally I won't have to ask him "Why don't you blog?" anymore&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113991149538616278?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113991149538616278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113991149538616278' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113991149538616278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113991149538616278'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/02/what-surprise.html' title='What a surprise'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113971438814723230</id><published>2006-02-12T11:13:00.000+08:00</published><updated>2006-02-12T12:33:27.763+08:00</updated><title type='text'>Netbeans Matisse</title><content type='html'>A friend of mine asked me what is it so cool about Matisse but unfortunately I was busy at the moment and didn't get the chance to dicsuss with him in more details.&lt;br /&gt;Many developers are having the wrong perception that Matisse is just trying to achieve what Visual Studio is having for years, as a matter of fact, it is much much more than that.&lt;br /&gt;Kindly follow &lt;a href="http://blogs.sun.com/roller/page/roumen?entry=netbeans_quick_tip_22_using3"&gt;this link&lt;/a&gt; to see one of the many cool things of Matisse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113971438814723230?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113971438814723230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113971438814723230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113971438814723230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113971438814723230'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/02/netbeans-matisse.html' title='Netbeans Matisse'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113964560939708941</id><published>2006-02-11T15:53:00.000+08:00</published><updated>2006-02-11T16:13:29.690+08:00</updated><title type='text'>The realization of tremendous improvements</title><content type='html'>It's nearly four years since I've been playing with Linux on my personal computer. To be honest, the experience wasn't that good and that's the reason why I'd abandoned the idea of using it in my free time. Overall, it's much much behind Windows in terms of installation, quality and user experience. However, this morning when I was installing &lt;a href="http://fedora.redhat.com/"&gt;Fedora Core 4&lt;/a&gt;, I found that a lot of improvements have been done over the years. It took me about the same amount of installation time comparing with Windows, and finally almost all the devices are literally being "auto detected". Other than that, surprisingly I managed to connect to the Internet seamlessly. The look and feel is so much similar to Windows (a good strategy) and the distribution comes with openoffice.org 2.0 beta as a bonus. In short, everything works just fine.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/fedora4.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/fedora4.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As usual, first impression always mislead people, I could only possibly realize the real problems (or advantages) when I'm really using it for my daily tasks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113964560939708941?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113964560939708941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113964560939708941' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113964560939708941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113964560939708941'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/02/realization-of-tremendous-improvements.html' title='The realization of tremendous improvements'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113948198629544861</id><published>2006-02-09T18:44:00.000+08:00</published><updated>2006-02-09T18:46:26.556+08:00</updated><title type='text'>Free is good, but open source isn't always good</title><content type='html'>Ever since &lt;a href="http://steven-software.blogspot.com/2006/02/my-proposal-has-been-accepted.html"&gt;we started using a new issue tracking system&lt;/a&gt;, I was sometimes being asked to change some &lt;a href="http://php.net"&gt;PHP &lt;/a&gt;codes to suit our needs better or customize the look and feel. It seems like we'll be maintaining and improving this open source software as time goes.&lt;br /&gt;The good side: I just realized that PHP isn't that hard to learn&lt;br /&gt;The bad side: It wasn't my initial intention to make any modification of source code&lt;br /&gt;&lt;br /&gt;The lesson of this story: Tell everyone you're only downloading the binary of any open source softwares&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113948198629544861?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113948198629544861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113948198629544861' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113948198629544861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113948198629544861'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/02/free-is-good-but-open-source-isnt.html' title='Free is good, but open source isn&apos;t always good'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113939395757348778</id><published>2006-02-08T18:11:00.000+08:00</published><updated>2006-02-08T18:23:00.333+08:00</updated><title type='text'>The consistency that we seldom have</title><content type='html'>I and some fellow colleagues were attending a briefing on an web application. The presentation wasn't so attractive and even somewhat boring, the application features were being describe from tab to tab at the menu bar. At one point the presenter asked "Which one do you guys want to know next?"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/menu.0.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/400/menu.jpg" alt="" border="0" /&gt;&lt;/a&gt;Everyone of us answered "Logout". It's rarely we could achieve this kind of consistency.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113939395757348778?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113939395757348778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113939395757348778' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113939395757348778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113939395757348778'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/02/consistency-that-we-seldom-have.html' title='The consistency that we seldom have'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113930938565109993</id><published>2006-02-07T18:47:00.000+08:00</published><updated>2006-02-08T09:12:56.783+08:00</updated><title type='text'>My proposal has been accepted</title><content type='html'>We was watching the demos of &lt;a href="http://www.mantisbt.org/"&gt;Mantis &lt;/a&gt;and &lt;a href="http://dev.mysql.com/downloads/other/eventum/"&gt;Eventum &lt;/a&gt;and discussing which one to use, and the final decision is we're going for Mantis (just 1 vote different). Two major reasons we've selected Mantis are it is easy to use and more easy to setup. Personally I find both options (both also php+mysql) are good and able to meet our requirements. Although Mantis is relatively having fewer features than Eventum, Mantis is fairly simple to use. You don't need any training or user manual before using it and it won't scare you away or confuse you. Tentatively, everyone in the company will start using it end of this week.&lt;br /&gt;&lt;br /&gt;I believe that by using it, we can really track our issues.&lt;br /&gt;&lt;br /&gt;Since we've pretty much solved the minor problem of issue tracking, next week we'll see how we can improve our process of using the system.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS: You can download the &lt;a href="http://www.geocities.com/woongiap/mantis_proposal.doc"&gt;draft proposal here&lt;/a&gt; and I'm not so willing to say that we're using WAMP instead of LAMP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113930938565109993?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113930938565109993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113930938565109993' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113930938565109993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113930938565109993'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/02/my-proposal-has-been-accepted.html' title='My proposal has been accepted'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113922292272833254</id><published>2006-02-06T18:47:00.000+08:00</published><updated>2006-02-06T18:48:49.173+08:00</updated><title type='text'>Sense and Sensibility</title><content type='html'>I was trying to figure out if language use is the only different between this blog and &lt;a href="http://stevenyong.blogspot.com"&gt;my chinese Weblog&lt;/a&gt;. But surprisingly I find that the rather significant different is about sense and sensibility, which this blog is about sense and the chinese one is about sensibility. I just realized that my command of written English wasn't as poor as I've been feeling since I came out to work. At least I can write spec, doc or manual which people can understand (don't think it's easy!). Now that I'm even able to elaborate something about my working's life which I've got reader find them funny.&lt;br /&gt;But very sad to say that, my level of written English will never reach the level of the written Chinese that I'm having now. I can easily express my feeling of very sensible things like love relationship, friendship and so on in chinese. Those are the stuffs which we cannot fully understand no matter how hard we try, for example you just couldn't yell at me and say "It doesn't make sense!" if I said I don't like to see that pretty and sexy girl but instead I'm pretty interested in another brown-color girl with small eyes and dry hair. When thing came no sense, it's just harder for us to describe it. That's why I can use English to blog the things that make a lot of senses.&lt;br /&gt;So, should I try harder to improve my written English? No. I'd prefer to use chinese in personal life and english for work. I'm pretty satisfied if anyone who need to read my writing for some working purposes can totally understand what I try to say.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113922292272833254?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113922292272833254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113922292272833254' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113922292272833254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113922292272833254'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/02/sense-and-sensibility.html' title='Sense and Sensibility'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113906825245666297</id><published>2006-02-04T23:20:00.000+08:00</published><updated>2006-02-04T23:50:52.733+08:00</updated><title type='text'>Netbeans IDE Update Center</title><content type='html'>I just know that the final release of &lt;a href="http://netbeans.org"&gt;Netbeans IDE 5.0&lt;/a&gt; has been released and was trying my luck to upgrade my current beta version with the IDE Update Center instead of downloading the installer separately. But I just couldn't upgrade anything but features and libraries by using the Update Center. Despite the fact that some other good softwares like &lt;a href="http://messenger.yahoo.com"&gt;Yahoo! Messenger&lt;/a&gt; and &lt;a href="http://www.apple.com/itunes/"&gt;iTunes&lt;/a&gt; also require the users to download the entire installer all over again, I find they're better in this upgrading mechanism in the sense that they alert you the updates upon startup and allow you to download the newer installer within the software itself.&lt;br /&gt;However, this is only a minor and non critical feature which I'd like to have in Netbeans IDE.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/nbuc.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/nbuc.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113906825245666297?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113906825245666297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113906825245666297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113906825245666297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113906825245666297'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/02/netbeans-ide-update-center.html' title='Netbeans IDE Update Center'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113890093803519457</id><published>2006-02-01T00:39:00.000+08:00</published><updated>2006-02-03T01:22:18.796+08:00</updated><title type='text'>The reasons I blog</title><content type='html'>In fact no one has asked me why I blog before, seemingly everyone knows the reasons I blog (of course most of them simply don't bother). I'm going to tell the reasons I blog, if you're not at all interested to know, feel free to skip this post (don't worry about further posts as I'll only tell once).&lt;br /&gt;&lt;br /&gt;The only one major reason: This is the ONLY place I can say whatever I want to say and yet, people can read.&lt;br /&gt;For those who follow my posts will know that most of my writings are coming from an employee's perspective and relating to software development. I'm a programmer, therefore I think this nature is forgivable and inevitable. Some of the thinking over here are too risky for me to tell my superior face-to-face in the meeting room, but I just couldn't keep it myself, I can't wait to express it out, this is where this blog comes from.&lt;br /&gt;Of course, I want as many people as possible to read what I'd written, therefore I write something non-IT related and put some attractive photos occasionally for those who are not from IT background or totally not interested in reading software related stuffs. I feel that if getting more readers isn't important, I might as well keep a personal diary in my drawer.&lt;br /&gt;&lt;br /&gt;And a few minor ones:&lt;br /&gt;1) practice my command of written English - I once asked a friend of mine why he doesn't blog, and the answer I got was "My English isn't good". I have a total opposite answer for that, I blog because my command of English is poor. If you think you can still improve your writing skill by just writing something which nobody can read, then you're fooling yourself.&lt;br /&gt;2) I like to write since I was small - Only a few of my close friends know this secret. Therefore I wasn't upset when my friends said "you don't look like the kind of person who can write", "are those written by you?" and something similar. Actually I prefer to &lt;a href="http://stevenyong.blogspot.com/"&gt;write in chinese&lt;/a&gt;, but sadly to say that I don't have much audience in that market.&lt;br /&gt;3) I want to make the conversations with friends more meaningful - Ever since I had enough volume of posts, I like to answer some trivial questions from my friends such as "how's work?", "what do you think about open source?", "do you know J2ME?", "how's the business trip?" by saying "didn't you read my blog?". Can you imagine how meaningful my conversations with friends will be if we can skip those trivial questions? (of course I'll still answer directly if I know the person doesn't have Internet connection either at work or at home)&lt;br /&gt;&lt;br /&gt;So, does it justify to you for spending time reading my blog? :-) Hope so.&lt;br /&gt;&lt;br /&gt;PS: My &lt;a href="http://stevenyong.blogspot.com/"&gt;chinese blog&lt;/a&gt; didn't have, and probably won't have IT stuffs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113890093803519457?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113890093803519457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113890093803519457' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113890093803519457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113890093803519457'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/02/reasons-i-blog.html' title='The reasons I blog'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113889711239233484</id><published>2006-01-30T23:04:00.000+08:00</published><updated>2006-02-03T00:19:56.116+08:00</updated><title type='text'>Scott McNealy is a good boss</title><content type='html'>We can get a mainstream &lt;a href="http://www.opensolaris.org/os/"&gt;operating system&lt;/a&gt; for free, some &lt;a href="http://netbeans.org"&gt;award-winning developer tools&lt;/a&gt; for free and an enterprise standard &lt;a href="https://glassfish.dev.java.net/"&gt;application server&lt;/a&gt; for free. By implementing the &lt;a href="http://developers.sun.com/prodtech/devtools/free/"&gt;open source strategy&lt;/a&gt;, &lt;a href="http://sun.com"&gt;Sun &lt;/a&gt;isn't going to get any significant quick profit in the short future. But why I say Scott, the CEO of Sun Microsystems is a good boss? Though he isn't necessarily a good business man.&lt;br /&gt;Because I've worked with those bosses who have only short sight. They're only looking for short term income, they're only interested in solving at hands but not potential problems and they're only capable of figuring out visible costs.&lt;br /&gt;The answers of below questions might be able to tell us whether our bosses are good:&lt;br /&gt;1) Is it possible that you can be dedicated to a project for developing a justifiably good internal-use system?&lt;br /&gt;2) Is it possible for you to request 5 man days more for a task which is only allocated for 2 man days initially?&lt;br /&gt;3) Are you allowed to sit on a sofa doing nothing during office hours and no one will question you?&lt;br /&gt;4) Does your team still have the same group of people after the project end?&lt;br /&gt;5) Does any of your ideas get implemented?&lt;br /&gt;&lt;br /&gt;If you get all "yes", congratulations! you've got a good boss.&lt;br /&gt;After all this while reading the &lt;a href="http://blogs.sun.com"&gt;blogs&lt;/a&gt; of some Sun's employees, I'm highly impressed with their working environment, their freedom of work and the way they're managed. In this kind of environment, you're hardly to be unproductive and not creative.&lt;br /&gt;&lt;br /&gt;Yes, they don't see profit, their stock price is still not up to expectation. But there have one of the best engineering team and working environment in the company. Do you doubt the future of a company which is having strong, intelligent and highly committed teams?&lt;br /&gt;Scott believes in his vision and works extra hard to achieve it. And more importantly, he is doing an excellent job on keeping the good talents.&lt;br /&gt;&lt;br /&gt;My current company is &lt;a href="http://steven-software.blogspot.com/2006/01/job-openings.html"&gt;still hiring&lt;/a&gt;, last week an anonymous asked me how nice is the working environment in the company, please let me first give a short answer: I've answered four "yes" out of the five.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113889711239233484?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113889711239233484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113889711239233484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113889711239233484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113889711239233484'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/scott-mcnealy-is-good-boss.html' title='Scott McNealy is a good boss'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113846713588072600</id><published>2006-01-29T00:49:00.000+08:00</published><updated>2006-01-29T00:52:27.263+08:00</updated><title type='text'>Sometimes, LAMP is better</title><content type='html'>&lt;span style="font-family: verdana;font-size:100%;" &gt;All the while &lt;a href="http://java.com"&gt;Java &lt;/a&gt;is my platform of choice and I've been tended to looking for or implementing solutions built on Java to solve any problems before even considering any other alternatives. But I think my mind has changed that I believe other platforms could do better than Java in many circumstances.&lt;br /&gt;For example when I was looking for a good &lt;a href="http://steven-software.blogspot.com/2006/01/do-i-we-really-need-bug-tracking.html"&gt;bug tracking system&lt;/a&gt;, I didn't really want to setup any Java based web application because what I want is something simple and easy, I prefer to use only a &lt;a href="http://httpd.apache.org"&gt;web server&lt;/a&gt; for this purpose. Some might say that Tomcat web container is just as simple as any web server, although I do agree on this point, I want something can run natively i.e. separate runtime is not needed.&lt;br /&gt;For this particular problem, even though the final decision is yet to be decided, I'm pretty sure that we'll certainly go for LAMP (Linux, Apache, MySQL and Perl/PHP). I'm more than willing to have LAMP to solve this problem so that we can be more focus on leveraging the strength of Java platform on our core business problems.&lt;br /&gt;&lt;br /&gt;The clock has just passed 12, and it turned to the year of Dog.&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/7707845-113846713588072600?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113846713588072600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113846713588072600' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113846713588072600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113846713588072600'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/sometimes-lamp-is-better.html' title='Sometimes, LAMP is better'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113835297130926985</id><published>2006-01-27T17:02:00.000+08:00</published><updated>2006-01-27T17:11:38.873+08:00</updated><title type='text'>Yet another bug tracking system</title><content type='html'>After I found the CGI Perl based &lt;a href="http://bugzilla.org"&gt;Bugzilla &lt;/a&gt;doesn't really solve the &lt;a href="http://steven-software.blogspot.com/2006/01/i-have-problems-to-solve.html"&gt;problem &lt;/a&gt;well, I went ahead for a PHP based system called &lt;a href="http://www.mantisbt.org/"&gt;Mantis &lt;/a&gt;which was recommended by the project manager of one of my previous projects. So sad to said that it was a little harder to get the system up and running &lt;a href="http://steven-software.blogspot.com/2006/01/setting-up-bugzilla.html"&gt;than Bugzilla&lt;/a&gt;. Now that I know &lt;a href="http://mysql.org"&gt;MySQL &lt;/a&gt;4 doesn't really work fine with latest &lt;a href="http://php.net"&gt;PHP &lt;/a&gt;5 without some tedious hacks, instead it requires PHP 4, this is the part took me the most hours for this task. Luckily, integrating &lt;a href="http://httpd.apache.org"&gt;Apache2 &lt;/a&gt;with PHP is easy, just that I had to configure another directory for Mantis application because the document root directory has been occupied by Bugzilla.&lt;br /&gt;However, Mantis gave me a pretty good first impression, at least much more better than Bugzilla. As a developer, I think I'd like to have something like this when tracking my issues or bugs:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/mantis-my.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/mantis-my.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately Bugzilla doesn't seem to provide this kind of fundamental user experience, the closer page I can find is just like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/bugzilla-my.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/bugzilla-my.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm a bit embarrassed to say that I just know that actually there's a Java based bug tracking system (&lt;a href="http://www.cowsultants.com/"&gt;iTracker&lt;/a&gt;) currently running in my company which everyone has stop using. This open source project has been terminated and no further development will be activated. But this is not the reason we didn't want to use it, in fact it is hard to use and lack of features.&lt;br /&gt;Actually there's a very good commercial product called &lt;a href="http://www.atlassian.com/software/jira/"&gt;JIRA&lt;/a&gt;, I had the chance to use it for a project and it gives me more than what I require and expect. But I simply just couldn't justify to management without literally evaluting some free products. Anyway, I find it fun and exciting setting up and trying out open source alternatives.&lt;br /&gt;&lt;br /&gt;PS: Must we use version control system to maintain and control our internal documentation and specification (in case if you want to control)? Not really, next I'll be going to play around with &lt;a href="http://www.mediawiki.org"&gt;Wiki&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113835297130926985?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113835297130926985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113835297130926985' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113835297130926985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113835297130926985'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/yet-another-bug-tracking-system.html' title='Yet another bug tracking system'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113826092307348065</id><published>2006-01-26T15:33:00.000+08:00</published><updated>2006-01-26T15:35:23.293+08:00</updated><title type='text'>My work wasn't as good as I thought</title><content type='html'>My father checks his share prices everyday with a web based applet. He is nearly sixty, before he's interested in buying shares, he didn't even know how to switch on the PC. So, how could he possible know how to use a web application? Apparently it's because of his son. By the time he requested to use my home PC to track his shares, I decided to write a super comprehensive user manual for a so-called computer idiot like my father. These are the things being covered in the manual:&lt;br /&gt;1) How to on my PC&lt;br /&gt;2) What is Windows login&lt;br /&gt;3) How to use the keyboard and mouse (when to click left and right button)&lt;br /&gt;4) Where is the places accept inputs (textboxes)&lt;br /&gt;5) What type of mouse cursors indicate that you can type something&lt;br /&gt;6) Where is Enter key and what is that for&lt;br /&gt;7) How to activate wireless network connection (my wireless card somehow doesn't detect the signal automatically during startup)&lt;br /&gt;8) What is icon&lt;br /&gt;9) How to click on an icon&lt;br /&gt;10) Where is the link for logging into the web application and how to click on it&lt;br /&gt;11) Again, how to move the mouse to the username/password textboxes&lt;br /&gt;12) How to search for a stock and check the price&lt;br /&gt;13) Finally, how to close IE and shutdown the PC&lt;br /&gt;&lt;br /&gt;Secret: I moved the IE icon to a more prominent position and set the home page pointing to the website so that I can skip the effort of telling how to enter URL. I guess my father would believe that the IE is actually the software given by the &lt;a href="http://www.apexetrade.com"&gt;trade service provider&lt;/a&gt; and the web app is the only place he can go.&lt;br /&gt;&lt;br /&gt;Of course I included all the necessary login information and a lot of screenshots in the document. I was so happy that I was able to create that great guide which turns people who never use computer before to be able to play around with Java applet. Until just now I got a call from my father, I came to realize that there're bunch of things must be included into the manual (therefore I won't get called for help too often):&lt;br /&gt;1) Which LED on the keyboard indicates that the Caps Lock or Num Lock is on&lt;br /&gt;2) How to make sure you can safely perform inputs&lt;br /&gt;3) When to wait and when not to&lt;br /&gt;4) When will the user account be locked or deactivated&lt;br /&gt;5) How and when to adjust the system time&lt;br /&gt;6) Where you should never click&lt;br /&gt;7) And something to be discovered soon&lt;br /&gt;&lt;br /&gt;Writing spec or document isn't easy at all, especially true for the chinese version one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113826092307348065?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113826092307348065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113826092307348065' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113826092307348065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113826092307348065'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/my-work-wasnt-as-good-as-i-thought.html' title='My work wasn&apos;t as good as I thought'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113816967028856937</id><published>2006-01-25T14:09:00.000+08:00</published><updated>2006-01-25T14:14:30.526+08:00</updated><title type='text'>Should we use IDE?</title><content type='html'>Anyone who knows me will know that when I'm talking about IDE, I'm referring to Java IDE. If I'd like to talk about Microsoft IDE, I'd just say Visual Studio. Like normal, I just had a little short conversation with my &lt;a href="http://kokwai.blogspot.com"&gt;friend &lt;/a&gt;bullshitting about whether we, as a Java developer, need or need not to use any Java IDE like &lt;a href="http://netbeans.org"&gt;Netbeans&lt;/a&gt;, &lt;a href="http://eclipse.org"&gt;Eclipse&lt;/a&gt;, &lt;a href="http://www.borland.com/us/products/jbuilder/index.html"&gt;JBuilder &lt;/a&gt;and &lt;a href="http://www.jetbrains.com/idea/"&gt;IntelliJ&lt;/a&gt;.&lt;br /&gt;Again, like normal, we didn't have a conclusion. However we somewhat agree that if we're not doing any GUI design such as Swing window, web page, web navigation flow and so on, then IDE is just a luxury tool for us.&lt;br /&gt;Some might argue that they depend heavily on code completion, fast reference, refactoring, dependency detection and much more features which generally can't be found in normal text editors. Of course those are great features for improving programmers' productivity tremendously. But controversially, those are also the obstacles for novice programmers heading to advance level. For example, during code refactoring, if you rename a member field of a &lt;a href="http://java.sun.com/products/javabeans/index.jsp"&gt;JavaBean&lt;/a&gt;, say from &lt;span style="font-style: italic;"&gt;a&lt;/span&gt; to &lt;span style="font-style: italic;"&gt;b&lt;/span&gt;, some IDEs are smart enough to auto rename the setter and getter to &lt;span style="font-style: italic;"&gt;setB()&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;getB()&lt;/span&gt; accordingly. If one is new to JavaBean, he or she won't even realize that conforming convention is mandatory for your bean to work well in many places like &lt;a href="http://java.sun.com/products/jsp/"&gt;JSP&lt;/a&gt;, GUI component and etc. Therefore it'd be pretty risky and time-consuming if he or she would have to perform debugging at customer site without an IDE.&lt;br /&gt;If look at bigger picture, it's important and hard to enforce standardized use of IDE in a project team. It's important because some designer model layout and configurations files don't work across different IDEs and it's hard because what IDE to use is a very personal issue where you can easily defeat the purpose of increasing productivity by forcing people to use what he/she doesn't like.&lt;br /&gt;In conclusion, it's always good and bad to have too many choices of IDE in Java world.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS: I use Netbeans at work, check out &lt;a href="http://www.frappr.com/netbeans"&gt;Netbeans map&lt;/a&gt; (id is steven) for my location :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113816967028856937?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113816967028856937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113816967028856937' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113816967028856937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113816967028856937'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/should-we-use-ide.html' title='Should we use IDE?'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113809299617165730</id><published>2006-01-24T16:49:00.000+08:00</published><updated>2006-01-24T16:56:39.913+08:00</updated><title type='text'>Finally we can code "new XMLHttpRequest()" everywhere</title><content type='html'>After &lt;a href="http://blogs.msdn.com/ie/archive/2006/01/23/516393.aspx"&gt;IE7&lt;/a&gt; has been officially released, we can construct XMLHttpRequest natively,&lt;br /&gt;i.e. &lt;span style="color: rgb(0, 0, 0); font-family: courier new;font-size:85%;color:blue;"  &gt;var xmlHttp = new XMLHttpRequest()&lt;/span&gt;&lt;br /&gt;for all the major web browsers including Mozilla, IE and Safari. Isn't that a good news for those who build AJAX web application?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113809299617165730?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113809299617165730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113809299617165730' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113809299617165730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113809299617165730'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/finally-we-can-code-new-xmlhttprequest.html' title='Finally we can code &quot;new XMLHttpRequest()&quot; everywhere'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113809062049381345</id><published>2006-01-24T16:08:00.000+08:00</published><updated>2006-01-24T16:17:00.740+08:00</updated><title type='text'>Why should I care which layer causes error?</title><content type='html'>Just got a sms saying that I got a picture message which I have to login to the &lt;a href="http://www.maxis.com.my/mms"&gt;website&lt;/a&gt; and view it. Here is the error page I get after trying to login in:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/maxismms.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/maxismms.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;How the heck am I supposed to know what to do next? Does the error calm you down by telling you which layer is causing the error?&lt;br /&gt;&lt;br /&gt;The first principle of error page design: Tell something meaningful and guide the user to the possible workarounds, or at least ask the user to try again later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113809062049381345?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113809062049381345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113809062049381345' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113809062049381345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113809062049381345'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/why-should-i-care-which-layer-causes.html' title='Why should I care which layer causes error?'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113808388669441127</id><published>2006-01-24T14:22:00.000+08:00</published><updated>2006-01-24T14:24:46.973+08:00</updated><title type='text'>Never leave your shoes outside</title><content type='html'>I bought a pair of new leather shoes yesterday. Guess what? it isn't for chinese new year, it was merely because my previous pair have been (or has been? correct me please) stolen (it happened to my neighbour too). I'm suspecting it's done by the foreign worker because the place I stay is literally an industrial area which has huge number of foreign workers who came from Bangladesh, Myanmar and Indonesia. What is my point? I don't know, most of the times I don't have one. But the lesson of this story: Never leave your shoes outside.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113808388669441127?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113808388669441127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113808388669441127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113808388669441127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113808388669441127'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/never-leave-your-shoes-outside.html' title='Never leave your shoes outside'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113806923750330397</id><published>2006-01-24T10:17:00.000+08:00</published><updated>2006-01-24T10:22:50.913+08:00</updated><title type='text'>Setting up Subversion with Apache http server</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/svn.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/svn.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now what I make a good use of my &lt;a href="http://httpd.apache.org"&gt;Apache http server&lt;/a&gt; because I managed to get both &lt;a href="http://bugzilla.org"&gt;bug tracking system&lt;/a&gt; and &lt;a href="http://subversion.tigris.org/"&gt;version control system&lt;/a&gt; running.&lt;br /&gt;Unlike setting up Bugzilla, setting up and configuring Subversion with Apache http server is pretty straight forward which I think everyone can do by following the &lt;a href="http://svnbook.org/"&gt;manual&lt;/a&gt;.&lt;br /&gt;If you're using Apache httpd earlier than version 2.0.x, more works will have to be done including manually copy the Subversion &lt;a href="http://webdav.org/"&gt;WebDAV &lt;/a&gt;Shared Library (mod_dav_svn.so, which comes with the Subversion package) to the Apache installation directory. The reason we have to use Subversion with Apache httpd is making your repository available to others over a network. Of course Apache httpd isn't the only option, you can also use IIS or even the custom server provided by Subversion, svnserve (which you can access your repository via svn:// or svn+ssh://). Since I've configured my local Apache for Bugzilla, I might as well use it for Subversion also.&lt;br /&gt;&lt;br /&gt;Ok, the solutions of the &lt;a href="http://steven-software.blogspot.com/2006/01/i-have-problems-to-solve.html"&gt;problems &lt;/a&gt;have been somewhat figured out and I find them quite feasible and practical. The only issue now is Bugzilla doesn't really solve the problem well and I got to know that from a friend there is a &lt;a href="http://www.mantisbt.org/"&gt;PHP based system&lt;/a&gt; which I'd like to evaluate it thoroughly as well. Hopefully the solutions will get implemented right after chinese new year.&lt;br /&gt;&lt;br /&gt;PS: If you don't happen to know it yet, Subversion is designed to overcome some CVS limitations while providing most of the CVS features.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113806923750330397?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113806923750330397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113806923750330397' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113806923750330397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113806923750330397'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/setting-up-subversion-with-apache-http.html' title='Setting up Subversion with Apache http server'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113806589183771260</id><published>2006-01-24T09:11:00.000+08:00</published><updated>2006-01-24T09:24:54.326+08:00</updated><title type='text'>Do I (we) really need a bug tracking system</title><content type='html'>I got an interesting comment from my previous &lt;a href="http://steven-software.blogspot.com/2006/01/setting-up-bugzilla.html"&gt;post &lt;/a&gt;which the commentor asked: "You really anticipate so much bug that you will need a bug tracking system?"&lt;br /&gt;Of course he didn't ask this question for himself as he is a great developer who always strongly supports any good software development practices where bug tracking system is absolutely not excluded. In fact I believe he asked that to get attention from those who have the authority to implement bug tracking system but somehow have not yet done so.&lt;br /&gt;I really want to borrow a good quote from &lt;a href="http://www.joelonsoftware.com/articles/fog0000000029.html"&gt;Joel&lt;/a&gt;:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"One of the biggest incorrect facts that programmers consistently seem to believe is that they can remember all their bugs or keep them on post-it notes"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I find it true wholeheartedly because I can't remember more than two or three bugs at a time, and the next morning, or in the rush of shipping, they are forgotten.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;A very simple question to those who think that bug tracking system is not always needed: "Would you like your manager come to chase you for fixes every morning?"&lt;br /&gt;&lt;span style="font-style: italic;"&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/7707845-113806589183771260?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113806589183771260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113806589183771260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113806589183771260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113806589183771260'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/do-i-we-really-need-bug-tracking.html' title='Do I (we) really need a bug tracking system'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113800181724868125</id><published>2006-01-23T15:26:00.000+08:00</published><updated>2006-01-29T20:44:57.456+08:00</updated><title type='text'>Setting up Bugzilla</title><content type='html'>Just experienced that setting up &lt;a href="http://bugzilla.org"&gt;Bugzilla &lt;/a&gt;isn't as straight forward as it should be. The code you can get from Bugzilla.org is just a part of the entire system. Finally I managed to get it running on my Windows XP machine.&lt;br /&gt;Basically these are what we need to have in order to get it works:&lt;br /&gt;- Bugzilla codebase (core module, written in Perl)&lt;br /&gt;- &lt;a href="http://httpd.apache.org"&gt;Apache httpd 2.x&lt;/a&gt; (handling http requests since Bugzilla is a web based system)&lt;br /&gt;- &lt;a href="http://activestate.com"&gt;ActivePerl &lt;/a&gt;(executing Perl script)&lt;br /&gt;- &lt;a href="http://mysql.org"&gt;MySQL &lt;/a&gt;4 or higher (bugs database)&lt;br /&gt;- Some perl modules like MailTools, Chart and etc.&lt;br /&gt;&lt;br /&gt;The home page after logged in, yeah I know it isn't attractive and user-friendly enough :-)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/home.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/home.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Have a new project? (unfortunately Bugzilla uses the term "Product" for both project and product), here is the page to go.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/add.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/add.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kokwai.blogspot.com"&gt;A friend of mine&lt;/a&gt; just posted me a very interesting question saying that how can we handle change request or any other non-bug issue in Bugzilla. Too embarrassed to say that I couldn't figure out a good way of handling that and the only acceptable method I found is resolving the bug with a status you want, for example "remind" or "later". But the issue will be inaccurately marked as "resolved" which can be a very risky bug status for your project.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/resolve.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/resolve.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I guess more document reading have to done in order to master this open source tool. Frankly speaking I never think that I'd ever use CGI based system for work anymore, thing always hard to predict.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113800181724868125?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113800181724868125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113800181724868125' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113800181724868125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113800181724868125'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/setting-up-bugzilla.html' title='Setting up Bugzilla'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113790351522503588</id><published>2006-01-22T11:55:00.000+08:00</published><updated>2006-01-22T12:18:35.623+08:00</updated><title type='text'>I have problems to solve</title><content type='html'>I have two significant problems on hand which I'd like to solve it as soon as possible:&lt;br /&gt;1) We're using Visual SourceSafe - Frankly speaking it is nothing wrong using Visual SourceSafe for software configuration management. In fact the reason we're using this because we had some projects which were built on MS Visual Basic and C++. Therefore this shouldn't be a problem until we've decided to offer solution entirely on Java. Eventually we would like to put our projects to either &lt;a href="http://www.nongnu.org/cvs/"&gt;CVS &lt;/a&gt;or &lt;a href="http://subversion.tigris.org/"&gt;Subversion &lt;/a&gt;and we will see if there is a need to migrate existing codebase to the new system.&lt;br /&gt;2) We don't have a bug tracking system - Currently any change requests, enhancement requests, bugs, issues and even trivial information are being reported by the testers/customers and communicated to the respective developer by email or verbally. Obviously this is an urgent and highest priority problem to solve. The first option in my mind is &lt;a href="http://www.bugzilla.org/"&gt;Bugzilla &lt;/a&gt;(hopefully I can justify to management for paid software if Bugzilla isn't up to our expectation).&lt;br /&gt;&lt;br /&gt;Chinese new year is approaching, time to set some goals to improve yourself, your project or your company (don't doubt that you have enough power, try it out, your boss will understand your intention).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113790351522503588?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113790351522503588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113790351522503588' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113790351522503588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113790351522503588'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/i-have-problems-to-solve.html' title='I have problems to solve'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113766887106312922</id><published>2006-01-19T18:56:00.000+08:00</published><updated>2006-01-19T19:07:51.366+08:00</updated><title type='text'>Job Openings</title><content type='html'>&lt;a href="http://www.leadingside.com"&gt;We&lt;/a&gt; have a few openings for software engineer (Java), both junior (1 year+ experience) and senior (more than 3 years) position. Anyone interested kindly email me your cool CV at wnyong[at]leadingside[dot]com (you can choose to send to the email listed on &lt;a href="http://www.leadingside.com/careers.htm"&gt;http://www.leadingside.com/careers.htm&lt;/a&gt; if you don't want to go through my hand). No worry, no current and expected salary is required to specify in the cv.&lt;br /&gt;For your information, we have a nice working environment over here. Free coffee, tea, biscuits and much more.&lt;br /&gt;Let me know if you need further information such as business nature as I think it's not so good to expose too much in the weblog. If you think you're good, please don't wait, we need good talent to join us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113766887106312922?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113766887106312922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113766887106312922' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113766887106312922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113766887106312922'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/job-openings.html' title='Job Openings'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113766452274401988</id><published>2006-01-19T17:49:00.000+08:00</published><updated>2006-01-19T17:55:22.913+08:00</updated><title type='text'>Project GlassFish</title><content type='html'>Do you feel like contributing to something useful? Do consider &lt;a href="http://java.sun.com/developer/technicalArticles/glassfish/GFBasics.html"&gt;Project GlassFish&lt;/a&gt;. What's the benefits of doing this? We can literally take this opportunity to get some hands-on experience on Java EE 5 before it is officially released so that we could plan solution to customers steps further. Isn't this a good idea?&lt;br /&gt;Read &lt;a href="http://java.sun.com/developer/technicalArticles/glassfish/GFBasics.html"&gt;here&lt;/a&gt; to get some insights of the open source project and to know how to get involved and contribute.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113766452274401988?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113766452274401988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113766452274401988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113766452274401988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113766452274401988'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/project-glassfish.html' title='Project GlassFish'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113740077445351895</id><published>2006-01-16T16:23:00.000+08:00</published><updated>2006-01-16T16:39:39.576+08:00</updated><title type='text'>I've switched to OpenOffice</title><content type='html'>I was sick in the last whole week and did not have the motivation for writing and even reading. Fortunately I'm feeling much better now.&lt;br /&gt;We're doing something extremely risky in the company which I passionly hope that it ultimately turns out that everyone of us will find the decision was absolutely correctly made, which is entirely switching our office productivity suite to &lt;a href="http://openoffice.org"&gt;OpenOffice 2.0&lt;/a&gt;, and the reason is as obvious as you could imagine: Cost.&lt;br /&gt;I can foresee we'll be encountering numerous difficulties and inconveniences, but I believe we'll gain back the same level of work productivity very soon and this open source product won't hurt us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113740077445351895?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113740077445351895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113740077445351895' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113740077445351895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113740077445351895'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2006/01/ive-switched-to-openoffice.html' title='I&apos;ve switched to OpenOffice'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113596049140201855</id><published>2005-12-31T00:30:00.000+08:00</published><updated>2005-12-31T00:35:46.070+08:00</updated><title type='text'>Happy 2006</title><content type='html'>New year is coming, wish everyone Happy 2006!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/timesquare133.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/timesquare133.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;Berjaya Timesquare&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113596049140201855?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113596049140201855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113596049140201855' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113596049140201855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113596049140201855'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/12/happy-2006.html' title='Happy 2006'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113535273506294512</id><published>2005-12-23T23:36:00.000+08:00</published><updated>2005-12-24T13:51:49.310+08:00</updated><title type='text'>J2SE 5.0 in a nutshell</title><content type='html'>&lt;pre  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;/*&lt;br /&gt;* Person.java&lt;br /&gt;* Created on December 22, 2005, 9:00 PM&lt;br /&gt;*/&lt;br /&gt;import static java.lang.System.out; // 1) Static import&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* @author Steven Yong&lt;br /&gt;*/&lt;br /&gt;@Pojo ("person") // 2) Annotation (metadata)&lt;br /&gt;public class Person {&lt;br /&gt;&lt;br /&gt;Gender gender; // 3) Type-safe enumeration&lt;br /&gt;String firstName;&lt;br /&gt;String lastName;&lt;br /&gt;&lt;br /&gt;public Person(String firstName, String lastName, Gender gender) {&lt;br /&gt; this.firstName = firstName;&lt;br /&gt; this.lastName = lastName;&lt;br /&gt; this.gender = gender;&lt;br /&gt; assert(gender != Gender.NEUTRAL); // Assertion J2SE 1.4&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void join(Group&amp;lt;Person&amp;gt; g) {&lt;br /&gt; g.add(this);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt; Person p = new Person("Faye", "Wong", Gender.FEMALE);&lt;br /&gt; Group&amp;lt;Person&amp;gt; personGroup = new Group&amp;lt;Person&amp;gt;(); // 4) Generics&lt;br /&gt; p.join(personGroup);&lt;br /&gt; // 5) Varargs&lt;br /&gt; personGroup.printMemberInfo(p.firstName, p.lastName, p.gender.alias);&lt;br /&gt; // Ermmm... don't think I want to expose my last name&lt;br /&gt; personGroup.printMemberInfo(p.firstName, p.gender.alias);&lt;br /&gt;&lt;br /&gt; if (p.getClass().isAnnotationPresent(Pojo.class)) {&lt;br /&gt;     out.println("Reference p is a POJO");&lt;br /&gt; }&lt;br /&gt; Group&amp;lt;Integer&amp;gt; integerGroup = new Group&amp;lt;Integer&amp;gt;();&lt;br /&gt; integerGroup.add(18); // 6) Auto-boxing&lt;br /&gt; integerGroup.add(new Integer(8)); // Prior J2SE 5.0&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Enum Type&lt;br /&gt;enum Gender {&lt;br /&gt;MALE("M"), FEMALE("F"), NEUTRAL("N");&lt;br /&gt;&lt;br /&gt;String alias;&lt;br /&gt;&lt;br /&gt;Gender(String s) { alias = s; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Annotation Type&lt;br /&gt;@Retention (RetentionPolicy.RUNTIME)&lt;br /&gt;@Target (ElementType.TYPE)&lt;br /&gt;@interface Pojo {&lt;br /&gt;String value() default "undefined";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Generic Type&lt;br /&gt;class Group&amp;lt;E&amp;gt; {&lt;br /&gt;&lt;br /&gt;List&amp;lt;E&amp;gt; members = new ArrayList&amp;lt;E&amp;gt;();&lt;br /&gt;&lt;br /&gt;public Group() {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void add(E e) {&lt;br /&gt; members.add(e);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public E leave(int index) { return members.remove(index); }&lt;br /&gt;&lt;br /&gt;public List&amp;lt;E&amp;gt;getMembers() { return members; }&lt;br /&gt;&lt;br /&gt;public static void printMemberInfo(String... info) {&lt;br /&gt; for (String s : info) { // 7) Enhanced for loop&lt;br /&gt;     out.println(s);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113535273506294512?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113535273506294512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113535273506294512' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113535273506294512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113535273506294512'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/12/j2se-50-in-nutshell.html' title='J2SE 5.0 in a nutshell'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113482031944583350</id><published>2005-12-17T19:50:00.000+08:00</published><updated>2005-12-17T19:52:04.013+08:00</updated><title type='text'>Inspired by Jackie Chan?</title><content type='html'>&lt;a href="http://video.google.com/videoplay?docid=515642196227308929"&gt;Nice video&lt;/a&gt;, enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113482031944583350?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113482031944583350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113482031944583350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113482031944583350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113482031944583350'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/12/inspired-by-jackie-chan.html' title='Inspired by Jackie Chan?'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113474896430340183</id><published>2005-12-16T22:57:00.000+08:00</published><updated>2005-12-17T00:07:20.940+08:00</updated><title type='text'>Low Level Programming Language</title><content type='html'>It's been quite some time I didn't write anything because I'm working on a project and required to be stationed at a client place which doesn't allow &lt;a href="http://steven-software.blogspot.com/2005/12/internet-was-down.html"&gt;access &lt;/a&gt;to the Internet. And I'm mentally and physically feeling tired at home because I commute to work by &lt;a href="http://www.ktmb.com.my/"&gt;train &lt;/a&gt;these days.&lt;br /&gt;I've been working on software development using high level and modern programming language (Java for my case) for years. Due to the memory consumption of Java/.NET applications, I (and my coworkers) always complain about the relatively low-end hardware specification of my workstation. Similarly, due to the high pace evolution of Java and .NET, I believe none of the .NET/Java developers nowadays would be happy with Windows 95/98 installed on his/her machine. Anyway, in most cases we probably wouldn't be able to code with old hardware and sofware.&lt;br /&gt;At the client side, my team and the team from the other software vendor are sharing the same office. Coincidentally my former collegemate is there and he is using &lt;a href="http://en.wikipedia.org/wiki/RPG_%28programming_language%29"&gt;RPG &lt;/a&gt;(&lt;b&gt;R&lt;/b&gt;eport &lt;b&gt;P&lt;/b&gt;rogram &lt;b&gt;G&lt;/b&gt;enerator, one of the first program generators designed for business reports, introduced in 1964 by IBM) for working. Wonder how he works?&lt;br /&gt;Not much special actually, he's also using Windows, with a terminal software which can connect to AS400, log in and start coding. Left aside the terminal software GUI, what I could see is barely the black color background and green color text. If he's good in Windows shortcut keys, he can even throw his mouse away. After some briefing given by him, I got to know that the arrow keys are so important because it has to be very much dealing with vertical and horizontal coordinates.&lt;br /&gt;I can never imagine I could ever possible working with such language and coding behaviors.&lt;br /&gt;I have lots of &lt;a href="http://eclipse.org/"&gt;fancy &lt;/a&gt;&lt;a href="http://www.netbeans.org"&gt;IDE &lt;/a&gt;&lt;a href="http://www.sun.com/software/solaris"&gt;free &lt;/a&gt;choices, I can anytime play around with visual designer using the darn cool drag-n-drop feature, I can always debate with my friends which open source framework/tool to use, I explore and research the ways to develop with &lt;a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29"&gt;AJAX &lt;/a&gt;which make colorful Web application more user friendly and responsive, and so on and so forth.&lt;br /&gt;I do know that there are many programmers out there using Cobol, RPG  or etc. to develop application for mainframe and mini-computer, but I never had the chance to know exactly how they work. Glad to meet you again, my &lt;a href="http://www.tarc.edu.my/"&gt;TARC&lt;/a&gt;'s friend!&lt;br /&gt;As a Java developer, should I request more than what I currently have?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113474896430340183?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113474896430340183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113474896430340183' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113474896430340183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113474896430340183'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/12/low-level-programming-language.html' title='Low Level Programming Language'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113375397261373584</id><published>2005-12-05T11:38:00.000+08:00</published><updated>2005-12-05T11:39:32.816+08:00</updated><title type='text'>The "Internet" was down</title><content type='html'>Working forty-hours a week is considered ideal but nearly impossible in software industry (don't laugh if you're working in other industries and still think that this is true as I know only software industry). As I'm pretty sure that you've been asked this question during the job interview:&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Are you capable working under pressure and long hours?&lt;/span&gt;"&lt;br /&gt;But we've probably never been asked like this:&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Are you capable to be productive enough to work only 8 hours a day and get yor work done?&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;Agree? Don't tell me, I know the answer.&lt;br /&gt;&lt;br /&gt;Yes. Bosses don't expect you to work 8 hours a day, they expect you to work as longer as possible.&lt;br /&gt;&lt;br /&gt;This has been puzzled me for the past 5 years: why are the bosses so dumb? Or are they really dumb?&lt;br /&gt;&lt;br /&gt;Until this morning I fully realized that they're not dumb at all, in fact they're smart and they know their employees very well.&lt;br /&gt;We're encountering some network problems this morning around 10 something. Before that the office was so silent, everybody seemed to be concentrating on work so much. But something interesting happened after the network encountered problem, people started talking to each other and the environment started become noisy. I remained silent.&lt;br /&gt;In this era which network is the computer, you might think that it's normal because if the network is down, we'd not able to get the resources we need to accomplish our task. It's definitely true, but the thing is that the network wasn't down, someone might say now "I know, I know, the Internet was down!". The Internet will never down, the fact is the gateway which allows us to connnect to the Internet was down.&lt;br /&gt;So, what really happened was we can still access our databases, our file servers, our app servers and other network resources, but we can't access the Web, email (external) and IM.&lt;br /&gt;&lt;br /&gt;Are we still able to get our works done? Most likely I guess. It's absolutely valid to say that the Internet is the best resource to help you solve the problem on work, but the unavailability of the Internet access shouldn't be the obstacle for getting work done.&lt;br /&gt;&lt;br /&gt;I'm a software developer, but I had never (and I never will) spent 8 hours a day on the real works. I believe if I could, I'd never have to stay any longer after 6p.m.&lt;br /&gt;&lt;br /&gt;Beat me if you're struggling under pressure with tight project timeline and think that that's your boss' fault to make you work long hours.&lt;br /&gt;For those who're literally working on real work all day and are still required to work longer hours, it's time to  seek for new opportunities (OR evaluate yourself for the unproductivity).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;PS: One day I might also ask: "&lt;span style="font-style: italic;"&gt;Are you able to work long hours?&lt;/span&gt;"&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113375397261373584?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113375397261373584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113375397261373584' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113375397261373584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113375397261373584'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/12/internet-was-down.html' title='The &quot;Internet&quot; was down'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113351183472195731</id><published>2005-12-02T16:21:00.000+08:00</published><updated>2005-12-02T16:24:00.323+08:00</updated><title type='text'>An important note to Java Applet developers</title><content type='html'>Just read an &lt;a href="http://kokwai.blogspot.com/2005/12/ocbc-ecafe.html"&gt;interesting post&lt;/a&gt; of my friend's blog which I think every Java Applet developer should read. Enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113351183472195731?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113351183472195731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113351183472195731' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113351183472195731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113351183472195731'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/12/important-note-to-java-applet.html' title='An important note to Java Applet developers'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113333390407688655</id><published>2005-11-30T14:58:00.000+08:00</published><updated>2005-12-01T13:28:51.106+08:00</updated><title type='text'>Why use PortableRemoteObject.narrow()?</title><content type='html'>I believe almost every J2EE developer is familiar with code below:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Context initCtx = new InitialContext();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Object result = initCtx.lookup("java:comp/env/ejb/cart");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CartHome cartHome = (CartHome) javax.rmi.PortableRemoteObject.narrow(result, CartHome.class);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Looks pretty much a boilerplate code? Why simple cast operator can’t serve the purpose? What &lt;span style="font-family:courier new;"&gt;narrow() &lt;/span&gt;does?&lt;br /&gt;&lt;br /&gt;Yes it is definitely boilerplate code and that’s the reason why we’re encapsulating it with Delegate design pattern and why we’ll be having Common Annotation in the upcoming release of Java EE to simplify the EJB resource lookup.&lt;br /&gt;&lt;br /&gt;Type narrowing allows our client program to be interoperable with all compliant EJB container implementations. Those programs using the simple object casting for subtyping the remote and remote home interfaces are likely to fail if the container implementation uses RMI-IIOP as the underlying communication transport.&lt;br /&gt;&lt;br /&gt;Here are the cases that &lt;span style="font-family:courier new;"&gt;narrow()&lt;/span&gt; is not needed:&lt;br /&gt;&lt;br /&gt;- If your EJB is local&lt;br /&gt;- If EJBContext lookup method is used to look up the remote home interface&lt;br /&gt;- When dependency injection is used instead of JNDI lookup&lt;br /&gt;- If you’re happy sticking with the container implementation which is not using RMI-IIOP&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;PS: The RMI-IIOP subsystem is composed of APIs that allow for the use of RMI-style programming that is independent of the underlying protocol, as well as an implementation of those APIs that supports both the J2SE native RMI protocol (JRMP) and the CORBA IIOP protocol. More details in the &lt;a href="http://jcp.org/aboutJava/communityprocess/pfd/jsr244/index.html"&gt;latest version of Java EE Spec&lt;/a&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/7707845-113333390407688655?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113333390407688655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113333390407688655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113333390407688655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113333390407688655'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/11/why-use-portableremoteobjectnarrow.html' title='Why use PortableRemoteObject.narrow()?'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113289111556131711</id><published>2005-11-25T11:58:00.000+08:00</published><updated>2005-11-25T11:58:35.610+08:00</updated><title type='text'>Why we shouldn't create thread in web component</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;When I was working on a J2EE project at &lt;a href="http://www.novamsc.com/"&gt;NovaMSC&lt;/a&gt;, I decided to solve a problem of asynchronous invocation of time-consuming report generation by spawning new &lt;a href="http://java.sun.com/docs/books/tutorial/essential/threads/"&gt;thread&lt;/a&gt; in the web component, &lt;a href="http://java.sun.com/products/servlet"&gt;servlet&lt;/a&gt;. Initially, the problem was supposed to be solved by using &lt;a href="http://java.sun.com/products/jms/"&gt;JMS&lt;/a&gt;, but due to the time constraint, I insisted on the simpler solution. After implementing the solution, I received a lot of negative feedbacks and comments about it but I didn&amp;#8217;t even bother to reconsider for change because: 1) no time, seriously and 2) I didn&amp;#8217;t get any fact saying that that was totally a bad idea of spawning normal java thread in web component (especially the thread is designed to call the business component, &lt;a href="http://java.sun.com/products/ejb/"&gt;EJB&lt;/a&gt; component).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;Until recently I read the J2EE spec and realized that I was really wrong, here is the excerpt in the &lt;a href="http://jcp.org/aboutJava/communityprocess/pfd/jsr244/index.html"&gt;spec&lt;/a&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;&amp;#8220;&lt;/span&gt;&lt;/font&gt;&lt;font size=2 face=Tahoma&gt;&lt;span style='font-size:11.0pt;font-family:Tahoma'&gt;If a web component creates a thread, the Java EE platform must ensure that the&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=Tahoma&gt;&lt;span style='font-size:11.0pt;font-family:Tahoma'&gt;newly created thread is not associated with any JTA transaction.&lt;/span&gt;&lt;/font&gt;&lt;font size=2 face=Tahoma&gt;&lt;span style='font-size:10.0pt;font-family:Tahoma'&gt;&amp;#8221;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=Tahoma&gt;&lt;span style='font-size:10.0pt;font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=Tahoma&gt;&lt;span style='font-size:10.0pt;font-family:Tahoma'&gt;This statement means that if anything goes wrong in the middle of the transaction, nothing will get rollback (it might not mean exactly the same, further findings will be posted).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=Tahoma&gt;&lt;span style='font-size:10.0pt;font-family:Tahoma'&gt;Hopefully everything is going fine currently.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113289111556131711?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113289111556131711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113289111556131711' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113289111556131711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113289111556131711'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/11/why-we-shouldnt-create-thread-in-web.html' title='Why we shouldn&apos;t create thread in web component'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113263746265735478</id><published>2005-11-22T13:31:00.000+08:00</published><updated>2005-11-22T13:31:02.713+08:00</updated><title type='text'>final doesn't really mean "final"</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;In Java, a &lt;b&gt;&lt;span style='font-weight:bold'&gt;final&lt;/span&gt;&lt;/b&gt; field is generally considered a constant which can&amp;#8217;t be modified once it is initialized. It&amp;#8217;s partly true as most of the programmers know that reflection can break this rule. For example i have a class &lt;b&gt;&lt;span style='font-weight:bold'&gt;Person&lt;/span&gt;&lt;/b&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;class Person {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;private final String name;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;Person(String name) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.name = name;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;public String toString() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&amp;#8220;name: &amp;#8221; + name);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;And the code to test the &amp;#8220;final&amp;#8221; modification:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;public static void main(String[] args) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Person jacky = new Person(&amp;quot;Jacky&amp;quot;); // initialize the name with constructor&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Field nameField = Person.class.getDeclaredField(&amp;quot;name&amp;quot;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nameField.setAccessible(true);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nameField.set(jacky, &amp;quot;Andy&amp;quot;); // try to modify the value here&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(jacky);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;The output is: &lt;b&gt;&lt;span style='font-weight:bold'&gt;name: Andy&lt;/span&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;Now what I&amp;#8217;m able to modify the value of the final field, name. But if I initialize a value to the name during declaration:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;class Person {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;private final String name = &amp;#8220;Jacky&amp;#8221;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;public String toString() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&amp;#8220;name: &amp;#8221; + name);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='text-indent:9.0pt'&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt;font-family:Tahoma'&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;With this test:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;public static void main(String[] args) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Person jacky = new Person(); // default constructor&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Field nameField = Person.class.getDeclaredField(&amp;quot;name&amp;quot;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nameField.setAccessible(true);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nameField.set(jacky, &amp;quot;Andy&amp;quot;); // try to change the value here&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(jacky);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;The output is: &lt;b&gt;&lt;span style='font-weight:bold'&gt;name: Jacky&lt;/span&gt;&lt;/b&gt; (the name field wasn&amp;#8217;t changed)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;Just want to share some funny points of Java with you.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;PS: above code behaves differently with JDK 1.2, JDK 1.3, JDK 1.4 and JDK 5.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Tahoma&gt;&lt;span style='font-size:9.0pt; font-family:Tahoma'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113263746265735478?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113263746265735478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113263746265735478' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113263746265735478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113263746265735478'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/11/final-doesnt-really-mean-final.html' title='final doesn&apos;t really mean &quot;final&quot;'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113245376658504786</id><published>2005-11-20T09:52:00.000+08:00</published><updated>2005-11-20T10:29:26.653+08:00</updated><title type='text'>Key Products Launch</title><content type='html'>I attended the ever first Microsoft event in my life last Tuesday and got the chance to meet Microsoft's CEO Steve Ballmer in real person (of course he's on the stage). I'm quite embarrassed to say that yet I'm looking forward to meet the CEO of the company I'm currently working at. Steve's keynote was simply just... fantastic. That was the event for launching three key products: MS Visual Studio 2005 (.NET 2.0), MS SQL Server 2005 and MS Biztalk Server 2006. The statement which I found most interesting was that he said there're nearly 70 similar launch events in all over the world and he's got the chance to give keynote to only two of them, one was in San Francisco, US and another one in... (you should know by now). Do you see how a good presenter attracts the audiences?&lt;br /&gt;In fact, MS Visual Studio 2005 is quite a buggy product and has ways to improve (according to &lt;a href="http://minimsft.blogspot.com/2005/11/hey-shareholders-vs-2005-is-fantastic.html"&gt;trustable source&lt;/a&gt;), it's either true for today's mainstream Java IDEs but fortunately we (Java developers) don't have to pay for it. I think those VS's developers who don't realize the fact would find this new release cool and amazing. The demo was literally cool, it showed us that a complicated task can be completed in a few steps although I'm sure that more works have to be done in order to make the final result a full-fledged solution. Anyway I was somewhat dissappointed by the technical presenter in the afternoon session. He's a Malaysian, and was responsible for the hands-on session, somehow he's not able to resolve a single issue in VS 2005 and failed to produce the assembly which was required by the subsequent steps like deploying to SQL Server Report Builder and to Biztalk Server. Therefore the session ended-up without demonstrating the remarkable features of SQL Server and Biztalk Server, anyway we've seen how powerful MS VS 2005 is.&lt;br /&gt;&lt;br /&gt;PS: &lt;a href="http://www.netbeans.org/community/releases/50/"&gt;Netbeans IDE beta 2&lt;/a&gt; has been released, it runs on Tiger as well as Mustang.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113245376658504786?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113245376658504786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113245376658504786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113245376658504786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113245376658504786'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/11/key-products-launch.html' title='Key Products Launch'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113195645941316875</id><published>2005-11-14T16:20:00.000+08:00</published><updated>2005-11-14T16:20:59.640+08:00</updated><title type='text'>C# and Java</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Georgia&gt;&lt;span style='font-size:9.0pt; font-family:Georgia'&gt;I&amp;#8217;ve been thinking that if you&amp;#8217;re familiar with Java, it won&amp;#8217;t be difficult for you to write code in C# (or vice-versa). But now I realized that isn&amp;#8217;t not going to be straight- forward:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;class A {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void eat() {}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;public class B extends A {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void test() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A a = new B();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B b = new B();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.eat();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.eat();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Georgia&gt;&lt;span style='font-size:9.0pt; font-family:Georgia'&gt;It&amp;#8217;s absolutely legal in Java, but it doesn&amp;#8217;t compile in C#:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;class A {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp; protected void Eat() { }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;class B : A {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp; public static void Test() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; A a = new B();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; B b = new B();&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.Eat(); &lt;/span&gt;&lt;/font&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt;font-family:Arial'&gt;// Compile-time error: Cannot access protected member 'A.Eat()' via a qualifier of type 'A'; the qualifier must be of type 'B' (or derived from it)&lt;/span&gt;&lt;/font&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt;font-family:"Courier New"'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.Eat(); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Courier New"&gt;&lt;span style='font-size:9.0pt; font-family:"Courier New"'&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113195645941316875?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113195645941316875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113195645941316875' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113195645941316875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113195645941316875'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/11/c-and-java.html' title='C# and Java'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113159153750146470</id><published>2005-11-10T10:58:00.000+08:00</published><updated>2005-11-10T10:58:57.546+08:00</updated><title type='text'>Suse Linux founder Hubert Mantel announced his resignation from N
	ovell</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Georgia&gt;&lt;span style='font-size:9.0pt; font-family:Georgia'&gt;Novell acquired Suse in January 2004, according to &lt;a href="http://www.crn.com/showArticle.jhtml;jsessionid=2RNXT23RGDUPAQSNDBCSKH0CJUMEKJVN?articleID=173600703"&gt;Hubert&lt;/a&gt;, he thinks that this is no longer the company he founded 13 years ago. And what makes me to blog this news out is the statement from a Novell spokeswoman:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Georgia&gt;&lt;span style='font-size:9.0pt; font-family:Georgia'&gt;&amp;#8220;&lt;/span&gt;&lt;/font&gt;&lt;font size=2 face=Georgia&gt;&lt;span style='font-size:10.0pt;font-family:Georgia'&gt;However, this departure does not impact Novell's Linux strategy or our ability to execute on that strategy&amp;#8221;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Georgia&gt;&lt;span style='font-size:10.0pt; font-family:Georgia'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Georgia&gt;&lt;span style='font-size:10.0pt; font-family:Georgia'&gt;What&amp;#8217;s the interesting point about this statement as we can see this kind of statement almost every time when any executives are leaving their company?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Georgia&gt;&lt;span style='font-size:10.0pt; font-family:Georgia'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Georgia&gt;&lt;span style='font-size:10.0pt; font-family:Georgia'&gt;Employee&amp;#8217;s departure doesn&amp;#8217;t impact the company.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Georgia&gt;&lt;span style='font-size:10.0pt; font-family:Georgia'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Georgia&gt;&lt;span style='font-size:10.0pt; font-family:Georgia'&gt;As an employee I&amp;#8217;m sad to hear this but I&amp;#8217;m happy because I know this isn&amp;#8217;t true and I know that the impact of any employee&amp;#8217;s departure is always much larger than anyone can imagine although it&amp;#8217;s usually not obvious.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Georgia&gt;&lt;span style='font-size:10.0pt; font-family:Georgia'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=2 face=Georgia&gt;&lt;span style='font-size:10.0pt; font-family:Georgia'&gt;The more unobvious of a problem, the harder to solve it.&lt;/span&gt;&lt;/font&gt;&lt;font size=1 face=Georgia&gt;&lt;span style='font-size:9.0pt;font-family:Georgia'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113159153750146470?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113159153750146470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113159153750146470' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113159153750146470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113159153750146470'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/11/suse-linux-founder-hubert-mantel.html' title='Suse Linux founder Hubert Mantel announced his resignation from N&#xA;&#x9;ovell'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113135535185193701</id><published>2005-11-07T17:22:00.000+08:00</published><updated>2005-11-07T17:22:32.090+08:00</updated><title type='text'>JSR 227: A Standard Data Binding &amp; Data Access Facility for J2EE</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Georgia&gt;&lt;span style='font-size:9.0pt; font-family:Georgia'&gt;The basic concept of the JSR is defining &lt;/span&gt;&lt;/font&gt;&lt;font size=1 face=Georgia&gt;&lt;span style='font-size:9.0pt;font-family:Georgia'&gt;a standard way for tools to implement the interactions between user interfaces and services, doing this in a way that will work for any user interface and any service technology (according to the &lt;a href="http://www.jcp.org/en/jsr/detail?id=227"&gt;JSR&lt;/a&gt; spec lead, &lt;span class=topstoryhead&gt;Mike De Groot, Oracle&lt;/span&gt;). In other words, the application developers or the developers of user interface would no longer have to worry about how to tie back to the data sources because the spec will be implemented by the data service providers. It&amp;#8217;d be great that after mastering the APIs of this JSR, we need not care whether we&amp;#8217;re accessing data (model) from JavaBeans, EJB, JDO or POJO in order to populate our view.&lt;/span&gt;&lt;/font&gt;&lt;font size=1 face=Georgia&gt;&lt;span style='font-size:9.0pt;font-family:Georgia'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113135535185193701?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113135535185193701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113135535185193701' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113135535185193701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113135535185193701'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/11/jsr-227-standard-data-binding-data.html' title='JSR 227: A Standard Data Binding &amp; Data Access Facility for J2EE'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-113048470370361751</id><published>2005-10-28T15:31:00.000+08:00</published><updated>2005-10-28T15:31:44.726+08:00</updated><title type='text'>Java Web Start can be another good choice for enterprise-level ap
	plication</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Georgia&gt;&lt;span style='font-size:9.0pt; font-family:Georgia'&gt;I didn&amp;#8217;t know that Java Web Start technology has already been deployed (to be more precise, can de deployed) to serve the mission critical enterprise application until I read Hans Muller (CTO of Sun&amp;#8217;s Desktop Division) &lt;a href="http://weblogs.java.net/blog/hansmuller/archive/2005/06/javaone_desktop.html"&gt;weblog&lt;/a&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face="Times New Roman"&gt;&lt;span style='font-size: 9.0pt'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt;&amp;#8220;FIDUCIA is the largest IT-Fullservice provider for the German cooperative Banks. They provide comprehensive software solutions to 920 banks. The service includes both desktop and server side applications and they run data centers for the latter. Managing about 38 million accounts (2.3 billion transactions/year!) requires lots of big iron. They've got nearly 1000 server machines and 138 terabytes of (SAN) storage. The desktop software is deployed on 106,500 PC desktops. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=2 face=Arial&gt;&lt;span style='font-size:10.0pt;font-family:Arial'&gt;And it's all Java. Desktop and server. All Java.&amp;#8221;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=2 face=Georgia&gt;&lt;span style='font-size:10.0pt;font-family:Georgia'&gt;I&amp;#8217;m glad to say that other than browser-based web application and traditional client-server application, we now have another good choice.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-113048470370361751?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/113048470370361751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=113048470370361751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113048470370361751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/113048470370361751'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/10/java-web-start-can-be-another-good.html' title='Java Web Start can be another good choice for enterprise-level ap&#xA;&#x9;plication'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112980002092659040</id><published>2005-10-20T17:20:00.000+08:00</published><updated>2005-10-20T17:20:20.970+08:00</updated><title type='text'>Meet the Bosses</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;Something is annoying me for these few days ever since I know that there&amp;#8217;ll be a few big bosses visiting our offices in &lt;st1:country-region w:st="on"&gt;&lt;st1:place w:st="on"&gt;Malaysia&lt;/st1:place&gt;&lt;/st1:country-region&gt;. So sad to say that the day falls on a holiday in &lt;st1:country-region w:st="on"&gt;&lt;st1:place  w:st="on"&gt;Malaysia&lt;/st1:place&gt;&lt;/st1:country-region&gt; and all employees are encouraged to come and meet our bosses although it isn&amp;#8217;t compulsory to do so. It should be a good thing get to meet my bosses who coming from US, but the thing is it&amp;#8217;s going to be on holiday and the bosses know this fact.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;Apparently, in order to know more about the situation over here, meeting the employees would definitely be a good choice. What motivated me to have negative feeling is the action taken by the management staffs here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;First, we all were getting a meeting request which we can vote &amp;#8220;Yes&amp;#8221; or &amp;#8220;No&amp;#8221;. After a few days all employees were given some kind of short briefing and we&amp;#8217;re told how important the visit is. Obviously the briefing was held mainly because the responses from the employees are not up to expectation. Fair enough, telling the importance of the visit isn&amp;#8217;t a bad thing, but surprisingly the next day there&amp;#8217;re a person-in-charge who running up and down the floors asking the employees to sign on a sheet with the confirmation of attendance (we occupies three floors in the building). Imagine each employee took half a minute to figure out the consequences of not coming and sign on the paper:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;We&amp;#8217;ve wasted: 350 (approximate number of employee) x 0.5 minute = 175 Man-Minute&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;Correct? &amp;nbsp;&amp;nbsp;&amp;nbsp;Unfortunately not.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;While anyone was talking to the person-in-charge, there&amp;#8217;s at least another 3 people who is sitting near him/her doing nothing but looking at the &amp;#8220;progress&amp;#8221;. So, let&amp;#8217;s refine the calculation:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;We&amp;#8217;ve wasted 350 x 4 (the target and the other 3 looking) x 0.5 minute = 700 Man-Minute&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;700 Man-Minute (we&amp;#8217;ve ignored the time of the person-in-charge, that&amp;#8217;s fine as it doesn&amp;#8217;t affect my point!) was simply a big waste of time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;That&amp;#8217;s not the end of the story. We&amp;#8217;re asked to submit some major accomplishment/achievement/enhancement in the projects we&amp;#8217;ve been working on in spreadsheet format to the person who is going to present to the big bosses. What&amp;#8217;s missing here? Why are we not being asked to submit some problem/difficulty/concern/limitation that we&amp;#8217;re having? Excuse me, are you saying that the purpose of the presentation is to impress the bosses?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;On that day, there might be some employees would like to throw some questions to the bosses. In certain point of views, it&amp;#8217;s a risk, and even can be a big one. There might be some sensitive questions which may make the bosses feel uncomfortable and eventually have a bad feeling on us. Even though there&amp;#8217;re good questions, not all employees are having good command of spoken English. As a manager, for sure he/she will see the risk and the solution was all the questions from the employees must be first submitted to him/her for reviewing (filtering should say better).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;That&amp;#8217;s all. We&amp;#8217;ve wasted significant amount of man-hours, our problems are not going to be expressed to the bosses and we aren&amp;#8217;t supposed to ask the question which we literally intend to ask. Do you see any point that I should vote &amp;#8220;Yes&amp;#8221; and meet the bosses?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;Footnote:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;If I happened to be a boss, I wouldn&amp;#8217;t expect the employees come to office on holiday just to see me. Instead what I would be expecting is, don&amp;#8217;t waste any unnecessary time on working days, and go ahead to enjoy your holiday because I need you to serve better on the next working day.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;font size=1 face=Arial&gt;&lt;span style='font-size:9.0pt; font-family:Arial'&gt;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112980002092659040?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112980002092659040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112980002092659040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112980002092659040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112980002092659040'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/10/meet-bosses.html' title='Meet the Bosses'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112954108231658465</id><published>2005-10-17T17:24:00.000+08:00</published><updated>2005-10-17T17:26:54.230+08:00</updated><title type='text'>Marketing Flaw: Wait Till You're Older Movie Poster</title><content type='html'>&lt;div class="Section1"&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Georgia;font-size:78%;"&gt;&lt;span style=";font-family:Georgia;font-size:9;"  &gt;I watched this movie yesterday with my college friends. It’s an average movie with a not&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Georgia;font-size:78%;"&gt;&lt;span style=";font-family:Georgia;font-size:9;"  &gt; very creative story line: a twelve-year-old kid taints his blood with the potion that can speed up the life process and eventually he gets old in just a few days,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Georgia;font-size:78%;"&gt;&lt;span style=";font-family:Georgia;font-size:9;"  &gt; as you might already guess, he came across to realize a lot of things over the growing period. An interesting point I find is the older the Andy Lau (&lt;st1:place st="on"&gt;Hong Kong&lt;/st1:place&gt; famous superst&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Georgia;font-size:78%;"&gt;&lt;span style=";font-family:Georgia;font-size:9;"  &gt;ar) is in the movie, the better the performance he’s got. But that’s not what I want to say. In &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Hollywood&lt;/st1:place&gt;&lt;/st1:city&gt;, everything relevant to the movie (especially the big box office) suc&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Georgia;font-size:78%;"&gt;&lt;span style=";font-family:Georgia;font-size:9;"  &gt;h as the Movie itself, TV advertisement, Poster, Printed advertisement, Surrounding products and etc. are highly consistent and tight&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Georgia;font-size:78%;"&gt;&lt;span style=";font-family:Georgia;font-size:9;"  &gt;ly coupled. In which I mean if you see purple skin on the dinosaur in the poster, you’ll see purple skin’s dinosaur in the movie too.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Georgia;font-size:78%;"&gt;&lt;span style=";font-family:Georgia;font-size:9;"  &gt;The hai&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Georgia;font-size:78%;"&gt;&lt;span style=";font-family:Georgia;font-size:9;"  &gt;rstyle of Andy Lau catches my attention. Before watching the movie, I’d expect he’ll be having the exactly the same hairstyle in the movie. But what I’ve realized after the movie is Andy Lau d&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Georgia;font-size:78%;"&gt;&lt;span style=";font-family:Georgia;font-size:9;"  &gt;oesn’t appear with such hairstyle in any single shot in the movie.&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/poster.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/200/poster.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Georgia;font-size:78%;"&gt;&lt;span style=";font-family:Georgia;font-size:9;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Georgia;font-size:78%;"&gt;&lt;span style=";font-family:Georgia;font-size:9;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Georgia;font-size:78%;"&gt;&lt;span style=";font-family:Georgia;font-size:9;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Georgia;font-size:78%;"&gt;&lt;span style=";font-family:Georgia;font-size:9;"  &gt;&lt;br /&gt;For those who intends to watch this movie, I’d suggest you have it on Wednesday (in &lt;st1:place st="on"&gt;&lt;st1:country-region st="on"&gt;Malaysia&lt;/st1:country-region&gt;&lt;/st1:place&gt;, cinema ticket on Wednesday is much cheaper). If I must spend the 11 Ringgit, I’d rather go for Purple Dinosaur.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112954108231658465?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112954108231658465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112954108231658465' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112954108231658465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112954108231658465'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/10/marketing-flaw-wait-till-youre-older.html' title='Marketing Flaw: Wait Till You&apos;re Older Movie Poster'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112867284685471482</id><published>2005-10-07T16:12:00.000+08:00</published><updated>2005-10-07T16:14:06.860+08:00</updated><title type='text'>Java Developers Complain about Java</title><content type='html'>Is Java easy for average developers? &lt;a href="http://www.javalobby.org/java/forums/t49722.html"&gt;Read what're they complaining about...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112867284685471482?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112867284685471482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112867284685471482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112867284685471482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112867284685471482'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/10/java-developers-complain-about-java.html' title='Java Developers Complain about Java'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112832119345990221</id><published>2005-10-03T14:33:00.000+08:00</published><updated>2005-10-03T14:34:49.206+08:00</updated><title type='text'>Usability Flaw - JProbe Suite 6.0</title><content type='html'>&lt;p class="mobile-post"&gt;Wanted to try out &lt;a href="http://www.quest.com/jprobe"&gt;JProbe&lt;/a&gt; Memory&lt;br /&gt;Debugger and Performance Profiler for some working&lt;br /&gt;purposes last week. In fact I'm impressed with the&lt;br /&gt;features after read through the documentation, but&lt;br /&gt;there's only 10 days for a evaluation license. It took&lt;br /&gt;me nearly a week to get all the configurations done&lt;br /&gt;properly and eventually only 3 working days left for&lt;br /&gt;using the software. After experiencing the frustrated&lt;br /&gt;process, I don't even bother to look for some other&lt;br /&gt;types of license which might have longer evaluation&lt;br /&gt;period. To evaluate a software thoroughly, I think at&lt;br /&gt;least 30 days or the better 90 days would be just nice.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112832119345990221?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112832119345990221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112832119345990221' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112832119345990221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112832119345990221'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/10/usability-flaw-jprobe-suite-60.html' title='Usability Flaw - JProbe Suite 6.0'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112827419524699018</id><published>2005-10-03T01:16:00.000+08:00</published><updated>2005-10-03T01:36:44.443+08:00</updated><title type='text'>Sleepless in Bangalore</title><content type='html'>Of course I got nowhere closer to the romantic story in &lt;a href="http://www.imdb.com/title/tt0108160/plotsummary"&gt;Sleepless in Seattle&lt;/a&gt;, I've not even been talking to any girls (girl, not women) here. But I indeed came across many sleepless nights here. When one is alone, he/she tends to think of lots of stuffs which he/she's never think of, especially when he/she has the feel of lonely. Those stuffs are variousness: job, family, relationship, future, past, current, human being, trend and so on and so forth. Although I'm getting tired of these thoughts, I think the sleepless time's worth spending.&lt;br /&gt;The night view of &lt;a href="http://steven-software.blogspot.com/2005/09/international-tech-park-bangalore.html"&gt;ITPL&lt;/a&gt; is always so charming and attractive, sometimes it's giving me the feel of New York's &lt;a href="http://en.wikipedia.org/wiki/Manhattan"&gt;Manhattan&lt;/a&gt;. The sky here turns dark at 6:30pm or so, and the weather here is fantastic. I was just like standing at the top of &lt;a href="http://en.wikipedia.org/wiki/Genting_Highlands"&gt;Genting Highlands&lt;/a&gt; if it's raining day. As a matter of fact, when it came to night or evening moment, it's also the moment I had the urge to make call to my company's driver or I wouldn't be able to get any transport to hotel. Therefore I rarely had the chance to quitely and comfortably spend time enjoying the view over here.&lt;br /&gt;Very likely this is the final post talking about my life in Bangalore here as I know that I'd not have much thing to write after I back in Malaysia, my home country. Last but not least, the environment here is peaceful, the weather here is fascinating, the people here is friendly and the food here is kind of delicious... however, I miss my home country.&lt;br /&gt;Some of my friends complained that how come there's no even one picture is with myself inside, what I answered them was so long as they don't mind compromising the quality, I definitely will take and upload some, and here you go.&lt;br /&gt;&lt;br /&gt;I'm blogging. (Hey, I know what you're thinking, it's already after 6pm!)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/blogging2591.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/200/blogging2591.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ITPL night view.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/itplnight2771.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/itplnight2771.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/itplnight.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/itplnight.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sleepless in Bangalore&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/sleepless.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/200/sleepless.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Footnote: Ever since I bought a Sony digi cam and started posting pictures to my blog, some of my friends even complained that some posts have no picture at all. Please allow me to state very clear that Steven Yong's Weblog isn't a photo album whatsoever.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112827419524699018?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112827419524699018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112827419524699018' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112827419524699018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112827419524699018'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/10/sleepless-in-bangalore.html' title='Sleepless in Bangalore'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112826229175570277</id><published>2005-10-02T21:49:00.002+08:00</published><updated>2005-10-02T23:25:36.266+08:00</updated><title type='text'>.NET vs. Java</title><content type='html'>&lt;div class="base-layer"&gt;&lt;br /&gt;     &lt;H4 CLASS="table-caption"&gt;Just want to share some insights of the differences and similarities between .NET Framework and Java.&lt;/H4&gt;&lt;br /&gt;      &lt;div class="table-row"&gt;&lt;br /&gt;        &lt;div class="left-container2"&gt;&lt;br /&gt;          &lt;p class="text"&gt;.NET Framework (2.0 Beta as of today)&lt;/P&gt;&lt;br /&gt;        &lt;/div&gt;&lt;br /&gt;        &lt;div class="right-container2"&gt;&lt;br /&gt;          &lt;p class="text"&gt;Java (J2SE 5 as of today)&lt;/P&gt;&lt;br /&gt;        &lt;/div&gt;&lt;br /&gt;        &lt;br /&gt;      &lt;/div&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;namespace&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;package&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;All objects inherit from System.Object&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;All objects inherit from java.lang.Object&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Common Language Runtime or .NET Framework Runtime&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Java Runtime Environment or Java Virtual Machine&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;COM+&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;EJB&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;COM+ Queuing&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Message Driven Bean&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Garbage Collection&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Garbage Collection&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;.NET Framework Class Library&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Java Core Library and J2EE Library&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;ADO.NET&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;java.sql and javax.sql&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Windows Forms&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Swing and AWT&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;ASP.NET&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;JSP and Servlet&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Intermediate Language Disassembler&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Bytecode Decomplier&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Assembly&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;JAR file&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;.NET Remoting&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Java RMI&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Value type&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Primitive type&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Reference Type&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Object Type&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;      &lt;DIV CLASS="table-row"&gt;&lt;br /&gt;        &lt;DIV CLASS="left-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Basic architecture&lt;br/&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/dotnet.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;border:solid" src="http://photos1.blogger.com/blogger/6738/487/200/dotnet.gif" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="right-container2"&gt;&lt;br /&gt;          &lt;P CLASS="text"&gt;Basic architecture&lt;br/&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/java.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;border:solid" src="http://photos1.blogger.com/blogger/6738/487/200/java.gif" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/P&gt;&lt;br /&gt;        &lt;/DIV&gt;&lt;br /&gt;        &lt;DIV CLASS="space-line"&gt;&lt;/DIV&gt;&lt;br /&gt;      &lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;&lt;H4 CLASS="table-caption"&gt;Any comment or correction is highly appreciated.&lt;/H4&gt;&lt;br /&gt;    &lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112826229175570277?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112826229175570277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112826229175570277' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112826229175570277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112826229175570277'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/10/net-vs-java.html' title='.NET vs. Java'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112773491437248757</id><published>2005-09-26T19:38:00.000+08:00</published><updated>2005-09-26T19:41:54.380+08:00</updated><title type='text'>Does Partial Class Allow Easy Code Maintenance?</title><content type='html'>Came to know that there is an interesting languege enhancement in .NET 2.0 for both VB and C#: Partial Class. The definition of it is that your class definition can be split into multiple physical files. But to the compiler, it simply groups all the various partial classes into single entity.&lt;br /&gt;The syntax is something like below:&lt;br /&gt;&lt;br /&gt;In VB: (One of the classes need not have the "Partial" keyword)&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;' Class1.vb&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Partial Public Class Class1 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;End Class&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;' Class1_1.vb&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Partial Public Class Class1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;End Class&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In C#: ("partial" keyword must appear in all class definitions)&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;// Class1.cs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;public partial class Class1 {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;According to &lt;a href="http://msdn.microsoft.com"&gt;MSDN&lt;/a&gt;, there're many benefits using Partial Class such as it allows programmers on your team to work on different parts of a class without needing to share the same physical file and separates your application business logic from the designer-generated code.&lt;br /&gt;&lt;br /&gt;In Java, we can't see something similar to it, every single class definition must reside in one physical source file. But people do practise business logic separation by using design patterns like Strategy pattern. If we want to separate UI code from business logic, normally what we do is creating two classes for handling them, for example, HelloFrame class and Hello class.&lt;br /&gt;I wonder if we can fully utilize Partial Class without having problem on the issues like code readability, member variables conflicts, code duplication and so forth. I'm not sure about those as I'm still figuring it out, but it's literally a "new" concept to me. As a class implementor, that should be better if we can have the full snapshot of the entire class.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112773491437248757?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112773491437248757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112773491437248757' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112773491437248757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112773491437248757'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/09/does-partial-class-allow-easy-code.html' title='Does Partial Class Allow Easy Code Maintenance?'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112736149637966817</id><published>2005-09-22T11:44:00.000+08:00</published><updated>2005-09-22T11:58:16.386+08:00</updated><title type='text'>International Tech Park, Bangalore</title><content type='html'>It's time to post something about my working place, ITPL.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/itpl254.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/200/itpl254.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;There are 3 main blocks: Innovator, Creator and Discoverer.&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/itpl248.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/200/itpl248.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/itpl249.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/200/itpl249.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;(Above are taken from 6th floor of Innovator block)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The offices.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/office246.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/200/office246.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112736149637966817?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112736149637966817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112736149637966817' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112736149637966817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112736149637966817'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/09/international-tech-park-bangalore.html' title='International Tech Park, Bangalore'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112736062808822885</id><published>2005-09-22T11:29:00.000+08:00</published><updated>2005-09-22T11:43:48.116+08:00</updated><title type='text'>Govin The Driver</title><content type='html'>He is more than a cab driver, he is a responsible husband, he is a good father, he is a nice guy, and more importantly, he is my friend.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/govin245.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/govin245.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Govin, who picks me up every morning, he always late for that and surprisingly I don't really mind. he is 2 years younger than me and married with an adorable daughter. During this period in India, he is the one I most often talk to. Yes I do have some men working on the same project with me and sitting physically close to me in the offices, but forgive me if I just couldn't call them "friends" yet.&lt;br /&gt;Although he isn't good in English, he seems to understand me and always support me by giving warm smiles. He's asked me to visit his house for several times and I'm planning to do so in next weekend. For that picture, my initial intention was taking his look while he's driving but he insisted want to have a full face being captured. Okay, the final product looks good.&lt;br /&gt;I suppose he'll never access Internet and even read "Weblog" in his entire life since he doesn't need to do so for a living. But I formally want to take this opportunity to say a big thank you to him for being my friend over this period (in fact I thank him everyday).&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;If one has no friend around, how far he or she can go?&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112736062808822885?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112736062808822885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112736062808822885' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112736062808822885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112736062808822885'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/09/govin-driver.html' title='Govin The Driver'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112677537722444305</id><published>2005-09-15T16:53:00.000+08:00</published><updated>2005-09-15T17:09:37.230+08:00</updated><title type='text'>New UI For Office</title><content type='html'>Ya this reminds me that I've been using Menu-Toolbar kind of UI for long long time. And subsequently this model applied by almost all non-Microsoft applications. And now we can even see this UI model on the Web pages.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/09-13Office12-Word_lg.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/09-13Office12-Word_lg.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I like the answer given by Larson-Green, the group program manager at Microsoft in the &lt;a href="http://www.microsoft.com/presspass/features/2005/sep05/09-13OfficeUI.mspx"&gt;interview&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;"It’s important to note that the new UI is not intended to be a general-purpose application model. It’s not a replacement for menus and toolbars for all applications. There’s nothing wrong with menus and toolbars. It’s just that our powerful authoring applications have lots of commands, so we needed a different model –a higher-level way of presenting commands."&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Wonder if Mustang (Java SE 6) would follow this footstep, I hope so.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112677537722444305?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112677537722444305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112677537722444305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112677537722444305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112677537722444305'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/09/new-ui-for-office.html' title='New UI For Office'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112671354917435450</id><published>2005-09-14T23:55:00.000+08:00</published><updated>2005-09-14T23:59:09.180+08:00</updated><title type='text'>Let's Have A Team Ceremony</title><content type='html'>The initial title of this post was "Book Recommendation" but I felt that it isn't attractive enough, hopefully this one would gain more attention. Just finished a book, &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0932633439/ref=nosim/woongiap/"&gt;Peopleware by Tom Demarco and Timothy Lister&lt;/a&gt; which I found it very interesting and thoughtful and I can't wait to publish some excerpts of it. I read quite a lot of books but this is the ever first book (I'm sure that it won't be the only one) which make me have the intention to recommend to others. In fact there are much more excerpts I wanted to give but eventually I might end up copying the whole book here.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;em&gt;"The meeting started out with a few minutes of easy banter, a lighthearted comment addressed to each one of those present by Ambrose, the boss. Each recipient rose to the bait and offered an equally lighthearted riposte, all in good fun. Then there was a sharp changeof mood as Ambrose took control. Issues were set out on the table and addressed, briefly and very efficiently. Each issue were discussed with one of the participants. There was a short dialogue between Ambrose and that person, a transfer of status information so that Ambrose would know exactly what progress had been made that week. During the meeting, the time was about equally focused on each of the participants, each interacting separately with the boss while the others listened in, silently. During Elaine's moment in the sun, I could see that Roger was distracted, obviously planning what he would say when Ambrose turned to him. At the end of the meeting, Ambrose established action items, more or less one per person. What could possibly be wrong with this oh-so-familiar picture? What's wrong to my mind is that this is not a meeting at all; it's a ceremony."&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;and also&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;"The meeting wasn't really necessary to convey status; there are many less wasteful ways to do that. The need that was being served was not the boss's need for information, but for reassurance. The ceremony supplies reassurance. It established for everyone that the boss is boss, that he or she gets to run the meeting, that attendance is expected, that the hierarchy is being respected."&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;If you're a boss, I'd strongly recommend you to read this book and you might have a ultimate productive team assisting you to accomplish your goal. If you're not, I'd beg you to buy one for your boss and you might have better time spent on daytime job, better working environment, more joys during working hours and much more less overtime required.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;Footnote:&lt;/em&gt; Over my past 5 years of working on software development, I've gone through many many "status meetings". Actually before discovering this book, I've been wondering for so long that why the process of progress status updates can't be done via email. I think it's a waste of time but I kept silent, because I lacked of the definitive statistical evidence that proved the case. Now that I'm not so willing to tell you that in my current company, I'm not only having team status meeting but a bi-weekly cross-teams status meeting with the application demo which no one (other than the presenter) could ever remember what's been presented. So, are you having team status meeting (ceremony)?   &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/7707845-112671354917435450?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112671354917435450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112671354917435450' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112671354917435450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112671354917435450'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/09/lets-have-team-ceremony.html' title='Let&apos;s Have A Team Ceremony'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112644013859980179</id><published>2005-09-11T19:52:00.000+08:00</published><updated>2005-09-11T20:04:02.846+08:00</updated><title type='text'>India, The Country of Mystery</title><content type='html'>&lt;strong&gt;The Four Monkeys&lt;/strong&gt;&lt;br /&gt;I've somewhere, somewhat and somehow heard about India is the kind of place where you can find the meaning of life which I don't really understand why until my trip here in India. I just realized that this is not the place with some meaning of life hidden somewhere but this is the place which provides you every condition you need to figure out the meaning of life quitely and peacefully.According to the sales guy, there was a legend about The Four Monkeys, but he insisted not to tell me the story behind until I decided to buy it. Yes, finally I decided to buy it but I didn't get any interesting story. What I got is (from left to right):&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/6738/487/1600/fourmonkeys.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/6738/487/200/fourmonkeys.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;Don't say anything bad&lt;br /&gt;Don't hear anything bad&lt;br /&gt;Don't see anything bad&lt;br /&gt;Don't think anything bad&lt;/em&gt; (it looks like the monkey is literally thinking, what the sales guy explained to me is that the monkey is thinking not to think anything bad)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's fine, 280 Rupees is definitely worth educating myself.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Communication Problem&lt;/strong&gt;&lt;br /&gt;Actually this is what I've already expected upfront as I've been working with Indians on 2 software projects. Nonetheless, yet I find something very funny while communicating with the Indian friends here, Find classical example below:&lt;br /&gt;After I got into a cab...&lt;br /&gt;&lt;em&gt;Indian driver: Hello sir, good morning! (with sunny smile)&lt;br /&gt;(From this point onwards, I supposed he understands English language)&lt;br /&gt;Chinese passenger: Good morning. (with charming smile)&lt;br /&gt;Indian driver: Kan-na-dal? ("Where do you want to go?", I found out the meaning 1 day after. To my dear Indian friends, please forgive me if I spelled it wrongly as I was having problem asking him to repeat)&lt;br /&gt;Chinese passenger: Sorry, I can't understand Hindi (In fact I didn't know whether it is Hindi or Tamil or something else, stupid me)&lt;br /&gt;Indian driver: Kannnnnn - Naaaaaa - Daaaaaalllll? (he spoke much more slower and clearer)&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;I hold on my intention to laugh aloud, gave up the conversation and straight away told him the destination: &lt;em&gt;&lt;a href="http://steven-software.blogspot.com/2005/09/mg-road.html"&gt;M.G. Road&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Suprisingly, that seemed to be the correct answer.&lt;br /&gt;It's amazing that the people here seems to presume that me as a foreigner can understand their languages. They always mix their sentence with English and Hindi (not Hindi-slang English but pure Hindi) and expect me to give response. It's funny anyway, isn't?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Communication Problem, again&lt;br /&gt;&lt;/strong&gt;I just realized that this problem doesn't restricted to be happened on human to human but also on human to non-human. What will be your reaction when you see the door with "PULL" on the handlers and want to go out? I don't know yours. Let me try to visualize the situation in a conversation again:&lt;br /&gt;&lt;em&gt;Door: If you want to get out, please pull my handler.&lt;br /&gt;Me: OK, I'm coming to pull... (Before I even had the chance to bring up my hand, the door opened automaticalaly when I was 1 meter close to it)&lt;br /&gt;Door: OK please come closer, I'm opened for you. &lt;/em&gt;&lt;br /&gt;(Joke: Does the word "PULL" in Hindi mean "AUTO"?)&lt;br /&gt;&lt;br /&gt;Is that a bad UI design?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112644013859980179?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112644013859980179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112644013859980179' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112644013859980179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112644013859980179'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/09/india-country-of-mystery.html' title='India, The Country of Mystery'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112643949677128653</id><published>2005-09-11T19:36:00.000+08:00</published><updated>2005-09-11T19:51:38.606+08:00</updated><title type='text'>M.G. Road</title><content type='html'>See, I'm in a Auto Rikshaw!&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/6738/487/1600/autorikshaw2301.JPG"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/6738/487/200/autorikshaw230.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Wow, I found Yahoo! office!&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/6738/487/1600/bangalore237.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="156" alt="" src="http://photos1.blogger.com/blogger/6738/487/320/bangalore237.jpg" width="259" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The prettiest girl I've seen on the street.&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/6738/487/1600/mgroad229.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/6738/487/320/mgroad229.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The cinema.&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/6738/487/1600/mgroad224.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="263" alt="" src="http://photos1.blogger.com/blogger/6738/487/320/mgroad224.jpg" width="283" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The crowded street.&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/6738/487/1600/mgroad223.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="195" alt="" src="http://photos1.blogger.com/blogger/6738/487/320/mgroad223.jpg" width="274" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112643949677128653?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112643949677128653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112643949677128653' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112643949677128653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112643949677128653'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/09/mg-road.html' title='M.G. Road'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112626204142369103</id><published>2005-09-09T18:13:00.000+08:00</published><updated>2005-09-09T21:14:29.306+08:00</updated><title type='text'>Hello Worlds</title><content type='html'>Here are some mainstream programming worlds.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;c World&lt;br /&gt;&lt;/p&gt;&lt;div style="background-color: rgb(127, 255, 212);"&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;&lt;br /&gt;void main (void)&lt;br /&gt;{&lt;br /&gt; printf ("Hello, World");&lt;br /&gt;}&lt;br /&gt;&lt;/stdio.h&gt;&lt;/div&gt;&lt;br /&gt;C++ World&lt;br /&gt;&lt;div style="background-color: rgb(127, 255, 212);"&gt;&lt;br /&gt;#include &amp;lt;iostream.h&amp;gt;&lt;br /&gt;&lt;br /&gt;int main() {&lt;br /&gt;   cout &lt;&lt; "Hello World!";     &lt;br /&gt;   return 0; &lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Visual Basic.NET World&lt;br /&gt;&lt;div style="background-color: rgb(127, 255, 212);"&gt;&lt;br /&gt;Module Module1&lt;br /&gt;   Sub Main()&lt;br /&gt;       System.Console.Write("Hello World!")&lt;br /&gt;   End Sub&lt;br /&gt;End Module&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Java World&lt;br /&gt;&lt;div style="background-color: rgb(127, 255, 212);"&gt;&lt;br /&gt;public class HelloWorld {&lt;br /&gt;   public static void main(String[] args) {&lt;br /&gt;       System.out.print("Hello World!");&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Perl World&lt;br /&gt;&lt;div style="background-color: rgb(127, 255, 212);"&gt;&lt;br /&gt;print "Hello World!"&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Python World&lt;br /&gt;&lt;div style="background-color: rgb(127, 255, 212);"&gt;&lt;br /&gt;print "Hello World!"&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;C# World&lt;br /&gt;&lt;div style="background-color: rgb(127, 255, 212);"&gt;&lt;br /&gt;namespace HelloWorld&lt;br /&gt;{&lt;br /&gt;   class Program&lt;br /&gt;   {&lt;br /&gt;       static void Main(string[] args)&lt;br /&gt;       {&lt;br /&gt;           System.Console.Write("Hello World!");&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;PHP World&lt;br /&gt;&lt;div style="background-color: rgb(127, 255, 212);"&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;   &amp;lt;head&amp;gt;&lt;br /&gt;       &amp;lt;title&amp;gt;Hello World&amp;lt;/title&amp;gt;&lt;br /&gt;   &amp;lt;/head&amp;gt;&lt;br /&gt;   vbody&amp;gt;&lt;br /&gt;       &amp;lt;?php echo "Hello World!"; ?&amp;gt;&lt;br /&gt;   &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Cobol World&lt;br /&gt;&lt;div style="background-color: rgb(127, 255, 212);"&gt;&lt;br /&gt;IDENTIFICATION DIVISION.&lt;br /&gt;PROGRAM-ID.     HELLOWORLD.&lt;br /&gt;&lt;br /&gt;ENVIRONMENT DIVISION.&lt;br /&gt;CONFIGURATION SECTION.&lt;br /&gt;SOURCE-COMPUTER. RM-COBOL.&lt;br /&gt;OBJECT-COMPUTER. RM-COBOL.&lt;br /&gt;&lt;br /&gt;DATA DIVISION.&lt;br /&gt;FILE SECTION.&lt;br /&gt;&lt;br /&gt;PROCEDURE DIVISION.&lt;br /&gt;&lt;br /&gt;MAIN-LOGIC SECTION.&lt;br /&gt;BEGIN.&lt;br /&gt; DISPLAY " " LINE 1 POSITION 1 ERASE EOS.&lt;br /&gt; DISPLAY "Hello world!" LINE 15 POSITION 10.&lt;br /&gt; STOP RUN.&lt;br /&gt;MAIN-LOGIC-EXIT.&lt;br /&gt; EXIT.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Pascal World&lt;br /&gt;&lt;div style="background-color: rgb(127, 255, 212);"&gt;&lt;br /&gt;program hello;&lt;br /&gt;begin&lt;br /&gt; write('Hello World!');&lt;br /&gt;end.&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112626204142369103?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112626204142369103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112626204142369103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112626204142369103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112626204142369103'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/09/hello-worlds.html' title='Hello Worlds'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112616871482557481</id><published>2005-09-08T16:33:00.000+08:00</published><updated>2005-09-08T16:38:34.830+08:00</updated><title type='text'>Illusion</title><content type='html'>I've received a number of comments for my &lt;a href="http://steven-software.blogspot.com/2005/09/hotel-indione.html"&gt;previous post&lt;/a&gt; saying that "&lt;span style="font-style: italic;"&gt;the hotel looks cool!&lt;/span&gt;". In fact, it doesn't, not at all (the roof at the lobby leaks in rainy days). If there is really something cool, then it must be my photo shooting skill.&lt;br /&gt;&lt;br /&gt;Don't believe? See this.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/Egypt1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/Egypt1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Does it look cool?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But, when you walk close by.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/Egypt2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/Egypt2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What's this?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112616871482557481?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112616871482557481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112616871482557481' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112616871482557481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112616871482557481'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/09/illusion.html' title='Illusion'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112615085169996065</id><published>2005-09-08T11:21:00.000+08:00</published><updated>2005-09-08T11:40:51.706+08:00</updated><title type='text'>Hotel indiOne</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/dinner07sep.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/200/dinner07sep.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is what I took for dinner y'day. Kalasturi Chicken, Noodle, Tomato Egg Soup, Coffee and Cadbury Chocolate Bar. Taste not bad, I didn't take the picture of my previous days' dinners because I believe no one would have never seen the image of Kentucky fried Chicken before.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/front193.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/200/front193.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;                                                               The front view of the hotel.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/lobby191.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/200/lobby191.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt; The hotel lobby.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                                                                                        The floors.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/floors192.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/200/floors192.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/DSC00216.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/200/DSC00216.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And my room.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112615085169996065?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112615085169996065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112615085169996065' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112615085169996065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112615085169996065'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/09/hotel-indione.html' title='Hotel indiOne'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112598318112305156</id><published>2005-09-06T13:05:00.000+08:00</published><updated>2005-09-06T13:20:49.843+08:00</updated><title type='text'>It Was My First Day In Bangalore</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/indione162.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/indione162.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It was 11:30 at night, raining. After collected back my baggage, I ran to the main exit and found one Indian guy holding an A4 size paper with "Yong Woon Ngiap" printed on it. After 10 minutes standing under the rain and starring at Bangalore International Airport (it doesn't look &lt;span style="font-style: italic;"&gt;International&lt;/span&gt;, in fact it looks like a bus terminal), I got into the car towards to my hotel. I was extremely tired after nearly 4 hours of flight journey, anyway, that was a special and fantastic day for me, not only because it was my birthday but also I had more than 24 hours in that day. I earned. My first 26 hours birthday, without any single piece of cake, but lots of greeting &lt;span style="font-style: italic;"&gt;sms&lt;/span&gt; (short message).&lt;br /&gt;India is totally new to me, though Indian isn't. I'm staying near the ITPL, International Technology Park (I have no idea where does the last "L" come from, and again, &lt;span style="font-style: italic;"&gt;International&lt;/span&gt;), the place where my office is. Furthermore, the hotel has a cool name, IndiOne.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112598318112305156?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112598318112305156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112598318112305156' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112598318112305156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112598318112305156'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/09/it-was-my-first-day-in-bangalore.html' title='It Was My First Day In Bangalore'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112564612010359215</id><published>2005-09-02T15:26:00.000+08:00</published><updated>2005-09-02T15:41:50.526+08:00</updated><title type='text'>Personal Trip In Shanghai, Hangzhou and Suzhou In Year 2005</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6738/487/1600/028.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/6738/487/320/028.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;The brief journey was something like this:&lt;br /&gt;&lt;br /&gt;22/Jul Arrived at Shanghai &lt;span style="font-style: italic;"&gt;Pudong International Airport&lt;/span&gt; around 3pm.&lt;br /&gt;23/Jul Visited Shanghai &lt;span style="font-style: italic;"&gt;Yu Yuan&lt;/span&gt; (Yu Garden), &lt;span style="font-style: italic;"&gt;Cheng Huang Miao&lt;/span&gt; (Cheng Huang Temple)," and Museum.&lt;br /&gt;24/Jul Took train to Hangzhou, bicycling around and around &lt;span style="font-style: italic;"&gt;Xi Hu&lt;/span&gt; (West Lake).&lt;br /&gt;25/Jul Visited &lt;span style="font-style: italic;"&gt;Song Cheng&lt;/span&gt; (Song City) and &lt;span style="font-style: italic;"&gt;Ling Yin Si&lt;/span&gt; (Lingyin Temple). Took bus to Suzhou at 7pm.&lt;br /&gt;26/Jul Walking around &lt;span style="font-style: italic;"&gt;Guan Qian Jie&lt;/span&gt; (Guan Qian Street) and visited &lt;span style="font-style: italic;"&gt;Zhuo Zheng Yuan&lt;/span&gt; (The Humble Administrator's Garden).&lt;br /&gt;27/Jul Visited &lt;span style="font-style: italic;"&gt;Cang Lang Ting&lt;/span&gt; (Singing Waves Pavilion), took train back to Shanghai at 5pm.&lt;br /&gt;28/Jul Sitting in &lt;span style="font-style: italic;"&gt;Huang Pu Tan&lt;/span&gt; Starbucks Coffee for a whole morning with a book bought from Suzhou bookstore. Walking around &lt;span style="font-style: italic;"&gt;Nanjing Bu Xing Jie&lt;/span&gt; (NanJing Walking Street) in the afternoon and enjoying Karaoke at night.&lt;br /&gt;29/Jul Visited &lt;span style="font-style: italic;"&gt;Zhang Jiang Technology Park&lt;/span&gt;. Took flight back to Kuala Lumpur at 5pm.&lt;br /&gt;&lt;br /&gt;Will write a whole long story soon.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112564612010359215?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112564612010359215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112564612010359215' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112564612010359215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112564612010359215'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/09/personal-trip-in-shanghai-hangzhou-and.html' title='Personal Trip In Shanghai, Hangzhou and Suzhou In Year 2005'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112556063871823804</id><published>2005-09-01T15:41:00.000+08:00</published><updated>2005-09-01T15:43:58.723+08:00</updated><title type='text'>The temple, or Cheng Huang Miao</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/6738/487/1600/036en.jpg"&gt;&lt;img style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/6738/487/320/036en.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Finally, my friend was sending me all the photos I took in Shanghai last month. Here is one of them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112556063871823804?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112556063871823804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112556063871823804' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112556063871823804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112556063871823804'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/09/temple-or-cheng-huang-miao.html' title='The temple, or Cheng Huang Miao'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112407560459810022</id><published>2005-08-15T11:02:00.000+08:00</published><updated>2005-08-15T11:48:05.396+08:00</updated><title type='text'>Orientation Weeks</title><content type='html'>Just stepped into the third week of my new &lt;a href="http://www.acs-inc.com"&gt;job&lt;/a&gt;. For the last two weeks, I did not have much work to do as I was (in fact I'm) yet doing knowledge transfers (people transfer to me, of course), trying to get familiar with the project I'll be in as well as this company. This is the ever first job that make me feel that I'm hired for the company, because I always felt that I was hired for "a project" or "some tasks" in my past jobs. This is also the first time I experienced new employee orientation session, which was on the first and second day. It has been funny, at least in the morning on the first day, around eight new strange faces sitting in the meeting room and waiting to be reallocated to a perm or temp office (Yes people call it "office" though it may just a desk with cubicle). We're introducing ourselves with lots of funny words and jokes, talking about traffic jam (I'm working at Kelana Jaya), trying to figure out the best path to get here, asking around each other project involvements and so on. And the interesting thing is, my collegemate was there. She is working as a SAP trainee although she has roughly the same working experience as me just because she just got &lt;a href="http://www.sap.com/services/education/certification/index.epx"&gt;SAP certified&lt;/a&gt;. But you know what, she would probably get at least double of my pay once she got promoted from trainee to consultant.&lt;br /&gt;Without long waiting, just right after the lunch break of second day, I was assigned to a perm seat with a 2.7kg &lt;a href="http://www1.us.dell.com/content/products/productdetails.aspx/latit_d610?c=us&amp;cs=RC956904&amp;l=en&amp;s=hied"&gt;DELL laptop&lt;/a&gt;. As you can guess, I didn't start work immediately. I started doing some project-related stuffs in the second day of my second week.&lt;br /&gt;In my past years doing software development projects, I've got the chance to experience on business domains such as Oil and Gas, Port Cargo, Manufacturing and Automation, Mobile SMS, Legal Aid Management and this round, Online Learning Management. For the sake of applying standards, the new comers and I attended the &lt;a href="http://www.sei.cmu.edu/cmmi"&gt;CMMI training&lt;/a&gt; last week, which separated into tree main sessions, two and a half hours each. Categories: Process management, project management and development/support respectively.&lt;br /&gt;OK, I think it's time to do some works, I'm going to get some &lt;a href="http://www.sun.com/software/products/appsrvr/index.xml"&gt;software installers&lt;/a&gt; from a FTP server in Bangalore so that I can get them installed. I got the FTP server IP, username and password, and I tried establishing connection. Fail. According to the network guy, I'm required to fill in a "change management" form in order to request getting the port 21 opened and this process will take probably couple of weeks. Don't think that I will be idle for that long, as experienced software developers definitely have the workaround. I just requested to have my VPN account created and it only takes about couple of days!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112407560459810022?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112407560459810022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112407560459810022' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112407560459810022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112407560459810022'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/08/orientation-weeks.html' title='Orientation Weeks'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-112356762449321394</id><published>2005-08-09T14:04:00.000+08:00</published><updated>2005-09-01T17:18:06.986+08:00</updated><title type='text'>Copilot</title><content type='html'>Recently get to know about a true story which I find it is pretty interesting. A New York-based software company &lt;a href="http://www.fogcreek.com/"&gt;FogCreek&lt;/a&gt; has finished developing a product, named &lt;a href="http://www.copilot.com/"&gt;Copilot&lt;/a&gt; by a team of four summer interns in less than four months of time. This product (or service) allows people to help their friends, relatives, and customers fix their computer problems by connecting to their computers via the Internet.&lt;br /&gt;This story reminds me about what are all the interns doing in the local company which hired them. Why are they given the usual dull and unimportant tasks of an internship program?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-112356762449321394?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/112356762449321394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=112356762449321394' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112356762449321394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/112356762449321394'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/08/copilot.html' title='Copilot'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-111986285858219152</id><published>2005-06-27T16:58:00.000+08:00</published><updated>2005-08-24T16:10:48.823+08:00</updated><title type='text'>Three Ways To Improve Java Programming Skill</title><content type='html'>There shouldn't be any shortcut for improving your programming skills, however, certain guidelines must help. People claim that the more you code, the better you can code. Of course it is right in some sense, atleast your code will be less error-prone as you've got the previous experiences of making mistakes. But besides that, is there anything else you can do better? I'm afraid no. Hope these guidelines help you in some ways.&lt;br /&gt;&lt;br /&gt;First, study Java API.&lt;br /&gt;&lt;br /&gt;Inevitably, to be strong in Java, you have to know how to utilise Java API. Yes, utilise but not memorize. You don't have to remember Java API (although some interview tests require you to do so), what you need is probably the ability to search for the best API as far as your code is concerned. You have to know exactly what the specific API does eventhough the implementation of the API can totally hidden from you. In some cases, you must choose the better one if there are more than one API do the same thing you expect. How do we achieve that? By studying the API documentation.&lt;br /&gt;&lt;br /&gt;Then, design your code in OO way.&lt;br /&gt;&lt;br /&gt;This seems not only neccessary when you are doing Java but any OO languages such as C++, c# and so on and so forth. You've probably heard of the terms like Encapsulation, Polymorphism, Inheritance as well as Extensibility, Reusability, Maintainability and etc. Yes you've heard of them thousand times, but they can rarely be found in programmers' code. I'm unable to produce a full article on this aspect, which I can only advise: Design your code in the way of modelling real world objects before you actually start coding.&lt;br /&gt;&lt;br /&gt;Lastly, apply design patterns or best practices.&lt;br /&gt;&lt;br /&gt;Assuming you are good in OO design, and you understand every single API, how could you code even better? Try applying proven design patterns and best practices. Those patterns and practices are invented based on huge amount of development experiences. Should we build the solution from scratch while there are solutions on common problem context?&lt;br /&gt;Besides time saving, best practices usually can make you program runs more effectively.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-111986285858219152?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/111986285858219152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=111986285858219152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111986285858219152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111986285858219152'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/06/three-ways-to-improve-java-programming.html' title='Three Ways To Improve Java Programming Skill'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-111751878994571506</id><published>2005-05-31T13:52:00.000+08:00</published><updated>2005-08-24T16:13:35.266+08:00</updated><title type='text'>Invalid EAR File!</title><content type='html'>Just realized that my recent posts were running out of the objective of this blog site. Here I'd like to share some techinical stuffs in this post.&lt;br /&gt;&lt;br /&gt;I wanted to deploy an &lt;em&gt;EAR&lt;/em&gt; (Enterprise Archive, a J2EE term, which may consists of various JARs and WARs) onto &lt;em&gt;Weblogic 6.1&lt;/em&gt; which is running on a &lt;em&gt;Sun OS&lt;/em&gt; machine. Before deploying, I need to download the EAR file from a Windows FTP server. After everything is ready, I started deploying and the process seems fast and smooth, without any errors.&lt;br /&gt;But afterall, I can't even access to the login page of my application, I simply just couldn't figure what was going wrong. After some tedious redo of all the steps, I found out that I didn't switch the ftp transfer mode to &lt;em&gt;binary&lt;/em&gt; by issueing "bin" command in the ftp client. Finally, the application took the usual long time to be successfully deployed.&lt;br /&gt;Why wasn't there any error showing in Weblogic when the EAR file was invalid? Why was the ftp client displaying "&lt;em&gt;Opening connection in Binary mode&lt;/em&gt;" during file transferring although I didn't send the "bin" command?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-111751878994571506?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/111751878994571506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=111751878994571506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111751878994571506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111751878994571506'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/05/invalid-ear-file.html' title='Invalid EAR File!'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-111750521623373732</id><published>2005-05-31T10:06:00.000+08:00</published><updated>2005-05-31T10:07:59.156+08:00</updated><title type='text'>You don't have to minimize your web browser</title><content type='html'>In fact how can the working effectiveness of IT workers be properly measured? Personally I'm not sure if there is any measurement approach out there, but I'm sure that will not be a straight forward method.&lt;br /&gt;Sometimes I realized that people used to minimize or close their web browser or switch to other windows while other people especially their bosses passing by their seats. I can understand why they do so because I also did the same thing when reading some sensitive information during office hours. If you are working in IT line, I think you probably know that what I'm talking about. If you aren't, here is the reason.&lt;br /&gt;&lt;br /&gt;Boss always think that you have nothing to do or you are not focusing on your works if you are surfing web during office hours.&lt;br /&gt;&lt;br /&gt;Now the question is, can the behavior of the employees in the offices becomes the source for employers to assess employees' performance?&lt;br /&gt;&lt;br /&gt;Imagine you are a boss, and your employee is currently doing nothing, what is the first thing you'd want to find out? Apparently, I'd want to know the progress of the tasks which have been assigned to the employee. Secondly, what if the employee had got the tasks done? Switch back to your current role (you are no longer a boss), until now, should we put the blames on the employee for being idle or question the boss for the unjustifiable task assignment?&lt;br /&gt;&lt;br /&gt;Some independant workers might stand up and shout "we should always take initiative to approach for more tasks after we had completed our work!". Ask for more tasks, right, it is good if you are working in government department. But, in IT industry, we have something called "development schedule". Say we are having 10 tasks which got to be finished in 5 days time, and we are having 5 programmers in the team. What is the point of having the schedule in the first place if the programmer who can work fast can request to take up the tasks of other programmers? And, yes, the fast programmer might have no time to read web after taking the slow programmers' tasks. But, should the slow programmer be blamed for surfing in the fifth day after finishing 1 task?&lt;br /&gt;&lt;br /&gt;So, to the IT managers out there, kindly don't assign task to the employee who are surfing web, which you should have done the proper task schedule at the beginning. To the programmers, try your best to tell your managers the exact time needed for given tasks, or you will be blamed for surfing web or making your slow teamates to be blamed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-111750521623373732?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/111750521623373732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=111750521623373732' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111750521623373732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111750521623373732'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/05/you-dont-have-to-minimize-your-web.html' title='You don&apos;t have to minimize your web browser'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-111577899990355816</id><published>2005-05-11T10:36:00.000+08:00</published><updated>2005-05-11T10:36:39.910+08:00</updated><title type='text'>Don't use EJB in medium-scale application?</title><content type='html'>Recenlty had some sort of technical discussion with colleagues, there was one point I wanted to argue about which I didn't. Let's assume we're still talking about EJB 2.0: 3 xmls and 3 classes, why is it so difficult to create or maintain EJBs? I'd hope they did think of the benefits of using EJB before they throw this idea saying that medium-scale j2ee application shouldn't make use of EJB.&lt;br /&gt;I agreed that if customer required to use Tomcat/JBoss (any free open-source servers) to host their non-critical application, then we must not code any EJB. But what if they are running those commercial servers like Weblogic, Webphere and even one minute downtime is not affordable?&lt;br /&gt;My colleagues complained a lot on the code provided by outsourced programmers, didn't they? Just imagine you want them to take care of additional low-level features like transaction handling, security, persistence, etc. Someone would probably think of using some other great third party frameworks like Hibernate, Spring now, yes you can do that, if and only if the framework is stable, easy to maintain, learning curve is not too high, extendable, scalable and flexible enough.&lt;br /&gt;If EJB 2.0 is not really up to your expectation, proceed to EJB 3.0 then, let us stick to j2ee specs when developing standard j2ee application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-111577899990355816?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/111577899990355816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=111577899990355816' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111577899990355816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111577899990355816'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/05/dont-use-ejb-in-medium-scale.html' title='Don&apos;t use EJB in medium-scale application?'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-111458430491715775</id><published>2005-04-27T14:44:00.000+08:00</published><updated>2005-04-27T14:45:04.920+08:00</updated><title type='text'>IT conversation 24 Dec 2004</title><content type='html'>P - Project Manager, D - Developer&lt;br /&gt;===========================================&lt;br /&gt;(In meeting room)&lt;br /&gt;&lt;br /&gt;p: Now, it is very crucial period, we have to work extra hard to strive for going production&lt;br /&gt;&lt;br /&gt;p: So, pls do not entertain any change requests raised by our users, we should only focus on the core functions! (everyone seems agree)&lt;br /&gt;&lt;br /&gt;(One day later, Friday, outside meeting room)&lt;br /&gt;&lt;br /&gt;d: ... I'm currently busy working on my outstandingbug fixing, can I do it later?&lt;br /&gt;&lt;br /&gt;p: No, user is complaining, without that new feature provided, they insist not to sign off the application... you might need to come tomorrow, we can't give up in this final stage...&lt;br /&gt;&lt;br /&gt;d: But... (stopped by project manager)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-111458430491715775?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/111458430491715775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=111458430491715775' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111458430491715775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111458430491715775'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/04/it-conversation-24-dec-2004.html' title='IT conversation 24 Dec 2004'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-111458333433640699</id><published>2005-04-27T14:27:00.000+08:00</published><updated>2005-04-27T14:29:59.036+08:00</updated><title type='text'>IT conversation 27 Apr 2005</title><content type='html'>P - Project Manager, D - Developer&lt;br /&gt;========================================&lt;br /&gt;p: Can do me a favor? Fill in this stack of defect forms?&lt;br /&gt;&lt;br /&gt;d: What kind of info is required?&lt;br /&gt;&lt;br /&gt;p: Well, such as bug reported date, resolution description and resolved date&lt;br /&gt;&lt;br /&gt;d: But I've no idea about that...&lt;br /&gt;&lt;br /&gt;p: It is ok, just try your best to elaborate as much as you can, as long as it is acceptable from user point of view&lt;br /&gt;&lt;br /&gt;d: Is there any references for this?&lt;br /&gt;&lt;br /&gt;p: Yeah, you can refer to the bugs list excel sheet which I've sent you earlier&lt;br /&gt;&lt;br /&gt;d: Why you didn't fill up those while you're gathering bugs from users?&lt;br /&gt;&lt;br /&gt;p: I was extremely busy doing some other things, I wanted all the bugs to be solved quick...&lt;br /&gt;&lt;br /&gt;p: ...pls do it, since you are relatively free, try to be more helpful... we have to work as a team&lt;br /&gt;&lt;br /&gt;d: ... ... ... (Start searching for the sheet...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-111458333433640699?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/111458333433640699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=111458333433640699' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111458333433640699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111458333433640699'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/04/it-conversation-27-apr-2005.html' title='IT conversation 27 Apr 2005'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-111414044781649121</id><published>2005-04-22T11:26:00.000+08:00</published><updated>2005-04-22T11:27:27.816+08:00</updated><title type='text'>Ant vs Maven</title><content type='html'>I'd say both are cool java application building tool. As what stated in Apache's Maven website, both tools are having different objectives. But what kind of objective is that? I think they are targeting to different kind of audiences and application scales.&lt;br /&gt;I find Ant is good for those relatively small scale projects, eventhough it can perform well in large projects too. Writing ant target is an easy task if the writer knows what she wants to do, for example, she must know javac task for writing target to compile java classes. In Maven, they are using goal instead of target, although who don't know the existence of javac, she can write a working maven build script as long as she knows where are the java sources located.&lt;br /&gt;The best thing I find is, we can integrate ant with maven easily, which the performance seens better than running ant itself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-111414044781649121?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/111414044781649121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=111414044781649121' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111414044781649121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111414044781649121'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/04/ant-vs-maven.html' title='Ant vs Maven'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-111018682503787043</id><published>2005-03-07T17:12:00.000+08:00</published><updated>2005-03-07T17:13:45.040+08:00</updated><title type='text'>Entry-level's application in the market</title><content type='html'>Is coding job really so tough or boring? To make programmers wish to get rid of it as soon as they had coded much enough? Many friends of mine are looking for "higher" job position such as system analyst, consultant, assistant project manager and etc, as they think they did enough of coding works. In fact, including myself, will not hope to continue so much coding task in my coming projects. From one point of view, it is a normal career path of a typical computer science graduator. Futhermore, programmer's salary generally lower than consultant or system analyst.&lt;br /&gt;But this bring up a very interesting topic for me to think: say every programmer is willing to take up coding task for 4 years in average, can I suppose most of the IT application of small, medium and even large organisation will be coded by those fresh-level programmers who have less than 5 years of experience? Fortunately, those application will be designed by those relatively more experience system analysts, architects. Until now, another question comes in, will there be any good application designer who had less than 5 years of coding experience?&lt;br /&gt;Thanks god, usually application's users only use the system, if they are going to understand codes or trying to change something on it, I'd wonder how many systems manage to pass the user acceptance test.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-111018682503787043?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/111018682503787043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=111018682503787043' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111018682503787043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/111018682503787043'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/03/entry-levels-application-in-market.html' title='Entry-level&apos;s application in the market'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-110622373563599151</id><published>2005-01-20T20:03:00.000+08:00</published><updated>2005-08-24T16:14:45.896+08:00</updated><title type='text'>Normal Outcome of Malaysia's IT Projects</title><content type='html'>Finally, the project which we've worked on for nearly one year has gone for production. There's been a lot of fun, frustration, argument, self-accomplishment during this long development period. We've tried a number of development approaches in this project such as offshore coding outsourcing, hiring part/full-time indian contract programmers, and end-up ourselves taking up the coding works. I'd say it was a quite challenging task to make this application accepted by customers, but somehow, at the end we managed to make it happen. Of course, it is not yet over, just like many other IT projects, there'd be a lot of change requests and enhancement need to be done in coming days.&lt;br /&gt;I've got to know a few good coworkers, we had the chances to discuss many technical issues in either meeting room or canteen. We've figured out the best way (according to our judgement of course) to make our app more maintainable, readable, extensible and also scalable. We're enjoying pointing out the DB designer's faults on table design, doing research on the net to optimize performance and resolve many technical difficulties. My teamate has became &lt;a href="http://struts.apache.org"&gt;Struts&lt;/a&gt; expertise now which he knows nothing about it when he first joined. &lt;br /&gt;There's been a lot of fun and satisfaction by separating frontend and backend development to two programmers, we found this approach is much more better than one programmer code from back to end. We're enjoying discussion, of course including arguing, sometimes we almost want to give up our job commitment due to many factors like management mistake, unfair task assignment, dispolite finger pointing, tight schedule and high pressure. I'm glad that we managed to overcome all these and finally we made it.&lt;br /&gt;Unfortunately, more than a half of existing members are leaving for their better offers. At this moment, I really feel upset, and I believe I will always feel lonely after that. I really don't want this to happen but I've no choice, nobody able to convince them to stay. Frankly, I'm pretty sure that they will be much more happy and will be having greater opportunity to grow compared staying in current company.&lt;br /&gt;It does not matter where are they, I'll always miss them, and, let's share the fruit of success now. All the best buddies!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-110622373563599151?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/110622373563599151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=110622373563599151' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/110622373563599151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/110622373563599151'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/01/normal-outcome-of-malaysias-it.html' title='Normal Outcome of Malaysia&apos;s IT Projects'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-110473413205273532</id><published>2005-01-03T14:32:00.000+08:00</published><updated>2005-08-24T15:49:15.676+08:00</updated><title type='text'>Write good document</title><content type='html'>It doesn't matter how good is one programming skill, every programmer should learn how to write good document, there are lots of goog softwares in &lt;a href="http://sourceforge.net"&gt;SourceForge&lt;/a&gt; which nobody bother with because lack of complete documentation. No one would know what are they doing, what features are they providing.&lt;br /&gt;Write more, don't be afraid, you will find it easy in one day.&lt;br /&gt;Like me, in the midst of learning how to write a good blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-110473413205273532?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/110473413205273532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=110473413205273532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/110473413205273532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/110473413205273532'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2005/01/write-good-document.html' title='Write good document'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-109460092424127121</id><published>2004-09-08T07:38:00.000+08:00</published><updated>2005-01-30T17:00:20.433+08:00</updated><title type='text'>One of the benefits of Tiger Generics feature</title><content type='html'>See below code,&lt;br /&gt;&lt;br /&gt;public void processSomething(Collection&amp;lt AnObject&amp;gt c) {&lt;br /&gt;for (AnObject object : c) {&lt;br /&gt;object.processSomething();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The compiled bytecode of the above code is the same as it is in 1.4 - 5.0 merely converts the code for you.&lt;br /&gt;Actually generics is not only the new J2SE JDK5.0 feature exists in above example, you will also notice the enhanced for loop. But I'm only going to talk about generics.&lt;br /&gt;Sometimes you will notice people putting different types of object into a same collection which severely reduce the code maintainability and readability. Besides that, ClassCastException drives you crazy.&lt;br /&gt;Anyway, we can now get rid of those issues after introducing of Generics.&lt;br /&gt;Guys, it is a good time to start embracing Tiger! Enjoy coding :P&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-109460092424127121?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/109460092424127121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=109460092424127121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/109460092424127121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/109460092424127121'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2004/09/one-of-benefits-of-tiger-generics.html' title='One of the benefits of Tiger Generics feature'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-109155017734255497</id><published>2004-08-04T00:21:00.000+08:00</published><updated>2004-08-04T00:22:57.343+08:00</updated><title type='text'>Java literal</title><content type='html'>  char c = 0xffff; // max char hex value&lt;br /&gt;  byte b = 0x7f; // max byte hex value&lt;br /&gt;  short s = 0x7fff; // max short hex value&lt;br /&gt;  int i1 = 0x2f; // Hexadecimal (lowercase)&lt;br /&gt;  int i2 = 0X2F; // Hexadecimal (uppercase)&lt;br /&gt;  int i3 = 0177; // Octal (leading zero)&lt;br /&gt;  // Hex and Oct also work with long.&lt;br /&gt;  long n1 = 200L; // long suffix&lt;br /&gt;  long n2 = 200l; // long suffix (but can be confusing)&lt;br /&gt;  long n3 = 200;&lt;br /&gt;  //! long l6(200); // not allowed&lt;br /&gt;  float f1 = 1;&lt;br /&gt;  float f2 = 1F; // float suffix&lt;br /&gt;  float f3 = 1f; // float suffix&lt;br /&gt;  float f4 = 1e-45f; // 10 to the power&lt;br /&gt;  float f5 = 1e+9f; // float suffix&lt;br /&gt;  double d1 = 1d; // double suffix&lt;br /&gt;  double d2 = 1D; // double suffix&lt;br /&gt;  double d3 = 47e47d; // 10 to the power&lt;br /&gt;&lt;br /&gt;1.39 e-47f in Java; it means 1.39 x 10-47&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Have a nice day...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-109155017734255497?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/109155017734255497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=109155017734255497' title='30 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/109155017734255497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/109155017734255497'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2004/08/java-literal.html' title='Java literal'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>30</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-109090923803941507</id><published>2004-07-27T14:20:00.000+08:00</published><updated>2005-08-24T16:01:21.803+08:00</updated><title type='text'>Best practices Are Bad practices?</title><content type='html'>I believe most of the J2EE developers have heard of some typical &lt;a href="http://java.sun.com/blueprints/corej2eepatterns/index.html"&gt;J2EE &lt;br /&gt;design patterns&lt;/a&gt;, e.g. BusinessDelegate, Data Access Object, &lt;br /&gt;Composite Entity, Front Controller, Application Service and many many &lt;br /&gt;more. Obviously, there are pros and cons with those patterns, does it &lt;br /&gt;really good to apply them? I always heard from coworkers saying that &lt;br /&gt;"I can accomplish this pretty easily, why do I need to implement it in a &lt;br /&gt;relatively difficult way?". As a coworker, I wouldn't be able to give &lt;br /&gt;him the answer or convince him with those pratices. In other &lt;br /&gt;hand, as a Java developer, I think I should share something with him.&lt;br /&gt;"Design pattern is actually a proven solution to a recurring design &lt;br /&gt;problem, placing particular emphasis on the context and forces &lt;br /&gt;surrounding the problem, and the consequences and impact of the &lt;br /&gt;solution" - from Sun website.&lt;br /&gt;&lt;br /&gt;Why Use Patterns?&lt;br /&gt;&lt;br /&gt;*They have been proven.* Patterns reflect the experience,&lt;br /&gt;      knowledge and insights of developers who have successfully used&lt;br /&gt;      these patterns in their own work.&lt;br /&gt;&lt;br /&gt;*They are reusable.* Patterns provide a ready-made solution that&lt;br /&gt;      can be adapted to different problems as necessary.&lt;br /&gt;&lt;br /&gt;*They are expressive.* Patterns provide a common vocabulary of&lt;br /&gt;      solutions that can express large solutions succinctly.&lt;br /&gt;&lt;br /&gt;Again, from Sun website.&lt;br /&gt;&lt;br /&gt;So, got me now? Of course, patterns &lt;span style="font-weight:bold;"&gt;do not&lt;/span&gt; guarantee success. A pattern &lt;br /&gt;description indicates when the pattern may be applicable, but only &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;experience&lt;/span&gt; can provide understanding of when a particular pattern will &lt;br /&gt;improve a design.&lt;br /&gt;As a conclusion, I suggest we atleast try it out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-109090923803941507?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/109090923803941507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=109090923803941507' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/109090923803941507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/109090923803941507'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2004/07/best-practices-are-bad-practices.html' title='Best practices Are Bad practices?'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-109064801516785178</id><published>2004-07-24T13:15:00.000+08:00</published><updated>2005-08-24T16:22:37.590+08:00</updated><title type='text'>Learn How To Learn</title><content type='html'>As a software devloper, especially a Java application developer, I must get&amp;nbsp;myself updated everyday (atleast every week). The number of JSR&amp;nbsp;are increasing incredibly, the experts out there are trying very hard to improve the way programmer codes. They want programmer write lesser code, in more efficient way. To some extends, they actually did their job pretty well. Today, I can easily find&amp;nbsp;tons of core or third-party APIs, I won't ever need to write the low level method or solution by myself as what I did years ago. &lt;br /&gt;While I was learning Servlet API, and just know how to implement a relatively easy to use Front Controller, Struts came out. It has much more better performance, more reliable, rich functionality. The built-in utility classes&amp;nbsp;are pretty helpful, it is not only usable in web-tier (anyway, I don't suggest coworkers to use Struts in business tier). &lt;br /&gt;When I involved in a project which was using EJB 1.0, I had to cater the implementation issues by myself. Now, the project is over, and surprisingly working quite well. But, I always find that the previous implementation was just relatively immature, unreliable and not maintainable after I read at EJB 2.0 specs. &lt;br /&gt;So, what I can do now is, master the EJB2.0 specs in many ways, and, treat experience as lesson. Currently I am able to manipulate the CMP, CMR features and the deployment descriptors for various application servers. Unfortunately, I happened to know that DD will be eliminated in EJB3.0, my question is: "Is the original purpose for creating DD to reduce recompilation for changing deployment attributes?". &lt;br /&gt;Above are just some little small examples saying that people can't apply their knowledge on their works. &lt;br /&gt;Luckily, I'm having different thinking, what I think is, as a Java developer, I have to master the fundamental knowledge, and more importantly, master OO concepts. I'll be able to understand and apply&amp;nbsp;those Open source libraries no matter how much&amp;nbsp; there are, if my Java skill is strong. There is a famous proverb in China: "Learn till you get old". I must learn how to "Learn" in order to carry through this intention. &lt;br /&gt;I find current software development environment attractive, and this is the reason which keeping me to have passion on work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-109064801516785178?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/109064801516785178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=109064801516785178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/109064801516785178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/109064801516785178'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2004/07/learn-how-to-learn.html' title='Learn How To Learn'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7707845.post-109046079068902268</id><published>2004-07-22T09:43:00.000+08:00</published><updated>2005-08-24T16:18:00.486+08:00</updated><title type='text'>My Very First Blog On The Web</title><content type='html'>I'd like to say &lt;strong&gt;Hi&lt;/strong&gt; to everyone here. This is my first blog on the web, and I'm gonna post many many blogs from today onwards because I hope I can share my thinking and opinion to everyone.&lt;br /&gt;Nice to meet you all, as you can guess, I'll be focusing more on software (generally OO and Java). Other than that, I'm more than willing to share as much experience as I can on any stuffs that I came across.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;color:#ff0000;"&gt;Update 17th Aug 2005, broken link's image removed.&lt;/span&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7707845-109046079068902268?l=steven-software.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://steven-software.blogspot.com/feeds/109046079068902268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7707845&amp;postID=109046079068902268' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/109046079068902268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7707845/posts/default/109046079068902268'/><link rel='alternate' type='text/html' href='http://steven-software.blogspot.com/2004/07/my-very-first-blog-on-web.html' title='My Very First Blog On The Web'/><author><name>steven</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry></feed>
