August 29th, 2009
Ask any technical lead worth his name about building a revolutionary new search engine or a health care system, and the answer will be unanimous – Oh that, that we can do in a week! No problem. Build a facebook clone? Sure – two weeks tops. Build a business intelligence tool like BO – a monthly, hardly. GMail? A couple of days. No Problem!
Really, there is no problem – that is why we hired you – the tech lead hero – in the first place, so that we will have no problem.
It must be a cultural thing, but it is not fashionable to say – that it will take FOREVER to do and a *lot of resources* to do that, and it will actually take a lot of money. Come to think of it, it has never been fashionable, (and it spans multiple cultures too). The problem really is not in the answerer. The problem is usually in a way this question is framed. Any business owner knows this phenomenon, so the question is, why isn’t the conversation phrased as – “Hey look at this Patient care system spec. I feel this may have a lot of solutions on the market. Can you look for the best one and see if we can do a PoC? What are the challenges one can face?”
After all, the business owner never said either that the company does not really intend to make and sell millions of copies of that software, so why should the tech lead throw a dampener on the proceedings?
August 25th, 2009
Glory be to YouTube: you can watch Love Story by Taylor Swift, or Thriller by Michael Jackson. Or a million others. All for only 0$ a month! Nada. Zilch. And while you are there, you can also save the videos! (There are numerous plugins!) So, what does this mean? Anyone can upload videos, and then anyone can download. You can upload your laughing nephew, or the latest song by Black Eyed Peas. Then, your buddies can download it.
Holy cow, isn’t this the kool aid that brought Napster down? Only difference is now Google is doing it better (video > audio). And it is OK?
Hmm, something in there is a mystery or the reason why YouTube is working out to be a pretty bad investment for Google. Not even mentioning 300 million $ Google is spending streaming those videos per year, or the fact that Google hasn’t made any significant money from it yet.
It may appear for a while that Google’s mechanism to block copyrighted content are good. But it is only a matter of time before the Metallica of YouTube will emerge. They don’t call America the land of the lawsuits for nothing.
August 22nd, 2009
As I walked into my friendly Bank of America this morning, Sara greeted me cheerfully, “Good Morning, Dr. Arora!”. She had dutifully helped out couple of people ahead of me in the line, and as always she knew that I was there merely to drop something off, and I was out in about 30 seconds.
Sara is the official greeter. She doesn’t help people with actual transactions, rather she helps people enter their name in a line for people who are not merely doing operations that can be helped by a teller. So, I basically see her every month or so. It is a testimony either to the person, or to the institution that she remembers the name of all customers (or at least some of the ones!).
This efficacy and professionalism in people services is also matched by an amazing Bank of America website, that has for years now been setting the stage in terms of security. They were one of the first ones to implement SiteKey, which guards against phishing and helps in authenticating the webserver to the user (as opposed to authenticating user to the webserver, which everyone does by using a username and password).
Ok, this is where the complements officially end. Overall, their website is pretty good. The area of transfers, not so much. This is what I typically have to do:
1. Click on Transfers (which is a tab parallel to Accounts) This brings me to “Make a Transfer” subtab.
2. Click on “Review Transfers” subtab.
3. Click on “Recurring Transfers” subsubtab.
Clearly, that is a click or two too may. In his legendary book, Steve Krug hammers this point time and again: Don’t Make Me Think! But for some reason, this flaw has managed to persist in the BoA website for long. The problem isn’t of course just of the clicks. The main problem is that every single time I need to think through and find which link to click. Well, let us just hope that BoA usability team (I am sure they have one) will take notice at some point of time, and make some changes.
August 20th, 2009
Java/Swing documentation and user guides talk a lot about how layouts should be used, but the fact is that Java Swing default layouts are not really that helpful in following those guidelines. To create simple UIs, I often need to create at least a few layouts, using usually a mixture of SpringLayout, BorderLayout and FlowLayout.
Luckily I just came across ParagraphLayout from JHLabs. In general, great article – good stuff guys!
August 12th, 2009
Genetic algorithms probably represent the general class of non-analytical algorithms that can be used to solve a wide variety of problems. From curve fitting to general optimization to partitioning sets, GAs can generally really perform quite well.
In this classic paper: http://cs.uno.edu/people/faculty/bill/GAs-for-PartitioningSets-IJAIT-2001.pdf authors summarize some of very key improvements to GAs. Perhaps the most useful ideas are: giving higher probability of succession to more fit candidates, giving a lesser mutation rate to more fit candidates and higher probability of “good” DNA making into an offspring candidate. It is not immediately apparent as to how the last point can be formalized into a generic GA structure, but overall, the intent is quite clear.