Name: Marcus Alanen
Member since: 2002-04-28 10:13:41
Last Login: N/A



A 1977-born happy Linux user.


Recent blog entries by msa

Well, I solved one of the problems in disttest. Now each slave node spawns their own Xvfb that acts as that slave node's X server, thereby eliminating the congestion on any ~/.Xauthority file or on the listen queue. However, for some reason Xvfb sometimes spontaneously segmentation faults! This happens relatively seldom, but is still an annoying bug in Xvfb. I haven't been able to pinpoint the reason yet. All in all, disttest is still a useful tool for distributing the testload on several computers, reducing the time almost linearly with respect to the amount of computers (I've tried over 10 nodes), restricted by the greatest execution time of a test.

We also released version 0.8.1 of Coral, a general-purpose modeling and metamodeling tool, supporting XMI as input/output format and the Diagram Interchange standard for diagram information in UML 1.4 models. The summer interns have been working on a constraint checking tool, which seems to do its job really well. Other new stuff in this release is improved round-trip support for Eclipse EMF models, as well as various bugfixes and improvements. Unfortunately we seem to have lost some compatibility with Poseidon, since they have started to use some UML 2.0-like constructs in their I/O format.

With Microsoft publishing their DSL tools, and although there still might be a considerable hype factor involved, one wonders if open-source programmers should try out more modeling and code generation techniques?

As an example, in Civil we had some state machines written in Python: the user interface was stateful and the army units had their plans and states for their current and forthcoming actions. Although code-wise we certainly could have done better, we could also have tried having some diagrams and plugged in some code where needed.

As another example, one would think e.g. a common format for specifying interfaces using UML diagrams and generating interface declarations in different languages could be useful, although that is a lot easier said than done. SWIG is an impressive effort, although I have not been friends with its idea of "This object "belongs" to the C++ code, whereas this belongs to Python", which sounds, and is, horrible. Objects in current mainstream languages like Java, C#, Perl and Python do not belong anywhere; when the refcount drops to zero (or the VM finds a cycle), the object is garbage-collected by calling the finalizer and reclaiming the memory, that's it. Then again I understand the pragmatic point of view, since SWIG can be used to wrap old C and C++ libraries for new languages with moderate effort. Also, if there were no issues in creating wrapper interfaces, then a specific language would not really offer any significant benefits over some other language, would it? They would all be the same language, like the CLR.

Put up two programs we've been using a bit on our projects.

Disttest is a distributed unittesting runner. You simply set the DISTTEST_HOSTS variable to a space-separated list of hostnames to connect to using SSH, and then run "disttest". The nodes must all have the same filesystem (usually an NFS-mounted /home) and have the Disttest program installed. You even gain a bit with just one computer by setting the variable to "localhost localhost". :-)

There are currently two annoying problem with it, though. For some reason, 1) the unittest program connecting to the X server sometimes fails to provide the correct authentication, and 2) sometimes the actual connection to the X server can't be established. I think these are related to 1) congestion on the shared .Xauthority file, and 2) a too small listen() queue on the forwarding port by the SSH daemon. Both problems show up when using too many (over 4?) hosts, which is the whole point of the program! Sigh.

PyCov is a python code coverage calculation tool. It can be used to check how much of the code your unittests use, to detect functions or whole classes which are unused. Admittedly it's a bit of a rush job, which shows up as an ugly interface and a lack of understanding of inner classes/functions etc...

Tried to find documentation on the Eclipse EMF metametamodel, but could only find some old pictures in a book; finally had to surf some JavaDoc pages and by trial-and-error, the head version of Coral currently seems to be able to load ECORE models (Eclipse metamodels).

Went to the EWMDA-2 workshop in Canterbury. Not much to say, I was sick during the whole trip. Perhaps I am allergic to the MDA initiative?

Didn't see any ghosts either. :(

Went to the UML2003 conference. Held a presentation about difference calculation between two models, and taking the union of several changes done to a base model. The conference was nice, with the panel discussions and invited speakers being the most interesting.

San Francisco was an interesting city as well. Hills up and down, looong streets, neatly laid out in a grid. Weird how the setting changed so quickly. First you're in the tourist area, then in the "better" apartment areas, then Chinatown, Financial centre, shopping centre, and suddenly in some less appealing places. And people were extremely nice, which surprised me. Several people just nodded to me and greeted in passing, which would never happen here (.fi).

It's been a great summer! I went to the University of Twente in Holland to the MDAFA2003 workshop which was really nice. It seems to be a bit of a "thinktank" for modelling-related questions. Friendly and clever people. I also met a relative whom I hadn't seen for ages, and spent a couple of evenings with him and his friend. We've also decided to go to the UML 2003 conference in San Fransisco later this year.

I've moved to a new apartment here in my home town. I'm very happy with it, and after buying a new computer and getting the ADSL line moved in I'm ready to surf again ;)

8 older entries...


msa certified others as follows:

Others have certified msa as follows:

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page