FOSDEM 2022ULB (Université Libre de Bruxelles)Brussels2022-02-052022-02-06209:00:0000:05:0009:0000:20K.fosdemkeynotes_welcomeWelcome to FOSDEM 2022maintrack<p>FOSDEM welcome and opening talk.</p><p>Welcome to FOSDEM 2021!</p>FOSDEM StaffRichard Hartmann
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0001:00M.communitycommunity_sustainableMaking a community-managed FOSS project sustainable in the medium- to long-termStrategies and tacticsmaintrack<p>LibreOffice was announced in 2010. After 10 years, it was necessary to review and update the strategy based on the evolution of the office suite market, to improve the sustainability model. Enterprises are not supporting the project as much as individual users. Over time, this can represent a threat for the sustainability of the project. We have changed our strategy to educate enterprises about the right approach to FOSS, by giving back to ensure the long term sustainability of the LibreOffice project.</p><p>LibreOffice was announced in 2010 to relaunch innovation of the already stagnant OpenOffice project. After 10 years of growth, it was necessary to review and update the strategy based on the evolution of the office suite market, to improve the sustainability model.
In fact, enterprises - although deploying LibreOffice to save money over proprietary solutions - are not supporting the project as much as individual users. Over time, this can represent a threat for the sustainability, as development can be slowed down.
We have therefore changed our strategy to educate enterprises about the right approach to FOSS, by giving back in one of the many available ways: purchase the LTS version from the ecosystem, fund the development of a specific feature, pay for the solution of a bug or a regression, and so on.
The right approach from enterprises would ensure the long term sustainability of the LibreOffice project, and the evolution of the Open Document Format (ODF) ISO standard file format for true interoperability.</p>Italo VignoliMaking a community-managed FOSS project sustainable in the medium- to long-term
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
11:0000:30M.communitycommunity_open_scienceEmpowered for Action: Making open Science Practical in the Global South.maintrack<p>As research becomes more globalised and its output grows exponentially, especially in data, the need for open scientific research practices is more evident — the future of modern science. There is now a concerted global interest in open science uptake, but barriers exist. The formal training curriculum in most, if not all, universities in the global South do not equip students with the knowledge and tools to practice open science in their research or develop open-source tools.
To work openly, collaboratively, and build a community, there is a need for awareness and training in using and developing open science tools. Through the OpenScienceKE framework, we developed a model to narrow the gap: the sensitize-train-hack-collaborate model. Using the model, we sensitised through seminars, trained on the use of tools through workshops, applied the skills learned in training through hackathons to develop open-source tools collaboratively. In this talk, I will demonstrate the need to Contextualize open source to ensure that no one is left behind, especially the Global South, and highlight some of our work in building an empowered community.</p>Caleb Kibet
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
12:1500:45M.communitycommunity_issue_backlogWe've got issuesor how we learnt to squish our bugsmaintrack<p>This is the story of how we harnessed the power of the community, automation and good habits to reduce our issue burden and helped users be heard.</p>
<p>5 years into its life and with vast number of users users, Element - a Matrix messaging client available on most desktop platforms, Android and iOS - had a growing backlog of bugs and enhancement requests. This is a common challenge faced by projects as they mature. I will share some of our lessons learnt and good practices that we have developed, and how our enthusiastic community is helping catch bugs earlier and process our backlog. While we have made good progress, we recognise that there are still further improvements to be made and will share some of our ideas for the future.</p>Kat Gerasimova
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
13:0000:45M.communitycommunity_contributionsTearing down Barriers for Contributions by Non-coders and Newcomersmaintrack<p>Contributions to Open Source Projects are always encouraged, especially from Newcomers and Non-coders. However, actually contributing as someone not familiar with the project, its workflows and its tools is usually everything but simple and requires a substantial time investment. This is especially the case if you are not a programmer or not as experienced with the technology in use, which can ultimately discourage otherwise potential willing contributors.</p>
<p>This talk will illustrate concrete steps that you, the maintainers of Open Source Projects, can undertake to simplify the hoops one has to jump through for their first contribution. We will cover various tools that you can use for this, be it for communication, localization, editing or publishing, how to provide good introductory material and how to build a welcoming atmosphere.</p>Dan Čermák
Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
13:4500:45M.communitycommunity_mental_healthNurturing Developer Communities in Unprecedented Timesmaintrack<p>While the coronavirus pandemic continues to send shockwaves throughout almost all industries, it’s important for developers to nurture their communities in a well-efficient way and prepare them for the future. The overwhelmed communication systems, improving remote culture, and fostering community coordination are the three main areas on which we need to focus on. It is important to recognize that community development is an organic process, the listed steps (not in order) are to be considered on how we empower people, communities, and the industries around us:</p><p>Learn about the community
Listen to community members
Bring people together to develop a shared vision
Assess community assets and resources, needs and issues
Help community members to recognize and articulate areas of concern and their causes
Establish a 'vehicle for change’
Develop an action plan
Implement an action plan
Evaluate the results of actions
Reflect and regroup</p>
<p>People want to live in resilient and healthy communities. Well-being and positive mental health start here. Further mental health services need to consider how they harness the assets and strengths of communities in developing approaches that empower people in their recovery journeys.</p>Shivam Singhal
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
14:3000:30M.communitycommunity_questionsHow to ask Good Questions in Open Source CommunitiesBetter questions leads to better answers, saves time and makes you more productivemaintrack<p>Good questions lead to better answers.</p>
<p>Asking good questions is a must have skill for software developers, especially if you are involved in open source projects. The problem with poor questions is clear when the person answering starts explaining what you already know or what you think isn't relevant. Or they might go ahead and assume that you know a lot and you end up being confused.</p>
<p>In this talk, Navendu walks through his experience as an open source contributor and a maintainer and how he was able to improve this skill and how it has benefitted him.</p>
<p>This quick session is for junior and senior developers alike and offers real examples and takeaways that you can start implementing right away.</p>Navendu Pottekkat
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
12:0000:30M.miscmisc_databasesState of Open Source DatabasesA discussion on the changes, trends, and database technologies that are going to impact your business in the next 12-18 months.maintrack<p>It has been an exciting year in the open-source database industry, with more choice, more cloud, and key changes in the industry. We will dive into the key developments over 2021, including the most important open-source database software releases in general, the significance of cloud-native solutions in a multi-vendor multi-cloud world, the new criticality of security challenges, and the evolution of the open-source software industry.</p>Peter Zaitsev
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
15:0001:00M.misccrowdsecurityCrowdsecurityA participative IDS/IPSmaintrack<p>The <a href="https://github.com/crowdsecurity/crowdsec/">CrowdSec</a> project aims at providing a crowdsourced approach to common infrastructure defense problems, by distributing free & open-source software allowing to protect yourself and share information about malevolent actors. These software components, of which Crowdsec is the main piece, work by processing logs and enriching them, to apply behaviour-based scenarios (heuristics) that will identify attacks pattern. One of the core concepts of Crowdsec is to separate the detection of an attack and its reaction, to be suitable for modern architectures. While Crowdsec is in charge of the detection, the reaction is performed by "bouncers" that aim to be deployable at any level of the applicative / infrastructure stack.</p><p>The <a href="https://github.com/crowdsecurity/crowdsec/">CrowdSec</a> project aims at providing a crowdsourced approach to common infrastructure defence problems, by distributing free & open-source software allowing you to protect yourself and share information about malevolent actors.
These software components, of which Crowdsec is the main piece, work by processing logs (or more generally information stream) and enriching them, to apply behaviour-based scenarios (heuristics) that will identify attacks pattern.</p>
<p>One of the core concepts of Crowdsec is to decorrelate the detection of an attack and its reaction, to be suitable for modern architectures.
While Crowdsec is in charge of the detection, the reaction is performed by "bouncers" that aim to be deployable at any level of the applicative / infrastructure stack :
- as a nftables/iptables daemon "a la fail2ban"
- as a nginx plugin
- as a wordpress plugin - a kubernetes ingress controller
- etc.</p>
<p>We hope that this approach, combined with a declarative configuration and a stateless behaviour, will make it an ideal candidate to enhance the security of modern stacks (containers, k8s, serverless and more generally automatically deployed infrastructures).
We are committed to building a strong community, with all that it implies :
- <a href="https://hub.crowdsec.net">a public hub</a> to find, share and amend parsers, scenarios and bouncers. - permissive open-source licence to stay business-friendly</p>
<p>and overall a strong commitment to transparency and community-first mentality, by tooling and behaviour</p>Thibault Koechlin
gh repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
16:0000:45M.miscmisc_network_automationOpen Source Network Automation in 2022How to build a Network Automation strategy around Open Source toolingmaintrack<p>Network Automation has evolved a lot on the last years, adopting a lot of the practices from SDLC (Software Development Life Cycle) but with the intrinsic constraint of networking services. In this talk you will learn about which are the challenges and common use cases around network automation, for instance: configuration management, user-driven workflows, infrastructure as Code (for hybrid and multi clouds) or close-loop automation using Telemetry.
You will realise how a lot of open source projects are coming together to provide solutions to the previous challenges from different angles and how you could connect them together to start building a network automation strategy that could transform your network with lower OPEX, improved reliability and security, and increased innovation.</p>Christian Adell Querol
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
17:0001:00M.miscmisc_ntfs_rustImplementing the NTFS filesystem in RustReusable code from firmware level up to user-modemaintrack<p>Time has come to rewrite our system software in Rust and leave the pitfalls of C behind. This also includes basics such as filesystem support.
I took on the challenge to implement NTFS, the primary filesystem used by Windows, in a Rust crate that is equally usable from the firmware level up to user-mode.</p>
<p>While Rust has been conquering the system software landscape for the past few years, there are next to no examples for implementing filesystems.
Likewise, NTFS only has a single major open-source implementation known as ntfs-3g, and it was developed in C over a decade ago.</p>
<p>This talk will cover my motivation for targeting NTFS and various use cases for such a Rust crate. I will introduce you to the internals of the NTFS filesystem, how they influenced the crate's design, and how Rust's features can be leveraged to create a safe and maintainable implementation. My talk will cover the current implementation, but also the necessary iterations until I got there.
Finally, we will also deal with the current limitations of the Rust ecosystem and possible future improvements to the crate.</p>
<p>You will see that Rust has many advantages for implementing filesystems, and I hope to see more such crates in the future.</p>Colin Finck
Announcement
GitHub repository
ntfs crate at crates.io
Documentation at docs.rs
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
10:0001:00M.rtcrtc_jitsiJitsi: 20 years of Real Time CommunicationsHow the Jitsi project has adapted and remained current in the RTC industry for almost 20 yearsmaintrack<p>The Jitsi project was founded almost 20 years ago, under a different name and just for academic purposes.</p>
<p>Almost 20 years later, the project could not be in a better shape! It has gone through a name change and several acquisitions by large corporations, while remaining current in the industry and innovating all along.</p>
<p>This presentation will take a trip down memory lane and see where Jitsi came from, how it has managed to stick around for so long, and what the future holds.</p>Saúl Ibarra Corretgé
Wikipedia entry
Main project website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
11:0000:45M.rtcrtc_webrtcThe Future of WebRTCNew APIs, WHIP, edge and web 2.5 maintrack<p>What is new in WebRTC, what can we expect to see in the next couple of years?
I'll describe some new APIs and speculate on how they might be used.
I'll introduce whipi (an opensource implementation of the new WebRTC Ingest Protocol) and use it to illustrate how the WebRTC world is changing.
I'll try to predict some new usages of WebRTC - niche high value apps.
Finally I'll describe how to create a decentralized web
(aka web 2.5) using the datachannel and existing browser technology.</p><p>We've all spent a lot of time using centralized video conference services in the last months.
We have got a huge amount done at home whilst behind NAT on domestic ISP connections.
This has all been possible due to webRTC's design.</p>
<p>This talk tries to look beyond that usecase to new less business orientated realtime media and data apps that are enabled by new(ish) APIs.</p>
<p>For economic,privacy and ecological reasons I'll emphasize apps that move computing to the edge.
It will cover Baby monitors, robots, yoga classes and P2P web services and other surprising stuff...</p>Tim Panton
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
12:0000:45M.rtcrtc_whipWebRTC broadcasting with WHIPmaintrack<p>The broadcasting industry has for years been dominated by a specific set of technologies (RTMP, HLS, etc.) that, while effective, suffer from high latencies and so are not always a good option. The IETF has started to look into WebRTC for that, starting from ingestion using the WHIP protocol. This presentation will introduce WHIP, some existing implementations, and how this could be expanded to distribute streams to a wide audience via WebRTC as well.</p><p>The broadcasting industry has for years been dominated by a well known and specific set of technologies (RTMP, HLS, etc.). These solutions do work and are widely deployed, taking advantage of CDNs for distributing streams to a potentially very large audience in an effective way. That said, they do suffer from some limitations, the stronger one being a high latency that cannot really be reduced, if not slightly. Considering there are scenarios where a very low latency may be desired, WebRTC has started to gain some traction, due to its real-time nature that, although originally conceived for conversational scenarios, has actually often used for streaming purposes as well.</p>
<p>When it comes to broadcasting, there are two main aspects to take into account: ingestion (providing a stream to broadcast) and distribution (feeding the stream to an audience). The IETF has started addressing ingestion in the WISH Working Group, with a draft describing the WHIP protocol. This presentation will introduce what WHIP is, its requirements, and how it's supposed to work, plus some details on existing implementations. It will then move to some considerations on how distribution could be handled via WebRTC as well, possibly at scale, using the open source Janus WebRTC Server as a reference implementation.</p>Lorenzo Miniero
WISH Working Group charter
WHIP draft (01)
Blog post on WHIP
IETF 112 WHIP Hackathon
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
13:0001:00M.rtcrfc_rest_futureOn the Far Side of RESTAn Architecture for a Future Internetmaintrack<p>REST, the architecture underlying the web's protocols, has proven its benefits in creating a globe-spanning, decentralized information network. However, REST is showing its age - it was designed when surveillance capitalism, identity theft, information warfare, and other threats were largely hypothetical concerns. Unavoidably, REST leaves many of these issues unaddressed. Best practices fill some gaps, but may not be universally adopted.</p>
<p>The Interpeer Project has been awarded a grant from the Internet Society Foundation for research and development into a next generation architecture that addresses current and future Internet user needs. Such an architecture needs to embrace the strengths of REST, incorporate known best practices, but ideally make worst practices impossible.</p>
<p>This talk presents the issues with REST in some detail and lays out proposed solution sketches. The ideal is to invite participation, however. The 'net needs a wide range of view points to be fixed.</p><p>In 2000, Roy Fielding published his dissertation on Representational State Transfer. Fielding had been actively working on the HTTP standards, which were guiding by informal design principles that REST formalizes. The talk will revisit this architectural style to disambiguate it from how the REST term has become applied since.</p>
<p>Much as software freedoms exist, we need to address "internet user freedoms", and their relationship to human rights. Existing internet technology must be evaluated in this light, in how it supports or hinders human rights.</p>
<p>In this presentation, architectural properties and constraints in the REST architectural style will be analyzed, with regards to the previous discussion as well as technical requirements. We will explore additional properties, and their effect on the architectural style.</p>
<p>The talk will also provide background on concrete work already done or underway on this and adjacent topics.</p>
<p>Finally, we'd like to briefly introduce the non-profit organization created to support work on this project. If we are to create a better digital world, we'll need patience and all the help we can get.</p>Jens FinkhaeuserOn the Far Side of REST
Interpeer Project
#interpeer on libera.chat via element.io matrix bridge
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
14:0000:45M.rtcrtc_unifiedpushUnifiedPushA FOSS cross-platform push notifications protocolmaintrack<p>Our mobile devices have various apps that need updates from various servers at various intervals. Each app connecting to its own server on its own schedule, perhaps using inefficient technologies, can cause a lot of battery drain. Push Notification services are systems that can route all the important updates our devices need - whether they're instant message, VoIP, or social updates - into one shared channel.</p>
<p>Unfortunately, the status quo in push notification services rely on centralized, proprietary services hosted by a third party. UnifiedPush is a set of free and open source specifications that allow you to get push notifications while picking your own hosting provider. This presentation goes over the history of UnifiedPush, current state of the project and architecture, and what the future goals of UnifiedPush are. It also discusses push notifications on Linux phones.</p>Karmanyaah Malhotra
UnifiedPush website
UnifiedPush users intro
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
15:0000:45M.rtcrtc_webrtc_ai_mlBackgrounds are blurry, but the future is clearMore AI and ML in WebRTC applicationsmaintrack<p>Machine learning models have made it to the browser. Virtual backgrounds and background blurs are everywhere! Many recent developments including Tensorflow WASM backend, smaller ML models, pre-trained model repositories have enabled widely used virtual backgrounds and backgrounds blurs.</p>
<p>This talk will explore how a simple background blur works, how developers can code their own blur for a WebRTC call, and most interestingly - what other ML/AI applications can be built using the same framework</p><p>Machine learning models and inferences are being run on the browser and have become very performant. Libraries and frameworks like mediapipe, bodypix have made it easy to integrate ML-based experiences into a WebRTC call with relative ease. We're still in the early days of discovering their possibilities in web applications.</p>
<p>In this talk, we will walk through how Daily integrated mediapipe in its WebRTC library. We will explore:</p>
<ol>
<li>How segmentation models, like the ones used blur backgrounds, work.</li>
<li>How one can integrate an ML segmentation library (like mediapipe) in a WebRTC video call.</li>
<li>What other sorts of custom video applications and experiences one can build using a tech stack like these.</li>
</ol>
<p>Hopefully, this leaves the audience with ideas for writing custom video processors that might enable the next generation of video experiences on WebRTC.</p>Ravindhran Sankar
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
16:0000:30M.rtcrtc_media_streaming_meshIntroduction to Media Streaming MeshEnabling Real-Time Media Applications in Kubernetesmaintrack<p>The cloud-native approach based on containerized micro-services has transformed the software landscape but is largely focused on non-real time web-based applications, especially in the case of service meshes which use web proxies to interconnect workloads. Media Streaming Mesh uses real-time media proxies to observe, route, encrypt and protect north-south and east-west media traffic.</p>
<p>This talk introduces the Media Streaming Mesh architecture and its use-cases, gives an update on implementation status, and acts as a call to arms to recruit more contributors.</p>Giles HeronIntroduction to Media Streaming Mesh
GitHub project
ServiceMeshCon talk (using earlier name of project)
Tech Blog post on MSM
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
13:0000:20L.lightningtalkslt_timewarriorTracking your time with Timewarriorlightningtalk<p>Time tracking is a task many people have to deal with. Be it for writing bills for your client, creating time reports for your company, or simply because you are curious what you are doing with your time all day. Timewarrior is a tool that lets you track your time easily from the command line – it does its job then gets out of your way.</p><p>The presentation wants to give you an overview of what Timewarrior can do for you (and what not), and how you can adapt Timewarrior to your needs.</p>
<p>The talk is aimed at new users, but everyone is welcome to join the Q&A session afterwards.</p>Thomas Lauf
The homepage of the Timewarrior project
Timewarrior repository on GitHub
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
13:2000:20L.lightningtalkslt_reconfigureReconfigure from all overThe case of interdisciplinary open-source communitieslightningtalk<p>As a means of enabling distributed collaboration, open-source enables people from many different disciplinary backgrounds to participate in research projects to which they would otherwise not have access. Additionally, open-source allows for reconfigurable expertise, or the ability to combine people from different backgrounds in ways depending on the task at hand. This talk will discuss the challenges associated with spontaneous interdisciplinary, in addition to opportunities provided by reconfigurable expertise. Examples from three open-source communities: OpenWorm Foundation, Rokwire Community, and the Orthogonal Research and Education Lab. The community building aspects of maintaining members for this type of adaptive and resilient resource are also addressed. When applied to academic-based communities, the ability to reconfigure working groups based on both the immediate and long-term needs of expertise is a valuable model for project management.</p>Bradly AliceaReconfigure From All Over
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
13:4000:20L.lightningtalkslt_humidity_dataMeasuring and analyzing humidity data using Python, syslog-ng and Elasticsearchlightningtalk<p>A desktop thermometer that displays relative humidity is useful, but it does not provide continuous monitoring. In comes the Raspberry Pi: it is small, inexpensive, and has many sensor options, including temperature and relative humidity. It can collect data around the clock, do some alerting, and forward data for analysis.</p><p>Originally it was a project to practice Python and learn Elasticsearch, but ended up with using syslog-ng between the two. Along the way, I also learned how to regulate humidity in my room. In my talk, I plan to cover the following topics:</p>
<ul>
<li><p>collecting environmental data on the Rasbperry Pi using Python</p></li>
<li><p>configuring Elasticsearch to work around a syslog-ng limitation</p></li>
<li><p>configuring syslog-ng to forward the collected data to Elasticsearch / OpenSearch</p></li>
<li><p>take a look at the graphs in Kibana and learn how to keep humidity low in your room</p></li>
</ul>
Peter CzanikMeasuring and analyzing humidity data using Python, syslog-ng and Elasticsearch
sudo/syslog-ng/personal blog
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
14:0000:20L.lightningtalkslt_jupyterJupyter for React.js developersReact.js components to build your custom data product with Jupyterlightningtalk<p>Jupyter notebook is a tool that allows Data Scientist to analyse dataset. However, it is not easy to create a custom user interface integrated in an existing application.</p>
<p><code>Jupyter React</code>, https://github.com/datalayer/jupyter-react, an open-source library, fills that gap and provides components that a developer can easily integrate in any React.js application.</p><p>The Jupyter user interface stack is built on top of Lumino, which is an imperative way to build user interface and can not be consumed by industry standard declarative frameworks like React.js.</p>
<p>As a user interface developer, if you want to create a custom data product on top of Jupyter, you have to stick to Lumino and update the existing notebook interface. This is not what you want. You want your toolkit (like React.js) and you want to integrate on a component basis the Jupyter functionality in your application.</p>Eric Charles
React.js
Jupyter React
Jupyter React Examples
Jupyter Docusaurus
JupyterLab
Lumino toolkit
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
14:2000:20L.lightningtalkslt_cmodC meta-programming for the masses with C%: cmodlightningtalk<p><strong>C%</strong> (from "C with mods") is an experimental meta-programming language that aims to make coding in C more efficient and fun!</p>
<p>Together with <strong>cmod</strong>, the reference pre-processor/code generator (written using <strong>C%</strong> itself), this project enables the C programmer with generic meta-programming constructs such as: parameterized verbatim code snippets, mapping code to static data tables (in TSV or JSON format), multi-pass code evaluation (allowing meta-meta-programming), compile-time command execution (allowing code generation from any other software/language), etc. as well as C-specific constructs such as: function types, named parameters, selection over strings and structs, etc. The <strong>C%</strong> standard library provides convenience constructs for inclusion in C programs.</p><p>Some of the things that <strong>C%</strong> aims to make achievable are:</p>
<ul>
<li><strong>Reusability</strong>: Avoid code duplication.</li>
<li><strong>Consistency</strong>: Use the same data across different locations.</li>
<li><strong>Efficiency</strong>: Perform common tasks quick and easy.</li>
<li><strong>Concision</strong>: Write and work with concise code.</li>
<li><strong>Expressivity</strong>: Better express the intent of code.</li>
<li><strong>Transparency</strong>: Hide nothing from the programmer.</li>
<li><strong>Abstraction</strong>: Handle similar things in a uniform manner.</li>
<li><strong>Extensibility</strong>: Easily add new functionality.</li>
<li><strong>Simplicity</strong>: Keep the language simple but powerful.</li>
</ul>
<p>All while keeping with the spirit of C: <em>trust the programmer and don't prevent the programmer from doing what needs to be done</em>!</p>
<p>Beyond C meta-programming, <strong>C%</strong>'s generic keywords enable meta-programming in other languages such as Python, Flex/Bison, etc.</p>
<p>For full documentation, please refer to the <a href="https://gitlab.com/seirios/cmod/-/blob/master/README.md" title="README">README</a>.</p>Sirio Bolaños PuchetC meta-programming for the masses with C%: cmod
Code repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
14:4000:20L.lightningtalkslg_qbeIntroduction to qbeA lightweight compiler backendlightningtalk<p>qbe is an optimizing compiler backend which consumes programs in a simple intermediate language, optimizes them, and emits assembly for x86_64, aarch64, or riscv64, aiming to achieve "70% of the performance" of advanced compilers like LLVM in "10% of the code". This talk will briefly introduce qbe and its intermediate language, explain how it works and what it's capable of, and go over some sample programs which can be written in it.</p>Drew DeVaultSlidedeck
qbe
cproc C compiler
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
15:0000:20L.lightningtalksld_interplanetary_wheelsInterPlanetary WheelsA resilient approach to distributing softwarelightningtalk<p>InterPlanetary Wheels (IPWHL) are platform-unique, singly-versioned Python built distributions backed by IPFS for security and reproducibility.
Using the peer-to-peer file system IPFS, the distributions have the advantage of being easily replicated and not having a single point of failure, thus are more resilient.
While this project targets at Python package in particular, the idea can be similarly applied to other software distributions such as Linux distributions.</p>Huy NgoSlides previewtranscript
Project page
Project documentation
IPFS home page
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
15:2000:20L.lightningtalkslt_webrecorderMaking the web preservable with open source toolsAn overview of Webrecorder toolslightningtalk<p>The modern web has viewers for all sorts of formats that can be loaded in the web browser, except for other web sites.
The 'Save Page As' feature doesn't really work for most
modern web pages.
This talk will briefly cover the work of the Webrecorder project, from creating a new web archiving format to browser extensions and viewers,
in making archiving and preserving the modern web more accessible to all!</p>Ilya KreymerBrowser Based Web Archiving
Webrecorder Home Page
ArchiveWeb.page Extension and App
ReplayWeb.page Viewer
WACZ Format Specification Draft
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
15:4000:20L.lightningtalkslt_vicious_circleLet's escape this vicious circlelightningtalk<p>Privacy on the internet is stuck in a vicious circle involving tech and legislation, which we need to escape.</p><p>It takes far too long for legislators to transpose directives. The data industry uses an arsenal of dark patterns and technical stunts to creatively interpret or completely circumvent the applicable law.</p>
<p>A new approach is needed to solve this problem in a sustainable way and make the web a better place again. In our talk we will give a brief insight into problematic patterns and techniques as well as approaches to overcome them.</p>
<p>We are Frederik and Hendrik. We're building a fair and open web analytics tool and want to share what we discovered along the way with the FOSDEM audience. This lightning talk will be given by us together.</p>Hendrik NiefeldLet's escape this vicious circle
Offen - Fair web analytics
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
16:0000:20L.lightningtalkslt_3d_exhibitionsGenerating virtual 3D exhibitions from WikipediaLet's dive into some rabbit holes with The Everything Exhibition!lightningtalk<p>Wikipedia and Wikimedia Commons are a treasure trove of free information about a lot of topics! Wikipedia alone contains over 50 million articles in almost 300 languages. We're building a new, fun way to explore this content: "The Everything Exhibition" is an open-source generator that creates interactive, virtual 3D exhibitions on arbitrary topics, which you can explore in the browser! It has a multiplayer mode, so you can visit the exhibitions in groups. And, other than in a real museum, you can scribble on everything!</p><p>In this talk, we want to introduce you to how the generator works, and show you our current progress. We're using the 3D rendering engine three.js, and defined a simple datastructure for describing the exhibition content, to make the generator arbitrarily extendable. We'll go into which algorithms we tried for creating the room layouts, share what we learned in our playtest sessions, and talk about what's next.</p>
<p>With this project, we especially have young people in mind, who are often already used to 3D games and environments. But the Everything Exhibition allows everyone to <em>really</em> get lost in these delicious rabbit holes! :D</p>blinrybleeptrack
Git repository
Visit the Exhibition!
Getting in touch
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
11:0000:45D.apache-openofficeopenoffice_overviewProject Overview 2021/22devroom<p>We will look at the Year 2021, check out what has worked out what did not work out.
We will look at the most imortant things that we need for 2022.
And we will talk about things around the Project</p>Peter Kovacs
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:4500:45D.apache-openofficeopenoffice_linux_packagingRevisiting the Linux packaging for Apache OpenOfficedevroom<p>The current Linux packaging used by Apache OpenOffice is inefficient in many ways. We can take advantage of technologies like AppImage, snap and flatpak in order to make OpenOffice easier to install for Linux desktop users, while saving disk space for releases at the same time.</p>Andrea Pescetti
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:45D.apache-openofficeopenoffice_translationTranslationHow can it go on?devroom<p>Discussion about the way to work on translating UI and Help.</p>Mechtilde Stehmann
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:45D.apache-openofficeopenoffice_containersHow to build OpenOffice todayVirtual machines and containersdevroom<p>Building OpenOffice is not an easy task. The purpose of this presentation is to show how it is possible to leverage virtual machines and containers to:
1- make this task easier and as much automatic as possible,
2- avoid filling our computers with packages and libraries we may never need otherwise,
3- build different releases (trunk, 4.1.x), for different operating systems, on the same computer.</p>Arrigo MarchioriPresentation slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:4500:45D.apache-openofficeopenoffice_buildThe way to a new build Environmentgoto SCONSdevroom<p>The way to a new build Environment: goto SCONS</p>Peter Kovacs
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:45D.apache-openofficeopenoffice_testingApache OpenOffice Verification TestingBuild and Functional Testing with JUnitdevroom<p>The talk will discuss current state of Unit testing in the Apache OpenOffice project and the effort to update the test suites to be useful standalone to run tests against an installed office without being tied to the OpenOffice build process. Also areas where Java developers could get involved.</p>Carl Marcum
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:30D.collabcollaboniroOniro - an open-source starter for fast-paced IoT environmentsA retrospect on an open-source project developmentdevroom<p>In this presentation Sebastian shares project experience gained over nearly 2 years of the Oniro project development in the area of product research & development. He starts with the initial assumptions and various criteria that team members intended to apply to the work done. It was a very interesting experience to apply a product-driven approach to highly-paced open-source projects nowadays. Thus, the great effort was put in order to receive maximum value from products intended to deliver to the market. Ettore is an Embedded Linux Developer, and joins to share the partner experience as he is part of the Hardware Enablement Team for SECO.</p><p>In this talk, Sebastian is going to present a few product management principles, how they were applied to the project and what lessons were learnt in this process. The talk is filled with a few open source projects (e.g. GitLab, OpenProject and others) and how they were applied to the tasks we were faced with. Work package structures and workflows applied were also described to supplement the presentation. To conclude, Ettore joins the talk as representative of one of the Oniro Project partners, SECO, describing how was the experience in the last year, as an Internet of Things Hardware manufacturer.</p>
<p>If you are building an open source community or are aiming to build one, this talk might be an interesting option for you.</p>Ettore ChimentiSebastian SerewaSlides from the talk
Oniro - The Distributed Operating System That Connects Consumer Devices
Oniro sources
Oniro Videos
Our incubation and initial development environment
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:30D.collabcollabinterofficeINTEROFFICEMaking CryptPad more interoperable with common office formatsdevroom<p>The import and export of common office formats (.ods/.xlsx, .odt/.docx, .odp/.ppt) is taken for granted in many online office suites. However, in the case of CryptPad, implementing such functionality presents a number of challenges to preserve our privacy requirements. This has long held back adoption of our platform as it prevented users from migrating existing documents and/or integrating CryptPad in their workflows.</p>
<p>In this talk I will summarize our work on INTEROFFICE, a project realized by the CryptPad team in 2021 with funding from the EU's Next Generation Internet (NGI) DAPSI program. The core of this work consists of a new set of converters that use Web Assembly to perform conversions between file formats in the browser. This allows for CryptPad to be vastly more inter-operable while preserving end-to-end encryption (the server still has no access to the content being converted).</p>
<p>Speaking as the designer on the team, I will focus on the research we conducted with users and on the ways this new functionality is making its way into CryptPad's interface.</p>David Benque
Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3000:30D.collabcollabtracimTracim, the helping hand for all your collaboration needsCome discover Tracim and its architecture devroom<p>Tracim is a web-based collaboration software mainly written by the Algoo company. Main specificities are well-integrated functionalities and intuitive UX. It aims to be easy to use for any kind of people wanting to work in teams.</p>
<p>During this talk, I will tell you about Tracim architecture. You will discover the components and the reasons behind major design choices. Then I will detail more specifically a technical feature which brings Tracim users an interactive experience when collaborating with others.</p>Sébastien GrignardTracim Slides
The main Tracim website, only in French.
Tracim's source code repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3001:00D.collabcollabxwikiXWiki as an FOSS alternative to Confluence and NotionStatus in 2021: realtime editing, livedata feature, confluence migrator and macrosdevroom<p>XWiki is a structured wiki engine developed as Open Source since 2004, providing wiki-style collaboration for organizations, with many built-in features and countless extensions. XWiki has pioneered wikis by including structured data on the same level as free text content, thus enhancing significantly the expressiveness of the built knowledge bases; this same usage is also popularized by Confluence and Notion, with different user experience choices and more importantly with business models that are keeping user's data locked-in on the Cloud or in proprietary software.</p>
<p>In this talk we will present XWiki's journey to provide the best FOSS alternative to proprietary knowledge management tools, based on both current features and future roadmap.</p>
<p>We will showcase XWiki's approach for collaboration on text & structured data, including the newly conceived "livedata" component for inline editing of structured tabular data as well as the new realtime editor based on the realtime editing technology from CryptPad.</p>Ludovic DubostAnca Luca
XWiki Open Source Software
XWiki Live Data
XWiki Realtime Wysiwyg Editor
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3001:00D.collabcollabnextcloudin2021Nextcloud in 2021Overview of 3 releases and a bit under a million featuresdevroom<p>Nextcloud did 3 major releases in 2021, one of which we named "Nextcloud Hub II"because it was such a big step forward for online collaboration. Let's go over what is new!</p><p>A short overview:
* Nextcloud 21 brought major performance improvements with the High Performance Back-end for Files and other improvements.
* Nextcloud 22 brought user-defined groups and workflows, document signing integration, a knowledge base, and many Talk improvements.
* Nextcloud 23 or Hub II introduced Nextcloud Office, appointment booking, background blur, permissions and more in Talk, Nextcloud Backup, AIO docker image, and much more.</p>
<p>Join the talk for more details!</p>Jos Poortvliet
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.collabcollabonlyofficeIntroducing ONLYOFFICE Forms for paperwork automation and smart collaborationdevroom<p>Everyday lots of people have to deal with agreements, contracts, budget plans, and other similar documents. In this regard, an ability to automate work with such files seems appealing. With this understanding in mind, ONLYOFFICE has been working on Smart Forms intended for optimization of file creation and collaboration in any document flow.</p>
<p>In our presentation, we’ll tell you about the newly introduced ONLYOFFICE Forms, new formats (DOCXF and OFORM) built with the purpose of creating standardized document templates and working with them through specifically designed interface elements in ONLYOFFICE Docs.</p>
<p>Presentation milestones:</p>
<ul>
<li>What's the difference between ONLYOFFICE Forms and Content Controls</li>
<li>OFORM and DOCXF</li>
<li>How Smart Forms work in ONLYOFFICE</li>
<li>Form sharing</li>
<li>Data protection in forms</li>
<li>Creating and filling PDF files in ONLYOFFICE Docs</li>
<li>Using ONLYOFFICE Forms in your infrastructure (e.g. Nextcloud, Alfresco, Redmine, etc.)</li>
<li>Roadmap for smart form development</li>
</ul>
Alex MikheevIntroducing ONLYOFFICE Forms (PDF)
Introducing ONLYOFFICE Forms
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.collabcollabcarbonioHow to overcome development challenges when building self-hosted collaboration platformOur experience with Carbonio Community Editiondevroom<p>While the world is moving toward SaaS and Cloud infrastructures, many companies want to keep things in a self-hosted platform or in a private cloud. We’ll talk about all the challenges of building a product that gives users complete control over their data, and how we overcame them, such as migrating from a monolith to services to allow scalability, managing secure service discovery, detaching database from the infrastructure, or managing an easy service installation without any orchestrator. In January, we have released Carbonio CE (Community Edition) source code to show the results of our work. Contributors are welcome!</p>Domenico StragliottoDavide Baldo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3001:00D.collabcollabcspDeploying Containerised Open-Source CSP platformsAlfresco and Nuxeo in action!devroom<p>Understand containerised deployment with Open-Source CSP (Content Service Provider) platforms. Both Alfresco and Nuxeo products provide an easy Docker Compose deployment that allow early adopters and enthusiast developers to use the platforms.</p><p>Public deployment templates are be provided, including detailed instructions on how to use them:</p>
<ul>
<li>Alfresco deployment using https://github.com/alfresco/alfresco-docker-installer</li>
<li>Nuxeo deployment using default Docker Image from https://github.com/nuxeo/docker-nuxeo</li>
</ul>
Angel BorroyDeploying Containerised Open-Source CSP Platforms
Alfresco GitHub
Nuxeo GitHub
Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:2000:40D.cadadvanced_simAdvanced PCB simulation with KiCadIntroduction to IBIS and FEM-based simulationsdevroom<p>Faster computations, faster communication speeds, faster everything. Today electronics can use data rates of several gigabits per second. At such speed wires and tracks are far from being perfect, bugs and glitches may arise because of them. Even low-speed designs are not safe and can encounter high-speed problems because they use high-speed capable chips.</p>
<p>While the electronic CAD software KiCad has the tools to design high-speed boards, there is no tool to validate them. The usual way is to apply all good practice rules, even if they are sometimes overly conservative and might waste some board space. The layout plays an important part in both PCB performance and cost. A PCB simulator, integrated into KiCad, would help designers to find their balance between the two. This presentation is a short introduction to IBIS and FEM, tools that will most certainly be needed for such high-speed simulations, and provides application examples.</p>Fabien CoronaAdvanced PCB simulation with KiCad
IBIS parser and modeler, experimental
Sparselizard-based FEM simulation, with data coming from KiCad PCB's editor, experimental
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0001:00D.cadfreecad_linkFreeCAD Link Branch DevelopmentWhat's done and what's to comedevroom<p>This will be joint presentation between realthunder and officinerobotica. The talk will first give a brief introduction of FreeCAD and its Link Branch, and then proceed to talk about its development in the past year with reference to the talk in FOSDEM21. New features will be presented by walking through the construction of a CAD model using FreeCAD. The talk will finish by highlighting new features in development and the road map ahead.</p>Florin CurelariuLEI ZHENG
Github project page
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:20D.cadlibrepcbLibrePCB Status Updatedevroom<p>A short overview about the progress and the current state of the LibrePCB project.</p><p>LibrePCB is an Open-Source EDA software to design PCBs, providing the following advantages:</p>
<ul>
<li>Cross-platform: Windows/Linux/MacOS/Others | x86/ARM</li>
<li>Intuitive & easy-to-use UI</li>
<li>Powerful library concept</li>
<li>Human readable file format</li>
</ul>
Urban BruhinSlides
Website
GitHub Repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:2000:20D.cadngspicengspice - current status and future developmentsdevroom<p>After a short introduction to the ngspice circuit simulator the first part of the talk will present some new features available in ngspice-36. Among them are SVG plotting capability, acknowledging RKM notation (e.g. 4k7 for 4.7 KOhm resistance), new and improved convergence methods when calculation the operating point, and many others.</p>
<p>The second part of the talk discusses some new features under development or still under discussion, like XSPICE memory management improvements, adding BSIMCMG model for FinFETs, adding IBIS capability (together with KiCad and sparselizard), and S parameter intgration. A lot of discussions is going on among FOSS simulator developers and users about better Verilog-A support.</p>Holger Vogt
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:4001:00D.cadkicadKiCad Project Updatedevroom<p>Update on the KiCad project including recent events, version 6 stable release, and what to expect during version 7 development.</p>KiCad Project Status
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:4000:20D.cadbimHacking through BIM modelsA BIM-oriented hacking session featuring FreeCAD, BlenderBIM and more...devroom<p>BIM (Building Information Modeling) is a paradigm for 3D CAD models made for Architecture, Engineering and Construction (AEC). Long a closed, proprietary garden, it becomes more and more an open, hackable world thanks to several Free and Open-Source tools and formats.</p>
<p>This talk will try to illustrate how rich that world has become when your tinkering, hacking, coding itch starts to scratch...</p><p>In this talk, Dion (developer of BlenderBIM) and Yorik (developer of FreeCAD, specifically its BIM tools) will use these two applications and try to show some clever tricks that you can do with BIM models, that no proprietary software would dream to achieve.</p>Yorik van Havre
FreeCAD
BlenderBIM
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:20D.cadopencascadeOpen CASCADE Technology status updatedevroom<p>Open Cascade Technology (OCCT) is a framework for B-Rep modeling. The lecture presents a technical update from the previous talk (at FOSDEM 2021). This year we also introduce our OCCT's Community Manager who will highlight community-related activities that happened during 2021.</p>Alexander MalyshevVera Sdobnova
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:2000:20D.cadsparselizardSparselizard 2021.11 - your multiphysics FEM simulation tooldevroom<p>This talk shows the features added to Sparselizard in 2021</p>Alexandre Halbach
https://www.sparselizard.org
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4000:20D.cadcadqueryThe CadQuery EcosystemA sampling of community projects and extensionsdevroom<p>CadQuery is a Python module for building parametric 3D CAD models in boundary representation (B-rep). It has an active community that has created editors, personal projects, research projects, examples for new and advanced users, and plugins that extend the functionality of CadQuery. The project is maintained by a small core team and numerous community members. CadQuery is built on the OpenCASCADE (OCCT) CAD kernel, and has support for 2D and 3D primitives, allows 3D assemblies and 2D sketches to be created with constraints, and makes heavy use of features like selectors to help capture design intent.</p>
<p>There are multiple editors available for CadQuery including CQ-editor (desktop application), Jupyter-CadQuery (web based), and CadHub (web based CodeCAD sharing platform). There are repositories dedicated to examples and plugins, as well as separate projects for generating sprockets, chains, fasteners, polyhedra, and complex curves. Community members are responsible for much of the content in these repositories. There are also projects that rely on CadQuery, including in fusion research (Paramak), electrical component 3D model generation (KiCAD), and a more mouse-driven CAD application called Semblage. There are several ways of connecting with the community, including Discord, Matrix, Google Group and GitHub. Please introduce yourself and connect with other CadQuery users.</p>Jeremy WrightThe CadQuery EcosystemThe CadQuery Ecosystem (PDF Version)
CadQuery Repository
CadQuery Documentation
CQ-editor Repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:20D.cadoshwPushing the Open Source Hardware Limits with KiCADOSHW industrial grade computers and servers running cloud, medical and IoT services without hiding secrets in the hardwaredevroom<p>The talk will cover the design of very complex and powerful OSHW Linux
boards based on the new NXP iMX8 and ST STMP1 SOC with FLOSS KiCAD tools
and then running FLOSS software for cloud, IoT and Health to offer full
transparency to the people who value their privacy not only on software
but also on hardware level.</p><p>The talk will cover the design of very complex and powerful OSHW Linux
boards based on the new NXP iMX8 and ST STMP1 SOC with FLOSS KiCAD tools
and then running FLOSS software for cloud, IoT and Health to offer full
transparency to the people who value their privacy not only on software
but also on hardware level.</p>Tsvetan UsunovPushing OSHW Limits with KiCAD
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:4500:05D.conferenceconference_introductionWelcome to the Conference Organisation Dev Roomdevroom<p>Introduction and welcome to the dev room</p>Kyle Robbertze
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:5000:35D.conferenceconference_toolsFree tools that help you run online events in an effective waydevroom<p>Nowadays everyone can run an event (meetup, hackathon, etc), but sometimes we struggle in selecting the right tool to organize it in an effective way. What tools are out there that can help us run any type of event and have impact?. We will do an overview about options, limitations and resources you will need to make a great event.</p>
<p>If you are lost trying to choose the right tool for your first online event, this talk is for you. And if you think you know everything about tools and ways to engage with your audience, you will be welcomed as well, since we will discuss about these things and more.</p><p>Nowadays everyone can run an event (meetup, hackathon, etc), but sometimes we struggle in selecting the right tool to organize it in an effective way. What tools are out there that can help us run any type of event and have impact?. We will do an overview about options, limitations and resources you will need to make a great event.</p>
<p>If you are lost trying to choose the right tool for your first online event, this talk is for you. And if you think you know everything about tools and ways to engage with your audience, you will be welcomed as well, since we will discuss about these things and more.</p>Francisco Picolini
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:35D.conferenceconference_debconfDebConf Conference Infrastructuredevroom<p>DebConf has been online for two years using a combination of our in-person infrastructure and new tools. This talk will describe both setups and what has been done to bring DebConf online.</p>Kyle RobbertzeDebConf Conference Infrastructure
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:1000:30D.conferenceconference_stream_editUsing OBS, Jitsi and Kdenlive to stream and edit conference videosdevroom<p>In light of the pandemic, the foss-north conference has gone virtual since 2020. In this presentation we will discuss our live streaming and video recording setup built around OBS, Jitsi and Kdenlive.</p>
<p>The talk will discuss what software we are running, how and some behind the scenes info about how we run the live events, as well as how we edit and distribute the recordings post event.</p>Johan Thelin
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:5000:35D.conferenceconference_ansible_lessonsLessons from 6 Virtual Ansible Contributor Summitsa.k.a. I don't know how to come up with a fancy title, I just tell it like it is.devroom<p>I have been organizing open-source related meetups and conferences for more than a decade. The past two years have been exceptionally trying. Any guesses as to why that is? :)</p>
<p>In this session, I will share our experiences from the 6 online Ansible Contributor Summits that we have held through 2020-2021. While the virtual platform gave us more flexibility in many ways (such as having 3 events in a year instead of the usual 1), it definitely presented many new challenges as well. From pre-event marketing to technologies used during the summits, post-event surveys + feedback that feed into the next event, it's a continuous cycle of trials, errors, and improvements.</p>
<p>There is also a major shift towards using open source tools and workflows for the summits, at the request of some community memebers as well as the desire within our team. I'll share what fell short and what thrived, and how the changes impacted not just conference management for our team, but also how the Ansible community received these events. Because at the end of the day, these conferences are for the community contributors and participants!</p>Carol ChenLessons from 6 Virtual Ansible Contributor Summits
Ansible Community
The Bullhorn - Ansible developer newsletter
Ansible Contributor Summit
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:40D.conferenceconference_primerFOSS Events PrimerGet Out There and Run One!devroom<p>When you want to see your community grow, running a local event is a great idea. Luckily, many FOSS projects have been down this path, so you won't need to start from scratch. This talk covers the process of running a successful community event, from finding great folks to plan with -- to follow-up for the next event.</p><p>When you love your community, you want to see it grow and become stronger. And if you are also lucky enough to have a little extra time and enthusiasm? Well, then it might be time to run an event. Many FOSS projects have been down this path, so you won't need to start from scratch. This talk will cover:</p>
<ul>
<li>Setting the scope for your event</li>
<li>How to find folks to work with</li>
<li>Creating a plan for success</li>
<li>Making sure attendees have a great time</li>
</ul>
<p>Once you have a solid plan in place, running a community event can be very rewarding. Attendees will walk away with a sense of where to start and a strategy for finding the resources they'll need to put on an inspiring community event.</p>Deb Nicholson
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:2001:00D.conferenceconference_pgeuUsing pgeu-system to manage your conferencedevroom<p>The pgeu-system is an integrated system for managing conferences. Originally developed for Postgresql Europe's own conferences, the system has grown into a generic system for managing events, visitors, speakers, sponsors, and volunteers. It integrates the functions such as call-for-papers, managing schedules, invoicing, accounting, and more.</p>
<p>In this talk we will do a whirlwind tour of the tool, from the context of the foss-north conference.</p>Johan Thelin
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:35D.conferenceconference_fosdemFOSDEM Conference Infrastructuredevroom<p>A technical overview of how the FOSDEM conference is run: the tools we use, the tools we wrote, and the processes we use; both for the in-person version of the conference as well as the online one of which we're doing our second edition this year.</p>Wouter VerhelstSlides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:1500:40D.dart-flutterflutter_project_setupMake the code work for you: Flutter Code Generationdevroom<p>Every programmer's dream is constantly building new features and seeing how the project grows. However, there is nothing worse than writing a lot of boilerplate code just before even start implementing those features. In this talk, you will learn about Flutter code generation tools and various tips on how to avoid implementing boilerplate code and focus on your next-gen project.</p>Mangirdas Kazlauskas
GitHub repository
Presentation slides
Reach out to the speaker
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:5501:00D.dart-flutterflutter_testingThe beautiful world of Flutter TestingIntroduction to Flutter Testingdevroom<p>Modern applications have tons of features and possibilities, and the more features there are, the harder it gets to be tested manually. Also, advocates for Test Driven Development makes testing even more important. In this session, we want to explore the possibilities of how to Test your Features in Dart and Flutter. We will discuss Unit, Widget and Integration tests in this session, what it is and why you will love the support in your next project.</p>Max Weber
Unit / Widget Testing
Integration Testing
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:5501:00D.dart-flutterflutter_pwaBuilding PWA with Flutterdevroom<p>Progressive Web Apps are web applications that have been designed, so they are capable, reliable, and installable. These three pillars transform them into an experience that feels like a platform-specific application.
The central core components that ensure that PWA works flawlessly are Service Workers. These components are a network proxy that takes control of a network request from the application and adds cache capabilities, background app sync, push notifications, and offline features.
In this talk, I will review the PWA capabilities in Flutter and show you how you can extend these functionalities to have a better progressive web app building with Flutter in order to boost user experience in your application</p>Majid Hajian
slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:5501:00D.dart-flutterflutter_state_managementArchitectural thinking on Flutter State Managementdevroom<p>Sometimes state management shapes the application architecture, which we even interchangeably call state management, app architecture. State management is a controversial topic among all developers, and it's, at the same time, one of the most complex topics that developers should decide on when they are building a Flutter app. Many developers say one solution is the best, whereas some disagree! What if I tell you that, in my opinion, there is no right and wrong answer! If you ask a software architect, which state management is the best for an application? The answer is evident; It Depends.
This talk discusses how to think like an architect and understand, recognize, and analyze tradeoffs and characteristics when choosing state management. I will show you why all state management might be best and worst, at the same time for your application which eventually helps you to make your mind to determine your appropriate solution.</p>Majid Hajian
slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:5500:30D.dart-flutterflutter_nftFlutter in the NFT worlddevroom<p>How to create and deploy NFTs with Flutter and the Algorand blockchain.</p>Arjan van Eersel
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:30D.embeddedembedded_linux_mysteriesFive mysteries in Embedded Linux devroom<p>Once you start out in embedded linux, there is a lot to do. Some things are obvious, some less so. First and foremost, you can put your knowledge of using Linux on the desktop to good use, right? This approach feels like a natural progression, but it has its pitfalls - some of which this talk aims to help you understand and ultimately avoid.</p><p>Building and developing an embedded linux system sometimes feels like magic. It's all open source, right? You can just grab the code and make it do your bidding!</p>
<p>But just like the Sorcerer’s Apprentice in the poem, you might find yourself struggling with the spirits that you just called, like
What a “Distribution” is, and why is it important that you know
Why package management is so different
Where configuration happens, and where not
When to update, and what</p>
<p>This talks covers five of the most common misconceptions that beginners have when they cast their first spells in embedded linux, not only to avoid them backfiring - but to actually harness the power.</p>Josef Holzmayr
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:30D.embeddeddirectfbBack to DirectFB!The revival of DirectFB with DirectFB2devroom<p>DirectFB2 is a fork of DirectFB, a graphics library designed with embedded systems in mind that was widely used in the GNU/Linux embedded world. DirectFB2 comes with changes such as a Meson build system, a pure C implementation and a modularization of the source code.</p>
<p>Access to the low-level display is based on a DRM/KMS system module (or possibly on a legacy Framebuffer system module), and depending on the platform, hardware-accelerated graphics rendering can be achieved using the architecture of the GFX driver modules.</p>
<p>The core library is very light (no external dependencies) and provides basic font/image/video rendering support which can be demonstrated with the DirectFB-examples.</p>
<p>The use of additional DirectFB providers based on external libraries is also possible thanks to the DirectFB-media package, such as rendering fonts with the FreeType library, rendering images with libpng or jpeg libraries, rendering videos with FFmpeg or GStreamer libraries.</p>
<p>For 3D graphics, OpenGL or Vulkan rendering can be done with the DirectFB graphics backend. As an example, the Mesa 3D implementation makes OpenGL rendering possible with a DirectFBGL module or with EGL for the DirectFB platform, and the SwiftShader implementation makes Vulkan rendering possible with the DirectFB WSI.</p>
<p>This talk aims at getting started with DirectFB2 which may be worth considering on some devices.</p>Nicolas CaramelliBack to DirectFB!
The DirectFB2 open source project
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3001:00D.embeddedautomotive_eth_phyAutomotive Ethernet PHY bring-up: lessons learned and debug tipsdevroom<p>I would like to share my experience bringing up various Automotive Ethernet Gigabit PHYs on an iMX8 platform.</p>
<p>Agenda:</p>
<ul>
<li>PHY configuration CheckList (= What I need to know about my PHY, my schematic before starting the bring-up)</li>
<li>SW implementation (= step-by-step SW integration + common pitfalls to avoid, mainly focused on Linux, but I talk also about U-Boot)</li>
<li>Debug tips (= SW and HW tips)</li>
</ul>
<p>This presentation is based on a training I already gave internally in the Valeo Group (with some extra additions).
This experience led to some patches that I hope to push at U-boot and Linux level.</p>Jean-Louis ThekekaraAutomotive Ethernet PHY bring-up
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:30D.embeddedrauc_ab_updatesBringing RAUC A/B Updates to More Linux Devicesdevroom<p>RAUC is a safe and secure open source software solution for A/B updates of embedded Linux devices. RAUC supports industry-leading build system: the Yocto Project and OpenEmbedded, Buildroot and PTXdist. Porting RAUC to a new device requires several advanced technical steps. Layer meta-rauc-community exists to speed up and simplify the integration process for Yocto and OpenEmbedded by providing examples for popular devices such as Rasperry Pi, Allwinner (Sunxi), NVIDIA Tegra and QEMU.</p><p>RAUC is a popular solution for A/B updates of embedded Linux devices because of its flexibility, safety and security features. It supports industry-leading build system: Yocto Project and OpenEmbedded, Buildroot and PTXdist. Upgrades are performed through RAUC bundles which can be installed either through the network or just using a USB stick.</p>
<p>To port RAUC to a new device, we need to go through several steps: setup appropriate bootloader like U-Boot, enable SquashFS in the Linux kernel configurations, use ext4 file system, create partitions and configure RAUC slots, generate certificates and setup bootloader environment configurations with a script to switch RAUC slots over upgrades. To simplify the getting started process of developers using RAUC with Yocto and OpenEmbedded in 2020 Leon Anavi created layer meta-rauc-community. In 2021 the layer was moved to the RAUC organization in GitHub. Initially it offered only Raspberry Pi support and over the time, thanks to numerous community contributions, the support was extended to more machines. As of the moment meta-rauc-community provides RAUC sample integrations for Raspberry Pi, Sunxi (Allwinner), QEMUx86 and NVIDIA Jetson TX2.</p>
<p>This presentation will provide a brief introduction to RAUC and will focus on layers meta-rauc and meta-rauc-community. We will go through the exact steps how build, flash and update an image using bitbake to the currently supported platforms. Furthermore we will discuss general guidelines for porting RAUC and adding new supported machines to meta-rauc-community in the future.</p>
<p>The talk is appropriate for anyone with basic knowledge about Linux. It will hopefully help other software developers in the community to overcame faster and easier similar technical difficulties while integrating the RAUC client on embedded Linux devices and hopefully contribute back to the Yocto/OpenEmbedded layer meta-rauc-community.</p>Leon AnaviBringing RAUC A/B Updates to More Linux Devices
RAUC
Yocto/OE layer meta-rauc
Yocto/OE layer meta-rauc-community
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
Software Updates with RAUC, the Yocto Project and OpenEmbedded
Getting Started with RAUC on Raspberry Pi
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0001:00D.embeddedply_ebpfply: lightweight eBPF tracingdevroom<p>In this talk, I will show you how to build and deploy ply (a dynamic tracing language for eBPF) to a BeagleBone Black then write ply scripts to attach probes and tracepoints to a running kernel and application on that same target. eBPF has rapidly eclipsed all previous tracers for Linux. While eBPF has taken the cloud native community by storm, the technology has yet to make significant inroads within the embedded Linux ecosystem. I will explain the reasons for this current situation and demonstrate a possible way forward.</p>
<p>The bpftrace dynamic tracing language relies on the LLVM-based BCC toolchain to compile scripts down to eBPF bytecode. Because of its dependency on LLVM, BCC only supports a few 64-bit CPU architectures, severely limiting the use of eBPF in embedded systems. Fortunately, the IO Visor Project offers a lightweight alternative to bpftrace called ply. Like bpftrace, ply’s syntax is inspired by both DTrace and awk. Unlike bpftrace, ply targets embedded CPU architectures like ARM and PowerPC making it possible to deploy eBPF to many more devices. Buildroot includes ply as of its 2021.02 LTS release.</p>Frank Vasquez
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.embeddedbuild_systems_all_way_downBuild Systems all the way down.Untangling OpenEmbedded/meta-zephyr/zephyr integration in Eclipse Onirodevroom<p>In this talk, pidge will take a critical look at the places where meta-zephyr
succeeds and fails in its original goals, the reasons behind that and the
steps being taken to fix those issues.</p><p>OpenEmbedded, Zephyr and meta-zephyr are powerful tools that can give IoT
developers the ability to rapidly develop embedded solutions. Integrating
them all however is challenging, made more so by wrapping multiple build
systems, machine configurations and build languages into a coherent solution.</p>
<p>In this talk, pidge is going to show changes being implemented through her work
on the Eclipse Oniro project to the meta-zephyr layer that bring most zephyr
supported machine configurations into meta-zephyr but also removes the need for
OE machine configurations to have any knowledge of core zephyr modules. She will
discuss the issues she encountered around integating those changes from the zephyr
side.</p>Eilís Ní FhlannagáinBuild Systems All The Way Down FOSDEM-2022
meta-zephyr
Oniro: The Distributed Operating System That Connects Consumer Devices Big and Small
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3001:00D.embeddedfpga_programmingOne stop shop: Best Practices for Programming Embedded FPGAsdevroom<p>FPGAs are increasingly being used in today's embedded systems. But they are notoriously complex for having a difficult programming model. In order to counter this complexity, there has been a growing focus to design FPGA hardware at a higher level of abstraction with new languages and compilers. This talk will serve as "one stop shop" for topics related to these developments.</p><p>Are you an embedded developer? Do you like FPGAs? Do you want to know the best programming practices for embedded systems that deploy FPGAs? Do you like economical hardware? Do you like open source projects? If your answer is "yes" to either of the aforementioned questions, then this talk is for you. As the title goes, this talk and its content will actually be "one stop shop" for best practices related to FPGA programming. Considering C-based languages still dominate the embedded systems, the talk will focus on new methodologies that can be broadly implemented while using all C-based (C/C++/C#) languages when it comes to implement your designs on FPGAs. To take it further, the talk will shift focus on C++ as C++ is finally picking up pace to come even more closer to low level hardware as compared to previous C++ standards. The last four C++ standards have come a long way to make C++ language even more compatible with embedded systems. Many open source FPGA libraries are based on modern C++. At the end of the day, you will know how a modern embedded developer can adopt certain coding practices to fully exploit the underlying spatial parallelism of FPGA hardware. Additionally, you will learn about open source compilers, open source projects, and economical FPGAs hardware to implement these best practices.</p>Babar Khan
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:3000:30D.embeddedgpio_linux_vs_zaphyrGPIO across Linux and Zephyr kernelsMaximizing code reuse in the example of the Oniro doorlock blueprintdevroom<p>Sometimes it is useful to share code across multiple kernels -- in projects
like the Oniro door lock blueprint, for the typical use cases a Cortex-M
CPU running Zephyr is more than sufficient, but using its functionality as
part of a larger project makes using Linux on Cortex-A an interesting
option. Can we find a way to maximize code reuse despite the very different
GPIO APIs?</p><p>Sometimes it is useful to share code across multiple kernels -- we avoid
doing the work twice. However, this might be complicated when one version
is using Zephyr with a Cortex-M, and another Linux on a Cortex-A.
We will explore this problem using an example of the door lock blueprint
from the Eclipse Oniro project - an implementation of basic door lock
functionality.
For a typical use-case, a Cortex-M with Zephyr is more than sufficient,
but we might also want to integrate the same application in a bigger one
using Linux on a Cortex-A. Will we find a way to do so?</p>Bernhard Rosenkränzer
The Oniro Project
The Door Lock blueprint
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:1000:40D.mobilemobile_kernel_tabletMainlining the reMarkable 2 eInk tabletdevroom<p>The reMarkable 2 is an eInk tablet, based on the i.MX7 SoC. The tablet
ships with a fork of the 4.14 kernel and a custom rootFS built with
OpenEmbedded. The vendor kernel is based on the NXP vendor kernel with a
large collection of rM2 specific patches on top.</p>
<p>This talk discusses the process of adding support for the rM2 to the mainline
Linux kernel. The talk first discusses the process of understanding the
original boot process and then getting access to a download mechanism and
serial console.</p>
<p>Finally the talk covers the process to start upstreaming the patches from a
vendor kernel to the mainline kernel.</p>Alistair FrancisrM2 FOSDEM Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:5500:40D.mobilemobile_nemomobileNemomobileBringing freedom to mobiledevroom<p>Nemomobile is operating system for mobile devices based on Manjaro Linux and Glacier UI. It mainly developed on PinePhone, but it could be runned also on android devices. The talk will summarize its current status and its direction in future.</p>Jozef MlichNemoMobile Presentation
https://nemomobile.net/
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:4500:25D.mobilemobile_kernel_l5Librem 5 phone kernel reportdevroom<p>I work with Purism SPC on the Librem 5 phone kernel. I regularly post
what our team pushes upstream into the mainline kernel at
https://puri.sm/posts/author/martin/</p>
<p>In this little talk I want to summarize what we've done, describe how
we do it and put it into perspective a bit.</p>
<p>I'll outline rough future plans and of course encourage to participate
in case you own that phone.</p>Martin Kepplinger
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:30D.mobilemobile_mandrivaTaking a desktop OS to mobile phonesOpenMandriva now runs on the PinePhone - what did we have to do?devroom<p>OpenMandriva and its predecessors have been in the desktop and server world since the 1990s - now OpenMandriva 4.3 can run on the PinePhone. What did we have to do to get there and what problems have to be solved before it can fully replace that Android phone in my pocket?</p><p>Porting to the ARM (64-bit) architecture was relatively easy (and needed for some other projects).
Modifying the build system to handle bootloaders other than grub and distribution formats other than iso images and special per-device kernels? Easy to hack but not that easy if you want to do it right. We needed to do something that doesn't go quite as far as OpenEmbedded/Yocto, but still is powerful enough to handle many different devices.
Making the hardware work? Largely solved by the upstream community.
Finding or developing apps for base functionality, and making them work for the phone form factor? Mostly solved (with a few caveats).
But how can we work with Android and/or iOS apps (currently required to e.g. log in to most bank accounts)? How can we make this appealing to a normal user?</p>Bernhard Rosenkränzer
OpenMandriva
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3000:40D.mobilemobile_mobian2 Years of MobianBirth and growth of a mobile Linux distributiondevroom<p>The Mobian project was initiated a few days prior to FOSDEM'20, back when the first PinePhones (BraveHeart edition) were arriving in the hands of developers and enthusiasts. From a single-person weekend project aimed at running Debian on one specific device, to one of the major mobile Linux distributions, let's board into a journey through the past, present and future of Mobian!</p><p>Mobian started as a collection of hacks and scripts for running Debian on the PinePhone. Initially published as "Debian+Phosh" on the PINE64 forum, all packages were manually (cross) compiled and uploaded to the developer's personal web server.</p>
<p>Over time, it gathered a strong community of users and developers and ultimately gained recognition from the wider mobile Linux community, to the point where it partnered with PINE64 to release a "Mobian Community Edition" PinePhone. Over the course of its 2 years of existence, the project implemented tools to ease development and automate deployment, and added support for more mobile devices, such as Purism's Librem 5, but also Surface Pro tablets and a few Android phones such as the OnePlus 6 and Pocophone F1.</p>
<p>This talk will walk you through those 2 years of development, highlighting the project's contributions to the (mobile) FLOSS ecosystem. We will also emphasize how its members work, as part of the DebianOnMobile team, towards its ultimate goal of becoming irrelevant by making Debian a reference distribution on mobile devices. Finally, we will give you an update on the project's current status and plans.</p>Arnaud Ferraris
Project website
Git repositories
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:2000:40D.mobilemobile_kernel_mainlinePorting mainline Linux to mobile phonesdevroom<p>A general overview of porting Linux to mobile phones, with a focus on Qualcomm. From the device tree to how you get started and why you should do it.</p><p>Android phones have long been plagued by being based on old versions of the Linux kernel which are seldom patched against vulnerabilities and other security flaws. Additionally being based on old versions which are most of the time not being maintained by anyone anymore a vendor has to evaluate if a given patch applies to the old kernel version they are using or not and modify the patch if necessary. This problem has been somewhat mitigated by closer collaboration between SoC vendors and the Linux kernel community (LTS kernels) but this only applies to drivers and components that are actually present in the main branch of the Linux kernel. Drivers only present in vendor-maintained branches often get left out of security and general bug fixes.</p>
<p>Unfortunately for many companies there isn't a clear financial reason to clean up device drivers and submit them upstream, so in this talk I will give an introduction into how you can get started in making your device run a kernel that's based on mainline Linux.</p>
<p>Running alternative operating systems (other than Android) on your phone is in some cases possible with the kernel provided by the vendor but in these cases you need to rely on solutions like libhybris to work with proprietary user space binaries and libraries to make hardware work. Running 100% open source software while using a vendor-provided kernel ("downstream kernel") is not feasible due to the sheer number of proprietary user space components that would need to be replaced. But with a mainline kernel you can get to a fully free and open source operating system for your phone. And this talk will give you can introduction to some of the basics in getting started with running mainline Linux kernel on your phone and some of the tips and tricks that I have learned over the years.</p>Luca Weiss
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:2000:40D.mobilemobile_kernel_ebook_readerThe road towards using regular linux on ebook readersExperiences and progress with Kobo/Tolino readersdevroom<p>Most Kobo/Tolino readers offer a well marked console port and often a second UART. If they are not water resistant, they offer an internal µSD card slot containing the whole operating system and bootloader so that sounds like an invitation to do something interesting with them besides just reading books. Especially in prolonged outdoor activities, the display and their low power consumption have their merits. Hardware is quite similar, so you also have chances to get a replacement next corner.
Several devicetrees and also some drivers made their way into mainline linux now, on others upstreaming work is in progress. Support is starting to find its way into mobile linux distributions like postmarketOS and graphics start to work with standard APIs.
In this talk I talk about my experiences, especially the current state of support in mainline linux, what is missing and what are the challenges. I will also talk about requirements for the graphics userspace and shortly present my favorite use case: displaying maps.</p>Andreas Kemnade
Kernel/Mainlining overview
U-Boot 2020.10 for mentioned e-book readers
postmarketOS for Kobo Clara HD
postmarketOS for Tolino Shine 2HD
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3001:30D.mobilemobile_cameraStatus of camera support on mobile FOSS devicesAn open discussion about the state of cameras on Linux-powered mobile devicesdevroom<p>Camera support has traditionally been a pain point when it comes to
Linux phones.</p>
<p>Years and years of competition on the photography capabilities of
consumer devices have pushed vendors to adopt more and more custom,
closed source implementations, leaving users of free software powered mobile
devices with nothing but poor solutions limited to work on the single
devices they have been developed for.</p>
<p>With the increasing maturation of libcamera, a complete user space
camera stack for Linux devices is now finally available, and Linux
phones developers can now cooperate on more mature camera solutions
for their devices.</p>
<p>The BoF will serve for phone developers and camera developers as a
cooperation space, to better understand their mutual needs and move
forward camera support for the whole Linux ecosystem.</p><p>Cameras have traditionally been a distinguishing factor in the
traditional mobile/smartphone market. Year after year the number of
pixels available in a phone's camera have become a stable part of the
phone producers marketing material and as a direct consequence of such
fierce competition everything around cameras has usually been quite
secretive, with vendors implementing rather cumbersome software
architectures to work around the software licensing requirements which
would have otherwise required them to open at least part of what they
consider their secret sauces.</p>
<p>Vendor's reluctance to discuss and innovate in a common shared space
and the undeniable deficiencies (or better, the complete lack of
existence) of anything resembling a camera stack in the Linux
ecosystem has pushed camera support to a quite uncomfortable position
when it comes to FOSS-powered mobile devices. Until very recently nothing
comparable to what could be achieved by a rather cheap Android phone,
running binary blobs both in user and kernel space, can be easily
realized by using a fully open infrastructure.</p>
<p>Three years after starting of the libcamera project,
its adoption as the default camera stack for the Raspberry Pi
ecosystem and its increasing permeation in the x86 device space thanks to
the support of vendors like ChromeOS and a more robust integration in Pipewire,
it's now time to finally address the camera issue in the FOSS phone space.</p>
<p>With the recent interest from Librem5 and Pinephone communities in the
project, this BoF intends to provide a space where phone developers,
libcamera developers and hopefully vendors can discuss their mutual
headaches and try to sketch a way forward in order to provide to
free-software equipped mobile device a camera support that can do more than what
an Android phone was capable of 10+ years ago.</p>Jacopo Mondi
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:40D.openjdkjavahotnfreshKeeping Your Java Hot & Fresh in 2022devroom<p>Despite being nearly 27 years old, Java is still consistently rated in the top three most popular programming languages in use. The reason for this popularity extends beyond the syntax of the language to the power of the Java Virtual Machine (JVM). With its ability to handle internet-scale workloads, the JVM delivers the performance required for mission-critical enterprise applications.</p>
<p>In this session, we’ll explore Java as it is in 2022. JDK 17 is the ninth (yes, ninth) release in four years. As a long-term support (LTS) release, this is one that many users will choose to use in production. We’ll review the significant new features developers will now be able to exploit as they develop their next applications. With JDK 18 just around the corner and longer term projects like Loom likely to be included soon, what does this year hold for Java?</p>Simon Ritter
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:4000:40D.openjdkopenjdk17Records and Text Blocks: But What Else Is Interesting In OpenJDK 17?devroom<p>By now, we all know that JDK 17 is the latest Java long-term supported release with several new language features. There are already many resources that explain the Java Record and Text Blocks in detail. But JDK 17 has much more interesting changes since JDK 11.</p>
<p>In this session, I go into more detail about some other interesting changes that are not language features but are a good reason to switch to JDK 17.</p>
<ul>
<li>Improvements in the Class Data Sharing feature.</li>
<li>JDK Flight Recorder for monitoring purposes.</li>
<li>Improvements in Performances in the Garbage collectors</li>
<li>Preventing security issues with context-specific deserialization filters.</li>
</ul>
<p>Besides the explanation, you also see these changes in action with some demos.</p>Rudy De Busscher
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:2000:40D.openjdkkotlinIntroducing Kotlin In Your Organization: From The Ground Updevroom<p>A little guide on how to convince management to try out new technologies!</p>
<p>For you it's obvious, Kotlin is the next big thing and it'll bring your team to the next level. You see clear advantages, but others are not quite there yet. In this talk, I'll describe the ways we found to get Kotlin inside ING, one of the largest European bank. We'll look into simple ways to convince your colleagues, your management and make it a success for everyone!</p><p>Those days, there are so many tools to improve one developer's workflow that it's hard to make a choice, and sometimes convince others. Languages, frameworks, tooling, paradigms, there is so much to try and not everything can be a benefit.</p>
<p>In this talk, we will have a look at why Kotlin probably makes a lot of sense for your team. We'll have a quick glance at some language features, the ecosystem and the community as well.</p>
<p>But we'll mostly have a look at various techniques to make Kotlin (or for that matter, any other kind of proposal) a convincing user case for your team.
Finding your heroes, making small experiments, using external influence, building in public, defusing possible worries, there are many ways to go about it!</p>
<p>By the end of this talk, you will have extra information on why Kotlin can be useful for you (or not); and be equipped with strategies to help convince others as well.</p>Julien Lengrand-Lambert
A blog about how we introduced Kotlin at ING
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:40D.openjdkforeignfunctionsLet's Talk About Foreign Functions In Javadevroom<p>Java 17 finally gave us the first incubator of Foreign Function & Memory API. Let's do a test drive of what is in store and see if it is good enough to replace JNI. Let's be honest, JNI is not that secure and is controversial and it's high time we move away from it and adopt FFI like in many other modern languages. But is the new API enough or do we need to consider external libraries like JNA or JNR-FFI? I'll showcase some examples of using the new API with some of my other favorite languages.</p>Deepu K SasidharanLets talk about FFI in Java
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:4000:40D.openjdkpanamaNative Language Access: Project Panama for Newbiesdevroom<p>A brief introductory talk on Java 17's New project Panama APIs to get your feet wet into the world of native language access or better known as Foreign Function Interface APIs (JEP 412).</p><p>As a Java developer, you may have a need to access native libraries, such as Tensorflow, SqlLite, ffmpeg, OpenGL, but later find that JNI is your default choice. JNI (Java Native Interface) requires native code to be installed. You’ll quickly find that JNI wrapper code is difficult to maintain. New to OpenJDK 17 is the Foreign Linker API (JEP 412) as a replacement or alternative for JNI to provide a pure-Java solution and perform comparable to, or better than, JNI.
The aim of this talk is to help you be proficient at creating Java programs capable of accessing devices and/or native libraries mainly focussing on OpenJDK 17’s Foreign Linker API.</p>
<ul>
<li>Intro (what, why, where) </li>
<li>Requirements </li>
<li>IDE, environment setup </li>
<li>Getting started </li>
<li>Anatomy of a Hello World in C </li>
<li>What is jextract </li>
<li>Panama Hello World in Java </li>
<li>How to allocate memory to work with C primitives, arrays, & C strings. </li>
<li>How to allocate and mimic pointers, structs, and array of structs. </li>
<li>What are VarHandles? </li>
<li>What are MethodHandles? </li>
<li>Using your super powers to access system libraries </li>
<li>Using your super powers to access third party libraries (demos)
Demos may include: OpenGL, LeapMotion device, Git, ffmpeg, Python, Swift, MacOS touchID,
MacOS SpeechSynthesizer.</li>
</ul>
<p>All Code will be available online at https://github.com/carldea/panama4newbies</p>Carl Dea
Panama 4 Newbies Part 1
Panama 4 Newbies Part 2
Panama 4 Newbies Part 3
GitHub source code
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:2000:40D.openjdklog4j1Java Security: Log4J, the SecurityManager, and Fundingdevroom<p>A demonstration of log4j exploits, which defenses people tried, and which worked. We'll cover how groups responded effectively to patch to see what was common.
We'll also look at open source funding models, subscriptions, and bug bounty programs to see why it's sometimes hard to donate.</p><p>This talk will use actual exploit code that takes over systems through their log messages to open calculators.</p>Erik Costlow
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:40D.openjdklog4j2Security Warning: Your Java Attack Surface Just Got Biggerdevroom<p>Building cloud-native Java applications is undoubtedly awesome.</p>
<p>However, it comes with undeniable new risks. Next to your own code, you are relying on so many other things.</p>
<p>Blindly depending on open-source libraries and Docker images can form a massive risk for your application.</p>
<p>The wrong package can introduce severe vulnerabilities into your application, exposing your application and your user's data.</p>
<p>Join this talk where we’ll show common threats, vulnerabilities, and misconfiguration including the recently disclosed issues in Log4j.</p>
<p>Most importantly, you’ll learn how to protect your application with actionable remediation and best practices.</p>Brian Vermeer
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4000:40D.openjdkjvmtweaksSimple Tweaks To Get The Most Out Of Your JVMdevroom<p>Many developers don’t think about the JVM level when creating applications. It is something that just simply works. Now more applications are becoming cloud-native and we have JVM’s running in every microservice container, each performance gain can have massive benefits when scaled up. Some tweaks are very easy to implement and can have huge impacts on start-up time and performance of your applications. This talk will go through all the different JVM options and give you some easy and simple advice on how to get the most out of your JVM to save not only money but also energy on the cloud.</p>Jamie Coleman
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:2000:40D.openjdktornadovmTornadoVM: Hardware Acceleration For Java In Practicedevroom<p>Hardware acceleration has become prevalent in most application domains as a means to increase performance, while also achieving high energy efficiency. However, the programming models for heterogeneous hardware accelerators inherently support C/C++, thereby hindering the exploitation of heterogeneous resources from managed languages, such as Java. In the University of Manchester, we have been developing TornadoVM; an open-source software technology that can be used as a plugin to OpenJDK and other JVM distributions to enable hardware acceleration in a programmer friendly manner.</p>
<p>In this talk, we will present a practical view of TornadoVM and focus on two parts: (i) analyze what can impact the performance of applications on heterogeneous co-processors, and (ii) how Java developers can utilize TornadoVM to increase the performance of their applications.</p>
<p>https://github.com/beehive-lab/TornadoVM</p>Thanos StratikopoulosTornadoVM-FOSDEM22
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:40D.openjdkalpacaJava & Alpaca: A Beautiful Friendshipdevroom<p>BellSoft created tiny containers based on Alpine Linux. But Alpine has its cons: musl sometimes performs worse than glibc, LTS support is not long enough. So we developed Alpaca Linux based on Alpine. Alpaca is more performant and secure, has longer LTS support, and is perfect for Java deployment.</p><p>The size matters when it comes to containers: they should be small but performant. BellSoft engineers came up with the solution and integrated the Alpine musl port into JDK 16. We made containers based on Alpine Linux and immediately understood that we hit the spot. These containers are still in demand and keep gaining popularity.
Alpine Linux is based on musl. There is usually no difference in performance, but in some cases, musl is less efficient than glibc. The problem is that any Linux distro is made for general purposes, and Linux engineers don’t have Java in mind when developing them.
In addition, LTS support for Linux kernel and OpenJDK is longer than that for Alpine Linux, which leads to a more frequent migration between OS versions within one Java release.
We want to make sure that Java LTS visions are stable within the environments we offer. This is why we created our own distribution, Alpaca Linux, based on Alpine.
Alpaca Linux has a longer support cycle and includes musl-perf and other components to boost the performance of apps, including Java-based ones.
In my talk, I will describe the differences between Alpaca and Alpine and show the results of the benchmarks. I will also tell you about the Alpaca release cycle and how to get hands on with this new Linux distro. You will find out how to boost the performance and security of Java deployment with Alpaca Linux. All in all, I think that this is the beginning of a beautiful friendship between Alpaca and Java.</p>Dmitry Chuyko
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:4000:40D.openjdkthreadingJava Threading Essentialsdevroom<p>To be a proficient java developer, you must learn Java Thread programming. Thread is the heart of the Java ecosystem. All the server-side programming model heavily depends on the java concurrency model. In this session, I will explain a few essential aspects of the java thread model from the ground up so that a beginner can build up their concurrency knowledge on top of it. The session will include -</p>
<ol>
<li>How to create a simple concurrent program</li>
<li>Identify the benefits of java threadings</li>
<li>Understanding the bagasse that comes with threads and how to avoid them</li>
<li>What are the threadsafe classes available in the JDK</li>
</ol>
Bazlur Rahman
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:2000:40D.openjdkfuzionFuzion: A New Language For The OpenJDK Unifying Java's Conceptsdevroom<p>Fuzion is a modern general purpose programming language that unifies concepts
found in structured, functional and object-oriented programming languages into
the concept of a Fuzion feature. It combines a powerful syntax and safety
features based on the design-by-contract principle with a simple intermediate
representation that enables powerful optimizing compilers and static analysis
tools to verify correctness aspects.</p>
<p>This talk will explain how Java's concepts such as classes, interfaces, methods,
constructors, packages, etc. are mapped to the single concept of a Fuzion
feature. The fzjava tool will be explained that provides Fuzion interfaces to
Java libraries. Finally, the Fuzion interpreter and a (planned) Java byte-code
back-end are presented.</p><h1>Introduction</h1>
<p>Fuzion is a modern general purpose programming language that unifies concepts
found in structured, functional and object-oriented programming languages into
the concept of a Fuzion feature. It combines a powerful syntax and safety
features based on the design-by-contract principle with a simple intermediate
representation that enables powerful optimizing compilers and static analysis
tools to verify correctness aspects.</p>
<p>Fuzion was influenced by many other languages including Java, Python, Eiffel,
Rust, Go, Lua, Kotlin, C#, F#, Nim, Julia, Clojure, C/C++, and many more. The
goal of Fuzion is to define a language that has the expressive power present in
these languages and allow high-performance implementations and powerful analysis
tools. Furthermore, Fuzion addresses requirements for safety-critical
applications by adding support for contracts that enable formal specification and
enable detailed control over run-time checks.</p>
<p>Many current programming language are getting more and more overloaded with new
concepts and syntax to solve particular development or performance issues.
Languages like Java/C# provide classes, interfaces, methods, packages, anonymous
inner classes, local variables, fields, closures, etc. And these languages are
currently further extended by the introductions of records/structs, value types,
etc. The possibility of nesting these different concepts results in
complexity for the developer and the tools (compilers, VMs) that process and
execute the code.</p>
<p>For example, the possibility to access a local variable as part of the closure
of a lambda expression may result in the compiler allocating heap space to hold
the contents of that local variable. Hence, the developer has lost control over
the allocation decisions made by the compiler.</p>
<p>In Fuzion, the concepts of classes, interfaces, methods, packages, fields and
local variables are unified in the concept of a Fuzion feature. The decision
where to allocate the memory associated with a feature (on the heap, the stack
or in a register) is left to the compiler just as well as the decision if
dynamic type information is needed. The developer is left with the single
concept of a feature, the language implementation takes care of all the rest.</p>
<h1>Fuzion Feature Declarations</h1>
<p>A Fuzion feature has a name, similar to the name of a class or a function.
The main operation that can be performed on a feature is a feature call. The
constituents of a feature declaration are as follows:</p>
<h2>Formal Arguments</h2>
<p>Features may have a list of formal arguments, which are themselves features
implemented as fields. On a call to a feature with formal arguments, actual
arguments have to be provided to the call, unless the list of formal arguments
is empty.</p>
<h2>Feature Result</h2>
<p>The result of a feature call is an instance of the feature. Alternatively, a
feature may declare a different result type, then it must return a value of that
type on a call.</p>
<h2>Closures</h2>
<p>Features are nested, i.e., every feature is declared within the context of an
outer feature. The only exception is the universe, which is the outermost
feature in Fuzion. A feature can access features declared in its
outer feature or, recursively, any outer feature of these outer features. This
means, a feature declaration also defines a closure of the feature and its
context.</p>
<p>When calling a feature <em>f1</em> declared as an inner feature of <em>f2</em>, the call must
include a target value which is the result of a call to <em>f2</em>, e.g., <em>f2.f1</em>.</p>
<h2>Generics</h2>
<p>Features may have generic type parameters. E.g. a feature declaration may leave
the actual type used within that feature open and to be defined by the user of
the feature.</p>
<p>The list of generic type parameters may be open, i.e., the number of actual
generic type parameters is not fixed at feature declaration. This turns out to
be useful in the declaration of choice types and functions as explained below.</p>
<h2>Inheritance</h2>
<p>Fuzion features can inherit from one or several other features. When inheriting
from an existing features, all inner features of the parent automatically become
inner features of the heir feature. It is possible to redefine inherited
features. In particular, when inheriting from a feature with abstract inner
features, one can implement the inherited abstract features.</p>
<p>A redefinition of an inherited feature may implement an inherited feature as a
routine or as a field. An inherited feature that is implemented as a field,
however, cannot be redefined as something else since fields might be mutable.</p>
<p>Inheritance may result in conflicts. An example would be two features with the
same name that are inherited from two different parents. In this case, the heir
must resolve the conflict either by redefining the inherited features and
providing a new implementation or by renaming the inherited features resulting
in two inner features in the heir feature.</p>
<p>Inheritance and redefinition in Fuzion does not require dynamic binding. By
default, the types defined by features are value types and no run-time overhead
for dynamic binding is imposed by inheritance.</p>
<h2>A Contract</h2>
<p>A feature may declare a contract that specifies what the features does and under
which conditions the feature may be called.</p>
<h2>An implementation</h2>
<p>Features must have one of the following implementations</p>
<ul>
<li><p>a routine is a feature implementation with code that is executed on a call</p></li>
<li><p>a field is a memory slot that stores a value and whose contents are returned on a call</p></li>
<li><p>an abstract feature has no implementation and cannot be called directly, but can be implemented by heir features</p></li>
<li><p>an intrinsic feature is a low-level feature implemented by the compiler or
run-time system, e.g., the infix + operator to add two 32-bit integer values
may be an intrinsic operation.</p></li>
</ul>
<p>A feature implemented as a routine can contain inner feature declarations.</p>
<h1>Feature examples</h1>
<p>Here is an example that declares a feature <em>point</em> that functions similar to a
struct or record in other languages:</p>
<pre><code>point(x, y i32) is # empty
p1 := point 3 4
say "p1.x is {p1.x}" # will print "p1.x is 3"
say "p1.y is {p1.y}" # will print "p1.y is 4"
</code></pre>
<p>The next example shows a feature <em>base</em> that provides an inner feature <em>plus</em>
that adds its argument to the value passed to the enclosing base:</p>
<pre><code>base(v i32) is
plus(w i32) => v + w
b1 := base 30
b2 := base 100
say (b1.plus 23) # will print "53"
say (b2.plus 23) # will print "123"
</code></pre>
<h1>Fuzion FZJava Tool</h1>
<p>Fuzion provides a tool <code>fzjava</code> that takes a Java module file and converts it
into Fuzion features. In the spirit of Fuzion, Java's packages, classes,
interfaces, methods, constructors, static methods and fields are all converted
into Fuzion features. Java methods that may throw an exception are
converted into features resulting in a choice type that is either the exception
type or the result type of that method.</p>
<p>A few intrinsic functions in the Java interpreter back-end use Java's reflection
API to access the corresponding Java code.</p>
<h2>Basic approach</h2>
<p>The FZJava tool converts each Java class into three Fuzion Features. Say you
have a Java class as follows</p>
<pre><code>package x.y;
class MyClass
{
MyClass(String arg)
{
...
}
void myMethod()
{
}
void myStaticMethod()
{
}
}
</code></pre>
<p>This will be converted into a Fuzion feature <code>x.y.MyClass</code> that may not be
instantiated directly:</p>
<pre><code>Java.x.y.MyClass(redef forbidden void) ref : Java.java.lang.Object(forbidden), fuzion.java.JavaObject(forbidden) is
unit myMethod is
...
</code></pre>
<p>This feature defines a Fuzion type <code>x.y.MyClass</code> and contains wrappers for the
instance methods. It is, however, not permitted to directly create instances of
this feature, which is ensured the forbidden parameter of type void (which
makes this feature 'absurd', it cannot be called directly since void values
cannot be created).</p>
<p>Additionally, a Fuzion feature containing features for static methods and
constructors is generated as follows:</p>
<pre><code>Java.x.y.MyClass_static is
new(arg string) is
...
myStaticMethod is
...
</code></pre>
<p>This Feature defines a unit type. Finally, a Fuzion feature returning an
instance of this unit type is generated for convenience</p>
<pre><code>Java.x.y.MyClass => x.y.MayClass_static
</code></pre>
<p>With this, the following code can be used to create an instance of <code>MyClass</code>
within Fuzion and call <code>myMethod</code> and <code>myStaticMethod</code> of this class:</p>
<pre><code>o := Java.x.y.MyClass.new "test"
o.myMethod
Java.x.y.MyClass.myStaticMethod
</code></pre>
<p>The counterpart to <code>import</code> a Java class in Fuzion would be to declare a field
and assign the class' unit type value to it, i.e., the code above could be
simplified as</p>
<pre><code>MyClass := Java.x.y.MyClass
o := MyClass.new "test"
o.myMethod
MyClass.myStaticMethod
</code></pre>
<p>or even</p>
<pre><code>mc := Java.x.y.MyClass
o := mc.new "test"
o.myMethod
mc.myStaticMethod
</code></pre>
<p>using <code>mc</code> as an alias of <code>Java.x.y.MyClass</code>. Note that since the value of
field <code>mc</code> is a unit type, this assignment or any accesses of <code>mc</code> will not
execute any code at runtime.</p>
<h2>Small Example</h2>
<p>Here is a example how Java code can be used from Fuzion:</p>
<pre><code>javaString := java.lang.String.new "Hello Java 🌍!" # create Java string, type Java.java.lang.String
javaBytes := javaString.getBytes "UTF8" # get its UTF8 bytes, type is fuzion.java.Array<i8>
match javaBytes
err error => say "got an error: $err"
bytes fuzion.java.Array =>
say "string has {bytes.count} bytes: $bytes"
javaString2 := java.lang.String.new bytes 6 bytes.count-6 # create Java string from bytes subset,
say "Hello "+javaString2 # append Java string to Fuzion string and print it
</code></pre>
<h2>Web Server Example</h2>
<p>The following code shows how Java APIs can be used to create a minimalistic web
server in Fuzion.</p>
<pre><code>webserver is
# declare short hands to access Java net and io packages
net := Java.java.net
io := Java.java.io
# open socket
port := 8080
serversocket := net.ServerSocket.new port
match serversocket
err error => say "#### $err ####"
ss Java.java.net.ServerSocket =>
for n in 1.. do
say "accepting connections to localhost:$port"
match accept
unit => say "ok."
err error => say "#### $err ####"
accept outcome<unit> is
# accept and handle connection
s := serversocket.accept?
input := io.BufferedReader.new (io.InputStreamReader.new s.getInputStream?)
output := io.DataOutputStream.new s.getOutputStream?
req := read?
say "got request ({req.byteLength} bytes): $req"
if req.startsWith "GET "
(send200 "<html>Hello Fuzion $n!</html>")?
# close streams
input.close?
output.close
# helper to read request
#
read outcome<string> is
for
r := "", "$r$s\n"
s := input.readLine?
ready := input.ready?
until s = "" || !ready
r
# helper to send data in HTTP response with status 200
#
send200(data string) outcome<unit> is
output.writeBytes ( "HTTP/1.1 200 OK\n"
+ "Connection: close\n"
+ "Server: Fuzion demo WebServer v0.01\n"
+ "Content-Length: " + data.byteLength + "\n"
+ "Content-Type: text/html\n"
+ "\n"
+ data)?
</code></pre>
<p>Java methods that may result in an exceptions are represented by Fuzion features
that result in the type outcome<T> where T is the Fuzion type corresponding to
the Java result type of the method. outcome is a union type that may be either
error, which wraps the Java exception, or the actual result type T.</p>
<p>Java methods that result in void are mapped to Fuzion features that result in
unit, or, outcome<unit> in case the method has any declared exception.f</p>
<h1>Fuzion Interpreter</h1>
<p>Fuzion currently supports two back-ends: An interpreter implemented in Java and
running on top of OpenJDK and a C code generator implemented in Java using clang
to create machine code.</p>
<p>The goal of the interpreter was to quickly obtain a way to execute Fuzion
applications. Performance was not the main concern. The interpreter operates
directly on Fuzion's abstract syntax tree.</p>
<p>For better performance, a byte-code back-end is planned that will operate on
Fuzion's intermediate code instead.</p>
<h1>Fuzion Byte-Code Back-End</h1>
<p>Similar to Fuzion's C back-end, the byte-code back-end is planned to work on top of
Fuzion's intermediate code.</p>
<h2>Fuzion intermediate code</h2>
<p>Fuzion uses intermediate files during different stages of compilation: module
files that contain library code, application files for whole applications and
Fuzion intermediate representation files that serve as input to the back ends.</p>
<p>Fuzion uses a simple intermediate code to represent pre-compiled modules and
whole applications. This intermediate code serves as the input for static
analysis tools, optimizers and for different back-ends that produce executable
applications. The goal in the design of the intermediate file format was high
performance and simplicity for tools using this code.</p>
<p>The intermediate code is a binary format containing features and types in a way
that may be mapped to memory and used directly, so overhead of parsing this
format into an in-memory representation is avoided. In particular, if only parts
of a pre-compiled module are used by an application, there is no need to read and
unpack parts of the module intermediate representation that are not used.</p>
<p>For features containing code, a very simple stack-based format is used. There
are currently only ten different instructions:</p>
<pre><code>* Unit -- produce a value of unit type
* Current -- produce the current instance as a value
* Constant -- produce a constant value
* Assign -- perform an assignment to a field
* Call -- perform a call to a given feature
* Tag -- convert a value into a tagged value of a choice type
* Match -- match a choice type
* Box -- convert a value type to a ref type
* Unbox -- extract the value from a ref type
* Pop -- drop the top element from the stack
</code></pre>
<p>The intermediate code uses indices to refer to features and types within
intermediate files. This means that lookup is very efficient, but it also means
that a change in a library module requires recompilation of all dependent
modules. Any incompatibilities would be found at compile time instead of
resulting in something like Java's <code>IncompatibleClassChangeError</code> at run-time.</p>
<h2>Instance Implementation</h2>
<p>Fuzion instances should be mapped directly to instances of Java classes
generated for the corresponding features. Fuzion fields should be mapped to Java
fields and Fuzion routines to Java methods.</p>
<p>Fuzion instances that are accessed only locally by their defining features code,
i.e., they do not live longer than their code is executed and they are not
passed to any other features, might be optimized and implemented as Java methods
using local variables instead of fields.</p>
<h2>Call Implementation</h2>
<p>Fuzion's support multiple inheritance similar to Eiffel. Java support multiple
inheritance only for interfaces, so one way to implement dynamic binding in
calls would be to define interfaces for every Fuzion feature and use the JVM's
invokeinterface byte-code for calls.</p>
<p>A more flexible alternative might be to use invokedynamic to implement dynamic
dispatch, but this will likely result in higher overhead compared to highly
optimized invokeinterface implementations.</p>
<h1>Conclusion and Next Steps</h1>
<p>The Fuzion language definition and implementation are far from stable, but are
getting closer to become useful. Big improvements come from the ability to
pre-compile modules and from the foreign language interface for Java, which
makes a giant code base accessible for Fuzion applications to build on.</p>
<p>Additionally, new projects such as the language server implementation for Fuzion
by Michael Lill help by integrating Fuzion support in popular IDEs and editors.</p>
<p>Main points that are missing right now are</p>
<ul>
<li>a powerful standard library</li>
<li>additional library modules for all sorts of application needs</li>
<li>low-level foreign language interface for C</li>
<li>actual implementations of static analyzers and optimizers</li>
<li>highly optimizing back-ends</li>
<li>garbage collection for the C back-end</li>
<li>documentation, tutorials</li>
<li>enthusiastic contributors and users!</li>
</ul>
<p>Please feel free to contact me in case you want to use Fuzion or want to help
making it a success!</p>Fridtjof SiebertFuzion: a New Language for the OpenJDK
Fuzion portal website
Fuzion sources on GitHub
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:20D.gogo_welcomeWelcome to the Go Devroomdevroom<p>A warm welcome to The Go Devroom at FOSDEM 2022</p>Maartje Eyskens
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:2000:35D.gogo_slices_maps_channelsDissecting Slices, Maps and Channels in Godevroom<p>Slices, Maps and Channels in go, are first class citizens of the language, they are used widely in our day to day work, but… do you know how they works under the hood? Do you know the implications of adding elements to an slice, or new keys to a map?</p>
<p>Do you know why you can’t relay in maps order? Do you know how channels handle the buffer or the blocked goroutines? If you don’t know about that, this is your talk. I going to access the go runtime memory state of the maps, slices and channels, and show you how they evolve over time while we change them.</p>Jesús EspinoDissecting Go Slices, Maps and Channels
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:5500:35D.gogo_errorsMastering Your Error DomainGraceful error handling in Godevroom<p>Error handling is one of Go’s key features. The errors.As helper added in Go 1.13 gives Gophers the tools they need to build their own error domains and ensure that all errors are handled properly across their applications.</p><p>The errors.As feature of Go 1.13 makes it easy to create error systems that work for your particular applications, users, and operators without being straitjacketed by the language into a one-size-fits-all approach that inadvertently exposes users to the internal operations of your system. Don’t let your end users be distracted by irrelevant warning messages. Handle errors properly by thinking about their roles and domain within your application.</p>Carl Johnson
Creating Domain Specific Error Helpers in Go With errors.As
Google Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:35D.gogo_tinygo_wifiGo Further Without WiresWiFi Programming Using TinyGodevroom<p>Last year in "Go Without Wires" we saw how you can use TinyGo to program code that runs directly on Bluetooth devices.</p>
<p>Now in "Go Further Without Wires" we will see some of the ways that TinyGo can connect to WiFi networks, and consequently to the Internet itself.</p>
<p>This talk will include several actual demonstrations, including a drone.</p><p>In this second chapter of the "Wireless Saga", we will get to see how our TinyGo programs can extend out further into the real world, by connecting to Wireless Local Area Networks (WLAN) using several different wireless chips such as the popular ESP-32.</p>Ron Evans
Slides
Repo
TinyGo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0500:35D.gogo_finite_automataFun with Finite AutomataOptimising the Go regexp packagedevroom<p>The Go regexp package is an extremely competent piece of engineering, with attractive features such as being guaranteed to run in time linear in the size of the input.
However, it can be made to go faster.</p>
<p>This talk will describe:</p>
<ul>
<li>how Go regexp works</li>
<li>five changes that improve regexp performance</li>
<li>the basic profiling techniques used to identify these optimisations</li>
<li>further opportunities for optimisation, including via Generics.</li>
</ul>
Bryan BorehamFun with Finite Automata
Go rexexp code for you to to try out the optimisations.
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:4000:35D.gogo_log4shellFuzzy genericsSeveral months of using 1.18 featuresdevroom<p>Several months ago, a new project was started: FerretDB, an open-source alternative to MongoDB. It is a proxy between MongoDB clients/driver and PostgreSQL, developed in Go. Since the very first commit, it used a version of Go which soon will be released as Go 1.18. The two biggest reasons for that were first-class support for type parameters (generics) and fuzzing. In my talk, I will cover both of them: how they work in theory and our practice, how they were useful for us (spoiler: very useful), and what are their downsides and gotchas.</p>Alexey Palazhchenko
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:1500:35D.gogo_jsonJSON Serialization - The Fine PrintA journey of JSON serializationdevroom<p>We'll look into JSON serialztion, starting from the easy cases and moving toward more advanced ones.</p><p>A quiz! Consider the following code:</p>
<pre><code>a := 1
data, _ := json.Marshal(a)
var b interface{}
json.Unmarshal(data, &b)
fmt.Println(a == b)
</code></pre>
<p>What will be printed? And why it's "1 1 false"? :)</p>
<p>We all work with JSON, and even though it's a simple format, there are several sharp edges you should should avoid.
In this talk, we'll journey from the common well lit areas of JSON serialization and end in some darker corners. I hope you'll enjoy the ride.</p>Miki Tebeka
Slide & code
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:5000:35D.gogo_why_embeddedWhy your next embedded project should be written in GoConfessions of a recovering C developerdevroom<p>The Go ecosystem has established itself as the language of choice for many cloud and server software. We present arguments that Go is also uniquely suited to thrive for Linux-based embedded development. We present our case in the context of the SysOTA and NetOTA projects</p>Zygmunt Krynicki
SysOTA repository
NetOTA repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:2500:35D.gogo_state_of_goThe State of GoWhat's new in Go 1.17 and 1.18devroom<p>Go 1.18 is planned to be released in February 2022 and this talk covers what's coming up with it.</p>
<p>We'll talk about new features and fixes in Go, new proposals for Go 2. All of the new things you might have missed.</p>
<p>This has been a staple talk of the Go devroom, opening the stage every year, and has always been a successful one.</p>Maartje Eyskens
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:05D.trusted-hardwaretee_welcomeOpeningWelcome, overview, lineupdevroom<p>A brief introduction to the room and to the sessions.</p><p>This year's TEE devroom will again be a full-day virtual event with an impressive lineup! The day will be roughly divided into session blocks grouping related talks as follows:</p>
<h2>10h00-12h25: TEE attacks, defenses, and enclave shielding runtimes</h2>
<p>featuring an enclave exploit analysis, Guardian, Gramine, Enarx, and Veracruz</p>
<h2>13h25-14h40: Emerging TEEs and best practices</h2>
<p>featuring logging in confidential computing, secure boot, and ARM CCA</p>
<h2>14h55-16h10: OS and and page-based isolation</h2>
<p>featuring FlexOS, Intravisor, and EDP for AWS Nitro</p>
<h2>16h30-17h30: Wrap up and discussion on process-based abstractions for VM-based environments</h2>
<p>we wrap up the day with a live presentation and a following discussion</p>Vasily A. SartakovJo Van BulckFritz Alder
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0500:25D.trusted-hardwaretee_sgx_analysisSGX Enclave Exploit Analysis and Considerations for Defensive SGX Programmingdevroom<p>Intel SGX provided a mechanism to better isolate user-level software from attackers. However, attackers will still use various methods to attack SGX and user’s Enclaves. And user’s code inside Enclave may also have bugs, which can be leveraged by the attackers. We are from intel SGX SDK team, we have conducted security analysis and pen-test for SGX Enclave (based on SGX SDK) during the past 10+ years. We want to summarize some past exploits we encountered in our daily work and what's the mitigation, hope it can help the Enclave developers to write more secure Enclave code.</p><p>Target topics category:
TEE-specific attacks and defenses (vulnerabilities, exploits, defensive programming)</p>
<p>Purpose:
Explain the Security Properties of Intel® SGX Technology.
Help Enclave Developers write more secure code within an enclave.
Analyze a sampling of enclave defense-in-depth strategies and protections against known attacks.</p>
<p>SGX Enclave Security and Challenge:
Code running within the enclave must be written securely.
Poorly written code may be subject to attack by various methods.
Developers must also be aware of potential side-channel attacks on code.</p>Shunda ZhangConsiderations for defensive SGX programming PDF
Intel SGX SDK
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:25D.trusted-hardwaretee_gramineGramine Library OSOverview, current state and future plansdevroom<p>Gramine (formerly called "Graphene") is a lightweight library OS, designed to run a single Linux application in an isolated environment. Currently, Gramine runs on Linux and Intel SGX enclaves on Linux platforms. With Intel SGX support, Gramine can secure a critical application in a hardware-encrypted memory region and protect the application from a malicious system stack with minimal porting effort ("lift and shift" approach).</p>
<p>Several major events happened to the Gramine project in 2021. Gramine changed its name, moved to a new GitHub repository, and joined Confidential Computing Consortium. The first production-ready release of Gramine -- v1.0 -- was published in October 2021. This talk will discuss all these events, as well as the current status of the project and its future plans.</p>Dmitrii Kuvaiskii
Gramine GitHub organization
Gramine official web-site
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:5500:25D.trusted-hardwaretee_enarxWebAssembly + Confidential ComputingEnarx first release brings WebAssembly to Confidential Computingdevroom<p>The Enarx project reached a huge milestone: its first official release, featuring WebAssembly runtime. WebAssembly and Confidential Computing are a great match because WebAssembly offers developers a wide range of language choices, it works across silicon architectures, and it provides a sandboxed environment. This presentation will highlight the benefits of WebAssembly to Confidential Computing and showcase some demos.</p><p>After 3 years since its inception, the Enarx project finally had its first official release, bringing WebAssembly to Confidential Computing.</p>
<p>Enarx is a deployment framework for running applications in TEE instances – which we refer to as “Keeps” – without the need to trust lots of dependencies, without the need to rewrite the application, and without the need to implement attestation separately.</p>
<p>The WebAssembly runtime, based on wasmtime, offers developers a wide range of language choices for implementation, including Rust, C, and C++. It is designed to work across silicon architectures transparently to the user so that the application can run equally simple on Intel platforms (SGX or the recently-announced TDX), AMD platforms (SEV) or forthcoming platforms such as Arms’ Realms and IBM’s PEF - all without having to recompile the application code. WebAssembly's sandbox model offers an extra layer of protection, isolating the application from the host.</p>Nick Vidal
Website
GitHub
Chat
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:2000:15D.trusted-hardwaretee_break1Short break15 minutesdevroom<p>Short break.</p>Fritz Alder
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3500:25D.trusted-hardwaretee_veracruzPrivacy-preserving video object detection in WebAssembly inside Veracruzdevroom<p>Veracruz is a framework for designing and deploying privacy-preserving computations amongst a group of mutually mistrusting individuals. Veracruz uses strong isolation technologies, such as AWS Nitro Enclaves, Arm CCA Realms, and the high-assurance seL4 hypervisor, to provide a safe, neutral ground, within which a sandboxed WebAssembly program executes.
Recent enhancements to Veracruz have made it possible to support larger, more complex privacy-preserving computations: we have adopted the WebAssembly System Interface (WASI) as our programming model, which can be used by executing WebAssembly programs to query and modify an efficient in-memory filesystem, for example.
In this talk, I will first introduce Veracruz before finally focusing on a real-world use-case for Veracruz, in privacy-preserving video object detection, developed as part of a collaboration between the Veracruz team and IOTEX, a manufacturer of IoT cameras.</p>Guilhem Bryant
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:25D.trusted-hardwaretee_guardianSymbolic Validation of SGX enclaves using Guardian Avoid known enclave vulnerabilities by automatically checking for orderlinessdevroom<p>The confidentiality and integrity guarantees offered by Intel SGX enclaves can be easily thwarted if the enclave has not been properly designed. Its interface with the untrusted software stack is a perhaps the largest attack surface that adversaries can exploit; unintended interactions with untrusted code can expose the enclave to memory corruption attacks, for instance.</p>
<p>We have proposed a notion, called orderliness, that embodies good practice set out by academic papers and the principles of the Intel SGX SDK’s programming model. It is concerned especially with these interactions between the trusted and untrusted worlds. This notion underpins Guardian: an open-source tool that we have created to help enclave developers check their enclaves are orderly before they are deployed. It automatically validates enclaves and reports violations to our notion of orderliness. These violations help find parts of their code that may need changing – they should usually point to an attack primitive.</p>
<p>We have found some security issues in enclaves that had been extensively vetted by other researchers – one of which was crafted by Intel engineers.</p><p>Modern processors can offer hardware primitives that allow a process to run in isolation. These primitives implement a trusted execution environment (TEE) in which a program can run in such a way that the integrity and confidentiality of its execution are guaranteed. Intel's Software Guard eXtensions (SGX) is an example of such primitives and its isolated processes are called enclaves. These guarantees, however, can be easily undermined if the enclave has not been properly designed.</p>
<p>We propose a notion of an orderly enclave that splits the enclave’s behaviour into the following execution phases: entry, secure, ocall, and exit. Each of them imposes a set of restrictions that enforce a particular policy of access to untrusted memory and, in some cases, sanitisation conditions. A violation of these policies and conditions might indicate an undesired interaction with untrusted data/code or a lack of sanitisation, both of which can be harnessed to perpetrate attacks against the enclave. We also introduce Guardian: an open-source tool that uses symbolic execution to carry out the validation of an enclave against our notion of an orderly enclave; in this process, it also looks for some other typical attack primitives. We discuss how our approach can prevent and flag enclave vulnerabilities that have been identified in the literature. Moreover, we have evaluated how our approach fares in the analysis of some enclave samples. In this process, Guardian identified some previously undetected security issues in some of these samples. These were subsequently acknowledged and fixed by the corresponding maintainers.</p>Pedro AntoninoWojciech Aleksander Woloszyn
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:2501:00D.trusted-hardwaretee_lunchLunch break1 hourdevroom<p>Lunch break</p>Fritz Alder
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:2500:25D.trusted-hardwaretee_loggingLogging, debugging and error management in Confidential ComputingChallenges around maintaining confidentiality and integrity when loggingdevroom<p>Debugging applications is an important part of the development process. However, error messages and general logging can leak sensitive data, and in some cases even compromise your whole stack, as developers worldwide have recently learned from the log4j vulnerability.</p>
<p>With Confidential Computing, the world gets much more complicated, as every piece of information that a malicious entity on the host (including the host itself!) can gather may be leaking vital information about your workload. This talk details some of the problems that arise, and discusses some options to address them whilst considering real life workloads and application lifecycles.</p><p>Log entries and other error messages can be very useful, but they can also provide information to other parties - sometimes information which you’d prefer they didn’t have. This is particularly true when you are thinking about Confidential Computing: running applications or workloads in environments where you really want to protect the confidentiality and integrity of your application and its data.</p>
<p>This talk examines some of the issues that we need to consider when designing Confidential Computing frameworks, the applications we run in them, and their operations. Designers and architects of the TEE infrastructure and even, to a lesser extent, of potential workloads themselves, need to consider very carefully the impact of host gaining access to messages associated with the workload and the infrastructure components. It is, realistically, infeasible to restrict all communication to levels appropriate for deployment, so it is recommended that various profiles are created which can be applied to different stages of a deployment, and whose use is carefully monitored, logged (!) and controlled by process.</p>Mike Bursell
Confidential Computing: logging and debugging
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:5000:25D.trusted-hardwaretee_oniroSecure boot, TEEs, different OSes and moreMaking sense of the trusted computing landscape in Eclipse Oniro embedded distributiondevroom<p>In this talk Marta is going to present a map of the trusted computing
landscape, explaining different types hardware support. She is going
to put it in a context of implementing secure boot and trusted execution
in an embedded distribution, namely Yocto-based Eclipse Oniro project.</p><p>The trusted computing landscape could be hard to understand for newcomers.
Just at the beginning, they encounter a number of abbreviations like TEE,
OPTEE, SEV, TF-A, TF-M and many more.</p>
<p>In this talk Marta is going to present a map of those technologies, illustrate
how they are (or are expected to) be used, which market needs they address.
She will show how they could be implemented in practice in an embedded
distribution. The example will be the secure boot work in the Eclipse Oniro
project, an embedded multi-OS distribution for Internet of Things (IOT)
devices. The multi-OS specificity of Oniro will be used how the trusted
computing technologies compare on different types of processors running
Linux and Zephyr, with different security hardware support.</p>Marta RybczynskaSlides for the talk
A previous presentation covering the more general topic of security in the distribution at Embedded Linux Conference 2021
Oniro project and its security tooling
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:1500:25D.trusted-hardwaretee_arm_ccaArm CCA enablement through the Trusted Firmware community projectdevroom<p>The Arm Confidential Compute Architecture (CCA) is an extension of the Armv9 architecture designed to provide confidential computing in standardised and scalable way. CCA builds on existing principles built for TrustZone and virtualization to create a scalable and secure solution. CCA places requirements on hardware and firmware, which together provide the trusted computing base for a new class of secure execution environment that we call a Realm. Trusted Firmware is the key community project that provides a reference implementation of open source Secure firmware for Arm-based processors. This talk briefly introduce Arm CCA and illustrate how Arm plans to develop and enable it in the open by leveraging the community effort that drives Trusted Firmware as open-source project.</p>Charles Garcia-TobinMatteo Carlini
TrustedFirmware.org
Arm CCA specifications
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4000:15D.trusted-hardwaretee_break2Short break15 minutesdevroom<p>Short break.</p>Fritz Alder
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:5500:25D.trusted-hardwaretee_flexosRethinking the OS for Isolation Flexibility with FlexOSdevroom<p>Operating Systems (OSes) have historically been classified according to their isolation properties: monolithic OSes, microkernels, single-address-space OSes, or unikernels... Decades of experience in research and industry showed that there is no silver bullet and that different use-cases might demand different approaches to optimize safety and performance.</p>
<p>What if we tried to design an operating system able to be easily reconfigured into any of these points in the OS design space? What if the OS could be a microkernel, a unikernel, or a monolithic OS, at will, and using a wide range of hardware- and software-backed isolation mechanisms?</p>
<p>In this talk, we will present FlexOS, the result of our recent research work in trying to answer this question. FlexOS is an OS allowing users to easily specialize the safety and isolation strategy of an OS at compilation/deployment time, instead of design time. Depending on the configuration, the same FlexOS code can mimic a microkernel with multiple address-spaces, a single-address-space OS with Intel MPK compartments, or many other OS isolation approaches. We have implemented a prototype of FlexOS on top of Unikraft, a popular library OS framework.</p>Hugo Lefeuvre
GitHub Organization of FlexOS
Preprint of the FlexOS ASPLOS paper
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:2000:25D.trusted-hardwaretee_intravisorIntravisor -- a hypervisor for fine-grained isolation using CHERIdevroom<p>Hardware and container virtualisations are the fundamental technologies of modern cloud stacks. While these technologies virtualise different layers of software and hardware, they have one common thing: they are quite inefficient in terms of communication between isolated entities. The isolation relies on MMU and involves a privileged intermediary, which leads to heavy transitions or sharing data at the page granularity. The escape from this trap we see in the hardware capabilities introduced in CHERI. The CHERI architecture efficiently combines hardware memory capabilities with conventional MMU architectures. It gives not only safety to memory pointers, but also provides lightweight isolation mechanisms.</p>
<p>In this talk, I will present Introvisor, a lightweight hypervisor for microservices. It uses CHERI capabilities for isolation and data sharing, does not require software porting thus compatible with existing software, and provides strong security guarantees.</p>Vasily A. Sartakov
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:4500:25D.trusted-hardwaretee_edp_nitroDeveloping for the AWS Nitro Enclave PlatformA new Enclave Development Platform (EDP) Targetdevroom<p>Intel, AMD, ARM, all have launched their own TEE. Amazon can be added to that list with AWS Nitro, but unlike the others it is not a hardware manufacturer. Instead, it chooses to provides its own abstractions over the platform used. This leads to some interesting characteristics.
The Enclave Development Platform (EDP) is a TEE platform SDK developed by Fortanix. EDP already targeted the Intel SGX platform. Recently we also support the AWS Nitro platform. In this talk we discuss the AWS Nitro platform in detail and interesting design decisions we made for the EDP platform.</p><p>In the AWS Nitro architecture, the hypervisor plays a key role. Hardware resources (processor cores and memory) are split off of a parent VM and can be repurposed to run the Nitro enclave. This enclave can be viewed as a separate VM with only processor cores and memory. A hard disk drive is not present, nor can it directly access an Ethernet network. All communication needs to take place over VSOCK to the parent VM. An attestation report can be provided by the hypervisor to ensure that the enclave has been build correctly.
The Enclave Development Platform (EDP) provides a way to easily build Rust applications on top of TEEs. It should be as easy for developers to target TEEs any other modern operating system. Next to Intel SGX, the Nitro platform has been added recently. To target the Nitro platform, EDP reimplements parts of the Rust standard library. It takes care of starting a runner process in the parent VM, forwarding network packets to/from the enclave and providing attestation evidence.</p>Raoul Strackx
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:1000:20D.trusted-hardwaretee_break3Short break20 minutesdevroom<p>Short break.</p>Fritz Alder
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3001:00D.trusted-hardwaretee_discussionProcess-based abstractions for VM-based environmentsdevroom<p>Inaugural secure enclave platforms operate at the single user process level (e.g. SGX), meaning a single address space with potentially multiple threads, with a standard OS outside the enclave responsible for resource management and scheduling. More recent platforms (AMD SEV, Intel TDX, AWS Nitro Enclaves) operate at the VM level. This provides significant new capabilities for multi-process abstractions such as mmap and fork, which will be beneficial for enclavizing legacy software.</p>
<p>However, taking a VM image and running it in an enclave is not great from a TCB minimization standpoint. For platforms where there's currently no alternative (AMD, AWS), how can we build--with a minimal TCB--an abstraction that's similar to single-process enclaves? Of course you can “just run Linux” with a single process but this again is clearly suboptimal. We'll explore the solution space in this interactive session.</p>Marta RybczynskaVasily A. SartakovMike BursellJo Van BulckJethro G. BeekmanHugo Lefeuvre
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:30D.hpcopensearch_dashboardsLow-code data visualization and aggregation with OpenSearch Dashboardsdevroom<p>Working with Big Data means that we need tools to organise and understand the data. And you don’t have to be a developer to search, aggregate and visualise your data. Whether you need an affordable business analytics tool or you want to analyse log data in near real time, OpenSearch can help you. And all of it through a visual interface of OpenSearch Dashboards.</p>
<p>After listening to this talk you’ll understand the basics of working with an OpenSearch cluster and different use cases it supports. You’ll also learn to create your first search and aggregation query and visualise the outcomes with the help of OpenSearch Dashboards.</p>
<p>This talk is for those who have little or no previous experience of OpenSearch (and Elasticsearch) and who are looking for solutions for searching, monitoring or data analysis with no coding required.</p><p>In this session the audience will get theoretical and a knowledge on what OpenSearch is, which use cases it supports and how the audience can start using it for their data already today. Roles outside of developers are welcome, the information will be presented in uncomplicated terms and we’ll use visualisation tools to create and run requests, so no coding is required.</p>Olena Kutsenko
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:30D.hpcarcon_rust_streamingUncovering Arcon: A state-first Rust streaming analytics runtimedevroom<p>In this talk, I will present Arcon, a Rust-native streaming runtime that integrates seamlessly with the Apache Arrow ecosystem. The Arcon philosophy is streaming first, similarly to systems such as Apache Flink and Timely Dataflow. However, unlike all existing systems, Arcon features great flexibility when it comes to its application state. Arcon's TSS query language allows extracting and operating on state snapshots consistently based on application-time constraints and interfacing with other systems for batch and warehouse analytics.</p>Max Meldrum
Github Repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:30D.hpcbatch_proc_data_streamingBuild an Open Source Streaming Data Pipelinedevroom<p>Any conversation about Big Data would be incomplete without talking about Apache Kafka and Apache Flink: the winning open source combination for high-volume streaming data pipelines.</p>
<p>In this talk we'll explore how moving from long running batches to streaming data changes the game completely. We'll show how to build a streaming data pipeline, starting with Apache Kafka for storing and transmitting high throughput and low latency messages. Then we'll add Apache Flink, a distributed stateful compute engine, to create complex streaming transformations using familiar SQL statements.</p>
<p>This session is aimed at data professionals, who are ready to embrace open source streaming and make their data fly.</p>Olena KutsenkoFrancesco TisiotBuild an Open Source Data Pipeline
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.hpcopenstack_hpcUsing OpenStack to reduce HPC service complexity... no, that is not an oxymoron!devroom<p>Why build #4 on the Green500 using OpenStack? It makes it easier to manage. Cambridge University started using OpenStack in 2015. Since mid 2020, all new hardware is controlled using OpenStack. Compute nodes, GPU nodes, Lustre nodes, Ceph nodes, almost everything. OpenStack allows large baremetal slurm clusters and dedicated TRE (trusted research environments) to share the same images. Is this a cloud native supercomputer?</p><p>We will explore how OpenStack is used to manage a supercomputer as a shared pool of hardware resources, that can be partitioned between a multitude of different platforms required by a diverse group of scientists. Ranging from Trusted Research Environments (TREs), on demand dedicated AI platforms, dedicated big data platforms, and to traditional shared Slurm clusters.</p>
<p>We will focus on providing a range of services from a single shared hardware pool, allowing for the delivery of both on demand interactive compute platforms for STFC's IRIS e-Infrastrcture and Slurm clusters such as the #4 in the Green500, called Wilkes-3:
https://www.top500.org/system/179930/</p>
<p>This makes use of both OpenStack Ironic, for the baremetal deployment, and on-demand OpenStack KVM powered VMs running Cluster API provisioned Kubernetes, with KubeApps to deploy JuypterHub.</p>John GarbuttOpenStack to reduce HPC service complexity
OpenStack Kayobe and Kolla-ansible
OpenHPC Slurm Appliance
Azimuth Cloud Portal
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.hpccontainers_hpcContainers in HPCState of Containers in HPCdevroom<p>This short talk will disect the container ecosystem for HPC in four segments and discusses what to look out for, what is already settled and how to navigate containers in 2022.</p>Christian KniepContainer-in-HPC slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.hpcmanaging_cpus_k8sThis is The Way- A Crash Course on the Intricacies of Managing CPUs in K8sFrom homogenous single-socket to heterogenous multi-socket clustersdevroom<p>Optimizing CPU management improves cluster performance and security, but is daunting to almost everyone. CPU management may seem complex, but it can be explained in such a way that even your inner toddler will comprehend. With this talk, we will give a path to success.</p>
<p>You may have a multi-socket node cluster where your AI/ML workloads care about the proximity of your CPUs to GPUs. You may be running scientific workloads where you want to pin in cores within containers instead of just a pod level. You may have a single-socket server where you want to save a single core outside of Kubernetes for a daemon dedicated to mining bitcoin, without affecting your other jobs (please do not do this). We will cover these and more, helping you understand the intricacies of CPU management within the kubelet and what Kuberenetes can and cannot currently do. We will also cover how you can help escalate the visibility of use cases not currently covered within Kubernetes.</p><p>Many clusters do not have CPU management because it is difficult to do correctly without impacting performance. While there are static and dynamic pinning abilities, we will consolidate the use cases and remove the pain it takes for users to deploy Kubernetes. This talk will help the audience gain an insight into features that can be used for resource management and orchestration of containerized applications with focus on CPU management. Users that have performance sensitive workloads such as AI/ML, Telco, 5G and Networking workloads will benefit from this talk. This talk will also help CTOs, system architects, developers and engineers in their planning to develop, test, or optimize their deployments in a Kubernetes environment. We also hope to use this forum to find other community members with specific needs in our desire to make the kubelet more flexible with regard to CPU management.</p>Swati SehgalMarlow WestonThis is the way: A Crash Course on the Intricacies of Managing CPUs in K8s
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:30D.hpcspark_mahout_kubeflow_k8s Making Apache Spark, Apache Mahout, Kubeflow, and Kubernetes Play Nicedevroom<p>Working with big data matrices is challenging, Kubernetes allows users to elastically scale, but can only have a pod as large as a node, which may not be large enough to fit the matrix in memory. While Kubernetes allows for other paradigms on top of it which allows pods to coordinate on individual jobs, setting them up and making them play nice with ML platforms is not straightforward. Using Apache Spark and Apache Mahout we can work with matrices of any dimension and distribute them across an unbounded number of pods/nodes, and we can use Kubeflow to make our work quickly and easily reproducible. In this talk, we’ll discuss how we used Apache Spark and Mahout to denoise DICOM images of lungs of COVID patients and published our Pipeline with Kubeflow to make the process easily repeatable which could help doctors in more resource limited hospitals, as well as other researchers seeking to automate the detection of COVID.</p>Trevor Grant
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:45D.infracue_pratical_guideA practical guide to CUE: patterns for everyday usedevroom<p>CUE (https://cuelang.org/) solves a previously unsolved technical problem in the configuration space. It does so by taking a compositional approach that reduces the complexity of managing configuration from a combinatorial problem to a linear problem. CUE is based on 20 years of experience in the field of configuration. Its declarative, aspect-oriented approach is powerful yet simple, making it possible to manage large amounts of configuration data and policies in multiple formats (JSON, YAML, Protocol Buffers, OpenAPI, etc.) with relative ease.
It also makes CUE well suited to a wide range of applications.</p>
<p>This all sounds great! But for someone new to CUE, it may not be obvious how to get started.</p>
<p>In this talk, Marcel van Lohuizen and Paul Jolly start with a quick overview of CUE the language, then move on to present practical examples of CUE in action, including common patterns for validation, policy, integration with existing non-CUE configuration and more. Because CUE is new, established patterns are still in the making, but at the very least it will be a reflection of the current thinking.</p>
<p>No previous experience of CUE required, although familiarity with an existing configuration and data languages will help provide some context to the examples.</p>Marcel van LohuizenPaul JollyA practical guide to CUE: patterns for everyday use
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:45D.infraforeman_katello_leapp_elevateMigrating Foreman/Katello from EL7 to EL8 using LEAPP/ELevatedevroom<p>With the Foreman Project dropping support for EL7 in Foreman 3.3 (~Summer 2022), it's finally time to tackle that migration to EL8 you have been putting off for a while now.
In this session we will present various ways how you can migrate your installation from EL7 to EL8, with the main focus on the in-place upgrade using LEAPP/ELevate.</p>
<p>The Foreman Project is planning to <a href="https://community.theforeman.org/t/deprecation-plans-for-foreman-on-el7-debian-10-and-ubuntu-18-04/25008">drop support for EL7-based deployments in Foreman 3.3</a>, mostly due to the fact that EL7 is considered "feature complete" and there are no further updates (besides security fixes) planned for it.
Contrary to <a href="https://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.en.html">Debian</a> or <a href="https://docs.fedoraproject.org/en-US/quick-docs/dnf-system-upgrade/">Fedora</a>, EL-based distributions aren't designed to be upgraded in-place without special tooling. This tooling exists in form of the <a href="https://leapp.readthedocs.io/en/latest/">LEAPP project</a> for RHEL and the <a href="https://almalinux.org/elevate">ELevate</a> fork by AlmaLinux for AlmaLinux, CentOS, Rocky Linux, and Oracle Linux.
We have developed a plugin for LEAPP that helps with the Foreman-specific parts of the migration, which we would like to present to you. As usual, there were a few challenges during the development, which will hopefully entertain you and maybe even help if you need to write own LEAPP plugins.
And last but not least, we will also discuss other approaches you can take for the migration, if you do not want to upgrade in-place.</p>Evgeni Golov
Video recording(WebM/VP9)
Video recording(mp4)
LEAPP project
ELevate
ELevate quickstart guide
Foreman/Katello/Satellite Actor PR for LEAPP
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:45D.infraansible_proxmox_rpmbuildUsing Ansible and Proxmox to manage an embedded RPM distro build factory: lessons learneddevroom<p>With redpesk, we provide customers the ability to cross-build an embedded, CentOS Stream-based Linux distribution in the cloud. This requires a significant infrastructure: Koji/RPM builders, Angular-based WebUI, Gitlab forge, network and RPM package dependency management, Qemu test lab management, all need to come together and be connected, in a mix of Qemu virtual machines and LXC containers. Fortunately, Ansible and Proxmox comes to the rescue to manage this complexity.</p>
<p>In this talk, we'll present our architecture of a self-contained CI/CD environment in the cloud, to cross-build RPM packages and Linux images. We will then dive into the specifics of using Ansible to drive Proxmox and deploy a mix of Packer-built Qemu virtual machines and LXC containers. Those provide a full Koji build system (hub and builders), an Angular frontend, Go backend, a Gitlab forge as well as network isolation/firewalling and a Qemu virtual target lab.
We'll continue with lessons learned from doing these deployments for multiple customers. We will finish describing solutions we are currently working on, like Ansible AWX, to address the challenges of doing it at scale and increase automation.</p>Vincent Rubiolo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:45D.infratrusted_payload_nomand_waypointRunning trusted payloads with Nomad and Waypointdevroom<p>Things like Infrastructure as Code, Service Discovery and Config Management can and have helped us to quickly build and rebuild infrastructure but we haven't nearly spend enough time to train our self to review, monitor and respond to outages.</p>
<p>With the the introduction of CI/CD best practices into our day to day workflows we protect ourselves for introducing "bad" code into production and exposing flaws to our (end-)users. But what about influences from bad actors in- and out-side our projects. This talk will focus on the additional steps we can add to our Waypoint build pipelines to also protect ourselves to so called supply chain attacks while running our jobs in Nomad. We ll discuss scanning for vulnerabilities in incoming code, packages and images and signing the content artifacts we trust before exposing them to our users.</p>Bram VogelaarRunning Trusted Payloads with Nomad and Waypoint
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:45D.infraansible_reporting_araSimple (but useful) Ansible reporting with aradevroom<p>ARA Records Ansible playbooks and makes them easier to understand and troubleshoot.
The author will explain why he created the project back in 2016 and how it might be useful for a wide range of use cases wherever Ansible runs from.
Including a live demo, we'll see how it works under the hood and you can expect to walk away from the presentation with an understanding on how to get started for your own Ansible playbooks within minutes.</p>
<p>ARA Records Ansible playbook results in local (sqlite) or remote (mysql/postgresql) databases with a regular Ansible callback plugin. It provides an API, a reporting interface as well as a CLI to query, search and browse detailed and granular playbook task results for individual hosts.
Highlighting simplicity as a feature of the project, this presentation will provide examples that are appropriate for use whether Ansible runs from a laptop or at a large scale in production.</p>David Moreau-SimardSimple (but useful) Ansible reporting with ara
Source code on GitHub
Website and blog
@RecordsAnsible on Twitter
#ara:libera.chat on Matrix
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:45D.infraflatcar_container_linuxImmutable Infrastructure with Flatcar Container Linuxdevroom<p>Flatcar Container Linux is a minimal base OS to run containers.
As a friendly fork of CoreOS Container Linux it continues the project under a new name.
The main features are the A/B partitions for automatic updates and rollbacks, and the integration of Ignition for declarative configuration on first boot.
Declarative configuration is a key element for managing machines following the principle of Immutable Infrastructure, but causes friction if it means that the whole machine has to be reprovisioned for configuration changes.
With Ansible instead of Ignition for the configuration management we can find a compromise by giving up on avoiding configuration drift due to leftovers of old configurations and their side effects.
Out of this experience the idea was born to rerun Ignition on configuration changes.
While the big hammer method is to reformat the filesystem and losing application data, a more fine-grained solution could exist by clearing only parts of the filesystem.
This talk shows how to use Flatcar Container Linux with Terraform, Ignition, and Ansible, and ends with a proof-of-concept demo for Flatcar Container Linux to allow configuration changes through Ignition while avoiding configuration drift.</p>Kai Lüke
Flatcar Website
Flatcar Terraform Examples
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:45D.infraopenshift_baremetalCentral Infrastructure Management: a user friendly deployment of OpenShift on Bare Metaldevroom<p>The use of Bare Metal to run containerized workload is coming back into popularity.
There are multiple reasons for this increase of interest. First, the rise of big data analytics, high performance computing, machine learning workloads that need high-bandwidth and low latency and sometimes even requires access to special hardware devices like GPUs or DPUs. And at the same time, in the telecommunication space, the 5G networks technology stacks that drive the need for IPv6, SR-IOV, Container Network Functions (CNFs), NUMA topologies, and other innovations in containerized applications on bare metal.</p>
<p>All of these emphasize the need for the ability to easily create Bare Metal based OpenShift clusters as automatically as possible.</p>
<p>Central Infrastructure Management (CIM) exposes an intuitive user interface, allowing the infrastructure administrator to define a pool of Bare Metal machines making them available for users to independently create OpenShift clusters from them.</p>
<p>Assisted Installer is an operator that introduces a new way to deploy a new OpenShift cluster on bare metal basically by only booting the nodes that will be part of the cluster, with an ISO it generates. The Assisted Installer will report inventory, run validations and orchestrate the needed steps based on the user parameters.</p>
<p>CIM and Assisted Installer are components of Open Cluster Management (OCM), an operator that enables a single OCP cluster to manage a fleet of clusters.</p>
<p>In this session, you will learn about Central Infrastructure Management and Assisted Installer architecture and its components. We will discuss the installation flow and how the components interact with each other. Finally, we will demonstrate how to build a pool of Bare Metal and install an OpenShift cluster on them via the CIM user interface.</p>Jiří TomášekEran Cohen
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:45D.infrarport_remote_access_managementRPort remote access and remote managementdevroom<p>An introduction (live demo with questions and answers) into RPort - a new open-source software for remote access and remote management of heterogeneous it-landscapes. Use the UI, the command line or an REST API to manage servers and desktop efficiently from a central place.</p>
<p>RPort is a comprehensive solution for remote management of servers and desktop systems. Even if they are behind firewalls, routers and NAT. RPort is built on the client-server principle, clients connect to the server, the management component, using a secure reverse tunnel. Unlike pure SSH, RPort is made for heterogeneous environments (Windows, Linux, macOS) and addresses four basic needs of system administrators:
• Secure remote access from anywhere via tunnels and SSH/RDP/VNC/HTTP and other TCP connections
• Script and command execution on target machines via a central dashboard.
• Automation of recurring tasks such as updates, inventory, configuration and fine-tuning of systems.
• Monitoring and logging system load and resource usage.</p>
<p>With RPort, a complete IT infrastructure with Windows, Linux and macOS systems can be managed via command line or a convenient web-based, central dashboard. The server component can be self-hosted or deployed in minutes using the automated installer provided by RPort.
RPort is released under the MIT open-source license.</p>tkramm
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:1500:15D.javascriptjavascript_welcome_day_1JavaScript welcome session - day #1devroom<p>A short introduction about JavaScript Devroom with some interesting resources about JavaScript and a presentation about this special day for the FOSDEM JS Devroom.</p>Ludovic GascFabien Benetou (@Utopiah)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:30D.javascripttechnology_kits_choicesTechnology kits (choices) that enable to consistently deliver high quality frontend solutions at speeddevroom<p>Did you face the difficulty of choosing a right architecture solution for a specific project or a client while considering their “rather” complex environment? Do you feel like you need to change your tech stack continuously?</p>
<p>If the answer is yes to both of the questions, join my talk about the solutions I’ve found so we can ca discuss your best practice as well.</p>
<p>Accelerators (technology kits) are opinionated yet pragmatic that I’ve identified and tested on the projects in production.
They allow me to go faster on delivering high-quality code with an easy to master architecture, to on-board other team members on the project and increase their productivity without reinventing everything from scratch.</p>
<p>We will discuss about the main JS frameworks (Vue.js, React, Svelte, Angular) and their meta-framework (why use them?), the state management (local and server state), the accessibility (how to integrate it from the beginning?), the testing and styling (CSS, SCSS, CSS-In-JS, Tailwind, which one to choose?).</p>
<p>Of course, take everything that will be said in this talk as an opinion, not as an absolute word because there is only one way to develop.</p>
<p>Be ready to share your tips during Q&A session.</p>Boubacar Siddighi BARRYContent
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0001:00D.javascriptdestructuring_frontend_monoliths_with_microfrontendsDestructuring Frontend monoliths with MicroFrontendsdevroom<p>From loading Ajax requests in browsers to have full-blown frameworks; Javascript has come a long way. While moving stuff from backend to frontend the problems of backend are also ported. The Bigger the code gets bigger the problems, more dependencies, harder maintainability, eventually all the problems of a huge monolith.
With MicroFrontends, we can break this monolith into smaller independent, maintainable apps.
Sounds good? Let’s see how in this talk.</p><p>In the modern app architecture, Frontend contributes a major chunk of the setup, most of the business logic is housed in the Frontend. Over time Frontend app becomes a huge monolith, harder to maintain, trickier to add new features, and so on. With Microfrontends we break this monolith into smaller independent apps. These apps are developed independently but stitched as a SPA on the fly with all the goodies of client-side javascript. This has been done traditionally with several approaches, but with Webpack 5 we now have Module Federation, which opens the door for seamless MicroFrontend integrations.
In this talk, we will discuss the Microfrontends architecture pattern, how to destructure an existing monolith into MicroFrontends with help of Module Federation from Webpack 5. By the end of this talk, the attendees will be having a new vision of how they architect their Frontends.</p>Trishul Goel
Previous talks
Slides for MicroFrontends talk
MicroFrontends demo
Module Federation examples
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:30D.javascriptbehavior_graphBehavior GraphA proven architecture for complex applicationsdevroom<p>Behavior Graph is a software architecture and state management library. It greatly enhances your ability to write complex user facing software and control systems.</p>
<p>Broadly speaking, it belongs to the category of libraries which includes Redux, MobX, Rx (Reactive Extensions), and XState.</p>
<p>It works by providing a new unit of composition which we call the behavior. Behaviors are simple blocks of code together with their dependency relationships.</p>
<p>We developed Behavior Graph to address our own complexity challenges while building an iOS video playing library which is used internally throughout the suite of native Yahoo mobile apps. After years of development and production usage, it has proven to be incredibly competent at scale.</p>
<p>We have since ported it to multiple languages including Javascript/Typescript. It is less than 1500 lines of code and contains no external dependencies.</p>
<p>Behavior Graph should appeal to anyone with an interest in software architectures and willingness to rethink how we write software applications.</p><p>Behavior Graph makes the dependency relationships between blocks of code its primary responsibility. We believe these relationships are the main source of complexity in most applications. Behavior Graph asks programmers to explicitly declare these dependency relationships. In exchange, it ensures that blocks of code are run at the correct time and in the correct order. As a result, the programmer is freed to reason locally about contained units of functionality, while the computer takes on the increasing complexity burden as an application grows in size.</p>
<p>In the presentation we will introduce the primary abstractions provided by Behavior Graph. We will do this by working through a simple example of how the library works with code samples. Then we will show how these pieces hold together as an architecture.</p>
<p>We will briefly touch on how it compares to similarly positioned libraries. Finally we will look at the current state of the library and a roadmap for the future.</p>Sean Levin
Github
NPM
Intro
Programming Guide
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:30D.javascriptmetaverseCan JS also build the metaverse?How Javascript can be used to build linked social WebXR applicationsdevroom<p>We keep on hearing about the metaverse but what is it and more importantly, can JS be used to build it?</p>
<p>We'll briefly clarify what the metaverse is and give practical examples today with federated virtual reality servers managed by different persons.</p><p>Behind the buzzword from Facebook/Meta there is a truly interesting concept : connecting virtual worlds!</p>
<p>To do so there is no need to be one of the largest advertising company. In fact there are several solutions working today allowing to navigate from 3D or VR web pages and even keep information across, like a profile. During this presentation we will explore the WebXR specifications, in particular links between pages, and test an implementation running today named ImmersSpace based on Mozilla Hubs and ActivityPub.</p>Fabien Benetou (@Utopiah)
Immers client documentation
Mozilla Hubs
ActivityPub
Video on installing Hubs on Digital Ocean
Documentation on installing Immers for Hubs
W3C WebVR 2016 workshop notes on link traversal
Using VR to manage notes
AFrameVR framework
ThreeJS framework
Connectivity in the metaverse
Wolvic WebXR browser
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.javascriptrapid_prototyping_physical_interfaces_with_web_serial_and_cheap_mcusRapid Prototyping Physical Interfaces with Web Serial and Cheap MCUs.Quickly and cheaply doing design discovery and prototype development with only a web browserdevroom<p>(With a $4 microcontroller to build fun, accessible, and unique forms of interaction)</p>
<p>The magic of computers and smartphones is the fact that they provide a very malleable interface - the screen. Without having to manufacture extra parts for every new application, this is a massive time and cost saving for engineers. However, this comes at a cost of accessibility and usability, as well as diminishing the physical connection one might have to the device they are using. Physical interfaces are now much easier to develop, and can even be constructed by the end user, since MCUs are now very cheap and readily available, along with lots of modular parts to construct interfaces with. Web Serial provides the added benefit of being able to use the highly distributed and easy to code with JavaScript / Web platform with these MCUs. This means rapid prototyping can be performed, along with user testing, very easily, making it much cheaper and faster to reach an end product. This talk intends to demonstrate some basic examples along with some steps to getting a process together yourself.</p><ul>
<li>Introduction to Web Serial API</li>
<li>An overview of the MCU market today</li>
<li>Demonstrations of some homemade physical interfaces for web applications</li>
<li>How to set up a basic web app using web serial</li>
<li>Overview of reading values from a physical input component through a circuit and converting it to serial data</li>
<li>Using browser-based circuit design tools for safe pre-breadboard experimentation using Wokwi and CircuitJS</li>
<li>Building a simple physical input, through to reading the data into the web application</li>
<li>Ideas for potential tangible user interfaces, summary, questions.</li>
</ul>
Louis Foster
Drohen Github
Code for this talk
Google Chrome
Serial Communication Wikipedia
MDN Browser Documentation
Project Fugu
CircuitJS
Web Serial API example project
Paddle controller challenge
Web Serial API subreddit
Web Serial API Awesome List
https://pocketmechatronics.com/posts/better-prototyping-with-web-serial-raspberry-pico/
https://pocketmechatronics.com/posts/reflection-2-components-1-week/
$1 microcontrollers
0.03c microcontrollers
Raspberry Pi Pico
Wiring
Processing
Micropython
Espruino
Kaluma
Wokwi - Kaluma blank project
Glitch - blank web app
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.javascriptbridging_the_gap_between_jamstack_and_big_dataBridging the Gap between Jamstack and Big Datadevroom<p>I want to explain how to build data-intensive Jamstack apps with outstanding performance, low costs, and scalability while having great developer experience.</p><p>It's been 15 years since the quote “Data is the new oil” was coined, and Jamstack is here for more than 6 years already. Yet, there's no straightforward way to build a data-intensive app with outstanding performance, low costs, and scalability while having great developer experience. Oh, really? In this talk, I'll show how you can build a lightning-fast Jamstack app that works with massive loads of data with open-source tools and having lots of fun.</p>Igor Lukanin
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.javascriptaccessibility_testing_with_html_validateAccessibility testing with HTML-Validatedevroom<p>The hows and whys of using HTML-validate to automate accessibility testing for SPA.</p>David Sveningsson
Project website
Git source
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:30D.javascripte2e_testing_with_microsoft_playwrightE2E testing with Microsoft Playwrightdevroom<p>Automated browser end-to-end testing is a powerful technique to ensure your web UI and backend work together nicely. In this talk, we show how we've leveraged Microsoft's Playwright library to refactor our test suite, enhance productivity and code quality.</p><p>At ownCloud, we pride ourselves in shipping well-tested code. Besides the typical unit- and integration-tests, we use automated browser/end-to-end tests for our new web frontend, which is supported both by our "ownCloud classic" backend as well as developed alongside our new generation "ownCloud Infinite Scale" backend.</p>
<p>Confronted with a flaky and complex continuous integration suite of end-to-end tests that was not actively maintained, hard to reason about (as well as sub-optimally documented due to the original creators leaving the project and running for, well, "longer than acceptable"), we opted to switch from Selenium/Nightwatch to Microsoft's Playwright (playwright.dev).</p>
<p>Tune in for this talk when we show how our test suite evolved over time, listen to our reasoning about the technological switch, and also learn from the mistakes we made and best practices we extracted into practical examples.</p>Florian Schade
ownCloud Web
ownCloud Infinite Scale
ownCloud Core
Microsoft Playwright
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:30D.javascriptsearch_and_aggregations_made_easy_with_nodejs_and_opensearchSearch and aggregations made easy with NodeJS and OpenSearchdevroom<p>Learn how OpenSearch works and get equipped with practical knowledge to search, aggregate and visualise your data.</p>
<p>This is a hands-on session where we will use JavaScript to interact with the OpenSearch cluster - create an index, add documents, search and aggregate data. At the end we’ll visualise results with OpenSearch Dashboards.</p>
<p>JavaScript engineers who are ready to add search and aggregation features to their applications should attend this session; no previous knowledge of OpenSearch is required.</p><p>In this session the audience will get both theoretical and practical knowledge on what OpenSearch is and how they can work with it by using its NodeJS client. This is a hands-on session where the audience is invited to follow along.</p>
<p>There will be an accompanying GitHub repository to allow the audience to follow me during or after the lecture.</p>
<p>References to old talks:</p>
<p>I’ve already run a similar session at AWS Community Day, added its link to the list of links. However, I will modify and improve the content based on the learnings from the previous session. So the content will not be the same.</p>
<p>Audience:</p>
<p>Javascript Developers with no or little knowledge on Opensearch or Elasticsearch.</p>Olena Kutsenko
Example of my talk on a similar topic
Slides from my talk performed for a similar topic
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:30D.legalteachingossHow to teach OSS licenses and compliances at a universityhow to teach to the students with some of the use casesdevroom<p>I have started to teach OSS licences and compliances at a Japanese university since last year. it was difficult to teach OSS licences and compliances because I should have shown many of use cases so that the students could learn what the licences and compliance are and more, they even didn't know how to deal with ordinal software licenses. So, I had to talk many of the background knowledges to the students as an 'introduction' so that students could understand the OSS licences with compliances with ease. Fortunately, there were good feedbacks from the students, though, I need to improve my lecture more gathering more use cases etc.
I will give a talk my experiences there at the university and discuss how to improve my lecture to teach such 'licences and compliances' to students. the feedbacks/ideas for my talk are really welcome!</p>
<p>I will give a talk</p><h1>The opportunities to teach OSS licenses and compliances</h1>
<ol>
<li>increase the incidents of OSS licenses violation</li>
<li>keep compliances not to violate OSS licenses</li>
<li>respect the authors and keep the licenses rules.</li>
<li>reinventing of the wheel with compliances</li>
</ol>
<h2>the Difficulties to teach several OSS licenses</h2>
<ol>
<li>the difficulties for students to read several OSS license descriptions directly, really complex for them, especially GPL licenses.</li>
<li>need to gather many of the incidents of OSS licenses violation.</li>
<li>need to prepare good quiz(exam) so that students could understand with ease.</li>
</ol>
<h2>the lecture last year</h2>
<ol>
<li>why the University needs the lecture</li>
<li>the trial and error for the students</li>
<li>the advice from the staff at the university</li>
<li>the feedbacks from the students</li>
</ol>
<h2>the lecture coming next year</h2>
<ol>
<li>gather more incidents to check</li>
<li>looking into the incidents more - deep-diving for the practice.</li>
<li>looking into new OSS licenses for DX</li>
<li>any ideas...welcome!</li>
</ol>
Masafumi Ohta
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3000:30D.legaldmaAn update on the Digital Markets ActThe new European rules for online competitiondevroom<p>Last year we introduced the reasons and the plans for the new Digital Markets Act of the European Union, regulating online markets to further more competition with the dominant gatekeepers. In 2021, the act was discussed and finally voted by the European Parliament, which expanded many of its provisions and strengthened the new rules. In 2022, the act will be negotiated again with member States and then, possibly, finally approved by the Parliament. In this update we will explain in details what has changed and where we are.</p><p>The Digital Markets Act introduces rules for "gatekeeper" digital companies, defining how to recognize them and setting obligations for them to fulfil. These obligations generally affect their business practices, such as the terms and conditions that they impose onto their business users and the consumers; the way they enter new markets and exploit their strength to conquer them; the opportunities that are left for users to choose competing services or move out of the walled gardens. Principles like unbundling and interoperability have been recognized as useful tools to promote competition.</p>
<p>It is still to be understood whether all these obligations will survive the negotiation phases and will be confirmed in the final act. However, discussions are also starting on how some of these new provisions may be implemented, and how to define the details and the technical standards. The talk will present the current situation and solicit feedback and comments from the community.</p>Vittorio BertolaSlides for the talk
Last year's talk on this subject
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:30D.legalintlarbitrationA globally unified governance framework for Open SourceInternational arbitration to harmonize the security provisions of sovereign states and Open Source? Learning from the Java Virtual Machine, Ceph and abstraction layersdevroom<p>Differentiating between architectural flaws and bugs in socio-technical systems: Open Source is no legal term or a political institution in dominant sovereign state systems, making it vague and interpretable in different contexts. However, it is a fundamental institution in security provisions in today's socio-technical societies. But it remains impossible to harmonize the transnational Open Source system with sovereign systems: both cannot be clearly mapped to each other. Yet, international arbitration provides a type of remedy that already exists in software development, illustrating how a shift from just fighting bugs to mitigating architectural flaws can look like.</p><p>Initially, the Internet imitated the institutions of the social world despite their limited eligibility (such as "emails" with their complex and vulnerable architecture). Today, societies are socio-technical without delimitable transitions between technology/Internet and society. Societies have started to adapt to and integrate the possibilities the code provides, no longer vice versa. Sovereign state systems early found their limitations in tackling the resulting challenges. However, software development had already to manage comparable issues. The Java Virtual Machine and Ceph are two of many examples: another abstraction layer can create flexibility, simplification and unification on top of different systems.</p>
<p>International arbitration could offer Open Source a transnational and globally-unified framework, enshrined in an arbitration agreement: embedded in a dedicated organization in an eligible legal system to facilitate the conduct of organizations and communities on which code and the Internet depend.</p>
<p>Open source and its related institutions are already the core element of a transnational separation of powers, which is based upon competition: public processes & public code in conjunction with distribution (of development, code, review & testing) enable forking (to avoid monopolies and irrevocable consolidation of powers at one place). Reflecting the software engineering concept "secure by design", Open Source has created a "socio-technical system secure by design" because it avoids single points of failure both in social and technical realms: it does not relate governance to centralization but to distribution. Indeed, if issues like the 2020 Solarwinds Hack would spread in deployed Linux kernels, this could have unprecedented consequences far beyond the technical realms. However, Open Source and its institutions remain capable of providing sufficient security and deterrence. There is much more behind Open Source than just open/public code.</p>
<p>The increasing use and consolidation of IT in governments may break the traditional separations of powers and does not provide the "security by design" of Open Source institutions if applied to socio-technical systems. Indeed, if one administrator and his password in one consolidated IT department can manipulate the databases used in executive, legislative and judiciary operations, new risks can arise. The system around Open Source already contributes to the security provision of and on the Internet and thus, indirectly to the overall security provision of people and entities that depend on the Internet: it facilitates security in socio-technical societies.</p>
<p>If it proves eligible, enshrining the relevant (and legally implementable) Open Source institutions in an arbitration agreement may result in an compatible abstraction layer on top of the traditional state systems. Complementary, this abstraction layer may facilitate to release traditional systems from tackling issues they simply cannot tackle without softening and blurring their own institutional architecture. It may turn antagonism into symbiosis.</p>
<p>However, Facebook's Libra indicates the complexity (but also the possibility) of creating such "implicit legal" ventures (in Switzerland). It also indicates that Switzerland could possibly enable the fusion of an international arbitration body (through its "international private law") with an open/public/distributed but regulable cryptocurrency to facilitate not just the (Open) Source but also (open) exchange within one globally unified system.</p>
<p>Although they will be critical and challenging for any international arbitration approach, legal patent- and license-related questions are not considered in this lecture.</p>
<p>This lecture is derived from the perspective of the field of international relations. It illustrates the role of Open Source in contemporary security provisions (next to and in interaction with sovereign states' security provisions for citizens) and it aims to put alternative (types of) approaches with and around Open Source into discussion.</p>Christopher Klooz
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:30D.legalpandemicnowinWhy the pandemic could help FOSS, but was a win for proprietary softwaredevroom<p>During the pandemic we have experienced a sudden growth of remote activities, with people working and studying from home. Most proprietary solutions were not suited for the task, as they were not compliant with GDPR, as they were profiling users beyond the provided service, and in many cases could not guarantee that end user data were maintained within Europe acconrding to EU legislations. Unfortunately, EU governments ignored the situation and signed contracts with big techs for remote work and remote teaching, exposing the personal information of million of EU citizens - the majority of them being students - to unauthorized practices. OSS could be the answer, but was ignored because there wasn't enough time to deploy appropriate solutions. The talk tries to provide a different perspective.</p>Italo VignoliWhy the pandemic could help FOSS, but was a win for proprietary software
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.legaldeviceneutralityWhy Device Neutrality is important for Free Software?devroom<p>The number of devices on which users cannot run Free Software is exponentially increasing. The consequence is an increased loss of control over users’ technology. In order to remediate this situation, the FSFE has been working with the concept of Device Neutrality, understood as a policy principle that ensures users equal access and non-discriminatory use of their devices. The FSFE has advocated for four main principles: stricter consent rules for pre-installed apps, no vendor lock-in, full interoperability, and real-time data portability. The talk will explain the concepts and the challenges ahead.</p><p>While digital devices are a ubiquitous reality in all aspects of life, control over the hardware and software running on them is increasingly being limited by internet platforms, digital services providers, hardware manufacturers, and vendors. Several policy and legal concepts have been developed by the academic sector in cooperation with regulatory bodies and courts to tackle this issue in the EU.</p>
<p>The whole debate boiled down to principles that have been included in the EU's major overhaul of internet law: the Digital Markets Act. Device neutrality is a policy term that translates as non-discrimination of services and apps by providers, manufacturers, and vendors. The objective of device neutrality is to enable consumers to bypass gatekeepers and enable a fair and non-discriminatory use of Free Software.</p>
<p>The talk will explain the four main demands the FSFE has been leveraging in the public debates and legislative processes:
* Strict end-user consent for pre-installed apps;
* No vendor lock-in;
* Interoperability of services based on Open Standards
* Real-time data portability</p>Lucas Lasota
Device Neutrality demands
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3001:00D.legalorganizerslegalpolicyPanel: Hot TopicsOrganizers of the Legal & Policy DevRoom discuss the issues of the daydevroom<p>The organizers of the Legal and Policy DevRoom for FOSDEM 2022 discuss together the issues they've seen over the last year in FOSS, and consider what we can learn from the presentations on the track this year, and look forward together about the future of FOSS policy.</p><p>The organizers of the Legal and Policy DevRoom for FOSDEM 2022 discuss together the issues they've seen over the last year in FOSS, and consider what we can learn from the presentations on the track this year, and look forward together about the future of FOSS policy.</p>Bradley M. KuhnKaren SandlerMax MehlAlexander Sander
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3000:30D.libreofficelotech_odfbetterthanooxmlWhy ODF is a better standard than OOXMLdevroom<p>Open Document Format (ODF) and Office Open XML (OOXML) are both ISO/IEC open document standards, but while the first is loyal to standard definitions the second is an unfortunate attempt to propagate proprietary formats in a pseudo-standard format to lock-in users to Microsoft Office for the foreseeable future. The presentation explains why ODF is a better standard than OOXML.</p>Italo VignoliWhy ODF is a better standard than OOXML
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:30D.libreofficelotech_ooxmldocumentOOXML Document Analysisdevroom<p>I will talk about how do we proceed when we receive a problematic OOXML document from a customer and show a solution of a sample bug.</p>Gülşah Köse
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.libreofficelotech_200pagelecturebookLet's Build a 200-Page-Long Lecture Book with LibreOffice WriterChallanges, tips and tricks that work and that don'tdevroom<p>In 2021, a tender financed by the Australian Government has been won. The purpose of the project was to create a lecture book for kids, parents and their teachers who have a European (Hungarian) background, and who want to keep their cultural heritage, while they are living in a non-Hungarian speaking country.</p>
<p>Such a project has a lot of interesting challenges but in this talk, mostly the technical aspects will be introduced. The perspective and the journey of the editor of the book will be demonstrated, whose responsibility was to combine the chapters written by three different authors into a single, ready-to-print document.</p>
<p>The main tools were LibreOffice Writer and Draw but GIMP and InkScape also played a significant role.</p>
<p>In the talk, various tricks and steps will be shown how the document has been created and how the different tools were able to cooperate. Besides the working ways, some non-working paths and traps also will be shown.</p>Csongor Halmai
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.libreofficelotech_professionaltemplatesCreating professional templates with LibreOffice WriterA brief panorama on how much important templates are and what can be done (and automated) inside them.devroom<p>One of the tasks of my job is to create corporate templates. It is really important to spend the right amount of time on them, since they are the image of the entity (whatever kind of) to the public, and they usually last for decades. Knowing well the needs and requirements is possible to automate a lot of things, still without macros. But pushing so much Writer to its limits let us discover some minor bug or possible enhancements.</p>Gabriele PonzoPonzoGabriele Creating Professional Templates with LibreOffice Writer
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.libreofficelotech_documentthemesDocument themes in LibreOffice Impress and elsewheredevroom<p>LibreOffice was capable of handling color palettes on its UI for a while
already. In the meantime, the competition introduced document themes, which
are a fixed set of 12 colors, to be attached to various parts of documents.
This allows referring to those colors by name, and apply color filters. These
color filters are maintained even if the source theme changes. Come and see
how this now starts to work also in Impress, what still needs doing and how
you can help.</p>Miklos Vajna
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:30D.libreofficelotech_advantagesoflotechAdvantages of LibreOffice Technologydevroom<p>Today, the LibreOffice Technology platform is based on the same software engine for all modules, based on a clean and refactored source code, with a focus on code quality and consistency, and supported by easy and extensive APIs. LibreOffice consistency represents a strong advantage over the "siloed" approach of all other office suites, where there is a different software engine for each application and each platform. The result is a lack of consistency for files, which are also different by platform. LibreOffice Technology is the best open source platform for personal productivity, and is tightly integrated on desktop, mobile and cloud.</p>Italo VignoliAdvantages of LibreOffice Technology
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:30D.libreofficelotech_canvasforuxCanvas For Rendering UXdevroom<p>I will present why we needed to use Canvas for rendering the UI and the document. Then i will explain the structure we created for this task.</p>Gökay Şatır
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:3000:30D.libreofficelotech_informationengineeringInformation Engineering OperationsA DevOps paradigm for Product Documentation Groupdevroom<p>The product document intersects between product and non-product teams. The dependency on the product features is invariably high with the early adopters and existing user base.</p>
<p>Integrating with the non-product groups to understand the expected use cases, building scenarios with the product team with quality and security being implicit will be the objective of this information engineering operations group.</p><p>Imagine the user base is trying to figure out a mail-merge situation using Base and Writer modules. LibreOffice offers features to integrate with the modules to merge and generate compelling mails.</p>
<p>An authoritative multilingual guide to accomplishing the scenarios will take a whale of time to reach the user base. Treating it as a lost opportunity, the new paradigms to integrate with the non-product and product teams will table the perspective of mirroring DevSecOps.</p>
<p>This talk will highlight the opportunities available within the industry for the Information Engineering team.</p>Vasudev NarayananProduct User Documentation - A Modern Approach
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:35D.llvmllvm_fortran_debugEnhanced debuggability support in LLVM for various Fortran language featuresFortran debuggabiliy support in LLVMdevroom<p>The aim of this abstract is to showcase the enhanced debuggability support added in LLVM for the Fortran language features. LLVM being emerging compiler framework, there was some gap to be bridged w.r.t. Fortran language debug info generation. This is because Fortran language has few features which are very powerful, as compared to other languages.</p>
<p>Fortran dynamic arrays are one such powerful language feature. There are variety of arrays like adjustable array, assumed shape, assumed size, assumed rank, allocatable and pointer arrays. LLVM generated debug info was not sufficient to debug these many variety of arrays with GDB/LLDB. The LLVM was lacking support for multiple DWARF operators (DW<em>OP</em>push<em>object address, DW</em>OP<em>over), DWARF attributes (DW</em>AT<em>data</em>location, DW<em>AT</em>allocated, DW<em>AT</em>associated, DW<em>AT</em>rank) and a DWARF TAGs (DW<em>TAG</em>generic_subrange). Other than these, existing support for DISubrange was not sufficient to handle Fortran arrays. The same was true for Fortran strings which is not mere pointer to character type and needed more support from LLVM. Other features which needed similar LLVM support for debugging were Fortran modules, namelist and signed constants etc.</p>
<p>All these enhancements made in LLVM are as per DWARF4 or DWARF5 specification for the Fortran language. These enhanced debug info are used by GDB/LLDB and user debugging experience is improved now while handling these Fortran features with GDB/LLDB. In order to make use of these enhanced debug info emitted by LLVM, GDB/LLDB is also enhanced in cases where required. With these enhancements added now in LLVM, Fortran program debugging experience with the clang/flang emitted programs are on par with gcc/gfortran emitted programs and in some cases it’s even better than gcc/gfortran.</p>Alok SharmaBhuvanendra Kumar N
https://reviews.llvm.org/D79484
https://reviews.llvm.org/D86305
https://reviews.llvm.org/D108553
https://reviews.llvm.org/D99273
https://reviews.llvm.org/D79306
https://reviews.llvm.org/D79592
https://reviews.llvm.org/D80197
https://reviews.llvm.org/D83544
https://reviews.llvm.org/D87500
https://reviews.llvm.org/D89141
https://reviews.llvm.org/D89208
https://reviews.llvm.org/D89218
https://reviews.llvm.org/D99335
https://reviews.llvm.org/D109343
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3500:25D.llvmllvm_c_extensionHow to write an extension for CIn this talk we will briefly describe how to add your own extension to C, what steps may be needed to do it. And then we will review a small exampledevroom<p>In this talk we will briefly describe how to add your own extension to C, what steps may be needed to do it. And then we will review a small example</p><p>We want to summarize our findings, which we gathered during implementation of procedural-parametric extension for C. This work will present a list of examples about how to extend existing structures in clang, and how to map your new constructions from source code to LLVM IR
More details about procedural-parametric approach: https://dl.acm.org/doi/10.1145/2556610.2556619
In that article you'll see examples of this extension implemented in Modula-like programming language. It will give you full picture about what we implemented in C</p>Pavel Kosov
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:35D.llvmllvm_ebpfCoverage for eBPF programsdevroom<p>eBPF is fastly becoming the first choice for implementing tracing and security-critical applications and software.</p>
<p>Yet, its ecosystem lacks tooling to make developers' life easier.</p>
<p>Join this talk to get to know bpfcov: an open-source tool I wrote that uses the LLVM pass infrastructure to instrument your eBPF programs to collect coverage data while they run in the eBPF VM in the Linux kernel.</p><p>I bet we all have heard so much about eBPF in recent years. Isn't it?</p>
<p>Every day we hear about a new project using some eBPF magic underneath.</p>
<p>eBPF programs are written in C but compiled for a specific ISA later executed by the eBPF Virtual Machine.</p>
<p>LLVM has a specific backend allowing us to write C and get eBPF ELF objects out.</p>
<p>Still, there are no tools helping developers to clearly understand which path their code took while running, which branches were uncovered, and maybe why.
Even testing the eBPF programs is a pain, given that not all the types of eBPF programs are supported by <code>BPF_PROG_TEST_RUN</code> in the Linux kernel.</p>
<p>Yes, BTF and CO-RE are improving the situation.
But, writing eBPF is still mostly about fighting against the BPF VM verifier.</p>
<p>Until today, there is no simple way to visualize how the flow of your eBPF program running in the kernel actually was.</p>
<p>That's why I sat down and wrote bpfcov.
A tool to gather source-based coverage info from your eBPF programs.</p>
<p>During this talk, I will show the audience the secrets of the BPF target in LLVM and how I wrote an out-of-tree LLVM pass to instrument eBPF programs with counters, counters expressions, and friends.</p>
<p>The goal is to help eBPF developers to get to know how to use the powerful LLVM infrastructure to make the eBPF ecosystem - and their life - better.</p>Leonardo Di DonatoSource based coverage for eBPF programs using the LLVM toolsCoverage expanding macrosCoverage for BPF LSMHTML reports for source-based code coverage of multiple eBPF programs/filesJSON reportSlides
bpfcov repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3500:25D.llvmllvm_llsoftsecbookLlsoftsecbook: an open source book on software security for compiler developersdevroom<p>Compilers play a crucial role in hardening software against security attacks. As compiler engineers we experience an increase in demand for security-related features: we simply work on security-related features more often.
We find it tough to analyze whether the hardenings we implement are easy or hard to circumvent by attackers. After chatting about this with many compiler developers, our experience is that most feel their work would benefit from a deeper understanding of attacks and hardening techniques. After having looked around, we didn't find much educational material that gives a broad overview, covering all aspects compiler developers ought to know about.
Therefore, we recently started an open source book titled "Low Level Software Security for Compiler developers" at https://github.com/llsoftsec/llsoftsecbook/. It aims to improve the industry-wide knowledge about security hardening in compilers and related tools; ultimately leading to more innovation and better implementations of security features.
In this presentation, we'll explain the rationale for this new open source project in more detail. We will discuss what content we have so far and what content we plan to add. The project very much welcomes new contributors: we need more new content, more review of content, discussion of ideas for how to make the book better, improvement in the design and layout of the produced HTML and PDF output, etc. We hope this presentation will reach both anyone interested in learning more about low-level software security and anyone interested in helping to grow this project further.</p>Kristof Beyls
https://github.com/llsoftsec/llsoftsecbook/
Live version of the book
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:35D.llvmllvm_8bit8-bit Character support on architectures were the smallest addressable unit size is 64-bit in Clang and LLVM8-bit characters in VIAMPPdevroom<p>Clang and LLVM have a great history of supporting a great variety of CPUs, from 8- to 64-bits assuming they all have a smallest size of an addressable unit of 8-bits words. Despite the fact that a lot of types and there alignment can be defined with the “target datalayout” string, the “character” and “short” type have been hard-coded into clang and llvm.</p><p>Clang and LLVM have a great history of supporting a great variety of CPUs, from 8- to 64-bits assuming they all have a smallest size of an addressable unit of 8-bits words. Despite the fact that a lot of types and there alignment can be defined with the “target datalayout” string, the “character” and “short” type have been hard-coded into clang and llvm. Once you compile with clang you will get for example:</p>
<pre><code>@.str = private unnamed_addr constant [6 x i8] c"Hallo\00", align 8
</code></pre>
<p>Some proposals exist to that offer a solutions to this problem (e.g. FOSDEM 2012: “Adding 16-bit Character Support in LLVM” or https://lists.llvm.org/pipermail/llvm-dev/2019-May/132080.html: “On removing magic numbers assuming 8-bit bytes”). Following this ideas one has to apply changes to over 120 files (clang and llvm v12.0.0) and keeping a patch set nearly impossible.</p>
<p>Looking for simpler solution for this problem we explored a couple of alternative solutions. Two design goals have to be satisfied:</p>
<pre><code>don’t change CHAR_BIT
keep CharWidth at 8-bits
</code></pre>
<p>Only the modification of the character alignment to 64-bits is allowed. With modifying only 8 files (some of them only dealing with character assertions) we end up with the desired result of:</p>
<pre><code>@.str = private unnamed_addr constant [6 x i64] [i64 72, i64 97, i64 108, i64 108, i64 111, i64 0], align 8
</code></pre>
<p>This solutions can also easily be adopted to machines with a minimal addressable unit of 16- or 32-bits. Also “WChar” can be addressed with minimal changes.</p>
<p>As this is solution is still under testing, the amount of files changed might be further reduced, and should allow for a small and simple patch set.</p>Thomas Pietsch8-bit Character Support
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3500:25D.llvmllvm_oniroLibc++ on Linux - using the example of OniroExperiences with switching from libstdc++ to libc++devroom<p>Oniro - the Eclipse Foundation's embedded operating system -
is switching from libstdc++ to libc++ by default. This talk
gives an overview of our experience daring to
make the switch.</p><p>Oniro - the Eclipse Foundation's embedded operating system -
is switching from libstdc++ to libc++ by default.</p>
<p>Binary compatibility is a holdup for libc++ adoption on
Linux desktops and servers - but in the embedded world,
we have more options.</p>
<p>This talk gives an overview of our experience daring to
make the switch.</p>Bernhard Rosenkränzer
The Oniro Project
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:25D.llvmllvm_antlrLLVM and ANTLR: A Starter on a non-Linux Machinedevroom<p>Although Linux is still the best preferred operating system, the talk begins with a problem statement regarding the dependencies of ANTLR and LLVM on Windows. To this end, the presenter will explain how these dependency issues can be resolved through an easy-to-use environment for building, installing and running native LLVM and ANTLR on Windows. Furthermore, the talk will briefly explain how we can design domain specific languages (DSLs) using a powerful combination of ANTLR and LLVM front end while maintaining a logical isolation of parsing and code generation.</p>Babar Khan
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:05D.mariadbmariadb_welcomeWelcome to the MariaDB devroomdevroom<p>A brief introduction and overview of what you can expect from the MariaDB devroom at FOSDEM</p>Ian Gilfillan
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0500:20D.mariadbmariadb_modelMariaDB Server's new release modeldevroom<p>As was announced in December 2021 https://mariadb.org/new-innovation-release-model/, MariaDB Server now has a new release model, with more frequent major releases. MariaDB Server 10.7 is the first release following this model.</p>
<p>Some of these releases will have 1 year support cycles, while others will be supported long term just like before. In this talk, I will present the pros and cons of this new release model, what it means for the MariaDB Server community, its users and also its developers. This will also give the community a chance to better understand the changes and give us feedback and ultimately ensure MariaDB Server properly serves its purpose of being a true Open Source Database.</p>Michael "Monty" Widenius
New release model announcement
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:2500:20D.mariadbmariadb_106What is new in mariadb 10.6 ?devroom<p>MariaDB is one of the most used open-source relational databases. The development of MariaDB focuses on stability and performance.MariaDB 10.6 is the current stable version of MariaDB and comes with a number of new features. This presentation covers - MariaDB in Open Source Ecosystem, Features in MariaDB 10.6, Variables added and Removed.</p>Praveen GR
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:4500:25D.mariadbmariadb_107_108New features in MariaDB 10.7 and MariaDB 10.8devroom<p>At the time of writing, MariaDB 10.7 is in RC, and the MariaDB 10.8 preview releases are imminent. The new release model means new features no longer have to wait a year between major releases before seeing the light of day, and the initiative of separate preview releases for each major feature eases testing and reduces instability.</p>
<p>This presentation covers some of the major new features being unveiled in MariaDB 10.7 and 10.8.</p>Ian Gilfillan
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:1000:25D.mariadbmariadb_macosMariaDB Server on macOSDoes it make sense to even try?devroom<p>Current MariaDB Server GA versions are formally not supported on macOS 10.x and 11.y. But it;s relatively easy to set up the environment and build it from current 10.2 - 10.7 GitHub sources, with few minor issues to resolve in the process depending on maxOS and major server version used. This talk is a summary of my related experience, with a quick review of related fixed and open bugs, as well as some unique features like DTrace support that one may benefit from on macOS.</p><p>Current MariaDB Server GA versions are formally not supported (and probably not even regularly built or tested) on macOS 10.x and 11.y. But it's relatively easy to set up the environment and build MariaDB Server from current 10.2 - 10.7 GitHub sources, with few minor issues to resolve in the process, depending on maxOS and major server version used.</p>
<p>This talk is a summary of my related experience on 10.13 High Sierra that I had a chance to work on recently, with additional quick review of related fixed and open bugs, as well as some unique features like DTrace support that one may benefit from on macOS. Actually, studying DTrace in context of MariaDB Server troubleshooting and performance tuning was one of the goals why I started to use macOS again.</p>Valerii Kravchuk
MariaDB Server bugs and feature requests possibly specific to macOS
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3500:25D.mariadbmariadb_histogramsImproved histograms in MariaDB 10.8devroom<p>MariaDB 10.8 is getting improved histograms, called JSON_HB. This talk will cover
- what the new histograms are,
- what are the advantages over the old histograms,
- how do they compare to histograms in MySQL 8.</p>
<p>At the end of the talk, I'll cover a closely related topic of usage of the histogram
data in the query optimizer:
- why this is hard,
- what are known limitations and their workarounds
- what MariaDB team is doing to improve this.</p>Sergei Petrunia
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:30D.mariadbmariadb_innodbPerformance oriented InnoDB log format changesHow InnoDB crash recovery worksdevroom<p>The persistent circular buffer (the <code>ib_logfile0</code>) is the fundament of the persistent InnoDB buffer pool.</p>
<p>Over the years, the log file format has been changed in MariaDB Server to improve the performance. A well-designed file format imposes minimal write amplification and is easy to parse.</p><p>The 512-byte block size of the InnoDB log was a perfect match for the industry standard that was defined by the venerable Seagate ST-225. Alas, the industry moved on, and now block sizes range from 64 bytes (the size of a memory cache line) to 4096 bytes. Therefore, a format that works efficiently with any block size is needed.</p>
<p>We present a flexible format where each mini-transaction (comprising log records) is a block on its own, with a checksum that is calculated in a local buffer, reducing contention on the mutex that protects the global log buffer. The old 12-byte block header is shrunk to a 1-bit sequence number, for detecting the end of the circular log. The additional overhead is 4 bytes per mini-transaction for a CRC-32C checksum.</p>
<p>No-op records may be written to pad the log buffer to match the physical block size. Encryption will only cover data. The length of each record is explicitly stored in clear, which allows consistent hot backups without having any encryption keys. For encrypted log, 8-byte part of initialization vector will be written after each mini-transaction.</p>Marko MäkeläPerformance oriented InnoDB log format changes
MDEV-12353 redo log record format changes in 10.5
MDEV-14425 redo log block format changes (10.8)
preview-10.8-MDEV-14425
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:25D.mariadbmariadb_optimizerMariaDB Optimizer - ongoing development and changesdevroom<p>The MariaDB optimizer has its roots in the original MySQL optimizer. Being a long standing project, it has inherited a number of quirks and features that -at the time of coding- made sense. The datasets had different sizes 10-20 years ago and the cost model is not always accurate for current workloads.</p>
<p>Thus, there is now an ongoing effort to significantly improve the calculations that the MariaDB Optimizer is doing. With the addition of JSON Histograms, the range optimizer is one of the most impacted modules. The end goal of this effort is to provide the user with a better query optimizer, but also put the user in control and allow the user to tweak many more parameters than were previously available. In this talk I will go through the major changes that are upcoming in MariaDB, changes that could impact query performance (for the better) and also raise awareness about which parameters have the highest impact on query optimizer performance.</p>Michael "Monty" Widenius
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:30D.mariadbmariadb_mysqlMySQL 8 vs MariaDB 10.7devroom<p>MySQL 8 and MariaDB 10.6 are the latest Major versions for MySQL and MariaDB. While MariaDB started by being slightly different MySQL variant, now it has grown into very much different database platforms which grows more different from every release.</p>
<p>In this presentation, we will look into the differences between MySQL and MariaDB in the core areas such as SQL features, query optimizations, replication, storage engines, and security. We will also discuss the unique features and capabilities MySQL 8 and MariaDB 10.6 offers compared to each other.</p>Peter Zaitsev
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3000:20D.mariadbmariadb_pit_recoveryMariaDB Point-in-Time-Recoverydevroom<p>Backup is typically done once a a day. But if you destroy your data hours later: What about the changes between your backup and the catastrophic event? In this presentation I will show you how you can recover your data between your backup until a specific point in time before the incident.</p>Oli Sennhauser
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:5000:30D.mariadbmariadb_backup_resticMariabackup + Restic: a simple and efficient online backup solution for your DBsdevroom<p>Mariabackup is a wonderful tool to perform physical online backups of MariaDB Server. By coupling it with Restic you can easily and efficiently create encrypted incremental backups of your DBs on the wide range of Restic's supported backends (local, sftp, s3, OpenStack swift, etc.).</p>Faustin LammlerPresentation slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:2000:25D.mariadbmariadb_denyMariaDB DENY commandUpcoming functionality for sysadmins and database service providersdevroom<p>MariaDB allows fine grained control of access over different database objects. Granting access to a very specific resource is easy. A problem comes up when one wants to grant access to a whole database <em>except</em> for a particular resource (table, column, etc.). The only solution thus far is to grant access to each individual resource and omit the ones that must not be accessible. Clearly this is not maintainable, nor practical.</p>
<p>This is where the DENY command comes in. The gist of the feature: A user will not be able to access denied resources unless the deny is explicitly revoked. MDEV-14443 - Reverse privileges in MariaDB is an ongoing tasks that will implement it. During this talk we will go through use cases, comparison to similar features of other databases well as implementation details of the feature which will (very likely) be part of MariaDB 10.9.</p>Vicentiu Ciorbaru
JIRA Task describing the technical aspects
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4500:25D.mariadbmariadb_galeraMariaDB Galera Cluster and M/S replicationdevroom<p>Many say: Galera or Master/Slave replication. What about Galera AND Master/Slave Replication? In this presentation we look at different scenarios where it makes sense to use both technologies together...</p>Oli Sennhauser
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:1500:30D.mariadbmariadb_tipsTen Tips for Better MariaDB Performancedevroom<p>Optimizing MariaDB performance and troubleshooting MariaDB problems are two of the most critical and challenging tasks for DBA’s. The databases powering your applications need to be able to handle heavy traffic loads while remaining responsive and stable so that you can deliver an excellent user experience. Further, DBA’s are also expected to find cost-efficient means of solving these issues.
In this presentation, we will discuss how you can optimize and troubleshoot MariaDB performance. We will look at specific, common MariaDB problems and review the ten tips that allow you to diagnose and resolve them.</p>Peter Zaitsev
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:4500:25D.mariadbmariadb_triggersCreative uses of triggersThings you people wouldn't believedevroom<p>Sometimes you shouldn't do something just because you can. Really. Nevertheless, you can.
This talk will explore the creative, occasionally useful, often unhealthy things that you can do with triggers. Attend at your risk.</p>Federico Razzoli
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:1500:25D.mariadbmariadb_connectionidMariaDB Connection IDdevroom<p>The MariaDB Connection ID exists since "ever". So why bother about such a boring thing? Because you can get many interesting information out of it...</p>Oli Sennhauser
You are here MariaDB Connection ID
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:4000:25D.mariadbmariadb_bfptraceMore on bpftrace for MariaDB DBAs and DevelopersSummary of recent experiencedevroom<p>bpftrace is a relatively new open source tracer for modern Linux (kernels 5.x.y) that may help to troubleshoot performance issues in production as well as to get insights on how software really works. More exotic use cases for the tool, as well as few more advanced bpftrace-based scripts useful for MariaDB DBAs and developers are presented.</p><p>bpftrace is a relatively new open source tracer for modern Linux (kernels 5.x.y) that may help to troubleshoot performance issues in production as well as to get insights on how software really works. I use it for a couple of years and would like to present more details on how to do it efficiently, including but not limited to adding tracepoints to different lines of the code inside functions, suing bpftrace as a code coverage tool and tracing in Docker etc.</p>Valerii Kravchuk
My talk on bpftrace basics
bpftrace on GitHub
My related long presentation from Percona Live 2021
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0500:30D.mariadbmariadb_jsonIntroducing MYSQL_JSON plugindevroom<p>MYSQL_JSON plugin is created in MariaDB as a bridge to bypass the confusion between MySQL and MariaDB JSON data type representation and to help MariaDB users in that regard.
Purpose of this talk will be to highlight how to convert MySQL data directory containing JSON native data type in MySQL to the MariaDB data directory where JSON is stored as an alias for LONGTEXT and how to deal with errors in that process.</p>Anel HusakovicFOSDEM 2022 Introducing MYSQL_JSON
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:3500:25D.mariadbmariadb_confidentialThe future of databases is confidentialdevroom<p>In today’s cloud-first world, data security is still a major concern. Confidential computing addresses this at the root by protecting data in use: sensitive workloads are run inside hardware-isolated and runtime-encrypted environments called enclaves.</p>
<p>We have developed the first open-source database based on MariaDB designed for confidential computing. EdgelessDB is a MySQL-compatible database that runs entirely inside Intel SGX enclaves.</p>
<p>In this talk, we'll introduce EdgelessDB and compare it to conventional databases as well as existing database encryption solutions. We'll explore the benefits, novelties, and why confidentiality is an important feature of a database. Finally, you'll learn about uses cases and how to easily get started.</p>Felix Schuster
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:4000:10D.microkernelssumpfIntroductiondevroom<p>Welcome talk and introduction to the Microkernel and Component-based OS devroom at FOSDEM 2022.</p>Martin DěckýSebastian Sumpf
About the devroom
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:5000:30D.microkerneljstecklinaAdvanced Unit Testing in the Hedron Microkerneldevroom<p>Concurrent code is hard to get right, but at the same time also hard to test. It gets worse when hardware interaction is required. This leads to a comparatively poor culture of unit testing in kernel code, where both come together.</p>
<p>In this talk, I’m going to highlight one particular method of unit testing the page table manipulation code in Hedron, a microkernel written in C++ specially geared towards virtualization workloads. This code safely modifies page tables that are concurrently used by the CPU. Usually, unit tests only check whether the state after an operation meets the expectation of the programmer. In contrast, Hedron employs completely deterministic unit tests that show that the CPU will always see a valid virtual memory mappings while a page table manipulation is in progress (for the tested cases).</p>
<p>The goal of this task is to show that unit tests can be a powerful tool even for properties of code that are usually not deemed unit testable.</p>Julian StecklinaTalk Slides
Hedron Source
Blog about x86 low-level topics
Podcast about OS topics
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:2000:30D.microkerneldzammitA practical solution for GNU/Hurd's lack of drivers: NetBSD's rumpkernel frameworkdevroom<p>GNU/Hurd is the original Free Software operating system started in the 1980s. Its microkernel design has been evolving over the years and the project has not quite hit mainstream use. I believe this is due to one main reason: the lack of drivers for peripherals and hardware. In this talk, I explain how NetBSD kernel drivers have been reused in a microkernel setting and demonstrate their use to boot up a GNU/Hurd system via a userspace rump disk driver, with a driverless Hurd kernel, gnumach. The ACPI management, PCI management, and actual driver are in separate processes with RPC interfaces between them, which separates out their debugging, licencing concerns and execution. I believe this aligns with the original vision for the operating system, (as a Hurd of servers).</p>Damien ZammitRump Hurd Talk Slides
GNU/Hurd
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:5000:50D.microkernelnfeskeGenode meets the Pinephonedevroom<p>Driven by the vision of a truly trustworthy smartphone, I dedicated the past year to bringing the component-based Genode OS to the Pinephone. The talk presents my experience story, touching on the hardware, booting, the porting of the kernel, component-architecture concerns, and device drivers.</p><p>Smartphones have become a commodity almost everyone relies on. With the convenience, however, comes complexity that is impossible to comprehend and constantly changing. The opaqueness of hardware and software puts the user in a subordinate position, making their devices - and by extension many aspects of their life - dependent on the decisions of a few dominant corporations. Our personal devices are constantly changing under our fingertips. Steady updates are presumably needed to stay secure, similar to how medicine is needed to stay healthy. But are the incentives of the platform providers aligned with my interests?</p>
<p>I want my digital life healthy without a constant supply of medicine! To reinforce trust, both hardware and software must become transparent, traceable, and tractable. The Pinephone satisfies the urge for transparency of the hardware, thanks to publicly available schematics and documentation. However, the predominant software stacks - even though based on the open-source Linux kernel - are practically inscrutable because of their immense complexity. Genode's rigid component architecture promises to bring order and clarity - and thereby trustworthiness - to the software.</p>
<p>Over the course of the past year, I pursued the combination of Genode with the Pinephone, diving deep into the Pinephone schematics, the SoC, booting, Genode's kernel, and device drivers. In my talk, I present the experiences made, touch on the use of Linux drivers directly on Genode, and draft a plan forward. The talk will be garnished by a demonstration.</p>Norman FeskeGenode meets the Pinephone
Genodians.org
Genode OS Framework
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:4000:35D.microkernelagrintenManagarm: Design of a pragmatic fully-asynchronous microkerneldevroom<p>In this talk, we explore the design of Managarm's microkernel. Managarm is a pragmatic microkernel-based OS with a focus on asynchronous operations. The talk covers various aspects of the microkernel, such as its IPC model, resource management, and user space API. Managarm's microkernel employs a capability-based design to manage hardware resources. In contrast to current mainstream OSes, Managarm's system calls never block but report completion asynchronously whenever possible. This includes system calls for common tasks such as memory management or inter-process communication (IPC). A lock-free ring buffer is used to quickly deliver asynchronous completion notifications to user space. Managarm implements a POSIX subsystem to be able to run various well-known UNIX applications (e.g., a Wayland desktop) on top of the microkernel. This subsystem is implemented entirely in user space. The kernel uses various acceleration strategies to to efficiently support this use case.</p>Alexander van der Grinten
Repository
https://managarm.org
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:1500:35D.microkernelskuenzerDebugging and Monitoring in UnikraftEverything beyond printf()devroom<p>Unikernels are hard to debug? Unikernels cannot be easily administrated or monitored? While unikernels have the potential to revolutionize our infrastructures and take cloud computing into the next era, many worry that unikernels cannot be seamlessly integrated into today’s development and production workflows.
At the Unikraft team, we are heavily working on addressing these concerns and changing the status quo. Although unikernels are monolithic bundles of only necessary kernel functions and an application, we follow the concept that everything is a (micro-)library. Users can pick and choose kernel functionality at build time. The same applies for monitoring and debugging: In this talk, we will give an overview of our current debugging and monitoring capabilities, and we will present our vision for how these pieces will enable a cloud-native experience. We will also give a deep dive into our GDB backend implementation with a live demo.</p><p>Unikraft is an open source Xen Project incubator under the auspices of the Linux Foundation. We are currently launching a start-up with the mission to provide Unikraft unikernels for production and enterprise use.</p>Simon KuenzerMarc RittinghausDebugging and Monitoring in Unikraft
Unikraft OSS
GitHub Community
Unikraft - The lightweight virtualization company
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:5000:40D.microkernelananoHardware accelerated applications on Unikernels for Serverless Computingdevroom<p>Serverless computing facilitates the use of resources without the burden of administering and maintaining infrastructure. The simplification of IaaS appears ideal (in theory) but providers and users are presented with several challenges: providers aim to reduce infrastructure maintenance overheads; users require isolation, flexibility and programming freedom.</p>
<p>Serverless deployments are mostly backed by sandboxed containers. To enable programming freedom for users, providers allow the use of containers for function deployment, however, to ensure strict isolation, these containers are sandboxed in VMs. As a result, this bloated stack brings complicated maintenance costs: (a) several layers of abstraction between the user function to be executed and the actual execution environment; (b) increased attack surface; (c) increased request-to-exec time; (d) reduced set of feature availability for functions (hardware acceleration).</p>
<p>Unikernels promise fast boot times, small memory footprint and stronger security but lack in terms of manageability. Additionally, Serverless frameworks only support containers. Moreover, unikernels provide a different environment for applications, with limited or no support for widely used libraries and OS features. This issue is even more apparent in the case of ML/AI workloads. ML/AI libraries are often dynamically linked and have numerous dependencies, which directly contradict the statically linked notion of unikernels. Finally, hardware acceleration is almost non-existent in unikernel frameworks, mainly due to the absence of suitable virtualization solutions for such devices.</p>
<p>In this talk, we present the design of a flexible serverless framework designed for the cloud and the edge, backed by unikernels that can access hardware accelerators. We go through the components that comprise the framework and elaborate on the challenges in building such a software stack: we first present an overview of the necessary components of a serverless framework; then we focus on the function execution framework based on two popular unikernel frameworks; finally, we present a hardware acceleration abstraction to expose semantic acceleration functionality to workloads running on top of this framework.</p>
<p>A short demo of the working components will be presented, discussing the challenges and trade-offs of this approach.</p>Anastassios NanosCharalampos MainasHardware accelerated applications on unikernels for Serverless Computing
vAccel: a hardware acceleration abstraction for serverless computing
Solo5 on OpenFaaS (Demo 1)
Image Classification with vAccel on OpenFaaS using Unikraft (Demo 2)
vAccelRT
vAccel on Unikraft
Join us!
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:30D.microkernelawarkentinUX/RT - a QNX-like OS based on seL4devroom<p>UX/RT is a new QNX-like OS based on the seL4 microkernel, with improvements in security and reliability over mainstream systems as well as several features they lack, while still maintaining a high degree of compatibility with and comparable performance to existing operating systems. Similar to QNX, UX/RT will be a single-personality Unix-like OS with fast synchronous kernel IPC, a lightweight IPC transport layer, services looked up through the filesystem, and an avoidance of vertical modularity for most subsystems. I will introduce the general architecture of UX/RT and how it differs from existing operating systems, describe a few notable features, and explain why I consider it to be the best balance of practicality, performance, compatibility, and features.</p>Andrew WarkentinSlides
Top-level UX/RT GitLab group
Notes on UX/RT's architecture
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:45D.microkernelvnarayananRedLeaf: Isolation and Communication in a Safe Operating Systemdevroom<p>At least since the final Multics report in 1977, researchers identified the ability to isolate kernel subsystems as a critical mechanism for increasing the reliability and security of the kernel. Unfortunately, despite many attempts to introduce isolation to the kernel, modern systems remain monolithic. Historically, software and hardware mechanisms introduce a prohibitively high overhead for the isolation of subsystems with the tightest performance budgets. Today, however, the balance of isolation and performance is starting to change with the development of Rust, arguably, the first practical programming language that achieves safety without garbage collection.</p>
<p>RedLeaf is a new operating system developed from scratch in Rust with the goal to explore the impact of language safety on operating system organization, and specifically on the ability to utilize fine-grained isolation and its benefits in the kernel. In contrast to commodity systems, RedLeaf does not rely on hardware address spaces for isolation and instead uses only type and memory safety of the Rust language. Departure from costly hardware isolation mechanisms allows us to explore the design space of systems that embrace lightweight fine-grained isolation of kernel subsystems. We develop a new abstraction of a language-based isolation domain that implements a unit of information hiding and isolation of faults. Domains can be dynamically loaded and cleanly terminated. Building on RedLeaf isolation mechanisms, we demonstrate the possibility to implement end-to-end zero-copy, fault isolation, and transparent recovery of device drivers.</p>
<p>To evaluate the practicality of RedLeaf abstractions, we implemented a subset of the POSIX interface as a collection of RedLeaf domains. RedLeaf's isolation mechanisms allow us to support the transparent recovery of device drivers. To demonstrate that Rust and fine-grained isolation introduce a practically-acceptable overhead, we develop efficient versions of 10Gbps network and PCIe-attached solid state-disk NVMe device drivers that match the performance of carefully-optimized kernel-bypass device drivers used in modern network and storage processing frameworks.</p>Vikram NarayananAnton Burtsev
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:4500:45D.microkernelgparmerThe Composite Component-Based OSdevroom<p>The Composite CBOS is in many ways a traditional micro-kernel. Services and policies are implemented at user-level, the kernel focuses on fast IPC, and it uses a strong capability-based access control mechanism. It has historically focused on being a research laboratory for strange features including a thread-migration-based IPC, user-level scheduling of system-level threads, user-level definition of capability policies, a wait-free kernel that scales linearly with increasing cores, and temporal capabilities to coordinate between untrusting schedulers. It also scales down and supports paravirtualized RTOSes on microcontrollers (with on the order of 64KiB SRAM, between 16 and 200 Mhz, and MPUs). Composite represents a design that deviates from the L4 lineage in some interesting ways. In this talk, we'll discuss the design with a focus on how the system provides the challenging combination of predictability, performance, and scalable parallelism.</p>Gabe ParmerThe Composite Component-Based OS
Composite webpage
Composite publications
Composite source
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:35D.microkernelseydamMitigating Processor Vulnerabilities by Restructuring the Kernel Address Spacedevroom<p>In this talk, I will present a new Spectre/Meltdown mitigation that I have prototyped for the Hedron microhypervisor. This prototype has also been used to quantify the runtime overhead of the proposed mitigation.</p><p>Processor-level vulnerabilities, such as Meltdown and Spectre v1/v2, allow attackers in userspace to leak information from the kernel address space. This is particularly devastating for kernel designs where the kernel address space is identical for all processes and thus allows the attacker to break the system's confidentiality boundaries.</p>
<p>Previous mitigation attempts, such as kernel page-table isolation (formerly KAISER) for Meltdown and various branch predictor/speculation barriers for Spectre v1/v2, introduce costly instructions into performance critical parts of the operating system kernel. Especially mitigations related to the branch predictor are only possible if the CPU vendor has exposed special functionality.</p>
<p>During the last six months I investigated an alternative mitigation strategy on the kernel design level that shows good mitigation properties, but adds negligible runtime overhead. This alternative mitigation involves moving process-related information in the kernel into a process-local part of the kernel address space. A userspace attacker that can infer the content of its associated kernel page table can thus only read information about its own process. Switching between these kernel address spaces is done as part of the normal address space switch when a thread in a different process is scheduled and thus comes with no additional cost.</p>Sebastian EydamSlides
Sources on Github
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0500:55D.microkernelbgarstUnhackable across 30 Years, End in Sightdevroom<p>As tech lead on commercial UNIX at Bell Labs, an opportunity arose in 1988 to write a nano-kernel to end all nano-kernels, complete with an unhackable boot requirement. It was clear that a cryptographically secure chip level boot assistance was required, which guided subsequent patented ECC work at NeXT and Apple. Post Apple, in a “Social Purpose” company of his own, work has continued to fully realize this dream. The 1988 nanokernel had no threads and delivered messages across upcall channels to a thread simulation, yet that was unsatisfactory. The social element of phishing etc. is now the most feared secuirity breach, and in new work, discussed, the complete solution space is described, in the first half. New hardware is underway, solving such issues as weak memory models.</p>
<p>In the second half of the talk, key lockless queuing primitives are discussed that form the basis fo a multi-core actor runtime (MART) to subsume most if not all duties of the executive. Far richer than a hypervisor, the executive manages memory in new manners, in a memory safe programmer nature. In practice, a single core actor runtime (START), running across 32, 64 arm, x86, and extensa cpu architectures is available. The language and runtime are destined to the Open Source world, unless the larger project, TheDew, makes file systems and databases obsolete in its first rollout, which will include unhackable identity. Ask: Join us!</p>Blaine GarstUnhackable: 30 Years, End In SIght
XBox One story
Unhackable Hardware?
humus - Dale Schumacher
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:30D.mozillamozilla_suggestions_communitySuggestions for a Stronger Mozilla CommunityPersonal Thoughts and Ideas for Possible Improvementsdevroom<p>As one of the earliest large FLOSS projects, Mozilla had a strong and growing community of volunteer contributors for a long time. Then, a lot of factors leading up to today led to the environment changing very significantly, and today's community has some good groups in some areas, but not the kind of connected movement that existed in those earlier times. The speaker has been part of all of that development, starting off as a volunteer very early in the project, working on Mozilla staff for a few years in between, and still being part of the volunteer community in recent years. From that point of view, he'll bring up some ideas and suggestions on how this community can become stronger and grow again, so that a significant voice for the Open Web and the Mozilla Manifesto will hopefully be out there also in the future.</p>Robert Kaiser
Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3000:30D.mozillamozilla_sentence_collectorCollecting Sentences for Common VoiceCollecting Sentences through different means to allow others to record voices for themdevroom<p>Common Voice is a project to help make voice recognition open and accessible to everyone. To create this data set Common Voice allows volunteers to record defined sentences to contribute their voice. A good data set needs a lot of recordings, and therefore we need to have a lot of sentences to be read out aloud. In this talk Michael will introduce the audience to several ways we are collecting these sentences and goes into more technical detail for these mechanisms. This talk will also feature an intro to Common Voice at the beginning.</p>Michael KohlerSentence Collection Slides
Common Voice
Sentence Collector
Sentence Extractor
Common Voice Repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:30D.mozillamozilla_babiaxrBabiaXR: Virtual Reality Data Visualizations for the browserdevroom<p>BabiaXR is a set of FOSS modules for VR (virtual reality) data visualization for the browser. BabiaXR is based on A-Frame and Threejs, with the goal of making it very easy to create different kinds of data visualizations (bar charts, bubble charts, cities, ...), by exploiting the power of WebVR and regular web front-end programming. In this talk, I will do an overview of BabiaXR, showing different examples of different common visualizations. Then, I will focus on showing how we use the city metaphor to represent a popular FOSS project, showing its evolution over time. The talk will show examples (in VR) that the public can try on the fly.</p><p>There are plenty of tools that can analyze data in many ways, but just a few of them try to visualize this data beyond 2D. This is the goal of BabiaXR, a set of front-end modules for 3D VR (virtual reality) data visualization. The visualization part of BabiaXR is based on A-Frame and Threejs, providing a collection of components for creating different kinds of visualizations. Among them there are common ones like bar charts, pie charts, bubbles chart, but now we are moving beyond that, exploring new ways of showing data in 3D. For example, we are working on representing software projects using the city metaphor, showing the evolution of the project as the evolution of a city, with building corresponding to the different files. In this talk, I will do an overview of BabiaXR, showing different examples of the power of WebVR and A-Frame with different visualizations. Then, I will analyze a city corresponding to a well-known FOSS project, showing its evolution in different time snapshots and explaining how the code evolves as the city does. Moreover, there will be examples that the public of the room can try on the fly in their devices, and I will bring a set of two different VR devices to show the examples in an immersive environment after the talk.</p>
<p>As A-Frame was developed in part by Mozilla developers, and it is used in some Mozilla services (such as Hubs), I think that it is interesting to show what kind of things, beyond games, can be done with this awesome framework, specifically, related to data analysis and new different ways of data visualization, like the cities that you can build with BabiaXR.</p>David Moreno-Lumbreras
Main Page
Live Demo examples
BabiaXR main repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:30D.mozillamozilla_cv_project_app"CV Project app": How an Android app can change the Mozilla Common Voice projectdevroom<p>Talk about the "CV Project" app, which is a native Android app to contribute to Mozilla Common Voice via the smartphone.</p>Saverio MorelliSlides for the CV Project talk
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:45D.mozillamozilla_supportMozilla Support: 24, 7, 365devroom<p>An overview of the Mozilla Support team and how a group of contributors spread all across the world work together to help users of Firefox, Thunderbird and other Mozilla apps.</p>Paul Wright
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:4500:15D.mozillamozilla_thunderbird_2022Thunderbird in 2022Highlights of Thunderbird plans for this year.devroom<p>This talk will go through recent highlights of Thunderbird development. What are we working on for the mid 2022 release.</p>Magnus Melin
Thunderbird website
Developer documentation
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:45D.mozillamozilla_language_common_voiceHow to Start a Language on Mozilla Common Voice?A case study for under-resourced Turkish Languagedevroom<p>On Mozilla Common Voice, as of December 2021, there are 154 locales, but only 87 fulfilled the requirements to collect voices, where 27 of them are fairly new. In this two-part presentation, we want to give some starting points for the new language communities, share our accumulated knowledge in the last year while working on the under-resourced Turkish language, with initial training results.</p>
<p>The presentation includes the following topics: Resources on Mozilla Common Voice, how to analyze your dataset, how to set goals, how to design a social media campaign, what tools you can use, Google Colabs, Coqui STT, and our roundups on training Common Voice Turkish Dataset v1 - v7.0, all with our successes and failures as Common Voice Turkish Volunteers group as lessons learned.</p><ul>
<li><strong>Errata</strong>: In the video "checkpoint" is mistakenly written/spoken as "breakpoint", these are corrected in the slides.</li>
<li><strong>Addendum</strong>: Our dataset analysis and training results for the Common Voice v8.0 dataset have been added as new slides and video.</li>
</ul>
Bülent ÖzdenCommon Voice Turkish - Video Slides (PDF)Common Voice Turkish - Video Slides (PPTX)Common Voice Turkish - v8.0 update (PDF)Common Voice Turkish - v8.0 update (PPTX)
Mozilla Common Voice
CV - Sentence Collector
CV - Discourse
CV - Pontoon (UI translation)
CV - Turkish sub-Discourse
CV - Matrix chat
CV - Github repositories
CV - Community Playbook
Common Voice Utils repo
Common Voice Docker repo
Coqui Website
Github Repo of the Colab Notebooks used in experiments presented
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4500:45D.mozillamozilla_searchfoxSearchfoxFast code search and indexingdevroom<p>Short overview of how Searchfox works, how to use it on other projects (like Igalia is doing with https://webkit-search.igalia.com), planned improvements, and how to contribute to it.</p>Emilio Cobos Álvarez
Main repo
Mozilla repo configuration
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3001:00D.mozillamozilla_firefox_dev_101Firefox Desktop Development 101How new Firefox developers are onboarded to the codedevroom<p>In this presentation, Mike Conley walks you through the same onboarding process that new Firefox desktop developers go through to get familiarized with the project. Want to know what Firefox's relationship with Gecko is? What's the relationship between the Firefox and Thunderbird codebases? What does Firefox code even look like? Find out this and more!</p>Mike Conley
Slide deck
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:20D.mozillamozilla_foxfoodingIntroduction to FoxfoodingA story about how Mozillians test and give feedback for products before releasedevroom<p>Foxfooding is Mozilla's internal dogfooding process that includes both employees and community members. The goal is to encourage all Mozillians to give early feedback about the products that we are shipping, in an open and collaborative way.</p>Konstantina PapadeaKrupa RajFoxfooding Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:30D.mysqlmysql_binlogs_encryptionEncrypting binary (and relay) logs in MySQLdevroom<p>Keeping your data secure is an important task of the DBA. We protect our servers, encrypt filesystems and/or datafiles. But what about log files? And especially log files that contain actual data such as the MySQL binary or relay logs. These are technically called log files but they contain the actual data going through your MySQL systems for replication purposes. I will describe how you can enable and use them and also, in case of disaster, how you can recover your encrypted binary logs so you can use them for point in time recovery.</p>Matthias CEncrypting binary (and relay) logs in MySQL
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:30D.mysqlmysql_hash_joinHash join in MySQL 8.0devroom<p>Hash join was introduced in MySQL 8.0.18 and was presented for the first time at FOSDEM 2020. Since then, the performance of hash join has been improved, and I will present results that show this. We will also discuss what kind of queries benefit from hash join, what you need to do for hash join to be used, and how to tune your system for optimal hash join performance.</p>Øystein Grøvlen
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.mysqlproxysql2021ProxySQL 2021 Dev Submitdevroom<p>ProxySQL has proven itself as the de-facto standard reverse proxy for MySQL, yet, we are always looking for new features and improvements. During this past year starting with v2.1.0, four new major ProxySQL versions were released, and with them new features of all sorts were introduced, ranging from protocol changes, authentication improvements, clustering improvements, new monitoring features (for Galera, Group Replication, Aurora AWS) to DDOS protection. Join us for a deeper dive on the details of these (and more) new features, what they have to offer and how you can get the most out of them.</p>Javier Jaramago Fernández
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.mysqlmysql_backup_restoreBackup/Restore tools performance comparisondevroom<p>Backup and restore methods are concepts that everyone knows the importance of. Over the years, open-source tools emerged like MyDumper, Xtrabackup, and Mariabackup. Also, with MySQL 8 new shell, new utils for dump and restore were introduced as well.</p>
<p>In this presentation, we are going to compare the newest backup/restore methods with the most used ones. We will see how parallelization can influence the speed of backup and restore process and also how the compression algorithms can influence the performance.</p>
<p>In this talk, we will compare mysqldump, mydumper/myloader, mysqlpump, MySQL Shell utils, and Xtrabackup.</p>Vinicius GrippaJean Da Silva
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:35D.nimnim_concurrencyNim concurrencyPast, Present and Futuredevroom<p>This is a talk about Nim's concurrency mechanisms, how the old things worked, how the current things work and what the future holds.</p>Andreas Rumpf (Araq)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0500:35D.nimnim_ngmicrocontrollersNext generation micro-controller programmingZero-cost abstractions for better embedded programmingdevroom<p>This talk builds on my previous talks about micro-controller programming in Nim, and my talk on writing a keyboard firmware from scratch in Nim. It outlines how a Nim ecosystem for microcontrollers can be built with zero-cost abstractions which means that the resulting code is almost exactly the same size as pure C code (no Arduino). All this while keeping an interface which is much nicer than anything you'd find in C, maybe even better than that of high-level microprocessor coding frameworks like MicroPython and TinyGo.</p>Peter Munch-Ellingsen
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:4000:40D.nimnim_libvfioLibVF.IO: vGPU & SR-IOV on Consumer GPUs using NimLibVF.IO is bringing vGPU functionality that's historically been restricted to the enterprise datacenter segment to normal consumer GPUs running free open source desktop operating systems.devroom<p>I'd like to showcase LibVF.IO's new LIME Runtime feature (Lime Is Mediated Emulation) and do a deep dive on open source vGPU technology in general.</p><p>Some of the topics I would like to cover are the VFIO-Mdev API, the differences between Virgl vs. Hardware GPU virtualization (SR-IOV) vs. Software GPU virtualization (soft Mdev), various common GPU driver virtualization implementations (Intel i915, AMD GPU-IOV Module, and Nvidia), then talk about the benefits of hardware virtualization of GPUs for projects like Qubes OS and the ongoing effort to run LibVF.IO with Xen for use with Qubes. I'd like to share LibVF.IO's vision to bring vGPU SR-IOV functionality out of the datacenter and to most consumer devices running free software. Finally I'd like to explore what a world might look like if we're successful in bringing the benefits vGPU SR-IOV functionality to every day people running free software (native performance backwards compatibility via virtualization, hardware isolation, & workload balancing).</p>Arthur Rasmusson
The link to LibVF.IO's full source code.
LibVF.IO setup guide.
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:2000:40D.nimnim_polymorphPolymorph: a compile time approach to entity-component-systems in NimQueryless ECS: removing runtime overhead by orienting around systemsdevroom<p>The entity-component-system pattern (ECS) is popular in game development for its ability to model complex dynamic simulations with mechanical sympathy, in an environment where microseconds matter.</p>
<p>The pattern is focused on run time composition. Entities are mutable sets of component data types, and systems run for entities with specific sets of components. Many ECS frameworks are oriented around components or entities, and systems use run time queries or filters to match their component data requirements against the live state.</p>
<p>In this talk, a system oriented ECS is presented which removes all run time work for systems by storing execution state in the systems themselves. Changing an entity's components leverages Nim's static typing and powerful AST macros to precalculate affected systems and generate pared down system state changes.</p>
<p>The result is statically defined and intrinsically optimised to the user's system/component design, allowing efficient embedded event loops through to complex interactive simulations.</p>Ryan Lipscombe
The Polymorph ECS
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:45D.nimnim_potatozombiesPotato ZombiesHelping a 6 year old build a 3D game using Enu and Nimdevroom<p><a href="https://github.com/dsrw/enu">Enu</a> is a 3D live coding environment that can be used for education, exploration, and light game development. It uses a simple, logo-style Nim DSL, and aims to be accessible to as many people as possible, even those who may not yet be able to read or type. It's still fairly immature, but will eventually be suitable for implementing simple multiplayer 3D games.</p>
<p>In this presentation, Enu's creator will walk through creating a simple 3D game with his 6 year old son using Enu 0.2.</p>Scott Wadden
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:4500:45D.nimnim_pararulesPararulesA Nim rules engine for reactive programs and gamesdevroom<p>Reactive programming has become commonplace in many kinds of software, while others, including games, have been slow to adopt it. There is an idea stretching back to the 70s that enables reactive programming in an extremely general way: rules engines. This talk will demonstrate pararules, a breakthrough rules engine for Nim. It will demonstrate how games and other software can define their entire logic as a series of independent rules, and how it decouples your data much like (but more powerful than) an entity component system. It will show why this kind of library is only practical to implement in a language with a Lisp-like macro system such as Nim's.</p>Zach Oakes
pararules github repo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:30D.nimnim_hpcfrompythontonimHPC from Python to NimA preliminary introduction to performance optimizationdevroom<p>Numpy is considered the go-to library for fast performant python scientifc computing, as it is a heavily optimized scientific computing library written in C. But is it really that fast (spoiler: yes, but not when used with python)? In this talk, I will be covering a real-world example in the domain of genetics, and demonstrating how I was able to out-perform numpy code running on my intel-7700k machine with a raspberry pi running code from the Nim programming language!</p>
<p>I will also be providing optimization tips for speeding up your code, with a focus on comparing python with the Nim programming language.</p>
<p>The talk can be roughly divided into the following sections:</p>
<p>Part 1 (32 min) - Introduction to myself. Describing a computationally expensive problem that I have experienced when working with Python.
- My background is in data science and biology
- Biologists tend to work with large datasets
- One common problem we face is preprocessing of large amounts of data. A common technique used here using distance calculations
- Why I decided to learn a different language
Part 2 (1 min) - High level introduction to Nim
- Nim is a statically compiled programming language
- Etc...
Part 3 (10 min) - Going through step-by-step on how to write performance optimal code with Nim. Describing common performance pitfalls that Python users may not be aware of.
- Inlining
- Using the type system to your advantage
- Taking advantage of domain knowledge
- Multi-threading (openmp)
- Bounds checking
- Compiler flags
- Mathematical and algorithmic optimizations
Part 4 (3 min) - Benchmarks and closing statement
- Show benchmark comparing the naive python numpy implementation with the highly optimized Nim one
- Top tips to keep in mind when writing high performance code.</p>
<p>Please note: the purpose of this talk isn't to be an exploration of some new state-of-the-art way of doing performance optimization or some relatively unknown optimization techniques. This is a general introduction for people hoping to use Nim for HPC that are coming from Python. Lots of emphasis will be put comparing the two languages.</p>Ayman Al Baz
Some code-snippets from my distances library will be shown in the talk
Presentation Link
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:40D.nimnim_metaprogrammingNim Metaprogramming in the real worlddevroom<p>Metaprogramming in Nim is very powerful. But why would you use it? How is it used in the real world? We will explore the "power levels": starting from generics, continuing to templates and finally arriving at macros.</p>
<p>We will first look at generics usage in VMath (Vector Math Library) and Jsony (JSON Parsing Library). Then we will continue on to templates and how they are used in VMath and Windy. Finally we will look macros, the top of the "power levels", and how they are used in Shady (a Nim to GLSL compiler) and Genny (Generates bindings for Nim libraries).</p>Andre von Houck
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:05D.researchopen_research_welcomeWelcome to the Open Research Tools and Technologies devroomdevroom<p>The Open Research Tools and Technologies devroom managers welcome words announcing the schedule.</p><p>This years the Open Research devroom schedule has been organized in thematic panels:</p>
<ul>
<li>Academics developing software testimonies panel</li>
<li>Visual inquiries panel</li>
<li>Policies panel</li>
<li>Artificial Intelligence Panel</li>
<li>Open Hardware Panel</li>
<li>Standards panel</li>
<li>Knowledge management communities panel</li>
<li>Open Data Panel</li>
</ul>
Paul GirardMatthieu TotetMathieu JacomyCélya Gruson-DanielYo YehudiMaya Anderson-GonzálezSara Petti
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0500:20D.researchopen_research_heuristFrom pipe dreams and waste to functional accretion: building a capable infrastructure for the Digital Humanitiesdevroom<p>This presentation is about the development and trajectory of Heurist (HeuristNetwork.org), a shared, integrated, extensible data infrastructure (model, build, manage, analyse, visualise, share, publish via integrated CMS) for Humanities research capable of handling the needs of many heterogeneous projects on a single standalone service*, with optional integration across multiple servers by a coordinating index (itself based on Heurist).</p>
<p>Humanities data are interesting (both technically and to the public). They are rich in text, images, objects, people and events, heterogeneous, eminently linkable and sparse-matrix. Personal computers, the internet and other accessible technologies have spawned an exploding field (or fad?) known as Digital Humanities (DH), and opened exciting new horizons for research and public engagement.</p>
<p>However, this technological turn has created many problems for a poorly funded research culture with 1-3 year grant funding cycles - choice of appropriate technology, finding and retaining technical staff, initial and ongoing costs, sustainability ... The outcome is often least-effort and inadequate technology (eg. spreadsheets) or ad hoc development, incomplete functionality, maintenance nightmares, data silos and rapid end-of-funding decay; only rich or statutory organisations can maintain a multi-component system for long. Heurist aims to overcome these problems by mutualised Open Source development, schemas stored as editable data rather than fixed structures, demand-driven priority development, and free centralised services and maintenance.</p>
<p>In this presentation I will outline the evolution of our development process, from haphazard experimentation and many costly unused features (2005 - 2009) to a coherent, stable but evolving structure and Extreme Programming (aka living dangerously!), driven by immediate user requirements and incremental daily interface refinement. I will outline some of the fundamental principles we use to maintain backwards compatibility, stability, rapid development and low cost of maintenance for such a complex beast and for so many projects, on a self-funding staff of just 3 FTE. I also hope to attract some technical collaborators, as most of our users are (by design) non-technical.</p><ul>
<li>We maintain a central index and two free services (based in Australia and France), plus some institution-based servers, currently supporting a couple of hundred research projects in different fields, ranging from doctoral students to networks of researchers.</li>
</ul>
Ian Johnson
Heurist project web site
Database creation page
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:2500:15D.researchopen_research_prosperoCode Liberation and Software SustainabilityThe Prospero Experiencedevroom<p>Developed from 1995 onward, Prospero is a framework for longitudinal analysis of text corpora. Based on dictionaries and semi-automatic classification, it mainly allows its user to combine approaches of statistical computation, co-occurrence network and search for nested patterns. Inspired by pragmatic sociology, it focuses on the multiple forms of expression and argumentation used by actors, on language regimes and on the identification of transformations occurring in the research case. Initially distributed commercially, then from 2011, by the Doxa association, as shareware under a non-profit and ethical charter, it is now hosted by the Corpora association and developed under the aGPLV3 CECILL variant Affero compliant license.</p>
<p>In this presentation, we will discuss more specifically the question of the permanence of a research-targeted software approach, through its evolution over almost 30 years. During this period, evolving expectations and technical developments have led to a client/server step (which remained in the prototype stage) and now to the transition to SaaS. Based on this experience, we will also discuss the conditions we consider relevant for the durability of the software in a new interconnected phase. The broadening of its audience of users and developers calls for ever greater interoperability, on the technical level, but with an approach that combines non-profit and academic models (with limited resources) and business uses.</p>
<p>Josquin Debaz
With a PhD in history of science, he has worked more than 10 years on contemporary controversies in health, environment and energy at GSPR (Pragmatic and Reflexive Sociology Group, EHESS). He is now developer at Finsit. With F. Chateauraynaud, he published Aux bords de l'irréversible. Sociologie pragmatique des transformations (Paris, Pétra, 2017).</p>
<p>Waldir Lisboa Rocha
With a degree in Environmental Engineering, he co-founded Luminae, an energy efficiency company, where he served as Chief Operating Officer between 2008 and 2012, before deciding to make a turn in his career and dedicate himself to the Social Sciences. He holds a Master's degree in Sociology from the École des Hautes Études en Sciences Sociales - EHESS, and is currently working on his PhD at the same institution, in which he is focusing on the relations between media, inquiry and democracy. In parallel to his academic research, he has been dedicated to the conception and structuring of Prefigura, an experimental institution, and of Enumera, an operating ecosystem.</p>Josquin DebazWaldir Lisboa RochaCode Liberation and Software Sustainability
Official Prospero's website
Theorical blog
Christopher Marlowe's blog
Bibliography's webpage
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:4000:20D.researchopen_research_textnetsFree Software Development as Observant ParticipationDeveloping textnets, Studying Digital Culturesdevroom<p>I am a social scientist who mostly teaches and conducts qualitative research, but I am also a programmer. Over the years, I have contributed to a variety of free and open source software projects, and since 2019, I have developed and maintained <code>textnets</code>, a Python package for text analysis that represents collections of texts as networks of documents and words, providing novel possibilities for the visualization and analysis of texts. In my field, such software development efforts are not usually rewarded, but I have been very fortunate. My academic superiors have been supportive of my endeavors, and a publication in the <em>Journal of Open Source Software</em> also helped me get official recognition for this work in the standard currency of my field.</p>
<p>While I developed <code>textnets</code> to scratch my own itch, I seek to make the package widely available by providing extensive documentation and making it easily installable across multiple platforms. This part of my software development work -- learning the intricacies of version control, package managers, continuous integration testing, and dependency management -- puts me in a position to learn not just about the technical side of coding, but about the social side of the choices developers make. At least in the Python world, the way you learn about what dependencies to use, if any, and how many, is informed by norms more than by technical considerations, and the same is true for much else. By engaging in software development work, I engage in a version of the research method of participant observation -- learning by taking part -- that sociologists have called observant participation -- becoming part of what you want to learn about. In my case, I want to learn not just about software development and its culture and norms, but the wider world of free software, hacker culture, artistic practice based on FOSS tools, and more.</p>
<p>In my talk, I provide some background to the development of <code>textnets</code>, give a brief demonstration of the package's features, and finally reflect on my experiences engaging in observant participation as well as some of the insights I have gained and still hope to gain.</p>John Boy
textnets Documentation
demo code repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:20D.researchopen_research_testimonyAcademics developing software testimonies paneldevroom<p>Discussion panel of three testimonies from academics developing software.</p><p>Developing software from academia is not easy. Scholars are meant to teach and write.
Releasing a research software demands much more than writing code.
In this panel discussion, the four speakers will share their thoughts on those challenges. The discussion will benefit from the variety of situations they all bring : a "scholar-analyst" collaborating with a tech team, a team of scholars/engineers and a sociologist who codes alone.
Should scholars leave coding to the professional?
What does open sourcing code brings to the game?
What does maintaining a research software require?
Is coding from academia actually fun or a burden?</p>
<p>Add your own questions to this list by participating to the live event.
Questions from the audience (chatroom) will be asked to the panel by the moderator.</p>Paul GirardIan JohnsonJosquin DebazJohn BoyWaldir Lisboa Rocha
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:2000:20D.researchopen_research_writing_data_visualizationWriting with data visualizationMultimodal encounters in the making of digital social sciences publicationsdevroom<p>The writing of web publications mixing data visualization and textual prose opens novel opportunities for connecting evidence, arguments and narrative in social sciences communities. Such a practice poses a variety of challenges in terms of website design and development ; but also and maybe more importantly, it asks for experimenting specific workflows for coordinating a variety of expertises ranging from social sciences disciplines (history, sociology, etc.) to data science, information design and web-related skills. It also reconfigures, for the research processes themselves, the relationships between activities of (data-related) enquiry and (communication-oriented) writing, creating a renewed space for discovery, invention and verification for the data sustaining a given argument or narrative.</p>
<p>Relying on recent experiments in making collective digital publications grounded in sociology of technology (https://medialab.github.io/carnet-algopresse/#/publication/en) and history of economy (https://medialab.github.io/portic-storymaps-2021/), this talk accounts for the diverse challenges arising from such activities of “data visualization-driven writing”, and some strategies we used to cope with them. It describes and compares the technical and methodological workflows we developed in order to simultaneously develop text, datasets and visualizations, taking into account a variety of aims, data materials, and distribution of skills. Doing so, it advocates for an extended understanding of the notion of “academic writing”, encompassing the practices of writing software, data and diagrams. Such an extended understanding, we argue, is necessary to design and develop writing workflows allowing to foster a multimodal and scientifically productive dialogue between these heterogeneous practices, taking full advantage of the web publication format as a research situation.</p>Robin De Mourat
AI critiques in the press
Commerce multi-échelles autour du port de La Rochelle au XVIIIe siècle
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:4000:20D.researchopen_research_livemarkLivemark: data presentation frameworkExpress everything in Markdowndevroom<p>This talk will show a new Python tool called Livemark, which is designed for data journalism software education, and documentation writing. Using Livemark, you can collect and present data with interactive tables, charts, and other elements without leaving a text editor. You can also write documentation with live script execution similar to a lightweight version of a Jupiter Notebook. This talk will demo Livemark and will be well-suited for a technical and non-technical audience that is interested in learning about data storytelling.</p><p>No prior knowledge is required although a basic knowledge of Markdown and Python scripting will help understand in-depth sections.</p>Evgeny KarevSlides (ODP)Slides (PDF)
Livemark Website
COVID-19 Tracker (written in Livemark)
PyData Global Lightening Talk (1:03)
PyData Global Slides
FOSDEM22 Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:15D.researchopen_research_metaindexMetaindeX and user requirements for a generic catalog applicationDiscussing user requirements for a generic cataloger app and its implementation with MetaindeXdevroom<p>We will try to define in this presentation basic user needs for a generic working environment on historical data, discuss then some key technologies and architecture orientations for online open-source application MetaindeX, which intends to fulfill those user requirements. At last, we will illustrate its usage with a real corpus of few thousands French archives from "Archives Nationales", from 16th and 17th century.</p><p>This presentation intends to illustrate how MetaindeX opensource application could match a significant part of user needs, especially in the fields of history and humanities.
It first defines an overview of what user requirements could be for a working environment offering a ready-to-use, coding-free, quick and efficient access to advanced exploration, analytics and graphs capabilities over an historical data corpus for the researcher. It supposes that input data has already been collected, cleaned and reconciled, focusing on the exploration and analytics parts of researcher workflow.
In a second part, it then develops those needs through key technologies and architecture choices made for design and development of online open-source application MetaindeX [1].
At last, a sample use-case illustrates user experience and shows some analytics results from the use of MetaindeX and its ecosystem (Kibana and Gephi mainly), based on a set of French archives from 16th and 17th century.</p>Laurent MILLET-LACOMBE
Deployed MetaindeX tool
Source code
Original paper
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:1500:20D.researchopen_research_visual_inquiriesVisual inquiries paneldevroom<p>Panel discussion between speakers of the visual inquiries session.</p>Robin De MouratCélya Gruson-DanielMaya Anderson-GonzálezLaurent MILLET-LACOMBEEvgeny Karev
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3500:15D.researchopen_research_cdurOn the dissemination/evaluation loop for Research Softwaredevroom<p>This talk explores the interconnections that links Research Software (RS) dissemination and evaluation issues, in the Open Science context, following the guidelines of the CDUR RS assessment protocol.</p><p>In our presentation of FOSDEM 2021:</p>
<p>Free/Open source Research Software production at the Gaspard-Monge Computer Science laboratory - Lessons learnt
<a href="https://archive.fosdem.org/2021/schedule/event/open_research_gaspard_monge/">https://archive.fosdem.org/2021/schedule/event/open<em>research</em>gaspard_monge/</a></p>
<p>we have analyzed the evolution of several problems that rise when considering the Research Software (RS) production of a laboratory, and we have highlighted several issues that should be addressed to deal with these problems within the Open Science context. Among them we have called to the establishment of sound dissemination and evaluation procedures following the guidelines of the CDUR RS assessment protocol presented in:</p>
<p>Gomez-Diaz T and Recio T.
On the evaluation of research software: the CDUR procedure. F1000Research 2019, 8:1353
<a href="https://doi.org/10.12688/f1000research.19994.2">https://doi.org/10.12688/f1000research.19994.2</a></p>
<p>CDUR comprises four steps that can be succinctly described as follows:</p>
<ul>
<li>Citation, to deal with correct RS identification,</li>
<li>Dissemination, to measure good dissemination practices,</li>
<li>Use, devoted to the evaluation of usability aspects, and</li>
<li>Research, to assess the impact of the scientific work.</li>
</ul>
<p>In this talk we would like to analyze more in depth RS dissemination and evaluation issues and the above mentioned protocols, referring, in particular, to how these protocols can be adapted to different situations that may appear in evaluation processes such as, for example, different evaluation contexts (career, review...).</p>
<p>We will also highlight the interconnections that link both dissemination and evaluation issues, as the RS dissemination needs to adjust to evaluation rules and only suitably disseminated RS (maybe in a restricted context) can be evaluated.</p>
<p>This is a collaboration work with Tomas Recio, Professor at the University Antonio de Nebrija (Madrid).</p>Teresa Gomez-DiazOn the dissemination/evaluation loop for Research SoftwareOn the dissemination/evaluation loop for Research Software
Free/Open source Research Software production at the Gaspard-Monge Computer Science laboratory - Lessons learnt (FOSDEM 2021)
Gomez-Diaz T and Recio T. On the evaluation of research software: the CDUR procedure. F1000Research 2019, 8:1353
Gomez-Diaz T and Recio T. Towards an Open Science definition as a political and legal framework: on the sharing and dissemination of research outputs
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:5000:15D.researchopen_research_french_ecosystemWhat is special about open source research software and why does it matters?Reporting about progresses and challenges from the French ecosystemdevroom<p>French citizens have a right to request source code developed by their administration. This includes source code developed by public research labs. But the research sector has a distinct place in the "public code" landscape. It produces open source gems like scikit-learn, and many researchers contribute to Free Software, but some source code is never published because public labs are requested to use them as assets for new startups. This talk will explore this distinct place, the work that has been done in France to promote the publication of research source code and the challenges ahead.</p>Bastien
French study on researchers practices for open sourcing their source code
Second French Plan for Open Science
The list of French public code
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0500:20D.researchopen_research_policiesPolicies paneldevroom<p>Discussion between the Policies panel speakers.</p>BastienMathieu JacomyTeresa Gomez-Diaz
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:2500:20D.researchopen_research_ersiliaErsilia, a hub of AI/ML models for infectious disease researchDemocratizing the access to state-of-the-art data science to researchers worldwide.devroom<p>Low and Middle Income Countries (LMIC) produce less than 10% of the world's scientific output, largely relying on solutions devised in the Global North, which are often unable to meet the real needs of their population. Data science and machine learning offer a unique opportunity to empower scientists in LMIC by providing cost-effective tools ideal for underfunded settings, but there is a gap in accessibility, infrastructure and skills that must be bridged before these tools can be effectively implemented.
We are developing the Ersilia Model Hub, a FLOSS platform where scientists can browse through a catalogue of AI/ML models and run them without the need to write a single line of code. The platform features both models published in the literature and models developed by us on-demand or in collaboration with researchers in LMIC. The pilot tool focuses on models for drug discovery in infectious and neglected tropical diseases, but we plan to expand to other global health.</p><p>The Ersilia Model Hub is currently in alpha development, and it will be released in January 2022, containing 100 models. The MVP must be downloaded in the user’s computers and is accessible via a command-line interface. The models are fetched from our GitHub repository and run locally. They are designed to perform on regular personal computers. In the next phases, an online query system will be implemented for the most popular models, together with a user-friendly interface which does not require use of the CLI.
In addition, we are working towards an end-to-end automated AI/ML pipeline to facilitate the creation and implementation of models trained on specific datasets of relevance to each of our users. This package will also be available early 2022.</p>Gemma TuronErsilia, a hub of AI/ML models for neglected diseases
EOSI webpage, the organization developing the Ersilia Model Hub
Main repo containing the code
Gitbook with documentation
Presentation delivered at the BOSC2021
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:4500:20D.researchopen_research_diagnostics_typhoidImprove diagnostics of typhoid through Open Science: An Artificial Intelligence-based techniquedevroom<p>Typhoid fever is one of the severe infectious human diseases in Africa. Out of an estimated 11–21 million cases of typhoid fever and 200,000 deaths occur worldwide each year. Other elements contribute to this situation and particularly in rural areas where patients to doctors ratio is very low, lack of medical facilities and costly tests. There are a number of tests available presently, from molecular to immunological and biochemical to microbiological. However, Users are unsatisfied due to delays in getting test results and Imprecise diagnosis. Misdiagnosis is usually experienced since most health care facilities use only Widal test without confirmation of results with a second test method. In addition, the diagnosis of Typhoid involves several levels of uncertainties. Patients cannot tell exactly how they feel, doctors and nurses cannot tell exactly what they observe. There is therefore, an urgent need to develop a rapid, highly sensitive and cheap diagnostic tool for diagnosis of typhoid fever.</p><p>The absence of a reliable diagnosis pushes rural populations towards self-medication with all the consequences that this entails, in particular drug poisoning which can lead to death. As such, we want to develop a new method to diagnose Typhoid early, quickly, and with accurate results at a low cost. We propose a hybrid diagnosis method with a Deep Learning algorithm applied on blood serum images which seems to be the best accepted test by laboratory technicians. We use CNNs as algorithms on the collected images to train the algorithm. We use a second algorithm Rough Set Theory. This algorithm based on symptoms variables which are structured data collected from medical doctors allow us not only to confirm the diagnosis but above all to determine the level of severity of the disease and serve as a Decision Support System. The two algorithms will be part of a mobile app connected to an optical microscope, the phone camera will scan images from the slides on the microscope and classify them into Normal or Infected. In a series of rapid spotlights, we present tools and frameworks that serve as cornerstones for the envisioned diagnostics system including: 1) Values, influences and forces that shape the diagnostics 2) AI solutions to be used; 3) Data sources 4) Ethics and governance model.</p>Elisee JAFSIAImprove diagnostics of typhoid through Open Science: An Artificial Intelligence-based techniqueImprove diagnostics of typhoid through Open Science: An Artificial Intelligence-based technique
Mboalab website
Past presentation
Project repository
Orcid
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0500:15D.researchopen_research_artificial_intelligenceArtificial Intelligence Paneldevroom<p>Discussion between the Artificial Intelligence panel's speakers.</p>Yo YehudiElisee JAFSIAGemma Turon
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:2000:20D.researchopen_research_gitbuildingGitBuilding: Open source documentation for open source hardwaredevroom<p>GitBuilding is an Open source program for writing hardware documentation. GitBuilding uses your tags and meta-data to automatically generate and insert bills of materials into your documentation. It correctly links different steps to one another (even when you have multiple variants), allowing you to write instructions once and reuse them for multiple projects. It also shows previews of 3D files and lets you easily include links to generated zips and other files in the correct places. You can output the entire documentation in pure Markdown, HTML, or PDF.</p><p>Open hardware is beginning to mature. International agencies such as the European Commission and UNESCO see open hardware as key to open access, especially for science hardware. Open hardware could help bring an end to the reproducibility crisis where researchers cannot replicate the work of others. However, open hardware has a key hurdle to overcome: documentation.</p>
<p>Documentation is important for any open project. You can't study and improve something unless it is documented. For hardware the problem is more pronounced, distribution of hardware relies either on people replicating a design themselves, or on a manufacturer producing the design. Without assembly instructions a project can't be used by anyone, for anything but the most simple project, the digital design files are not enough.</p>
<p>As open hardware matures documentation becomes even more important. Most people don't have the time to build all of the products they use. Even those who care about open hardware want to buy a pre-made product. To manufacture a product the documentation must be far more complete, including enough design rationale that a manufacturer can fix problems, and containing not just assembly steps, but also quality assurance procedures.</p>
<p>GitBuilding is a tool designed to allow open hardware designers to keep markdown documentation with their hardware designs, such as in a Git repository. Extra syntax has been introduced to semantically link pages together, and to identify when tools and components are used. This allows the automatic creation of Bills of Materials, as well as reuse of specific instructions for multiple variations of the same project.</p>
<p>GitBuilding was initially designed for the OpenFlexure Microscope (OFM) project. The OFM is an open source laboratory grade motorised microscope that is being trialled for malaria diagnosis in Tanzania. The open project plans to support manufacturers across the world in selling the OFM as an in vitro diagnostic (IVD) device. For this to be possible our documentation must be complete enough that manufacturers can verify the microscopes performance and design, and their own manufacturing of it to a standard acceptable to their IVD regulator. GitBuilding must be powerful enough to support this documentation.</p>
<p>GitBuilding is now needs to generalise. The project needs to be sure it is collecting the correct data for other types of hardware and for other industries. We need to gather input from across the open hardware community, so we know what data needs to be captured, and so where possible this information can be captured exactly one, and used wherever it is needed.</p>Julian Stirling
Project page
GitLab repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4000:15D.researchopen_research_beehiveBeeHive: a flexible open hardware platform for behavioural experimentsdevroom<p>Digital and technical literacies are an ubiquitous requirement in modern research teams. Despite being fundamental, they are rarely part of the curriculum in universities, thus undergrad and early career researchers often struggle to code data analysis pipelines and to automate data collection from experimental setups. Neurosciences, in particular, relies a lot on these skills, with behavioural experiments planning, design of the testing boxes, data visualisation and analysis. To Successfully complete these tasks, researchers need to acquire a significant level of skill in programming and hardware design.
To address these problems, we are developing a flexible open hardware platform to lower the barrier in creating experimental setups: BeeHive. It consists of a main board, which nests an ESP32 microcontroller, and several dedicated “daughter boards”, each designed to perform one function (e.g. one board senses temperature, another controls motors, etc). These boards are connected to one another using a standard system already used by other Open Hardware systems, so that there is no need to reinvent the wheel. We can then focus on developing things that are not available yet. The system runs MicroPython, which is a Python derivative for microcontrollers.
This architecture allows users to be in control of everything that the platform is doing while also providing plenty of room for completely new applications. Modular structure helps users to get familiar with electronic components already at entry-level expertise while Python is employed for its strong points such as simplicity and widespread usage. In this presentation we set out to explore the core concept of Beehive, describe existing and possible applications.</p>Andre Maia ChagasIhor Sobianin
BeeHive github project
BeeHive contact form
Download this presentation
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:5500:15D.researchopen_research_open_hardwareOpen Hardware Paneldevroom<p>Discussion between the Open Hardware panel's speakers..</p>Matthieu TotetAndre Maia ChagasIhor SobianinJulian Stirling
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:1000:10D.researchopen_research_actigraphy_light_exposureBuilding a consensus meta-data standard for actigraphy and light exposure datadevroom<p>In chronobiology and sleep science, researchers often collect data using research-grade activity trackers called actigraphs, which measure movement and determine rest-activity cycles, and light dosimeters, which measure light exposure. At present, there is no meta-data standard for actigraphy and light exposure data that describe aspects of the data collection, such as device manufacturer, sampling rate, or instructions given to the participant. However, meta-data like those are critical for aggregating data and comparing data collected in different samples or across various research sites. Over the past 1+ year, we have been working on developing a consensus meta-data standard for describing actigraphy and light exposure data. The standard is written in JSON-schema, and is extendable to other time-series modalities (such as temperature). The standard is the joint effort of two teams of researchers volunteering their time. In this talk, I will describe the journey from inception to standard, along with the challenges and barriers encountered.</p>Manuel Spitschan
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:2000:10D.researchopen_research_brapiBrAPI: a standard API specification for plant breeding datadevroom<p>Modern plant breeding research requires a large amount of data to function effectively. Data repositories are improving in their ability to store this data, but there is a growing need for interoperability between disparate data sources and applications. The Breeding Application Programming Interface (BrAPI) project offers a solution to this problem with a standardized RESTful web service API specification. This specification provides a standard data model for the plant breeding domain, plus a well-defined set of methods for interacting with the data. The goal of the project is to promote interoperability, data sharing, and open source code sharing across organizations who produce and consume data in this domain. The BrAPI project is a community built project and that community is well established and continuously growing. The standard is built based on concrete use cases to solve real interoperability challenges faced by the community. Beyond the core standard, the community has built a variety of open source tools and resources to help build and test implementations of the specification. The community is also constantly producing new BrAPI compliant applications, analysis tools, and visualizations that will work with any BrAPI data source.</p>Peter SelbyBrAPI: a standard API specification for plant breeding data
BrAPI Project Website
BrAPI Project Source Code
BrAPI Project Publication
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:20D.researchopen_research_standards_panelStandards paneldevroom<p>Discussion between Standards panel's speakers.</p>Mathieu JacomyPeter SelbyManuel Spitschan
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:5000:20D.researchopen_research_ontology_development_kitOntology Development KitA toolkit for building, maintaining, and standardising ontologiesdevroom<p>In biomedical sciences, ontologies are used to annotate and organize data stored in knowledge databases and facilitate their exploitation. Following the pioneering work of the Gene Ontology at the turn of the century, the Open Biomedical and Biological Ontologies (OBO) Foundry was created to coordinate the development of a family of interoperable ontologies sharing a core set of principles. The Foundry now includes more than 150 ontologies.
The Ontology Development Kit (ODK) [1] was developed to facilitate the implementation of standardized ontology development practices across the Foundry. It takes the form of a Docker image that provides ontology editors with all the command-line tools they need to manage, edit, build, and test their ontologies, as well as standardized and carefully crafted Makefile rules to pilot all steps of the ontology life cycle. In recent years, many ontologies such as the Uberon multi-species anatomy ontology, the Cell Ontology (CL), or the Unified Phenotype Ontology (uPheno) have been converted to use the ODK. By moving most of the management, building, and testing logic from the individual ontologies to the ODK, the kit aims to make the life of ontology editors easier, by allowing them to focus solely on actual ontology editing, all the while contributing to the standardisation of the various ontologies.</p><p>[1] Nicolas Matentzoglu, Chris Mungall, and Damien Goutte-Gattat (2021). Ontology Development Kit. doi:10.5281/zenodo.5762512</p>Damien Goutte-Gattat
Public repository for the Ontology Development Kit
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:1000:20D.researchopen_research_wikibaseSustainable community building with the Wikibase Stakeholder Groupdevroom<p>The Wikibase Stakeholder Group is a new initiative testing alternative approaches to governance, decision-making and community-building for open source digital knowledge management. It aims to facilitate collaboration across various institutional and individual partners in order to ensure the continued development and long-term sustainability of Wikibase, a suite of tools for data management within a linked open data environment. Wikibase is currently developed and maintained by Wikimedia Germany, a chapter of the non-profit Wikimedia Foundation. Wikibase is vital infrastructure for the public linked data project Wikidata, but since its open release in 2015 it has been increasingly taken up in research, cultural and institutional contexts due to its flexible, open and collaborative architecture. Rhizome have been piloting the use of Wikibase within GLAM contexts since its release, and have co-organized the first set of public meetups and events around the emerging Wikibase community and ecosystem of decentralized Wikibase instances. Following the success in bringing the community together through these events Rhizome and a few early adopters started the Wikibase Stakeholder Group at the end of 2020. In this talk, we will present the activities of the Group to date, lessons learned from our experiences in collective decision-making, funding for collaborative development efforts, and negotiating between individual project requirements towards a common roadmap in line with ongoing efforts of the Wikimedia team.</p><p>Expected prior knowledge / intended audience:
No prior knowledge is required for this talk, except general familiary with open source community contexts and open data management tools. The intended audience is other practitioners actively involved in open source communities, in the governance and organization of communities, and/or the development of tools for linked open data management.</p>Lozana RossenovaDragan Espenschied
Link to main subject of the lightning talk
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:15D.researchopen_research_knowledge_management_panelKnowledge management communities paneldevroom<p>Discussion between speakers of the Knowledge Management Communities panel.</p><p>Open source software can help in building communities around common practices.
Damien Goutte-Gattat's talk shows how a piece of software (Ontology Development Kit) can help ontology editors to deploy their tools and at same time foster standardized ways to write and publish their work.
A double benefit grounded in FOSS practices.</p>
<p>But Open source software also benefits in return of organized users communities.
Lozana Rossenova and Dragan Espenschied present the Wikibase Stakeholder Group which gathers a community of wikibase server and its plugins users and developers.
A detailed explanation of how to care a community around a FOSS.</p>
<p>Those two sides of community building around knowledge management will be discussed with the speakers in a live discussion panel.
Questions from the audience will be collected from the textual chatroom and voiced by the session moderator.</p>Paul GirardDamien Goutte-GattatLozana RossenovaDragan Espenschied
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:4500:15D.researchopen_research_f_ujiF-UJI : A Tool for the automated assessment and improvement of the FAIRness of Research Datadevroom<p>Funders, publishers and scientific organizations have highly endorsed the adoption of FAIR principles (Findable, Accessible, Interoperable, and Reusable) to promote research data reusability and reproducibility.
However, FAIR principles are high-level guidelines without explicit requirements for their implementation. Practical solutions such as metrics and associated tools are required to support the assessment of FAIR compliance of research artefacts such as services and datasets. This talk will introduce an open-source tool named F-UJI which was mainly developed to support trustworthy data repositories committed to FAIR data provision to programmatically measure datasets for their level of FAIRness over time. The talk will provide an overview the development and application of F-UJI and use cases it has supported so far.</p>Patricia Herterich
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:20D.researchopen_research_agrometeorologyInternal R packages for Open Science in Agrometeorologydevroom<p>Argentina's National Institute of Agricultural Technology (INTA) conducts research and development for the agricultural sector. Environmental conditions influence agricultural activity; in particular, climatic conditions have a favorable or detrimental effect on production. Thus, it is essential to monitor and analyze the different agro-meteorological variables to describe these conditions and their impact on agricultural and livestock production. With this approach, INTA has an extensive ground network of conventional and automatic weather stations. In addition, there is an information system (http://siga.inta.gob.ar) with predefined queries and visualization on this data for internal and external use. All the information generated by the institution is openly shared under a CC-BY-NC license.
INTA is a decentralized institution and generates research, analysis, and reports at different scales (national to local). The processes to perform these tasks use various software tools and different methodologies. Moreover, these processes are in the computer and the head of the researchers.<br/>
Developing internal packages or libraries has great potential to promote reproducible analysis frameworks, improve an organization's code quality, enhance knowledge management (Riederer, 2021), standardize and make processes transparent, and open software and data to society.</p>
<p>The {agromet} package includes a series of functions that can be used regularly for the calculation of agrometeorological indices and statistics. The input meteorological data works under the tidy data philosophy, so the package functions are generic. They can be applied to any tabular dataset regardless of its origin, order, or column names. However, according to INTA's internal requirements, the package also incorporates tools to read data in an INTA format. This package has implemented functions for calculating indexes and variables of agricultural interest, standardizing how these computations are made. It also incorporates mapping functions with scale and reports templates.</p>
<p>The package {siga} downloads and reads data from INTA's Agrometeorological Information and Management System programmatically.</p>
<p>This talk will discuss the decision process to generate a series of internal packages designed to be used by INTA users but with enough generality to be helpful to a broad community. Their development, current use, and this experience encouraged the generation of similar packages for soil data.</p><p>Organization on GitHub: https://github.com/AgRoMeteorologiaINTA</p>Yanina Bellini Saibene
Siga package
AgroMet package
Local information system using agromet
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:2000:20D.researchopen_research_lhcUnveiling Hidden Physics at the LHC using Open DataMaking particle physics Open Data usabledevroom<p>The experiments at the Large Hadron Collider (LHC) at <a href="https://home.cern/">CERN</a> have been running for more than a decade. The data recorded by the detectors such as the <a href="https://cms.cern/">CMS experiment</a> are analysed by thousands of physicists all over the world. The CMS Collaboration has made openly available more than 2.5 petabytes of data on the <a href="http://opendata.cern.ch/">CERN Open Data Portal</a>, containing billions of recorded and simulated events.</p>
<p>Open Data are, however, only useful when accompanied by realistic usage examples. The sheer amount of data as well as the fact that the software used to analyse them is often more than ten years old poses several challenges. In this presentation, Clemens will discuss how the CMS Data Preservation and Open Access group tries to overcome these challenges so that potentially everyone could use the data to <a href="https://arxiv.org/abs/2109.06065">unveil hidden physics</a>.</p>Clemens LangeSlides for Unveiling Hidden Physics at the LHC using OpenData
CERN Open Data Portal
Community White Paper on Open Data in particle physics
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:4000:20D.researchopen_research_open_data_panelOpen Data Paneldevroom<p>Discussion between the Open data Panel speakers.</p>Sara PettiYanina Bellini SaibeneClemens LangePatricia Herterich
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:20D.designosd_introduction_to_open_source_designIntroduction to Open Source Designdevroom<p>Every year we take some time to introduce the Open Source Design collective, what we do, where to find us and how to get involved.</p>Bernard TyersEriol Fox
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:2000:25D.designosd_lessons_learned_from_open_sourcing_the_orbit_docsDocumenting a Design SystemLessons learned from open sourcing the Orbit docsdevroom<p>A design system helps contributors create consistent user experiences. To elevate from a collection of patterns to a system, you need to provide clear standards and reasoning. Clear and comprehensive documentation helps you put this system together into something everyone can use.</p>
<p>This talk will go through how we open sourced the documentation for the <a href="https://orbit.kiwi/">Orbit design system</a> and discuss what we learned from the process. It will discuss creating both visual and content standards for the docs and how it was all accomplished. The lessons from this experience can help in the creation of useful and accessible documentation to guide the design process.</p>Aaron Collier
Orbit documentation
Source for documentation
Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:1000:25D.designosd_stories_and_learnings_from_1_and_a_half_years_of_supporting_designers_and_open_design_processes_in_the_bitcoin_ecosystemSupporting open design in BitcoinStories and learnings from 1.5 years of supporting designers and open design processes in the Bitcoin ecosystem.devroom<p>At FOSDEM 2021, we shared an introduction to, and the ambitions of, the Bitcoin Design Community. 6 months into the effort, we were brimming with ideas and big goals for designing amazing user experiences, connecting designers with open-source projects, and lots more. Now, one year later, we’d like to look back and share where we are, what has worked for us, and what hasn’t (yet?).</p>Christoph OnoJohns Beharry
Bitcoin Design Community website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:25D.designosd_synthesising_user_testing_insights_with_oss_tool_teamsSynthesising user testing insights with OSS tool teamsdevroom<p>So you’ve done some user testing or usability testing as an open source software team and now you have interesting user insights collected. But...what do you do with it? How does user feedback correspond to issues in the backlog? How do you get the wider OSS community team up to speed if they haven’t been part of the synthesis process? These are some of the questions you may ask yourself after participating in user testing or usability testing. You’re ready for a synthesis process!</p>
<p>The USABLE team has already published two resources about user testing and usability testing, now they are presenting their third resource about user insight synthesis. You’ll see how they supported open source software tool teams to work with user insights in an open source way of user testing, usability and synthesis work.
In this session you will observe how the USABLE team supported OSS tool teams with user insight synthesis processes with detailed explanations of why, how and when to do synthesis. You will also view clips of a previous closed session in which the USABLE team and OSS tool teams collaborated on a synthesis work session.</p><p>So you’ve done some user testing or usability testing as an open source software team and now you have interesting user insights collected. But...what do you do with it? How does user feedback correspond to issues in the backlog? How do you get the wider OSS community team up to speed if they haven’t been part of the synthesis process? These are some of the questions you may ask yourself after participating in user testing or usability testing. You’re ready for a synthesis process!</p>
<p>The USABLE team has already published two resources about user testing and usability testing, now they are presenting their third resource about user insight synthesis. You’ll see how they supported open source software tool teams to work with user insights in an open source way of user testing, usability and synthesis work.
In this session you will observe how the USABLE team supported OSS tool teams with user insight synthesis processes with detailed explanations of why, how and when to do synthesis. You will also view clips of a previous closed session in which the USABLE team and OSS tool teams collaborated on a synthesis work session.</p>Eriol FoxKelsey Smith
First USABLE resource
Second USABLE resource
USABLE tools website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:25D.designosd_penpot_we_hear_you_collecting_and_processing_user_feedbackWe hear you!Collecting and processing user feedback, for real!devroom<p>A lot of UX practitioners don't talk to users on a regular basis, at Penpot we might be on the opposite side of the spectrum. We gather a lot of feedback from our users. What for? Fixing (bugs), improving (enhancements), discovering (new needs), prioritizing (asking/frequent queries as an indicator). And the most important thing is what do we do with that feedback and which kind of feedback would we like to receive?</p><p>At Penpot, we work as a full support team. We think of our users as a knowledgeable open space they provide us and we all work to learn from the market. Also it’s important to mention that we design Penpot with Penpot, the team members are users too. Plus we manage all our work at Penpot with our sibling Taiga, a powerful agile project management tool which is our sibling company. Obviously we have our own product development vision, but we like to discover what our users think with an open- feedback policy, and feel validation with conducted tests. Our community is the most important and fundamental part in Penpot’s roadmap.</p>Clara GarciaWe hear you - slides
https://penpot.app/
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:25D.designosd_when_to_invest_in_the_ux_of_scientific_open_sourceWhen to invest in the UX of (scientific) open sourcedevroom<p>Software has become increasingly central to scientific research. Both software development and its use are essential activities for scientific teams. But investment in its production, maintenance, and adoption is often overlooked, and academia often fails to leverage best practices for software engineering from industry, the open source community, or elsewhere. Furthermore, investment in the user experience (UX) and usability of scientific software is largely an afterthought, if considered at all. As such, any future investment in UX is expected to have a disproportionately positive impact on adoption of scientific tools (i.e. broadening access) and on scientific discovery itself. Currently, the impact of this kind of investment (or lack thereof) is largely unknown.</p>
<p>Scientific software stands to benefit from the learnings and current practices in open source design. This talk will explore the unique workflows and incentives of research institutions (and other contexts in which scientific software is produced) and map them to current practices of open source design with the intention of bringing to light the opportunities to better understand how and when to invest in the UX of research software, how to grow expertise in UX, and how to cultivate norms on peer-production platforms toward good UX practices.</p>Elizabeth Vu
https://sloan.org/programs/digital-technology
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:25D.designosd_why_designers_are_the_mediators_of_accessibilityWhy Designers are the Mediators of AccessibilityHow the designer's perspective leads to a more accessible OSSdevroom<p>Two designers came together to tackle this under-addressed issue in OSS. In this talk, we'll cover
- How design principles have shaped our understanding of the technical challenges in implementing accessibility in OSS, such as writing 'alt-text' for scientific diagrams
- Learn about the real impact our workshops have made in NumPy, JupyterLab and scikit-learn
- How other OSS projects can host their own accessibility workshops and sprints</p><p>Designers have valuable skills that go beyond the visual arts: the ability to zoom out and see the big picture, finding connections between disparate objects, and creating a pleasant user flow.</p>
<p>It is exactly these skills that make designers such valuable mediators of accessibility!</p>
<p>Mediators are required as the needs of accessible technology and OSS can seem at odds:
- Accessible technology needs to recognize the variety of disabilities, that there are many possible solutions, and to create cohesive alternative experience
- OSS needs flexibility and variety: it is exactly because individual contributors add different things that it can be difficult to uniformly follow any sort of guidelines for one disability, much less for a variety of disabilities</p>
<p>This talk will explore how two designers came together to start mediating for more accessible OSS. Hear about our messy beginning trying to decode terms and guidelines, talking to developers of what they need, and finally creating accessibility-focused workshops for NumPy, JupyterLab and scikit-learn that have already made changes to the codebase.</p>
<p>Designers will leave with an understanding of accessibility, their role in it and actionable steps, such as how to host their own accessibility workshops in their communities.</p>
<p>Note: While accessibility is a broad term that encompasses accommodating for a variety of disabilities, this talk focuses on making OSS accessible to people with visual disabilities via implementation of 'alt-text' for scientific diagrams.</p>Mars Lee
Presentation Slides
Transcript of Talk
Video with Captions
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:45D.designosd_successful_remote_workshop_in_a_remote_workshopRemote workshopsLearn how to conduct a successful remote workshop in a remote workshopdevroom<p>In this workshop, you will learn how to plan and conduct a remote workshop. It will cover helpful tools and methods, energizers, and collaborative design. On top of that, you will get insights and first-hand experience solving workshop issues like scheduling over timezones, mixing real-life and remote settings and involving people even in virtual formats.</p><p>The open-source software company Grafana Labs successfully holds virtual workshops in a remote setting, both with small and large groups. Facilitator Jess will show how she conducts such workshops and teach you her tried and tested insights – in an interactive workshop format!</p>Jess Müller
Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:4500:25D.designosd_attracting_and_keeping_ux_designers_on_foss_projectsCalling all UX Designers!Attracting and keeping UX designers on FOSS projectsdevroom<p>How can your project attract (and keep!) UX designers? I'll list few specific changes that should help. But I have to warn you, these aren't quick hacks. They're small but meaningful changes to your culture that will also improve your product overall.</p>
<p>I gave a talk at <a href="https://www.youtube.com/watch?v=Mjup7Mrj7uU">FOSS Backstage on UX and FOSS</a>. This is really 'part 2' in the series, making concrete suggestions maintainers can use to help make their projects more UX focused and by extension, help attract UX designers.</p>Scott Jenson
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:1500:25D.designosd_sustaining_open_source_design_podcast1 year of the Sustaining open source design podcastWhat key themes emerged from 1 year and 17 episodes of design in open source podcasts?devroom<p>The Sustaining open source design podcast has been hosting conversations about open source and design over the last year with designers of all kinds across the spectrum of open source software projects. From new to open source to long term contributors and from practicing visual designers to design researchers. We've spent over 30 hours in conversation with designers and we are coming together as hosts to discuss the main themes throughout these conversations in 2021 at FOSDEM 2022 with a look ahead to what might come up in 2022 for design in OSS.</p>
<p>This will be a conversation between hosts of the SOS design podcast: Eriol Fox, Georgia Bullen, Memo Esparza, Peace Omejeh and Richard Littuar</p>
<p>https://sosdesign.sustainoss.org/</p><p>N/A</p>Georgia BullenMemo EsparzaEriol Fox
The SOS design podcast
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:4000:20D.designosd_pitch_your_projectPitch your projectdevroom<p>In this session, FOSS projects as given time to present and ask for contributions to the designers in the room. Each project is given 2 minutes to present. In those 2 minutes, they should briefly introduce the project, explain what design help they need, and provide contact details so designers can reach them after FOSDEM.</p>
<p>The Open Source Design collective will use the information to submit a "job" for each project to the Open Source Design "jobs board" (https://opensourcedesign.net/jobs/), so that the request for design help reaches not just the designers in the room, but also the wider design community.</p>Eriol Fox
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:10D.firmwarewelcome_ttosfbabdWelome to the Open Source Firmware, BMC and Bootloader devroomdevroom<p>Warm welome to the Open Source Firmware, BMC and Bootloader devroom.</p>Daniel Kiper
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:1000:50D.firmwarefw_settings_and_menusFirmware Settings and Menusdevroom<p>Among many challanges around initializing hardware, security, and booting into
operating systems, firmware also needs to provide an interface for the user to
change settings, set up a trust anchor, or simply enjoy colorful graphics.
This talk summarizes approaches from (U)EFI <a href="https://www.intel.com/content/dam/www/public/us/en/documents/reference-guides/efi-human-interface-infrastructure-specification-v09.pdf">dating back to 2003</a>,
looking at modern OEM UIs in comparison to open implementations such as the menu
in <a href="https://github.com/u-root/webboot">webboot</a>, those from <a href="https://github.com/system76/firmware-setup">System76</a>, EDK2, and <a href="https://github.com/Dasharo/edk2/tree/dasharo/MdeModulePkg/Library/UefiBootManagerLib">Dasharo</a>,
and showcasing prototyping environments for further development, finishing with
a short discussion of reusable and portable abstractions for designing APIs.</p>Daniel Maslowski (CyReVolt)Firmware Settings and Menus
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:1000:50D.firmwaregrub_status_updateGRUB - Project Status Updatedevroom<p>The presentation will discuss current state of GRUB upstream development.</p>Daniel Kipergrub_project_status_update_20220119.dk.pdf
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:1000:25D.firmwareosf_on_amd_3rdOpen Source Firmware status on AMD platforms 2022OSF on AMD 3rd editiondevroom<p>This is the 3rd edition of the "Status of AMD platform in coreboot". The talk
will cover the most recent news around the AMD support in open source firmware
ecosystem and updates of the topics covered in previous years. We would like to
present status of FSF RYF KGPE-D16 platform revival and related upstreaming
effort, TrenchBoot progress for AMD platforms and status of recent support in
coreboot and oreboot projects. Finally we would like to present Dasharo - open
source firmware distribution with long term stable support for older AMD
platforms.</p><p>The history of AMD cooperation in coreboot projects reaches 2007 where the
first contribution appeared for the Geode LX processors. AMD's open-source
support continued for many years until now (with some break). This presentation
will briefly repeat the history of AMD and open source firmware. Moreover,
recent coreboot releases started to enforce certain requirements on the
features supported by the silicon code base. Aging platforms kept losing
interest and many of them (including fully open ones) starting to cause
unjustifiable overhead, because of accumulated technical debt. Most probably it
will result in similar situation as with famous 4.11 branch becoming de facto
stable branch for some platforms (e.g. FSP1.0 Bay Trail or ASUS KGPE-D16).
Nowadays AMD is releasing the newest AGESA with the cooperation of hired
coreboot developers, but charter covers modern Ryzen-based processors. We
trying to support the AMD platforms by reimplementing the ASUS KGPE-D16 (FSF
RYF platform) support in coreboot and keeping the PC Engines platforms in the
top of tree. We would like to present Dasharo plan for long term stable and
sustainable support for older platforms. If you are interested in open source
firmware for most open x86 platforms on the market feel free to tune in and
discuss the ideas with us.</p>Michał ŻygowskiOpen Source Firmware status on AMD platforms 2022
TrenchBoot documentation
Dasharo for ASUS KGPE-D16
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:5000:55D.firmwareost2OST2: A new way to grow security talent for open source projectsOpen Security Training 2devroom<p>In this talk, we'll describe how OpenSecurityTraining2 (OST2) can help grow security talent and awareness on open source projects, and we'll use the coreboot open source firmware as a case study.</p>
<p>Newly structured as a 501c3 non-profit, OST2's core goal is to provide free and open training that helps increase system security. This can take multiple forms, such as training dedicated security engineers, training developers to write more secure code, training potential contributors to security-focused projects, or training engineers on safer alternatives to technologies they're already using. In this talk we'll describe current and future examples of all the previous use cases, and drill deeper into a case study of how 3mbdeb, a licensed service provider for the coreboot open source firmware project, is contributing to OST2 to advance the state of open source firmware security.</p>Piotr KrólXeno Kovah
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:1001:00D.firmwareattestations_requirementsAttestation's RequirementsSecure Firmware, now what...devroom<p>The increased need for secure firmware of all kinds in "IoT" devices from simple sensors to SBC's capable of running large operating systems (eg: Pis, IMXx boards etc) is well known and being driven by many forces, eg: Industry 4.0, 5G, 6G etc. What interestingly is missing is how this firmware provides additional security beyond that of the individual device: to the system as a whole, supply-chain provenance and applications; then further on to how we deal with security incidents through the added forensics and analysis of these devices. Finally we reach the impact of secure firmware to safety-critical systems. Trusted computing, TPM and remote attestation are all well known, but their integration between themselves and the systems they are part of are going to be critical.</p><p>In this talk we will set out how secure and high-integraty aspects of systems will or should be reflected in the development of firmware for a wide-range of devices.</p>
<p>Trusted computing, remote attestation and the unbiquitous TPM (not forgetting Pluton and friends) are all well known technologies. Indeed a trusted computing base requires firmware with specific capabilies that promote certain aspects of immutability, identity and integrity measurements - if these properties are provides then we have the start of a chain of trust and a measurement and identity mechanism that allows that device to be "attestable". The further property of being "trustable" needs more explanation but refers to the core root of trust measurement and how this is established, amongst other requirements.</p>
<p>Once we have a collection of attestable (and trustable) devices then remote attestation offers us the possibility of trust relationships between those devices leading to higher-level trust capabilities and integration with supply-chain and forensics.</p>
<p>To further demonstrate this we have developed case studies from the medical and railway verticals based upon edge cloud and 5G communications. As part of this talk we will use these safety-critical domains as the drivers for a wider and more integrated trusted computing base and ultimately the requiremnts towards firmware and hardware that sits at the core of this.</p>Ian OliverTrust, Security and Privacy through Remote Attestation in 5G and 6G Systems
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:2000:30D.firmwaremono_lake_storyMono Lake Story - how we enabled an open hardware platformdevroom<p>We are living in exciting times - we are finally seeing hyperscale server platforms opening up and running on open source software (with caveats still). The journey though is a road full of potholes, braking and sharp turns. Opening up hardware is not easy! Follow along and see how we enabled the Mono Lake platform that was originally created by Facebook (now Meta).</p><p>Opening up hardware is a difficult process. But necessary for those who are part of the circular economy. Being able to extend the life of hardware platforms by making community supported can be quite a lift but the end is can be filled iwth possibilitles. While there has been many instances of open hardware - none though is built to run as hyperscale platform in data centers.</p>
<p>The Mono Lake platform was originally open spec'd and built by Facebook (now Meta) - with it, we can build powerful data center class computing engines that run modern workloads. But because the platform is 4 years old, it needed to move from a singular purpose to general purpose. This talk will be focused on the journey of opeining up the Mono Lake platform and the end result and the work still left to do.</p>Sri Ramkrishna
github page for Mono Lake submission
contact for our partner - SysPro Consulting
Link to Sesame and related products
https://
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:50D.firmwareplan_9_cpu_cmdPlan 9 CPU command, in Go, for Linuxthe network is the computer -- for real this timedevroom<p>I have reimplemented the Plan 9 cpu command in pure Go, available at github.com/u-root/cpu. It uses the ssh transport protocol for data, and the 9p protocol for file system traffic.</p>
<p>If you are used to ssh, cpu will look very similar, to the point of even honoring your .ssh/config! What's different is that when you cpu from your local note to a remote node, file systems of your choosing are visible on the remote node, mounted over 9p, connected to a server running in the cpu command itself. Translation: you don't ever need to talk to a sysadmin to get network mounts set up. Want to use programs from your local node, libraries from your node, and see your home directory? No problem, run with the default namespace. Is the node a different architecture, but you want to use your /home? No problem, just tailor the CPU<em>NAMESPACE variable, e.g.: CPU</em>NAMESPACE=/home:/bin=/arm/bin:/usr=/arm/usr:/lib=/arm/lib cpu cat /proc/cpuinfo. Want all this from power-on/reset? No problem, we embed kernels and a cpu daemon in flash on any of x86, ARM, ARM64, and RISC-V. Want to embed a cpu capability into your Go program? No problem there is a simple package that implements the Go exec.Command interface. Want to understand cpu? No problem, it's easy to read, consisting of 1164 lines of code for the client and 799 for the server.</p>Ron Minnich
github.com/u-root/cpu
github.com/linuxboot/book/tree/master/cpu
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.openpoweropenpower_workstationOpenPOWER Ask Me Anything (AMA)*RESCHEDULED*devroom<p>This is the OpenPOWER Foundation Ask Me Anything session.
As part of the OpenPOWER Foundation, we will be have a short session where you can ask any question related to OpenPOWER.
As this is a reschedule, please not we will have a live session and the speaker will try to answer any OpenPOWER related question they can.</p>
<p><strong><em> RESCHEDULED </em></strong> LIVE SESSION</p>Toshaan BharvaniJames Kulina
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0001:00D.openpowerlibresocprojectThe Libre-SOC Projecta status update for the OpenPOWER Libre-SOC core: booting linuxdevroom<p>The Libre-SOC Project aims to develop a family of OpenPOWER processors, ultimately working towards a full hybrid 3D CPU-VPU-GPU. After two years of development funded by NLnet, the current phase is to develop a Gigabit Ethernet Router ASIC. Funded by NGI POINTER, this ASIC is intended to be capable of running OpenWRT with OpenPOWER-compliant RADIX Virtual Memory.</p>
<p>This talk will provide background, a status update, and go through the incremental development and debugging that is leading up to being able to boot a microwatt linux-5.7 kernel with a buildroot initramfs, under verilator.</p>Luke Kenneth Casson Leighton
Libre-SOC Project website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0001:00D.openpoweropenpowerfoundationOpenPOWER Foundation 2.0devroom<p>This is a presentation about the revamp of OpenPOWER platform by the OpenPOWER Foundation</p>James Kulina
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:05D.rakurakudevroomintroRaku devroom introdevroom<p>Welcome to the Raku devroom at FOSDEM 2022!</p>Andrew Shitov
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0500:45D.rakugrammarA Raku Grammar for Navigation Lightscode walkthrough with live examplesdevroom<p>One feature that sets raku apart from other programming languages is the built-in Grammar parser syntax. This provides a concise, clean and extensible tool for parsing text and triggering Actions according to the content. Navigation aids such as buoys and markers sport flashing lights with characteristics such as color, duration, phase, occulting, speed, height, visibility and so on are represented on navigation charts by way of a short code e.g. <code>Fl(4)15s37m28M</code>.</p>
<p>This talk aims to show how raku provides the average coder (me) with a new practical alternative to Regexs and/or specialist recursive descent modules. It should illustrate how the combination of the raku built-in OO system and Grammars/Actions keeps the problem domain / problem solution in focus via code and visual examples.</p>Steve RoeRaku Grammar for Nav Lights
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:5000:45D.rakudependencymanagementFree Software, Dependency Management, and what I got wrong at FOSDEM 21 devroom<p>Writing Free Software is very different from writing proprietary software for a huge software company like Google or Facebook – the team size, incentives, and likelihood of turnover are all completely different – and, as a result, the ideal languages are very different as well. Or at least, this was the thesis for my 2021 FOSDEM talk "<a href="https://archive.fosdem.org/2021/schedule/event/programming_lang_for_free_software/">Imagining the Ideal Language for Writing Free Software</a>".</p>
<p>Over the past year, however, I've concluded that this argument – while correct any many areas – does <em>not</em> apply to dependency management. When it comes to dependency management, writing Free Software isn't on the opposite end of the spectrum from writing code for Google — it's on the same end, but even further along. This talk will elaborate on what I mean by that statement and discuss the implication I believe that this has for Raku.</p>Daniel Sockwell
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3501:00D.rakudataaquisitionMulti-language Data Wrangling and Acquisition Conversational AgentsUsing Raku in data acquisition and wranglingdevroom<p>In this presentation we discuss the Conversational Agent (CA) designs for two closely related problem areas:</p>
<ul>
<li><p>Data Acquisition Workflows (DAWs)</p></li>
<li><p>Data Transformation Workflows (DTWs)</p></li>
</ul>
<p>The CA perspective is taken mostly for exposition and didactic purposes. Nevertheless, we emphasise the practical applicability of the underlying designs and implementations.</p>
<p>Although, operationally data acquisitions are prerequisite for data wrangling we discuss data wrangling first -- the corresponding DTWs designs and implementations are more mature and the related materials are more universal, applicable to multiple programming languages.</p><h1>Multi-language Data Wrangling and Acquisition Conversational Agents</h1>
<p>Anton Antonov <br/>
FOSDEM 2022</p>
<h2>Abstract</h2>
<p>In this presentation we discuss the Conversational Agent (CA) designs for two closely related problem areas:</p>
<ul>
<li><p>Data Acquisition Workflows (DAWs)</p></li>
<li><p>Data Transformation Workflows (DTWs)</p></li>
</ul>
<p>The CA perspective is taken mostly for exposition and didactic purposes. Nevertheless, we emphasise the practical applicability of the underlying designs and implementations.</p>
<p>Although, operationally data acquisitions are prerequisite for data wrangling we discuss data wrangling first -- the corresponding DTWs designs and implementations are more mature and the related materials are more universal, applicable to multiple programming languages.</p>
<h2>Outline</h2>
<h3>Data Wrangling</h3>
<p>In the first part of the presentation we show and compare data wrangling examples in different programming languages using different packages.</p>
<p>Here is a list of the programming languages and packages we consider:</p>
<ul>
<li><p>Julia-DataFrames</p></li>
<li><p>Python-pandas</p></li>
<li><p>R</p></li>
<li><p>R-tidyverse</p></li>
<li><p>WL</p></li>
</ul>
<p>We look into the common data wrangling workflows and how we can design a conversational agent that translates natural language commands into data wrangling code for Julia, Python, R, SQL, WL.</p>
<p>WL's external evaluator features are heavily utilized.</p>
<h3>Data Acquisition Workflows</h3>
<p>In the second part of the presentation we discuss the following facets of a data acquisition system:</p>
<ul>
<li><p>Conversational Agent based on a Finite State Machine</p></li>
<li><p>Gathering and utilizing metadata taxonomies</p></li>
<li><p>The making of datasets recommender systems and search engines</p>
<ul>
<li>In/for both R and WL</li>
</ul>
</li>
<li><p>Making (ingredient) variables queries</p></li>
<li><p>Introspection queries</p></li>
<li><p>Random data generation specifications</p></li>
<li><p>Data obfuscation specifications</p></li>
</ul>
<p>Extensions to ML models acquisition workflows</p>Anton AntonovFOSDEM 2022 presentation mind-map
(Improved) presentation recording
Doing it like Cro (movie demo 7min)
"Raku for Prediction" book project at GitHub
Raku for Prediction talk at TRC-2021
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3500:25D.rakulearninganalyticsClass learning analytics with RakuHow Raku helps improve learning in a cloud computing class at the University of Granadadevroom<p>Rakulang is great not only as a scripting language, but also at the conceptual level, allowing you to map problem-domain concepts to data structures easily. This comes handy when you use a specific kind of learning procedure that needs to track general class progress as well as individual attainment levels in a very precise way. In this context, we have created a Raku mini-library and a series of scripts that give us information on how a whole class of Cloud Computing students is progressing, and allows to pinpoint choke points, hurdles to progress, as well as individuals who might have been left behind.</p><p>We think that teaching software engineering should be just like software engineering, and in this context we have created a class with project-based learning, and objective-based learning. Students progress asynchronously through a series of objectives, with the student giving them individualized feedback on how to achieve those objectives.
Objectives fulfillment is public, and this gives us a storage platform on which to build a series of scripts that show us the general degree of attainment by the class, as well as how every individual students are doing. These scripts are, for the time being, run manually. In the near future they will be integrated in a learning analytics workfow using GitHub actions, reducing the amount of manual running as much as possible.
This, while not using a big amount of high-magic, shows how Raku expresiveness and whippipitude make the management of class extremely easy.</p>Juan Julián Merelo
Repo for the class
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:40D.rakuauthDecentralized AuthenticationAuthentication and identification techniques on Ethereum blockchaindevroom<p>Authentication is the «must-have» feature of every web application. Traditional centralized auth feature has the major disadvantage: if the authenticator is down, it affects on to all related services. In this talk I would like to discuss auth on Ethereum blockchain, go through its major benefits and introduce sample application with the decentralized authentication implemented in Raku.</p><p>Authentication module — «must-have» feature of modern web application.</p>
<p>Traditionally the authenticator was integrated right into an application (web1.0). The user had to register and then, using a login (email) and a unique password, enter the personal account, post the comment or download the file. Credentials were stored on the web application server, and the flow of authentication, authorization and identification was managed by some module or service. This the sample of hyper centralized authentication.</p>
<p>Built-in authenticators have been evolved to external third-party authenticators. In the era of global services and social networks (web2.0) the visitors (as well as the site owners) began to delegate authentication to corporations. At the back side of that process we had got the bloom of the phishing sites and an explicit target ads. In addition, there were the clear symptoms of centralization and de-anonymization.</p>
<p>Blockchain (web3.0) has naturally become the third iteration in the evolution of authenticators. On the one hand, this technology provides a truly decentralized and transparent audit platform for the authentication, and on the other hand, it makes the authentication and identification flow much more anonymous.</p>
<p>In this talk I will consider the main benefits of decentralized authentication on the Ethereum blockchain, discuss disadvantages and common attack vectors, talk about the integration tricks and demonstrate and briefly analyze a working example in Raku.</p>
<p>This talk might be of interest to system architects, security software developers, Raku and Ethereum enthusiasts.</p>Konstantin Narkhov
Talk repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4000:35D.rakubackpanKeeping the past to preserve the futureOn the development of a BackPAN for Rakudevroom<p>The Raku ecosystem is growing at an impressive rate. The Raku Programming Language allows developers to specify the exact version of a module that is needed in production. This is a very good thing, and makes sysadmins all over the world pretty happy, as they know they can install new versions of modules without fear of breaking production code.</p>
<p>However, developers can also <em>remove</em> distributions from the ecosystem. This presentation describes efforts to make sure that this will never become a problem for production.</p>Elizabeth Mattijsen
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:1500:30D.rakusimpletestingRadically simple testing in Rakudevroom<p>Some languages offer a very simple syntax for testing via assertion statements, for example with an <code>assert</code> function that creates a simple test that passes if given a true value and fails for anything else. This style of testing is admirably concise, but can lead to cryptic test messages that make it very difficult to determine what a test was attempting to check without opening up the file containing the failing test. At the other extreme, it's possible to write very expressive tests with a fluent, method-chaining API. For example, using the Chai.js assertion library, a test might read <code>beverages.should.have.property('tea').with.lengthOf(3)</code>. This allows tests to automatically generate much more useful messages but comes at the cost of creating a fairly complex test API with many new methods to learn.</p>
<p>Raku's core Test module falls somewhere between these two extremes – it offers an API with a handful of functions that's easier to learn than a full fluent API but more expressive than simple <code>assert</code> statements. This is a sensible compromise.</p>
<p>But I claim (assert?) that, with a bit of metaprogramming trickery, Raku lets us have the best of both worlds: we can have a zero-learning-curve test API that's just as simple as assert statements while <em>also</em> being just as expressive as a long chain of method calls in a fluent style. I'll present this style of testing, discuss its use in Raku, and consider ways in which Raku lets us improve on the status quo.</p>Daniel Sockwell
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:4500:50D.rakugithubGitHub Actions (in|for) RakuContainerizing Raku for testing and other automation tasksdevroom<p>GitHub has a nice environment for carrying out repository-event triggered workflows; these use a variety of runner platforms, including containers. This talk is about how to create a Raku container that can successfully act as a runner for workflows, and how to Rakuize the workflow API so that Raku scripts can interact meaningfully with this environment.</p><p>There are two parts on this talk; first, how to create a chain of increasingly complex Raku containers that can be used mainly for testing, and second, how to run some Raku scripts within those containers, with cool things that can be done inside those workflow using Raku.</p>Juan Julián Merelo
Base container for Raku
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3501:00D.rakurscRaku Steering Council Q&A PanelRSC members to answer live questions.devroom<p>Raku Steering Council Q&A panel is aimed at the audience interested in the Raku® programming language, its current state, and its future. Members of the Council will try to answer any related questions, including those about the Council itself.</p>Juan Julián MereloStefan Seifert (nine)Daniel SockwellElizabeth MattijsenVadim BelmanGeoffrey Broadwell
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:05D.retroretro_introWelcome to Retro-Computing devroomVintage everywhere!devroom<p>A brief introduction to our devroom and the schedule ahead.</p>Pau Garcia Quiles (pgquiles)François Revol (mmu_man)Slides (PDF)Slides (ODP)
Retro devroom mailing list (if you want to help)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0500:25D.retroretro_chessGetting 1K Chess for the ZX81 onlineOr, how I used $2 Billion of internet infrastructure to run 672 bytes of code, from 1982devroom<p>In 1982, David Horne wrote a version of chess which managed to fit inside the memory of a 1K ZX81. Although it wasn't a complete implementation, it was impressive enough to be remembered now, almost 40 years later. But running it in 2022 requires at least an emulator, ROM file, and the .P file, which limits the appeal to retro enthusiasts and excludes the intended audience - chess players!</p>
<p>So, I modified the EMF emulator (and the game) to run as an emulator-as-a-service, so that it can be played via the lichess servers with a modern web-friendly interface.</p><p>In this talk I'll cover a brief history of the program, how the emulator was modified, how the program was reverse engineered and understood, how this code connects to the lichess server and, most crucially, why someone would do it!</p>
<p>Along the way we'll look at the chess notation, FEN, Z80 assembler, NDJSON, and a few other pieces to show you the complete puzzle fits together.</p>Steven Goodwin
A few notes
Lichess bots for beginners
20 GOTO 10 : The book
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:45D.retroretro_serialLet's Get Serial!Histroy and current state of everyone's favourite interfacedevroom<p>The 'serial port,' usually carrying RS-232, has once been the window to the world on capable systems. This talk is a brief history on it, its use cases and its current state. Is it still relevant? Do we still love it? Are there alternatives?</p>Stephan HohmannFOSDEM 2022 — Let's Get Serial!
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:1500:45D.retroretro_apple1Made by Woz: how Apple-1 operating system works?Brilliant Steve Wozniak’s code every software engineer should knowdevroom<p>Operating system of Apple-1 written by Steve Wozniak is an engineering piece of art – 256 bytes only! We will explain how it works using the original 6502 assembler source code along with our own rewritten in Python version so every software engineer could understand how It works. It should be useful for engineers who want to know basics of operating systems.</p><p>We will cover:
– what are the functions of the simplest operating system
– what functions of operating system are hardware-specific
– how it communicates with the user
– how it runs the programs</p>Sergey Panarin
Operating system of Apple-1 by Steve Wozniak
Discord for Woz OS Q&A
Running Woz OS on emulator
Apple-1 emulator to run Woz OS
SmartyKit ROM with Woz OS to use in emulator
Woz OS in Python (high-level view)
Sergey Panarin's Twitter
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0001:25D.retroretro_museumA Computer MuseumWhy and how? devroom<p>The HomeComputerMuseum is founded in 2018 after its initial plan in 2016. The idea of an interactive computer museum while being a social company and fully independent of subsidy. In 2020, right after a move to a bigger and more permanent location, the unsubsidized museum had to deal with corona. Against all odds, the museum survived and even grew faster than ever before, becoming world's largest museum on social media and collaborating with museums all over the world. This all with a social impact by helping people with a distance to the labor market. The museum has an unique collection which can not be found anywhere else and it only keeps on growing in impact. Currently (early 2022) being the computer heritage expert for the Dutch government.</p><p>The HomeComputerMuseum opened its door on March 17, 2018 and went nearly bankrupt by the end of 2018. But we pulled through and from the beginning of 2019, we managed to turn it around. Starting with a collection of roughly 35 computers, 4 active board members, 3 volunteers and an empty building without electricity we built the museum. By the end of 2021 we have over 500 computers in the active museum and another +/- 2500 computers in storage. 1500 CD-i titles, 2203 boxed PC games, over 4000 unique software titles and over 3000 manuals. Open 7 days a week in a 1090m2 location in the city center of Helmond with 40 volunteers and 6 board members. All without big sponsors and no subsidy we are researching the history, sharing the history, recreating the history by allowing everyone to use the old computers. From the only working Aesthedes2 (which is repaired by in-house technicians) to the computer used for the movie Titanic. We do digital heritage (read old media) and offer repairs to both new and old computers. We created a functioning business model that is world renowned and ready for anything to come and we love to share what we went through and why we are considered as an essential part of the Dutch heritage.. all in less than 4 years.</p>Bart van den Akker
Website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:2500:30D.retroretro_trajectwareTrajectware - timeline-based navigation across computing heritagedevroom<p>The history of calculation, information processing and computation is very rich. It is driving the industrial revolution and digital transformation of our world. This history is composed of many events related to conceptual and technological breakthroughs. In order to help in the analysis (by researchers) and explanation (to citizens), the NAM-IP Computer Museum is actively developing the "Trajectware" Open Source framework based on a the structuration of illustrated events in the form of timeline fragments that can be explored using various navigation operations to focus on specific periods, aspects (technological, conceptual, cultural, contextual,...) or the involved people/organisations.</p>
<p>This talk is intended to everyone. It will first present the global design based on (1) a knowledge base back-end inspired by different ontology standards (SEM, DOLCE/Spatial History Ontology, Constructed Past Theory, DBPedia) and accessed through queries and/or a specific API to extract a relevant timeline, and (2) a navigation front-end, currently based on ReactNative. Different timeline navigation features will be illustrated on a concrete application case: the "micro-computer, meg@ revolution" exhibition of the NAM-IP museum.</p>
<p>Through our presentation, we hope to trigger interesting discussion about our current work and to gather suggestions and interests to grow this project !</p>Christophe Ponsard
Trajectware on Github
Android APK (museum guide)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:5500:35D.retroretro_ewaste_revengHack for the PlanetReverse Engineering Embedded Systems to Reduce E-Wastedevroom<p>The lecture will discuss reverse engineering e-waste. It will shortly present the open source hardware tools that are used internally at Unbinare and how these are used when the aim is to reduce e-waste.</p>Maurits Fennis
website
wiki
Hackaday feature
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3001:00D.retroretro_pkgsrcKeeping old Unix/Linux up-to-date with pkgsrcKeeping software on unsupported Unix-ish operating systems up-to-datedevroom<p>Sometimes good working hardware is obsoleted by missing update support for the operating systems. Using outdated networking software from these systems on today's Internet is a security risk (to the user and the Internet as a whole), and old software might fail altogether (old SSH clients can't connect to modern SSH server, Webbrowser can't load websites using modern transport encryption, TLS).</p>
<p>pkgsrc is a cross-platform package manager maintained by the NetBSD project. With pkgsrc, it is possible to compile and install modern Linux/Unix tools and applications on Unix systems that were abandoned by their makers.</p>
<p>In this talk, I will give my experience, tips and tricks with keeping old Unix systems up-to-date:</p>
<ul>
<li>MacOS X PowerPC 10.4 "Tiger"</li>
<li>MacOS X i686 10.9 "Mavericks"</li>
<li>Ubuntu 10.04 on ARM (old Linux 2.6.x kernel with special hardware patches that never got upstream)</li>
<li>Slackware Linux on Pentium 2</li>
<li>Solaris 9 on SUN Ultra 5</li>
</ul>
Carsten Strotmann
pkgsrc Homepage
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.retroretro_aoscAOSC OS/Retro - An IntroductionAn Ongoing Quest for the Possibility of Modern Linux on Vintage Hardwaredevroom<p>In this presentation, I will share our community's ongoing exploration of running modern and "standard" Linux distributions on vintage hardware - AOSC OS/Retro. AOSC OS/Retro, as an official branch of AOSC OS (the modern-device-facing mainline), runs a generally similar feature set - systemd, Glibc/Binutils/GCC/Coreutils/Util-Linux, X.org/Mesa, etc. and shares the same source tree with the latter.</p>
<p>With over a year of spending our spare time on the project, tweaking features, designing a desktop experience, and optimising compiler flags, we have a usable distribution that could run on systems as slow as a 486SX, and as fast as "modern" Core Duo systems. We also have an active effort to port AOSC OS/Retro across multiple architectures, with the tally currently standing at eight architectures - and counting (alpha, armv4, armv6hf, armv7hf, i486, loongson2f, powerpc, ppc64). We still have a long list of issues to solve, such as login delays and throttled I/O on ISA-based systems. I hope to gather feedback and criticism through this presentation.</p><ul>
<li>What is AOSC OS (self introduction)?</li>
<li>What is AOSC OS/Retro (and how it differs from AOSC OS)?</li>
<li>Design Goals and Self-Afflicted Agonies</li>
<li>Application Stack and Software Selection</li>
<li>End Results (so far)</li>
<li>Thoughts, Reflections, and Questions</li>
<li>Q&A</li>
</ul>
Mingcong BaiSlides (PDF)Slides (ODP)
Website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.retroretro_flashOld Web Today: Keeping Flash (and other) Retro Web Sites Accessible on the modern webTechniques for combining web archives and emulation using FOSS tools.devroom<p>It's been just over a year since all browsers dropped support for Flash, but much Flash content continue to exist both in web archives and on the live web. This presentation will cover various techniques tried by the Webrecorder project to keep Flash content still working in today's browsers, such as running old browsers in containers, running full system emulation in WebAssembly, and using the Ruffle emulator. We will cover the trade-offs between these approaches and the current challenges in combining web archives and emulation, and present the tools we have built to make these approaches possible.</p>
<p>As one of the options, will also talk about the OldWeb.today project (https://oldweb.today/) which provides several JS-based emulation connected to web archives, how it works and how it can be used to run not only Flash, but also old Java applets that may exist in web archives.</p>
<p>We will leave time for a Q&A session to answer any questions about the tools and how they could be improved!</p>Ilya KreymerOldWeb.today Presentation Slides
OldWeb Today JS Emulator
Source for oldweb.today
Blog post about OldWeb.tody
EaaS Web Network (used in oldweb.today)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:30D.retroretro_frogfindFrogFind and 68k NewsBuilding Modern Web Portals for Vintage Machinesdevroom<p>This talk will cover the creation of two web portals, which use open source libraries to make much of the modern web accessible to vintage machines and old web browsers. By using the Readability library, along with some haphazard PHP, I was able to take modern sites down to text content and HTML 1.1 on the server side. FrogFind.com serves as a web portal for limited browsers, such as old versions of Mosiac, or even text browsers like Contiki's on an Apple ][, to make much of the web's content accessible to them in a perfectly readable way.</p><p>It is often said that the modern internet has left vintage computers behind. However, it is not the internet - it is the complexity of content. One way of bringing vintage machines to the modern web is through upgrades and accelerators. This creates a moving target of machines that will still age-out of sufficient upgrade-ability as the web continues to evolve. Another option is to deconstruct the modern web to make it accessible to vintage computers.</p>
<p>Using an open source library called Readability and some haphazard PHP, I've built two web portals: 68k.news and FrogFind.com. These sites allow vintage machine to view many websites as text-only, by stripping out complicated HTML and scripts and delivering HTML 1.1 content to old browsers, with images optional.</p>
<p>This talk will cover the idea behind these portals, their use, and just how usable and pleasant a vintage machine can become for daily internet content consumption without the distractions of the modern web.</p>Sean Malseed
frogfind.com
68k.news
[Youtube] I Rebuilt the Entire Internet... for Vintage Computers
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0001:00D.retroretro_spreadsheetsA Brief History of SpreadsheetsFrom LANPAR to VisiCalc to Lotus to LibreOfficedevroom<p>Have you ever wondered why spreadsheets look and act that way? Why does LibreOffice and Excel use letters for columns and numbers for rows? In this high energy presentation, Jim Hall will discuss a brief history of spreadsheets, from LANPAR to VisiCalc to Lotus 1-2-3 to LibreOffice. A great history lesson and practical demonstration.</p><p>The first 'spreadsheet' program was LANPAR, which invented the interactive concept of working with values and originated the idea of forward referencing. But the spreadsheet as you might recognize it today started with VisiCalc on the Apple II. We'll explore several favorite DOS spreadsheets as we review a history of spreadsheets, including: VisiCalc, Lotus 1-2-3, As Easy As, Quattro Pro, .. to to understand why modern spreadsheets like LibreOffice Calc look and act that way.</p>Jim Hall
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0001:00D.safetysafety_subplot_documenting_your_criteria_for_successSubplot - documenting your criteria for successExpressing argumentation in a validatable waydevroom<p>Believing a system is safe is not the same as knowing it meets all
the criteria defined to demonstrate that safety. Too often is the
argumentation around the safety of a system presented as a document
for humans to agree on, which is disconnected from the mechanism of
asserting compliance with that argumentation. Subplot is a tool for
processing documents containing such argumentation along with
verification scenarios which are both human <em>and</em> machine readable
so that this disconnect can be resolved.</p>
<p>This talk introduces Subplot and describes the concept.</p><p>Software engineers usually understand requirements and testing against
requirements. All too often though, those responsible for the safety of
a system do not understand how to express requirements which can be
understood by engineers, such that the system can be verified. This
could be for a myriad reasons, but usually it is due to a gulf between
those who are specifying how to determine that a system is safe, and those
who are implementing the system.</p>
<p>Subplot demonstrates how stakeholders at all stages of system design and
implementation can come together to maintain a document which describes the
criteria which, if met, demonstrate compliance with the safety argumentation
made about the system. This document can then be rendered as a PDF or some
stand-alone HTML for presentation to non-engineer stakeholders for confirmation.</p>
<p>Subplot can also generate a test program, from such a document, that when run will
perform all of the verification scenarios contained in the document and produce a
final report.</p>
<p>While Subplot is fairly new software, still under active development,
the concepts in Subplot are built on those explored in a decade-old
previous project, by the same authors, which considered similar problems purely
from a software engineering perspective, used a similar Gherkin-inspired language
and Markdown input structure, and was used in a variety of projects for
paying customers; proving the concept works.</p>
<p>Subplot is a refinement of this older implementation.</p>Daniel Silverstone
Subplot website
Subplot Gitlab page
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:45D.safetysafety_dont_trust_us_trust_the_math_behind_immudbDon't trust us, trust the math behind immudbHow immudb protects safety critical data (with math and cryptography)devroom<p>Immutability is a powerful concept. Without it we wouldn’t be able to rely on bank transactions, medical records or even some of our private data.
And we usually take for granted that our data is safe somewhere out there in the "cloud". But is it?
There are well-known multi-billion dollar stories where attackers were able to break into well-secured systems and modify data stored in databases.</p>
<p>What if there was a way to protect the immutability with math? What if any attempt of historical data manipulation could easily be detected?
In this talk I’ll share how we do it in immudb - a new database built on a zero-trust model.</p>Bartłomiej Święcki
immudb homepage
immudb github project
immudb documentation
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:45D.safetysafety_designing_a_new_language_for_safety_fuzionDesigning a new Language for Safety: FuzionA minimal language for safety-critical systemsdevroom<p>Fuzion is a modern general purpose programming language that unifies concepts
found in structured, functional and object-oriented programming languages into
the concept of a Fuzion feature. It combines a powerful syntax and safety
features based on the design-by-contract principle with a simple intermediate
representation that enables powerful optimizing compilers and static analysis
tools to verify correctness aspects.</p>
<p>This talk will focus on Fuzion's aspects related to safety-critical software
development. A fundamental idea of Fuzion is to provide a simple language at a
high level of abstraction and move implementation decisions from the developer
to the compiler. To enable this, the language defines a simple but powerful
intermediate representation for static analysis tools to operate on.</p>
<p>Furthermore, pre- and post-conditions for design-by-contract are provided in a
way that enables different levels of verification: static analysis as well as
dynamic checks at different levels from safety to debugging.</p>
<p>Fuzion does not support exceptions, a run-time error has to be part of the result
of a call and must be checked explicitly. Fuzion does not support dynamic
loading of code. Numeric operations such as 'infix +' check for overflow.</p>
<p>Fuzion applications consist of a set of library modules and a main modules.
Modules are verified for correctness individually as well as whole
applications. This is possible since dynamic loading of code is not supported.</p><h1>Introduction</h1>
<p>Fuzion is a modern general purpose programming language that unifies concepts
found in structured, functional and object-oriented programming languages into
the concept of a Fuzion feature. It combines a powerful syntax and safety
features based on the design-by-contract principle with a simple intermediate
representation that enables powerful optimizing compilers and static analysis
tools to verify correctness aspects.</p>
<p>Fuzion was influenced by many other languages including Java, Python, Eiffel,
Rust, Go, Lua, Kotlin, C#, F#, Nim, Julia, Clojure, C/C++, and many more. The
goal of Fuzion is to define a language that has the expressive power present in
these languages and allow high-performance implementations and powerful analysis
tools. Furthermore, Fuzion addresses requirements for safety-critical
applications by adding support for contracts that enable formal specification and
enable detailed control over run-time checks.</p>
<p>Many current programming language are getting more and more overloaded with new
concepts and syntax to solve particular development or performance issues.
Languages like Java/C# provide classes, interfaces, methods, packages, anonymous
inner classes, local variables, fields, closures, etc. And these languages are
currently further extended by the introductions of records/structs, value types,
etc. The possibility of nesting these different concepts results in
complexity for the developer and the tools (compilers, VMs) that process and
execute the code.</p>
<p>For example, the possibility to access a local variable as part of the closure
of a lambda expression may result in the compiler allocating heap space to hold
the contents of that local variable. Hence, the developer has lost control over
the allocation decisions made by the compiler.</p>
<p>In Fuzion, the concepts of classes, interfaces, methods, packages, fields and
local variables are unified in the concept of a Fuzion feature. The decision
where to allocate the memory associated with a feature (on the heap, the stack
or in a register) is left to the compiler just as well as the decision if
dynamic type information is needed. The developer is left with the single
concept of a feature, the language implementation takes care of all the rest.</p>
<h1>Fuzion Feature Declarations</h1>
<p>A Fuzion feature has a name, similar to the name of a class or a function.
The main operation that can be performed on a feature is a feature call. The
constituents of a feature declaration are as follows:</p>
<h2>Formal Arguments</h2>
<p>Features may have a list of formal arguments, which are themselves features
implemented as fields. On a call to a feature with formal arguments, actual
arguments have to be provided to the call, unless the list of formal arguments
is empty.</p>
<h2>Feature Result</h2>
<p>The result of a feature call is an instance of the feature. Alternatively, a
feature may declare a different result type, then it must return a value of that
type on a call.</p>
<h2>Closures</h2>
<p>Features are nested, i.e., every feature is declared within the context of an
outer feature. The only exception is the universe, which is the outermost
feature in Fuzion. A feature can access features declared in its
outer feature or, recursively, any outer feature of these outer features. This
means, a feature declaration also defines a closure of the feature and its
context.</p>
<p>When calling a feature <em>f1</em> declared as an inner feature of <em>f2</em>, the call must
include a target value which is the result of a call to <em>f2</em>, e.g., <em>f2.f1</em>.</p>
<h2>Generics</h2>
<p>Features may have generic type parameters. E.g. a feature declaration may leave
the actual type used within that feature open and to be defined by the user of
the feature.</p>
<p>The list of generic type parameters may be open, i.e., the number of actual
generic type parameters is not fixed at feature declaration. This turns out to
be useful in the declaration of choice types and functions as explained below.</p>
<h2>Inheritance</h2>
<p>Fuzion features can inherit from one or several other features. When inheriting
from an existing features, all inner features of the parent automatically become
inner features of the heir feature. It is possible to redefine inherited
features. In particular, when inheriting from a feature with abstract inner
features, one can implement the inherited abstract features.</p>
<p>A redefinition of an inherited feature may implement an inherited feature as a
routine or as a field. An inherited feature that is implemented as a field,
however, cannot be redefined as something else since fields might be mutable.</p>
<p>Inheritance may result in conflicts. An example would be two features with the
same name that are inherited from two different parents. In this case, the heir
must resolve the conflict either by redefining the inherited features and
providing a new implementation or by renaming the inherited features resulting
in two inner features in the heir feature.</p>
<p>Inheritance and redefinition in Fuzion does not require dynamic binding. By
default, the types defined by features are value types and no run-time overhead
for dynamic binding is imposed by inheritance.</p>
<h2>A Contract</h2>
<p>A feature may declare a contract that specifies what the features does and under
which conditions the feature may be called.</p>
<h2>An implementation</h2>
<p>Features must have one of the following implementations</p>
<ul>
<li><p>a routine is a feature implementation with code that is executed on a call</p></li>
<li><p>a field is a memory slot that stores a value and whose contents are returned on a call</p></li>
<li><p>an abstract feature has no implementation and cannot be called directly, but can be implemented by heir features</p></li>
<li><p>an intrinsic feature is a low-level feature implemented by the compiler or
run-time system, e.g., the infix + operator to add two 32-bit integer values
may be an intrinsic operation.</p></li>
</ul>
<p>A feature implemented as a routine can contain inner feature declarations.</p>
<h1>Feature examples</h1>
<p>Here is an example that declares a feature <em>point</em> that functions similar to a
struct or record in other languages:</p>
<pre><code>point(x, y i32) is # empty
p1 := point 3 4
say "p1.x is {p1.x}" # will print "p1.x is 3"
say "p1.y is {p1.y}" # will print "p1.y is 4"
</code></pre>
<p>The next example shows a feature <em>base</em> that provides an inner feature <em>plus</em>
that adds its argument to the value passed to the enclosing base:</p>
<pre><code>base(v i32) is
plus(w i32) => v + w
b1 := base 30
b2 := base 100
say (b1.plus 23) # will print "53"
say (b2.plus 23) # will print "123"
</code></pre>
<h1>Design-by-Contract</h1>
<p>Fuzion features can be equipped with pre- and post-conditions to formally
document the requirements that must be met when a feature is called and the
guarantees given by a feature. An example is a feature that implements a square
root function for 32-bit integers:</p>
<p> sqrt(a i32) i32</p>
<pre><code>pre
safety: a >= 0
post
debug: result * result <= a,
debug: (result + 1) > a / (result + 1),
debug: result >= 0
</code></pre>
<p> is</p>
<pre><code>if a == 0
0
else
for
last := 0, r
r := 1, (last +^ a / last) / 2 # +^ performs saturating addition
until r == last
</code></pre>
<p>In this case, the function defines the pre-condition that its argument
'a' is non-negative. A call of this function with a negative value will
result in a run-time error. On the other hand, its post-conditions make a clear
statement about the result: The result will be the largest value that, when
squared, is less than or equal to 'a'.</p>
<h2>Checking Pre- and Post-conditions</h2>
<p>Pre- and post-conditions can be classified for different purposes. Default
qualifiers provided in the standard library are</p>
<h3>safety</h3>
<p> This qualifier protects pre-conditions that are required for the safety of an operation.</p>
<p> An example is the index check pre-condition of the intrinsic operation to
access an element of an array: Not performing the index check would allow
arbitrary memory accesses and break the application's safety.</p>
<p> This qualifier should therefore never be disabled unless you are running code
in an environment where performance is essential and safety is irrelevant.</p>
<h3>debug, debug(n)</h3>
<p> This qualifier is generally for debugging, it is set iff debugging is
enabled or enabled at the given level, respectively..</p>
<h3>pedantic</h3>
<p> This qualifier is for conditions that a pedantic purist would require, that
otherwise a more relaxed hacker would prefer to do without.</p>
<h3>analysis</h3>
<p> Qualifier for conditions that are generally not reasonable as
run-time checks, either because they are prohibitively expensive or even not
at all computable in this finite universe. These conditions may, however, be
useful for formal analysis tools that do not execute the code but
perform techniques such as abstract interpretation or formal deduction to
reason about the it.</p>
<p>Additional user defined qualifiers may be added, any expression resulting in a
'bool' can be used.</p>
<p>Run-time checks for pre- and post-conditions can be enabled or disabled for each
of these qualifiers (except for 'analysis', which is always disabled). This
gives a fine-grain control over the kind of checks that are desired at run-time.
Usually, one would always want to keep safety checks enabled in a system that
processes data provided from the outside to avoid vulnerabilities such as buffer
overflows. However, in a closed system like a rocket controller, it might make
sense to disable checks since a run-time error would mean definite loss of the
mission, while an unexpected intermediate value may still result in a useful
final result of a calculation.</p>
<h1>Explicit results instead of Exceptions</h1>
<p>Instead of exceptions that provide an alternative path for a function to return,
Fuzion requires all functions to return a result. To indicate failure, the
generic result type 'outcome' is provided.</p>
<p>outcome is a choice type that represents the result of a routine that
may either produce something useful or fail producing an error condition.</p>
<p>Here is a small example of using an outcome result</p>
<p> getData (u User, t Type) outcome<data> is</p>
<pre><code>if u.allowedToAcces T
(readFile t.fileName)?
else
error "user $u not allowed to access $t"
</code></pre>
<p> readFile (n string) outcome<data> is</p>
<pre><code>if dataExists n
readData n
else
error "data $t not available"
</code></pre>
<p>A user of this code when would have to explicitly unwrap the read data as follows</p>
<p> o := getData user type
match o</p>
<pre><code>d data => say "success: $d"
e error => say "*** error $e"
</code></pre>
<h1>Fuzion Modules</h1>
<p>Modules in Fuzion are collections of Fuzion features that form a library to be
used by other modules. Modules may define a main entry point, such that they can
be used to build applications.</p>
<p>The Fuzion front end performs static code analysis at the module level. This
means that any features exported by a module are save to be used in different
contexts by other modules. This includes static checking of the following
aspects:</p>
<h2>Field Initialization</h2>
<p>In Fuzion, the front end ensures that all fields are assigned an initial value.
There is no default initial value for uninitialized fields and there is no means
to access an uninitialized fields, as there is, e.g., for final fields in Java.</p>
<p>Instead, it is checked that whenever an instance containing a field becomes
accessible outside of the feature declaring that field, the call chain is
analyzed to ensure it may not contain any accesses to the field. In particular,
if an instance may become visible outside of the module, no uninitialized field
may be accessible by any exported features of that module.</p>
<h2>Function Purity</h2>
<p>The result of any feature visible to the outside must be independent of state
modifiable by other exported features and must not itself modify state that may
affect the result of other exported features. This purity will allow
optimizations such as memoization or lazy evaluation common in functional
languages.</p>
<p>Nevertheless, a pure function may use mutable fields, e.g., to store
intermediate results during its calculations. If the mutable field's life span
is limited to the call of the exported feature and the field is not accessed by
any other exported feature, mutation does not make a function impure.</p>
<h2>Race Freedom</h2>
<p>Closely related to function purity is race freedom: Any exported feature is
checked to be safe to be called in a threaded environment without causing data
races. There are no explicit locks in Fuzion, so there is no danger
of deadlocks due to nested locking.</p>
<h1>Immutability</h1>
<p>Fuzion encourages the use of immutable data by simple syntax for the declaration
of immutable fields. Also, the use of tail calls for loops automatically
converts iterator variables used in that loop into immutable variables with a
life span of a single loop iteration.</p>
<p>Since immutability is essential to ensure correctness of parallel execution
within threads that do not rely on locks or similar synchronization mechanisms,
Fuzion's analyzer will verify that data shared between threads is immutable.</p>
<p>The standard library has been designed to provide immutable data types.
Nevertheless, there are mutable types such as 'marray', which provides a
mutable array. These, however, should be used for local calculations only,
escape analysis will ensure that no accesses to mutable types occur from
outside the code manipulating the state.</p>
<h1>Memory Management</h1>
<p>Fuzion to a large extend relies on static analysis to reduce memory management
overhead. Instances are by default value instances that do not require heap
allocation. Furthermore, immutability in many cases avoids the need to keep a
shared copy on the heap. For dynamic calls, heap allocation and dynamic binding
overhead is avoided by specialization of calls.</p>
<p>Only for those instances for which all of these optimizations would fail, in
particular instances shared between threads or long-lived instances with mutable
fields, heap allocation will be required. Memory allocated on the heap will be
reclaimed by a real-time garbage collector.</p>
<h1>Fuzion Thread Safety</h1>
<p>Static analysis at module and application level ensure that mutable data is not
shared between threads in Fuzion. However, there must be means for threads to
communicate, e.g., for the result of a thread to become available to other
threads. How this will be done in Fuzion is still open, thread safe libraries
such as thread-safe queues between might be provided here.</p>
<h1>Conclusion and Next Steps</h1>
<p>I hope Fuzion shows some interesting ideas how to approach the development of
safety-critical software.</p>
<p>The Fuzion language definition and implementation are far from stable, but are
getting closer to become useful. Currently, two execution options for Fuzion
are available: An interpreter implemented in Java and a back-end that compiles to
C code. A tool to interface Java code is available for the interpreter.</p>
<p>Main points that are missing right now are</p>
<ul>
<li>a powerful standard library</li>
<li>additional library modules for all sorts of application needs</li>
<li>low-level foreign language interface for C</li>
<li>actual implementations of static analyzers and optimizers</li>
<li>highly optimizing back-ends</li>
<li>garbage collection for the C back-end</li>
<li>documentation, tutorials</li>
<li>enthusiastic contributors and users!</li>
</ul>
<p>Please feel free to contact me in case you want to use Fuzion or want to help
making it a success!</p>Fridtjof SiebertDesigning a new Language for Safety — Fuzion
Fuzion portal website
Fuzion sources on GitHub
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3000:30D.safetysafety_testing_requirements_documentsTesting Requirements DocumentsIntegrating Specifications into your CI/CD pipelinedevroom<p>In a traditional document driven process any changes to requirements need
to be verified and validated manually. A solution is proposed to link
requirements specifications to their implementation and track changes.</p>
<p>Integrating specifications documents into CI/CD pipelines enables the agile
creation of always up-to-date documentation for the built/shipped artefacts.
We link specific versions of specification items with code, tests, and other
artefacts through their identifier and hash value.</p><p>Modern development practices have introduced continuous integration. It
ensures that ingtegration steps create as little friction as possible.
Furthermore all unit-tests are supposed to be succesfull at any given point in
time.</p>
<p>Specifications documents can not trace this gap automatically and any changes
on either side (implementation or specification) is subject to manual
verification.</p>
<p>An extensible solution is proposed to link specification items with code
(text) or any binary with a specific interpreter.</p>
<p>A demonstration is given how a hypothetical spacecraft has its tea brewer connected
with Spacewire and the traceability is established. The data import from a DOORS
Excel dump is shown and how to link it to a given specification.</p>Kristoffer NordströmTesting Requirements Documents
sltoo.dev
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:10D.testingwelcomeWelcome to Testing and Automation devroomdevroom<p>A warm welcome from your devroom managers, practical information, lineup and administrivia. Happy Testing!</p>Alexander TodorovCyril HrubisAnders RoxellZaklina StojnevSlides in ODF formatSlides in PDF format
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:1500:50D.testingcustom_c_static_analysis_with_sparseAutomating Code Review with SparseProject specific static analysis of a large C codebasedevroom<p>How we use the Sparse C Abstract Syntax Tree and linearized Intermediate Representation to write custom checks for the Linux Test Project API.</p>Richard Palethorpe
Related article
Interactive slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:2000:35D.testingunit_testing_linux_driversUnit testing Linux kernel driversdevroom<p>The technical presentation is about how to use mocks to unit test Linux kernel drivers. The presentation explains how mocks help validating operational code. For instance by checking parameters passed to mocked function, or by configuring the mock to return an error code.</p>
<p>The presentation will include some unit test examples that use a mocking tool which is called EasyMock. I'm the author of EasyMock.</p>Laurent CarlierSlides
Mocking tool
Example showing how the mocking tool is used
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:40D.testingcontinuous_testing_in_cloudContinuous testing in a cloud based infrastructure using virtualization and real hardware in the loopdevroom<p>The concerns about code complexity, cybersecurity and LTS have made a continuous testing infrastructure a must have.</p>
<p>The tests must take place both in virtual and real target. Virtual target because developers never get enough physical boards to test from, and real in order to limit virtualization/reality deviation.</p><p>With the exponential growth of software complexity, to keep the cost and time of critical embedded application development under control, a continuous testing infrastructure is a must have feature.</p>
<p>Not only should software tests be run early and automatically each time a developer pushes a new code commit in the system, but tests should also be run in a virtualized environment because developers typically never get enough physical board to test from. Nevertheless we should keep enough real hardware in the loop to limit virtualization/reality deviation and ensure developers can transparently move test from virtualization to the real world.</p>
<p>This presentation shows how virtualization can ensure early code integration to reduce development/testing cycle, while at the same time keeping track with real hardware to ensure that application is also running correctly on the final production device. Then it gives feedback on the different challenges Iot.bzh faced while deploying its continuous tests infrastructure. Finally it focuses on the way virtualization and real targets can be combined to offer developers a complete and efficient CI infrastructure.</p>Armand BénéteauC.T. in cloud using virtualization and real hardware
Redpesk home page
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:40D.testingfrisbeeFrisbee: An advanced suite for the automated testing of cloud apps over Kubernetes devroom<p>As distributed systems evolve, the testing scale multiplies, asking for dozens of test cases, combined with different application benchmarks (e.g., performance, correctness), and arbitrary operating conditions. Kubernetes holds a promise to enable automation and process improvement directly contributing to a system's reliability. Establishing a declarative API and providing a cheap and disposable environment, Kubernetes makes it easy to create uniform experiments, which may run manually or be exercised multiple times over the development cycle through a CI/CD system. Despite their abundance, existing benchmarks and Chaos engineering tools work in isolation, thus restricting the complexity of testing scenarios we can build.</p>
<p>This talk will present Frisbee: an automated suite for the unified testing of distributed applications over Kubernetes. Frisbee simplifies a series of time-demanding activities, including the spin-up of the dependency stack required to bring the system into a steady state, the combined execution of workloads and faultloads, and the validation of the system's behavior via test cases. We will demonstrate Frisbee through a series of tests, focusing on uncertainties at the level of application (e.g., dynamically changing request patterns), infrastructure (e.g., crashes, network partitions), and deployment (e.g., saturation points).</p>Fotis Nikolaidis
Frisbee@GitHub
Frisbee Tutorial
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4500:45D.testinglava_openqa LAVA + OpenQA = Automated, Continuous Full System Testingdevroom<p>Maintaining software systems for a long time is hard. Backporting kernel patches is a complex and expensive overhead. The Linux project's position is - quite rightly - to instruct down-streams to upgrade to the latest release.</p>
<p>In practice, upgrading is difficult, scary and sometimes avoided. It takes time and effort before there is enough confidence that new releases will work in context: full system testing in embedded environments can be arduous. What if we could have continuous, automated full system tests, from from UI, to OS, to kernel, on hardware?</p>
<p>This talk will provide an overview of how this can be achieved with a combination of OpenQA, LAVA and Continuous Integration pipelines. The talk will cover:
- How the same tests can be used in both kernel space and user space testing
- How the same tests can run in both virtualisation (with OpenQA and QEMU, developed originally for GNOME-OS) and also on hardware
- How images are then deployed and tested in hardware (LAVA triggers OpenQA via VNC to begin testing on boards)</p>James ThomasLaurence Urhegyi
Kernel Testing blog post: LAVA + OpenQA
Kernel Testing blog post: LAVA + OpenQA
GNOME testing blog post
GNOME testing blog post
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:4500:10D.testingoniro_ci_with_lavaOniro CI/Testing integration with LAVAdevroom<p>In this session we introduce and explain the integration between LAVA (Linaro Automated Validation Architecture) and GitLab as part of the testing efforts in the Oniro OS from Eclipse foundation. The session will cover brief introductions to LAVA and Oniro, integration with GitLab and also present on how we provide vendors the opportunity to test the full software stack on the live devices in-house in completely integrated manner with the main lab and have the test results available for reporting in the upstream gitlab instance.</p>Stevan Radaković
LAVA documentation
LAVA sources
Oniro documentation
Oniro Join us page
Welcome to FOSDEM2022's Oniro online stand
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:15D.testingmockery_of_trustHow (not) to make a mockery of trustTesting client software for public-key infrastructuredevroom<p>The ever-continuing push for digitalisation has increased our reliance on trust services of various kinds, filling various needs relating to document signing, code signing, authorization tokens, and so forth.
Many of these trust services rely on public-key infrastructure (PKI) and X.509 certificates.</p>
<p>The sensitive nature of these tools makes them difficult to use in a testing environment. On the one hand, exposing access to production keys in your CI is obviously a terrible idea. But on the other hand, setting up and maintaining a fully functional "mock" PKI environment is also pretty tricky. What can you do about that?</p><p>Using PKI tools in test workflows involves many challenges. Here are a few examples:</p>
<ul>
<li><p>Even a (supposedly) basic task like validating an X.509 certificate involves quite a bit of complexity. Apart from "local" validation logic, you might also have to check the revocation status of your certificate, which could entail talking to an OCSP responder service or looking up a CRL.</p></li>
<li><p>If you're using secure timestamps (RFC 3161) in your code, your tests might also require access to a time stamping service.</p></li>
<li><p>Maybe you're using a remote signing service vendor that doesn't offer any sort of "sandbox" for testing purposes.</p></li>
</ul>
<p>In all of these scenarios, both test data generation and mock service integration can be quite cumbersome.
Both in my own time and on the job, I write a lot of code that relates to digital signing in various ways, and this is a kind of problem that I run into all the time. After trying out a variety of methods, I grew dissatisfied with the "traditional" options, and rolled my own PKI testing framework: <a href="https://github.com/MatthiasValvekens/certomancer">Certomancer</a>.
Certomancer helps with both test data generation, performs trust service mocking, comes with a plugin API, and most importantly, it's FOSS (MIT licence).</p>
<p>In my talk, I'll take you through some of the "how"s and "why"s of Certomancer's feature set, and talk about some of the mileage that I've gotten out of it.</p>Matthias ValvekensSlide deck (handout version)
Project repository
Personal website
Project demo clip
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:2000:15D.testing1000000_test_casesFuzzing, or How I Generated 1,000,000 New Emulator Test Cases in an AfternoonFill your boots. Then fill somebody else's.devroom<p>Emulation of classic hardware is a solved problem and like all solved problems that are sufficiently fun it attracts countless new implementations every year. This has led to the creation of many public test suites — test suites independent of any particular emulator, which can usually even run on real hardware. But these suites tend to assume a lot of working functionality beyond the part they are specifically testing, being designed by an intelligent human being to test complete emulators holistically.</p>
<p>This presentation covers an alternative source and target of emulator tests: random numbers, to test individual processor instructions, so that future emulator authors can test from day one.</p>Thomas Harte
The 6502 test cases mentioned in the video.
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:4000:05D.testinghistory_of_testingHistory of Testinglet's write it togetherdevroom<p>As a side project the Kiwi TCMS team has started collecting facts about people who've made important contributions to the testing field. We're calling upon other testers for ideas and contributions.</p>Alexander TodorovSlides in ODF formatSlides in PDF format
GitHub repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:5001:00D.testing10_oss_test_automation_tools5 OpenSource Test Automation tools in 45 minutes!See a working example of these cool OSS (Test) Automation Tools and see how they compare.devroom<p>5 OpenSource Test Automation tools in 45 minutes! You will be left with a general oversight of various well known OpenSource Test Automation tools which are applicable in a large (or smaller) companies or OSS projects. With a working example demo where you see it in action. The talk will also score these tools (subjectively) among each other (installation, ease of use, stability, speed, etc) and provide insights on how to get started. When to use it, and when not to use it.</p><p>In this session the speaker will show 5 well known OpenSource Test Automation tools applicable in the enterprise for test automation. The cool thing is that many OSS projects could also benefit from incorporating therse tools as part of their CI/CD approach. The talk will cover how it could be used and show a working example of the code. This will give a quick glance of various OSS (Test) Automation tools. Some examples are: SeleniumBase, Cypress.io, Cucumber, RobotFramework and Cerberus.</p>Eric de Graaf
Github
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:30D.virtualizationvai_virtualioWhat's coming in VIRTIO 1.2New virtual I/O devices and featuresdevroom<p>The VIRTIO standard defines I/O devices that are commonly used in virtual machines today. The last version of the standard was released in 2019 and much has changed since then. This presentation covers new devices and features in the upcoming VIRTIO 1.2 standard.</p>
<p>There are 9 new device types: fs, rpmb, iommu, sound, mem, i2c, scmi, gpio, and pmem. We will look at the functionality offered by these devices and their status in Linux.</p><p>This presentation is aimed at users of virtualization who may be interested in new virtual devices that are becoming available in Linux, QEMU, etc. It may also be of interest to driver and virtual machine monitor developers who are considering implementing new devices.</p>Stefan HajnocziSlides
VIRTIO standard homepage
My blog with VIRTIO related material
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:30D.virtualizationvai_codereadyCross-platform/cross-hypervisor virtio vsock use in goUsermode networking in CodeReady Containersdevroom<p>CodeReady Containers runs an OpenShift cluster on a laptop or workstation using virtualization. It's written in go, and uses KVM, HyperV or HyperKit depending on the OS it's running on. External network access is done through gVisor's userland TCP/IP stack which the virtual machine uses over virtio-vsock.</p>
<p>This talk will start with a short presentation of what CodeReady Containers is, explain why it needs a userland TCP/IP stack, but its main focus will be around virtio vsock, how to use it from go, and the differences to expect on the different hypervisors.</p>Christophe FergeauSlides for the presentation
GitHub organization with the various projects mentioned in this talk
Usermode network daemon
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:30D.virtualizationvai_intro_okdIntroducing OKD Virtualizationdevroom<p>OKD Virtualization is the community project bringing traditional virtualization technology into OKD. Meet the OKD Virtualization community and learn about it!</p><p>OKD Virtualization is the community project bringing traditional virtualization technology into OKD. It’s built on top of the KubeVirt project and the Hyperconverged Cluster Operator project.
HCO ensures a single installable unit for Kubevirt and its sibling components leveraging the operator framework to provide the easiest way of installing and maintaining this additional control plane.
This bundle will ship additional tools required to do traditional virtualization tasks like uploading disk images, host network configuration, local storage provisioning, and other functionality which is not covered by the core KubeVirt. On top of this a user interface embedded within the OKD Console is provided for managing the lifecycle of the Virtual Machines. Virtual Machines from other virtualization systems can be imported into OKD Virtualization leveraging the Konveyor Forklift project. Meet the OKD Virtualization community and learn about it!</p>
<p>After this session you will
Know what KubeVirt is
Know what HCO (Hyper Converged Cluster Operator) is and how it relates to KubeVirt
How the OKD UI is presenting VMs
A rough idea of the featureset of what this setup provides
Seen a demo, and knowledge of how to set this up yourself</p>Simone TiraboschiSandro BonazzolaIntroducing OKD Virtualization
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3000:30D.virtualizationvai_torovToroV, a kernel in user-space, or sort ofdevroom<p>This talk presents ToroV, a novel open-source technology that combines virtualization and containerization to enable the execution of users’ applications in a safer and improved manner. In ToroV, applications run as Virtual Machines without the need of an OS, unikernel nor device-model. ToroV combines a minimalist Virtual Machine Monitor and a virtualized guest program communicating through POSIX APIs. When the guest application requires to open or write a file, it just invokes the VMM using hypercalls. The VMM intercepts those hypercalls, processes the request, and returns to the guest. The sysadmin defines the ACL (Access Control List) of authorized hypercall per virtualized guest application. This allows the user to control the host’s surface that is exposed to the guest. In this talk, we propose to present the ToroV architecture together with several ongoing experiments. For example, the minimalist VMM allows us to boot up a VM in KVM in less than 6 ms. Also, we show how we debug guest applications by simply using GDB and the KVM API for debugging. During the talk, we discuss the main differences with unikernels and containers and how ToroV gets the best of both worlds. Also, we present the main differences with gVisor, which is a similar project from Google.</p>Matias Vara
This the source code of ToroV which is hosted at github
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:30D.virtualizationvai_kubevirt_scaleKubeVirt scale test by creating 400 VMIs on a single nodedevroom<p>As the number of VMs per node gets larger, using more powerful nodes (i.e. with more CPUs and RAM), the scalability of Kubevirt's control plane becomes a bottleneck, slowing down the VMI creation process. This talk will cover the motivations and concepts around general benchmarking of the KubeVirt control plane, as well as explaining the journey to running a density test with hundreds of VMs per node.</p><p>Kubevirt's performance and scalability are determined by several factors. As the number of VMs per node gets larger, using more powerful nodes (i.e. with more CPUs and RAM), the scalability of Kubevirt's control plane becomes a bottleneck, slowing down the VMI creation process. This talk will cover the motivations and concepts around general benchmarking of the KubeVirt control plane, as well as explaining the journey to running a density test with hundreds of VMs per node. In addition, I'll provide some performance metrics comparing VM build time in various scenarios. Participants will have a high-level knowledge of the on-going KubeVirt's sig-scale community performance assessment and the single-node scalability characteristics of KubeVirt.</p>Marcelo AmaralKubeVirt Scale test
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:30D.virtualizationvai_future_evolutionDevOps, Cloud Native, DPUs: beyond the buzzwordsThe future and evolution of on-prem open source virtualization platformsdevroom<p>Open Source virtualization is almost 20 years old. Obviously, things have evolved a lot in that time: the public cloud, new CPU architectures, new storage technologies, and more.</p>
<p>What about the real, on-the-ground usage? Sysadmins, Ops and Devops are not leveraging virtualization the same way today as they did before. But what really changed? In what direction is it evolving? Is on-premise open source virtualization still relevant today?</p>
<p>Through our own journey as engineers of an open source virtualization platform, we'll give you an inside look into what our users are requesting from us, and what we did to modernize our virtualization stack based on the Xen hypervisor.</p>Olivier Lambert
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:30D.virtualizationvai_isolating_pciIsolating PCI/CXL Devices: It All Starts with System Launchdevroom<p>It has been well established that the integrity of critical systems must be rooted in the launch. Early works such as the Xoar architecture demonstrated the need for virtualized environments to begin with a lightweight, restricted bootstrap from which isolation of PCI management could be established. Since that time, knowledge of real IOMMU implementations and how to leverage them for system integrity has evolved. In this presentation, the new Hyperlaunch capability for starting hypervisors will be presented with a short discussion of the Xen implementation. The talk will progress to a discussion of how Hyperlaunch is connected with TrenchBoot (Linux Secure Launch) and Mandatory Access Control communication fabrics. With a focus on how it enables dedicated PCI management constructs that can provide secure and trustworthy isolation for PCI devices, with the potential for CXL devices. The talk will close with an open discussion on how hypervisors might unify around a common approach for IOMMU management.</p>Daniel Smith
Xoar Architecture
Hyperlaunch Design for Xen
Presentations on TrenchBoot
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3000:30D.virtualizationvai_automatic_cpuAutomatic CPU and NUMA pinningdevroom<p>In FOSDEM 2019 we presented the addition of high-performance virtual machines in oVirt.
With this new VM type, parts of the VM configuration were changed to improve the performance of workloads it runs.
In particular, it was useful for CPU-intensive workloads, such as SAP HANA.
However, better performance came at the expense of usability. Users were still expected to set various things manually, like CPU and NUMA pinning and hugepages.
In this talk, I will guide you through our journey of simplifying and automating the settings of high performance VMs in oVirt.
We'll see the evolution of the changes, the challenges we faced, where we are today and what's more to come in oVirt 4.5.</p>Liran RotenbergAutomatic CPU and NUMA pinning
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:30D.virtualizationvai_network_interfaceNetwork interface hotplug for Kubernetesdevroom<p>Design and implementation of dynamic network attachment for Kubernetes pods and KubeVirt VMs.</p><p>Immutable infrastructure is the law of the land in the cloud native landscape, promising benefits to software architectures run in Kubernetes.
… except sometimes the rules must be broken to achieve certain use cases; take for instance the dynamic attachment of L2 networks to a running VM: to hotplug an interface into the VM running in a pod, you first need to hotplug that interface into the pod.</p>
<p>This feature is particularly of interest (required, actually) to enable scenarios where the workload (VM) cannot tolerate a restart, or when the workload is created prior to the network.</p>
<p>When thinking about strategies for tackling this problem, we faced a recurring question when trying to come up with a modular design to provide this functionality: "should the changes be located in KubeVirt, and thus solve this issue for Virtual Machines, or should we take the longer path and address this issue also for pods ?" We chose the latter, which unlocks dynamic network attachment for pods, thus also benefiting the Kubernetes community.</p>
<p>This talk will provide the audience with a basic understanding of KubeVirt, CNI, and Multus, and then propose a design to add (or remove) network interfaces from running pods (and virtual machines), along with the changes required in Multus and KubeVirt to make it happen.</p>
<p>It will also factor in a community perspective, explaining how we pitched and got both the Multus and KubeVirt communities involved in a working arrangement to deliver this functionality.</p>Miguel Barroso
Asciinema demo for pods
Asciinema demo for VMs
Feature design plan
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:30D.virtualizationvai_story_tpmThe story of adding TPM support to oVirtdevroom<p>oVirt is an open source virtualization solution based on kvm, QEMU and libvirt. Trusted Platform Module (TPM) device support, which brings new security capabilities that modern operating systems utilize or even require, was added to oVirt recently.</p>
<p>In theory, adding TPM support should be as easy as just adding a TPM device to the virtual machine libvirt XML. But features built on top of a lower-level virtualization platform are not always as easy to implement as they may initially seem to be. This talk will present the challenges experienced when adding TPM support to oVirt.</p><p>The talk will explain that a supposedly complete feature support in libvirt/QEMU may still require challenging design considerations. What can be used easily in a simple virtual machine running on a desktop computer may not be enough to get the things working well and reliably in a virtual machine management running across many hosts.</p>
<p>Some of the challenges experienced with TPM support have been sorted out while other ones still wait for a good solution. Although focusing on TPM, the lessons presented in this talk can apply to a wide range of features. Whatever we work on, we cannot be just passive consumers of features but we must look for the right ways of using them and be proactive in avoiding pitfalls.</p>Milan Zamazal
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.virtualizationvai_deploying_vmsDeploying VMs and Containers across Infrastructure ProvidersPresenting OpenNebula’s new Edge Cloud Architecturedevroom<p>This talk presents OpenNebula's new distributed Edge Cloud Architecture, which is composed of Edge Clusters that can run any workload (both Virtual Machines and application containers), on any resource (bare-metal or virtualized), anywhere (on-prem and on a cloud/edge provider). An Edge Cluster, built on open source technologies that already exist in the Linux operating system, is a hyperconverged functional set of managed objects that include storage, network, and host resources. An Edge Cluster provides all the resources needed to run virtualized or containerized applications. OpenNebula’s management services, including scheduling, monitoring and life-cycle management, run in the cloud Front-end and orchestrate from there the local or remote Edge Clusters. The Front-end also provides access to the administration tools, user interfaces, and API. Although the requirements may vary depending on the number and size of the clusters and API load, the Front-end node only requires 8 GB of main memory and 4 cores. The Edge Cloud Architecture is able to provide a lightweight and easy-to-use storage platform for medium-sized clusters consisting of tens of nodes. OpenNebula’s Edge Cloud Architecture is able to manage hundreds of these clusters, as they operate autonomously in terms of networking and storage, and handle thousands of virtualized hosts and tens of thousands of virtualized applications. In this presentation we will explain in detail the deployment model for Edge Clusters, the specialized storage solution they incorporate (OneStor), and the performance benefits of this multi-cloud architecture as confirmed by the latest benchmarks.</p>Alejandro Huertas
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:45D.virtualizationvai_phyllomeosPhyllome OSA Fedora Remix built to leverage KVM/QEMU virtualization locallydevroom<p>Most Linux distributions are not designed to support desktop virtualization, and GPU vendors have failed to agree on a common way to let virtual machines access 3D capabilities (SR-IOV; vfio-pci; vfio-mdev or virtio-gpu...). The result is that it is still complicated to create fast and responsive virtual machines locally.</p>
<p>Phyllome OS is a Fedora Remix based on Fedora Server which attempts to make it easier to run virtual machines locally on computers that support hardware-assisted virtualization, using mostly paravirtualization (aka virtio-devices). It currently relies on existing technologies (libvirt; KVM/QEMU; virt-manager; GNOME Shell; etc), but will eventually implement its own virtual machine manager, package the cloud hypervisor as an alternative to QEMU, and use filesystem-level encryption to protect virtual machines disks. The main idea behind this OS is to treat the host, Phyllome OS, as a read-only system, i.e. as a mere appliance to host virtual machines. The presentation will give a demonstration of Phyllome OS in its current state.</p><p>Despite steady progress, especially on the KVM/QEMU front, desktop virtualization today still leaves much to be desired when it comes to usability. For most users, it is still complicated to create virtual machines with advanced media capabilities, including 3D acceleration. 3D-accelerated guests are a must-have nowadays and most desktop environments leverage it to provide a smooth user experience. Existing approaches attempting to grant 3D capabilities to virtual machines are not straightforward, sometimes incompatible and often require trade-offs between usability, performance and security. As a result, a successful implementation on a single host typically requires careful considerations and is often hardware-dependent. For instance, passing through real hardware to a virtual machine using vfio-pci is only possible if the piece of hardware is well-isolated in a single IOMMU group. Paravirtualization, on the other hand, and especially virtio-gpu, promises to be hardware-independent but is not (yet?) supported by all modern guest operating systems.</p>
<p>What if an operating system was designed to provide the best experience regardless of the guest operating system in use?</p>Lukas Greve
Main website
Wiki
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:1501:00D.virtualizationvai_hardware_accelHardware-accelerated graphics in secure multi-tenant environmentsWhat is the current status, and what is blocking it?devroom<p>Hardware-accelerated graphics is becoming an essential part of modern computing environments, yet it is currently very difficult to impossible to use in secure environments such as Qubes OS. SR-IOV promises to solve this problem, but multiple problems have limited its adoption. This workshop is about these problems and about what is needed to solve them.</p>Demi Obenour
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:1500:20D.virtualizationvai_tracing_kubevirtTracing KubeVirt traffic with Istiodevroom<p>Software development has been gradually shifting from monolithic to distributed containerized applications. Such applications are composed of components referred to as micro services.
With the increasing number of micro services, it becomes increasingly difficult to understand how all the components communicate.</p>
<p>This is where Istio service mesh comes into play. Istio allows developers to manage and monitor network traffic between micro services and by providing features like mutual TLS, request retries or request circuit breaking. Vendoring these features from Istio helps keeping micro services focused on the actual application logic as they don't need to be implemented by the micro services.
The IT industry has broadly adopted this architecture, but there are still plenty of legacy workloads running in virtual machines, which can't easily take the advantage of the features provided by service mesh. At least not until recently when KubeVirt introduced support for Istio service mesh.</p>
<p>Attendees of this talk gain insight into the concept of the Istio sidecar proxy. A short demonstration showing typical use case of Istio service mesh -- canary deployment -- is presented. Next, this talk explains subtle differences of network traffic routing between regular Kubernetes pods and containerized KubeVirt virtual machines, leading to the challenges that these differences pose for traffic proxying.
Finally, the changes necessary to support Istio for KubeVirt virtual machines are explained and the resulting functionality presented using the same scenario, but with the workload running in virtual machines instead of Kubernetes Pods.</p>
<p>The takeaway of this talk is understanding of routing concepts behind Istio proxy sidecar with regular Kubernetes pods as well as with containerized KubeVirt virtual machines. Audience will have a chance to observe typical use case of Istio with both pods and virtual machines and get insight into the necessary changes that made this possible.</p>Radim HrazdilTracing Kubevirt Traffic with Istio
Istio Service mesh GitHub
KubeVirt GitHub
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:30D.web3trustgraphsDecentralized Self Sovereign Trust Graphsdevroom<p>What if all our decentralized apps and platforms could share trust/ratings/attestation information, in the form of portable cryptographically signed claims? What if this self-sovereign, user owned and controlled, privately sharable trust network could become the backbone to unite our many disparate decentralized web apps and platforms? These are the goals of Trust Graph, and its reference implementation built on Holochain.</p>
<p>In this talk we will cover:</p>
<ul>
<li>TrustAtom format: <code>source</code>, <code>target</code>, semantic <code>content</code>, normalized scalar <code>value</code></li>
<li>Quick survey of the ecosystem of similar protocols</li>
<li>Use cases, including the potential to tackle major global challenges</li>
<li>An example illustrating Trust Graph "rollups" for caching Trust Graphs in TrustAtoms</li>
<li>Trust Graph on Holochain: using Holochain links to allow for searchable TrustAtoms</li>
</ul>
Harlan WoodTrust Graph Deck
https://github.com/trustgraph
http://trustgraph.net/
https://
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:30D.web3ceramicOpen Source Data with CeramicWhy the future of the web is self-certifyingdevroom<p>Why is code open source, but data still locked into silos of big corporations? In this talk we asses the current situation of the web, and evaluate what we can do differently with Web3. We look into what it means for data to be "open source", the implications for developers as data is not locked into their apps, and the core pieces of technology that makes this possible.</p>Joel ThorstenssonOpen source data with Ceramic
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:30D.web3i3marketi3-Market Self Sovereign Identity Authentication Authentication based on Distributed Identity and Verifiable credentials using OpenID Connect and Veramodevroom<p>Video presenting the user registration and authentication processes on a Single Page Application towards the i3-Market Platform, using the i3-Market crypto wallet.
i3-Market IAM solution is based on Veramo framework and the OpenID Connect standard</p>alessandro.amicone
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.web3holochain_scaffoldingScaffold a Holochain App in 10 minutesDemo and workshop for making a simple, functional Holochain App with scaffolding toolsdevroom<p>Using the new Holochain Rapid Application Development tools, we'll scaffold a Holochain application from scratch, generating all the necessary boilerplate, code and types for your specific use case.</p>
<p>You'll learn how to use the RAD tools yourself, and what are the next steps you can follow to start developing a hApp.</p>guillem.cordoba
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.web3livepeerBuilding Web3's Video Infrastructure LayerWhy Openness and Decentralization Matters with livepeerdevroom<p>Video is foundational to the web experience, representing roughly 80% of internet bandwidth. Using desktop, mobile and other devices, video is how individuals learn, work, create, are entertained, and share their human stories. Given that all industries have a need for video and that mainstream audiences are increasingly interested in Web3 solutions, understanding the advantages of decentralization and openness at technical and user levels is essential if these solutions are to be successfully adopted. Join this talk to learn about how Livepeer is positioning itself as the video infrastructure layer of web3 and opportunities for open source contributors to build the future with us.</p>Jaron Vietor
Homepage
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.web3agregoreMixing Peer to Peer Protocols on the WebWith The Agregore Web Browserdevroom<p>Peer to peer to protocols (P2P) are useful for creating applications that are less reliant on central physical and digital infrastructure. With a p2p backend, an application can easily move between connecting people over the internet, to local and ad-hoc networks, and working entirely offline. We take this ability a step further by integrating several protocols into web browsers so that applications can be authored and distributed just like any other data in the network.</p>
<p>This talk will go over some of these protocols, their strengths and weaknesses, and how we have applied them to the web. We'll also have a live demo of what it looks like as a developer.</p><p>This talk will be using the desktop version of the open source Agregore Browser, a minimal web browser built on top of the Electron framework which deeply integrates several protocols everywhere that a browser might use a URL.</p>
<p>The specific protocols we will be going over are IPFS, Hypercore-Protocol, and BitTorrent.</p>
<p>We'll also be talking about the benefits of using P2P software in ad-hoc mesh networks and how it can enable communities to make the most of their local networks.</p>
<p>Feel free to install the browser ahead of time if you'd like to follow along for the live coding portion.</p>Mauve Signweaver
Agregore Website
Agregore Twitter
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:20D.web3fluxThe Peoples' Web3Bringing decentralized hosting infrastucture and dapp development to all the corners of the globle.devroom<p>The Flux Ecosystem is a suite of decentralized computing services and blockchain-as-a-service solutions together to offer an interoperable, decentralized AWS-like development
environment. Flux utilizes a native POW coin to power this ecosystem, providing incentive for hardware hosters, governance on-chain, and bad actor mitigation via staking
requirements for running hardware. The Flux operating system runs on top of Linux to provide the network with verified, enterprise-grade compute power and utilizes the
blockchain to ensure transparency in governance operations. This allows almost anyone to be rewarded for providing hardware to the network, from anywhere in the world.</p>Nicholas Pawelk
Main website
FluxOS Dashboard
Github
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:30D.web3neighbourhoodsIntroduction to NeighbourhoodsA Holochain-based framework for reputation datadevroom<p>This talk introduces Neighbourhoods: a proposed organizing principle for social spaces on the distributed web using Holochain. We envision “groupware” (like calendars, simple games, chat, collaborative docs, etc.) decoupled from reputation and group culture metrics (e.g. entry and exit rules, engagement incentives, likes or claps, visibility and feed ordering); in social platforms on the centralized web, these distinct functions are typically combined.
To facilitate neighbourhoods, we are building a language and “interchange” for reputation data on Holochain such that users can connect a portable reputation extension to bundles of Holochain groupware.</p>
<p>Groups can then use the neighbourhoods framework to bundle p2p modules with reputational and cultural inputs that relate to their particular use cases and style of relating. This also means individuals’ reputation and activity records are stored on their devices, and so can be ported to other neighbourhoods and verified using Holochain’s gossip protocol for data validation. Neighbourhoods is centered on the Holochain ecosystem, but it may also be of interest to dWeb communities and projects aspiring to traffic in “richer” data than ownership claims & token counts - especially when those data support community collective intelligence.</p>
<p>Much of the system remains to be built, but the core language - <code>rep_lang</code> - has been integrated with Holochain. We’ll close with a brief demo showing one key aspect of the system: <code>rep_lang</code> computations being validated by multiple agents on Holochain.</p>Emaline FriedmanMichael HueschenIntro to NH slidesIntro to NH demo slides
codebase to be discussed
main project page
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:3000:35D.web3gunScaling a Decentralized Metaverse in Browser without Data LeaksHacking old tech to achieve new protocolsdevroom<p>Is a decentralized metaverse with hundreds of millions of users possible? From my experience working on open source tools with over a half billion downloads in a year, the answer is yes. But not through blockchains, tokens, or gimmicks. This talk is for the pure hearted, those who want scale, security, speed, and small code. I'll first briefly cover some mind blowing demos that our community, GUN (a p2p Firebase), has achieved, then showcase a new way to make apps & games that can instantly render user data (without login or registration) without the app itself being able to access it (preventing apps from being able to mine or spy on your data).</p>Mark Nadal
twitter
github
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
09:3000:30S.box86welcome_box86Welcome to the Box86 standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.checkmkwelcome_checkmkWelcome to the Checkmk standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.civicrmwelcome_civicrmWelcome to the CiviCRM standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.opensusewelcome_opensuseWelcome to the openSUSE standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.debianwelcome_debianWelcome to the Debian standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.eclipsewelcome_eclipseWelcome to the Eclipse Foundation standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.fedorawelcome_fedoraWelcome to the Fedora Project standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.foremanwelcome_foremanWelcome to the Foreman standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.fossasiawelcome_fossasiaWelcome to the FOSSASIA standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.fsfewelcome_fsfeWelcome to the Free Software Foundation Europe standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.freebsdwelcome_freebsdWelcome to the FreeBSD Project standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.gnomewelcome_gnomeWelcome to the GNOME standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.gsocwelcome_gsocWelcome to the Google Summer of Code standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.haikuwelcome_haikuWelcome to the Haiku standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.illumoswelcome_illumosWelcome to the illumos standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.kdewelcome_kdeWelcome to the KDE Community standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
10:0001:00S.kdekde_plasme_mobilePlasma Mobile in 2022Bhushan Shahstandtrack
Chat room (web)
Chat room (app)
Submit feedback
11:1500:30S.kdekde_kalendar_aonadiKalendar and the case for AkonadiClaudio Cambrastandtrack
Chat room (web)
Chat room (app)
Submit feedback
13:0001:00S.kdekde_ecoKDE EcoJoseph De Veaugh-Geissstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.kiwiwelcome_kiwiWelcome to the Kiwi TCMS standstandtrack<p>Kiwi TCMS is the leading open source test management system for both manual & automated testing with over 1 million downloads. It has been made by testers and licensed under GPLv2. Our mission is to transform the testing process by making it more organized, transparent & accountable for everyone on your team. Kiwi TCMS is used during software testing and quality assurance to collect information about what, when and how has been tested. This information is later used when making a go/no-go decision before a release, monitoring and planning the workload of the QA team or answering questions like "How did we test this?" and "Why didn't we catch this bug before?"! 1m downloads from Docker Hub</p>
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.libreofficewelcome_libreofficeWelcome to the LibreOffice standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.libresocwelcome_libresocWelcome to the LibreSOC Project standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.mariadbwelcome_mariadbWelcome to the MariaDB Foundation standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.matrixwelcome_matrixWelcome to the Matrix standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.mauticwelcome_mauticWelcome to the Mautic standDiscover the power of open source marketing automation with Mautic!standtrack<p>Discover the power of open source marketing automation with Mautic!</p>
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.nextcloudwelcome_nextcloudWelcome to the Nextcloud Hub standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.ntopwelcome_ntopWelcome to the ntop standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.onirowelcome_oniroWelcome to the Oniro Project standThe Distributed Operating System That Connects Consumer Devices Big and Smallstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.onlyofficewelcome_onlyofficeWelcome to the ONLYOFFICE standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.openmandrivawelcome_openmandrivaWelcome to the OpenMandriva standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.opentapwelcome_opentapWelcome to the OpenTAP standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.openukwelcome_openukWelcome to the OpenUK standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.openwifiwelcome_openwifiWelcome to the openwifi standThe open-source WiFi chip (FPGA currently)standtrack<p>There are many WiFi chips around each one. The WiFi router, the smart light, the TV, the phone, etc., all have WiFi chips inside. Ever imagine replacing those chips with an open-source design?</p>
<p>The <a href="https://github.com/open-sdr/openwifi">openwifi</a> project has been online for more than 2 years. We have paved solid steps towards an open-source WiFi chip. Now if you have commercial off the shelf FPGA boards, you can download our design onto your board and start to use this FPGA based WiFi in the same way as other commercial WiFi chips!</p>
<p>Related event:</p>
<ul>
<li>Feb 6 13:10 (Brussels time): <a href="https://fosdem.org/2022/schedule/event/radio_openwifi/">Opensource WiFi chip (openwifi) progress and future plan</a> in <a href="https://fosdem.org/2022/schedule/track/free_software_radio/">Free Software Radio devroom</a>.</li>
<li>Feb 6 11:20 (Brussels time): <a href="https://fosdem.org/2022/schedule/event/openwifipynqz1/">Bring openwifi to PYNQ-Z1 with ultra low cost</a> in <a href="https://fosdem.org/2022/schedule/track/libre_open_vlsi_and_fpga/">Libre-Open VLSI and FPGA devroom</a>.</li>
<li><a href="/2022/stands.fosdem.org/stands/openwifi/">openwifi stand</a> welcome you the whole weekend.</li>
</ul>
The openwifi Linux driver and user space tools
The openwifi FPGA/chip design
The main openwifi github site
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.ow2welcome_ow2Welcome to the OW2 Open Source Community standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.pharowelcome_pharoWelcome to the Pharo standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.postgresqlwelcome_postgresqlWelcome to the PostgreSQL standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.pulpwelcome_pulpWelcome to the Pulp standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.reactoswelcome_reactosWelcome to the ReactOS standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.refpersyswelcome_refpersysWelcome to the RefPerSys standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.schulfreiwelcome_schulfreiWelcome to the schul-frei standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.apachewelcome_apacheWelcome to the The Apache Software Foundation standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.ubuntuwelcome_ubuntuWelcome to the Ubuntu standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.xcpngwelcome_xcpngWelcome to the XCP-ng standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:3000:30S.xwikiwelcome_xwikiWelcome to the XWiki & CryptPad standstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:0009:00I.infodeskinfodesk_saturdayThe Virtual FOSDEM Infodesk (Saturday)infodesk<p>Need any assistance during the event? Join us in here!</p>
Chat room (web)
Chat room (app)
Submit feedback
18:0000:30K.fosdemclosing_fosdemClosing FOSDEM 2022maintrackFOSDEM StaffRichard Hartmann
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3001:00M.communitycommunity_incentivesEstablishing an incentivised partners programme in an open source projectmaintrack<p>While money is helpful in open source projects, hands-on contributions are probably more valuable to the long term health and sustainability of the project.</p>
<p>In the Mautic project, we wanted to establish a partners programme which would allow us to highlight to our community the organisations who were both financially supporting the project as a sponsor, and were actively contributing to the project. Here's how we did it.</p><p>In this session I’ll outline how we came up with a way to make the financial element equitable for partners around the world, and the steps we took toward ensuring that organisations couldn’t just buy their way to partner status.</p>
<p>We’ll dig into thorny topics like determining what we mean by contributions, how we recognise non-code contributions alongside code contributions, and the tooling that underpins it all.</p>
<p>I’ll also explain how we’ve built our partners portal to incentivise active contributions from the organisations, and some of the improvements that we’re thinking of making in the future.</p>Ruth CheesleyFOSDEM - Establishing an incentivised partners program
opensource.com write up
Mautic Community Partners Program
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
14:3001:00M.communitycommunity_successCelebrating failure or success? Why not both?maintrack<p>As an engineer failure is not a matter of if but when.
We all know that corrective actions are expensive, that is why we focus on preventive actions.
The knowledge gained from understanding and embracing failure is potentially the source of better preventive actions.</p><p>Failure is an inevitable part of success. Failure in the context of innovation efforts has helped thousands of start-up companies to succeed but in the context of a known execution process, it can harm results or reputations or create undue risk.
In software development we are situated at the cross road between innovation and known process so how do we benefit from failure and achieve success?
In this session we will explore several studies and best practices of successful companies that have embrace them both.</p>Ixchel Ruiz
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
15:3000:45M.communitycommunity_diversityHow Implicit Bias Affects Diversity and Inclusion in Open Source.maintrack<p>The topic of diversity and inclusion has for long been practised in theory within open source communities. Yet, in reality, our believes in diversity and inclusion is frequently questioned because of our biases, particularly Implicit Bias. In this session, I will discuss these biases are, how they affect open-source communities and how to improve on these biases.</p><p>Open Source communities operate on a set of values that include a commitment to inclusion and diversity. The idea that the Tech Ecosystem at large is faced with the challenges of Diversity and Inclusion is not a myth.
To everyone, there is a level of implicit bias and beliefs about various social and identity groups to some degree. Implicit biases are the attitudes or stereotypes that affect our understanding, actions, and decisions in an unconscious manner.
Studies have shown that the majority of the problems posed by diversity and inclusion result from implicit bias. As users, maintainers and contributors of Open Source Software, we may have encountered different marginalized groups that have shared their encounters of bias in Open Source communities.
Most persons are ignorant of this bias and its impact on the victims. In an Open Source Project, a typical example of implicit bias could be, assuming that a female employee will be less competent for a role compared to a male employee.
In this session, I will be talking about: What Diversity and Inclusion is, Why Diversity and Inclusion matter? Challenges faced by underrepresented groups in open source communities, Identifying Bias, What implicit Bias is, The different forms of implicit Bias, Why it is important to create awareness of this bias and How these biases can be improved.</p>Anita Ihuman
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
16:1500:45M.communitycommunity_recognitionAre we being inclusive with our community recognitions? maintrack<p>Recognizing community members is one of the most enjoyable activities for community managers. It is a great opportunity to thank people for their work and highlight their contributions to the rest of the community. However, we need to evaluate if we’re truly being inclusive with our community recognitions. For example, when discussing contributors, we still see a lot of emphasis on the volume of contributions on project repositories (i.e., code) that some may find intimidating. This focus on code is partly because contributions on tools like GitHub and GitLab are easier to measure and quantify.</p>
<p>On the other hand, it can be more challenging to measure (or even notice) how much a community member is helping others on platforms like Discord, Matrix, Slack, etc. When someone helps a newcomer by answering a quick question in chat, it’s easy to miss that among other discussion threads. Even though it can be more challenging to quantify non-code contributions, it’s crucial to look beyond repositories to see how people are helping to improve our communities. In addition to contributions in chat-like platforms, this can include sharing their use cases, participating in meetups, providing honest feedback in 1-on-1 conversations, etc. Looking across a broad spectrum of contributions will help ensure that we recognize everyone regardless of their background, interests, and skillset.</p><p>Also, not everyone is comfortable with public recognition. Some may feel uncomfortable being in the spotlight or even think what they have done is not significant enough (sometimes I see this with contributors from underrepresented groups). In these instances, it is important to find ways to let them know that the community appreciates their work without putting them in an awkward position.</p>
<p>In this talk, Ray will share his experience identifying different contributions, community recognition examples (both good and bad), and feedback he received on community recognition programs. There will also be a discussion on how inclusive recognition is vital for strengthening the sense of belonging in the community.</p>Ray PaikMore inclusive recognitionsScreenshot from Q&A (1 of 4)Screenshot from Q&A (2 of 4)Screenshot from Q&A (3 of 4)Screenshot from Q&A (4 of 4)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
17:0001:00M.communitycommunity_mentorshipEnabling Next Gen of Diverse Maintainers and Employees Through Mentorshipmaintrack<p>Finding brilliant and diverse engineers, who could maintain complex open-source projects, lead communities and be productive employees is an extremely hard task these days. It’s easy for aspiring talents to feel lost, be ashamed and give up in the process due to the transparent aspect of work in open source. We believe we found a quite neat shortcut to this!</p>
<p>The solution is called “structured mentoring” and in this talk, Prem and Bartek, maintainers of CNCF projects, will explain why this is a game-changer, based on their experience mentoring 20+ talents for the Thanos and Prometheus projects.</p>
<p>There are many mentoring programs like LFX, GSoC or Outreachy but it is easy to make mistakes, get lost and have no results from mentoring if not done carefully.</p>
<p>Join us to learn what processes worked the best to get the most out of the open-source mentorship. Learn what mistakes to avoid, how to get mentored and how to start mentoring in your company or open source project today</p>Bartek PlotkaPrem SaraswatSlides
Mentorship Guide
Mentorship Guide 2
Mentoring Meetups
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
10:0001:00M.miscmisc_fossAll the World's a Stage and FOSS is playing many partsWith the spotlight of the world's Governments shining on security, sustainability and software, how will FOSS survive the limelight?maintrack<p>The FOSS Communities have been debating how to manage security, sustainability and funding of FOSS for years but today a global and political lens is being shone on them.</p>
<p>Commercial debates over licensing and revenue models around FOSS based businesses peak in 2021 with the Elastic transition away from FOSS to an SSPL licence and the fallout and debate from this.</p>
<p>The European Commission's Digital Decade is clear that its basis will be a FOSS infrastructure and Europe has been passing laws and regulations to support its open first approach, as it seeks digital and data sovereignty.</p>
<p>The inevitable success and adoption of FOSS in our national infrastructures and recent security issues have the minds of Governments focused on FOSSS, to the extent that the White House plans a meeting to discuss FOSS security in January having issued an ordinance recommending the use of Software Bill of Materials.</p>
<p>China's Ministry of Industry and Information Technology has shared a 5 year software plan saying "software defines the world of the future, open source determines the future of software," as it plans global collaboration to improve its open source activities.</p>
<p>In the UK, hosting COP26 shone a spotlight on energy and the UK Energy Sector Digitalisation Task force which has already suggested Open Data, will consider the use of open source software by default in its recommendations to Government in January. Whilst the NHS' data strategy issued in 2021 requires that open source software should be the default in healthcare.</p>
<p>This talk will stitch together these global threads, laws and policies to take a holistic view on the insurmountable success of FOSS in the last decade and the inevitable challenges being faced as a consequence of that success and the very nature and heart of FOSS in the Commons.</p>
<p>Sharing some policy suggestions and thoughts this talk will consider whether it may be time to shift the landscape. Is 2022 the year to recognise the need for FOSS to be characterised as a public good and to secure the interaction not only of business but of the State in funding and securing FOSS in the long term? How can this ensure sustainability of FOSS through its maintenance and sustainability of the planet by elevating the role of FOSS within environmental sustainability?</p>
<p>With a deep consideration of recent economic and policy discussions this keynote talk with pull many strands together to start 2022 with a focus on FOSS, funding and a secure and sustainable future.</p>Amanda Brock
talk
Berlin Buzzwords talk commercial models
IT Pro Keynote open and cloud
talk commerical
Percona Live Keynote
Keynote
Keynote
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
11:0001:00M.miscmisc_businessThe Business Of Open SourceHow big money, investors, and greed are changing open source forevermaintrack<p>The changing landscape of the open-source industry has taken a potentially dark turn in the last few years. Instead of focusing on inclusion, innovation, and collaboration a new generation of so called open source drive companies has emerged flush with investor money and looking to maximize the returns for their investors and shareholders at all costs. In an effort to accelerate “revenue” and “profits” these companies are looking to rewrite the definition of what they consider open source. We are in a battle for not only the hearts and minds of the FOSS community but our collective future. As new developers start open source projects more will be compelled to choose more restrictive licensing models ( i.e. SSPL ), invest less in the community, and “control” as much of the code and product as possible. I will talk about the trend, talk about the common business models, and offer a few alternatives.</p>Matt Yonkovit
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
12:0000:45M.miscmisc_europeEuropean digital sovereignty and open sourceHow Europe is regulating big tech and what's in it for FLOSSmaintrack<p>The European Union is working with great energy on new rules for digital markets, targetting first of all the big global Internet platforms. Building on the global impact of the GDPR, efforts like the Digital Services Act, the Digital Markets Act, the AI Regulation, the Data Governance Act and the GAIA-X initiative attempt to restrain the superpowers of the big American and Chinese companies and promote rights and opportunities for Europeans, restoring the EU's ability to control its own slice of the Internet and reducing the dependency on foreign products and services. Open source is one of the strategic tools for this objective, and open source projects and companies could be benefited by these changes. Watch the talk to learn what is happening!</p><p>The talk will start by recollecting how we started up with an open, interoperable Internet that allowed everyone to cooperate and deploy new content and services, and ended up with a concentration of money and power of unseen scale in the history of mankind. Technical and market developments are centralizing the Internet more and more into the hands of a few companies, very concentrated in terms of geography, jurisdiction, ownership and views of the world. We will discuss how the EU plans to counter these trends, what the various regulations and projects are, and how they would work.</p>
<p>We will then focus on how open source in Europe could be impacted by the new rules. Some of the provisions are particularly in line with an open, distributed Internet architecture, mandating the adoption of open standards and interoperability and preventing dominant players from advantaging their own applications and services over independent ones. Social media, instant messaging and mobile apps are three sectors that could be particularly affected.</p>
<p>In the end, the talk aims to create awareness in the European open source community around the changing regulatory scenario, so that we are ready for it.</p>Vittorio BertolaSlides for the talk
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
15:0001:00M.miscmisc_rakuDebunking The Myths About The Raku® LanguageLet's talk about some common misconceptions about the Raku language and why it is not Perl6 anymoremaintrack<p>The Raku language, formerly known as Perl6, sometimes gets incorrect coverage when it comes to "expert opinions". In this talk we will consider the common misconceptions about the language, what's wrong about them, and why your impression about the language might be wrong. Let's see how we can make it much better!</p><p>Developers are mostly busy people. Such resource as "spare time" is scarce among them and must be used wisely. When there is no time to research a topic on our own, we trust others to do it for us and express their opinion, which we tend to accept. But, unfortunately, for many reasons those opinions may not represent the real state of the things. When it comes to Raku, some still consider it based on factors, which are no longer valid, or which influence the language in an anticipated way. This talk in intended to provide you with real information about the Raku language, its strong and, perhaps, weak sides. Bight first of all, this talk is about letting you to build up your own view at the language.</p>Vadim Belman
The Raku® Programming Language
The most mature, production-ready implementation of the Raku language.
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
10:0000:25M.securitysecurity_seamless_kernelSeamless Kernel UpdateSeamless kernel update practice in linux based on kexec and criumaintrack<p>Currently, operating systems have become increasingly complex and thus more sensitive to security problems and performance issues. In some circumstances, developers have to reboot their systems in order to patch security vulnerabilities, fix bugs, and add new features, which will bring unavoidable downtime for running applications. Live-patch is an elegant solution. But, it can only work in 30 percent of circumstances. In our project, we put another solution into practice. We use a checkpoint-and-restart mechanism to retore applications' status and then switch the kernel fastly.</p>Longjun LuoSeamless Kernel Update.pdf
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
11:0000:25M.securitysecurity_secpaversecPaver: Security Policy Development Toolmaintrack<p>Security design is an very important step in the software development. In order to meet the principle of least privilege, developers make rules for applications based on data flow and control flow of processes, such as SELinux and AppArmor. This step can be automated with secPaver. With the permission description of application, secPaver can generate security policy for different security mechanisms. By this way, security design can be simplified, and developers do not need to know many details about security mechanisms.</p>
<p>secPaver is a policy development tool that supports multiple security mechanisms. It aims to help users implement end-to-end security policy development, including visible policy design, iterative development, and policy release. It provides functions such as policy configuration, automatic generation, running test, missing rule gathering, and policy package export. secPaver shields security mechanism details and abstracts unified policy configuration file definitions and operation interfaces for different security mechanisms, improving policy development efficiency and reducing learning costs for developers.</p>
<p>project address: https://gitee.com/openeuler/secpaver/</p>HuaxinLu
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
12:0000:40M.securitysecurity_rustWhy safe programming matters and why RustFast, safe and sustainable programming with Rustmaintrack<p>Security in programming starts from the programming language itself. The majority of CVEs we encounter are due to memory safety issues and I'm here to talk about how a language like Rust is the way forward in avoiding those. Rust is a great programming language. It is a developer favorite and is rapidly gaining a foothold outside of systems programming. It has the potential to become a great general-purpose language with little of the overhead of traditional high-level general-purpose languages. Rust is fast, safe, and sustainable. Today I'm going to take you through the strengths and weaknesses of Rust and why it will be a great general-purpose language. Beware, I'll be doing comparisons with your favorite languages.</p>Deepu K SasidharanWhy safe programming matters and why Rust?
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
13:0000:45M.securitysecurity_sbomThe distinctive qualities of Software Bill of Materialsmaintrack<p>Software Bill of Materials (SBOMs) have emerged as a powerful tool for
guiding supply chain security in modern software development
environments. As an 'ingredients list' of files, package dependencies
and other artefacts that a piece of software is made up of, Software
Bill of Materials are becoming an essential part of modern software
development practices.</p>
<p>Open source software provides great transparency and can yield rapid
vulnerability patching, but this is too often compromised by sprawling
dependency trees which make it difficult to find vulnerable components
in larger software projects. With SBOMs, there's a way of effectively
cataloguing software components and the package metadata needed to check
the integrity, pedigree and provenance of software supply chains. This
talk will cover the benefits of having a common standard for creating,
sharing and consuming Software Bill of Materials, what SBOMs should and
should not contain, and how to use SBOMs to inform security measures
across the diverse range of package ecosystems.</p><p>In particular, this talk will cover the distinctive qualities of
effective Software Bill of Materials:</p>
<p>Immutability - it may be tempting to include known vulnerabilities and
other dynamic data in SBOMs, but this leads to uncertainty and
duplication of effort when that data inevitably changes. This talk will
show how to link dynamic data into SBOMs in a way that maintains the
SBOM's immutability.</p>
<p>Verifiability - it's hard to trust an SBOM when you can't verify that
its contents are correct. Including robust cryptographic hashes is a
critical part of creating SBOMs. This talk will show how relationships
in SBOMs can be used to associate the hashes of build artefacts with
source code, providing a way to trace back to the original projects even
when programs are statically linked!</p>
<p>Compatibility - no one program can check for vulnerabilities of all the
different types and across all package ecosystems, so the use of SBOMs
as a compatible format for communication between security tools is
essential for dependency analysis at scale. This talk will cover the
current state of compatibility between security tools, concluding with
practical ways that developers can integrate SBOM creation and ingestion
into their build systems.</p>Sebastian Crane
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
14:0000:45M.securitysecurity_trousseauTrousseau - the Kubernetes Key Management Service providerHow to keep all your Kubernetes secrets safe the native waymaintrack<p>By design, Kubernetes will store secrets encoded in base64 within its etcd resulting in an insecure solution.<br/>
While a couple commercial and open-source solutions exist to solve this problem, they all call for a separate set of tools, skills and limitations along with hardstop from CISO and Security Architect.
Kubernetes put in place a KMS provider plugin framework and Trousseau leverages it to solve the secret management using standard Kubernetes API secret objects and constructs.</p><p>While there are significant efforts to improve Kubernetes component layers, the state of Secret Management is not receiving much interests.
Using etcd to store API object definition & states, Kubernetes secrets are encoded in Base64 and shipped into the key value store database. Even if the filesystems on which etcd runs are encrypted, the secrets are still not.</p>
<p>Instead of leveraging the native Kubernetes way to manage secrets, commercial and open source solutions solve this design flaw by leveraging different approaches all using different toolsets or practices. This leads to training and maintaining niche skills and tools increasing cost and complexity of Kubernetes day 0, 1 and 2.</p>
<p>Once deployed, Trousseau will enable seamless secret management using the native Kubernetes API and kubectl CLI usage while leveraging an existing Key Management Service (KMS) provider.
How? By using using the Kubernetes KMS provider framework to provide an envelop encryption scheme to encrypt secrets on the fly.</p>Romuald VandepoelTrousseau - the Kubernetes Key Management Service provider
Trousseau Project Repository
Trousseau website
Fosdem 2021 - Lightning Talk - Secrets or not, but don't clear text
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
15:0000:45M.securitysecurity_wishesWhat I wish I knew about security when I started programmingmaintrack<p>Eighteen years into my career, I decided to pivot and move from infrastructure-related work to the world of application security.
If there’s one thing I’ve learned in the three years of working in application security is that it’s a funny business. Our entire business model is based on pointing out the mistakes of other programmers.</p>
<p>In this talk, I want to shoot myself in the foot and share some concepts that could help eliminate a lot of those mistakes, and reduce my job to snuffing out the more interesting mistakes.</p>Allon MureinikSlides from the talk
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
16:0001:00M.securitysecurity_tlsSecure Communication with Tlsmaintrack<p>Tls/ssl forms the backbone of secure digital communication. This presentation covers the details about the tls protocol and its use of lower-level cryptographic methods. There is also an extensive section about the creation and use of digital certificates for authentication, with examples from web servers and Postgres.</p>Bruce Momjian
slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
17:0000:45M.securitysecurity_sudoSudoWatch and control your blind spotsmaintrack<p>Sudo is used by millions to control and log administrator access to systems, but using only the default configuration, there are plenty of blind spots. Using the latest features in sudo lets you watch some functions that previously were blind spots and you can also control access to them. There were several minor and major changes since the 1.9.0 release that I discussed in my previous FOSDEM talks. Here are the four major new features allowing you see your blind spots:</p>
<ul>
<li><p>instead of giving full shell access, you can fine-tune the working directory and chroot settings</p></li>
<li><p>JSON-formatted logs give you more details on events and are easier to act on</p></li>
<li><p>relays in sudo_logsrvd make session recording collection more secure and reliable</p></li>
<li><p>you can log and control sub-commands executed by the command that is run through sudo</p></li>
</ul>
<p>Previously, there were quite a few situations where you had to give users full shell access through sudo. Typical examples are when you run a command from a given directory, or run commands in a chroot environment. You can now configure the working directory or the chroot directory and give access only to the command the user really needs.</p>
<p>Logging is one of the main roles of sudo, to see who did what on the system. Using JSON-formatted log messages gives you even more information about events. Also, structured logs are easier to act on. Setting up alerting for suspicious events is much easier when you have a single parser to configure for any kind of sudo logs. You can collect sudo logs not only by local syslog, but also by using sudo_logsrvd, the same application used to collect session recordings.</p>
<p>Speaking of session recordings: instead of using a single central server, you can now have multiple levels of sudo_logsrvd relays between the client and the final destination. This allows session collection even if the central server is unavailable, providing you with additional security. It also makes your network configuration simpler.</p>
<p>Finally, you can log sub-commands executed from the command issued through sudo. You can see commands started from a shell. No more unnoticed shell access from text editors. And, best of all: you can also intercept sub-commands.</p>Peter CzanikSudo -- watch and control your blind spots
sudo/syslog-ng/personal blog
Video recording(WebM/VP9)
Video recording(mp4)
Answers to Q&A questions I could not answer live
Chat room (web)
Chat room (app)
Submit feedback
13:0000:20L.lightningtalkslt_whaleOpen source to IRL whale card game (python/Golang/WebGL)How open source helped me create a physical card gamelightningtalk<p>How open source gave life to a physical cards project and raised funds to help saving whales.</p>
<p>Inkscape helps to create digital designs from paper, machine learning balances the rules of the game, golang and TUI make the game virtual and webgl creates music with whales singing in the ocean.</p><p>Drawing entousiast I created a set of whales designs that I liked.</p>
<p>Talking with a friend I encontered a nice ML project about card games rlcard (link below).</p>
<p>This helped me to create a ml version to explore rules of the game whale-ml (link below). The created bots showed that the number of card available in the game would change the strategy of players, knowing that I could choose to balance the rules so that new players could win too !</p>
<p>Helped by the golang community I could create A TUI version : whale-tui (link below).</p>
<p>Fascinated by the sounds of whales is the sea I decided to create a sampler to use singing whales to create music : whale-sampler (link below).</p>
<p>Donate for the whales to a nice NGO Miraceti (link below).</p>pmalhaireWhale slidesVideo recording(mp4)
whale-ml project to explore rules of the game
whale-tui terminal version of the game in golang.
whale-sampler sampler to use the sounds of whales to create music
donate for whales to miraceti
RLCard: A Toolkit for Reinforcement Learning in Card Games
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
13:2000:20L.lightningtalkslt_netotaNetOTA - repository protocol for embedded systemsThe sweet spot between global stores and latest-image URLslightningtalk<p>NetOTA is a new repository protocol designed for the IoT ecosystem. It sits between global app-stores and single-URL update links, offering practical features without sacrificing simplicity.</p>Zygmunt Krynicki
NetOTA Git repository
SysOTA Git repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
13:4000:20L.lightningtalkslt_openhpsRapid Prototyping of a Positioning SystemUsing the OpenHPS Frameworklightningtalk<p>The creation of a positioning system has use cases for indoor, outdoor and even small-scale deployments. These solutions often use a broad range of technologies and algorithms that each have their advantages as well as limitations. Existing open source positioning solutions often offer a complete package for indoor navigation or asset tracking that allows developers to set up a specific application with minimal effort. However, these positioning solutions offer little room for developers to customise them.</p>
<p>OpenHPS is an open source hybrid positioning framework for creating a positioning system without being bound to a specific technology or a set of algorithms. Developers are free to choose the data they want to use, from where they want to obtain this data, how to process the data and finally how to use the outcome of the positioning system. In this presentation we will present the modularity and ecosystem around the OpenHPS framework, some technical aspects as well as the current state of the project.</p><p>A localisation system often has use cases such as tracking employees or navigating people at a conference. When looking at the problem in a more broader
perspective the use cases often span way beyond the tracking and navigation of people. Whether it is a use case where pawns need to be tracked on chessboard or
a robot needs to navigate itself outside and through multiple buildings, different approaches need to be used.</p>
<p>Using use case specific software development kits would be an easy solution for developers, but with the constantly changing technologies and algorithms these different platforms cause a fragmentation
of knowledge over multiple programming languages and hardware. Being created in TypeScript, the framework can be deployed on a variety of devices while making use of the large number of packages that are available. A process network design is used to process data from a source to sink. The processing can be done locally, remote and even distributed over multiple processes, web workers or remote machines. Each part of the process network is modular, allowing developers to share algorithms that will be compatible with the same data structure used throughout the framework. In addition, this process network design allows existing algorithms in different programming languages to be accessed as 'part of the processing'.</p>
<p>With the OpenHPS project we want to create an ecosystem of modules that each focus on a specific aspect in the creation of a positioning system. Modules for different storage techniques, remote communication, computer vision and different sensor sources already exist that will be further discussed in the current state part of the presentation. At its core, the framework is aimed towards developers that have a basic understanding of implementing a positioning system by means of combining parts of the process network. This method of development allows the rapid prototyping of a complete positioning system that can later on be deployed in a production environment.</p>
<p>Future work in the project will create additional layers of abstraction that allows the development of a system without the required knowledge of the algorithms. However, because the framework is still modular at its core, these abstractions will still allow developers to tweak the system to do the task it is designed to do.</p>Maxim Van de WynckelPresentation Slides
OpenHPS Website
GitHub Repositories
Core Component
Technical Report
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
14:0000:20L.lightningtalkslt_car_whisperingCar Whispering: the AI MechanicTinyML Audio Event Detectionlightningtalk<p>Embedded Machine learning is a fascinating subject that I am researching as part of my PhD. Several years ago, a buddy (Pearse Gough) and I discussed audio fault detection for common faults, but the technology was less accessible and primarily cloud dependant.</p><p>Running TinyML on an ESP32 Microcontroller or Arduino BLE Sense with a microphone, I will demonstrate fault detection through audio event detection on a vehicle. Using a pre-trained model of audio events, running on an MCU with a microphone. I will also share my model and code via Edge Impulse and Git.</p>Eoin JordanFosdem AI Mechanic v3 slidesFosdem AI Mechanic v3 slides
AI Mechanic V2 as presented
Sample Code on Git CarWhispering
Shared Model on Edge Impulse
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
14:2000:20L.lightningtalkslt_oniroOniro project, the new IoT platform from Eclipse FoundationHow to transform existing impediments towards a healthier competition in the IoT & Edge spacelightningtalk<p>Oniro is an Open Source platform hosted by the Eclipse Foundation that aims to create a healthier competition in the IoT & Edge industries by providing a vendor-neutral environment to foster collaboration under open governance principles and processes.</p><p>Oniro Platform for IoT & Edge enables the interconnectivity of devices and machinery from different vendors as well. It allows new business propositions that, unlike today, are not necessarily cloud-dependant, among other business and product innovations.</p>
<p>The talk will describe what is Oniro, focusing on architectural and technical aspects, its state of the art, some relevant early results and next steps.</p>
<p>Oniro is currently in Incubation stage and initial contributions to the Eclipse Foundation from the Supporter organizations (code, infrastructure, tools, documentation, etc.) are being migrated to Eclipse. These assets are already published under Open Source licences so distribution and contributions are not just possible but welcome.</p>toscalixOniro project, the new IoT platform from Eclipse Foundation
Project landing page at this stage
Oniro Working Group Charter
Oniro Platform community Driven projects Charter
Assets being transferred to Eclipse Foundation
Source code
Documentation
Oniro chat
Oniro working group mailing list
General technical discussions mailing list
More about the speaker
First Oniro project contributed: SysOTA
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
14:4000:20L.lightningtalkslt_edge_workloadsManage workloads on disconnected far edgeEdge Computing.lightningtalk<p>Edge devices deployed out in the field pose very different operational, environmental, and business challenges from those of cloud computing. These motivate different engineering trade-offs for Kubernetes at the far edge than for cloud or near-edge scenarios.</p>
<p>In this lightning talk we will introduce an open source project called microshift and demonstrate how microshift can run and manage workloads on disconnected far edge devices by making frugal use of system resources. We will demonstrate managing edge deployments that can tolerate severe networking constraints, update/rollback securely, safely, speedily, and seamlessly, esp without disrupting workloads, and build on and integrate cleanly with edge-optimized OSes like Fedora IoT. Microshift can be used as a development tool, we provide a MicroShift image that bundles host dependencies like CRI-O and useful tools like the kubectl client, so it can run on most modern Linux distros, on OSX, and on Windows.</p>parsingh
https://github.com/redhat-et/microshift/
https://microshift.io/
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
15:0000:20L.lightningtalkslt_re_lsearchA lightning intro to re-Isearch re-Isearch, the 27 year old new kid on the search blocklightningtalk<p>Project re-isearch is a novel multimodal search and retrieval engine using mathematical models and algorithms different from the all-too-common inverted index. The design allows it to have, in practice, effectively no limits on the frequency of words, term length, number of fields or complexity of structured data and support even overlap--- where fields or structures cross other's boundaries (common examples are quotes, line/sentences, biblical verse, annotations). Its model enables a completely flexible unit of retrieval and modes of search.
Developed using a highly portable C++ subset to be RAM efficient, the engine provides also bindings to a number of other languages such as Python, Tcl, Java etc.</p><p>“Re-isearch” is a project following in the spirit of the original isearch developed back in the 1990s. Reborn in 2020 in the middle of the global Covid19 pandemic as Project re-Isearch.</p>
<p>Like the original, it is not just about textual words but pushes the envelope. re-Isearch is multi-object, multi-modal and with an unharnessed unit of retrieval.</p>
<p>Mainstream search engines are about finding any information: "a list of all documents containing a specific word or phrase”.
So search engines paradoxically return both too much information (i.e. long lists of links) and too little information (i.e. links to content, not content itself).
The re-Isearch engine is, by contrast, about exploiting document structure, both implicit (XML and other markup) and explicit (visual groupings such as paragraph), to zero in on relevant sections of documents, not just links to documents. This concept of search granularity is a radical departure from other designs. With typical text indexers one has the concept of document or record and that is the unit of index and the unit of retrieval. Instead we can have a dynamic search time unit of retrieval: user specified or heuristically determined. The structure of of documents can be exploited to identify which document elements (such as the appropriate chapter or page) to retrieve. Retrieval granularity may be on the level of sub-structures of a given document or page such as line, paragraph but may also be as part of a larger collection.</p>
<p>Like the original, it is not just about textual words but the design contains a large number of objects: numerical, range, geospatial etc. It is unique among full-text systems in that it also provides numerous object types with their own methods of search and allows these to be viewed parallel as text--- a date field (of which it will be one of the first to support some key parts of the new ISO-8601:2019 standard date semantics), for instance, can be searched as a date but also a text, searching for the words in the field.</p>Edward Zimmermann
Repro
Linkage
PDF of (updated) slide stack
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
15:2000:15L.lightningtalkslt_luoxluoxAn open-source, open-access web platform implementing international standards for the quantification of lightlightningtalk<p>Light exposure is not only important for seeing the world around us, it is also a key driver for health and well-being. The quantification of light, particularly in parameters relevant for humans, is subject to international consensus documents developed by the International Commission on Illumination (abbreviated as CIE = Commission Internationale de l’Eclairage). This includes quantities for the intensity of light exposure (e.g., illuminance, measured in lux) or indices of how well a light source renders colours (e.g., Rf). The CIE provides various spreadsheet-based tools for calculating these quantities from spectral measurements of radiant energy. Here, we present and discuss the open-source and open-access web platform luox, which was developed with researchers in mind to simplify the process of calculating relevant aspects of light exposures in experiments with human participants. We specifically focus on the challenges of translating written documents and equations into a web based platform using ES6 and ReactJS.</p>Somang Namluox_fosdem_slides
https://luox.app/
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
15:4000:20L.lightningtalkslt_aretextaretext: minimalist text editor with vim-compatible key bindingslightningtalk<p>Aretext is a terminal-based text editor with vim-compatible key bindings. Today, aretext supports nearly 100 of the most common vim commands, with more added in each release. Its minimalist design reflects the Unix philosophy: simple software that composes easily with other terminal-based tools -- compilers, formatters, tmux, and more!</p>
<p>In this lightning talk, we'll see how aretext's carefully-chosen features provide an efficient and powerful editing experience with minimal configuration.</p>Will Daly
aretext GitHub repo
aretext website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Submit feedback
10:0000:15D.adaada_introduction_roomIntroduction to the Ada DevRoomdevroom<p>Welcome to the Ada Developer Room at FOSDEM 2020, which is organized in cooperation with Ada-Europe and Ada-Belgium.</p>
<p>This year marks the first edition on which the devroom takes place on an online format. For that reason, this presentation will explain how does it work and how can the public use the systems provided by FOSDEM and interact with the speakers. We will also introduce the Ada-Europe and Ada-Belgium organisations. This small introduction also serves as a test to make sure the systems are working as expected and that any questions that may take place from the public can be answered.</p>Fernando Oleo BlancoSlides
Ada-Europe info-sheet
Ada DevRoom information and schedule sheet
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:1501:05D.adaada_introduction_beginning_experiencedIntroduction to Ada for Beginning and Experienced Programmersdevroom<p>An overview of the main features of the Ada language, with special emphasis on those features that make it especially attractive for free software development.</p>
<p>Ada is a feature-rich language, but what really makes Ada stand-out is that the features are nicely integrated towards serving the goals of software engineering. If you prefer to spend your time on designing elegant solutions rather than on low-level debugging, if you think that software should not fail, if you like to build programs from readily available components that you can trust, you should really consider Ada</p>Jean-Pierre RosenIntroduction to Ada for Beginning and Experienced Programmers
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:2000:25D.adaada_looks_good_gameAda Looks Good, Now Program a Game Without Knowing Anythingdevroom<p>In 2020 I started live streaming the development of a turn-based strategy game. At that time I had little idea about Ada, programming or game development (nothing has changed about that to this day). But by September 2020 it had taken the early form of a Civilization clone. After more than a year of development, it has become almost a real game with its own features. And now I'm going to talk a little bit about some experiences and weirdnesses with game development in Ada</p>Stefan Hild
My Civilization like game on GitHub
My test rpg game on GitHub
I stream the development of my game on YouTube.
I also stream the development of my game on Twitch.
Good tutorial to learn Ada.
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:4500:35D.adaada_numerics_modelThe Ada Numerics Modeldevroom<p>The requirements for Ada numerics were to provide portable arithmetics without unacceptable performance cost. This talk shows how this was achieved by interval arithmetics without requiring a particular implementation model, like IEEE arithmetics.</p>Jean-Pierre RosenThe Ada Numerics Model
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:2000:30D.ada2022_alire_update2022 Alire Updatedevroom<p>At FOSDEM 2020 we presented the first version of Alire, the package manager for the Ada Open Source ecosystem. Two years later, the tools and its ecosystem have evolved, in some instances based on the feedback received at FOSDEM. So we want to give you an update on the new features and improvements, including:</p>
<ul>
<li>Pin system: intended to help with the development and use of WIP crates.</li>
<li>Crate configuration: that enables static code generation before compilation.</li>
<li>Toolchains: that enable easy installation of [cross-]compiler and builder versions.</li>
<li>Auto GPR with: for automatic “with”ing of dependencies.</li>
<li>Etc.</li>
</ul>
<p>We will also have a look at the ecosystem of crates available in the Alire community index.</p>Fabien ChouteauAlejandro R. Mosteo
Alire website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:5000:25D.adaada_sweetadaSweetAdaA Lightweight Development Framework for the Implementation of Ada-based Software Systemsdevroom<p>SweetAda is a lightweight development framework whose purpose is the implementation of Ada-based software systems.</p><p>Welcome to SweetAda.</p>
<p>SweetAda is a lightweight development framework whose purpose is the implementation of Ada-based software systems.</p>
<p>The code produced by SweetAda is able to run on a wide range of machines, from ARM® embedded boards up to x86-64-class machines, as well as MIPS® machines and Virtex®/Spartan® PowerPC®/MicroBlaze® FPGAs. It could theoretically run even on System/390® IBM® mainframes (indeed it runs on the Hercules emulator). SweetAda is not an operating system, however it includes a set of both low- and high-level primitives and kernel services, like memory management, PCI bus handling, FAT mass-storage handling, which could be used as building blocks in the construction of complex software-controlled devices.</p>
<p>SweetAda has some distinctive characteristics, like:
- is ROMable
- uses a ZFP run-time
- has no dependencies; neither external libraries nor underlying code are needed</p>
<p>SweetAda has a complete toolchain (assembler, linker, Ada compiler and debugger), and optionally you could even use a machine emulator, which can execute the final output code inside a virtual target. In order to use SweetAda, a decent POSIX® environment with a Bash shell and GNU Make are required. For a Linux® workstation this is quite standard, while for a Windows® machine you can download and install either MSYS2 (preferred) or Cygwin®. Anyway, SweetAda toolchains for Windows have an integrated Make suited for a Windows CLI. Being completely makefile- and script- driven, SweetAda is completely configurable and has many hooks which allow an easy integration in a GUI environment such as, e.g., Eclipse, KDE Kate or Visual Studio Code. Insight debugger is also available.</p>
<p>SweetAda comes with high-quality GNU toolchains based on modern official FSF Binutils/GCC/GDB releases, unpatched and compiled with strictly controlled options. The emulators are mainly based on the latest QEMU™ official release, augmented with the IOEMU physical I/O system, which allows software code to interact with a visual environment.</p>
<p>To make SweetAda generic and, at the same time, reliable, it is regularly tested against an heterogeneous set of machines which are able to successfully execute the system code, e.g.:
- PC-style PIIX3/PIIX4 motherboards (ROM-boot)
- DECstation 5000/133 MIPS R3000 (ROM-boot)
- Memec FX12 Virtex-4 PPC405 (JTAG-boot)
- DigiNS7520 board ARM7TDMI (JTAG-boot)
- Terasic DE10-Lite Nios®II softcore (JTAG-boot)
- MVME1600-011 PPC603 VME board (JTAG-boot)
- Force SPARC®/CPU-3CE VME board (ROM-boot)
- M5235BCC ColdFire development board (ROM-boot)
- SPARCstation™ 5 (ROM-boot)
- Spartan 3E MicroBlaze softcore (JTAG-boot)
- Raspberry Pi™ 3 ARMv8 (microSD-boot)</p>
<p>The SweetAda software code is compiled by a build machinery which enforces a very high severity level. Usefulness, simplicity and expandability rather than extreme or obscure optimizations are the key features behind the project. Nevertheless, SweetAda grants the possibility of employ appropriate customizations, down to machine code level, to satisfy specific needs.</p>
<p>SweetAda is in a state of steady growth. BSPs, device drivers, a TLSF memory allocator, TCP/IP basic functionalities, as well as low-level CAN primitives are under heavy development. More target machines and additional feautures/modules such as intrinsic floating point support and expanded SFP runtimes are scheduled in future releases, as well as language tools and system utilities, like ASIS.</p>
<p>Please note that the platform-specific code included in SweetAda is given as an example. The emphasis of SweetAda is not about operating system design, but rather on exploiting the Ada language everywhere.</p>
<p>SweetAda is distributed under the terms of the MIT license.</p>Gabriele GaleottiSweetAda slides
Homepage
SweetAda repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:1500:30D.adaada_2022_json_likeUse (and Abuse?) of Ada 2022 Features in Designing a JSON-like Data Structuredevroom<p>Ada 2022 is around the corner with many goodies in the form of new features and featurettes. Arguably small syntax sugar additions combine for the programmer's comfort, like for example user-defined literals and container aggregates, that allow natural initialization of user-defined containers with the same expressions used for basic arrays since the beginnings of Ada. In this talk, I discuss how these features allow the initialization of a container data type for heterogeneous values (a-la JSON) without the need of crutch functions (like the usual "+"). Such an structure could be used for compiled-in definitions but, more ambitiously, a relatively simple parser for a strict subset of Ada could leverage this data structure for natural-looking (to the Ada programmer) configuration files. Such configuration files could be useful for tools that are strictly Ada-oriented, written by and for Ada programmers.</p>Alejandro R. MosteoSlides for the presentation
GitHub repo of the project
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:4500:25D.adaada_adawebpackGetting Started with AdaWebPackdevroom<p>Have been tired from JavaScript in Web development?
Do you want to write both client and server sides in Ada?
Are you looking for modern user interface for you application?
Try to use AdaWebPack and run your Ada code in the web browser!</p>
<p>The presentation introduces AdaWebPack - Ada compiler to
WebAssembly, customized Run-Time library and Web API
binding. It explains the overall architecture of the pack
and includes a short get started demo.</p>Max ReznikSlides
Repository
Introductory blog post
Run Ada on Android blog post
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:1000:30D.adaada_adaguiOverview of Ada GUIdevroom<p>This presentation will introduce the participants to Ada GUI, an Ada-oriented GUI, its philosophy and use, and differences from typical GUI frameworks.</p><p>This presentation will introduce the participants to Ada GUI, an Ada-oriented GUI, its philosophy and use, and differences from typical GUI frameworks. Several examples will be presented and some aspects of how the concepts presented are implemented will be discussed.</p>
<p>Outline:</p>
<p> I. Introduction
II. Traditional GUI Frameworks
III. Ada GUI philosophy and concepts
IV. Examples
V. Implementation
VI. Summary</p>Jeffrey CarterAda-GUI Slides
Github Ada-GUI repo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4501:05D.adaada_sparknaclSPARKNaCl: A Verified, Fast Re-implementation of TweetNaCldevroom<p>SPARKNaCl is a new, verified and fast reefrence implementation of the NaCl API, based on the TweetNaCl distribution. It has a fully automated, complete and sound proof of type-safety and several key correctness properties. In addition, the code is fast - out-performing TweetNaCl on an Ed25519 Sign operation by a factor of 3 at all optimization levels. This talk will cover how "Proof Driven Optimization" can result in code that is both correct and fast on bare-metal embedded targets.</p><p>TweetNaCl is a compact reference implementation of the NaCl API. It was initially
constructed to show that an entire crypto library could fit into "100 tweets", but has
since been re-used in some critical applications, such as the WireGuard VPN.
There are no comments in the code at all, and all assurance rests on a single brief
academic paper, and the formidable reputation of the authors.</p>
<p>Can we do better? Can we produce a reference implementation which is amenable to
automatic verification and yet is competitive with TweetNaCl in terms of performance and code
size?</p>
<p>This talk presents SPARKNaCl - a complete re-implementation of
TweetNaCl in SPARK, which comes with a fully automated proof of type-safety,
memory-safety and a number of key correctness properties.
Having established a solid foundation, we went on to compare the performance and code size of
SPARKNaCl against the original C implementation. Various transformations and optimizations
have been applied that result in SPARKNaCl out-performing TweetNaCl
on a bare-metal 32-bit RISC-V machine for a single Ed25519 "Sign" operation,
while retaining automation and completeness of the proof. Furthermore, SPARKNaCl is freely available under the 3-clause BSD licence.</p>
<p>This talk will present an overview of the results from both the
proof work and performance analysis of SPARKNaCl.</p>Roderick ChapmanSPARKNaCl Talk Slides
SPARKNaCl on GitHub
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:5000:35D.adaada_outsiders_guideThe Outsider's Guide to AdaLessons from Learning Ada in 2021devroom<p>Ada can be difficult to approach due to using a different vernacular to most other languages, and also having many unfamiliar structures and ways of doing things.</p>
<p>This is an overview of the Ada language by someone who is new to the language, for programmers from other languages, kept as neutral and objective as possible. See how syntax falls into four categories and the language allows you to opt into features. Learn how Ada fits together at a high level, with an emphasis on the ways Ada differs, using code samples from open source Ada projects.</p><p>About a year ago, I still thought Ada looked like COBOL. Since then, I've spent a long time trying to understand the language as a whole, since it's different from many others that I've used. This talk isn't to sell you on the language, but instead to provide a general overview of how the language works.</p>
<p>This will complement Jean-Pierre Rosen's "Introduction to Ada for Beginning and Experienced Programmers" talk. If you haven't watched his talk yet, I recommend you do so after this one. If you have watched his talk, this should provide a different perspective to help you understand Ada better.</p>Paul JarrettOutsider's Guide to Ada Slides
https://pyjarrett.github.io/programming-with-ada/
https://learn.adacore.com/
https://en.wikibooks.org/wiki/Ada_Programming
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:2500:40D.adaada_proving_gnat_light_runtimeProving the Correctness of GNAT Light Runtime Librarydevroom<p>As a programming language, Ada offers a number of features that require runtime support, e.g. exception propagation or concurrency (tasks, protected objects). The GNAT compiler implements this support in its runtime library, which comes in a number of different flavors, with more or less capability. The GNAT light runtime library is a version of the runtime library targeted at embedded platforms and certification, with an Operating System or without it (baremetal). It contains around 180 units focused mostly on I/O, numerics, text manipulation, memory operations.</p>
<p>Variants of the GNAT light runtime library have been certified for use at the highest levels of criticality in several industrial domains: avionics (DO-178), space (ECSS-E-ST40C), railway (EN 50128), automotive (ISO-26262). Details vary across certification regimes, but the common approach to certification used today is based on written requirements traced to corresponding tests, supported by test coverage analysis. Despite this strict certification process, some bugs were found in the past in the code. An ongoing project at AdaCore is applying formal proof with SPARK to the light runtime units, in order to prove their correctness: that the code is free of runtime errors, and that it satisfies its functional specifications.</p>
<p>So far, 30 units (out of 180) have been proved, and a few bugs fixed along the way (including a security vulnerability). In this talk, I will describe the approach followed, what was achieved, and what we expect to achieve.</p>Yannick MoyProving the Light Runtime
Project to build baremetal GNAT runtimes
GCC (including GNAT) source repository
GNAT and SPARK community download
SPARK User’s Guide
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0500:25D.adaada_build_managerImplementing a Build Manager in Adadevroom<p>Having used Jenkins with more than 30 projects during 8 years,
it was time to switch to another build manager.
Written in Ada, Porion is a new build manager intended to replace
Jenkins by providing more security, safety and performance.</p>
<p>The presentation describes the complexity of designing a build
manager. It highlights some security issues that apply to
a build manager and its implementation. It explains the overall
architecture that was chosen and the reason of the choice.
Finally it presents the Ada generation tools that have been
used in this project.</p>Stephane CarrezImplementing a Build Manager in Ada
Porion sources on Gitlab
Porion live server
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:3000:25D.adaada_python_and_juliaExporting Ada Software to Python and JuliaApplying GPRbuild to make shared object filesdevroom<p>The objective is to demonstrate the making of Ada software
available to Python and Julia programmers using GPRbuild.
GPRbuild is the project manager of the GNAT toolchain.
This talk will first present a self-contained small example
to illustrate the making of shared object files from Ada software,
so the software can be used in Python and Julia.
The second part of the talk concerns the application to PHCpack,
a free and open source software package to solve polynomial systems
by homotopy continuation methods, written mainly in Ada, and
available at github at https://github.com/janverschelde/PHCpack.</p>Jan Verschelde
PHCpack repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:5500:05D.adaada_closingClosing of the Ada DevRoomdevroom<p>Thank you for participating in this year's Ada devroom!</p>
<p>After this short closing event, a room will be open for anybody to join and just talk about anything.</p>
<p>We hope you enjoyed this years edition. Should you have any feedback on how it went, do not hesitate to submit it to the organisers!</p>
<p>Cheers,
The Ada FOSDEM team.</p>Dirk CraeynestFernando Oleo Blanco
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:15D.bsdwelcome_to_the_bsd_devroomWelcome to the BSD devroomdevroom<p>speech</p><p>speech</p>Rodrigo Osorio
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:2000:35D.bsdfirmware_updates_for_opnsense_and_pfsenseFirmware updates for OPNsense and pfSense with fwupd/LVFSSecure firmware for routers with the BSD based operating systemsdevroom<p>This presentation will describe the results of the proof of concept work that takes into consideration integration of firmware update framework - fwupd/LVFS for OPNsense and pfSense. It will explain the challenges connected with the implementation of firmware update systems for BSD-based firewall and routing software. It will show basic concepts connected to the fwupd and LVFS.</p><p>The security of the whole system is not determined only by the software it runs, but also by the firmware. Firmware is a piece of software inseparable from the hardware. It is responsible for proper hardware initialization as well as its security features. That means that the safety of the machine strongly depends on the mitigations of vulnerabilities provided by firmware (like microcode updates, bug/exploit fixes). For these particular reasons, the firmware should be kept up-to-date.</p>
<p>Routers are highly popular attack vectors, therefore they must be appropriately secured. pfSense and OPNsense are well known secure firewall and routing software, but they do not have any firmware update methods. Therefore to secure hardware initialization of the routers, in this presentation we will present proof of concept work that takes into consideration integration of firmware update framework - fwupd/LVFS.</p>
<p>Nowadays, this is one of the most popular firmware update software. fwupd is a daemon that manages firmware updates of each of your hardware components that have some kind of firmware. What is more fwupd is open source, which makes it more trustworthy than proprietary applications delivered by hardware vendors designed for (only) their devices.</p>Norbert Kamiński
fwupd GitHub repository
LVFS web service
fwupd documentation
OPNsense webpage
pfSense webpage
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:30D.containerscontainer_boot2containerBoot2container: An initramfs for reproducible infrastructuresWho needs host OSes for containers anyway?devroom<p>Fed up with managing your host OS for your docker environment? Try booting your containers directly from a light-weight initramfs! Flash a USB pendrive with the kernel and initramfs, or netboot it locally or from the internet, configure it from the kernel command line. Bonus: It also supports syncing volumes with S3-compatible cloud storages, making provisioning and back-ups a breeze!</p><p>Containers have been an effective way to share reproducible environments for services, CI pipelines, or even user applications.</p>
<p>In the high availability world, orchestration can then be used to run multiple instances of the same service. However, if your goal is to run these containers on your local machines, you would first need to provision them with an operating system capable of connecting to the internet, and then downloading, extracting, and running the containers. This operating system would then need to be kept up to date across all your machines which is error-prone and can lead to subtle differences in the run environment which may impact your services.</p>
<p>In order to lower this maintenance cost and improve the reproducibility of the run environment, it would be best if we could drop this Operating System and directly boot the containers you want to run. With newer versions of podman, it is even painless to run systemd as the entrypoint, so why not create an initramfs that would perform the simple duty of connecting to the internet, and download a "root" container which can be shared between all the machines? If the size could be kept reasonable, both the kernel and initramfs could then be downloaded at boot time via iPXE either locally via PXE or from the internet.</p>
<p>This is with this line of reasoning that we started working on a new project called boot2container which would receive its configuration via the kernel command line and construct a pipeline of containers. Additionally, we added support for volumes, optionally synced with any S3-compatible cloud storages.</p>
<p>This project was then used in a bare-metal CI, both for the test machines and the gateways connecting them to the outside world. There, boot2container helps to provide the much-needed reproducibility of the test environment while also making it extremely easy to replicate this infrastructure in multiple locations to maximize availability.</p>Martin RoukalaSlides
Boot2container
Story about the creation of boot2container
How to netboot your machines from a local network or the internet
Setting up a desktop PC for testing:
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3500:30D.containerscontainer_debuggingDebugging in containersUsing containers to facilitate debugging by end usersdevroom<p>A user reports a bug. Its hardware/kernel/data specific. Is it fixed already? How do we get a debug container to the user to use and get meaningful results back?</p><p>MariaDB did this with quay.io/mariadb-foundation/mariadb-devel as the continuously released, in progress latest version of release series. Preview features are also provided here.</p>
<p>Also created are quay.io/mariadb-foundation/mariadb-debug containers that include debuginfo packages. The mariadb-debug containers needed to include a range of tools and instructions to make it easy for the users and the developers to bridge their divide for an enhanced bug fixing process.</p>
<p>Containers can also be used to transport a userspace workload to kernel developers to assist improving/fixing kernel features.</p>
<p>For users wanting to help with bug reporting, or for other communities wanting to replicate the concept, a number of really simple things can help this process along significantly.</p>Daniel Black
Tricky Problems? MariaDB debug container
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:1000:20D.containerscontainer_devfileDevfile file formatContainerized development environment specificationdevroom<p>Red Hat, AWS and JetBrains are working on the Devfile specification. A file format to define container-based development environments. Software development acceleration is the ultimate goal.</p><p>Infrastructure as code. Network as code. Everything as a code. It looks like everything can be defined as code, versioned and tested automatically. Everything except development environments. The industry hasn’t come up with a file format to define software environments yet.</p>
<p>But It is in the best interest of developers that the industry starts to settle on an unified environment configuration format. Currently, vendors of remote cloud-based development environment solutions such as GitHub Codespaces and GitPod are building proprietary solutions for hosting and operating development environments using a similar, yet slightly different environment configuration file (devcontainer.json and gitpod.yaml).</p>
<p>A big challenge for the Devfile is to ensure that it doesn’t become “yet another configuration file”. Instead, we want it to relate and align with any neighboring configuration files used for CI/CD runs or infrastructure provisioning. A Devfile should be able to give developers an inner dev loop that is in sync with the outer dev loop, yet still provide enough flexibility for developers to experiment and have personal tooling preferences.</p>Mario Loriedo
Devfile Project Webpage
OpenAPI Specification GitHub repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3500:30D.containerscontainer_distributed_storageDistributed Storage in the Clouddevroom<p>Cloud brought many innovations - one of them is inexpensive, scalable and sometimes secure Distributed Storage options. In this presentation we will talk about distributed storage Options modern clouds offers ranging from elastic block devices and object storage to sophisticated transactional data stores. We will discuss the benefits and new architecture options such distibuted storage systems enable as well as the challenges pitfals you need to be aware about.</p>Peter Zaitsev
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:1000:10D.containerscontainer_k8s_webassemblyExtending Kubernetes with WebAssemblyMaking Kubernetes Dynamic Admission Control even more Dynamic Using WebAssemblydevroom<p>WebAssembly is a portable binary instruction format that was originally created with the browser as the main execution runtime. However, during the last years, WebAssembly is finding its way also outside of the browser because of the many benefits it provides like portability, security and flexibility. We think WebAssembly can be leveraged by Kubernetes in many ways. This short session will focus on how WebAssembly can be used to write Kubernetes admission policies. We will show an open source Kubernetes Dynamic admission controller that uses policies written in WebAssembly to validate and mutate the requests made against the Kubernetes API server.</p>Rafael Fernández LópezSlides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:2500:30D.containerscontainer_k8s_disappearFreedom Means That Kubernetes Needs To Disappeardevroom<p>We can enable developers to manage everything yet still be in complete control of the aspects they care about.</p><p>We are all moving towards service-based operations and self-sufficient teams. We are all trying to enable developers to be more autonomous. However, it is unrealistic to expect everyone to become an expert on everything, from infrastructure to Kubernetes and everything in between. So, we cannot shift left due to lack of expertise, but we also cannot continue being reactive to the needs of others. The only option left is to simplify services or even remove direct access to infrastructure and Kubernetes.</p>
<p>We might be able to accomplish those goals through Argo CD or Flux (GitOps), Crossplane (universal control plane), and KubeVela (OAM). By combining those, we can enable developers to manage everything yet still be in complete control of the aspects they care about. GitOps allows us to establish Git as the only point of interaction with the system. Crossplane Composites enable us to simplify developer experience when managing infrastructure. Finally, the Open Application Model (OAM) with KubeVela allows us to define applications instead of Kubernetes resources. If we combine those three types of tools and processes, we can enable operations to define the services used by developers to manage infrastructure and applications. We can do all that without anyone even knowing that there is Kubernetes behind all that.</p>
<p>For everyone to use Kubernetes, it needs to disappear.</p>Viktor Farcic
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:30D.containerscontainer_harborHarbor - The Container RegistryHarbor 101devroom<p><strong>Harbor - The Container Registry 101</strong>
Harbor is an open source registry that secures artefacts with policies and role-based access control, ensures images are scanned and free from vulnerabilities, and signs images as trusted.
Harbor, a CNCF Graduated project, delivers compliance, performance, and interoperability to help you consistently and securely manage artefacts across cloud native compute platforms like Kubernetes and Docker.</p>
<p><strong> In this talk: </strong><br/>
* Quick project overview and status, what added value can have to your infrastructure.
* Demo install and few use-cases
* Community walk through - how community works, what meetings we have, how you can participate, what projects we are working on
* Getting engaged with the project! - getting stared with contributing - code, docs - 10 min</p>
<h1><strong>Come and joins us!</strong></h1><p>Orlin Vasilev aka Orlin - Community Manager for Contour - past life: +15 years of SysAdmin/Infra Engineer/Cloud Engineer/DevOps/SRE</p>Orlin VasilevSlides
Project home page
Project GitHub
Demo and Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3500:30D.containerscontainer_flatcar_autoupdateHow I learned to stop worrying and love Flatcar’s auto-updatedevroom<p>Running an up-to-date and fully patched cluster is a key element in operational security. But keeping your cluster’s OS up to date can be challenging for ops/maintenance, sometimes imposing significant effort just to keep the lights on while at the same time keep the workloads functioning. This talk will briefly introduce the atomic OS update mechanism in Flatcar Container Linux - a minimal Linux distribution optimised for running containers at scale - before elaborating on common patterns we recommend and employ to make updating nodes and clusters a low-risk and automatable endeavor.</p><p>This talk will discuss common patterns for patching and updating nodes and clusters, focusing on container operating systems with atomic update capabilities – and Flatcar Container Linux in particular. To some extend these patterns and learnings can also be applied to traditional OSes. Target audience are operators and engineers interested in keeping their clusters’ OS updated while running workloads at scale.</p>
<p>The advent and widespread use of containers to deploy applications helped a great deal to separate application workloads from the underlying operating system. This separation can be leveraged to make OS updates safe and unintrusive.</p>
<p>For the purposes of this talk we will focus on Flatcar Container Linux, though settings, patterns, and components can be generalised to also apply to other distributions. After w brief overview of Flatcar’s update process, we’ll discuss the importance of testing (with a brief excursion into canaries) and dive into a number of common cluster scenarios and how to keep one’s OS fresh in the respective environment.</p>Thilo Fromm
Flatcar Container Linux project on Github
Nebraska update server project on Github
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:1000:30D.containerscontainer_k8gb_balancerA cloud native Kubernetes Global BalancerIntroduction to k8gbdevroom<p>k8gb is DNS based global service load balancer that can interconnect multiple Kubernetes clusters into one resilient system. Join this talk to learn how it can handle a failover scenario when pods in one cluster go down and second cluster in different location saves the situation.</p><p>k8gb is an open-source Kubernetes operator that is deployed in each participating cluster. It is comprised of CoreDNS, ExternalDNS and the k8gb controller itself. Using ExternalDNS it can create a zone delegation on a common cloud DNS server like Route53 or Infoblox so that the embedded CoreDNS servers work as an authoritative DNS. K8gb controller makes sure these CoreDNS servers are updated accordingly based on the readiness probes of the application.</p>
<p>In this sense this solution is unique, because it is using Kubernetes native tools with customisable probes and battle tested DNS protocol instead of HTTP pings or other similar approaches where single point of failure might be a problem. In k8gb architecture all k8s clusters are equal and there is no SPoF except the common edge DNS server.</p>
<p>Recently the project has been accepted to the CNCF sandbox.</p>Jiří Kremser
webpage
code
high-lvl explanation using Manim
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4500:20D.containerscontainer_ipfs_imageP2P Container Image Distribution on IPFS With Containerd and Nerdctldevroom<p>nerdctl is a Docker-compatible CLI of containerd, developed as a subproject of containerd. nerdctl recently added support of P2P image distribution on IPFS. This enables to share container images among hosts without hosting or relying on the registry.</p>
<p>In this session, Kohei, one of the maintainers of nerdctl, will introduce IPFS-based P2P image distribution with containerd and nerdctl. This session will also show the combination of IPFS-based distribution with the existing image distribution techniques, focusing on lazy pulling (eStargz) and image encryption (OCIcrypt). The status of integration work with other tools including Kubernetes will also be shared.</p>Kohei Tokunagaslides
nerdctl
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:1000:20D.containerscontainer_redpakRedpak: Ultra light weight container for embedded systemsdevroom<p>Choosen by the French Government in the Big Cyber Challenge, Redpak is the new embedded container engine to run programs under heavy ressource constraints within microseconds.</p><p>While Linux “name space” provides a good foundation for embedded application isolation, popular containers mostly focus on Linux fragmentation, and none of the Docker, LXC, Snap or Flatpak focus on embedded systems constrains. Everyone understands that installing a software component on millions of cars, on a submarine or in a train is very different from installing a new application on a desktop or a phone. Embedded containers target managed systems that, on one hand require less composability than phone or desktop, on the other hand require a stronger control on package qualification and resources usage.</p>
<p>This talk presents how to run containerise programs under heavy resource constrains. It exposes how containers permit to operate multiple flavors of a given toolkit and finally exposes how containers simplify configuration management, security and hierarchical model, SOTA.</p>Clément BENIER
red-pak github
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3500:30D.containerscontainer_k8s_mysqlSolutions for running MySQL in Kubernetesdevroom<p>There are several good MySQL-based Operators in the open-source world, made by Oracle, Presslabs, PlanetScale(Vitess), and Percona. Each of them has its unique architecture inside to guaranty minimal downtime and data loss during failover.
Orchestration of MySQL on Kubernetes is a no way a straightforward process. Let's do deep dive into how Operators are working inside and what solution should be used in each particular case.</p>Mykola Marzhan
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:1000:20D.containerscontainer_userlan_tcpipUserland TCP/IP stack for external container connectivitydevroom<p>CodeReady Containers runs an OpenShift cluster on a laptop or workstation using virtualization.</p>
<p>Recent developments have made it possible to skip running the OpenShift runtime, and to use it for the sole purpose of running containers with podman when using macOS or Windows. This talk will focus on one specific part of CodeReady Containers, which is its userland TCP/IP stack based on gVisor. We will explore why this was needed, and how the container -> VM -> host connectivity is achieved.</p>Christophe FergeauSlides for the presentation
CodeReady Containers source repository
gvisor-tap-vsock source repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3500:10D.containerscontainer_fat_layersWhat made your container fat?Visualizing the size of Container Layersdevroom<p>Keeping the size of of your containers small is more important than ever, especially when distributing container images for others to build upon them. However, once multiple container layers get involved, even the data collection aspect becomes challenging and most existing tools do not primarily focus on visualization.</p>
<p>We will present a simple tool that we created for this: it is a simple web app that produces sunburst graphs for each layer of a container image and can thereby aid you in finding out where the size bloat comes from. Go and grab it from https://github.com/dcermak/container-layer-sizes and give it a spin yourself!</p>Dan Čermák
Source code repository
Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:5000:20D.containerscontainer_notebook_imagesAn easy and elegant way to manage and build your notebook imagesdevroom<p>Crane is a minimalist open-source image builder, and aims to provide a dead-simple image building experience for your notebook with a beautiful user interface, which could work with your existing ML pipeline and increase productivity for data scientists.</p>
<p>Instead of building an end-to-end solution for MLOps, Crane focuses on one piece of the puzzle and provides a friendly solution to a problem we encountered daily. Building a container, dealing with registries, and keeping track of what you’ve already built, are tedious tasks, but they’re things you need to do often. Let’s build a tool for it and save time for data scientists, then they can focus on the real problems to solve.</p>
<p>When it comes to building a container image, there are lots of gaps to fill. In this talk, we’re going to share why we build Crane, how could it help data scientists, why we choose to build Crane with the community, and what’s the possibilities Crane has to boost productivity for data scientists.</p>Kuan Lin HuangCrane
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:1500:30D.containerscontainer_singularity_apptainerFrom Singularity to Apptainerdevroom<p>Singularity, an open-source containerization platform built for high performance computing use cases and utilized by HPC sites all over the world, was recently moved into the Linux Foundation and renamed to "Apptainer." This presentation will focus on exploring what this change means for Apptainer, including what the current state of the project is, what the priorities for the project in the near-term are, and what the roadmap for the future of the project looks like.</p>Forrest Burt
Apptainer Project Site
Apptainer GitHub
Apptainer Roadmap
Community Announcement
Linux Foundation Press Release
Community Meeting Contact Info
Apptainer Release Candidate
Alternative Community Meeting Contact Info
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:35D.cicdinteroperability_in_the_continuous_delivery_space_with_cdeventsInteroperability in the Continuous Delivery space with CDEventsdevroom<p>Continuous Delivery is all about getting your software released, and as software/system complexity continues to increase, so does the need to have many different tools, services and even people involved in building, verifying, deploying and monitoring your software. So, how do we make all these tools and services work together to complement each other without creating a massive spider web of explicit interconnectedness? CDEvents!</p>
<p>In this talk, Andrea Frittoli and Erik Sternerson will present the CDEvents project and protocol from the Continuous Delivery Foundation, describe how events in continuous delivery will help build a strong toolbox of CI/CD tools that can be used for delivery of different types of software projects, and showcase some integrations done by the community.</p><p>The number of tools and services supporting CI/CD keeps growing. Each tool has its own strengths and enables its own unique use cases. It is not one-size-fits-all, every project needs to be able to select CI/CD tools according to their own needs.</p>
<p>What CDEvents aims to do is to give these tools and services an obvious way to become interoperable through a shared event/messaging protocol, so that true end-to-end continuous delivery pipelines and processes with associated monitoring, metrics and insights can be built without the need for “manually gluing things together”.</p>
<p>Having the freedom to add and replace CI/CD tools and services without needing to worry about compatibility and interoperability issues will help projects keep their delivery processes optimized, and will also enable a new kind of visualization and monitoring tools that can inspect and understand all actors in the CI/CD system without explicitly knowing any of them.</p>Andrea FrittoliErik SternersonInteroperability in the Continuous Delivery space with CDEvents
CDEvents GitHub project
Events in CI/CD SIG
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3500:25D.cicdhow_to_improve_the_developer_experience_in_heptapod_gitlabHow to improve the developer experience in Heptapod/GitLabAutomate the dull works to focus on developmentdevroom<p>Logilab has been using heptapod, a GitLab fork with mercurial support, for 2 years now.
We are maintaining the open source software CubicWeb and its components called cubes.
Thus, the code is split in dozens of repositories, depending on one another.
Over the years, it has become hard to maintain code quality and good practices in the whole codebase.</p>
<p>In this talk, we will present the tools that helped us.
Some of them are mercurial specific, but most could be used in GitLab.</p>
<ul>
<li>Create Merge Request automatically across repositories based on some rules, such as deprecation warnings.</li>
<li>Pick a reviewer for Merge requests based on the developers' preferences</li>
<li>Making sure to commit, tag, update the changelog, publish to PyPi when releasing a new version</li>
<li>Mutualize GitLab CI configurations with templates</li>
<li>Host docker images of your project on the forge</li>
<li>Have up-to-date static websites, documentation or web applications</li>
</ul>
<p>Each use case can be solved easily, but combining them is what truly makes developer life easier.</p>Noé GaumontHow to improve the developer experience in Heptapod/GitLab
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:35D.cicddecentralized_devops_with_unfurlDecentralized DevOps with Unfurldevroom<p>Unfurl is a brand-new open-source command line tool for managing your DevOps infrastructure without depending on any server infrastructure. Unfurl lets you easily track configuration, secrets, software and code dependencies, and deployment history all in git. It integrates with the DevOps tools you are already using -- like Terraform, Ansible, and Helm -- allowing you to encapsulate your DevOps processes into reusable building blocks and describe your cloud infrastructure in simple, application-centric terms.</p>
<p>The ultimate goal of Unfurl is enable anyone to clone, fork, and deploy live cloud services as easily as cloning and building code from git -- so that we can cooperatively build and run cloud services the same way we build open source software.</p>Adam SouzisSlides for Talk
Unfurl Website
Github repo
onecommons.org
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3500:25D.cicdgit_credentials_binding_for_sh_bat_and_powershellGit Credentials binding for sh, bat, and powershellSupport Git authentication in Jenkins Pipelinedevroom<p>Jenkins a self-contained, open-source automation server used in automation of all sorts of tasks related to building, testing, and delivering or deploying software. With high extensibility through plugins to provide much of the user-needed functionality. One such plugin is the Git plugin which deals with git operations for Jenkins project but lacked authenticated access to git repositories for Pipeline users. The Git Credentials binding project provides an out of the box solution by supporting git authentication over HTTPS and SSH protocols, so join in the session to learn more about it's implementation and outcome.</p>Harshit ChopraGit Credentials binding for sh, bat, and powershell
Git username / password credentials binding blog
Git Credentials Binding for sh, bat, powershell
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:45D.cicdcicd_using_jenkins_and_nomadCICD using jenkins and Nomaddevroom<p>Things like Infrastructure as Code, Service Discovery and Config Management can and have helped us to quickly build and rebuild infrastructure but we haven't nearly spend enough time to train our self to review, monitor and respond to outages. Does our platform degrade in a graceful way or what does a high cpu load really mean? What can we learn from level 1 outages to be able to run our platforms more reliably.</p>
<p>This talk will focus on on setting up a CICD pipeline using Jenkins. We start by configuring Jenkins to use our Nomad platform to autoscale job runners. After which we ll look at using the newly released nomad-pack tool to convert, deploy and test and existing nomad job.</p>Bram VogelaarCICD using Jenkins Nomad and Vault
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:4500:25D.cicdleveraging_windows_containers_in_your_kubernetes_native_ci_cd_pipelinesLeveraging Windows Containers in Your Kubernetes-Native CI/CD Pipelinesdevroom<p>How can you leverage Kubernetes-native CI/CD solutions for your Windows applications? What's needed to create Windows container images in your pipelines? This hands-on talk will get developers and operators started with Windows container support of Argo Workflows and Tekton. You will learn how you can use these solutions to build and test your Windows applications and create Windows container images for them. All work presented will be shared with you.</p><p>Windows applications make up a large portion of the services running in many enterprises. Thanks to Windows containers and the work of SIG-Windows, you can manage and orchestrate them on Kubernetes, similar to Linux-based containers.</p>
<p>If you are developing Windows applications, you may want to use Kubernetes-native CI/CD solutions to build, test and package your application as you do with your Linux applications. To enable such scenarios, Argo Workflows and Tekton recently added support for Windows containers.</p>Markus Lippert
Tekton Windows Docs
Argo Workflows Windows Docs
Slides and session resources
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3500:25D.cicdmassive_unikernel_matrices_with_unikraft_concourse_and_moreMassive Unikernel Matrices with Unikraft, Concourse and MoreHow Unikraft builds many peremutations of unique unikernelsdevroom<p>Unikernels are bespoke, single-address space, lightweight Virtual Machines which do one thing and one thing only: fully facilitate the runtime of one application. Unikernels represent a compile-time specialization strategy and leverage the joining of user and kernel space via a library Operating System in order to achieve this, offering as a result incredible runtime performance whilst increasing application security via isolated hardware virtualization. As Unikraft, an open-source unikernel SDK and library Opeating System toolkit, has grown over the last few years, the number of available off-the-shelf applications, interpreted languages, libraries, target hypervisors and architectures has grown significantly. In order to ensure consistency between builds, prevent bugs and performance regression, and to allow for new features, a massive effort has been undertaken to facilitate massive build permutations of specialized unikernels which target and include variations of this growing ecosystem based on new commits and Github Pull Requests. In this talk, we discuss the journey of this undertaking, highlight and demo several CI/CD solutions in this space with Concourse, and how we are continuing to expand the ecosystem to automatically and intelligently build unique additional performance-oriented permutations from configurations available in the underlying libOS.</p>Alexander Jung
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:35D.cicdmasking_known_issues_across_six_kernel_ci_systemsMasking known issues across six kernel CI systemsdevroom<p>Aggregating testing results from multiple kernel CI systems is hard, but masking known issues in them is next level. That's what Kernel CI's KCIDB is trying to do. Learn more about the problem, our ideas, and suggest your solutions on this session!</p><p>The Linux Foundation's Kernel CI project has been aggregating CI system results in KCIDB for a while. We have six systems contributing and have started sending result notifications to maintainers.</p>
<p>However, as a kernel maintainer or developer, the last thing you want is someone else's issue attributed to your patches. With 10K build and 100K test results daily, it's a given that tested revisions are often red with known issues, despite submitting CI systems masking them independently.</p>
<p>We're trying to come up with a way to aggregate known issues, similarly to test results, and to prevent misattribution of problems to innocent changes for results coming from all CI systems, equally. We want to give maintainers, test authors, and CI system operators the ability to submit their issue descriptions, manually or automatically, so that we can deal with them, and all can save their time and effort.</p>
<p>The contributed information could be a human-readable description, plus a regular expression to look for in a log or output file, or it could be something more complicated. We could be generating those automatically ourselves, and/or rely on human contributions. We plan to process and apply those ourselves, but perhaps it's a good idea to let submitters do that, and let us know the results instead. We don't know yet.</p>
<p>Come, see how different kernel CI systems already deal with the problem, how we plan to unify that, and let us know what you think!</p>Nikolai KondrashovSlides
Linux Foundation's Kernel CI project
Aggregated results in KCIDB dashboard
Main KCIDB source repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3500:25D.cicdmulti_master_scaling_for_mariadb_buildbotMulti-master scaling for MariaDB Buildbotdevroom<p>Continuous Integration is a very important part in order to ensure a high quality software product. In order to be able to test the MariaDB server across multiple platforms, operating systems and configurations, the MariaDB Foundation has developed a continuous integration framework based on Buildbot. This talk will focus on describing the design decisions in order to be able to scale and test the MariaDB server on over 100 different configurations. We use a multi-master setup and combine Docker latent workers with LibVirt workers and classical Buildbot workers in order to achieve this.</p><p>In order to ensure that MariaDB runs smoothly, it needs to be tested on multiple platforms and configurations. In order to ensure this, the MariaDB Foundation has developed a new continuous integration framework, based on Buildbot, that thoroughly tests the server across multiple platforms, operating systems and configurations.</p>
<p>In order to achieve this, we use a mixture of builders, varying from Docker latent workers, to LibVirt workers but also the classical “always on” buildbot workers. For easier management, we have a separate master process that deals with each type of worker. In this talk, I will talk about our design decisions and some limitations that stand behind these. For example, the testing phase of the MariaDB server generates a very high amount of logs. Since Buildbot can deal with around 10k lines of logs per second, having multiple builds that run at the same time may saturate the master process. In order to deal with this, we use a master locking mechanism together with a multi-master setup.</p>Vlad Bogolin
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:35D.cicdopentelemetry_and_ci_cdOpenTelemetry and CI/CDdevroom<p>If you would like to know more about measuring your CI/CD for troubleshooting or improving your CI/CD services this talk can be interesting for you.</p><p>CI/CD at large scale, even at small scale, is hard and might affect your team’s mood, frustration with slow builds, or flakiness in your CI/CD.
By using OpenTelemetry for each execution, test, deployment that happens in your CI/CD you can answer questions that are not possible at a glance.
The main aim is to reduce the time that developers spend checking log errors, pointing them to the root cause of errors. Filter real verifications errors related to the CI/CD service and third-party systems. Debugging an error is as easy as going to the trace related where all the context information is accessible.
In this talk, we want to show you what we have done and learned in the last year since we switched to using distributed traces for the CI/CD and implemented some integrations that help us to leverage our CI/CD.</p>Victor MartinezIvan Fernandez Calvo
OpenTelemetry Documentation
CI/CD Observability
Ansible - create distributed traces with OpenTelemetry
Python - pytest-otel plugin for reporting APM traces of tests executed
Who Observes the Watchers? An Observability Journey
Observing the CI/CD in Practice
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3500:25D.cicdporion_a_new_build_managerPorion a new Build Managerdevroom<p>Yes, another build manager to address security, safety and
performance issues after having used Jenkins with more
than 30 projects during 8 years.</p>
<p>The talk presents the Porion build manager with its command line
interface but also with its responsive web UI. I will also
explain some security and safety aspects provided by this
new build manager.</p>Stephane CarrezPorion a new Build Manager
Porion sources on Gitlab
Porion live server
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3500:25D.cicdusing_kubernetes_api_to_manage_everythingUsing Kubernetes API To Manage EverythingExplore the principles behind the universal control plane implemented through the open-source project Crossplane.devroom<p>Wouldn't it be beneficial if we had a single API and a universal control plane responsible for managing applications, infrastructure, services, and everything else, no matter whether we are in the public cloud and on-prem?</p><p>If we had to define the most significant benefit Kubernetes provides, that would not be the ability to run containers, fault-tolerance, or immutability. The main benefit is its API. It is well defined, versatile, and extensible. It might be the main culprit behind the "explosion" of the ecosystem created around Kubernetes.</p>
<p>Can we take Kubernetes API to the next level? Can we use it to manage not only the workloads running inside Kubernetes clusters but for everything else? Wouldn't it be beneficial if we had a single API and a universal control plane responsible for managing applications, infrastructure, services, and everything else, no matter whether we are in the public cloud and on-prem?</p>
<p>In this hands-on session, we'll explore the principles behind the universal control plane implemented through the open-source project Crossplane.</p>Viktor Farcic
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:35D.cicdunifying_infrastructure_and_application_delivery_using_keptnUnifying Infrastructure and Application Delivery Using Keptn devroom<p>Did you ever promote your application from a staging to production and forgot some important infrastructure changes? Do you wonder how to automate chaos tests into your delivery pipeline to validate your services can deal with failing nodes? When we at Dynatrace started our microservice journey, we had to deal with precisely those and many more questions. Using Keptn as a control plane for application delivery, we can orchestrate all those tasks to avoid any bad deployments while providing a unified deployment experience for our developers. In this talk, I will bring some light into combined infrastructure and application deployment using Keptn to show you how those seemingly separated activities can be unified.</p>Thomas Schuetz
A blog post related to the content of this talk
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:15D.minimalisticdeclarativeminimalisticDeclarative and Minimalistic ComputingEntry talkdevroom<p>Welcome to the Declarative and Minimalistic Computing Devroom.</p>
<p>In this year's virtual conference we will honour the late Professor John McCarthy as the founder of AI and the inventor of LISP. McCarthy with his work pioneered artificial intelligence, developed the Lisp programming language family and kickstarted our modern computing world. Lisp is one of the two oldest computer languages in use today.</p>Manolis RagkousisOliver Propst
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:1500:30D.minimalisticrakumetaprogrammingThe manifold joys of metaprogrammingIn Raku and elsewhere... devroom<p>Metaprogramming is a technique that allows the creation of data and control structures during runtime. This gives adaptiveness and expressiveness to languages, allowing the creation of data structures with complex behavior, and adapted to the environment or to the data used. In this talk we will talk about general metaprogramming techniques, with examples in Raku and other modern languages.</p>Juan Julián Merelo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:4500:30D.minimalisticriscvadventuresA year of RISC-V adventures: embracing chaos in your software journeyHow I started from zero and ended up porting a JIT compilation library and assembling files by handdevroom<p>In this presentation I share my 1-year journey with RISC-V and how I started from nearly zero and I ended up porting Guile's JIT library to RISC-V and starting the RISC-V port of Stage0.
This journey is full of uncertainties and chaos but that's what finally made this happen. During this talk we'll discuss how embracing chaos can lead to great change and how we can become the source of positive chaos in people around us.</p><p><em>This talk is not fully technical but many technical aspects are discussed as they are fundamental in the journey: instruction sets, assembly, debuggers, hexadecimal... and all sorts of low level wizardry will be mentioned and explained. I'll try to make my best to make all of it accessible to anyone with no previous knowledge about them, though.</em></p>Ekaitz ZarragaA year of RISC-V
My blog
A RISC-V book I recommend
Stage0 project
Guile's JIT library migration
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:1500:30D.minimalisticdesigndslHow to design powerful DSLs for usersDecisions, decisions, decisions...devroom<p>How can we use DSLs in our applications as a replacement for databases? CSVs? configuration files?</p><p>In this talk I will explain how we designed and developed several DSLs for usage in the Nyxt browser. I will also explain how we designed our DSLs and what our constraints were. What were we trying to achieve with our DSLs? How can you too leverage DSLs in your applications to empower your users?</p>John Mercouris
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:4500:30D.minimalisticguixdeclareDeclare All Your NeedsManaging computing environment declaratively using GNU Guixdevroom<p>Functional programming becomes more popular and widespread, it allows to make simplier, and more robust software, which is easier to maintain. Similar patterns and approaches are applicable for deploying or distributing software, managing infrastructures or even personal computers.</p>
<p>We will discuss how to treat your computing environment as a simple software project written in functional language and how to manage operating system, services, configurations, user software, dotfiles in a declarative and reproducible fashion.</p><p>We will be using a quite minimalistic language called Guile Scheme (Lisp dialect), GNU Guix package manager built on top of that language and Guix System, Guix Home and rde projects, which will help to bring all things together and create a fully-working operating system with all needed software available and configured in a few minutes.</p>Andrew Tropin
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:1500:25D.minimalisticgnuguixciGNU Guix behind the sceneContinuous integration for the GNU Guix projectdevroom<p>GNU Guix is a transactional package manager and an advanced distribution based
on a minimalistic language: GNU Guile.</p>
<p>While users can choose to build everything from sources, the project is providing binary
substitutes. Building and distributing those substitutes is a real challenge, involving
a 20 GiB database and more than thirty machines.</p>
<p>In this talk I will present the architecture of the continuous integration
system, how it is maintained, the current limitations as well as the possible
improvements.</p><p>The GNU Guix build farm is composed of more than thirty machines. Most of them
are hosted in the same datacenter in Berlin, while others, hosted by
individuals are made available through a Wireguard tunnel. Those machines are
managed using the GNU Guix deploy mecanism, which will be presented.</p>
<p>The software managing the evaluation and the distributed builds on those
machines, Cuirass is also written in GNU Guile. This tool that is obviously
relying on GNU Guix will be introduced.</p>Mathieu OthaceheSlides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:4000:25D.minimalisticlangdesertDesigning a programming language for the desertdevroom<p>You need a lot of hubris to design your own programming language. As a result, new languages are often engineered (or "over-engineered") for that glorious future where millions of programmers spend their lives working with the language, and a small army is maintaining the compiler and related tools. But how would you design a language that assumes this bountiful future will never arrive? A language that, even in the best of circumstances, will always be obscure and secondary? Futhark is a programming language designed for a very specific domain: high-level, deterministic, data-parallel number crunching. It explicitly disavows general-purpose use, and it is absolutely not possible to write full applications in it. Thus, even if Futhark somehow managed to become the largest conceivable success and completely dominate its domain, that would not translate into very many programmers. And even then, it would at best be a secondary or third language for most of its users.</p>
<p>In this talk I will talk about how such a perspective has affected the design of the Futhark language and its tools. To a first approximation, this is just the "principle of least surprise" applied to every part of the language and ecosystem. As a niche language, Futhark's novelty budget is quite limited, and its users will not have the inclination to learn about syntactical subtleties, elaborate package managers or build systems. At the same time, it's trying to innovate in a challenging domain, so some things definitely will have to be novel. Balancing these concerns has been interesting, and my experiences are perhaps even useful for designers of languages, tools, or systems in similar situations.</p>Troels HenriksenThe slides
Futhark website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0500:30D.minimalistictinyschemeFrom tinyscheme to tr7how to loose time for glorydevroom<p>I'm going to present a scheme R7RS compliant interpreter only named "TR7", a far successor of tinyscheme, meant to be included in other programs for scripting.</p><p>As I was searching a tiny scripting language for some project, I found tinyscheme. It is really venerable but old.</p>
<p>So I searched for a modern replacement in the existing one, browsing the very long list at http://community.schemewiki.org/?scheme-faq-standards#implementations.</p>
<p>And you what? I have not found one matching my criteria: r7rs compatible, only C, light, easy to add in C programs.</p>
<p>So I started to modify tiny-scheme to fit my requirement.</p>
<p>Before work, at noon rest, late in the evening, ... A long effort still not achieved.</p>
<p>I'd like to get a short time slot to present it.</p>José Bollofrom tinyscheme to tr7
sources
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3500:30D.minimalisticfuzionlangFuzion Language UpdateThe marathon run 🏃🏃♀️ 🏃♂️ from a language prototype to a full implementation and toolchain.devroom<p>Fuzion is a modern general purpose programming language that unifies concepts
found in structured, functional and object-oriented programming languages into
the concept of a Fuzion feature. It combines a powerful syntax and safety
features based on the design-by-contract principle with a simple intermediate
representation that enables powerful optimizing compilers and static analysis
tools to verify correctness aspects.</p>
<p>This talk will present the advances in the Fuzion languages since its first
public announcement at FOSDEM 2021. This includes a simplified and cleaned-up
syntax, improved type inference, its safety features, foreign language
interface to Java and an overview of the existing and planned toolchain.</p>
<p>Fuzion is not only about the language itself, but just as well about the
intermediate representation that is the basis for static analysis, optimization
and back-ends. The talk will give an overview of the format of intermediate code.</p><h1>Introduction</h1>
<p>Fuzion is a modern general purpose programming language that unifies concepts
found in structured, functional and object-oriented programming languages into
the concept of a Fuzion feature. It combines a powerful syntax and safety
features based on the design-by-contract principle with a simple intermediate
representation that enables powerful optimizing compilers and static analysis
tools to verify correctness aspects.</p>
<p>Fuzion was influenced by many other languages including Java, Python, Eiffel,
Rust, Go, Lua, Kotlin, C#, F#, Nim, Julia, Clojure, C/C++, and many more. The
goal of Fuzion is to define a language that has the expressive power present in
these languages and allow high-performance implementations and powerful analysis
tools. Furthermore, Fuzion addresses requirements for safety-critical
applications by adding support for contracts that enable formal specification and
enable detailed control over run-time checks.</p>
<p>Many current programming language are getting more and more overloaded with new
concepts and syntax to solve particular development or performance issues.
Languages like Java/C# provide classes, interfaces, methods, packages, anonymous
inner classes, local variables, fields, closures, etc. And these languages are
currently further extended by the introductions of records/structs, value types,
etc. The possibility of nesting these different concepts results in
complexity for the developer and the tools (compilers, VMs) that process and
execute the code.</p>
<p>For example, the possibility to access a local variable as part of the closure
of a lambda expression may result in the compiler allocating heap space to hold
the contents of that local variable. Hence, the developer has lost control over
the allocation decisions made by the compiler.</p>
<p>In Fuzion, the concepts of classes, interfaces, methods, packages, fields and
local variables are unified in the concept of a Fuzion feature. The decision
where to allocate the memory associated with a feature (on the heap, the stack
or in a register) is left to the compiler just as well as the decision if
dynamic type information is needed. The developer is left with the single
concept of a feature, the language implementation takes care of all the rest.</p>
<h1>Fuzion Feature Declarations</h1>
<p>A Fuzion feature has a name, similar to the name of a class or a function.
The main operation that can be performed on a feature is a feature call. The
constituents of a feature declaration are as follows:</p>
<h2>Formal Arguments</h2>
<p>Features may have a list of formal arguments, which are themselves features
implemented as fields. On a call to a feature with formal arguments, actual
arguments have to be provided to the call, unless the list of formal arguments
is empty.</p>
<h2>Feature Result</h2>
<p>The result of a feature call is an instance of the feature. Alternatively, a
feature may declare a different result type, then it must return a value of that
type on a call.</p>
<h2>Closures</h2>
<p>Features are nested, i.e., every feature is declared within the context of an
outer feature. The only exception is the universe, which is the outermost
feature in Fuzion. A feature can access features declared in its
outer feature or, recursively, any outer feature of these outer features. This
means, a feature declaration also defines a closure of the feature and its
context.</p>
<p>When calling a feature <em>f1</em> declared as an inner feature of <em>f2</em>, the call must
include a target value which is the result of a call to <em>f2</em>, e.g., <em>f2.f1</em>.</p>
<h2>Generics</h2>
<p>Features may have generic type parameters. E.g. a feature declaration may leave
the actual type used within that feature open and to be defined by the user of
the feature.</p>
<p>The list of generic type parameters may be open, i.e., the number of actual
generic type parameters is not fixed at feature declaration. This turns out to
be useful in the declaration of choice types and functions as explained below.</p>
<h2>Inheritance</h2>
<p>Fuzion features can inherit from one or several other features. When inheriting
from an existing features, all inner features of the parent automatically become
inner features of the heir feature. It is possible to redefine inherited
features. In particular, when inheriting from a feature with abstract inner
features, one can implement the inherited abstract features.</p>
<p>A redefinition of an inherited feature may implement an inherited feature as a
routine or as a field. An inherited feature that is implemented as a field,
however, cannot be redefined as something else since fields might be mutable.</p>
<p>Inheritance may result in conflicts. An example would be two features with the
same name that are inherited from two different parents. In this case, the heir
must resolve the conflict either by redefining the inherited features and
providing a new implementation or by renaming the inherited features resulting
in two inner features in the heir feature.</p>
<p>Inheritance and redefinition in Fuzion does not require dynamic binding. By
default, the types defined by features are value types and no run-time overhead
for dynamic binding is imposed by inheritance.</p>
<h2>A Contract</h2>
<p>A feature may declare a contract that specifies what the features does and under
which conditions the feature may be called.</p>
<h2>An implementation</h2>
<p>Features must have one of the following implementations</p>
<ul>
<li><p>a routine is a feature implementation with code that is executed on a call</p></li>
<li><p>a field is a memory slot that stores a value and whose contents are returned on a call</p></li>
<li><p>an abstract feature has no implementation and cannot be called directly, but can be implemented by heir features</p></li>
<li><p>an intrinsic feature is a low-level feature implemented by the compiler or
run-time system, e.g., the infix + operator to add two 32-bit integer values
may be an intrinsic operation.</p></li>
</ul>
<p>A feature implemented as a routine can contain inner feature declarations.</p>
<h1>Feature examples</h1>
<p>Here is an example that declares a feature <em>point</em> that functions similar to a
struct or record in other languages:</p>
<pre><code>point(x, y i32) is # empty
p1 := point 3 4
say "p1.x is {p1.x}" # will print "p1.x is 3"
say "p1.y is {p1.y}" # will print "p1.y is 4"
</code></pre>
<p>The next example shows a feature <em>base</em> that provides an inner feature <em>plus</em>
that adds its argument to the value passed to the enclosing base:</p>
<pre><code>base(v i32) is
plus(w i32) => v + w
b1 := base 30
b2 := base 100
say (b1.plus 23) # will print "53"
say (b2.plus 23) # will print "123"
</code></pre>
<h1>Fuzion Syntax Evolution</h1>
<p>Fuzion provides two main syntax alternatives, a classic once using semicolons,
braces and parentheses and a modern one using white-space and indentation. Both
are equivalent, there should be tools between these two representations of
source code. The following explains the main ideas how white-space is used
instead of special symbols</p>
<h2>Separating Statements</h2>
<h3>Flat line feeds instead of semicolons</h3>
<p>The classic way to separate statements is by using a semicolon as in</p>
<pre><code>stmt1; stmt2; stmt3
</code></pre>
<p>or</p>
<pre><code>stmt1;
stmt2;
stmt3;
</code></pre>
<p>The Fuzion grammar knows a symbol called 'flat line feed', which is a line feed
with the next line starting with white space up to the previous line's
indentation level. A 'flat line feed' is considered equivalent to a semicolon,
so the sequence of three statements above can be written without semicolons as
follows:</p>
<pre><code>stmt1
stmt2
stmt3
</code></pre>
<h3>Indenting line feeds to form blocks</h3>
<p>Code blocks in Fuzion can be build using braces similar to many other languages</p>
<pre><code>if cond { stmnt1 } else { stmnt2 }
if cond {
stmnt1
} else {
stmnt2
}
if cond
{
stmnt1
}
else
{
stmnt2
}
</code></pre>
<p>An 'indenting line feed' in Fuzion is a line feed with the next line starting at
a higher indentation level. The parser treats an 'indenting line feed' like a
left brace '{'. Correspondingly, a linefeed that reduces the indentation level
back to the original level is treated like a right brace '}'. The example above
is hence equivalent to</p>
<pre><code>if cond
stmnt1
else
stmnt2
</code></pre>
<p>Finally, an optional keyword 'then' may as well be used to separate an
expression like the condition in an 'if' from a following expression without the
need of braces:</p>
<pre><code>if cond then stmnt1 else stmnt2
</code></pre>
<h2>Separating calls, arguments and operator expressions</h2>
<h3>calls without parentheses</h3>
<p>Fuzion calls do not need parentheses or commas to separate the called feature
and its arguments, i.e., a call</p>
<pre><code>f(a, b, c)
</code></pre>
<p>can be written as</p>
<pre><code>f a b c
</code></pre>
<p>Parameters are then separated by white space. Line breaks, either flat or
indenting as explained above, end the argument list.</p>
<p>Parentheses may be needed for nesting calls with arguments, e.g., the code</p>
<pre><code>f (g x y) (h z)
</code></pre>
<p>is equivalent to</p>
<pre><code>f(g(x, y), h(z))
</code></pre>
<p>If placed in parentheses, operator expressions may extend over several lines
using an indenting line feed followed by additional flat line feeds, e.g.,</p>
<pre><code>f (1 + 2 + 3 + 4 +
5 + 6 + 7 + 8 +
9 + 10 + 11 + 12)
</code></pre>
<p>Tuples of values such as '(a, b)' syntactically look like argument lists. A list
of expressions enclosed in parentheses is treated as an argument list only if it
immediately follows the name of a called feature. The code</p>
<pre><code>f(a, b)
</code></pre>
<p>hence calls 'f' with two arguments 'a' and 'b'. In case there is white space
after the name of the called feature as in</p>
<pre><code>f (a, b)
</code></pre>
<p>the expression in parentheses is passed as an argument, so, in this case 'f'
will be called with a single argument: the tuple '(a, b)'.</p>
<h3>Array indexing vs. array creation</h3>
<p>The square brackets '[' and ’]’ are used in Fuzion for two purposes: A
pre-initialized array of fixed size can be created using an expression like
'[x, y, z]', while an array can be indexed using 'a[i]'. Again, white space can
be used to distinguish these two cases:</p>
<pre><code>a[i]
</code></pre>
<p>read an element from an array while</p>
<pre><code>f [x, y, z]
</code></pre>
<p>create array with elements x, y and z and passes it as an argument in a call to
'f'.</p>
<h3>Operator expressions</h3>
<p>Operators are parsed as prefix- or postfix operators if the are not separated by
white space from their target operand, but they are separated by white space on
the other side. This means that the call</p>
<pre><code>f -x
</code></pre>
<p>is equivalent to</p>
<pre><code>f (-x)
</code></pre>
<p>while</p>
<pre><code>f - x
f-x
</code></pre>
<p>both subtract 'x' from 'f'. Furthermore,</p>
<pre><code>f- x
</code></pre>
<p>is parsed as</p>
<pre><code>(f-) x
</code></pre>
<p>i.e., it calls 'postfix -' on 'f' and, assuming the result is a function, calls
this result with one argument 'x'.</p>
<p>The precedence of operators that are not separated by white space is stronger
than that of a call, so</p>
<pre><code>f a-b
</code></pre>
<p>is equivalent to</p>
<pre><code>f (a-b)
</code></pre>
<p>while the precedence of calls is higher than that of operators separated by
white space, i.e,</p>
<pre><code>f a -b
f a - b
</code></pre>
<p>are equivalent to</p>
<pre><code>f (a) (-b)
(f a) - b
</code></pre>
<p>respectively.</p>
<h2>White space vs. explicit tokens</h2>
<p>Attaching semantics to white space might appear dangerous and error-prone to
those not used to it. However, more and more languages (Python, Scala-3, Nim,
Raku, ...) make use of white-space and the experience is generally very positive,
the code is cleaner, easier to read an even easier to maintain. Compiler errors
complaining about unbalanced parentheses or braces are gone and mismatch between
indentation and semantics may no longer occur.</p>
<p>Furthermore, even languages like Java allow code to have hugely different
semantics if just a single white space is added, e.g., the Java code</p>
<pre><code>if (cc) x(); elsey();
if (cc) x(); else y();
</code></pre>
<p>changes completely by insertion of a single space character.</p>
<h1>Fuzion Type Inference</h1>
<p>Fuzion is statically typed, every expression, every field, every routine result
has a static type known at compile time. Type inference is used to avoid the
need to specify these types explicitly in many situations, reducing the
boilerplate code while keeping the safety of a statically types language.</p>
<p>Type inference in Fuzion occurs at explicit or implicit assignments. An explicit
assignment is a field declaration with an initial value such as</p>
<pre><code>v := expr
</code></pre>
<p>while an implicit assignment occurs, e.g., when a routine returns the value of
its last expression as its result</p>
<pre><code>sum (x, y u32) =>
x + y
</code></pre>
<p>or when an argument is passed to a function</p>
<pre><code>sum 1.234e6 567890
</code></pre>
<p>Type inference occurs in two directions: From the value to the field that the
value is assigned to and from the type of the assigned field to the value.
Field declarations using ':=' without an explicit type use the type inferred
from the value, the same holds for routines defined using '=>'.</p>
<p>On the other hand, the type of expressions such as lambdas or numeric literals are
inferred from what they are assigned to.</p>
<h2>Type inference from expressions to feature result type</h2>
<p>When declaring either a field using ':=' or a routine using '=>', the result
type is inferred from the expression that is assigned or returned, respectively:</p>
<pre><code>v := 123 # type i32, default type for integer literal
v := "hello" # type string
highNibble(b u8) => b >> 4 # type u8
origin => point 0 0 # type point
</code></pre>
<h2>Type inference from expressions to type arguments</h2>
<p>Type arguments are inferred from actual arguments as shown by the following
example: Imagine a generic routine <em>square</em> as follows</p>
<pre><code>square<T: integer<T>> (a T) => a * a
</code></pre>
<p>This could be called using explicit type arguments as in</p>
<pre><code>say (square<i32> 23)
</code></pre>
<p>or the type can be inferred from the argument type</p>
<pre><code>say (square 23)
</code></pre>
<p>As a consequence, type arguments can be omitted in many cases.</p>
<h2>Type inference for lambdas</h2>
<p>In Fuzion, inline functions (lambdas) are defined using '->' with the input
variables on the left and the expression on the right. Types for a lambda are
implicitly taken from the target the lambda is assigned to. E.g., the following
example takes a function argument</p>
<pre><code>print(s string, f (string, i32) -> string) =>
say (f s 3)
print(f (i32, i32) -> i32) =>
say (f 10 3)
print "Alice" (s,i -> s * i) # lambda type is (string, i32) -> string
print "Bob" (s,i -> s + i)
print (s,i -> s * i) # lambda type is (i32, i32) -> i32
print (s,i -> s + i)
</code></pre>
<h2>Type inference for numeric constants</h2>
<p>Numeric constants that are assigned to a given type inherit that type. There is
no immediate distinction between plain numeric literals like '123' or ones using
a fractional parts and exponents such as '-0.1234E4'. The target type determines
the type of the constant.</p>
<pre><code>v1 u32 := 123456
v2 i8 := -128
v3 i16 := 32000
v4 u64 := 1000000000000000000
v5 i64 := -1000000000000000000
v6 u16 := 4711
v7 f32 := 123456
v8 f64 := 123.456E6
v9 f64 := 1.0E3
</code></pre>
<p>In case the constant is too large for the target
type, or it has a fractional part not representable by the type, a compile-time
error occurs:</p>
<pre><code>v1 u32 := -123456 # error: negative value assigned to unsigned
v2 i32 := 3000000000 # error: value too large
v3 i8 := 128 # error: value too large
v4 u16 := 65536 # error: value too large
v5 f32 := 123.456E39 # error: overflow
v7 f64 := 123.456E309 # error: overflow
v8 f32 := 7E-46 # error: underflow
</code></pre>
<h1>Fuzion Intermediate Files</h1>
<p>Fuzion uses intermediate files during different stages of compilation: module
files that contain library code, application files for whole applications and
Fuzion intermediate representation files that serve as input to the back ends.</p>
<p>Fuzion uses a simple intermediate code to represent pre-compiled modules and
whole applications. This intermediate code serves as the input for static
analysis tools, optimizers and for different back-ends that produce executable
applications. The goal in the design of the intermediate file format was high
performance and simplicity for tools using this code.</p>
<p>The intermediate code is a binary format containing features and types in a way
that may be mapped to memory and used directly, so overhead of parsing this
format into an in-memory representation is avoided. In particular, if only parts
of a pre-compiled module are used by an application, there is no need to read and
unpack parts of the module intermediate representation that are not used.</p>
<p>For features containing code, a very simple stack-based format is used. There
are currently only ten different instructions:</p>
<ul>
<li>Unit -- produce a value of unit type</li>
<li>Current -- produce the current instance as a value</li>
<li>Constant -- produce a constant value</li>
<li>Assign -- perform an assignment to a field</li>
<li>Call -- perform a call to a given feature</li>
<li>Tag -- convert a value into a tagged value of a choice type</li>
<li>Match -- match a choice type</li>
<li>Box -- convert a value type to a ref type</li>
<li>Unbox -- extract the value from a ref type</li>
<li>Pop -- drop the top element from the stack</li>
</ul>
<p>The intermediate code uses indices to refer to features and types within
intermediate files. This means that lookup is very efficient, but it also means
that a change in a library module requires recompilation of all dependent
modules. Any incompatibilities would be found at compile time instead of
resulting in something like Java's 'IncompatibleClassChangeError' at run-time.</p>
<h1>Foreign language interface</h1>
<p>Fuzion provides a tool 'fzjava' that takes a Java module file and converts it
into Fuzion features. In the spirit of Fuzion, Java's packages, classes,
interfaces, methods, constructors, static methods and fields are all converted
into Fuzion features. Java methods that may throw an exception are
converted into features resulting in a choice type that is either the exception
type or the result type of that method.</p>
<p>A few intrinsic functions in the Java interpreter back-end use Java's reflection
API to access the corresponding Java code.</p>
<p>Here is a example how Java code can be used from Fuzion:</p>
<pre><code>javaString := java.lang.String.new "Hello Java 🌍!" # create Java string, type Java.java.lang.String
javaBytes := javaString.getBytes "UTF8" # get its UTF8 bytes, type is fuzion.java.Array<i8>
match javaBytes
err error => say "got an error: $err"
bytes fuzion.java.Array =>
say "string has {bytes.count} bytes: $bytes"
javaString2 := java.lang.String.new bytes 6 bytes.count-6 # create Java string from bytes subset,
say "Hello "+javaString2 # append Java string to Fuzion string and print it
</code></pre>
<h1>C back-end</h1>
<p>Fuzion now has a back-end that produces C source code to be compiled to machine
code using clang and LLVM.</p>
<h1>Fuzion safety</h1>
<p>A main goal of Fuzion is to provide a development tool for safety-critical
applications. Fuzion brings a number of features that address safety issues at
different levels:</p>
<ul>
<li><p>Language features</p>
<ul>
<li>static typing</li>
<li>language simplicity</li>
<li>pre- and post-conditions for design by contract</li>
<li>no wrap-around for standard operations +, -, *, /, etc.</li>
<li>mutability restricted to local contexts</li>
</ul>
</li>
<li><p>Run-time features</p>
<ul>
<li>dynamic checks where static checks are not sufficient</li>
<li>(real-time) garbage collection</li>
</ul>
</li>
<li><p>Environment features</p>
<ul>
<li>static linking to specific library versions</li>
<li>static analysis tools</li>
<li>no dynamic code loading</li>
<li>simple intermediate representation, simpler tools</li>
</ul>
</li>
</ul>
<h1>Conclusion and Next Steps</h1>
<p>The Fuzion language definition and implementation are far from stable, but are
getting closer to become useful. Big improvements come from the ability to
pre-compile modules and from the foreign language interface for Java, which
makes a giant code base accessible for Fuzion applications to build on.</p>
<p>Additionally, new projects such as the language server implementation for Fuzion
by Michael Lill help by integrating Fuzion support in popular IDEs and editors.</p>
<p>Main points that are missing right now are</p>
<ul>
<li>a powerful standard library</li>
<li>additional library modules for all sorts of application needs</li>
<li>low-level foreign language interface for C</li>
<li>actual implementations of static analyzers and optimizers</li>
<li>highly optimizing back-ends</li>
<li>garbage collection for the C back-end</li>
<li>documentation, tutorials</li>
<li>enthusiastic contributors and users!</li>
</ul>
<p>Please feel free to contact me in case you want to use Fuzion or want to help
making it a success!</p>Fridtjof SiebertFuzion Language Update
Fuzion portal website
Fuzion Sources on GitHub
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0500:30D.minimalisticadventuresindataflowAdventures in Dataflowdevroom<p>"How can we democratize computing?" — that is a sentiment echoed by many people, especially those of us in tech who realize what the general audience is missing out from computing devices, when they use them as passive consumers. If we think of computing devices as programmable tools for active exploration, how should they look like? What programming model should they be based on? It's fair to assume that it shouldn't look like what passes for regular programming nowadays, since that is clearly out of touch with users. Perhaps something more... declarative? ...minimalistic? So, how can we bring declarative and minimalistic computing to the masses? And... maybe we have already?</p>Hisham Muhammad
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3500:30D.minimalisticminimalsyntaxesKnowledge Management Through Minimal SyntaxesAppreciating How Terse Syntaxes Are Capable of Being Combined In Unexpected Waysdevroom<p>Presentation of the main components behind gLean - a knowledge-management application which treats problem-domains as a collection of blocks. gLeans USP is in choosing terse components which syntactically do not impede each-other - permitting collections of block to be parsed and interpreted with minimal concerns for complexity. The hope is that gLean will be able to provide YahooPipes style functionality through combining blocks of references; content; annotations; and parsing-logic.</p>
<p>The following areas are covered:</p>
<ul>
<li><p>The talk extols the virtue of the individual components (Gemini protocol's GemText; Emacs-Hyperbole's Kotl; the parser and Lisp, TXR; Jonathan McHugh's Qiuy (a 'Recursive Modelling Language')) as exemplary specialist utilities.</p></li>
<li><p>Examples for how Kotl format and GemText markdown can interoperate (to for instance turning a file into representative Kotl blocks; or export Kotl blocks into GemText)</p></li>
<li><p>The beautiful/unholy ability for TXR to read a 'raw' GemText file containing TXR syntax and for a 'compiled' GemText file to emerge (given this unintended behaviour requires no additional coding and was not designed I consider this particularly special)</p></li>
<li><p>The use of annotations leading blocks to provide logical structures for how a document or a collection of documents should be treated</p></li>
</ul>
<p>The attached slide of the talk is a Gemini compatible rendition.</p>
<p>Infact the recording is made within Emacs, rather than a Gemini compatible browser.</p>
<p>If a user has Emacs-Hyperbole installed seek areas featuring the lisp reference that starts with:
<highlight-rexexp ...</p>
<p>With the cursor on highlight press the ACTION key (usually the modifier (ALT) and the return button simultaneously).</p>
<p>This should enact the relevant colourscheme that was used for the official presentation.</p>
<p>Multiple such buttons are positioned throughout the document.</p>
<p>Enjoy....</p>Jonathan McHughOutput of compiling 'raw' GemText file with TXR content - using TXR Lisp parser'raw' Raw GemText file featuring TXR syntax which can be compiled in TXR Lisp parserSlide presentation - adapted for Gemini compatibility
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0500:40D.minimalisticlispforeveryoneLisp, but Beautiful; Lisp for Everyonedevroom<p>The old joke goes that LISP stands for "Lots of Irritating Superfluous Parentheses", but another spin could be "LISP Isn't Structurally Parenthetical". Lispers seem to come to like parentheses eventually and defend them, and newcomers with no preconceptions seem to not have problems as much as existing programmers do, but the fear of lisp in the general programming world remains strong. But is parenthetical notation really the best way to represent lisp? In this talk we explore several alternate representations and their practical use, and speculate on a future where everyone could benefit from lisp's unique properties without fear.</p>Christine Lemmer-WebberMorgan Lemmer-Webber
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:4500:40D.minimalisticspritelygoblinsSpritely Goblins comes to GuileDistributed, secure, asynchronous programmingdevroom<p><a href="https://spritelyproject.org/#goblins">Goblins</a> is the core secure distributed programming layer of <a href="https://spritelyproject.org/">Spritely</a>, a project to research and develop the future of networked communication. Goblins was originally written <a href="https://docs.racket-lang.org/goblins/index.html">on top of Racket</a>, but has recently been <a href="https://gitlab.com/spritely/guile-goblins">ported to Guile</a>. See a live demonstration of using the system in action, and learn about its history!</p>Christine Lemmer-Webber
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:2500:35D.minimalisticcommonworkflowlangConcise Common Workflow LanguageConcision and elegance in a workflow language using lispdevroom<p>Scientific workflows are readily and most easily expressed as shell scripts. However, shell scripts are notorious for being "duct tape", and are hard to adapt to different hardware and software environments. Workflow languages such as the Common Workflow Language (CWL) were developed to address this pain point. However, CWL does come at the cost of increased verbosity and reduced readability. Even seasoned scientists shy away from writing CWL, and fall back to the familiarity of shell scripts.</p>
<p>This need not be. There is no reason to inflict the behind-the-scenes complexity of workflow languages on the user. It should be possible to automatically translate (in other words, compile) a simple shell-like script into a workflow language specification. In effect, we create a new domain specific language that is almost as easy to write as a shell script, but compiles to CWL. No other language is better suited to this task of creating domain specific languages than lisp. The lisps with their homoiconicity and unique macro system empower the programmer to use ordinary code to hack the compiler itself.</p>
<p>In this talk, I will present the Concise Common Workflow Language (ccwl). The Concise Common Workflow Language (ccwl) is a concise syntax to express CWL workflows. It is a compiler that compiles a simple lispy shell-like workflow specification into a CWL workflow. It is implemented in the Scheme programming language, a minimalist dialect of lisp. I will discuss the considerations that went into the design of ccwl, and demonstrate its expressive power with illustrative examples.</p>Arun IsaacTalk slides
ccwl website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:40D.minimalisticrelationalexplorationofmccarthysambA Relational Exploration of McCarthy's 'Amb'devroom<p>We will investigate what weirdness occurs when John McCarthy's non-deterministic 'amb' operator is added to a LISP interpreter written in a relational style, in the miniKanren constraint logic programming language.</p><p>The code for this talk can be found at https://github.com/webyrd/relational-amb</p>William Byrd
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:4000:20D.minimalisticlastmilesandboxingWhy everyone needs to know some coding: last-mile sandboxingdevroom<p>We'd all like to use computers to their fullest capability. However, we'd also like to restrict the capability of computers to do things we don't intend. These constraints present a problem: how our computers should determine our intention, when the software we use is written by others. Most programming languages ignore this problem, by running untrusted programs with completely open doors. Browsers run programs with a single policy that is mostly hard-coded (no file system access) but also complex, so that it's often unclear what is protected. In this talk I'll describe my attempts to come up with a model that is both flexible and easy to understand.</p><p>This talk will:</p>
<ul>
<li>elaborate on what makes sandboxing difficult (code is data),</li>
<li>outline past approaches to sandboxing (web browsers), and</li>
<li>summarize the problems of past approaches (who watches the watchers?)</li>
</ul>
<p>It will describe a new approach that replaces the hard-coded coarse-grained protections of browsers with declarative fine-grained protections organized by the real-world effects of computers (syscalls). In outline, the approach separates untrusted software in apps from a tiny set of programmable policies. Each policy is advice that applies to a single syscall and decides whether to permit the syscall or not.</p>
<p>This approach is implemented in a fork of Lua for purely text-mode apps. The browser provides default policies, but tries to gradually empower each person over time to take ownership of the policies on their browser without any mediation from others. In the process, it hopes to educate people on some basic aspects of programming.</p>
<p>The talk will describe the new challenges posed by this approach, including:</p>
<ul>
<li>educating people to never paste in code into policies without understanding it</li>
<li>educating people on the value of minimalism in policy code (and indeed all code)</li>
<li>educating people on the need for policy code to itself be side-effect-free</li>
<li>coaching people on good and poor changes to policy code when intended uses are disallowed by policies</li>
</ul>
Kartik AgaramWhy Everyone Needs to Know Some Coding
Project repo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:30D.distributionsunify_your_distributionsUnify your distributionsHow GNU Guix can run on any of your hardwaredevroom<p>Like most developers, I'm against my will a volunteer system administrator. I
take care of my personal and professional notebooks. I also maintain a
powerful build server at home and a remote VPS hosting my blog. From times to
times I even use a single board computer to host some services.</p>
<p>A few years ago, all those machines ran different, dedicated Linux
distributions: Ubuntu, ArchLinux, Debian, Raspbian, making the maintenance a
nightmare. That was before diving into GNU Guix.</p>
<p>In this talk, I'll expose how GNU Guix, as an advanced package manager and
Linux distribution can be advantageously used on any kind of machine from
single board computers to VPS machines.</p>
<p>The declarative aspect of GNU Guix allows to have various operating system
definitions inheriting from each other while the associate tooling such as
"guix system" and "guix deploy" ease the deployment and upgrade tasks.</p>Mathieu OthaceheSlides
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:30D.distributionsoverview_of_flatcar_container_linux_test_frameworkAll's well that tests wellAn overview of Flatcar Container Linux test frameworkdevroom<p>Flatcar Container Linux is a community driven Linux OS designed to run container workloads: let's see how the community can run the tests and how the Flatcar Team schedules the test before releasing the OS.</p><p>Testing an OS, it's quite challenging: defining use-cases is required but since the OS is the base of application workloads, it's not easy to target <em>all</em> the different use-cases. Let's see in this lecture, how we define, write and run tests for Flatcar Container Linux - a community driven OS designed to run container workloads. We will cover the logic of the Kola test framework but also how they integrate in the release cycle of Flatcar. Finally, we will provide some example to run the tests locally and we hope to share some ideas with OS maintainers in order to improve in a global way the way we test Open-Source OS.</p>Mathieu Tortuyaux
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:30D.distributionsmodding_the_immutable_how_to_extend_flatcarModding the Immutable – how to extend Flatcar, an immutable image-based OSdevroom<p>Flatcar Container Linux is a fully open source, minimal-footprint, secure by default and always up-to-date Linux distribution for running containers at scale. It is shipped as an image and does not include any package management. OS binaries and libraries reside on a read-only partition. This talk will briefly introduce Flatcar’s core concepts before diving into a detailed discussion on modifying, testing, and vending your own OS images using the SDK.</p><p>This talk will discuss building, modifying, and testing Flatcar Container Linux OS images. It will introduce the innerworks of the OS image building process and will enable the audience to craft their own images. While running (release-)tests will also be briefly covered the focus is on modifying and building. Target audience are engineers and tinkerers interested in OS building and in vending immutable OS images that fit their own needs.</p>
<p>Flatcar Container Linux is a minimal Linux distribution optimised for running containers at scale. It ships OS images – both for installation and update – and lacks a package manager. Binaries in the OS partition (at “/usr”) are immutable after installation. Therefore, modifying the OS to suit one’s needs can be challenging, and deeper changes to the OS will require vending one’s own images.</p>
<p>After a brief intro to Flatcar’s Gentoo roots, build process, and SDK, this talk will dive into understanding sources and repository structure, running builds, smoke-testing custom images, and running full-blown release tests. We will include a number of pre-recorded CLI demos in the talk to aid understanding. The talk will close with an outlook of how to bring your custom images to production.</p>Thilo Fromm
Flatcar project on Github
Flatcar Linux twitter account
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3000:40D.distributionssecuring_and_hardening_a_container_hostSecuring and Hardening a container hostdevroom<p>In the age where customer data is turning out to be a new valuable resource for companies, and the increasing data breaches safeguarding the infrastructure is becoming more and more important. We the maintainers of Flatcar Container Linux, an operating system that thrives for security first will present the best practices to harden and secure your container hosts from the delivery to the different environments to ensure reliability, security and performance.</p><p>Even the most secured Kubernetes cluster can have security issues in case the underlying OS is not correctly hardened.
In this talk, we will present the best practices to harden and secure your container hosts from the delivery to the different environments to ensure reliability, security and performance. Through an actual live example, we will introduce how Flatcar Container Linux is first built around security, and uses the hardening practices. From SELinux configuration to audit logs passing by its package management - let's see how this container optimized OS distro can contribute to reduce the surface attack and mitigating threats.</p>Sayan ChowdhurySecuring and Hardening Container Host
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3001:00D.distributionshow_the_distro_needs_change_to_help_foss_on_embedded_linuxHow The Distro Needs Change to Help FOSS on Embedded Linuxdevroom<p>Distros have been the backbone of Linux for the past two decades, but with the advances made in cloud technology and infrastructure, they have started to become less relevant as a solution and product in itself. To be specific: Distros have been reduced from being the universal FOSS product that delivers a complete solution to the user, to a set of very nicely maintained “free beer” types of repos full of packages that make up application building blocks for custom stacks packaged with Docker. The good news is that distros did not fail to deliver the spirit of FOSS as badly on the desktop and server side as they have for embedded Linux.</p><p>Distros were never focused on enabling the product builder using FOSS to make great products for embedded Linux. This lack of FOSS support for embedded has caused proprietary OS Dinosaurs like Broadcom and Qualcomm to not only survive, but to this day are still the primary choice of SDKs for the majority of embedded Linux devices that leave the factory. What has gone wrong?</p>
<p>In this session, Alexander Sack will explore how FOSS has failed embedded Linux. He will also present ideas on how a Distro 2.0 can focus on being more than just a packaging repo and can ultimately help FOSS also win embedded Linux.</p>Alexander Sack
Pantavisor project website
Pantavisor project repo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3000:45D.distributionseclipse_oniro_a_production_osEclipse Oniro: A production OSFocus on your applications againdevroom<p>Imagine you're an engineer at an ODM or OEM working on a IoT product for
the smarthome - from a simple thermostat to security alarms, from set top
boxes to internet gateways.</p>
<p>Linux is a fairly obvious choice to build these product that have greater
than 128MB of RAM and storage. On resource-constrained devices, an RTOS
such as Zephyr is able to even run on devices with as little as a few
hundred KB of RAM and storage.</p>
<p>However, the kernel is a small part of the device's software stack - there
is middleware, application frameworks, security policies, key management,
OTA and multi-year maintenance that the company needs to budget into the
device's engineering support costs.</p>
<p>Viewing the Linux and RTOS ecosystems as two parts of a single product
platform allows for a coherent view of both ecosystems by developers. You
want to make sure that you can apply the same set of software
configurations and policies across both ecosystems e.g. library versions,
compatible protocol suites, security configurations, OTA mechanisms and
even a single set of IP compliance tools.</p>
<p>As an example, when you decide you want to secure all your network
communications out-of-the-box in your product platform, you need to:</p>
<ul>
<li>Find an SSL library that'll fit both footprints</li>
<li>Configure it to have a coherent set of modern ciphers compatible across
the two ecosystems</li>
<li>Get the various protocol libraries to build against the chosen SSL
library</li>
<li>Create key provisioning tools that can work across the two ecosystems</li>
<li>Perform interoperability tests</li>
</ul>
<p>Now repeat this exercise across every key component of the OS - security
policy, networking features, OTA, toolchain hardening, IP compliance tools
and you end up with a meta-project that spans and contributes to both
ecosystems.</p>
<p>We've started to build such a open product platform with opinionated
defaults that follow community best practices with Eclipse Oniro. And
this is our story about our plans for the future.</p>Amit KucheriaEclipse Oniro: A production OS - Focus on your applications again
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:1500:40D.distributionstailored_build_and_release_tools_for_linux_distro_and_forksBuild and release tools tailored to building, releasing and maintaining Linux distributions and forksdevroom<p>Maintaining a Linux distribution in a consistent and secure manner is challenging. Maintaining a one-to-one clone, can be even more challenging. Rocky Linux maintains a number of in-house tools to aid in this process and makes it as transparent and auditable as possible.</p><p>Rocky Linux is aiming to be an exact RHEL clone. When the project first started out, the landscape of tools to automate imports and orchestrate builds across package types were not widespread. First challenge to tackle was imports and patches. Srpmproc was introduced to facilitate upstream imports with consistent automated patching. Distrobuild was later introduced as a meta-orchestration layer for already existing build tools within the EL ecosystem. We're now introducing Peridot, the next generation cloud-native build and release tools for RPM distributions.</p>Mustafa Gezen
Rocky Linux website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:40D.distributionscentos_stream_stable_and_continuousCentOS Stream: stable and continuousdevroom<p>CentOS Stream was introduced in September 2019. In December 2020 it made news, raised a lot of questions and created long hand-wavy discussions and confusing arguments. During 2021 CentOS Stream 9 finally has found its place in the RHEL 9 development process. And now, in early 2022, we can take a good look at how it actually works.</p><p>This talk is focused on the development process of the CentOS Stream distribution. We are going to talk about bootstrap, package updates, continuous integration, testing and contribution.</p>
<p>We welcome distribution developers, but also users which are interested to know what's hidden under the hood of a typical enterprise-level system.</p>Aleksandra FedorovaCentOS Stream: stable and continuous
CentOS Stream is continuous delivery
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:4500:25D.distributionsdos_and_donts_when_building_yocto_based_distroDOs and DON'Ts when building a Yocto based distributionWhat we have learned in a year of building Onirodevroom<p>After approximately a year of work, Oniro - the Eclipse Foundation's embedded operating system - has been released
to the public, and is open to bigger changes like rebasing
to a newer Yocto branch and updating toolchains. Now we're
seeing - and can share - what we did well and what we will
have to do differently in the future.</p><p>After approximately a year of work, Oniro (https://oniroproject.org/) - the Eclipse
Foundation's embedded operating system - has been released
to the public, and is open to bigger changes like rebasing
to a newer Yocto branch and updating toolchains. Now we're
seeing - and can share - what we did well and what we will
have to do differently in the future.</p>
<p>We updated a number of packages from dunfell - can this be
avoided or done in a better way?
What can we do about packages that don't have an LTS policy?</p>
<p>An important goal must be to make rebasing to newer upstream
releases as quick and painless as possible - accumulating
as little technical debt as we can.</p>Bernhard RosenkränzerAndrei Gherzan
The Oniro Project
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:1500:45D.distributionschimera_linuxChimera LinuxA BSD/LLVM distro from scratchdevroom<p>Chimera Linux is a new distribution I started in the middle of 2021, after years of thinking and vague planning. After getting a bunch of real world maintenance experience managing the POWER architecture support in Void Linux, I have decided to make those ideas a reality - a distribution with the Linux kernel, but FreeBSD userland, LLVM/Clang system toolchain and core runtime, musl libc and a fair amount of custom tooling. Right now, it is a bootable system targeting a variety of CPU architectures (aarch64, ppc64le, riscv64, x86_64...) that is easily bootstrappable (and capable of building itself), testable, lightweight and fast (but still in heavy development). It uses the apk package manager (of Alpine Linux) and a completely custom source packages collection and build system written in Python, allowing for sandboxed, fully unprivileged package builds.</p><p>The distribution follows a rolling release model for its simplicity and ease of release management, but without insisting on bleeding edge versions. The build tooling is capable of bringing the system up from scratch using any other musl-based distribution as a base (and without requiring any GNU components beyond currently their make implementation) - the system rebuilds itself 3 times for that purpose. Link-time optimization (specifically Clang's thin LTO) is enabled for nearly all packages. The lightweight, dependency-based, supervising 'dinit' service manager takes care of boot, and Wayland is the preferred display server. The system aims to be general purpose, not niche; a primary goal is breaking up some status quos in the Linux ecosystem and provide a truly viable alternative. It should be community driven, open, welcoming and unorthodox, without any pointless dogmatism.</p>
<p>In the talk I will cover my journey towards having a system capable of boot, what it took to bring up a distribution from scratch and how I dealt with various obstacles, and what I learned on the way, as well as the future of the project. Some basic Linux administration knowledge will be required from the audience, but any somewhat tech-savvy person should be able to follow.</p>Daniel KolesaChimera Linux
Website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:45D.distributionscollaboration_instead_of_competitionCollaboration instead of CompetitionThe Linux Distributions Working Group at the Open Mainframe Projectdevroom<p>Default community distributions are running in the same issues for special architectures. Every Linux distribution has got mostly separate maintainers and hardware distributors are handling these communities really often disconnected. That has been identified also for the architecture s390x. Therefore, openSUSE, Fedora and Debian have established together with IBM a Linux Distributions Working Group for a better collaboration together and with the goal to receive better support. In this presentation you should receive an overview about a good collaboration between Linux distributions and what you can achieve together with such a Working Group.</p>Sarah Julia KrieschCollaboration instead of Competition
Linux Distributions Working Group
Open Mainframe Project
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:30D.embeddedeclipse_mqttEclipse Amlen: Messaging for IoT/Web/MobileMQTT Messaging for Fun & Profitdevroom<p>Eclipse Amlen is a newly available message broker that focuses on publish/subscribe messaging for IoT/Web/Mobile use-cases.
It has full support for the widely used MQTTv5 and MQTTv3.1.1 protocols.
It is easy to set up and manage and has support for high availability pairs and clusters of brokers.</p><p>Amlen is based on an initial contribution of IBM's WIoTP Message Gateway message broker (formerly called MessageSight) so
it has a mature codebase with a long pedigree of use in large deployments, e.g. in the Automotive industry.</p>
<p>Jon is the project lead for Eclipse Amlen, he is on the OASIS MQTT standards committee and has been the lead architect
for IBM's Message Gateway product as well as one of the initial developers on the codebase.</p>Jon Levell
Official Project website
Amlen Contributor Blog
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3000:30D.embeddedoniro_blueprintsOniro Blueprints for IoT devicesFrom open-source seeds to productsdevroom<p>In the Eclipse Oniro project, a distributed OS for consumer electronics,
we're proposing a collection of "blueprints" use cases and their implementations
using embedded software on reference hardware.</p>
<p>Today, we are going to explain our motivations for the blueprints' approach
and of course how to replicate and deploy firmware from sources and
why Oniro can be flexible to create the device of your dream.</p><p>Oniro is an ambitious Eclipse project,
one of its challenges is to defragment existing IoT ecosystems.</p>
<p>To target a bigger heterogeneous range of IoT devices,
openness, flexibility, and interoperability,
should be enabled at the Operating System level.</p>
<p>Since the beginning of this versatile OS development,
a complementary blueprint concept was introduced
to be more aligned with different aspects of the software and hardware industry.</p>
<p>Blueprints are standalone projects that are addressing specific uses cases
by providing "semi final integration" that would make use of the underneath technology.</p>
<p>Those minimal viable products are not only used for demonstration or validation purposes,
but they can serve as a base to create production-ready solutions.
Blueprints also could inspire devices makers to address similar or more sophisticated use cases.</p>
<p>Today as we speak, our reference blueprints include
a vending machine, an IoT gateway, a door lock, keypad and more.</p>
<p>The results of our work are going to be demonstrated and we will be presenting
what is common and what differs.</p>
<p>Each of those achievements are targeting different uses case and different environments,
but many steps can be factorized from building process, customization to
security or IP compliance scanning.</p>
<p>Expect to see demos on how our Oniro project leverages other opensource projects
like Yocto/OE Embedded distribution, Linux and Zephyr Kernel, LVGL UI toolkit,
OpenThread mesh networking, Web of Things and more.</p>Philippe CovalAndrei Gherzanoniro-blueprints-fosdem2022.pdf
Oniro: The Distributed Operating System That Connects Consumer Devices Big and Small
Oniro sources
Oniro Videos
Join Eclipse's Oniro Project
Welcome to FOSDEM2022's Oniro online stand
Oniro IoT Gateway FOSDEM2022 presentation
Oniro Blueprints FOSDEM2022 Presentation slides (Web with videos)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0001:00D.embeddedastarte_data_collectionAstarte: from data collection to fleet managementHow Astarte evolved from a broker plugin to an IoT ecosystemdevroom<p>Astarte is an Open Source IoT framework focused on data management and processing.
The talk will illustrate its concepts, its architecture and it will present a fleet management system developed on top of it.</p><p>By providing all the building blocks needed for an IoT project, the Astarte platform has quickly become a turnkey solution able to provide IoT and AI services while also allowing to save time and avoiding reinventing the wheel for any given new IoT usecase.
Its features enabled Astarte to grow into a larger ecosystem, providing integrations with a wider community such as Eclipse Oniro. The Edgehog device manager is the latest addition to this ecosystem: it's a multitenant device manager, built on top of Astarte.
After an introduction on Astarte, the talk will showcase how the platform can be used to provide all the operations expected from a modern device manager, like OTA updates, geolocation, etc. The talk will end sharing further info about the integration with Eclipse Oniro and its roadmap.</p>rbinoSlides
Astarte Github
Edgehog Github
Astarte Website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.embeddedopenthread_mesh_networkRunning an OpenThread Mesh Network with Linux and ZephyrTransparent IoT Gatway Blueprint of the Oniro Projectdevroom<p>The Thread protocol specifies a low-power IoT mesh network. It offers
self-healing, low latency and IPv6 connectivity without a single point of
failure. In addition to the lower layer mesh functionality it also
offers mesh network management, as well as secure onboarding of headless
devices.</p>
<p>OpenThread is an open source project implementing the Thread protocol and its
components. The focus of this talk is to demonstrate a Linux based OpenThread
border router and Zephyr based mesh nodes. Tight together by a Yocto based
build system this talk shows all components you need to have an IPv6 enabled
micro-processor on a low-power wireless link. The used power is small enough
to allow operating a small sensor for months or years on a coin cell battery in such a
scenario. All served by a Linux based border router to allow for internet
access and end-to-end IPv6 connectivity.</p>
<p>All of the above is bundled together in an Eclipse Oniro Project blueprint
for a transparent IoT gateway.</p>Stefan Schmidt2022-02-06-FOSDEM-Running-an-OpenThread-network
Blueprint documentaion:
Demonstration video:
Eclipse Oniro Project:
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.embeddedr155_complianceTowards UN R155 compliance with open source stackdevroom<p>After presenting key constraints of new cybersecurity standards UN R155/R156 regulations, the session presents how redpesk open source stack helps to address those concerns, especially with it secured-by-design architecture.</p><p>The UNECE WP.29 regulation R155 for Cyber Security Management and R156 for Software Updates have been adopted in 2021 by UNECE’s World Forum for Harmonization of Vehicle Regulations. This means that cybersecurity is now non-negotiable for accessing the market in more than 60 countries, starting in July 2022.</p>
<p>The open source secured-by-design stack redpesk helps to fulfill regulatory requirements by providing:</p>
<ul>
<li>MAC-enabled Linux distribution (SMACK/SELinux)</li>
<li>secure microservices architecture</li>
<li>integration with RTOS for safety</li>
<li>Innovative container engine fitted for embedded</li>
<li>LTS on full car life (approx. 20 years)</li>
<li>SOTA support</li>
</ul>
José Bollo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.embeddedcontainer_manager_in_cWhy Embedded Linux Needs a Container Manager Written in Cdevroom<p>Container technology has always been part of the cloud domain, and as such, its roadmap has usually been dictated by the use cases and requirements of that world. In the servers’ domain, resource utilization is nowhere near as relevant as it is in the embedded domain. The different languages and technologies that power the tools and mechanisms through which containers are leveraged in the bare metal server and /cloud worlds just don’t fit into the requirements of embedded.</p><p>Despite the above, these past couple of years have seen an aggressive push from cloud-centric companies trying to tell the Embedded Linux ecosystem and its development community that we should make do with Golang, NodeJS and similar solutions and tools. Most are unaware of the challenges when you cram cloud tools into a resource constrained embedded system. Even though the architecture of some of these frameworks have the right intention (LXD), most just lack the interest in understanding the specific requirements of embedded.</p>
<p>In this talk, we’ll explore how using containers for embedded systems modelling can help facilitate development cycles by enabling modular software architectures. We’ll deep dive into what the real requirements of embedded systems are and how modern container technology can help us meet the actual needs of this world. And lastly, we’ll walk through an example with Pantavisor, an open source container framework implemented for embedded systems.</p>Ricardo Mendoza
Pantavisor Project
Pantavisor Repo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:30D.embeddedjetson_otaOver-the-air (OTA) software updates with NVIDIA Jetsondevroom<p>With over half a million developers worldwide, NVIDIA® JetsonTM is one of the most popular embedded computing platforms that brings AI performance to the Edge in a power-efficient and compact form factor</p>
<p>In this talk, we will cover in detail a unique way of integrating a robust and secure over-the-air software (OTA) updates with the NVIDIA JetPack 4.6 production release that works for all Jetson System-on-Modules (SoMs) with support for the official L4T (Ubuntu-based) operating system, running JetPack 4.6 or later. As it is built on top of the latest JetPack SDK release, there is no need to have separate integrations when building and deploying applications on different Jetson SoMs. This has the benefit of enormously cutting down the bringup time of an OTA solution to do all types of OTA updates. It has low maintenance costs since it does not involve modifying the boot process and rather relying on officially supported tools by NVIDIA which should not “break” with new L4T releases or board changes. We will cover the details of the integration with the high-level user flow as outline below, which “clones” the running image of a golden device and deploys it in a robust manner to the entire fleet of devices:</p>
<p>-Download L4T image from NVIDIA
-Use NVIDIA tools to flash A/B setup with L4T image
-Install Mender as deb package, plus integration layer
-Run Mender snapshot to create Artifact
-Deploy Artifact snapshot to fleet</p><p>With over half a million developers worldwide, NVIDIA® JetsonTM is one of the most popular embedded computing platforms that brings AI performance to the Edge in a power-efficient and compact form factor</p>
<p>In this talk, we will cover in detail a unique way of integrating a robust and secure over-the-air software (OTA) updates with the NVIDIA JetPack 4.6 production release that works for all Jetson System-on-Modules (SoMs) with support for the official L4T (Ubuntu-based) operating system, running JetPack 4.6 or later. As it is built on top of the latest JetPack SDK release, there is no need to have separate integrations when building and deploying applications on different Jetson SoMs. This has the benefit of enormously cutting down the bringup time of an OTA solution to do all types of OTA updates. It has low maintenance costs since it does not involve modifying the boot process and rather relying on officially supported tools by NVIDIA which should not “break” with new L4T releases or board changes.
We will cover the details of the integration with the high-level user flow as outline below, which “clones” the running image of a golden device and deploys it in a robust manner to the entire fleet of devices:</p>
<p>-Download L4T image from NVIDIA
-Use NVIDIA tools to flash A/B setup with L4T image
-Install Mender as deb package, plus integration layer
-Run Mender snapshot to create Artifact
-Deploy Artifact snapshot to fleet</p>Luis Ramirez Vargas
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:45D.emulatorgrogTesting Macromedia director in ScummVMdevroom<p>ScummVM reached a milestone with the release of 2.5.0. Version 0.0.1 was released 20 years ago. The latest release was also the first release that included support for a few Director games.</p>
<p>MacroMedia Director, later Adobe Director, was a multimedia application authoring platform. Its ease of use led to a huge number of graphic adventure games being written with it. This was the late 90's. Some well known games are the Journeyman Project, Total Distortion and Spaceship Warlock.</p>
<p>One challenge to over come was to work on the code without breaking other parts.
We'll go over the architecture of ScummVM, dive deeper into the Director Engine and land on how tests improved the code.</p>Roland van Laar
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:4500:45D.emulatorz80Z80: the last secretsMicroarchitectural leaks, 45 years laterdevroom<p>While writing a Z80 emulator, you might ask yourself: should it be 100% accurate ? Maybe not, if you just want to run old software. But what if you're not and this old software accidentally depends on undocumented behavior ?
In this talk we'll explore how, 30 years after its design, a few people on a Russian retro-computing forum reverse engineered an undocumented Z80 register: MEMPTR. And how 6 years later, another even less known secret register was discovered.</p>Anisse AstierZ80 last secrets slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3000:30D.emulatorbugs_lifeCANCELLED Debugging Strategies for Emulator DevelopersAre bugs a form of artificial life?devroom<p>Emulators, especially ones targeting real time performance, can become very complex, and can present unique debugging challenges - more akin to cpu, operating system and compilers than typical software projects.</p>
<p>In this talk I will cover common and not-so-common classes of bugs that manifest themselves in a vast range of emulators (gameboy, dreamcast, x86/64 usermode will be used as examples), and strategies and heuristics I've used over the years to identify, prevent, mitigate, fix and prevent them from reappearing.</p>
<p>Both theoretical concepts and background, as well as concrete examples of past bug hunts will be included.</p>Stefanos Kornilios Mitsis Poiitidis
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0002:00D.emulatorps3PlayStation 3 Emulation(Re)implementing the impossibledevroom<p>The PlayStation 3 features one of the most ambitious and fascinating architectures among video game consoles. Once deemed near-impossible to emulate in real-time, we now celebrate the 10th anniversary of its most popular emulator: RPCS3, a free and open-source software capable of running two thirds of the console's catalogue on PC.</p>
<p>This talk describes the hardware and software stack of the PlayStation 3, covering the IBM Cell/B.E. CPU, Nvidia RSX GPU and Sony's CellOS operating system in detail. We compare these against earlier and later consoles, explaining how their design and complexity has shaped a new generation of emulators and binary translators, before delving into the history and internals of RPCS3 and other PlayStation 3 emulators.</p>Alexandro Sanchez BachSlides
RPCS3
PlayStation 3 Architecture
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:30D.emulatorfuzzFuzzing, or How I Generated 1,000,000 New Processor Test Cases in an AfternoonFill your boots. Then fill somebody else's.devroom<p>Most emulator authors will have encountered a test suite; a series of compliance tests that indicate whether their implementation matches original hardware. But these suites tend to assume a lot of working functionality beyond the part they are specifically testing, often being designed by an intelligent human being to test finished emulators.</p>
<p>This presentation covers an alternative source and target of tests: random numbers, to test individual processor instructions, so that future emulator authors can test from day one.</p>Thomas Harte
https://github.com/TomHarte/ProcessorTests
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3001:00D.emulatorsquirrelSquirrelJME, Java Flip Phone EmulationPreserving the history of obsolete cellular devicesdevroom<p>SquirrelJME is a from-scratch and clean-room built Java Virtual Machine implementation which targets the J2ME/Java ME runtimes which have been historically used for mobile applications such as those running on flip phones. The presentation will go over the unique challenges of implementing a JVM along with differences compared to traditional CPUs. Additionally due to the rapidly changing nature of traditional desktop Java Virtual Machines, backwards compatibility with older byte codes is not a guarantee, therefor there is a specific need for a non-changing run-time environment for these older applications.</p>Stephanie GawroriskiSquirrelJME, Java Flip Phone Emulation
Main Website
GitHub Repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3001:00D.emulatoremu_configStatic and Dynamic Analysis for Automatic Emulator ConfigurationOr: Not asking the user so many damn questions.devroom<p>A disadvantage of many emulators is that they require the user to know how they should configure a machine — which model, which expansions and peripherals — and what they need to type before they can use their desired classic software. Wouldn't it be nice if the emulator could just figure all that stuff out for you?</p>
<p>This presentation covers three means of doing so: ahead-of-time static analysis, runtime dynamic analysis, and brute-force try-them-all parallel execution.</p>Thomas Harte
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:45D.emulatorvenixA Venix/86 emulatorA step in recreating Venix/86 Sourcesdevroom<p>Venix/86 was the first commercially available Unix for the IBM PC. PC/IX was the first one that IBM supported, but VentureCom created released this port about the time PC/IX was announced. They ported it to a number of the 'near compatible' systems as well, so for many people the first Unix available on those early 8086/8088 machines was Venix. This included the DEC Rainbow 100B with Venix/86R.</p>
<p>A companion project to recreate the sources for Venix/86 from 7th edition tapes now available was hampered by the slow speed of the DEC Rainbow, so I wrote the emulator to seed that along.</p>
<p>This talk will be about the emulator's structure, system call interface and portability to other ancient 8088/8086 Unixes. It will also discuss how many of the early ports coped with lack of a MMU in clever ways. It will touch on the path here, and then focus on the current implementation.</p><p>The author had a DEC Rainbow which was supported with Venix/86R. By the time the author was employed post college, copies of it had become impossible to find.</p>
<p>Recently, A copy surfaced and I started working with it. A number of interesting challenges for creating this port will be discussed. I took the hard path to decompile parts of libc to discover the system call interface, and went through a few preliminary implementations of Venix/86 emulation before arriving at what we have today. After the initial decompile, documentation surfaced, other incomplete copies were found along with some source, all of which confirmed most of the details that had been guessed.</p>
<p>This has been a labor of love for me, using 4 different x86 emulators, a number of deep searches online to find as much info as I can, disassembly, etc. I'll touch on some of these aspects as well. It's currently running using vm86 on a FreeBSD/i386 bhyve instance hosted on a FreeBSD/amd64 machine nicely... A port to qemu user-* might be possible too.</p>
<p>This goes hand in hand with another project: recreate the sources that can create a Venix kernel using the now-available 7th Edition sources, which may be a future submission.</p>Warner Losh
Venix Repo for this project
vm86 venix emulator for this talk
Venix System Call Docs
Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:1500:45D.emulatorfexFEX-Emu: Fast(-er) x86 emulation for AArch64How we're creating a better gaming experience on ARMdevroom<p>QEmu is a great project but it isn't really designed around high performance gaming.
Let's create a new project that is specifically designed for running x86 and x86-64 games on AArch64.
With FEX-Emu now off the ground let's talk about the problems of translating x86 and x86-64 to AArch64. Translating 32-bit games to a 64-bit process encounter a bunch of fun issues. On top of that, translating x86/x64 to Arm has issues that you wouldn't really expect.
Come along for the ride with all the problems we encountered and where our future plans lie with FEX-Emu.</p>Ryan HoudekSlides (odp)Slides (pptx)Slides (pdf)
FEX-Emu Website
FEX-Emu Github
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:1500:30D.mobilemobile_kernel_snapdragon_410Running Mainline Linux on Snapdragon 410How we support over 25 devices in postmarketOSdevroom<p>The Qualcomm Snapdragon 410 (msm8916) is a SoC that was used in many smartphones and
tablets around 2015. It is the most mature "aftermarket" platform postmarketOS can offer
at the time of writing. Many of the supported devices are quite usable and have
most of the expected features like phone calls and mobile data working.</p>
<p>The talk goes over some of the most important challenges that we have faced while
supporting those devices and describes the ways in which we have solved them.</p><p>Apart from the Linux kernel, we focus on various other tools and projects like
lk2nd - a shim bootloader that prepares the environment for booting Linux and
hides some device-specific quirks from the kernel. It also unifies the boot and
installation process on all devices.</p>
<p>We also have other tools and resources to make porting easier. Those include
various documentation or even a fully automated display driver generator
that helps with the fact that each display requires unique initialization.</p>Nikita TravkinSlides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:40D.mobilemobile_graphical_lispPortable Parens: Graphical Lisp programs for mobile devicesTechniques for building responsive, touch-friendly GUI applications with functional programming paradigmsdevroom<p>Lisp, the second-oldest programming language, has led the way in
advanced programming techniques through decades of variants and
dialects. This talk will show how Lisp is relevant even in the
burgeoning field of mobile Linux distributions, covering four distinct
techniques for writing touch-friendly, responsive GUI applications in
various Lisp implementations:</p>
<ul>
<li>Embedding</li>
<li>Transpilation</li>
<li>Foreign function interfaces</li>
<li>Networked microservicing</li>
</ul>
<p>With fully open source examples for each of the methods, written in
Lisp dialects including Clojure, Scheme and Fennel, this talk will
weigh up the pros and cons of the different techniques with regard to
reliability, performance and long-term sustainability in the software
supply chain.</p>
<p>Finally, the talk will conclude with a proof-of-concept for a
declarative graphical application with GTK4, showcasing the advanced
functional programming features offered by Lisp, and demonstrated on a
physical PinePhone device running PostmarketOS!</p>Sebastian Crane
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:35D.mobilemobile_kernel_snapdragon_845From Android to mainline on the Snapdragon 845Extending the life of Android devices with upstream kernels and postmarketOSdevroom<p>Explaining a brief history of Linux on Qualcomm devices, how we got to where we are today and what will come in the future. With a specific focus on the OnePlus 6 and other SDM845 devices with mainline Linux support. As well as what exciting things the future holds!</p>caleb ConnollySDM845 mainline slides
postmarketOS website
our close to mainline kernel fork for SDM845 devices
Video recording(WebM/VP9)
Video recording(mp4)
Slides
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:40D.mobilemobile_social_dilemmaLinux Mobile vs. The Social Dilemmadevroom<p>As FOSS on mobile community, let's do our part to fix the many negative effects of social media and its hostile design patterns. We could become the prime example of how to treat users with respect. To not only give them control over their phone, but also over their attention. From design choices in the operating systems and apps to the platforms we choose to communicate about development.</p>OIiver Smith
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:5000:35D.mobilemobile_modemmanagerModemManager in your phonedevroom<p>ModemManager provides a general purpose WWAN management stack, which has served as default WWAN management system for standard GNU/Linux distributions for the last 10 years, primarily focused on providing data connectivity to laptops and desktops. In addition to that, different teams building phones with FOSS operating systems have also considered ModemManager as a good tool to take responsibility for the full data and voice call management in phones, primarily because it supports a broad range of devices and systems: not only standalone WWAN modules, but also WWAN stacks integrated in Qualcomm SoCs.</p>
<p>This talk will provide an overview of the current state of integration of ModemManager in phones, and what's expected in future releases.</p>Aleksander MorgadoFOSDEM 2022 - ModemManager in your phone
https://modemmanager.org
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4500:35D.mobilemobile_adwaitaWelcome to Libadwaitadevroom<p>GTK4 is finally ready for production, and with it comes Libadwaita, the next generation of the GNOME app development platform. This new library builds on what Libhandy did for GTK3 but takes it even further, streamlining many of the most common things app developers need to build great apps for GNOME, across both desktop and mobile.</p>
<p>This includes standardized patterns and widgets for basic layout elements like lists and cards, adaptive navigation, touch/touchpad gestures, easier ways of using color in apps, and much more.</p>
<p>This talk will give a quick overview of the current capabilities of the platform, and show how app developers are making use of it to build apps that work well on computers of all shapes and sizes.</p>Tobias BernardWelcome to Libadwaita
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:25D.mobilemobile_callsAnatomy of GNOME CallsWhat goes into making a call in GNOME Callsdevroom<p>In this talk we will take a look at the anatomy of GNOME Calls.
We will cover libraries used and how Calls interacts with them to provide
call functionality and other things you'd expect from a dialer application.</p>Evangelos Ribeiro TzarasSlides
Gitlab Repository
Purism
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.mobilemobile_phoshPhosh Contributors Get TogetherGet to meet the other Phosh contributorsdevroom<p>Get to meet the other Phosh contributors</p><p>You're contributing to Phosh or its wider ecosystems as designer, translator, distribution packager, tester or developer (or intend to do so)? Then join us at this get together. There's no formal schedule, it's just about meeting other people since we can't have a RL meeting.</p>Guido Günther
Phosh
Signup
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3001:30D.mobilemobile_closing_sessionClosing sessiondevroom<p>Closing session for the FOSS on mobile devices devroom.
We reserve the right to have the "Phosh contributors meeting" bleed into this session.</p>
<p>Come and join us as we're looking back at FOSDEM22, reflect on how our quest for world domination is going
and talk about anything and everything (tangentially) related to FOSS on mobile devices.
While not mandatory grabbing a refreshing (rejuvenating even!) beverages of your choice is highly recommended
as we're closing this years event.</p>
<p>No dresscode :)</p>Evangelos Ribeiro Tzaras
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:10D.radioradio_welcomeWelcome to the Free Software Radio Devroomdevroom<p>This presentation will give you an overview what to expect in the Free Software Radio devroom at FOSDEM 2022.</p>Andrej Rode
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:1000:30D.radioradio_openwifiOpensource WiFi chip (openwifi) progress and future plandevroom<p>The <a href="https://github.com/open-sdr/openwifi">openwifi</a> project (opensource WiFi chip) was firstly introduced in the fsr dev room of FOSDEM2020, Brussels. So it would be our honor to give the annual update of the project in the same event!</p>
<p>This year we will bring these contents:</p>
<ul>
<li>Features added in 2021</li>
<li>Bug fixes in 2021</li>
<li>Some initial test results by the R&S CMW270 WiFi tester</li>
<li>The community growth we saw in 2021: the new cheaper hardware; the new applications/papers; etc.</li>
<li>Our current focus and future plan: the progress of WiFi6/802.11ax development; etc.</li>
</ul>
<p>Related event:</p>
<ul>
<li>Feb 6 11:20 (Brussels time): <a href="https://fosdem.org/2022/schedule/event/openwifipynqz1/">Bring openwifi to PYNQ-Z1 with ultra low cost</a> in <a href="https://fosdem.org/2022/schedule/track/libre_open_vlsi_and_fpga/">Libre-Open VLSI and FPGA devroom</a>.</li>
<li><a href="/2022/stands.fosdem.org/stands/openwifi/">openwifi stand</a> welcome you the whole weekend.</li>
</ul>
Xianjun Jiaoopenwifi project slides for free software radio devroom
The openwifi Linux driver and user space tools
The openwifi chip/FPGA design
The main openwifi github site
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:4000:20D.radioradio_litexImplementing a GNU Radio/LiteX accelerator using a FPGA-based PCIe co-processordevroom<p>Processing tools such as RFNoC by Ettus Research allow for FPGA processing & acceleration however, this can only be used achieved by using USRP devices. gr-litex is an open-source tool that uses GNU Radio with LiteX and allows for different boards by a variety of vendors to achieve processing and acceleration. The project currently uses an Acorn CLE-215+, a cryptocurrency mining accelerator card repurposed as an FPGA for the project.</p>Victor Omoniyi
gr-litex
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:30D.radioradio_hellschreiberEmitting Hellschreiber from a Raspberry Pi GPIO: combining gr-hellschreiber with gr-rpitxGNU Radio running on an embedded board as emitterdevroom<p>Hellschreiber is a morse-like graphical transmission of digital data reminiscent of fax over wireless communication media designed in the 1930s and used during the second world war by the German military. Now used by the ham radio community, we consider how hellschreiber is emitted using a Raspberry Pi GPIO pin configured as radiofrequency emitter, an approach made popular by rpitx and generalized to GNU Radio with our gr-rpitx OOT sink block (https://github.com/jmfriedt/gr-rpitx). The transmitted signal is recorded by a RTL-SDR DVB-T receiver and decoded using gr-hellschreiber (https://github.com/tlavarenne/gr-hellschreiber).
Preparing this presentation was an opportunity to become familiar with GNU Radio 3.9 and the presentation concludes with some of the challenges (and solutions) met when porting gr-acars
(https://sourceforge.net/projects/gr-acars/) to this new version of the signal processing framework.</p>Jean-Michel Friedt, Thomas Lavarennefull image of the experimental setupproceeding manuscriptslides of the presentation
short video of a demonstration
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:30D.radioradio_ofdmradargr-ofdmradar: OFDM Radar in GNU Radiodevroom<p>All radar is dominated by high-bandwidth, fixed waveforms. All radar? No! A little domain combines communications and sensing, introducing OFDM Radar:</p>
<p>gr-ofdmradar is a GNU Radio out of tree (OOT) module, providing an OFDM Radar implementation that can be used in simulations and, potentially, hardware. In this talk I will introduce the motivations and theory behind OFDM Radar as described by Martin Braun, present gr-ofdmradar and how it can be used in simulations and conclude with a small outlook at how this module can be used for hardware implementations.</p>David Winter
GitHub: gr-ofdmradar
Hardware Implementation of OFDM Radar using gr-ofdmradar
Martin Braun, OFDM Radar Algorithms in Mobile Communication Networks
[YouTube] Recording of unprocessed radar return in hardware setup
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.radioradio_voyager1Voyager 1 adventuresdevroom<p>Voyager 1 is the furthest spacecraft and the first ever to exit the solar system. Fueled by its radioisotope generators, after more than 40 years of flight it is still sending us data about the interstellar medium using its 3.7 metre dish antenna and 8.4 GHz transmitter. In this talk we report two adventures regarding the reception of the Voyager 1 signal.</p>
<p>In the first part, we show the successful detection of the Voyager 1 signal using one of the 6.1 metre dishes at the Allen Telescope Array in November 2020. Calculations show that using stable frequency references and accurate Doppler correction, this feat might also be possible for amateurs with smaller dishes if they integrate several hours of data to pull out the very weak signal from the noise. In the second part, we use some recordings done by the 100 metre Green Bank Telescope in 2015 and 2020 to decode the data transmitted by Voyager 1. The spacecraft predates the modern CCSDS standards, so its data has some interesting aspects.</p>
<p>All this work has been done using GNU Radio, Python, and other open source tools. The data and results are publicly available.</p>Daniel EstévezSlides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.radioradio_gr3_10GR 3.10 Update and examples of new featuresdevroom<p>3.10 is the latest release of GNU Radio and includes some powerful features and new modules. We will step through the new features and what they enable before going further in depth with some examples of the upstreamed Hardware Accelerator Support that was presented last year at FOSDEM. This feature provides streamlined data movement via support of "custom buffers" which allow a device-compatible mapping of the memory presented to a block's work function, eliminating additional ingress/egress in and out of device memory. We will show how this impacts specifically flowgraphs that have CUDA enabled blocks as a concrete example.</p>Josh MormanGR 3.10 Update Slides v2
GNU Radio project website
GNU Radio project repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:10D.radioradio_m17Introducing the M17 Projectdevroom<p>A six minute talk on the M17 Project, an open source digital communications protocol suitable for VHF/UHF and more. Intended for amateur radio terrestrial and space application, many exciting things are possible with this 4-ary FSK layered protocol from a dynamic and motivated international team. This talk will introduce the audience to the project and the purpose, goals, products, opportunities, and enjoyment possible with M17. M17 is not encumbered by US patents.</p>Michelle Thompson
M17 Project Homepage
OpenRTX FOSS Firmware Homepage
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:1000:30D.radioradio_julia_litexP2P SDR to GPU Streaming with Julia and LiteXHigh throughput PCIe P2P communication for SDRdevroom<p>In this talk, we report early results in the development of a hardware/software stack enabling direct P2P communication between a Fairwaves XTRX / XYNC SDR and an Nvidia GPU. We are able to saturate a PCIe link (7 Gbps) in loopback mode. IQ samples are streamed from the RF IC at more than 350 Mbps. Implementation of this architecture required the development of a new LiteX-based Artix FPGA gateware, and a new SDR framework written in the Julia programming language. The combination of extremely high throughput, GPU computing power, and efficient Julia code will open the doors to a new generation of phased-array and machine-learning experimentation.</p>Steve Kelly
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:40D.openjdkdiversityFundamentals Of Diversity & Inclusion For Technologistsdevroom<p>Enhancing diversity and inclusion in every aspect of technology is an essential conversation everyone should be a part of. In an increasingly interconnected world, we have a shared responsibility to ensure technology is a force that works to benefit everyone, countering structural sources of inequity where needed.</p>
<p>This session aims to jump start your personal diversity and inclusion journey by explaining the basics in simple terms with relevant examples for technologists. Concepts covered will include unconscious bias, privilege, equity, allyship, covering and microaggressions.</p>Reza Rahman
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:4000:40D.openjdkopenjfxOpenJFX: An Update on Java on the Clientdevroom<p>JavaFX allows Java developers to create cross-platform user interfaces using their existing Java skills.</p>
<p>In this session, we give an update about the OpenJFX project where the core development of JavaFX is happening.</p><ul>
<li><p>OpenJFX: development in the open. The specification and implementation is done in a very open, community-friendly approach on GitHub. Topics are discussed on a mailinglist, and issues can be created in the Java Bug System.</p></li>
<li><p>Cross Platform: the same Java code that is used to create a user interface on desktop (windows/mac/linux) works on mobile (android/ios) and embedded devices as well. This also allows for a convenient development cycle: development and debugging is typically done using the developers favorite platform and IDE, and the result will work on other systems as well.</p></li>
<li><p>Modern graphical stack: the low-level implementations are shielded from the high-level JavaFX API's. This allows JavaFX implementations to take advantage of modern hardware and drivers, and developers don't have to worry about these implementation details.</p></li>
</ul>
Johan Vos
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:2000:40D.openjdkfxglAI Pathfinding In FXGL Game Enginedevroom<p>FXGL 11 has been a success among JavaFX developers, leveraging high-performance cross-platform support for games and applications. FXGL seamlessly extends JavaFX to bring support for real-world game and application development concepts and techniques, which can be used in both Java and Kotlin.</p>
<p>In this session, developers will dive deeper into the FXGL AI capabilities and learn how to:</p>
<ul>
<li>create a 2D navigation grid from a game level,</li>
<li>use A* pathfinding with game objects.</li>
</ul>
Almas Baimagambetov
FXGL game engine source
Workshop source
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:40D.openjdkpiUpdate On Java On The Raspberry Pidevroom<p>An overview of Java projects running on the Raspberry Pi.</p>
<p>In 2021 the Pi4J project released a completely new second version of its object-oriented GPIO API and implementation library for the Raspberry Pi. Let's take a look at the new documentation site and example projects to get you started with Java development on the Raspberry Pi.</p><p>Getting started with Java in a new area - like controlling electronic components - can be challenging, but the Pi4J project aims to make this an easy and fun experience. Thanks to a lot of getting-started tutorials and example projects, different use-cases are handled. The experience of your first "blinking LED" is a really amazing experience for a lot of software developers who never interfaced with electronics before. In this presentation, we will take a look at a few of these examples.</p>Frank Delporte
Pi4J documentation website
Presentations by Frank Delporte
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:4000:40D.openjdkmqttBenefits Of MQTT For IoT Apps And Beyonddevroom<p>A quick study on several popular MQTT brokers!</p>
<p>We will learn about the benefits of MQTT, which has become the de facto standard for IoT messaging. The MQTT protocol has in fact undergone a major transformation from its early days as a protocol for handling data transmission in oil pipelines via satellite, to now being able to manage devices operating in the current internet and cloud native environments that are often constrained. We'll take a look at some of the popular implementations of the MQTT broker, such as the Java-based HiveMQ and the C/C++ Eclipse Mosquitto.</p><p>IoT applications run on IoT devices and can be created to be specific to almost every industry and vertical, from small devices to large ones, including healthcare, industrial automation, smart homes and buildings, automotive, and wearable technology. The possibilities are limitless. Increasingly, IoT applications are using AI and machine learning to add intelligence to devices. Among all of the variables in the IoT ecosystem, one common theme is the need to be able to handle the constrained operating environment, such as unreliable network connectivity, limited bandwidth, low battery power, and so on. We will take a look into the MQTT protocol, how it has evolved from its early days which was intended for the connection of oil pipelines via satellite, to now the ever-increasing demand in IoT and M2M applications, to how this protocol will evolve to meet the modern needs especially in the current cloud computing era. We will study a few outstanding MQTT libraries that are available in the market, such as the Java-based HiveMQ, and open source libraries such as Eclipse Mosquitto and Apache licensed VerneMQ.</p>Mary Grygleski
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:2000:40D.openjdkjakartaeeJakarta EE: Present & Futuredevroom<p>Java EE has been re-branded to Jakarta EE and moved to truly open source governance under the Eclipse Foundation. This session overviews what this means, offers a brief tour of the initial releases - Jakarta EE 8/Jakarta EE 9, explores current state and looks to what the future might bring including some key challenges. We will also discuss how these challenges can be overcome through active community engagement.</p><p>The technical contents of Jakarta EE 8 is mostly the same as Java EE 8. Jakarta EE 9 further brings the platform into the open by decoupling from the javax namespace to the jakarta namespace. Jakarta EE 10 opens the possibilities for many long pending innovations in key technologies like Jakarta Security, Concurrency, Messaging, REST, Persistence, Batch, NoSQL, MVC and Configuration.</p>
<p>You should come to this session with your thinking caps on and your sleeves rolled up. There is much to help move forward together that really matters.</p>Reza Rahman
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:40D.openjdkdeeplearningDeep Learning for Java Developersdevroom<p>For most software developers, mastering AI/machine learning can take months or even years.</p><p>Also, there are many technical challenges with integration and putting AI models in production.</p>
<p>Deep Netts is a Java native Deep Learning Toolkit that solves these problems for Java developers.</p>
<p>In this session, you will learn how to quickly create more powerful Java applications with AI/Machine Learning by using your Java skills.</p>Zoran Sevarac
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4000:40D.openjdkmavenFaster Apache Maven Buildsdevroom<p>Builds require a few properties, chief among them reproducibility. I would consider speed to be low on the order of priorities. However, it’s also one of the most limiting factors to your release cycle: if your build takes T, you cannot release faster than each T. Hence, you’ll probably want to speed up your builds after you’ve reached a certain maturity level to enable more frequent releases.</p>
<p>I want to detail some techniques you can leverage to make your Maven builds faster.</p>Nicolas Frankel
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:2000:40D.openjdkvaadinModern Web Apps, 100% Java: Building Web Apps With Vaadindevroom<p>If you're like most people, the words "Java web app" may conjure up memories of ancient Applets or make you think of multi-page apps built with JSPs or Spring MVC with a "little" jQuery sprinkled in for interactivity.</p>
<p>In this presentation, we'll take a look at a radically different approach to building web apps in Java.</p>
<p>Vaadin Flow is a unique web framework that lets you build apps in plain Java using an extensive library of included UI components. The resulting app is a highly-interactive single-page app based on the latest web technologies.</p>
<p>You'll learn the basics of building apps using this open-source framework and be ready to start turning your idea into an app.</p>Marcus Hellberg
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:40D.openjdkdebuggerPolyglot Cloud Native Debugger: Going Beyond APMdevroom<p>It's 2022 and we still use logs to debug production issues?</p>
<p>All the unit tests in the world, the largest QA team still can’t stop bugs from slithering into production. With a distributed microservice architecture debugging becomes much harder. Especially across language & machine boundaries. APMs/Logs have limits. There’s a new generation of tools in town…</p><p>Production bugs are the WORST bugs. They got through unit tests, integration tests, QA and staging… They are the spores of software engineering. Yet the only tools most of us use to attack that vermin is quaint little log files and APMs. We cross our fingers and put on the Sherlock Holmes hat hoping that maybe that bug has somehow made it into the log… When it isn’t there our only remedy is guesswork of more logging (which bogs performance for everyone and makes the logs damn near unreadable). But we have no choice other than crossing our fingers and going through CI/CD again.</p>
<p>This is 2021. There are better ways. With modern debugging tools we can follow a specific process as it goes through several different microservices and “step into” as if we were using a local debugger without interrupting the server flow. Magic is possible.</p>Shai Almog
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:4000:40D.openjdkjreleaserReleasing Fast, Easy, and Consistentlydevroom<p>When a project has reached that stage when it’s a good idea to post binaries, new questions arise such as where should they be posted? How do make it easier for users to install and discover binaries? Where should releases be shared? Most importantly, can it be automated?</p><p>There are so many requirements and considerations depending on the distribution channels, wouldn't be great to have a tool to make it easier? JReleaser is a tool that provides answers to these questions and more., it may be used to create GiHub/GitLab/Gitea releases and publish binaries that can be consumed from different distribution channels such as Homebrew, Snap, Scoop, and more. Once published, the release cab be automatically announced on Twitter, Slack, Gitter, Discord, and other communication channels.</p>Ixchel Ruiz
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:2000:40D.openjdkprocessAn Infallible Process to Fix Production Java Appsdevroom<p>Your production Java application stops working. An angry customer is waiting for a fix. Your boss is on the line asking what's going on...</p>
<p>We have all been there. In such situations solving problems quickly makes you trusted and shows your maturity as a developer. That's what being a senior developer looks like.</p>
<p>This presentation will guide you through a little-known infallible process used by the top Java experts that can get you out of very hard situations! Troubleshoot any problem in your Java applications by using free and open-source tools available in the JDK -- jps, jinfo, jmap, jstack, jcmd, jhsdb, and jdb.</p>
<p>Be the go-to person in your team to solve hard problems! Understand the common problems professional Java developers face and how to diagnose and solve them quickly.</p>Vipin Sharma
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:50D.geospatialgeospatial_jswebglIntroducing a new JS+WebGL map libraryOr «why neither Leaflet, OpenLayers nor MapLibreGL meet my needs»devroom<p>When putting a map on the web, Leaflet, OpenLayers and MaplibreGL (formerly MapboxGL) are popular Javascript FLOSS libraries to do so. This talk will explore some of their features, architectures and shortcomings; and a brand new JS+WebGL library will be introduced, demoing some of its features.</p>Iván Sánchez OrtegaIntroducing Gleo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:2000:40D.geospatialgeospatial_arlasExplore OSM data with ARLASGet instant geo-analytic view of billions OSM data entriesdevroom<p>ARLAS Exploration is geo-analytic solution based on big-data technologies. It helps users who have big volumes of spatio-temporal data, to explore it through analytics and geo-analytics views.</p>
<p>In this devroom we will use ARLAS to explore OSM data with an Analytic perspective. We will go through the following steps:
- Download and index OSM data in a search engine (Elasticsearch) and make it available to exploration by ARLAS stack
- Configure ARLAS dashboards based on this data and create analytical and geo-analytical views</p>
<p>We will be able to answer questions such as:
- How many buildings are in the downloaded dataset? And how are they distributed geographically ?
- What are the different existing types of buildings? With what proportions ?
- When this data has been created/edited and with what frequency ?</p><p>Gisaïa is a geospatial intelligence company based in France. Gisaïa developed ARLAS Exploration, and has built a robust geo-big data ecosystem to continuously update and run it. ARLAS Exploration is open-source and OGC compliant allowing users to integrate it with GIS platforms lending it to high interoperability. This promotes full access to all types of geospatial data.</p>
<p>ARLAS Exploration is a powerful geoanalytics platform that developers can build on and data scientists can deploy immediately to go into the depths of their geo-big data. With this devroom, Gisaïa will provide a future-centric geoanalytics tool for participants to easily conduct geo-big data analytics.</p>
<p>As an example, we will show how to use ARLAS with OSM data and get instantly Geo-analytic insights of it.</p>Mohamed HamouGeo-analytic view of OSM data using ARLASRaw OSM buildings viewed with ARLAS
Tutorials of how to use ARLAS
ARLAS-stack-OSM-tutorial
https://
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:30D.geospatialgeospatial_digitalOpen Geodata Digital SpacesExploring the digital spaces of OpenStreetMapdevroom<p>Open Source Geotechnologies are developed using various socio-technical systems. Understanding of these systems can help us understand the genealogy of the data generation. There are various applications that transcend from the basic understanding of geospatial as technological systems. I am analyzing OpenStreetMap and trying to define its digital spaces to understand what forms of plurality exist in data production. Conceptualization of Digital spaces of OpenStreetMap is important in order to visualise how we can define ethical boundaries and to answer the underlying question of “what is quality?”. I am currently interviewing, sending out questionnaires to OpenStreetMap users and conducting texture analysis of previous conference talks related to OpenStreetMap. In this talk I would like to present my ongoing progress on the research project OSM Utopia and present the small part in which I would like to increase the support from different researchers and practitioners, which is conceptualizing OpenStreetMap digital spaces.
Furthermore, In this talk I explain how I planned to explore the interconnection and interdependence of analogue and digital spatiality of OSM and different research paradigms that needed to be explored. Also, will share the current progress on the way of defining digital spaces of OpenStreetMap and how we can categorise different analogues and digital assemblages that form these digital spaces. Limitations of these methods are also addressed. End goal that is targeted is that the data quality for OpenStreetMap requires a certain level of rethinking.</p>Muhammad Saleem
Connected project OSM Utopia
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:45D.geospatialgeospatial_fastFast, robust predicates for geometric algorithmsA C++ metaprogramming implementation of fast, robust floating-point arithmetics for geometric predicatesdevroom<p>Many algorithms, such as geospatial predicates or the construction of Delaunay Triangulations, make use of geometric predicates. Common examples of such predicates are orientation tests for 2D or 3D points. If these predicates are evaluated for floating-point coordinates, they can yield incorrect results due to round-off errors, which can cause algorithms to fail or to return invalid constructions. This talk presents a C++ template metaprogramming implementation of fast, robust floating-point predicates, which guarantee correct results without severe performance penalties.</p>Tinko Sebastian BartelsSlides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:1500:25D.geospatialgeospatial_transportA Better Public Transport Appdevroom<p>In this talk I show the app that I've made in two months while learning the Flutter framework. It was built on open data and open source libraries. But what separates it from the rest is not code - but experience. Maps on mobile screens are hard to do properly, and there's always a temptation to add another screen, another button. Turns out you need a bit more than skills to make a perfect app: at least you need to use it daily.</p><p>Last year I moved to Tallinn, Estonia, which is known also by it's public transport system - free for city residents. It is so good, reliable and optimized, that I sold my car and use buses and trams exclusively for all my city travels.</p>
<p>While planning a transit route is pretty straightforward with an official website, usually I need some transit-related information on the go. On a phone. And that's where both the website and many big and small apps show their imperfections. Download sizes, ads, user interface. Instead of focusing on my problems, I have to learn and work around apps' issues.</p>
<p>As an open source developer, that seemed not an issue - but a challenge. I've made interactive maps for the past ten years, and I know one should not use these libraries with default settings. Nor one should ever rely on zooming. Could I made a map with apps that doesn't require more than a couple of taps to get all the needed information? How hard would it be to keep number of buttons and other interactive elements to minimum, while not sacrificing functions I need every day?</p>Ilya Zverev
GitHub Repository
Google Play Store
App Website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:4000:35D.geospatialgeospatial_grassSpatial query of coordinate reference systems and its integration with GRASS GISdevroom<p>I introduce a new open-source geospatial project called ProjPicker (Projection Picker). ProjPicker is a Python module that allows the user to select all coordinate reference systems (CRSs) whose extent completely contains given points, polygons, and bounding boxes using set-theoretic logical operators in a postfix notation. The goal of this project is to make it easy and visual to select a desired projection by location. This project was motivated by a GRASS GIS feature request. A new GRASS GIS module g.projpicker that wraps around this project is already available. As part of its integration with GRASS GIS, this new feature will be added to the GRASS location wizard.</p>Huidae Cho
ProjPicker GitHub Repository
ProjPicker Documentation
ProjPicker Web
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:45D.graphicslvglLVGL: A versatile UI toolkit for MCU & CPUAn UI framework for Eclipse Oniro a cross kernel OSdevroom<p>LVGL is an open-source graphics library to create embedded GUI.</p>
<p>By its flexibility, this toolkit is well matching Oniro project's requirements to build a multiple kernel OS for IoT devices or enable interactions in a multiple devices environment.</p><p>UI toolkits are well established in CPU world (desktop, mobile), but what about in more constrained system ?</p>
<p>Often tied to one vendor, the choice is often limited. However OpenSource project LVGL provides everything developers need to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint.</p>
<p>This library is compact and flexible enough to be thread through a regular Linux system. Of course this will not compete with other popular frameworks like Qt or GTK, but it has some advantages worth sharing: where portability matters more than eye candy features.</p>
<p>Oniro's Bitbake recipes enable makers to build products with user interface in a Yocto environment that can target different kernels or graphics systems.</p>
<p>Oniro's blueprints will illustrate integration details to match a product requirement.</p>
<p>Demos of vending machine (running on Linux+Wayland) or keypad (on Zephyr MCU OS) will be shown too.</p>Philippe CovalGabor Kiss-Vamosioniro-lvgl-fosdem2022.pdf
LVGL : Light and Versatile Graphics Library
LVGL Sources:
Oniro: The Distributed Operating System That Connects Consumer Devices Big and Small
Join Eclipse's Oniro Project
LVGL on Oniro FOSDEM2022 Presentations Slides (Web with videos)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:45D.graphicsturnipThe status of turnip driver development.What happened in 2021 and will happen in 2022 for turnip.devroom<ul>
<li>Explain what turnip driver is about and who are working on it.</li>
<li>Explain what is achieved in 2021 on turnip.</li>
<li>Brief plan for turnip development for 2022.</li>
</ul>
Hyunjun KoThe status of Turnip driver development
https://gitlab.freedesktop.org/mesa/mesa
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0001:00D.graphicsv3dvv3dv: Status Update for Open Source Vulkan Driver for Raspberry Pi 4devroom<p>Igalia has been developing a new open source Mesa driver for the Raspberry Pi 4 since December 2019, and FOSDEM 2021 had a presentation with the status of the driver at that point. This talk will describe the current status of the driver, and discuss the improvements on the driver since last year presentation, focusing on all the work that was done to improve the driver performance, and a high level overview of the path that got the driver Vulkan 1.1 conformant. Finally, we will talk about future plans and how to contribute to the on-going development effort.</p>Alejandro Piñeirov3dv: Status Update for Open Source Vulkan Driver for Raspberry Pi 4
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:45D.graphicsvulkan_bordersFun with border colors in VulkanAn overview of the story behind VK_EXT_border_color_swizzledevroom<p>The talk will give an overview of texel input operations according to the Vulkan specification text and how border colors, specified when creating Vulkan samplers, are supposed to fit in them. Then, the VK<em>EXT</em>custom<em>border</em>color extension will be explained together with the problems that were found in it thanks to Mesa's Zink OpenGL-on-Vulkan driver. This lead to the creation of the complementary VK<em>EXT</em>border<em>color</em>swizzle extension recently, which will be explained as well.</p>Ricardo GarciaFun with border colors in Vulkan
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0001:00D.graphicsdmabuffeedbackOptimal buffer allocation on Waylandlinux-dmabuf feedbackdevroom<p>Wayland compositors try to make of most of the hardware by displaying directly without any copy pixel buffers coming from clients such as games, browsers and video players. This lowers battery usage, improves latency and leaves the 3D engine free for clients to use. The display engines found in modern GPUs often can support this zero-copy mechanism only if the buffers have been allocated in a special fashion. However, buffers allocated this way won't be optimal for rendering, and only a handful of buffers can be directly displayed.</p>
<p>As a result, a trade-off between zero-copy display and optimal rendering needs to be made. The compositor is the natural place where a decision can be made, because it has a global view of all apps which need to be presented. Once the compositor has taken a decision, it needs to be communicated to the clients. The brand new linux-dmabuf feedback protocol enables this negotiation between the compositor and the clients.</p>
<p>If you're up for some window system integration madness, grab some popcorn and come enjoy the show!</p>Simon Ser
Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:30D.hpcbig_data_police_crimeHPC for Social & Crime ScienceBig Data in Police and Crime Researchdevroom<p>Many scientific disciplines have benefitted from the availability of big datasets to develop algorithm supported solutions. Recently, this trend has penetrated the fields of crime and police research. The presentation highlights use cases of big data computation and HPC for typical datasets in crime science: crime records, emergency call data, and police GPS data. The focus lies on spatiotemporal applications (i.e., geocoding, map matching, spatial and temporal algorithms). The datasets come from a collaborative project with a Belgian police force and encompass approximately 200,000 crime records and 400 million individual GPS datapoints (x and y coordinates + timestamp). The project aims at establishing the crime preventive effect of police patrols through a longitudinal research design. Besides offering novel computational solutions for crime scientist, these kinds of datasets introduce important ethical considerations as well as potential biases in human-led data entry and collection. These considerations underline the need for social scientists to become more literate in the computational sciences and support the framework of ‘crime science’ as a discipline of exact methods and data sources.</p><p>Many scientific disciplines have benefitted from the availability of big datasets to develop algorithm supported solutions. Recently, this trend has penetrated the fields of crime and police research. The presentation highlights use cases of big data computation and HPC for typical datasets in crime science: crime records, emergency call data, and police GPS data. The focus lies on spatiotemporal applications (i.e., geocoding, map matching, spatial and temporal algorithms). The datasets come from a collaborative project with a Belgian police force and encompass approximately 200,000 crime records and 400 million individual GPS datapoints (x and y coordinates + timestamp). The project aims at establishing the crime preventive effect of police patrols through a longitudinal research design. Besides offering novel computational solutions for crime scientist, these kinds of datasets introduce important ethical considerations as well as potential biases in human-led data entry and collection. These considerations underline the need for social scientists to become more literate in the computational sciences and support the framework of ‘crime science’ as a discipline of exact methods and data sources.</p>Philipp M. DauHPC_DEV_CRI_SLIDES
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:30D.hpcscip_scalable_cytometry_image_processing_daskSCIP: scalable cytometry image processing using Dask in a high performance computing environmentA software for distributed processing of bioimaging datasetsdevroom<p>Bioimage analysis is the process of extracting novel insights from microscopy images of tissues, cells or other biological entities. Many tools, such as ImageJ, QuPath or CellProfiler are heavily used by researchers to quantitatively interpret those complex images. These tools perform tasks such as normalization, image segmentation, image masking or feature extraction. However, these tools are designed for usage on local workstations with a GUI and for the most part only allow vertical scaling to deal with an increase in dataset size. This limited scalability poses a problem as bioimaging datasets keep growing in volume.</p>
<p>Here, we introduce Scalable Cytometry Image Processing (SCIP). SCIP is an open-source tool that implements single-cell bioimage processing on top of Dask, a framework for distributed computing written in Python. By utilizing Dask to execute all computations, scalability is integral to the software allowing it to be executed on high performance computing clusters. Dask's smart task scheduling ensures computational resources are used efficiently. SCIP also takes advantage of Dask features such as fault tolerance, load balancing or data locality. This allows SCIP to process large datasets more efficiently and more robustly compared to other tools.</p><p>SCIP was written in Python, and all code is freely available. It can run in local (single-node) or distributed mode. In the latter, Dask's components communicate efficiently using the MPI standard. SCIP can be used as a stand-alone command line tool, or integrated into existing Python scripts using the API.</p>
<p>For a similar setup, SCIP showed a 4-fold decrease in runtime compared to CellProfiler. SCIP needed considerably less manual work to prepare the dataset for processing thanks to more efficient data input. Comparisons were executed on the Flemish Supercomputer Center Tier-1 high performance cluster. We processed two cytometry datasets containing images of human blood cells: an imaging flow cytometry dataset containing 270,000 6-channel images of 90 by 90 pixels, and a confocal microscopy dataset containing 869 5-channel images of 1600 by 900 pixels.</p>
<p>The imaging flow cytometry dataset is processed by SCIP in 484 seconds using 80 workers running on 3 compute nodes. Each node has 24 cores (Intel Xeon E5-2680v4 @ 2.4GHz) and 120GB of memory, which is divided over the workers.</p>
<p>The microscopy dataset is processed by SCIP in 2187 seconds using 16 workers running on 1 compute node. This node has 32 cores (Intel Xeon Silver 4110 CPU @ 2.10GHz) and 364GB memory, which is divided over the workers. This workflow also uses a GPU (Nvidia GeForce RTX 3090) for identifying the cells in the microscopy images.</p>Maxim LippeveldVideo slide deck
Github repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:30D.hpcdistributed_join_cratedbDistributed Join Algorithms in CrateDBHow We Made Distributed Joins 23 Thousand Times Fasterdevroom<p>Join operator is one of the standard operations available in relational databases. In a large-scale distributed scenario, efficiently implementing joins poses unique challenges as the data is usually spread around a cluster of machines instead of stored on a single machine. The goal of this talk is to illustrate the approach to implementing distributed joins in the CrateDB database that exhibits significant performance improvements compared to the existing algorithms. In the first part of the talk, we will cover the limitations of the nested loop and block nested loop join algorithms. The second part will show how the hash algorithm can work in distributed settings by addressing some of its memory limitations. Finally, we will introduce the distributed block hash join algorithm and how it enables CrateDB to analyze massive amounts of data 23 thousand times faster compared to the initial nested loop implementation.</p><p>In relational databases, join operators are usually implemented with nested or block nested loop algorithms. However, in a large-scale distributed scenario, the ability to efficiently query massive amounts of data can be challenging. Traditional approaches in implementations of join operators are no longer enough to achieve the high performance of complex joins in distributed data processing systems. For instance, a nested loop algorithm is relatively simple to implement and could be easily adjusted to execute distributed joins. Unfortunately, it comes with a high-performance cost that equals quadratic time complexity with respect to the number of rows of the two tables joined.</p>
<p>This talk will show our approach to implementing distributed equi-join operator in CrateDB that exhibits significant performance improvements compared to the original nested loop algorithm. CrateDB is an open-source, distributed SQL database that runs queries on millions of data records daily. It scales up to hundreds of nodes and PBs of indexed data making the performance of join operators highly important: it is required to have efficient algorithms that can scale with the input size.</p>
<p>More specifically, we explore the implementation of the distributed block hash join algorithm. First, we address the memory limitations of the basic hash join algorithm with a switch to block-based processing. Block-based processing refers to a procedure of dividing a large dataset up into smaller blocks that can be worked on separately. As those blocks can be distributed across the CrateDB cluster the join can be executed in parallel using multiple nodes for increased performance and load distribution. Second, we illustrate the changes in the single node block hash join algorithm to enable its distributed execution.</p>
<p>To evaluate the performance of distributed block hash join algorithm, we run CrateDB benchmarks against two algorithms: the original nested loop algorithm and the single node block hash join algorithm. The benchmark consists of queries with join operators and runs on tables of various sizes, up to 50 million rows. The final result illustrates that the distributed block hash join algorithm enables CrateDB to analyze massive amounts of data 23 thousand times faster than the initial nested loop implementation.</p>Marija Selakovic
CrateDB source code
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3000:30D.hpcmultidimensional_bloom_filtersMultidimensional Bloom FiltersA Survey of What, When, Whydevroom<p>Claude Warren will present an overview of his recent work to implementing multidimensional Bloom filters. This talk will focus on the implementation of the multidimensional Bloom filters, their current use in modern software, and how they are applicable as a multi-column index, an index into large document collections, or an index to encrypted data. The talk will briefly describe Bloom filters and their construction before discussing strategies for the management of multiple Bloom filters; also known as multidimensional Bloom filters. Data from a comparative analysis of several multidimensional Bloom filter strategies will be presented along with discussion of when to select one implementation over another.</p>
<p>All source code referenced is under the Apache 2 or similar open source license and is available on Github.</p>Claude WarrenMultidimensional Bloom Filters
Cassandra Index Code
Proposed commons-collectons4 Bloom filter code
Multidimensional Bloom filter evaluation suite
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:30D.hpcutilizing_amd_gpusUtilizing AMD GPUs: Tuning, programming models, and roadmapdevroom<p>During FOSDEM 2021, we presented in the same event the LUMI supercomputer and we discussed about the Open Software Platform for GPU-accelerated Computing by AMD (ROCm) ecosystem, how to port CUDA codes to Heterogeneous Interface for Portability (HIP), and some performance results based on the utilization of NVIDIA V100 GPU. In this talk we assume the audience is familiar with the content of the previous presentation.
One year later, we have executed many codes on AMD MI100 GPU, tuned the performance on various codes and benchmarks, utilized and tuned a few programming models such as HIP, OpenMP offloading, Kokkos, and hipSYCL on AMD MI100 and compared their performance additionally with NVIDIA V100 and NVIDIA A100 (including CUDA). Furthermore, a new open source software is released by AMD, called GPUFort, to port Fortran+CUDA/OpenACC codes to Fortran+HIP for AMD GPUs. In this talk we present what we learned through our experience, how we tune the codes for MI100, how we expect to tune them in the future for LUMI GPU, the AMD MI250X, compare the previously mentioned programming models on some kernels across the GPUs, present a performance comparison for single precision benchmark, discuss the updated software roadmap, and a brief update for the porting workflow.</p>Georgios MarkomanolisUtilizing AMD GPUs: Tuning, programming models, and roadmap
GPUFort
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.hpcexascale_pmiExascale PMI on a heterogeneous sub-exascale Slurm clusterdevroom<p>PMIx (Process Management Interface exascale) is a de-facto standard providing a very efficient interface to launch and control distributed tasks. It was created for exascale HPC systems, where launching a computational job can involve tens of thousands of nodes and bootstrapping MPI (Message Passing Interface) becomes cumbersome. PMIx reduces launch times in such systems from minutes to a few seconds.</p>
<p>Even though the lower launch times are less critical in smaller clusters (but always welcome), the high efficiency of PMIx is also desirable at sub-exascale. The low data footprint and data exchange, as well as leveraging fast interconnects is useful on systems with lower-end network fabrics. Moreover, its tight integration with the resource manager is very helpful to minimize idling on clusters with limited resources.</p>
<p>At VUB (Vrije Universiteit Brussel), we have recently transitioned our tier-2 HPC cluster to Slurm and enabled PMIx in a mixture of TCP and InfiniBand networks. We will share the lessons learned in the process and practical tips to deploy a reliable setup with open source software.</p>Alex DomingoExascale PMI on a heterogeneous sub-exascale Slurm cluster
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.hpcsignal_processing_cupyPorting Signal processing algorithms to CuPy for precision measurementdevroom<p>At European Organization for Nuclear Research(CERN), for the alignment of large superconducting magnets and cryogenics, an interferometry based system is being devised to identify the position of their elements.
This technique uses interferometry principle and uses sweeping laser to identify the distance of multiple points using Fourier Analysis. The data acquired from photo-detection module, received after a sweep of laser source, needs to undergo sophisticated post processing to obtain the final results. The system must monitor position of a large number of elements every second. Dealing with 1000s of target points in less than 1 second required time-optimized and precise calculation. Thus, GPU was employed to provide faster and precise results. This required to use signal processing algorithms like: Butterworth Filter, Hilbert Transform, Savitzky-Golay smoothing Filter in GPU.
This talk will cover steps involved in adopting signal processing algorithm to GPU to achieve better performance and understand the effects of parallelism achieved. For the initial development, CuPy library for NVIDIA GPUs is used and later moved to implementation in C. CuPy provides wrapper for most of the CUDA toolkit in Python. We will also provide highlight about performance metrics with respect to increase in the data size and possible optimizations of its processing.</p>Mamta Shukla
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.hpcpira_performance_instrumentationPIRA: Performance Instrumentation Refinement Automationdevroom<p>PIRA is a tool to automatically filter and focus Score-P's profiling to relevant program regions.
This involves both static, i.e., source-code feature, and dynamic, i.e., runtime information, analysis.
It uses the whole-program call-graph representation MetaCG for its analyses and has been used for automatic (a) hot-spot detection and refinement, (b) scalability analysis, (c) kernel identification, and (d) MPI load-imbalance detection.</p>
<p>In this talk, we present an overview of MetaCG and PIRA together with its analyses and a focus on the most recent addition of automatic (MPI) load-imbalance detection.
Our experiments on the SPEC CPU 2006 suite show that PIRA automatically constructs overview measurements with runtime overhead < 10%.
For the load-imbalance detection, our experiments on MPI-parallel LULESH and the Ice-sheet and Sea-level System Model~(ISSM) show that PIRA keeps the runtime overhead below 15%, while correctly identifying the existing load imbalances.</p>
<p>PIRA and MetaCG are available under BSD 3-clause license at https://github.com/tudasc/pira and https://github.com/tudasc/metacg.</p>Jan-Patrick LehrPIRA - FOSDEM Abstract
PIRA Repository
MetaCG Repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:30D.hpcwoods_ood_generalization_benchmarksWOODSA set of Benchmarks for Out-of-Distribution Generalization in Time Series Tasksdevroom<p>In the last decade, the field of AI has seen a significant surge in capabilities in machine learning techniques. Nowadays, models with up to billions of parameters are trained for vast arrays of downstream tasks and obtain performance that defies what a lot considered possible 20 years ago. However, the reliance of machine learning models on the spurious correlations often prevents them from learning the intrinsic and invariant features of data, leading to their failure to generalize to Out-Of-Distribution (OOD) data. Understanding and overcoming these failures have led to a research program on OOD generalization.</p>
<p>The field has been extensively explored in the static computer vision tasks (Domainbed, WILDS) but has been severely underexplored for time series tasks essential for multiple areas of applied machine learning, e.g., medical, finance, communication. We propose a set of new open source out-of-distribution generalization datasets for sequential prediction tasks spanning multiple modalities that act as benchmarks for potential algorithms that promote invariant learning. Along with the datasets, we provide a fair and systematic open-source platform for evaluating the performance of existing and potential algorithms on these datasets. We also provide a leaderboard that currently consists of popular algorithms' performance in the field of OOD generalization.</p>Jean-Christophe Gagnon-Audet
Project page
Github page
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:30D.hpchpc_knowledge_baseBringing together open source scientific software development for HPC and beginnersdevroom<p>In the scope of the National Research Data Infrastructure Germany (NFDI) we develop and maintain a knowledge-base with guides and best practices about scientific software development – availabe at https://nfdi4ing.pages.rwth-aachen.de/knowledge-base/.</p>
<p>With the knowledge-base we pursue the goal to make sustainable software development possible for everybody. Most importantly, we want to encourage people without strong computer science background to apply fundamental best practices, e.g., version control, from the start. We believe this is necessary since many engineers – and not computer scientists – write scientific code. Starting from version control, the topics range to fully automated experiments using CI/CD workflows. Many of the existing examples concern OpenFOAM development due to the knowledge-base’s heritage in TU Darmstadt’s CRC 1194. Since then, we also are working with the Lehrstuhl für Hydromechanik und Hydrosystemmodellierung (LH²) as well as with the Institute of Wasserbau and the Institute of Fluidsystemtechnik at TU Darmstadt.</p>
<p>While curating the content, which we maintain in a Gitlab repository using the HUGO website generator, we realized that one of the most important additions that we provide is an actively maintained and simple glossary. Especially for people not yet very familiar with the technologies used, the pure number of terms can be intimidating and confusing. Our glossary helps by providing brief explanations of relevant terms used throughout the articles. An addition for which we modified the actual HUGO template is that we provide a taxonomy of articles rather than a pure folder structure to ease the navigation.</p>
<p>The knowledge-base is an on-going effort in which we appreciate feedback and contributions. In the presentation, we will take a closer look on the different materials provided for people developing software, people using software, and how people can actively contribute to the knowledge base through our peer-review process and material creation.</p>Jan-Patrick LehrMoritz SchwarzmeierNFDI4Ing Knowledge Base AbstractPresentation Slides
Knowledge Base presented in the talk
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:3000:30D.hpcopen_source_hepOpen source tooling in High-Energy Physics Softwaredevroom<p>Particle physics experiments have often had a pioneering role in the use of open source software. In this talk we review the current scientific software ecosystem, with particular emphasis on the tooling to build and deploy the typical software stack of an experiment.</p><p>Particle colliders are powered by software, from the simulations supporting their design to the systems controlling the running experiment, and would not be feasible without organizing community efforts into open source projects like Geant4 (simulation of the passage of particles through matter), ROOT (general I/O and analysis toolkit), CVMFS (software deployment) and Indico (event organization) and the python tools of the Scikit-HEP project.
However, the numerous libraries have exploded the software stack of new experiments and require often complex dependency management and build tooling. We show how the Spack package manager can adress these problems and make building complex experiment stacks easy and accessible to everyone.</p>Valentin VolklFOSDEM_heptooling Slides
https://
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:1500:15D.javascriptjavascript_welcome_day_2JavaScript welcome session - day #2devroom<p>A short introduction about JavaScript Devroom with some interesting resources about JavaScript and a presentation about this special second day for the FOSDEM JS Devroom.</p>Ludovic GascFabien Benetou (@Utopiah)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:30D.javascriptreactReactReact Virtual Domdevroom<p>The talk would center on React Virtual Dom</p>
<ol>
<li>How React Works</li>
<li>How to handle React Logic</li>
<li>The difference between Virtual Dom and Browser Dom</li>
<li>React Architecture.</li>
</ol>
<p>Talking about React Architecture, give detail information about how react works</p>Gabriel Soft
My GitHub repository for reference to some react project
Reference to react project
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0001:00D.javascriptwriting_less_insecure_javascriptWriting less insecure JavaScriptPractical tips to rule out common mistakesdevroom<p>In 2021 we saw several security incidents. Looking closer at it, some patterns emerge, that could help prevent them in the future.</p><p>In this talk, you will learn about some precautions you can take for your code, but also what you can do in your team, your company or as part of a community.
Thinking about code as a communication medium means, we also should look at the people to prevent security incidents.</p>
<p>You will get practical tips that you can realise today.
There are also some recommendations you should bring up in your team to help you stay safer in the future.</p>
<p>Since there is so much to talk about, the slides are designed as choose-your-own-adventure, but the presentation itself is following a single path.</p>André JaenischWriting less insecure JavaScript (Export)Subtitles (without Q+A)
Reveal.js presentation with speaker notes
My Twitter Account
My Homepage
10 npm Security Best Practices by Snyk
OWASP HTML5 Security Cheat Sheet
How to load subtitle file in VLC
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:30D.javascriptsomebody_set_up_us_the_bombSomebody set up us the bombExpansion attacks in Node.jsdevroom<p>Denial of Service (DoS) bombs are a rudimentary, yet effective, type of attack that's often easy to understand but hard to protect from.</p>
<p>In this talk I'll cover some common "bombs" such as XML Bombs, YAMLs Bombs and Fork Bombs, and some basic techniques that can help defend from them.</p>Allon MureinikSlides from the session
Source code for benchmarks shared in the session
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:30D.javascriptshedding_light_on_the_shadow_domShedding Light on the Shadow DOMLearning how, when, and why to use the shadow DOMdevroom<p>In the world of design systems and component libraries, developers need to build encapsulated components so they can confidently use them anywhere in an application. The shadow DOM serves to provide this encapsulation, and ensure that a component’s styles and functionality are not affected in the context of a complete application. In this talk, we’ll learn what the shadow DOM is and how to use it when building reusable components. We’ll use Stencil, a web components compiler, to demonstrate the common use cases of the shadow DOM, and where it fits in the context of a design system.</p><p>Using the shadow DOM effectively requires a few strategies that may not be well known to developers who only use the light DOM. In this talk, we’ll see how to take advantage of all kinds of common styling paradigms, from using CSS frameworks to global styles for multiple components, all while maintaining style encapsulation. The shadow DOM, like any tool, should only be used for certain situations, and so we’ll look at when to use and when not to use the shadow DOM. For the times when we can’t use the shadow DOM, we’ll see what other strategies we can use to still achieve encapsulation.</p>Anthony Giuliano
Stencil Documentation
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.javascriptbuilding_a_tiny_javascript_runtime_with_quickjsBuilding a tiny JavaScript runtime with QuickJSHow I built a runtime with Duktape and then rebuilt it with QuickJSdevroom<p>QuickJS is a (small) JavaScript engine by Fabrice Bellard.</p>
<p>Over the past 6 years I've built a couple of small JS runtimes, first using Duktape, then using QuickJS. The premise was to always use existing libraries to add functionality, including WASM support.</p>
<p>This presentation will go through the differences of both libraries and the 2 projects I built leveraging them.</p><p>There are many libraries out there which one can use to build a JS runtime these days, with the most well known one being V8.</p>
<p>Node and Deno are both using V8, but how would a different take at building a JS runtime look like?</p>
<p>I asked myself this question some years ago and started building a small project with Duktape. That project was ultimately a failure, but I learned very valuable lessons in runtime design and always wanted to revisit that project.</p>
<p>Fast forward a few years, QuickJS was released by Fabrice Bellard, and I was excited! It was so easy to integrate that I began to implement a new runtime using it. This runtime is called txiki.js and while it's a small project it already integrates libuv for fast networking and the event loop, curl for making HTTP requests and wasm3 for WASM (and WASI!) support.</p>Saúl Ibarra CorretgéSlides
Duktape JS engine
QuickJS engine
txiki.js runtime
Skookum JS runtime
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.javascriptfrom_microrepos_to_monorepoFrom microrepos to monorepo: thrilling adventures in refactoringOn how to tame, and accelerate, builds and tests in a 25 module monorepodevroom<p>Building a monorepo composed of more than 25 modules, internal dependencies and iOS and Android app to boot is a challenge. Doing so fast and under a certain cost threshold might seem daunting. However, in polypoly we’ve tried to do it for the past few months, creating our own build/test tool with 0 dependencies and a straightforward approach to what a monorepo needs, when it needs.</p><p>Testing needs to follow the F.I.R.S.T. principles, of which the first one, Fast, is possibly the most important. Fast testing ensures that developers respond quickly to all kind of testing errors, and of course it keeps the cost of testing low.</p>
<p>Monorepos have additional challenges: dependencies cross language boundaries, dependence graphs are not explicit, and there's the risk of centralising some, none, or all the submodule upstream dependencies.</p>
<p>At polypoly we have been using a monorepo since May 2021. In this talk we will show how we have tackled this challenge with a series of GitHub actions, as well as creating a tool, build.js, which is geared towards dealing with monorepos.</p>
<p>We will show how this tool partially solves the speed issue, and what are our plans, going forward, to make tests faster and deal with implicit dependency graphs. We will also examine best practices in the area of monorepo builds for projects whose majority is written in Javascript/Typescript.</p>Juan Julián Merelo
The polyPod, bringing data sovereignity to the people
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.javascriptweb_application_localization_without_tearsWeb Application Localization Without TearsLearn how to translate your JS web app fastdevroom<p>“The more languages your software knows, the more of a satisfied users you have". However, current software localization in modern JS frameworks and other software is complicated and fairly time-consuming for all involved participants. Thanks to the in-context localization feature of open-source project Tolgee, this tool offers easier localization process, more relevant translations delivery and finally less work for developers.</p>
<p>The workshop will contain live demo where I would like to describe using Tolgee JavaScript software development kits on simple React.js web application example. However, Tolgee is currently compatible with other frameworks such as Angular, Svelte, Vue.js or Next.js.</p>
<p>Participants will learn easy localization workflow using by Tolgee tool, simple localization texts management, how to integrate Tolgee into web app in less than one minute, how to take advantage of different Tolgee features as e.g. automatic generation of screenshots or in-context localization.</p>Jan Cizmar
Docs
Tolgee Platform Github Repo
Tolgee JS packages monorepo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:30D.javascriptsymbols_symbols_everywhereSymbols Symbols everywheredevroom<p>As part of javascript ES6 (ECMAScript 2015) a new primitive type called symbols was added to the programming language. It is not a widely talked about feature but useful for certain scenarios.</p>
<p>The talk will explain the following new features and demo how they are used.</p>
<ul>
<li>What are symbols and why they were introduced</li>
<li>Use cases for symbols</li>
<li>Why would you use them</li>
<li>Creating and Overwriting symbol methods</li>
<li>Well known symbols</li>
<li>Explore core source code of symbols</li>
</ul>
Martin Naughton
Personal website that i should start updating more
A company i started building software applications
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:30D.javascriptmicro_lcmicro-lc: a new micro-frontend orchestratorThe easiest way to micro-frontenddevroom<p>micro-lc enables you to create modular applications composed by multiple, independent micro frontends called plugins integrated at runtime. micro-lc consists of a core interface that loads, embeds, and orchestrates plugins, while providing configuration options and useful out-of-the-box features.</p>
<p>The core components are written in Typescript and React, micro-lc is technology-agnostic, which means that it integrates seamlessly with your favourite toolkit, being it Angular, React, Vue, or anything else you like.</p>Matteo Pietro Dazzimicro-lc presentation
Official website
Source code
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:10D.kotlinkotlin_devroom_welcomeKotlin DevRoom Welcoming Remarksdevroom<p>Welcoming participants to the virtual edition of the Kotlin DevRoom @ FOSDEM</p>Nicola CortiMartin BonninMarco GomieroHolger SteinhauerJulien Salvi
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:1000:30D.kotlinthe_state_of_kotlinThe State of KotlinQ1 2022 Editiondevroom<p>In 2021 Kotlin turned 10 and the team delivered 2 major releases (1.5.0 and 1.6.0) and a few minors. The main themes of those releases were Java interoperability and consistency of the language features. Meanwhile, Kotlin/JS has been promoted to Beta and KMM is on its path to reaching Beta status as well. However, one long-running project in Kotlin is the development of the new compiler, K2, which should set a solid foundation for the language and the ecosystem for the years ahead.</p>
<p>This session is an overview of the latest developments in Kotlin: the language, tools, compiler, and the ecosystem around it. We're also going to take a look at Kotlin's roadmap to see where are we heading. Come and learn what's new and exciting!</p>Anton Arhipov
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:4000:30D.kotlinadvanced_multiplatform_dependency_injectionAdvanced multi-platform dependency injection with Kotlindevroom<p>Dependency Injection is a complicated topic, and when used in a project that compiles to multiple targets through different compilers & runtimes, it can lead to serious headaches. However, the Inversion of Control pattern brings a lot of architecture features and safety.</p><p>In this talk, we will see how to use all the power of Kodein-DI, a popular dependency injection library that works everywhere Kotlin can compile to, in a mobile multi-platform project targeting Android, iOS and the mobile Web.</p>
<p>We will start by using the dependency injection pattern to abstract and test the behavior of multi-platform business modules. We will then see how to debug common dependency management errors.</p>
<p>Finally, we will enhance our common code using advanced features of Kodein-DI such as set bindings, lazy access, context, and scopes.</p>Romain Boisselle
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:1000:30D.kotlinthe_beauty_of_kotlin_typing_systemThe beauty of Kotlin typing systemdevroom<p>The Kotlin typing system is amazingly designed. It was designed and constantly improved for years, and it was built based on experiences from other typing systems. As a result it gives us very comfortable nullability support, type inference, universal guards, and much more. In this presentation, we’ll dive deep into Kotlin typing systems and how small design choices lead to a better programming experience.</p><p>The Kotlin typing system is amazingly designed. It was designed and constantly improved for years, and it was built based on experiences from other typing systems. As a result it gives us very comfortable nullability support, type inference, universal guards, and much more. In this presentation, we’ll dive deep into Kotlin typing systems and how small design choices lead to a better programming experience.</p>Marcin Moskala
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:4000:30D.kotlinkotlin_code_first_process_modelling_kalasimCode-first process modeling and analysis with kalasimUnderstand and optimize real-world processes at easedevroom<p>kalasim is a discrete event simulator written in pure Kotlin that enables complex, performant, dynamic process models. It provides a statically typed API, dependency injection, modern persistence, structured logging and automation capabilities.</p>
<p>kalasim is designed for simulation practitioners, process analysts and industrial engineers, who need to go beyond the limitations of existing simulation tools to model and optimize their business-critical use-cases. In contrast to many other simulation tools, kalasim is neither low-code nor no-code. It is code-first to enable change tracking, scaling, refactoring, CI/CD, unit-tests, and the rest of the gang that makes simulation development fun.</p>
<p>In the talk, we will learn about its core concepts and study several examples from different application domains.</p>Holger Brandl
Repo
Documentation
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:1000:30D.kotlinkotlin_plus_mathsKotlin + Mathsdevroom<p>Grab your notebook cause in this talk, we are gonna talk about Math and Kotlin! Especially in the power that Kotlin has to run long operations and the power to perform some calculations like computing min, max, an average of numbers stored in a list! - from sumOf {} to multi-dimensional arrays to charts!</p>Dinorah Tovar
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:4000:30D.kotlinkotlin_clis_and_starwarsKotlin, CLIs and StarWars! An introduction to creating CLI applications with Kotlin using Picoclidevroom<p>picoCLI is a small library that can be used to create JVM based command line interface applications. Within 30 minutes, we'll look at how to setup a project, create a small application and package it for others to use.</p><p>picoCLI is a small library that can be used to create JVM based command line interface applications.</p>
<p>Within 30 minutes, we'll look at how to setup a project, create a small application and package it for others to use.</p>
<p>picoCLI is nice for several reasons : CLIs are a great way to automate some commands we run every day. And because it supports Java and Kotlin, we can keep using our main language of choice rather than having to dive into bash or node. Finally, pico applications can be turned into native images using GraalVM, which allows for a nice end user experience.</p>
<p>By the end of this talk, you'll have a basic knowledge of what picoCLI can do, how to set it up and hopefully ideas of use cases to run it with!</p>
<p>This is a byte size presentation so it'll have to go fast!</p>
<ul>
<li>I'll introduce the project in 5 minutes.</li>
<li>Then jump into a starter project and the basic features of the library around. We will compile and test it live. - 20 minutes</li>
<li>Finally, we will look into some of the advanced features, and check at packaging options for end users - 5 minutes</li>
</ul>
Julien Lengrand-Lambert
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:1000:30D.kotlinksp_and_pluginsKSP and Plugins. Optimizing Kotlin Multiplatform common codedevroom<p>KSP (Kotlin Symbol Processing) is an API from Google for writing Kotlin compiler plugins. Using KSP we can write annotation processors to reduce boilerplate and solve cross-cutting concerns. Also KSP is more effective than KAPT. Among the advantages of using it is the support of Kotlin Multiplatform.
Another way to optimize common code is to use Kotlin plugins.
In my talk I would to like to show some samples how to use own plugins and KSP processing in Kotlin Multiplatform app supporting both iOS and Android.</p>Anna Zharkova
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:4000:30D.kotlindataclassgenerate_shrinking_kotlin_data_classesDataClassGenerate. Shrinking Kotlin data classesdevroom<p>This talk is a deep dive into Kotlin data classes optimisations. We will find what optimisations are possible, and how to apply them with Kotlin compiler plugins and Android optimisers.</p><p>In this talk:
1. We quantify data classes impact on App size
2. Apply general purpose DEX-code optimizations to data classes
3. Introduce DataClassGenerate (DCG), a Kotlin-specific optimisation fod data classes
4. Observe Kotlin Compiler Plugin API and DCG implementation</p>
<pre><code>- Describes DataClassGenerate approach
1. @DataClassGenerate annotation
2. DataClassGenerate compiler plugin
3. Kotlin Compiler plugin interaction with Redex
</code></pre>Sergei RybalkinSlides
Related slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:1000:30D.kotlinmocking_without_reflection_for_kotlin_multiplatformMocking without reflection for Kotlin/Multiplatformdevroom<p>Mocking typically involves reflection: an efficient mocker can create implementations of interfaces or even concrete classes on the go by reflecting on their methods and properties.
These required capabilities do not exist in Kotlin/Multiplatform, so we will explore an alternative method to runtime reflection: a compile-time symbol processor.</p><p>Using Mocking as an excuse, we will explore how we can use KSP (Kotlin Symbol Processor) to circumvent the absence of reflection and generate efficient mocks at compile time. We will also see the limitations that multiplatform brings to both the KSP Mocker generator and its associated runtime. We will explain the choices that we made when developing the MocKMP multiplatform mocking library, and why they were needed. We will then demonstrate the clean DSL API we offer to describe and verify your mocks.
Finally, we will demonstrate how to architecture all these moving parts (KSP plugin, mocker generator, mocker runtime) using a custom Gradle Plugin to make using MocKMP as easy as it gets.</p>Salomon BRYS
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4000:30D.kotlinfrom_mobile_to_backendFrom Mobile to Backend with Kotlin and Ktordevroom<p>As mobile developers, we often see the backend world as something magical that "does things". But what if I tell you that you can easily build a backend even if mobile is your thing?</p>
<p>With this talk, I want to show how it is possible to bring your mobile knowledge (and shift it a little bit) to build a backend with Kotlin and Ktor. I will show how to structure the project, set up Dependency Injection, connect to a database and test everything to have a working backend ready to be deployed.</p>Marco Gomiero
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:1000:30D.kotlinnavigating_between_composablesNavigating between Composablesdevroom<p>This session will be about how to use Jetpack Compose navigation in your Compose app. It will include the topic of passing arguments through navigation.</p>Maryam Alhuthayfi
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:4000:30D.kotlinnot_only_python_kotlin_for_scriptsNot only Python: Kotlin for scriptsdevroom<p>Python is ubiquitous in scripts, and it has definite benefits. However, Kotlin developers don't need to migrate to another stack to create scripts.</p>
<p>In this talk, I'll show you how I use Kotlin to have an always up-to-date GitHub profile.</p>Nicolas Frankel
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:1000:30D.kotlingradle_a_deeper_look_at_the_kotlin_dslGradle: a deeper look at the Kotlin DSLEverything you didn't want to know about Gradle Kotlin APIsdevroom<p>Originally designed for Groovy, Gradle now supports writing scripts in Kotlin. Writing your scripts in Kotlin brings more compile-type safety and IDE features but also has a few drawbacks.</p>
<p>In this talk, we will take a look some widely used Groovy constructs, their Kotlin equivalent and what’s happening under the hood. We will explore how Gradle loads scripts and uses Kotlin compiler flags to allow a the Kotlin DSL syntax.</p>Martin Bonnin
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:4000:30D.kotlinlivecoding_a_web_server_with_ktorLive-coding a web server with KtorSet up a web server and a client with Ktor in a live coding session.devroom<p>Ktor is a Kotlin framework dedicated to building asynchronous servers and clients in connected systems.
In this session, I will explain and demo the core concepts of Ktor 2 by live coding an HTTP server from scratch using Ktor Server.
Also, we'll take an overview of Ktor Client, from setting it up to making requests and installing plugins.</p>Renaud Mathieu
Deploy a microservice in Kotlin with Ktor — Part 1
Deploy a microservice in Kotlin with Ktor — Part 2
Deploy a microservice in Kotlin with Ktor — Part 3
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:1000:35D.kotlinrefactoring_glided_rose_kataRefactoring Gilded Rose Katadevroom<p>Gilded Rose refactoring kata is a coding exercise designed to practice your refactoring and test cases writing skills. In this live coding session I will use the Kotlin version of the kata to show how a sequence of small improvements can make a difference taking program design to a better and more functional place. You will see a few refactoring heuristics, IntelliJ tips and tricks and design emerging from seemingly chaotic code.</p>Dmitry Kandalov
The Easy Way to Create IntelliJ Plugins at VKUG
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:30D.open-hardwarecorundumcorundumFrom a NIC to a Platform for In-Network Computedevroom<p>The talk provides an introduction to the corundum project, implementing a 100 GbE NIC based on Commercial-off-the-shelf (COTS) FPGA cards, e.g. Xilinx Alveo Cards. The project consists of all necessary RTL components, e.g. PCIe DMA engine, NIC datapath, MAC, PHY and integration of vendor specific IP cores, such as transceivers and PCIe hard-IP cores. In combination with the provided driver and debugging utility the ready-to-experiment state just requires a supported FPGA card + compiler to kick-off playing with the project.</p>
<p>The existing state provides the platform for future In-Network Compute platform research, allowing for application logic to be balanced across hardware acceleration and software flexibility. The platform uniquely allows for experiments with lower layer protocols, e.g. PHY layer coding.</p>
<p>The talk concludes with an overview about short term and mid term goals of the project.</p>Ulrich LangenbachAlex ForencichCorundum - From a NIC to a Platform for In-Network Compute
corundum github repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:50D.open-hardwarecoriolis2Coriolis RTL-to-GDSII ToolchainState of advancement and planned improvementsdevroom<p>Sorbonne Université, in collaboration with Chips4Makers and LibreSOC are
working to provide a complete FOSS toolchain to make ASICs in mature
technological nodes, that is, no smaller than 130nm. We take a circuit
description in HDL, synthetize with Yosys but instead of targetting a FPGA, use
an ASIC standard cell library to get the RTL description. From there, with
Coriolis2, we perform the classical steps of a RTL to GDSII flow, that is,
placement, routage along with very basic timing closure.</p>
<p>We will particularly focus on last year progresses and present the planned
improvements and new features for 2022.</p>Jean-Paul Chaput
The Coriolis Documentation
Coriolis repository
Checking/examples toolkit
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:2000:30D.open-hardwareopenwifipynqz1Bring openwifi to PYNQ-Z1 with ultra low costdevroom<p>Both software-defined radio and FPGA are interesting. Especially, the combination of AD936X RF transceiver and ZYNQ 7020 level FPGA SoC is capable of running openwifi. Price has been keeping average DIYers away from this kind of platform as evaluation boards from ADI and Xilinx are both extremely expensive. Cheaper ones like ANTSDR exist, but seems all of them have tied the RF and ZYNQ chip together, so these are not suitable for generic ZYNQ development anymore.</p>
<p>In this talk, I want to introduce an openwifi capable low-cost AD936X extension board design and realization for the wildly available PYNQ-Z1 board by Digilent. This provides openwifi and PlutoSDR functionalities meanwhile keeping the major if not all functions of PYNQ-Z1 intact, with summed price potentially lower than all currently available openwifi capable platforms. Similar designs may also be applicable to other ZYNQ boards like ZYBO Z7-20 or Arty Z7-20, thus these could make openwifi available to much more people, especially those who already have a ZYNQ board. Besides this extension board, I'll also touch on tools and workflows for "modern" circuit board DIY, which enabled me to build this 4-layer board with BGA chip comfortably at home.</p>
<p>For more about openwifi, please visit the Free Software Radio devroom for "Opensource WiFi chip (openwifi) progress and future plan" on Sunday afternoon.</p>Yimin GuSlides
Board files and introduction
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:5000:20D.open-hardwaregtkwavecssWriting GTKWave documents, with styleA Python-based CSS-like mini language for generating GTKWave documentsdevroom<p>GTKWave is a nice tool for displaying signal traces, while developing with Hardware Description Languages, and has many formatting features like changing signal color, grouping signals in a hierarchy, etc. However, it can become tedious to manually edit through the GUI. Also, its document format, while ASCII, is a bit cryptic, and contains extra information pertaining to the GUI (window and panel sizes, last modification date, etc.), making it inconvenient for placing in revision control.</p>
<p>A Domain Specific Language for generating GTKWave documents was developed, separating signal description and structure from style, not unlike HTML+CSS, but described using Python Lists and Dictionaries. This makes it especially suitable for embedding in Python-based Hardware Description Languages and Simulators.</p>
<p>While it fits my own needs, I'm hopping to gather some feedback on this tiny library, so it could be made more generally useful.</p>Cesar StraussWriting GTKWave documents, with style
Tutorial
Source code
API documentation
Example usage
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:1001:00D.open-hardwarenmigennMigen HDLa way to create hardware in pythondevroom<p>nmigen™ is a tool for creating hardware, whether for ASICs or for FPGAs. it is not itself an actual language (like Verilog or VHDL), and it is not like MyHDL which allows translation of a limited subset of python source code into verilog. Instead, nmigen allows you - in python - to create HDL constructs, and to mix those in with the full power of python OO techniques: objects, classes, even multiple inheritance, which is sorely lacking in the Hardware world.</p>
<p>this talk will go through the background and origins of nmigen, present a short worked-example, present some best-practices for people wishing to transfer over from another HDL, and cover some of the planned advancements.</p>Luke Kenneth Casson Leighton
nmigen 1.0 repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:4500:40D.open-hardwareefablessEfabless Open ASICsan update from Mohamed Kassemdevroom<p>This presentation by Mohammed Kaseem, the CTO of e-Fabless, will outline how e-Fabless is empowering Libre/Open VLSI Hardware development. There are two initiatives: ChipIgnite which provides significantly-reduced cost Shuttle runs, and the Google-sponsored Skywater 130nm Programme.</p>Mohamed Kassem
Chipignite
efabless Open MPW
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3001:00D.open-hardwarelibresiliconUsing LibreSiliconHow to actually use the process and scaling itdevroom<ul>
<li>An overview of the minimal process flow</li>
<li>Talking about ways to implement it in a garage/shipping container environment.</li>
</ul>
David Lanzendörfer
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:30D.libreofficelotech_libreoffice73LibreOffice 7.3 New Featuresdevroom<p>A summary of LibreOffice 7.3 Community new features, with a specific focus on interoperability with Microsoft Office documents</p>Italo VignoliLibreOffice 7.3 New Features
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:30D.libreofficelotech_devexperienceImproving Developer Experience at LibreOfficedevroom<p>During the previous years, there has been a lot of efforts to improve developer experence (DX) at LibreOffice with the code that has a long history. In this presentation, I talk about various aspects of these improvements, and also the road ahead.</p>Hossein NourikhahImproving Developer Experience at LibreOffice
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:30D.libreofficelotech_operationalcodeTowards an Operational Code Aestheticsdevroom<p>Towards an Operational Code Aesthetics</p>Stephan Bergmann
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3000:30D.libreofficelotech_curlbasedCurl based HTTP/WebDAV UCPHow we deleted lots of codedevroom<p>LibreOffice uses <em>Universal Content Provider</em>s to access files via various protocols. Due to accidents of history, LibreOffice contained 2 different <em>UCP</em>s for WebDav and HTTP, one based on <em>neon</em> and the other on <em>Apache Serf</em>, each with different bugs and bugfixes.</p>
<p>For LibreOffice 7.3, thanks to a tender from The Document Foundation, we have replaced both of them with a new <em>UCP</em> based on <em>libcurl</em>, which is designed to meet all currently known requirements, and is able to use the operating system's TLS stack on Windows and macOS.</p>Michael Stahl
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:30D.libreofficelotech_editingsimulationEditing Simulationdevroom<p>Performance measurements are really challenging when it comes to real life situations. One of them was a user experience while typing on a document. This presentation covers that how we can achieve reliable and repeatable performance tests by implementing clever tools. These tools allow us to find out what happens in the background when a lot of people are typing rapidly and what we can optimize out of it.</p>Mert Tümer
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:30D.libreofficelotech_improvedcoverageImproved coverage analysis for LibreOffice's CIOur journey towards deeper integration of coverage analysis tools into Jenkins CI - a PrototypeFund projectdevroom<p>Improved coverage analysis for LibreOffice's CI. Our journey towards deeper integration of coverage analysis tools into Jenkins CI - a PrototypeFund project</p>Thorsten Behrenstalk slides as PDF
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:30D.libreofficelotech_libreofficekitLibreOfficeKit recent developmentsdevroom<p>Come and hear about how LibreOffice can be used by other applications via its C++ API called LibreOfficeKit. Its primary use is for document conversion or editing the documents in Collabora Online.</p>
<p>We are extending the LibreOfficeKit as necessary, and this presentation will talk about the recent developments there.</p>Jan Holesovsky
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3000:30D.libreofficelotech_libreofficegtk4LibreOffice GTK4 PortA status updatedevroom<p>Update on of the current state of the GTK4 port of LibreOffice with walk-through.</p>Caolán McNamaraslides
https://
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:30D.libreofficelotech_onlineperformanceOnline performancemaking collaborative editing quickerdevroom<p>Online performance wins making collaborative editing in your browser quicker.</p><p>Collabora Online has a novel model that allows re-using the core LibreOffice Technology to provide rich collaborative editing. Recently we have been been focusing our development on improving the 'feel' and slickness of document editing as a key part of user experience. We have also been working on improving editing performance with larger numbers of concurrent active editors.</p>
<p>Come and hear about the things that we've found and fixed, both in COOL and also in the LibreOffice core to improve interactivity and to make collaborative editing fly.</p>Michael Meeks
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:30D.libreofficelotech_lowaLOWA - LibreOffice WebAssemblyMost recent updates, working code, and ample stories of how we got to have LibreOffice run natively in a browserdevroom<p>LOWA - LibreOffice WebAssembly. Most recent updates, working code, and ample stories of how we got to have LibreOffice run natively in a browser.</p>Thorsten Behrenstalk slides as PDF
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.libreofficelotech_buildingcooluiBuilding Collabora Online UI based on the LibreOffice componentsdevroom<p>JSDialog is a "framework" for sharing UI components between Collabora Online and LibreOffice. It was used to bring sidebar, notebookbar and dialogs to the web. It provides native HTML widgets connected to the original LibreOffice code, giving the user rich editing options even on a mobile devices. This talk is a short summary - briefly describing how it works and what is already done.</p>Szymon KłosBuilding Collabora UI based on LibreOffice components
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.libreofficelotech_coolkubernetesCollabora Online on kubernetesKubernetes setup & deploymentdevroom<p>Demonstration of how to deploy the online using kubernetes.</p>Pranam Lashkari
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.libreofficelotech_coolasyncsavingCollabora Online: Async-Saving Design and Testingdevroom<p>Collabora Online enables viewing, editing, and the collaboration on documents, presentations, and spreadsheets from the convenience of a browser. This talk will explore the challenge of saving and uploading documents to the storage server in an asynchronous way, to improve user experience, better performance, and higher reliability and resiliency. The talk will cover both the design and the challenges of testing a highly critical component of a production product.</p>Ashod NakashianCollabora Online AsyncSave Design Ashod FOSDEM 2022
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:30D.libreofficelotech_somethingaboutqaThings you can test in a UITestdevroom<p>Something about QA</p>Xisco Faulislides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:20D.libreofficelotech_macrodialogMacro Dialog featuredevroom<p>The implementation of a Macro Selector Dialog on client side to execute VBA macros on the server side.</p>Henry CastroMacro Dialog feature
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:2000:40D.libreofficelotech_odftoolkitNews from the ODF Toolkitdevroom<p>New ODF Toolkit releases have been released.
How can it help you? Where are we striving for?</p><p>New ODF Toolkit releases have been published.
What's missing from the 1.0?
How can it help you? Where are we striving for?
What will be next? What are the synergies between ODF TC?
No incident having ODF Toolkit Co-maintainers and ODF TC Co-editors Michael Stahl and Svante Schubert lined up!</p>Svante Schubert
ODF Toolkit website
ODF Toolkit GitHub page
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:30D.matrixmatrix_state_of_the_unionThe Matrix State of the UnionWhat's the Matrix Core Team up to?devroom<p>The Matrix core team is busier than ever, juggling hundreds of Matrix Spec Core Proposals and undergoing some major techtonic shifts as Matrix evolves into the ultimate secure decentralised communication network. In this talk, we'll give a high-level survey of the state of the core project, including:
* How we're ensuring that flagship clients are as attractive as possible to a mainstream audience - and why we will fail if we don't.
* How we're making Matrix go <em>fast</em> via v3 sync and fast room joins
* How matrix-rust-sdk is becoming a flagship client SDK
* How we're getting a full end-to-end security of the reference Matrix stack
* How we're tackling abuse on the public Matrix network
* How Matrix is evolving to use cases beyond chat.</p>Matthew Hodgson
Matrix.org
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:20D.matrixmatrix_next_gen_interfacesThe next generation of Matrix interfacesHow we're changing the face of bridge and bot integrations in Matrixdevroom<p>Matrix has already got the solid framework of many bridge and bot implementations, but has always been missing that polish to make the bridges more accessible.</p>
<p>In this talk, Will will explain how we're going to build our bridges with an all-new interactive interface and replacing old bot command interfaces with widget based interfaces.</p>Will Hunt
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:5000:20D.matrixmatrix_opsdroidOpsdroidBuilding a bot using Python3devroom<p>Opsdroid makes building bots easy with it's modular concept of Connectors, Matchers & Skills.
In this talk I want to showcase how easy it's to build bots using Opsdroid.</p><p>We start with a simple "hello bot" and end with a Bot, which uses Rasa NLU (Natural Language Understanding), an AI based platform, to recognize the intent of a message.</p>Oleg FikselSlides
Opsdroid Home
Code
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:1000:30D.matrixmatrix_events_uninitiatiedEvents for the UninitiatedA Junior's Guide to Events in Matrixdevroom<p>Events are at the heart of the Matrix Protocol, but what are they? And how does the Protocol build on them to create rooms, room graphs, and other data structures? This talk aims to demystify some of these concepts, giving an overview of events, room event graphs, and associated structures. In the spirit of accessiblity, there will be an attempt to make the talk as approachable as possible for those without a ton of programming experience (although some basic knowledge will be helpful!). We will look at the Matrix specification and if time permits, may even dig into some code in Synapse. If you're interested in hacking on Matrix/Synapse but are newish to programming or intimidated by the core spec, or are just curious, this talk is for you!</p>H. Shay
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:4000:30D.matrixmatrix_fast_syncMaking /sync go fastA deep-dive into Sync v3devroom<p>A deep-dive into Sync v3: a super-fast API to sync Matrix clients with their homeserver. The talk is broken up into a brief history of syncing in Matrix to set the scene before we dive into the problem space and explore how Sync v3 is different and how it addresses one of the most important and complex parts of the Client-Server API: syncing.</p><p>Sync v3 is the third iteration of the syncing protocol in Matrix. The first was the now-deprecated /initialSync + /events and the second, still in use today, is /sync. We'll explore why the protocol needed to change then and why the protocol needs to change again now. As part of this, we'll look at <em>how</em> servers implement the /sync v2 API and the constraints they have to work with to explain why /sync can be so slow.</p>
<p>Armed with this knowledge, we'll work out the aims/goals of a new hypothetical syncing protocol, along with the competing concerns around complexity, speed, bandwidth and flexibility. We'll then look at the Sync v3 proposal and explore the tradeoffs that were made in its design. This will be complemented with demos and diagrams throughout.</p>Kegan Dougal
Sync v3 proxy server
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:1001:00D.matrixmatrix_rust_sdkThe matrix-rust-sdkOne SDK to rule them alldevroom<p>Matrix (https://matrix.org) is an open protocol for secure, decentralised communication - defining an end-to-end-encrypted real-time communication layer for the open Web. Historically the network has been made up of newly written native Matrix clients, or bridges to 3rd party existing chat systems (e.g. Slack, Discord, Telegram).</p>
<p>The matrix-rust-sdk is a modular Matrix client library, meant to be a robust implementation of the protocol, and to make even the most advanced features such as E2EE easy to use.
This talk will walk you through the design decisions and the tradeoffs that come with it, give you an overview of where we're at and where we're going with Web-Assembly, and finally what the future holds for the matrix-rust-sdk. Finally it will be connected to a real-life example of software using the matrix-rust-sdk: Fractal-Next.</p><p>Matrix (https://matrix.org) is an open protocol for secure, decentralised communication - defining an end-to-end-encrypted real-time communication layer for the open Web. Historically the network has been made up of newly written native Matrix clients, or bridges to 3rd party existing chat systems (e.g. Slack, Discord, Telegram).</p>
<p>The matrix-rust-sdk is a modular Matrix client library, meant to be a robust implementation of the protocol, and to make even the most advanced features such as E2EE easy to use.</p>
<p>It's a flexible library which can be used both to extend existing projects or to create new ones. It is notably used in the 18 years old IRC client WeeChat to teach it to speak Matrix. It has also been used as base for the re-write of GNOME's Matrix client Fractal.</p>
<p>Thanks to its very modular nature, clients can either use the whole SDK, like WeeChat and Fractal do, or a sub-component. Element R uses matrix-rust-sdk's crypto crate via Kotlin bindings.</p>
<p>This talk will walk you through the design decisions and the tradeoffs that come with it, give you an overview of where we're at and where we're going with Web-Assembly, and finally what the future holds for the matrix-rust-sdk. Finally it will be connected to a real-life example of software using the matrix-rust-sdk: Fractal-Next.</p>
<p>Fractal is a popular Matrix chat client for the GNOME desktop which has been in development since 2017. Fractal was designed to work well for collaboration in large groups, such as free software projects.
For a long time there were two main areas that needed improvements: performance and maintainability were limited. What’s more, it lacked end-to-end encryption (E2EE) support.</p>
<p>Over the course of 2021 we spent countless hours rewriting Fractal from scratch and now we are close to the first release. Fractal-next is built on top of the matrix-rust-sdk, a set of libraries that help to build Matrix clients. The client, still written in Rust, now uses GTK4. During development, the focus was on performance, maintainability and E2EE. And of course, we kept mobile support.</p>Julian SparberDamir Jelić
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:1000:05D.matrixmatrix_mmo_browserBuilding an MMO browser game on MatrixManaging auth and saves in Matrixdevroom<p>I'm working on a Massive Multiplayer Online (MMO) browser game which uses Matrix for authentication, authorization and storing save states.
Lobbies and characters are managed as Matrix rooms which allows players to have a copy of their character's data at all times, migrate it to other Matrix accounts or share a character with friends.</p><p>What if games allowed you to really own your online characters?
If an online video game shuts down, your character is gone.
All progress, all contacts, all items – lost to you and not available for migration.</p>
<p>I'm building a tiny proof of concept browser game where you log in with your Matrix account.
All your characters are represented by Matrix rooms and you can migrate them to other Matrix accounts and other gaming servers.</p>
<p>Instead of sending all communication via Matrix this concept uses a public server software and central gaming servers (HTTP and websockets in this case).
Upon character creation, a game server invites you to your character's room. Every time your character changes the server updates a state event.
If the server gets shutdown, it's easy to set up a new server which allows to migrate character rooms from the old server.
Furthermore, players can analyze their characters without the need to contact the gaming server.</p>Christian Paul
Demo server
Source code
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:1500:05D.matrixmatrix_chat_statChatStat - An R package for Matrix statsShiny stats for your community goodnessdevroom<p>Remarkably, the Matrix community still does not seem to have a equivalent to things like the venerable mIRCstats or PISG packages (which generate data based on a local IRC log). In this lightning talk, I'll present a new package I'm working on to present similar data for Matrix rooms. We'll have a quick demo and lots of pretty graphs to look at.</p><p>ChatStat aims initially to replicate the same kind of HTML report that these older packages created, and we'll show how to use it on your own host to generate stats for your rooms using the Matrix API.</p>
<p>Since Matrix has bridges, we can also directly gather data on these from connected rooms (e.g. the screenshot shows the split between Matrix and IRC users over a 2 week period) and we will show how to accomplish this too.</p>
<p>Lastly we'll talk about the underlying data structure and how to use it to build new graphs that ChatStat does not yet do itself.</p>
<p>Who is this talk for: Anyone who runs one or more Matrix rooms and wishes to generate visualisations of them. Or anyone who likes pretty graphs :)</p>Greg Sutcliffe
GitHub page
Matrix Discussion Room
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:2000:05D.matrixmatrix_cinnyCinnyelegant, modern and secure matrix clientdevroom<p>This talk is about a Matrix client called <a href="https://cinny.in/">Cinny</a>. It is built using reactjs on the top of matrix-js-sdk.</p>
<p>The main focus behind making Cinny is to have a client that is simple, elegant and doesn't feel heavy on end user. Cinny was launched publicly in end of July 2021 and since then it has matured a lot. Cinny has support for end-to-end encryption with options to import and export encryption keys. It also has basic support for Spaces (coolest feature of Matrix). Cinny also has ton of other features most notably full UIAA (User-Interactive Authentication API including SSO Login), carefully crafted themes, Rich replies, Reactions, Markdown and the list goes on.</p>
<p>Our roadmap also includes some other great features in near future; such as room settings, full support for spaces and later a responsive interface that also support mobile screens. We are also working on standalone app of Cinny using Tauri (exciting thing here is that app size is considerably less and doesn't require to have chromium to work).</p>Ajay BuraSlides
Project website
Github repository
Matrix room
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:2500:05D.matrixmatrix_collabsCollaborative Apps over Matrix using the Collabs Librarydevroom<p>I will demo Google Docs-style collaborative apps that communicate entirely through Matrix. This means they inherit Matrix's nice properties, including E2EE, decentralization, and user control.</p>
<p>Under the hood, the apps use Collabs, a TypeScript library I'm developing. Collabs provides collaborative data structures - specifically CRDTs. These are classes that have APIs like ordinary data structures (Map, Array, etc.) but also automatically sync between clients, guaranteeing eventual consistency. I will briefly describe the unique features of Collabs and show what it's like to program an app using the library.</p>Matthew WeidnerCollabs Slides PDF (no GIFs)
Collabs npm package
Demo site
Slides (with GIFs)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3000:05D.matrixmatrix_diy_photoframeCreate a DIY photoframe using matrixHow to create a DIY photoframe with a raspi and transfer the photos via matrixdevroom<p>In this presentation I'd like to show you how I created a little DIY photoframe with a raspberry pi and an old TV-screen and how I extended the photo transfer using matrix.
There is already a nice project "photOS" which is a lightweight linux for a DIY photoframe.
Thanks to opensource software I was able to extend it in order to transfer the files not via WebDAV but with matrix having end-to-end encryption as well.</p>dirk
The photOS linux repo
The photOS fork which supports matrix
The photOS matrix client
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3500:05D.matrixmatrix_custom_stickersCustom Stickers and Emotes in Matrix!MSC2545 Demodevroom<p>To some stickers and emotes might look nonsensical and disrupting conversations. For others it is a tool to build a community around. In this talk I will present a <a href="https://github.com/matrix-org/matrix-doc/pull/2545">Matrix Spec Change proposal</a>, that allows you to provide your own sticker and emote packs for your community and will compare it to the other proposals. I'll describe how you can share them and create your own. I'll demo the implementation in 1 (or maybe 2?) clients, give an explanation of how they work and how they might evolve in the future.</p>Nicolas Werner
The MSC
Old and bad demo I did
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:4000:05D.matrixmatrix_decentralized_annotationsDecentralized Collaborative Annotations using Matrixdevroom<p>This talk showcases Matrix Highlight, a tool built on top of the Matrix protocol to collaboratively annotate and comment on pages on the internet. By building on top of Matrix, we get decentralized, federated, and open web (or more) annotation. This talk will cover a demonstration, using Matrix events for non-messaging purposes, and the benefits of building on Matrix.</p>Daniel Fedorin
GitHub link for the project
Introductory blog post
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:4500:05D.matrixmatrix_fluffychatFluffyChatLittle showcase of the cutest messenger in the [matrix]devroom<p>FluffyChat is a cute and easy to use matrix client for all platforms. The app has a Telegram/Signal-like design and user experience and is published as free software. In this lighting talk I would like to show the features and how it is possible to write an open source app, which makes fun.</p>krille
FluffyChat website
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:5000:05D.matrixmatrix_command_controlMatrix for Command and Control Information Systemsdevroom<p>To enable collaborative work, we will extend our Command and Control Informations System ODIN (https://github.com/syncpoint/ODIN) with the ability to share its data by employing Matrix spaces and rooms</p><p>ODIN uses the concepts of projects and layers that contain geo-features. We will show how we map these concepts to spaces and rooms in order to enable collaboration between an arbitrary number of users. Whenever a feature gets changed by one user, we publish a message that contains an action in the corresponding room so other users can apply these actions to their local copy.</p>Thomas HalwaxODIN Open source C2IS Replication with Matrix
ODIN project page on GitHub
ODIN project page
ODIN matrix space
https://
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:5500:05D.matrixmatrix_power_workerMatrix for Worker PowerIntroduction to Wobblydevroom<p>How a movement communicates determines the structure and success of that movement. It could even be said that a movement is the way that it communicates. The labour movement has existed for centuries. Can Matrix increase the movement's power in the next decade and beyond?</p><p>Wobbly is a chat app built on Matrix designed for bottom-up worker organising to build a democratic economy and society.</p>
<p>We're excited about the potential of the Spaces API and the custom JSON events system to build a very powerful tool for democratic self-organising spaces.</p>
<p>While the project has existed in some form since 2015, we started using Matrix at the start of 2020 and have made much more progress in that time.</p>John Evans
Wobbly matrix app
Wobbly site
Deployed version of wobbly matrix app
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:1000:30D.matrixmatrix_ansibleAnsible + Matrix: Through The Looking GlassA 6 month reflection on the Ansible Community's journey with Matrixdevroom<p>In August 2021, the Ansible community <a href="https://github.com/ansible-community/community-topics/issues/36">voted</a> to accept Matrix as an official chat platform (alongside and equal to IRC). This marked a major evolution in the communication of the project, and opened the door to more ways for us to connect with each other. It also followed a substantial amount of planning from the community team, in terms of architecture we had in mind. In this talk, we'll take a look back over our original architecture & proposal, how the rollout has gone, and where we think we're going next.</p><p>There's much we <em>could</em> cover in this talk, but we'll definitely have content on the 2-homesever architecture we used (and why), on how adoption is going with our community (bridges will feature here, at least) and community building & promotion (expect armchair-sociology while I talk about rich interaction mediums, but also things like newsrooms, interaction fragmentation, etc). I'll also be attempting to gather some feedback from our community to present as well.</p>
<p>Who is this talk for: We hope it'll be of interest to anyone thinking of recommending Matrix for their community - whether a FOSS community, or more generally, there's things to think about first and arguments that can be re-used. There will also be interest for existing Matrix users too, in terms of lessons learned and wishlist features for the future.</p>Greg Sutcliffe
Ansible Community Space
Ansible Community Docs
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4000:30D.matrixmatrix_moderationAll things with moderationAll about moderation in Matrixdevroom<p>So you want to moderate your Matrix room, or perhaps your homeserver? You're in the right place.
In this presentation, we'll talk about both the core concepts of federated moderation in Matrix and the main moderation tools. Expect to hear about power levels, redactions, quarantine, abuse reports, Mjölnir and plans for the near future!</p>David Teller
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:1000:30D.matrixmatrix_p2p_pineconeGrowing Pinecones for P2P MatrixThe journey so far of building an overlay networkdevroom<p>The success of P2P Matrix depends on an overlay network which can provide good connectivity between users, and scale appropriately. For that we built Pinecone, an implementation of a new routing scheme called "SNEK", along with tools to simulate and to measure various properties such as routing table size and convergence times. This talk will explore some of the core design elements and the challenges of building a decentralised routing protocol.</p>Neil Alexander
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:4000:30D.matrixmatrix_filesystemSelf-sovereign end-to-end encrypted file storage on MatrixHow we built a file system on top of Matrixdevroom<p>Matrix is an open source project run by the non-profit Matrix.org Foundation dedicated to building an open protocol and communication network for decentralised, encrypted communication - providing a viable open alternative to WhatsApp, Slack, Discord and other proprietary communication silos.</p>
<p>During 2021 we have been exploring how the Matrix protocol can be used for decentralised, end-to-end encrypted online document storage and collaboration as an alternative to centralised proprietary services such as Dropbox and Box. In this talk we will show off our progress so far and the further work that we have planned.</p><p>Matrix is essentially a generic mechanism for replicating structured data over a decentralised network of untrusted servers. The first use cases of Matrix have focused on instant messaging and VoIP, but during 2021 we’ve been experimenting with replicating different types of structured data - such as MSC3089 (https://github.com/matrix-org/matrix-doc/blob/travis/msc/trees/proposals/3089-file-tree-structures.md), which models each Matrix room as a directory, which can contain subdirectories by acting as a Matrix Space, which in turn can contain files as normal Matrix file uploads described by appropriate state events. We’ve also been looking at further expressing the file data as structured trees of Matrix events.</p>
<p>Meanwhile, the need for self-sovereign file-storage and collaboration systems is growing ever more obvious, given the risks of trusting your data unilaterally to a proprietary and typically unencrypted 3rd party cloud service. However, there is currently a trade off between the typical productivity gains from non-privacy centric online collaboration versus the more limited pro-privacy solutions currently available.</p>
<p>Can Matrix support the next generation of privacy-centric collaboration applications? Providing document and file storage capabilities is one of the areas we’re looking at.</p>
<p>Topics that we will cover:
* File and folder semantics
* Version history
* Sharing and access control
* Document editing
* Use cases: demos
* Matrix protocol specification work to standardise approach and support interoperability
* Files SDK for JavaScript to make it easy to get started
* Next steps</p>Hugh Nimmo-Smith
Matrix
MSC3089: File tree structures
matrix-files-sdk npm
Web demo using matrix-files-sdk
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:1000:30D.matrixmatrix_threadingMission: threading for alldevroom<p>Our mission, if we choose to accept it, is to expand the capabilities of Matrix and Element. Driven by user needs and a desire to deliver threads through teamwork...</p><p>In the past few months we were on a mission to bring threading to Matrix.
We first wanted to discover how suited to this problem the current protocol is, and to better understand the users' expectations.
It soon became clear that we would have to make updates to the specification in order to deliver the experience we think will make this feature successful</p>Germain Souquet
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:4000:30D.matrixmatrix_extend_synapseBeyond the Matrix: Extend the capabilities of your Synapse homeserverHow to add custom features to Synapse with modulesdevroom<p>Synapse is the main Matrix homeserver implementation, and is maintained by the Matrix.org Foundation. One of the lesser-known features of Synapse is its module system, which allows any developer to write custom functionalities for it, and to extend its capabilities beyond the scope of the Matrix specification.</p>
<p>In this talk, I will cover the current state of Synapse's module system, which has recently been subject to a big overhaul, as well as how to write and use a simple module.</p>Brendan AbolivierSlides
Documentation
ModuleApi class and documentation
Module template
Matrix Live on Synapse modules
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:1000:30D.matrixmatrix_mlsMLS meets Matrixdevroom<p>MLS (Messaging Layer Security) is an upcoming IETF standard for messaging systems. In this talk, I will discuss some of the work in integrating MLS with Matrix. This will include:</p>
<ul>
<li>why we would want to use MLS</li>
<li>making MLS work in a decentralised messaging system</li>
<li>how MLS concepts can fit into Matrix</li>
<li>what will be needed to migrate to MLS</li>
</ul>
Hubert Chathi
Introduction to how MLS works
Notes on how to use MLS in a decentralised setting
My TypeScript implementation of MLS (Decentralised version in decentralised2 branch)
Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:4000:20D.matrixmatrix_metaverseNative Group VoIP and Metaverse on MatrixBuilding the Matrix with Matrixdevroom<p>In this talk we'll explain how we've added native decentralized E2E encrypted group video calling to Matrix via MSC3401 (https://github.com/matrix-org/matrix-doc/blob/matthew/group-voip/proposals/3401-group-voip.md), and how this not only provides "decentralized Zoom" style functionality for Matrix, but can also be used as the voice, video and realtime gameplay backbone for building a genuinely decentralized, equitable, free and open piece of the Metaverse on top of Matrix.</p>
<p>We'll go over how 1 to 1 calls work in Matrix today, our Jitsi widget we've used for group calls so far, and the changes we've made to support native group calls in Matrix. We'll also show off some early concepts for our "Metaverse on Matrix" project, Third Room. Which uses this group call work as well as many other open standards to build a platform for virtual worlds on top of Matrix rooms.</p>Robert Long
Matrix.org
MSC3401
Open Metaverse Interoperability Group
Matrix Video Chat Repo
Third Room Repo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:10D.monitoringmoniobserv2022openMonitoring and Observability devroom: Openingdevroom<p>Opening!</p>Richard Hartmann
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:1000:40D.monitoringadapting_otelAdopting OpenTelemetry and its collectordevroom<p>In this session, we’ll see why we adopted OpenTelemetry & its collector for an internal platform at Ubisoft - to collect/process/export all our logs, metrics, and traces.
We’ll explain how we handled the required mindset change: why people should instrument more their code, and how to onboard them.
And of course, we’ll talk about the benefits of fully adopting OpenTelemetry.</p>
<p>The intended audience is people who want to adopt OpenTelemetry, or who are already using part of it - for example the SDK for tracing - and are considering a full switch.</p>Vincent Beharslides
The OpenTelemetry project
The OpenTelemetry Collector
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:5000:40D.monitoringmulti_dc_cloud_native_observabilityBootstrapping a multi dc cloud native observability stackdevroom<p>A gentle introduction to Observability and how to setup a highly available monitoring platform across multiple datacenters.</p>
<p>During this talk we will investigate how we can setup and monitor an monitoring setup across 2 DCs using Prometheus, Loki, Tempo, Alertmanager and Grafana. monitoring some services with some lessons learned along the way.</p>Bram VogelaarBootstrapping a multi-DC Observability Stack
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3000:40D.monitoringpyroscopeIntroduction to Continuous Profiling using PyroscopeHow to debug performance issues using profilersdevroom<p>Profiling is an effective way of understanding which parts of your application are consuming the most resources. Traditionally, logs, metrics and traces have been considered the three pillars of observability, but more recently profiling has emerged as a fourth pillar to be used alongside these other observability tools.</p>
<p>Continuous Profiling, in particular, adds a dimension of time that allows you to understand your system’s resource usage (i.e. CPU, Memory, etc.) over time and gives you the ability to locate, debug, and fix issues related to performance.</p>
<p>In this talk, we'll present Pyroscope, an Open Source Continuous Profiling platform, explain the particular challenges it needs to tackle and showcase how it can be used to analyze and fix performance bottlenecks:</p>
<ul>
<li>Describe what Continuous Profiling is and what it brings to the observability universe.</li>
<li>Present Pyroscope, an Open Source Continuous Profiling platform, on a high level.</li>
<li>Dig deeper into Pyroscope's internals, explaining the particularities of its storage engine and how it allows doing Continuous Profiling at scale.</li>
<li>Showcase specific use cases and examples where profiling can be and has been used to detect, analyze and fix performance bottlenecks.</li>
</ul>
Ryan Perry
Pyroscope github repo
Presentation Slides
Pyroscope storage design
Brendan greg flamegraph post
Parca github repo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:40D.monitoringmonitoring_kafka_using_ebpfMonitoring Kafka without instrumentation using eBPFA talk about Pixie, Kafka and what's next in observabilitydevroom<p>In this session, we’ll see eBPF monitoring in action applied to the Kafka world as an example of a complex Java application: identify Kafka consumers, producers, and brokers, see how they interact with each other and how many resources they consume. We'll even show how to measure consumer lag without external components. If you want to know what’s next in Java and Kafka observability in Kubernetes, this session is for you.</p><p>Imagine a world where you can access metrics, events, traces, and logs in seconds without changing code. Even more, a world where you can run scripts to debug metrics as code. In this session, you will learn about eBPF, a powerful technology with origins in the Linux kernel that holds the potential to fundamentally change how Networking, Observability, and Security are delivered.</p>
<p>We’ll see eBPF in action applied to the Kafka world using Pixie: we’ll identify Kafka consumers, producers, and brokers, see how they interact with each other and how many resources they consume. We'll even learn how to measure consumer lag without external components. If you want to know what’s next in Kafka observability, this session is for you.</p>Anton RodriguezRuizhe Cheng
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:4000:40D.monitoringperiskopPeriskop: Exception Monitoring at ScaleA pull-based exception monitoring service inspired by Prometheusdevroom<p>This talk is aimed for engineers operating in distributed environments (or microservices) interested in monitoring exceptions at scale. We introduce the open source project "Periskop", a pull-based exception monitoring service built at SoundCloud and inspired by Prometheus.</p><ul>
<li>What problems did we encounter with the traditional push-based model for exception monitoring.
<ul>
<li>Thundering herd issues with bad deployments</li>
<li>Difficulty navigating large volumes of logs for identifying exceptions</li>
</ul>
</li>
<li>An alternative pull-based model that scales well with the number of exceptions and instances.
<ul>
<li>Aggregation + sampling for concrete occurrences</li>
<li>Limitations and trade-offs (short lived processes and fork-based application servers)</li>
</ul>
</li>
<li>An implementation of such model into the open source project "Periskop"
<ul>
<li>Initial Development</li>
<li>Server and client-libraries</li>
<li>Newly added features and roadmap (push-gateway, federation, time series visualization, integrations)</li>
</ul>
</li>
</ul>
Jorge CreixellMarc TuduriSlides
Periskop-Dev Org
Main Project
Original Blog Post
What's New with Periskop in 2022 Blog Post
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:2000:40D.monitoringcloud_native_profilingProfiling in the cloud-native eradevroom<p>Continuous profiling is a widely used practice at Google but has only recently started gaining popularity in the Observability space, however, resources on this topic are still rare compared to other observability signals especially on open source projects.
This talk intends to educate the wider community about the possibilities of continuous profiling, and give a glimpse into open-source tooling allowing everyone to join in on the practice and enabling everyone to build better software.</p><p>For years Google has consistently been able to cut down multiple percentage points in their fleet-wide resource usage every quarter, using techniques described in their “Google-Wide Profiling” paper. Ad-hoc profiling has long been part of the developer’s toolbox to analyze CPU and memory usage of a running process, however, through continuous profiling, the systematic collection of profiles, entirely new workflows suddenly become possible.</p>
<p>Matthias will start this talk with an introduction to profiling with Go and demonstrate via Parca - an open-source continuous profiling project - how continuous profiling allows for an unprecedented fleet-wide understanding of code at production runtime.</p>
<p>Attendees will learn how to continuously profile code to help guide building robust, reliable, and performant software and reduce cloud spend systematically in various languages.</p>Matthias Loibl
Google-Wide Profiling: A Continuous Profiling Infrastructure for Data Centers
Parca - Open Source infrastructure-wide continuous profiling
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:4000:40D.monitoringunikraftUnikraft Performance Monitoring with Prometheusdevroom<p>Unikraft, and similar unikernels, offer isolation by running a single application inside a separated virtual machine. As such, extracting information from the machine can prove difficult. Moreover, because Unikraft offers support for running a single process at a time, alternate solutions had to be found for exporting data. Prometheus is a common tool used to collect and visualize data that offers decoupling from the observed system, as such, we saw it as a prime candidate for exporting information.</p>
<p>Our solution was to port a Prometheus exporter inside Unikraft as a separate library and run it on a separate thread. Information from the unikernel is extracted by Prometheus through an intermediary library, named ukstore, that behaves like a simplified ProcFS. ukstore offers an easy method for accessing information and metrics from the system. Using Prometheus with Unikraft, we are thus able to extract performance metrics from highly-specialized virtual machines, store them in a time series database and display them using plots.</p><p>The main interface between configuration and statistics data from Unikraft and applications is ukstore. It is based on ProcFS and offers easy “folder/data” access. This solves the problem of searching through headers to find functions that offer information. The main advantage of ukstore is that all of its setup is done at build-time so there is no impact on the boot-time. Furthermore, it has flexibility, by offering the possibility to create both static entries (created at build-time) and dynamic entries (created at run-time).</p>
<p>Metrics inside Unikraft are provided by the libraries that generate them. As such, every library can contain functions that offer usage data. At the moment, work was done to offer metrics related to memory, networking, and thread-locking, with metrics related to file systems and the CPU underway. The end goal is to cover as much of the known metrics from Linux, offered through ProcFS, and expose them through ukstore.</p>
<p>Porting a Prometheus exporter came with the challenge of finding one with the least amount of dependencies, whilst still retaining the usual format. We chose an exporter and adapted it through patches to successfully interact with Unikraft and exposed available performance metrics through it. With all the above puzzle pieces put together, Unikraft instances can be monitored reliably with a minimal impact on the performance of the instances themselves.</p>Cezar CraciunoiuUnikraft Performance Monitoring with Prometheus
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:2000:40D.monitoringlearn_from_otel_tracesWhat More Can I Learn From My OpenTelemetry Traces?devroom<p>Of the three observability data types supported by OpenTelemetry (metrics, logs, and traces) the latter is the one with most potential. Tracing gives users insights into how requests are processed by microservices in a modern, cloud-native architecture.</p>
<p>Jaeger and Grafana can visualize a single trace, showing how an individual request traversed your entire system. This helps for distributed debugging and analysis, but using traces only this way is limiting.</p>
<p>What if you stored tracing data in a SQL database? You could ask global questions about your system. You could find slow communication paths, where the error rate spiked since the last deployment, or where the request rate suddenly dropped. Thus, tracing can be used proactively to help you spot issues before your customers do.</p>
<p>This talk will show you how to do all the above by ingesting OpenTelemetry traces into a PostgreSQL/TimescaleDB database, and building custom dashboards using SQL to make the most out of your tracing data.</p><ul>
<li>What is a trace?</li>
<li>What is OpenTelemetry?</li>
<li>View an OpenTelemetry trace in Jaeger</li>
<li>Overview of OpenTelemetry trace data model</li>
<li>How it might be represented in a relational-database model - PostgreSQL</li>
<li>Demonstrate a variety of SQL queries which provide insights into a system explaining the value</li>
<li>View these queries in a Grafana dashboard</li>
</ul>
John Pruitt
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:25D.mysqlmysql_flameFlame Graphs for MySQL DBAsYet another way to visualize performance datadevroom<p>Flame graph is way to visualize profiling data that allows the most frequent code paths to be identified quickly and accurately. They can be generated using Brendan Gregg's open source programs on github.com/brendangregg/FlameGraph, which create interactive SVG files to be checked in browser. The source of profiling data does not really matter - it can be perf profiler, bpftrace, Performance Schema, EXPLAIN output or any other source that allows to convert the data into the expected format of comma-separated "path" plus metric per line.</p><p>Different types of Flame Graphs (CPU, Off-CPU, Memory, Differential etc) are presented. Various tools and approaches to collect profile information of different aspects of MySQL server internal working are presented Several real-life use cases where Flame Graphs helped to understand and solve the problem are discussed.</p>Valerii Kravchuk
My talk on similare subject at recent Percona Live
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:25D.mysqlrelational_model_devThe relational model in the modern development ageTowards an improved operational paradigm, illustrated by Vitessdevroom<p>Relational databases have invested in the performance of the relational model, but not as much in developer flows, creating an operational barrier driving developers away. We present an improved paradigm that brings back ownership into developers hands, illustrated by recent developments in Vitess.</p><p>The relational model is one of the oldest surviving models in computer science. But while relational databases have evolved to meet modern load, throughput and scalability needs, they have not evolved as much to meet developers' needs.</p>
<p>The schema, at the heart of the relational model, remain a major operational blocker in modern development flows. Developing and deploying schema changes is unlike any other development and deployment flow in practice today. Operational complexity and constraints, lack of conflict resolution, difficulty or inability to undeploy, and the need to understand database internals, all make relational schema development deter developers, who look for other solutions elsewhere.</p>
<p>In this session we will review these impediments and how they came to be, and offer a modern take, that gives developers back their ownership of their data and flows. Recent developments in Vitess, an open source CNCF project, introduce new capabilities that change the relational development paradigm. We will discuss:</p>
<ul>
<li>Development flow: hiding the operational complexity</li>
<li>Deployments and scheduled schema migrations</li>
<li>Undeploy: revertible changes</li>
<li>Align schema and code: declarative schemas, idempotent deployments, and version control</li>
</ul>
Shlomi Noach
Vitess project page
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:25D.mysqlproxysql_clusterProxySQL Cluster: challenges and solutions to synchronizeconfigurationacross multiple decentralized cluster nodesdevroom<p>As a reverse proxy for MySQL databases, ProxySQL is being used in various infrastructure sizes and it is not surprising to see deployments with thousands of nodes running. Such large deployments introduce some interesting challenges because nodes can be initialized or destroyed at any time.
This session will describe the challenges in configuring such large deployments of nodes, the most common external tools to configure ProxySQL, and then focus on improved ProxySQL native clustering solutions that allows auto-discovery, bootstrap, and a distributed decentralized reconfiguration.</p>René Cannaò
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3000:25D.mysqlpxc_non_blockingPercona XtraDB Cluster(PXC) Non blocking operations, what you need to know to avoid pitfalls devroom<p>Performing simple DDL operations as ADD/DROP INDEX in a tightly connected cluster as PXC, can become a nightmare.
Metalock will prevent Data modifications for long period of time and to bypass this, we need to become creative, like using Rolling schema upgrade or Percona online-schema-change.
With NBO, we will be able to avoid such craziness at least for a simple operation like adding an index.
In this brief talk I will illustrate what you should do to see the negative effect of NON using NBO, as well what you should do to use it correctly and what to expect out of it.</p>Marco Tusa (the Grinch)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0001:00D.mysqlmysql_clustersetMySQL InnoDB ClusterSetThe integrated solution for disaster recovery of InnoDB Clustersdevroom<p>MySQL InnoDB ClusterSet brings multi-datacenter capabilities to our High Availability solutions and makes it very easy to set up a disaster recovery architecture. Think multiple MySQL InnoDB Clusters into one single database architecture, fully managed from MySQL Shell, and with full MySQL Router integration to make it easy to access the entire architecture.</p>
<p>In this session, we will cover the various use-cases and features of InnoDB ClusterSet while guiding you on how to set it up from an existing InnoDB Cluster, extend it, manage it, and deal with the various possible failures, all using Shell's AdminAPI. We will also cover each individual feature of MySQL Router integration which makes connections to the database architecture easy.</p>Kenny GrypMiguel AraújoMySQL InnoDB ClusterSet
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:25D.mysqlmysql_k8s_demystifiedMySQL on Kubernetes demystifiedHow foolishness can lead you to fell in a very dangerous trapdevroom<p>The constant pressure to move DATA in containers and Kubernetes is creating a lot of confusion and misunderstanding. <br/>
This is particularly dangerous when talking about Relational Database Management System.<br/>
MySQL, as well as Oracle, Postgres or SQL Server, is a RDBM, as such subject to the erroneous interpretation caused by this new crazy shining things that will solve all.
In this short talk we will clarify, that first of all, we are not looking to something new and second why we need to be very careful when talking about using Kubernetes and containers for RDBMS.</p>Marco Tusa (the Grinch)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3001:00D.mysqlmysql_operator_k8sMySQL Operator for Kubernetesdevroom<p>On both, public and private clouds, Kubernetes is the most commonly used Orchastration framework for managing cloud services. Aside from management of microscervices it can be extended with operators for managing more complex services. The new MySQL Operator for Kubernetes is such an operator, automating MySQL InnoDB Cluster Management inside Kubernetes and integrated product of the MySQL product family.
In this session lead developer Johannes Schlüter will discuss how the MySQL Operator works and how it can automate deployment and management of InnoDB Cluster inside Kubernetes.</p>Johannes SchlüterDemo RunbookMySQL Operator
GitHub
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:45D.mysqlmysql_componentNewest MySQL component services featuresor how to make an HTTP server accessing table data in a componentdevroom<p>We will explore the latest component services offered by the server. And then we will check how one can use the table access service to make a HTTP server component that allows access to table data via HTTP without a middle-man.</p><p>The MySQL development team is constantly adding new and very useful component services. These can be leveraged by creative component authors to produce useful MySQL server add-ons. Check the latest additions to the service list and see some of them in action through a HTTP server component that serves table data.</p>Joro Kodinov
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:1500:35D.mysqlmysql_pitr_rockstarMySQL 8.0: Logical Backups, Snapshots and PITR like a rockstardevroom<p>Logical dumps are becoming popular again. MySQL Shell parallel dump & load utility changed to way to deal with logical dumps, certainly when using instances in the cloud.
MySQL 8.0 released also an awesome physical snapshot feature with CLONE.</p>
<p>In this session, I will show how to use these two ways of saving your data and how to use the generated backup to perform point-in-time recovery like a rockstar with MySQL 8.0 in 2022 !</p>Frédéric DescampsMySQL 8.0 - Backup and Point-in-time Recovery like a rockstar
MySQL Community Server
lefred's blog: tribulations of a MySQL Evangelist
The Oracle MySQL Blog
Planet MySQL
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:5500:10D.mysqlmysql_backupWhy your backup strategy is wrong?A brief overview of MySQL backup conceptsdevroom<p>"If you have a hammer, all you see is nails." also known as the Law of the Instrument describes the cognitive bias that involves over-reliance on a familiar tool. To protect MySQL data, a DBA must have a toolbox full of the proper utensils. To know only one approach is not enough.</p><p>In this talk, we will cover the following topics:
- Why your backup strategy is probably wrong?
- The Schröendinger Backup
- Backups: Cold, hot... and warm?
- The right answer is not always the logical one.
- Replication is not the solution.
- Point-in-time recovery.
- Don't try this at prod: Test your backups.</p>Pep PlaWhy your backup strategy is wrong?
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:1000:50D.mysqlefficient_mysqlEfficient MySQL PerformanceA Book in 40 Minutesdevroom<p>This presentation introduces the major topics and most important points of the new book <a href="https://oreil.ly/efficient-mysql-performance">Efficient MySQL Performance</a> published by O’Reilly (Dec. 2021). And like the book, this presentation is intended for software engineers using MySQL, not managing it (but DBAs are gladly welcomed). In 40 minutes, we’ll quickly cover topics including query metrics, indexes and indexing, data access patterns, server metrics, and more. At the end, you’ll have a “lay of the land” for understanding the aspects of MySQL that affect performance, and you’ll understand where to go and what to learn next to increase performance.</p>Daniel Nichter
Efficient MySQL Performance (O’Reilly)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:25D.mysqlmysql_cpuMySQL Performance on Modern CPU: Intel vs AMD vs ARMdevroom<p>For years CPU choice for MySQL was pretty boring - just chose what Intel Made CPU you want. In recent years the situation changed with AMD producing very competitive Server grade CPUs and ARM going from being the leading CPU manufacturers for low-power gadgets to being inside some of the highest performance server chips.</p>
<p>In this presentation, we will look into current CPU choices through MySQL Lense - which CPUs provide the best performance for single threaded and high concurrency workloads and which help to achieve the best price/performance.</p>Peter Zaitsev
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:3000:25D.mysqlmysql_recapRelease Note Highlights from 2021Recap '23 to '27devroom<p>The new releases of MySQL Server in 2021 had some very interesting changes. This session covers the highlights, the contributions, and changes made during the last year. After 25 years of MySQL, there are still plenty of new features in the code. This is a quick catchup for those who have not perused the release notes.</p><p>The new releases of MySQL Server in 2021 had some very interesting changes. This session covers the highlights, the contributions, and changes made during the last year. After 25 years of MySQL, there are still plenty of new features in the code. This is a quick catchup for those who have not perused the release notes.</p>Dave Stokes
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:30D.networkusing_ndpi_to_efficiently_classify_network_trafficNetwork Traffic Classification for Cybersecurity and Monitoringdevroom<p>Security and monitoring applications need to classify traffic in order to identify applications protocols, misuses, similarities, communications patterns not easily identifiable by hand. nDPI is a library that implements various algorithms for traffic analysis able to detect outliers, anomalies, traffic clusters, behavioural changes efficiently in streaming (i.e. while traffic is flowing). Goal of this presentation is to show how nDPI can be used in real life to inspect network traffic and spot patterns worth to be analysed in detail.</p><p>Modern network security and monitoring applications need to analyse traffic efficiently in streaming fashion (i.e. while traffic is flowing). This is in order to detect interesting traffic patterns in realtime without dumping data on a database and performing computationally expensive queries in batches. Many network developers do not have skills for efficiently analyse traffic, and data scientists often do not have skills to understand the complex nature of network traffic. For this reason nDPI, a popular open-source deep packet inspection library, has been enhanced with various algorithms and techniques that dramatically simplify traffic analysis and that should ease the creation of applications able to efficiently spot traffic patterns and anomalies.
This talk will introduce some of these algorithms present in nDPI and show how they can be used in real-life at high-speed, contrary to many applications that are inefficient and often based on languages (e.g. Python and R) that are not designed to analyse traffic in streaming at 10 Gbit+ on commodity hardware.</p>Luca DeriPresentation slides
nDPI - Open and Extensible LGPLv3 Deep Packet Inspection Library.
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3000:30D.networkwhy_rule_based_monitoring_is_still_greatWhy rule-based monitoring is (still) greatdevroom<p>A rules-based approach has been the standard in network monitoring for many years, for a good reason. In this talk, we'll recap the advantages of a rule-based approach and how it's still relevant to this day. The speaker will also show how you can implement rules using <a href="https://checkmk.com/">Checkmk</a>, an open source IT monitoring software and discuss the entry of AI technology into infrastructure monitoring.</p>Faye TandogRobin Gierse
Checkmk - Everything monitored
Checkmk FOSDEM Stand
Checkmk Stand Matrix Room
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:20D.networkpeer_to_peer_hole_punching_without_centralized_infrastructurePeer-to-peer hole punching without centralized infrastructureHow libp2p can traverse NATs and firewalls without coordination through central STUN and TURN servers.devroom<p><a href="https://libp2p.io">libp2p</a> is a universal, cross-platform, multi-language, modular peer-to-peer networking library powering multiple large-scale networks, for example IPFS.</p>
<p>In the first part of the talk we’ll present the basic building blocks of the library and explain how they fit together. In the second part, we’ll take a closer look at the recently added decentralized hole punching feature, allowing NAT and firewall traversal without the need for any central coordination servers (STUN and TURN).</p>Max Leonard Indenslides.pdf
libp2p - Official Website
libp2p - Specifications
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:2000:20D.networkkeep_appetite_for_the_statsKeep appetite for the stats, it costs nothingPresentation of the statistics consumption model in VPP from the costless low-level design to their exploitation in userspacedevroom<p><a href="https://fd.io/">VPP (aka Vector Packet Processing)</a> is a fast network stack running in Linux userspace.
It is designed to handle packets with high performance, which makes gathering statistics efficiently a must have.</p>
<p>The model that has been chosen in <a href="https://fd.io/">VPP</a> to provide up to date statistics is built upon shared memory and optimistic locking.
The counters are updated in this shared memory at a rather low cost by the data plane and can be read out at almost any time by all the consumers.
We will first describe this model in more details.</p>
<p>The consumption of these stats may take various forms depending on the use case and the application needs.
That's why we have developed different high-level components to access them:</p>
<p>1) A filesystem in userspace: thanks to <a href="https://github.com/hanwen/go-fuse">go-fuse</a>, we can mount a filesystem ordering statistics in folders and files, in a similar fashion to '/proc' in Linux</p>
<p>2) A <a href="https://prometheus.io/">Prometheus</a> agent: applied to <a href="https://github.com/calico-vpp">Calico/VPP</a>, a new dataplane for <a href="https://www.tigera.io/project-calico/">Calico</a> - the popular cloud native <a href="https://kubernetes.io/">Kubernetes</a> network plugin - based on <a href="https://fd.io/">VPP</a>. Prometheus is integrated as a monitoring tool in order to export our statistics in the form of real-time metrics collected from targets. Metrics come from our pod interfaces statistics, and targets are <a href="https://github.com/calico-vpp">Calico/VPP</a> agents running on our <a href="https://kubernetes.io/">Kubernetes</a> cluster nodes.</p>
<p>During the presentation, you will have a quick demo of these components.</p>Arthur de KerhorHedi BouattourVPP stats segment & consumers
FD.io VPP dataplane
go-fuse Github repo
Prometheus
Kubernetes
Calico project
calico-vpp Github project
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4000:20D.networkcomparing_dpdk_rcu_and_user_space_rcu_libraryFaster memory reclamation with DPDK RCUComparing the DPDK and Userspace RCU librariesdevroom<p><a href="https://www.dpdk.org">DPDK</a> added a RCU library with a novel method to reclaim resources. We have been running tests to understand the performance differences between the <a href="https://www.dpdk.org">DPDK</a> RCU and the <a href="https://liburcu.org/">user space RCU library</a>. In our tests, we find that <a href="https://www.dpdk.org">DPDK</a> RCU can perform reclamation faster and perform significantly better when pre-emptive readers are involved. Other than the performance, <a href="https://www.dpdk.org">DPDK</a> RCU has several advantages such as not requiring a background thread for reclaiming resources and the ability to integrate with existing libraries without having to modify the application.</p>
<p>This talk will present various testing done on <a href="https://www.dpdk.org">DPDK</a> RCU and the <a href="https://liburcu.org/">user space RCU library</a> and their results. It will go into the details of pre-emptive reader problem, which affects use cases beyond <a href="https://www.dpdk.org">DPDK</a>, and show that <a href="https://www.dpdk.org">DPDK</a> RCU library can reduce the reclamation time significantly.</p>Nathan BrownFaster Memory Reclamation with DPDK RCU- Slides
DPDK RCU Programmer's Guide
DPDK Homepage
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.networkevolution_of_vppBGP/OSPF with VPP at >100MppsIntroducing the Linux Controlplanedevroom<p>In this talk, we will demonstrate high performance routing using open-source <a href="https://fd.io">VPP</a> and it's underlying <a href="https://dpdk.org">Data Plane Development Kit</a>. This talk highlights the authors work on integrating the Linux ControlPlane which makes BGP, OSPF, etc available with VPP. We'll then turn to a popular DPDK based loadtesting tool <a href="https://trex-tgn.cisco.com">TRex</a>, and discuss performance benchmarking results from the field using the author's <a href="https://ipng.ch/">AS8298</a> as practical example.</p>Pim van PeltIPng Networks - VPP
Articles describing VPP work
VPP homepage
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.networkpredictable_network_traffic_in_kubernetesPredictable Network Traffic in Kubernetesdevroom<p>The software applications of the Cloud Native era have a huge dependency on the network, these microservices are bound to a single concern and utilize the network to communicate with each other. The dependency on the network continues to grow as more and more microservices depend on it. However, there is no way to predictably leverage the network for the specific demands of your application. What if we could tag certain applications as needing a priority from the network. This would enhance the networking capabilities offered from Kubernetes and compliment the deployment of applications that require predictable behavior of the network.</p><p>More industries are migrating to Kubernetes and evolving their knowledge of the Cloud Native ecosystem. As this trend accelerates, apps with specialized requirements are emerging, such as high-priority apps. High-priority apps require predictable high performance, which can be difficult to achieve in clusters with 100s or 1000s of containers. They require and expect platform capabilities such as dedicated resources, less context switching, and efficient packet processing. In the context of the network, high-priority apps need to execute predictably, leaving no room for extra jitter. Pinning CPU cores may help with determinism but introduces a platform-specific mechanism that fails to embrace the abstraction of Cloud Native deployments. This presentation will cover application-specific queuing and steering technology that dedicates hardware NIC queues to application-specific threads of execution.</p>Dave CreminsAbdul HalimPredictable Network Traffic in Kubernetes
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.networkcontour_kubernetes_ingress_controller_and_much_more_101Contour - Kubernetes Ingress Controller and much more 101Introduction to Contour and Contour community!devroom<p>Contour is an open source Kubernetes Ingress controller providing the Control Plane for the Envoy Edge and Service proxy. Contour supports dynamic configuration updates and multi-team Ingress delegation out of the box while maintaining a lightweight profile. Contour is currently CNCF Incubating project!</p>
<h1>In this talk:</h1>
<p>We will do a Contour 101 intro, do a short demo of some of the deployment methods for Contour inside a Kubernetes cluster, demonstrate some of Contour's main features, and highlight the benefits Contour can bring to your setup. Along the way, we will walk though Contour's architecture we will also touch base on the Contour community, including how the community works and why we think you will want to join us!</p>
<h1><strong>Come and joins us!</strong></h1><p>Orlin Vasilev aka Orlin - Community Manager for Contour - past life: +15 years of SysAdmin/Infra Engineer/Cloud Engineer/DevOps/SRE</p>Orlin VasilevSlides
Project's GitHub
Project's Home Page
Kind's Home Page
Kubernetes' Page
Demo and Slide deck
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:30D.networkkubernetes_networking_is_there_a_cheetahKubernetes networking : is there a cheetah within your Calico?Even faster kubernetes clusters with Calico, VPP and memifdevroom<p>Kubernetes is great, containers are lightweight & disposable, networking is simple yet powerful. But when
it comes to network oriented applications, oh that can be slow !</p>
<p>That's how the Calico/VPP integration first came up, as a way to address performance bottlenecks, making
VPP's performance the motor of Calico's functionalities in Kubernetes. It speeds up container
networking, but also allows us to expose even faster functionalities directly to the applications.
So with this in place, how can we go even faster, while still preserving the Kubernetes abstractions ?</p>
<p>We'll present how applications can leverage userspace interfaces, what this allows regarding
network performance & additional functionalities and how the Calico/VPP integration makes this happen
under the hood.</p>Nathan SkrzypczakChristopher TomkinsFOSDEM 2022 Calico_VPP is there a cheetah within your Calico
Calico-VPP dataplane
Project Calico
VPP fd.io
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:30D.networkchallenges_and_opportunities_in_performance_benchmarking_of_service_mesh_for_the_edgeChallenges and Opportunities in Performance Benchmarking of Service Mesh for the Edgedevroom<p>As Edge deployments move closer towards the end devices, low latency communication among Edge aware applications is one of the key tenants of Edge service offerings. In order to simplify application development, service mesh architectures have emerged as the evolutionary architectural paradigms for taking care of bulk of application communication logic such as health checks, circuit breaking, secure communication, resiliency (among others), thereby decoupling application logic with communication infrastructure. The latency to throughput ratio needs to be measurable for high performant deployments at the Edge. Providing benchmark data for various edge deployments with Bare Metal and virtual machine-based scenarios, this paper digs into architectural complexities of deploying service mesh at edge environment, performance impact across north-south and east-west communications in and out of a service mesh leveraging popular open-source service mesh Istio/Envoy using a simple on-prem Kubernetes cluster. The performance results shared indicate performance impact of Kubernetes network stack with Envoy data plane. Microarchitecture analyses indicate bottlenecks in Linux based stacks from a CPU micro-architecture perspective and quantify the high impact of Linux’s Iptables rule matching at scale. We conclude with the challenges in multiple areas of profiling and benchmarking requirement and a call to action for deploying a service mesh, in latency sensitive environments at Edge.</p><p>The pervasiveness of Edge computing and Service Mesh constructs within a cloud native environment have almost been at the same time during last few years. Requirements of Edge compute to be able to unify both Information & Communication Technology (ICT) and Operational Technology (OT) have brought together cloud native deployments and microservice based service offerings to the Edge infrastructure]. While Kubernetes been the most popular model of deploying cloud native infrastructure to offer software services, service mesh is the emergent application deployment paradigm that decouples application from developing most of the software defined networking aspects of microservice interactions. This paper introduces features of service mesh that are architecturally suitable for Edge compute service offerings and application development principles. To understand applicability of service mesh, architectural principles need to be understood to figure out suitability of various benefits mesh benefits to customized Edge deployments. This talk introduces and correlates various Edge requirements to the service mesh’s architectural guidelines. Then further dig into deployment considerations of service mesh with Edge deployment types to provide practical communication challenges between the two. This talk:
- Provides benchmark tests and their results that provides the impact of service mesh on simple Kubernetes based deployments using Istio & Envoy as service mesh and its sidecar proxy, that can be leveraged for Edge environments.
- Provides detailed analysis of the software used to identify bottlenecks using Top-Down Microarchitectural Analysis and CPU Hot Spot analysis.
- Summarizes the gaps identified during the detailed testing of these open-source components
- Showcases the impact of utilizing service mesh for edge computing.</p>Sunku RanganathMrittika GanguliChallengesandOpportunities in Performance Benchmarking ofService Mesh for the Edge
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:3000:30D.network2_cluster_kubernetes_with_calico_bgp_interconnect_and_wireguard_all_without_leaving_your_laptop2-cluster Kubernetes, with Calico, BGP Interconnect and WireGuard... All Without Leaving Your Laptop!devroom<p>Wouldn’t it be great to be able to dabble with Kubernetes, Calico, BGP, and WireGuard in a totally safe, totally zero-cost, and easily (!!) reproducible local laptop or workstation environment?</p>
<p>If you agree, I’m here for you. In this engaging, hands-on and fun session I’ll share with you how I built two four-node Kubernetes clusters, peering with BGP, forwarding with WireGuard, all inside my laptop, and how you can do the same, for fun, learning, and profit. Or, well, just fun and learning, actually.</p>
<p>When working with these technologies (especially BGP), cost, risk and complexity are the usual barriers to learning. Let's remove them and get back to enjoying our learning.</p>Christopher Tomkins
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:1000:45D.designosd_how_do_we_design_open_source_communities_to_be_more_diverse_equitable_and_inclusiveHow do we design open source communities to be more diverse, equitable, and inclusive? devroom<p>The CHAOSS project represents a potential force for power and good in open source and is demonstrating significant progress toward its stated aims during its first four years. In particular, the CHAOSS project advances the development of metrics and programs that can help other projects to first understand their own diversity, equity, and inclusion and second work to improve their project in these areas. This roundtable includes speakers who took part in a year-long reflection on DEI practices within the CHAOSS project. The roundtable talk will help other open source projects in their work towards improving diversity, equity, and inclusion by exploring practices within the CHAOSS project first, then using those examples as points of reference for other projects. In particular, the roundtable talk will advance these goals, aimed at answering the question of: How do we design open source communities to be more diverse, equitable, and inclusive?</p>matt.germonprez
CHAOSS community
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0001:00D.postgresqlpostgresql_solving_the_knapsack_problem_with_recursive_queries_and_postgresqlSolving the knapsack problem with recursive queries and PostgreSQLdevroom<p>Optimization problems are everywhere, from deciding which clothes to pack in our luggage (aka the knapsack problem), to selecting the tasks that will be worked during a sprint. Trying to solve these type of problems by hand is a tedious task often resulting in sub-optimal decisions.</p>
<p>In this talk, we'll understand how PostgreSQL recursive queries can help. Starting from the proper problem definition, we'll then explore how to build queries that call themselves recursively, what are the risks associated with this approach and safeguards we can set to optimise performances. Finally we'll demonstrate how two new features released in PostgreSQL 14 enable an easier handling of the recursive statements.</p>
<p>If you're into PostgreSQL and eager to understand how recursion works, this session is for you!</p>Francesco TisiotKnapsack Slides
original blog post
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0001:00D.postgresqlpostgresql_json_in_postgresql_learning_with_a_case_studyJSON in PostgreSQL - Learning with a case studydevroom<p>PostgreSQL provides great support for JSON objects and every developer working
with this data type should learn how to take advantage of it. Instead of going
through the documentation on how to use JSON in PostgreSQL, in this talk we will
use a case study to learn by example. We will also complement the usage of JSON
by introducing other data types such as ARRAY. We will also review some design
decisions to turn JSON objects into columns and vice versa when it's convenient.
This talk will help you to axe the archaic Entity-Attribute-Value (EAV) pattern
from your database.</p>Boriss Mejias
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:30D.postgresqlpostgresql_how_to_create_lots_of_sample_time_series_data_with_postgresql_generate_seriesHow to create (lots!) of sample time-series data with PostgreSQL generate_series()devroom<p>Exploring new features in PostgreSQL or reproducing an unusual query plan can be tricky without representative data to utilize. While there are a plethora of sources for sample data and tools to import it, you can end up spending too much time finding representative data to work with. In our day-to-day work at Timescale, we often need to quickly create lots of sample time-series data to demonstrate new features, run a benchmark, or help community members with examples as they learn.</p>
<p>Although using real application data would be ideal, PostgreSQL provides the generate_series() function which makes it easy to create a representative time-series dataset using varying cardinalities and different lengths of time.</p>
<p>In this talk we'll introduce generate_series() and demonstrate how to use it to create realistic-looking time-series data of all shapes and sizes, using custom PostgreSQL user-defined functions. Once we've mastered the basics, we'll dial it up a notch by incorporating PostgreSQL math functions and relational data to create realistic time-series patterns of data for various use cases like sales or website visits.</p>Ryan Booz
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:30D.postgresqlpostgresql_future_postgres_challengesFuture Postgres Challengesdevroom<p>Postgres has been a vibrant project for decades, and probably will be popular for decades to come. However, as with any complex endeavor, challenges are always lurking. This talk explores the many project, competitive, and technical challenges in the future that could derail its success. By exploring these challenges, we will be better able to avoid them.</p>Bruce Momjian
slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:30D.postgresqlpostgresql_postgresql_distributed_secure_database_ecosystem_buildingPostgreSQL Distributed & Secure Database Ecosystem BuildingThis session will focus on introducing how to empower PostgreSQL thanks to the ecosystem provided by Apache ShardingSphere - an open source distributed database, plus an ecosystem users and developers need for their database to provide a customized and cloud-native experience.devroom<p>As the most popular open source relational database in the world, PostgreSQL keeps attracting the significant attention it deserves. With the ever increasing data storage and query requirements, new challenges are brought forward for horizontal elastic expansion and security of the PostgreSQL database.
How to provide existing PostgreSQL databases with incremental capabilities such as data sharding, data encryption and other functions is of great concern to many PostgreSQL users.
This session will focus on introducing how to empower PostgreSQL thanks to the ecosystem provided by Apache ShardingSphere - an open source distributed database, plus an ecosystem users and developers need for their database to provide a customized and cloud-native experience. ShardingSphere doesn't quite fit into the usual industry mold of a simple distributed database middleware solution. ShardingSphere recreates the distributed pluggable system, enabling actual user implementation scenarios to thrive and contributing valuable solutions to the community and the database industry.
The aim of ShardingSphere is the Database Plus concept.</p><p>Database Plus sets out to build a standard layer and an ecosystem layer above the fragmented database's basic services. A unified and standardized database usage specification provides for upper-level applications, and the challenges faced by businesses due to underlying databases fragmentation get minimized as much as possible. To link databases and applications, it uses traffic and data rendering and parsing. It provides users with enhanced core features, such as a distributed database, data security, database gateway, and stress testing.
ShardingSphere uses a pluggable kernel architecture for Database Plus. That means there's modularity, which provides flexibility for the user. Demos and notable use cases in production environments that are from the Asia equivalents of FAANG (Facebook, Amazon etc.) will be used to introduce the use and implementation of these functions for PostgreSQL databases.</p>Juan Pan
Twitter
GitHub Repo
Slack Community
Project Website
Medium
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3000:30D.postgresqlpostgresql_automatically_refresh_materialized_views_in_postgresqlAutomatically refresh materialized views in PostgreSQLTactics to make refreshing a painless processdevroom<p>Since PostgreSQL 9.3 introduced materialized views, it’s been an important feature that many users leverage to power dashboards, pre-compute information, or execute common queries in a much faster manner.</p>
<p>On the flip side, if your database often gets updated, keeping your materialized views up-to-date can be challenging. Especially when working with time-series data where timeliness is often an important requirement. In this talk, I will share some tactics to keep your materialized views up-to-date in PostgreSQL and how to use REFRESH MATERIALIZED VIEW efficiently to fit your use case.</p><p>Let’s say you have a real-time dashboard fueled by a PostgreSQL materialized view. How can you make sure that this materialized view is always up-to-date, hence the dashboard is showing up-to-date information as well? How can you avoid read-locks while refreshing the view or minimize refresh periods? These are some of the questions many users ask when starting to work with PostgreSQL materialized views.</p>
<p>In this talk, I will explore these questions further and show some tactics on how you can optimize the process of refreshing your PostgreSQL materialized views and keeping them maintained. I will dissect the REFRESH MATERIALIZED VIEW command and its usage and show additional tips on how you can make refreshing materialized views as painless as possible.</p>Attila Tóth
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0001:00D.postgresqlpostgresql_working_effectively_with_support_the_communityWorking effectively with (-support-) the communityThis talk is for those who are new to PostgreSQL or those who just started, or all the others that want to hear a personal story: When I started with PostgreSQL around 10 years ago, I came with an Oracle background. It took me quite some time to understand how the PostgreSQL project is organized, how the community is working and how to deal with issues I've faced when I needed support. This is not a technical talk at all, but it should save you quite some time in your journey with PostgreSQL.devroom<p>This talk is for those who are new to PostgreSQL or those who just started, or all the others that want to hear a personal story: When I started with PostgreSQL around 10 years ago, I came with an Oracle background. It took me quite some time to understand how the PostgreSQL project is organized, how the community is working and how to deal with issues I've faced when I needed support. This is not a technical talk at all, but it should save you quite some time in your journey with PostgreSQL.</p>Daniel Westermann
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0001:00D.postgresqlpostgresql_exploring_linux_memory_usage_and_io_performance_for_cloud_native_databasesExploring Linux Memory Usage and IO Performance for Cloud Native Databasesdevroom<p>Linux and containers are similar in that they provide operating system resources such as memory and storage. These resources—along with CPU and networking— are key factors to achieve optimal performance.</p>
<p>In this session, we'll explore how memory allocation at the container or operating system level influences the performance of buffered disk IO, which is typically how IO is handled by PostgreSQL. We'll also examine Linux memory management details and the different ways disk IO could be performed. From there, we'll walk through a number of examples that reveal the typical dynamics of cached and non-cached IOs, as well as the differences between the two.</p>
<p>Understanding these dynamics is critical to learn how PostgreSQL IO works.</p>Frits Hoogland
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0001:00D.postgresqlpostgresql_slow_things_down_to_make_them_go_fasterSlow things down to make them go fasterdevroom<p>It's easy to get misled into overconfidence based on the performance of powerful servers, given today's monster core counts and RAM sizes. However, the reality of high concurrency usage is often disappointing, with less throughput than one would expect. Because of its internals and its multi-process architecture, PostgreSQL is very particular about how it likes to deal with high concurrency and in some cases it can slow down to the point where it looks like it's not performing as it should. In this talk we'll take a look at potential pitfalls when you throw a lot of work at your database. Specifically, very high concurrency and resource contention can cause problems with lock waits in Postgres. Very high transaction rates can also cause problems of a different nature. Finally, we will be looking at ways to mitigate these by examining our queries and connection parameters, leveraging connection pooling and replication, or adapting the workload.</p><p>Topics:<br/>
1. Understand what we mean by high concurrency.<br/>
2. Understand ACID & MVCC in Postgres.<br/>
3. Understand how high concurrency affects Postgres performance.<br/>
4. Understand how locks/latches affect Postgres performance.<br/>
5. Understand how high transaction rates can affect Postgres.<br/>
6. Mitigation strategies for high concurrency scenarios.</p>Jimmy AngelakosSlow things down to make them go faster
Presentation slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0001:00D.postgresqlpostgresql_lesser_known_postgresql_featuresLesser Known PostgreSQL FeaturesFeatures you already have but may not know about!devroom<p>In the talk I want to present a few lesser know, but useful features you may never heard about! For example, do you know how you can get the number of inserted and update rows in an upsert? how to create reproducible random data for testing and demonstrations? match a text against multiple patterns without complicated condition? How about using \copy with multi-line queries? All that and more... in my talk :)</p><p>In this talk I'll present lesser known features in PostgreSQL such as:</p>
<ul>
<li>How you can get the number of inserted and update rows in an upsert</li>
<li>How to create reproducible random data for testing and demonstration</li>
<li>How to match a text against multiple patterns without complicated condition</li>
<li>How to use \copy with multi-line queries</li>
<li>And many more fun features from the deep end of the documentation!</li>
</ul>
Haki Benita
Lesser Known PostgreSQL Features
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:1500:10D.public-codepublic_code_welcomeWelcome to the Public Code devroomdevroom<p>A brief introduction and overview of what you can expect from the Public Code devroom at FOSDEM.</p>Jan Ainali
Introductory blog post
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:20D.public-codejoint_open_source_developmentJoint open source development in cross-border contextdevroom<p>X-Road® is open-source software and ecosystem solution that provides unified and secure data exchange between organisations. X-Road is a digital public good verified by the Digital Public Goods Alliance, and it’s released under the MIT open source license and is available free of charge. X-Road is used as a national data exchange solution in Estonia, Finland, Iceland and many other countries around the world.</p>
<p>Nordic Institute for Interoperability Solutions (NIIS) is a non-profit association with the mission to ensure the development and strategic management of X-Road® and other cross-border components for digital government infrastructure. The republics of Estonia, Finland and Iceland are members of NIIS.</p>
<p>In my talk, I'm going to give an overview of X-Road first. Then, I'm going to discuss the organisational structure of NIIS and the development model of X-Road. The main scope of the presentation is to discuss joint open source development in cross-border context.</p>Petteri KivimäkiJoint Open-Source Development in Cross-Border Context
https://niis.org
https://x-road.global
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:25D.public-codedevelopers_italiaDevelopers Italia, four years laterdevroom<p>In 2017, Italy launched a key initiative to improve public services by opening up the development of a handful of core technologies and allowing an open governance community to gather around public code. The effort resulted in the launch of two projects: Developers Italia and Designers Italia, which started a virtuous ecosystem involving administrations, businesses, and enthusiasts who want to improve public services and citizens' lives. Today, the two communities attract over 20.000 technical talents capable of contributing to their country's development and have created together hundreds of open source packages. We launched internationally at FOSDEM 2018, with the help of the Free Software community. We're returning four years later to provide updates, share lessons learned, and continue the conversation on how to make Italy the most hacker-friendly country in the world.</p>Riccardo Iaconelli
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3500:35D.public-codelessons_from_danish_os2Lessons from the Danish OS2Maturing governancedevroom<p>A strong organization is an important part of governing a public code base. The association OS2 scores their IT-solutions after a governance model divided into three levels, which shows the maturing of the code and the organization surrounding it. This talk will cover lessons learned and why scoring is not enough.</p><p>The Danish OS2 – Public Digitization Network is an association with 78 public organizations as members. OS2 is not a developing house, not code stewards, rather the association supports development and maintenance of open source IT-solutions through collaboration between public entities and private IT-companies. Solutions are developed as open source and made publicly available. OS2 maintain a governance model which all solutions must comply. In this talk by Rasmus Frey, the head of the main secretariat in OS2, will describe the organization and explain some elements of when it goes well or wrong in governing a public codebase and its life in the public sector.</p>Rasmus FreySlidedeck - Lessons from Danish OS2
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:2000:25D.public-codepubliccodeymlPublicCode.yml - index all public software!devroom<p>PublicCode.yml is a decentralized standard for indexing public software developed by both public and private entities. The specification has always been an open project, but as of December 15th, it has fully transitioned to an open-governance model. Denmark, France, Germany, Israel, and Italy were the official founding countries, and we are looking for more participants to join us. In this presentation, we'll go over the technical ecosystem, current implementations, and how you can get involved - either as a Free Software project or as a government - to promote the use and development of Free Software by public entities, and how to help your Free Software project gain more adoption in public institutions.</p>Riccardo Iaconelli
GitHub organization
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:5500:20D.public-code9000_public_code_repositoriesWe listed +9000 public code repositories. Now what?How to build valuable services on top of fragile assetsdevroom<p>The French administration recently announced https://code.gouv.fr, a website listing more than 9000 repositories from the French public sector. What next?</p><p>In this lightening talk, I want to quickly explain how we built this and what we find in these repositories. The core of my talk will be about what valuable services we aim to provide to public agencies on top of this list, depending on who they are and what they need. As this topic is partly speculative, we are eager to engage with the audience in a short discussion on what they think would be valuable.</p>Bastien
code.gouv.fr
Repos from Etalab Free Software task force
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:2500:20D.public-codebeware_of_cultureBeware of culture– what to do as a community manager?devroom<p>Facilitating a sense of belonging across different cultures in the Danish public sector. A community manager’s point of view.</p><p>We have many active communities in the Danish open source network OS2. As the communication and community manager, it is on me to facilitate a welcoming and introcluding atmosphere between the members and the network. My methods are primarily focused on written text, storytelling, and case stories. But not one strategy will work on everybody. The 'cultures' I will be referring to are the local cultures in the different IT-departments in the public sector. All the open source products OS2 governs should ideally allow for any person to come with ideas - regardless of the local culture of procuring and reusing software.</p>
<p>This talk will not be technical but rather point to the "soft" element of governing an public open source product.</p>Charlotte Heikendorf
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:5500:45D.public-codedecidimDecidimFree Open Source Participatory Democracy for Cities and Organizationsdevroom<p>Decidim (decidim.org) is a digital platform for participatory democracy, built entirely and collaboratively as free open source software. More specifically, Decidim is a web environment (a framework) produced in Ruby on Rails (a programming language) that allows anyone to create and configure a website platform to be used as a political network for democratic participation. The platform can be deployed by any organization (local/regional/national governments, associations, universities, NGOs, or cooperatives) to host large scale citizen participatory processes for strategic planning, participatory budgeting, public consultations and collaborative policy-making. The project was launched in 2017 in Barcelona and, 4 years later, there are more than 400 active instances of Decidim around the world. In this talk we will present the lessons from this outreach process advocating for a radical model of participatory democracy in contexts as different as the Helsinki City Council, the Mexico City Government, the New York City Commission on Civic Engagement, the French National Assembly, the Italian Government or the European Commission.</p>Andrés Pereira de LucenaDecidim FOSDEM presentation
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:5000:30D.public-codebluetooth_beyond_digital_contact_tracingBluetooth beyond Digital Contact TracingUsing Bluetooth for wider public healthcare improvementsdevroom<p>The Herald Project created a reliable API for data exchange used in nations' COVID-19 Digital Contact Tracing applications. The same Bluetooth LE and MESH technology can be used to improve healthcare operations - replacing aging pagers, finding healthcare equipment, navigating through complex environments, and in wearables for personal healthcare monitoring.</p><p>This presentation talks about the use of the Herald API beyond Digital Contact Tracing, using a mix of opensource software, hardware, and data. This can be used to implement public health policy whilst respecting individual freedoms, including freedom of movement internationally.</p>Adam FowlerMain Presentation Slides
Project website
Project GitHub organisation
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3001:00D.public-codealeksisAlekSIS, the Free School Information SystemTaking on digitisation and digital education at oncedevroom<p>Public schools are one natural way to get people in contact with free software, and helping them shape their digital environment with it. The AlekSIS project develops a free, open School Information System that doubles as a platform for students of any age to develop apps to digitise their own schools.</p><p>School Information Systems are programs that help to digitise several processes in public or private schools, reaching from timetables and substitution plans over school meal plans, digital class registers, up to payment systems, and much more.</p>
<p>Starting out as two independent solutions for School Information Systems, AlekSIS is an actively developed free software project, made by students, teachers, and software engineers together. It is designed to be both a stable and secure software solution, readily available for schools, and a platform that can be used in classes to learn and teach coding. Students can make their own apps, that are seamlessly integrated into the platform, to help digitise real-world scenarios at their schools.</p>
<p>In this talk, we will show what AlekSIS is, and explain the scheme behind making it a learning platform for young app developers at the same time.</p>Dominik GeorgeJonathan WethJonathan KPresentation slides
AlekSIS project website
schul-frei project
Teckids e.V.
AlekSIS repos on EduGit
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:4000:15D.public-codeeducamadridEducaMadrid, the Free and Educational Technology Platform of Madriddevroom<p>EducaMadrid is an Educational Technology Platform based on Free Software that offers multiple interconnected and complementary services: school websites, teachers' blogs, virtual classrooms, media library, cloud, mail, videoconferencing, MAdrid_linuX, etc.</p>
<p>It offers the possibility to develop digital competence, communication between students and teachers and to implement teaching processes both face-to-face and remotely in a secure, free and sustainable environment.</p>Adolfo Sanz De Diego
https://www.educa2.madrid.org/educamadrid/
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0500:15D.public-codeopen_source_policyOpen Source PolicyCreating value beyond codedevroom<p>In this lighting talk we want to talk about the potential of open source not only for code, but also for policy documents.</p>
<p>One of the pillars to promote open government at any level of government is that there should exist an open data policy. However, in the Mexican context, although one already exists at the federal level, very few states and municipalities have open data policies. This is partly due to the lack of knowledge and culture about open government, especially at the municipal level.</p>
<p>From Codeando México we work to promote citizen participation and open government, and we have carried out several exercises to co-create open data policies with the three levels of government: federal, state and municipal.</p>
<p>With this experience, we saw the need for the creation of an open data policy with a free use license. This policy, a work in progress, will be hosted in an open repository, will allow any level of government that wants to have an open data policy to adopt it and adapt it to their needs in a short time.</p>
<p>This project is nourished not only by the experience of Mexican civil society of the last 10 years but also, being an open source project, it will be in continuous evolution and improvement with the contributions of governments, civil society and any interested citizen.</p>Ricardo MirónOpen Source Policy Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:3000:20D.public-codeclosing_public_codeClosing of the Public Code devroomReflections from the daydevroom<p>Closing of the devroom with some reflections of what we have heard through the day. What might happen next and what would we like to see more of next year?</p>Boris van HoytemaJan Ainali
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:30D.pythonpython_kafkaGet to know Apache Kafka with Jupyter Notebooksdevroom<p>Apache Kafka is recognised as the best data streaming platform around, but it can be difficult to observe what is happening when you are just getting started with this excellent technology platform. In this session, you will get a tour of key Kafka features using the delightful web UI of Jupyter notebooks.</p>
<p>Use the notebooks to see Kafka and Python in action, producing and consuming records. We’ll also cover how to get the best from your application by making good use of topic partitioning and consumer groups. From high-level concepts to nitty-gritty details, this session will equip you with the skills you need to build applications with Kafka. Recommended for anyone curious about Apache Kafka or using Jupyter to work with or learn new data platforms.</p>Francesco TisiotApache Kafka Jupyter Notebooks
github repository
slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:25D.pythonpython_async_sqlalchemyIntroducing Asynchronous SQLAlchemydevroom<p>Driven by the immense popularity of asynchronous frameworks, such as FastAPI, asynchronous database support suddenly became a hot topic in the Python community. As talking to your database often forms a significant portion of the input and output of your application, it's important to do that asynchronously as well. With the release of version 1.4, SQLAlchemy added support for Asynchronous I/O for both its core and ORM features. This means that you can now use the popular SQL toolkit for Python in your asynchronous applications.</p>
<p>In my talk, I will introduce you to the newly added support for asyncio in SQLAlchemy. I will go over how easy it is to set up the new AsyncEngine, point you to some of the differences with synchronous SQLAlchemy, and show you some of the pitfalls to avoid. In addition, I will also show you how you can run your existing synchronous SQLAlchemy code asynchronously to help you transition to a fully asynchronous application. By the end of my talk, you should know enough to start your own asynchronous SQLAlchemy adventure.</p>Sebastiaan Zeeff
SQLAlchemy Documentation — Asynchronous I/O (asyncio)
Talk Slides and Additional Information
LinkedIn
Twitter
Code + Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:30D.pythonpython_concurrency_in_webappsHandling Concurrency in Web ApplicationHow *not* to build a URL Shortenerdevroom<p>Concurrency in web applications is so easy to get wrong, and so hard to identify and debug when it comes to bite you. In this talk I'm going to present common concurrency issues with even the simplest application, and suggest ways to identify and prevent them!</p><p>In this talk I'll present common issues, and different approaches for dealing with concurrency:</p>
<ul>
<li>Why it is better to ask for forgiveness instead of permission when dealing with concurrency</li>
<li>What is the TOCTOU (time-of-check-time-of-use) problem, how it can happen and how to address it</li>
<li>How database locking can help with concurrency, and how to avoid it!</li>
<li>How and when to rely on database features to maintain correctness</li>
</ul>
Haki Benita
Personal welsite
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3000:25D.pythonpython_type_safetySleep better with type-safe Pythondevroom<p>Type hints are an essential part of modern Python. By combining type hints with a static type checker and libraries which enable runtime type checking, it is possible to achieve runtime type-safe Python applications.</p>
<p>This talk discusses the motivation for extensive usage of type hints, how to gradually add types to existing projects, how to deal with untyped dependencies, and finally, how to achieve runtime type-safety without sacrificing performance.</p>Jerry Pussinen
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:30D.pythonpython_unicodeMessing with unicodeA few possible attacks with unicodedevroom<p>Let's look at a few 'tricks' with unicode that can make a program look like it's doing (or not doing, for that matter) something it doesn't. Based on the findings in a recent publication, these are well worth being aware of; both from a security point of view and for simply being on your guard against friends who may be trying to pull a prank on you :-D.</p>
<p>These tricks are well suited for trojan attacks as it can be difficult to detect even with a manual code review thanks to aspects of unicode like bidirectional (bidi) control characters.</p><p>The talk is based on some of the possibilites described in the paper "Trojan Source: Invisible vulnerabilities" by Nicholas Boucher and Ross Anderson of University of Cambridge. The implications of this work with regard to Python has been outlined in PEP 672.</p>
<p>Examples of using/abusing unicode inlude:
- Look-alike characters (homoglyphs) being used to make two different functions and make calls of one function look like that of the other (eg: Cyrillic е and Latin e are too similar for us to distinguish easily).
- Use bidi control characters to make a part of the appear to be present when it's actually part of a comment.
- Classic trick of naming files so that even an .exe file can look like a .pdf.
- Use of invisible characters to make strings that look same when they aren't.</p>Julin Shajimessing_with_unicode.pdf
Paper describing the unicode attacks
PEP 672
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:30D.pythonpython_spyqlSPyQL - SQL with Python in the middleMaking command-line data processing more intuitive, readable and powerfuldevroom<p><a href="https://github.com/dcmoura/spyql">SPyQL</a> is SQL with Python in the middle, an open-source project fully written in Python for making command-line data processing more intuitive, readable and powerful. Try mixing in the same pot: a SQL SELECT for providing the structure, Python expressions for defining transformations and conditions, the essence of awk as a data-processing language, and the JSON handling capabilities of jq.</p>
<p>In this event I will describe the SPyQL language, highlighting its unique features. By the end of this presentation you will know how to write SPyQL queries (probably you already know :-) ), and you will be looking forward to starting using it! I will be solving the task of calculating aggregations in awk (for a CSV), in jq (for a JSON) and in SPyQL (for both). I will then show you a couple more examples where we will be using SPyQL 1) to automate a scaling operation of k8s pods, and 2) to continuously calculate statistics from a Kafka data stream.</p><p>How does a SPyQL query looks like?</p>
<pre><code>IMPORT pendulum AS p
SELECT
(p.now() - p.from_timestamp(purchase_ts)).in_days() AS days_ago,
sum_agg(price * quantity) AS total
FROM csv
WHERE department.upper() == 'IT' and purchase_ts is not Null
GROUP BY 1
ORDER BY 1
TO json
</code></pre>
<p>Simple, readable, and, as all SPyQL programs, it's an 1-liner. In a single statement we are 1) reading a CSV (of purchases) with automatic header detection, dialect detection, type inference and casting, 2) filtering out records that do not belong to the IT department or do not have a purchase timestamp 3) summing the total purchases and grouping by how many days ago they happened, 4) sorting from the most to the least recent day and 5) writing the result in JSON format. All this without loading the dataset into memory.</p>
<p>SPyQL will change data-processing in the terminal, making it accessible to anyone who knows a little-bit of Python and understands the basics of a SQL SELECT.
On the other hand, it will give super-powers to experienced users. The possibilities are endless as you can import any Python library, and pipe data from/to any command-line tool. From querying APIs and Kafka, to write to files or databases, SPyQL will be the tool of choice for processing data in the command-line!</p>Daniel MouraSlides for SPyQL @ FOSDEM22
SPyQL repo at GitHub
SPyQL demo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.pythonpython_mimicsMimics - Records operations to replay them laterdevroom<p>https://github.com/maarten-dp/mimics is a tool with the intention to defer actions done on objects or classes. These actions can then be executed at a later date when the subject, to which these actions should be applied to, is available. This is mostly a joke project with no real world applications, but it has some neat implementations showcasing the power of python.</p>Maarten De Paepefosdem 2022 slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:30D.pythonpython_feature_flagsImplementing and managing feature flagsHow to effectively manage your feature flags in a monolitic Django applicationdevroom<p>When developing a plateform with a large code base, multiple Django applications in a monolith, feature flags are a must have to keep your release cycle short. Those allow teams to develop a feature throughout multiple releases without users being aware that this feature is under development. Shorter release cycle are still possible without hindering quality teams or users.</p>
<p>At GitGuardian, we use feature flags for multiple purposes: distinguishing between code deployment and feature rollout, managing differences for premium accounts and A/B testing. We will talk about how we handle feature flags for saas and on premise deployment and how to avoid some common on premise pitfalls with feature flags.</p>Mehdi RaddadiFOSDEM 2022 - How to manage feature flags
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:25D.pythonpython_cubicwebCubicWeb: bootstraping a web-application from RDF datadevroom<p>We made the Web accessible to human.
We are making the web accessible to computers with Linked Open Data (LOD - https://www.w3.org/standards/semanticweb/data).
More and more RDF data is created by people and institutions to contribute to the LOD.
However, publishing this RDF data with content negotiation is rarely done, because there is no on-shelve solution.
Moreover, there is no easy to use user interface to manage linked data (including CRUD operations, but also user permissions, rendering, etc.).</p>
<p>CubicWeb is a SCMS (Semantic Content Management System) for Linked Open Data (https://forge.extranet.logilab.fr/cubicweb/cubicweb).
This python-based framework can be used to import OWL schema and RDF data automatically to generate a new CubicWeb instance.
This instance can be used out-of-the-box as a single application to serve RDF data through a conventional web interface for browsing and through
content negotiation for downloading. No need to configure anything, just import and launch the app.
The CubicWeb framework implements an administration interface to manage data easily even
for non-technical people. All the common features of a web application framework are available.</p>Fabien AmargerCubicWeb: bootstraping a web-application from RDF data
official CubicWeb repository
OWL2yams project: generate CubicWeb instance from RDF data
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:05D.dependencydevroom_introductionDevroom introductiondevroom<p>The devroom intro by devroom organization team!</p>Kate StewartPhilippe OmbredanneAntoine MottierMichael C. Jaeger
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0500:15D.dependencypackage_url_and_version_range_specPackage URL and Version range specTowards mostly universal dependency resolutiondevroom<p>Package URLs are a compact way to identify software packages across multiple ecosystems.
Together with the new "vers" Version Range Specifier, these two mini specs will offer a
new way to create new, mostly universal dependency resolvers and installers, working
across ecosystems.</p><p>Because <strong>no tech stack is an island</strong> running on a single programming language and in a single package ecosystem, we need a way to <strong>talk about packages across ecosystems</strong>: talk about their type, name, location, version and dependent version ranges. <strong>purl</strong> and <strong>vers</strong> are an attempt to solve this problem.</p>
<p>How to talk about packages, dependencies and vulnerabilities using a common language?</p>
<p>I will present <strong>Package URL</strong>, a way to references package across ecosystems which is emerging as a de-facto standard. And I will introduce a new work-in-progress, mostly universal notation to express version ranges to be used in resolving package dependencies such as "I require package foo, version 2.0 or later versions" and referencing affected vulnerable packages versions as in "vulnerability CVE-123 affects package bar, version 3.1 and version 4.2 but not version 5".</p>
<p>These two will show a way to create new, mostly universal dependency resolvers and installers, working across ecosystems and we will promote the rise of universal package managements where one tool and one unified spec can rule them all.</p>Philippe OmbredannePackage URL and Version range spec presentationPackage URL and Version range spec presentation (libreoffice)Video
Purl Spec
VERS spec
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:2000:20D.dependencydependency_ospoHow OSPOs can help secure the software supply chaindevroom<p>Legal Risk Mitigation is one of the three main functions of an <a href="https://github.com/todogroup/ospodefinition.org">OSPO</a> (designated places where open source is supported, nurtured, shared, explained, and grown inside an organization). OSPOs often oversee aspects of a company’s open source license compliance process and supply chain as one of the first activities. The responsibilities include:</p>
<ul>
<li>Maintaining open source license compliance reviews and oversight</li>
<li>Running a review process for inbound code use</li>
<li>Ensuring that the company contributes back to open source projects effectively</li>
</ul>
<p>To a certain degree, any organization calling itself an OSPO likely indicates the organization has reached a maturity stage where Executive-level recognition that OSS is an important strategic asset and builds a critical mass of processes, procedures, and tools to streamline and facilitate open source consumption and participation across divisions. Indeed, these activities also include a wide range of software composition analysis solutions such as Software Bill of Materials (SBOM), license management scanning, or continuous monitoring tools.</p>
<p>While some OSPOs rely on Software composition analysis vendors like Synopsys and Tidelift, others decide to make their own built-in solutions. During this presentation, Ana Jimenez, PM at <a href="https://todogroup.org/members/">TODO group</a> (an open community of organizations who run OSPOs worldwide), will introduce the evolution and expansion of OSPOs over the years from a supply chain perspective, some of the common SCA tooling used, as well as how OSPOs can contribute and nurture the <a href="https://landscape.todogroup.org/card-mode?category=sca&grouping=category">ecosystem of SCA tools</a> to adapt to the needs of the different industries.</p>Ana Jimenez Santamaria
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:4000:20D.dependencyopen_source_license_compliance_projectDeveloping an open source license compliance project : our trials, tribulations and achievementsdevroom<p>This talk aims at presenting our trials and tribulations as well as our achievements in designing a compliance software project for open source licenses.</p>
<p><em>"Are all module licenses in our software project compliant with each other ?"</em>
Many of our customers have asked us this question even though they already had a plethora of software solutions (not always FOSS software) dealing with this topic.
This surprised us, and led us to seek out the cause of their uncertainty. We then discovered that many solutions only look for potential risks and provide reports both too detailed, from the legal POV, for practical use by an engineer, and too technical for practical use by a lawyer.</p>
<p>As engineers are bound to do, we thought there might be a technical solution to this and launched a project.
As engineers launching a project are bound to do, we encountered a few hitches and made some discoveries along the way.</p>
<p>Today, here we are to show off the problems we encountered and how we overpassed them, but also to mention that we are open to your contributions (on technical matter or just for suggestions).</p><p>The features of the project are mainly conditioned by our clients:
- the ability to process a variety of unstructured inputs (zip archives containing code, github or gitlab, dependency manager package lists, and various hypertext links to libraries) ;
- the requirement of preserving corporate code confidentiality whether in SaaS or on-premise ;
- outputting a very structured and human-readable report listing actual non-compliances and potential ways to solve these non-compliances ;
- designing the strategy for integrating our open source software compliance project with CI/CD processes ;
- and for the non-client-conditioned feature : our product owner decreed that there could be no false negatives in non-compliance detection.</p>
<p>After a first PoC based on pre-existing code analysis tools (oss review toolkit, licensee, scancode...), we understood that some roadblocks would remain if no improvements were made.
It is not about reinventing the wheel, but moving from wood to rubber.
So we made a new PoC including Machine Learning and the results are much more promising. We will release it very soon under AGPL v3 license.</p>Pierre Marty
Presentation support
GitHub repo
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:20D.dependencyhow_to_manage_oss_license_obligation_and_sbom_using_sw360_new_featuresHow to manage OSS license obligations and SBoM by SW360's new featuresdevroom<p>The management of SBoM (software bill of material) is very important for companies to comply with the OpenChain specification.The latest features of SW360 support the management of license obligations and the management of SBOMs in SPDX format. In this presentation, I will introduce and demonstrate the features of SW360.</p><p>OpenChain ISO/IEC 5230 is the International Standard for open source license compliance. In the OpenChain specification, there are descriptions of SBoM management and OSS license obligations, and SW360 has features to help with both of these.</p>
<p>SPDX is an open standard for communicating software bill of material information, including components, licenses, copyrights, and security references. This is also ISO standard (ISO/IEC 5962:2021). A new feature in SW360 is the ability to register, import, and export software component information according to the SPDX format, making it easier to integrate with other tools and manage information received from other companies.</p>
<p>For managing OSS licenses in SW360, the information about license obligations can be imported from the OSADL (Open Source Automation Development Lab) web site. This OSADL's web site provides a machine-readble summary of the main points of the OSS license in a form that anyone can get. (Licensed by CC-BY-4.0). New features in SW360 allows you to quickly import this OSADL license obigation information into your company's SW360.</p>
<p>The features introduced presentation may include some that are still under development.</p>Kouki HamaHow to manage OSS license obligations and SBoM by SW360's new features
GitHub SW360
WebSite SW360
Open Source License Checklists by OSADL
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:2000:40D.dependencysoftware_composition_dependency_panel_1Panel 1: Processing Dependencies and Compositions and Software devroom<p>Granted that software composition and dependency processing are very relevant for software engineering. The presentations have pointed out how such processing is embedded into activities of an organization. We would like to gather feedback about how the current status of adoption and integration looks like.</p>Maximilian Huber
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:20D.dependencybreakBreak devroom<p>break</p>
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:2000:20D.dependencyscanning_for_known_vulnerabilities_in_an_embedded_distributionScanning for known vulnerabilities in an embedded distributionA return on experience from the Eclipse Oniro projectdevroom<p>A Linux distribution is a great playing field for testing tools for
vulnerability scanning. It is even a better playing field if it includes
more operating system kernels, like the Eclipse Oniro project does.
Eclipse Oniro targets the Internet of Things (IOT) domain, where fixing
security issues is critical.</p>
<p>In this talk, Marta is going to present a return on experience of
scanning for known vulerabilities (CVEs) in the Eclipse Oniro project.
The presentation is going to start with an overview of tools based on
Yocto's cve-check and additions from the Oniro project. Then it will
cover examples of fixes, situations when we found errors in databases
and tools, and how we fixed them. Finally, Marta
is going to describe ideas of improvements in existing tools and propose
new tools that can help the community.</p>Marta RybczynskaScanning in Oniro-Slides
A previous presentation covering the more general topic of security in the distribution at Embedded Linux Conference 2021
Oniro project and its security tooling
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:4000:20D.dependencyreporting_vulnerabilities_within_complex_software_environment_cve_bin_toolReporting vulnerabilities within a complex software environmentUsing the CVE-Bin-Tooldevroom<p>Detecting known software vulnerabilities is hard to do perfectly. However, the CVE Binary Tool is a tool which has been designed to analyse and trace dependencies by performing a binary analysis that attempts to detect the versions of the libraries in compiled applications in order to determine the vulnerabilities that may be present. Since the tool was initially released, the number of libraries which can be detected has steadily increased so now over 100 libraries can be detected primarily through the effort of students working under the Google Summer of Code (GSOC) programme. Supported libraries have typically been prioritised based on the number and frequency of vulnerabilities reported in the CVE database. The latest version of tool released at the end of 2021 has added capabilities to perform vulnerability scanning of Linux distros, Python applications and to consume Software Bill of Materials (both the SPDX and CycloneDX formats are supported). Further enhancements are planned in 2022.</p>
<p>This presentation will describe how the tool works, how to use it in a number of use cases and show how you can contribute to further develop the capabilities of the tool.</p>Anthony Harrison
CVE Bin Tool Repo
Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0000:20D.dependencycommoditising_open_source_risk_managementCommoditising Open Source Risk ManagementFirst Open Source SCA Platformdevroom<p>SCANOSS disrupts the SCA market by offering the first fully Open Source SCA Platform. From the mining tools to the database engine, scanning engine, CLIs to a fully featured Multiplatform Auditing UI. It is all pure open source and available to use. SCANOSS aims at commoditising Open Source Risk Management and driving SBOM adoption not only for large corporations, but also for independent developers and SMEs who are key parts of the Software Supply Chain.</p>Julian Coccia
SCANOSS Homepage
Software Transparency Foundation
OSSKB Homepage
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:2000:40D.dependencysoftware_composition_dependency_panel_2Panel 2: Dependencies for Vulnerability Discovery and Trackingdevroom<p>One important use of dependency information is for the identification and discovery of vulnerabilities. The presentations present diverse interesting projects and approaches. We want to understand if the current approaches address the needs of cybersecurity efforts, how they compare to threats beyond dependency vulnerabilities, and how they can be combined, extended, and learn from each other.</p>Diomidis Spinellis
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:20D.dependencylunch_breakLunch Breakdevroom<p>lunch break</p>
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:2000:20D.dependencygenerating_sbom_for_your_code_using_oss_review_toolkitGenerating SBOM for your code using OSS Review Toolkitdevroom<p>In this talk Thomas will present how one can use OSS Review Toolkit (ORT) to build a CI/CD workflow to do license/security compliance and generate SBOMs. The talk will include a demonstration of OSS Review Toolkit and how its various features in combination with GitLab-based process can be used to automated FOSS reviews requirements (incl. SPDX SBOM generation) and use crowdsourcing within an organization and the FOSS community to overcome challenges such as large amounts of scan results or missing/incorrect FOSS package metadata.</p>Thomas Steenbergen
Project main code repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:4000:20D.dependencysbom_resolver_generating_detailed_sboms_for_alpineSBOM Resolver - Generating detailed SBOMs for Alpinedevroom<p>In the light of increasing importance of supply chain security, obtaining detailed and accurate Software Bills of Material (SBOMs) for software images is fundamentally important. In this talk, we will present a tool called SBOM Resolver which generates detailed SBOMs for Alpine software images. It specifically leverages meta-data from the Alpine package management system to resolve all dependencies of a list of desired packages and enhances the resulting SBOM with additional information such as patches applied by the Alpine community.</p>
<p>The current implementation is specific to Alpine, however, this presentation aims to introduce the key concepts and based on those start a discussion of how to apply SBOM Resolver to other distributions.</p>Georg Kunz
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:20D.dependencyfasten_fine_grained_analysis_software_ecosystems_networksFASTEN: Fine-Grained Analysis of Software Ecosystems as Networksdevroom<p>In modern software development, it is common to use open-source software (OSS) to boost productivity. According to the National Vulnerability Database, OSS often has security vulnerabilities. On the other hand, research has shown that developers do not update their dependencies. Because existing security tools suffer from a high false-positive rate as they analyze software at the package level.</p>
<p>FASTEN analyzes software packages at the finer-grain level by producing an enormous network of software ecosystems. This allows giving vulnerability information at the method level. With this information, developers are notified when their code uses vulnerable methods, and hence they are more confident to update their dependencies. The said functionality will be provided in the famous package managers such as Maven and PyPI.</p>Amir Mir
FASTEN's GitHub repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:2000:40D.dependencysoftware_composition_dependency_panel_3Panel 3: Creating SBOMsdevroom<p>The Software Bill-of-Material (SBOM) is the foundation when it comes to the exchange between tools and organizations. SBOMs are not new as the session has outlined, rather, mature approaches exist. We would encourage a discussion about the current experience when exchanging SBOMs between organizations and tools today.</p>Antoine Mottier
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:2000:20D.dependencyon_backporting_practices_in_package_dependency_networksOn Backporting Practices in Package Dependency Networksdevroom<p>The practice of backporting aims to bring the benefits of a bug or vulnerability fix from a higher to a lower release of a software package. When such a package adheres to semantic versioning, backports can be recognised as new releases in a lower major train. This is particularly useful in case a substantial number of software packages continues to depend on that lower major train. In this talk, we discuss the backporting practices in four popular package distributions, namely Cargo, npm, Packagist and RubyGems. We observe that many dependent packages could benefit from backports provided by their dependencies. In particular, we find that a majority of security vulnerabilities affect more than one major train but are only fixed in the highest one, letting thousands of dependent packages exposed to the vulnerability. Despite that, we find that backporting updates is quite infrequent, and mostly practised by long-lived and more active packages for a variety of reasons.</p><p>The full paper associated with this talk can be found at https://doi.org/10.1109/TSE.2021.3112204
The research has been carried out in the context of the Belgian SECOASSIST "Excellence of Science" Research Project https://secoassist.github.io</p>Ahmed ZeroualiTom MensBack to the Past -- Analysing Backporting Practices in Package Dependency Networks
IEEE TSE article "Back to the Past -- Analysing Backporting Practices in Package Dependency Networks"
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:4000:20D.dependencydependency_owaspOperationalize SBOM with OWASP Dependency-Trackdevroom<p>Dependency-Track is an intelligent Component Analysis platform that allows organizations to operationalize the use of CycloneDX Software Bill of Materials (SBOM). The platform allows organizations to quickly identify and reduce risk in the software supply chain and is ideal for use in modern DevSecOps environments, procurement, and M&A.</p>
<p>Discover the benefits of leveraging OWASP CycloneDX Software Bill of Materials along with OWASP Dependency-Track.</p><p>Dependency-Track maintains accurate and complete inventory of all libraries, frameworks, applications, containers, operating systems, firmware, hardware, and services across an organization. The platform provides full-stack traceability for the cloud, for the enterprise, for smart devices, and for IoT.</p>
<p>Dependency-Track can quickly identify vulnerable components and supports multiple sources of vulnerability intelligence including the National Vulnerability Database (NVD), Sonatype OSS Index, GitHub Advisories, and VulnDB from Risk Based Security. The platform has a flexible policy engine and identifies security, operational, and license risk across development teams, suppliers, and partners in the supply chain.</p>Steve Springett
https://dependencytrack.org/
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:20D.dependencytracking_software_dependenciesTracking Software Dependenciesdevroom<p>The accurate identification of software elements and their dependency relationships are critical for understand when specific software is exploitable. Different types of dependencies necessary for security use cases will be explored.</p><p>Recently identified vulnerabilities found in Log4j has made it clear that we need to be able to track how software is included and used in applications and systems. The first challenge is identifying the software element (be it an application, library, component, file, snippet) accurately when there may be multiple ways to refer to it. The next challenge is clearly articulating the dependencies between these software elements. Once a vulnerability is identified and correlated with a well identified software element, the dependency information can be used to find if any key software elements may be impacted.</p>
<p>This talk will go through the approaches for identifying software via external references, as well as they types of relationships that have proven useful in tools so far to map out dependencies between the elements that tools producing SPDX SBOMs have found useful to date. We will demonstrate a proof of concept utility where an SPDX document with relationship information can be used to query the OSV online vulnerability database.</p>Kate StewartGary O'Neall
SPDX community homepage
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:2000:40D.dependencysoftware_composition_dependency_panel_4Panel 4: Software Compositions and Dependency Toolsdevroom<p>As the presentations discuss, identifying dependencies can be a tedious task. It depends on the software project itself, as well as the used technology stack how certain dependencies can be identified. In the panel discussion about the special stories when trying to identify all dependencies.</p>Philippe Ombredanne
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:10D.sdssds_ceph_csi_k8s_migrationMigrate to Ceph-CSIMigrate your persistent volumes from old volume plugins to Ceph-CSIdevroom<p>Currently, to access storage, many different type of Volume Plugins are used. But many of them like "FlexVolume" and "In-tree" are either OLD, or deprecated.</p>
<p>In our talk, we wish to discuss the solution of the same, by sharing information about the different types of volume plugins; and demonstrating the migration procedure from deprecated plugins to the latest "CEPH-CSI"(https://github.com/ceph/ceph-csi); with a pre-recorded demo of the same.</p>Yug GuptaSubham Rai
persistent-volume-migrator
ceph-csi
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:30D.sdssds_garage_introductionIntroducing Garage, a new storage platform for self-hosted geo-distributed clustersdevroom<p>Garage is a new storage system for building geo-distributed storage clusters. Garage is developped by Deuxfleurs, an experimental self-hosting collective.</p>
<p>Garage targets primarily home-grown clusters composed of second-hand commodity hardware, spread over multiple physical locations for redundancy. This deployment scenario implies strong constraints on the software, such as having to deal with slow nodes and high latency between nodes. In a fist part of this talk, we will show how Garage's design enables it to function very well in this scenario, contrarily to other solutions we have tested such as Minio or Glusterfs.</p>
<p>Garage is focused on implementing the Amazon S3 protocol, a de-facto standard that makes it directly usable as a storage backend for many web applications (such as Nextcloud) or as a backup target. A second part of this talk will be focused on showing how Garage integrates with Deuxfleurs' current self-hosting stack, and how it can be easily configured with a variety of applications.</p>Alex Auvolat
Website
Source code
Benchmarks
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:30D.sdssds_replicate_and_migrate_ceph_rgw_to_cloudData Replication and Migration from Ceph RGW to Clouddevroom<p>With seemingly insatiable demand for and growth of data within the organizations, secure and quick movement of the data often becomes a challenge in any Hybrid Cloud enviroment. The external tools and multi-cloud gateway providers add overhead to the latency and may not leverage full capabilities of On-Prem infrastructure. To overcome this, Ceph distributed storage, often handling petabytes of data, provides ways to move data directly from its OnPrem S3 RGW servers to multiple cloud providers, thus easing data movement.</p>
<p>In this session, we will briefly discuss about the CloudSync and CloudTransition features in Ceph RadosGateway (RGW) which can be used to replicate and migrate data to any external cloud providers.</p><p>We will also look into how to configure and enable these features, their current limitation and future work.</p>
<p>As a pre-requisite, it would help to know what ceph object gateway is and how it works (https://docs.ceph.com/en/latest/radosgw/)</p>Soumya KoduriData Migration and Replication from Ceph RGW to Cloud
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3000:40D.sdssds_cosi_updateCOSI : a brief update devroom<p>For applications in Kubernetes, CSI provides a way to consume file/block storage for their workloads. The main motivation behind the Container Object Storage Interface is to provide a similar experience for Object Store. Basic idea is to provide a generic, dynamic provisioning API to consume the object store and the app pods can access the bucket in the underlying object-store like a PVC. The major challenge for this implementation there is no standard protocol defined for object and the COSI project need to be vendor agonistic. For example, in the case of RGW, the application can request for S3 bucket and Swift bucket from the same ceph-cosi driver. Ideally, the Kubernetes resource for the bucket can be migrated to the different cloud if the drivers support it and the application can seamlessly continue with the same k8s object. It won't handle the orchestration/management of object store, rather it will be another client and provide bucket access on behalf of applications running in Kubernetes.
A similar session was given in last FOSDEM'21, but the whole project went through design changes and will share that information.</p>Jiffin Tony Thottan
ceph-cosi-driver
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:2000:55D.valgrindvalgrind_freebsdUpstreaming the FreeBSD Portdevroom<p>Introduction - about me. Overview of the FreeBSD ports system. History of the FreeBSD port. The mechanics of how Valgrind works - the launcher, stack creation, ELF parsing and much more (but not in too much detail). A description of some of the major issues that were fixed. How clang code generation differs from GCC and the kinds of problems that it causes. Future work - outstanding bugs and other hardware platforms.</p>Paul FloydUpstreaming Keynote SlidesUpstreaming PDFUpstreaming PowerPointPlain text transcript
Github repo used during the upstreaming process
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:2000:25D.valgrindvalgrind_avx512Enable AVX-512 instructions in Valgrinddevroom<p>AVX-512 is a set of vector assembly instructions available on Intel Xeon Phi processors (for example, Skylake). To allow Valgrind analyze the code compiled with these instructions, they have to be explicitly enabled in Valgrind.
The presentation will briefly describe the specifics of AVX-512 instructions and describe in more detail the way it is has been prototyped in Valgrind.</p>Tanya VolninaAVX-512 Valgrind slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:5000:35D.valgrindvalgrind_debuginfoValgrind and debuginfodevroom<p>With debuginfo Valgrind can provide more useful information about issue found. But till recently it was sometimes hard to get at the debuginfo and valgrind startup time would be really slow parsing the debuginfo. With the introduction of debuginfod support getting the debuginfo is much easier, if your distribution supports it. And the parsing of debuginfo has been improved dramatically. This talk will explain how debuginfod integrates with valgrind and how the debuginfo parsing was improved.</p>Mark WielaardValgrind and Debuginfo slidesValgrind and Debuginfo transcript
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:25D.valgrindvalgrind_riscvValgrind on RISC-Vdevroom<p>Valgrind is an instrumentation framework with support for a wide range of general-purpose processor architectures. RISC-V is a modern open-standard architecture which has seen increasing adoption lately. The talk describes an effort to add support for this new architecture in Valgrind.</p>
<p>The talk provides a brief overview of the dynamic translation in Valgrind and a short introduction to the RISC-V architecture. It then discusses implementation work to add support for RISC-V in Valgrind, and finally presents the current state of this project and outlines future plans.</p>Petr Pavlu
https://github.com/petrpavlu/valgrind-riscv64/
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:25D.valgrindvalgrind_isa31Adding Power ISA 3.1 instruction support to Valgrinddevroom<p>The Power ISA 3.1 is an extension of the Power instruction set. The presentation is targeted at the Valgrind developer who is interested in implementing new instruction support in Valgrind. The presentation will discuss implementing new instuctions using Iops, clean helpers and dirty helpers in Valgrind. A brief discussion of the functionality of the new instructions in the Power ISA 3.1 instruction set will also be discussed.</p>Carl LoveAdding ISA 3.1 support to Valgrind
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:3000:30D.valgrindvalgrind_2020 years of ValgrindCelebrationdevroom<p>Valgrind is 20 years old now! On July 27, 2002 Valgrind 1.0 was released. And the initial commit to the code repository was March 22, 2002. But the real birthday of Valgrind might go back as far as the Norse Mythology. Please come and join us for a celebration of (at least) 20 years of Valgrind. A retrospective of the project and (your) ideas for the next 20 years.</p>Julian SewardMark Wielaard
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:30D.web3peergosPeergos - Combining peer-to-peer connectivity, end-to-end encryption and fine grained access control to build a secure and privacy focused self-certifying web protocoldevroom<p>Peergos gives users total control over their data. That means: Where it is, Who can see it, Who can't see it.</p>
<p>Used as a global file system, Peergos provides a private space where you can store, share and view your media and documents. Individual content can be shared outside peergos via secret links and whole static sites can be hosted via a gateway.</p>
<p>Used as an application platform, Peergos provides productivity tools like a calendar, todo/project boards and document viewer/editors. In the near future users will be able to add their own applications using the same secure application protocol.</p>
<p>Used as a communication platform, Peergos provides a social media feed, group chat and an email bridge.</p>
<p>Peergos is open source and self-hostable.</p>
<p>This talk with introduce Peergos. It will expand on the project's goals, its architecture and some of the technical details. It will provide a walkthrough of the current functionality and a sneak-peak of what the future may hold.</p>kevin o'dwyerPeergos Slides
Peergos website
Main Github repository
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:3000:30D.web3ahauĀhau: Māori Identity & Data Sovereigntydevroom<p>Āhau is a FOSS project from Aotearoa New Zealand, built to meet the data needs of Māori. This talk will share insights from thinking in a less Eurocentric way about data, and how the need for data sovereignty has lead us to p2p data models, which fit really well with human-focused systems. Over the last 3 years, we've built a desktop application on secure scuttlebutt that is currently in use by hapū and iwi (tribal groups) to record family histories and create tribal registries.</p><p>Slides: https://mixmix.gitlab.io/fosdem22-ahau/#/</p>
<p>Repo: https://www.gitlab.com/ahau/ahau</p>
<p>Homepage: https://ahau.io/</p>
<p>Technologies:
- secure scuttlebutt - http://dev.scuttlebutt.nz, https://scuttlebutt.nz (p2p messaging)
- tangle-js - https://gitlab.com/tangle-js (used to build ssb-crut) (CRDT-like tech)
- hyperdrive - https://github.com/hypercore-protocol/hyperdrive (hyper/ DAT for large files)
- sodium-native - https://github.com/sodium-friends/sodium-native (encryption)</p>Mix Irving
Āhau website
Code repo
Slides
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:0000:30D.web3wasm4dWASM for dummiesA very short primer in a series of actsdevroom<p>Web Assembly has been touted to be the next best thing after containerization. But what is WASM exactly? Why are people so excited about it and how is it relevant in this day and age? Has Javascript finally found a worthy replacement? "WASM for dummies" is a talk that was born out of the necessity for more content in this space. Also, it definitely contains a lot of stuff the speaker wishes somebody would have spoken about when she began her journey.</p>Divya MohanSlides for the presentation
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
11:3000:30D.web3aqua_fluenceAquaVM: Empowering distributed systems with Fluencedevroom<p>At Fluence we are developing an open stack solution that allows developers to choreograph and compose distributed, peer-to-peer hosted services. An integral pillar of this stack is AquaVM, github.com/fluencelabs/aquavm, a composability medium developed in Rust. AquaVM is the Rust-based AIR interpreter compiles to WebAssembly and allows for the seamless orchestration of peer-to-peer hosted, Wasm-based services. In this talk, we demonstrate and discuss the use of AIR and some it internals. Moreover, we present the project evolution from its beginning in the context of Rust and Wasm.</p>Mike Voronov
source code of the interpreter
source code of the compiler
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:0000:25D.web3humanityxHumanity and Web3xHumanity - reputation, reduction of fake news, and privacydevroom<p>xHumanity is a project that started from the idea of identifying the future of digital identities. This concern resonated all over the globe. We thus gathered an international team. Our concern is based on the increased impact social media has on our lives, but also the context of the amplification of disinformation actions.
We aim to run a foundation focused on providing our audience with a digital platform based on three pillars, which are reputation, reduction of fake news, and privacy. We aim to empower customers by providing them with a better way of living.</p><p>Reputation
Blockchain technology could help all parties involved in any types of transactions. But not alone. To construct a secure and trustable transaction we need to start with valid data. This data in our case will be provided through reputation protocol. Everyone's reputation passport will reduce friction between parties.</p>
<p>Privacy
xHumanity enables decentralized identities: self-managed identities hold that individuals should have control over their own personal data and determine how it is shared with others. End-to-end encrypted communication: the difference between xHumanity and the current messaging app landscape is that xHumanity does not require users’ phone numbers to provide access to its services and features.</p>
<p>Reduction of fake news
One of our main goals is to reduce and eliminate fake news from the internet space through a few principles from the gaming theory. Peoples’ involvement in the game is essential, as they are the main actors in creating new social rules.</p>Cosmin Vranceanu
https://xhumanity.org
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
12:3000:35D.web3fluenceCommoditizing P2P development With Aqua language and Fluencedevroom<p>yeah</p><p>Peer-to-peer protocols seem nice and promising, but are actually hard to design and implement properly. Fluence addresses this problem with Aqua, the new-gen distributed language designed for programming p2p networks that can help in a variety of multi-agent scenarios, from notifications pushing to consensus algorithms. We will speak about the infrastructure and tooling we have, and how to make a simple p2p protocol with a few lines of code.</p>Dmitry Kurinskiy
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:0500:25D.web3earthstarEarthstarThe merits of being a bicycle when everything else is a hyperloop.devroom<p>Earthstar is a specification and Javascript library for building online tools you can truly call your own.</p>
<p>By being light, simple, and cheap, bicycles confer huge amounts agency to their users. 'Web3' doesn't have a lot of bicycles.</p>
<p>Instead it's got a lot of hyperloops: slick, complex, expensive, and with very little application.</p>
<p>What can we learn from bicycles when we design new tools for the web? Earthstar occupies a relatively unexplored band of the contemporary web3 spectrum: ephemerality, lightness, offline-ness, malleability, and serving groups of people who already know each other.</p>
<p>This project was funded through the NGI Assure Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 957073. Applications are still open, you can apply today.</p>Sam Gwilym
https://earthstar-project.org
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
13:3000:25D.web3ipfsEdges Are Infrastructure: IPFS Everywhere for a More Resilient FutureAdventures in IPFS support across Bluetooth, mobile devices, XR and more!devroom<p>This is an overview of IPFS integrations across various platforms, devices and network transports - including browser integrations, video demos of IPFS apps on a native web3-based OS on Pixel 3, IPFS content loaded into various XR devices like Oculus Quest and HTC Vive Flow, and mobile-to-mobile IPFS apps via Bluetooth LE.</p>Dietrich Ayala
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:0000:30D.web3quarkThe Quark BrowserUncovering the paths through the webdevroom<p>The internet is an entire universe. Countless links emerge and die off every minute. Each of us have our own habits and patterns across it. Our browsing is increasingly complex, so it makes no sense why we're still using technology based on filing cabinets -- tabs, files, folders. Quark is the DWeb browser x social platform that shows you paths across the internet. Imagine if you could bump into someone else looking at similar content/search results, see where they've been, and tag along to discover content together.</p>
<p>In this presentation, I'll share use cases for The Quark Browser, as well as how this tool can address the existential crises of the siloed Web 2.0 internet by making the internet more serendipitous, visual, and communal.</p><p>The internet is bustling with activity, but today we can only meet and interact with others at specific “parties.” These online "parties" are free to enter, serve free drinks, and play good music. But in exchange, the hosts of these parties sell your information. The Quark Browser asks the question: What if you can meet and interact with like-minded people <em>anywhere</em> on the internet?</p>
<p>The Quark Browser delivers the decentralized p2p vision of DWeb and makes it accessible to the public, no matter their level of technical understanding. Unlike most Web3 companies which innovate with a financial, privacy, or technical focus, Quark does so from a unique interaction design approach. Our vision is product-focused – to build a dynamic, living, and persistent “playground” that nurtures meaningful social connections. With a business model, technology stack, and experience design that learns from the mistakes of Web 2.0, Quark aims to bring variety and serendipity to the content we discover, connect ideas via relational maps, and help us build peer-to-peer communities of likeminded people all in line with the browsing experience.</p>
<p>We are a two-person team of multi-time founders – Joy, the Founder/CEO, and Sam, the founding Product Designer. This is Joy’s fourth startup, and Sam’s second. Sam’s first startup at age 14 was featured in the Colombian equivalent of “Financial Times” and was invited to Shark Tank. He is a Gen-Z self-learner which makes him familiar with the modern pain points in complex browsing. Joy completed a master's thesis on the very problem that Quark solves. She has worked for companies such as Apple, IDEO, and Fiat Chrysler Automobiles. Her undergraduate degree is in mechanical engineering and human-computer interaction from Georgia Tech, and her master's in interdisciplinary design engineering from the Royal College of Art and Imperial College London. We are looking for a CTO/Tech Lead to help lead the technological development.</p>Joy Q ZhangSlides
Use case for The Quark Browser for sustainability research
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
14:3000:30D.web3swarmSwarm, what's in it for me?Developers editiondevroom<p>The option to choose a decentralized storage network in the stack of your application is far-reaching but perhaps not well understood. In this presentation, I intent to give guidance and understanding by answering the question of when it makes sense to use Swarm in your stack.
I start with a brief introduction to Swarm after which I highlight 3 (not so) typical applications which already run on top of Swarm. I end by introducing the paradigm shift that we see happening when developers start to explore Swarm and truly get to know what it means for them--the avenues that Swarm opens and the new patterns that can be explored.</p>
<p>I hope to see you at my presentation and be sure to take all your questions to the live Q&A!</p>Rinke Hendriksen
Ethereum Swarm
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:0000:30D.web3libp2pState of libp2pStatus quo and future roadmap of the peer-to-peer networking library libp2p.devroom<p><a href="https://libp2p.io">libp2p</a> is a universal, cross-platform, multi-language, modular peer-to-peer networking library powering multiple large-scale networks, for example IPFS, Ethereum 2, Filecoin or Polkadot.</p>
<p>We will discuss the current state of the project, eyeball the various language implementations, take a look at the many live networks running on top of libp2p today and finally cover the project roadmap for the years to come.</p>Max Leonard Indenslides.pdf
Project Homepage
Specifications
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
15:3000:30D.web3hyperhyperHyper Hyper Space: In-browser p2p applicationsA quick tour on using the browser as a p2p nodedevroom<p>A quick tour on using Hyper Hyper Space datatypes to create fully distributed structures for collaborative applications.</p>
<p>We'll start with a simple last-writer-wins JSON object, to complex structures like a moderated chat room and a simple ledger.</p>
<p>Then we'll open them inside a web browser, using plain javascript, and show how the web can be used as a platform for truly peer-to-peer applications.</p><p>The Hyper Hyper Space library offers two things:</p>
<ul>
<li><p>A data modeling language, that presents building blocks to create and compose CRDT-like operational datatypes, that are backed by a Merkle-DAG.</p></li>
<li><p>A synchronization protocol for Hyper Hyper Space datatypes, with an implementation that works both in-browser (through WebRTC & IndexedDB) and NodeJS.</p></li>
</ul>
<p>In this talk we'll focus on how to use the modeling language, and see in practice how to use the created objects inside a web browser using JavaScript.</p>Santiago Bazerque
Project Homepage
Demo
Core Library
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:0000:30D.web3whereCollabortive group self-awareness with Where, a Holochain appA demo of how distributed ledger tech can up-regulate group capacity.devroom<p>A playground for group self-awareness (awhereness?) on holochain</p><p>Groups, especially remote collaborative groups, often lack contextual information about collaborators that makes working together harder. Co-locating oneself across a number of spaces in the context of a group (or groups) provides an important avenue for improving both sense-making and working together. Where provides a generalized grammar for creating shared maps for groups to see the emergent "whereness" of each other, as well as the grammatics to self-evolve these spaces and how to represent "location" in them.</p>
<p>Read more in Eric's blog post about Where (https://eric.harris-braun.com/blog/2021/09/16/id-377) and explore the details in Where's github repo (https://github.com/lightningrodlabs/where)</p>Eric Harris-Braun
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
16:3000:25D.web3didkitVerifiable Credentials and Decentralized Identifiers with DIDKitdevroom<p>We present DIDKit, a toolkit for Verifiable Credentials and Decentralized Identifiers, implemented in Rust. This includes an introduction to Verifiable Credentials ("VCs"), a W3C Recommendation; to Decentralized Identifiers ("DIDs"), a Proposed W3C Recommendation; and to the signing formats used with these: JSON Web Signatures (JWS) and Linked Data Proofs. Charles Lehner will demo using DIDKit to issue, present and verify verifiable credentials using DIDs based on cryptographic keypairs. Charles is joined by Juan Caballero (@bumblefudge) for the Q&A.</p>Charles LehnerSlides (PDF export)Slides (zip archive)Verifiable Presentation with embedded Verifiable Credential, generated during the demo
ssi: core library used in DIDKit
DIDKit: Toolkit for Decentralized Identifiers and Verifiable Credentials
DIDKit - dev portal
Slides (web page)
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:0000:25D.web3solidBuilding Interoperable Applications with Solid in 2022devroom<p>Each time a new software project is created, a new data silo is also made. Solid, the decentralized web network pioneered by Tim Berners-Lee, aim to combat the expanding number of data silos by standardizing a global decentralized knowledge graph. Though, this is easier said than done. Ensuring all applications using the knowledge graph are interoperable is a massive undertaking.</p>
<p>This talk will detail the ongoing efforts to make it easier for application developers to build interoperable applications, the yet to be implemented future visions for interoperability, and how these methods can be used in other decentralized web projects outside of Solid.</p>Jackson Morgan
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
17:3000:30D.web3onecommonsHow to build a free and open clouddevroom<p>This talk will explore how we can bring open source collaboration to building and running cloud services. We present our vision of "Open Cloud Services" that provide the same openness and freedom to users and developers as open-source software. But running a cloud service requires resources so how can that be funded? An ideal solution would be simple, equitable and fair -- and not compromise the ethos of open source. We'll discuss our attempt at solving this puzzle, a funding mechanism we call cloud funding.
Next, we'll introduce Unfurl, our DevOps tool for building reproducible, cloud-provider independent open cloud services and then look to future Web3 and decentralization technologies that make this possible -- specifically how blockchain-based decentralized data and remote attestation, transparent and reproducible open cloud services, and next-generation secure-computing cloud infrastructure all combine to provide the building blocks of a free and open cloud.</p>Adam SouzisSlides for Talk
https://onecommons.org
Video recording(WebM/VP9)
Video recording(mp4)
Chat room (web)
Chat room (app)
Hallway chat room (web)
Hallway chat room (app)
Submit feedback
10:0000:15S.kdekde_newsKDE NewsAdam Szopastandtrack
Chat room (web)
Chat room (app)
Submit feedback
10:3000:30S.kdekde_plasmaPlasma 5.24 tourAdam Szopa, Aniqa Khokhar and Paul Brownstandtrack
Chat room (web)
Chat room (app)
Submit feedback
12:0001:00S.kdekde_tokodonLive coding session with TokodonCarl Schwanstandtrack
Chat room (web)
Chat room (app)
Submit feedback
09:0009:00I.infodeskinfodesk_sundayThe Virtual FOSDEM Infodesk (Sunday)infodesk<p>Need any assistance during the event? Join us in here!</p>
Chat room (web)
Chat room (app)
Submit feedback