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).