Sunday, December 25, 2005

Penang Bridge

Was trying to locate some traffic information related to the penang bridge. Finally found a site hosted at blogspot which contains image from so called bridgecam(webcam) that promises real time snapshot of the situation on the bridge. There is a also live video feed available. So the next time you wish to visit Penang, check out the traffic information on the Penang Bridge first or you could spend hours stucked in traffic. Actually, I feel that the guys are UEM are quite smart to have mirrored the bridgecam to blogspot. It is quite safe to assume that UEM's server will not be able to cope with high volume of traffic(if more publicity is given to this site). Since most of the information are quite static and blogspot is able to cope, it is only smart to mirror it there instead of their own servers, thus saving on bandwidth and resources. The next step to take will be to mirror the image snapshots to blogspot too.

Saturday, December 24, 2005

Print your own money

You can print some money to buy properties, utilities companies, railway companies and also to build hotels via this page. No, don't get me wrong. I am not asking you to counterfeit, this money is used in monopoly. *hehe*

Thursday, December 22, 2005

62NDS.COM - virus code

The following site allows you to view the source code for computer viruses in txt files. Most of these viruses are written using VBS, (VBS = paradise for virus writers, courtesy of Microsoft - disable it, and install MS Virtual Machine or Java Virtual Machine instead) and are normally sent by email.

Read more Guide To Buying Gifts For Men

Great gift buying guide from Kenny. Any of you gals out there planning to get the perfect christmas present, take a look at this article.

World's Ugliest Tie!!?? - For Counsel

Don't Give this Tie to any Man You Care About--unless, perhaps, he's the President of an Ice Cream Company. But, even then think twice.


Friday, December 16, 2005

Mercedes Benz

Read this from Real funny From Indian standup comedian Kumar "Bloody Germans. I hate Germans. Why? The Germans make Mercedes Benz. Malays sell Mercedes Benz. Chinese buy Mercedes Benz. We Indians? We wash the bloody Mercedes Benz!"


Jazz Club Event

Friday, December 09, 2005

A good plan to increase your annual income?

Nowadays, it seems like we hear complaints everywhere from permanent staffs in the Malaysian IT industry about their companies spending a minimum of three to four times their salary to hire contract X-Men. And it is not like these X-Men can carry the responsibities or duties of more than one local developers. I have heard more negative feedbacks about X-Men than positive ones. Some even conclude that whatever codes developed by these X-Men will need rewriting/refactoring, so there is no productivity gain but losses. No way are they cheap too. So why are they being hired? I have seriously no idea. But since the IT industry has a trend towards looking highly upon X-Men and are willing to pay sky high figures for them, I came to think of this idea. We will group our local developers together. Someone go and get PR or citizenship from X-Men's country and setup a company there. Then, outsource the local developers as X-Men with X-Men's prices. Wouldn't this be a win win situation? The companies think they are hiring X-Men and the locals get great pay. However, we might need to learn how to shake our head when agreeing to something and tan ourselves a bit. We might even have to learn how to mumble during conversation so that anything we are trying to say could not be understood by anyone hearing it. And to ensure you can code like X-Men, learn from The Daily WTF. If they suspect you are not X-Men, show them you know how to write a False Detector.

Thursday, December 08, 2005

Primary Keys

During my college years, I was taught about RDBMS and keys. The keys, also known as constraints in some DBMS, are primary keys (PK), foreign keys (FK) and unique keys. When we draw entity relationship diagrams, we were also advised to lookout for keys and identify them properly as proper primary keys and foreign keys will ensure referential integrity. I was taught to look out for unique keys in a table and use that as a primary key. If I can find a single column that is unique, I can combine multiple columns (composite key) and make them unique. I can group them together and name it as a primary key. Now, after years of development, I still wonder if this is the correct way to do things. There are a lot of disadvantage to the way I was taught. As an example, say you have identified that in a manufacturing department, a product code is unique. Theoretically, we can use this as a primary key. As a primary key, other tables as foreign keys will also reference this. Now, imagine this product code is being used as keys and are stored in product table as PK, invoice table as FK. One day, they decide to change the product code. How do you proceed to do that? As primary key, the code cannot be changed. Even if the database allows it, it will be difficult to change, as you will need to ensure that it is changed at all referencing table. Isn't this a headache? Therefore, I feel that it is better if we maintain a unique identifier, which could be randomly generated or sequentially generated as a primary key instead. This key should have no meaning to the business record. It should be mainly a database table level key only. Now if we apply this to our product table, the product code is simply a unique column on its own with the primary key being another column. The referencing tables such as invoice will use the unique identifier as the foreign key. Any changes to the product code just require changes to one table only and your referential integrity is intact. You also do not need to worry about using composite key as your primary key. Isn't this a cleaner solution? However, selecting data from tables design in this way could lead to slower response, as we will need to join the product table each time we search for a particular product from the invoice table. Compared to using the product code as the key, which we could directly use the product code as a criteria in the invoice table, it will definitely be slower. By how much, I would not be able to say. So, there is this question again, do we strife for better manageability or better performance? For me, I would like better and easier design as we could always scale our hardware. Hardware is cheaper than cracking your head finding expertise to maintain your database.

Why is everyone making the same mistake?

Hopefully, Linux or Solaris can grow fast enough to compete with Windows in terms of ease of use before I need to make the switch. As seen here Microsoft is investing in X-Men. I too believe it is not a wise move as so far, I have not seen really successful implementations by investing there. Maybe the projects and company I deal with are too small compared to what Microsoft is investing and implementing. Anyway, there are a few things quoted which I don't really agreed on. India's highly skilled professionals, low-cost operations, a booming economy, good telecommunications links and a rapidly growing market have made many a foreign companies announce big investments or increase existing investments in the country. India does have highly skilled professionals, however this doesn't mean that the country is full of highly skilled professionals. It could be just a tiny weeny size of India's population that is highly skilled. Anyway, those really highly skilled Indian professionals would had left for States where they can earn a higher income. Therefore those left behind would not be highly skilled and could not survive the booming IT industry by competing with skills and technical knowhow. So, they cut their prices and try to remain competitive. That's where you will get your low cost, by paying for monkeys who are willing to work for peanuts. They might have the best telecommunications links, but have any of you ever try to have conversation with them? I can speak to them face to face and could not comprehend what they are saying as their slang is very heavy. Even worse if you do video conference with them as their body signal for agreeing with something is the same as ours for disagreeing with something. Imagine, you asked them "is it ok?", and they say "Yes" while shaking their head. You would be so confused as to whether they are OK, or not OK. All I can do now is shake my head and say, it is not right do to so...

Tuesday, December 06, 2005

MSDE/MSSQL on Windows 2003

X-Men promised to deliver a solution on DB2 and Websphere. However, on the date of delivery, they came and said that their developers had a change of mind and now it is on MSDE and Tomcat. I will never every know what and who gave them the right to change operating environment? Anyway, they promise me that MSDE is free even for production use and if MSDE is not good enough, I can always purchase license for MSSQL and run the solution with MSSQL. If I really dislike both, I will have to wait for them to rewrite the code to fit DB2. So, do I have a choice? Anyway, so they came and do the setup and installation as promised. We provide them with a Microsoft Windows 2003 machine complete with latest fix pack. They proceed to install MSDE and Tomcat. Took them quite some time to do it. After a while, they complain to me that my Windows 2003 does not belong to a domain and they can't get the MSDE to work properly. They said their development environment back home has domain, so I have to give them domain environment or upgrade to MSSQL. I was really pissed. Anyway, I got instructions to give them whatever they asked for, just to see the system up and running. So, we got them MSSQL. Then they claim they need help on setting up MSSQL. This X-Men really want a foot when you give them an inch. So, we have to plead with Microsoft development team to send someone to install for them. After installing the MSSQL, we left them to setup their application. After a while, they came back and ask for the Microsoft guy assistance again. They said something about url configuration for MSSQL. Guess what, they actually need the JDBC url. I mean, they are suppose to be Java Developers sent from far far away to do setup and installation on Java Web Application, and they are asking for JDBC connection url from a Microsoft guy? How low can they get? Anyway, sensing that they are drowning in troubles, I offered help again. Looking at system, I see that the MSSQL TCP port is not available under netstat. Suspecting something amiss, I check the system log. There, in plain English sentence, it is stated that Microsoft Windows 2003 is smart enough to disable the TCP port because MSSQL is not patched and is vulnerable. So smart of Windows, but how come it doesn't prompt us when it disable? Or did it disabled and prompt but the X-Men didn't notice or had ignored it? So, all those crap about MSDE on domain is absolute bullshit. It was because of not patched version of MSDE that's why it is causing error. So, I ran and grab them a MSSQL Service Pack 4 (IIRC) and pass to them to install. I told them specifically to install the service pack and then try the setup again. I left them for a few hours and when I return, no progress. Ask them why, and they said that they installed the service pack but still cannot connect. Seeing what I did with netstat earlier, they become smarter and showed me that the port is still not opened. Damn these copy cats. To cut things short, they blame the sky and the earth for things not working and left for something to eat claiming that they skipped lunch earlier the day. Curious, I googled on how to check MSSQL version, seems like you can't just click help about to do it. You need to connect to the db and issue a command. I did as per what I found in Google and found that the version is still based. No service pack installed. Pissed again that these X-Men doesn't know what they were doing and wasting my time telling me bullshit, I installed the service pack myself. After installing, I even setup their Tomcat so that it can connect properly to MSSQL for them. I could it get everything working even before they finish their meal. I am no genius and I have never used MSSQL with JDBC before, so I can only assume that these X-Men are either fools or do not know what they are doing. Next time if you are given the duty to do integration, make sure you know your JDBC settings in and out. For example, in this scenario, if they were smart to connect using netbios(or is it some other protocol) instead of TCP, they won't need to waste so much time and effort. Or if you are a Project Manager in charge of delivery, make sure you pick the right guy who knows well enough to bring along with you to do integration.

Monday, December 05, 2005

TM Net Online Services Security Breach

I was trying to access TM Net Online Services via Firefox earlier today to check on my streamyx bill. I click on latest bill and was shown the 3 most recent 3 bill available. I click on the button for English version and nothing happened. I was this another IE only website? Anyway, being curious and nosey today, I looked into the source. Seems like it is just using JavaScript to load a new URL based on the selection you have made. Maybe Firefox was unable to render because they never encode the URL string. Anyway, that's not my story today. Being curious as to how will TMNET prioritize security, I tried to cheat it a bit. To my horror, I was able to pull out other subscriber's information easily. I was able to pull up other subscriber's bill. On those bills are their amount owing, mailing address, account no and user id. Imagine this information falling into evil hands. Anyway, I think you must be pretty excited as to how to cheat the system. Just login to and generate your own bill. After that just change the number to any random number and if you are lucky you will hit other ppl's bill. Example : You should change the number after "invoice%20" sans quote and before "%200" sans quote. Please do not misuse the information. Based on my assumption, just increment or decrement the last number will easily get you more bills.

Maxis direct debit

Few years ago, I switched from DIGI Prepaid to Maxis because back then DIGI's coverage is not as good as Maxis. Furthermore Maxis was having a lot of promotions for new sign ups. I subscribe during one of their aniversary promotions and got RM30 rebate every month for two years. I also signed up for direct debit which allow even better rebate. Today, I no longer get this direct debit rebate from Maxis, even the discount for making calls above RM100 no longer applies. My bill has increased tremendously. Is this how Maxis rewards their customer? Or are they trying to make me switch to another plan or even another operator? By staying with Maxis now, I am losing a minimum of few hundred ringgit a year compared to switching. However, it is difficult for me to switch now as I wish to retain my number. I still have a lot of old friends who might be calling at this number. Until the day I can migrate this number to another operator, I have to stay. I think Maxis should reconsider giving rebates for direct debit. Or have some other type of benefits like points system where the points can be used to redeem rebates for new phones. Actually, Maxis can earn if everyone switch to direct debit. They have less staff to maintain for payment collection, less manual work and can even earn interest from the money they collect early. With direct debit, they collect the payment on the first day of the bill, compared to manual payment where I can opt to pay on the due date, which is a one month duration. Imagine 1 million subscriber paid one month earlier and each subscriber's average bill is RM100, Maxis gets 1 million x RM100 interests for one month. Isn't that some amount of money? Anyway, since Maxis has decided that they favour new sign ups compared to retaining loyalty of existing customers, I am cancelling my direct debit and wish everyone else does so. Why help Maxis to earn more when you can make them waste more with the resource they need to chase us to make payment, send more notification to ask us to pay bill, suspend our line, resume our line, etc. So, call 123 on your Maxis mobile NOW and CANCEL your direct debit.

Thursday, December 01, 2005

OCBC eCafe

Few weeks ago, I was trying to register for OCBC's eCafe(click if you are using IE only), OCBC's online banking system. At first, I access their site using Mozilla Firefox and was not allowed to proceed as the site had blocked access from any browsers other than IE. So, I switch to my IE and proceed to register myself. I manage to follow the on screen instructions for a few steps but at step no 3, or was it 4?, I was shown a very generic error page which says the system is currently not accessible and please try again. As an amateur web developer, I think I can recognize the types of errors. Anyway, I immediately called the support no listed on the error page and lodge my complaints. And so, my trouble begins. The support personnel are very friendly, however they are a bit annoying as they will force feed you with whatever manual and faq they have and force you to follow the exact steps. I thought these type of follow the steps only occur during UAT. When a system is live, you must anticipate the users to try every possible means of ways to break the system. Anyway, I was not trying to break the system, just trying to register myself. After lodging the complaint, I immediately call a close friend of mine who currently is working in OCBC and ask her to help me register. I wanted to confirm that this is not my pc environment error. If the pc in the bank works, then it will be my pc error. However, she too have the exact same problem as me, so I am pretty sure by now that it is a application server side error. The support personnel called me few times to query on my JVM. At first I did not expose the fact that I myself work in Java. I am not an expert, but I think I know how to setup my JRE correctly. Anyway, I followed whatever they said and they confirmed that I do have JRE(duh!!) and the version is the correct one. Unable to proceed any further, they decided to contact me later. One bad day, I was busy and pressured in work. This unlucky support personnel from OCBC called me. She ask me if it is possible for me to reinstall my JVM and she will walk me thru. Frustrated, I told her I don't need help in reinstalling and my JVM is of the correct version and there is absolutely no problem at my side, please please look at the server logs. She still insist I reinstall. MY GOD, if I can even setup JRE correctly, do you think I will be developing in Java, troubleshooting Websphere and debugging J2EE applications? I sternly and harshly told her that I do not wish to reinstall, please check the application instead. I am really sorry for her to have called me at that moment otherwise I would had explain slowly to her. Today, I think she finally had escalated it to their application developers. Another OCBC staff called me today and ask me to try again, this time log down the time I encounter the error. They need it for reading the logs. I mean, WTF, do you need the time of error in order to fix bug? As a bank, shouldn't there be someone monitoring the logs and fixing things as soon as error crops up? Imagine the monetary transactions throwing exceptions here and there and nobody check cause nobody logged the time of error. Purpose of a log file for the application to inform if error occurs and it can't be fixed. Judging from OCBC requesting the time from me, I can only assume that hundreds of exceptions are thrown in a day and they are not able to find mine. I can only wish them luck that their application was not from "X-Men" land or else they will only be able to see "Exception occured" with no details at all. Maybe, they might not be able to find the error at all and will tell me no error was encountered as the X-Men might had use the following try{...}catch(Exception e){//do nothing} Anyway, another thing I wish to say is if OCBC is so sure that so much users will have problem with JVM, why do they use applet in the first place? Or they could had made sure that they applet can run using both Microsoft JVM and Sun JVM and also be version compatible. Doesn't this deny lot's of users from using their services? Why is there a need to use applet in the first place? If they had already allowed only IE to be used, they should use ActiveX technology and signed it properly instead. Anyway, from my assumptions now, I think OCBC's IT department is not doing a very good job. Maybe, they have a lot of X-Men there. Updates: OCBC IT called me again, got the timestamp for checking logs. Then they called me again and concluded the userid I chose had already been used. So I change to a new one and now it works. However, I still feel that it should had presented me with a more meaningful message instead of a generic error page. Anyway, thanks to the support at OCBC, I can finally manage my OCBC banking at home.

Wednesday, November 30, 2005

Divide By Zero in Java

After developing for so long in Java, today only I realize that we can actually do divide by zero in Java and does not get runtime exception. I think so far, this is the only language I can see executing divide by zero and show infinity as a result. Most runtime will throw error whenever it encounter divides by zero. This shows that I still lack a lot of basic Java knowledge. Must improve myself more and not let my skills be rusty. To allow divide by zero, zero literal you use should be in double.
public class TestDivideByZero{
    public static void main(String[] args){     
        System.out.println("This will show as infinity : " + 100/0.0);
        System.out.println("The following will throw runtime exception : ");
        System.out.println("Exception :" + 100/0);

Wednesday, November 23, 2005

How to Prevent the Creation of Administrative Shares on Windows NT Server 4.0

This Microsoft article(Article ID:288164) explains how to prevent creation of the administrative shares on Microsoft Windows NT Server 4.0. Create values for AutoShareServer and AutoShareWks:
  1. In the registry, locate the following key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters
  2. On the Edit menu, click Add Value.
  3. Type AutoShareServer, click REG_DWORD, and then click OK.
  4. Type 0, and then click OK.
  5. On the Edit menu, click Add Value.
  6. Type AutoShareWks, click REG_DWORD, and then click OK.
  7. Type 0, and then click OK.Note: Sometimes the values are already present, especially after use of a policy that affects these entries. In addition, on Windows 2000 you are not required to add the AutoShareWks value. I tested this on W2Ksp4, need to have AutoShareWks.
  8. Quit the registry, and then restart the computer.
This process can easily be done through a policy. The path for the system policy is System Policy Editor\Windows NT Network\Sharing\Create Hidden Drive Shares. For additional information about hidden administrative shares that are not created, click the article number below to view the article in the Microsoft Knowledge Base: 156365 Hidden Shares Are No Longer Available After Using System Policy APPLIES TO: Microsoft Windows 2000 Server, Microsoft Windows 2000 Professional Edition

Wednesday, November 09, 2005

Where Babies Come From in Germany

Very useful book for parents when their child ask them where do babies come from.

Tuesday, November 08, 2005

Monday, October 03, 2005

A Colourful Jazz Wedding

Attended a Honda Jazz car convoy wedding on October 3rd 2005. There were a total of 27 cars convoying from the bridegroom's house to the bride's house to fetch her. There were 6 police outriders to escort us all the way, thus enabling us to show off on the roads. It was a totally fun and exciting day. Links: Article on GuangMing Press Article on ChinaPress

Friday, September 23, 2005

Who says pigs are stupid?

Someone just proved that pigs aren't stupid. This one year old pig is able to wave, sneak, play dead and even play football. Watch it here.

Friday, August 26, 2005

Blow Monkey Nail Dryer

If you're tired of flapping your hands about like you've got some kind of nervous tic in an attempt to dry your nail varnish, this is for you. The Blow Monkey is nothing to do with the pretentious late 80s band – it's a handy little device that not only speeds your way to pristine nails, but brightens up your day with its unashamed cuteness too.

Managing XML Encryption with Java

A lot of developers nowadays who work with XML will seldom worry about the security of the XML transmission. Only occasionally when the XML is used as web services, SSL will be configured on the server instance to encrypt the communication channel. However, not all the time everything needs to be encrypted. Publicly available information can be sent in plain text and this will save a lot on processing resources as encryption is a very processor hungry algorithm. Sometimes, XML files need to be save on physical storage, exported as file, etc. These files are usually in plain ASCII. If anyone with malicious intent gets hold of this information, there goes your application security. Learn more about XML encryption. You will never know when your application will need it. XML is a text format, and as such, provides no wire security by itself; however, using standard Java encryption techniques, you can transmit and receive XML securely. by Jeff Hanson

Thursday, August 25, 2005

Human-Robot Interaction

Philips iCat User-Interface robot is a project to stimulate Human-Robot Interaction research. It seems like remote controls and electrical switches will be the past if this project succeeds. Users will just need to talk, interact with the robotic interface to activate commands such as starting the washing machine, switching on the lights or channel surfing. iCat is a research platform for studying human-robot interaction topics. The robot is 38 cm tall and is equipped with 13 servos that control different parts of the face, such as the eyebrows, eyes, eyelids, mouth and head position. With this setup iCat can generate many different facial expressions - happy, surprise, angry, sad - that are needed to create social human-robot interaction dialogues. iCat expressions A camera installed in iCat's head can be used for different computer vision capabilities, such as recognizing objects and faces. Each foot contains a microphone to record sounds, perform speech recognition and to determine the direction of the sound source. A speaker and soundcard are installed to play sounds and speech. Finally, touch sensors and multi-colour LEDs are installed in the feet and ears to sense whether the user touches the robot and to communicate further information encoded by coloured light. For instance, the operation mode of the iCat (e.g. sleeping, awake, busy, listening) can be encoded by the colour of the LEDs in the ears.

Wednesday, August 24, 2005

Google Talk Plugin for Google Desktop Search 2

For those of you who are searching for Google Desktop Search 2 plugin for Google Talk, it had been supplied when you installed both the application. Once you installed and execute both GDS and Google Talk, select add remove panel on GDS. You will be able to add the Google Talk. Make sure Google Talk is running or else you will not be able to select or use the panel. For those who do not know what I am saying about, download Google Desktop Search 2 and try the Sidebar feature.

Google Talk

IM from Google is finally here. It offers IM, email, and voice call. After trying it out for a few minutes, the user interface is simple, it is quite similar to gmail interface therefore gmail users will feel right at home. However, the IM lacks support of emoticons or any other exciting IM features from YM or MSN Messenger. Maybe Google Talk is just meant for basic messaging and voice chat, like Skype.

They say talk is cheap. Google thinks it should be free. Google Talk enables you to call or send instant messages to your friends for free–anytime, anywhere in the world. Google Talk offers you:

  • Choice: Get in touch how and when you want to–over email, IM or a call
  • Quality: Talk through your computer but hear your friends as if they were in the same room
  • Convenience: Your Gmail contacts are pre-loaded into Google Talk so inviting or talking to your friends is just a click away

Google Talk is in beta and requires a Gmail username and password.

Monday, August 22, 2005

Discovery returning home

Eye opening pictures of NASA transporting their space shuttle Discovery back to base. I always thought they were going to use trucks to haul it. Didn't even imagine they can piggy back it on another plane.
NASA's specially modified 747 Shuttle Carrier Aircraft
Take off!
In the sky

Rules of Work, The: The Unspoken Truth About Getting Ahead in Business

Rules of Work, The: The Unspoken Truth About Getting Ahead in Business By: Richard Templar ISBN: 0131858386; Published: Jan 26, 2005; Copyright 2005; Dimensions 5 7/16 x 8 1/2 ; Pages: 240; Edition: 1st. You're good at your job.

That's a given.

But being good at what you do is not enough if you want to be really successful. You need something else. You need The Rules of Work.

Online Sample Chapters Rule 1 of Work: Get Your Work Noticed Rule 2 of Work: Never Stand Still Rule 3 of Work: Volunteer Carefully Rule 4 of Work: Carve Out a Niche For Yourself Rule 5 of Work: Underpromise and Overdeliver

Now, remember to borrow me the book after you have read it.

Friday, August 19, 2005

J2EE Clustering

Read to know more about how clustering, failover and load balancing works in a typical J2EE environment.

Custom Arcade Tokens

Hundreds of photos on arcade tokens. Who wants to scan and upload photos of casino chips?

Bloggin with Blogger for Word add-in

This is a test blog from Microsoft Word 2000 using Blogger for Word add-in. Now I can use Blogger right within Microsoft® Word. After installing the Blogger for Word add-in , a Blogger toolbar is added to Word allowing me to:
  • Publish to blog

  • Save drafts

  • Edit posts
However, it seems like image linking and uploading is not supported. This tool will only be useful for text only posts.

Check it out.

Blogger for Word FAQ and Known Issues

Word Verification for Comments

Blogger just introduced a new feature for the commenting system. I had just turned it on and it will require users to key in the word they are shown on an image file in order for them to submit the comment. This is useful in combating spam from bots.

Monday, August 01, 2005

Google Toolbar WordTranslator

Google Toolbar now supports word translation. Just select the language you wish for English words to be translated to in the toolbar options. Hover your mouse over the word you wish to be translated and the translation will pop up. It seems to be able to translate only individual words and only in Internet Explorer at the moment. However, it is still a very useful feature to look up meanings of a word while browsing.
Google Toolbar WordTranslator in action. Mouse is hovering the word knowledge and the translation for the word knowledge pops up instantly...

Friday, July 29, 2005

Original Swiss Army Knife equipped with a USB Memory

This will be the knife you want to be carrying while repairing PC and also when you go surviving in the jungle.

Solaris Containers

I was looking into options for sharing multiple development J2EE enviroment on a single physical server. I would had preferred to have multiple boxes but it seems like a single big box is more cost effective. Anyway, I had looked into VMWare, Xen and Virtual PC. VMWare is suitable for a desktop development environment, Xen uses some Linux distro that had to be patched to be able to run on Xen and Virtual PC's review was not really good. Suddenly, I remembered Solaris is now open source. I tried searching for virtual machine on Solaris and found out that Solaris has Solaris Containers that does support running multiple instance on a single host. The instances are known as zones. It can run on Intel boxes, which is really good news. I have also read cases where a single solaris hosts is divided to zones specific for web tier, ejb tier and database. This will really allow simulating a J2EE enviroment properly. Now if only I know how to setup Solaris properly with the proper zones and setup up the web servers, application servers and db on the zones correctly. Someone send me for training please .. References: 1. Solaris Zones 2. Running WebSphere in a Solaris zone 3. Zone examples 4. BigAdmin System Administration Portal - Solaris Zones

Wednesday, June 08, 2005

Ant: Building a Better Build File

Read more for tips and guidelines on how to maintain a proper ant build file.

Friday, May 20, 2005

Perodua MyVI

Heard that Perodua is going to launch soon with a new model known as Perodua MyVI. It is suppose to be a Perodua model of the Toyota Passo. I come across this article which shows the impressive body kit. More information about MyVI here.

Microsoft Office Converters and Viewers

For people without Microsoft Office but still need to view those files, here is a list of viewers to view it.

Personalized Google homepage

Google is launching a new beta service, personalized Google homepage. It allows you to have a sort of like portal in the plain Google search page. However, I could not get Google Suggest to work in the Google homepage. Maybe they did not integrate this two beta service. However, you still get your Google Search History working in the personalized Google homepage.

Friday, May 06, 2005

Google Web Accelerator

Discovered another new application from google via google labs. This one is a cache server sitting inside your computer to accelerate your browsing experience. It is suppose to be able to cache and and pre fetch pages. I think there might even be contents that will be compressed by google before being downloaded by the accelerator thus saving on bandwidth. However, I feel that google will keep and use the traffic statistics of its user to boost its advert business. Another thing they could do is to insert ads into the pages fetched by the accelerator. Cause, I still don't believe anyone or any company is really that willing to give free services with no gimmicks attached.

Unobtrusive Javascript

This article on unobstructive Javascript is quite a good tutorial on writing really clean html codes. It guide us on how to not write our Javascript inline with our html codes. Read it and you will be quite amaze. This article is quite similar to something I had stumbled upon earlier which is about Javascript triggers.

Friday, April 22, 2005

Google Search History

Google is offering registered google users to track their search histories. Wonder if MSN and Yahoo will follow and provide the same feature. Try it out ...

Monday, April 18, 2005

Direct Manipulation Using JavaScript and CSS

Interesting implementation on drag and drop inside a browser done via Javascript and CSS. Direct manipulation, particularly drag and drop, is under utilized in desktop applications and is almost non-existant in web applications. The following examples demonstrate that direct manipulation is possible in modern browsers. Each example is a proof of concept. I'm answering the question Can I do this? without considering the question Should I do this?. That said, some of these examples are pretty impressive, so it's nice to think that sometimes the answer will be Yes, you should.

Friday, April 15, 2005

Google Sightseeing

Google Sightseeing takes you to the best tourist spots in the world via Google Maps' satellite imagery.

Wednesday, April 13, 2005

Left or right brained?

You Are 75% Left Brained, 25% Right Brained
The left side of your brain controls verbal ability, attention to detail, and reasoning. Left brained people are good at communication and persuading others. If you're left brained, you are likely good at math and logic. Your left brain prefers dogs, reading, and quiet. The right side of your brain is all about creativity and flexibility. Daring and intuitive, right brained people see the world in their unique way. If you're right brained, you likely have a talent for creative writing and art. Your right brain prefers day dreaming, philosophy, and sports.

Wednesday, March 02, 2005

Low Fat Linux

For those on a diet but still wish to satisfy their hunger on Basic Linux Knowledge.

Tuesday, February 15, 2005

Javascript Triggers

This article provides a new pattern into using Javascript validations. Very interesting concept.

Tuesday, February 01, 2005


After reading this article, there are a few things that I would hope to propose for my current project. My current project is quite an old web application that is developed with little interest to patterns or best practices. Refactoring the entire project to current practices would take years to complete. Therefore, the sugggested method is to do minor and preventive refactoring whenever we have the chance to do it. It will not be wise to request for more time and resources on a LIVE project(from a business point of view). Taking a little time and effort on the developers' side to do preventive maintenance/refactoring will also enhance their lives as future change request/bug fixes will also be much more simpler.

Real Life Project Management: Managing the Project Scope

An interesting article on project management, how to control the scope of a project, plan properly, control changes and deliver on time. Being involved on projects which had nearly failed due to improper planning, I seriously feel that scope and change control are really essential to the health of a project.