Shivdev w/ Java Posse Guys

Writing by on Tuesday, 21 of September , 2010 at 11:31 pm

I’ve been listening to the Java Posse podcast for several years now, and today I finally got to meet them in person. Very nice guys! This picture was taken just before the live Java Posse #323 – Newscast for Sept 17th 2010 at Java One 2010 outside the Hilton.

Shivdev w/ Java Posse Guys
In this photo – Dick Wall, Joe Nuxoll, Tor Norbye and Carl Quinn.

Comments (2)

Category: Java

Poorly written Email, Bugs Reports etc.

Writing by on Friday, 17 of September , 2010 at 8:47 am

I’m one of the “fortunate” one’s to receive 50+ work emails on a good day. Really! And I’m a developer. OK I’m part of three teams and need to interact with 3rd party support as well, so on a busy day, I can get up to 150 emails easily. Balancing development between two products is fine, but now also dealing with email gets annoying. Even though most of this email doesn’t even concern you, it often distracts you and could impair your train of thought.

So, your mind gets tuned to skimming through the “junk” and trained to pick up just the right information quickly.

In a previous life, I saw this type of a Bug Report from a user (say John Doe) of the product who was not a developer. I’ve totally changed the content and the bug, but the format of the report is similar to what happened. Assume, I’m a UI developer and develop widgets and users can display data onto some highly customizable Table Widget.

Subject/Header:
Swing: Table: UI doesn’t show data

Body:
The Table UI is broken. The Table is not showing any data with currency formatting applied. We’re trying to display information about the total sales that happened per quarter across all regions. There are three regions of concern APAC, EMEA, North America and LATM and four quarters Q1, Q2, Q3 and Q4. The customer needs to see roll ups of all these values and given the large number of sales that have happened in North America they also want to see counts of number of sales rolled up. We issue a SQL and pass it through the “ABC” scripts/rules to transform the data and send it to the table. The second column in the table has been rendered to display currency. The admin guide doesn’t talk about rendering data that is transformed and displayed. Jane Doe stated she passed some more data through from the SQL to the table and did something with a properties of the table and changing it to currency format worked. But it’s not an option to change the rule. Currency capability must be a supported capability…product is very confusing to use. The weird thing is that in the Script’s Reference manual there is information on setting currency for the table (why information like this isn’t in the Administration Manual I don’t know). I searched google and it seems straight forward to apply rendering on a table. Various other formatting was tried without successful results.

Bottom line: Every table needs to support currency formatting. I should be able to provide a sales numbers, or sales estimates or whatever to accomplish what I want.

John Doe

Three things are important.

  • The Subject: Table UI doesn’t show data
  • The Opening Statement: The Table UI is broken. The Table is not showing any data.
  • The Conclusion:Every table needs to support currency formatting. (notice how they use “Bottom line” to re-emphasize this)

These points indicate that the formatting on the table is broken, even though everyone has seen currency formatting working in tables on other screens.

So, is it really the table that’s broken? Could the problem be else where? Does the SQL look right? Are you allowed to use the “ABC” rule/script?

In this case, let’s say the problem was that the SQL was sending some incompatible result into the “ABC” script and hence was throwing an exception and not sending any data to the table and the user is notified of this as well as the detailed exception is in the logs. Now, this rule is mentioned only ONCE in the entire bug report while all the blame is on the Table. (BTW I’ve shortened the bug report, but it really had far too much more irrelevant information)

So, why then provide unnecessary information about the business of sales in EMEA, APAC, etc. and about the Q1, Q2… which doesn’t even concern the developer who’s getting 150 emails a day? To troubleshoot the problem, the developer might have to setup the same environment and try to replicate it when currency formatting always worked. Then finally, in all the mess find out that it’s this “ABC” rule that’s incompatible?

In good faith, the developer will assume given such a report that the advanced users knows what they’re doing and that the SQL and “ABC” rule are fine! If the table supports currency formatting the bug will be closed as not reproducilble! And then later on after some comments in the bug, Mr. John Doe claims that this bug report is for the rule “ABC”.

So, why not say?

Subject/Header:
ABC script doesn’t work with the following SQL

Body:
Passing a SQL “SELECT columnA, SUM(columnB) FROM tableA GROUP BY columnA” into the script “ABC” results in an ArrayIndexOutOfBoundsException.
Logs attached, See snapshot for details.
Easily reproducible.

Simple. No mention of the Table and currency formatting to totally mislead Development. Even if the steps to reproduce are not provided, the developer could figure this out simply looking at such a report.

I can’t discuss the actual scenario, which was a little more involved but as obvious as this example.

But, the point is to keep the content of your email, short and sweet while still providing all the relevant details. Not so hard to do, is it?

Leave a comment

Category: Rants/Raves

Rafael Nadal vs. Roger Federer vs. Pete Sampras

Writing by on Monday, 13 of September , 2010 at 12:56 pm

Here’s a summary of the Greatest Tennis Players at the Grand Slams. Roger Federer now has 18, and passed Pete Sampras’ 14. Rafael Nadal also has 14, though he has a much better record against Federer. Will he beat it?

Peter Sampras was born on 08/12/1971 in Washington, D.C., USA
Roger Federer was born on 08/08/1981 in Basel, Switzerland
Rafael Nadal was born on 06/03/1986 in Manacor, Majorca, Spain

Pete Sampras Grand Slam Summary

  Aus Open French Open Wimbledon US Open
1988       1R
1989 1R 2R 1R 4R
1990 4R   1R Winner [1] (Agassi)
1991   2R 2R Quarter Final
1992   Quarter Final Semi Final (Ivanisevic) Final (Edberg)
1993 Semi Final (Edberg) Quarter Final Winner [2] (Courier) Winner [3] (Pioline)
1994 Winner [4] (Todd Martin) Quarter Final Winner [5] (Ivanisevic) 4R
1995 Final (Agassi) Round 128 Winner [6] (Becker) Winner [7] (Agassi)
1996 3R Semi Final (Kafelnikov) Quarter Final Winner [8] (Chang)
1997 Winner [9] (Moya) 3R Winner [10] (Pioline) 4R
1998 Quarter Final 2R Winner [11] (Ivanisevic) Semi Final (Rafter)
1999   2R Winner [12] (Agassi)  
2000 Semi Final (Agassi) 1R Winner [13] (Rafter) Final (Safin)
2001 4R 2R Quarter Final Final (Hewitt)
2002 4R 1R 2R Winner [14] (Agassi)

Roger Federer Grand Slam Summary

  Aus Open French Open Wimbledon US Open
1999   1R 1R  
2000 3R 4R 1R 3R
2001 3R QF QF 4R
2002 4R 1R 1R 4R
2003 4R (Nalbandian) 1R (Homa) Winner [1] (Philippoussis) 4R (Nalbandian)
2004 Winner [2] (Safin) 3R (Kuerten) Winner [3] (Roddick) Winner [4] (Hewitt)
2005 Semi Final (Safin) Semi-Final (Nadal) Winner [5] (Roddick) Winner [6] (Agassi)
2006 Winner [7] (Baghdatis) Final (Nadal) Winner [8] (Nadal) Winner [9] (Roddick)
2007 Winner [10] (Gonzalez) Final (Nadal) Winner [11] (Nadal) Winner [12] (Djokovic)
2008 Semi-Final (Djokovic) Final (Nadal) Final (Nadal) Winner [13] (Murray)
2009 Final (Nadal) Winner [14] (Soderling) Winner [15] (Roddick) Final (Del Potro)
2010 Winner [16] (Murray) Quarter Final (Soderling) Quarter Final (Berdych) Semi-Final (Djokovic)
2011 Semi-Final (Djokovic) Final (Nadal) Quarter Final (Tsonga) Semi-Final (Djokovic)
2012 Semi-Final (Nadal) Semi-Final (Djokovic) Winner [17] (Murray) Quarter Final (Berdych)
2013 Semi-Final (Murray) Quarter Final (Tsonga) 2R (Stakhovsky) 4R (Robredo)
2014 Semi-Final (Nadal) 4R (Gulbis) Final (Djokovic) Semi-Final (Cilic)
2015 3R (Seppi) Quarter Final (Warinka) Final (Djokovic) Final (Djokovic)
2016 Semi-Final (Djokovic)   Semi-Final (Raonic)  
2017 Winner [18] (Nadal)   Winner [19] (Cilic) Quarter Final (Del Potro)
2018 Winner [20] (Cilic)      

Rafael Nadal Grand Slam Summary

  Aus Open French Open Wimbledon US Open
2003     3R (Srichaphan) 2R (Aynaoui)
2004 3R (Hewitt)     2R (Roddick)
2005 4R (Hewitt) Winner [1] (Puerta) 2R (Müller) 3R (Blake)
2006   Winner [2] (Federer) Final (Federer) Quarter Final (Youzhny)
2007 Quarter Final (González) Winner [3] (Federer) Final (Federer) 4R (Ferrer)
2008 Semi-Final (Tsonga) Winner [4] (Federer) Winner [5] (Federer) Semi-Final (Murray)
2009 Winner [6] (Federer) 4R (Söderling)   Semi-Final (Del Potro)
2010 Quarter Final (Murray) Winner [7] (Söderling) Winner [8] (Berdych) Winner [9] (Djokovic)
2011 Quarter Final (Ferrer) Winner [10] (Federer) Final (Djokovic) Final (Djokovic)
2012 Final (Djokovic) Winner [11] (Djokovic) 2R (Rosol)  
2013   Winner [12] (Ferrer) 1R (Darcis) Winner [13] (Djokovic)
2014 Final (Wawrinka) Winner [14] (Djokovic) 4R (Kyrgios)  
2015 Quarter Final (Berdych) Quarter Final (Djokovic) 2R (Brown) 3R (Fognini)
2016 1R (Verdasco) 3R (Granollers)   4R (Pouille)
2017 Final (Federer) Winner [15] (Wawrinka) 4R (Muller) Winner [16] (Anderson)
2018 Quarter Final (Cilic)      

Note:
1R = Round of 128;
2R = Round of 64;
3R = Round of 32;
4R = Round of 16;
Quarter Final = Round of 8;
Semi Final = Round of 4;

Leave a comment

Category: Sports

Must have Apps for developers on Windows

Writing by on Friday, 10 of September , 2010 at 10:37 pm

I just got a new Dell E6510 with Win-XP (yeah its 2010!).  Win-XP is almost 10 years old and it’s still kicking! I wanted Windows 7, but our IT Department didn’t have an image yet. So an ancient rock-solid OS is what I got. Believe it or not Win-XP is still the most popular OS. Yes folks, please stop bashing Microsoft.

OK – My Dev box is Linux and my home laptop is a MacBook Pro. Yet, I still feel most productive on Windows. So, as a developer, I must have at least these apps:

  • Web/Net-Apps
    • Mozilla Firefox plus plugins
    • Google Chrome plus plugins
    • WinSCP
    • Putty
    • FileZilla
    • No Machine NX Client
    • VNC Viewer
    • TCP View
    • Skype
    • Synergy
  • Development
    • Apache Ant
    • Apache Tomcat
    • Araxis Merge
    • Eclipse plus plugins
    • JDK 6
    • MKS Toolkit (or some Unix type environment)
    • Notepad++
    • Perforce (or equivalent VCS)
    • SnagIt (screen capture)
    • PDF Creator
  • Microsoft Office 2007
    • Outlook
    • Excel
    • Word
    • PPT
  • Media
    • VMWare Player
    • VLC Media Player
    • Bit Torrent
    • DVD Shrink
    • iTunes
  • Other
    • WinZip, 7-Zip or any archiving utility
    • Google Desktop
    • AutoHotkey

Leave a comment

Category: Top 10

Access PostgreSQL from the outside world

Writing by on Tuesday, 7 of September , 2010 at 4:07 pm

Say you want to open up PGSQL so an external client can access it, maybe make some JDBC calls from a different machine etc. you will need to slightly modify some config files

  • vi /opt/local/pgsql/data/postgresql.conf
  • Change listen_addresses = ‘*’
  • vi /opt/local/pgsql/data/pg_hba.conf
  • Search for something like
    • host all all 127.0.0.1/32 md5
  • Add a new line below
    • host all all 10.4.5.6/32 trust
    • Note 10.4.5.6 is the IP address of the client you want to connect from
  • Restart pgsql process /etc/init.d/postgresql restart

Leave a comment

Category: Tips and Tricks

PostgreSQL ERROR: current transaction is aborted, commands ignored until end of transaction block

Writing by on Tuesday, 7 of September , 2010 at 4:03 pm

After opening up PostgreSQL to accept connections from the outside world and using SQLExplorer as a client, I noticed that if there was a SQL Syntax error or any problem with a SQL, any following SQL statement would come back with

ERROR: current transaction is aborted, commands ignored until end of transaction block

Simple fix for me was to rollback the transaction

rollback

It’s likely that my client was somehow starting a BEGIN transaction and since the query wasn’t valid, the transaction didn’t end so had to manually rollback.

Leave a comment

Category: Tips and Tricks

Shivdev Kalambi's Blog

Shivdev Kalambi is a Software Development Manager, previously a Principal Software Engineer at ArcSight/HP. With over 16 years' experience in software development, he's worked on several technologies and played different roles and contributed to all phases of projects. Non-tech activies include Ping-pong, Rock Climbing and Yoga at PG, Golf, Skiing, Swimming & a beer enthusiast.