Anand's programming Blog

Thoughts and comments on Java software development.

Friday, May 12, 2006

Google Desktop and Java Install

I got my new laptop today. I had a list of applications to install in it. I kept Google Desktop high in my list of applications to be installed. So basically for the google desktop installer the machine is vanilla.

Newer version of google desktop( one which comes integrated with the gadgets) requires Java runtime engine available. On not finding one it installs the 1.4 version. All is well and good and I am happy.

Now I get to next item in the list of installs and that happens to be Java5. I download it from Java website and try to install and *DING* I CAN'T. Some application is holding up lock on the Java folder. For a some time I could not figure which app and then run through the task manager to figure. The usual suspect was Google Desktop.

Now what would be the way around? I killed the google desktop app and removed version 1.4 and then installed Java 5. All worked. BUT I can no longer see the google desktop gadget.Something messed up!

Final resort was to uninstall Google desktop and reinstall it all over. It sucks to to do that as I had to redo my google gadget setting all over again :(

Anyway, the moral of the story is " If your computer/laptop does not have Java Runtime engine installed, make sure you get what you want before installing Google Desktop else you will spend quite sometime to cleanup the mess"

I wish google had better way to handle this but Hey who care, I am happy with Google Gadgets!!!

Sunday, April 30, 2006

Error Codes and Exceptions

Nice article on Error Codes and Exception here ( http://damienkatz.net/2006/04/error_code_vs_e.html ).

Monday, February 13, 2006

Oracle Buying JBOSS????

Buying spree of Oracle might not be yet over... there are talks about Oracle buying Jboss in street.

In my opinion this is loss for open source developers and supporters.I forsee oracle trying to bundle Jboss with Oracle specific components by default and drive JBOSS future greared towards the coorporate milestone rather than developers needs.

What is your opnion?

Wednesday, February 08, 2006

Making JetBrains IDEA faster

Sorry this blog is only relevant to IDEA IDE users. But thought I will give the tips as I am sure there are many who may benefit.

1) If you have plenty of memory resource in computer give it to IDEA. I have seen that performance of IDEA is optimal at 512 MB heap size. You can do this by changing the VM options text file located at your IDEA install under bin directory. The name of the file is idea.exe.vmoptions.

2) Go to project setting and click on the IDE tab and turn off

** Synchronize files on frame activation
** Save file on frame deactivation
** File save on IDE being idle.

3) Remove unnecessary files from project by adding them in excluded. This can be done by setting the project properties and adding folder locations in excluded tab.

4) Avoid using shared views in source paths, local files are always faster.

5) I have seen that IDEA sometimes need a restart, lame but true , to be faster after being active for some days.

Thursday, February 02, 2006

IOC and Dependency Injection - Simplified

Subject pattern is being thrown out in every Party and Kitchen/Water-cooler discussions now a days. Its not cool, if you have not heard about one of these buzz word. I am trying an attempt to simplify what this design pattern means and why IOC vs DI. For more in-depth information you should refer to Martin Flower's website.

I will use terms (A) and (B)below, it represents two decoupled applications/component.

Inversion of Control ( IOC): This should be interpreted as an application( A ) handing off control of logic/action to other component/application ( B). Martin Flower explains this in a very simplistic Hollywood slang " Don't call me, I will call you". Here B is saying to A that I have control over this part you worry about other things. This pattern is no new invention, the concept of IOC is very generic and used in day today software development even if you never heard the 3 letter acronym.. Good example is Java EventHandlers. Now where does DI - dependency injection comes into picture....

Dependency Injection ( DI): In simple terms, DI is specialized IOC, where in inversion of control deals with "plugin", thus the name injection-injecting the plugin. (A) application inverts/handsoff the responsibility of determining the plugin to B thus making itself decoupled and generic enough to be used by any client.

Types of DI: Client will still need to tell (B) what to plugin should be like. This is where different types of DI like setter based DI, constructor based DI etc. For example Spring framework use the setter based DI. A framework provides client an assembler mechanism to define and associate plugins. Like Spring provides XML configuration which is used to set appropriate methods of (B) with plugin.


That is all you need to know,if my explanation is still not simplistic enough. Try to remember these two

IOC: "Don't call me , I will call you"
DI: "Don't plugin yourself, I will do that"

Tuesday, January 17, 2006

Worlds Largest Database - BaBar

While most of us are struggling to solve the issues around TeraByte data storage and management, folks at Stanford are ready for handling PetaByte( 1024 TeraByte) of data with BaBar database. In 2004 Stanford LAC collected 500,000 GB in a day, thus a multi-petabytes of data getting stored is very near. Note that such challenges are not limited to reasearch groups. Wal-Mart is assumed to be storing somewhere near to 580 TeraByte of sales and inventory data, also EBAY stores 100s of TeraByte of consumer data.

There is an interesting article posted at Standford website giving an overview of challenge faced in storing and managing such large data which is worth a read. You can refer it by clicking Here


Here are some interesting data for starter:

1) DataStorage happens at IBM MSS storing 1.3 Petabyte in 13,000 tapes managed by 6 StorageTek tape silos.

2) Data is backed by 160 TeraByte of disk Cache for responsiveness.Disk cache is mainted by thousands of physical disks maintained by large disk arrays.

3) For multi-petabyte scalability uses ODBMS approach with Thick client and Thin Server approach. Uses Objectivity/DB

4) Database runs on 2000 CPUs with 100 servers supporting.

Wednesday, January 04, 2006

JBoss Open house

JBoss is opening a new office in Bay Area. If you are not registered you can refer below information for an open house organized



JBoss Open House in the Bay Area

We are growing! And we would like to invite you to visit us at our new office in the Bay Area. Please stop by and enjoy refreshments and light appetizers with your JBoss friends.

You can learn more about our company, our services and JBoss opportunities.

This is a great event for all Java architects to learn more about what JBoss has to offer with their innovative and high quality technology.

If you cannot make it, please visit us at: www.jboss.com

Date: Thursday, January 12th

Time: 12 noon until 8pm

Where: 1600 Wyatt Dr. Suite 7
Santa Clara, CA 95054
(Please, click here for directions)

Parking: There is available parking for free around the office.

For questions about the event, please call us at (650) 255 0323

Also, announcing JBoss World Las Vegas June 12-15 at the Rio Hotel and Casino.
JBoss World Call for Papers and Innovation Awards are now open.
Click here for more information.