Archive for March, 2013

2013 SgpDec Winter Code Camp

March 5, 2013 1 comment

Half a year after the summer code camp we had another opportunity, this time funded by the BIOMICS project, to do `extreme coding’ on SgpDec. And we did. There are good and bad news.

The bad one is that we are back to square one. We branched the package code. The development version contains only cascade product functionality, no decompositions.

The good news is that it is a completely new and clean implementation, with precise mathematical documentation and better usage of GAP library and the Semigroups package code.

Here is what happened in detail.

2013. February 2. Saturday  James arrived at Hatfield station.   We walked to the Hatfield Mercure Hotel. I mention the location because they tolerated us working in the lobby for two days. Arguing about math and code passionately could be quite annoying to an outsider listener. I guess.

We spent the afternoon by checking how SgpDec can work without the now abandoned Citrus package and how compatible it is with the new Semigroups package. It sort of went OK but it took a few hours. However, the real benefit of doing this was that we finally understood each other. Yes, this means that half a year ago we did not understand James’ suggestions, and he did not fully get our goals. Well, so much about collaboration between like-minded. It still takes time.

By the evening we decided how to continue. Instead of patching here, welding other bits there on the existing codebase, we decided to start from scratch. Or almost from scratch. With the safety rope of the version control system (mercurial) we could just branch/remove/restart. Actually later we pushed it to its limits, we concurrently edited the same code, many and most of them big changes, so a merge got confused and interleaved two different functions. That was fun.

Late in the evening the SgpDec Steering Committee  approved the decision for the complete overhaul, i.e. Chrystopher arrived and said: “Yes, good idea. Go ahead!”

2013. February 3. Sunday This was a 12-hours long hackathon. We might have had some fancy plans to go some other places, but we started coding early morning and we just stayed in the lobby of the hotel.


Our methodology was to remove some code, then I told James what the old functions did then he reimplemented it. This way we could get rid of old and now obsolete design decisions. Whenever he hit some difficulty, I just had to remember my situation years before and give him some hint.  This worked very well, except when it did not. After 9 hours we hit the bottom and started to operate on the false assumptions that telling the same sentences louder and louder will make the other person understand. Well, here is agile software development for you… However, we survived this rather tricky situation (by having dinner, talking to family) and soon realized that we were talking about the same thing but with using slightly different terminology.

In any case, this day was a bit extreme. Here is a snapshot of the repository.


2013. February 4-5. Monday-Tuesday The tempo got a bit slower as the university was open and we met several people there, and talked a lot about the semigroup decompositions. But we still managed to get something well rounded. With the cascade products we can easily calculate the iterated wreath product of transformation semigroups. Here is the bird-eye view of the D-class structure of the wreath product of full transformation semigroup T_3 and T_2


or here is the original T_3wrT_2.pdf. James sent this from Luton airport on the way home, for our viewing pleasure.

Categories: report