Now officially a Xitaan

June 30, 2008

Last 5 months I haven’t done a lot of software development for my work. I was given the chance to do more consultancy related tasks like performance/stability trouble shooting and audits. I could never have imagined it, but I lost my passion for ‘just’ writing software. I still do write software at home. At the moment I’m working on a tool that is able to detect which objects are accessed by multiple threads. One of the main challenges now is to replace AspectJ by a custom Java agent that gives me more flexibility and doesn’t interfere with other AspectJ configurations. But I’m not satisfied working on projects anymore; I was an unhappy developer and continuing on this road doesn’t provide a bright future.

A few weeks ago I was asked to make the switch officially from the development department (XSD) to the consultancy department (XITA) and I agreed:

  1. XSD (Xebia Software Development) does projects
  2. XITA (Xebia IT Architects): does more consultancy related tasks like audits, trouble shooting, advice etc.
  3. XBR (Xebia Business Requirements): does a lot on the business side of IT like changing the development process or giving business advice.

Within XITA I want to continue specializing in everything related to concurrency and distributed computing. Also I’m thinking about speaking at JFall (a Dutch Java conference) about the Java Memory Model and I’m planning to give an internal? course on this subject as well.

Detecting Concurrency II: an Example

June 3, 2008

Last week I wrote a blogpost about detecting multithreaded access on objects. To make it a little bit less abstract, you can find a report here (sorry for the lame file sharing mechanism). The report is created by running the tool on Apache Tomcat (a project with some concurrency problems).

In the first section you can find which fields are touched by multiple threads, and a few other statistics like the maximum number of read/writes by a single thread, and the maximum total number of read/writes by all threads on some instance. In the second report section you can see which instances were touched by which threads, and you can also see the overlapping fields (so fields touched by 2 or more threads).