1st Subbotnik on the 101companies Project

"Subbotniks are mostly organized for cleaning the streets of garbage, fixing public amenities, collecting recyclable material, and other community services." Wikipedia, 25 March 2013.

101subbotniks are organized for cleaning the 101repo of issues, fixing modules and services of the project, collecting refactorable material, and other community services such as discussing ongoing and emerging efforts. We could also use the term hackathon. Indeed, the typical Russian and East-german subbotnik would not have access to loads of pizza, which is what this format imports from the hackathon tradition.

If you want to participate, please get in touch.


  • Date and time: 5 April (10amopen end) and 6 April (10am5pm)
  • Place: B013 (main location) and B009 (breakout capacity)
  • Organizers: Ralf Lämmel and Andrei Varanovich of the Software Languages Team.
  • Contact: ed.znelbok-inu|gnaltfos#ed.znelbok-inu|gnaltfos (Email) and @101companies (Twitter)
  • Registration fee: NONE


There's going to be 7 sessions plus some slots for recharging batteries. 2 out of 7 sessions (1 per day) are set up with presentations. Presenters, please prepare for 15mins presentation, 10 mins discussion. We are not following a very rigid schedule, though. The remaining 5 out 7 sessions will be used for working groups. Depending on the group's design (see below) and people's preferences, the working groups may end up being more or less discussion-oriented, more or less hacking-oriented. See more on the modus operandi for working groups below. Free dinner ("Stubi") is provided on 5 April. You are on your own for lunch on 5 April. Free lunch ("Pizza" et al.) is provided on 6 April. Some drinks and snacks should be organized throughout both days.

Program / schedule

  • Friday, 5 April
    • 10am-12pm: Session 1 (Working groups)
      • DRINK
      • MOVE
    • 12pm-1pm: Lunch
    • 1pm-3pm: Session 2 (Presentations)
      • Ralf Lämmel: Introduction to the 101subbotnik
      • Carl Corea: 101consult — IT consulting inspired by 101
      • Martin Leinberger: The ultimate discovery service
      • Thomas Schmorleiz: The new 101wiki
    • 3pm-5pm: Session 3 (Working groups)
      • (MOVE)
      • SERVE
    • 5pm-7pm: Session 4 (Working groups)
      • MANAGE
      • (MOVE)
      • (SCRUTINIZE)
    • 7pm-…: Dinner (Stubi)
  • Saturday, 6 April
    • 10pm-12pm: Session 5 (Presentations)
      • Yves Dupont: Features and technologies for data warehousing
      • Andrei Varanovich: The new MegaL language
      • Thomas Bernau: Build management for Java projects
      • Sebastian Jackel: Towards language-parametric testing
    • 12pm-1pm: Pizza
    • 1pm-3pm: Session 6 (Working groups)
      • MANAGE
      • (MOVE)
      • (SCRUTINIZE)
      • SERVE
    • 3pm-5pm: Session 7 (Working groups)
      • WATCH
      • (SCRUTINIZE)
      • (MOVE)
    • 5pm: Official ending of subbotnik

Working groups

Modus operandi: Working groups may be run in parallel (not more than two simultaneously). Working group chairs are shown in italics. The role of the chairs is to get people together, to push for progress, to leverage everyone involved, to keep track of discussion and issues, and to report to the rest of the participants later. In the last 10-15 minutes of each session, we reunite and the chairs briefly summarize the state of affairs. Some logs of notes etc. are share by email with all participants. The organizers, Ralf Lämmel and Andrei Varanovich, will alternate between the groups as much as possible.

SERVE: Full service enabling of 101worker


Currently, 101worker is sort of batch-oriented; it applies a long sequence of modules to the entire set of contributions. 101worker is not able to apply modules to specific places in the file system. Specifically, we would like to be able to point 101worker to say some directory or some github URL and to have it perform certain modules on these resources. Such requests should also be possible through a service interface, which also means that there should be some means of reporting back results of module execution to the caller. We have discussed this a lot. It is now time to agree on some design and to break it down into issues that we can work on. Here are some issues:

  • Extend 101worker to go over all directories, not just "contributions".
  • Refactor all 101companies repos to work as one integrated virtual repo.
  • Refactor 101worker to allow for module execution limited to certain directories within said virtual repo.
  • Set up some working space outside said virtual repo on which 101worker can also operate.
  • Set up some service to bring github clones into said working space.
  • Set up some service to apply modules on said working space or said virtual repo (part thereof).
  • Design some protocol for allowing the caller of said service to discover 101worker results.


Aleksey Lashin, Kevin Klein, Martin Leinberger, Arkadi Schmidt, …

CONTRIBUTE: A guided contribution process for 101


With the new 101wiki coming together, the most critical element of coming out with 101companies is the guided (web-based) contribution process including elements of maintaining and withdrawing contributions. We have had a number of discussions on the subject. We are ready to finish design work and code it up. Let's just do it.


Aleksey Lashin, Arkadi Schmidt, Thomas Schmorleiz, …

MOVE: Moving 101 to the new server


Currently our processes and services are scattered over a bunch of machines and their management starts to hurt. Also, we haven't always set up them in a ways that we can easily recover from breakdown, theft, and alike. Overall, this re-hosting and integration will be quite involved. We should do it slowly enough so that we are making the right decisions and that we keep track of all details worth documenting or backing up.


Thomas Bernau, Yves Dupont, Sebastian Jackel, Thomas Schmorleiz, Andrei Varanovich, …

MANAGE: Build and quality management for 101


We have done some work on 101simplejava and 101haskell to move towards proper build management. In the case of 101haskell, we also have tried to improve quality by adhering to name conventions and using consistent unit testing. Still we face more chaos than order. For instance, we don't know yet precisely how we will further deal with the diversity, be it just of the Java projects. Overall, we also have talked about using Jenkins for build management so that we also better understand what the build/test quality is on the grounds of nightly builds. We might also need to set up some virtual machines to get some contributions continuously built and test (and also just to make them available, e.g., for the PTT course). Anyways, so it's time to itemize things and get these issues assigned and resolved. Some results should be achievable during the workshop.


Thomas Bernau, Yves Dupont, Venera Fefler, Sebastian Jackel, …

SCRUTINIZE: Quality push for documentation on 101wiki


This is maybe not the most glorious working group that we are going to have, but it is pretty important one, if we want to make progress on the 101 front and also make the whole content more usable for students and for external users. In a way, everything is there: we do have (somewhere) a documentation model, now, we even have some validation tool, we have a few good examples of well-documented contributions (Do we? Which are those?), we (some of us) know of some best practices for documentation of contributions, technologies, themes, languages, etc. How do we get the most important information in a form that users find this information and it is of good quality? What is the process to incrementally improve what we have. The participants of this working group might also just look around and locate problems, make proposals for edits, make proposals for extra meta-documentation, make proposals for how to file issues, and generally volunteer to improve things even after the workshop.


Tim Budweg, Yves Dupont, Venera Fefler, Kevin Klein, Baharak Rezvan, …

DRINK: Get the new softlang coffee machine going


We have a machine sitting there. It needs to be booted and used. We also have raw coffee material around. So let's get it going. There is a manual, as it should be. The challenge is presumably to figure out what to do to use this machine for the first round of coffee. Anyway, we will solve this problem.


Early birds and coffee addicts

WATCH: Figure out what to do during the movie night


After dinner, during past-dinner hacking, we might just enjoy some movie, and thus, we need to figure out what that will be. This is something that shouldn't be too hard. This is about Friday, specifically. There could also be another movie session on Saturday, if people get too excited about the subbotnik.


Movie aficionados

Left-over topics

These topics could not be covered because of availability constraints. They should be covered next time around.

  • The HRMS domain (Carolin Blankenberg)
  • 101wiki metamodeling and validation (Jan Rüther, Tobias Keweloh)