FOSDEM 2018
Saturday
BulletinBoard DHT and WireGuard-VPN
- Kademlia protocol.
- Wireguard is almost in Linux kernel.
- Etcd (other DHT, but for local network).
Observability at Google
https://fosdem.org/2018/schedule/event/google_go/
- Microservice architecture,
- Low level services are shared between many high level services,
- Tricky to observe the impact of individual user-facing products,
- Log records have tags and then we filter by then,
- Context is propagated from the high level services to low level services
and it carries the tags with it. RPC calls carry the tags with them.
- opencensus.io (holistic instrumentation framework): http://opencensus.io/
- This system produces hierarchical call profiles with all the relevant
parameters captured.
- Instrumentation doesn't have a big performance impact unless the data is
collected and stored so we instrument heavily and then turn is on as needed.
- Our intsrumentation library is highly efficient and optimized to make sure
it's easy to instrument aggressively.
- Collection can be dynamically enabled and disabled in production.
- Systems are often not predictable so it's useful to be able to quickly
start collecting additional metrics on demand.
- Aggregation is done as close as possible to the source to reduce bandwidth
consumption by metrics collection.
- OpenTracing is a related API. Data models are compatible and it's possible to
use Census bakends with OpenTracing.
- https://github.com/census-instrumentation/opencensus-python
Connecting the Edge (Project Flogo)
http://www.flogo.io/, @anshuldsharma.
- IoT applications sometimes need real-time data. This can't be done in the
cloud because of latency. We want to move the processing to the device.
- Flogo is a very small framework, much smaller than Java and Node.js. We use
Go and don't bundle any VMs or unused frameworks.
- The application is event-driven and divided in to triggers and actions.
- With Flogo you can target different devices, microcontrollers, containers,
clouds, etc. transparently.
- TensorFlow integration, can run models.
- Current roadmap:
- Model life-cycle improvements,
- Better developer experience.
The circuit less traveled (Investigating some alternate histories of computing)
- Lots of capabilities that existed on mainframes (VMs, versioning filesystems,
smart peripherals) were thrown away with moving to minicomputers, then they
developed it again, then it was thrown away moving to microcomputers, then
workstations, PCs, etc.
- What we got today is the remote descendants of the worst computers that were
developed throughout history. Out of good, fast and cheap, we got fast and
cheap.
- Unix Haters handbook.
- Memristors, Flash DIMMs, non-volatile memory.
- https://www.dreamsongs.com/WorseIsBetter.html
Urbit: the personal server
- Internet is too centralized.
- Urbit: VM that interprets functional assembly that's called Nock.
- Hoon: high level language on top of it. Roughly like statically typed lisp.
- Arvo: OS of Urbit, a bunch of functionality, written in Hoon, <30 kloc.
Making electronics
- Solderless breadboard for prototyping,
- A bit more permanent: Proto / Vero / Strip board,
- Soldering iron: 20-60W pen design, chisel tip,
- When you're soldering: relax and get into a comfortable position.
- For small dense connections: solder paste and reflow soldering.
PPCI project
https://ppci.readthedocs.io/
- Compiler framework in Python, does all stages of compilation from parsing to
linking.
- Backends: X86, ARM, WASM, RiscV, ...
Configuration Revolution
- https://fosdem.org/2018/schedule/event/elektra/
- Elektra configuration database
- https://www.libelektra.org/
XWiki
- https://cryptpad.fr/
- Open source company and how taking VC money changes the mission.
- In many companies Marketing is leading but with OS we follow the community,
so developers are leading.
- They sell the software in their App Store but it can also be self-built from
source.
- They also have paying modules (and they are also open source).
Ouroboros
- https://ouroboros.ilabt.imec.be/index.html
Sunday
GrimoireLab: free software for software development analytics
- https://grimoirelab.github.io/
- also perceval.
The emPeerTube strikes back
- YouTube took over the world and it's very centralized, but it's very hard to
replace it, because:
- Storage,
- Bandwidth (YouTube uses 27% of the internet bandwidth... some study from
some year).
- Self-hosting your own videos destroys serendipity, you can't find videos by
browsing around and there's no recommender.
- PeerTube: https://peertube.cpy.re/
OpenDHT
- https://github.com/savoirfairelinux/opendht
- API:
- put(key, value), get(key) -> value, listen(key, callback).
Scale Out and Conquer: Architectural Decisions Behind Distributed In-Memory Systems
- Apache Ignite - distributed database.
- Affinity collocation - put related data together.
- https://apacheignite.readme.io/docs/affinity-collocation
VR/AR in Matrix
- https://matrix.org/vrdemo/
Are distributions still relevant
- https://fosdem.org/2018/schedule/event/distros_relevant/
- There are lots of containers: docker, cri-o, flatpak
- Distributions bring some advantages, but also some difficulties, for example
if your dependency got updated, you need to update your package to depend on
the new version.
- There are other packaging systems working side by side with the
distribution's package manager. Amazon Extras, NixOS, ...
- NixOS solves DLL hell by allowing several version of the same library side by
side. That's kind of cool but can be confusing for a human admin.
- Fedora Modularity.
Monero
- Bitcoin problems:
- The idea of Bitcoin was to be decentralised, permissionless, trustless, but
it actually not doing a good job at that:
- !permissionless because of transparency that gives traceability --
transactions have been censored, and users have been banned.
- not so decentralised -- mining is actually controlled by a few
organisations.
- it doesn't behave like cash -- buyer and seller can see each other and then
they know how much money they have.
- It's also too slow: 3-4 transactions per second is way too slow (Visa does
1000s).
- Many parameters are hardcoded, for example blocksize limit is kind of a
pain.
- Fixed coin supply puts future functioning of the network in question.
- Monero attempts to fix those issues:
- It's properly permissionless because coins can't be traced.
- It's more decentralised because of anti-ASIC design of the mining
algorithm (it's memory-hard). It's also difficult for GPUs because of lots
of random memory access.
- It behaves more like cash (because there's no traceability).
- It's dynamically scalable, all parameters are adjustable.
- Addresses are one-time use so it's not possible to see if the same wallet
was used in two transations.
- Ring signatures make it impossible to see who signed the transaction.
- Working on I2P integration for additional privacy.
- Optional privacy doesn't solve the problem because if most transations are
public, private transations stand out and this makes them partially
traceable.
- The currency of the future might need to be interplanetary. It must scale to
15 min delays.
Sustainability of Open Source in International Development
The case against "It just works" or how to avoid #idiocracy
- https://fosdem.org/2018/schedule/event/osd_the_case_against_it_just_works_or_how_to_avoid_idiocracy/
- People don't understand how stuff works and it gets worse and worse.
- This is bad of society.
- We're building simple UIs to complex things and by that we don't incentivise
learning and make choices for users.
- Case in point: word processors -- you can't make a nice document if you
don't know how typesetting works.
- Can there be a middle ground? Markdown.
- Sometimes we also hide settings in "advanced" tabs or behind warnings.
- We can build interfaces that encourage learning.
- Teach. Show how they can solve a problem.
- Ask politely if they would like to see more information.
- Use the jargon, don't replace it with "softer" words that nobody actually
uses in the field.
- Make repairs easy.
- Make things replaceable and interchangeable.
- Tech skills, not tools -- if you know how to dig, the brand of the shovel
should not matter.
- I call it "Transparencism": https://github.com/qwazix/transparencism
Open source decisions framework
- https://fosdem.org/2018/schedule/event/osd_the_open_decision_framework/
- https://github.com/red-hat-people-team/open-decision-framework
The future of copyleft
https://fosdem.org/2018/schedule/event/future_of_copyleft/
- 8-12% of copyleft software on average in big software repositories (NPM,
linux packages, etc.).
Cryptpad
- https://fosdem.org/2018/schedule/event/cryptpad/
- https://cryptpad.fr/
- Let's write webapps where the server doesn't know anything!
Testing in Rust - A Primer in Testing and Mocking
- https://fosdem.org/2018/schedule/event/rust_testing_mocking/
- Mocking in Rust is hard because the compiler is so strict. Most mocking
libraries require nightly version at the moment.