Wednesday, June 28, 2006

My Name in a Website


Finally, after playing tennis for almost close to 6 years, I have won a chamionship. This is the Charlotte Tennis association Spring singles challege ladder. My record in the initial rounds is 14-0 and won the playoffs and final. Moving on to 4.0 level for the summer season.

Wednesday, June 14, 2006

Developer requirements


Learn to focus on the customer requirements rather than the technology. That might mean become a subject matter expert in the end user application. you must be able to focus on the business problem the client/customer wants to solve. If you can see the problem/need from the customer's perspective, be able to suggest process improvements, AND be able to recommend the appropriate technologies to assist in those improvements, you'll be in demand. Discussing requirements with a client, articulating issues to a higher up, or even just giving guidance to and managing jr. developers - all require consistent and concise communication skills that can make a great developer even more valuable. You have to understand the business of the customer enough to be able to talk to them, ask the right questions and finally develop the piece of software they expect.
Next to technical experience, business experience is becoming more and more important. If you have other non IT related skills like communication skills, coaching skills, ... then this also adds extra value to you as a software developer.However, the basis of a good software developer is and stays a solid (technical) knowledge and experience of software development. Additionally we have to pick up other skills and experience in business related areas, communication, planning, organization of a project, ... So, I think in the future we software developers will spend less time on coding while we have to keep up the effort to get the code quality better.
In the end, I think the job of a software developer will be "richer" because we are able to do more then just develop software.

z/os was Request process overview


Request Process Overview
 

The following steps describe the J2EE application flow:

1. A client application sends a request to access the J2EE application.

2. The request is received by the Web server which immediately passes the request to the Web server plug-in.

3. The Web server plug-in chooses a server to handle the request based on the resource being requested, identified by its Universal Resource Locator (URL), and forwards the request.

4. The WebSphere for z/OS daemon routes the request to the application control region based on the context root in the URL.  (i.e. ibi_html or ibi_apps)

5. The control region checks that the request is authorized and places it on the Workload Manager (WLM) queue. If necessary, WLM starts a procedure that is used to start a new servant region address space in response to the queued request. WLM then passes the request to the servant.

6. Servant is the J2EE app server containing a JVM

It locates and loads the J2EE components from the configuration HFS and   starts the applications.

7. Request is handed to Web container within the server, routing it to the proper servlet, based on request’s URL

a. Servlet class is loaded by the dynamic class loader.

b. The Java Naming and Directory Interface (JNDI) looks up data sources required by the servlet.

c.  Data retrieved from one/many sources and returned to servlet.

d. Servlet sends output stream directly or sends data to JSPs.

o        Response: HTML,XML, generated as a response
o        Sent back through WebSphere plug-in to Web server.
 

8. If J2EE application component needs to access corporate data: uses connector (resource adapter) to communicate with the Enterprise Information System (EIS) such as CICS or IMS.

ForwardSourceID:NT000145DE    

Thursday, February 02, 2006

Setting Goals


Learning should be a driving force. Most important goal is to never stop learning.
Take care of your health. If you don't have your health, you don't have anything.
Increasing the capability level of each individual on the  team and help to sustain this growth.
Continue to progress in the carreer and increase visibility on the team.
Sometimes, it is not about setting goals but simply living in the moment.
Lastly but not the least, have fun.

Wednesday, January 04, 2006

Simple Java test

Provide  a small snippet of code, less than 10-20 lines (you can actually do it in 2-3), that will produce a consistent memory leak.

Wednesday, December 14, 2005

Team Leader Characteristics

Leaders aren’t somehow superior to those they manage—you simply have a different role on the team. Leaders don’t know more than those they lead. Leaders serve the team members who are doing the bulk of the coding. They help the team members understand what other members are doing by facilitating communication. They help the team understand their overall priorities and objectives. Leaders help to keep the team members productive by removing the obstacles—no matter what they are. If a member can’t figure out how to solve a problem, leaders sit down with them and help them work it out. If a member needs to get set up to work from home because their mother is sick, leaders facilitate that. Leaders delegate authority and retain responsibility. Leaders need to learn to trust people to write code and yet stand up and take responsibility for that very code if it fails in the wild. How do you manage it? Personally, survey the team’s code by looking at it, asking them to defend it, and generally being on the look out for “code smell.” If you don’t feel confident drill into it with them until they can convince you that they’ve developed something solid.
Your motto needs to become “Communicate the obvious.” Don’t assume anybody knows anything. Say it out loud and send lots of email. Tell those you report to what you’re doing. Give everybody bad news early. If you have an integration environment that goes down, stand up and announce that it is down. Don’t assume others are going to notice it. Ask who is going to get it running again. Announce to the group that so-and-so is working on it. Ask so-and-so to tell you when it is working again. Announce to the group when it is working again. Etc. Run daily stand up meetings and go around the room and ask three questions: What have you done since the last stand up? What is preventing you from doing whatever is on your plate today? What will you be working on today? Keep these stand ups short and sweet. Break out into one-on-ones with people if they have issues that need to be worked. The important thing is to make sure everybody hears what’s going on within the team and has a chance to contribute things like “did you know there’s a library that already does that?”
Acknowledge the team’s accomplishments and hard work. There’s a ton of humility that comes with being a leader. You’ve got to admit that you can’t get it done yourself, and put yourself at the mercy of your team to do the bulk of the work. You need to thank them sincerely, and often publicly, for their contributions. Don’t know what to thank them for? “Catch them doing something right.” That is, just as you’d go through somebody’s code with a fine toothed comb while criticizing it, do the same but look for clever code, well documented code—whatever’s important to you. Find the good things they’re doing and stand up and say “you did a good job on this.” One of the most rewarding experiences you’ll gain from leading people is the feeling you get when you thank them for their work. When times are tough, sometimes it’s what keeps you coming in the morning.
Don’t ever humilate your colleagues. If you discover some bone-headed code that crashes the system repeatedly, always leave a side door open for escape. Talk to the programmer privately. Programmers are people too...you don’t know if something big is going on in their personal life. We all have problems. When you respect your team as people first, you will be able to count on their support, even when you don’t think you need it. The best way to gain approvals, from department heads, customers, quality groups, etc., that DONT respond to those requests, is to ask for rejection in writing. In other words, email your requests for approval stating that “unless otherwise noted in writing by so-and-so date, we will proceed with the following <purchase> <feature> <whatever>. CC everyone that is relevant. You will get what you need, or at least, you’ll have a tight documentation trail should problems arise in the future.

Saturday, November 12, 2005

Investment strategy

International market is increasingly important to the world economy. The United States has seen its share of the global equity market decline from 68% in 1970 to 46% in 2004. Therefore, if you wanted to construct a total world stock market index portfolio today, you could devote 46% of your portfolio to the Vanguard Total Stock Market Index Fund and 54% to the Vanguard Total International Stock Index Fund. For more fine grained control, in lieu of the Total International Stock Index, you could split the international part of the portfolio between the Vanguard Developed Market Index Fund and Emerging Markets Index Fund; in his book “Global Bargain Hunting”, Burton Malkiel wrote, “Over an eleven year period ending in 1995, the mix that provided the highest return available with the least risk was 61% U.S stocks, 26% developed country stocks, and 13% emerging market stocks.”Swensen suggests the following reference portfolio for investors to consider (and to tweak to suit their individual circumstances): U.S. Stocks 30% International Developed Markets Stocks 15% International Emerging Markets Stocks 5% U.S. Government Bonds 15% Inflation-Indexed Bonds (TIPS) 15% Real Estate 20%. Overall, I thought Swensen’s book had many valuable insights for individual investors. An individual can mimic his reference portfolio on the cheap by buying Vanguard index funds for the six core asset categories: Total Stock Market Index Fund (5-Year return: -0.59%) Developed Market Index Fund (5-Year return: 2.92%) Emerging Markets Index Fun (5-Year return: 14.27%) Intermediate-Term Treasuries (5-Year return: 6.5%) Inflation-Protected Securities (5-Year return: 8.79%) REIT Index Fund (5-Year return: 14.09%)

Monday, October 03, 2005

Quote of the week

The difference between where you are today and where you'll be five years from now will be found in the quality of books you have read - Jim Rohn

Thaughts on Traditional MBA:
Whatever be the qualifications of your tutors, your improvement must chiefly depend on
yourselves. They cannot think or labor for you, they can only put you in the best way of thinking and laboring for yourselves. If therefore you get knowledge you must acquire it by your own industry.

Friday, September 23, 2005

Gas (DIS)Advantage Homes

When we baught our house in 2000, it was touted as Gas Advantage Home. Natural gas was touted as the best residential energy buy. People even recommeded to run additional lines to the dryer unit and buy gas powered dryers. The U.S. Department of Energy says natural gas homes consume 35 percent to 45 percent less total energy than comparably sized all-electric homes. But the prices for the residential average price of natural gas has sky-rocketed from $6.50 to $15.33(Source http://www.eia.doe.gov/emeu/steo/pub/contents.html). Our heating bills have gone up from $75 to $200+ and this winter experts are forecasting an even higher increase. With this price spike, the homes should be classified as a Gas Disadvantage homes. Watch out for the “Gas Advantage Home” logo on construction signs and in real estate magazines and start avoiding them like a plague.

Tuesday, September 20, 2005

US Financial markets obsession with Greenspan

Why is the US financial markets so much obsessed with Greenspan. Let the man do the job of managing the interest rates. Every month or so, the week prior to and the week following the FOMC meeting there is this frenzy of news/notes/analysis/economic theories and what not as to what this guy is going to do. Mr. Greenspan has been the chairman since 86, but I think this obsession with him only started in the late 90 and 2000 era. Especially right after the meeting, people try to disseminate every sentence of his and try to make conclusions on what he meant. I think the only reason why Greenspan defaults his speech to this complexity and vagueness is because irrespective of what he does, the economy will takes its own path that nobody can predict and thus he can cover his A^^ by giving out not so clear statements that can be interpreted in many number of ways.

Monday, September 19, 2005

Bad state of the dollar bills

I do not use cash in most transactions but in some cases where I have to use it ( most fast food restaurants ) I have started seeing a trend in getting back highly soiled and dirty bills ( $1 and $5 especially ) back in change. This never used to be the case when I first came in 93 and even as late as 2000. Most of the time I used to get decent quality bills as change. Reminds me of my times back in India ( 12 years back) where this was the norm. In fact it became so unmanageable that the Indian government banished the bills for 1,5 and even 10 I think and have substituted them with the coins.

Thursday, September 15, 2005

Human nature for blaming

Here is an analogy to the blame game between problems that occur in IT and when terrible natural disaster like Katrina or Mumbai monsoon rains occur. During natural disasters people start blaming various government departments or even specific individuals for long ignoring upgrades. Similarly when a bug is found in production, who's to blame? Is it the tester for letting the defect slip through? Is it the developer for introducing the bug into the code into the first place? Is it the analyst who neglected to anticipate the myriad ways in which the system could be used? Or is it the project manager who did not allocate enough time for testing? Clearly there is an element of accountability on behalf of the entire team, but this fact is too often obscured by the need to find fault. I guess it is just human nature to try to place blame. Imagine the productivity improvements we can get if people do NOT focus on the blame game, but if the blame analysis efforts can be channeled through to better avoid future problems from occurring.

Wednesday, September 14, 2005

How to bring a new person upto speed in a development environment

Here is an idea. If the development environment does not have any Unit tests, start him/her off to write Unit Tests. This will help improve the stability of the system, get additional documentation, have some of their real-world work to evaluate, and they can learn about the system in pieces...
If the system already has unit tests, check what the existing code coverage is and provide a resonable new target % to achieve code coverage upon with new Unit Tests. This is a bit more tricky and would require some hand holding.

Tuesday, August 23, 2005

DB2 deadlock issue

I have been experiencing this issue: SQL0911N The current transaction has been rolled back because of a deadlock or timeout. Reason code "2". This is on a newly developed j2ee based SOA app that uses db2 jdbc driver to access the db. Quick search on google groups and google regular revealed as usual a plethora of settings that needs to be done on the db2 sie of the house. Reminded me of the plethora of settings that we had to work with websphere and WSAD. This makes me wonder, Is this one of the value points or corporate manthra of IBM's products to just make even the simplest features appear complicated and thus earn revenues thru service and support?