Seriously, what’s up with Java Swing? Trust me, I tried really hard to understand what could have gone into the minds of the Swing designers. But still, applets are the pioneers of the interactive web (and way better than programming in the naturally 128-bit encrypted Perl on CGI). So, I am going to go easy on applets. It’s like what they say in my native tongue - beating up a dead snake.
Alright let me tell the background of why would anyone touch Swing in 2011 unless they are maintaining a legacy JNLP talking to MQ backed by Pro-C to Oracle (btw, that combo is a real working application in Verizon). As you know, I am taking this postgrad in Software engineering and one of the core modules is Java. As part of the module, each group were given an small application to build using only the vanilla JDK. No external libraries. Sounded simple initially but the project was a real eye opener at so many levels.
Don’t forget the basics :
The assignment project was JDK alone. Over the years, I started taking the value of open source libraries for granted. Say, log4j, commons-lang, collections, xml parsers or even an RDBMS database. While it was funny to notice how dependent I’ve become on many of these libraries, it was very interesting to write your own and really challenging to keep the code decently readable. So, next time I blame a framework for bad design, I have this project to bring me down to earth. One thing that I realised is that if your creativity is “in the flow”, you dont want to get disturbed by design constraints. Resisting the temptation and still sticking on to a good design is a hard thing to do but you have to do it for the sake of the psychopath programmer.
Team work and delegation :
All developers are loners. They think that they do their best when alone. I am no exception. However, being a part of a team and pulling each other up is real fun. Understanding what each person is good at and adjusting your tasks according to that is real art. We had humble beginnings - I could work only one day of the weekend but when code started pouring in, I could see what synergy really means. It’s like the story of the stone soup. No wonder the best projects in the world are delivered by groups.
Time management :
This year (even from the close of last year), day job has been super crazy. May be that is the reason they call it a deadline. You really have to die to finish the project on time. This project really means a lot to me, my team and the entire center. Working 80+ hours in the week is already taxing. That killed the 2011 resolution right from the first week - Weekends only for personal projects and experiments. And with the MTech, family and learning hadoop and flex, I had to do something to manage time. Like my mentor used to say, you can’t manage time, you can just manage priorities. I don’t have a choice at office. I can’t do badly on MTech. If I do badly on the core module, I am out of the course. Call it a horrible decision, but I decided to send my family on vacation to India (that was 2 months ago and they are coming back next week. I am super excited). I’ll be learning Hadoop and cloud as part of my elective module in May. So, pause on my hadoop/solr/lucene projects until then (trust me, they are really addictive). Now that I have a little free time on the trains and before bed, I am currently learning Flex in what I would like to call “micro-installments”. I am taking the Flex in a week course for the past month and still I am on Day 2 of the course. I think I am taking “It doesn’t matter how slow you go as long as you don’t stop”, a little too seriously. So, why am I learning flex now? You’ll see.
All things are difficult before they are easy :
Being aware of your weakness is good. Even better is to minimize the intensity of the weakness - from scary to manageable. I was really worried when the front end is supposed to be on Swing and Swing gave me nightmares in 2003. So, after designing and coding the back end of the project, I still wanted to give swing a try. Surprisingly, I actually managed to pull it off. It is not that bad…. Ah who am I kidding. I was horrible but Google’s window builder made my job way way easier. For some reason, I found it much better than Netbeans Matisse. I pulled up a couple of JTables and did some fancy stuff on it. (Swing developers, please dont laugh at me).
Over all, this year has now personally rated the toughest year in the past 10 years. Like they say, when the going gets tough, the tough gets rough (whoaa that’s a little too much boasting even for me).