Saturday, August 26, 2006

Nothing private about it

Recently I was checking up on some java fundaes that you cant find in
text books and wrote a small program to verify that "private" key word in java is a only compile time thing. Meaning at runtime it becomes a package wide access.

package somepackage;

public class ABC{
int a = 10;
}


package somepackage;

public class XYZ {
public XYZ() {
ABC instance = new ABC();
System.out.println(instance.a);
}
public static void main(String[] args) {

new XYZ();
}
}

compiled both of them and ran XYZ.

Change the access specifier of 'a' to private and
recompiled ABC and ran XYZ again and it works !.

Small tidbit but found it interesting !!.

Going wireless..

Well the entire world is, isn't it? I still dont have too much funda on Bluetooth and other wireless technolgoies, but very recently I learnt something.

I had bought my DLink Wireless Router in one of the Black Friday deals and managed to configure it to my modem. Everythig started working just fine! Atleast for sometime. As I tried to configure the password for the SSID so that my wireless network is not intruded, I accidentally reset it. I also found out that the Firefox does not support some of the Java scripts that are used in the Admin Page of the wireless router,better use IE.
I ended up currupting the firmware on the router, or so I thought, which resulted in a peculiar problem. The wireless connecting was dropping every 15mins with great regularity. I had no clue and called up DLink support.

First try, I was asked to recheck the modem and see if it was working and whether it was dropping the connection.
Second try, after a few days, resulted in my changing the channel to 11 and still no solution.
On the third try a smart guy told me that there could be a conflict between the modem IP address and the Router IP address and surely enough it start working fine when I changed the Router IP.

Moral of the story, dont give up on the support keep calling and make sure you have a case id with you and refer it the next time. Additionally you can get the case id emailed to you.
(The image is IP of the owner company that can be obtained by clicking the link)

Eclipse Vs IntelliJ - the IDE battle

This one has been going on for quite sometime and there are tons of reviews and loads of comparisions already there. So, why another one? Why not, from my earlier experience, as an architect of similar product, in a related space, I have been observing both these products closely. Now that, I have worked with both of them as a user and more invovled with Eclipse as a Plugin developer, I can share some of my personal thoughts on how things will pan out.

IntelliJ, is no doubt and excellent product, it offers great range of developer friendly tools that are a joy to use. It is considered to be the best in the refactoring business. Of late, I keep hearing concerns about its bloated size and how it tries to second guess the users intentions, but even with these concerns, on feature set and performance, it beats Eclipse by miles. But Eclipse will eventually win. It will be a long drawn battle but Eclipse will win. Following are the technical reasons for my thoughts, ofcourse the usual free vs commercial reason is always on, but Eclipse will be able to win on technical grounds .

1. Eclipse Plugin model has been widely accepted and adopted, where as IntelliJ was a little late in promoting its pluggable API. By the time IntelliJ had started promoting its pluggable features ,Eclipse had head start.

I cannot say much about IntelliJ plugin architecture, a cursory look at their document gives me an impression that it is suspiciously close to Eclipse PDE. But the key is that IntelliJ will always being playing catch up in this category.

2. EMF: Most Eclipse applications extensively use EMF for their structured data design, persistance and retrieval. I think EMF along with PDE have given Eclipse the tremondous popularity with Application Developers. Eclipse as an IDE is way behind IntelliJ but as a platform for developing applications, it much better architected and EMF, in my sense, is definetely one of the reasons. IntelliJ on the other hand cannot boast of any such framework.

3. GEF: With its seemless tie into EMF, GEF is being adopted for a wide range of graphical appilcations. IntelliJ is a no-show in this category as well.

4. Community: Eclipse has mananged to build a better, vibrant and thriving devloper community, the weight of which will be sufficient for it emerge as the leader in the IDE space.

IntelliJ must have also felt the pressure from Eclipse eroding its use base. This is evident from IntelliJ's attempts to diversify and open up newer avenues. Its foray into .Net Studio plugin development and Version control are cases worth mentioning.

To sum up, IntelliJ is a great tool but fails to live beyond that. Eclipse on the other hand falls short on the development features but definitely got its roadmap right. It is a platform and not just a tool. With Eclipse tooling seeing significant improvement and more people moving to Eclipse, I am afraid IntelliJ will go down the JBuilder way.


The products and technologies mentioned are trademarks of their respectives companies. The views expressed in the article are my own and do not represent the views of the company I worked for.