1 of 16

History & Philosophy of Open Source

MozFest - Gradual

2 of 16

Introductions

3 of 16

Agenda

  • History & context from Tom (5-10 min)
  • The day-to-day of maintaining open source from Omar (5-10 min)
  • Open discussion

4 of 16

5 of 16

History & Context

6 of 16

Source: Doug Belshaw - Thought Shrapnel

7 of 16

The day-to-day

8 of 16

Background

  • Have worked at Cesium (cesium.com) for last ~3 years
  • CesiumJS is a large open source library for visualizing geospatial data on a 3D globe
  • 20k weekly npm downloads, 1 million lifetime downloads. ~350k lines of code.
  • Used by FlightRadar24, as well as NASA, Intel, Uber, lots of government use

https://github.com/CesiumGS/cesium/

9 of 16

How was this funded?

  • Compare to ThreeJS https://github.com/mrdoob/three.js/, React, and TensorFlow.
  • Reasons to open source
    • Brand (amongst developers)
    • Brand (amongst B2B customers)
    • Good for society
  • Generally funded by
    • Services contracts (like PhaserJS, PixiJS)
    • Open-core business model (sell a subscription service, like Discourse)

10 of 16

Open source != Free

Unreal Engine is a good example. It is open source but not free to use.

Difference between free as in “don’t pay money for” and free as in “freedom to tweak and adapt”.

11 of 16

OpenCollective

Most popular method of funding I’ve seen emerge in the last few years

https://opencollective.com/discover

12 of 16

What is it like maintaining a popular library

  • Really amazing to be a “voice of authority” in a community
  • Seeing people using it from all over the world
  • Very very overwhelming to keep up with
    • Verifying bug reports
    • Answering questions
    • Satisfying everyone’s particular use cases
    • And finding time to invest in improving docs, new features, and everything else you have to do for your business

13 of 16

Helping out by contributing code

  • One-off code contributions often require a lot of work to:
    • Verify the solution works as expected
    • Verify it doesn’t break anything else
    • Adapt approach/code style to the rest of the code
    • Decide on if this is even wanted
    • Document the new feature
    • Maintain this code...forever
  • Other ways to help out
    • Fix docs
    • Write tutorials
    • Test things, create minimal reproducible test cases
    • Fund it

14 of 16

Discussion

15 of 16

Discussion

Miro board: https://miro.com/app/board/o9J_lRWjRq0=/

  • Where do you see yourself in open source?
  • Where do you see it going?
  • Are there things you wish to change?
  • Or ways you want to contribute?

16 of 16

Tumbler

Come back kid -

Myspace

Foxy the fox

Wikipedia

Smart and ethical

Trustworthy AI

Blockchain

Digital currency

Crypto

scuttlebutt.nz

Decentralised social network

Mozilla

Mr Robot

CERN