Posted on 10/10/2018 by Martyn Welch
It's no secret that I've long advocated open source software. It's something that I've been quite passionate about for something like 18 years now. So much so that I have literally made working with open source software and helping others benefit from using it my job, thanks to my employer Collabora.
Like all software, open source software isn't without its bugs and issues. If someone tells you that there are no bugs in their software, they are either clueless, dishonest or disingenuously talking about some very, very trivial application (and even then possibly still fall into one of the previous 2 categories). With this in mind, the important part is not whether bugs exist, but how empowered you are to resolve or mitigate the issue you are having. Admittedly I generally have an advantage here over someone less technically inclined, however I'd maintain that open source still provides more avenues for someone without coding skills than may be present with closed source, proprietary software.
Case in point was a bug that I discovered whilst working on a script yesterday. An application, chdist, wasn't working as suggested by the documentation and it was stopping me from doing what I needed to do. It turned out that it was written in a scripting language, which made life easier as I was able to directly look at the code rather than digging it out to begin with. Looking at the code I was able to fairly quickly determine a work around (setting APT_CONFIG in the environment before calling chdist if anyone is interested). As a result I was able to work around the issue quite quickly and continue.
But the story doesn't end there, I was also able to quickly come up a suitable fix (shown in the link below) and was able to submit the fix "upstream" to be included in future versions of the tool. As a result in the future neither I nor anyone else will face this issue with this tool. This was my first time submitting such a change back to the Debian project. Admittedly I was able to seek advice and help about the process from my wonderful colleagues and proposing some changes can be a long and drawn out process (and can require changes to be made to the approach to get the modification accepted). Fortunately in this case the fix was quite trivial and was very quickly accepted. Geek level +1.
Whilst I'm sure there are very responsive companies selling closed source software, my experience and anecdotal evidence suggests that this is generally not the case. Access to the source code, allowed me to quickly work around the issue, something I could not have done if this wasn't available and would have required me to contact the company providing the application (which may or may not have resulted in any positive outcome, in any meaningful time frame) or find an alternative approach. Either of these would have resulted in longer delays and/or effort spent doing what I needed to do. In addition, in this instance, I was very quickly able to utilise the knowledge I had gained debugging the issue to contribute a fix, further improving the quality of a resource available freely to all. I'm not going to lie, it also provided me with quite a bit of satisfaction.
In an ideal world, everyone would implicitly understand that it just makes good business sense to upstream some of the modifications made…
How can we measure the comprehensiveness of a test suite? Code coverage is the standard metric used in the industry and makes intuitive…
A real-world use case of eBPF tracing to understand file access patterns in the Linux kernel and optimize large applications.
Did you know you could register your own PC, or a spare laptop collecting dust in a drawer, to get instant CI going on GitLab? Not only…
For the last month or so, I've been playing with a new project during my work at Collabora, and as I've already briefly talked about at…
For projects of any value and significance, having a comprehensive automated test suite is nowadays considered a standard software engineering…