Mirroring free and open source software matters

Featured image: Patrick Tomasso | Unsplash (photo)

Post theme song: Mirror mirror by Blind Guardian

A mirror is a local copy of a website that’s used to speed up access for the users residing in the area geographically close to it and reduce the load on the original website. Content distribution networks (CDNs), which are a newer concept and perhaps more familiar to younger readers, serve the same purpose, but do it in a way that’s transparent to the user; when using a mirror, the user will see explicitely which mirror is being used because the domain will be different from the original website, while, in case of CDNs, the domain will remain the same, and the DNS resolution (which is invisible to the user) will select a different server.

Free and open source software was distributed via (FTP) mirrors, usually residing in the universities, basically since its inception. The story of Linux mentions a directory on ftp.funet.fi (FUNET is the Finnish University and Research Network) where Linus Torvalds uploaded the sources, which was soon after mirrored by Ted Ts’o on MIT’s FTP server. The GNU Project‘s history contains an analogous process of making local copies of software for faster downloading, which was especially important in the times of pre-broadband Internet, and it continues today.  Many Linux distributions, including this author’s favorite Debian and Fedora use mirroring (see here and here) to be more easily available to the users in various parts of the world. If you look carefully at those lists, you can observe that the universities and institutes host a significant number of mirrors, which is both a historical legacy and an important role of these research institutions today: the researchers and the students in many areas depend on free and open source software for their work, and it’s much easier (and faster!) if that software is downloadable locally.

Furthermore, my personal experience leads me to believe that hosting a mirror as a university is a great way to reach potential students in computer science. For example, I heard of TU Vienna thanks to ftp.tuwien.ac.at and, if I was willing to do PhD outside of Croatia at the time, would certainly look into the programs they offered. As another example, Stanford has some very interesting courses/programs at the Center for Computer Research in Music and Acoustics (CCRMA). How do I know that? They went even a bit further than mirroring, they offered software packages for Fedora at Planet CCRMA. I bet I wasn’t the only Fedora user who played/worked with their software packages and in the process got interested to check out what else they are doing aside from packaging those RPMs.

That being said, we wanted to do both at University of Rijeka: serve the software to the local community and reach the potential students/collaborators. Back in late 2013 we started with setting up a mirror for Eclipse; it first appeared at inf2.uniri.hr/mirrors and later moved to mirrors.uniri.hr, where it still resides. LibreOffice was also added early in the process, and Cygwin quite a bit later. Finally, we started mirroring CentOS‘s official and alternative architectures as a second mirror in Croatia (but the first one in Rijeka!), the first Croatian one being hosted by Plus Hosting in Zagreb.

University’s mirrors server already syncs a number of other projects on a regular basis, and we will make sure we are added to their mirror lists in the coming months. As it has been mentioned, this is both an imporant historical legacy role of a university and a way to serve the local community, and a university should be glad to do it. In our case, it certainly is.

Guest post: celebrating Graphics and Compute Freedom Day

Featured image: Wesley Caribe | Unsplash (photo)

Hobbyists, activists, geeks, designers, engineers, etc have always tinkered with technologies for their own purposes (in early personal computing, for example). And social activists have long advocated the power of giving tools to people. An open hardware movement driven by these restless innovators is creating ingenious versions of all sorts of technologies, and freely sharing the know-how through the Internet and more recently through the social media. Open source software and more recently hardware is also encroaching upon centers of manufacturing and can empower serious business opportunities and projects.

The free software movement is cited as both an inspiration and a model for open hardware. Free software practices have transformed our culture by making it easier for people to become involved in producing things from magazines to music, movies to games, communities to services. With advances in digital fabrication making it easier to manipulate materials, some now anticipate an analogous opening up of manufacturing to mass participation.

It is important to keep sharp open hardware’s more transformational edges, on agendas such as dismantling intellectual property and releasing investment for alternative business models. Only through a mix of craft, politics, and the support of social movements, will open hardware fully realise its potential to democratise technology.

There are numerous organizations and initiatives voiced and supported by the Open Source Hardware Association and a vast thriving community of supporters and technological enthusiasts that are doing to advance this core value. The Open Source Hardware Association aims to be the voice of the open hardware community, ensuring that technological knowledge is accessible to everyone, and encouraging the collaborative development of technology that serves education, environmental sustainability, and human welfare.

Technology and culture ought to respect user freedom. A year ago, AMD made a giant leap towards a fully open source Linux graphics and compute stack driver stack. While still offering proprietary hardware running proprietary firmware, having the driver and the libraries as open source opens potential for modification and performance optimization. In addition, it gives other GPU manufacturers, including NVIDIA and Intel, a standard to aim for. Finally, it gives hope that there will be further openness in the future.

This is why we celebrate Graphics and Compute Freedom Day, GCFD. We want to take one day every year to remember all the open standards, open source software, and open hardware that have made it into the mainstream in the field of computer graphics and GPU computing. It has been exactly one year since AMD has unveiled GPUOpen on 15th December 2015; let’s celebrate GCFD and let’s hope that this year is just a start of many more successful years of graphics and compute freedom.

GCFD will be hosting a livestream starting at 14:30 in Central European Time. Join at www.gcfd.stream.

Što je prvi hrvatski predsjednik rekao o prijetnjama slobodi softvera otvorenog koda?

Naslovna slika: Justin Luebke | Unsplash (fotografija)

Poznati govor prvog hrvatskog predsjednika dr. Franje Tuđmana u Zračnoj luci Zagreb 23. studenog 1996. je jako dobro strukturiran. Stoga je na tekstu govora vrlo lako izvesti search&replace koji mijenja njegov sadržaj, ali zadržava formu. Rezultat nakon nepretjeranog drljanja mi izgleda prilično upotrebljivo:

Mi nećemo dopustiti ostacima vlasničkih Unixa, niti Microsofta, stanje kakvo smo bili zatekli u računarstvu uspostavom slobode softvera i otvorenog koda. Nećemo dopustiti da nam sve to dovedu u pitanje. Nećemo to dopustiti tim ostacima vlasničkih Unixa, ali ni onim tehnološkim redikulima, bezglavim smušenjacima koji ne vide o čemu se zapravo radi danas u slobodnom softveru i u svijetu sa kojekakvim GitHub projektima… Nećemo dopustiti onima koji se vežu i s raznobojnim vragom protiv slobode softvera i otvorenog koda, ne samo s raznobojnim, nego i crvenim i crnobijelim vragovima… Nećemo dopustiti onim koji se povezuju sa svima protivnicima slobodnog softvera, ne samo povezuju nego im se nude, ne samo da im se nude nego im se prodaju za Secure Boot, DRM i softverske patente, kao što se i sami hvale da dobivaju tehnologiju iz svih laboratorija svijeta, a povezuju se od ekstremista zatvorenosti, do kojekakvih lažnih hipstera, pseudootvorenih obmanjivača koji nam danas propovijedaju velike ideje o pravima korisnika i otvorenim standardima.

Da! Mi smo stvarali svoju slobodu za prava korisnika i za otvorene standarde, ali za prava korisnika prije svega većine korisnika slobodnog softvera. Ali ćemo, razumije se, mi sa tom slobodom softvera i otvorenim kodom osigurati i korisnicima neslobodnog softvera ta prava i otvorene standarde. Ali nećemo dopustiti da nam ti sa strane rješavaju, odnosno nameću rješenja. Slobodan softver neće biti pod kontrolom nijedne kompanije. Unix je dosta bio i pod Berkeleyem i pod AT&T-em, i pod Sunom i pod IBM-om, i pod SGI-em. Zajednica oko Linuxa je izborila svoju slobodu, svoju samostalnost, svoje pravo da sama odlučuje o svojoj sudbini.

Izvorni tekst moguće je pronaći na Wikiizvoru.

The academic and the free software community ideals

Featured image: davide ragusa | Unsplash (photo)

Today I vaguely remembered there was one occasion in 2006 or 2007 when some guy from the academia doing something with Java and unicode posted on some mailing list related to the free and open source software about a tool he was developing. What made it interesting was that the tool was open source, and he filed a patent on the algorithm.

Few searches after, boom, there it is

Google is a powerful tool. The original thread from March 2007 on (now defunct) linux-utf8 mailing list can be found on The Mail Archive. The software website is still up. The patent is out there as well.

Back in 2007 I was in my 3rd year of undergraduate study of mathematics (major) and computer science (minor), used to do Linux workshops in my spare time, and was aiming to do a PhD in mathematics. I disliked the usage and development of proprietary research software which was quite common in much of computer science research I saw back then. Unlike these researchers, I believed that that academia and free software community agreed that knowledge should be free as in freedom, and I wanted to be a part of such a community.

Academic ideals

As a student, you are told continuously that academia is for idealists. People who put freedom before money. People who care about knowledge in and of itself and not how to sell it. And along with these ideas about academia, you are passed one more very important idea: the authority of academia. Whatever the issue, academia (not science, bear in mind) will provide a solution. Teaching? Academia knows how to do it best. Research? You bet. Sure, some professor here and other professor there might disagree on whatever topic, and one of them might be wrong. Regardless, the academia will resolve whatever conflict that arises and produce the right answer. Nothing else but the academia.

The idea, in essence, is that people outside of academia are just outsiders and their work is not relevant because it is not sanctioned by academics. They do not get the right to decide on relevant research. Their criticism of the work of someone from the academia does not matter.

Free software community ideals

Unlike academia, free software community is based on decentralization, lack of imposed hierarchy, individual creativity, and strong opposition to this idea of requiring some sanction from some arbitrary central authority. If you disagree, you are free to create software your way and invite others to do the same. There is no “officially right” and “officially wrong” way.

Patent pending open source code

“Some guy from the academia” in the case I mentioned above was Robert D. Cameron from Simon Fraser University, asking free software community to look at his code:

u8u16-0.9  is available as open source software under an OSL 3.0 license at http://u8u16.costar.sfu.ca/

Rich Felker was enthusiastic at first, but quickly saw the software in question was patent pending:

On second thought, I will not offer any further advice on this. The website refers to “patent-pending technology”. Software patents are fundamentally wrong and unless you withdraw this nonsense you are an enemy of Free Software, of programmers, and users in general, and deserve to be ostracized by the community. Even if you intend to license the patents obtained freely for use in Free Software, it’s still wrong to obtain them because it furthers a precedent that software patents are valid, particularly stupid patents like “applying vectorization in the obvious way to existing problem X”.

There were also doubts presented regarding relevance of this research at all, along with suggestions for better methods. While interesting, they are outside the scope of this blog post.

A patent is a state-granted monopoly designed to stimulate research, yet frequently used to stop competition and delay access to new knowledge. Both Mises Institute and Electronic Frontier Foundation have written many articles on patents which I highly recommend for more information. In addition, as an excellent overview of the issues regarding the patent system, I can recommend the Patent Absurdity: How software patents broke the system movie.

So, there was a guy from the idealistic academia, who from my perspective seemed to take the wrong stance. And there was a guy outside of the idealistic academia, and was seemingly taking the right stance. It made absolutely no sense at first that the academia was working against freedom and an outsider was standing for freedom. Then it finally hit me: the academia and the free software community do not hold the same ideals and do not pursue the same goals. And this was also the moment I chose my side: the free software community first and the academia second.

However, academics tend to be very creative in proving they care about freedom of knowledge. Section 9 of the paper (the only part of the paper I read) goes:

A Simon Fraser University spin-off company, International Characters, has been formed to commercialize the results of the ongoing parallel bit stream research using an open source model. Several patent applications have been filed on various aspects of parallel bit stream technology and inductive doubling architecture.

Whoa, open source and patents. What’s going on here?

However, any issued patents are being dedicated to free use in research, teaching, experimentation and open-source software. This includes commercial use of open-source software provided that the software is actually publically available. However, commercial licenses are required for proprietary software applications as well as combinations of hardware and software.

Were it not for the patents, but for the licenses, I would completely agree with this approach. “If you are open sourcing your stuff, you are free to use my open source stuff. If you are not open source, you are required to get a different license from me.” That is how copyleft licenses work.

The problem is, as Rich says above, every filling of a patent enforces the validity of the patent system itself. The patent in question is just a normal patent and this is precisely the problem. Furthermore:

From an industry perspective, the growth of software patents and open-source software are both undeniable phenomena. However, these industry trends are often seen to be in conflict, even though both are based in principle on disclosure and publication of technology details.

Unlike patents, free and open source software is based on the principle of free unrestricted usage, modification, and distribution. These industry trends are seen in conflict, and that is the right way to see them.

It is hoped that the patentleft model advanced by this commercialization effort will be seen as at least one constructive approach to resolving the conflict. A fine result would ultimately be legislative reform that publication of open source software is a form of knowledge dissemination that is considered fair use of any patented technology.

While it would certainly be nice if open source was protected from patent lawsuits, this tries to shift the focus from the real issue, which is the patent itself and restrictions it imposes.

Opening the patents

First possible solution is not to patent at all.

Second possible solution is to license the patent differently. Instead of being picky about the applications of the patent to decide whether royalties ought to be paid, which is the classical academic approach and also used above, one can simply license it royalty-free to everyone. This way, one prevents innovations from being patented and licensed in a classical way. This is what Tesla Motors does.

Third possible solution is to use the copyleft-style patent license, which allows royalty-free use of knowledge given that you license your developments under the same terms. The approach uses the existing patent system in a reverse way, just like the copyleft licenses use the copyright system in a reverse way. This can be seen as an evolution of what Open Invention Network and BiOS already do.

This approach still relies on giving validity to the patent system, but unlike the classical academic approach it also forces anyone to either go copyleft with their derivative patents or not use your technology. Effectively, this approach uses the patent system to expand the technology commons accessible to everyone, which is an interesting reverse of its originally intended usage.

I am still not buying the “new open source-friendly Microsoft” bullshit

Featured image: Georgi Petrov | Unsplash (photo)

This week Microsoft released Computational Network Toolkit (CNTK) on GitHub, after open sourcing Edge’s JavaScript engine last month and a whole bunch of projects before that.

Despite the fact that the open sourcing of a bunch of their software is a very nice move from Microsoft, I am still not convinced that they have changed to the core. I am sure there are parts of the company who believe that free and open source is the way to go, but it still looks like a change just on the periphery.

Really, all the projects they have open sourced so far are not the core of their business. Their latest version of Windows is no more friendly to alternative operating systems than any version of Windows before it, and one could argue it is even less friendly due to more Secure Boot restrictions. Using Office still basically requires you to use Microsoft’s formats, and in turn accept their vendor lock-in.

Put simply, I think all the projects Microsoft has opened up so far are a nice start, but they still have a long way to go to gain respect from the open source community. What follows are three steps Microsoft could take in that direction.

1. Fully support OpenDocument and make it the default format in Office applications

Microsoft has accepted the web standards defined by W3C. Making OpenDocument the default format in Office would be the equivalent of accepting independently standardized HTML and CSS. Even after accepting the format, Microsoft could still compete with free and open source office suites. They could offer more features, more beautiful user interface, better performance, or better quality support. They would, however, lose the vendor lock-in ability.

2. Open source large parts of Windows and the tools required to build custom versions

Apple has been open sourcing large parts of OS X (but not all of it, one should say) since the version 10.0. With significant effort, it is possible to build something like PureDarwin, an open source operating system based on the source released by Apple. Note that, for example, PureDarwin does not use OS X GUI, since Apple has not open sourced it.

Microsoft could do the same with Windows as Apple did with OS X: open source large parts of the code, and allow people to combine it with other software to build custom versions. Even if some parts of the code remain proprietary, it is still a big improvement over what Microsoft is doing now.

3. Spin off the department for Secure Boot bootloader signing into an independent non-profit entity

Since 2012, the machines with UEFI Secure Boot have started to appear on the market. To get your laptop or desktop PC certified for Windows 8, a manufacturer had to support Secure Boot, include Microsoft keys, turn Secure Boot on by default, and allow the user to turn it off. Microsoft agreed to sign binaries for vendors of other operating systems, and vendors like Fedora and Canonical got the signatures.

With Windows 10, the requirement to allow the user to turn Secure Boot off vanished, which prevents booting of unsigned operating systems. Furthermore, Microsoft can at any time revoke the key used for signing operating systems other than Windows and render all of them unbootable. Finally, since the key used to sign other operating systems is a separate key from the one used to sign Windows, the revoking would not affect Windows in any way.

The situation gives Microsoft an enormous amount of power and control over desktops and laptops. It would be much better if the signing process and management of keys was done by an independent non-profit entity, governed by a consortium of companies.


I am sure there are people, even among those who work for Microsoft right now, who would agree with these ideas. However, the support for these ideas itself does not matter much unless and until Microsoft starts taking action in that direction.

And, unless and until that happens, I am not buying the “new open source-friendly Microsoft” bullshit.

AMD and the open source community are writing history

Featured image: Maya Karmon | Unsplash (photo)

Over the last few years, AMD has slowly been walking the path towards having fully open source drivers on Linux. AMD did not walk alone, they got help from Red Hat, SUSE, and probably others. Phoronix also mentions PathScale, but I have been told on freenode channel #radeon this is not the case and found no trace of their involvement.

AMD finally publically unveiled the GPUOpen initiative on 15th of December 2015. The story was covered on AnandTech, Maximum PC, Ars Technica, Softpedia, and others. For the open source community that follows the development of Linux graphics and computing stack, this announcement comes as hardly surprising: Alex Deucher and Jammy Zhou presented plans regarding amdgpu on XDC2015 in September 2015. Regardless, public announcement in mainstream media proves that AMD is serious about GPUOpen.

I believe GPUOpen is the best chance we will get in this decade to open up the driver and software stacks in graphics and computing industry. I will outline the reasons for my optimism below. As for the history behind open source drivers for ATi/AMD GPUs, I suggest well written reminiscence on Phoronix.

Intel and NVIDIA

AMD’s only competitors are Intel and NVIDIA. More then a decade ago, these three had other other companies competing with them. However, all the companies that used to produce graphics processors either ceased to exist due to bankruptcy/acquisition or changed their focus to other markets.

Intel has very good open source drivers and this has been the case for almost a decade now. However, they only produce integrated GPU which are not very interesting for gaming and heterogeneous computing. Sadly, their open source support does not include Xeon Phi, which is a sort of interesting device for heterogeneous computing.

NVIDIA, on the other hand, has very good proprietary drivers, and this has been true for more then a decade. Aside from Linux, these drivers also support FreeBSD and Solaris (however, CUDA, the compute stack, is Linux-only).

To put it simply, if using a proprietary driver for graphics and computing is acceptable, NVIDIA simply does better job with proprietary drivers than AMD. You buy the hardware, you install the proprietary driver on Linux, and you play your games or run the computations. From a consumer’s perspective, this is how hardware should work: stable and on the release day. From the perspective of an activist fighting for software freedom, this is unacceptable.

Yes, if AMD tries to compete with proprietary drivers against NVIDIA’s proprietary drivers, NVIDA wins. When both companies do not really care about free and open source software, I (and probably others) will just pick the one that works better at this moment, and not think much about it.

To give a real-world example, back in 2012 we started a new course on GPU computing at University of Rijeka Department of Informatics. If AMD had the open source heterogeneous computing stack ready, we would gladly pick their technology, even if hardware had slightly lower performance (you do not really care for teaching anyway). However, since it came down to proprietary vs. proprietary, NVIDIA offered more stable and mature solution and we went with them.

Even with the arguments that NVIDIA is anti-competitive because G-Sync works only on their hardware, that AMD’s hardware is not so bad and you can still play games on it, and that if AMD crashes NVIDIA will have a monopoly, I personally could not care less. It is completely useless to buy AMD’s hardware just so that they don’t crash as a company; AMD is not a charity and I require value in return when I give money to them.

To summarize, AMD with (usually more buggy and less stable) proprietary drivers just did not really have an attractive value proposition.

GPUOpen changing the game

However, AMD having the open source driver as their main one gives a reason to ignore their slight disadvantage in terms of the performance per watt and the performance per dollar. Now that AMD is developing a part of the open source graphics ecosystem and improving it for them as well as the rest of the community, they are a very valuable graphics hardware vendor.

This change empowers the community to disagree with AMD about what should be developed first and take the lead. As a user, you can fix the bug that annoys you when you decide and do not need to wait for AMD to fix it when they care to do it. Even if you don’t have sufficient knowledge to do it yourself, you can pay someone to fix it for you. And this freedom is what is very valuable with open source driver.

Critics might say, this is easy to promise, AMD has said many things many times. And this is true; however, the commits by AMD developers in the Kernel, LLVM, and Mesa repositories shows that AMD is walking the walk. Doing a quick grep for e-mail addresses that contain amd.com shows a nice and steady increase in both the number of developers and the number of commits since 2011.

Critics might also say that AMD is just getting free work from the community and giving ‘nothing’ in return. Well, I wish more companies sourced free work from the community in this way and gave their code as free and open source software (the ‘nothing’). Specifically, I really wish NVIDIA follows AMD’s lead. Anyhow, this is precisely the way Netscape started what we know today as Firefox, and Sun Microsystems started what we know today as LibreOffice.

To summarize, AMD with open source drivers as the main lineup is very attractive. Free and open source software enthusiasts do not (nor they should) care if AMD is ‘slightly less evil’, ‘more pro-free market’, ‘cares more about the teddy bear from your childhood’ than NVIDIA (other types of activists might or might not care about some of these issues). For the open source community, including Linux users, AMD either has the open source drivers and works to improve open source graphics ecosystem or they do not. If AMD wants Linux users on their side, they have to remain committed to developing open source drivers. It’s that simple, open or irrelevant.

Non-free Radeon firmware

Free Software Foundation calls for reverse engineering of the Radeon firmware. While I do believe we should aim for the free firmware and hardware, I have a two problems with this. First, I disagree with a part of Stallman’s position (which is basically mirrored by FSF):

I wish ATI would free this microcode, or put it in ROM, so that we could endorse its products and stop preferring the products of a company that is no friend of ours.

I can not agree with the idea that the non-free firmware, when included in a ROM on the card, is somehow better than the same non-free firmware uploaded by the driver. The reasoning behind this argument makes exactly zero sense to me. Finally, the same reasoning has been applied elsewhere: in 2011 LWN covered the story of GTA04, which used the ‘include firmware in hardware’ trick to be compliant with FSF’s goals.

Second, AMD, for whatever reason, does not want to release firmware as free and open source, but their firmware is freely redistributable. (They have the freedom not to open it and even disagree with us that they should, of course.) While not ideal, for me this is a reasonable compromise that works in practice. I can install latest Fedora or Debian and small firmware blob is packaged with the distro, despite being non-free. It doesn’t depend on kernel version, it doesn’t even depend on whether I run Linux or FreeBSD kernel.

To summarize, I would like to see AMD release free firmware as much as anyone supporting FSF’s ideas. And I do not hide that from AMD nor do I think anyone else should. However, I do not consider this issue of non-free firmware to be anywhere as important as having a supported free and open source driver, which they finally have. Since NVIDIA is no better regarding free firmware, I do not believe that right now we have the leverage required to convince AMD to change their position.

AMD and the open source community

Just like Netscape and Sun Microsystems before them, AMD right now needs the community as much as the community needs them. I sincerely hope AMD is aware of this, and I know that the community is. Together, we have the chance of the decade to free another part of the industry that has been locked down with proprietary software dominating it for so long. Together, we have the chance to start a new chapter in graphics and computing history.

Having leverage and using it for pushing open source adoption

Featured image: JD Weiher | Unsplash (photo)

Back in late August and early September, I attended 4th CP2K Tutorial organized by CECAM in Zürich. I had the pleasure of meeting Joost VandeVondele‘s Nanoscale Simulations group at ETHZ and working with them on improving CP2K. It was both fun and productive; we overhauled the wiki homepage and introduced acronyms page, among other things. During a coffee break, there was a discussion on the JPCL viewpoint that speaks against open source quantum chemistry software, which I countered in the previous blog post.

But there is a story from the workshop which somehow remained untold, and I wanted to tell it at some point. One of the attendants, Valérie Vaissier, told me a how she used a proprietary quantum chemistry software during her PhD; if I recall correctly, it was Gaussian. Eventually she decided to learn CP2K and made the switch. She liked CP2K better than the proprietary software package because it is available free of charge, the reported bugs get fixed quicker, and the group of developers behind it is very enthusiastic about their work and open to outsiders who want to join the development.

She is now a postdoc in Van Voorhis Group at MIT. Interestingly enough, Professor Troy Van Voorhis happens to be one of the scientist behind Q-Chem, a proprietary quantum chemistry software. I am sure most of us in academia, knowing MIT’s reputation and having utmost respect for achievements of MIT’s scientists, don’t imagine having an interview for a position at MIT and acting like “I would like to continue using software I choose and this is my condicio sine qua non“. I am also sure that we are even less likely to imagine interview going like this if the software in the question was a direct competitor (in conventional economic terms) to the software your group leader is developing.

Yet, this is precisely how the interview went in Valérie’s situation. Furthermore, standing up in this way for more openness in existing academic institutions is how the world of science moves towards open source software. This is precisely how you get to use your work time to support the things you believe in.

I am sure there are skeptics. They may say: “Yeah, that might be the right thing to do in the ideal world, but you know, it does not work that way in the real world. Just give up trying, you will never pull it off.” Or maybe: “Do you really want to risk your career for promotion of your ideals?” I heard the former too many times to count, and the latter on a Marie Curie fellowship workshop. For me, there was no question about it: “Yes, of course.” Academia should be about freedom and openness first.

Surely, it can work in practice. There is no either/or relationship here, you really can demand both: excellent science in a highly respected institution and science done using open source software. There is, however, something you need to be in position to set the terms: leverage. If you have done your work, you know your stuff, and someone knows what you can do and finds your skills useful, they might be willing to bend on the software choices in your favor. After all, the group leaders want to hire excellent scientists and want them to be motivated.

For me, standing up in this way is the open source scientific software activism at its finest and I hope to see it being done more and more.

What is the price of open-source fear, uncertainty, and doubt?

Featured image: Lili Popper | Unsplash

The Journal of Physical Chemistry Letters, published by American Chemical Society, recently put out two Viewpoints discussing open source software:

  1. Open Source and Open Data Should Be Standard Practices by J. Daniel Gezelter, and
  2. What Is the Price of Open-Source Software? by Anna I. Krylov, John M. Herbert, Filipp Furche, Martin Head-Gordon, Peter J. Knowles, Roland Lindh, Frederick R. Manby, Peter Pulay, Chris-Kriton Skylaris, and Hans-Joachim Werner.

Viewpoints are not detailed reviews of the topic, but instead present author’s view on the state-of-the-art of a particular field.

The first of two articles stands for open source and open data. The article describes Quantum Chemical Program Exchange (QCPE), which was used in 1980s and 1990s for exchange of quantum chemistry codes between researchers and is roughly equivalent to the modern-day GitHub. The second of two articles questions the open source software development practice, advocating the usage and development of proprietary software. I will dissect and counter some of the key points from the second article below.

Just to be clear: I will not discuss the issues of Open Data and Open Access; they are very important and they deserve a separate post. I will focus solely on the use of free and open source software (FOSS) and proprietary software in computational chemistry research.

Reactions and replies by others

There are reactions to both articles already posted on the Internet. Christoph Jacob replied with a blog post titled How Open are Commercial Scientific Software Packages? Among the rest, he says:

To develop, test, and finally use a new idea, it needs to be implemented in software. Usually, this requires using a lot of well-established tools, such as integral codes, basic methods developed many decades ago, and advanced numerical algorithms. All of these are a prerequisite for new developments, but not “interesting” by itself anymore today. Even though all these tools are well-documented in the scientific literature, recreating them would be a major effort that cannot be repeated every time and by every research group – because both time and funding are limited resources, especially for young researches with rather small groups such as myself.

Therefore, method developers in quantum chemistry need some existing program package as a “development platform”. Both open-source and commercial codes can offer such a platform. Open-source codes have the advantage that there is no barrier to access. Anyone can download the source code and start working on a new method.

I fully agree with this idea and the rest of his post, so I will not repeat it here. What is interesting to note, however, is that Christoph is a contributor to ADF, a proprietary quantum chemistry software.

Another well put reply is posted by Maximilian Kubillus. This part is particularly well put:

A letter about scientific open source software, written by TEN authors that own, work for or are founding members of closed-source software companies, saying that [open source software] could never reach the quality of good closed-source software. It also states that good code review won’t happen in [open source] environments and efficient algorithms can only be developed by professional scientific programmers, using words like cyberinfrastructure without any reference to what they mean here and calling promoters of [open source software] naive without giving a real foundation on why their presented open software models don’t work (in their eyes).

I agree with this post as well and I will not repeat it here.

Dissecting the Viewpoint arguments

All quotations in the following text are copied from the Full Text HTML version of the What Is the Price of Open-Source Software? Viewpoint.

Is open source mostly mandated?

The notion that all scientific software should be open-source and free has been actively promoted in recent years, mostly from the top down via mandates from funding agencies but occasionally from the bottom up, as exemplified by a recent Viewpoint in this journal.

It is true that both funding agencies and individuals promote FOSS. However, authors did not cite any data from which they could conclude that promotion happened mostly in a top down way, and only occasionally in a bottom up way. In fact, I would argue that the opposite is true.

As someone who is involved in the open source community since early 2000s, I am well aware of the efforts that were put by open-source supporters to get governments and funding agencies to understand the importance of open source software and mandate it in regulations. As one example of a monumental effort it took to move public sector to open source software and OpenDocument, see Open source lobbying, a story about writing a national policy of open source in Netherlands, presented at 24th CCC in Berlin, 2007.

To summarize: for any top down mandate of open source to happen, a lot of bottom up efforts are required. These efforts are not trivial and usually take a long time, and a lot of (mostly volunteer) effort.

Does it really matter who has the software development skills?

To bring new ideas to the production level, with software that is accessible to (and useful for) the broader scientific community, contributions from expert programmers are required. These technical tasks usually cannot—and generally should not—be conducted by graduate students or postdocs, who should instead be focused on science and innovation. To this end, Q-Chem employs four scientific programmers.

The notion that a certain percentage of scientists (graduate students, postdocs) do not posses technical skills (i.e. software engineering) required for the development of complex codes makes sense; whether this still applies to most of the scientists studying quantum chemistry today can be discussed. Still, the argument does not imply anywhere that the software these “four scientific programmers” are developing should be proprietary or closed source.

Is selling licenses a sustainable model of software development, let alone the only sustainable model?

Sales revenue cannot support the entire development cost of an academic code, but it contributes critically to its sustainability. The cost that the customer pays for a code like Q-Chem reflects this funding model: it is vastly lower than the development cost, particularly for academic customers but also for industry. It primarily reflects the sustainability cost.

A software like Q-Chem earns money by selling licenses and uses this money to fund programmers who develop it, which is the traditional proprietary software business model. This model is very simple, but has many flaws.

Imagine an academic lab using Q-Chem in their protocols. Suddenly, Q-Chem changes a feature the lab cares about, or the lab’s university buys a particular HPC based on the architecture that is not very common on the market and happens to be unsupported by Q-Chem. Or even worse, imagine the company behind Q-Chem disappearing.

Should any of these scenarios occur, the lab in our story is left with a binary which runs on their current computer system. Since the lab has no access to the source code, they are unable to port the code to the new systems. There is only one provider of the service they need (i.e. the improvement of the software they use): the company behind Q-Chem, which owns the intellectual property rights to Q-Chem code. If the lab then decides to switch to another software, they are met with the unexpected additional license costs from buying another proprietary software. That is not all, however, as the update of lab protocols and retraining of lab scientists takes time and effort.

The lab from our story is in a vendor lock-in situation: they can not easily change the vendor providing support for software they use, because the software is closed source and the property of one and only one vendor. Imagine instead the software used by the lab was FOSS. Suddenly, the vendor providing support and maintenance changed conditions so they no longer suit the requirements of the lab, or the vendor goes bankrupt altogether. Another vendor can easily start working on the source code (since it is available to everyone), and this vendor can start providing support to the lab under any mutually agreed contract.

Is the scientific software equivalent to a sophisticated machine in the physical world?

Nevertheless, the software itself is a product, not a scientific finding, more akin to, say, an NMR spectrometer—a sophisticated instrument—than to the spectra produced by that instrument.

This is true. This is why projects such as Open Source Ecology provide blueprints (source-code equivalent) for industrial machines. The reason why the open source movement succeed first in the domain of software is the low cost of making copies of the software (both the source code and the binaries). The cost of the data transmission and storage became so low with the technology advancements that today the only significant cost in producing new software is the development itself. Basically, once developed, the software can be distributed to any number of users at a very low cost.

Is free as in free beer the same as free as in free speech when it comes to software?

There Is No Free Software.

Nice try. There is free software, there is even the Free Software Foundation. The authors should clearly separate the issues of software cost and software freedom, which they did not. The following text demonstrates this clearly.

Are free and open source software companies and customers naı̈ve?

Gezelter acknowledges the cost of maintaining scientific software and suggests alternative models to defray these costs including selling support, consulting, or an interface, all the while making the source code available for free. These suggestions strike us as naı̈ve, something akin to giving away automobiles but charging for the mechanic who services them. Such a model creates a financial incentive to release a less-than-stellar product into the public domain, then charge to make it useful and usable. It is better to release a top-of-the-line product for a nominal fee.

A free and open source quantum chemistry tool can have a graphical user interface (GUI) which would specifically target common lab protocols in, say, material science. If the vendor makes the GUI proprietary, no functionality of the original software is lost. The GUI just makes the same functionality available in a different way, potentially simpler to use. If you want to use the GUI and save time, you have to pay the license fee. If you want to use the quantum chemistry software without the GUI, you are free to do so, and you can even write your own GUI, and even give it out under a free software license. Your freedom to use the original FOSS tool is preserved.

It is in the interest of the software vendor to make both the software and its GUI as high quality and as easy to maintain as possible, to attract code contributions from the outside. In terms of proprietary software, these contributions are equivalent to getting the development work done for free (i.e. without paying the programmer doing it).

As for this business model being naı̈ve, consider the open source leader, Red Hat, which has a 1.5 billion dollar in revenues per year. As for Fortune Global 500 companies, 100% of airlines, telcos, healthcare companies, commercial banks, and U.S. Executive Departments rely on Red Hat. If you look up the names of the companies, you will find out they are anything but naı̈ve.

Finally, the car analogy the authors use is completely flawed. Red Hat did not score the business from NASA, NYSE, or any other organization by giving crappy software for free and then charging for service fees; had they, they would have been easily overtaken by a competitor and out of business by now. Since all of the Red Hat supported software is free and open source, the potential competitor would just take the source code, improve it, and build support around it. Red Hat would find itself in a situation where they have to understand the changes their competitor is making, and the competitor would find that supporting better code would be easier and much cheaper.

To summarize: Red Hat has to be high-quality as it does not have the luxury of owning the source code, which would automatically exclude the competitors from the market.

Can a researcher decide which free software to support without paying the license?

Is “free” software genuinely free of charge to individual researchers? Consider software developed in the U.S. national laboratories. These ventures are supported by full-time scientific programmers employed specifically for the task, and the cost to support and develop these products is subtracted from the pool of research funding available to the rest of the community. The individual researcher pays for these codes, in a sense, with his rejected grant proposals in times of lean funding. In contrast to using one’s own performance metrics to guide software purchases, within this system, one has no choice in what one pays for. In other words, “free software” is not free for you; the only sense in which it is “free” is that you are freed from making a choice about how to spend your research money.

Research funding comes from public money, and the public should be granted full access to the research results it, in a sense, bought. In particular, this access includes access to the source code of the software developed using public funding. By transferring the ownership of the source code to any company we are basically funding private ventures with public money. Furthermore, we are letting the company that gets the ownership of the source code dictate the terms under which the public will access the results it has already paid for.

The interested companies are free to sell support for the software, additional functionality (such as a GUI) designed for the software, or even their development services (say, an implementation or an integration of a particular feature in the open source way), but the part of the software developed using the public money must remain available to everyone under a FOSS license.

Claiming that the individual researcher who did not receive funding for research paid anything is a flawed argument in any sense. However, an individual researcher has a choice what FOSS he will support: as a group leader, he can assign the implementation of his research requirements in a particular software of his choosing to his students and postdocs, he can do the implementation himself, or he can pay an external contractor to do it for him. Furthermore, he can choose an external contractor among many, which is impossible in case of proprietary software since – again – the company behind the software has exclusive access to the code.

Is saving time worth losing freedom?

Computational chemistry software must balance the needs of two audiences: users, who gauge their productivity based on the speed, functionality, and user-friendliness of a given program; and developers, who may be more concerned with whether the structure “under the hood” provides an environment that fosters innovation and ease of implementation. As a quantitative example, consider that the cost of supporting a postdoctoral associate (salary plus benefits) is perhaps $4,800/month. If the use of well-supported commercial software can save 2 weeks of a postdoc’s time, then this would justify an expense of ≳$2,000 to purchase a software license. This amount exceeds the cost of an academic license for many computational chemistry programs. Given the choice between a free product and a commercial one, a scientist should make a decision based on her own needs and her own criteria for doing innovative research.

This is a sensible argument. However, it does not address the freedom issue already discussed above. The lab that buys the license to use the software depends on a single vendor to maintain the software for them. Furthermore, the lab is not granted the rights to modify the code to fit their needs and to redistribute their modifications to their colleagues. The issue here is not the price of the license, but the freedom that is taken away from the paying user.

What Is “Open Source”?

The term “open source” is ubiquitous but its meaning is ambiguous. Some codes are “free” but are not open, whereas others make the source code available, albeit without binary executables, so that responsibility for compilation and installation is left to the user. Insofar as the use of commercial quantum chemistry software is a mainstay of modern chemical research and teaching, there exists a broad consensus that the commercial model offers the stability and user support that the community desires.

Wikipedia provides a definition for open source that says: “open source as a development model promotes a universal access via a free license to a product’s design or blueprint, and universal redistribution of that design or blueprint, including subsequent improvements to it by anyone”. A simple, clear-cut definition.

The authors again confuse freeware with FOSS, and then talk about requirement to compile and install FOSS from source as an issue, which it simply is not. GNU/Linux distributions such as Debian Science and Fedora Scientific provide ready to use binaries for end users that prefer to avoid compiling software.

Finally, the data supporting “broad consensus that the commercial model offers the stability and user support that the community desires” is lacking (and the term itself is ambiguous); I would honestly like to see relevant market share data of quantum chemistry tools presented and discussed. For illustrative purpose, let’s assume a number of citations as a rough metric for number of users and therefore a consensus on the usage of proprietary vs the usage of FOSS codes. Searching for citations in Web of Science gives 542 articles for Q-Chem 2.0 paper and 1581 articles for Advances in methods paper; on the other hand, CP2K QUICKSTEP paper has 938 citations. Despite CP2K having a lower total number of articles citing the relevant paper then Q-Chem, the number of citations is comparable in the order of magnitude. Since there are other FOSS codes (for example, NWChem and Quantum ESPRESSO) as well as other proprietary codes, this result does not prove much. However, this result questions the “broad consensus” claimed by the authors.

Does being open source imply anyone can modify (and break) main source code repository?

Strict coding guidelines can be enforced within a model where source code access is limited to qualified developers, and this kind of stability offers one counterbalance to the “reproducibility crisis”. To the extent that such a crisis exists, it has occurred in spite of the existence of open-source electronic structure codes such as GAMESS, NWChem, and CP2K.

Strict coding guidelines can be enforced in any project, be it FOSS or proprietary software. The ns-3 network simulator and Linux kernel are both good examples of FOSS projects with strict rules on coding style, API usage, and on not breaking the existing functionality.

The “reproducibility crisis” is two separate issues: being able to run the code someone else had ran previously and having the code produce the same result within tolerance despite changes over time. The first issue is actually better solved by open source software since anyone can access the code, and the second one is unrelated to code being open or proprietary, as described above.

Does a good description of the algorithm make the implementation code unnecessary?

Occasionally the open-source model is touted on the grounds that one can use the source code to learn about the underlying algorithms, but this hardly seems relevant if the methods and algorithms are published in the scientific literature. Source code itself rarely constitutes enjoyable reading, and using source code to learn about an algorithm is a last resort forced by poorly written scientific papers. Better peer review is a more desirable solution.

This is true, and we should also note that having both the source code and its detailed description is an ideal situation: you can study both, you can learn implementation tricks which could easily have been omitted from the description, and you can modify the algorithm without having to reimplement it first.

Is freely available to academics free enough?

A more practical use of openly available source code is to reuse parts of it in other programs, provided that the terms of the software license allow this. Often, they do not. Some ostensibly “open” chemistry codes forbid reuse, or even redistribution.

Here the authors cite ORCA and GAMESS. ORCA and GAMESS are not free and open source software. (They are available to academics free of charge – it might be that this fact was the source of confusion.)

Is viral license the problem for adoption?

 Others, such as CP2K, use the restrictive General Public License that requires any derivative built on the original code to be open-source itself. Variation in design structure from one program to the next also severely hampers transferability, even if the license terms are amenable.

GNU General Public License (GPL) is a viral license, meaning that any code which reuses GPL code must also be licensed under GPL. This way, more and more code becomes FOSS over time. The authors are trying to imply that FOSS quantum chemistry tools are the problem for the quantum chemistry software ecosystem due to the GPL. Such implication is a misunderstanding of how FOSS works. Analogous misunderstanding was presented by Steve Ballmer, back in 2001, who said Linux was “a cancer that attaches itself in an intellectual property sense to everything it touches” due to it being licensed under the GPL. Microsoft’s lost decade followed, and one can argue there is a causation since the companies like Apple, Google, and Facebook gladly reused FOSS when they could, and subsequently contributed their improvements back to the FOSS community.

Is it open enough if the software project is open by invite?

To facilitate innovation by developers, source code needs only to be available to people who intend to build upon it. This is commonly accomplished in the framework of “closed-source” software projects by granting academic groups access to the source code for development purposes.

This is too easy to counter. Contributions to a FOSS project can come from anywhere. A student studying a particular variant of an algorithm wants to implement it and contribute it back. A professor trying different algorithms and contributing the best one. With so much FOSS out there, the potential contributor is not going to bother with software source code that is behind an NDA, an email form, or an invitation of some kind. Such potential contributor is unlikely to give his freedom away and sign his code away for the benefits of a particular private venture.

Will open source destroy proprietary software?

What would the impact be on computational chemistry of destroying other teamware projects such as Molpro, Turbomole, Jaguar, Molcas, PQS, or ONETEP, in the interest of satisfying some “open-source” mandate?

I fail to see how the open source mandate per se destroys any proprietary software. Namely, all these proprietary software projects have the option to open source their code and change their business model to compete based on quality, not code ownership. Alternatively, if they desire to continue to maintain the present development practices, they are still free to find other sources of income.

Is proprietary software more optimized?

[Open source mandate] would, in our view, detract from the merit-based review process. When evaluating grant proposals that involve software development, the questions to be asked should be:
1. What will be the quality of the software in terms of the new science that it enables, either on the applications side or on the development side?
2. How will the software foster productivity? For example, how computationally efficient is it for a given task? How usable will the software be, and how quickly will other scientists be able to learn to use it for their own research?
A rigid, mindless focus on an open-source mantra is a distraction from these more important criteria. It can even be an excuse to ignore them, and creates an uneven playing field in which developers who prefer to work with a commercial platform are put at a disadvantage and potentially forced to adopt less efficient practices.

Quality argument presented in the first point has already been addressed above. The second point does not say much without the accompanying benchmarks that would support the idea that, when both are implementing the same method, the proprietary software is computationally more efficient than FOSS. However, there is a report on CP2K performance from Bethune, Reid, and Lazzaro showing the improvement of computational performance over time. These measurements only prove that there is a FOSS project that specifically cares about computational efficiency, but it does not say anything in absolute terms.

Does open source force a scientist to open everything straight away?

Open-source requirements potentially force a scientist to choose between pursuing a funding opportunity versus implementing an idea in the quickest, most efficient, and highest-impact way. A strictly open-source environment may furthermore disincentivize young researchers to make new code available right away, lest their ability to publish papers be short-circuited by a more senior researcher with an army of postdocs poised to take advantage of any new code.

Using open source software under GPL version 2 or later allows a researcher to make private changes and never release them to the public. Namely, GPL version 2 only mandates that a release of the software in binary form be accompanied by the release of the matching source code. Therefore, if anything, the scientist has more options how (and if) to release the code, not less.

As for “army of postdocs jumping on any new code”, I see many more advantages than disadvantages of this particular situation. Namely, since nobody can claim the authorship of anyone else’s code, one can use this heightened interest in the new code to explain to other scientists the research he is doing, and open opportunities for collaboration.

Is orphaned code more common in open source than in proprietary software?

This would contribute directly to the scenario that Gezelter wishes to avoid, namely, one where students leave behind “orphaned” code that will never be incorporated into mainstream, production-level software. Viewed in these terms, an open-source mandate degrades, rather than enhances, cyberinfrastructure.

If the students were developing proprietary instead of open source software, their “orphaned” code would automatically not be available to other researchers for further development. Whether or not any code will be incorporated in production-level software depends on the code quality, its usefulness, and community interest.

Are software freedom and software quality competing features?

How should the impact of software be measured? Scientific publications are a more sound metric than either the price of a product or whether its source code is available in the public domain. Software is meant to serve scientific research, in the same way that any other scientific instrument is intended. As such, the question should not be whether software is free or open source, but rather, what new science can be accomplished with it?

True, scientific publications are one possible way to measure the impact of software. However, open source software is certainly not released in the public domain. As for the question, why not require both the quality and the freedom from software? Are really these two requirements competing against each other?

Is software freedom a political rhetoric?

Let us not allow political rhetoric to dictate how we are to do science. Let different ideas and different models (including open source!) compete freely and flourish, and let the community focus instead on the most important metric of all: what is good for scientific discovery.

The issue of software freedom is both an ethical issue and a practical one, as described above, so it is hardly a “political rhetoric”. I would propose instead that we let the community choose the software to use, based on both freedom and quality. While at it, we should stand firm on the requirement that the publicly-funded scientific software development results in free and open source software. Whether the proprietary vendors will be willing to adapt their business models is ultimately their choice.

Conflict of interest statement

I am a contributor to CP2K and GROMACS open source molecular dynamics software packages. So far, I have attended two CP2K developer meetings, one remotely and one being physically present in Zürich. For my contributions in general and for these attendances in particular, I have not received any monetary compensation from ETH Zürich, University of Zürich, or any other party involved in CP2K development.

Joys and pains of interdisciplinary research

Featured image: Leo Rivas-Micoud | Unsplash

In 2012 University of Rijeka became NVIDIA GPU Education Center (back then it was called CUDA Teaching Center). For non-techies: NVIDIA is a company producing graphical processors (GPUs), the computer chips that draw 3D graphics in games and the effects in modern movies. In the last couple of years, NVIDIA and other manufacturers allowed the usage of GPUs for general computations, so one can use them to do really fast multiplication of large matrices, finding paths in graphs, and other mathematical operations.

Partnership with NVIDIA

To become a GPU Education Center, NVIDIA required us to have at least one recurring course in the curriculum and also hold regular workshops. In return, we got the GPUs to work with. Aside from allowing us to teach, having this hardware gave us an opportunity to initiate research projects using GPU computing. If we are successful in research,  we can take the next step and become a GPU Research Center, and hopefully end up being GPU Center of Excellence at some point. Either of these would give us access to special events, pre-release hardware, special pricing, etc.

Nvidia headquarters on San Tomas Expressway
Nvidia headquarters on San Tomas Expressway. We might end up visiting this location at some point, pretty awesome ain’t it? (Image source: Wikimedia Commons.)

Roughly a year later, in September 2013, we had the Researchers night in Rijeka. The goal was to get researchers from various disciplines to showcase their work, and potentially find collaborators or options for joint projects. I came there to find scientist interested in applying computation in their research, ideally using GPU computing. I was inspired by Assistant Professor Željko Svedružić‘s enthusiasm, and saw the potential for collaboration. A bit later I joined BioSFLab to do research work in computational chemistry in my spare time. At that point I had a PhD thesis to finish and there was little time to do other things.

Dipping toes in computational chemistry

However, computational chemistry seemed worth gambling my spare time, due to a number of resons. First, I had the hardware that would eventually be obsolete, used or unused; second, there were open source software computational chemistry packages which I could contribute to; third, I wanted to move the GPU Education Center closer to becoming the GPU Research Center. Very soon Patrik Nikolić and I were in the lab AM to PM, five to six days a week. GROMACS was running day and night, and we were juggling visualizations in VMD, Chimera, Avogadro, and Marvin (occasionally we hated each of these packages). At some point, we also figured out how to do “simple” quantum mechanics calculations in NWChem and CP2K.

Ethene orbitals
Some orbitals of ethene, computed by CP2K, and visualized by VMD.

Ṛegardless of the extra work, the experience was very rewarding due to a number of things. First, both GROMACS and CP2K are meant to run on Linux. A biochemist might or might not have experience with compiling Linux software and linking it with GPU compute libraries such as NVIDIA CUDA; however, a biochemist does not want to be blocked by taking time to do these things. A computer scientist, on the other hand, is used to working with different operating systems and software. Software, and specifically scientific software, is what you do as a computer scientist. In my particular case, this experties includes both Linux and CUDA. Suddenly, the research group I was a part of started to iterate very fast since all of us did not have to learn the others domain to move forward.

The exchange of knowledge

Second, the knowledge is flowing both ways. After a couple of months, Patrik was using Linux as his primary OS, and I had no problem reading through Professor Svedružić’s copy of Lehninger Principles of Biochemistry. With each new method (e.g. molecular dynamics or nudged elastic band) we exchanged more knowledge. “Let’s try to plot this using Gnuplot” from my side was met with “why don’t we try Diels-Alder reaction” from Patrik’s. Eventually, I could assess approximations of forces resulting from different force fields as good or bad, and Patrik benchmarked GROMACS on one or more GPUs to decide how to run it.

GPUs on motherboard
Multiple GPUs on a single motherboard. GROMACS benefits from using two GPUs for calculation instead of one, kudos to developers on making that possible. We would test with three GPUs, but our most powerful systems have “only” two. (Image source: GBPublic_PR Flickr.)

There is a number of downsides as well. Instead of taking time to expand my horizons, I could have just followed the (un)written rules and take my time to work on projects that will result in papers strictly in field of computer science, because these count. I could have explored opportunities to squeeze more papers by re-exploiting my previous research work. This would enable me to avoid learning to use new software or to postpone developing new features in existing software packages. I could have done either, but I did not because I believed and still believe there are many more productive ways to use my time. (Just to be clear: we did create a publication resulting from this work. Namely, a book chapter written by our group will appear in a book by Elsevier in 2016.)

Formal critera for professorship in support of individual passion and creativity

Present classification of areas of sciences, engineering, biomedicine, biotechnology, social sciences, humanities, and arts in Croatia recognizes interdisciplinary fields of science, but only a handful of them. However, the minimal criteria for professorship in Croatia recognizes interdisciplinary papers only in sciences, biotechnology, and humanities. I am well aware it is hard to write precise criteria about a myriad of possible interdisciplinary combinations of different fields. But I am also aware that having such criteria would expand the amount of possibilities one has to get professorship, and in turn motivate more researchers to look into their options.

I might be an idealist, writing all this. I don’t expect to motivate anyone to do the same; people have very different motivations for doing the work they do. Regardless, I have sort of an addiction to epic quotes, so here is one from Ralph Waldo Emerson.

Every revolution was first a thought in one man’s mind; and when the same thought occurs to another man, it is the key to that era.

That is, we are not the only group in Croatia combining life sciences and computer science. I’m very happy to say that Mile Šikić from University of Zagreb Faculty of Electrical Engineering and Computing, working in area of computer science, has a number of papers in field of bionformatics (look for papers published in Nuclelic Acids Research). Do these papers count for professorship? I have no idea, I guess we will find out eventually, but I doubt that getting counts up was the primary motivation for writing those papers.

Open source magic all around the world

Featured image: Anders Jildén | Unsplash

Last week brought us two interesting events related to open source movement: 2015 Red Hat Summit (June 23-26, Boston, MA) and Skeptics in the pub (June 26, Rijeka, Croatia).

2015 Red Hat Summit

Red Hat provided live streaming of keynotes (kudos to them); Domagoj, Luka and I watched the one from Craig Muzilla where they announced partnership with Samsung. We made stupid jokes by substituting FICO (a company name) for fićo (a car that is legendary in the Balkans due to its price and popularity). Jim Whitehurst was so inspired he almost did not want to speak, but luckily spoke nonetheless. The interesting part was where he spoke how the predicted economics of information revolution is already coming true.

opensource.com cat
Cats are always welcome. Open source cats even more. (Image source: opensource.com Flickr.)

Paul Cormier continued on Jim Whitehurst in terms of showing how predictions come true; his keynote starts with the story how Microsoft and VMware changed their attitude towards Linux and virtualization. He also presents a study (starting at 1:45) showing that only Linux and Windows remain operating in the datacenter, and also that Windows is falling in market share, while Linux is rising. This is great news; let’s hope it inspires Microsoft to learn from Red Hat how to be more open. Finally, Marco Bill-Peter is presenting advances in customer support (in a heavy German accent).

Skeptics in the pub

Watching streaming events is cool, but having them in your city is even cooler. I was invited to speak at the local Skeptics in the pub on whether the proprietary technologies are dying. Aside from being happy to speak about the open source in public, I was also happy to speak about the computer science more broadly. Too often people make the mistake thinking that the computer science researchers look for the better ways to repair iPhones, clean up printers, and reinstall Windows. Well, in some way we do, but we don’t really care about those particular products and aren’t really focused on how to root the latest generation of Samsung phones, or clean up some nasty virus that is spreading.

That isn’t to say that any of these things should be undervalued, as most of them aren’t trivial. It’s just that our research work approaches technology in a much broader way, and (somewhat counter-intuitively) solves very specific problems. For example, one such overview would be to look at the historical development of Internet protocols at Berkeley in the 80’s and later; one such problem would be the implementation of Multipath TCP on Linux or Android.

As usual, the presentation was recorded, so it will appear on their YouTube channel at some point.

Luna Morado and I
Luna Morado introducing me as a speaker. (Photo by Igor Kadum.)

Short version of the presentation is: computers are not just PCs anymore, but a range of devices. Non-proprietary software vendors recognized this expansion first, so open technologies are leading the way in many new areas (e.g. mobile phones and tablets), and have also taken the lead in some of the more traditional ones (e.g. infrastructure, web browsers). The “moving to the open source” trend  is very obvious, at least in software. However, even in software, the proprietary vendors are far from being dead yet. Regardless, there are two aspects of the move towards the open source technologies that make me particularly happy.

First aspect is that, with open technologies taking the lead, we can finally provide everyone with the highly sophisticated tools for education. Imagine a kid downloading Eclipse (for free) to learn programming in Java, C, or C++; one does get to experience the real world development environment that developers all around the world use on a daily basis. Imagine if, instead of the fully functional Eclipse integrated development environment, the kid got some kind of a stripped-down toy software or a functionally limited demo version of a software. The kid’s potential for learning would be severely restricted by the software limitations.  (This is not a new idea, most people who cheer open source have been using this in open source advocacy for many years. I was very happy to hear Thomas Cameron use the same argument at 2015 Red Hat Summit welcome speech.)

Second aspect is that LEGO blocks of the software world are starting to emerge in a way, especially considering the container technologies. Again, imagine a kid wanting to run a web, mail, or database server at his home. Want to set it up all by yourself from scratch? There are hundreds of guides available. Want to see how it works when it works? Use a container, or a pre-built virtual appliance image, and spin a server in minutes. Then play with it until it breaks to see how to break it and how to fix it, preferably without starting from scratch. But even when you have to start from scratch, rebuilding a working operating system takes minutes (if not seconds), not tens of minutes or hours.

When I was learning my way around Linux in the 00’s, virtualization was not yet widespread. So, whenever you broke something beyond repair, you had to reinstall your Linux distribution or restore it from a disk/filesystem image of some kind. If you dual-booted Linux and Windows, you could destroy the Windows installation if you did not know what you were doing. Finally, prior to the Ubuntu and subsequent Fedora Live media, installation used to take longer than it does today. And if you think further and consider the geeks who grew up in the 90’s, it’s easy to see that they had even less ease of use in open source software available to them. Yet, both 00’s and 90’s generations of geeks are creating awesome things in the world of the open source software today.

OK, enough talk, where is the code?

I was so inspired from all this, so I got down to coding. I made a small contribution to systemd (which made my OCD hurt less by wrapping the output text in the terminal better) and a bit larger one to CP2K (which crossed off an item from dev:todo list). On the ns-3 front, we have just finished the Google Summer of Code 2015 midterm reviews, with all our students passing. Good times ahead.