FOSDEM: How the humble FAQ got Java Open Source

Rich Sands and I gave a new talk in the Community Devroom at FOSDEM. We explained how important the OpenJDK FAQ had been to Sun’s ability to release the Java platform as Open Source, and explained (using an FAQ of course!) how to use the same approach in other projects.

There’s more to say on the subject (we originally created a 40 minute talk before we found we only had 15 minutes, hence the slight over-run) so hopefully OSCON will accept the proposal we run the whole thing there.

FAQ: Which open source license is best?

A frequently asked question in the world of free and open source software (as well as the origin of many disputes) is “Which open source license is best?”

 

Unlike bilateral copyright licenses, which are negotiated between two parties and embody a truce between them for business purposes, multilateral copyright licenses — of which open source licenses are a kind — are “constitutions of communities”, as Eben Moglen and others have observed. They express the consensus of how a community chooses to collaborate. They also embody its ethical assumptions, even if they are not explicitly enumerated.

When that consensus includes giving permission to all to use, study improve and share the code without prejudice, the license is an open source license. The Open Source Definition provides an objective test of evaluating that such a license is indeed an open source license and delivers the software freedom we all expect.

Since licenses are the consensus of communities, it is natural that different communities will have different licenses, that communities with different norms will find fault with the licenses used by others, and that all will regard their way as optimum. The arguments over this will be as deep as the gulf between the philosophical positions of the communities involved.

Ultimately, there is no license that is right for every community. Use the one that best aligns with your community’s objectives and ethos. Meshed Insights can help you select an open source license for your project as this is not primarily a legal matter; please contact us.

[Now adopted as part of OSI’s official FAQ]

What Is A Blockchain?

The Linux Foundation started a blockchain initiative involving many of its large corporate members. The initiative will devise a viable new approach to blockchains (presumably implemented as open source software) that can be used for any application where a distributed ledger is a useful data structure.

It’s easy to confuse “blockchain”, a distributed document database technology that operates without an authoritative master copy, and “bitcoin”, a virtual currency associated with one particular instance of blockchain technology. So here’s an explanation of the blockchain.

800px-bitcoin_block_data

The “blockchain” is a database, journal or ledger for storing arbitrary documents. It’s maintained as a linked list, with cryptographic signatures verifying each entry. As a public resource, there’s a risk of journal entries being made too often (a bad thing for performance, especially over time, creating a risk of DoS). To prevent this, every entry needs to be accompanied by a token indicating the good standing of the author.

Since issuing tokens from a central authority defeats the purpose of the blockchain, they are instead created by each author independently but verifiably. For the Bitcoin blockchain and many others, the token takes the form of a “proof of work” – a cryptographic evidence of having solved a computationally-complex cryptographic problem within a globally-identified sequence.

There is no master copy of a blockchain; copies of it may be kept anywhere. The validity of each entry in the blockchain can then be independently confirmed by every participant. In the case of the Bitcoin blockchain and many others, this is done by every user replicating the entire blockchain and then comparing new entries against the findings of other users. A voting mechanism between replicas allows the “wisdom of crowds” to identify and reject flawed or fraudulent entries. The crowd involved can be public (as in the case of Bitcoin), or private or indeed a mixture of both.

While Bitcoin is the best-known application of the blockchain, there are many others, including different approaches to the entry token and to cryptography. We expect blockchain to become an important part of distributed systems in many roles: creating auditable logs of transactions, establishing provenance of reference documents such as inventions or contracts, providing a micro-currency for automated transactions in a heterogeneous “internet of autonomous things” and many more beyond the familiar use as a virtual currency.

[Did this help? You can use Bitcoin to leave a tip! See right margin ⇨]