Test Faster, Fix More. Property based testing with Hypothesis, with Alexander Hultnér
Did you ever miss that corner case bug? Maybe it was a negative integer, strange timezone conversion behaviour, off by one error or something entirely else. These subtle bugs are often hard to catch and are easily missed in test cases. You, like Alexander, have probably ran into plenty of code utilising only happy path testing, only to later discover subtle bugs which are easily fixed once pointed out.
This is where property based testing comes into the picture. In this talk, Alexander will focus on a wonderful Python library called Hypothesis but the concepts apply to other languages as well. Hypethesis is based on the same concept as the famous QuickCheck library for Haskell, which in turn have been ported a large number of languages. Hypothesis uses a wide range of input to find edge cases that you could otherwise easily miss, once it finds these cases it narrows down the input to the minimal breaking example to provide failures which are easier to understand.
How to (not) make money making open source software, with Andrew Dalke
Andrew sells a software product. For most of the first 10 years, he developed it as commercial open source software. While he made some income selling free software, he ran into several difficulties which aren’t often talked about in the sunshine and unicorns vision of open source software. Last year he started selling proprietary licenses to the same product, which has made at least a few things easier.
Andrew’s experience is a facet of a growing problem in open source software - who maintains our digital infrastructure? Many of the free software tools that thousands or millions of people use are maintained by only one or two people working for free under sometimes stressful circumstances. Watch Brett Cannon’s Setting expectations for Open Source participation PyCon 2018 keynote for one example of this problem in Python.
In his talk he will describe some of technical principles behind his product then switch to the business side and address issues like the differences between open source and free software, his attempts at different free software business models, the larger problem of how to maintain free software, and some of the approaches others have tried, like weaponized AGPL and open core.
Andrew has no real solution to the wider problem of funding open source software development, but sometimes the first step is to highlight that there is a problem. At the very least, he hope to provide some insight for those thinking to develop commercial open source software.