Skip navigation

Category Archives: General

I am a premium Evernote user. I love it so much. I have stopped using any paper notebooks all together thanks to Evernote.

Lovely as it is, the mail that I received today made me love Evernote even more. This mail is a perfect example of owning up to your mistakes. Though I was a bit worried that I lost my notes from July1 – July 4, I was nevertheless extremely happy at the way the company apologized for the mistakes, assured that such a thing won’t happen again, and extended my subscription for an additional year just because they lost 5 of my notes. In short, they have kept me happy, and have kept my loyalty. I surely learnt something about psychology today.

Ok, I have listened to the Java Posse bloopers episode a 100 times and laughed and laughed myself dry.

Now, since I moved to US, I have managed to lose my copy of the episode. And I searched east, west, north and south on the internet but couldn’t find it. Anybody know where it can be found?

First day @ MPK17. Everything is so new, and it’s a welcome change after three years at BLR03 🙂

More posts to follow!

"When all you have is a hammer, everything looks like a nail"

 Ever been hit by this?

I started out writing this one as a response to some of the comments to my previous post. I guess I had too many thoughts and this warranted a separate post in itself. First and foremost, I wish to state that I value and respect everyone’s opinion, for the matter that was discussed was very very subjective. However, as always, I will blurt out what I think in this blog.

I am not against people who learn new languages, and yes, I would never say that Java is just enough (though I love it immensely). But people mostly learn a language, use it a bit and then move on. For me it’s like leaving the climb 200m from the summit of Mt. Everest, just because someone seemed to mention a new and difficult mountain to climb. For me, I will climb the new mountain, but let me get to the top of this one first, is my attitude. Many people try to look for new and better ways of doing things when learning a new programming language, but they haven’t charted all the territory of the language that they know currently. It is this attitude that needs to be taken care of, in my personal opinion.

As a computer engineer, when my father asks me something about computers (esp. hardware) that I don’t know, I feel ashamed somewhere. Sure, I specialize in software, but still I should have known everything about this field, is what I feel. At Sun, everyday offers me something new to learn about Java, something trivial which I should have known (which does my self respect no good, but keeps me honest), something not so trivial. What I gather in such experiences is invaluable if and when I move to a different platform. Don’t we all master the art of quickly learning a new language, once we have learnt a couple of them? I think I am trying to learn an effective way of mastering a language/platform, and I do believe, having patience and a mind that constantly seeks out the unknown seems to be essential elements to achieve it.

I would also like to state that learning a language in and out does not guarantee success. Many people know the language, the working of the platform, but are a bit short of knowing about computer science fundamentals. For eg. I have never used a B-Tree at work, but I know what it is, and there might come a time, perhaps 20 years down the line, when my knowledge of a B-Tree and how it works, will lead me to write a significantly better program, and more importantly, make me feel good about myself. One must pay due respect to the science and not just the current state of practice.

I often see many fellow software engineers learning new programming languages every now and then, in the hope that they are increasing their "marketability". They seem to think that the more programming languages they know, the better. C, C++, Java, Javascript, Python, Perl, Ruby, Groovy, Scala, C#… the list goes on and on. These chaps are the first to get swayed by PR of companies marketing these languages (Microsoft for C# and .NET being a prime example). Hell, I talk as if I have been a saint, no, even I used to be in this – "Run to learn the latest language" club.

But over time, I have figured out that learning a language is never accomplished without using it in and out, in all sorts of ways, in all complexities, in various projects. What’s the average length of a code example in a book? Roughly 100 lines. And what’s the average size of code bases? 1000s and 1000s of lines. Unless you use the language to create something, you are not using the language at all. After all, a programming language is just a means to an end. It’s a tool in your hand to create an application, a service, something concrete and tangible.

Having come over to the Java world 2.5 years back, I have this habit of looking back on the code that I had doled out when I was new, and compare it with the code that I churn today. I find such a huge difference. The code that I produced 2.5 years back, is down right laughable in some places. Being at Sun, I was able to work with some very very smart people and hone my skills as a programmer (there is still a huge scope for improvement, as my recent experiences in the NetBeans land have told me). The code reviews have taught me a lot and continue to. I have been fortunate enough to work with some real wizards of design and Java platform and I am always in awe of such people and their ability to assimilate complexity and I try always to study their approach to problem solving. It gives you lots of pearls of wisdom and improves you as a programmer.

Even after this, when I feel that I write much better code than I used to, there is still a long long way to go for me in the world of Java. I still don’t know the little things which one gets to know when he is aware of the Java Language Specification. I still haven’t really decompiled a Java class, and tried to understand the byte code. I still am baffled by the whole area of memory management. I haven’t ever done a performance analysis or improved performance of code written by a different programmer. Never used NIO, still need to go slow when dealing with multi threading…. the list goes on and on. As Bharath Ravikumar (my former colleague at N1 SPS development team) rightly pointed out when I discussed this with him, it’s a matter of spending time gathering these experiences. I should try and work on all sorts of things in Java, and when your day job cannot satisfy such a quest, it’s best to turn to open source to satisfy your creative hunger.

You can make out the difference between someone who has just learnt the language and someone who has made better use of the time to work on projects in that language.

Now some readers may say that knowing just Java is not good enough, some languages are much better suited for certain applications. I totally agree. But, knowing a low level language (C), a middle level language (Java) and a dynamic language thoroughly, should be good enough for most, if not all, applications.

I attended the NetBeans day at Hyderabad, and I came out with some pretty interesting discussions, meetups and lots of positives. From what I heard from the audience, Roman Strobl has become a celebrity. His style of presentation and humor was appreciated by all. The audience loved his presentations. Last year, Roman’s good friend, Geertjan Wielenga, had a similar success.

However, as always, there was one presentation which was humorous, for me atleast. Collabnet, the company behind Subversion, had a talk. Their presenter started off very well with defining Collabnet’s objectives and it’s lineage. A very crisp presentation. And in 10 minutes he finished his slides (right on schedule) and handed over to some Subversion contributor from Chennai (the only one in India). And this guy winged the whole presentation. Far removed from the reality of the composition of the audience (many were students with only a cursory knowledge of SVN), this guy rambled on and on giving obscure examples (no, they were not added to the slides, so you really had to follow him through the labyrinth of his examples). This guy must be a fantastic engineer, but he surely came a cropper as a presenter. People around me first became disinterested, then groaned, then some of them slept in the cool air conditioning. And people like me, who had better things to do in life, got up and left, for good.

I see this problem time and again, mostly with Indian speakers. They speak too fast, they fill up their presentations with tonnes of slides (without any graphics or anything to keep the audience interested), and almost none of them add spice to their talks with humor. And yes, most of them forget the audience. They find some nodding heads in the front rows, and then the whole session is presented only to those nodding heads, be it a presentation in front of 70 or 700 people. They will stick to their monologue, blurt out their stuff and go away. The audience sleeps, or leaves.

Please guys, time to learn some presentation skills. Think out of the box, you are not presenting a paper at such conferences. There are better ways to get your message across.

Having worked with the NetBeans platform for a year now, I am a happy coder. The most pleasing aspect of things is that if I am stuck, I can look at the sources and find out how to go about things. Don’t know how to use an API? Just dig into the NetBeans sources and find out how it is implemented and presto, your doubts are gone. Yes, sometimes I have been stuck and needed to ask questions to other NetBeans wizards, who were ever ready to help me, but the rule of the thumb in asking such questions is that you should have done your homework before putting your question across. And this is true for any open source software. However, time and again I see some extremely stupid questions on the mailing lists.

Would you go and ask Linus Torvalds, what is an operating system on the Linux kernel mailing list? Even if he or other kernel commiters were patient enough to answer such a question, instead of writing a tome in reply, they would ask you to grab a book and try to understand yourself what an operating system is. Isn’t it really stupid to ask questions whose answers could have been found if you had just bothered to look around a bit? Don’t you feel an ‘AHA’ moment when you have deciphered how something works, all by yourself, after sweating it out?

Whenever I have conducted a training course for students in my home town, I have always been appalled at the awareness index of these would be computer engineers. And if you think India is a low bandwidth country, I don’t agree. These youngsters have all the bandwidth at their disposal to download the latest episodes of "Heroes" or tonnes of wallpapers and songs. But the bandwidth suddenly dries up magically when it comes to visiting sites like openoffice.org, opensolaris.org, netbeans.org or even sourceforge.net.

Sun made an attempt in the right earnest to get these students in India out of their slumber. We launched the Code For Freedom contest specially for Indian students, and we have discovered some real gems. But in general I have to admit, an average Indian student wants to be spoon fed again and again. It’s a sad thing. I hope this changes some day.

We just announced the schedule for the 3rd User Meet of Bangalore Open Java Users Group to be held at IIM Bangalore, on 28th and 29th July, in association with Bar Camp Bangalore.

 

 

 

Prizes and goodies courtesy IntelliJ IDEA and O Reilly.

Here’s the schedule:

  • BOJUG Introduction and Welcome to participants.
  • June and July in Java by Rohan Ranade, JUG Leader, BOJUG – This session will cover the major happenings in the world of Java in the month of June and July. This will be more of a discussion than a presentation and audience members are encouraged to discuss more on the happenings in Java during the session.
  • Project Woodstock presentation by Venkatesh M. R., Developer, Sun Microsystems – Project Woodstock participants are developing the next generation of User Interface Components for the web, based on Java Server Faces and AJAX. This open source collaboration enables a community of developers to create powerful and intuitive web applications that are accessible and localizable, and which are based on a uniform set of guidelines and components, to help ensure ease of development and ease of use. Vision: Project Woodstock is devoted to providing the best possible web application experience for our customers and communities.That experience will certainly be greatly enriched by the interaction of ideas, information, and techniques that emerge from the cooperation of individuals in the web community, and the rapid introduction of new technologies by members of that community.
  • Java Puzzles – You think you know Java? Think again. Have a go at these brain crackers, and see how deep your knowledge of Java is. Winners will get a free copy of the award winning IDE IntelliJ IDEA worth $249.
  • Cruise Control presentation by Kshitish Balhotra, JUG Leader, BOJUG
  • Adventures with Netbeans Platform and OpenOffice API, a workshop by Rohan Ranade, JUG Leader, BOJUG – This session will take the audience through a session on building a Netbeans module which generates OpenOffice documents using the OpenOffice.org Java API. (Participants need to get their Laptops please.)
  • Code Generation Presentation – Sathish T. (BOJUG member)
  • Component based java web development with Apache Wicket Framework – Karthik (BOJUG member) – Wicket is a Component based Java web application framework that takes simplicity, separation of concerns and ease of development to a whole new level. Component based framework build pages from reusable components, the way you build a windows GUI application. Wicket strives for a clean separation of role of a HTML Page designer and a Java Developer by supporting plain vanilla HTML templates that can be mocked up, previewed, and later revised using standard WYSIWYG HTML design tools. Dynamic content processing and form handling is all handled in Java code using a first-class component model backed by POJO data beans that can easily be persisted using your favorite technology. Wicket  counters the statelessness of HTTP by providing a stateful component model, thereby improving productivity. If you are looking to home your object-oriented programming skills , then Wicket fits like a groove in that respect as well, since it has an architecture and rich component suite that encourages  clean object oriented design. It might be of interest to some to note that Wicket is probably the only "Zero-XML" framework in the Java World right now – All configuration is done in Java. If you love Java and you know HTML and current approaches to Java  web development bores you, give Wicket a try – you would be pleasantly surprised!
  • JMeter – Kshitish Balhotra, JUG Leader, BOJUG

 

 

 

The 2nd users meet of Bangalore Open Java Users Group will be held on May 26th 2007 at Sun Microsystems India Engineering Center, Bangalore.

 

The main attraction of the users meet is a session on JavaFX by Ranganath from Mphasis.

For meeting details, please see this link : http://bojug.wikispaces.com/

Also, do not forget to add your name to the attendee’s list, if you wish to attend this users meet.