Last weekend, I traveled to the beautiful city of Brno in the Czech Republic, to attend at speak at the DevConf.CZ open source conference. I had submitted a talk about our ongoing work on the Ceph Manager Dashboard and was very happy that it got accepted, as I haven’t been to a DevConf before.

The conference took place in the lecture halls of the Faculty of Information Technology at Brno University of Technology, which provided a very nice venue with lots of rooms and infrastructure (the WiFi was a tad bit slow, but usable). Still, some talks were so popular that the rooms were full and the session chairs had to block others from entering (something that other conferences like FOSDEM also suffer from). Fortunately, many of the sessions were recorded, so there is an opportunity to watch them later.

The overall organization of the conference was excellent, the organizers had really thought of everything and it was a pleasure to attend this event from a speaker/participant point of view. There was a cloak room, badges that clearly indicated your preference of being photographed or your preferred level of engagement in conversations with other attendees. Food was also available in good variety (both free and several paid-for additional options provided by food trucks). The organizers had also set up a group chat on Telegram, which was used to spread information to all participants quickly.

IMG_20190126_105129_231

My talk Ceph Management and Monitoring with the Dashboard was scheduled for Saturday, 16:00, so I had some time to attend other sessions before and afterwards.

The session schedule was packed and I had a tough time to choose which ones to attend. I ended up with attending the following sessions:

  • Growing Your Career: From Tactical to Strategic — The topic sounded interesting, but I only attended this panel discussion for about 20 minutes, as it was too painful for me to watch how a single lapel microphone was frequently handed over from one panelist to another one so they could be heard. Even a handheld mike would have been an improvement…
  • A Greybeard’s Worst Nightmare — in this session, Daniel Riek summarized the pains of packaging modern applications, the proliferation of custom solutions for distributing software and libraries and how they could be addressed in the modern world of container technologies. Good food for thought, it certainly resonated well with some experiences we have been going through in the openATTIC and Ceph Manager Dashboard project.
  • Open leadership: An invitation to all — this presentation resonated very well with me and I was able to capture a number of good ideas on how to improve my own skills. I liked the style of this session, which was more an open conversation than a head-on presentation. To my knowledge it wasn’t recorded, but the slides are worthwhile checking out.
  • Ceph data services in a hybrid cloud world — Sage Weil, founder and lead developer of the Ceph project talked about the challenges of syncing and moving data across multiple clouds and explained some of the existing and future solutions that Ceph brings to the table to resolve these. I found this session very insightful and it was interesting to learn more about the project’s future plans in this area. I guess our work on the Ceph Manager Dashboard isn’t finished any time soon!
  • Active/Active NFS Serving over CephFS — Jeff Layton gave a very detailed into his work on making it possible to set up NFS services based on NFS Ganesha with CephFS on the backend in a scalable way, this was very insightful (see his blog post for an example on how to set this up). Unfortunately his live demo failed during the presentation with processes getting stuck, but I actually saw the demo before his session and it certainly impressed me!

Unfortunately I could only attend the conference on Saturday, as I was traveling to and back from the event by train on Friday and Sunday. I wished I could have stayed for more! I will definitely plan to go back there some time.

I took a few pictures during the event, which can be found on Flickr :

DevConf.CZ, Brno (CZ), 2019-01-26

More pictures can also be found here and here.

In summary, I had a great time at DevConf.CZ and I can only highly recommend to plan on attending it if you get a chance!

A while ago, I concluded my first year in the openATTIC-Team at it-novum. We’ve gone through a lot of changes and I am quite proud of what we’ve achieved so far. In many ways, we’re starting this project and product from scratch, and I’m excited to be able to contribute to this effort with my experience from past jobs, and to help shaping the future direction. I feel grateful for having a very enthusiastic and supportive team. It’s also quite satisfying to observe how the seeds that we planted slowly come to fruition, as the project begins to gain traction with a growing user base and developer community.

For more details on some of the key highlights, please see my blog post on the openATTIC blog.

The openATTIC project is currently transitioning to adapting the patch contribution signoff process initially established by the Linux Kernel developers, in which every commit message is “signed” with a special Signed-off-by: tag line, that certifies that the patch contribution meets certain criteria with regards to ownership/copyright and licensing.

The git distributed revision control system (DVCS) used by the Linux Kernel and many other projects actually provides an option --sign that can be passed to the git commit command, which will add the Signed-off-by: line at the end of the commit log message automatically.

However, the openATTIC code base is managed using the Mercurial DVCS, which currently does not offer the same functionality out of the box. Fortunately, Mercurial is written in Python and is very extensible: it is possible to extend its functionality and modify the workflows via Hooks and Extensions.

Much to my surprise, I was not able to find an existing plugin or extension that provides this functionality. So I took this opportunity to hone my Python skills and wrote one myself – signoff.py is a simple Mercurial hook, that will automatically add the signoff tag line below the commit message. Currently it is pretty rudimentary, I still need to read up on how to convert it into a proper Mercurial extension that extends the existing hg commit command, so the signoff process can be enabled by passing it as an option.

To enable it, dowmload the file and save it as signoff.py into the .hg directory of your Mercurial repository and add the following to .hg/hgrc:

[hooks]
precommit = python:.hg/signoff.py:sign_commit_message

If you have any suggestions or ideas on how to improve it, please let me know!

Back in the MySQL days, there was a need to have a contributor agreement that made it clear under which terms code contributions to the MySQL code base could be accepted. This was a requirement due to the dual-licensing model of MySQL, under which the software was available both under the GPL and a proprietary license.

This agreement was further refined when MySQL was acquired by Sun Microsystems in 2008, which resulted in the “Sun Contributor Agreement” (SCA), which was used for all Open Source projects that were sponsored/governed by Sun Microsystems (e.g. OpenOffice.org, Java, etc.).

The text of the agreement itself was licensed under a creative commons license (Creative Commons Attribution-Share Alike 3.0 Unported), and it was later used as the basis for contributor agreements of several other Open Source Projects, e.g. MariaDB or OwnCloud (even though both fail to give proper attribution to the original). In fact, the agreement still exists as the Oracle Contributor Agreement today, after Sun Microsystems was acquired by Oracle in 2010. If you would like to submit a patch to MySQL, you first need to get your name on the OCA Signatories List.

While doing some research on creating such a contributor agreement for openATTIC, I was pointed to this very useful resource: http://contributoragreements.org/

“Contributor agreements are agreements between an open source or open content project and contributors to the project that set out what the project can do with the respective contribution: code, translation, documentation, artwork, etc. The purpose of such agreements is to make the terms under which contributions are made explicit and thereby protect the project, the users of the project’s code or content, and often the contributors themselves. Contributor agreements provide confidence that the guardian of a project’s output has the necessary rights over all contributions to allow for distribution of the product under either any license or any license that is compliant with specific principles.”

The nice part about this web site: it provides a guided Contributor License Agreement Chooser that allows you to compile a custom agreement based on the requirements (e.g. Copyright assignment, Patent clauses) that you define, similar to the Creative Commons License Chooser, where you can select the terms and conditions of your license to be guided to the appropriate choice.

So in case your project needs a contributor agreement, please don’t re-invent the wheel and consider making use of this site instead! There are way too many custom agreements floating around already…