Technical Tidbits

  1. Microsoft and IBM researchers Ramachandran Ramjee and Shivkumar Kalyanaraman in Bangalore have figured in this year’s ACM Distinguished Scientists list. .
  2. Concurrency is a hot topic and this website 1024cores was advertised in the Java concurrency list recently.

I hope that this last post of 2010 will bode well for my technical career in the next year. Happy New Year.

Viewing Graphs

Some tools are simple and easy to use but very helpful. One such old tool is Graphviz which helped us quickly visualize the folder structures.

I could generate a pleasing graph from this simple data representation using Gvedit that is part of the download.

digraph Folders1 {
size ="1,1";
FinancialInstution [shape=box,style=filled,color=".7 .3 1.0"];
Project -> FinancialInstution [style=dotted]
FinancialInstution -> scheme -> files
files -> TYPE_OF_FILE -> MasterCard
TYPE_OF_FILE -> Visa
}

This is the simple graph.

Respect for Software Architecture in the offshore industry

I have been reading about the nascent – still nascent – discipline of Software Architecture from various sources but it is hard to follow because I am not able to practise it usefully. There are so many reasons for this including my lack of experience but the disrespectful behaviour of the business types is really not helping. There is always a collision between managers and technologists and we know generally on which side the top management is.

Even software engineering is not really a discipline according to David Parnas and I quote from his article that appeared in VOL. 53( 10 / 2010 ) NO. 10 of the ‘Communications of the ACM”.

Recent experiences reminded me that the activity we ( euphemistically ) call software engineering does not come close to deserving a place among the traditional engineering disciplines.

It might not be a discipline still but the work in this area is not at all insignificant. It is important enough to figure in Wharton’s list.

Software Architecture though is not in the same league yet. Agilists do not subscribe to the traditional definition of architecture and they are gaining ground fast. So new aspiring architects are pulled in different directions by traditionalists and agilists.

I have also tried to read about building architecture that many of us seem to be drawing inspiration from. They have their own Nobel prize too.

SOA presentation

I think Udi dahan’s presentation on SOA architecture is one of the most influential expositions of SOA and IT alignment that I have come across.

UML Timing Diagram

We have some Batch Applications that run round the clock. After the developer releases this to the production environment a different team is responsible for the daily operations. The complexity of this application is such that it is difficult to convey the intricacies easily to that team. A UML timing diagram like the one shown below is one way of conveying the firing schedules to other teams.

This is not such a simple task though. Sometimes it is too intricate that several
training sessions are required but a diagram like this can be used as a ready reckoner.

Debug logs

We have a Windows SAN drive that is used to store files. The JCIFS library that is
used to access this drive sometimes timed out. We wanted to look at the packets before
increasing the socket timeout.Packet capturing software which
would have shown these access failures were barred from our production systems.
So we had a nagging debugging problem.

We set -Djcifs.util.loglevel=10 but this information is copious and was difficult to
analyze when printed in the DOS console.

We could not understand how to gather low-level debugging information in a log file.
I asked the forums and found that this code

PrintStream ps = new PrintStream( new File( "C:\\jcifslog" ));

jcifs.util.LogStream.setInstance( ps );

can actually redirect the log based on the “jcifs.util.loglevel” setting to a log file.
Now we have ample packet information to understand where the problem is.

We have realized that sufficient logs are indispensable even in production environments and
we make quite an effort to gather and print logs. Sometimes even though the logs are GigaBytes
in size we enable them as they are very helpful.

Teaching Computer Science

I came across Teach Computer Science without a Computer! in Hot Scalability Links for April 30, 2010from High Scalability by Todd Hoff.

Inspite of my experience with offshore work 🙂 , I still have a plan to teach my kid some basic ideas about computers.