Skip to content

Instantly share code, notes, and snippets.

@johnjohndoe
Last active January 12, 2020 17:57
Show Gist options
  • Save johnjohndoe/a800afcebca89caa3353d1c7c1cfe73f to your computer and use it in GitHub Desktop.
Save johnjohndoe/a800afcebca89caa3353d1c7c1cfe73f to your computer and use it in GitHub Desktop.
FOSDEM 2020 Schedule (Snapshot of the official program - this may not be updated - do not use!)
This file has been truncated, but you can view the full file.
<schedule>
<conference>
<title>FOSDEM 2020</title>
<subtitle/>
<venue>ULB (Université Libre de Bruxelles)</venue>
<city>Brussels</city>
<start>2020-02-01</start>
<end>2020-02-02</end>
<days>2</days>
<day_change>09:00:00</day_change>
<timeslot_duration>00:05:00</timeslot_duration>
</conference>
<day date="2020-02-01" end="2020-02-01T05:00:00+01:00" index="1" start="2020-02-01T10:00:00+01:00">
<room name="Janson">
<event id="9025">
<start>09:30</start>
<duration>00:25</duration>
<room>Janson</room>
<slug>keynotes_welcome</slug>
<title>Welcome to FOSDEM 2020</title>
<subtitle/>
<track>Keynotes</track>
<type>keynote</type>
<language/>
<abstract>&lt;p&gt;FOSDEM welcome and opening talk.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Welcome to FOSDEM 2020!&lt;/p&gt;</description>
<persons>
<person id="6">FOSDEM Staff</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9025.php">Submit feedback</link>
</links>
<date>2020-02-01T09:30:00+01:00</date>
</event>
<event id="9249">
<start>11:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>libreoffice_turns_ten</slug>
<title>LibreOffice turns ten and what's next</title>
<subtitle>Lots to learn, and get excited about</subtitle>
<track>History</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;From ten years of LibreOffice, how can you apply what we
learned to your project ? What is going on in LibreOffice today, and
where is it going ? and How can you re-use or contribute to the story.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Come hear about the story of LibreOffice, the reasons we
started - and some of the highlights: successes, failures and other
lessons learned from our first ten years. Hear how our initial
decisions and vision of open-ness and vendor neutrality panned
out. See what has been learned about building an effective commercial
ecosystem, with certification.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Hear about the trajectory of technical updates and how we
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;re-juvenated an open-source code-base through massive re-factoring, as
well as re-targetting for web and mobile.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Catch up with the latest in Online innovation, optimization
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and scalability work as well as our growing integration with lots of
other Open Source projects.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Finally catch up with the latest and greatest feature/function
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;improvements as we move towards LibreOffice 7, and find out how you
can best get involved with the next decade of the LibreOffice story.&lt;/p&gt;</description>
<persons>
<person id="425">Michael Meeks</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9249.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
<event id="9045">
<start>12:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>automation</slug>
<title>Over Twenty Years Of Automation</title>
<subtitle/>
<track>History</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;Over the past twenty years, the automation landscape has changed dramatically.
As our hunger for complex technical infrastructure increased, and our inability to keep up with these demands faltered, we've outsourced a lot of the work to third-parties and cloud providers.
We'll step backwards and show where we came from, and where we're going.
If we don't understand this future, and step up to the challenge, then we eventually won't control our own computers anymore.
We'll discuss this timeline from a tools perspective and showcase many live demos of the past, present, and what will be possible in the future.
This presentation will contain many demos and interactive examples. I will showcase some modern ideas I have with my Free Software project called mgmtconfig.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="2026">James Shubin</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9045.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="9314">
<start>13:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>blender</slug>
<title>Blender, Coming of Age</title>
<subtitle>18 years of Blender open source projects</subtitle>
<track>History</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;The presentation is going to be audiovisual and entertaining; based on a number of short videos I want to tell the story of Blender. Starting in late 90s, how Blender became open source, going over the big milestones for Blender, end ending with the fast growth of our project and the interest of the film and game industry. Blender now is a more mature project now, which involves a different dynamics than it used to be. How are we going to tackle the challenges of the industry, while not losing the community that brought us this far?&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6621">Ton Roosendaal</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9314.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="9089">
<start>14:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>early_unix</slug>
<title>The Hidden Early History of Unix</title>
<subtitle>The Forgotten history of early Unix</subtitle>
<track>History</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;The early history of Unix is much richer than is usually presented. There are many hidden gems that are little known and quite interesting to learn about. The dates of many of the &quot;firsts&quot; for Unix accomplishments is much earlier than people think. This well-researched talk explores those gems, firsts and shares many artifacts from the early days of Unix. Many of these artifacts have just come to light in recent years, and change how we view the early history of Unix. Even the oldest of grey beards will learn things they didn't know about Unix from this talk.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Most histories of Unix follow the same old boring plan: talk about Multics, Ken scrounging the pdp-7, moving to the pdp-11, rewriting in C and then the explosion that happened with V6 and V7 before jumping into the Unix wars between AT&amp;amp;T and BSD followed by something about Linux (either pro or con depending on the speaker's politics). We've all seen it, and many can predict which &quot;classic&quot; pictures will be used, the points that will be made, and the arcs drawn.&lt;/p&gt;
&lt;p&gt;This talk is nothing like that. It brings all the early years of Unix to life in a unique way. The early years of Unix were surprising rich. The author will use original sources to take you on a tour of many of the firsts in Unix and explore the community ties key to Unix's early success. Many of today's fads, like microkernels, hypervisors, multiprocessing and user mode execution actually happened early on in Unix's history, long they were today's fads. &quot;What's old is new again&quot; has never been so apt. You'll be surprised to learn how early each of these things happened. Come see the secret history of Unix as it played out both in obscure business units of AT&amp;amp;T and in the world wide users groups who banded together to support each other when AT&amp;amp;T wouldn't. You'll see footage of early machines as well as the first real Unix application: space travel (newly rediscovered and restored by the TUHS group). See first hand the machines, programs, newsletters and documentation that together weave a rich tale of innovation, community and working within constraints. Learn how today's open source movement owes a debt to these early communities and how they paved the way for Unix to become the open and ubiquitous system it is today and helped sow the seeds for the communities of today.&lt;/p&gt;</description>
<persons>
<person id="6482">Warner Losh</person>
</persons>
<links>
<link href="https://bsdimp.blogspot.com/2019/10/video-footage-of-first-pdp-7-to-run-unix.html">Ken's PDP-7 appears in Bell Labs Film</link>
<link href="https://bsdimp.blogspot.com/2019/07/the-pdp-7-where-unix-began.html">Identifying the exact machine Ken Thompson used to create Unix</link>
<link href="https://youtu.be/FTlzaDgzPY8">EuroBSDCon preliminary version of talk</link>
<link href="https://www.tuhs.org/">The Unix Historical Society</link>
<link href="https://submission.fosdem.org/feedback/9089.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="9066">
<start>15:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>generation_gaps</slug>
<title>Generation gaps</title>
<subtitle/>
<track>History</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;For as long as computers have been around, roughly every 10-15 years, the whole industry underwent a reset and reinvented itself anew… until the early 1990s, when somehow, the industry skipped a generation. Instead, it looked backwards, and adopted an older model of computing. The cost has been very high and is holding back the development of the entire field.&lt;/p&gt;</abstract>
<description>&lt;p&gt;This talk looks at how we turned to the past instead of the future, what we missed out on as a result, and how to move forward. It follows on from the above proposal, but takes a different tack and should stand alone. It looks at where personal computers might have – but didn’t – go in the 1980s and 1990s. At a sampling of advanced OS technologies that never caught on – Plan 9, Inferno, Taos, Oberon – and the cool stuff we lost out on as a result.&lt;/p&gt;
&lt;p&gt;It will end with trying to identify the next such generation gap, and why we should consider starting afresh rather than adapting current tech for the next gen.&lt;/p&gt;</description>
<persons>
<person id="4843">Liam Proven</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9066.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="9008">
<start>16:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>http3</slug>
<title>HTTP/3 for everyone</title>
<subtitle>The next generation HTTP is coming</subtitle>
<track>Internet</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;HTTP/3 is designed to improve in areas where HTTP/2 still has some shortcomings, primarily by changing the transport layer. HTTP/3 is the first major protocol to step away from TCP and instead it uses QUIC.&lt;/p&gt;</abstract>
<description>&lt;p&gt;HTTP/3 is the designated name for the coming next version of the protocol that is currently under development within the QUIC working group in the IETF.&lt;/p&gt;
&lt;p&gt;HTTP/3 is designed to improve in areas where HTTP/2 still has some shortcomings, primarily by changing the transport layer. HTTP/3 is the first major protocol to step away from TCP and instead it uses QUIC.&lt;/p&gt;
&lt;p&gt;Daniel Stenberg does a presentation about HTTP/3 and QUIC. Why the new protocols are deemed necessary, how they work, how they change how things are sent over the network and what some of the coming deployment challenges will be.&lt;/p&gt;</description>
<persons>
<person id="362">Daniel Stenberg</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9008.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="9189">
<start>17:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>tor</slug>
<title>State of the Onion</title>
<subtitle>The Road to Mainstream Adoption and Improved Censorship Circumvention</subtitle>
<track>Internet</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;The Tor Project is building usable free software to fight surveillance and censorship across the globe. In this talk we'll give an update on what we got up to during 2019, what happened in the wider Tor ecosystem, and what lies ahead of us.&lt;/p&gt;</abstract>
<description>&lt;p&gt;During the past year the Tor Project has been working hard on improving the software, building and training communities around the world as well as creating an anti-censorship team and roadmap that can push forward technologies to circumvent censorship.&lt;/p&gt;
&lt;p&gt;This talk will cover major milestones we achieved and will give an outline about what is lying ahead. In particular, we'll talk about our work to scale the network so it can cope with increased demand as we move forward with our plans for mainstream adoption of Tor Browser and the Tor network.&lt;/p&gt;
&lt;p&gt;We will also share updates about our anti-censorship efforts, a year on from the formation of a dedicated Anti-Censorship team, and their work on next generation pluggable transports. Moreover, we'll explain our defense against website traffic fingerprinting attacks and plans for improving onion services and making them more usable (DDoS resistance, better user interfaces for authentication and dealing with errors).&lt;/p&gt;
&lt;p&gt;Finally, we'll shed some light onefforts to get Tor support directly embedded into other browsers, like Firefox and Brave, and educating users both by reorganizing the content on our website, creating dedicated community and developer portals and extensive trainings throughout the world.&lt;/p&gt;</description>
<persons>
<person id="6431">Pili Guerra</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9189.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="9171">
<start>18:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>scion</slug>
<title>SCION</title>
<subtitle>Future internet that you can use today</subtitle>
<track>Internet</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;Do you know where your internet traffic flows? Does it go through China even if you don't want it to? SCION is a new internet architecture aimed at solving this problem. We will show how you can easily join the already existing worldwide network.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The current Internet was not designed with control and security considerations in mind: incidents such as the hijacking of all traffic for YouTube by a Pakistani ISP in February 2008, the Cloudflare DNS service hijacked by AnchNet in May 2018, or a large chunk of European mobile traffic being rerouted through China in June 2019 show that we cannot quite trust the current Internet. SCION is a proposed future Internet architecture aiming to offer high availability and security, even in the presence of actively malicious network operators and devices.&lt;/p&gt;
&lt;p&gt;Designing a new Internet from scratch gives us the opportunity to make it work a lot better: we are aiming to notably improve security, availability, and performance. At the same time, just replacing the Internet would not be feasible, and thus we also emphasise practical concerns, such as incremental deployment and backwards compatibility. Thanks to that, SCION is currently the only clean-slate Internet architecture with a world-wide research network and production deployments in several large institutions in Switzerland; and you can start using it today.&lt;/p&gt;
&lt;p&gt;In the first part of this talk, we will drive you through the current state of SCION design and implementation, showing how it provides its important features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;path awareness and path control by end hosts&lt;/li&gt;
&lt;li&gt;geofencing and isolation from untrusted actors&lt;/li&gt;
&lt;li&gt;scalability&lt;/li&gt;
&lt;li&gt;backward compatibility with existing infrastructure and protocols&lt;/li&gt;
&lt;li&gt;increased performance by active usage of multiple links&lt;/li&gt;
&lt;li&gt;fast rerouting in case of outages in any segment of the network&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The world-wide test deployment, SCIONLab, consists of around 50 different points-of-presence around the globe, many of them connected via direct, BGP-free, links. Having many independent organizations belonging to a continually evolving network introduces some non-trivial challenges of managing what you don’t own, which we will also talk about.&lt;/p&gt;
&lt;p&gt;We will show a live demo presenting how easy it is today for the end user to join the network and start using the available services. We will also present how taking down a part of the network can look from the user perspective and how SCION prevents a scenario of China or Pakistan hijacking traffic.&lt;/p&gt;
&lt;p&gt;To close the talk, we will very briefly present the future plans and the direction in which we want the project to evolve.&lt;/p&gt;</description>
<persons>
<person id="6396">Mateusz Kowalski</person>
<person id="7425">Kamila Součková</person>
</persons>
<links>
<link href="https://www.scion-architecture.net">SCION Internet Architecture</link>
<link href="https://www.scionlab.org">SCIONLab global research network</link>
<link href="https://github.com/scionproto/scion">SCION implementation</link>
<link href="https://submission.fosdem.org/feedback/9171.php">Submit feedback</link>
</links>
<date>2020-02-01T18:00:00+01:00</date>
</event>
</room>
<room name="K.1.105 (La Fontaine)">
<event id="10790">
<start>10:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>municipal_government</slug>
<title>How FOSS could revolutionize municipal government</title>
<subtitle>with recent real-world examples</subtitle>
<track>Community and Ethics</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;Free and Open Source software has revolutionized the Software Industry and nearly all other areas of human endeavor, but until now its reach into actual governance at the municipal citizen level has not been very deep. Initiatives like Code for America have encountered challenges driving acceptance for FOSS alternatives to proprietary software for citizen governance. At the same time the gap between citizen need and cities’ capabilities as widened. But several new projects are aiming to change this state of affairs to help empower citizens and improve municipal services worldwide through adoption of FOSS. Learn about these efforts and how you can get involved.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7430">Danese Cooper</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10790.php">Submit feedback</link>
</links>
<date>2020-02-01T10:00:00+01:00</date>
</event>
<event id="9265">
<start>11:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>selfish_contributor</slug>
<title>The Selfish Contributor Explained</title>
<subtitle/>
<track>Community and Ethics</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;It has become very popular in the last several years to think of free and open source as a community forward activity, indeed the modern approach is to try and form a community or foundation first and do code second. There is also much talk about maintainer burn out and community exploitation. However, the same people who talk about this still paraphrase the most famous quote from the Cathedral and the Bazaar &quot;Scratching your own itch&quot;. They forget this is your own itch not everyone else's because Open Source begins as a selfish activity. The fact that communities do form around a load of selfish competing individuals is actually a testament to the unacknowledged power of open source to co-opt the selfish instinct and make it synergistic to some communal good.&lt;/p&gt;
&lt;p&gt;This talk will explore the selfish origins of free and open source and dissect the co-option power it has to form broad and deep communities from what are apparently simple transactional engagements. We'll also explain how some of the more recent community failures have been engendered by the concentration on long term community to the detriment of enabling purely transactional mechanics by which initially selfish contributors come to the project.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The origins of selfish contributions, while called out in the founding canons of the open source and free software movements, were initially not very well recognized until the first open source projects (and here the author will use the example he's familiar with: the Linux Kernel) tried to engage successfully with companies trying to utilize the projects for their own ends. We became adept at explaining why forking is bad and how your cost structure will rise exponentially if you do it and how the cheapest method of achieving your business goals is in fact to work with the existing community on whatever feature the company was trying to add as part of its business plan. In fact, those of use who did company engagement because transactional sales people offering a corporation the achievements of business goals in exchange for some unexpected community engagement.&lt;/p&gt;
&lt;p&gt;Nowadays, all companies have drunk the open source coolaid and all pledge their loyalty to further the interests of the community and this previous learning is all but forgotten in the third and fourth waves of open source. However, at their hearts, corporations are still the same business goal focussed transactional entities we had to deal with in the early days of open source and an understanding of how to co-opt their transactional nature would go a long way to assisting new open source developers in their quest to form communities.&lt;/p&gt;
&lt;p&gt;This talk will begin with some history of the Linux kernel's corporate engagement, explore and explain some of the processes within open source development that lead to the conversion of transactionalism into long term community synergy (the truly astounding ability of open source to co-opt selfishness) and then give a few examples of how serving the community rather than enabling transactionalism can give rise to burn out and apparent exploitation. In conclusion we'll give some simple rules to enable this co-opting and suggest how some of the competing interests of the ethical source and social justice movements might likewise be co-opted.&lt;/p&gt;</description>
<persons>
<person id="3124">James Bottomley</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9265.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
<event id="9271">
<start>12:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>iot_ethics</slug>
<title>The Ethics Behind Your IoT</title>
<subtitle/>
<track>Community and Ethics</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;Internet of Things (IoT) devices are part of the future we were promised. Armed with our mobile devices, we can control everything from our cars to our toasters to the doors of our homes. Along with convenience, IoT devices bring us ethical quandaries, as designers and users. We need to consider the ethical implicates of the technologies we are building and ask ourselves not just about the ways they are being used, for both good and evil, but the potential use cases we might encounter in the future.&lt;/p&gt;</abstract>
<description>&lt;p&gt;IoT devices are becoming increasingly prevalent in our lives -- even my water filter is wifi enabled. In this session, we'll be looking at two case studies of how one might interact with IoT devices, and then consider the ethical implications of these devices, focused on the social impacts they can have on an individual or a society. While we will focus on smart doorbells and smart locks and situations in which installing these could significantly impact quality of life, we will touch on other common IoT devices.&lt;/p&gt;</description>
<persons>
<person id="4180">Molly de Blanc</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9271.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="9163">
<start>13:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>ethical_ai</slug>
<title>Freedom and AI: Can Free Software include ethical AI systems?</title>
<subtitle>Exploring the intersection of Free software and AI</subtitle>
<track>Community and Ethics</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;Despite the number of working groups, advisory committees, and coordination roundtables, there is little progress towards creating more ethical and safe AI systems. AI systems are deployed in increasingly fragile contexts. From law enforcement to humanitarian aid, several organizations use AI powered systems to make or inform critical decisions with increasingly outsized side effects.&lt;/p&gt;
&lt;p&gt;What is a rights-based approach for designing minimally safe and transparent guidelines for AI systems? In this talk, we explore what a Free AI system might look like. Then, taking research and guidelines from organizations such as Google and the UN Office for the Coordination of Humanitarian Affairs, we propose practical policies and tools to ensure those building an AI system respect user freedom. Lastly, we propose the outlines of a new kind of framework where all derivative works also respect those freedoms.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Rights based approaches are commonly used within humanitarian contexts to approach problems that the sector faces. In this talk, we use the same approach to solving the issue of “unethical” AI systems. We do so by first defining a set of rights that we feel must be respected, proposing a number of methods that we feel helps ensure a system respects those rights, and lastly propose an organizational and regulatory framework that we feel could help encourage and enforce those methods be used by developers of AI systems.&lt;/p&gt;</description>
<persons>
<person id="3816">Justin W. Flory</person>
<person id="6380">Michael Nolan</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9163.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="9599">
<start>14:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>riek_kubernetes</slug>
<title>How Containers and Kubernetes re-defined the GNU/Linux Operating System</title>
<subtitle>A Greybeard's Worst Nightmare</subtitle>
<track>Containers and Security</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;Free Software (as in Freedom) had won. The vertically integrated Cloud now is the predominant operational paradigm and is threatening to undermine software freedom. To many all seems lost, but the world keeps changing and decentralized compute is making a comeback. Containers and Kubernetes are already having a deep impact on the Linux operating system (OS) that goes well beyond DevOps and cloud-native applications. The concepts of application-centric packaging, process isolation through Linux containers, and immutable infrastructure are shaking up the core traditions of today's GNU/Linux operating systems. These concepts are also challenging the assumptions and approaches derived from the past 40+ years of work that originated with UNIX. The Linux distribution as we know it is coming to an end, and is being replaced by a new concept of containerized, multi-instance, multi-user applications, which can be deployed in scale-out environments as well as for widely distributed compute scenarios. In this session, we'll assess this new OS environment in the times of '5G' de-centralized cloud and take a deep look at the consequences this new OS model has for both developers and admins.&lt;/p&gt;</abstract>
<description>&lt;p&gt;This talk will draw on the history of compute in general and Free and Open Source in specific to explain an evolution of paradigms from the GNU/Linux Distribution to modern Free Software application plattforms build on Kubernetes and how they can shape the future of compute in the face of major technological changes.&lt;/p&gt;</description>
<persons>
<person id="6840">Daniel Riek</person>
</persons>
<links>
<link href="https://www.youtube.com/watch?v=JEVZKmPG-5s">Recording of a previous iteration of the talk.</link>
<link href="https://submission.fosdem.org/feedback/9599.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="9116">
<start>15:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>kubernetes</slug>
<title>Fixing the Kubernetes clusterfuck</title>
<subtitle>Understanding security from the kernel up</subtitle>
<track>Containers and Security</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;Kubernetes is complex, and extremely vulnerable. In 2019 we explored the complexity of the Kubernetes codebase, and the antipatterns therein. This year we want to look at understanding how we observe our cluster at runtime. Let's live code some C and C++ and explore the libraries that bring Wireshark, Falco, and Sysdig to life. We concretely demonstrate how we are able to audit a Kubernetes system, by taking advantage of auditing the kernel's syscall information while enriching this data with meta information from Kubernetes.&lt;/p&gt;</abstract>
<description>&lt;p&gt;We start off by presenting the problem of Kubernetes security at runtime. We discuss concerns with namespace and privilege escalation in a Kubernetes environment. We discover how auditing the kernel gives us visibility into both the container layer, as well as the underlying system layer.&lt;/p&gt;
&lt;p&gt;We look at building an eBPF probe, or kernel module to begin auditing syscall metrics. We discover how we are able to pull those out of the kernel into userspace, and start exploring powerful patterns for using these metrics to secure a Kubernetes cluster.&lt;/p&gt;
&lt;p&gt;The audience walks away understanding how the kernel treats containers, and how we are able to easily make sense of them. The audience also walks away equipped with an OSS toolkit for understanding, observing, and securing a Kubernetes environment.&lt;/p&gt;</description>
<persons>
<person id="6137">Kris Nova</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9116.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="9564">
<start>16:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>kernel_address_space_isolation</slug>
<title>Address Space Isolation in the Linux Kernel</title>
<subtitle/>
<track>Containers and Security</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;Security is a big problem especially in the cloud of container workloads. This presentation investigates improving security in the Linux kernel itself. The first target is securing sensitive application data, for instance, private keys.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Address space isolation has been used to protect the kernel and userspace programs from each other since the invention of the virtual memory.&lt;/p&gt;
&lt;p&gt;Assuming that kernel bugs and therefore exploits are inevitable it might be worth isolating parts of the kernel to minimize damage that these exploits can cause. Moreover, restricted mappings in the kernel mode may improve mitigation of hardware speculation vulnerabilities.&lt;/p&gt;
&lt;p&gt;There are several ongoing efforts to use restricted address spaces in Linux kernel for various use cases:
* speculation vulnerabilities mitigation in KVM
* support for memory areas visible only in a single owning context
* hardening of the Linux containers&lt;/p&gt;
&lt;p&gt;We are going to present the approach for the implementation of restricted mappings in the Linux kernel and how this implementation would be used with various use-cases.&lt;/p&gt;
&lt;p&gt;We are also going to take a closer look at possibility to assign an address space to the Linux namespaces, so that tasks running in namespace A have different view of kernel memory mappings than the tasks running in namespace B. For instance, by keeping all the objects in a network namespace private, we can achieve levels of isolation equivalent to running a separated network stack.&lt;/p&gt;</description>
<persons>
<person id="3124">James Bottomley</person>
<person id="4942">Mike Rapoport</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9564.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="9326">
<start>17:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>guix</slug>
<title>Guix: Unifying provisioning, deployment, and package management in the age of containers</title>
<subtitle/>
<track>Containers and Security</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;This talk will reflect on what GNU Guix has to offer to users and how it compares to other approaches—from CONDA and pip to Flatpak and Docker. Guix is not only a transactional package manager and declarative GNU/Linux distribution: it’s also an environment manager, a container provisioning tool, and more. We will describe these tools and our journey to 1.0, emphasizing key properties that set Guix apart:
reproducibility, transparency, and hackability.&lt;/p&gt;</abstract>
<description>&lt;p&gt;When it comes to software deployment, we are getting used to a new distribution of roles among many actors: traditional distros take care
of core software pieces, “application bundles” à la Docker/Flatpak provide complex applications, Cabal, Gem, npm, pip, and friends take care of language-specific software, and Puppet/Ansible orchestrate the whole thing. Each of these tools has its justification, but the end result is a maze that’s hard to deal with.&lt;/p&gt;
&lt;p&gt;In this talk I will present GNU Guix, a software deployment toolbox and its associated distro that feature transactional upgrades and rollbacks, declarative OS deployment inspired by Nix, and reproducible builds. I will show how Guix approaches a variety of use cases: “package management” à la apt-get, environment management à la VirtualEnv, Ansible-style declarative OS deployment, and container provisioning à la Docker.&lt;/p&gt;
&lt;p&gt;Guix emphasizes programmability and one of its salient features is that it provides a unified Scheme programming environment to deal with with all the aspects of configuration, deployment, and system management—including service management by PID 1. I will illustrate how
this works out on standalone Guix systems, and show the benefits of the approach by discussing applications that take advantage of Guix as a library to support reproducible software deployment.&lt;/p&gt;
&lt;p&gt;Last, I will reflect on the road that led to Guix 1.0 six months ago and present some of the challenges ahead.&lt;/p&gt;</description>
<persons>
<person id="2003">Ludovic Courtès</person>
</persons>
<links>
<link href="https://guix.gnu.org">GNU Guix</link>
<link href="https://submission.fosdem.org/feedback/9326.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
</room>
<room name="H.2215 (Ferrer)">
<event id="9080">
<start>12:00</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>free_software_hackers_needed</slug>
<title>Civil society needs Free Software hackers</title>
<subtitle/>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;More and more traditionally processes in our society now incorporate, and are influenced by software.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Processes that decide for example: Who will be able to go to which university? Who will be invited for a job interview? How long does someone have to go to jail?&lt;/p&gt;
&lt;p&gt;Therefore many organisation which work for people's rights are now confronted with the problems proprietary software creates for society. The pupils associations, the unions, human right organisations, or environmental organisations -- all of them need to understand how software works to do their work in our society.&lt;/p&gt;
&lt;p&gt;To continue to fulfil their role, civil society needs to understand how processes are implemented in software, they need to be able to challenge the assumptions, the values, and the way programmers designed them, and have a better understanding how you could change them.&lt;/p&gt;
&lt;p&gt;In short: in a world in which more and more of our live is controlled by software, civil society organisations need us as Free Software hackers to support them doing their job.&lt;/p&gt;</description>
<persons>
<person id="421">Matthias Kirschner</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9080.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="9953">
<start>12:20</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>openolitor_community_supported_agriculture</slug>
<title>A tool for Community Supported Agriculture (CSA) management, OpenOlitor</title>
<subtitle/>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;OpenOlitor is a SaaS open-source tool facilitating the organization and management of CSAs (Community Supported Agriculture) communities. This
tool covers a large spectrum of functionalities needed for CSAs such as member management, emailing, invoicing, share planning and delivery, absence
scheduling, etc. This software is organized and monitored by an international community that promotes the tool, helps operate it and support the
interested communities. In order to promote the sustainability of the tool and this international community an organization based on CSS
(Community Supported Software) has been proposed.&lt;/p&gt;</abstract>
<description>&lt;h1&gt;1 - Introduction&lt;/h1&gt;
&lt;p&gt;The Community Supported Agriculture movement has grown considerably the last few years proposing a new model of food production and distribution. CSA initiatives connect producers and consumers directly. The consumer receives a basket of locally produced, fresh products on a subscription basis. Risk is shared among all participants of the community, independently of being a consumer or producer. The growing popularity of the CSA model has lead to larger sized communities. Consequently, the management effort for this organizations is becoming unaffordable on a volunteer basis.
In such conditions a software helping with the redundant tasks, and connecting all participants of these communities, can be particularly supportive.
The main motivations for the creation of OpenOlitor (OO) are to attend to the growing popularity of the CSA model with the aim of keeping the model
economically viable and sustainable by reducing management task time investment through building software which facilitates easy organization.&lt;/p&gt;
&lt;h1&gt;2 - OpenOlitor&lt;/h1&gt;
&lt;p&gt;OpenOlitor is a web-based, open source tool facilitating the organization and management of CSAs (Community Supported Agriculture)
communities. This tool is composed of two different access points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The participant console: any member holding one or more subscriptions, has an access to this console. This displays basic information about next subscription, products that will be delivered, absences, etc.&lt;/li&gt;
&lt;li&gt;The admin console: only defined administrators can access this console. All the community management tools are available from this portal. Please, refer to the next subsection for a detailed list of functionalities.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2.1 - Functionalities OpenOlitor (OO) covers the main functionalities CSAs need:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Members and people management: OO allows the management of all the current members, historical members or interested individuals. A member can be composed of multiple people. Basic information is required for every member, such us contact information, details of payment, etc.&lt;/li&gt;
&lt;li&gt;Subscription types: A member receives one or several baskets (also called shares) of products periodically. Different types of baskets are allowed. Types are defined by the community and may include delivery type, pickup or frequency, for example;&lt;/li&gt;
&lt;li&gt;Subscription management: A member can be subscribed to one or several subscriptions;&lt;/li&gt;
&lt;li&gt;Delivery management: Deliveries are prepared by the administrators. As a result shares will be created where subscriptions, delivery types, prices are calculated automatically;&lt;/li&gt;
&lt;li&gt;Billing: Automatic invoices are created for every member;&lt;/li&gt;
&lt;li&gt;Participatory task management: Some CSAs require a certain community work hours in order to be part of the community. OO can track this information and publish available tasks to the members;&lt;/li&gt;
&lt;li&gt;Absence management: Members can feed the system their pickup absences that would be taken into account automatically;&lt;/li&gt;
&lt;li&gt;Product/producer management: A CSA can have one or multiple producers and each producer can have one or more products. This information can be used for billing purposes or basket shaping purposes;&lt;/li&gt;
&lt;li&gt;Emailing: an integrated emailing functionality is provided for some of the modules already explained. This allows administrators to easily mail information to the participants, such as invoices, general announcements, etc.&lt;/li&gt;
&lt;li&gt;Payment management: SEPA and ESR payment work-flows are integrated;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2.2 - Basic architecture&lt;/h2&gt;
&lt;p&gt;The OO platform is divided in back-end and front-end:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Front-end: The front-end is a Web-Application (AngularJS) accessible from any browser. A front-end application is dedicated to every CSA. The code is accessible publicly in Github:&lt;/li&gt;
&lt;li&gt;Administration portal (https://github.com/OpenOlitor/openolitor-client-admin)&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Members portal (https://github.com/OpenOlitor/openolitor-client-kundenportal)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Back-end: Programmed in Scala using the Akka library for concurrency and distributed systems. A single server can be shared among multiple initiatives. The code is published on Github. Even if the server can be shared among multiple organizations, a MariaDB database is created per initiative. This model guaranties data ownership and privacy. The code is accessible publicly in Github: https://github.com/OpenOlitor/openolitor-server&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;3 - Current numbers&lt;/h1&gt;
&lt;p&gt;Currently, seven CSAs are using OpenOlitor to support their organizations in a production environment. Three more CSAs are in the process of transitioning to this digital tool. A few numbers extracted from the last two years and a half to put into perspective the work volume facilitated by OO:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;+/- 100'000 baskets already delivered&lt;/li&gt;
&lt;li&gt;+/- 3'000 managed deliveries, average 33 baskets per delivery&lt;/li&gt;
&lt;li&gt;+/- 3'400 subscriptions&lt;/li&gt;
&lt;li&gt;+/- 2'100 subscribers&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;4 - Hosting and Operations&lt;/h1&gt;
&lt;p&gt;As shown by the architecture, the database and the front-end are CSA specific but the server can be used by multiple organizations. We promote the idea of hosting communities where a group of CSAs share the costs for the hosting and the effort for the operational work. This model is currently in use for all CSAs using the software.&lt;/p&gt;
&lt;h1&gt;5 - Sustainability model&lt;/h1&gt;
&lt;p&gt;As a financial model we promote the idea of Community Supported Software (CSS). This model is directly inspired by the CSA model where all participants share the risk and responsibility of the food production. Transferring this idea to software, an organization working with OO is invited to participate on the maintenance, operation, support and further development of the software. A fixed financial contribution is defined per basket delivered. All contributions are shared with all projects using the tool. Using this model, the effort and risk is equally shared, independently of the size of the CSA.&lt;/p&gt;
&lt;h1&gt;6 - Legal organizations supporting OO&lt;/h1&gt;
&lt;p&gt;This software is organized and monitored by an international community that promotes this tool:&lt;/p&gt;
&lt;p&gt;OpenOlitor International: Non legally formed organization composed by around 10 members from different European countries. This organization is in charge of the vision and principles of all interactions with the software. This group meets periodically to decide OO main features and how to evolve the platform. Everyone interested in OO is invited to join;
OpenOlitor association: non-profit organization based in Switzerland. Legal body managing the founds received by initiatives and public sources;
OpenOlitor operations association: Organization in charge for the operation and support of the Swiss based CSAs;
Sunu: a German based organization that promotes digitalization for CSAs. They are promoting the ue of OO as well as the operational and support for German CSAs.&lt;/p&gt;</description>
<persons>
<person id="6614">Mikel Cordovilla</person>
</persons>
<links>
<link href="https://openolitor.org">official website</link>
<link href="http://sunu.eu">German association promoting the software</link>
<link href="https://github.com/OpenOlitor">main github repository</link>
<link href="https://submission.fosdem.org/feedback/9953.php">Submit feedback</link>
</links>
<date>2020-02-01T12:20:00+01:00</date>
</event>
<event id="10116">
<start>12:40</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>open_food_facts</slug>
<title>What's in my food ? Open Food Facts, the Wikipedia of Food</title>
<subtitle>Mixing mobile crowdsourcing, ai, opensource and opendata to improve food transparency</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Open Food Facts is a collaborative and crowdsourced database of food products from the whole planet, licensed under the Open Database License (ODBL). It was launched in 2012, and today it is powered by 27000 contributors who have collected data and images for over 1 million products in 178 countries (and growing strong…)
This is the opportunity to learn more about Open Food Facts, and the latest developments of the project.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Scan a product using your phone, take a picture, and you're already part of the Open Food Facts revolution !&lt;/p&gt;
&lt;p&gt;In this talk we'll show how Open Food Facts leverages open source technologies such as Perl, Python, TensorFlow, MongoDB, Java, Swift, React and Flutter as well as the great power of communities to open data of public interest for health &amp;amp; science, as well as unforeseen applications in your daily life.&lt;/p&gt;
&lt;p&gt;We will also introduce you to Open Beauty Facts, for freeing your cosmetic cupboard: shampoos, toothpastes, lipsticks, etc.&lt;/p&gt;
&lt;p&gt;How does it work?
Using our Android or iPhone app, you can easily scan the barcode of products from your home or local store.
You can either check them out (thanks to the decoding and comparison tools) or contribute pictures of their labels, assisted by our label-reading AI.
The same can also be done from the website, where additional tools are available to fill in the product details from the labels, navigate or vizualise the database based in various ways, or access the APIs and raw data to make your own tools and analysis.&lt;/p&gt;
&lt;p&gt;Open Food Facts is developed and managed by a community of open source, open data and food enthusiasts and is organised as a non-profit association. All its creations are open:
- the collected data is published as Open Data,
- the software running the server(s) is open source and reusable (it was also used to create the Open Beauty Facts database),
- the mobile applications are open source as well.&lt;/p&gt;</description>
<persons>
<person id="6332">Pierre Slamich</person>
</persons>
<links>
<link href="https://world.openfoodfacts.org/discover">Discover Open Food Facts</link>
<link href="https://world.openfoodfacts.org/contribute">How to contribute</link>
<link href="http://world.openfoodfacts.org/development">Development</link>
<link href="https://submission.fosdem.org/feedback/10116.php">Submit feedback</link>
</links>
<date>2020-02-01T12:40:00+01:00</date>
</event>
<event id="9790">
<start>13:00</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>web3</slug>
<title>Web3 - the Internet of Freedom, Value, and Trust</title>
<subtitle>On exiting the system and reclaiming control of our digital and physical lives</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;For as long as human society has existed, humans have been unable to trust each other. For millennia, we relied on middlemen to establish business or legal relationships. With the advent of Web2.0, we also relayed the establishment of personal connections, and the system has turned against us. The middlemen abuse our needs and their power and we find ourselves chained to convenience at the expense of our own thoughts, our own privacy. Web3 is a radical new frontier ready to turn the status quo on its head, and these are the technologies we're using to make it happen.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6942">Bruno Škvorc</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9790.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="9792">
<start>13:20</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>next_web_browser</slug>
<title>Next, the programmable web browser</title>
<subtitle>How the architectural choices and the Lisp language make for an infinitely extensible web browser</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;While actual browsers expose their internals through an API and limit access to the host system, Next doesn't, allowing for infinite extensibility and inviting the users to program their web browser. On top of that, it doesn't tie itself to a particular platform (we currently provide bindings to WebKit and WebEngine) and allows for live code reloads, thanks to the Common Lisp language, about which we'll share our experience too.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Next is a keyboard-oriented, extensible web browser designed for power users. While most (all?) current browsers expose their internals through an API, Next exposes its entire code to the user. Modern browsers limit access to the host system, and Next doesn't, allowing for a broad range of new features. Similar projects have failed due to being tied to a particular platform (Vimperator, Conkeror…), but Next's choice is to have its core written as an independent library, and to provide bindings to web engines (currently WebKit and WebEngine are supported). Next's magic touch is its live coding capability: we can develop a command from a REPL, compile the function and try the changes immediately, without restarting anything. Or just edit our init file and reload it into the current session. This flexbility comes for free thanks to the Common Lisp language, the experience with which we'd like to share too.&lt;/p&gt;
&lt;p&gt;Next is usable as of today. It features ad-blocking (only basic for now, contributions are welcome), multi-selection, bookmarks, session persistence, Emacs and Vim-like shortcuts, history seen as a tree, fuzzy completion everywhere, basic git-forking and file management interfaces…&lt;/p&gt;
&lt;p&gt;We are entering a new phase of development, with hopefully announcements that we can make public at the time of the conference :)&lt;/p&gt;</description>
<persons>
<person id="6940">Atlas Engineer</person>
</persons>
<links>
<link href="https://github.com/atlas-engineer/next">GitHub</link>
<link href="https://next.atlas.engineer/articles">Next releases</link>
<link href="https://ambrevar.xyz/">Pierre's website (Lisp, Guix, Emacs)</link>
<link href="https://lisp-journey.gitlab.io/">Vincent's blog (Common Lisp)</link>
<link href="https://submission.fosdem.org/feedback/9792.php">Submit feedback</link>
</links>
<date>2020-02-01T13:20:00+01:00</date>
</event>
<event id="10029">
<start>13:40</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>weblate</slug>
<title>Weblate: open-source continuous localization platform</title>
<subtitle>How to bring your project closer to its users with localization platform that doesn’t bother anyone with manual work.</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;You will learn how to localize your project easily with little effort, open-source way. No repetitive work, no manual work with translation files anymore. Weblate is unique for its tight integration to VCS. Set it up once and start engaging the community of translators. More languages translated means more happy users of your software. Be like openSUSE, Fedora, and many more, and speak your users' language now thanks to Weblate!&lt;/p&gt;</abstract>
<description>&lt;p&gt;I will show you the main perks of Weblate and the setup of the project. If you have a project with open repo and you want to start translating it, take your git:// link, and we will set it up right on the spot. FOSDEM is a great time and place to found your translating community.&lt;/p&gt;</description>
<persons>
<person id="7059">Václav Zbránek</person>
</persons>
<links>
<link href="https://weblate.org">Weblate project site</link>
<link href="https://github.com/WeblateOrg/">Weblate code</link>
<link href="https://submission.fosdem.org/feedback/10029.php">Submit feedback</link>
</links>
<date>2020-02-01T13:40:00+01:00</date>
</event>
<event id="9980">
<start>14:00</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>kapow_web_framework</slug>
<title>Kapow! A Web Framework for the Shell</title>
<subtitle/>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;This talk is about &quot;Kapow!&quot; an open source webframework for the shell developed by BBVA Innovation Labs. We will talk about the current development of the project including an overview of Kapow!'s technology stack and the recent release of the first stable version.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The motivation behind the project was to create an adapter between the shell and the web. Allowing users to expose command line programs as HTTP services with a high degree of freedom and flexibility, not imposing any predefined behavior.
The project is based on an open specification.&lt;/p&gt;
&lt;p&gt;Kapow! supports an increasing list of HTTP features; including forms, websockets and streaming. The architecture is based on exposing a private REST API through which the shell can interact with the incoming user HTTP requests.&lt;/p&gt;
&lt;p&gt;Leveraging this architecture an ecosystem of specialized tools is planned, to help with common high level tasks in Kapow! services.
For example:
- Shell commands that can interact with incoming web browser requests and render specialized web pages.
- Automatic mapping of shell command parameters to REST API through bash completion scripts.&lt;/p&gt;
&lt;p&gt;Roberto will do some demos about creating Kapow! services from scratch (expose nmap as a service, tcpdump, pandoc and ffmpeg).&lt;/p&gt;</description>
<persons>
<person id="6439">Roberto Abdelkader Martínez Pérez</person>
</persons>
<links>
<link href="http://github.com/BBVA/kapow">Repository</link>
<link href="https://kapow.readthedocs.io/en/latest/">Documentation</link>
<link href="https://submission.fosdem.org/feedback/9980.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="9973">
<start>14:20</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>yjs_shared_editing</slug>
<title>Yjs: A CRDT framework for shared editing</title>
<subtitle>Enable shared editing in every application</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Shared editing is the ability to collaboratively edit the same text in real-time. The market for shared editing solutions is fragmented. Once you choose a solution you will be locked into using a specific editor and a specific backend. Yjs is a data synchronization framework that aims to enable shared editing in all open-source editors using any networking stack.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Yjs is a data synchronization framework that is specifically designed for creating shared editing applications like Google Docs. The number of editors, that Yjs supports, is steadily growing. At this time we implemented shared-editing support for six of the most prominent open-source rich-text editors - including &lt;a href=&quot;https://quilljs.com/&quot;&gt;Quill&lt;/a&gt;, &lt;a href=&quot;http://prosemirror.net/&quot;&gt;ProseMirror&lt;/a&gt;, and &lt;a href=&quot;https://codemirror.net/&quot;&gt;CodeMirror&lt;/a&gt;. We are currently working on integrating Yjs in Gutenberg, the new WordPress editor.&lt;/p&gt;
&lt;p&gt;Since Yjs is network agnostic and does not require a central authority to resolve sync conflicts, it is possible to use any networking stack to share document updates of the collaborative document. We created an ecosystem of modules that handle data synchronization over, for example, WebRTC, &lt;a href=&quot;https://www.datprotocol.com/&quot;&gt;Dat Protocol&lt;/a&gt;, &lt;a href=&quot;https://ipfs.io/&quot;&gt;IPFS&lt;/a&gt;, and traditional client-server connections via WebSockets.&lt;/p&gt;
&lt;p&gt;In this lightning talk, we want to show the huge potential of Yjs that hopefully will make it the go-to solution for creating shared editing applications on the web.&lt;/p&gt;</description>
<persons>
<person id="2971">Kevin Jahns</person>
</persons>
<links>
<link href="https://github.com/yjs/yjs">Yjs</link>
<link href="https://yjs.dev/">Yjs Demos</link>
<link href="https://publishpress.com/blog/yjs/">Yjs in Gutenberg</link>
<link href="https://tag1consulting.com/blog/deep-dive-real-time-collaborative-editing-solutions-tagteamtalk-001-0">Webinar: A Deep Dive Into Real Time Collaborative Editing Solutions</link>
<link href="https://submission.fosdem.org/feedback/9973.php">Submit feedback</link>
</links>
<date>2020-02-01T14:20:00+01:00</date>
</event>
<event id="9988">
<start>14:40</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>cryptpad_collaboration</slug>
<title>Encrypt your collaboration with CryptPad</title>
<subtitle>Real demo !</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;We'll show a real demonstration of how you can encrypt your data and collaborate with others in real-time using the CryptPad Open Source project.
This demonstration will include real-time Wysiwyg, Text, Kanban, Spreadsheet, File storage and Teams features allowing to share your documents securely with your friends and co-workers.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The Internet business model is about &quot;surveillance capitalism&quot; and every day our data is being used to target us with more and more invading advertisements, and every day data is being leaked by Internet business and cloud providers.&lt;/p&gt;
&lt;p&gt;CryptPad is using end-to-end encryption to protect your data, while including innovative algorithms to allow collaboration between users. With CryptPad, the cloud hoster cannot read your data and if data leaks, hackers only get encrypted data which they cannot read without the keys.&lt;/p&gt;
&lt;p&gt;Start ditching proprietary privacy invading cloud services for an free software privacy protecting alternative.&lt;/p&gt;
&lt;p&gt;Come join the 20000 weekly users of the cryptpad.fr main instance and the 300 other instances available, including the German Pirate Party and C3 Wien instances.&lt;/p&gt;
&lt;p&gt;Come join us restoring our privacy.&lt;/p&gt;</description>
<persons>
<person id="2113">Ludovic Dubost</person>
</persons>
<links>
<link href="https://cryptpad.fr">CryptPad Main Instance</link>
<link href="https://github.com/xwiki-labs/cryptpad">CryptPad GitHub</link>
<link href="https://submission.fosdem.org/feedback/9988.php">Submit feedback</link>
</links>
<date>2020-02-01T14:40:00+01:00</date>
</event>
<event id="9823">
<start>15:00</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>protect_data_objects</slug>
<title>Protect your data objects, not your network connections</title>
<subtitle>Good news for a paradigm shift </subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Agenda&lt;/p&gt;
&lt;p&gt;1) Current situation: complicated &amp;amp; incomplete threat models
2) Concepts worth looking into
3) data sovereignty
4) named data networks
5) zero trust
6) Our hands-on experience with the above&lt;/p&gt;</abstract>
<description>&lt;p&gt;The current state of play to protect data is a tedious task that involves many stakeholders and blocks resources.
The shift from on-premise to private/public cloud systems requires a careful inspection of an assumed threat model.
The application of a zero-trust model is one radical shift to authenticate and authorize at any given point in your
IT landscape, but most importantly it breaks with the assumption that we can design systems that are &quot;safe and secure&quot;.
The talk will highlight the above mentioned concepts and will give a brief outline of a new approach called Named Data
Network (NDN) and how this could improve the situation in terms of data sovereignty.&lt;/p&gt;</description>
<persons>
<person id="5493">Stephan Schwichtenberg</person>
</persons>
<links>
<link href="https://named-data.net/">Named Data Networking</link>
<link href="https://en.wikipedia.org/wiki/Named_data_networking">Wikipedia</link>
<link href="https://submission.fosdem.org/feedback/9823.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="9229">
<start>15:20</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>sandboxfs_bazel_speedup</slug>
<title>Optimizing sandbox creation with a FUSE file system</title>
<subtitle>Using sandboxfs to speed up Bazel builds</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;The Bazel build system sandboxes each action (e.g. each compiler invocation) to ensure the action only has access to declared inputs and that the action only generates the promised outputs. This ensures that the execution of each build tool is deterministic and not subject to system-wide state. Unfortunately, creating these sandboxes is costly, and every millisecond added to the runtime of each action has a large impact on total build time. Just consider that Bazel focuses on large-ish builds with thousands of actions in them: each little inefficiency quickly multiplies and can result in significant slowdowns, and developers always want faster build times. In this talk, I'll explain how Bazel implements sandboxing and I will cover a FUSE file system I've been developing, sandboxfs, to optimize this process. I'll go into the details of the file system, explain how it started as a Go project and was then rewritten in Rust, and then show some performance metrics.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Possible outline:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Brief introduction to Bazel: what are actions.&lt;/li&gt;
&lt;li&gt;Why is sandboxing of actions important and what it intends to achieve.&lt;/li&gt;
&lt;li&gt;How does sandboxing work in the default case and what problems it carries performance- and correctness-wise.&lt;/li&gt;
&lt;li&gt;The solution: how we can use FUSE to eliminate the major source of slowdowns.&lt;/li&gt;
&lt;li&gt;Brief explanation of what sandboxfs is and how Bazel takes advantage of it.&lt;/li&gt;
&lt;li&gt;Delve a little bit into why the project started in Go and was then rewritten in Rust.&lt;/li&gt;
&lt;li&gt;Present performance metrics.&lt;/li&gt;
&lt;li&gt;Ideas for other possible uses for sandboxfs (NixOS and reproducible package builds).&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="6568">Julio Merino</person>
</persons>
<links>
<link href="https://github.com/bazelbuild/sandboxfs/">Project homepage</link>
<link href="https://submission.fosdem.org/feedback/9229.php">Submit feedback</link>
</links>
<date>2020-02-01T15:20:00+01:00</date>
</event>
<event id="9316">
<start>15:40</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>bloom_filters</slug>
<title>Indexing Encrypted Data Using Bloom Filters</title>
<subtitle/>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Bloom filters are a probabilistic data structure that tell us where things are not. They also utilize one way hash functions to build a probabilistic representation of an object. This talk will address how this structure can be used to provide an index into encrypted data that can be made publicly available with minimal risk.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Talk will cover how bloom filters are constructed, the Flat Bloofi indexing implementation and how to take the properties to be indexed and create Bloom filters, and then how to associate the bloom filter with the encrypted object in the index.&lt;/p&gt;
&lt;p&gt;The result is an extremely fast index that can retrieve data items containing partial keys.&lt;/p&gt;
&lt;p&gt;After this talk participants will be able to provide search capabilities across a collection of encrypted objects.&lt;/p&gt;
&lt;p&gt;Code examples will be provided.&lt;/p&gt;</description>
<persons>
<person id="3098">Claude Warren</person>
</persons>
<links>
<link href="https://github.com/Claudenw/MultidimentionalBloom">Multidimensional Bloom FIlter Src</link>
<link href="https://github.com/Claudenw/BloomEncryptedIndex">Bloom Filter Encryption</link>
<link href="https://submission.fosdem.org/feedback/9316.php">Submit feedback</link>
</links>
<date>2020-02-01T15:40:00+01:00</date>
</event>
<event id="9294">
<start>16:00</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>verifpal</slug>
<title>Verifpal</title>
<subtitle>Cryptographic Protocol Analysis for Students and Engineers</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Verifpal is new software for verifying the security of cryptographic protocols. Building upon contemporary research in symbolic formal verification, Verifpal’s main aim is to appeal more to real-world practitioners, students and engineers without sacrificing comprehensive formal verification features. Verifpal represents a serious attempt at making the formal analysis of advanced cryptographic systems such as Signal and TLS 1.3 easier to achieve.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Contemporary research in symbolic formal verification has led to confirming security guarantees (as well as finding attacks) in secure channel protocols such as TLS and Signal. However, formal verification in general has not managed to significantly exit the academic bubble. Verifpal is new software for verifying the security of cryptographic protocols that aims is to work better for real-world practitioners, students and engineers without sacrificing comprehensive formal verification features.&lt;/p&gt;
&lt;p&gt;In order to achieve this, Verifpal introduces a new, intuitive language for modeling protocols that is easier to write and understand than the languages employed by existing tools. Its formal verification paradigm is also designed explicitly to provide protocol modeling that avoids user error. By modeling principals explicitly and with discrete states, Verifpal models are able to be written in a way that reflects how protocols are described in the real world. At the same time, Verifpal is able to model protocols under an active attacker with unbounded sessions and fresh values, and supports queries for advanced security properties such as forward secrecy or key compromise impersonation.&lt;/p&gt;
&lt;p&gt;Verifpal has already been used to verify security properties for Signal, Scuttlebutt, TLS 1.3 and other protocols. It is a community-focused project, and available under a GPLv3 license.&lt;/p&gt;
&lt;p&gt;An Intuitive Protocol Modeling Language:
The Verifpal language is meant to illustrate protocols close to how one may describe them in an informal conversation, while still being precise and expressive enough for formal modeling. Verifpal reasons about the protocol model with explicit principals: Alice and Bob exist and have independent states.&lt;/p&gt;
&lt;p&gt;Modeling that Avoids User Error:
Verifpal does not allow users to define their own cryptographic primitives. Instead, it comes with built-in cryptographic functions — this is meant to remove the potential for users to define fundamental cryptographic operations incorrectly.&lt;/p&gt;
&lt;p&gt;Easy to Understand Analysis Output:
When a contradiction is found for a query, the result is related in a readable format that ties the attack to a real-world scenario. This is done by using terminology to indicate how the attack could have been possible, such as through a man-in-the-middle on ephemeral keys.&lt;/p&gt;
&lt;p&gt;Friendly and Integrated Software:
Verifpal comes with a Visual Studio Code extension that offers syntax highlighting and, soon, live query verification within Visual Studio Code, allowing developers to obtain insights on their model as they are writing it.&lt;/p&gt;</description>
<persons>
<person id="6607">Nadim Kobeissi</person>
</persons>
<links>
<link href="https://verifpal.com">Verifpal Website</link>
<link href="https://verifpal.com/res/pdf/manual.pdf">Verifpal User Manual</link>
<link href="https://verifpal.com/paper">Verifpal Paper</link>
<link href="https://verifpal.com/source">Verifpal Source Repository</link>
<link href="https://submission.fosdem.org/feedback/9294.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="9015">
<start>16:20</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>mandos_disk_encryption</slug>
<title>Mandos</title>
<subtitle>Disk encryption without passwords</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Disk encryption is essential for physical computer security, but seldom used due to the trouble of remembering and typing a password at every restart. We describe Mandos, a program which solves this problem, its security model, and the underlying concepts of its design, as well as its evolution over the 10 years since its initial release.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Any security system must have a clear view of its intended threat model – i.e. what threats it is actually intended to protect against; the specific choices and tradeoffs made for Mandos will be explained. Another danger of security system design is the risk of its non-use; i.e. that the system will not be used for some real or perceived drawbacks, such as complexity. The deliberate design choices of Mandos, involving low-interaction, “invisible” and automatic features, will be covered. Special emphasis will be made on the many necessary changes made since the last FOSDEM talk in 2015.&lt;/p&gt;</description>
<persons>
<person id="2811">Teddy Hogeborn</person>
</persons>
<links>
<link href="https://www.recompile.se/mandos">Mandos Home Page</link>
<link href="https://submission.fosdem.org/feedback/9015.php">Submit feedback</link>
</links>
<date>2020-02-01T16:20:00+01:00</date>
</event>
<event id="9604">
<start>16:40</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>redwax_trust_only_yourself</slug>
<title>RedWax - trust only yourself</title>
<subtitle>Easy Industry best practice authentication and security - federated or just for you. </subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;In this talk we will show you, practical, hands on, how you can secure your application, a small user community or environment using industry best of breed security, fully self-supporting and &lt;em&gt;without&lt;/em&gt; having to rely on a central certificate authority, big-tech or other central powerhouses. As devolved &amp;amp; federated, or as central as you want - you set the rules. Working for you, with your standard-issue iPhone, your router or your laptop out of the box.&lt;/p&gt;
&lt;p&gt;Project redwax produces industry best practice crypto in a small package. Available today. If you know how to install the apache webserver - you are almost there.&lt;/p&gt;
&lt;p&gt;Project Redwax lets you download,a set of easy to deploy simple tools that capture and hard code a lot of industry best practice and specialist PKI knowledge. So that they can be put into the hands of a much wider community than currently served by a few specialist industries. It provides a non centralised, interoperable, open standard, open source, fully federated trust network where participants are not required to ask permission and can be self sufficient.&lt;/p&gt;
&lt;p&gt;This presentation presents what is available &lt;em&gt;today&lt;/em&gt; and our plans on how to take this further, to engage with the wider open source community that together we can support individuals, organisations and (small) companies to get best of breed, distributed, peer to peer, security, confidentiality and privacy without having to rely on central infrastructures.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Wouldn’t it be nice to be able to trust your own environment without having to trust a corporation or government? Wouldn’t it be nice to take the sting out of certificate management?&lt;/p&gt;
&lt;p&gt;With some hands on examples we introduce the audience to the advantages of running your own certificate authority for security IOT in and around your home and establishing a trusted channel for exchanging information with your friends.&lt;/p&gt;
&lt;p&gt;This project (and code) helps you to decentralize trust management so that the values security, confidentiality and privacy can be upheld in public infrastructure and private interactions. We strengthen the existing technologies and infrastructure by providing a modular, very simple and foremost practical set of tools to manage public key based trust infrastructures as currently used.&lt;/p&gt;
&lt;p&gt;Project Redwax lets you download, a set of easy to deploy simple tools that capture and hard code a lot of industry best practice and specialist PKI knowledge. So that they can be put into the hands of a much wider community than currently served by a few specialist industries. It provides a non centralised, interoperable, open standard, open source, fully federated trust network where participants are not required to ask permission and can be self sufficient.&lt;/p&gt;
&lt;p&gt;With support from NLNET project Redwax has made the code available under the Apache license from a infrastructure that is firmly rooted in Europe. And the good news - it is simple - if you know how to install the Apache Webserver - you are almost there. We are working with the unix/linux community to get the code in standard distro’s and cloud init scripts so that these capabilities are made available to wider community of application developers.&lt;/p&gt;
&lt;p&gt;This presentation presents what is available &lt;em&gt;today&lt;/em&gt; and our plans on how to take this further, to engage with the wider open source community that together we can support individuals, organisations and (small) companies to get best of breed, distributed, peer to peer, security, confidentiality and privacy without having to rely on central infrastructures, rare knowledge or big interests.&lt;/p&gt;
&lt;p&gt;Speaker: Dirk-Willem van Gulik ([email protected])
Talk: 50 minutes.
Travel support: not needed
Language: English&lt;/p&gt;
&lt;p&gt;BIO
Dirk-Willem van Gulik?&lt;/p&gt;
&lt;p&gt;During the startup-years - Dirk-Willem van Gulik helped shape the world-wide-web. He was one of the founders, and the first president, of the Apache Software Foundation; and worked on standards such as HTTP at the Internet Engineering Taskforce. He has worked for the Joint Research Centre of the European Commission, the United Nations, telecommunications firms, the BBC, several satellite&amp;amp;space agencies and founded several startups. He participated in different international standards bodies, such as the IETF and W3C on metadata, GIS, PKI, Security, Architecture and Internet standards. Dirk build the initial engineering team at Covalent - the first open source company; and was one of the Founders of Asemantics, a leader in Enterprise Information Integration; which helped make the Semantic Web a reality. He then initiated Joost.com, a peer to peer based video and build and lead the team that created the worlds first instant play P2P viewer and a back office system with user profile driven advert targeting and payment settlements. He was the Chief Technical Architect at the BBC where has helped shape the audience facing delivery platform Forge in the time for the Olympics and where he made information security and compliance a core enabler for business processes. He currently works on several medical and privacy intensive security projects with a heavy emphasis on Architecture and Governance. When not at work, he loves to sail, hang out at the makerspaceleiden.nl or play with his lego.&lt;/p&gt;</description>
<persons>
<person id="6843">Dirk-Willem van Gulik</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9604.php">Submit feedback</link>
</links>
<date>2020-02-01T16:40:00+01:00</date>
</event>
<event id="9146">
<start>17:00</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>kde_itinerary</slug>
<title>KDE Itinerary</title>
<subtitle>A privacy by design travel assistant</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Getting your itinerary presented in a unified, well structured and always up to date fashion rather than as advertisement overloaded HTML emails or via countless vendor apps has become a standard feature of digital assistants such as the Google platform. While very useful and convenient, it comes at a heavy privacy cost. Besides sensitive information such as passport or credit card numbers, the correlation of travel data from a large pool of users exposes a lot about people's work, interests and relationships. Just not using such services is one way to escape this, or we build a privacy-respecting alternative ourselves!&lt;/p&gt;</abstract>
<description>&lt;p&gt;Standing on the shoulders of KDE, Wikidata, Navitia, OpenStreetMap and a few other FOSS communities we have been exploring what it would take to to build a free and privacy-respecting travel assistant during the past two years, resulting in a number of building blocks and the &quot;KDE Itinerary&quot; application. In this talk we will look at what has been built, and how, and what can be done with this now. In particular we will review the different types of data digital travel assistants rely on, where we can get those from, and at what impact for your privacy.&lt;/p&gt;
&lt;p&gt;The most obvious data source are your personal booking information. Extracting data from reservation documents is possible from a number of different input formats, such as emails, PDF files or Apple Wallet passes, considering structured annotations and barcodes, but also by using vendor-specific extractors for unstructured data. All of this is done locally on your own devices, without any online access.&lt;/p&gt;
&lt;p&gt;Reservation data is then augmented from open data sources such as Wikidata and OpenStreetMap to fill in often missing but crucial information such as timezones or geo coordinates of departure and arrival locations. And finally we need realtime traffic data as well, such as provided by Navitia as Open Data for ground-based transport.&lt;/p&gt;
&lt;p&gt;We will of course also look at how features based on that data can be integrated into applications. While there is the KDE Itinerary mobile application presenting these information in a timeline view with access to the corresponding boarding passes or ticket tokens, the underlying building blocks are explicitly meant to be reusable for wider integration. This might be of particular interest for people working on e.g. email application or digital assistants.&lt;/p&gt;
&lt;p&gt;Should the author fail to show up to this presentation it might be that last year's fixes for the barcode scanners at the Brussels airport station didn't work after all ;-)&lt;/p&gt;</description>
<persons>
<person id="6017">Volker Krause</person>
</persons>
<links>
<link href="https://phabricator.kde.org/project/profile/280/">KDE Itinerary project overview</link>
<link href="https://submission.fosdem.org/feedback/9146.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="10005">
<start>17:20</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>gate_portable_execution_state</slug>
<title>Gate project</title>
<subtitle>Portable execution state</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;This presentation is an introduction of an open source project I have been working on for five years: https://github.com/tsavola/gate.&lt;/p&gt;
&lt;p&gt;Building on WebAssembly, Gate makes it possible to snapshot running programs and resume them in diverse environments: unlike with other snapshot-and-restore solutions, the snapshots are portable across CPU architectures and operating systems. Part of the solution is appropriate resource abstraction. The presentation hopefully includes a quick demonstration of migration of a live program between x86-64 and ARM64 machines.&lt;/p&gt;</abstract>
<description>&lt;p&gt;A subproject of Gate is a specialized WebAssembly compiler implemented in Go: https://github.com/tsavola/wag&lt;/p&gt;
&lt;p&gt;Gate is at the stage where a proof-of-concept has been implemented; it works. Its future would greatly benefit from wider community engagement, so I wish to present the project and its ideas to a technical user and developer audience.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Blog article: https://savo.la/introduction-to-gate.html&lt;/li&gt;
&lt;li&gt;Server running Gate: https://www.gate.computer&lt;/li&gt;
&lt;li&gt;Port of DOOM for Gate: https://github.com/tsavola/DOOM/tree/gate&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="6815">Timo Savola</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10005.php">Submit feedback</link>
</links>
<date>2020-02-01T17:20:00+01:00</date>
</event>
<event id="9907">
<start>17:40</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>innersource_skills</slug>
<title>The pool next to the ocean: How to bring OpenSource skills to more people</title>
<subtitle>InnerSource as a way to teach open collaboration skills and facilitate the opensourcing process for enterprises</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;The pool next to the ocean: How to bring OpenSource skills to more people&lt;/p&gt;
&lt;p&gt;OpenSource powers the world and is everywhere with more and more enterprises and large companies understanding the value of it and the need to be able to be a good OpenSource citizen.
However, not everyone in those enterprises has the skills to participate in OpenSource communities, feels ready to contribute something or to create and run a vibrant OpenSource community. I observed that there are two distinct groups of people - one with OSS background, ability and willingness to operate in that domain and those that will likely only use OSS without any likeliness to contribute or participate.
Let's change that and build a bridge between those two groups while generating value for the enterprise making it more likely to receive support for this activity.
InnerSource, the application of OpenSource principles and practices within the enterprise, can be this bridge.
You'll learn about creating opportunities for people who haven't been exposed to OpenSource collaboration to learn about the OpenSource ways of collaboration in a safe environment within their organization by creating shared projects internally that follow OpenSource practices and principles.
You'll also learn about how organizations can profit from cross-team/silo collaboration and knowledge exchange. Also, the acquisition of very valuable skills by their employees that can facilitate the successful transition of those internal projects into OpenSource and creation of vibrant communities around them.
This approach is successfully used by many enterprises, and I'm part of a community who has built and is building OpenSource-d training material for this.
Attend this talk if you want to learn about how to deal with silo issues within your company, how to facilitate your companies way to transition projects to OpenSource or how to build up skills to successfully interact with OpenSource projects. Also attend if you want to hear a bit about freely available training material explaining InnerSource concepts for people who haven't been involved in it yet.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6987">Johannes Tigges</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9907.php">Submit feedback</link>
</links>
<date>2020-02-01T17:40:00+01:00</date>
</event>
<event id="10788">
<start>18:00</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>storage_logger</slug>
<title>Tracking local storage configuration on linux</title>
<subtitle/>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;This short talk will discuss a few of the difficulties of tracking and monitoring storage devices on linux systems today and discuss some projects that are trying to improve the situation.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="466">Alasdair Kergon</person>
</persons>
<links>
<link href="https://github.com/lvmteam/storage-logger">storage-logger source code respository</link>
<link href="https://copr.fedorainfracloud.org/coprs/agk/storage-logger/">Fedora rawhide packages</link>
<link href="http://skydive.network/">Skydive</link>
<link href="https://submission.fosdem.org/feedback/10788.php">Submit feedback</link>
</links>
<date>2020-02-01T18:00:00+01:00</date>
</event>
<event id="9145">
<start>18:20</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>concept_programming</slug>
<title>Concept Programming, from ideas to code</title>
<subtitle/>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Programming is the art of turning ideas into code.
Ideas and code do not live in the same space. Any translation is lossy.
Concept programming is a cross-language approach that focuses on this translation process, and helps identify often overlooked classes of issues.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Programming is the art of turning ideas into code.
Ideas and code do not live in the same space. Consequently, any translation is lossy. But this loss is not immediately visible. For example, how does your programming language coerce you into coding a concept as simple as &quot;maximum&quot; or list in a way that is generally full of warts?
Concept programming is a cross-language approach that focuses on this translation process, and helps identify often overlooked classes of issues. It separates the &quot;concept space&quot; and the &quot;code space&quot;, and focuses on how the mechanics in one space translate (or not) into the other.&lt;/p&gt;
&lt;p&gt;It introduces a few core ideas:
- Syntactic noise is the difference in look between code and concept. For example, in Lisp, you write (+ 1 2)
- Semantic noise is the difference in behavior between code and concept. For example, in C, text is null-terminated.
- Bandwidth is the amount of the concept space covered by the code. For example, the &quot;+&quot; operator has higher bandwidth in C++ than in C
- Signal/noise ratio is the amount of code that does not carry any useful concept. For example, curly braces and semi-colons in C.&lt;/p&gt;</description>
<persons>
<person id="5672">Christophe de Dinechin</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9145.php">Submit feedback</link>
</links>
<date>2020-02-01T18:20:00+01:00</date>
</event>
<event id="10044">
<start>18:40</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>deskconnd_crossplatform_ipc</slug>
<title>DeskConnD: Secure, cross-platform IPC on the network</title>
<subtitle>Zeroconf + WAMP = Cross platform IPC</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;DeskConnD is a cross-platform, python based daemon that uses Crossbar and WAMP to enable end-to-end encrypted IPC over the network.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In this talk Omer Akram will talk about his new project that he has been working on for the past year to mainly make it easy for developers to add functionalities to their apps that were previously cumbersome to implement, having no platform-specific dependencies enables this project to be cross-platform.&lt;/p&gt;
&lt;p&gt;Combining proven technologies like WebSocket/WAMP and ZeroConf, DeskConnD allows different components of a distributed app on the local network to securely communicate and do messaging based on the RPCs and PubSub paradigms.&lt;/p&gt;</description>
<persons>
<person id="6565">Omer Akram</person>
</persons>
<links>
<link href="https://github.com/deskconn/">https://github.com/deskconn/</link>
<link href="https://submission.fosdem.org/feedback/10044.php">Submit feedback</link>
</links>
<date>2020-02-01T18:40:00+01:00</date>
</event>
</room>
<room name="H.1301 (Cornil)">
<event id="10767">
<start>10:30</start>
<duration>00:30</duration>
<room>H.1301 (Cornil)</room>
<slug>getting_started_with_quantum_software_development</slug>
<title>Getting started with quantum software development</title>
<subtitle/>
<track>Quantum Computing</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="5592">Tomas Babej</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10767.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10768">
<start>11:05</start>
<duration>00:35</duration>
<room>H.1301 (Cornil)</room>
<slug>quantum_machine_learning_with_pennylane</slug>
<title>Quantum machine learning with PennyLane</title>
<subtitle/>
<track>Quantum Computing</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="6225">Joshua Izaac</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10768.php">Submit feedback</link>
</links>
<date>2020-02-01T11:05:00+01:00</date>
</event>
<event id="10769">
<start>11:50</start>
<duration>00:35</duration>
<room>H.1301 (Cornil)</room>
<slug>quantum_computing_hardware_and_control_systems</slug>
<title>Quantum computing hardware and control systems</title>
<subtitle/>
<track>Quantum Computing</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="6206">Felix Tripier</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10769.php">Submit feedback</link>
</links>
<date>2020-02-01T11:50:00+01:00</date>
</event>
<event id="10770">
<start>12:35</start>
<duration>00:35</duration>
<room>H.1301 (Cornil)</room>
<slug>the_role_of_open_source_in_building_quantum_computing_ecosystemfrom_scratch</slug>
<title>The role of open source in building quantum computing ecosystem from scratch</title>
<subtitle>Context of a developing country</subtitle>
<track>Quantum Computing</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="7415">Hakob Avetisyan</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10770.php">Submit feedback</link>
</links>
<date>2020-02-01T12:35:00+01:00</date>
</event>
<event id="10771">
<start>13:20</start>
<duration>00:35</duration>
<room>H.1301 (Cornil)</room>
<slug>quantum_advantage_and_quantum_computing_in_the_real_world</slug>
<title>Quantum Advantage and Quantum Computing in the Real World</title>
<subtitle/>
<track>Quantum Computing</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="6240">Mark Mattingley-Scott</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10771.php">Submit feedback</link>
</links>
<date>2020-02-01T13:20:00+01:00</date>
</event>
<event id="10772">
<start>14:05</start>
<duration>00:35</duration>
<room>H.1301 (Cornil)</room>
<slug>quantum_circuit_optimisation_verification_and_simulation_with_pyzx</slug>
<title>Quantum circuit optimisation, verification, and simulation with PyZX</title>
<subtitle/>
<track>Quantum Computing</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="6200">John van de Wetering</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10772.php">Submit feedback</link>
</links>
<date>2020-02-01T14:05:00+01:00</date>
</event>
<event id="10773">
<start>14:50</start>
<duration>00:35</duration>
<room>H.1301 (Cornil)</room>
<slug>simulaqron_a_simulator_for_developing_quantum_internet_software</slug>
<title>SimulaQron - a simulator for developing quantum internet software</title>
<subtitle/>
<track>Quantum Computing</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="7416">Axel Dahlberg</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10773.php">Submit feedback</link>
</links>
<date>2020-02-01T14:50:00+01:00</date>
</event>
<event id="10774">
<start>15:35</start>
<duration>00:35</duration>
<room>H.1301 (Cornil)</room>
<slug>the_role_of_open_source_frameworks_in_quantum_computing_and_technologies</slug>
<title>The Role of Open Source Frameworks in Quantum Computing and Technologies</title>
<subtitle/>
<track>Quantum Computing</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="7417">Jack Hidary</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10774.php">Submit feedback</link>
</links>
<date>2020-02-01T15:35:00+01:00</date>
</event>
<event id="10775">
<start>16:20</start>
<duration>00:35</duration>
<room>H.1301 (Cornil)</room>
<slug>computing_with_tensornetwork_and_qml_tools</slug>
<title>Computing with TensorNetwork &amp; QML Tools</title>
<subtitle/>
<track>Quantum Computing</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="7418">Stefan Leichenauer</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10775.php">Submit feedback</link>
</links>
<date>2020-02-01T16:20:00+01:00</date>
</event>
<event id="10776">
<start>17:05</start>
<duration>00:35</duration>
<room>H.1301 (Cornil)</room>
<slug>quantum_classifiers_robust_data_encodings_and_software_to_implement_them</slug>
<title>Quantum classifiers, robust data encodings, and software to implement them</title>
<subtitle/>
<track>Quantum Computing</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="6246">Ryan LaRose</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10776.php">Submit feedback</link>
</links>
<date>2020-02-01T17:05:00+01:00</date>
</event>
<event id="10777">
<start>17:50</start>
<duration>00:35</duration>
<room>H.1301 (Cornil)</room>
<slug>quantum_computer_brands_connecting_apples_and_oranges</slug>
<title>Quantum computer brands: connecting apples and oranges</title>
<subtitle/>
<track>Quantum Computing</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="7419">Petar Korponaić</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10777.php">Submit feedback</link>
</links>
<date>2020-02-01T17:50:00+01:00</date>
</event>
<event id="10778">
<start>18:30</start>
<duration>00:30</duration>
<room>H.1301 (Cornil)</room>
<slug>quantum_open_source_foundation</slug>
<title>Quantum Open Source Foundation</title>
<subtitle/>
<track>Quantum Computing</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="6291">Mark Fingerhuth</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10778.php">Submit feedback</link>
</links>
<date>2020-02-01T18:30:00+01:00</date>
</event>
</room>
<room name="H.1302 (Depage)">
<event id="10717">
<start>10:30</start>
<duration>00:45</duration>
<room>H.1302 (Depage)</room>
<slug>state_openjdk</slug>
<title>State of OpenJDK</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;A review of the past year in the life of the OpenJDK Community, and a look at what's ahead.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="218">Mark Reinhold</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10717.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10718">
<start>11:20</start>
<duration>00:25</duration>
<room>H.1302 (Depage)</room>
<slug>loom</slug>
<title>Project Loom: Advanced concurrency for fun and profit</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Project Loom, an OpenJDK project, is &quot;intended to explore, incubate and deliver Java VM features and APIs built on top of them for the purpose of supporting easy-to-use, high-throughput lightweight concurrency and new programming models on the Java platform.&quot; These feature include Lightweight Threads, delimited continuations, and tail-call elimination.&lt;/p&gt;
&lt;p&gt;The speaker, a Project Loom team member, will describe the project in depth, in particular the gnarly details of how coroutine and continuation scheduling mechanism works, and a new feature, Scoped Locals.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="719">Andrew Haley</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10718.php">Submit feedback</link>
</links>
<date>2020-02-01T11:20:00+01:00</date>
</event>
<event id="10720">
<start>11:50</start>
<duration>00:25</duration>
<room>H.1302 (Depage)</room>
<slug>tornadovm</slug>
<title>TornadoVM: A Virtual Machine for Exploiting ​High-Performance Heterogeneous ​Execution of Java Programs​</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The proliferation of heterogeneous hardware in recent years has driven us to consider that every system we program, most likely includes a mix of computing elements; each of which with different hardware characteristics enabling programmers to improve performance while reducing energy consumption. These new heterogeneous devices include multi-core CPUs, GPUs and FPGAs. This trend has been accompanied by changes in software development norms that do not necessarily favor programmers. A prime example is the two most popular heterogeneous programming languages, CUDA and OpenCL, which expose several low-level features to the API making them difficult to use by non-expert users.&lt;/p&gt;
&lt;p&gt;Instead of using low-level programming languages, developers in industry and academia tend to use higher-level, object-oriented programming languages, typically executed on managed runtime environments, such as Java, R, and Javascript. Although many programmers might expect that such programming languages would have already been adapted for transparent execution on heterogeneous hardware, the reality is that their support is either very limited or absent.&lt;/p&gt;
&lt;p&gt;In this talk, we present TornadoVM (https://github.com/beehive-lab/TornadoVM), a heterogeneous programming framework for Java programs. TornadoVM co-exists with standard JVMs (e.g., OpenJDK) that implement the JVMCI. TornadoVM consists of three components: 1) a simple API for composing pipelines of existing Java methods, 2) an optimizing JIT compiler that extends the Graal compiler with hardware-aware optimizations that generate OpenCL C code, and 3) a runtime system that executes TornadoVM specific bytecodes, performs memory management, and schedules the code for execution on GPUs, multicore CPUs, and FPGAs. Essentially, TornadoVM is a “VM-in-a-VM” that can adapt execution completely dynamically and transparently to the user, always finding the highest-performing combination of hardware accelerators through dynamic reconfiguration.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7005">Thanos Stratikopoulos</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10720.php">Submit feedback</link>
</links>
<date>2020-02-01T11:50:00+01:00</date>
</event>
<event id="10721">
<start>12:20</start>
<duration>00:40</duration>
<room>H.1302 (Depage)</room>
<slug>bytebuffers</slug>
<title>ByteBuffers are dead, long live ByteBuffers!</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Abstract: Direct buffers are, to date, the only way to access foreign,
off-heap memory. Despite their success, direct buffers suffer from some
limitations --- stateful-ness, lack of addressing space,
non-deterministic deallocation to name a few --- which makes them a
less-than-ideal choice under certain workloads. In this talk we paint
the path to the future: a safe, supported and efficient foreign memory
access API for Java. By providing a more targeted solution to the
problem of accessing foreign memory, not only developers will be freed
by the above limitations - but they will also enjoy improved
performances, as the new API is designed from the ground-up with JIT
optimizations in mind - and all without sacrificing memory access safety.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7374">Maurizio Cimadamore</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10721.php">Submit feedback</link>
</links>
<date>2020-02-01T12:20:00+01:00</date>
</event>
<event id="10722">
<start>13:05</start>
<duration>00:25</duration>
<room>H.1302 (Depage)</room>
<slug>jakartaee</slug>
<title>Free at Last! The Tale of Jakarta EE</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In September 2017 Oracle announced that it would be migrating governance of the Java EE platform to the Eclipse Foundation, the home of MicroProfile. Two years later Jakarta EE 8 shipped, signaling the successful completion of that move. As a result, Free Java has a new home for a significant piece of the Java ecosystem. A home which is purely open source, vendor neutral, and community led.&lt;/p&gt;
&lt;p&gt;This talk will be about how the long and painful journey from Java EE to Jakarta EE unfolded. But more importantly it will focus on how the new Jakarta EE community works, and how there is a new, open, specification process for Java APIs (other than SE) that is available for the community. We are looking forward to welcoming many of those interested in Free Java to participate in driving new innovation in Java APIs for cloud and other exciting use cases.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4193">Mike Milinkovich</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10722.php">Submit feedback</link>
</links>
<date>2020-02-01T13:05:00+01:00</date>
</event>
<event id="10723">
<start>13:35</start>
<duration>00:25</duration>
<room>H.1302 (Depage)</room>
<slug>shenandoah</slug>
<title>Shenandoah 2.0</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Shenandoah GC landed in JDK12 about a year ago, giving OpenJDK
another low-pause garbage collector. It has undergone substantial
changes since then. Specifically we have a new barrier scheme, and have
eliminated the extra forwarding pointer word per object, thus
substantially reducing memory footprint. After giving a general
introduction to OpenJDK GC landscape and Shenandoah GC, this talk
focuses on those recent changes in Shenandoah and what's in it for you.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="740">Roman Kennke</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10723.php">Submit feedback</link>
</links>
<date>2020-02-01T13:35:00+01:00</date>
</event>
<event id="10724">
<start>14:05</start>
<duration>00:40</duration>
<room>H.1302 (Depage)</room>
<slug>imc</slug>
<title>JMC &amp; JFR - 2020 Vision</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;JDK Flight Recorder provides production time profiling and diagnostics
via a compact events-based infrastructure inside the Hotspot JVM
itself. JDK Mission Control is a stand-alone application that provides
real-time monitoring information for Hotspot JVMs, as well as tools to
read, automatically analyze and visualize flight recording data
produced by JDK Flight Recorder.&lt;/p&gt;
&lt;p&gt;When this talk is presented, JMC 7.1.0 has (hopefully) been out for a
little while. This presentation talks about what is new and the
roadmap for the upcoming JMC 8. We will also discuss recent changes in
the project, such as the move to Skara. Towards the end we will demo
how JDK Flight Recorder and JMC core libraries can be used to diagnose
applications deployed in container orchestration platforms.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7377">Jie Kang</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10724.php">Submit feedback</link>
</links>
<date>2020-02-01T14:05:00+01:00</date>
</event>
<event id="10725">
<start>14:50</start>
<duration>00:25</duration>
<room>H.1302 (Depage)</room>
<slug>hacking_graalvm</slug>
<title>Hacking on GraalVM: A (very) Rough Guide</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The GraalVM project provides, among other options, a means to deliver
Java programs as compact, self-contained, fast-startup native images.
GraalVM has been moving from research to development for quite a few
years now. However, it is only just beginning to be properly integrated
with the latest OpenJDK releases and there is still much to be done to
get it fully productized and to improve usability and performance.&lt;/p&gt;
&lt;p&gt;This talk will recount our joint experiences of trying to add new and/or
improved capabilities to the the GraalVM code base. Our story will
stumble gracelessly from one pitfall to the next cock-up in the hope
that by exposing and explaining our own history of lamentable error and
occasional failure you will be able to avoid being doomed to repeat it.&lt;/p&gt;
&lt;p&gt;We will provide a guide to getting started and building GraalVM, an
overview of the how the compiler, native image generator and other
elements of the GraalVM toolkit operate plus a map of what code sits
where in the source tree and how it fits together and offer tips for
debugging the Graal compiler and native image generator -- all the tasks
you will need to perform in order to attain a vantage point from which
to change or add to the current functionality.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="742">Andrew Dinn</person>
<person id="7378">Josh Matsuoka</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10725.php">Submit feedback</link>
</links>
<date>2020-02-01T14:50:00+01:00</date>
</event>
<event id="10726">
<start>15:20</start>
<duration>00:25</duration>
<room>H.1302 (Depage)</room>
<slug>reducing_gc_times</slug>
<title>Reducing OpenJDK Java Garbage Collection times with stack allocation</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In this talk we'll explore ways that the JVM can reduce the object allocation rate of Java programs automatically by performing stack allocation of objects that are known to be local to a method, or in compiler terms non-escaping. The discussion is focused on employing the escape analysis optimization in the OpenJDK Hotspot C2 compiler to determine which Java objects can be stack allocated, and how this optimization can reduce pressure on the Java JVM garbage collectors.&lt;/p&gt;
&lt;p&gt;We'll show some results on how various real world applications can benefit from such optimizations and describe the methodology of how we prototyped this in OpenJDK. Our work is only in prototype state at this moment and we are looking for more data to understand how broadly applicable this optimizations is. This work wouldn't be possible without free open source access to Java.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7375">Nikola Grcevski</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10726.php">Submit feedback</link>
</links>
<date>2020-02-01T15:20:00+01:00</date>
</event>
<event id="10727">
<start>15:50</start>
<duration>00:25</duration>
<room>H.1302 (Depage)</room>
<slug>g1</slug>
<title>G1: To infinity and beyond</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Abstract: G1 has been around for quite some time now and since JDK 9 it
is the default garbage collector in OpenJDK. The community working on G1
is quite big and the contributions over the last few years have made a
significant impact on the overall performance. This talk will focus on
some of these features and how they have improved G1 in various ways. We
will also take a brief look at what features we have lined up for the
future.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7376">Stefan Johansson</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10727.php">Submit feedback</link>
</links>
<date>2020-02-01T15:50:00+01:00</date>
</event>
<event id="10728">
<start>16:20</start>
<duration>00:25</duration>
<room>H.1302 (Depage)</room>
<slug>jit2020</slug>
<title>Just-in-time compiling Java in 2020</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Client compiler, server compiler, JVMCI, Graal ... What are we using today and how do they work together?
In this talk I'll give and overview of the Just-in-time compilers included in OpenJDK and explain how to play with them.
I'll also address Just-in-time compiler threads and resource related issues.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7380">Martin Doerr</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10728.php">Submit feedback</link>
</links>
<date>2020-02-01T16:20:00+01:00</date>
</event>
<event id="10729">
<start>16:50</start>
<duration>00:25</duration>
<room>H.1302 (Depage)</room>
<slug>npes</slug>
<title>Helpful NullPointerExceptions - The little thing that became a JEP</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;One of the most prevalent - if not the most prevalent - exception type in Java is the NullPointerException. While Java set out to overcome the possibilities
to do the mistakes one can do when programming in languages like C/C++ by not exposing pointers in the Java language, the misleading term 'pointer' sneaked
into this exception. To this day, NullPointerExceptions thrown by the runtime system didn't contain messages. All you had was a callstack and a line number.
But in typical expressions and statements there are several dereferences where an NPE can occur in one line.&lt;/p&gt;
&lt;p&gt;We - some engineers in the SAP team - thought this could be helped by a little enhancement. The new NPE message gives precise information about the location
and tries to explain what was going on when a null reference was encountered. However, due to its prominent nature, it eventually became a JEP.&lt;/p&gt;
&lt;p&gt;In my talk I'll demonstrate the improvements that come with this enhancement. I will lift the hood a little and provide a glance at its implementation details.
And finally I'll say some words about the current status and share some ideas for further improvements in the area of exception messages.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7379">Christoph Langer</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10729.php">Submit feedback</link>
</links>
<date>2020-02-01T16:50:00+01:00</date>
</event>
<event id="10730">
<start>17:20</start>
<duration>00:25</duration>
<room>H.1302 (Depage)</room>
<slug>metaspace</slug>
<title>Taming Metaspace: a look at the machinery, and a proposal for a better one</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;When examining memory footprint of a JVM process, the delta between Java
heap usage and actual working set size can be surprisingly large. The JVM
uses off-heap memory for a lot of things: thread stacks, compiler arenas,
code heap, byte buffers, GC control... however, one of the largest
consumers of off-heap memory can be class metadata. Class metadata are
stored in Metaspace, which includes the Compressed Class Space.&lt;/p&gt;
&lt;p&gt;The talk will explore what Metaspace actually is and what is stored there;
describe the architecture of the Metaspace allocator and the Compressed
Class Space; how it interacts with the GC; how it is sized. We will
highlight waste areas and demonstrate how to use jcmd to examine Metaspace
internals.&lt;/p&gt;
&lt;p&gt;The current implementation of the Metaspace allocator suffers from a number
of shortcomings. They can manifest in excessive waste and a certain
&quot;clinginess&quot; - an unwillingness to let go of unused memory.&lt;/p&gt;
&lt;p&gt;At SAP, we developed an improved version which is more frugal with memory
and provides a much improved elasticity. So the second part of this talk
will concentrate on our new implementation. We will highlight the
differences to the old architecture, demonstrate advantages and examine how
it works.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7381">Thomas Stüfe</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10730.php">Submit feedback</link>
</links>
<date>2020-02-01T17:20:00+01:00</date>
</event>
<event id="10731">
<start>17:50</start>
<duration>00:25</duration>
<room>H.1302 (Depage)</room>
<slug>secure_jvm</slug>
<title>The OpenJDK JVM : Securing a moving target or What could possibly go wrong?</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The OpenJDK Java Virtual Machine presents some interesting challenges
when it comes to guarding against potential vulnerabilities. This talk
will explain how dynamic class-loading, JIT compilation, speculative
compilation and other aspects of the JVM's operation present a moving
attack surface that presents some very different challenges to those
found in other programs or runtimes.&lt;/p&gt;
&lt;p&gt;This talk won't say anything about specific vulnerabilities but it will
identify a few areas of the OpenJDK JVM where some of these unique types
of vulnerability have been identified and resolved. It may teach you
some things you didn't know about the complexity of the JVM and
hopefully reassure you that the OpenJDK devs are very aware of what
could possibly go wrong. Whether we have got it all right is left as a
follow-up exercise for attendees.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="742">Andrew Dinn</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10731.php">Submit feedback</link>
</links>
<date>2020-02-01T17:50:00+01:00</date>
</event>
<event id="10719">
<start>18:20</start>
<duration>00:40</duration>
<room>H.1302 (Depage)</room>
<slug>ruby</slug>
<title>JRuby Startup and AOT</title>
<subtitle/>
<track>Free Java</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Rubyists work from a command line, which makes JRuby startup time a critical concern. Traditionally, the JVM has not been optimized for startup, but that's changing. This talk will explore all available options for making a heavy runtime like JRuby start up quickly, from using class data caching services like Hotspot's CDS and OpenJ9's Quickstart to ahead-of-time compilation of JRuby using GraalVM's Native Image. We'll compare approaches and trade-offs.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="743">Charles Nutter</person>
<person id="4501">Thomas Enebo</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10719.php">Submit feedback</link>
</links>
<date>2020-02-01T18:20:00+01:00</date>
</event>
</room>
<room name="H.1308 (Rolin)">
<event id="9957">
<start>10:30</start>
<duration>00:40</duration>
<room>H.1308 (Rolin)</room>
<slug>fundamental_technologies_we_need_to_work_on_for_cloud_native_networking</slug>
<title>Fundamental Technologies We Need to Work on for Cloud-Native Networking</title>
<subtitle/>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Many people and companies are betting that cloud-native networking
will be the preferred way of implementing network functions in an easy
and scalable way. It is based around the tenants of modularity, high
availability, scalability, low-overhead networking, and ease of
deployment. And a number of companies such as Google has shown that it
is really possible to achieve these properties with it. But the
architectural basis of cloud-native is quite different from the ones
of virtualization-based NFV, but nevertheless, in many cases we
continue to use the software packages that were designed for that
drastically different architecture. The question is, how well does
the current set of open source projects used in NFV work in a
cloud-native environment and what needs to change in them in order to
realize the cloud-native vision?&lt;/p&gt;
&lt;p&gt;In this presentation, I will define what I mean with cloud-native
networking and from that derive the system requirements needed to realize
that vision. Based on these requirements, we can deduce a number of
basic architectural properties, features and services that are needed
in the system to be able to satisfy these requirements. Then I will go
through the most popular open source projects such as Linux, DPDK and
OVS and see how they satisfy these architectural properties and
features. The main contribution of this presentation will be to show
what we need to work on within these SW packages in order to realize
cloud-native networking. Or maybe we need completely new SW projects
to be able to achieve this.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4937">Magnus Karlsson</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9957.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="9388">
<start>11:10</start>
<duration>00:20</duration>
<room>H.1308 (Rolin)</room>
<slug>real_time_network_topology_and_protocols_analyzer</slug>
<title>Skydive</title>
<subtitle>A real time network topology and protocols analyzer</subtitle>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Skydive is an open source real-time network topology and protocols analyzer providing a comprehensive way of understanding what is happening in your network infrastructure.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Skydive is a toolbox to monitor, visualize and troubleshoot an infrastructure.&lt;/p&gt;
&lt;p&gt;It first collects all the information about the physical and logical infrastructure : network interfaces, Linux and Openvswitch bridges, network namespaces, Docker/runc containers, Kubernetes objects, virtual machines and more. All these objects are stored into a graph to allow the operator to visualize and query the whole topology. On top of this, Skydive is able to inject, capture and analyze traffic at any point of this infrastructure - using various technics such as AFpacket, eBPF, DPDK or SFlow samples. This make possible use cases like :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;• troobleshoot dropped packets
• get metrics and bandwidth about some specific traffic
• trigger alert on some abnormal traffic detection
• get latency on the whole path of a flow
• and a lot more...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Skydive is agnostic to any SDN, container orchestration engine or virtualization platform. That being said, Skydive has plugins for specific technologies such as Kubernetes/Istio, OpenStack, Openvswitch, Network Service Mesh, OpenContrail, VPP and more.&lt;/p&gt;
&lt;p&gt;This presentation will present the architecture of Skydive and demonstrate some use cases through a demo.&lt;/p&gt;</description>
<persons>
<person id="476">Sylvain Baubeau</person>
<person id="7383">Sylvain Afchain</person>
</persons>
<links>
<link href="https://skydive.network">Project website</link>
<link href="https://github.com/skydive-project/skydive">Project source code</link>
<link href="https://submission.fosdem.org/feedback/9388.php">Submit feedback</link>
</links>
<date>2020-02-01T11:10:00+01:00</date>
</event>
<event id="10014">
<start>11:30</start>
<duration>00:40</duration>
<room>H.1308 (Rolin)</room>
<slug>do_you_really_see_whats_happening_on_your_nfv_infra</slug>
<title>Do you really see what’s happening on your NFV infrastructure?</title>
<subtitle>(and what can you do about it?)</subtitle>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;As CoSP’s accelerate their adoption of SDN and NFV technologies, the increased need for metrics, performance measurement and benchmarking becomes a focus, to ensure the continued delivery of “best in class” services. As NFV environments have grown in size and complexity, the tools required to gain this greater visibility into the NFVi need to continue to evolve to meet the requirements for manageability, serviceability and resiliency.&lt;/p&gt;
&lt;p&gt;Using Collectd as a metrics collection tool, OPNFV Barometer monitors the performance of the NFVi resources and has the capability to expose these insights via open industry standard interfaces to analytics or MANO components for potential enforcement or corrective actions. Barometer works with related open source technologies and communities (collectd, DPDK, OpenStack, Prometheus, SAF, etc.) to provide numerous metrics and events that address various different use cases such as service healing, power optimization and ensuring application QoS.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5016">Emma Foley</person>
<person id="7040">Krzysztof Kepka</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10014.php">Submit feedback</link>
</links>
<date>2020-02-01T11:30:00+01:00</date>
</event>
<event id="10119">
<start>12:10</start>
<duration>00:20</duration>
<room>H.1308 (Rolin)</room>
<slug>endless_network_programming</slug>
<title>Endless Network Programming − An Update from eBPF Land</title>
<subtitle/>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The Linux kernel networking capabilities have been undergoing major changes over the last years. At the heart of the performance gain, eBPF (extended Berkeley Packet Filter) and XDP (eXpress Data Path) have brought new possibilities in terms of tracing and network packet processing. eBPF is a trendy topic in the Linux world, and today it needs little introduction among the SDN and NFV community. But the technology is still under heavy development, bringing new features, more flexibility, and better performance to the users. This presentation is an update on the latest evolutions in the eBPF world!&lt;/p&gt;
&lt;p&gt;Many of those changes occur directly inside the eBPF subsystem architecture. New program types are being added. Early constraints such as the maximal number of instructions for programs, or the unavailability of loops, are changing. The internals are improved with support for debug information (BTF) or 32-bit instructions. And many new mechanisms are implemented, such as global data support, the “BPF trampoline”, batched map operations (in progress), XDP program chaining (in progress). Let's review all the latest trends in eBPF kernel development!&lt;/p&gt;
&lt;p&gt;But beyond kernel code, eBPF has grown as a full ecosystem, with a variety of tools used to work with it, or to build upon it. Bpftool, a reference utility to manage eBPF programs, keeps evolving. The networking projects using eBPF keep growing in number (e.g. Katran, Suricata, Sysdig, Hubble, Libkefir) or in features (e.g. Cilium). Let's review (briefly) some of those projects that assert eBPF as one of the essential fast dataplane solutions in the Linux world.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4933">Quentin Monnet</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10119.php">Submit feedback</link>
</links>
<date>2020-02-01T12:10:00+01:00</date>
</event>
<event id="10134">
<start>12:30</start>
<duration>00:20</duration>
<room>H.1308 (Rolin)</room>
<slug>replacing_iptables_with_ebpf</slug>
<title>Replacing iptables with eBPF in Kubernetes with Cilium</title>
<subtitle/>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Michal Rostecki is a Software Engineer working at SUSE. He's working on Cilium, both upstream and on integrating it with openSUSE Kubic Project and SUSE CaaS Platform.&lt;/p&gt;
&lt;p&gt;Swaminathan Vasudevan is a Software Engineer working at SUSE. Worked on Neutron Networking Upstream and currently migrating to Cilium and openSUSE Kubic Project and SUSE CaaS Platform.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Cilium is an open source project which provides networking, security and load balancing for application services that are deployed using Linux container technologies by using the native eBPF technology in the Linux kernel.
In this presentation we would talk about:
- The evolution of the BPF filters and will explain the advantages of eBPF Filters and its use cases today in Linux especially on how Cilium networking utilizes the eBPF Filters to secure the Kubernetes workload with increased performance when compared to legacy iptables.
- How Cilium uses SOCKMAP for layer 7 policy enforcement
- How Cilium integrates with Istio and handles L7 Network Policies with Envoy Proxies.
- The new features since the last release such as running Kubernetes cluster without kube-proxy, providing clusterwide NetworkPolicies, providing fully distributed networking and security observability platform for cloud native workloads etc.&lt;/p&gt;</description>
<persons>
<person id="4449">Michal Rostecki</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10134.php">Submit feedback</link>
</links>
<date>2020-02-01T12:30:00+01:00</date>
</event>
<event id="10114">
<start>12:50</start>
<duration>00:20</duration>
<room>H.1308 (Rolin)</room>
<slug>analyzing_dpdk_applications_with_ebpf</slug>
<title>Analyzing DPDK applications with eBPF</title>
<subtitle>Sharpening the toolset</subtitle>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;One of the challenges of doing software network applications is observing the inputs, outputs, and what the application is doing with them. Linux provides a rich tool set with eBPF but integrating this into a DPDK application is challenging. The DPDK libraries for capturing is incomplete which leads to lots of time debugging the tools. This talk addresses these issues, recommends solutions and proposes enhancements to make developers live easier.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The DPDK provides a limited form of packet capture, but it only works on a single interface with no filtering and inaccurate timestamps.
I go over what packet capture does now, how it can be improved, and how it can be integrated with other tracing.&lt;/p&gt;
&lt;p&gt;This talk is an extension of the talk (based on community feedback) given in 2019 at the DPDK userspace summit.&lt;/p&gt;</description>
<persons>
<person id="2453">Stephen Hemminger</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10114.php">Submit feedback</link>
</links>
<date>2020-02-01T12:50:00+01:00</date>
</event>
<event id="10091">
<start>13:10</start>
<duration>00:20</duration>
<room>H.1308 (Rolin)</room>
<slug>xdp_and_page_pool_api</slug>
<title>XDP and page_pool API</title>
<subtitle/>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;XDP support is an increasing trend on the network devices. XDP main goal is
processing packets at the lowest point in the software stack avoiding
overheads. Memory recycling of received buffers achieved through
the in kernel page&lt;em&gt;pool API plays a fundamental role in the increased performance.
Adding XDP support on a driver can be non-trivial. In this talk we'll demonstrate
how porting a standard ethernet driver (mvneta/netsec) to XDP and the page&lt;/em&gt;pool API can
boost performance.
Part of the page_pool evolution involves adding the recycling support
in the kernel's SKB stack and leverage the increased performance
attributes of the API.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7082">Ilias Apalodimas</person>
<person id="7382">Lorenzo Bianconi</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10091.php">Submit feedback</link>
</links>
<date>2020-02-01T13:10:00+01:00</date>
</event>
<event id="10662">
<start>13:30</start>
<duration>00:40</duration>
<room>H.1308 (Rolin)</room>
<slug>weave_net_an_open_source_container_network</slug>
<title>Weave Net, an Open Source Container Network</title>
<subtitle>Five years with no central point of control</subtitle>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;A tour of the internals of Weave Net, one of the most popular container networks:
design challenges and lessons learned from five years in the wild. Including
Kubernetes integration and how CNI was born.&lt;/p&gt;
&lt;p&gt;Weave Net is written in Go, using many Linux kernel features such as veths, bridges and iptables.
Aimed at developers rather than network engineers, Weave Net tries to be self-configuring and
find the best available transport between nodes. The control plane operates via gossip,
with no central point of control.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4278">Bryan Boreham</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10662.php">Submit feedback</link>
</links>
<date>2020-02-01T13:30:00+01:00</date>
</event>
<event id="9704">
<start>14:10</start>
<duration>00:50</duration>
<room>H.1308 (Rolin)</room>
<slug>rethinking_kubernetes_networking_with_srv6</slug>
<title>Rethinking kubernetes networking with SRv6 and Contiv-VPP</title>
<subtitle/>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Kubernetes (k8s) is currently the de-facto standard for containers orchestration. However, K8s does not provide any solution for handling containers networking. Instead, it offloads the networking to third-party certified plugins called CNI plugins. Contiv-VPP is a k8s CNI plugin that offers fast I/O by leveraging the carrier-grade capabilities of VPP and DPDK in the dataplane.&lt;/p&gt;
&lt;p&gt;The adoption of containers and microservices calls for IPv6 to provide addressing and reachability for such massive number of endpoints. SRv6 leverages the IPv6 dataplane to provide overlay networking, traffic engineering, load balancing, network policy and service chaining.&lt;/p&gt;
&lt;p&gt;In this talk, we present an SRv6-based solution for k8s networking. We will show how SRv6 is used for pod-to-pod communication, k8s services and service function chaining (SFC), and how SRv6 solves several k8s networking challenges. We will also show the integration of our solution in Contiv-VPP. This solution is the result of combined effort between Bell Canada, Cisco and Pantheon.tech.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5984">Ahmed Abdelsalam</person>
<person id="7052">Miroslaw Walukiewicz</person>
<person id="7408">Filip Gschwandtner</person>
<person id="7409">Daniel Bernier</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9704.php">Submit feedback</link>
</links>
<date>2020-02-01T14:10:00+01:00</date>
</event>
<event id="9795">
<start>15:00</start>
<duration>00:40</duration>
<room>H.1308 (Rolin)</room>
<slug>akraino_edge_kni_blueprint</slug>
<title>Akraino Edge KNI blueprint</title>
<subtitle>A Kubernetes Native Infrastructure approach to the Edge</subtitle>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Blueprints in the Kubernetes-Native Infrastructure Blueprint Family leverage the best-practices and tools from the Kubernetes community to declaratively manage edge computing stacks at scale and with a consistent, uniform user experience from the infrastructure up to the services and from developer environments to production environments on bare metal or on public cloud.&lt;/p&gt;
&lt;p&gt;All blueprints in this family share the following characteristics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;K8s Machine API: declarative API to manage a configure the infrastructure of a cluster.&lt;/li&gt;
&lt;li&gt;Operator Framework: automated and secure lifecycle of applications running on the edge stack.&lt;/li&gt;
&lt;li&gt;Kubernetes-native workloads: allowing the mix of CNFs and VM-based workloads via Kubevirt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Come and see the leading edge!&lt;/p&gt;</abstract>
<description>&lt;p&gt;Launched in 2018, Akraino Edge Stack aims to create an open source software stack that supports high-availability cloud services optimized for edge computing systems and applications.&lt;/p&gt;
&lt;p&gt;As part of the Akraino project, Kubernetes-Native-Infrastructure blueprint family represents the reference edge stack managed as a declarative platform, where controllers monitor a system for deviations between the user-declared target state and reality and take corrective
actions to reconcile reality with the declared target state.&lt;/p&gt;
&lt;p&gt;KNI blueprints cover up two different use cases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Provider Access Edge: as part of the network transformation, telco operators are moving to run its radio access network in a cloud-native manner. Technologies like vRAN will be only possible with a declarative approach, and leveraging open networking best practices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Industrial Edge: workloads such IoT, AI/ML, AR/VR, and ultra-low latency control will be run in the edge. These workloads will require specific hardware such GPUs and FPGAs. KNI can show how this needs can be a reality today.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With Kubernetes Native Infrastructure learn about the k8s way of managing infrastructure. By defining a declarative state, the edge administrator will be able to manage thousands of sites by following an innovative GitOps approach.&lt;/p&gt;
&lt;p&gt;If you are interested in these exciting topics, don't miss the talk!&lt;/p&gt;</description>
<persons>
<person id="5262">Yolanda Robla Mota</person>
<person id="5936">Ricardo Noriega</person>
</persons>
<links>
<link href="https://oglok.github.io/2019-09-26-Akraino-Edge-KNI/">Blogpost about Akraino KNI</link>
<link href="https://www.lfedge.org/projects/akraino/release-1/kubernetes-native-infrastructure-provider-access-edge/">Akraino Wiki for KNI PAE</link>
<link href="https://submission.fosdem.org/feedback/9795.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="9500">
<start>15:40</start>
<duration>00:40</duration>
<room>H.1308 (Rolin)</room>
<slug>fast_quic_sockets_for_cloud_networking</slug>
<title>Fast QUIC sockets for cloud networking</title>
<subtitle>Using vector packet processing for QUIC acceleration and offload</subtitle>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;QUIC was introduced by Google to move the transport protocol implementation out of the kernel, and is now being standardized in the IETF. It provides both encryption and multiplexing, and will be the default transport for HTTP/3. In this talk we'll present the work we've done investigating whether QUIC would benefit from vectorized packet processing, the impact it has on performance and how it can be consumed by external applications.&lt;/p&gt;
&lt;p&gt;VPP (vector packet processing) is a fast network data plane, part of the Linux Foundation FD.io project providing fast network functions on top of DPDK. It provides an optimized support of TCP &amp;amp; UDP allowing significant performance improvements. In this presentation, we'll discuss:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How we took advantage of the open source protocol implementation quicly and vpp's hoststack, to implement fast QUIC sockets.&lt;/li&gt;
&lt;li&gt;How this can be consumed by external applications and to what ends.&lt;/li&gt;
&lt;li&gt;What this enables regarding hardware and software offloads.&lt;/li&gt;
&lt;/ul&gt;
</abstract>
<description/>
<persons>
<person id="6508">Nathan Skrzypczak</person>
<person id="6509">Aloys Augustin</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9500.php">Submit feedback</link>
</links>
<date>2020-02-01T15:40:00+01:00</date>
</event>
<event id="9813">
<start>16:20</start>
<duration>00:20</duration>
<room>H.1308 (Rolin)</room>
<slug>mixing_kool_aids</slug>
<title>Mixing kool-aids! Accelerate the internet with AF_XDP &amp; DPDK</title>
<subtitle/>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;&quot;With its recent advancements, AF&lt;em&gt;XDP is gaining popularity in the high performance packet processing space. As a result, existing frameworks for packet processing, such as DPDK, are integrating AF&lt;/em&gt;XDP support to provide more options for moving packets to user space applications. The challenge with such integration is that both AF_XDP and frameworks like DPDK have their own assumptions and constraints about such things as, for example, how to align or manage packet buffers, making the integration less straight forward than it might appear at first glance.&lt;/p&gt;
&lt;p&gt;This talk takes a look at the usability of AF&lt;em&gt;XDP pre-kernel v5.4, before diving into the recent challenges we encountered when integrating DPDK and AF&lt;/em&gt;XDP, and how we made changes (on both sides) to allow the two to work together in a much more seamless manner.&quot;&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5135">Ciara Loftus</person>
<person id="6005">Kevin Laatz</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9813.php">Submit feedback</link>
</links>
<date>2020-02-01T16:20:00+01:00</date>
</event>
<event id="9269">
<start>16:40</start>
<duration>00:40</duration>
<room>H.1308 (Rolin)</room>
<slug>dial_your_networking_code_up_to_11</slug>
<title>Dial your Networking Code up to 11</title>
<subtitle>Vectorizing your network app to break the performance barrier</subtitle>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Modern CPUs provide a wide variety of Single-instruction-multiple-data (SIMD) instructions, or vector instuctions, for operating on larger blocks of data than with regular instructions. Though thought of by many programmers primarily as instructions for doing calculations in parallel on arrays of data, these vector instructions can actually be used in other ways to accelerate packet processing applications. This talk goes through a number of examples in open-source projects, such as DPDK and OVS, where vector instructions have been used to boost performance significantly, and explains the general techniques used that can be applied to other applications.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The talk focuses on the work done on DPDK and OVS to leverage the SSE and AVX instruction sets for packet acceleration. It shows how the different tasks to be performed in those applications can be mapped to SIMD instructions, and presents general guidelines on how to think about packet processing work from a vectorization viewpoint. It also discusses some considerations in application design so as to allow the app to run with best performance on a variety of platforms, each of which may have different instruction sets available.&lt;/p&gt;</description>
<persons>
<person id="6263">Bruce Richardson</person>
<person id="6588">Harry van Haaren</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9269.php">Submit feedback</link>
</links>
<date>2020-02-01T16:40:00+01:00</date>
</event>
<event id="9502">
<start>17:20</start>
<duration>00:20</duration>
<room>H.1308 (Rolin)</room>
<slug>userspace_networking_how_to_have_your_cake_and_eat_it_too_thanks_to_rdma</slug>
<title>Userspace networking: beyond the kernel bypass with RDMA!</title>
<subtitle>Using the RDMA infrastructure for performance while retaining kernel integration</subtitle>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;While userspace networking has demonstrated great performance benefits, it does come with greater complexity than kernel networking.&lt;/p&gt;
&lt;p&gt;In parallel, Remote Direct Memory Access (RDMA) was developed as an efficient way to move data in HPC and storage clusters with great success.&lt;/p&gt;
&lt;p&gt;Key properties of this technology are also highly desirable for userspace networking: native integration with the operating system (OS), OS bypass and a very efficient software interface.
RDMA-capable network adapters are now enabling standard Ethernet networking functions through the RDMA interface, allowing userspace networking software such as &lt;a href=&quot;https://fd.io&quot;&gt;VPP&lt;/a&gt; to achieve extreme performance while integrating transparently with the OS.&lt;/p&gt;
&lt;p&gt;We'll present:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the RDMA Ethernet concepts, architecture and interfaces&lt;/li&gt;
&lt;li&gt;how VPP leverages it&lt;/li&gt;
&lt;li&gt;the problems solved by this architecture and the usecase it enables&lt;/li&gt;
&lt;/ul&gt;
</abstract>
<description/>
<persons>
<person id="6539">Benoît Ganne</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9502.php">Submit feedback</link>
</links>
<date>2020-02-01T17:20:00+01:00</date>
</event>
<event id="9734">
<start>17:40</start>
<duration>00:20</duration>
<room>H.1308 (Rolin)</room>
<slug>vita_high_speed_traffic_encryption_on_x86_64</slug>
<title>Vita: high-speed traffic encryption on x86_64 with Snabb</title>
<subtitle>Coming to your cloud with XDP, AVF, and Kubernetes integration</subtitle>
<track>Software Defined Networking</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Vita is a high-performance IPsec VPN gateway designed with medium and large network operators in mind. It is written in a high-level language (Lua) using the Snabb networking toolkit and achieves high performance via networking in userspace, i.e. bypassing the kernel network stack.&lt;/p&gt;
&lt;p&gt;This talk will discuss Vita and how it was developed using Snabb. Topics include: fast software networking using a dynamic, high-level language; cryptographic ciphers implemented in software software accelerated by x86 extensions; modern cryptography; limiting complexity; multi-core scaling; YANG enabled control planes; minimalist NIC drivers.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6923">Max Rottenkolber</person>
</persons>
<links>
<link href="https://github.com/inters/vita/#-">Vita project page</link>
<link href="https://blog.ipspace.net/2019/02/high-speed-ipsec-on-snabb-switch-on.html">High-Speed IPsec with Snabb on Software Gone Wild</link>
<link href="https://submission.fosdem.org/feedback/9734.php">Submit feedback</link>
</links>
<date>2020-02-01T17:40:00+01:00</date>
</event>
</room>
<room name="H.1309 (Van Rijn)">
<event id="10654">
<start>10:30</start>
<duration>00:05</duration>
<room>H.1309 (Van Rijn)</room>
<slug>dns_opening</slug>
<title>DNS Devroom Opening</title>
<subtitle/>
<track>DNS</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Welcome to the DNS DevRoom&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="1325">Shane Kerr</person>
<person id="3076">Pieter Lexis</person>
<person id="3270">Peter van Dijk</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10654.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10207">
<start>10:35</start>
<duration>00:30</duration>
<room>H.1309 (Van Rijn)</room>
<slug>dns_openstack</slug>
<title>DNS Management in OpenStack</title>
<subtitle>What is the OpenStack DNS API?</subtitle>
<track>DNS</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;All major clouds have integrated DNS management these days, and OpenStack is one of them. We will run through the OpenStack DNS (Designate) project - how it works, why we laid it out the way we did, how you can use it, and how other OpenStack components can leverage it.&lt;/p&gt;</abstract>
<description>&lt;p&gt;We will run through the general architecture of the project, and show how we can remain a simple control layer over multiple DNS servers and service providers.&lt;/p&gt;
&lt;p&gt;We will show how you can run Designate stand alone, as a multi tenant API for managing DNS inside your company, and how you can use the ability to have multiple pools of servers available for multiple purposes.&lt;/p&gt;
&lt;p&gt;Finally we will show the myriad of both OpenStack and other Open Source software integrations for DNS management, and DNS-01 ACME validation.&lt;/p&gt;</description>
<persons>
<person id="2777">Graham Hayes</person>
</persons>
<links>
<link href="https://docs.openstack.org/designate/latest/">Project Docs</link>
<link href="https://docs.openstack.org/api-ref/dns/">OpenStack DNS API</link>
<link href="https://submission.fosdem.org/feedback/10207.php">Submit feedback</link>
</links>
<date>2020-02-01T10:35:00+01:00</date>
</event>
<event id="10508">
<start>11:10</start>
<duration>00:30</duration>
<room>H.1309 (Van Rijn)</room>
<slug>dns_hashdns</slug>
<title>HashDNS and FQDNDHCP</title>
<subtitle>IPv6 DNS configuration made easy</subtitle>
<track>DNS</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Would you like a DNS server for IPv6 where adding a new node is as simple as typing in its name?
If the answer is yes, try HashDNS.&lt;/p&gt;</abstract>
<description>&lt;p&gt;IPv6 autoconfiguration methods can give addresses to interfaces but do not provide any means of configuring the DNS. So autoconfiguration is suitable for clients. If a host has to act as a server, it must have a fully qualified domain name and the DNS service has to map its name to its IP address.&lt;/p&gt;
&lt;p&gt;In the Internet of Thread scenario, the number of network nodes can be orders of magnitude higher than before, as each process or thread can be a node. This idea of hash based IPv6 addresses is a viable solution to the problem to manage the DNS resolution in IoTh environments.&lt;/p&gt;
&lt;p&gt;The host part of an IPv6 address can be computed as the result of a hash function computer on the fully qualified domain name.&lt;/p&gt;
&lt;p&gt;In this way it is possible to write a DNS server able to resolve the addresses of any hostname in a sub-domain provided the network prefix of that sub-domain.&lt;/p&gt;
&lt;p&gt;The installation of a new node of the network (computer, namespace, IoTh process) is as simple as providing it with its IPv6 address (the one obtained by concatenating the network prefix and the host address computed by the hash function).&lt;/p&gt;
&lt;p&gt;There is no need to change the configuration of the DNS.&lt;/p&gt;
&lt;p&gt;Actually the installation of a new node (or its renaming) is even simpler than that. The host can use a DHCP service designed to get the right address from the DNS server given its fully qualified domain name.&lt;/p&gt;
&lt;p&gt;So a system administrator has nothing to do more than assigning the new node its name. (They have just to baptize the new node)&lt;/p&gt;</description>
<persons>
<person id="2639">Renzo Davoli</person>
</persons>
<links>
<link href="https://github.com/rd235/vde_dnsutils">dnsultils project</link>
<link href="http://wiki.virtualsquare.org/">virtualsquare</link>
<link href="https://submission.fosdem.org/feedback/10508.php">Submit feedback</link>
</links>
<date>2020-02-01T11:10:00+01:00</date>
</event>
<event id="10347">
<start>11:45</start>
<duration>00:20</duration>
<room>H.1309 (Van Rijn)</room>
<slug>dns_djbdnscurve</slug>
<title>State of djbdnscurve6</title>
<subtitle>IPv6 LLU address support</subtitle>
<track>DNS</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The fehQlibs and djbdnscurve6 provide both a DNS library which support IPv6 LLU addresses. The inclusion and use of IPv6 LLU addresses is discussed. While the typical Unix /etc/resolv.conf is applied system-wide and the Microsoft Window's pendent works interface-dependent, here application specific DNS settings can be used.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Overview:
1. Background and heritage on fehQlibs and djbdnscurve6
2. Application specific DNS resolver settings
3. Integration of IPv6 LLU addresses - benefits
4. Integration of IPv6 LLU addresses - recipe
5. Outlook and future challenges&lt;/p&gt;</description>
<persons>
<person id="6793">Erwin Hoffmann (feh)</person>
</persons>
<links>
<link href="https://www.fehcom.de/ipnet/djbdnscurve6.html">DJBDNSCurve6</link>
<link href="https://submission.fosdem.org/feedback/10347.php">Submit feedback</link>
</links>
<date>2020-02-01T11:45:00+01:00</date>
</event>
<event id="9451">
<start>12:10</start>
<duration>00:20</duration>
<room>H.1309 (Van Rijn)</room>
<slug>dns_doh_dot_testing</slug>
<title>Testing DoH and DoT servers, compliance and performance</title>
<subtitle/>
<track>DNS</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Of course, encrypting DNS is necessary for privacy and security, like
for every other Internet protocol. That's why DoT and DoH deployment
is very important, so that users could safely go to a resolver they
trust. Now, it is time to assert the technical compliance and
performance of these trusted resolvers. We will talk about the things
that could and should be tested against DoT and DoH servers and how to
implement it. We will then discuss performance measurements, specially
with the opportunities brought by parallelism (both in DoT and DoH)
and the challenges they create for measurements.
This talk will be inspired by the development of a tool which is, at
this stage, in a very alpha state.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5216">Stéphane Bortzmeyer</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9451.php">Submit feedback</link>
</links>
<date>2020-02-01T12:10:00+01:00</date>
</event>
<event id="10142">
<start>12:35</start>
<duration>00:30</duration>
<room>H.1309 (Van Rijn)</room>
<slug>dns_bind9_codequality</slug>
<title>Improving BIND 9 Code Quality</title>
<subtitle>Why is concurrent programming so hard?</subtitle>
<track>DNS</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;BIND 9 consists of a huge and old codebase. In this talk, I would like you to show all the available tools that we use on regular basis to improve, refactor and make the BIND 9 code safer. I'll show the examples of various Google/LLVM Sanitizers, cppcheck, LLVM scan-build and semantic patching using coccinelle.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="2795">Ondřej Surý</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10142.php">Submit feedback</link>
</links>
<date>2020-02-01T12:35:00+01:00</date>
</event>
<event id="9328">
<start>13:10</start>
<duration>00:30</duration>
<room>H.1309 (Van Rijn)</room>
<slug>dns_unwind</slug>
<title>unwind(8)</title>
<subtitle>A privilege-separated, validating DNS recursive nameserver for every laptop</subtitle>
<track>DNS</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;DNS is easy. You type fosdem.org in your browser's address bar, hit enter and you will be greeted by your favorite open-source event's start page. Actually...&lt;/p&gt;</abstract>
<description>&lt;p&gt;We will introduce unwind(8) - an always-running, validating DNS recursive nameserver, answering queries on localhost (127.0.0.1). We will explain its privilege-separated design and show that it is secure to run this daemon by default. We will then show how its novel approach of observing changes in network location and actively probing the quality of the local network improve the user experience in DNS resolution. The focus will be on laptops that move through many networks, some good, some bad, some outright hostile.&lt;/p&gt;
&lt;p&gt;We will compare unwind(8) to prior solutions and show how its design enables it to run without user intervention.&lt;/p&gt;</description>
<persons>
<person id="6635">Florian Obser</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9328.php">Submit feedback</link>
</links>
<date>2020-02-01T13:10:00+01:00</date>
</event>
<event id="9415">
<start>13:45</start>
<duration>00:15</duration>
<room>H.1309 (Van Rijn)</room>
<slug>dns_catz</slug>
<title>extending catalog zones</title>
<subtitle>auto-maintain DNS servers</subtitle>
<track>DNS</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="6710">Leo Vandewoestijne</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9415.php">Submit feedback</link>
</links>
<date>2020-02-01T13:45:00+01:00</date>
</event>
<event id="10611">
<start>14:05</start>
<duration>00:20</duration>
<room>H.1309 (Van Rijn)</room>
<slug>dns_minimizing_any</slug>
<title>The Different Ways of Minimizing ANY</title>
<subtitle/>
<track>DNS</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The DNS Protocol has features that have grown to become liabilities. The query type &quot;ANY&quot; is one. Earlier this year a published RFC document describes how a DNS server may respond to such queries while reducing the liability. But the document does not define a definitive means for a server to signal that it is differing from the original protocol. This presentation measures of the impact of having no definitive means specified and examines the &quot;fear, uncertainty, and doubt&quot; of lacking explicit signals.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The &quot;minimal ANY responses&quot; RFC (Providing Minimal-Sized Responses to DNS Queries That Have QTYPE=ANY, a.k.a. RFC 8482) results in about 1% of the TLD nameservers indicating they are minimizing ANY responses.
That's (only) about 250 cases.
What is troubling is that there are about 9 different responses observed to indicate the response is &quot;minimized&quot;
9 different ways in just 250 samples, &quot;fuzzing&quot; the protocol
The morale of this tale is that &quot;fuzzying&quot; the protocol is worrisome.  (Not that minimizing ANY is a bad thing.)&lt;/p&gt;</description>
<persons>
<person id="6128">Edward Lewis</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10611.php">Submit feedback</link>
</links>
<date>2020-02-01T14:05:00+01:00</date>
</event>
<event id="10552">
<start>15:00</start>
<duration>00:35</duration>
<room>H.1309 (Van Rijn)</room>
<slug>webperf_boomerang_optimisation</slug>
<title>Check Yourself Before You Wreck Yourself</title>
<subtitle>Auditing and Improving the Performance of Boomerang</subtitle>
<track>Web Performance</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Boomerang is an open-source Real User Monitoring (RUM) JavaScript library used by thousands of websites to measure their visitor's experiences. The developers behind Boomerang take pride in building a reliable and performant third-party library that everyone can use without being concerned about its measurements affecting their site. We recently performed and shared an audit of Boomerang's performance, to help communicate its &quot;cost of doing business&quot;, and in doing so we found several areas of code that we wanted to improve. We'll discuss how we performed the audit, some of the improvements we've made, how we're testing and validating our changes, and the real-time telemetry we capture for our library to ensure we're having as little of an impact as possible on the sites we're included on.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Boomerang is an open-source Real User Monitoring (RUM) JavaScript library used by thousands of websites to measure their visitor's experiences.&lt;/p&gt;
&lt;p&gt;Boomerang runs on billions of page loads a day, either via the open-source library or as part of Akamai's mPulse RUM service. The developers behind Boomerang take pride in building a reliable and performant third-party library that everyone can use without being concerned about its measurements affecting their site.&lt;/p&gt;
&lt;p&gt;Recently, we performed and shared an audit of Boomerang's performance, to help communicate the &quot;cost of doing business&quot; of including Boomerang on a page while it takes its measurements. In doing the audit, we found several areas of code that we wanted to improve and have been making continuous improvements ever since. We've taken ideas and contributions from the OSS community, and have built a Performance Lab that helps &quot;lock in&quot; our improvements by continuously measuring the metrics that are important to us.&lt;/p&gt;
&lt;p&gt;We'll discuss how we performed the audit, some of the improvements we've made, how we're testing and validating our changes, and the real-time telemetry we capture on our library to ensure we're having as little of an impact as possible on the sites we're included on.&lt;/p&gt;</description>
<persons>
<person id="7299">Nic Jansma</person>
</persons>
<links>
<link href="https://github.com/akamai/boomerang">Boomerang on Github</link>
<link href="https://nicj.net/an-audit-of-boomerangs-performance/">Boomerang Performance Audit</link>
<link href="https://submission.fosdem.org/feedback/10552.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="9742">
<start>15:40</start>
<duration>00:35</duration>
<room>H.1309 (Van Rijn)</room>
<slug>webperf_qoe_research</slug>
<title>Metrics and models for Web performance evaluation</title>
<subtitle>or, How to measure SpeedIndex from raw encrypted packets, and why it matters</subtitle>
<track>Web Performance</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The World Wide Web is still among the most prominent Internet applications. While the Web landscape has been in perpetual movement since the very beginning,
these last few years have witnessed some noteworthy proposals such as SPDY, HTTP/2 and QUIC, which profoundly reshape the application-layer protocols family.
To measure the impact of such changes, going beyond the classic W3C notion of page load time, a number of Web performance metrics has been proposed (such as
SpeedIndex, Above-The-Fold and variants). At the same time, there is still a limited amount of understanding on how these metrics correlate with the user
perception (e.g., such as user ratings, user-perceived page load time, etc.). In this talk, we discuss the state of the art in metrics and models for Web
performance evaluation, and their correlation with user experience through several real-world studies. Additional information, software and datasets are
available at https://webqoe.telecom-paristech.fr&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6928">Dario Rossi</person>
</persons>
<links>
<link href="https://webqoe.telecom-paristech.fr">https://webqoe.telecom-paristech.fr</link>
<link href="https://submission.fosdem.org/feedback/9742.php">Submit feedback</link>
</links>
<date>2020-02-01T15:40:00+01:00</date>
</event>
<event id="10539">
<start>16:20</start>
<duration>00:35</duration>
<room>H.1309 (Van Rijn)</room>
<slug>webperf_font_loading</slug>
<title>Hint, Hint, Font Loading Matters!</title>
<subtitle>Fonts are lovely but can slow down our loads. How can we make them faster?</subtitle>
<track>Web Performance</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;We all love fonts. From Google Fonts to Typekit, Hoefler&amp;amp;Co and more, they give character and tone to our websites. The down side of fonts is that they can really slow down our loads. In this talk we'll learn about common pitfalls like critical requests depth and how to use resource hints to play tricks with latency to load web applications faster. We'll walk through a network profile to understand what's going on in the browser and how to make it faster.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7292">Sia Karamalegos</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10539.php">Submit feedback</link>
</links>
<date>2020-02-01T16:20:00+01:00</date>
</event>
<event id="9304">
<start>17:00</start>
<duration>00:35</duration>
<room>H.1309 (Van Rijn)</room>
<slug>webperf_http_prioritization</slug>
<title>The ultimate guide to HTTP resource prioritization</title>
<subtitle>How to make sure your data arrives at the browser in the optimal order</subtitle>
<track>Web Performance</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Come learn about how browsers try to guess in what order web page resources should be loaded and how servers use that information to often (accidentally) make your web page slower instead.
We look at what resource prioritization is, how it's often implemented terribly in modern HTTP/2 stacks and how we're trying to fix it in QUIC and HTTP/3.
We use clear visualizations and images to help explain the nuances in this complex topic and also muse a bit on whether prioritization actually has that large an impact on web performance.&lt;/p&gt;</abstract>
<description>&lt;p&gt;HTTP/2 started the move from multiple parallel TCP connections to a single underlying pipe. QUIC and HTTP/3 continue that trend.
While this reduces the connection overhead and lets congestion controllers do their work, it also means we no longer send data in a truly parallel fashion.
As such, we need to be careful about how exactly we send our resource data, as some files are more important than others to achieve good web performance.&lt;/p&gt;
&lt;p&gt;To help regulate this, HTTP/2 introduced a complex prioritization mechanism. Browsers use complex heuristics to try and estimate the importance of a resource and, with various success, communicate their preferences to the servers.
It has however become clear that this scheme does not work well in practice. Between server implementation bugs, questionable browser choices and bufferbloat in caches and network setups, HTTP/2 prioritization is sometimes more a liability than a useful feature.&lt;/p&gt;
&lt;p&gt;For this reason, this feature is being completely reworked in HTTP/3 over QUIC. However, there a whole new can of worms is opened.
One of QUIC's main features for improving performance over TCP is that it removes &quot;head of line blocking&quot;: if one resource suffers packet loss, other can still make progress.
That is... if there are other resources in progress! What performs well for lossy links turns out to be exactly what to prevent for high speed connections.&lt;/p&gt;
&lt;p&gt;Along the way, we also discuss existing options for web developers to impact the browser's heuristics and server behaviour (such as resource hints (e.g., preload) and the upcoming priority hints).&lt;/p&gt;
&lt;p&gt;Finally, we question about how we got in this terrible state of things to begin with: if people made so many mistakes implementing HTTP/2 prioritization, why didn't anyone really notice until 3 years later?
Could it be its impact on web performance is actually limited? Or have we just not seen its full potential yet?&lt;/p&gt;
&lt;p&gt;We make this complex topic approachable with plenty of visualizations and animations.
The content is mainly based on our own research (and papers) and that of others in the web community, such as Patrick Meenan and Andy Davies.&lt;/p&gt;</description>
<persons>
<person id="6615">Robin Marx</person>
</persons>
<links>
<link href="https://speeder.edm.uhasselt.be/www18/">HTTP/2 prioritization paper</link>
<link href="https://h3.edm.uhasselt.be/">HTTP/3 prioritization paper</link>
<link href="https://www.slideshare.net/patrickmeenan/http2-in-practice">Patrick Meenan's deep dive</link>
<link href="https://submission.fosdem.org/feedback/9304.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="10356">
<start>17:40</start>
<duration>00:35</duration>
<room>H.1309 (Van Rijn)</room>
<slug>webperf_chromium_development</slug>
<title>Shipping a performance API on Chromium</title>
<subtitle>Experiences from shipping the Element Timing API</subtitle>
<track>Web Performance</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Adding new web performance APIs to the web is a complex process. In this talk, I'll go over the steps we went through to ship the Element Timing API in Chromium, which enables measuring rendering timing of image and text content. You'll learn about the process to ship an API exposing performance information to web developers. There were many steps involved in the process: engaging with developers and other browser vendors, brainstorming, privacy and security reviews, Origin Trials, posting an Intent, and addressing questions and ideas after the API has shipped.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7214">Nicolás Peña Moreno</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10356.php">Submit feedback</link>
</links>
<date>2020-02-01T17:40:00+01:00</date>
</event>
<event id="10297">
<start>18:20</start>
<duration>00:35</duration>
<room>H.1309 (Van Rijn)</room>
<slug>webperf_building_openspeedmonitor</slug>
<title>The journey of building OpenSpeedMonitor</title>
<subtitle>Learnings from unexpectedly finding ourselves developing a FLOSS project</subtitle>
<track>Web Performance</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Keeping track caring about web performance is hard with constantly changing standards, improving browsers, frameworks and devices.
It gets even harder when you develop a tool meeting these changing requirements.
Eight years ago, as an IT service provider, we were faced with the task of permanently monitoring the performance of one of the largest e-commerce platforms. After the initial use of WebPagetest, we quickly needed to develop our own features.
What started as minor extensions became a separate project over time.
In this talk, we would like to take you on the journey we have taken developing OpenSpeedMonitor. You will hear about some unexpected challenges, what we learned the hard way and why we would have failed years ago, if we didn't decide to develop FLOSS.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7168">Stefan Burnicki</person>
<person id="7186">Nils Kuhn</person>
</persons>
<links>
<link href="https://github.com/iteratec/OpenSpeedMonitor">Github Repository of the OpenSpeedMonitor</link>
<link href="https://iteratec.github.io/OpenSpeedMonitor/">Landing page of the OpenSpeedMonitor</link>
<link href="https://submission.fosdem.org/feedback/10297.php">Submit feedback</link>
</links>
<date>2020-02-01T18:20:00+01:00</date>
</event>
</room>
<room name="H.2213">
<event id="9422">
<start>10:30</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>olimex</slug>
<title>Designing and Producing Open Source Hardware with FOSS/OSHW tools</title>
<subtitle>We will show you how easy is now to design and setup your own production of Open Source Hardware with only FOSS/OSHW tools</subtitle>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;We have possibility to setup small electronic assembly/production &quot;factory&quot; at our house for less than EUR 1000.
I will try to explain every step from the design to final product:&lt;/p&gt;</abstract>
<description>&lt;p&gt;We live in exciting times. It was never so easy to design and produce electronic devices like today.
This really unleash people's creativity.
The Open Source Hardware movement helps people to study, modify, improve and share designs and knowledge.
Today we have FOSS CAD tools like KiCad to design our electronic boards.
There are multiply choices to manufacture PCBs even in small quantity.
There are lot of places to source components at low cost.
We have possibility to setup small electronic assembly/production &quot;factory&quot; at our house for less than EUR 1000.
I will try to explain every step from the design to final product:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;How to design your product with KiCad&lt;/li&gt;
&lt;li&gt;How to generate files for production&lt;/li&gt;
&lt;li&gt;Where to order your PCBs&lt;/li&gt;
&lt;li&gt;Where to source the components for the assembly&lt;/li&gt;
&lt;li&gt;How to setup small &quot;factory&quot; at home at budget&lt;/li&gt;
&lt;li&gt;How to certify your OSHW project at OSHWA.org&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;and will demonstrate Do-It-Yourself oven, solder paste printer, manual pick and place tools which could be used for production.&lt;/p&gt;</description>
<persons>
<person id="1641">Tsvetan Usunov</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9422.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="9797">
<start>10:55</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>librepcb</slug>
<title>LibrePCB Status Update</title>
<subtitle>The progress of LibrePCB within the last two years</subtitle>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;An overview about what's new in LibrePCB since the last presentation at FOSDEM 2018, and a short live demonstration to see LibrePCB in action.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5141">Urban Bruhin</person>
</persons>
<links>
<link href="https://librepcb.org/">Website</link>
<link href="https://github.com/LibrePCB/LibrePCB">GitHub Repository</link>
<link href="https://submission.fosdem.org/feedback/9797.php">Submit feedback</link>
</links>
<date>2020-02-01T10:55:00+01:00</date>
</event>
<event id="9894">
<start>11:20</start>
<duration>00:30</duration>
<room>H.2213</room>
<slug>freecad</slug>
<title>Open-source design ecosystems around FreeCAD</title>
<subtitle/>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;A walk through the different ways in which people from different areas and backgrounds use a same application (FreeCAD), and the impact this has on their workflows, and even on FreeCAD development&lt;/p&gt;</abstract>
<description>&lt;p&gt;The FreeCAD project gathers a community of developers and users coming from a very large array of specialties: Makers, mechanical engineers, civil engineers, electronics engineers, architects, opticians, graphic designers, etc. All these people using the same software is a unique opportunity to explore and build cross-discipline workflows, and have people coming from one field learn unusual ways from other fields. This constant interchange of paradigms also influences FreeCAD development itself, and connects it to other fields and applications too, to create larger ecosystems. In this talk, we will show some examples of how this happens in different areas.&lt;/p&gt;</description>
<persons>
<person id="2906">Yorik van Havre</person>
<person id="7324">Brad Collette</person>
</persons>
<links>
<link href="http://www.freecadweb.org">The FreeCAD project</link>
<link href="https://submission.fosdem.org/feedback/9894.php">Submit feedback</link>
</links>
<date>2020-02-01T11:20:00+01:00</date>
</event>
<event id="9748">
<start>11:55</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>ngspice</slug>
<title>ngspice open source circuit simulator</title>
<subtitle>dev update and electrothermal simulation</subtitle>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;An update of the development activities will be presented leading to ngspice-32. Its interface to KiCad has been extended, PSPICE device model compatibility and OpAmp convergence are improved, several bugs have been fixed.&lt;/p&gt;
&lt;p&gt;The VBIC bipolar model and the VDMOS power MOS model now incorporate the self heating effect.&lt;/p&gt;
&lt;p&gt;This will lead to the second part of the talk: ngspice may be very well used to simulate thermal device behavior. Heat generation, transport and temperatures are translated into electrical signals. Thus we simulate two circuits: The electrical circuit with its power losses, and the thermal circuit withany resulting device heating, its feedback on the electrical behavior, and the external cooling measures that need to be provided. Some ciruit examples will be given.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6153">Holger Vogt</person>
</persons>
<links>
<link href="http://ngspice.sourceforge.net/index.html">ngspice home</link>
<link href="http://ngspice.sourceforge.net/ngspice-electrothermal-tutorial.html">tutorial on electrothermal simulation</link>
<link href="https://submission.fosdem.org/feedback/9748.php">Submit feedback</link>
</links>
<date>2020-02-01T11:55:00+01:00</date>
</event>
<event id="9761">
<start>12:20</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>cadquery</slug>
<title>Towards CadQuery 2.0</title>
<subtitle/>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;CadQuery (CQ) [1] is a Python library for building of parametric 3D models. The overarching
design goal is to be extremely fluent and as close as possible to the design intent. CQ is based on
the open source CAD kernel from OpenCascade and therefor offers industry standard B-Rep
modeling capabilities and allows exporting to lossless formats such as STEP as well as lossy ones
such as STL. Originally it used Python bindings based on FreeCAD [2] but recently we switched to
PythonOCC [3] to be more flexible and have full access to the underlying CAD kernel capabilities.
In the talk I will summarize the current status of the CQ project, show some interesting
usage examples and discuss newly implemented features. Furthermore I will elaborate on the future
plans of the core development team and touch on some of the challenges of maintaining a project
such as CQ. I will also present a fairly new addition to the CQ ecosystem – CQ-editor [3]. It is a
Python/PyQt5 based lightweight cross-platform GUI editor that allows to quickly develop and
preview CQ 3D models. It also offers graphical debugging and CQ stack introspection capabilities
which dramatically lowers the entry barrier for trying out and using CQ.&lt;/p&gt;
&lt;p&gt;References&lt;/p&gt;
&lt;p&gt;[1] https://github.com/CadQuery/cadquery
[2] https://www.freecadweb.org
[3] https://github.com/tpaviot/pythonocc-core
[4] https://github.com/CadQuery/CQ-editor&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6930">Adam Urbanczyk</person>
</persons>
<links>
<link href="https://github.com/CadQuery/cadquery">CadQuery repository</link>
<link href="https://github.com/CadQuery/CQ-editor">CQ-editor repository</link>
<link href="https://submission.fosdem.org/feedback/9761.php">Submit feedback</link>
</links>
<date>2020-02-01T12:20:00+01:00</date>
</event>
<event id="9254">
<start>12:45</start>
<duration>00:30</duration>
<room>H.2213</room>
<slug>kicad</slug>
<title>KiCad: Back to the Future</title>
<subtitle>KiCad and it's role in the growing open hardware movement</subtitle>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;I will talk about KiCad's role in the Open Hardware design movement and how it is remarkably similar to the early days of the Free, Libre, Open Source Software (FLOSS) movement and what it means for the future of Open Hardware.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="2508">Wayne Stambaugh</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9254.php">Submit feedback</link>
</links>
<date>2020-02-01T12:45:00+01:00</date>
</event>
<event id="9770">
<start>13:20</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>psl</slug>
<title>Pocket Science Lab from Development to Production</title>
<subtitle/>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In this talk we will cover the development path of the Pocket Science Lab (PSLab) board from version one in 2014 to today and outline how we use tools like KiCad to bring the device to large scale production. We will also share some major issues that we solved to get the device manufacturing ready and challenges that lie ahead of us like ensuring thorough device testing at production.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In this talk we will cover the development path of the Pocket Science Lab (PSLab) board from version one in 2014 to today and outline how we use tools like KiCad to bring the device to large scale production. We will also share some major issues that we solved to get the device manufacturing ready and challenges that lie ahead of us like ensuring thorough device testing at production. The goal of Pocket Science Lab is to create an Open Source hardware device (open on all layers) and software applications that can be used for experiments. The tiny pocket lab provides an array of instruments for doing science and engineering experiments. It provides functions of numerous measurement tools including an oscilloscope, a waveform generator, a frequency counter, a programmable voltage, current source and even a component to control robots with up to four servos.&lt;/p&gt;</description>
<persons>
<person id="2541">Mario Behling</person>
</persons>
<links>
<link href="https://pslab.io">Pocket Science Lab</link>
<link href="https://github.com/fossasia/pslab-hardware">PSLab Hardware</link>
<link href="https://github.com/fossasia?utf8=%E2%9C%93&amp;q=pslab">PSLab Github Repositories</link>
<link href="https://submission.fosdem.org/feedback/9770.php">Submit feedback</link>
</links>
<date>2020-02-01T13:20:00+01:00</date>
</event>
<event id="9860">
<start>13:45</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>openscad</slug>
<title>Designing functional objects with functional objects</title>
<subtitle>OpenSCAD: Past, present and/or future</subtitle>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Reflecting on OpenSCAD's 10 years of history and what we've learned and discovered along the way. Discussion on opportunities and potential avenues forward, and some stories from the trenches.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6976">Marius Kintel</person>
</persons>
<links>
<link href="http://openscad.org">openscad.org</link>
<link href="https://submission.fosdem.org/feedback/9860.php">Submit feedback</link>
</links>
<date>2020-02-01T13:45:00+01:00</date>
</event>
<event id="9850">
<start>14:10</start>
<duration>00:10</duration>
<room>H.2213</room>
<slug>kicadsearch</slug>
<title>Leveraging Open Source Designs</title>
<subtitle>Creating a component search engine for reference designs used in practice</subtitle>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Incorporating new components into PCBs is a difficult task that often requires reading multiple datasheets and creating prototypes to get it right. The funny thing is: every engineer needs to re-read reference designs! Even though there are tens of thousands of designs with new components documented and available on Github. The reason: it is almost impossible to find a relevant project. The solution? Instead of using Github search, which only retrieves files by filename, our approach creates a local database that takes the search results from Github, and then parses the used components inside the PCB designs to index them. That way, you can easily search a component and get the most relevant designs as a reference.&lt;/p&gt;
&lt;p&gt;This talk will give an overview of the software that was created, discusses the difficulties that were overcome and the potential for improvement in future work.&lt;/p&gt;
&lt;p&gt;Currently 300 of an estimated 30000 KiCad-projects on GitHub have been indexed as a proof-of-concept. We expect the data to be completed at the end of December. The project was kindly supported by AISLER with a server instance. The prototype of the search engine can be accessed at https://search-dev.aisler.net The release candidate should be ready at the end of December with the full dataset.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6973">Lasse Mönch</person>
</persons>
<links>
<link href="https://search-dev.aisler.net">Development prototype of the search engine</link>
<link href="https://github.com/KicadSearch/KicadSearch">Code on GitHub</link>
<link href="https://submission.fosdem.org/feedback/9850.php">Submit feedback</link>
</links>
<date>2020-02-01T14:10:00+01:00</date>
</event>
<event id="9538">
<start>14:25</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>fritzing</slug>
<title>Fritzing - the past, the present and the future</title>
<subtitle>Restarting with 1100 technical issues, and a few legal ones</subtitle>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Making electronics accessible to the broad public was mainly made possible by Arduino, Raspberry PI and last but not least Fritzing. Back in 2009, it was a pain to get from a loose wiring on a breadboard to a PCB. Fritzing came up first with a unique breadboard view and a simple to use PCB layout. Fast forward 10 years to Fosdem 2019, Fritzing was in a major crisis. Despite well over 200.000 users, thousands of downloads per day and an enthusiastic community, development had stalled. It has now been rebooted, and the project is back to gaining momentum. So what has happened between last year and this year?
This talk will give a rough introduction to Fritzing and its ecosystem, including how we overcame the problems, learned from our mistakes and how we plan to keep improving Fritzing in the future.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6799">Kjell Morgenstern</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9538.php">Submit feedback</link>
</links>
<date>2020-02-01T14:25:00+01:00</date>
</event>
<event id="9827">
<start>14:50</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>sparselizard</slug>
<title>Sparselizard: a general purpose multiphysics FEM library</title>
<subtitle>Mechanics, fluids, electricity, magnetics, EM and more</subtitle>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This presentation describes sparselizard: a fast, general, robust and user-friendly finite element c++ library with high potential for low-maintenance integration to open-source simulation tools. It is demonstrated with a large range of validated examples that the library has the ability to simulate heavily nonlinear multiphysics problems involving at least mechanic, fluid, electric, magnetic and electromagnetic physics. Its robustness, speed and user-friendliness are also demonstrated.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6963">Alexandre Halbach</person>
</persons>
<links>
<link href="http://www.sparselizard.org">http://www.sparselizard.org</link>
<link href="https://submission.fosdem.org/feedback/9827.php">Submit feedback</link>
</links>
<date>2020-02-01T14:50:00+01:00</date>
</event>
<event id="10068">
<start>15:15</start>
<duration>00:30</duration>
<room>H.2213</room>
<slug>opencascade</slug>
<title>Open CASCADE Technology - an introduction and overview</title>
<subtitle/>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Open Cascade Technology is a framework for B-Rep modeling. The presentation highlights key features available in the toolkits.
The following topics are covered:
- What is OCCT?
- License
- OCCT in numbers
- History
- Modeling data
- Modeling algorithms
- Visualization
- Data exchange&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7077">Alexander Malyshev</person>
</persons>
<links>
<link href="https://www.opencascade.com/content/overview">OpenCascade</link>
<link href="https://dev.opencascade.org/">Development Portal</link>
<link href="https://www.opencascade.com/forums">OpenCascade Forums</link>
<link href="https://submission.fosdem.org/feedback/10068.php">Submit feedback</link>
</links>
<date>2020-02-01T15:15:00+01:00</date>
</event>
<event id="9909">
<start>15:50</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>geda</slug>
<title>News from gEDA/gaf</title>
<subtitle>including an introduction to gschem</subtitle>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This talk gives an overview of the recent gEDA/gaf development and the new features in gEDA/gaf 1.10.0. It is followed by an introduction to gschem and how to use it to create symbols and schematics.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4436">Roland Lutz</person>
</persons>
<links>
<link href="http://www.geda-project.org/">gEDA Project</link>
<link href="https://submission.fosdem.org/feedback/9909.php">Submit feedback</link>
</links>
<date>2020-02-01T15:50:00+01:00</date>
</event>
<event id="9270">
<start>16:15</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>gmsh</slug>
<title>Gmsh</title>
<subtitle/>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Gmsh (http://gmsh.info) is an open source finite element mesh generator with built-in pre- and post-processing facilities. Under continuous development for the last two decades, it has become the de facto standard for open source finite element mesh generation, with a large user community in both academia and industry. In this talk I will present an overview of Gmsh, and highlight recent developments including the support for constructive solid geometry, new robust and parallel meshing algorithms, flexible solver integration and a new multi-language Application Programming Interface in C++, C, Python and Julia.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6587">Christophe Geuzaine</person>
</persons>
<links>
<link href="http://gmsh.info">http://gmsh.info</link>
<link href="https://submission.fosdem.org/feedback/9270.php">Submit feedback</link>
</links>
<date>2020-02-01T16:15:00+01:00</date>
</event>
<event id="9379">
<start>16:40</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>axiom</slug>
<title>AXIOM - open source cinema camera</title>
<subtitle>Project Introduction and current state of development</subtitle>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The presentation will give a brief overview of the projects history &amp;amp; lessons learned during the course of developing a high tech camera device as community project. We also want to demo and explain the produced hardware, enclosures and sample footage then look at the challenges still ahead. Last 10 minutes reserved for Q&amp;amp;A&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6685">Sebastian Pichelhofer</person>
</persons>
<links>
<link href="https://www.apertus.org/axiom-beta">AXIOM Beta</link>
<link href="https://apertus.org/AXIOM_Beta_Brochure_02.04.pdf">AXIOM Brochure</link>
<link href="https://submission.fosdem.org/feedback/9379.php">Submit feedback</link>
</links>
<date>2020-02-01T16:40:00+01:00</date>
</event>
<event id="9480">
<start>17:05</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>horizon</slug>
<title>Horizon EDA - Version 1.0</title>
<subtitle/>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This talk covers my motivation for starting a new EDA package in 2016 and the main ideas behind horizon as well as what has changed in the last year. I'll also go into my short- and long-term plans for the project.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Horizon EDA is a from-scratch EDA package with focus on useful parts management, rule-driven design and good usability. It has already proven its suitability for medium-complexity projects in the board design for my master thesis and in various hobby projects.&lt;/p&gt;
&lt;p&gt;This talk covers my motivation for starting a new EDA package in 2016 and the main ideas behind horizon as well as what has changed in the last year. I'll also go into my short- and long-term plans for the project.&lt;/p&gt;</description>
<persons>
<person id="4800">Lukas Kramer</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9480.php">Submit feedback</link>
</links>
<date>2020-02-01T17:05:00+01:00</date>
</event>
<event id="9931">
<start>17:30</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>openpiton</slug>
<title>OpenPiton: An Open-Source Framework for EDA Tool Development</title>
<subtitle/>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;As contemporary industrial ASIC designs have reached hundreds of billions transistor count, EDA tools must have the scalability to handle such large designs. However, few open-source RTL designs reflect the scale that industrial ASICs have reached. In this talk, we will present OpenPiton, a scalable, tiled manycore design that can reach as many as 65,536 cores in a single chip, and up to 500 million cores on a multi-chip design. The modularity and scalability of the OpenPiton design can enable EDA tool developers to test their tools' functionality at contemporary scales and adapt their development for future larger designs. With its many configurability options, extensive scalability, and heterogeneity, the OpenPiton platform is well placed to supercharge open-source EDA tool development and pave the way for a completely open-source ASIC synthesis and back-end flow tested using open-source designs.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Title:
OpenPiton: An Open-Source Framework for EDA Tool Development&lt;/p&gt;
&lt;p&gt;Abstract:
As contemporary industrial ASIC designs have reached hundreds of billions transistor count, EDA tools must have the scalability to handle such large designs. However, few open-source RTL designs reflect the scale that industrial ASICs have reached. In this talk, we will present OpenPiton, a scalable, tiled manycore design that can reach as many as 65,536 cores in a single chip, and up to 500 million cores on a multi-chip design. The modularity and scalability of the OpenPiton design can enable EDA tool developers to test their tools' functionality at contemporary scales and adapt their development for future larger designs. With its many configurability options, extensive scalability, and heterogeneity, the OpenPiton platform is well placed to supercharge open-source EDA tool development and pave the way for a completely open-source ASIC synthesis and back-end flow tested using open-source designs.&lt;/p&gt;
&lt;p&gt;Preferred Session length:
Short (20 minutes)&lt;/p&gt;
&lt;p&gt;Speaker: Prof. David Wentzlaff (Princeton University)&lt;/p&gt;
&lt;p&gt;Speaker bio:
David Wentzlaff is an associate professor of electrical engineering at Princeton University. Wentzlaff's research has earned several awards, among them an NSF CAREER award, DARPA Young Faculty Award, AFOSR Young Investigator Prize, induction into the MICRO Hall of Fame, and the ASPLOS WACI Test-of-Time Award. He received his M.S. and Ph.D. from MIT and received a B.S. in electrical engineering from the University of Illinois at Urbana-Champaign. He was Lead Architect and Founder of Tilera Corporation, a multicore chip manufacturer now owned by Mellanox. David's current research interests include how to create manycore microprocessors customized specifically for Cloud computing environments, how to design computer architectures in a post Moore’s Law world, and how to reduce the impact of computing on the environment by optimizing computer architecture for fully biodegradable substrates. Many of the research projects created by Wentzlaff’s group have been open-sourced including the PriME simulator, OpenPiton, and PRGA.&lt;/p&gt;
&lt;p&gt;Link to any hardware / code / slides for the talk:
https://parallel.princeton.edu/openpiton/
https://github.com/PrincetonUniversity/openpiton&lt;/p&gt;</description>
<persons>
<person id="7003">David Wentzlaff</person>
</persons>
<links>
<link href="https://parallel.princeton.edu/openpiton/">OpenPiton Website</link>
<link href="https://github.com/PrincetonUniversity/openpiton">OpenPiton Github Code</link>
<link href="https://submission.fosdem.org/feedback/9931.php">Submit feedback</link>
</links>
<date>2020-02-01T17:30:00+01:00</date>
</event>
<event id="9861">
<start>17:55</start>
<duration>00:20</duration>
<room>H.2213</room>
<slug>openelectronicslab</slug>
<title>Designing Hardware, Journey from Novice to Not Bad</title>
<subtitle>Reflections from the OpenElectronicsLab</subtitle>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The three main contributors to the OpenElectronicsLab projects started out as relative novices. The wealth of online resources and some trial-and-error opens the doors to the world of hardware design.&lt;/p&gt;
&lt;p&gt;This will reflect on what lowered the barriers, insights gained, what needed to be done to handle things which turned out to be harder than expected, and to encourage hesitant novices to get started designing their own hardware.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6977">Eric Herman</person>
<person id="7406">Kendrick Shaw</person>
<person id="7413">Stephanie Medlock</person>
</persons>
<links>
<link href="http://openelectronicslab.github.io/eeg-mouse/">eeg-mouse</link>
<link href="http://openelectronicslab.github.io/OpenHardwareExG/">OpenHardwareExG</link>
<link href="https://github.com/OpenElectronicsLab/OpenHardwareHolterMonitor">OpenHardwareHolterMonitor</link>
<link href="https://submission.fosdem.org/feedback/9861.php">Submit feedback</link>
</links>
<date>2020-02-01T17:55:00+01:00</date>
</event>
<event id="9642">
<start>18:20</start>
<duration>00:30</duration>
<room>H.2213</room>
<slug>dealii</slug>
<title>Finite element modeling with the deal.II software library</title>
<subtitle/>
<track>Open Source Computer Aided Modeling and Design</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The finite element method has been the method of choice to simulate the deformation of solids as well as the flow of many kinds of fluids for nearly 70 years now. In the case of solids, it provides a general framework to describe how a body reacts to external stimuli by modeling how deformation affects the internally stored energy. While most software that implements the method used to be homegrown for a particular purpose, the 2000s have seen the emergence of large and professionally developed. open source software libraries that provide a broad range of functionality that makes the implementation of such codes straightforward. I will give an overview of one of these libraries, deal.II, and how and where it is used.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6802">Wolfgang Bangerth</person>
</persons>
<links>
<link href="http://dealii.org">The homepage of the deal.II library</link>
<link href="https://submission.fosdem.org/feedback/9642.php">Submit feedback</link>
</links>
<date>2020-02-01T18:20:00+01:00</date>
</event>
</room>
<room name="H.2214">
<event id="10607">
<start>10:30</start>
<duration>00:10</duration>
<room>H.2214</room>
<slug>mysql_mariadb_welcome</slug>
<title>Welcome to the MySQL, MariaDB &amp; Friends Devroom 2020</title>
<subtitle>Community Welcome</subtitle>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Welcome to the FOSDEM MySQL, MariaDB &amp;amp; Friends Devroom 2020&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="580">Frédéric Descamps</person>
<person id="5872">Ian Gilfillan</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10607.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="9917">
<start>10:40</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>mysql8_mariadb104</slug>
<title>MySQL 8 vs MariaDB 10.4</title>
<subtitle/>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;MySQL 8 and MariaDB 10.4 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.&lt;/p&gt;
&lt;p&gt;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 as well as discuss unique features and capabilities MySQL 8 and MariaDB 10.4 offers compared to each other.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4015">Peter Zaitsev</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9917.php">Submit feedback</link>
</links>
<date>2020-02-01T10:40:00+01:00</date>
</event>
<event id="9663">
<start>11:10</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>myrocks_www</slug>
<title>MyRocks in the Wild Wild West!</title>
<subtitle/>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In this talk, we'll walk through RocksDB technology and look into areas where MyRocks is a good fit by comparison to other engines such as InnoDB. We will go over internals, benchmarks, and tuning of MyRocks engine. We also aim to explore the benefits of using MyRocks within the MySQL ecosystem. Attendees will be able to conclude with the latest development of tools and integration within MySQL.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4191">Alkin Tezuysal</person>
</persons>
<links>
<link href="http://https://www.slideshare.net/atezuysal/when-is-my-rocks-good-highload-2019">Upgraded version of this talk</link>
<link href="https://submission.fosdem.org/feedback/9663.php">Submit feedback</link>
</links>
<date>2020-02-01T11:10:00+01:00</date>
</event>
<event id="9708">
<start>11:40</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>mysql_master_master</slug>
<title>How Safe is Asynchronous Master-Master Setup?</title>
<subtitle/>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;It is common knowledge that built-in asynchronous master-master (active-active) replication is not safe. I remember times when the official MySQL User Reference Manual stated that such an installation is not recommended for production use. Some experts repeat this claim even now.&lt;/p&gt;
&lt;p&gt;While this statement is generally true, I worked with thousands of shops that successfully avoided asynchronous replication limitations in active-active setups.&lt;/p&gt;
&lt;p&gt;In this talk, I will show how they did it, demonstrate situations when asynchronous master-master replication is the best possible high availability option and beats such solutions as Galera or InnoDB Clusters. I will also cover common mistakes, leading to disasters.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="2247">Sveta Smirnova</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9708.php">Submit feedback</link>
</links>
<date>2020-02-01T11:40:00+01:00</date>
</event>
<event id="9517">
<start>12:10</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>sync_binlog</slug>
<title>The consequences of sync_binlog != 1.</title>
<subtitle/>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Have you ever needed to get some additional write throughput from MySQL ? If yes, you probably found that setting sync_binlog to 0 (and trx_commit to 2) gives you an extra performance boost. As all such easy optimisation, it comes at a cost. This talk explains how this tuning works, presents its consequences and makes recommendations to avoid them. This will bring us to the details of how MySQL commits transactions and how those are replicated to slaves. Come to this talk to learn how to get the benefit of this tuning the right way and to learn some replication internals.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3380">Jean-François Gagné</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9517.php">Submit feedback</link>
</links>
<date>2020-02-01T12:10:00+01:00</date>
</event>
<event id="9684">
<start>12:40</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>msyql_ecryption</slug>
<title>Overview of encryption features</title>
<subtitle/>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;MariaDB/MySQL/Percona Server provide some features in this space, but currently there isn't one product that covers all the needs (at least not available as FOSS).
This talk will provide an overview of Data-at-Rest-Encryption features in MySQL, MariaDB and Percona Server for MySQL, their availability across versions, and status (experimental/GA).&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6819">Hrvoje Matijakovic</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9684.php">Submit feedback</link>
</links>
<date>2020-02-01T12:40:00+01:00</date>
</event>
<event id="9890">
<start>13:10</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>proxysql2</slug>
<title>Whats new in ProxySQL 2.0?</title>
<subtitle>Exploring the latest features in ProxySQL 2.0</subtitle>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;ProxySQL, the high performance, high availability, protocol-aware proxy for MySQL is now GA in version 2.0. This version introduces several new features, like causal reads using GTID, better support for AWS Aurora, native support for Galera Cluster, LDAP authentication and SSL for client connections.&lt;/p&gt;
&lt;p&gt;This session provides an overview of the most important new features.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Slide agenda:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Supported OSes &amp;amp; Packaging&lt;/li&gt;
&lt;li&gt;Query Cache Tunables&lt;/li&gt;
&lt;li&gt;GTID Causal Reads&lt;/li&gt;
&lt;li&gt;Native Galera Support&lt;/li&gt;
&lt;li&gt;Amazon Aurora Features&lt;/li&gt;
&lt;li&gt;LDAP Integration&lt;/li&gt;
&lt;li&gt;SSL, Audit Log &amp;amp; Security&lt;/li&gt;
&lt;li&gt;JSON Support&lt;/li&gt;
&lt;li&gt;Performance Enhancements&lt;/li&gt;
&lt;li&gt;MySQL 8&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="6986">Nick Vyzas</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9890.php">Submit feedback</link>
</links>
<date>2020-02-01T13:10:00+01:00</date>
</event>
<event id="9190">
<start>13:40</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>selinux_mysql</slug>
<title>SELinux fun with MySQL and friends</title>
<subtitle/>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;SELinux (Security Enhanced Linux) provides enhanced security mechanism for more advanced access control and auditing. It allows your application software and your system users to only access the resources it's been preconfigured to allow. Of course when you want to move your data- or log files to a non-standard location these policies will stop MySQL from starting.&lt;/p&gt;
&lt;p&gt;The easy way out is obviously to set SELinux to disabled or permissive. But someone once said: &quot;Every time you disable SELinux a kitten dies&quot;. We'll show you a few ways how you can find out if it actually is SELinux that is blocking you and how to update the policies to properly keep you system secured.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4684">Matthias C</person>
<person id="5860">Ivan Groenewold</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9190.php">Submit feedback</link>
</links>
<date>2020-02-01T13:40:00+01:00</date>
</event>
<event id="9864">
<start>14:10</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>mysql_k8s</slug>
<title>Running MySQL in Kubernetes in real life</title>
<subtitle/>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Running databases in Kubernetes has come a long way.&lt;/p&gt;
&lt;p&gt;Focusing on MySQL, we will explore the challenges and issues of running production databases in Kubernetes. We'll look at the opportunities and benefits of running in Kubernetes too.
While rolling out a database is easy enough, things can get interesting when production tasks are undertaken.
How do you achieve scaling – whether that's scaling up or down? How do you know that your latest backup will restore safely?
We will also take a look at an open source solution for monitoring your database deployments, adding support for Kubernetes as a robust production environment.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Focusing on MySQL, we will explore the challenges and issues of running production databases in Kubernetes. We'll look at the opportunities and benefits of running in Kubernetes too.
While rolling out a database is easy enough, things can get interesting when production tasks are undertaken.
How do you achieve scaling – whether that's scaling up or down? How do you know that your latest backup will restore safely?
We will also take a look at an open source solution for monitoring your database deployments, adding support for Kubernetes as a robust production environment.&lt;/p&gt;
&lt;p&gt;Outline:
- Introduction
- Installing MySQL in Kubernetes
- Scaling up, scaling down
- Backup, restore, verification
- An open source monitoring solution
- What could possibly go wrong?&lt;/p&gt;
&lt;p&gt;Takeaways:
This presentation should encourage the audience to embrace the possibilities of running production databases on Kubernetes, and will help attendees understand the &quot;do's and dont's&quot; of such a deployment.&lt;/p&gt;</description>
<persons>
<person id="6784">Sami Ahlroos</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9864.php">Submit feedback</link>
</links>
<date>2020-02-01T14:10:00+01:00</date>
</event>
<event id="9834">
<start>14:40</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>alter_mariadb</slug>
<title>ALTER TABLE improvements in MariaDB Server</title>
<subtitle>Optimized or instantaneous schema changes, including ADD/DROP COLUMN</subtitle>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;ALTER TABLE in MySQL used to copy the table contents row by row. We can do much better; in the best case, allow instantaneous schema changes, even for nontrivial changes, such as ADD COLUMN…AFTER and DROP COLUMN. This talk describes how ALTER TABLE has been improved over the years for the InnoDB storage engine in MySQL 5.1, 5.5, 5.6, 5.7, and MariaDB Server 10.2, 10.3, 10.4, 10.5, mostly by the presenter.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The talk enumerates different classes of ALTER TABLE operations: (1) ones not involving other than metadata, (2) operations that can be performed instantly by introducing a backward-compatible data file format change and 'faking' the operation (ADD or DROP COLUMN), (3) operations that can avoid rebuilding a table, and (4) operations that must rebuild the table, and variants of (3) and (4) that allow concurrent modifications to the table. We also show how ALTER TABLE can be executed concurrently on multiple nodes in statement-based replication. Finally, we show the theoretical limits of what kind of ALTER TABLE operations can be supported without rebuilding the table, by introducing an optional validation step and on-demand conversion of records in previous schema versions of the table.&lt;/p&gt;</description>
<persons>
<person id="6968">Marko Mäkelä</person>
</persons>
<links>
<link href="https://mariadb.com/resources/blog/alter-table-improvements-in-mariadb-server-10-3/">ALTER TABLE Improvements in MariaDB Server 10.3</link>
<link href="https://mariadb.com/resources/blog/alter-table-improvements-in-mariadb-server-10-4/">ALTER TABLE Improvements in MariaDB Server 10.4</link>
<link href="https://submission.fosdem.org/feedback/9834.php">Submit feedback</link>
</links>
<date>2020-02-01T14:40:00+01:00</date>
</event>
<event id="9588">
<start>15:10</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>mariadb_version_tables</slug>
<title>Rewinding time with System Versioned Tables</title>
<subtitle/>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Imagine, you're given a time machine. A fairly limited one, it cannot transport you anywhere. Still, it can show you the past, what your tables looked like at any given point in time. This is exactly what the SQL:2011 standard and MariaDB 10.3+ are giving you. System versioned tables allow you to rewind time and see their content as it was in the past — all using normal SELECT statements. This talk will show how to create system versioned tables, how to use them and how not to kill the performance when doing that. It will present various new applications and use cases that became possible now. Having a time machine, what will you use it for?&lt;/p&gt;</abstract>
<description>&lt;p&gt;Imagine, you're given a time machine. A fairly limited one, it cannot transport you anywhere. Still, it can show you the past, what your tables looked like at any given point in time. This is exactly what the SQL:2011 standard and MariaDB 10.3+ are giving you. System versioned tables allow you to rewind time and see their content as it was in the past — all using normal SELECT statements. This talk will show how to create system versioned tables, how to use them and how not to kill the performance when doing that. It will present numerous different applications and use cases that became possible now. Having a time machine, what will you use it for?&lt;/p&gt;</description>
<persons>
<person id="1684">Sergei Golubchik</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9588.php">Submit feedback</link>
</links>
<date>2020-02-01T15:10:00+01:00</date>
</event>
<event id="9805">
<start>15:40</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>mariadb_order_by_limit</slug>
<title>Knocking down the barriers of ORDER BY LIMIT queries with MariaDB 10.5</title>
<subtitle/>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The talk will start with a recap of how MariaDB(or MySQL) handles the
ORDER BY LIMIT optimization and examples demonstrating why the current
optimizer is not good enough.&lt;/p&gt;
&lt;p&gt;Further, the talk will describe how the optimizer in MariaDB 10.5 mostly
solves the issue, the remaining unresolved issues and how DBAs can tackle them.&lt;/p&gt;</abstract>
<description>&lt;p&gt;FULL DESCRIPTION:&lt;/p&gt;
&lt;p&gt;For the first part of the talk, I will discuss the possible strategies by
which ORDER BY LIMIT optimization is handled in MariaDB (or MySQL)&lt;/p&gt;
&lt;p&gt;The strategies are:
1) Using an ordered index (ref, range or index scan)
2) Using filesort on the first non-const table
3) Using filesort on the temporary table, that stores the output of the join&lt;/p&gt;
&lt;p&gt;Then I will discuss how the current MariaDB/MySQL optimizer makes the choice between the strategies and show
the situations where it will never get a good query plan&lt;/p&gt;
&lt;p&gt;For the second part of the talk, I will describe how a new cost-based
optimization in MariaDB 10.5 solves the above issue.
The talk will contain details about how the costs were taken into account
during the optimization phase. Further, with the help of examples
I would demonstrate how the execution differs for this new optimization
and how this leads to improved performance for ORDER BY LIMIT queries.&lt;/p&gt;</description>
<persons>
<person id="6865">Varun Gupta</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9805.php">Submit feedback</link>
</links>
<date>2020-02-01T15:40:00+01:00</date>
</event>
<event id="9912">
<start>16:10</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>mysql_cpu_flames</slug>
<title>CPU performance analysis for MySQL using Hot/Cold Flame Graph</title>
<subtitle/>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Come to see some real-life examples of how you can do CPU profiling with perf and eBPF/BCC, to create FlameGraphs and ColdGraphs visualizations of the on-CPU/off-CPU time spent by the database. Based on these visualizations and reading the database source code (this is why we love Open Source!) you can quickly gain insight about what's burning CPU (FlameGraphs) and what's causing CPU to wait (ColdGraphs), and with this knowledge you will be several steps closer to answering &quot;what's consuming all that CPU time&quot;.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6401">Vinicius Grippa</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9912.php">Submit feedback</link>
</links>
<date>2020-02-01T16:10:00+01:00</date>
</event>
<event id="9690">
<start>16:40</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>mysql8_hash_join</slug>
<title>Hash Join in MySQL 8</title>
<subtitle/>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;JOIN is one of the most common operation in a database system, and for a long time, the only algorithm for executing a join in MySQL has been variations of the nested loop algorithm. But starting from MySQL 8.0.18, it is now possible to execute joins using hash join. This presentation will walk you through how we were able to implement hash join using our new iterator executor, how hash join in MySQL works, when it is used, and everything else that is worth knowing about hash join in MySQL.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5870">Erik Frøseth</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9690.php">Submit feedback</link>
</links>
<date>2020-02-01T16:40:00+01:00</date>
</event>
<event id="9876">
<start>17:10</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>mysql_hash_joins</slug>
<title>Comparing Hash Join solution, the good, the bad and the worse.</title>
<subtitle/>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;MySQL 8.0.18 comes (finally) with a long waited and desired hash-join implementation.
That was already present in other pseudo MySQL distributions like MariaDb.
But, what is has-join, how it works, what problems it solves, when and how to use it.
Last but not least are all the different implementations doing the same things, or are they acting and performing differently.
We are going to perform a short journey in hash-join implementations and answer all these questions.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4696">Marco Tusa (the Grinch)</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9876.php">Submit feedback</link>
</links>
<date>2020-02-01T17:10:00+01:00</date>
</event>
<event id="9843">
<start>17:40</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>mysql8_secure_replication</slug>
<title>MySQL 8.0: Secure your MySQL Replication Deployment</title>
<subtitle/>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Data protection is an extensive and hot topic. Making sure that
whoever accesses your data has identity well established and is
authorized can be a complex and hard task. Moreover, nowadays
data tends to move around quickly between different instances of the
same service, different services and different data consumers. This
often implies that data traverses different administrative domains. It
is key that MySQL handles, stores and replicates data complying
with the security requirements that business and regulations demand.&lt;/p&gt;
&lt;p&gt;This session showcases the new developments in MySQL 8.0 that tighten
related replication security setups, and reduce the attack surface of
the different replication topologies. We will talk about secure
inter-server communication, encryption of replication data at rest
and the new features that make the replication applier run under a
specific security context. Come and learn about security related
replication features in MySQL 8.0.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6971">Pedro Figueiredo</person>
</persons>
<links>
<link href="https://mysqlhighavailability.com/binary-log-encryption-encryption-of-temporary-capture-files/">https://mysqlhighavailability.com/binary-log-encryption-encryption-of-temporary-capture-files/</link>
<link href="https://mysqlhighavailability.com/binary-log-encryption-at-rest/">https://mysqlhighavailability.com/binary-log-encryption-at-rest/</link>
<link href="https://mysqlhighavailability.com/support-for-tls-1-3-in-group-replication/">https://mysqlhighavailability.com/support-for-tls-1-3-in-group-replication/</link>
<link href="https://mysqlhighavailability.com/replication-with-restricted-privileges/">https://mysqlhighavailability.com/replication-with-restricted-privileges/</link>
<link href="https://submission.fosdem.org/feedback/9843.php">Submit feedback</link>
</links>
<date>2020-02-01T17:40:00+01:00</date>
</event>
<event id="9232">
<start>18:10</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>mysql_github_schema</slug>
<title>Automating schema migration flow with GitHub Actions, skeema &amp; gh-ost</title>
<subtitle>And end-to-end schema migration automation, from design to production, at GitHub</subtitle>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Schema migration is more than running an ALTER TABLE. It is about designing, reviewing, approving, queuing, scheduling, executing, auditing, controlling and versioning the changes.&lt;/p&gt;
&lt;p&gt;At GitHub we run multiple migrations per day, and much of this flow used to be manual, taking a significant toll from the databases team. In this session we illustrate how we automated away migration using free and open source solutions, and based on trusted development flow.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Schema migration is more than running an ALTER TABLE. It is about designing, reviewing, approving, queuing, scheduling, executing, auditing, controlling and versioning the changes.&lt;/p&gt;
&lt;p&gt;At GitHub we run multiple migrations per day, and much of this flow used to be manual, taking a significant toll from the databases team. In this session we illustrate how we automated away migration using free and open source solutions, and based on trusted development flow.&lt;/p&gt;
&lt;p&gt;We highlight the use of the skeema tool, with GitHub Actions, git flow and gh-ost.&lt;/p&gt;</description>
<persons>
<person id="2443">Shlomi Noach</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9232.php">Submit feedback</link>
</links>
<date>2020-02-01T18:10:00+01:00</date>
</event>
<event id="9233">
<start>18:40</start>
<duration>00:20</duration>
<room>H.2214</room>
<slug>20_min_mysql_plugin</slug>
<title>20 mins to write a MySQL Shell Plugin</title>
<subtitle>Extend the MySQL Shell with a plugin created from scratch</subtitle>
<track>MySQL, MariaDB and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;MySQL Shell is a new client for MySQL. It comes with multiple functionalities like the adminAPI commands to setup and operate a MySQL InnoDB Cluster but also check for upgrades, import JSON, parallel import and more... It also allows you to communicate with the MySQL Server in SQL, Python or Javascript !
During this session we will write a plugin from scratch to extend the Shell using the MySQL Shell Plugin Framework. The code will be written live in Python.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="580">Frédéric Descamps</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9233.php">Submit feedback</link>
</links>
<date>2020-02-01T18:40:00+01:00</date>
</event>
</room>
<room name="H.3242">
<event id="10783">
<start>11:00</start>
<duration>01:00</duration>
<room>H.3242</room>
<slug>bof_apache_camel</slug>
<title>Apache Camel BoF</title>
<subtitle>Meeting of the Apache Camel community</subtitle>
<track>BOFs (Track B - in H.3242)</track>
<type>bof</type>
<language/>
<abstract>&lt;p&gt;Apache Camel is a free software integration framework from the Apache Software Foundation. This meetup is for anyone wishing to meet and discuss Apache Camel development, share experiences and meet in meat space other folk in the Apache Camel community.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Apache Camel has been around and its used quite widely for in all sorts of software integration projects. Camel version 3 was recently released and the community has kicked of several sub-projects: Camel K - a serverless, cloud native integration on top of Kubernetes, Camel Quarkus - low memory, fast startup support utilizing Quarkus, and Camel Kafka Connector - for running Camel inside of Kafka. Let's meet and discuss these initiatives or just talk and exchange ideas around Camel. Anyone wishing to share can present on any topic relating to Apache Camel is welcome to do so, though please be mindful of the time - we have one hour in this session and would like that everyone would have the chance to participate.&lt;/p&gt;</description>
<persons>
<person id="5614">Zoran Regvart</person>
</persons>
<links>
<link href="https://camel.apache.org">Apache Camel website</link>
<link href="https://submission.fosdem.org/feedback/10783.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
</room>
<room name="H.3244"/>
<room name="J.1.106">
<event id="10325">
<start>11:00</start>
<duration>01:00</duration>
<room>J.1.106</room>
<slug>bof_tinygo</slug>
<title>TinyGo</title>
<subtitle>TinyGo on microcontrollers and WebAssembly</subtitle>
<track>BOFs (Track A - in J.1.106)</track>
<type>bof</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="4480">Ron Evans</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10325.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
<event id="9010">
<start>12:00</start>
<duration>01:00</duration>
<room>J.1.106</room>
<slug>bof_sourcehut</slug>
<title>Sourcehut &amp; aerc meetup</title>
<subtitle>Email enthusiasts meet up to enthuse about email</subtitle>
<track>BOFs (Track A - in J.1.106)</track>
<type>bof</type>
<language/>
<abstract>&lt;p&gt;Members of the closely linked &lt;a href=&quot;https://sourcehut.org&quot;&gt;Sourcehut&lt;/a&gt; and &lt;a href=&quot;https://aerc-mail.org&quot;&gt;aerc&lt;/a&gt; communities meet up to put faces to names and discuss the present and future of both projects, and to collect stickers.&lt;/p&gt;</abstract>
<description>&lt;p&gt;&lt;a href=&quot;https://sourcehut.org&quot;&gt;Sourcehut&lt;/a&gt; is a free/libre project hosting platform with sophisticated git hosting, mailing lists, continuous integration, and more. We'll be discussing the remaining tasks for the alpha, planning and seeking feedback for the beta, and showing off cool stuff added in the past year.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://aerc-mail.org&quot;&gt;aerc&lt;/a&gt; is a FOSS email client for your terminal designed especially for software developers which integrates nicely into the mailing list workflow endorsed by Sourcehut. Early in its development, you'll have a chance to discuss what you'd like to see in your dream email client and speculate wildly on the lofty goals it aims to achieve.&lt;/p&gt;</description>
<persons>
<person id="5905">Drew DeVault</person>
</persons>
<links>
<link href="https://sourcehut.org">Sourcehut</link>
<link href="https://aerc-mail.org">aerc</link>
<link href="https://submission.fosdem.org/feedback/9010.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="10305">
<start>15:00</start>
<duration>01:00</duration>
<room>J.1.106</room>
<slug>bof_open_source_way</slug>
<title>A best practices guide for FLOSS community managers</title>
<subtitle>The Open Source Way v2.0</subtitle>
<track>BOFs (Track A - in J.1.106)</track>
<type>bof</type>
<language/>
<abstract>&lt;p&gt;Whether you are a community manager or any other contributor to a free/libre open source software (FLOSS) project, you'll find yourself learning and thinking of good methods and practices for having a happy, successful, and productive project. Community managers and members share these practices with each other all the time -- in talks, in person, as blog posts, and sometimes as a stand-alone book. But has anyone ever really collaborated on a guide that is for practitioners and collaboratively written BY practitioners?&lt;/p&gt;
&lt;p&gt;Actually, yes: 10 years ago The Open Source Way 1.0 was written and released. In the passage of that decade, the best practices around caring for FLOSS projects have evolved, as has the work of the people in those caregiver roles. We have embarked on an update to this guide; you are invited to learn about, participate in, and contribute to this living document.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3632">Karsten Wade</person>
</persons>
<links>
<link href="http://theopensourceway.org">Current 1.0 version</link>
<link href="http://github.com/theopensourceway">Git repo and workflow for 2.0 release work underway</link>
<link href="http://lists.theopensourceway.org">Project discussion list</link>
<link href="https://submission.fosdem.org/feedback/10305.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="10781">
<start>16:00</start>
<duration>01:30</duration>
<room>J.1.106</room>
<slug>bof_replicant</slug>
<title>Replicant Meetup</title>
<subtitle>Meeting for the Replicant community</subtitle>
<track>BOFs (Track A - in J.1.106)</track>
<type>bof</type>
<language/>
<abstract>&lt;p&gt;Replicant is a fully free Android distribution running on several devices, a free software mobile operating system putting the emphasis on freedom and privacy/security.&lt;/p&gt;
&lt;p&gt;This meeting is for everyone interested in the Replicant project (users, developers, devices vendors, etc.). Among other things, we will present the ongoing efforts on Replicant 9 and discuss how we should move forward. Everyone's point of view is welcomed.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Here's a non-exhaustive list of the topics that will be up for debate:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Replicant 9 status on the i9300/i9305: bootloader, modem, LCD, audio, graphics.&lt;/li&gt;
&lt;li&gt;Future targets: PinePhone, Librem5.&lt;/li&gt;
&lt;li&gt;WebView dependency on non-free Chromium.&lt;/li&gt;
&lt;li&gt;Android build system.&lt;/li&gt;
&lt;li&gt;Replicant infrastructure: servers, test benches, build machines.&lt;/li&gt;
&lt;li&gt;Long term project sustainability.&lt;/li&gt;
&lt;li&gt;Supported mainline kernel phones, what kernel versions brought what support and what is upcomming in the next kernel versions.&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="7048">David Ludovino</person>
</persons>
<links>
<link href="https://replicant.us/">Project website</link>
<link href="https://submission.fosdem.org/feedback/10781.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="10664">
<start>17:30</start>
<duration>01:30</duration>
<room>J.1.106</room>
<slug>bof_public_sector</slug>
<title>Creating Sustainable Public Sector Open Source Communities</title>
<subtitle/>
<track>BOFs (Track A - in J.1.106)</track>
<type>bof</type>
<language/>
<abstract>&lt;p&gt;The Open Source Observatory (OSOR) of the European Commission is an online collection that provides its community with an information observatory, community building activities, as well as assistance and support services. On behalf of OSOR, we propose to make a presentation on the currently ongoing study towards a guidelines document for creating sustainable open source communities in the public sector.
In this context, OSOR is producing guidelines for creating sustainable open source communities within the public sector. The purpose of the guidelines is to act as a practical tool that can be used by public sector officials interested in establishing open source communities or by members of such communities. The production of the guidelines is a multi-step process, involving desk research, primary data collection, development of four case studies and conduction of interviews with key stakeholders.
After presenting the objectives and approach to produce the guidelines, the OSOR representatives will present the preliminary findings related to the guidelines, including the key success factors associated with healthy communities. The audience will be also invited to further brainstorm in groups the key success factors of sustainable OSS communities as well as to identify the key components that our guidelines should contain.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The production of the guidelines is a multi-step process, involving both desk research and primary data collection. More specifically, our team has conducted an in-depth literature review, followed by a questionnaire targeting OSS communities in the public sector, which will be running between January and February 2020. Following the analysis of data collected from the questionnaire, our team will develop four case studies illustrating successful and failed OSS initiatives in the public sector. Interviews with key case study stakeholders are to be conducted within each case study.
The key objective of our workshop at FOSDEM is not only to present our preliminary findings to the audience but to also obtain their views on our findings and future guidelines. We want to ensure that OSOR puts forward truly community driven guidelines.
During the workshop, we will recount the findings so far which are the data of the literature review and survey. More specifically, we will present the key success factors and their components associated with sustainable OSS communities as well as some interesting failed and successful public sector OSS initiatives. The audience will be then invited to further brainstorm in groups the key success factors of sustainable OSS communities as well as to identify the key components that our guidelines should contain.
We will also invite the audience to contribute to our ongoing survey and invite them to get in touch with the OSOR community for further ideas on our guidelines and case studies.&lt;/p&gt;
&lt;p&gt;The target group of OSOR is wide-ranging within the open source community. It includes policy makers, IT managers, IT developers, researchers and students, and OSS advocates and enthusiasts in general. OSOR invites members of the audience who are interested in the development of OSS within public administrations, community managers and members, developers and organisations who would like to learn more about the project of measuring the health and sustainability of an open source project. The audience is also invited to follow the work of OSOR and the European Commission on OSS more closely. OSOR promotes collaboration, sharing and digital development through various services provided to its community.&lt;/p&gt;</description>
<persons>
<person id="7349">OSOR team</person>
</persons>
<links>
<link href="https://joinup.ec.europa.eu/collection/open-source-observatory-osor">More information about OSOR</link>
<link href="https://joinup.ec.europa.eu/collection/open-source-observatory-osor/guidelines-creating-sustainable-open-source-communities ">More information about the guidelines. </link>
<link href="https://submission.fosdem.org/feedback/10664.php">Submit feedback</link>
</links>
<date>2020-02-01T17:30:00+01:00</date>
</event>
</room>
<room name="AW1.120">
<event id="9184">
<start>10:30</start>
<duration>00:25</duration>
<room>AW1.120</room>
<slug>cms_linked_data_knowledge_base</slug>
<title>Building a distributed knowledge base with a Linked Data powered CMS</title>
<subtitle>Implementing the vision of the web of data</subtitle>
<track>Collaborative Information and Content Management Applications</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;After a quick overview of the semantic web landscape, we'll look into a practical application of Linked Data in the public sector: the Joinup platform of the European Commission.
Joinup makes use of Linked Data to harvest information from various sources into a knowledge base. We'll have a look at the various components that we needed to build (all Open Source) to make the CMS system (Drupal) 'Linked Data enabled'.
We'll look at the technical problems that needed to be solved and the solutions we came up with, as well as a the opportunities that this technology can bring to the CMS world.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6550">Sander Van Dooren</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9184.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10626">
<start>11:00</start>
<duration>00:25</duration>
<room>AW1.120</room>
<slug>from_0_to_intranet_xwiki</slug>
<title>From 0 to Intranet in 20 minutes with XWiki</title>
<subtitle/>
<track>Collaborative Information and Content Management Applications</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Sharing knowledge in a team of people working together (company, association, study group or any other kind of project) is key for its long-term success. Even if this is not properly identified from the beginning as a main concern, setting up tools and processes that allow knowledge to be accumulated and organized correctly ends up being on the TODO list at some point, and may come with the wish to have done it earlier. Thus, the best solution is one that is quick enough to setup from the very beginning and versatile enough to be able to incrementally develop into a proper solid fortress of knowledge.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In this presentation I will use the XWiki platform to incrementally build a collaborative intranet from scratch and will try to address some frequent needs of knowledge sharing in a team, using already-made add-ons or new tools (list not exhaustive):
* Blog, for unidirectional communication,
* Meeting notes, for spoken knowledge not to be lost,
* File Manager for just dropping files to share,
* Task manager for lightweight ticketing,
* Holiday requests and Recruitment applications for team management,
* Unstructured free content sharing, using standard wiki pages and page templates,
* Structured content tailored to fit your exact specific needs,
* Multi-wiki separation for teams isolation,
* Powerful search in all this,
* Authentication add-ons to plug your own users management,
* Easy look &amp;amp; feel setup, to brand it as your own.&lt;/p&gt;</description>
<persons>
<person id="2114">Anca Luca</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10626.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
<event id="9809">
<start>11:30</start>
<duration>00:25</duration>
<room>AW1.120</room>
<slug>onlyoffice_securly_collaborate</slug>
<title>ONLYOFFICE: How to securely collaborate on documents within content management applications</title>
<subtitle/>
<track>Collaborative Information and Content Management Applications</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;ONLYOFFICE is an open-source HTML5-based office suite for editing and collaborating on text documents, spreadsheets, and presentations online. Here, maximizing format compatibility, establishing browser-agnostic content display and optimizing real-time data transfer in co-authoring are the core principles in building applicable editing software.&lt;/p&gt;
&lt;p&gt;End user-side demand indicates that deeper integration in productivity solutions and content management applications is one of the main directions for ONLYOFFICE. We would like to share our experience in building connectors that allow users to edit and co-author their documents securely right within a platform they use.&lt;/p&gt;
&lt;p&gt;Presentation milestones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Review of the technical basis of ONLYOFFICE editors (HTML5 Canvas, JavaScript, etc.);&lt;/li&gt;
&lt;li&gt;Open API that allows creating third-party connectors;&lt;/li&gt;
&lt;li&gt;Integration with content management platforms such as XWiki, Nextcloud, ownCloud (including connectors/integration apps development);&lt;/li&gt;
&lt;li&gt;Security measures (JSON Web Token, limited cache lifetime, etc.)&lt;/li&gt;
&lt;li&gt;Connecting desktop and mobile environments to content management platforms;&lt;/li&gt;
&lt;li&gt;ONLYOFFICE integration roadmap.&lt;/li&gt;
&lt;/ul&gt;
</abstract>
<description/>
<persons>
<person id="6887">Alex Mikheev</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9809.php">Submit feedback</link>
</links>
<date>2020-02-01T11:30:00+01:00</date>
</event>
<event id="10661">
<start>12:00</start>
<duration>00:25</duration>
<room>AW1.120</room>
<slug>dozen_more_things_nextcloud</slug>
<title>A dozen more things you didn't know Nextcloud could do</title>
<subtitle>And a little of what you DID know</subtitle>
<track>Collaborative Information and Content Management Applications</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;With Nextcloud you can sync, share and collaborate on data, but you don't need to put your photos, calendars or chat logs on an American server. Nope, Nextcloud is self-hosted and 100% open source! Thanks to hundreds of apps, Nextcloud can do a lot and in this talk, I will highlight some cool things.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Consider this a follow-up from my talk about 200 things Nextcloud can do last year! An update on what's new and some cool new stuff. What, what is &lt;code&gt;Nextcloud&lt;/code&gt;? Let's see. A private cloud is one way to put it, though that's a contradiction of course. It is a way to share your data, sync your files, communicate and collaborate with others - without giving your data to GAFAM! Keep it on your own server, or something close (like a local hosting provider or data center). Nextcloud is a PHP app that does all that, and more! Easy to use, secure (really) and fully open source of course.&lt;/p&gt;</description>
<persons>
<person id="79">Jos Poortvliet</person>
</persons>
<links>
<link href="http://nextcloud.com">Nc home page</link>
<link href="https://submission.fosdem.org/feedback/10661.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="10287">
<start>12:30</start>
<duration>00:25</duration>
<room>AW1.120</room>
<slug>bringing_collabora_online_webapp</slug>
<title>Bringing Collabora Online to your web app</title>
<subtitle>Its easy to add rich document collaboration to your web app</subtitle>
<track>Collaborative Information and Content Management Applications</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The Collabora Online code-base can bring the power of LibreOffice into
an iframe inside your web app. Come and hear how this works, how to integrate
secure, collaborative document editing with your software, and about all the
latest greatest work going on there.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Collabora Online uses a WOPI-like protocol, and it is rather simple to integrate.
Come hear about the total of three REST methods you need for a simple
integration, as well as the wealth of options to control how collaboration works.&lt;/p&gt;
&lt;p&gt;Hear about some of our integrations into Nextcloud, Kolab,
Mattermost, Moodle, ownCloud, and many more.&lt;/p&gt;
&lt;p&gt;See the internals of Collabora Online, and how you can get involved with
building, debugging, and developing it, and checkout some of the new features
for Mobile and PC browser that we've been working on to make life better
for our users.&lt;/p&gt;</description>
<persons>
<person id="425">Michael Meeks</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10287.php">Submit feedback</link>
</links>
<date>2020-02-01T12:30:00+01:00</date>
</event>
<event id="10597">
<start>13:00</start>
<duration>00:25</duration>
<room>AW1.120</room>
<slug>more_than_one_tool_tiki</slug>
<title>More than one tool for collaborating on writing the Tiki CMS</title>
<subtitle>This talk reviews the many collaboration tools used by the Tiki community for writing knowledge management and collaboration software</subtitle>
<track>Collaborative Information and Content Management Applications</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The &lt;em&gt;Tiki Wiki CMS Groupware&lt;/em&gt; software community obviously uses Tiki itself for collaboration and knowledge management.
Yet, many other software tools or infrastructures are used. I will review and explain how and why.&lt;/p&gt;</abstract>
<description>&lt;p&gt;&lt;em&gt;Tiki Wiki CMS Groupware&lt;/em&gt; was initially released in 2002 and is still very much alive with a vibrant community.
We obviously want to use Tiki itself for collaboration and knowledge management as much as possible, but the real situation is, we use a lot more tools.
We leverage the fact that Tiki is part of wikisuite by using the other wikisuite software, but these still don't cover everything we use.
The reasons vary from old habits to convenience or improved efficiency and they are different for each collaboration tool.
I will review them and explain why we use them and how useful they are to us. Also, I will mention our plans for the future.&lt;/p&gt;</description>
<persons>
<person id="1713">Jean-Marc Libs</person>
</persons>
<links>
<link href="https://tiki.org">Main Tiki project site</link>
<link href="https://wikisuite.org/Software">Wikisuite site</link>
<link href="https://submission.fosdem.org/feedback/10597.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="9752">
<start>13:30</start>
<duration>00:25</duration>
<room>AW1.120</room>
<slug>wikibase_ecosystem</slug>
<title>Wikibase Ecosystem</title>
<subtitle>taking Wikidata further</subtitle>
<track>Collaborative Information and Content Management Applications</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Wikidata, Wikimedia's knowledge base, has been very successful since its inception 7 years ago. Wikidata's general purpose data about the world is powering everything from Wikipedia to your digital personal assistant. Its linked, machine readable data is collected and maintained by a community of over 20000 people. But not all data should and can be in Wikidata. Instead we are taking the software powering Wikidata, Wikibase, to new places. We empower communities and institutions all around the world who want to collect structured, machine-readable data about a topic area of their choice to run their own Wikibase. These Wikibase instances are then connected to form a thriving ecosystem. In this talk we'll go over what Wikibase is, where it's coming from and what it is enabling right now.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="290">Lydia Pintscher</person>
</persons>
<links>
<link href="http://wikiba.se">Wikibase homepage</link>
<link href="https://submission.fosdem.org/feedback/9752.php">Submit feedback</link>
</links>
<date>2020-02-01T13:30:00+01:00</date>
</event>
<event id="10529">
<start>14:00</start>
<duration>00:25</duration>
<room>AW1.120</room>
<slug>decentralized_collab_apps</slug>
<title>Decentralized collaborative applications</title>
<subtitle>Peer-to-peer collaboration, search &amp; discovery</subtitle>
<track>Collaborative Information and Content Management Applications</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;A data-centric, offline-first approach to decentralized collaborative application development focusing on data ownership and privacy.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Exploring replicated mergeable data structure stores as building blocks of decentralized applications that enable asynchronous collaboration and offline search in combination with peer-to-peer gossip-based protocols that provide pub/sub, dissemination, and recommendation services both over the internet as well as on local and mobile proximity networks, thereby forming interest-based networks that facilitate discovery of personally relevant content and people.&lt;/p&gt;</description>
<persons>
<person id="7267">TG x</person>
</persons>
<links>
<link href="https://p2pcollab.net">https://p2pcollab.net</link>
<link href="https://submission.fosdem.org/feedback/10529.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="9409">
<start>15:00</start>
<duration>01:00</duration>
<room>AW1.120</room>
<slug>clc_the_unsupervised_free_cat_for_low_resource_languages</slug>
<title>The unsupervised free CAT for low resource languages</title>
<subtitle>Building a pipeline for the communities</subtitle>
<track>Coding for Language Communities</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;We present: 1) a full pipeline for unsupervised machine translation training (making use of monolingual corpora) for languages with low available resources; 2) a translation server making use of that unsupervised MT with an API compatible with the EU funded free Computer Aided Translation (CAT) tool MateCAT; 3) a Docker packaged version of MateCAT for ease of deployment.
This full translation pipeline enables a non technical user, speaking a non-FIGS language for which there is scarcity of parallel corpora, to start translating documents and software following translation industry standards.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Localization within community suffers from the fragmentation of technologies (too wide wedge between commercial Computer Aided Translation tools and free ones), available language resources (making difficult to train a Machine Translation) and lack of clear and robust pipelines to get started.
Low resource language communities suffer the most, since MT systems require training corpora of millions of words and industry has settled to expecting the massive corpora available to FIGS (French, Italian, German, Spanish) languages.
Moreover, the community suffers from a lack of adoption of established technologies and workflows, leading to reinventing the wheel and suboptimal efforts’ outcomes.
Today we would like to present a connector for the implementation of an unsupervised MT (made by Artetxe et al.), that claims a BLEU of 26 on limited language resources (which is enough as a support system) integrated with MateCAT, an industry level, free, web based tool funded by EU, in order to provide a more viable alternative to resorting to Google Translate and commercial LSPs.&lt;/p&gt;</description>
<persons>
<person id="5507">Alberto Massidda</person>
</persons>
<links>
<link href="https://github.com/artetxem/monoses">the MT system we'll use</link>
<link href="http://https://www.matecat.com/open-source/">the CAT tool we'll integrate to</link>
<link href="https://submission.fosdem.org/feedback/9409.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="9751">
<start>16:00</start>
<duration>00:30</duration>
<room>AW1.120</room>
<slug>clc_lexemes_in_wikidata</slug>
<title>Lexemes in Wikidata</title>
<subtitle>structured lexicographical data for everyone</subtitle>
<track>Coding for Language Communities</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Wikidata, Wikimedia's knowledge base, has been collecting general purpose data about the world for 7 years now. This data powers Wikipedia but also many applications outside Wikimedia, like your digital personal assistant. In recent years Wikidata's community has also started collecting lexicographical data in order to provide a large data set of machine-readable data about words in hundreds of languages. In this talk we will explore how Wikidata enables thousands of volunteers to describe their languages and make it available as a source of data for systems that do automated translation, text generation and more.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="290">Lydia Pintscher</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9751.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="9819">
<start>16:30</start>
<duration>00:30</duration>
<room>AW1.120</room>
<slug>clc_nuspell_version_3_of_the_new_spell_checker</slug>
<title>Nuspell: version 3 of the new spell checker</title>
<subtitle>FOSS spell checker implemented in C++17 with aid of Mozilla</subtitle>
<track>Coding for Language Communities</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Nuspell version 3 is a FOSS checker that is written in pure C++17. It extensively supports character encodings, locales, compounding, affixing and complex morphology. Existing spell checking in web browsers, office suits, IDEs and other text editors can use this as a drop-in replacement. Nuspell supports 90 languages, suggestions and personal dictionaries.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In this talk we will summarize the functionality of Nuspell version 3 and provide easy to follow examples on how to use it as a command-line tool or link to the C++ library. Newly made integrations in Firefox and Enchant will be discussed. The audience will be invited to further integrate Nuspell into their software, create new language bindings, port it to other operating systems and help grow its community. This new spell checker has outgrown from an MVP to a faster and more complete spell checker.&lt;/p&gt;</description>
<persons>
<person id="3055">Sander van Geloven</person>
</persons>
<links>
<link href="https://nuspell.github.io/">Nuspell homepage</link>
<link href="https://github.com/nuspell">Nuspell GitHub</link>
<link href="https://fosstodon.org/@nuspell">Nuspell Mastodon</link>
<link href="https://www.facebook.com/nuspell">Nuspell Facebook</link>
<link href="https://twitter.com/nuspell1">Nuspell Twitter</link>
<link href="https://submission.fosdem.org/feedback/9819.php">Submit feedback</link>
</links>
<date>2020-02-01T16:30:00+01:00</date>
</event>
<event id="10034">
<start>17:00</start>
<duration>01:00</duration>
<room>AW1.120</room>
<slug>clc_weblate_localize_your_project_the_developer_way</slug>
<title>Weblate! Localize your project the developer way: continously, flawlessly, community driven, and open-source</title>
<subtitle>Don’t bother your development process with manual work. Connect Weblate to your VCS and let the localization magic happen.</subtitle>
<track>Coding for Language Communities</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The presentation will show you how to localize your project easily with little effort, open-source way. Why we started Weblate? We said no to repetitive work, no to manual work with translation files anymore. Weblate is unique for its tight integration to VCS. Set it up once and start engaging the community of translators. More languages translated means more happy users of your software. Be like openSUSE, Fedora, and many more, and speak your users' language now thanks to Weblate!&lt;/p&gt;</abstract>
<description>&lt;p&gt;The presentation will show you how to localize your project easily with little effort, open-source way. Why we started Weblate? We said no to repetitive work, no to manual work with translation files anymore. Weblate is unique for its tight integration to VCS. Set it up once and start engaging the community of translators. More languages translated means more happy users of your software. Be like openSUSE, Fedora, and many more, and speak your users' language now thanks to Weblate! I will show you the main perks of Weblate and the setup of the project. If you have a project with open repo and you want to start translating it, take your git:// link, and we will set it up right on the spot. FOSDEM is a great time and place to found your translating community. And I am looking forward to answer all your questions!&lt;/p&gt;</description>
<persons>
<person id="7059">Václav Zbránek</person>
</persons>
<links>
<link href="https://github.com/WeblateOrg/">Weblate code</link>
<link href="https://weblate.org">Weblate project site</link>
<link href="https://submission.fosdem.org/feedback/10034.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="10348">
<start>18:00</start>
<duration>00:30</duration>
<room>AW1.120</room>
<slug>clc_open_edge_hardware_and_software_for_language_translation_and_understanding</slug>
<title>Open Edge Hardware and Software for Natural Language Translation and Understanding</title>
<subtitle/>
<track>Coding for Language Communities</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The last half decade has seen a major increase in the accuracy of deep learning methods for natural language translation and understanding. However many users still interact with these systems through proprietary models served on specialized cloud hardware. In this talk we discuss co-design efforts between researchers in natural language processing and computer architecture to develop an open-source software/hardware system for natural language translation and understanding across languages. With this system, users can access state-of-the-art models for translation, speech, and classification, and also run these models efficiently on edge device open-hardware designs.&lt;/p&gt;
&lt;p&gt;Our work combines two open-source development efforts, OpenNMT and FlexNLP. The OpenNMT project is a multi-year collaborative project for creating an ecosystem for neural machine translation and neural sequence learning. Started in December 2016 by the Harvard NLP group and SYSTRAN, the project has since been used in many research and industry applications. The project includes highly configurable model architectures and training procedures, efficient model serving capabilities for use in real world applications, and extensions to tasks such as text generation, tagging, summarization, image to text, and speech to text. FlexNLP is an open-source fully retargetable hardware accelerator targeted for natural language processing. Its hardware design is targeted to key NLP computational functions such as attention mechanisms and layer normalization that are often overlooked by today’s CNN or RNN hardware accelerators. FlexNLP’s rich instruction set architecture and microarchitecture enable a diverse set of computations and operations that are paramount for end-to-end inference on state-of-the-art attention-based NLP models. Together they provide an open pipeline for both model training and edge device deployment.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7212">Alexander Rush</person>
<person id="7407">Thierry Tambe</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10348.php">Submit feedback</link>
</links>
<date>2020-02-01T18:00:00+01:00</date>
</event>
<event id="10517">
<start>18:30</start>
<duration>00:30</duration>
<room>AW1.120</room>
<slug>clc_poio_predictive_text</slug>
<title>Poio Predictive Text</title>
<subtitle>Grassroots Technology for Language Diversity</subtitle>
<track>Coding for Language Communities</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The Poio project develops language technologies to support communication in lesser-used and under-resourced languages on and with electronic devices. Within the Poio project we develop text input services with text prediction and transliteration for mobile devices and desktop users to allow conversation between individuals and in online communities.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In this lightning talk I will present the current architecture of the Poio Corpus, our corpus collection and data management pipeline. I will show how to add a new language to the corpus and how you can use the pipeline to build language models for the predictive text technology. Our goal is to make collaboration with language communities as smoothless as possible, so that developers, data engineers and speakers of under-ressourced language can collaborate to build grassroots language technologies. Poio started as a language revitalization project at the Interdisciplinary Centre for Social and Language Documentation in Minde/Portugal, a non-profit organization dedicated to the documentation and preservation of linguistic heritage.&lt;/p&gt;</description>
<persons>
<person id="6478">Peter Bouda</person>
</persons>
<links>
<link href="https://www.poio.eu/">Poio Site</link>
<link href="https://github.com/Poio-NLP">Poio Code Repositories</link>
<link href="https://submission.fosdem.org/feedback/10517.php">Submit feedback</link>
</links>
<date>2020-02-01T18:30:00+01:00</date>
</event>
</room>
<room name="AW1.121">
<event id="9739">
<start>10:30</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>beam_farwest_demo</slug>
<title>Farwest Demo</title>
<subtitle>A website/API for a document oriented database in 20 minutes</subtitle>
<track>Erlang, Elixir and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Farwest is an Erlang framework for building RESTful Web applications and APIs.&lt;/p&gt;
&lt;p&gt;Well written Farwest applications apply the HATEOAS principles and as a result can be interacted with using a single client. This removes entirely the need to write a separate client per API and lets servers decide how the data is best consumed by everyone.&lt;/p&gt;
&lt;p&gt;This demo will show how to use Farwest to write a simple API to a document oriented database.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6920">Loïc Hoguin</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9739.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10179">
<start>11:00</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>beam_opentelemetry_xkcd_927_success_story</slug>
<title>OpenTelemetry: an XKCD 927 Success Story</title>
<subtitle/>
<track>Erlang, Elixir and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Learn how distributed tracing can revolutionize the way you troubleshoot errors and performance issues, in both monolithic and distributed micro-service architectures.&lt;/p&gt;
&lt;p&gt;OpenTelemetry is an industry standard for distributed tracing, merging the tech and communities of OpenCensus and OpenTracing.&lt;/p&gt;</abstract>
<description>&lt;ul&gt;
&lt;li&gt;Introduce the concepts of application tracing and the state of the ecosystem (Spans, Traces, Context Propagation, OpenTracing, OpenCensus, OpenTelemetry)&lt;/li&gt;
&lt;li&gt;Explain how this is different and complementary to Erlang’s built-in tracing tools&lt;/li&gt;
&lt;li&gt;Show what insights can be more easily gained from trace data as opposed to logs and metrics&lt;/li&gt;
&lt;li&gt;Give an overview of the tools and vendors available to start using this technology today&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="7126">Greg Mefford</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10179.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
<event id="9433">
<start>11:30</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>beam_debugging_tracing_rabbitmq_node</slug>
<title>Debugging and tracing a production RabbitMQ node</title>
<subtitle/>
<track>Erlang, Elixir and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In this talk, we will see how to debug/trace on a running RabbitMQ node.
Erlang remote access and remote debugging are builtin features in Erlang/Elixir.&lt;br/&gt;
With these features, it is possible to see what's happening inside a BEAM node (as RabbitMQ).
I will show also how to use &quot;dynamic loading&quot; to add a not native code in a running beam.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Erlang remote access and remote debugging are builtin features in Erlang/Elixir.&lt;br/&gt;
With these features, it is possible to see what's happening inside a BEAM node (as RabbitMQ).
There are a set of tools inside the beam like etop, eprof, dbg, fprof ... that work in the same Linux way.
In this talk, we will see how to use some of these features on a running RabbitMQ node.
I will show also how to use &quot;dynamic loading&quot; to add a not native code in a running beam.&lt;/p&gt;</description>
<persons>
<person id="6675">Gabriele Santomaggio</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9433.php">Submit feedback</link>
</links>
<date>2020-02-01T11:30:00+01:00</date>
</event>
<event id="10118">
<start>12:00</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>beam_keep_calm_use_nerves</slug>
<title>Keep Calm and Use Nerves</title>
<subtitle/>
<track>Erlang, Elixir and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Intended as a introduction to Nerves, the IoT platform for the BEAM, this talk is a journey through the land of library ecosystems, device drivers and pixel manipulators, in search for the holy grail: a stable and maintainable IoT device.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The Nerves project (https://nerves-project.org/) is a framework for building IoT devices with Elixir. In this talk I will explain how a Nerves project is structured and then move on to show and demonstrate one of the projects that I did with it, focussing on the development experience and the state of the Nerves ecosystem.&lt;/p&gt;</description>
<persons>
<person id="7098">Arjan Scherpenisse</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10118.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="9275">
<start>12:30</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>beam_lumen_elixir_browser</slug>
<title>Lumen</title>
<subtitle>Elixir in the browser</subtitle>
<track>Erlang, Elixir and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Lumen is an alternative compiler, interpreter and runtime to the BEAM designed for WebAssembly. Lumen allows Erlang and Elixir to run in the browser.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The Lumen project is a reimplementation of the BEAM in Rust. Using Rust, Lumen is able to leverage the cutting edge tools of the Rust WASM ecosystem. Compiling Elixir and Erlang from source to LLVM IR, the Lumen compiler is able to do whole program optimizations allowing for dead-code elimination of parts of the user application, OTP, and the runtime itself. Eliminating the dead code makes shipping OTP size-competitive with JavaScript frameworks, while retaining the benefits of thousands of concurrent processes and supervision trees.&lt;/p&gt;</description>
<persons>
<person id="6591">Luke Imhoff</person>
</persons>
<links>
<link href="https://github.com/lumen/lumen">Lumen GitHub repository</link>
<link href="https://submission.fosdem.org/feedback/9275.php">Submit feedback</link>
</links>
<date>2020-02-01T12:30:00+01:00</date>
</event>
<event id="10379">
<start>13:00</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>beam_coffeebeam_beam_vm_android</slug>
<title>CoffeeBeam</title>
<subtitle>A BEAM VM for Android</subtitle>
<track>Erlang, Elixir and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The speaker started to experiment with running BEAM modules on Android during summer of 2019. A prototype called CoffeeBeam has been created that is capable of loading and running BEAM files on Android. The solution also contains a virtual machine that provides a lightweight Erlang runtime system. Most of the implemented functionality is independent of the source language of the BEAM files, so the platform is easily extensible to support further languages on the BEAM. During the talk, the speaker is going to present a real-life example of running a BEAM file on Android, while presenting the concepts of the implementation and sharing the story of this journey.&lt;/p&gt;</abstract>
<description>&lt;h1&gt;CoffeeBeam: a BEAM VM for Android&lt;/h1&gt;
&lt;h2&gt;Goal&lt;/h2&gt;
&lt;p&gt;CoffeeBeam is a lightweight Erlang virtual machine that provides easy integration of BEAM files with Android applications. The current alternative solutions provide almost fully functional Erlang runtime systems in the form of Erlang shell on Android devices. However, CoffeeBeam follows a different approach, targeting easy integration of pre-compiled BEAM files into standalone Android applications. The characteristics of Android devices are in focus: they provide large amount of memory while CPU usage needs to be optimized to provide longer device lifetime. It is preferred to make the communication between Erlang and the Android application transparent to provide better user experience.&lt;/p&gt;
&lt;h2&gt;Use Case&lt;/h2&gt;
&lt;p&gt;Let's assume that you chose a language over the BEAM to implement an application logic efficiently. CoffeeBeam provides a framework to build on this logic and enable communication between the BEAM and the Android application with only minor changes to your original code. The demonstrated example is a &lt;code&gt;TicTacToe&lt;/code&gt; game where the game logic is implemented in Erlang that is extended with a graphical user interface implemented as an Android activity in Java.&lt;/p&gt;
&lt;h2&gt;Application Architecture&lt;/h2&gt;
&lt;h3&gt;Android Activity&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;TicTacToe&lt;/code&gt; game is implemented as an Android activity which is a common way of creating interactive applications. The activity contains the view for displaying textual information (game name and user instructions depending on the state of the game) and widgets (game board and new game button) for initiating user actions towards the game logic.&lt;/p&gt;
&lt;h3&gt;CoffeeBeam VM&lt;/h3&gt;
&lt;p&gt;The CoffeBeam VM provides the runtime system for the game logic. It is written in Java and included as a &lt;code&gt;.jar&lt;/code&gt; library inside the Android application source code. Starting and stopping the VM is connected to the &lt;code&gt;onCreate()&lt;/code&gt; and &lt;code&gt;onDestroy()&lt;/code&gt; callbacks of the activity.&lt;/p&gt;
&lt;h3&gt;Game logic&lt;/h3&gt;
&lt;p&gt;The flow of the game and the computer player's intelligence is implemented as an Erlang module (approximately 250 lines of code) and the compiled &lt;code&gt;.beam&lt;/code&gt; file is packaged into the Android application as resource.&lt;/p&gt;
&lt;h2&gt;Communication&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;BeamClient&lt;/code&gt; class provides interface for starting and stopping the VM, and manages communication between the VM and the Android application through function calls and callback functions. The default behavior can be redefined by extending the &lt;code&gt;BeamClient&lt;/code&gt; class. The forms of communication are described in detail below.&lt;/p&gt;
&lt;h3&gt;Function call in the VM&lt;/h3&gt;
&lt;p&gt;User actions in the Android application are translated into function calls in the VM using the &lt;code&gt;apply(String module, String function, ErlList args)&lt;/code&gt; method of the &lt;code&gt;BeamClient&lt;/code&gt; class. The function call implies creating a new process in the Erlang VM and applying &lt;code&gt;module:function&lt;/code&gt; with the list of &lt;code&gt;args&lt;/code&gt;. The &lt;code&gt;TicTacToe&lt;/code&gt; game logic provides the following functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start the game process: &lt;code&gt;start()&lt;/code&gt;. The game process is spawned that initializes the board for a new game.&lt;/li&gt;
&lt;li&gt;Start a new game: &lt;code&gt;new_game(GamePid)&lt;/code&gt;. The game board is cleared and a new game starts in the game process identified by &lt;code&gt;GamePid&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The player selects a field: &lt;code&gt;put(GamePid, X, Y)&lt;/code&gt;. The player marks the &lt;code&gt;(X,Y)&lt;/code&gt; field of the game board with an &lt;code&gt;X&lt;/code&gt; sign.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Handle function result in Android&lt;/h3&gt;
&lt;p&gt;When the Erlang function is executed in the VM, the result of the function initiates a callback in the &lt;code&gt;BeamClient&lt;/code&gt; as &lt;code&gt;handleResult(ErlTerm result)&lt;/code&gt;. In the &lt;code&gt;TicTacToe&lt;/code&gt; example, the process identifier of the game process is returned as the result of the &lt;code&gt;tictactoe:start()&lt;/code&gt; function. The returned value can be used to send Erlang messages to the game process during the game.&lt;/p&gt;
&lt;h3&gt;Handle function callback in Android&lt;/h3&gt;
&lt;p&gt;Each call in the form of &lt;code&gt;beamclient:function(arg)&lt;/code&gt; in the Erlang modules results in a &lt;code&gt;BeamClient&lt;/code&gt; callback &lt;code&gt;handleCall(String function, ErlTerm arg)&lt;/code&gt;. Each game event invokes a &lt;code&gt;beamclient:update({Event, Board})&lt;/code&gt; function call that is translated into &lt;code&gt;handleCall&lt;/code&gt; callback in the Android application.&lt;/p&gt;
&lt;h2&gt;Summary and contribution&lt;/h2&gt;
&lt;p&gt;CoffeeBeam executes BEAM files in a lightweight VM that can be packaged into the Android application. The above &lt;code&gt;TicTacToe&lt;/code&gt; example showed how to include the Erlang game logic in the Android application that provides the graphical user interface. The game flow runs in a separate process in the CoffeBeam VM, and the communication with Android is done through &lt;code&gt;BeamClient&lt;/code&gt; function calls and callbacks.&lt;/p&gt;
&lt;p&gt;The CoffeeBeam VM is open source and available for further development to extend the VM functionality or implement customizations for other languages running on the BEAM. The source code with documented interface is available at: https://github.com/vikger/coffeebeam.&lt;/p&gt;</description>
<persons>
<person id="7227">Viktor Gergely</person>
</persons>
<links>
<link href="https://github.com/vikger/coffeebeam">CoffeeBeam on GitHub</link>
<link href="https://submission.fosdem.org/feedback/10379.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="10362">
<start>13:30</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>beam_going_meta_elixir_macros</slug>
<title>Going Meta with Elixir's Macros</title>
<subtitle>Running at compile-time and compiling at runtime</subtitle>
<track>Erlang, Elixir and Friends</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Compilation and execution are as different as night and day. Or are they? By blurring the lines, Elixir (and the BEAM VM) enable some very powerful and useful meta-programming techniques.&lt;/p&gt;
&lt;p&gt;In this presentation, Marten will talk about running and generating code at compile-time, Elixir's hygienic macros, and how to compile and hot-reload altered or extra code, while your program is running!
Besides explaining these concepts, their usefulness will be motivated using various practical real-world examples.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7216">Wiebe-Marten Wijnja</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10362.php">Submit feedback</link>
</links>
<date>2020-02-01T13:30:00+01:00</date>
</event>
<event id="10120">
<start>14:00</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>beam_processes_grains_journey_orleans</slug>
<title>Processes &amp; Grains</title>
<subtitle>A Journey in Orleans</subtitle>
<track>Erlang, Elixir and Friends</track>
<type>devroom</type>
<language/>
<abstract/>
<description>&lt;p&gt;A popular way to manage long-running state in Erlang and Elixir programs is by using processes; this model is well-understood and well-supported, but remains firmly rooted within known orthodoxy. Within this session, I shall demonstrate application of the Orleans model to existing Erlang and Elixir applications, review existing work done by the community, and compare this way of programming against other models. For maximum enjoyment, the audience is advised to possess working knowledge of Erlang and Elixir. Some background knowledge in Web applications will be helpful as well. The session will be presented with live demo in Elixir.&lt;/p&gt;</description>
<persons>
<person id="7099">Evadne Wu</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10120.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="10513">
<start>15:00</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>graph_python_scalable_graph_processing</slug>
<title>Designing a performant and scalable graph processing python package</title>
<subtitle/>
<track>Graph Systems and Algorithms</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Python has proven to be a popular choice for data scientists in
the domain of graph analytics. The multitude of freely available
frameworks and python packages allow to develop applications
quickly through ease of expressibility and reuse of code.
With petabytes of data generated everyday and an ever evolving
landscape of hardware solutions, we observe a graph processing
framework should expose the following characteristics: ease of
use, scalability, interoperability across data formats, and
portability across hardware vendors.
While existing python packages have been helping to drive
application development, our assessment is that none of the
packages address all the aforementioned challenges.
We propose a community led, open source effort, to design and
build a graph processing python library to specifically address
these challenges.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7283">Vincent Cave</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10513.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="9380">
<start>15:25</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>graph_graffiti</slug>
<title>Graffiti</title>
<subtitle>A historical, distributed graph engine</subtitle>
<track>Graph Systems and Algorithms</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Graffiti is the graph engine of Skydive - an open source networking analysis tool. Graffiti was created from scratch to provide the features required by Skydive : distributed, replicated, store the whole history of the graph, allow subcribing to events on the graph using WebSocket and visualization.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Skydive (https://skydive.network) is an open source analysis tool. It collects information about an infrastructure topology - such as network interfaces, Linux bridges, network namespaces, containers, virtual machines, ... and store them into a graph database called Graffiti (https://github.com/skydive-project/skydive/tree/master/graffiti)&lt;/p&gt;
&lt;p&gt;The graph is :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- distributed : some agents only have a portion of the graph
- replicated : for high availability and load distribution
- historical : every change on the graph is archived, allowing retrieval of the graph at any point in time or getting all the revisions of a set of nodes and edges during a period of time
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A custom implementation of the Gremlin language is used to query the graph, with some additional steps to specify the time context of the query for instance.&lt;/p&gt;
&lt;p&gt;In addition to the core engine, a WebSocket based user interface - based on D3JS - is available to visualize and interact with the graph.&lt;/p&gt;
&lt;p&gt;This presentation will showcase a demo of Graffiti and try to advocate its use in your own project.&lt;/p&gt;</description>
<persons>
<person id="476">Sylvain Baubeau</person>
</persons>
<links>
<link href="https://skydive.network">Project website</link>
<link href="https://github.com/skydive-project/skydive">Project source code</link>
<link href="https://submission.fosdem.org/feedback/9380.php">Submit feedback</link>
</links>
<date>2020-02-01T15:25:00+01:00</date>
</event>
<event id="9826">
<start>15:50</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>graph_neo4j_algos</slug>
<title>The Neo4j Graph Algorithms Library: An Overview</title>
<subtitle/>
<track>Graph Systems and Algorithms</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Graph algorithms play an increasingly important role in real-world applications. The Neo4j Graph Algorithms library contains a set of ~50 graph algorithms covering a lot of different problem domains. In our talk, we’ll present the architecture of the library and demonstrate the different execution phases using a real world example.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Graph algorithms play an increasingly important role in real-world applications. Use-cases that we see in the wild are related to fraud detection, fraud detection, retail recommendation and identifying influencers for marketing campaigns. The Neo4j Graph Algorithms library contains a set of ~50 graph algorithms covering the above-mentioned problem domains.&lt;/p&gt;
&lt;p&gt;Running a graph algorithm in Neo4j involves three essential steps: loading the graph from the database in an optimized in-memory format, executing the algorithm, and streaming or writing of results. For the user, these steps are hidden behind single procedure calls, integrated in the Cypher query language.&lt;/p&gt;
&lt;p&gt;In our talk, we will explain and demonstrate what happens in the system when a user calls an algorithm procedure. This involves scanning Neo4j store files, constructing our in-memory graph representation and executing an algorithm via our Java Graph API.&lt;/p&gt;
&lt;p&gt;Attendees will learn how to setup and use the Neo4j Graph Algorithms Library. Furthermore, they will get a good understanding of how the library works internally and how to tune it for specific use-cases.&lt;/p&gt;</description>
<persons>
<person id="7366">Paul Horn</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9826.php">Submit feedback</link>
</links>
<date>2020-02-01T15:50:00+01:00</date>
</event>
<event id="9905">
<start>16:15</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>graph_gunrock</slug>
<title>Gunrock: High-Performance Graph Analytics for the GPU</title>
<subtitle/>
<track>Graph Systems and Algorithms</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Gunrock is a CUDA library for graph-processing designed specifically for the GPU. It uses a high-level, bulk-synchronous, data-centric abstraction focused on operations on vertex or edge frontiers. Gunrock achieves a balance between performance and expressiveness by coupling high-performance GPU computing primitives and optimization strategies, particularly in the area of fine-grained load balancing, with a high-level programming model that allows programmers to quickly develop new graph primitives that scale from one to many GPUs on a node with small code size and minimal GPU programming knowledge.&lt;/p&gt;
&lt;p&gt;Features of Gunrock include:
- Best of class performance among GPU graph analytics frameworks
- A large number of graph applications (28 at last count)
- A data-centric programming model targeted at GPUs that offers advantages over other programming models
- A programming model that scales to multiple GPUs with high performance while still using the same code as a single-GPU primitive&lt;/p&gt;
&lt;p&gt;Gunrock began in 2013 as a project under DARPA's XDATA program and is currently the performance reference in DARPA's HIVE program. Gunrock is also in development as a component in NVIDIA's RAPIDS platform for data analytics. The Gunrock team actively develops and improves Gunrock under an Apache 2.0 license.&lt;/p&gt;
&lt;p&gt;https://gunrock.github.io/&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7363">Muhammad Osama</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9905.php">Submit feedback</link>
</links>
<date>2020-02-01T16:15:00+01:00</date>
</event>
<event id="10471">
<start>16:40</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>graph_hardware_software_co_design</slug>
<title>Hardware-Software Co-Design for Efficient Graph Application Computations on Emerging Architectures</title>
<subtitle/>
<track>Graph Systems and Algorithms</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Graph databases and applications have attracted much attention in the past few years due to the efficiency with which they can represent big data, connecting different layers of data structures and allowing analysis while preserving contextual relationships.
This has resulted in a fast-growing community that has been developing various database and algorithmic innovations in this area, many of which will be gathering together in this conference. We joined this field as computer architecture researchers and are currently building a complete hardware-software design, called DECADES, that aims to accelerate the execution of these algorithms.&lt;/p&gt;
&lt;p&gt;From a computer architecture point of view, applications involving dense matrix operations such as neural networks have garnered much attention for their acceleration through specialized hardware such as GPUs and TPUs, while graph applications remain difficult to improve even with modern specialized accelerator designs. The reason for this is the characteristic pointer-based data structures of graph applications and the resulting irregular memory accesses performed by many of these workloads. Such irregular memory accesses result in memory latency bottlenecks that dominate the total execution time. In this talk, as part of the DECADES infrastructure, we present an elegant hardware-software codesign solution, named FAST-LLAMAs, to overcome these memory-bottlenecks, and thus, accelerate graph and sparse applications in an energy efficient way.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Graph databases and applications have attracted much attention in the past few years due to the efficiency with which they can represent big data, connecting different layers of data structures and allowing analysis while preserving contextual relationships.
This has resulted in a fast-growing community that has been developing various database and algorithmic innovations in this area, many of which will be gathering together in this conference. We joined this field as computer architecture researchers and are currently building a complete hardware-software design, called DECADES, that aims to accelerate the execution of these algorithms.&lt;/p&gt;
&lt;p&gt;From a computer architecture point of view, applications involving dense matrix operations such as neural networks have garnered much attention for their acceleration through specialized hardware such as GPUs and TPUs, while graph applications remain difficult to improve even with modern specialized accelerator designs. The reason for this is the characteristic pointer-based data structures of graph applications and the resulting irregular memory accesses performed by many of these workloads. Such irregular memory accesses result in memory latency bottlenecks that dominate the total execution time. In this talk, as part of the DECADES infrastructure, we present an elegant hardware-software codesign solution, named FAST-LLAMAs, to overcome these memory-bottlenecks, and thus, accelerate graph and sparse applications in an energy efficient way.&lt;/p&gt;
&lt;p&gt;We propose a 40 minute talk which includes a rigorous characterization of the problem, and an in-depth analysis of our software-hardware co-design solution, FAST LLAMAs. We will present results based on a simulated model of our system which show significant performance improvements (up to 8x), as well as energy improvements (up to 20x) on a set of fundamental graph algorithms and important real-world datasets. Our system is completely open-source, and includes a compiler and cycle-accurate simulator. Our proposed system is compatible and easily extendable to many of the open-source graph analytic and database frameworks and we are excited to engage with the open-source community of this increasingly important domain.&lt;/p&gt;
&lt;p&gt;The work is part of a large collaboration from three academic groups: Margaret Martonosi (PI Princeton), David Wentzlaff (PI Princeton), Luca Carloni (PI Columbia) with students/researchers: Juan L. Aragón (U. of Murcia, Spain), Jonathan Balkind, Ting-Jung Chang, Fei Gao, Davide Giri, Paul J. Jackson, Aninda Manocha, Opeoluwa Matthews, Tyler Sorensen, Esin Türeci, Georgios Tziantzioulis, and Marcelo Orenes Vera. In addition to the submission author, portions of the talk may be offered by others in the collaboration.&lt;/p&gt;</description>
<persons>
<person id="7074">Margaret Martonosi</person>
</persons>
<links>
<link href="https://github.com/PrincetonUniversity/DecadesCompiler">LLVM-based Compiler framework for Graph Algorithms</link>
<link href="http://https://github.com/PrincetonUniversity/MosaicSim">LLVM bytecode simulator</link>
<link href="https://hub.docker.com/repository/docker/princetondecades/decades">Docker container</link>
<link href="https://github.com/PrincetonUniversity/decades_documentation">Jupyter notebooks</link>
<link href="https://github.com/amanocha/DECADES_Applications">Application tutorial</link>
<link href="https://submission.fosdem.org/feedback/10471.php">Submit feedback</link>
</links>
<date>2020-02-01T16:40:00+01:00</date>
</event>
<event id="10339">
<start>17:05</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>graph_puma</slug>
<title>Programmable Unified Memory Architecture (PUMA)</title>
<subtitle/>
<track>Graph Systems and Algorithms</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Large scale graph analytics is essential to analyze relationships in big data sets. Thereto, the DARPA HIVE program targets a leap in power efficient graph analytics. In response to this program, Intel proposes the Programmable Unified Memory Architecture (PUMA). Based on graph workload analysis insights, PUMA consists of many multi-threaded cores, fine-grained memory and network accesses, a globally shared address space and powerful offload engines. In this talk, we will describe the PUMA architecture, both in terms of hardware and the software ecosystem. We will provide initial simulation based performance estimations, showing that for graph analysis applications, a PUMA node will outperform a conventional compute node by one to two orders of magnitude. Additionally, PUMA will continue to scale across multiple nodes, which is a challenge in conventional multinode setups.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7206">Stijn Eyerman</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10339.php">Submit feedback</link>
</links>
<date>2020-02-01T17:05:00+01:00</date>
</event>
<event id="10677">
<start>17:30</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>graph_cypher_sharding</slug>
<title>Cypher enhancements for sharded and federated graph databases</title>
<subtitle/>
<track>Graph Systems and Algorithms</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In this talk we will introduce enhancements to the Cypher graph query language, enabling queries spanning multiple graphs, intended for use in sharding and federation scenarios.
We will also present our experience with sharding the LDBC Social Network Benchmark dataset.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6341">Tobias Johansson</person>
<person id="7367">Petr Janouch</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10677.php">Submit feedback</link>
</links>
<date>2020-02-01T17:30:00+01:00</date>
</event>
<event id="10223">
<start>17:55</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>graph_raphtory</slug>
<title>Raphtory: Streaming analysis of distributed temporal graphs</title>
<subtitle/>
<track>Graph Systems and Algorithms</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Temporal graphs capture the development of relationships within data throughout time. This model fits naturally within a streaming architecture, where new events can be inserted directly into the graph upon arrival from a data source, being compared to related entities or historical state. However, the vast majority of graph processing systems only consider traditional graph analysis on static data, with some outliers supporting batched updating and temporal analysis across graph snapshots. This talk will cover recent work defining a temporal graph model which can be updated via event streams and investigating the challenges of distribution and graph maintenance. Some notable challenges within this include partitioning a graph built from a stream, with the additional complexity of managing trade-offs between structural locality (proximity to neighbours) and temporal locality (proximity to an entities history). Synchronising graph state across the cluster and handling out-of-order updates, without a central ground truth limiting scalability. Managing memory constraints and performing analysis in parallel with ongoing update ingestion.
To address these challenges, we introduce Raphtory, a system which maintains temporal graphs over a distributed set of partitions, ingesting and processing parallel updates in near real-time. Raphtory's core components consist of Graph Routers and Graph Partition Managers. Graph Routers attach to a given input stream and convert raw data into graph updates, forwarding this to the Graph Partition Manager handling the affected entity. Graph Partition Managers contain a partition of the overall graph, inserting updates into the histories of affected entities at the correct chronological position. This removes the need for centralised synchronisation, as commands may be executed in any given arrival order whilst resulting in the same history. To deal with memory constraints, Partition Managers both compress older history and set an absolute threshold for memory usage. If this threshold is met a cut-off point is established, requiring all updates prior to this time to be transferred to offline storage. Once established and ingesting the selected input, analysis on the graph is permitted via Analysis Managers. These connect to the cluster, broadcasting requests to all Partition Managers who execute the algorithm. Analysis may be completed on the live graph (most up-to-date version), any point back through its history or as a temporal query over a range of time. Additionally, multiple Analysis Managers may operate concurrently on the graph with previously unseen algorithms compiled at run-time, thus allowing modification of ongoing analysis without re-ingesting the data.
Raphtory is an ongoing project, but is open source and available for use now. Raphtory is fully containerised for ease of installation and deployment and much work has gone into making it simple for users to ingest their own data sources, create custom routers and perform their desired analysis.
The proposed talk will discuss the benefits of viewing data as a temporal graph, the current version of Raphtory and how someone could get involved with the project. We shall also touch on several areas of possible expansion at the end for discussion with those interested.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The intended audience for this talk is a mixture of data scientists and graphy engineers. It is going to be quite high level, but introducing some interesting ideas of how to view data through the lens of a temporal graph as well as novel systems solutions for distribution, maintenance and processing.&lt;/p&gt;</description>
<persons>
<person id="6991">Ben Steer</person>
</persons>
<links>
<link href="https://www.sciencedirect.com/science/article/pii/S0167739X19301621">Latest Paper for Raphtory</link>
<link href="https://github.com/miratepuffin/raphtory">Open Source Repository for Raphtory</link>
<link href="https://submission.fosdem.org/feedback/10223.php">Submit feedback</link>
</links>
<date>2020-02-01T17:55:00+01:00</date>
</event>
<event id="10270">
<start>18:20</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>graph_temporal_gradoop</slug>
<title>Temporal Graph Analytics with GRADOOP</title>
<subtitle/>
<track>Graph Systems and Algorithms</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The temporal analysis of evolving graphs is an important requirement in many domains but hardly supported in current graph database and graph processing systems. We, therefore, extended the distributed graph analytics framework Gradoop for time-related graph analysis by introducing a new temporal property graph data model. Our model supports bitemporal time dimensions for vertices and edges to represent both rollback and historical information. In addition to the data model, we introduce several time-dependent operators (e.g, Snapshot, Diff and Grouping) that natively support the natural evolution of the graph. Since this is an extension of Gradoop, the temporal operators are compatible and can be combined with the already known operators to build complex analytical tasks in a declarative way. In our talk, we will give a brief overview of the Gradoop system, the temporal property graph model and how we support the time-dependent analysis of large graphs. Based on real-world use-cases, we show the expressiveness and flexibility of our temporal operators and how they can be composed to answer complex analytical questions.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7165">Kevin Gomez</person>
</persons>
<links>
<link href="http://gradoop.com">Gradoop GitHub</link>
<link href="https://dbs.uni-leipzig.de/file/LEGECML-PKDD_2019_paper_9.pdf">TPGM@LEGECML-PKKD2019</link>
<link href="https://dl.gi.de/bitstream/handle/20.500.12116/21797/C2-1.pdf?sequence=1&amp;isAllowed=y">TPGM@BTW2019</link>
<link href="https://submission.fosdem.org/feedback/10270.php">Submit feedback</link>
</links>
<date>2020-02-01T18:20:00+01:00</date>
</event>
<event id="9495">
<start>18:40</start>
<duration>00:20</duration>
<room>AW1.121</room>
<slug>graph_weaviate</slug>
<title>Weaviate OSS Smart Graph</title>
<subtitle>feature updates, demo and use cases</subtitle>
<track>Graph Systems and Algorithms</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Weaviate is an open-source smart graph that aims to allow anyone, anywhere, any time to create their own semantic search engines, knowledge graphs or knowledge networks. Weaviate is RESTful and GraphQL API based and built on top of a semantic vector storage mechanism called the contextionary. Because all data is stored in the vector space, Weaviate is ideal for;
- Semantically search through the knowledge graph.
- Automatically classify entities in the graph.
- Create easy to use knowledge mappings.&lt;/p&gt;
&lt;p&gt;Because the use of formal ontologies are optional, Weaviate can be used to create a P2P knowledge network which we want to present during this conference.&lt;/p&gt;
&lt;p&gt;This is a follow up after the initial design was shared during last year's FOSDEM.&lt;/p&gt;</abstract>
<description>&lt;h1&gt;Problem&lt;/h1&gt;
&lt;p&gt;Creating a knowledge graph can be a complex endeavor, let alone the integration of semantic search models. Bain &amp;amp; Company research under US enterprise CTO's shows that 59% of them believe they lack the capabilities to generate meaningful business insights from their data, and 85% said it would require substantial investments to improve their data platforms.&lt;/p&gt;
&lt;h1&gt;Solution&lt;/h1&gt;
&lt;p&gt;Weaviate aims anyone to create large, enterprise-scale knowledge graphs as straight forward as possible. Weaviate's feature set allows anyone to;
- Semantically search through the knowledge graph.
- Automatically classify entities in the knowledge graph.
- Create easy to use knowledge mappings.&lt;/p&gt;
&lt;h1&gt;Weaviate's Contextionary&lt;/h1&gt;
&lt;p&gt;Weavite's Contextionary is the semantic vector storage mechanism that stores data -unlike traditional storage mechanisms- based on its semantic meaning. For example, if someone stores information about a company with the name Apple, this data object would be found closely related to concepts like the iPhone.&lt;/p&gt;
&lt;p&gt;Because of the algorithmic use (as opposed to retraining) of the pre-trained machine learning model, Weaviate is able to learn new concepts fast and near-realtime. This allows the user to update and manipulate the knowledge graph directly.&lt;/p&gt;
&lt;h1&gt;Demo &amp;amp; Use cases&lt;/h1&gt;
&lt;p&gt;During the session, we want to show a few -recent- use cases to demo how Weaviate can be used. The demo will include;
querying;
semantic querying;
adding concepts;
going from an ontology to a schema;
and more.&lt;/p&gt;
&lt;h1&gt;Knowledge network&lt;/h1&gt;
&lt;p&gt;Because of Weaviate's contextionary, a formal ontology is optional (e.g., &quot;a company with the name Netflix&quot; is semantically similar to &quot;a business with the identifier Netflix Inc.&quot;) this allows multiple Weaviate to connect and communicate over a peer to peer (P2P) network to exchange knowledge. Aka, the knowledge network. During the session, we want to demonstrate the first prototype of this network.&lt;/p&gt;
&lt;h1&gt;more information&lt;/h1&gt;
&lt;p&gt;more information can be found on our website: https://www.semi.technology/documentation/weaviate/current/&lt;/p&gt;</description>
<persons>
<person id="6158">Bob van Luijt</person>
</persons>
<links>
<link href="https://www.semi.technology/documentation/weaviate/current/">Weaviate docs &amp; guides</link>
<link href="https://github.com/semi-technologies/weaviate">Weaviate on Github</link>
<link href="https://semi.technology">SeMI website (Weaviate maintainers)</link>
<link href="https://submission.fosdem.org/feedback/9495.php">Submit feedback</link>
</links>
<date>2020-02-01T18:40:00+01:00</date>
</event>
</room>
<room name="AW1.125">
<event id="10682">
<start>10:30</start>
<duration>00:05</duration>
<room>AW1.125</room>
<slug>ada_welcome</slug>
<title>Welcome to the Ada DevRoom</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Welcome to the Ada Developer Room at FOSDEM 2020, which is organized
by Ada-Belgium in cooperation with Ada-Europe.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Ada-Belgium and Ada-Europe are non-profit organizations set up
to promote the use of the Ada programming language and related
technology, and to disseminate knowledge and experience into academia,
research and industry in Belgium and Europe, resp. Ada-Europe has
member-organizations, such as Ada-Belgium, in various countries,
and direct members in many other countries.&lt;/p&gt;</description>
<persons>
<person id="581">Dirk Craeynest</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#welcome">More info on Ada-Belgium web site</link>
<link href="https://submission.fosdem.org/feedback/10682.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10683">
<start>10:35</start>
<duration>00:45</duration>
<room>AW1.125</room>
<slug>ada_intro</slug>
<title>An Introduction to Ada for Beginning and Experienced Programmers</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;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.&lt;/p&gt;</abstract>
<description>&lt;p&gt;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&lt;/p&gt;</description>
<persons>
<person id="861">Jean-Pierre Rosen</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#intro">More info on Ada-Belgium web site</link>
<link href="https://submission.fosdem.org/feedback/10683.php">Submit feedback</link>
</links>
<date>2020-02-01T10:35:00+01:00</date>
</event>
<event id="10684">
<start>11:30</start>
<duration>00:20</duration>
<room>AW1.125</room>
<slug>ada_hac</slug>
<title>HAC: the Compiler which will Never Become Big</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In the Ada world, we are surrounded by impressive and professional
tools that can handle large and complex projects. Did you ever
dream of a tiny, incomplete but compatible system to play with?
Are you too impatient, when developing small pieces of code, for
long compile-bind-link-run cycles? Are you a beginner intimidated by
project files and sophisticated tools? Then HAC (the HAC Ada Compiler,
or the Hello-world Ada Compiler) is for you.&lt;/p&gt;</abstract>
<description>&lt;p&gt;HAC is a revival of the SmallAda project, which supported the &quot;Pascal
subset&quot; plus tasking.&lt;/p&gt;</description>
<persons>
<person id="6295">Gautier de Montmollin</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#hac">More info on Ada-Belgium web site</link>
<link href="https://submission.fosdem.org/feedback/10684.php">Submit feedback</link>
</links>
<date>2020-02-01T11:30:00+01:00</date>
</event>
<event id="10685">
<start>12:00</start>
<duration>00:50</duration>
<room>AW1.125</room>
<slug>ada_performance</slug>
<title>Tracking Performance of a Big Application from Dev to Ops</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This talk describes how performance aspects of a big Air Traffic Flow
Management mission critical application are tracked from development
to operations.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Tracking performance is needed when new functionality is added, to
balance the additional services versus the resource increase needed.
Measuring and tracking performance is also critical to ensure a new
release can cope with the current or expected load.&lt;/p&gt;
&lt;p&gt;We will discuss various aspects such as which tools and techniques
are used for performance tracking and measurements, what are the
traps and pitfalls encountered for these activities. The application
in question is using Ada, but most of the items discussed are not
particularly Ada related.&lt;/p&gt;</description>
<persons>
<person id="1402">Philippe Waroquiers</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#performance">More info on Ada-Belgium web site</link>
<link href="https://submission.fosdem.org/feedback/10685.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="9112">
<start>13:00</start>
<duration>00:20</duration>
<room>AW1.125</room>
<slug>ada_bindings</slug>
<title>Cappulada: What we've Learned</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Last year I presented Cappulada, a C++ binding generator for Ada that
intended to overcome the shortcomings of existing solutions and to
provide usable bindings even for complex C++ code.&lt;/p&gt;
&lt;p&gt;This year I want to show our conclusions on why automatic bindings
between C++ and Ada are hard (if not impossible) and where existing
solutions (including our own) fail.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6087">Johannes Kliemann</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#bindings">More info on Ada-Belgium web site</link>
<link href="https://archive.fosdem.org/2019/schedule/event/ada_bindings/">Cappulada Talk on FOSDEM19</link>
<link href="https://github.com/Componolit/Cappulada">Cappulada on GitHub</link>
<link href="https://submission.fosdem.org/feedback/9112.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="10686">
<start>13:30</start>
<duration>00:20</duration>
<room>AW1.125</room>
<slug>ada_ros2</slug>
<title>Programming ROS2 Robots with RCLAda</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The Robot Operating System (ROS) is one of the chief frameworks
for service robotics research and development. The next iteration
of this framework, ROS2, aims to improve critical shortcomings of
its predecessor like deterministic memory allocation and real-time
characteristics.&lt;/p&gt;
&lt;p&gt;RCLAda is a binding to the ROS2 framework that enables the programming
of ROS2 nodes in pure Ada with seamless integration into the ROS2
workflow.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7355">Alejandro Mosteo</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#ros2">More info on Ada-Belgium web site</link>
<link href="https://submission.fosdem.org/feedback/10686.php">Submit feedback</link>
</links>
<date>2020-02-01T13:30:00+01:00</date>
</event>
<event id="10688">
<start>14:00</start>
<duration>00:50</duration>
<room>AW1.125</room>
<slug>ada_distribution</slug>
<title>Live Demo of Ada's Distribution Features</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Ada incorporates in its standard a model for distributed execution.
It is an abstract model that does not depend on a particular kind of
network or any other communication mean, and that preserves full typing
control across partitions. This presentation briefly exposes the
principles of Ada's distribution model, then shows the possibilities
with life demos across different machines and operating systems.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="861">Jean-Pierre Rosen</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#distribution">More info on Ada-Belgium web site</link>
<link href="https://submission.fosdem.org/feedback/10688.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="10689">
<start>15:00</start>
<duration>00:20</duration>
<room>AW1.125</room>
<slug>ada_parallel</slug>
<title>Writing Shared Memory Parallel Programs in Ada</title>
<subtitle>Multitasked Newton's Method for Power Series</subtitle>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Tasks in Ada are effective to speed up computations on multicore
processors. In writing parallel programs we determine the granularity
of the parallelism with respect to the memory management. We have to
decide on the size of each job, the mapping of the jobs to the tasks,
and on the location of the input and output data for each job.&lt;/p&gt;
&lt;p&gt;A multitasked Newton's method will show the effectiveness of Ada to
speed up the computation of power series. This application belongs
to the free and open source package PHCpack, a package to solve
polynomial systems by polynomial homotopy continuation.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="1899">Jan Verschelde</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#parallel">More info on Ada-Belgium web site</link>
<link href="https://submission.fosdem.org/feedback/10689.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="9109">
<start>15:30</start>
<duration>00:20</duration>
<room>AW1.125</room>
<slug>ada_spunky</slug>
<title>Spunky: a Genode Kernel in Ada/SPARK</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The Genode OS framework is an open-source tool kit for building highly
secure component-based operating systems scaling from embedded devices
to dynamic desktop systems. It runs on a variety of microkernels
like SeL4, NOVA, and Fiasco OC as well as on Linux and the Muen SK.
But the project also features its own microkernel named &quot;base-hw&quot;
written in C++ like most of the Genode framework.&lt;/p&gt;
&lt;p&gt;Spunky is a pet project of mine. Simply put it's an approach to
re-implement the design of the &quot;base-hw&quot; kernel first in Ada and
later in SPARK with the ultimate goal to prove its correctness.
It is also an opportunity to learn how Genode can benefit from Ada
and SPARK in general and promote the use of safety-oriented languages
in the project.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3625">Martin Stein</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#spunky">More info on Ada-Belgium web site</link>
<link href="https://submission.fosdem.org/feedback/9109.php">Submit feedback</link>
</links>
<date>2020-02-01T15:30:00+01:00</date>
</event>
<event id="10690">
<start>16:00</start>
<duration>00:50</duration>
<room>AW1.125</room>
<slug>ada_alire</slug>
<title>Alire: Ada Has a Package Manager</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Alire (Ada LIbrary REpository) is a package manager project for the
Ada/SPARK community. The goal of a package manager is to facilitate
collaboration within the community and to lower the barrier of entry
for beginners.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In this talk we will present the Alire project, what it can do for
you and how you can contribute and give more visibility to your
Ada/SPARK projects.&lt;/p&gt;
&lt;p&gt;We will also provide a tutorial to show how to use Alire to create
a library and then publish it for others to use.&lt;/p&gt;</description>
<persons>
<person id="3897">Fabien Chouteau</person>
<person id="5346">Pierre-Marie de Rodat</person>
<person id="7355">Alejandro Mosteo</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#alire">More info on Ada-Belgium web site</link>
<link href="https://submission.fosdem.org/feedback/10690.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="10691">
<start>17:00</start>
<duration>00:20</duration>
<room>AW1.125</room>
<slug>ada_keystore</slug>
<title>Protect Sensitive Data with Ada Keystore</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Storing passwords and secret configuration is a challenge for an
application. Ada Keystore is a library that stores arbitrary content
by encrypting them in secure keystore (AES-256, HMAC-256).&lt;/p&gt;</abstract>
<description>&lt;p&gt;The talk presents the project and shows how to use the Ada Keystore
library to get or store secret information in a secure manner.
The presentation explains how the Ada features such as types, protected
types, tasks, pre/post conditions have helped during the development
of this project.&lt;/p&gt;</description>
<persons>
<person id="5344">Stephane Carrez</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#keystore">More info on Ada-Belgium web site</link>
<link href="https://submission.fosdem.org/feedback/10691.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="10692">
<start>17:30</start>
<duration>00:20</duration>
<room>AW1.125</room>
<slug>ada_eugen</slug>
<title>EUgen: a European Project Proposal Generator</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Whoever wrote a research project proposal knows how much unnerving it
can be. The actual project description (made of work packages, tasks,
deliverable items, ...) has lots of redundancies and cross-references
that makes its coherency as frail as a house of cards. For example,
if the duration of a task is changed most probably you'll need to
update the effort in person-months of the task and of the including
work package; you must update the start date of depending tasks and
the deliver date of any deliverable items; most probably also the
WP efforts and length need update too; not to mention the need of
updating all the summary tables (summary of efforts, deliverable,
..) and the GANTT too. Any small changes is likely to start a ripple
of updates and the probability of forgetting something and getting an
incoherent project description is large. Given the harsh competition
in project funding, if your project is incoherent the probability of
getting funded is nil.&lt;/p&gt;
&lt;p&gt;One day I got sick of this state of affair and I wrote my own project
generator: 10k lines of Ada code that reads a non-redundant project
description from a simple-format text file and produces a set of files
ready to be imported in the proposal, GANNT chart included. The user
can specify dependences between different items (e.g., this deliverable
is produced at the end of this task, this milestone is reached when
this deliverable is available, this task must begin after this other
task...) and the program automatically computes all the dates.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Both input parser and output processors are implemented using a plugin
structure that makes it easy to write new parsers to read different
formats or new output processors to produce output in different
formats. Currently a parser for a simple ad-hoc format and an output
processor that produces LaTeX files are provided; a new processor based
on the template expander &lt;em&gt;protypo&lt;/em&gt; is currently being implemented.&lt;/p&gt;
&lt;p&gt;Did I eat my own dog food? Well, yes, I did. I used it to write a
proposal (still under evaluation) and it served me well.&lt;/p&gt;</description>
<persons>
<person id="498">Riccardo Bernardini</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#eugen">More info on Ada-Belgium web site</link>
<link href="https://submission.fosdem.org/feedback/10692.php">Submit feedback</link>
</links>
<date>2020-02-01T17:30:00+01:00</date>
</event>
<event id="10693">
<start>18:00</start>
<duration>00:20</duration>
<room>AW1.125</room>
<slug>ada_rad</slug>
<title>On Rapid Application Development in Ada</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In the Ada world we typically write mission critical software that
just has to work, but in a way one could argue that a lot more software
is mission critical than is usually admitted.&lt;/p&gt;
&lt;p&gt;What does it take to actually perform rapid application development
in any language? Can we do it in Ada and why would we do so?&lt;/p&gt;</abstract>
<description>&lt;p&gt;A quick look into some language features that can be [ab]used for
enabling quick development of 'just a prototype' - which, as practice
shows is often deployed into production, usually without proper
quality controls and predictable outcome.&lt;/p&gt;</description>
<persons>
<person id="7356">Tomasz Maluszycki</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#rad">More info on Ada-Belgium web site</link>
<link href="https://submission.fosdem.org/feedback/10693.php">Submit feedback</link>
</links>
<date>2020-02-01T18:00:00+01:00</date>
</event>
<event id="10694">
<start>18:30</start>
<duration>00:20</duration>
<room>AW1.125</room>
<slug>ada_toml</slug>
<title>Ada-TOML: a TOML Parser for Ada</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The world of generic structured data formats is full of contenders:
the mighty XML, the swift JSON, the awesome YAML, ... Alas, there
is no silver bullet: XML is very verbose, JSON is not convenient for
humans to write, YAML is known to be hard to parse, and so on.&lt;/p&gt;
&lt;p&gt;TOML is yet another format whose goal is to be a good configuration
language: obvious semantics, convenient to write and easy to parse
in general-purpose programming languages.&lt;/p&gt;
&lt;p&gt;In this talk, I'll shortly describe the TOML format and show a few
use cases in the real world. I'll then present the ada-toml library
itself: its high-level architecture and examples.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5346">Pierre-Marie de Rodat</person>
</persons>
<links>
<link href="http://www.cs.kuleuven.be/~dirk/ada-belgium/events/20/200201-fosdem.html#toml">More info on Ada-Belgium web site</link>
<link href="https://submission.fosdem.org/feedback/10694.php">Submit feedback</link>
</links>
<date>2020-02-01T18:30:00+01:00</date>
</event>
<event id="10695">
<start>18:50</start>
<duration>00:10</duration>
<room>AW1.125</room>
<slug>ada_wrapup</slug>
<title>Informal Discussions &amp; Closing</title>
<subtitle/>
<track>Ada</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="581">Dirk Craeynest</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10695.php">Submit feedback</link>
</links>
<date>2020-02-01T18:50:00+01:00</date>
</event>
</room>
<room name="AW1.126">
<event id="10438">
<start>10:30</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_oss_tools_neuro</slug>
<title>The good and the bad sides of developing open source tools for neuroscience</title>
<subtitle/>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The reproducibility crisis has shocked the scientific
community. Different papers describe this issue and the scientific
community has taken steps to improve on it. For example, several
initiatives have been founded to foster openness and standardisation
in different scientific communities (e.g. the INCF[1] for the
neurosciences). Journals encourage sharing of the data underlying
the presented results, some even make it a requirement.&lt;/p&gt;
&lt;p&gt;What is the role of open source solutions in this respect? Where are the problems with
open source projects in (neuro-)sciences?&lt;/p&gt;
&lt;p&gt;In this presentation I will address these questions at the example
of the entirely open-source based workflow in our laboratory[2] and
our efforts in developing generic solutions for storing metadata[3]
as well as unifying data and metadata storage[4] that we take together
with the German Neuroinformatics Node (G-Node[5]).&lt;/p&gt;
&lt;p&gt;[1] https://incf.org
[2] https://github.com/bendalab
[3] https://github.com/g-node/python-odml
[4] https://github.com/g-node/nix
[5] https://g-node.org&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7260">Jan Grewe</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10438.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10289">
<start>11:00</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_science_soft_dev</slug>
<title>Challenges and opportunities in scientific software development</title>
<subtitle>An example from the neurosciences</subtitle>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The approaches used in software development in an industry setting and a scientific environment are exhibit a number of fundamental differences. In the former industry setting modern team development tools and methods are used (version control, continuous integration, Scrum, ...) to develop software in teams with a focus on the final software product. In contrast, in the latter scientific environment a large fraction of scientific code is produced by individual scientists lacking thorough training in software development with a specific research goal in mind. Indeed, it is only in the last decades that scientific software development started to become a fully recognized part of scientific work. Still, formal training in software development is largely missing in the scientific curricula of many universities. Additionally, due to the exploratory nature of the scientific method at the frontier of knowledge, most projects require the implementation of custom code. The combination of these circumstances promotes the development of scientific code not suited for sharing and long term maintenance, limiting the reusability and reproducibility of scientific data and findings. The systematic development and adoption of open source packages by the scientific community can emend this situation. Here we present examplary open source packages from the field of neuroscience and discuss the special requirements for open source software development and services in this research area.&lt;/p&gt;
&lt;p&gt;Acknowledgements:
This project has received funding from the European Union’s Horizon 2020 Framework Programme for Research and Innovation under Specific Grant Agreement No. 785907 (Human Brain Project SGA2). Supported by the NFDI Neuroscience Initiative.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6547">Julia Sprenger</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10289.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
<event id="10099">
<start>11:30</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_neurofedora</slug>
<title>NeuroFedora: Enabling Free/Open Neuroscience</title>
<subtitle/>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;NeuroFedora is an initiative to provide a ready to use Fedora-based Free/Open source software platform for neuroscience. We believe that similar to Free software; science should be free for all to use, share, modify, and study. The use of Free software also aids reproducibility, data sharing, and collaboration in the research community. By making the tools used in the scientific process more comfortable to use, NeuroFedora aims to take a step to enable this ideal.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The computer has become an indispensable resource in modern neuroscience. From the gathering of data, simulation of computational models, analysis of large amounts of information, collaboration, and communication tools for community development, software is now a necessary part of the research pipeline.&lt;/p&gt;
&lt;p&gt;The Neuroscience community is gradually moving to the use of Free/Open Source software (FOSS) &lt;a href=&quot;Gleeson,&quot;&gt;1&lt;/a&gt;; however, the software tools used in Neuroscience and research are generally complicated and sophisticated to use. Researchers that hail from a different field other than computing must spend considerable resources on setting up and managing the computing environment and the software tools. This limits the portability of the software, making the installation of software very time-consuming and sometimes tricky.&lt;/p&gt;
&lt;p&gt;We present NeuroFedora - A Fedora-based operating system for Neuroscientists.
We have leveraged the infrastructure resources of the FOSS Fedora community &lt;a href=&quot;RedHat.&quot;&gt;2&lt;/a&gt; to develop an operating system that includes a plethora of ready-to-use Neuroscience software.
We follow the standard software development and quality assurance practices set out by the Fedora community to provide an integrated platform for researchers to use.
Furthermore, NeuroFedora is well integrated with other software such as desktop environments, text editors, and other daily use and development tools.&lt;/p&gt;
&lt;p&gt;A NeuroFedora lab image is now available, with over 130 neuroscience packages ready to use. With an up to date documentation at (neuro.fedoraproject.org) and about 120+ packages in the queue, we encourage more FOSS enthusiasts to join the team to help NeuroFedora better aid the open (neuro)-science and research community.&lt;/p&gt;</description>
<persons>
<person id="6894">Aniket Pradhan</person>
</persons>
<links>
<link href="https://docs.fedoraproject.org/en-US/neurofedora/overview/">Documentation for NeuroFedora</link>
<link href="https://submission.fosdem.org/feedback/10099.php">Submit feedback</link>
</links>
<date>2020-02-01T11:30:00+01:00</date>
</event>
<event id="10414">
<start>12:00</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_secure_health_data</slug>
<title>Spotlight on Free Software Building Blocks for a Secure Health Data Infrastructure</title>
<subtitle/>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Health Data is traditionally held and processed in large and complex mazes of hospital information systems. The market is dominated by vendors offering monolithic and proprietary software due to the critical nature of the supported processes and - in some cases - due to legal requirements. The “digital transformation”, “big data” and “artificial intelligence” are some of the hypes that demand for improved exchange of health care data in routine health care and medical research alike. Exchanging data at these scales requires open data formats and protocols, multi-stakeholder collaboration, and agile development. As an example, the de-facto messaging standard organization in medicine HL7 noticed a much more positive response from the medical research community regarding their openly available FHIR specification in comparison to the for-members-only and XML-based HL7v3 messaging standard specification.
While some past (or rather: ongoing) projects on a national scale in the German health care system have tried centralized, top-down specification and development approaches, more recent infrastructure projects embrace the competitive collaboration of a decentralized, bottom-up strategy. As a result, importance and recognition of free software increase in the Medical Informatics research community. In a series of rapid spotlights, we present tools and frameworks that serve as cornerstones for the envisioned health data exchange infrastructure, including: Organization and collaboration tools; data extraction from clinical source systems, data transformation and de-identification; data management systems and long-term archival using persistent globally-unique object identifiers; federated queries across multiple independently managed clinical data integration centers.
We aim to encourage participants to actively add tools and frameworks within the discussion and highlight their experiences and challenges with using open systems in Medical Informatics.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7247">Markus Suhr</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10414.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="10448">
<start>12:30</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_datalad</slug>
<title>DataLad</title>
<subtitle>Perpetual decentralized management of digital objects for collaborative open science</subtitle>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Contemporary sciences are heavily data-driven, but today's data management technologies and sharing practices fall at least a decade behind software ecosystem counterparts.
Merely providing file access is insufficient for a simple reason: data are not static. Data often (and should!) continue to evolve; file formats can change, bugs will be fixed, new data are added, and derived data needs to be integrated.
While (distributed) version control systems are a de-facto standard for open source software development, a similar level of tooling and culture is not present in the open data community.&lt;/p&gt;
&lt;p&gt;The lecture introduces DataLad, a software that aims to address this problem by providing a feature-rich API (command line and Python) for joint management of all digital objects of science: source code, data artifacts (as much as their derivatives), and essential utilities, such as container images of employed computational environments.
A DataLad dataset represents a comprehensive and actionable unit that can be used privately, or be published on today's cyberinfrastructure (GitLab, GitHub, Figshare, S3, Google Drive, etc.) to facilitate large and small-scale collaborations.&lt;/p&gt;
&lt;p&gt;In addition to essential version control tasks, DataLad aids data discovery by supporting a plurality of evolving metadata description standards. Moreover, Datalad is able to capture data provenance information in a way that enables programmatic re-execution of computations, and as such provides a key feature for the implementation of reproducible science.
DataLad is extensible and customizable to fine tune its functionality to specific domains (e.g., field of science or organizational requirements).&lt;/p&gt;
&lt;p&gt;DataLad is built on a few key principles:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DataLad only knows about two things: Datasets and files.&lt;/strong&gt;
A DataLad dataset is a collection of files in folders.
And a file is the smallest unit any dataset can contain.
At its core, &lt;strong&gt;DataLad is a completely domain-agnostic, general-purpose tool to manage data&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A dataset is a Git repository&lt;/strong&gt;.
A dataset is a Git repository. All features of the version control system Git
also apply to everything managed by DataLad.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A DataLad dataset can take care of managing and version controlling arbitrarily large data&lt;/strong&gt;.
To do this, it has an optional &lt;em&gt;annex&lt;/em&gt; for (large) file content:
Thanks to this annex, DataLad can track files that are TBs in size
(something that Git could not do, and that allows you to restore previous versions of data,
transform and work with it while capturing all provenance,
or share it with whomever you want). At the same time, DataLad does all of the magic
necessary to get this important feature to work quietly in the background.
The annex is set-up automatically, and the tool &lt;a href=&quot;https://git-annex.branchable.com&quot;&gt;git-annex&lt;/a&gt; manages it all underneath the hood.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;DataLad follows the social principle to
&lt;strong&gt;minimize custom procedures and data structures&lt;/strong&gt;. DataLad will not transform
your files into something that only DataLad or a specialized tool can read.
A PDF file (or any other type of
file) stays a PDF file (or whatever other type of file it was)
whether it is managed by DataLad or not. This guarantees that users will not loose
data or data access if DataLad would vanish from their system, or even when DataLad
would vanish from the face of Earth. Using DataLad thus does not require or generate
data structures that can only be used or read with DataLad -- DataLad does not
tie you down, it liberates you.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Furthermore, DataLad is developed for &lt;strong&gt;complete decentralization&lt;/strong&gt;.
There is no required central server or service necessary to use DataLad. In this
way, no central infrastructure needs to be maintained (or paid for) --
your own laptop is the perfect place to live for your DataLad project, as is your
institutions webserver, or any other common computational infrastructure you
might be using.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simultaneously, though, DataLad aims to
&lt;strong&gt;maximize the (re-)use of existing 3rd-party data resources and infrastructure&lt;/strong&gt;.
Users &lt;em&gt;can&lt;/em&gt; use existing central infrastructure should they want to.
DataLad works with any infrastructure from GitHub to
Dropbox, Figshare, or institutional repositories,
enabling users to harvest all of the advantages of their preferred
infrastructure without tying anyone down to central services.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
</abstract>
<description/>
<persons>
<person id="7265">Michael Hanke</person>
</persons>
<links>
<link href="http://datalad.org">Project website</link>
<link href="http://handbook.datalad.org">User documentation</link>
<link href="http://datasets.datalad.org">Open data portal</link>
<link href="http://handbook.datalad.org/en/latest/usecases/reproducible-paper.html">Demo of a fully reproducible scientific paper using DataLad</link>
<link href="https://submission.fosdem.org/feedback/10448.php">Submit feedback</link>
</links>
<date>2020-02-01T12:30:00+01:00</date>
</event>
<event id="9800">
<start>13:00</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_frictionless_data</slug>
<title>Frictionless Data for Reproducible Research</title>
<subtitle/>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Generating insight and conclusions from research data is often not a straightforward process. Data can be hard to find, archived in difficult to use formats, poorly structured and/or incomplete. These issues create “friction” and make it difficult to use, publish and share data. The Frictionless Data initiative (https://frictionlessdata.io/) at Open Knowledge Foundation (http://okfn.org) aims to reduce friction in working with data, with a goal to make it effortless to transport data among different tools and platforms for further analysis, and with an emphasis on reproducible research and open data. The Frictionless Data project is comprised of a set of specifications (https://frictionlessdata.io/specs/) for data and metadata interoperability, accompanied by a collection of open source software libraries (https://frictionlessdata.io/software/) that implement these specifications, and a range of best practices for data management. Over the past year and a half, we have been working specifically with the researcher community to prototype using Frictionless Data’s open source tools to improve researchers’ data workflows and champion reproducibility. This talk will discuss the technical ideas behind Frictionless Data for research and will also showcase recent collaborative use cases, such as how oceanographers implemented Frictionless Data tooling into their data ingest pipelines to integrate disparate data while maintaining quality metadata in an easy to use interface.&lt;/p&gt;</abstract>
<description>&lt;h2&gt;Expected prior knowledge / intended audience&lt;/h2&gt;
&lt;p&gt;The audience should be familiar with the themes of researching, using data in various forms from various sources, scientific computing, and the talk is intended for those that are interested in data management, data cleaning, metadata, and using open research data.&lt;/p&gt;
&lt;h2&gt;Speaker bio&lt;/h2&gt;
&lt;p&gt;Lilly Winfree is the Product Owner of the Frictionless Data for Reproducible Research Project at Open Knowledge Foundation, where she solves researchers’ technical data management issues. She has her PhD in neuroscience, and has been active in the open data, open source, and open science communities for four years. Lilly has given numerous conference presentations and workshops over the past decade, and enjoys presenting on technical topics to technical and non-technical audiences.&lt;/p&gt;
&lt;h2&gt;Links to code / slides / material for the talk (optional)&lt;/h2&gt;
&lt;p&gt;https://github.com/frictionlessdata/
http://frictionlessdata.io/software/&lt;/p&gt;
&lt;h2&gt;Links to previous talks by the speaker&lt;/h2&gt;
&lt;p&gt;Workshop presentation: http://bit.ly/FDepfl
Talk from a previous position: https://youtu.be/4Jqu8mBXcmA&lt;/p&gt;</description>
<persons>
<person id="6947">Lilly Winfree</person>
</persons>
<links>
<link href="https://github.com/frictionlessdata/">GitHub repository</link>
<link href="https://submission.fosdem.org/feedback/9800.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="10506">
<start>13:30</start>
<duration>00:15</duration>
<room>AW1.126</room>
<slug>open_research_sustainable_soft</slug>
<title>On the road to sustainable research software.</title>
<subtitle/>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;ELIXIR is an intergovernmental organization that brings together life science resources across Europe. These resources include databases, software tools, training materials, cloud storage, and supercomputers.&lt;/p&gt;</abstract>
<description>&lt;p&gt;One of the goals of ELIXIR [1] is to coordinate these resources so that they form a single infrastructure. This infrastructure makes it easier for scientists to find and share data, exchange expertise, and agree on best practices. ELIXIR's activities are divided into the following five areas Data, Tools, Interoperability, Compute and Training known as “platforms”. The ELIXIR Tools Platform works to improve the discovery, quality and sustainability of software resources. Software Best Practices task of the Tools Platform aims to raise the quality and sustainability of research software by producing, adopting, promoting and measuring information standards and best practices applied to the software development life cycle. We have published four (4OSS) simple recommendations to encourage best practices in research software [2] and the Top 10 metrics for life science software good practices [3].&lt;/p&gt;
&lt;p&gt;The 4OSS simple recommendations are as follows:
- Develop a publicly accessible open-source code from day one.
- Make software easy to discover by providing software metadata via a popular community registry.
- Adopt a license and comply with the licence of third-party dependencies.
- Have a clear and transparent contribution, governance and communication processes.&lt;/p&gt;
&lt;p&gt;In order to encourage researchers and developers to adopt the 4OSS recommendations and build FAIR (Findable, Accessible, Interoperable and Reusable) software, best practices group in partnership with the ELIXIR Training platform, The Carpentries [4][5], and other communities are creating a collection of training materials [6]. The next step is to adopt, promote, and recognise these information standards and best practices, by developing comprehensive guidelines for software curation, and through workshops for training researchers and developers towards the adoption of software best practices and improvement of the usability of research software tools.&lt;/p&gt;
&lt;p&gt;Additionally, the ELIXIR Software Best Practices WG is currently developing a Software Management Plan under the context of the necessary metrics for assessing adoption of good software development practices [7] and will subsequently develop practical guidelines to support its implementation in ELIXIR projects. We will work with the newly formed ReSA (Research Software Alliance) to facilitate the adoption of this plan to the broader community.
In the past year, the Working Group has also been working on improving the tooling and practices around software citation. This work has been done in collaboration with the eLife journal, the Software Sustainability Institute, Datacite, and Software Heritage, over multiple sprint events: (i) BOSC CoFest, (ii) eLife Innovation Sprint, (iii) FORCE19 Research Software Hackathon, and (iv) BioHackathon.&lt;/p&gt;
&lt;p&gt;[1] “ELIXIR | A distributed infrastructure for life-science information” Internet: https://www.elixir-europe.org/, [Sep. 16, 2018]
[2] Jiménez RC, Kuzak M, Alhamdoosh M et al. (2017) “Four simple recommendations to encourage best practices in research software” F1000Research [Online]. 6:876. https://doi.org/10.12688/f1000research.11407.1
[3] Top 10 metrics for life science software good practices https://doi.org/10.12688/f1000research.9206.1
[4] “carpentries.org” Internet: carpentries.org, Sep. 15, 2018 [Sep. 16, 2018]
[5] “ELIXIR teams up with The Carpentries to boost its training programme | ELIXIR”, Internet: https://www.elixir-europe.org/news/elixir-carpentries-agreement, Aug. 17, 2018 [Sep. 16, 2018]
[6] SoftDev4Research/4OSS-lesson https://doi.org/10.5281/zenodo.2565040
[7] Top 10 metrics for life science software good practices https://doi.org/10.12688/f1000research.9206.1&lt;/p&gt;</description>
<persons>
<person id="7282">Mateusz Kuzak</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10506.php">Submit feedback</link>
</links>
<date>2020-02-01T13:30:00+01:00</date>
</event>
<event id="10549">
<start>13:45</start>
<duration>00:15</duration>
<room>AW1.126</room>
<slug>open_research_stylo</slug>
<title>Stylo : a user friendly text editor for humanities scholars</title>
<subtitle/>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;As an editor for WYSIWYM text, Stylo is designed to change the entire digital editorial chain of scholarly journals the field of human sciences.&lt;/p&gt;
&lt;p&gt;Stylo (https://stylo.ecrituresnumeriques.ca) is designed to simplify the writing and editing of scientific articles in the humanities and social sciences. It is intended for authors and publishers engaged in high quality scientific publishing. Although the structuring of documents is fundamental for digital distribution, this aspect is currently delayed until the end of the editorial process. This task should, however, be undertaken early on in the process; it must be considered by the author himself. The philosophy behind Stylo consists in returning the task of managing the publication markup to researchers. This repositioning of tasks relating to the editorial process relies on the author’s semantic rather than graphic skills.&lt;/p&gt;
&lt;p&gt;This lightning talk will be the opportunity to present this tool and several publishing projects realized with Stylo.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7298">Antoine Fauchié</person>
</persons>
<links>
<link href="https://stylo.ecrituresnumeriques.ca">tool</link>
<link href="https://github.com/EcrituresNumeriques/stylo/">code</link>
<link href="http://stylo-doc.ecrituresnumeriques.ca/fr_FR/#!index.md">doc</link>
<link href="https://submission.fosdem.org/feedback/10549.php">Submit feedback</link>
</links>
<date>2020-02-01T13:45:00+01:00</date>
</event>
<event id="10206">
<start>14:00</start>
<duration>00:15</duration>
<room>AW1.126</room>
<slug>open_research_advene</slug>
<title>Using Advene to accompany research in AudioVisual Digital Humanities</title>
<subtitle/>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Advene is a video annotation platform (free software) that aims at accompanying scholars in their audiovisual analyses workflow. It promotes flexible and evolving annotation structures and interfaces in order to deal with the inherent dynamic nature of analysis. In this presentation, I will present the platform itself, and illustrate its usage through existing Digital Humanities projects that use it, from structuring videos for interview analyses to implementing a workflow for semantic annotation of movies.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6901">Olivier Aubert</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10206.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="10398">
<start>14:15</start>
<duration>00:15</duration>
<room>AW1.126</room>
<slug>open_research_shrivelling_world</slug>
<title>Shrivelling world</title>
<subtitle>A Three dimensional visualisation development for representing geographical time-space </subtitle>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Representing geographical time-space is a fundamental issue in geography, addressing core questions of the discipline, i.e. where are places and what distance separate them. Yet, considering the properties of geographical time space shaped by transport means, no satisfying cartographic representation – including classical maps and plastic space approaches – has been proposed so far.
The &quot;shriveling_world&quot; project aims at producing images of the global geographical time-space, using the third dimension, as in time-space relief maps. The word &quot;shriveling&quot; was introduced by Waldo Tobler in his comments of Mathis-L'Hostis time-space relief image, in order to describe the complex contraction process suggested by the model.
The FOSDEM presentation aims at opening the code to the scientific community, now that the application is close to a first functional version.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7109">Nicolas Roelandt</person>
</persons>
<links>
<link href="https://github.com/theworldisnotflat/shriveling_world">Shriveling world code</link>
<link href="https://submission.fosdem.org/feedback/10398.php">Submit feedback</link>
</links>
<date>2020-02-01T14:15:00+01:00</date>
</event>
<event id="10036">
<start>14:30</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_web_mining</slug>
<title>Empowering social scientists with web mining tools</title>
<subtitle>Why and how to enable researchers to perform complex web mining tasks</subtitle>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Web mining, as represented mostly by the scraping &amp;amp; crawling practices, is not a straightforward task and requires a variety of skills related to web technologies.
However, web mining can be incredibly useful to social sciences since it enables researchers to tap into a formidable source of information about society.&lt;/p&gt;
&lt;p&gt;But researchers may not have the possibility to invest copious amount of times into learning web technologies in and out. They usually rely on engineers to collect data from the web.
The object of this talk is to explain how Sciences Po's &lt;a href=&quot;https://medialab.sciencespo.fr/en&quot;&gt;médialab&lt;/a&gt; designed &amp;amp; developed tools to empower researchers and enable them to perform web mining tasks to answer their research questions. Here is an example of issues we will tackle during this talk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How a social sciences laboratory life can be a very fruitful context for tool R&amp;amp;D regarding webmining&lt;/li&gt;
&lt;li&gt;How to create performant &amp;amp; effective webmining tools that anyone can use (multithreading, parallelism, JS execution, complex spiders etc.)&lt;/li&gt;
&lt;li&gt;How to re-localize data collection: researchers should be able to conduct their own collections without being dependent on external servers or resources&lt;/li&gt;
&lt;li&gt;How to teach researchers the necessary skills: HTML, the DOM, CSS selection etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Examples will be taken mainly from the &lt;a href=&quot;https://github.com/medialab/minet&quot;&gt;minet&lt;/a&gt; CLI tool and the &lt;a href=&quot;https://medialab.github.io/artoo/&quot;&gt;artoo.js&lt;/a&gt; bookmarklet.&lt;/p&gt;
&lt;h2&gt;Speaker&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Yomguithereal&quot;&gt;Guillaume Plique&lt;/a&gt; is a research engineer working for SciencesPo's &lt;a href=&quot;https://medialab.sciencespo.fr/en&quot;&gt;médialab&lt;/a&gt;. He assists social sciences researchers daily with their methods and maintain a variety of FOSS tools geared toward the social sciences community and also developers.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3654">Guillaume Plique</person>
</persons>
<links>
<link href="https://github.com/medialab/minet)">minet</link>
<link href="https://medialab.github.io/artoo/">artoo.js</link>
<link href="https://submission.fosdem.org/feedback/10036.php">Submit feedback</link>
</links>
<date>2020-02-01T14:30:00+01:00</date>
</event>
<event id="10322">
<start>15:00</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_openrefine</slug>
<title>Revamping OpenRefine</title>
<subtitle>a reproducible data wrangler</subtitle>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;OpenRefine is a data transformation tool popular in many communities: data journalism, semantic web, GLAMs, scientific research… In this talk I give an overview of our recent efforts to revamp this project as it approaches its 10th anniversary. We are working on exciting improvements which should help alleviate some of the most salient issues faced by our users. My intention is not to lecture the attendance about how to deal with technical debt or to grow a contributor community - I instead seek feedback and spark discussions about our choices. Let us know what you think and help us take good care of this fantastic tool!&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7194">Antonin Delpeuch</person>
</persons>
<links>
<link href="http://openrefine.org">OpenRefine's website</link>
<link href="https://github.com/OpenRefine/OpenRefine">GitHub project</link>
<link href="https://submission.fosdem.org/feedback/10322.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="10382">
<start>15:30</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_pocket_infrastructures</slug>
<title>Pocket infrastructures to bridge reproducible research, live coding, civic hacktivism and data feminism for/from the Global South</title>
<subtitle/>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;We will showcase Grafoscopio, a flexible, extensible, self contained &quot;pocket infrastructure&quot;, which simplifies infrastructure to amplify participation, so reproducible research and publishing, agile data storytelling and custom data visualization can be used in fields like investigative journalism, data feminism and civic hacktivism. We will show prototypes developed with Grafoscopio in the previously mentioned domains, the motivations behind Grafoscopio and the local community practices around it that deconstruct binary relations of power (software developer/user, data producer / consumer, software binary / source code, male/female) and approach reproducible research practices and tools from a perspective located and embodied in a particular place of the Global South in Latin America and in contrast/dialogue with Global North perspectives.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Reproducible research (and publishing) has been confined mostly to academic places. But it has a lot of potential in several other places like investigative journalism, data feminism and civic hacktivism, as we have showcased by building several prototypes, including: making the so called &quot;Panama Papers&quot; data leak story reproducible; creating domain specific visualizations for medicine information released by 16 governments; porting the Spanish Data Journalism Handbook and the Data Feminism book to our &quot;pocket infrastructures&quot; and the creation of agile and resilient tools and practices to write and publish together (see proposal links for a detailed view of such prototypes).&lt;/p&gt;
&lt;p&gt;To bridge reproducible research and publishing, agile data storytelling and custom data visualization, with the previously mentioned domains, we have co-designed, developed, used and extended a set of inclusive approaches and tools for/from the Global South, that we have called &quot;pocket infrastructures&quot;. Our &quot;pocket infrastructures&quot; simplify infrastructure to amplify participation, and they are mostly self contained, flexible, extensible, and work well with good, low or non connectivity and run from a variety of hardware, from a USB drive, to low end computers, to servers and the &quot;cloud&quot; and anything in between and beyond.
This is in sharp contrast with exclusionary approaches like &quot;Big Data&quot; or others that start with big and/or overcomplex infrastructures and are getting traction in the Global North (or are being imported from there to the Global South as the &quot;only way&quot; forward regarding reproducibility).&lt;/p&gt;
&lt;p&gt;Grafoscopio is one of such pocket infrastructures for reproducible research and publishing, agile visualization and data storytelling and this lecture will showcase Grafoscopio, the motivations behind it, and some prototypes developed with it, and the community practices that allow the development of such projects and prototypes deconstructing also binary relations of power (software developer/user, data producer / consumer, software binary / source code, male/female).&lt;/p&gt;</description>
<persons>
<person id="7175">Offray Luna</person>
</persons>
<links>
<link href="https://mutabit.com/grafoscopio/en.html">Grafoscopio English Web Page</link>
<link href="https://mutabit.com/dataweek/">Data Week: Community regular workshop + (anti)Hackathon</link>
<link href="https://mutabit.com/repos.fossil/mapeda">Spanish Data Journalism Handbook, ported as a reproducible publication</link>
<link href="https://mutabit.com/repos.fossil/datafem/">Data Feminism book, ported as a reproducible publication to our pocket infrastructures</link>
<link href="https://mutabit.com/repos.fossil/documentaton/">Agile and resilient tools and techniques to write and publish together</link>
<link href="https://mutabit.com/offray/blog/en/entry/panama-papers-1">Panama Papers: a case for reproducible research, data activism and frictionless data</link>
<link href="https://mutabit.com/offray/blog/en/entry/sdv-infomed">Domain Specific Visualizations: a glimpse of medicine public data released by governments</link>
<link href="https://mutabit.com/grafoscopio/Docs/En/Talks/Overview/grafoscopio-mapa.svg">Grafoscopio exported mindmap (with some image missing)</link>
<link href="https://submission.fosdem.org/feedback/10382.php">Submit feedback</link>
</links>
<date>2020-02-01T15:30:00+01:00</date>
</event>
<event id="10787">
<start>16:00</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_journalists_are_researchers</slug>
<title>Journalists are researchers like any others</title>
<subtitle/>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;We are not journalists. But we are developers working for journalists. When we received leaks, we are flooded by the huge amount of documents and the huge amount of questions that journalists have, trying to dig into this leak. Among others :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;* Where to begin ?
* How many documents mentioned &quot;tax avoidance&quot; ?
* How many languages are in this leaks ?
* How many documents are in CSV ?
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;See, journalists have more or less the same questions than researchers ! So to help them answer all these questions we developed Datashare. In a nutshell, Datashare is a tool to answer all your questions about a corpus of documents : just like Google but without Google and without sending information to Google. That means that it extracts content and metadata from all types of documents and index it. Then, it detects any people, locations, organizations and email addresses. The web interface expose all of that to let you have a complete overview of your corpus and search through it. Plus Datashare lets you star and tag documents.&lt;/p&gt;
&lt;p&gt;We didn't want to reinvent the wheel, and use our assets that has been proved to work well. How did we end up with Datashare from an heterogeneous environment :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- a command line tool to extract text from huge document corpus
- a proof of concept of NLP pipelines in java
- a shared index based on blacklight/ RoR and SolR
- opensource tools and frameworks !!
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Issues we had to fix :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- UX hard to improve because it is a shared open source repository (layout, ...)
- scalability of SolR with millions of documents
- integration of all the tools in one
- maintainability and robustness while increasing code base
&lt;/code&gt;&lt;/pre&gt;</abstract>
<description/>
<persons>
<person id="7345">Anne L'Hôte</person>
<person id="7429">Bruno Thomas</person>
</persons>
<links>
<link href="https://datashare.icij.org/">Official website</link>
<link href="https://github.com/ICIJ/datashare">Repo Github for the back</link>
<link href="https://github.com/ICIJ/datashare-client">Repo Github for the front</link>
<link href="https://submission.fosdem.org/feedback/10787.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="9899">
<start>16:30</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_makers_practitioners</slug>
<title>Developing from the field.</title>
<subtitle>Shifting design processes and roles between makers and practitioners around research tools development within an interdisciplinary research lab.</subtitle>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Software design and development within interdisciplinary research teams is a specific activity which closely associates makers and practitioners in the equipment of experimental research methods and practices. This closeness allows practitioners to tackle research endeavours’ specific requirements, such as understanding the methodological assumptions encoded within the tools. It also induces a specific relationship between “makers” and their publics of “users” : a non-commercial, situated and case-based crafting process, implying shifting roles and complex decision making. How does this peculiar context affect the design and valorization practices around open research tools and their evolution ? What are the benefits and difficulties of such settings, in terms of work organization, pedagogical approaches, and scientific methodology ? What can be shared for other contexts such as activism or journalism ? Grounding on the presentation of several case studies of research tools’ design and development elaborated at the médialab of Sciences Po, this talk will offer an account of how an interdisciplinary research environment affects and dialogs with established methods of design (“participative design”, “user experience research”), development (“agile methods”), and tool valorization and socialization.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Audrey Baneyx has a PhD in artificial intelligence from Paris 6 university. She is a research engineer at the médialab (Sciences Po, Paris) where she works at the intersection of digital methods, knowledge modelling and designing pedagogical storytellings. She is teaching digital culture and methods and, as a mediator, developing médialab tools communities of practitioners. She is co-leading a research group focusing on gender issues online.&lt;/p&gt;
&lt;p&gt;Robin de Mourat is research designer at the médialab laboratory (Sciences Po, Paris). He works at the intersection between academic equipment and inquiry practices, combining a background in product design, design history &amp;amp; theory, and human-computer interactions, with diverse material and discursive experiments in the Humanities and Social Sciences. He has participated to the making of texts, things and conversations about the epistemology of design activities, interdisciplinary methodologies, and social &amp;amp; cultural studies of scholarly practices. He has been involved for several years in the development of advanced tools for academic writing and publishing in humanities and social sciences contexts.&lt;/p&gt;</description>
<persons>
<person id="4075">Audrey Baneyx</person>
<person id="6981">Robin De Mourat</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9899.php">Submit feedback</link>
</links>
<date>2020-02-01T16:30:00+01:00</date>
</event>
<event id="10323">
<start>17:00</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_shareable_workflow</slug>
<title>Transforming scattered analyses into a documented, reproducible and shareable workflow</title>
<subtitle/>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This presentation is a feedback from experience on helping a researcher transforming a series of scattered analyses into a documented, reproducible and shareable workflow.&lt;br/&gt;
Time allocated by researchers to program / code the analyses required to answer their scientific questions is usually low compared to other tasks. As a result, multiple small experiments are developed and outputs are gathered as best as possible to be presented in a scientific paper. However, science is not only about sharing results but also sharing methods. How can we make our results reproducible when we developed multiple, usually undocumented analyses? What do we do if the program is only applicable to our computer directory architecture? This is always possible to take time to rewrite, re-arrange and document analyses at the time we want/have to share them. Here, I will take the exemple of a &quot;collaboration fest&quot; where we dissected R scripts of a researcher in ecology. We started a reproducible, documented and open-source R-package along with its website, automatically built using continuous integration: &lt;a href=&quot;https://cesco-lab.github.io/Vigie-Chiro_scripts/&quot;&gt;https://cesco-lab.github.io/Vigie-Chiro_scripts/&lt;/a&gt;.&lt;br/&gt;
However, can we think, earlier in the process, a better way to use our small programming time slots by adopting a method that will save time in our future? In this aim, I will present a documentation-first method using little time while writing analyses, but saving a lot when the time has come to share your work.&lt;/p&gt;</abstract>
<description>&lt;h2&gt;Session type (Lecture or Lightning Talk)&lt;/h2&gt;
&lt;p&gt;Lecture&lt;/p&gt;
&lt;h2&gt;Session length (20-40 min, 10 min for a lightning talk)&lt;/h2&gt;
&lt;p&gt;30 min&lt;/p&gt;
&lt;h2&gt;Expected prior knowledge / intended audience&lt;/h2&gt;
&lt;p&gt;No prior knowledge expected. Example will be about building documentation for R software but any developper, using any programming language may be interested in the method adopted.&lt;/p&gt;
&lt;h2&gt;Speaker bio&lt;/h2&gt;
&lt;p&gt;Sébastien Rochette has a PhD in marine ecology. After a few years has a researcher in ecology, he joined ThinkR (https://rtask.thinkr.fr), a company giving courses and consultancy around the R-software. Along with commercial activities, he is highly involved in the development of open-source R packages. He also shares his experience with the R-community through free tutorials, blog posts, online help and other conferences. https://statnmap.com/&lt;/p&gt;
&lt;h2&gt;Links to code / slides / material for the talk (optional)&lt;/h2&gt;
&lt;p&gt;I wrote a blog post in French about what I am planning to present: https://thinkr.fr/transformer-plusieurs-scripts-eparpilles-en-beau-package-r/&lt;br/&gt;
This topic is also related to another blog post: https://rtask.thinkr.fr/when-development-starts-with-documentation/&lt;/p&gt;
&lt;h2&gt;Links to previous talks by the speaker&lt;/h2&gt;
&lt;p&gt;Talks about R are in my Github repository: https://github.com/statnmap/prez/. The &quot;README&quot; lists talks that have a live recorded video.&lt;br/&gt;
As a researcher, I also gave multiple talks about marine science, modelling and other topics related to my research.&lt;/p&gt;</description>
<persons>
<person id="7196">Sébastien Rochette</person>
</persons>
<links>
<link href="https://statnmap.com">Speaker personal website</link>
<link href="https://cesco-lab.github.io/Vigie-Chiro_scripts/">Website of the R-package created</link>
<link href="https://submission.fosdem.org/feedback/10323.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="10341">
<start>17:30</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_elife</slug>
<title>A community-driven approach towards open innovation for research communication</title>
<subtitle/>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The advancement of web technologies has created an opportunity for developing tools for real-time collaborations, text-mining, interactive data visualisations, sharing reproducible compute environments, etc. These tools can change the ways researchers share, discover, consume and evaluate research and help promote open science and encourage responsible research behaviours.&lt;/p&gt;
&lt;p&gt;Through its Innovation Initiative, eLife invests heavily in software development, new product design, collaboration and outreach so that the potential for improvements in the digital communication of new research can start to be realised. In particular, we support exclusively the development of open-source tools, with extensible capabilities, that can be used, adopted and modified by any interested party and actively engage the community of open innovators.&lt;/p&gt;
&lt;p&gt;In this talk, we will introduce the following projects:
* Reproducible Document Stack (RDS), an open-tool stack capturing code, data and compute environment in a live paper to improve research reproducibility (see demo &lt;a href=&quot;https://elifesci.org/reproducible-example&quot;&gt;here&lt;/a&gt;)
* Fostering collaboration and innovation through hacking: &lt;a href=&quot;https://sprint.elifesciences.org&quot;&gt;eLife Innovation Sprint&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We believe that openness is crucial to the future of research, and by supporting the community and promoting open-source research software, we can help build a culture towards integral, collaborative, open and reusable research. We hope to share some of our visions and learnings, and invite feedback and contributions from the wider open-source community on the next steps forward.&lt;/p&gt;</abstract>
<description>&lt;h1&gt;Speaker bio&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Emmy Tsang&lt;/em&gt; is the Innovation Community Manager at eLife, a non-profit organisation with the mission to accelerate research communication and discovery. She is responsible for the day-to-day running of the eLife Innovation Initiative, which supports the development of open-source tools, technologies and processes aimed at improving the discovery, sharing, consumption and evaluation of scientific research. Prior to joining eLife, Emmy completed a PhD in neuroscience at the European Molecular Biology Laboratory in Rome, Italy. She is passionate about building communities, fostering collaborations and developing technological solutions to make research more open, reproducible and user-friendly.&lt;/p&gt;
&lt;p&gt;Twitter: &lt;a href=&quot;https://twitter.com/eLifeInnovation&quot;&gt;@eLifeInnovation&lt;/a&gt; / &lt;a href=&quot;https://twitter.com/emmy_ft&quot;&gt;@emmy_ft&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;Previous talks by speaker&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Invited speaker, Biohackathon-Europe, November 2019 ( &lt;a href=&quot;https://doi.org/10.6084/m9.figshare.11295032&quot;&gt;slides&lt;/a&gt; )&lt;/li&gt;
&lt;li&gt;Mozilla Open Leaders X Launch party, October 2019 ( &lt;a href=&quot;https://youtu.be/t7o3bEGTW8s?t=97&quot;&gt;video&lt;/a&gt; )&lt;/li&gt;
&lt;li&gt;Invited panellist, EMBL Open Access Week panel on “How is scientific publishing changing?”, September 2019&lt;/li&gt;
&lt;li&gt;Invited speaker, SciLifeLab workshop on “Reproducibility and Data Reuse in Life Science”, September 2019 ( &lt;a href=&quot;https://youtu.be/fKnef69wT3g?t=10668&quot;&gt;video&lt;/a&gt;, &lt;a href=&quot;https://figshare.com/articles/190919_SciLifeLab_eLife_workshop_talk_on_reproducible_publishing/9868625&quot;&gt;slides&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Tech talk, ISMB/ECCB, July 2019 (&lt;a href=&quot;https://www.youtube.com/watch?v=7mOadlm7-WI&quot;&gt;video&lt;/a&gt;, &lt;a href=&quot;https://figshare.com/articles/190723_RDS_talk_at_ISMB_ECCB/8983640&quot;&gt;slides&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Speaker, OAI11, June 2019 (&lt;a href=&quot;https://figshare.com/articles/190620_OAI11_Reproducibility/8299226&quot;&gt;slides&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Invited demo, SSI Collaboration Workshop, April 2019&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="7198">Emmy Tsang</person>
</persons>
<links>
<link href="http://www.elifesciences.org/about/innovation">About eLife Innovation</link>
<link href="http://www.elifesci.org/labs">eLife Labs</link>
<link href="http://elifesci.org/reprodoc">Reproducible Document Stack</link>
<link href="http://sprint.elifesciences.org">eLife Innovation Sprint</link>
<link href="https://submission.fosdem.org/feedback/10341.php">Submit feedback</link>
</links>
<date>2020-02-01T17:30:00+01:00</date>
</event>
<event id="10592">
<start>18:00</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_joss</slug>
<title>The Journal of Open Source Software: credit for invisible work</title>
<subtitle/>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Researchers rarely cite software they use as part of their research. As a result, research software and the time spent developing it have become invisible scholarly contributions. This lack of visibility reduces the incentives that are necessary to produce and share high quality software that are essential for the progress of science. The Journal of Open Source Software (JOSS) is an open source, open access journal primarily designed to make it easier for those individuals authoring research software to gain career credit for their work by publishing short software papers. Software papers are a recognized mechanism for authors of research software to create a citable ‘entity’ which can easily be cited in journals and as such directly impact a researcher’s career via established metrics such as the h-index. JOSS is unique in that it only accepts very short (~ 1-2 pages) papers, with short summaries and links to the software repository. In that sense, the software papers are not the focus of the review. Instead, we ask reviewers to conduct a thorough review of the associated software (which must be open source) ensuring that it is well documented, straightforward to install and functions as expected. In this talk I will describe the origin and impact that JOSS has had on research open source and also touch upon issues such as sustainability and credit.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7315">Karthik Ram</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10592.php">Submit feedback</link>
</links>
<date>2020-02-01T18:00:00+01:00</date>
</event>
<event id="9371">
<start>18:30</start>
<duration>00:30</duration>
<room>AW1.126</room>
<slug>open_research_dspace7</slug>
<title>DSpace 7: A major leap forward for the leading institutional repository platform</title>
<subtitle>Tale of a mature, international FOSS community embracing Angular</subtitle>
<track>Open Research Tools and Technologies</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The DSpace community is anticipating the largest release ever in 2020 with DSpace 7 ( https://wiki.duraspace.org/display/DSPACE/DSpace+Release+7.0+Status ). The platform is used in thousands of research institutions around the globe and powers systems including dspace.mit.edu, dash.harvard.edu and openknowledge.worldbank.org. If you download an academic paper through Google Scholar today, the chance is large that it is served to you thanks to a DSpace institutional repository.&lt;/p&gt;
&lt;p&gt;The talk aims to briefly introduce the scope and usage of the DSpace software. Attendees will learn how the governance of the DSpace community is structured, and what lead to the decision to drop the two legacy UIs, JSPUI and XMLUI, in favour of an endeavour to introduce Angular as the new UI layer.&lt;/p&gt;
&lt;p&gt;The most relevant piece of the presentation for the Fosdem audience, will be an outline of the tooling and best practices applied in the community, together with a pro and con evaluation.&lt;/p&gt;
&lt;p&gt;We are very keen on learning from other participants in the audience what they could advise, both on a technical and organisational level, going forward.&lt;/p&gt;
&lt;h2&gt;Previous presentations on DSpace 7&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://lecture2go.uni-hamburg.de/l2go/-/get/v/24819&quot;&gt;Introducing DSpace 7&lt;/a&gt;
&lt;a href=&quot;https://lecture2go.uni-hamburg.de/l2go/-/get/v/24831&quot;&gt;DSpace 7 Configurable Entities&lt;/a&gt;
&lt;a href=&quot;https://lecture2go.uni-hamburg.de/l2go/-/get/v/24820&quot;&gt;The DSpace 7 Angular UI from a user perspective&lt;/a&gt;&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6674">Bram Luyten</person>
</persons>
<links>
<link href="https://wiki.duraspace.org/display/DSPACE/DSpace+Release+7.0+Status">DSpace 7 Release Status and Prior Presentations</link>
<link href="https://github.com/bram-atmire">Presenter Github Profile</link>
<link href="https://twitter.com/luytenbram">Twitter</link>
<link href="http://www.dspace.org">DSpace</link>
<link href="https://github.com/DSpace/DSpace">Main DSpace codebase</link>
<link href="https://github.com/DSpace/dspace-angular">Angular DSpace codebase</link>
<link href="https://submission.fosdem.org/feedback/9371.php">Submit feedback</link>
</links>
<date>2020-02-01T18:30:00+01:00</date>
</event>
</room>
<room name="K.3.201">
<event id="10704">
<start>10:30</start>
<duration>00:10</duration>
<room>K.3.201</room>
<slug>gamedev_welcome</slug>
<title>Welcome to game development devroom</title>
<subtitle/>
<track>Game Development</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Welcome to FOSDEM game development devroom! We'll present what this is all about and invite you to participate.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4403">Julian Murgia</person>
<person id="6467">George Marques</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10704.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10522">
<start>10:45</start>
<duration>00:25</duration>
<room>K.3.201</room>
<slug>gamedev_python_for_godot</slug>
<title>Python for Godot</title>
<subtitle/>
<track>Game Development</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Godot is an incredible open source game engine. Among it key features, it comes packed with a script language called GDscript and loosely based on Python.
But could it be even better ? Could we use the real Python to code our game on Godot ?&lt;/p&gt;
&lt;p&gt;And maybe even more important, is it really a good idea ?&lt;/p&gt;</abstract>
<description>&lt;p&gt;Godot is an advanced, feature-packed, multi-platform 2D and 3D open source game engine.
The project has joined the Software Freedom Conservancy project and it growing community makes it hopes to become a real alternative to Unity&amp;amp;GameMaker.&lt;/p&gt;
&lt;p&gt;This talk present the Godot-Python project aiming at bringing Python as a fully integrated language into Godot.&lt;/p&gt;
&lt;p&gt;We will have a look at Godot’s internal architecture as is it itself a real interpreter with it garbage collector, dynamic typing, introspection and even builtin custom scripting language.
All of this having to work next to our Python interpreter and communicate back and forth with it.&lt;/p&gt;
&lt;p&gt;We will then dig into Godot-Python design choices, both past and current, this project came through a looot of errors and trials ;-)&lt;/p&gt;
&lt;p&gt;Finally we will discuss the pros and cons about using Python as a script language for Godot vs the traditional GDscript.&lt;/p&gt;
&lt;p&gt;The audience should have some basic knowledge of C level computing (static vs dynamic language, compilation &amp;amp; linking).&lt;/p&gt;</description>
<persons>
<person id="7285">Emmanuel Leblond</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10522.php">Submit feedback</link>
</links>
<date>2020-02-01T10:45:00+01:00</date>
</event>
<event id="9649">
<start>11:15</start>
<duration>00:45</duration>
<room>K.3.201</room>
<slug>gamedev_0ad_graphics_pipeline</slug>
<title>0 A.D.: Graphics Pipeline</title>
<subtitle>How open-source game graphics works</subtitle>
<track>Game Development</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;A story about graphics pipeline of 0 A. D. (an open-source game of Wildfire Games) and its issues.&lt;/p&gt;
&lt;p&gt;Talking structure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A little history of 0AD (https://play0ad.com/about/the-story-of-0-a-d/)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How our graphics pipeline works&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Used technologies (SDL, OpenGL 1/2, ARB/GLSL shaders)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Known problems (old OpenGL, legacy support of OpenGL drivers on macOS 10.14)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Future plans&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
</abstract>
<description/>
<persons>
<person id="6163">Vladislav Belov</person>
</persons>
<links>
<link href="https://play0ad.com">Official website of 0 A.D.</link>
<link href="https://wildfiregames.com/">Official website of Wildfire Games</link>
<link href="https://submission.fosdem.org/feedback/9649.php">Submit feedback</link>
</links>
<date>2020-02-01T11:15:00+01:00</date>
</event>
<event id="9643">
<start>12:05</start>
<duration>00:25</duration>
<room>K.3.201</room>
<slug>gamedev_veripeditus</slug>
<title>Can anyone need Veripeditus?</title>
<subtitle>Reviving a Python AR gaming framework</subtitle>
<track>Game Development</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Veripeditus is a framework for teh creation of mobile augemented reality games in Python, designed, but not limited to, use in education. The project is currently sleeping due to various reasons. We would like to find out whether its technology is still current and if there is value in reviving it.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="2214">Dominik George</person>
</persons>
<links>
<link href="https://edugit.org/Teckids/Veripeditus/veripeditus-server">Veripeditus source repositor</link>
<link href="https://submission.fosdem.org/feedback/9643.php">Submit feedback</link>
</links>
<date>2020-02-01T12:05:00+01:00</date>
</event>
<event id="10309">
<start>12:35</start>
<duration>00:25</duration>
<room>K.3.201</room>
<slug>gamedev_openxr</slug>
<title>Game development with OpenXR</title>
<subtitle/>
<track>Game Development</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Last year Khronos released OpenXR, an open API for using XR hardware. In this talk we will look at the practical side of creating VR applications and games with OpenXR.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Since the Oculus VR development kit started a resurgence of consumer VR, game development has largely been relegated to proprietary VR APIs and runtimes. Khronos reacted by creating an open API for using XR hardware and released it OpenXR 1.0 in July 2019. Collabora implemented the OpenXR API in a runtime nicknamed Monado, built on open source VR hardware drivers. With these building blocks VR applications can now use standardized APIs and run on a FOSS stack.&lt;/p&gt;
&lt;p&gt;In this talk, Christoph will give an overview of the feature set of the OpenXR API and the practical side of creating VR applications and games with OpenXR. We will look at low level code using the OpenXR API directly as well as an OpenXR plugin for the godot engine.&lt;/p&gt;</description>
<persons>
<person id="7189">Christoph Haag</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10309.php">Submit feedback</link>
</links>
<date>2020-02-01T12:35:00+01:00</date>
</event>
<event id="10702">
<start>13:05</start>
<duration>00:55</duration>
<room>K.3.201</room>
<slug>gamedev_open_talks</slug>
<title>Open lightning talks</title>
<subtitle>Showcase your open source project</subtitle>
<track>Game Development</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This hour is dedicated to people who want to come up and shortly present their project, without having to schedule a full talk.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Bring your open source game-related project (be it an engine, game, demo, tool, or something else) and showcase to our fellow gamedev friends. Talks should have at most five minutes with no time allotted for questions. If you want to bring a laptop to show something, keep it ready and install/uninstall it as fast as possible (will be part of your five minutes). Please be understanding so everyone can have a chance. Contact the room managers on the event day if you want to present something.&lt;/p&gt;</description>
<persons>
<person id="6467">George Marques</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10702.php">Submit feedback</link>
</links>
<date>2020-02-01T13:05:00+01:00</date>
</event>
<event id="9319">
<start>14:05</start>
<duration>00:55</duration>
<room>K.3.201</room>
<slug>gamedev_java_games_doom3</slug>
<title>Java &amp; Games</title>
<subtitle>A rivalrous case-study from porting Doom 3</subtitle>
<track>Game Development</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;According to the interwebs, Java is one of the most popular programming languages in the multiverse.&lt;br/&gt;
And yet, when it comes to games, its popularity seems to dwindle.&lt;/p&gt;
&lt;p&gt;Why though...&lt;br/&gt;
Is it really not suited for game development?&lt;br/&gt;
Is the language as bad as the critics claim??&lt;br/&gt;
Is GC...EVIL!?&lt;/p&gt;
&lt;p&gt;I have this side-project of porting Doom 3 from C/C++ to Java. And even though Doom 3 is a ~15 year old game, it is still a massive AAA code-base. So I believe my experiences there can adequately answer a lot of the questions that come to mind when you think of Java &amp;amp; Games.&lt;/p&gt;
&lt;p&gt;During this talk, I will try to convince you that Java is a very viable game prototyping/development tool.&lt;br/&gt;
Either that, or will add more fuel to the flame...&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3780">Mahmoud Abdelghany</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9319.php">Submit feedback</link>
</links>
<date>2020-02-01T14:05:00+01:00</date>
</event>
<event id="10228">
<start>15:05</start>
<duration>00:30</duration>
<room>K.3.201</room>
<slug>gamedev_double_contributors_tricks</slug>
<title>Double your contributors using these 3 simple tricks!</title>
<subtitle>Why would someone work on your project?</subtitle>
<track>Game Development</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;For some arcane reason contributors spend their precious time on open source game projects. Why do they do this? And more importantly: What can you do to make them do it on your project?&lt;/p&gt;</abstract>
<description>&lt;p&gt;FOSS game projects live on the motivation of their contributors. This motivation usually consists of two parts: The desire to contribute to FOSS game development in general and the desire to contribute to a specific project. While the former is very interesting to discuss, our ability to affect it is negligible. Thankfully, the control of the latter is definitely possible, and it is crucial to the survival of our projects.
In this talk we will analyse different characteristics of FOSS game projects with regards to contributor recruitment and retention. We will try to present practical steps to lower the risk of your current or future projects dying to inactivity and obscurity.&lt;/p&gt;</description>
<persons>
<person id="7151">Eshed Shaham</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10228.php">Submit feedback</link>
</links>
<date>2020-02-01T15:05:00+01:00</date>
</event>
<event id="10756">
<start>15:45</start>
<duration>01:00</duration>
<room>K.3.201</room>
<slug>benefits_porting_godot_engine_vulkan</slug>
<title>Benefits of porting Godot Engine to Vulkan</title>
<subtitle>List of benefits observed from porting Godot Engine to Vulkan</subtitle>
<track>Game Development</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Godot 4.0 is in the process of being ported from OpenGL to a Vulkan rendering API.
This new technology provides new challenges and benefits for improving quality and performance,
which will be explained and compared during this presentation.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Godot 4.0 is in the process of being ported from OpenGL to a Vulkan rendering API.
This new technology provides new challenges and benefits for improving quality and performance,
which will be explained and compared during this presentation.&lt;/p&gt;</description>
<persons>
<person id="3888">Juan Linietsky</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10756.php">Submit feedback</link>
</links>
<date>2020-02-01T15:45:00+01:00</date>
</event>
<event id="10663">
<start>16:55</start>
<duration>00:20</duration>
<room>K.3.201</room>
<slug>gamedev_blender_projects</slug>
<title>Blender projects for 2020</title>
<subtitle/>
<track>Game Development</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="6621">Ton Roosendaal</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10663.php">Submit feedback</link>
</links>
<date>2020-02-01T16:55:00+01:00</date>
</event>
<event id="10711">
<start>17:15</start>
<duration>00:30</duration>
<room>K.3.201</room>
<slug>gamedev_reloading_escoria</slug>
<title>Reloading Escoria</title>
<subtitle>Make point and click adventure games under Godot great again</subtitle>
<track>Game Development</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Escoria is a Libre framework for the creation of point-and-click adventure games with MIT-Licenced Godot Engine. Since its release, Godot Engine changed a lot at fast pace while Escoria code was still based on old Godot 1.x features.&lt;/p&gt;
&lt;p&gt;In this presentation, I'll present the current state of Escoria and discuss the process of rewrite as a Godot Engine plugin. It'll cover architecture and design, allowing adventure game creators to use Godot Engine as a full-featured editor for their adventure game.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Escoria is a Libre framework for the creation of point-and-click adventure games with MIT-Licenced Godot Engine. It was initially developed for the adventure game The Interactive Adventures of Dog Mendonça and Pizzaboy® and later streamlined for broader usages and open sourced as promised to the backers of the Dog Mendonça Kickstarter campaign. Since its release, Godot Engine changed a lot at fast pace while Escoria code was still based on old Godot 1.x features. It is more a collection of dedicated scripts than a proper Godot Engine layer designed for point and click adventure games. Evolving Escoria is quite a big task, so it might be better to actually start it over with a new project architecture while keeping its most interesting features in the process.&lt;/p&gt;
&lt;p&gt;In this presentation, I'll present the current state of Escoria and discuss the process of rewrite as a Godot Engine plugin. It'll cover architecture and design, allowing them to use Godot Engine as a full-featured editor for their adventure game.&lt;/p&gt;</description>
<persons>
<person id="4403">Julian Murgia</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10711.php">Submit feedback</link>
</links>
<date>2020-02-01T17:15:00+01:00</date>
</event>
<event id="10234">
<start>17:50</start>
<duration>00:40</duration>
<room>K.3.201</room>
<slug>gamedev_spring_steam</slug>
<title>Spring &amp; Steam, an Odyssey</title>
<subtitle/>
<track>Game Development</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The Spring RTS Engine has been in active development since 2005. In the past few years, two of its games, Evolution RTS and Zero-K, have been released on Steam. The journey to these releases was long and difficult. Let's regale ourselves with tales of the adventures of the devs, learn many things that you shouldn't do, and also learn what to do in case you've already done what you shouldn't have.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7151">Eshed Shaham</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10234.php">Submit feedback</link>
</links>
<date>2020-02-01T17:50:00+01:00</date>
</event>
</room>
<room name="K.3.401">
<event id="10126">
<start>10:30</start>
<duration>00:20</duration>
<room>K.3.401</room>
<slug>riscv_lowrisc</slug>
<title>How lowRISC made its Ibex RISC-V CPU core faster</title>
<subtitle>Using open source tools to improve an open source core</subtitle>
<track>RISC-V</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Ibex implements RISC-V 32-bit I/E MC M-Mode, U-Mode and PMP. It uses an in order 2 stage pipe and is best suited for area and power sensitive rather than high performance applications. However there is scope for meaningful performance gains without major impact to power or area. This talk describes work done at lowRISC to analyse and improve the performance of Ibex. The RTL of an Ibex system is simulated using Verilator to run CoreMark and Embench and the traces analysed to identify the major sources of stalls within them. This informs where improvements should be targeted. The open source implementation tools Yosys and openSTA are used to assess potential timing and area impacts of these improvements. In this talk you’ll learn about the pipeline of Ibex, methods to analyse the performance of CPU microarchitecture and how to use Yosys and openSTA to analyse what limits clock frequency in a design.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7015">Greg Chadwick</person>
</persons>
<links>
<link href="https://github.com/lowRISC/ibex">Ibex github repository</link>
<link href="http://lowrisc.org">lowRISC website</link>
<link href="https://submission.fosdem.org/feedback/10126.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="9656">
<start>10:50</start>
<duration>00:20</duration>
<room>K.3.401</room>
<slug>riscv_blackparrot</slug>
<title>BlackParrot</title>
<subtitle>An Open Source RISC-V Multicore For and By the World</subtitle>
<track>RISC-V</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;BlackParrot is a Linux-capable, cache-coherent RISC-V multicore, designed for efficiency and ease of use. In this talk, we will provide an architectural overview of BlackParrot, focusing on the design principles and development process as well as the software and hardware ecosystems surrounding the core. We will also discuss the project roadmap and our plans to engage the open-source community. Last, we will demonstrate a multithreaded RISC-V program running on top of Linux on a multicore BlackParrot FPGA implementation.&lt;/p&gt;</abstract>
<description>&lt;p&gt;BlackParrot aims to be the default open-source, Linux-capable, cache-coherent, RV64GC multicore used by the world. Although originally developed by the University of Washington and Boston University, BlackParrot strives to be community-driven and infrastructure agnostic, a core which is Pareto optimal in terms of power, performance, area and complexity. In order to ensure BlackParrot is easy to use, integrate, modify and most importantly trust, development is guided by three core principles: Be Tiny, Be Modular, and Be Friendly. Development efforts have prioritized ease of use and silicon validation as first order design metrics, so that users can quickly get started and trust that their results will be representative of state-of-the-art ASIC designs. BlackParrot is ideal as the basis for a research platform, a lightweight accelerator host or as a standalone Linux core.&lt;/p&gt;</description>
<persons>
<person id="6852">Dan Petrisko</person>
</persons>
<links>
<link href="https://github.com/black-parrot/pre-alpha-release">Code Repository</link>
<link href="https://github.com/black-parrot-examples">Tapeout Examples</link>
<link href="https://github.com/bespoke-silicon-group/basejump_stl">BaseJump STL</link>
<link href="https://submission.fosdem.org/feedback/9656.php">Submit feedback</link>
</links>
<date>2020-02-01T10:50:00+01:00</date>
</event>
<event id="9628">
<start>11:10</start>
<duration>00:20</duration>
<room>K.3.401</room>
<slug>riscv_hammerblade</slug>
<title>The HammerBlade RISC-V Manycore</title>
<subtitle>A programmable, scalable RISC-V fabric</subtitle>
<track>RISC-V</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;HammerBlade is an open source RISC-V manycore that has been under development since 2015 and has already been silicon validated with a 511-core chip in 16nm TSMC. It features extensions to the RISC-V ISA that target GPU-competitive performance for parallel programs (i.e. GPGPU) including graphs and ML workloads. In this talk we will overview the components of the HW and software ecosystem in the latest version, and show you how to get up and running as an open source user or contributor in either SW or HW on Amazon F1 cloud FPGAs.&lt;/p&gt;</abstract>
<description>&lt;p&gt;HammerBlade is an open source RISC-V manycore that has been under development since 2015 and has already been silicon validated with a 511-core chip in 16nm TSMC. It features extensions to the RISC-V ISA that target GPU-competitive performance for parallel programs (i.e. GPGPU) including graphs and ML workloads. In this talk we will overview the components of the HW and software ecosystem in the latest version, and show you how to get up and running as an open source user or contributor in either SW or HW on Amazon F1 cloud FPGAs. We will overview the HW-architecture, the CUDA-like programming environment, the runtime software, the HW architecture, and our Amazon F1 cloud emulation and cosimulation environments, and our suite of performance analysis tools.&lt;/p&gt;</description>
<persons>
<person id="6851">Michael Taylor</person>
</persons>
<links>
<link href="http://http://bjump.org/manycore/">Github repo</link>
<link href="https://sampl.cs.washington.edu/tvmconf/slides/Michael-Taylor-HammerBlade.pdf">Older Vision talk</link>
<link href="http://cseweb.ucsd.edu/~mbtaylor/papers/HC29.21.430-Celerity-RISC-V-Davidson-UCSD.pdf">Older version of the architecture</link>
<link href="https://submission.fosdem.org/feedback/9628.php">Submit feedback</link>
</links>
<date>2020-02-01T11:10:00+01:00</date>
</event>
<event id="10061">
<start>11:30</start>
<duration>00:20</duration>
<room>K.3.401</room>
<slug>riscv_openesp</slug>
<title>Open ESP</title>
<subtitle>The Heterogeneous Open-Source Platform for Developing RISC-V Systems</subtitle>
<track>RISC-V</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;ESP is an open-source research platform for RISC-V systems-on-chip that integrate many hardware accelerators.&lt;br/&gt;
ESP provides a vertically integrated design flow from software development and hardware integration to full-system prototyping on FPGA. For application developers, ESP offers domain-specific automated solutions to synthesize new accelerators for their software and map it onto the heterogeneous SoC architecture. For hardware engineers, ESP offers automated solutions to integrate their accelerator designs into the complete SoC.&lt;br/&gt;
The participants in this FOSDEM20 event will learn how to use ESP from the viewpoints of both application developers and hardware engineers by following a series of short hands-on tutorials embedded in the lecture.
Conceived as a heterogeneous integration platform and tested through years of teaching at Columbia University, ESP is intrinsically suited to foster collaborative engineering of RISC-V based SoCs across the open-source community.&lt;/p&gt;</abstract>
<description>&lt;ul&gt;
&lt;li&gt;What is ESP?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ESP is an open-source research platform to design and program heterogeneous systems-on-chip (SoCs). A heterogeneous SoC combines multiple general-purpose processor cores and many specialized hardware accelerators.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What does ESP offer?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ESP provides automated solutions to (a) synthesize new accelerators, (b) integrate them with RISC-V processors and other third party accelerators into a complete SoC, (c) rapidly prototype the SoC on an FPGA board, and (d) run software applications that take advantage of these accelerators.
ESP contributes to the open-source movement by supporting the realization of more scalable architectures for SoCs that integrate more heterogeneous components, thanks to a more flexible design methodology that accommodates different specification languages and design flows.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What is an example of an SoC prototype realized with ESP?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With ESP's automation capabilities, it is easy to realize FPGA-based prototypes of complete SoCs. For example, an SoC may feature the Ariane RISC-V processor core booting Linux, a multi-plane network-on-chip supporting a partitioned memory hierarchy with multiple DRAM controllers, and tens of loosely-coupled accelerators that execute coarse-grained tasks exchanging large amount of data with DRAM through direct-memory access (DMA). These accelerators can be third-party open-source hardware components that “speak” the AXI protocol (e.g. the NVIDIA NVDLA accelerator for deep learning) or new accelerators that can be synthesized with different design flows from specifications written in different languages, including: C with Xilinx Vivado HLS, SystemC with Cadence Stratus HLS, Keras TensorFlow and PyTorch with hls4ml, Chisel, SystemVerilog, Verilog, and VHDL.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Why is ESP relevant now?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Information technology has entered the age of heterogeneous computing. Across a variety of application domains, computing systems rely on highly heterogeneous architectures that combine multiple general-purpose processors with specialized hardware accelerators. The complexity of these systems, however, threatens to widen the gap between the capabilities provided by semiconductor technologies and the productivity of computer engineers. ESP tackles this challenge by raising the level of abstraction in the design process, simplifying the domain-specific programming of heterogeneous architectures, and leveraging the potential of the emerging open-source hardware movement.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What are some key ingredients of the ESP approach?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Building on years of research on communication-based system-level design at Columbia University, ESP combines an architecture and a methodology. The flexible tile-based architecture simplifies the integration of heterogeneous components by balancing regularity and specialization. The companion methodology raises the level of abstraction to system-level design, thus promoting closer collaboration among software programmers and hardware engineers. Through the automatic generation of device drivers from pre-designed templates, ESP simplifies the invocation of accelerators from user-level applications executing on top of Linux. Through the automatic generation of a multi-plane network-on-chip from a parameterized model, the ESP architecture can scale to accommodate many processors, tens of accelerators, and a distributed memory hierarchy. A set of ESP Platform Services provides pre-validated solutions for accelerators configuration, memory management, sharing of system resources, and dynamic frequency scaling, among others.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How does ESP differ from other RISC-V based platforms?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To date, the majority of the open-source hardware (OSH) efforts related to RISC-V have focused on the development of processor cores that implement the RISC-V ISA and small-scale SoCs that connect these cores with tightly-coupled functional units and coprocessors, typically through bus-based interconnects. Meanwhile, there have been less efforts in developing solutions for large-scale SoCs that combine RISC-V cores with many loosely-coupled components, such as coarse-grain accelerators, interconnected with a network-on-chip (NoC). Compared to other RISC-V related projects, ESP is focused on scalability (with the NoC-based architecture), heterogeneity (with emphasis on loosely-coupled accelerators), and flexibility (with support of different design flows). Just like the ESP architecture simplifies the integration of heterogeneous components developed by different teams, the ESP methodology embraces the use of heterogeneous design flows for component development.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Who are the authors of ESP?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ESP has been developed by the System-Level Design (SLD) group in the Department of Computer Science at Columbia University during the past seven years. The SLD group has published over a dozen scientific papers in peer-reviewed conferences and journals to describe the most innovative aspects of ESP. ESP has been released as an open-source project via GitHub in the summer 2019.&lt;/p&gt;</description>
<persons>
<person id="7058">Luca Carloni</person>
</persons>
<links>
<link href="https://www.esp.cs.columbia.edu/">Main website of the ESP project</link>
<link href="https://github.com/sld-columbia/esp">GitHub repository of the ESP project</link>
<link href="https://submission.fosdem.org/feedback/10061.php">Submit feedback</link>
</links>
<date>2020-02-01T11:30:00+01:00</date>
</event>
<event id="10035">
<start>11:50</start>
<duration>00:20</duration>
<room>K.3.401</room>
<slug>riscv_chisel</slug>
<title>Building Loosely-coupled RISC-V Accelerators</title>
<subtitle>Using Chisel/FIRRTL to build accelerator templates and collateral for the ESP SoC platform</subtitle>
<track>RISC-V</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The burgeoning RISC-V &lt;em&gt;hardware&lt;/em&gt; ecosystem includes a number of microprocessor implementations [1, 3] and SoC generation frameworks [1, 2, 7]. However, while accelerator “sockets” have been defined and used (e.g., Rocket Chip’s custom coprocessor/RoCC), accelerators require &lt;em&gt;additional&lt;/em&gt; collateral to be generated like structured metadata descriptions, hardware wrappers, and device drivers. Requiring manual effort to generate this collateral proves both time consuming and error prone and is at odds with an agile approach to hardware design. However, the existence and use of hardware construction languages and hardware compilers provides a means to automate this process. Through the use of the Chisel hardware description language [4] and the FIRRTL hardware compiler [5], we provide a definition of an abstract accelerator template which users then implement to integrate an accelerator with the Embedded Scalable Platform (ESP) System-on-Chip platform [2, 8]. Through the use of this template, we are able to automatically generate XML metadata necessary to integrate accelerators with the ESP platform and work on generating all collateral is in progress. Our accelerator template is open source software provided under an Apache 2.0 license [6].&lt;/p&gt;
&lt;p&gt;[1] CHIPS alliance Rocket-chip. &lt;em&gt;GitHub Repository&lt;/em&gt;. Online: https://github.com/chipsalliance/rocket-chpi.
[2] Columbia University Embedded scalable platform. &lt;em&gt;git repository&lt;/em&gt;. Online: https://github.com/sld-columbia/esp.
[3] ETH Zurich Ariane. &lt;em&gt;GitHub Repository&lt;/em&gt;. Online: https://github.com/pulp-platform/ariane.
[4] Freechips Project Chisel3. &lt;em&gt;GitHub Repository&lt;/em&gt;. Online: https://github.com/freechipsproject/chisel3.
[5] Freechips Project FIRRTL. &lt;em&gt;GitHub Repository&lt;/em&gt;. Online: https://github.com/freechipsproject/firrtl.
[6] IBM ESP chisel acclerators. &lt;em&gt;GitHub Repository&lt;/em&gt;. Online: https://github.com/ibm/esp-chisel-accelerators.
[7] Princeton University OpenPiton. &lt;em&gt;GitHub Repository&lt;/em&gt;. Online: https://github.com/PrincetonUniversity/openpiton.
[8] ESP: The open-source heterogeneous system-on-chip platform. Online: https://www.esp.cs.columbia.edu/.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6966">Schuyler Eldridge</person>
</persons>
<links>
<link href="https://github.com/ibm/esp-chisel-accelerators">GitHub: Project Repository</link>
<link href="https://www.esp.cs.columbia.edu/">ESP Website</link>
<link href="https://submission.fosdem.org/feedback/10035.php">Submit feedback</link>
</links>
<date>2020-02-01T11:50:00+01:00</date>
</event>
<event id="10110">
<start>12:10</start>
<duration>00:20</duration>
<room>K.3.401</room>
<slug>riscv_eraser</slug>
<title>ERASER: Early-stage Reliability And Security Estimation for RISC-V</title>
<subtitle>An open source framework for resilience/security evaluation and validation in RISC-V processors </subtitle>
<track>RISC-V</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;RISC-V processors have gained acceptance across a wide range of computing domains, from IoT to embedded/mobile class and even in server-class processing systems. In processing systems ranging from connected cars and autonomous vehicles, to those on-board satellites and spacecrafts, these processors are targeted to function in safety-critical systems, where Reliability, Availability and Serviceability (RAS)-based considerations are of paramount importance. Along with potential system vulnerabilities caused primarily due to random errors, these processors may also be sensitive to targeted errors, possibly from malicious entities, which raises serious concerns regarding the security and safety of the processing system. Consequently, such systems necessitate the incorporation of RAS-based considerations right from an early stage of processor design.&lt;/p&gt;
&lt;p&gt;While the hardware and software ecosystem around RISC-V has been steadily maturing, there have, however, been limited developments in early stage reliability-aware design and verification. The Early-stage Reliability And Security Estimation for RISC-V (ERASER) tool attempts to address this shortcoming. It consists of an open source framework aimed at providing directions to incorporate such reliability and security features at an early, pre-silicon stage of design. These features may include what kind of protection to be applied and which components within the processor should they be applied to. The proposed infrastructure comprises of an open source toolchain for early stage modeling of latch vulnerability in a RISC-V core (SERMiner [1]), a tool for automated generation of stress marks that maximize the likelihood of a transient-failure induced error (Microprobe (RISC-V) [2]), and verification by means of statistical and/or targeted fault injection (Chiffre [3]). While the infrastructure is targeted towards any core that uses the RISC-V ISA, the repository provides an end-to-end flow for the Rocket core [4].&lt;/p&gt;
&lt;p&gt;ERASER thus evaluates “RAS-readiness”, or the effectiveness of protection techniques in processor design such that processor vulnerability in terms of Failures-In-time (FIT) rate is minimized, for a specified power/performance overhead. FIT rate is defined as the number of failures in one billion hours of operation and is a standard vulnerability metric used in industry.&lt;/p&gt;
&lt;p&gt;ERASER is an open source tool available for download at https://github.com/IBM/eraser. The tool currently supports analysis of all latches in the design across a single Rocket core and the generation of stressmarks that can be used to evaluate the vulnerability of these latches. In addition to radiation-induced soft errors, we plan to extend ERASER to also model errors due to voltage noise, thermal and aging-induced failures, both in memory and logic, and generate representative stressmarks.&lt;/p&gt;
&lt;p&gt;ERASER is an initial effort to devise a comprehensive methodology for RAS analysis, particularly for open-source hardware, with the hope that it spurs further research and development into reliability-aware design both in industry and academia.&lt;/p&gt;
&lt;p&gt;References:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;K. Swaminathan, R. Bertran, H. Jacobson, P. Kudva, P. Bose, ‘Generation of Stressmarks for Early-stage Soft-error Modeling’, International Conference on Dependable Systems and Networks (DSN) 2019&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;S. Eldridge R. Bertran, A. Buyuktosunoglu, P. Bose, ‘MicroProbe: An Open Source Microbenchmark Generator, ported to the RISC-V ISA, the 7th RISC-V workshop, 2017&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;S. Eldridge, A. Buyuktosunoglu and P. Bose, ‘Chiffre A Configurable Hardware Fault Injection Framework for RISC-V Systems’ 2nd Workshop on Computer Architecture Research with RISC-V (CARRV), 2018&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Krste Asanović, Rimas Avižienis, Jonathan Bachrach, Scott Beamer, David Biancolin, Christopher Celio, Henry Cook, Palmer Dabbelt, John Hauser, Adam Izraelevitz, Sagar Karandikar, Benjamin Keller, Donggyu Kim, John Koenig, Yunsup Lee, Eric Love, Martin Maas, Albert Magyar, Howard Mao, Miquel Moreto, Albert Ou, David Patterson, Brian Richards, Colin Schmidt, Stephen Twigg, Huy Vo, and Andrew Waterman, The Rocket Chip Generator, Technical Report UCB/EECS-2016-17, EECS Department, University of California, Berkeley, April 2016&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
</abstract>
<description>&lt;p&gt;The attached figure shows a representative flow for the RAS estimation methodology. An initial characterization of all instructions in the RISC-V ISA is carried out via RTL simulation using an existing core model (eg. the Rocket core). The simulation is configured to generate VCD (Value- Change Dump) files for every single instruction testcase. The SERMiner tool parses these VCD files to determine latch activities across the core, aggregated at a macro (or RTL module) level. Based on these per-instruction latch activities, SERMiner outputs an instruction sequence, which forms the basis of the SER stressmark to be generated by Microprobe (RISC-V). Microprobe (RISC-V) is a microbenchmark generation tool that is capable of generating microbenchmarks geared towards specific architecture and micro-architecture level characterization. One of its key applications is in the generation of stressmarks, or viruses, that target various worst-case corners of processor operation. These stressmarks may be targeted at maximizing power, voltage noise, temperature, or soft-error vulnerability as in case of this tool. The generated stressmark is then used to generate a list of latches that show a high residency and hence a high SER vulnerability. These latches are the focus of fault injection-based validation experiments using the Chiffre tool. Chiffre provides a framework for automatically instrumenting a hardware design with run-time configurable fault injectors. The vulnerable latches obtained from running the generated stressmarks through the Rocket core model, and then through SERMiner, are earmarked for targeted fault injection experiments using Chiffre. The objective of these experiments is to further prune the list of vulnerable latches by eliminating those that are derated, that is, they do not affect the overall output even when a fault is injected in them. Focusing any and all protection strategies on this final list of latches would maximize RAS coverage across the entire core.&lt;/p&gt;
&lt;p&gt;Ongoing and future work:&lt;/p&gt;
&lt;p&gt;ERASER currently only supports analysis of all latches in the design across a single Rocket core and the generated stressmarks can be used to evaluate the vulnerability of these latches. Most on-chip memory structures such as register files and caches, are equipped with parity/ECC protection and are as such protected against most radiation-induced soft errors. However, they are still vulnerable to supply voltage noise, thermal and aging-induced failures, and other hard or permanent errors. We plan to extend ERASER to model such errors, both in memory and logic, and generate stressmarks representative of worst-case thermal emergencies and voltage noise, in addition to soft errors.&lt;/p&gt;</description>
<persons>
<person id="6941">Karthik Swaminathan</person>
</persons>
<links>
<link href="http://github.com/IBM/eraser">Github link to ERASER repository</link>
<link href="https://submission.fosdem.org/feedback/10110.php">Submit feedback</link>
</links>
<date>2020-02-01T12:10:00+01:00</date>
</event>
<event id="10122">
<start>12:30</start>
<duration>00:20</duration>
<room>K.3.401</room>
<slug>riscv_openpiton</slug>
<title>RISC-V Software and Firmware Development in the Cloud Using OpenPiton+Ariane on Amazon F1</title>
<subtitle/>
<track>RISC-V</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;RISC-V application, OS, and firmware development has been slowed by the lack of &quot;real hardware&quot; available for developers to work with. With the rise of FPGAs in the cloud and the recent release of the OpenPiton+Ariane manycore platform on Amazon's F1 cloud FPGA platform, we propose using 1-12 core OpenPiton+Ariane processors emulated on F1 to develop RISC-V software and firmware. In this talk, we will give an accelerated tutorial on how to get started with OpenPiton+Ariane, the spec-compliant RISC-V platform it offers, and how the firmware and OS can be modified and run on top. We will show a number of applications built and running for our present Debian distribution and the software development environment that this offers. We will then highlight how hardware and software can be co-designed on OpenPiton+Ariane with the ability to recompile the hardware underlying the cloud FPGA image and deploy it for use by others. This platform is serving as a basis for software and hardware development for the DECADES project, a project investigating heterogenous manycore and hardware accelerator based designs with support for orchestrated data movement.&lt;/p&gt;</abstract>
<description>&lt;p&gt;RISC-V Software and Firmware Development in the Cloud Using OpenPiton+Ariane on Amazon F1&lt;/p&gt;
&lt;p&gt;RISC-V application, OS, and firmware development has been slowed by the lack of &quot;real hardware&quot; available for developers to work with. With the rise of FPGAs in the cloud and the recent release of the OpenPiton+Ariane manycore platform on Amazon's F1 cloud FPGA platform, we propose using 1-12 core OpenPiton+Ariane processors emulated on F1 to develop RISC-V software and firmware. In this talk, we will give an accelerated tutorial on how to get started with OpenPiton+Ariane, the spec-compliant RISC-V platform it offers, and how the firmware and OS can be modified and run on top. We will show a number of applications built and running for our present Debian distribution and the software development environment that this offers. We will then highlight how hardware and software can be co-designed on OpenPiton+Ariane with the ability to recompile the hardware underlying the cloud FPGA image and deploy it for use by others. This platform is serving as a basis for software and hardware development for the DECADES project, a project investigating heterogenous manycore and hardware accelerator based designs with support for orchestrated data movement.&lt;/p&gt;
&lt;p&gt;http://openpiton.org
https://openpiton-blog.princeton.edu/2019/10/bringing-openpiton-to-amazon-ec2-f1-fpgas/&lt;/p&gt;
&lt;p&gt;OpenPiton+Ariane contributors include:
Jonathan Balkind, Grigory Chirkov, Yaosheng Fu, Adi Fuchs, Fei Gao, Alexey Lavrov, Ang Li, Xiaohua Liang, Katie Lim, Matthew Matl, Michael McKeown, Tri Nguyen, Samuel Payne, Michael Schaffner, Mohammad Shahrad, Jinzheng Tu, Florian Zaruba, Yanqi Zhou, Georgios Tziantzioulis, Luca Benini, David Wentzlaff&lt;/p&gt;
&lt;p&gt;DECADES is a large collaboration from three academic groups: Margaret Martonosi (PI Princeton), David Wentzlaff (PI Princeton), Luca Carloni (PI Columbia) with students/researchers: Jonathan Balkind, Ting-Jung Chang, Fei Gao, Davide Giri, Paul Jackson, Paolo Mantovani, Luwa Matthews, Aninda Manocha, Tyler Sorensen, Jinzheng Tu, Esin Türeci, Georgios Tziantzioulis, and Marcelo Orenes Vera. In addition to the submission author, portions of the talk may be offered by others in the collaboration.&lt;/p&gt;</description>
<persons>
<person id="7003">David Wentzlaff</person>
</persons>
<links>
<link href="http://openpiton.org">OpenPiton Website</link>
<link href="https://openpiton-blog.princeton.edu/2019/10/bringing-openpiton-to-amazon-ec2-f1-fpgas/">OpenPiton on F1</link>
<link href="https://github.com/PrincetonUniversity/openpiton">OpenPiton GitHub</link>
<link href="https://submission.fosdem.org/feedback/10122.php">Submit feedback</link>
</links>
<date>2020-02-01T12:30:00+01:00</date>
</event>
<event id="9424">
<start>12:50</start>
<duration>00:20</duration>
<room>K.3.401</room>
<slug>riscv_comrv</slug>
<title>Cacheable Overlay Manager RISC-V</title>
<subtitle/>
<track>RISC-V</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;We would like to present and overlay technique for RISCV which will be open source by WD.
This FW feature acts as and “catchable” manager. It is to be threaded with the Real-Time code and to the toolchain.
Cacheable Overlay Manager RISC-V (ComRV), a technique which fits small devices (as IoT’s), and does not need any HW support.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6723">Ofer Shinaar</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9424.php">Submit feedback</link>
</links>
<date>2020-02-01T12:50:00+01:00</date>
</event>
<event id="10100">
<start>13:10</start>
<duration>00:20</duration>
<room>K.3.401</room>
<slug>riscv_bootflow</slug>
<title>RISC-V Boot flow: What's next ?</title>
<subtitle/>
<track>RISC-V</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;RISC-V boot flow has come a long way since in recent times by leveraging the various opensource boot loaders/firmware projects. This also helped in achieving a well-supported and standard boot flow for RISC-V. As a result, developers can use the same boot loaders to boot Linux on RISC-V as they do in other architectures. Currently, U-Boot is used as the last stage boot loader and OpenSBI as the machine mode run time service provider, but there's more work to be done. A few of such future works includes U-boot SPL support, UEFI boot in RISC-V Linux and booting protocol improvements. This talk will focus on some of these ongoing works which are necessary to declare that RISC-V is truly ready for world domination.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5900">Atish Patra</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10100.php">Submit feedback</link>
</links>
<date>2020-02-01T13:10:00+01:00</date>
</event>
<event id="9315">
<start>13:30</start>
<duration>00:20</duration>
<room>K.3.401</room>
<slug>riscv_oreboot</slug>
<title>Oreboot</title>
<subtitle>RISC-V Firmware in Rust</subtitle>
<track>RISC-V</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Oreboot = Coreboot - C. Oreboot is a fully open-source power-on-reset and romstage firmware written in Rust. Oreboot can boot a HiFive RISC-V processor to Linux with a Go user-mode.&lt;/p&gt;
&lt;p&gt;Oreboot rethinks the firmware driver models. Each driver is distilled to four basic functions: init, pread, pwrite and shutdown. This interface allows us to make convenient higher-level drivers such as a &quot;union driver&quot; which duplicates a single write operation to multiple drivers. This makes consoles which have multiple underlying UART drivers elegant.&lt;/p&gt;
&lt;p&gt;By using the Rust programming language, Oreboot has a leg-up in terms of security and reliability compared to contemporary firmware written in C or assembly. Rust's borrow-checker ensures pointers are not used after freed and proves that coroutines are thread-safe at compile time.&lt;/p&gt;
&lt;p&gt;In this talk, we will also present a short overview of the basics of Rust, how our driver model incorporates coroutines and the bootflow of Oreboot.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6624">Ryan O'Leary</person>
</persons>
<links>
<link href="http://github.com/oreboot/oreboot">Oreboot Source Code</link>
<link href="https://submission.fosdem.org/feedback/9315.php">Submit feedback</link>
</links>
<date>2020-02-01T13:30:00+01:00</date>
</event>
<event id="10076">
<start>13:50</start>
<duration>00:20</duration>
<room>K.3.401</room>
<slug>riscv_hypervisors</slug>
<title>RISC-V Hypervisors</title>
<subtitle>Where are we ? What next ? </subtitle>
<track>RISC-V</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The RISC-V H-extension (aka hypervisor extension) is suitable for both Type1 and Type2 hypervisor. We have ported two hypervisors for RISC-V: Xvisor (Type1) and KVM (Type2). We show the current state and furture work for both hypervisors.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7078">Anup Patel</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10076.php">Submit feedback</link>
</links>
<date>2020-02-01T13:50:00+01:00</date>
</event>
<event id="10102">
<start>14:10</start>
<duration>00:20</duration>
<room>K.3.401</room>
<slug>riscv_luajit</slug>
<title>Port luajit to RISC-V</title>
<subtitle>Motivation, first steps and perspectives</subtitle>
<track>RISC-V</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;There is a need for a lightweight tools for experiments with RISC-V
custom extensions. Adding support for custom instructions in
binutils/gcc/llvm is out of range for many hardware architects. LuaJIT
includes a small and powerful assembler: dynasm, accessible from
within Lua interpreter. Currently dynasm supports following 32 and 64-bit
instruction sets: x86, x64, ARM, PowerPC, and MIPS, and it is just
reasonable to extend this support to RISC-V.&lt;/p&gt;
&lt;p&gt;Lua itself is a very compact and simple yet powerful dynamic language,
its JIT compiler (luajit) makes it one of the fastest, if not the
fastest, interpreted language, and it is used in many projects, so
having it running on RISC-V would have use besides the mere internal
need for experimental platform.&lt;/p&gt;</abstract>
<description>&lt;h1&gt;Outline&lt;/h1&gt;
&lt;h2&gt;Project scope&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Lua 5.1, luajit 2.1 overview&lt;/li&gt;
&lt;li&gt;rv32/rv64&lt;/li&gt;
&lt;li&gt;dynasm&lt;/li&gt;
&lt;li&gt;interpreter/virtual machine&lt;/li&gt;
&lt;li&gt;jit&lt;/li&gt;
&lt;li&gt;gc&lt;/li&gt;
&lt;li&gt;bit manipulation ('B' extention and bitop in Lua 5.3)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Develpment platforms&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;spike (ISA simulator, 32 and 64-bit)&lt;/li&gt;
&lt;li&gt;rv64: SiFive Unleashed&lt;/li&gt;
&lt;li&gt;rv32: softcore CPU on FPGA&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Benchmarks and baseline&lt;/h2&gt;
&lt;h2&gt;Deviation (side project)&lt;/h2&gt;
&lt;p&gt;Yet another Forth and yet another assembler&lt;/p&gt;</description>
<persons>
<person id="6861">Anton Kuzmin</person>
</persons>
<links>
<link href="https://github.com/ak-fau/LuaJIT-RV.git">LuaJIT repository mirror with RISC-V development branches </link>
<link href="https://submission.fosdem.org/feedback/10102.php">Submit feedback</link>
</links>
<date>2020-02-01T14:10:00+01:00</date>
</event>
<event id="10705">
<start>14:55</start>
<duration>00:05</duration>
<room>K.3.401</room>
<slug>retro_devroom_welcome</slug>
<title>Welcome to the Retrocomputing DevRoom 2020</title>
<subtitle/>
<track>Retrocomputing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;A quick introduction to the 3rd edition of the retro-computing devroom.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="666">Pau Garcia Quiles (pgquiles)</person>
<person id="3587">François Revol (mmu_man)</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10705.php">Submit feedback</link>
</links>
<date>2020-02-01T14:55:00+01:00</date>
</event>
<event id="9153">
<start>15:00</start>
<duration>00:30</duration>
<room>K.3.401</room>
<slug>retro_alpha_waves_1st_3d_platformer_ever</slug>
<title>Alpha Waves, the first 3D platformer ever</title>
<subtitle>How 3D graphics worked when there were no graphic cards</subtitle>
<track>Retrocomputing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Alpha Waves is the first 3D platform game ever.
Initially developed on Atari ST, it was then ported on Atari ST and on the IBM PC.
The technology later gave rise to Alone in the Dark, a major game that launched Infogrames in the big league.
This is the history of that game.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Alpha Waves is the first 3D platform game ever, according to the Guiness Book of Records.&lt;/p&gt;
&lt;p&gt;The game was initially developed on Atari ST, representing 17000 lines of 68K assembly code.
It was later ported on Atari ST and on the IBM PC, and was the first and only assembly program game that Infogrames ever ported to another CPU.
The technology developed for that game later inspired Frederick Raynal to develop Alone in the Dark, a major game that launched Infogrames in the big league.&lt;/p&gt;
&lt;p&gt;This talk is the history of that game by its developer. It will cover:
* General principles of paleo-3D
* How to draw polygons in software. Fast.
* Computing 3D transforms using mostly additions
* Music, graphics and other stuff
* Funny stories and trivia around the game, including the stints of Infogrames in Artificial Intelligcence and the arch-genesis of Alone in the Dark&lt;/p&gt;</description>
<persons>
<person id="5672">Christophe de Dinechin</person>
</persons>
<links>
<link href="https://en.wikipedia.org/wiki/Alpha_Waves">Wikipedia page for the game</link>
<link href="https://grenouille-bouillie.blogspot.com/2007/10/dawn-of-3d-games.html">A blog entry covering some of the topics to be presented</link>
<link href="https://submission.fosdem.org/feedback/9153.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="10436">
<start>15:35</start>
<duration>00:30</duration>
<room>K.3.401</room>
<slug>retro_basicode_8_bit_programming_api</slug>
<title>BASICODE: the 8-bit programming API that crossed the Berlin Wall</title>
<subtitle/>
<track>Retrocomputing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;At the height of the cold war, BASIC programs exchanged by radio and cassette tape provided young people of socialist Eastern and capitalist Western Europe a rare insight into each other's worlds. BASICODE was a transmission format and an API developed by the Dutch public broadcasting service to overcome the challenge of exchanging open source hobby programs in the highly fragmented 8-bit computing landscape of the early 1980s, which was dominated by mutually incompatible versions of BASIC. Somewhat improbably, the format was picked up across the iron curtain in the German Democratic Republic, where it experienced its age of greatest popularity. The need for programs to work on platforms with widely different capabilities and incompatible syntaxes forced it to be simply structured, highly regulated and relatively well documented. This makes it ideally suited for implementation in a web browser.&lt;/p&gt;</abstract>
<description>&lt;ul&gt;
&lt;li&gt;An early age of open source&lt;/li&gt;
&lt;li&gt;Modulating source code for radio transmission&lt;/li&gt;
&lt;li&gt;An API based on GOSUBs in BASIC&lt;/li&gt;
&lt;li&gt;East and West in the 1980s&lt;/li&gt;
&lt;li&gt;Implementing BASICODE in a web browser&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="7259">Rob Hagemans</person>
</persons>
<links>
<link href="https://github.com/robhagemans/basicode">BASICODE programs</link>
<link href="https://github.com/robhagemans/basicode-interpreter">BASICODE implemented in JavaScript</link>
<link href="https://robhagemans.github.io/basicode/">Live demo</link>
<link href="https://submission.fosdem.org/feedback/10436.php">Submit feedback</link>
</links>
<date>2020-02-01T15:35:00+01:00</date>
</event>
<event id="10423">
<start>16:10</start>
<duration>00:30</duration>
<room>K.3.401</room>
<slug>retro_music_open_cubic_player</slug>
<title>Retro music - Open Cubic Player</title>
<subtitle/>
<track>Retrocomputing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This presentation includes multiple topics mixed together
* Porting a DOS multimedia program into Linux/BSD
* How music was composed/stored in old type of games from the 8bit era, up into the amiga (and partly the DOS world)
* How does audio/music hardware work. C64 SID, ZX-Spectrum and alike, Amiga, Adlib FM-synth OPL2/3 and General Midi&lt;/p&gt;</abstract>
<description>&lt;p&gt;As a child, I was exposed to Cubic Player. This program was a text-based music player. All the colors mesmerized me and it gave a Direct visual feedback of how the music was generated.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://content.pouet.net/files/screenshots/00015/00015501.gif&quot; alt=&quot;Cubic Player screenshot&quot; /&gt;&lt;/p&gt;
&lt;p&gt;During teenage years I learned programming and got curiousity for Linux. All the sourcecode for everything was available. The kernel, multimedia libraries, multimedia tools. If there are anything you wonder how works, you can inspect it. You are unable to sort how a specific detail can be done in your own project, try to find another project that has done something similiar! But for playing this amiga style modules, there was no programs that had the same charm as Cubic Player. Programs like mikmod, XMMS, Audacious only displayed playlist, maybe instrument-names and maybe an spectrum analyzer.
&lt;img src=&quot;http://mikmod.sourceforge.net/images/mikmod-3.2.2-dynsamp.png&quot; alt=&quot;http://mikmod.sourceforge.net/images/mikmod-3.2.2-dynsamp.png&quot; /&gt;
&lt;img src=&quot;http://soft.softoogle.com/pimg/1955.png&quot; alt=&quot;XMMS screenshot&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Then I discovered that Cubic Player had been released as Open Cubic Player - but nobody had touched it. Releasing a project does not automatically make it work in other systems. But it makes it possible. I grabbed the source code and started to study it. All of it was based on direct hardware access, as it was written for DOS. Direct access to video-memory/hardware, raw keyboard scan codes, hardware interrupts for timers allowing background rendering of audio if needed etc. A natural candidate for a novice programmer to port?&lt;/p&gt;
&lt;p&gt;Slowly I went through one and one single file of the original source code.
* Lots of logic could be kept (just needed type fixing like replacing byte with uint8_t, a char is not guaranteed to be unsigned)
* Some could be thrown away like direct audio hardware drivers
* Some needed heavy rewrites like video output. The code already was abstracted with having functions for mixing colors and text rendering.
* Assembler inlines took many weeks - months (watcom c++ and gcc has VERY different syntax and integration)
* The timer interrupt was solved using SIGTIMER. But porting the code caused a zero-day kernel bug to be discovered &lt;a href=&quot;https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-0554&quot;&gt;https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-0554&lt;/a&gt;
* Text output was originally solved using ncurses
* Filenames are not 8.3 format in Linux/BSD&lt;/p&gt;
&lt;p&gt;When text appears on the screen, and audio (highly distorted in the beginning) appeared, was a magical feeling. Progress was faster when the goal felt to be well within the reach.&lt;/p&gt;
&lt;p&gt;When you the make your code public, people start to use it... and you start to get feedback like:
* Program is unable to compile on other platforms - assembler inlines is not portable - even when compiling for x86_64 - got to make C-replacement for all of them - A person submitted the full rework of the floating point version of the mixer from assembler into C!!! WOW
* Nothing works when compiling for MacOS - Wait, you tried what? Endian is important when parsing binary file formats
* Specific crashes that only happens for some few people - compiler bugs (these were more common back in the days)&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Music formats time, and their integration!&lt;/p&gt;
&lt;p&gt;So, what is a amiga style module?&lt;/p&gt;
&lt;p&gt;Let's take a look at the Amiga hardware. The sound-chip there is a 4 channel wave-mixer. Each channel is assigned a PCM audio source, volume and a wide range of possible samplerates. These three parameters can be adjusted anytime.
An Amiga style module is then a set of audio PCM (8bit) samples - a sound font, and then 4 tracks recipe of how these 3 parameters should be manipulated. These can be small adjustements, big adjustments, slow or fast - All imitating different kind of effects from playing real life instruments.
Portamento - sliding between seminotes - sliding the finger on the strings along the neck of the guitar
Tremolo - small vibration of the pitch - tremolo arm on an electric guitar
...
When this later moved into the computer world, the entire mixer had to be done in software, the number of channels was no longer limited by the hardware mixer.
....
Various editors, players, file-format tools etc. all do things slighly different. The exact result for a given file will have variations, but the overall impression should be the same. The most important reason why music was done in this format was file sizes. A typical song would be in the range 10-100 kilobyte only, and the same mixer/playback-routines can be used for playing the game sound-effects. The complete code needed for rendering a given fileformat is not very large.&lt;/p&gt;
&lt;p&gt;So, what if we can ditch the soundfont in the files to save space. Welcome to General Midi. General Midi defines a set of instruments - actually a full orchestra and a bunch of synth style sounds. But it only defines what they are, not the exact sounds. An electric guitar is not just a guitar. And a MIDI file contains a set of &quot;note-on including attack&quot;, &quot;note-off&quot; and &quot;select instrument&quot; events on a timeline.&lt;/p&gt;
&lt;p&gt;Open Cubic Player had support for General Midi, and parsing of soundfont in a single file format: UltraSound DOS driver fileformat. The few ones you found online were mostly propetiary - not very compatible with open source. So people kept demanding support for more formats. So I made a parser for the timidity config files; so far good enough. Then it kept a forever race and need for new features discovered in these configuration files - and even worse - depending on parsing binary fileformats that might contain the needed samples. Eventually - as the sole maintainer of the project - throw out the entire midi parser and renderer, and just use the entire Timidity+ project almost as-is. There is no point in re-inventing the wheel if you do not intend to improve it. So currently the MIDI renderer in Open Cubic Player is (a fork of) Timidity+.&lt;/p&gt;
&lt;p&gt;Same for the MP2/MP3 renderer that was using the original AMP engine. Instead of trying to fix it - use libmad!&lt;/p&gt;
&lt;p&gt;Ogg Vorbis files - libogg&lt;/p&gt;
&lt;p&gt;FLAC files - libflac&lt;/p&gt;
&lt;p&gt;And then users starts to request support for other fileformats - luckily, integration of them are not so hard when there is open source libraries and players that can be used.&lt;/p&gt;
&lt;p&gt;C64 .SID files - libsidplay&lt;/p&gt;
&lt;p&gt;ZX-Spectrum 128 .AY files - Code chopped out from &quot;aylet&quot;&lt;/p&gt;
&lt;p&gt;Atari ST .YM files - Using a fork of STYMulator&lt;/p&gt;
&lt;p&gt;OPL2/OPL3 style - libadplug&lt;/p&gt;
&lt;p&gt;AHX Tracker / Hively Tracker - Hively Tracker source contains a .wav file renderer&lt;/p&gt;</description>
<persons>
<person id="7249">Stian Sebastian Skjelstad</person>
</persons>
<links>
<link href="https://stian.cubic.org/project-ocp.php">Open Cubic Player for Unix homepage</link>
<link href="https://submission.fosdem.org/feedback/10423.php">Submit feedback</link>
</links>
<date>2020-02-01T16:10:00+01:00</date>
</event>
<event id="9597">
<start>16:45</start>
<duration>00:30</duration>
<room>K.3.401</room>
<slug>retro_reviving_minitel</slug>
<title>Reviving Minitel</title>
<subtitle>How web technologies make it easy to emulate Minitel</subtitle>
<track>Retrocomputing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Using web technologies, one can easily emulate the Minitel ecosystem, not only the iconic french terminal but also its servers. This easiness has been made possible due to ES6 and websockets.&lt;/p&gt;</abstract>
<description>&lt;ul&gt;
&lt;li&gt;Brief history of the Minitel&lt;/li&gt;
&lt;li&gt;Minitel + VideoTex + X25 vs Browser + HTML + TCP/IP&lt;/li&gt;
&lt;li&gt;Technical aspects of Minitel emulation (ES6 + websockets)&lt;/li&gt;
&lt;li&gt;Creation of a VideoTex page (live demo)&lt;/li&gt;
&lt;li&gt;Surfing on Minitel (live demo)&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="6837">Frédéric Bisson</person>
</persons>
<links>
<link href="https://github.com/zigazou/miedit">Repository of Minitel emulator and editor</link>
<link href="https://zigazou.github.io/miedit/">Online editor</link>
<link href="http://3615co.de/">3615 historical portal</link>
<link href="http://3614hacker.fr/">3614 hacker, an old service revived on web</link>
<link href="https://submission.fosdem.org/feedback/9597.php">Submit feedback</link>
</links>
<date>2020-02-01T16:45:00+01:00</date>
</event>
<event id="9574">
<start>17:20</start>
<duration>00:30</duration>
<room>K.3.401</room>
<slug>retro_reverse_engineering_vic_20_cartridge</slug>
<title>Reverse engineering a VIC-20 expansion cartridge</title>
<subtitle/>
<track>Retrocomputing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Going from seeing an image of a cartridge that I would have loved to have had for my VIC-20 to working out how it was built and then making my own.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Starting with a brief overview of the VIC-20 and the capabilities, to then looking at the &quot;vixen&quot; 16KiB RAM expansion, the initial view of the internals made available on the internet to going to a full implementation.&lt;/p&gt;
&lt;p&gt;The initial overview will go through some of the identification of the components, the technologies involved (such as SRAM and DRAM) and the VIC-20 expansion bus. It will show what sort of technologies could go into implementing this sort of expansion and then how these can be discounted either by the age of the technology or the component complexity.&lt;/p&gt;
&lt;p&gt;Techniques for further reversing a circuit from the physical device and how the actual device circuit was then discovered, followed by the implementation and testing will be shown.&lt;/p&gt;</description>
<persons>
<person id="6828">Ben Dooks</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9574.php">Submit feedback</link>
</links>
<date>2020-02-01T17:20:00+01:00</date>
</event>
<event id="10586">
<start>17:55</start>
<duration>00:30</duration>
<room>K.3.401</room>
<slug>retro_mainframe_on_laptop</slug>
<title>Running a mainframe on your laptop (for fun and profit)</title>
<subtitle/>
<track>Retrocomputing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Yes, this talk is about running your own mainframe on your own hardware. Mainframes are old, yes, but they are still very much alive. New hardware is still being developed and there are a lot of fresh jobs in this area too. A lot of mainframes run COBOL workloads. COBOL is far from a dead language. It processes an estimated 85% of all business transactions, and 5 billion lines of new COBOL code are written every year. In this session the speaker will help you in take your first steps towards running your own mainframe. If you like then after this session you can continue to build your knowledge of mainframe systems using the links provided during the talk. Come on in and learn the basics of a completely different computer system! And it will take you less than an hour to do that!&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6179">Jeroen Baten</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10586.php">Submit feedback</link>
</links>
<date>2020-02-01T17:55:00+01:00</date>
</event>
<event id="9676">
<start>18:30</start>
<duration>00:30</duration>
<room>K.3.401</room>
<slug>retro_arcade_game_port_zx</slug>
<title>Arcade game port to ZX Spectrum</title>
<subtitle>A reverse engineering exercise</subtitle>
<track>Retrocomputing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Reverse engineering an Arcade game and re-implementing it into an 8 bit system is an engineering exercise, where compromises have to be made in order to accomplish the goal, since the capabilities of the target machine are severely under powered when compared with the source machine.&lt;/p&gt;
&lt;p&gt;The processes of accomplishing this and all it involves, will be presented.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Making an Arcade Game remake (reverse engineering) into an 8 bit system is an engineering exercise, where compromises have to be made in order to accomplish the goal, since the capabilities of the target machine are severely under powered when compared with the source machine.&lt;/p&gt;
&lt;p&gt;Starting with graphic capabilities, passing through CPU limitations (clock speed and architecture) and ending with multimedia capabilities, every single one, needs to be addressed with a suitable compromise.
Some ingenious &quot;hacks&quot; and extreme optimization need to be applied, to use the 8 bit hardware capabilities in a convenient way to overcome the huge handy cap between architectures.&lt;/p&gt;
&lt;p&gt;For practical and example purposes, the reverse engineering of the Arcade game &quot;Magical Drop II&quot; will be presented, and how it became &quot;Extruder&quot; ZX Spectrum game.&lt;/p&gt;
&lt;p&gt;The software was developed in Zilog Z80 Assembly, and several tips and tricks will be shown, that facilitate and help the conversion process.&lt;/p&gt;</description>
<persons>
<person id="5137">Rui Martins</person>
</persons>
<links>
<link href="https://github.com/Rui1973Martins/Extruder">&quot;Extruder&quot; port to ZX Spectrum</link>
<link href="https://submission.fosdem.org/feedback/9676.php">Submit feedback</link>
</links>
<date>2020-02-01T18:30:00+01:00</date>
</event>
</room>
<room name="K.4.201">
<event id="9743">
<start>10:30</start>
<duration>00:40</duration>
<room>K.4.201</room>
<slug>debugging_with_llvm</slug>
<title>Debugging with LLVM</title>
<subtitle>A quick introduction to LLDB and LLVM sanitizers</subtitle>
<track>LLVM</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The aim of this presentation is to showcase the technologies available in LLVM that aid debugging. We will focus on LLDB, the debugger, and sanitisers (e.g. AddressSanitizer and LeakSanitizer). No prior knowledge is required, but if you're familiar with GDB or Valgrind then this talk will introduce you to alternatives available within LLVM.&lt;/p&gt;
&lt;p&gt;LLDB is a very powerful and extensible command line debugger available on Linux, Mac OS, FreeBSD, Windows and Android. It is used internally in XCode and Android Studio and available on various hardware platforms (e.g. X86, ARM, AArch64, PowerPC, Mips). LLDB is built as a set of reusable components which highly leverage existing libraries in LLVM. It has a very powerful expression evaluation engine, intuitive CL interface (with tab-completion), easy to navigate help pages and a &quot;graphical&quot; user interface. In this presentation we will explore basic usage as well as some lesser known features. LLDB has come a long way and we want to present how intuitive, helpful and powerful it can be when used pragmatically.&lt;/p&gt;
&lt;p&gt;While LLDB will let you easily examine and debug a program at the point of failure, it can be harder to diagnose the underlying problem if it occurred before the program crashed or printed an incorrect result. LLVM provides some extra features in the form of 'sanitizers' to help find the root cause of some extra problems, like accessing a wrong-but-still-valid memory address or unintentionally wrapping a signed integer value. This presentation will explore how to use the sanitizers to debug programs and some examples of bugs they can catch.&lt;/p&gt;</abstract>
<description>&lt;p&gt;TITLE: &lt;em&gt;Debugging with LLVM&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The aim of this presentation is to showcase the technologies available in LLVM that aid debugging. We will focus on LLDB, the debugger, and sanitisers (e.g. AddressSanitizer and LeakSanitizer). No prior knowledge is required, but if you're familiar with GDB or Valgrind then this talk will introduce you to alternatives available within LLVM.&lt;/p&gt;
&lt;p&gt;LLDB is a very powerful and extensible command line debugger available on Linux, Mac OS, FreeBSD, Windows and Android. It is used internally in XCode and Android Studio and available on various hardware platforms (e.g. X86, ARM, AArch64, PowerPC, Mips). LLDB is built as a set of reusable components which highly leverage existing libraries in LLVM. It has a very powerful expression evaluation engine, intuitive CL interface (with tab-completion), easy to navigate help pages and a &quot;graphical&quot; user interface. In this presentation we will explore basic usage as well as some lesser known features. LLDB has come a long way and we want to present how intuitive, helpful and powerful it can be when used pragmatically.&lt;/p&gt;
&lt;p&gt;While LLDB will let you easily examine and debug a program at the point of failure, it can be harder to diagnose the underlying problem if it occurred before the program crashed or printed an incorrect result. LLVM provides some extra features in the form of 'sanitizers' to help find the root cause of some extra problems, like accessing a wrong-but-still-valid memory address or unintentionally wrapping a signed integer value. This presentation will explore how to use the sanitizers to debug programs and some examples of bugs they can catch.&lt;/p&gt;</description>
<persons>
<person id="6875">Andrzej Warzynski</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9743.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10163">
<start>11:15</start>
<duration>00:40</duration>
<room>K.4.201</room>
<slug>llvm_benchmarking_embench</slug>
<title>Benchmarking LLVM using Embench</title>
<subtitle/>
<track>LLVM</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Dhrystone and Coremark have been the defacto standard microcontroller benchmark suites for the last thirty years, but these benchmarks no longer reflect the needs of modern embedded systems. Embench™ was explicitly designed to meet the requirements of modern connected embedded systems. The benchmarks are free, relevant, portable, and well implemented.&lt;/p&gt;
&lt;p&gt;In this talk we will present the results of benchmarking Clang/LLVM for various IoT class architectures using Embench. We shall look at
- how code size and speed varies across architectures when compiling with Clang/LLVM.
- how Clang/LLVM performance has evolved over time
- how Clang/LLVM compares against other compilers, notably GCC
- the effectiveness of various compilation techniques (LTO, Combined Elimination, Profile Guided Optimization)&lt;/p&gt;
&lt;p&gt;The aim is not to show which architecture or compiler is best, but to gain insight into the detail of the compilation process, so that all compilers and architectures can learn from each other.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="1569">Jeremy Bennett</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10163.php">Submit feedback</link>
</links>
<date>2020-02-01T11:15:00+01:00</date>
</event>
<event id="9700">
<start>12:10</start>
<duration>00:40</duration>
<room>K.4.201</room>
<slug>clang_fedora</slug>
<title>Confronting Clang and Fedora</title>
<subtitle/>
<track>LLVM</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;GCC is the default toolchain to build C/C++ packages in Fedora. Meanwhile OpenMandrivia already builds most of its package with the LLVM toolchain, the Debian archive is regularly rebuilt with with a recent verion of clang... So could we try that for Fedora?&lt;/p&gt;
&lt;p&gt;This talk describes an on-going effort to achieve that goal while keeping the same compiler feature set as GCC.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Subtopics of the talk include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Creating a clang-based buildroot and use it to rebuild the fedora user-land (and more?)&lt;/li&gt;
&lt;li&gt;Support for missing security features such as -fstack-clash-protection or -D&lt;em&gt;FORTIFY&lt;/em&gt;SOURCE=2&lt;/li&gt;
&lt;li&gt;Add missing features for the annobin tool within lld&lt;/li&gt;
&lt;li&gt;Python3 compatibity&lt;/li&gt;
&lt;li&gt;Package size&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="4847">Serge Guelton (serge-sans-paille)</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9700.php">Submit feedback</link>
</links>
<date>2020-02-01T12:10:00+01:00</date>
</event>
<event id="10164">
<start>12:55</start>
<duration>00:40</duration>
<room>K.4.201</room>
<slug>llvm_gcc_panel</slug>
<title>LLVM and GCC</title>
<subtitle>Learning to work together</subtitle>
<track>LLVM</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;At the GNU Tools Cauldron we held a panel discussion on how GCC and LLVM can work together. The video of that discussion can be seen at https://www.youtube.com/watch?v=PnbJOSZXynA.&lt;/p&gt;
&lt;p&gt;We proposed a similar discussion to be held at the LLVM Developers Meeting, but the reviewers suggested that such a discussion would be better held as part of the FOSDEM LLVM Devroom, since that was more likely to attract GNU developers as well.&lt;/p&gt;
&lt;p&gt;We wish to explore how Clang/LLVM and the GCC can work together effectively.&lt;/p&gt;
&lt;p&gt;The participants will explore opportunities for co-operation between the projects. Areas to be covered include:
- collaboration on issues related to language standards, changes to existing standards or implementing new ones;
- maintaining ABI compatibility between the compilers;
- interoperability between tools and libraries e.g. building with clang and libstdc++ or building with gcc and linking with lld; and
- communication channels for developers via bugzilla or mailing lists.&lt;/p&gt;
&lt;p&gt;We hope the output of the discussion will inform future work between the two communities.&lt;/p&gt;
&lt;p&gt;The panelists are yet to be confirmed, but I have invited those who offered to participate at the LLVM Developer Room: Tom Stellard of Red Hat, Nathan Sidwell of Facebook, Iain Sandoe, now independent. All have been major contributors to GCC and/or LLVM for many years. I shall act as moderator.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="1569">Jeremy Bennett</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10164.php">Submit feedback</link>
</links>
<date>2020-02-01T12:55:00+01:00</date>
</event>
<event id="10093">
<start>13:50</start>
<duration>00:40</duration>
<room>K.4.201</room>
<slug>llvm_cpg</slug>
<title>LLVM meets Code Property Graphs</title>
<subtitle/>
<track>LLVM</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The security of computer systems fundamentally depends on the quality of its underlying software. Despite a long series of research in academia and industry, security vulnerabilities regularly manifest in program code. Consequently, they remain one of the primary causes of security breaches today.
The discovery of software vulnerabilities is a classic yet challenging problem of the security domain. In the last decade, there appeared several production-graded solutions with a favorable outcome.&lt;/p&gt;
&lt;p&gt;Code Property Graph[1] (or CPG) is one such solution. CPG is a representation of a program that combines properties of abstract syntax trees, control flow graphs, and program dependence graphs in a joint data structure.
There exist two counterparts[2][3] that allow traversals over code property graphs in order to find vulnerabilities and to extract any other interesting properties.&lt;/p&gt;
&lt;p&gt;In this talk, we want to cover the following topics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;an intro to the code property graphs&lt;/li&gt;
&lt;li&gt;how we built llvm2cpg, a tool that converts LLVM Bitcode to the CPG representation&lt;/li&gt;
&lt;li&gt;how we teach the tool to reason about properties of high-level languages (C/C++/ObjC) based on the low-level representation only&lt;/li&gt;
&lt;li&gt;interesting findings and some results&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[1] https://ieeexplore.ieee.org/document/6956589
[2] https://github.com/ShiftLeftSecurity/codepropertygraph
[3] https://ocular.shiftleft.io&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3289">Alex Denisov</person>
<person id="7387">Fabian Yamaguchi</person>
</persons>
<links>
<link href="https://ieeexplore.ieee.org/document/6956589">Modeling and Discovering Vulnerabilities with Code Property Graphs</link>
<link href="https://github.com/ShiftLeftSecurity/codepropertygraph">Code Property Graph implementation</link>
<link href="https://ocular.shiftleft.io">Shiftleft Ocular</link>
<link href="https://submission.fosdem.org/feedback/10093.php">Submit feedback</link>
</links>
<date>2020-02-01T13:50:00+01:00</date>
</event>
<event id="9791">
<start>14:35</start>
<duration>00:40</duration>
<room>K.4.201</room>
<slug>llvm_python</slug>
<title>LLVM and Python</title>
<subtitle>Past, Present, Future</subtitle>
<track>LLVM</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Python with LLVM has at least one decade of history. This session will be going to cover-up how python implementations tried to use LLVM such as CPython's Unladen Swallow branch (PEP 3146) or attempts from PyPy and why they failed. After that it will show what are the current python projects that use LLVM for speed, such as numba and python libraries for working with LLVM IR. In the end, it will mention about new ideas that would unite the powers of both LLVM and Python.&lt;/p&gt;</abstract>
<description>&lt;p&gt;This talk is about LLVM's influence over Python's ecosystem. It is targeted an audience of language developers who want to integrate LLVM and developers who are curious about why dont dynamic languages can unite their power with LLVM to speed-up. It will start with python's implementations and the approaches they take. The Unladen Swallow branch which basically tries to integrate LLVM to CPython (under google sponsored) is a good example of these approaches. There are attempts from the PyPy side but they are also failed because of the dynamic nature of Python. After this fails, we'll swap back to our current time and show projects that are benefiting from LLVM to speed up python especially on the scientific side such as numba (which offers JITting via LLVM). Besides these projects, there are also a few projects that offer an interface to LLVM. Such as llvmpy and llvmlite. I've been using llvmlite about 1 year in my side projects and toy languages so these projects has the potential to inspire developers to work with LLVM and build languages a-top on it. In the end, it will show what is the future of these two big projects (LLVM &amp;amp; Python) and how we can participate.&lt;/p&gt;</description>
<persons>
<person id="6076">Batuhan Taşkaya</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9791.php">Submit feedback</link>
</links>
<date>2020-02-01T14:35:00+01:00</date>
</event>
<event id="10147">
<start>15:20</start>
<duration>00:40</duration>
<room>K.4.201</room>
<slug>llvm_flang</slug>
<title>Flang : The Fortran frontend of LLVM</title>
<subtitle>This technical talk introduces the new Fortran fronted of LLVM.</subtitle>
<track>LLVM</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This talk introduces Flang (F18), the new Fortran frontend of LLVM being written in modern C++. The talk will provide a brief introduction to Flang, motivation for writing this new compiler, design principles, architecture, status, and an invitation to contribute.&lt;/p&gt;</abstract>
<description>&lt;p&gt;F18 project started at PGI/Nvidia as a new Fortran frontend designed to work with LLVM. The aim of the project is to create a modern Fortran frontend (Fortran 2018 standard) in modern C++. In April of this year, it was accepted as an LLVM project (https://lists.llvm.org/pipermail/llvm-dev/2019-April/131703.html).&lt;/p&gt;
&lt;p&gt;The parser and semantic analysis are implemented in a way that provides a strong correspondence to the standards document. It is hoped that this correspondence will help in the development of new features and will become the testbed for deciding future Fortran standard features. The frontend also embraces the newly open-source MLIR framework for language-specific optimisations. This will be through a new dialect call FIR (https://www.youtube.com/watch?v=ff3ngdvUang). MLIR will also be used for creating an OpenMP dialect. The project also hopes to share code with the Clang frontend. While the parser/AST will not be shared, code will be shared in the Driver, OpenMP codegen etc.&lt;/p&gt;
&lt;p&gt;In this presentation, we hope to cover the technical details mentioned in the paragraph above, the status of implementation and also give an invitation to contribute.&lt;/p&gt;</description>
<persons>
<person id="6022">Kiran Chandramohan</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10147.php">Submit feedback</link>
</links>
<date>2020-02-01T15:20:00+01:00</date>
</event>
<event id="9986">
<start>16:05</start>
<duration>00:40</duration>
<room>K.4.201</room>
<slug>llvm_alda_panel</slug>
<title>Ask LLVM developers Anything Panel</title>
<subtitle/>
<track>LLVM</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Ever wondered how the LLVM project and community works?
Want to get some advice on how to most effectively contribute?
Now is your chance at FOSDEM to ask experienced developers directly. This
panel will host a number of experienced LLVM developers, answering any
relevant questions from the audience.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In case questions from the audience do not fill the entire slot, a set of
prepared questions focussed on how to get started working with and contributing
to LLVM will be raised for the panelists to answer.&lt;/p&gt;
&lt;p&gt;The panel will consist of at least the following 2 experienced contributors to
LLVM, and will be expanded with other experienced contributors who are planning
to come to the dev room:
- Kristof Beyls
- Peter Smith&lt;/p&gt;</description>
<persons>
<person id="3445">Kristof Beyls</person>
<person id="4378">Peter Smith</person>
<person id="6036">Nick Desaulniers</person>
<person id="7427">Jeroen Dobbelaere</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9986.php">Submit feedback</link>
</links>
<date>2020-02-01T16:05:00+01:00</date>
</event>
<event id="9966">
<start>17:00</start>
<duration>00:40</duration>
<room>K.4.201</room>
<slug>llvm_aut_prog_het_soc</slug>
<title>Automating Programming and Development of Heterogeneous SoCs with LLVM Tools</title>
<subtitle/>
<track>LLVM</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Historically, programming heterogeneous systems has been quite a challenge. While programming support for basic general-purpose accelerators such as GPUs has become quite mature in many ways, general heterogeneous SoCs in particular can feature a much broader range of accelerators in their efforts to minimize power consumption while maximizing performance. Many SoCs, though, are designed with accelerators tailored for the domain -- such as signal processing -- in which they’ll be used: Domain-Specific SoCs. As SoC platforms become ever-more heterogeneous, we think that application developers shouldn’t need to waste time reading datasheets or APIs for SoC-specific kernel extensions just to take full advantage of their hardware. With this in mind, in this talk we will discuss strategies we are using to automate mapping of LLVM-compatible languages to heterogeneous platforms with no intervention (not even #pragmas) from the programmer.&lt;/p&gt;
&lt;p&gt;To this end, we present our prototype of a software stack that seeks to address both of these needs. To meet the first need, we developed an LLVM-based hybrid compile/run-time toolchain to extract the semantic operations being performed in a given application. With these semantic operations extracted, we can link in additional libraries that enable dispatch of certain kernels (such as a Fast Fourier Transform) to accelerators on the SoC without user intervention. To evaluate the functionality of this toolchain, we developed a runtime system built on top of QEMU+Linux that includes scheduling and task dispatch capabilities targeting hypothetical SoC configurations. This enables behavioral modeling of these accelerators before silicon (or even FPGA) implementations are available. The focus here will be on the LLVM-mapping aspects, but a brief overview of our SoC simulation environment will be presented as well.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7026">Joshua Mack</person>
<person id="7402">Nirmal Kumbhare</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9966.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="10158">
<start>17:45</start>
<duration>00:40</duration>
<room>K.4.201</room>
<slug>llvm_hpvm</slug>
<title>HPVM: Extending LLVM For Compiling to Heterogeneous Parallel Systems</title>
<subtitle/>
<track>LLVM</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;TITLE: HPVM: Extending LLVM For Compiling to Heterogeneous Parallel Systems&lt;/p&gt;
&lt;p&gt;SPEAKER: Vikram Adve, University of Illinois at Urbana-Champaign&lt;/p&gt;
&lt;p&gt;Abstract:&lt;/p&gt;
&lt;p&gt;We will present a detailed description of HPVM, an extension to LLVM for
compiling to heterogeneous parallel systems. HPVM aims to make it much
easier to develop compilers for diverse parallel hardware, and to implement
parallel languages (including domain-specific languages) for such hardware.
We will briefly describe at a high-level the key parallel abstraction of
hierarchical dataflow graphs used in HPVM, and then focus on on how HPVM is
integrated on top of LLVM. A second part of the talk will briefly describe
how we are extending HPVM to enable greater energy efficiency and
performance by taking advantage of &lt;em&gt;approximation&lt;/em&gt; opportunities in
application domains such as machine learning and image processing. To
conclude, I will briefly discuss how HPVM might be added as a dialect in
MLIR so that other MLIR dialects and MLIR-based compilers can use HPVM for
code generation to diverse heterogeneous hardware targets, including GPUs,
FPGAs, and custom accelerators.&lt;/p&gt;</abstract>
<description>&lt;p&gt;TITLE: HPVM: Extending LLVM For Compiling to Heterogeneous Parallel Systems&lt;/p&gt;
&lt;p&gt;SPEAKER: Vikram Adve, University of Illinois at Urbana-Champaign&lt;/p&gt;
&lt;p&gt;Background&lt;/p&gt;
&lt;p&gt;LLVM has been extraordinarily successful as a compiler infrastructure for
enabling a wide range of compilers and compiler-based tools for scalar and
vector processors, and for supporting GPU compilers for OpenCL and CUDA.
LLVM has seen only limited use, however, for other classes of target
architectures, such as reconfigurable hardware (FPGAs) and domain-specific
accelerators such as for machine learning, image processing, signal
processing, graph processing, and other emerging domains. More generally,
heterogeneous system-on-chip (SoC) architectures are becoming increasingly
important, especially in &quot;edge computing,&quot; but LLVM has largely been
limited to the host CPU and GPU on such SoCs, even though the number of
other programmable components on these systems has been steadily increasing.&lt;/p&gt;
&lt;p&gt;Overview&lt;/p&gt;
&lt;p&gt;In this talk, I will describe an extension of LLVM for developing a compiler
infrastructure -- Heterogeneous Parallel Virtual Machine, or HPVM -- for
heterogeneous parallel systems [1]. I will briefly describe at a high-level
the key parallel abstraction of hierarchical dataflow graphs used in HPVM to
describe heterogeneous parallelism, where ordinary LLVM code is used to
represent the computatational tasks. The main focus of this part of the
talk is how HPVM is integrated on top of LLVM. First, HPVM has been
implemented as a set of intrinsic functions that extend the LLVM
infrastructure. Second, the HPVM code generation framework reuses existing
LLVM (and other) back-ends, in order to leverage existing (often well-tuned)
code generators for individual programmable hardware elements, such as NVPTX
for NVIDIA GPUs, Intel's SPIR-V code generator for Intel SSE and AVX vector
hardware, and Altera's AOCL compiler for targeting Altera's FPGAs.&lt;/p&gt;
&lt;p&gt;A second part of the talk will briefly describe how we are extending
HPVM to enable greater energy efficiency and performance by taking
advantage of &lt;em&gt;approximation&lt;/em&gt; opportunities in application domains such
as machine learning and image processing. In particular, we are
currently developing ApproxHPVM, an extension of HPVM that supports a
range of algorithmic and hardware-level approximation mechanisms [2].
Moreover, ApproxHPVM only requires application programmers to specify
high-level, &quot;end-to-end&quot; design goals such as the maximum allowable
accuracy loss in a neural network or loss of image quality (e.g.,
PSNR) and the system automatically selects, optimizes and maps
approximation choices for individual coarse-grain tensor operations in
the application. The goal is to make sophisticated and well-tested
approximation techniques widely accessible to application developers.&lt;/p&gt;
&lt;p&gt;To conclude, I will briefly discuss how HPVM and ApproxHPVM might be added
as a dialect in MLIR so that other MLIR dialects and MLIR-based compilers
can use HPVM for diverse heterogeneous hardware targets, including GPUs,
FPGAs, and custom accelerators.&lt;/p&gt;
&lt;p&gt;Target Audience&lt;/p&gt;
&lt;p&gt;The intended target audience for this talk falls into broadly two classes.
The first includes compiler practitioners and researchers interested in
compiling to heterogeneous systems, such as SoCs, FPGAs, and other
&quot;edge-compute&quot; hardware. The second includes language implementers
interested in implementing or porting domain-specific languages such as
TensorFlow, Halide, SPIRAL, and others to heterogeneous parallel systems.&lt;/p&gt;
&lt;p&gt;Takeaways&lt;/p&gt;
&lt;p&gt;We envision several takeaways for the audience: (1) Understand how to
develop an extension of LLVM that makes it easier to target emerging
hardware platforms not sufficiently well-supported by the existing LLVM IR
and code generation framework. (2) Expose attendees to the opportunities and
challenges in supporting and reasoning about approximate computations in a
compiler framework. (3) Discuss the opportunities and limitations of using
HPVM for supporting heterogeneous parallel systems in the context of MLIR.&lt;/p&gt;
&lt;p&gt;Web Site and Software Availability&lt;/p&gt;
&lt;p&gt;More information about HPVM is available at http://hpvm.cs.illinois.edu/.
The HPVM infrastructure is implemented as an extension to LLVM. To date,
the software is being developed using an internal Git repository at Illinois
and has been shared with collaborators at IBM and at Harvard University.
We will make it available publicly in open-source form on Github before the
FOSDEM conference.&lt;/p&gt;
&lt;p&gt;REFERENCES&lt;/p&gt;
&lt;p&gt;[1] Maria Kotsifakou, Prakalp Srivastava, Matthew D. Sinclair,
Rakesh Komuravelli, Vikram S. Adve and Sarita V. Adve, “HPVM:
Heterogeneous Parallel Virtual Machine.” Proceedings of Principles and
Practice of Parallel Programming (PPoPP), Feb 2018, Vösendorf / Wien,
Austria.&lt;/p&gt;
&lt;p&gt;[2] Hashim Sharif, Prakalp Srivastava, Mohammed Huzaifa, Maria
Kotsifakou, Yasmin Sarita, Nathan Zhou, Keyur Joshi, Vikram S. Adve,
Sasa Misailovic and Sarita V. Adve, “ApproxHPVM: A Portable Compiler
IR for Accuracy-aware Optimizations,” OOPSLA 2019, October 2019,
Athens, Greece.&lt;/p&gt;</description>
<persons>
<person id="7116">Vikram Adve</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10158.php">Submit feedback</link>
</links>
<date>2020-02-01T17:45:00+01:00</date>
</event>
</room>
<room name="K.4.401">
<event id="10389">
<start>11:00</start>
<duration>00:25</duration>
<room>K.4.401</room>
<slug>kms_planes</slug>
<title>libliftoff status update</title>
<subtitle>Taking advantage of KMS planes</subtitle>
<track>Graphics</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This talk will explain some basics about KMS, introduce libliftoff, describe the library's current status and outline the next steps.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Many DRM drivers have been exposing overlay planes for quite some time. Overlay planes can improve battery consumption by scanning out directly client buffers, skipping composition. While Wayland compositors and the X server usually take advantage of the cursor plane (and sometimes are able to use the primary plane to directly scan out a client's buffer), overlay planes are under-used. The exception is Weston, which tries to use overlay planes. Other compositors ignore them.&lt;/p&gt;
&lt;p&gt;The main challenge is to figure out how to assign buffers coming from clients to hardware planes. The only API exposed by KMS is atomic test commits, so user-space needs to try different combinations. It would be nice to have a common library shared between compositors to de-duplicate the work.&lt;/p&gt;
&lt;p&gt;During the XDC 2019 conference we discussed about &lt;a href=&quot;https://github.com/emersion/libliftoff&quot;&gt;libliftoff&lt;/a&gt;, an attempt at designing such a library. Feedback was positive from both compositor writers and driver developers. We discussed about the API, the potential pitfalls and future goals. The scope of the library has been expanded: libliftoff could also provide some feedback to clients so that they allocate buffers suitable for hardware planes. Additionally, because the KMS API makes it tricky to find the best way to make use of hardware planes, libliftoff could grow some vendor-specific plugins.&lt;/p&gt;</description>
<persons>
<person id="6347">Simon Ser</person>
</persons>
<links>
<link href="https://github.com/emersion/libliftoff">libliftoff repository</link>
<link href="https://emersion.fr/blog/2019/xdc2019-wrap-up/#libliftoff">XDC 2019 summary</link>
<link href="https://github.com/emersion/glider">glider repository</link>
<link href="https://submission.fosdem.org/feedback/10389.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
<event id="10002">
<start>11:30</start>
<duration>00:25</duration>
<room>K.4.401</room>
<slug>zink</slug>
<title>Zink Update</title>
<subtitle>OpenGL on Vulkan upstream in mesa</subtitle>
<track>Graphics</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;A short update on the state of Zink, and OpenGL implementation on top of vulkan, now that it's upstream in Mesa.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="1639">Erik Faye-Lund</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10002.php">Submit feedback</link>
</links>
<date>2020-02-01T11:30:00+01:00</date>
</event>
<event id="10001">
<start>12:00</start>
<duration>00:55</duration>
<room>K.4.401</room>
<slug>mesa3d_website</slug>
<title>Modernizing mesa3d.org</title>
<subtitle>Let's bring mesa3d.org past web 1.0</subtitle>
<track>Graphics</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;mesa3d.org is stuck on web 1.0 technology, but let's see what we can do about it.&lt;/p&gt;</abstract>
<description>&lt;p&gt;This is a Birds-Of-a-Feather session, which starts off with a short presentation as an introduction about the current state of affairs.&lt;/p&gt;</description>
<persons>
<person id="1639">Erik Faye-Lund</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10001.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="9695">
<start>13:00</start>
<duration>00:55</duration>
<room>K.4.401</room>
<slug>8k_display</slug>
<title>Enabling 8K displays</title>
<subtitle>A story of 33M pixels, 2 CRTCs and no Tears!</subtitle>
<track>Graphics</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This talk will cover enabling 8k display by tying 2 display pipelines together over 2 displayport connections.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Ever seen a true 33 million pixel 8K display? The maximum display link bandwidth available with DisplayPort’s highest bit rate of 8.1 Gbps/lane limits the resolution to 5K@60 over a single DP connector. Hence the only true 8K displays allowing up to full 60 frames per second are the tiled displays enabled using 2 DP connectors running at their highest bit rate across 2 CRTCs in the display graphics pipeline. Enabling tiled displays across dual CRTC dual connector configuration has always resulted in screen tearing artifacts due to synchronization issues between the two tiles and their vertical blanking interrupts.&lt;/p&gt;
&lt;p&gt;Transcoder port synchronization is a new feature supported on Intel’s Linux Graphics kernel driver for platforms starting Gen 11 that fixes the tearing issue on tiled displays. In this talk Manasi will explain how port synchronization is plumbed into the existing atomic KMS implementation. She will deep dive into the DRM and i915 code changes required to handle tiled atomic modesets through master and slave CRTCs lockstep mode operation to enable tearfree 8K display output across 2 CRTCs and 2 ports in the graphics pipeline. She will conclude by showing the 8K display results using Intel GPU Tools test suite.&lt;/p&gt;</description>
<persons>
<person id="5238">Manasi Navare</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9695.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="9606">
<start>14:00</start>
<duration>00:55</duration>
<room>K.4.401</room>
<slug>openxr</slug>
<title>FOSS Virtual &amp; Augmented Reality</title>
<subtitle>The Monado project &amp; OpenXR</subtitle>
<track>Graphics</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In this talk will cover Monado and Khronos' OpenXR standard, and give an overview about the current state of open source VR and what lies ahead. Also go into some details of how tracking is done inside of Monado and show of the current state.&lt;/p&gt;</abstract>
<description>&lt;p&gt;VR took off for the consumer with the release of Oculus consumer hardware. But the hardware lacked open source drivers and Linux support in general. The consumer VR space has now grown from a kickstarter campaign into a large industry. But this growth has its down sides, multiple companies have their own APIs competing. Luckily these companies have agreed to work on a single API under the Khronos umbrella. Now that OpenXR has been released and and the Monado project has been getting more stable it is now possible to do good VR on a completely open stack.&lt;/p&gt;</description>
<persons>
<person id="5151">Jakob Bornecrantz</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9606.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="9067">
<start>15:00</start>
<duration>00:55</duration>
<room>K.4.401</room>
<slug>fbdev</slug>
<title>Back to the Linux Framebuffer!</title>
<subtitle>Linux Framebuffer support in free software</subtitle>
<track>Graphics</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Although KMS/DRM can replace the Linux Framebuffer, there are a number of programs and libraries that can be built on top of the Linux Framebuffer (without X11 or Wayland dependencies) and that might still be worth considering. The Linux Framebuffer allows direct access to pixels: we will illustrate it with various rendering tools (Fbpad, Fbi, NetSurf, MPlayer, ...), but also with drawing libraries such as Cairo or Evas, and multimedia frameworks like FFmpeg or GStreamer.
The Mesa 3D project makes OpenGL rendering possible using only the Linux Framebuffer with GLFBDev or EGL: mesa-demos and yagears programs will be shown.
We will then cover graphics libraries (GLUT, SDL, EFL, GTK, Qt) that allow to integrate high level applications running directly on top of the Linux Framebuffer with no compositor. An example will be described using either WebKitGTK or QtWebKit for the rendering of a HTML5 media player and a WebGL sample, using the Linux Framebuffer port of those libraries and toolkits.
This talk is inspired by the HiGFXback project which aims at preserving historical backends used for graphics on GNU/Linux systems.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6436">Nicolas Caramelli</person>
</persons>
<links>
<link href="https://github.com/caramelli/higfxback/wiki/Linux-Framebuffer">HiGFXback with the Linux Framebuffer</link>
<link href="https://submission.fosdem.org/feedback/9067.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="9525">
<start>16:00</start>
<duration>00:55</duration>
<room>K.4.401</room>
<slug>ttm</slug>
<title>The TTM memory manager</title>
<subtitle>A general overview and an update on graphics memory management in the kernel</subtitle>
<track>Graphics</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;TTM is the memory manager in the Linux kernel used by graphics drivers with dedicated VRAM.&lt;/p&gt;
&lt;p&gt;It was added to the mainline kernel in June 2009 and has seen numerous changes and we are now more or less running into a dead-end with it's design.&lt;/p&gt;
&lt;p&gt;This talk outlines TTMs current functionality, what design problems we ran into and what can we do to fix this.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6770">Christian König</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9525.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="9640">
<start>17:00</start>
<duration>00:55</duration>
<room>K.4.401</room>
<slug>gpu_patterns</slug>
<title>Pattern Based Code Generation for GPUs</title>
<subtitle/>
<track>Graphics</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Automatic, pattern-based code generation for Mesa's compiler infrastructure has been a long standing dream. Nearly a decade ago experiments were conducted using systems like BURS and lburg. Each of these attempts encountered various insurmountable road blocks. In the intervening years, both software and GPU architectures have changed significantly. These changes have enabled a code-generator generator to be a reality. The design and implementation of one system will be presented. In addition to the successes, various difficulties and rough edges will be detailed.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3306">Ian Romanick</person>
</persons>
<links>
<link href="https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2680">Merge request for the code-generator generator.</link>
<link href="https://submission.fosdem.org/feedback/9640.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="9727">
<start>18:00</start>
<duration>00:25</duration>
<room>K.4.401</room>
<slug>rpi4_vulkan</slug>
<title>A Vulkan driver for the RPI4</title>
<subtitle>A lesson in futility</subtitle>
<track>Graphics</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;For the Raspberry PI 4 I started implementing a Vulkan driver. This talk will give a guide of how to approach such a task, what my expectations are and what I learned so far.&lt;/p&gt;</abstract>
<description>&lt;p&gt;With the release of Raspberry PI 4 it becomes theoretically more viable to use it in GPU heavy scenarios. Even ordinary software like Gnome Shell, Chromium and games fall into that category.
Sadly, neither Broadcom nor Raspberry PI Foundation currently provide a Vulkan driver. Since I want as much performance (and little overheating) as possible, I started writing a Vulkan driver.
This entails learning kernel and mesa internals as well as trying to understand Gallium. All that I have learned so far, I will try to share in this talk.&lt;/p&gt;</description>
<persons>
<person id="6921">Andreas Bergmeier</person>
</persons>
<links>
<link href="https://github.com/abergmeier/mesa-vulkan-broadcom">Repository</link>
<link href="https://submission.fosdem.org/feedback/9727.php">Submit feedback</link>
</links>
<date>2020-02-01T18:00:00+01:00</date>
</event>
<event id="10765">
<start>18:30</start>
<duration>00:25</duration>
<room>K.4.401</room>
<slug>libratbag</slug>
<title>libratbag</title>
<subtitle>A way to configure your input devices</subtitle>
<track>Graphics</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This talk will give an update on the progress being done in libratbag as well as present the new projects we have planned. If there's time I will also show how you should be able to write your own driver and debug existing drivers. This is a talk about libratbag updates, planned projects and a code demo.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6486">Filipe Laíns</person>
</persons>
<links>
<link href="https://github.com/libratbag/libratbag">https://github.com/libratbag/libratbag</link>
<link href="https://github.com/libratbag/piper">https://github.com/libratbag/piper</link>
<link href="https://github.com/libratbag/ratbag-emu">https://github.com/libratbag/ratbag-emu</link>
<link href="https://submission.fosdem.org/feedback/10765.php">Submit feedback</link>
</links>
<date>2020-02-01T18:30:00+01:00</date>
</event>
</room>
<room name="K.4.601">
<event id="9228">
<start>10:30</start>
<duration>00:10</duration>
<room>K.4.601</room>
<slug>intro</slug>
<title>Openning</title>
<subtitle/>
<track>Hardware-aided Trusted Computing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;abstract&lt;/p&gt;</abstract>
<description>&lt;p&gt;description&lt;/p&gt;</description>
<persons>
<person id="1138">Vasily A. Sartakov</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9228.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="9478">
<start>10:40</start>
<duration>00:30</duration>
<room>K.4.601</room>
<slug>cosmix</slug>
<title>Introduction to the CoSMIX Compiler</title>
<subtitle>Compiler-based techniques for secure memory instrumentation in enclaves</subtitle>
<track>Hardware-aided Trusted Computing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Hardware secure enclaves are increasingly used to run complex applications. Unfortunately, existing and emerging en- clave architectures do not allow secure and efficient implementation of custom page fault handlers. This limitation impedes in-enclave use of secure memory-mapped files and prevents extensions of the application memory layer commonly used in untrusted systems, such as transparent memory compression or access to remote memory.
CoSMIX is a Compiler-based system for Secure Memory Instrumentation and eXecution of applications in secure enclaves. A novel memory store abstraction allows the implementation of application-level secure page fault handlers that are invoked by a lightweight enclave runtime. The CoSMIX compiler instruments the application memory accesses to use one or more memory stores, guided by a global instrumentation policy or code annotations without changing application code.
The CoSMIX prototype runs on Intel SGX and is compatible with popular SGX execution environments, including SCONE and Graphene. Our evaluation of several production applications shows how CoSMIX improves their security and performance by recompiling them with appropriate memory stores. For example, unmodified Redis and Memcached key-value stores achieve about 2× speedup by using a self-paging memory store while working on datasets up to 6× larger than the enclave’s secure memory. Similarly, annotating a single line of code in a biometric verification server changes it to store its sensitive data in Oblivious RAM and makes it resilient against SGX side-channel attacks.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6750">Yan Michalevsky</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9478.php">Submit feedback</link>
</links>
<date>2020-02-01T10:40:00+01:00</date>
</event>
<event id="9248">
<start>11:15</start>
<duration>00:30</duration>
<room>K.4.601</room>
<slug>rustsgx</slug>
<title>Be secure with Rust &amp; Intel SGX</title>
<subtitle/>
<track>Hardware-aided Trusted Computing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Intel Software Guard Extensions (SGX) makes software secure from the outside. Rust makes it secure from the inside. This workshop will introduce you to Rust and the Fortanix® Enclave Development Platform (EDP) for Rust: how it works, what you can do with it, and why Rust is such a good fit for SGX.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6574">Jethro G. Beekman</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9248.php">Submit feedback</link>
</links>
<date>2020-02-01T11:15:00+01:00</date>
</event>
<event id="10330">
<start>11:50</start>
<duration>00:30</duration>
<room>K.4.601</room>
<slug>ccf</slug>
<title>The Confidential Consortium Framework</title>
<subtitle>A framework to build secure, highly available, and performant applications that focus on multi-party compute and data</subtitle>
<track>Hardware-aided Trusted Computing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The Confidential Consortium Framework is an open-source framework for building permissioned confidential multi-party services. It leverages hardware trusted execution environments to provide strong confidentiality, integrity, and high performance. CCF implements consortium-based programmable and auditable governance mechanism.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7200">Amaury Chamayou</person>
</persons>
<links>
<link href="https://github.com/Microsoft/CCF">Source repository</link>
<link href="https://microsoft.github.io/CCF/">Documentation</link>
<link href="https://submission.fosdem.org/feedback/10330.php">Submit feedback</link>
</links>
<date>2020-02-01T11:50:00+01:00</date>
</event>
<event id="10636">
<start>12:25</start>
<duration>00:30</duration>
<room>K.4.601</room>
<slug>eactors</slug>
<title>EActors: an actor-based programming framework for Intel SGX</title>
<subtitle/>
<track>Hardware-aided Trusted Computing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In this talk I will present EActors, an actor framework that is tailored to SGX and offers a more seamless, flexible and efficient use of trusted execution – especially for applications demanding multiple enclaves. EActors disentangles the interaction with enclaves and, among them, from costly execution mode transitions. It features lightweight fine-grained parallelism based on the concept of actors, thereby avoiding costly SGX SDK provided synchronisation constructs. Finally, EActors offers a high degree of freedom to execute actors, either untrusted or trusted, depending on security requirements and performance demands.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="1138">Vasily A. Sartakov</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10636.php">Submit feedback</link>
</links>
<date>2020-02-01T12:25:00+01:00</date>
</event>
<event id="10293">
<start>13:00</start>
<duration>00:30</duration>
<room>K.4.601</room>
<slug>tale</slug>
<title>A Tale of Two Worlds: Assessing the Vulnerability of Enclave Shielding Runtimes</title>
<subtitle/>
<track>Hardware-aided Trusted Computing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This talk analyzes the vulnerability space arising in Trusted
Execution Environments (TEEs) when interfacing a trusted enclave
application with untrusted, potentially malicious code. Considerable
research and industry effort has gone into developing TEE runtime
libraries with the purpose of transparently shielding enclave
application code from an adversarial environment. However, our analysis
reveals that shielding requirements are generally not well-understood in
real-world TEE runtime implementations. We expose several sanitization
vulnerabilities at the level of the Application Binary Interface (ABI)
and the Application Programming Interface (API) that can lead to
exploitable memory safety and side-channel vulnerabilities in the
compiled enclave. Mitigation of these vulnerabilities is not as simple
as ensuring that pointers are outside enclave memory. In fact, we
demonstrate that state-of-the-art mitigation techniques such as Intel’s
edger8r, Microsoft’s “deep copy marshalling”, or even memory-safe
languages like Rust fail to fully eliminate this attack surface. Our
analysis reveals 35 enclave interface sanitization vulnerabilities in 8
major open-source shielding frameworks for Intel SGX, RISC-V, and Sancus
TEEs. We practically exploit these vulnerabilities in several attack
scenarios to leak secret keys from the enclave or enable remote code
reuse. We have responsibly disclosed our findings, leading to 5
designated CVE records and numerous security patches in the vulnerable
open-source projects, including the Intel SGX-SDK, Microsoft Open
Enclave, Google Asylo, and the Rust compiler.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6115">Jo Van Bulck</person>
</persons>
<links>
<link href="https://www.zdnet.com/article/manual-code-review-finds-35-vulnerabilities-in-8-enclave-sdks/">https://www.zdnet.com/article/manual-code-review-finds-35-vulnerabilities-in-8-enclave-sdks/</link>
<link href="https://people.cs.kuleuven.be/~jo.vanbulck/ccs19-tale.pdf">https://people.cs.kuleuven.be/~jo.vanbulck/ccs19-tale.pdf</link>
<link href="https://people.cs.kuleuven.be/~jo.vanbulck/ccs19-slides.pdf">https://people.cs.kuleuven.be/~jo.vanbulck/ccs19-slides.pdf</link>
<link href="https://submission.fosdem.org/feedback/10293.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="10604">
<start>13:35</start>
<duration>00:30</duration>
<room>K.4.601</room>
<slug>optee</slug>
<title>HOWTO build a product with OP-TEE</title>
<subtitle/>
<track>Hardware-aided Trusted Computing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;OP-TEE is an open source implementation of the GPD TEE specifications. However deploying OP-TEE inside
a real world product requires more than just the integration into the system, since the integrator needs
to ensure that all security requirements are met. This talk will outline a common set of these requirements
and show the necessary changes based on NXP i.MX6 platforms.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7325">Rouven Czerwinski</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10604.php">Submit feedback</link>
</links>
<date>2020-02-01T13:35:00+01:00</date>
</event>
<event id="10635">
<start>14:10</start>
<duration>00:20</duration>
<room>K.4.601</room>
<slug>sgxlkl</slug>
<title>Demo: SGX-LKL</title>
<subtitle>Running unmodified Linux applications inside Intel SGX's enclaves</subtitle>
<track>Hardware-aided Trusted Computing</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;SGX-LKL is a library OS designed to run unmodified Linux binaries inside SGX enclaves. It uses the Linux Kernel Library (LKL) and a modified version of musl to provide system support for complex applications within the enclave. SGX-LKL has support for in-enclave user-level threading, signal handling, and paging. This demo presents an overview of SGX-LKL and demonstrates how popular applications can be ported and executed within SGX-LKL.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7339">Thiago Zagatti</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10635.php">Submit feedback</link>
</links>
<date>2020-02-01T14:10:00+01:00</date>
</event>
<event id="10411">
<start>15:00</start>
<duration>00:25</duration>
<room>K.4.601</room>
<slug>firmware_osuat</slug>
<title>Open source UEFI and TianoCore</title>
<subtitle/>
<track>Open Source Firmware, BMC and Bootloader</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Historically, the UEFI forum has been a bit rubbish at interacting with open source development, but this is improving.&lt;/p&gt;
&lt;p&gt;This talk gives a background on &lt;em&gt;why&lt;/em&gt; (both the rubbish and the improvement) and what is being done.&lt;/p&gt;
&lt;p&gt;Also, a brief update on news for the TianoCore/EDK2 project.&lt;/p&gt;</abstract>
<description>&lt;p&gt;After much lawyerly fun, the UEFI Self-Certification Testsuite (SCT) was released under an OSI license (BSD2) at the end of 2018.
We will explain why this is useful, and how this has helped with the addition of UEFI support in U-Boot, as well as helped improving EDK2 code quality.&lt;/p&gt;
&lt;p&gt;We have a new process, referred to as &quot;code first&quot; for drafting changes to the UEFI spefication in public.
This will give an overview of the process, as well as one of the first exercises of it - the definition of audio APIs (for accessibility or, you know, DOOM).&lt;/p&gt;
&lt;p&gt;Also, an update on changes in the EDK2 reference implementation, including dropping the CLA and upcoming RISC-V support.&lt;/p&gt;</description>
<persons>
<person id="1936">Leif Lindholm</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10411.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="10192">
<start>15:30</start>
<duration>00:25</duration>
<room>K.4.601</room>
<slug>firmware_duwu</slug>
<title>Discover UEFI with U-Boot</title>
<subtitle/>
<track>Open Source Firmware, BMC and Bootloader</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The Unified Extensible Firmware Interface (UEFI) is the default for booting most Linux and BSD distributions. But the complexity of the UEFI standard does not offer an easy entry point for new developers. The U-Boot firmware provides a lightweight UEFI implementation. Using booting from iSCSI with U-Boot and iPXE as an example let's delve into the UEFI API.&lt;/p&gt;
&lt;p&gt;The UEFI sub-system in U-Boot has developed from barely starting GRUB to supporting complex UEFI applications like iPXE and the EFI shell and passing most of the UEFI compliance tests for the implemented protocols and services.&lt;/p&gt;
&lt;p&gt;The session gives an overview of the boottime and runtime services of UEFI with a focus on driver binding. The challenges of integrating the UEFI subsystem with U-Boot's infrastructure are described and an outlook is provided.&lt;/p&gt;
&lt;p&gt;Questions this talk should answer:
- How does the UEFI driver model work?
- How does this integrate with U-Boot?
- What to expect next in U-Boot's UEFI implementation?&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4537">Heinrich Schuchardt</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10192.php">Submit feedback</link>
</links>
<date>2020-02-01T15:30:00+01:00</date>
</event>
<event id="10524">
<start>16:00</start>
<duration>00:25</duration>
<room>K.4.601</room>
<slug>firmware_hodorateatria</slug>
<title>Heads OEM device ownership/reownership : A tamper evident approach to remote integrity attestation</title>
<subtitle>Current status and future plan : A call for collaboration</subtitle>
<track>Open Source Firmware, BMC and Bootloader</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Insurgo had engaged itself in the adventure of facilitating security accessibility and received NlNet funding to do exactly that. Now it wants to get developers involved and expand funding.&lt;/p&gt;
&lt;p&gt;The goal of this is to bridge the gap between reasonably secure OS (QubesOS) and slightly more secure hardware (Heads) to help privacy-focused users and those that are vulnerable. But we need to prepare for the future now!&lt;/p&gt;
&lt;p&gt;Insurgo has challenged the status quo that has been prevalent since 2015 and has made it possible for OEMs to preinstall QubesOS, thanks to the Heads Open Source Firmware (OSF) and his own PrivacyBeast QubesOS certified branch, not yet merged upstream, due to the lack of time and resources of a single man effort needing additional collaboration.&lt;/p&gt;
&lt;p&gt;The integrity of the firmware and boot files is already remotely sealed and can be attested over smartphone (TPMTOTP) and from the bundled Librem Keys/Nitrokey Pro 2 (HOTP), prior to shipping. Thanks to HOTP-enabled USB security dongles bounded to shipped products, the user can visually validate that the hardware they've received is in OEM attested state, prior to complete reownership which is regenerating all required secrets from a trustable recovery environment (Heads OSF) thanks to a re-ownership wizard that guides the user until completion.&lt;/p&gt;
&lt;p&gt;This is just the beginning of the adventure and the road ahead requires your help. Insurgo wants to propel this movement forward.&lt;/p&gt;
&lt;p&gt;Today's secure hardware (REAL open source initialized hardware, eg. the RYF KGPE-D16, replicant supported phones, Sandy bridge/Ivy bridge based boards, eg. x230) struggle to stay current with upstream code and compliance requirements. LineageOS dropped support of the i9300. Coreboot dropped support of the KGPE-D16 platform. And the list will expand if no measures are taken to support maintainership of privacy focused projects that are taken for granted until support is finally dropped. This is a real problem requiring real solutions.&lt;/p&gt;
&lt;p&gt;New efforts to support future, REAL Open Source Hardware (newly Respect Your Freedom [RYF] certified hardware, eg. Talos II from RaptorEngineering, future Power10 based hardware) are neither currently under active development nor currently supported by QubesOS. This needs to change. Now.&lt;/p&gt;
&lt;p&gt;There is an opportunity for transition. This requires leadership, developers and funding.
This is why we've created the Insurgo Initiative on the OpenCollective platform.&lt;/p&gt;
&lt;p&gt;This is where transparent funding will be available to the public for open source R&amp;amp;D. Please consider participating through code contributions!&lt;/p&gt;</abstract>
<description>&lt;p&gt;Insurgo is making today's most trustworthy hardware available (TRUELY Neutered+Deactivated Intel ME, no FSP, no binary blobs whatsoever but EC firmware in the Root of Trust) to the masses through remote attestation over Heads OSF.&lt;/p&gt;
&lt;p&gt;NlNet is helping Heads to be compatible on the T530, T430, T420 and X220, which are widely available, binary blob-free hardware platforms, thanks to a partnership with 9element under NlNet grant.
NlNet funds is also permitting development of remote administration of QubesOS over tor hidden services when needed, thanks to an ongoing partnership with both the Qubes OS Project &amp;amp; Whonix.&lt;/p&gt;
&lt;p&gt;But what about other work needed to ease accessibility of tomorrow's secure hardware and technologies?&lt;/p&gt;
&lt;p&gt;Insurgo decided to give back to Open Source Firmware (OSF) related communities and will publicly announce novel approach to support required open source projects.
In premiere, we plan to give back 25% of Insurgo's net profit on sales to the Insurgo Initiative, hosted on OpenCollective.&lt;/p&gt;
&lt;p&gt;Those funds will be available to Open Source projects in the form of bounties, to be paid out upon proof of work of agreed contributions.&lt;/p&gt;
&lt;p&gt;The idea here is that open source tickets (issues) can be used as bounties and if knowledgeable people knew funds were available for needed work, they'd be more incentivized to address them.
Developers could then be rewarded for their efforts and paid for completing tasks similiar to how Open Source Funds (OpenTech, NlNet, etc) provides funds for larger projects.&lt;/p&gt;
&lt;p&gt;The Insurgo Initiative will be self funded and potentially expanded through international partnerships, while the goal stays the same: supporting a future where security is more accessible to the public.&lt;/p&gt;
&lt;p&gt;Here are some projects needing additional funding and more developer awareness, right now. Big funds and grant application are great. But the funding process has issues.
Not every developer wants to go through the application process, which requires management skills and requires a process that is not just about coding.
There are awesome developers out there whose help would be greatly needed.&lt;/p&gt;
&lt;p&gt;How do we appropriately match developers with pertinent issues? We can fix this with the right mission and funding.
Insurgo's mission is for accessible security.&lt;/p&gt;
&lt;p&gt;Bounty tags are being added to projects that lack the funding and to help address the current problems they face for completion:
- PPC64le QubesOS support for upcoming Power10 laptop and Talos II RYF hardware: https://github.com/QubesOS/qubes-issues/issues/4318#issuecomment-547487583
- Heads needs more community developers and maintainers: https://github.com/osresearch/heads/issues
- QubesOS bounty tagged issues: https://github.com/QubesOS/qubes-issues/labels/bounty
- Whonix needs more collaborators or it might die: https://forums.whonix.org/t/focus-on-whonix-core-development/5036&lt;/p&gt;
&lt;p&gt;The main problem we seem to face with many projects can be seen over and over again: a lack of maintainership.&lt;/p&gt;
&lt;p&gt;No one can carry on a project for too long without becoming overwhelmed/drained by it.
We need to fairly distribute this work and make sure contributions are incentivized and fairly paid.&lt;/p&gt;
&lt;p&gt;In this talk, I will go quickly over past work. The current situation. And where Insurgo wants to go.&lt;/p&gt;
&lt;p&gt;Welcome aboard!&lt;/p&gt;</description>
<persons>
<person id="7253">Thierry Laurion</person>
</persons>
<links>
<link href="https://insurgo.ca/">Insurgo Open Technologies Website</link>
<link href="https://www.qubes-os.org/doc/certified-hardware/">Insurgo's PrivacyBeast QubesOS Certified hardware</link>
<link href="https://www.platformsecuritysummit.com/2019/#laurion">PlatformSecurity2019 given talk</link>
<link href="https://nlnet.nl/project/AccessibleSecurity/">NlNet funded Accessible Security Project</link>
<link href="https://gitlab.com/tlaurion/heads/tree/PrivacyBeast_X230_QubesOS_Certified">GitLabCI PrivacyBeast X230 branch</link>
<link href="https://github.com/tlaurion/">Github profile</link>
<link href="https://www.linkedin.com/in/thierry-laurion-40b4128/">LinkedIn profile</link>
<link href="https://twitter.com/Tlaurion">Twitter profile</link>
<link href="https://www.facebook.com/InsurgoTech/">Facebook page</link>
<link href="https://github.com/osresearch/heads">Heads project Github Page</link>
<link href="https://github.com/osresearch/heads-wiki/">Heads-wiki project page</link>
<link href="https://archive.org/details/oemuserreownership">Re-ownership wizard technology preview</link>
<link href="https://submission.fosdem.org/feedback/10524.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="10450">
<start>16:30</start>
<duration>00:25</duration>
<room>K.4.601</room>
<slug>firmware_itsoecs</slug>
<title>Improving the Security of Edge Computing Services</title>
<subtitle>Update status of the support for AMD processors</subtitle>
<track>Open Source Firmware, BMC and Bootloader</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;For the last several years, hypervisors have played a key role in platform
security by reducing the possible attack surface. At the same time, the hype
surrounding computing and Internet of Things Gateways has led to an increase in
network appliance devices. Our target was to create a less-insecure virtual
network appliance using TrenchBoot, Trusted Platform Module 2.0 and AMD SKINIT
Dynamic Root of Trust for Measurement to establish a Xen hypervisor with a
meta-virtualized pfSense firewall. We are going to present it with an update
of the status of support of TrenchBoot for AMD processors.
This appliance is supported by are supported by apu2, a reliable low-SWaP x86
device from Swiss OEM PC Engines. It can be used as a Single Office / Home
Office firewall or an industrial edge device and has mostly open-source
hardware, coreboot firmware, mPCIe extensibility and an extended support
lifecycle for the embedded Central Processing Unit and motherboard.
In this talk, we will show how to create a system, which enables a significant
portion of computations to the edge devices while maintaining security. Using
a simple, well-known platform, we will conduct a secure boot using the Static
Root of Trust for Measurement with coreboot, move to the Dynamic Root of Trust
for Measurement by SKINIT in TrenchBoot and use all of this to provide a
complete chain of trust for the Xen hypervisor, a virtual firewall appliance
isolated by an input–output memory management unit (IOMMU) from the physical
network interface controller (NIC) devices. We will present benchmark data
on virtualization overhead, explain how this complexity can still be practical
and outline the value of this stack.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5202">Daniel Kiper</person>
<person id="6960">Piotr Król</person>
</persons>
<links>
<link href="https://3mdeb.com/">3mdeb site</link>
<link href="https://github.com/TrenchBoot">Trenchboot</link>
<link href="https://submission.fosdem.org/feedback/10450.php">Submit feedback</link>
</links>
<date>2020-02-01T16:30:00+01:00</date>
</event>
<event id="10327">
<start>17:00</start>
<duration>00:25</duration>
<room>K.4.601</room>
<slug>firmware_ia</slug>
<title>Introducing AUTOREV</title>
<subtitle>An automatic reverse-engineering framework for firmware BLOBs</subtitle>
<track>Open Source Firmware, BMC and Bootloader</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Modern Open Source boot firmware ships with an increasing amount of BLOBs. While it's often claimed that it eases the integration,
it makes life of Open Source developers harder, as it's not documented what is done inside BLOBs and what should be done outside of
the same.&lt;/p&gt;
&lt;p&gt;We will show how to trace the MMIO access of BLOBs in firmware by using Open Source tools. As analysing the traces for possible
branches and loops is hard and stressful work, we created our own framework for automatic reverse engineering.
Our framework allows to capture and analyse MMIO traces, fuzz the BLOB under test and finally generates readable code in a high level language,
like C, for easy analysing.&lt;/p&gt;
&lt;p&gt;During this talk, we will discuss the legal side, the motivation behind reverse engineering, and the benefit for the Open Source community.
We will explain the problems we faced, and explain the basic concept used, with examples from the real world.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7138">Patrick Rudolph</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10327.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="10416">
<start>17:30</start>
<duration>00:25</duration>
<room>K.4.601</room>
<slug>firmware_lam</slug>
<title>Look at ME!</title>
<subtitle>Intel ME firmware investigation</subtitle>
<track>Open Source Firmware, BMC and Bootloader</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;With Intel's Firmware Support Package (FSP) and the recent release of a
&lt;a href=&quot;https://edk2.groups.io/g/devel/message/50920&quot;&gt;redistributable firmware binary&lt;/a&gt;
for the Management Engine, it has become possible to share full firmware images
for modern x86 platforms and potentially audit the binaries. Yet, reverse
engineering, decompilation and disassembly are still not permitted. However,
thanks to previous research, we can have a closer look at the binary data and
come to a few conclusions. This talk briefly summarizes the fundamentals of
developing custom and open source firmware, followed by a quick guide through
the process of analyzing the binaries without actually violating the terms to
understand a few bits, and finally poses a statement on the political issues
that researchers, repair technicians and software developers are facing
nowadays, taking into account how consumers are affected and how they perceive
the situtation eventually.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7248">Daniel Maslowski (CyReVolt)</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10416.php">Submit feedback</link>
</links>
<date>2020-02-01T17:30:00+01:00</date>
</event>
<event id="10467">
<start>18:00</start>
<duration>00:25</duration>
<room>K.4.601</room>
<slug>firmware_culisfu</slug>
<title>Capsule Update &amp; LVFS: Improving system firmware updates</title>
<subtitle>Improving reliability and security by simplifying distribution of firmware updates</subtitle>
<track>Open Source Firmware, BMC and Bootloader</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;As the rich capabilities of platforms increase, so does their complexity. As hypervisors and operating systems harden their attack surfaces, malware has been moving deeper into the platform. For example, a modern laptop may have over 15 updatable firmware elements, each with low-level access to a specific hardware domain. From the early days of proprietary BIOS in the 1980’s and 1990’s, to the world of standards in the 2000’s, to the post-PC world of the last few years, the nature of firmware has changed. In order to provide security guarantees for platform firmware, the servicing model of the platform takes center stage.&lt;/p&gt;
&lt;p&gt;This session discusses the evolution of platform servicing using examples based on device firmware, non-host/system on a chip (SOC) firmware, and implementation of the Unified Extensible Firmware Interface (UEFI). A modern servicing model features elements for component-based update, resiliency in case unexpected conditions, a more seamless user experience, lowering the friction of update integration, and telemetry for a view into platform health and firmware inventory.&lt;/p&gt;
&lt;p&gt;This talk will discuss current trends in standards such as UEFI and associated EDK II firmware, and how the Linux Vendor Firmware System (LVFS) used these components as part of a holistic, open source approach to seamless firmware updates.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5817">Brian Richardson</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10467.php">Submit feedback</link>
</links>
<date>2020-02-01T18:00:00+01:00</date>
</event>
<event id="10394">
<start>18:30</start>
<duration>00:25</duration>
<room>K.4.601</room>
<slug>firmware_oisfbooe</slug>
<title>Opening Intel Server firmware based on OpenBMC example</title>
<subtitle/>
<track>Open Source Firmware, BMC and Bootloader</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Have you ever heard of Board Management Controller? It has been black box firmware to manage servers since last century … now it’s open. OpenBMC is a Linux Foundation project with a goal to produce an open source implementation of BMC firmware stack. It is a vendor independent Linux distribution created using Yocto project that provides complete set of manageability features. Backbone technologies in OpenBMC include D-Bus and systemd. With embedded web server it provides user friendly WebUI and Redfish interface for easy server management using modern RESTful APIs. Intel as one of the founding companies offers additional functionalities on top of OpenBMC implementation which will be presented as a part of this presentation.&lt;/p&gt;
&lt;p&gt;In this talk we will:
- tell you a short history and overview of OpenBMC
- have a quick view on OpenBMC architecture (Yocto, Dbus, systemd)
- show what’s new in latest 2.7 releases and what is planned for 2.8 (Feb 2020)
- talk about Intel specific features available in OpenBMC
- tell you how to contribute to OpenBMC project
- give you a guide on how to modify, build and run the project on target BMC on Intel server&lt;/p&gt;
&lt;p&gt;Audience: software engineers, validation engineer, embedded software architects, data center administrators&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7233">Maciej Lawniczak</person>
<person id="7423">Przemyslaw Czarnowski</person>
</persons>
<links>
<link href="https://github.com/openbmc">OpenBMC github repository</link>
<link href="https://www.openbmc.org/">OpenBMC web page</link>
<link href="https://submission.fosdem.org/feedback/10394.php">Submit feedback</link>
</links>
<date>2020-02-01T18:30:00+01:00</date>
</event>
</room>
<room name="UA2.114 (Baudoux)">
<event id="9349">
<start>10:30</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_threat_modelling_for_developers</slug>
<title>Threat Modelling for Developers</title>
<subtitle/>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;What threats do we need to take into account when building a system? A key method for answering this question is an approach called threat modelling, whereby security problems can be anticipated during the design phase. This talk discusses major threat-modelling approaches, and includes concrete examples of how to apply them to software-intensive systems.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6658">Arne Padmos</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9349.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10280">
<start>11:00</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_osint</slug>
<title>OSINT</title>
<subtitle>do you really know what data you are leaking to the public?</subtitle>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Open source intelligence. That almost sounds like a technique described in a movie plot – purely fictional right ?
As it turns out, it is alarmingly much more simple than you may think and in some cases we walk the fine line between intelligence and creepy stalker-like activity.
In this talk we'll look at some examples, and discuss practical applications from an adversarial point of view. Hopefully you'll leave with an increased appreciation for the data you may be leaking to the world.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7173">David Busby</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10280.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
<event id="10272">
<start>11:30</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_securing_existing_software_using_formally_verified_libraries</slug>
<title>Securing Existing Software using Formally Verified Libraries</title>
<subtitle/>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Security vulnerabilities are still very common in todays software. Formal methods could improve the situation, but program verification remains a complex and time-consuming task. Often, the verification of existing software is infeasible and a complete rewrite can be prohibitively expensive. Both, however, is not necessarily required to improve on the current state. By replacing critical parts of an existing software by verified code, security can be strengthened significantly with moderate effort.&lt;/p&gt;
&lt;p&gt;We show the feasibility of this approach by the example of a FLOSS TLS implementation. The basis of our PoC is the TLS 1.3 library Fizz [1] which is written in C++. The existing message parser was replaced by a verified version implemented in the SPARK language [2]. Our RecordFlux toolkit [3] was used to automatically generate the parser based on a formal message specification. With the SPARK tools we can prove automatically that an attacker cannot cause any overflows, runtime errors or undefined state by sending malformed messages to the modified library. Because of mismatches in the data structures used in C++ and SPARK, some glue code had to be written manually to integrate the verified parser into Fizz. Still, the modified TLS implementation shows only a slight performance loss while providing higher security.&lt;/p&gt;
&lt;p&gt;[1] https://github.com/facebookincubator/fizz
[2] https://www.adacore.com/about-spark
[3] https://github.com/Componolit/RecordFlux&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6098">Tobias Reiher</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10272.php">Submit feedback</link>
</links>
<date>2020-02-01T11:30:00+01:00</date>
</event>
<event id="10390">
<start>12:00</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_specfuzz_bringing_spectre_type_vulnerabilities_to_the_surface</slug>
<title>SpecFuzz: Bringing Spectre-type vulnerabilities to the surface</title>
<subtitle/>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Spectre-type attacks are a real threat to secure systems because a successful attack can undermine even an application that would be traditionally considered safe.
SpecFuzz is the first tool that enables fuzzing for such vulnerabilities.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The key is a novel concept of speculation exposure:
The program is instrumented to simulate speculative execution in software by forcefully executing the code paths that could be triggered due to mispredictions, thereby making the speculative memory accesses visible to integrity checkers (e.g., AddressSanitizer).
Combined with the conventional fuzzing techniques, speculation exposure enables more precise identification of potential vulnerabilities compared to state-of-the-art static analyzers.&lt;/p&gt;
&lt;p&gt;Technical report: https://arxiv.org/abs/1905.10311&lt;/p&gt;</description>
<persons>
<person id="7211">Oleksii Oleksenko</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10390.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="9182">
<start>12:30</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_falco_internals_101</slug>
<title>Falco Internals 101 : Syscalls processing for security analysis</title>
<subtitle>What happens when you have: syscalls, a kernel module, an eBPF probe and a Ring Buffer?</subtitle>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Linux Syscalls can be used as an entrypoint to do security analysis on Linux. However reading and processing every system call in userspace creates a very unique set of challenges.
In this talk we are going to see exactly what those challenges are and how we solved them in the Falco project.&lt;/p&gt;</abstract>
<description>&lt;p&gt;One of the ways to have broad visibility into our systems, when doing security analysis is to go and ask our questions directly to the Linux kernel.
For this purpose, at a very foundational level, in every Linux system we find the syscalls interface. It’s certain that every user space process goes through this part of the kernel.&lt;/p&gt;
&lt;p&gt;Starting with this assumption, the immediate conclusion is that we can just go and ask the syscalls “Yo syscalls! What’s happening in my system?”. While this reasoning might seem very simple, reading and processing every single syscall in userspace can result in a set of very unique challenges to this domain.&lt;/p&gt;
&lt;p&gt;In this talk we are going to see exactly what those challenges are and how we solved them in the Falco project.&lt;/p&gt;
&lt;p&gt;Part of the solution for Falco is to have two alternative drivers, a Kernel module and an eBPF driver talking to userspace using a Ring buffer but you have to come to this talk to hear the rest!&lt;/p&gt;</description>
<persons>
<person id="5502">Lorenzo Fontana</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9182.php">Submit feedback</link>
</links>
<date>2020-02-01T12:30:00+01:00</date>
</event>
<event id="10218">
<start>13:00</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_docker_security_considerations_incident_analysis</slug>
<title>Docker Security considerations &amp; Incident Analysis </title>
<subtitle/>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In this presentation we take under consideration the increased use of Docker in corporate environments.
It is a fact that Docker has found wide spread of use during the past years, mostly because of it
being very easy to use , economic w.r.t resources used, fast and easy to deploy when compared with
a full blown virtual machine. More and more servers are being operated as Docker hosts on which
micro-services run in containers. From a security point of view, two aspects of it arise in the
context of this talk and the inherent time-limitations it has. Firstly, the aspect of the already
quite talked-through question, “is it secure ?”.Secondly the less analyzed aspect of incident analysis
and the changes introduced with respect to known methods and evidence.In this presentation we will
briefly outline some security considerations about Docker and the average user and then we will try
to examine how Docker introduces changes to the workflow related to incident analysis and forensics in its environment.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7111">John Lionis</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10218.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="10370">
<start>13:30</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_incrementality_and_deck_functions</slug>
<title>Incrementality and deck functions</title>
<subtitle>Simple protocols and efficient constructions in symmetric cryptography</subtitle>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Protocols in symmetric cryptography are often built from block ciphers, with a fixed input and output size, while variable sizes are handled through their modes of use. Incrementality, namely, the ability to efficiently compute the output for increasing inputs, or to request longer outputs, is often a property of the implementation rather than an explicit feature of a mode.&lt;/p&gt;
&lt;p&gt;A doubly-extendable cryptographic keyed (or deck) function is a new kind of object that makes incrementality an integral part of its definition. Writing modes for various applications, such as authenticated encryption of a network channel or disk encryption with a wide block cipher, on top of a deck function turns out to be a simple exercise and leads to less error-prone implementations than on top of a block cipher. We illustrate this with the session-supporting authenticated encryption modes SANE and SANSE. (Sessions naturally protect a continuous flow of messages or a client-server dialog.)&lt;/p&gt;
&lt;p&gt;While a deck function can be constructed from existing primitives, like a block cipher, we show two more natural ways of making a deck function in practice.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The first one is based on the well-known permutation-based duplex construction, of which a nice instantiation is the &lt;a href=&quot;https://strobe.sourceforge.io/&quot;&gt;Strobe protocol framework&lt;/a&gt;. Strobe was showcased in &lt;a href=&quot;https://www.discocrypto.com/&quot;&gt;Noise+Strobe=Disco&lt;/a&gt; as an advantageous replacement to all kinds of primitives in the &lt;a href=&quot;https://noiseprotocol.org/&quot;&gt;Noise protocol framework&lt;/a&gt;, resulting in &lt;a href=&quot;https://permutationbasedcrypto.org/2018/slides/David_Wong.pdf&quot;&gt;much simpler specifications and a lighter implementation&lt;/a&gt;. Xoodyak, our candidate to the NIST Lightweight Cryptography competition, is another example.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The second one is based on the recent Farfalle construction, which relies on the parallel application of a permutation. Farfalle's inherent parallelism yields deck functions that are at the same time simple and efficient on a wide range of platforms. In particular, we point out the nice performance of Kravatte and Xoofff, two deck functions based on the Keccak-p and the Xoodoo permutation, respectively. It is worth noting that Kravatte and Xoofff are much faster than AES-128 in software, and at least competitive with and often faster than AES-128 using dedicated AES instructions &lt;a href=&quot;https://keccak.team/sw_performance.html&quot;&gt;on the more recent Intel and AMD processors&lt;/a&gt;!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
</abstract>
<description/>
<persons>
<person id="1105">Gilles Van Assche</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10370.php">Submit feedback</link>
</links>
<date>2020-02-01T13:30:00+01:00</date>
</event>
<event id="9895">
<start>14:00</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_how_transparent_data_encryption_is_built_in_mysql_and_percona_server</slug>
<title>How Transparent Data Encryption is built in MySQL and Percona Server ?</title>
<subtitle/>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;How Transparent Data Encryption is built in MySQL and Percona Server ?
- keyrings – what are they used for ? What is the difference between using a server back-end (keyring&lt;em&gt;vault) versus file back-end (keyring&lt;/em&gt;file). How it affects server startup and why? Why per server separation is needed in Vault Server?
- How Master Key encryption works ? How it is build on page level ? How do we know which key we should fetch to decrypt a table ? How do we know that used key is the correct one ? How do we make sure that we can decrypt a table when we need it ?
- What crypto algorithms are used ?
- How Master Key rotation works ? Why is it needed ?
- What is KEYRING encryption and what are encryption threads?
- How binlog encryption works in 5.7 and how it works in 8.0 ?
- How undo log/redo log encryption works ?&lt;/p&gt;</abstract>
<description>&lt;p&gt;How Transparent Data Encryption is Built in MySQL and Percona Server ?&lt;/p&gt;
&lt;p&gt;In this presentation, we'll take a deep dive into the world of transparent data encryption for open source databases. We'll be looking at how transparent data encryption is implemented in MySQL and Percona Server for MySQL:
- keyrings – what are they used for ? What is the difference between using a server back-end (keyring&lt;em&gt;vault) versus file back-end (keyring&lt;/em&gt;file). How it affects server startup and why? Why per server separation is needed in Vault Server?
- How Master Key encryption works ? How it is build on page level ? How do we know which key we should fetch to decrypt a table ? How do we know that used key is the correct one ? How do we make sure that we can decrypt a table when we need it ?
- How Master Key rotation works ? Why is it needed ?
By the end of the talk, you'll have a better understanding of the transparent data encryption and will be aware of things to take into account when interacting with encrypted databases in your applications.&lt;/p&gt;</description>
<persons>
<person id="6989">Robert Golebiowski</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9895.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="10210">
<start>14:30</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_secure_logging_with_syslog_ng</slug>
<title>Secure logging with syslog-ng</title>
<subtitle>Forward integrity and confidentiality of system logs</subtitle>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The design, implementation, and configuration of the secure logging service. Its aim is to provide tamper evident logging, i.e., to adequately protect log records of an information system against tampering and to provide a sensor indicating attack attempts. The secure logging service achieves this by authentically encrypting each log record with an individual cryptographic key used only once and protects integrity of the whole log archive by a cipher{based message authentication
code. Each attempt to tamper with either an individual log record or the log archive itself will be immediately detected during log archive verification. Therefore, an attacker can no longer tamper with log records without being detected which greatly enhances the use of log archives in forensic investigations.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Log records are normally produced by any information system in order to perform monitoring during normal operations and for troubleshooting in case of technical problems. Log information is equally important for retaining the security of an information system, as security relevant events are recorded and can later be monitored for unusual patterns which may indicate an attack attempt. Examples include log on and log off, startup and shutdown, network service access, network filter rule application, storage access, etc. Log records may also contain valuable information about a system that a potential attacker intends to compromise. If an attacker is able to successfully compromise a system, they are also able to tamper with log records, potentially hiding their traces. This makes forensic analysis extremely difficult, as no reliable data source about system behavior immediately before the attack is available to a security analyst performing incident investigation. Therefore, log information should be appropriately protected. The aim of the secure logging service is to provide tamper evident logging, i.e., to adequately protect log records of an information system and to provide a sensor indicating attack attempts. The secure logging service achieves this by authentically encrypting each log record with an individual cryptographic key used only once and protects integrity of the whole log archive by a cryptographic authentication code. Each attempt to tamper with either an individual log record or the log archive itself will be immediately detected during log archive verification. Therefore, an attacker can no longer tamper with log records
without being detected. ost information systems rely on standards in order to provide logging services. One of the most widely adopted standards is the syslog protocol which is specified in RFC 5424. Many implementations of this
protocol are available. A popular extensible implementation with additional features is syslog-ng, which is an enhanced logging daemon with advanced features for input and output. Furthermore, it features capabilities for log message filtering, rewriting, and routing. It can be used as a drop-in replacement for existing log daemons on UNIX systems. The implementation of the secure logging service providing tamper evidence and confidentiality of system logs based on the template mechanism of syslog-ng is presented together with an application example.&lt;/p&gt;</description>
<persons>
<person id="6800">Stephan Marwedel</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10210.php">Submit feedback</link>
</links>
<date>2020-02-01T14:30:00+01:00</date>
</event>
<event id="9444">
<start>15:00</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_protecting_plaintext_secrets_in_configuration_files</slug>
<title>Protecting plaintext secrets in configuration files</title>
<subtitle/>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Applications and services rely on configuration data in order to be customized and we will talk about how to keep them in a safer place other than plaintext configuration files.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The configparser module is Python's standard configuration file parser and many projects rely on it to achieve easy configuration with plaintext files. OpenStack Common Libraries (Oslo) has an alternative called oslo.config with additional sources of input like command line arguments or environment variables. With the addition of a feature called source drivers last year, we are now able to increase the security of configuration values storing them in a safer place.&lt;/p&gt;
&lt;p&gt;This talk focuses on the new source driver that integrates Oslo.Config and Castellan, another Olso module specialized in talking to secret managers, and how we can store our sensitive configuration data using HashiCorp Vault.&lt;/p&gt;</description>
<persons>
<person id="5949">Moisés Guimarães</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9444.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="10388">
<start>15:30</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_application_whitelisting_in_linux_environment</slug>
<title>Application Whitelisting in Linux Environment</title>
<subtitle/>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Are you a sysadmin and feeling paranoid? Let's promote security hardening to another level.
Perhaps, with the concept of Application Whitelisting you will be able to sleep again.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In this session we are going to explain the Application Whitelisting idea and its implementation, what benefits are there from a security point of view and how it differs from competitors.
We are going to show how to create a new set of rules based on distribution default for given examples.
As a result, an attendee should be able to setup the Application Whitelisting framework on his server or workstation.&lt;/p&gt;
&lt;p&gt;This presentation is based on Red Hat/Fedora Linux environment.&lt;/p&gt;</description>
<persons>
<person id="6813">Radovan Sroka</person>
</persons>
<links>
<link href="https://github.com/linux-application-whitelisting/fapolicyd">https://github.com/linux-application-whitelisting/fapolicyd</link>
<link href="https://submission.fosdem.org/feedback/10388.php">Submit feedback</link>
</links>
<date>2020-02-01T15:30:00+01:00</date>
</event>
<event id="10188">
<start>16:00</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_seccomp</slug>
<title>seccomp — Your Next Layer of Defense</title>
<subtitle/>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Why should you allow all possible system calls from your application when you know that you only need some? If you have ever wondered the same then this is the right talk for you. We are covering:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What is seccomp in a nutshell and where could you use it.&lt;/li&gt;
&lt;li&gt;Practical example with Elasticsearch and Beats.&lt;/li&gt;
&lt;li&gt;How to collect seccomp violations with Auditd.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Because your security approach can always use an additional layer of protection.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4028">Philipp Krenn</person>
</persons>
<links>
<link href="https://xeraa.net/talks/seccomp-next-layer-defense/">Slides</link>
<link href="https://submission.fosdem.org/feedback/10188.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="10585">
<start>16:30</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_kernel_runtime_security_instrumentation</slug>
<title>Kernel Runtime Security Instrumentation</title>
<subtitle>LSM+BPF=KRSI</subtitle>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;KRSI (Kernel Runtime Security Instrumentation) is an ongoing effort at Google to upstream an LSM (Linux Security Module) instrumentable using eBPF (extended Berkeley Packet Filter) to the Linux kernel.&lt;/p&gt;
&lt;p&gt;KRSI allows system owners to dynamically attach eBPF programs to security hooks and write MAC and audit policies without having to reboot or patch the kernel thereby enabling a new class of system security and auditing software.&lt;/p&gt;
&lt;p&gt;This talk presents the main concepts behind KRSI: it introduces the technologies leveraged and presents the API exposed to users.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3601">Florent Revest</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10585.php">Submit feedback</link>
</links>
<date>2020-02-01T16:30:00+01:00</date>
</event>
<event id="9050">
<start>17:00</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_using_selinux_with_container_runtimes</slug>
<title>Using SELinux with container runtimes</title>
<subtitle/>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Lukas Vrabec built a new standalone tool, udica, for generating SELinux policy profiles for containers based on automatic inspecting these containers. We will focus on why udica is needed in the container world and how it can make SELinux and containers work better together. We will show real examples where SELinux separation for containers had to be turned off because the generic SELinux type container_t was too tight. With a tool like “udica”, users and developers can easily customize the policy with limited SELnux policy writing skills. Come to see how easy also you can create custom SELinux policy for your containers!&lt;/p&gt;</abstract>
<description>&lt;p&gt;This talk will explain how SELinux works with containers. We will show how to enable/disable SElinux using multiple different container runtimes and define the default types. One issue with these types is that they are tough to customize. The two default types for running containers are container&lt;em&gt;t which is a fully confined domain, which eliminates any use of the host files unless they are relabeled. Or spc&lt;/em&gt;t, which is the type containers run with when SELinux is disabled for container separation, --privileged mode. As an example, If you had a container that you wanted to be able to gather the logs from /var/log on the host and send them to a centralized server, you have to disable SELinux separation.&lt;/p&gt;
&lt;p&gt;Writing custom policy for each container that needed additional access would be very difficult and require a container policy writer.&lt;/p&gt;</description>
<persons>
<person id="5476">Lukas Vrabec</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9050.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="10535">
<start>17:30</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_the_hairy_issue_of_e2e_encryption_in_instant_messaging</slug>
<title>The hairy issue of e2e encryption in instant messaging</title>
<subtitle/>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;End-to-end encryption is often regarded as the holy grail of security. But when you start implementing it soon becomes a security hell. Does it really protect against the threats it should protect against? And watch out for the pitfalls when implementing it: almost everybody fails there!&lt;/p&gt;</abstract>
<description>&lt;p&gt;Lets start with the conclusion of this talk: after twenty years of designing and analyzing high security instant messaging systems, I came to the conclusion that end-to-end encryption (e2ee) in instant messaging is snake-oil. It creates a false sense of security.&lt;/p&gt;
&lt;p&gt;First of all the threat model underneath e2ee has fundamental flaws, it doesn’t deliver protection against the threats commonly named to justify it. And if that isn’t enough, there a lot of issues that make a proper implementation very hard to get right. To name a few: key verification, one-to-many messages, store and forward and archiving.&lt;/p&gt;
&lt;p&gt;But lets not end this talk all in black. Though we aren’t there yet, there are some developments that may solve these issues. I will name those too.&lt;/p&gt;</description>
<persons>
<person id="3348">Winfried Tilanus</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10535.php">Submit feedback</link>
</links>
<date>2020-02-01T17:30:00+01:00</date>
</event>
<event id="9865">
<start>18:00</start>
<duration>00:25</duration>
<room>UA2.114 (Baudoux)</room>
<slug>security_what_you_most_likely_did_not_know_about_sudo</slug>
<title>What you most likely did not know about sudo…</title>
<subtitle/>
<track>Security</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Everybody knows sudo, right? Sudo allows a system administrator to give certain users the ability to run some commands as root, while logging the executed commands and their arguments. It is installed by default on almost all Linux systems, and is available for most commercial UNIX systems. Still, even system administrators often only know it is the “prefix” to use before entering a command requiring root privileges. Learn how much more this simple looking tool can do!&lt;/p&gt;</abstract>
<description>&lt;p&gt;Everybody knows sudo, right? Sudo allows a system administrator to give certain users the ability to run some commands as root, while logging the executed commands and their arguments. It is installed by default on almost all Linux systems, and is available for most commercial UNIX systems. Still, even system administrators often only know it is the “prefix” to use before entering a command requiring root privileges. Learn how much more this simple looking tool can do!
Most of the times the default configuration allows a group of users to run any commands:
%wheel ALL=(ALL) ALL
It’s a good first step, better than using the root account directly. This way you can trace who ran what commands on the system. But there are a lot more possibilities when configuring sudo, making your system more secure.
Life is simple when when you have to give access a single user to a single command. But as soon as you have multiple users with the same access rights, it is not just shorter but also easier to maintain, if you use aliases.
For added security, you can add a hash of binaries to sudo. This way if the binary changes for any reasons, like modifying it through a successful exploit, you can prevent it from being used.&lt;/p&gt;
&lt;p&gt;Using sudo does not make much sense without proper logging and alerting. There are three major possibilities:
- syslog: all events are logged to syslog. For additional security, collect sudo logs centrally, so a malicious user cannot delete them easily.
- e-mail: sudo can send e-mail alerts on different kinds of failures
- debug: in depth logging of subsystems, mostly useful for developers
Session recording is a fourth possibility. The terminal output can be saved in a local file and played back. You can play back what happened, even if the user started up an interactive shell.&lt;/p&gt;
&lt;p&gt;Instead of maintaining the sudoers file on each of your systems, you can use LDAP to configure sudo. It has some differences compared to a sudoers file, but also many advantages:
- local users cannot manipulate the rules,
- is easier to maintain,
- goes live immediately.&lt;/p&gt;
&lt;p&gt;Starting with version 1.8, sudo has a plugin-based architecture. You can replace or extend sudo functionality using plugins. This way users can keep starting applications the usual way using sudo, but have a different configuration or policy engine behind the sudo command. There are both open source and commercial plugins available. For example the sudo_pair plugin – developed in Rust – enables monitoring and makes it possible to require interactive approval of sessions.&lt;/p&gt;
&lt;p&gt;As you can see, sudo has several lesser-known features that can make monitoring and access management easier for large organizations.&lt;/p&gt;</description>
<persons>
<person id="828">Peter Czanik</person>
</persons>
<links>
<link href="https://blog.sudo.ws/">sudo blog</link>
<link href="https://www.sudo.ws/">sudo website</link>
<link href="https://www.linkedin.com/in/peterczanik/">speaker LinkedIn</link>
<link href="https://submission.fosdem.org/feedback/9865.php">Submit feedback</link>
</links>
<date>2020-02-01T18:00:00+01:00</date>
</event>
</room>
<room name="UA2.220 (Guillissen)">
<event id="10290">
<start>10:30</start>
<duration>00:05</duration>
<room>UA2.220 (Guillissen)</room>
<slug>legal_welcome</slug>
<title>Welcome to the Legal &amp; Policy Issues DevRoom</title>
<subtitle/>
<track>Legal and Policy Issues</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Welcome to the Legal &amp;amp; Policy Issues DevRoom including and overview of how the new Collaboration and Debate sessions will work.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="418">Tom Marble</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10290.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="9763">
<start>10:35</start>
<duration>00:25</duration>
<room>UA2.220 (Guillissen)</room>
<slug>challenges_for_privacy</slug>
<title>Technology challenges for privacy: the case of decentralized social media</title>
<subtitle/>
<track>Legal and Policy Issues</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;As decentralized social media gathers more users, the privacy by design and default principles from the GDPR are in accordance to the design model it proposes. This talk is going to tackle the main advantages and challenges this approach brings, from the perspective of the data protection legislation and privacy architectural strategies.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Social media platforms have been a central feature in our generation and as we grow more toward understanding their power and taking part in their evolution, we realize the challenges they impose. One of those is how to protect personal data of users, and ensure that the processing is done in accordance with legislation such as GDPR.
Decentralized social media has developed as a space where personal data ownership is a priority, coming as an alternative to centralized platforms. Not coincidentally, they are mostly open source software, as transparency and offering control of the data to the users go hand in hand with this ambition. Blockchain based social media networks, and projects built on top of the ActivityPub protocol are some of the most popular examples of alternatives which have gathered significant numbers of users or data subjects, under the GDPR.
One of the main architectural strategies in building software which is privacy by default and design is data separation. It states that the processing of personal data should be performed whenever possible in a distributed manner. As the GDPR lists privacy by design and default as core principles, decentralized social networking poses a significant advantage compared to centralized solutions. One heuristic to take from this is if the future is privacy-oriented, then social media will be decentralized.
This talk is going to offer an analysis of the main benefits and challenges that decentralized social medial pose, from the points of view of personal data protection legislation and privacy design patterns for software architecture.&lt;/p&gt;</description>
<persons>
<person id="5091">Cristina DeLisle</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9763.php">Submit feedback</link>
</links>
<date>2020-02-01T10:35:00+01:00</date>
</event>
<event id="9759">
<start>11:00</start>
<duration>00:50</duration>
<room>UA2.220 (Guillissen)</room>
<slug>debate_enforce_licenses</slug>
<title>DEBATE: Should FOSS licenses be enforced at all? What means are acceptable if so?</title>
<subtitle/>
<track>Legal and Policy Issues</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In a perfect world, lawyers (and the entire legal system) should not be necessary. And in a perfect FOSS world, everyone respects each and every provision of every license. The reality is, however, very different, and enforcement may be a necessary evil. This need does not mean we have to open the gates to be flooded by &quot;copyleft trolls&quot;, but to establish a sound enforcement policy, in order to unleash the lawyers only for the most blatant and repeated violations&lt;/p&gt;</abstract>
<description>&lt;p&gt;Affirmative position: FOSS licenses should not be enforced.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;First Affirmative Constructive (1AC) = 7 minutes
a. Cross-examination of First Affirmative by Second Negative = 3 minutes&lt;/li&gt;
&lt;li&gt;First Negative Constructive (1NC) = 7 minutes
a. Cross-examination of First Negative by First Affirmative = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Affirmative Constructive (2AC) = 7 minutes
a. Cross-examination of Second Affirmative by First Negative = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Negative Constructive (2NC) = 7 minutes
a. Cross-examination of Second Negative by Second Affirmative = 3 minutes&lt;/li&gt;
&lt;li&gt;First Negative Rebuttal (1NR) = 3 minutes&lt;/li&gt;
&lt;li&gt;First Affirmative Rebuttal (1AR) = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Negative Rebuttal (2NR) = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Affirmative Rebuttal (2AR) = 3 minutes&lt;/li&gt;
&lt;/ol&gt;
</description>
<persons>
<person id="1245">Pamela Chestek</person>
<person id="3467">Giovanni Battista Gallus</person>
<person id="3893">Marc Jones</person>
<person id="7181">McCoy Smith</person>
</persons>
<links>
<link href="https://en.wikipedia.org/wiki/Structure_of_policy_debate">Structure_of_policy_debate</link>
<link href="https://submission.fosdem.org/feedback/9759.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
<event id="10737">
<start>12:00</start>
<duration>00:50</duration>
<room>UA2.220 (Guillissen)</room>
<slug>debate_license_compliance</slug>
<title>DEBATE: Does Careful Inventory of Licensing Bill of Materials Have Real Impact on FOSS License Compliance?</title>
<subtitle/>
<track>Legal and Policy Issues</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Projects today often have thousands of FOSS dependencies. Since risk
flows downstream in the supply chain; projects inherit and pass on the
risks of all their dependencies. In response, licensing bill of
materials tools often seek to push well-formed licensing inventory
data upstream in an effort to ease downstream compliance
challenges. At the same time, there has been a stark increase in
license violations, especially, though not exclusively, on copyleft
licenses. Is this approach to improving compliance working?&lt;/p&gt;</abstract>
<description>&lt;p&gt;Affirmative position: Compliance at scale through tool-driven assembly of bills of materials is essential for FOSS&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;First Affirmative Constructive (1AC) = 7 minutes
a. Cross-examination of First Affirmative by Second Negative = 3 minutes&lt;/li&gt;
&lt;li&gt;First Negative Constructive (1NC) = 7 minutes
a. Cross-examination of First Negative by First Affirmative = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Affirmative Constructive (2AC) = 7 minutes
a. Cross-examination of Second Affirmative by First Negative = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Negative Constructive (2NC) = 7 minutes
a. Cross-examination of Second Negative by Second Affirmative = 3 minutes&lt;/li&gt;
&lt;li&gt;First Negative Rebuttal (1NR) = 3 minutes&lt;/li&gt;
&lt;li&gt;First Affirmative Rebuttal (1AR) = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Negative Rebuttal (2NR) = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Affirmative Rebuttal (2AR) = 3 minutes&lt;/li&gt;
&lt;/ol&gt;
</description>
<persons>
<person id="441">Bradley M. Kuhn</person>
<person id="5041">Carol Smith</person>
<person id="5990">Jeff McAffer</person>
</persons>
<links>
<link href="https://en.wikipedia.org/wiki/Structure_of_policy_debate">Structure_of_policy_debate</link>
<link href="https://submission.fosdem.org/feedback/10737.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="9762">
<start>13:00</start>
<duration>00:25</duration>
<room>UA2.220 (Guillissen)</room>
<slug>user_standing</slug>
<title>COLLAB: How can we give users standing in free/open software/hardware?</title>
<subtitle/>
<track>Legal and Policy Issues</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;How can we give users standing in free/open software/hardware?
How can we motivate end users to care about FOSS if
they can't express their preference? What tools do we have beyond
the &quot;court of public opinion&quot;? Can we invent a NEW legal hack?&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="312">Italo Vignoli</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9762.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="9756">
<start>13:30</start>
<duration>00:25</duration>
<room>UA2.220 (Guillissen)</room>
<slug>optics_of_the_policy</slug>
<title>COLLAB: The optics of the policy</title>
<subtitle>And vice-versa</subtitle>
<track>Legal and Policy Issues</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Photography policies have begun to appear at free-software events in recent years. These policies typically seek to address personal privacy concerns for event attendees, but they sometimes conflict with the event's desire to record talks, Q&amp;amp;A periods, and social gatherings in public spaces. If not drafted with care, photo policies also run the risk of creating ambiguities for journalists, other attendees making personal photo or video recordings, and members of event-hosting organizations or the public. This session will be an open discussion about photo and video-recording policies, online tagging policies, and related personal-privacy policies, with the goal of clarifying the requirements, needs, and intents of all stakeholders in the FOSS community, so that future event organizers have a solid framework from which to draft clear policies that fit their situations.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Free-software events, like free-software projects, have to maintain a delicate balance between openness as a broad principle and privacy as an individual concern. In the past few years, more and more free-software events and community projects have developed &quot;photo policies&quot; that are intended to define when and how individuals and groups should be captured in media from the event and when and how those same people should be identified in the media. But a haphazard approach to policy writing can create unintentional ambiguities, such as how to define when an individual is the &quot;subject' of a photograph or merely in the background. And free-software communities must also take care to write policies that do not come into conflict with local law, especially when events take place in public spaces. Finally, event organizers need to ensure that their photo policies, real-name policies, press policies, and session-recording consent policies work in concern with one another, not in conflict.&lt;/p&gt;
&lt;p&gt;This session will be a broad discussion of photography policies and how they interact with other policy concerns. The intent will be to enumerate the concerns of all stakeholders, identify potential areas of confusion, note best practices, and — most importantly — establish resources and spaces for further discussion for project and community members creating photo policies in the future.&lt;/p&gt;</description>
<persons>
<person id="4935">Nathan Willis</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9756.php">Submit feedback</link>
</links>
<date>2020-02-01T13:30:00+01:00</date>
</event>
<event id="9664">
<start>14:00</start>
<duration>00:50</duration>
<room>UA2.220 (Guillissen)</room>
<slug>debate_fsd_osd_irrelevant</slug>
<title>DEBATE: The 4 Freedoms and OSD are outdated and no longer relevant in 2020</title>
<subtitle/>
<track>Legal and Policy Issues</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Are the FSF's 4 Freedoms and the OSI's Open Source Definition out
of date in 2020 and should be replaced.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Affirmative position: OSD/FSD is now irrelevant&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;First Affirmative Constructive (1AC) = 7 minutes
a. Cross-examination of First Affirmative by Second Negative = 3 minutes&lt;/li&gt;
&lt;li&gt;First Negative Constructive (1NC) = 7 minutes
a. Cross-examination of First Negative by First Affirmative = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Affirmative Constructive (2AC) = 7 minutes
a. Cross-examination of Second Affirmative by First Negative = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Negative Constructive (2NC) = 7 minutes
a. Cross-examination of Second Negative by Second Affirmative = 3 minutes&lt;/li&gt;
&lt;li&gt;First Negative Rebuttal (1NR) = 3 minutes&lt;/li&gt;
&lt;li&gt;First Affirmative Rebuttal (1AR) = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Negative Rebuttal (2NR) = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Affirmative Rebuttal (2AR) = 3 minutes&lt;/li&gt;
&lt;/ol&gt;
</description>
<persons>
<person id="829">Neil McGovern</person>
<person id="3462">Andrew Katz</person>
<person id="4794">Matt Jarvis</person>
<person id="5034">Luis Villa</person>
<person id="6495">Frank Karlitschek</person>
<person id="6847">Amanda Brock</person>
</persons>
<links>
<link href="https://en.wikipedia.org/wiki/Structure_of_policy_debate">Structure_of_policy_debate</link>
<link href="https://submission.fosdem.org/feedback/9664.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="9775">
<start>15:00</start>
<duration>00:25</duration>
<room>UA2.220 (Guillissen)</room>
<slug>debate_socal_goal_licenses</slug>
<title>DEBATE: Should licenses be designed to advance general social goals?</title>
<subtitle/>
<track>Legal and Policy Issues</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;We have seen several licenses proposed as &quot;open source&quot; that
carry some obligation or restriction related to ethics or
other social goals. Is this a good direction for FOSS license drafting?&lt;/p&gt;</abstract>
<description>&lt;p&gt;Affirmative position: FOSS licenses should advance social goals&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;First Affirmative Constructive (1AC) = 7 minutes
a. Cross-examination of First Affirmative by Second Negative = 3 minutes&lt;/li&gt;
&lt;li&gt;First Negative Constructive (1NC) = 7 minutes
a. Cross-examination of First Negative by First Affirmative = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Affirmative Constructive (2AC) = 7 minutes
a. Cross-examination of Second Affirmative by First Negative = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Negative Constructive (2NC) = 7 minutes
a. Cross-examination of Second Negative by Second Affirmative = 3 minutes&lt;/li&gt;
&lt;li&gt;First Negative Rebuttal (1NR) = 3 minutes&lt;/li&gt;
&lt;li&gt;First Affirmative Rebuttal (1AR) = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Negative Rebuttal (2NR) = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Affirmative Rebuttal (2AR) = 3 minutes&lt;/li&gt;
&lt;/ol&gt;
</description>
<persons>
<person id="1577">John Sullivan</person>
<person id="4180">Molly de Blanc</person>
<person id="4569">James Vasile</person>
<person id="5967">Josh Simmons</person>
<person id="6771">Dashiell Renaud</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9775.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="10738">
<start>16:00</start>
<duration>00:50</duration>
<room>UA2.220 (Guillissen)</room>
<slug>debate_foss_sustainability</slug>
<title>DEBATE: Does FOSS need sustainability?</title>
<subtitle/>
<track>Legal and Policy Issues</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Several prominent FOSS projects have changed their FOSS licenses to
alternate licenses that make software available, but with additional
restrictions intended to help financially sustain FOSS development and
combat &quot;strip mining&quot; by software-as-a-service providers. Additionally,
recently several related organizations have jumped into the the role of
helping sustain open source by providing (for a fee) funding conduits,
fundraising services, or other mechanisms to route money to maintainers.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Affirmative position: FOSS benefits from sustainability efforts&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;First Affirmative Constructive (1AC) = 7 minutes
a. Cross-examination of First Affirmative by Second Negative = 3 minutes&lt;/li&gt;
&lt;li&gt;First Negative Constructive (1NC) = 7 minutes
a. Cross-examination of First Negative by First Affirmative = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Affirmative Constructive (2AC) = 7 minutes
a. Cross-examination of Second Affirmative by First Negative = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Negative Constructive (2NC) = 7 minutes
a. Cross-examination of Second Negative by Second Affirmative = 3 minutes&lt;/li&gt;
&lt;li&gt;First Negative Rebuttal (1NR) = 3 minutes&lt;/li&gt;
&lt;li&gt;First Affirmative Rebuttal (1AR) = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Negative Rebuttal (2NR) = 3 minutes&lt;/li&gt;
&lt;li&gt;Second Affirmative Rebuttal (2AR) = 3 minutes&lt;/li&gt;
&lt;/ol&gt;
</description>
<persons>
<person id="418">Tom Marble</person>
<person id="4271">Philippe Ombredanne</person>
<person id="5034">Luis Villa</person>
<person id="6518">Mehdi Medjaoui</person>
</persons>
<links>
<link href="https://en.wikipedia.org/wiki/Structure_of_policy_debate">Structure_of_policy_debate</link>
<link href="https://submission.fosdem.org/feedback/10738.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="9786">
<start>17:00</start>
<duration>00:25</duration>
<room>UA2.220 (Guillissen)</room>
<slug>oracle_v_google</slug>
<title>Oracle v. Google: What are the implications for FOSS?</title>
<subtitle/>
<track>Legal and Policy Issues</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;All the merits briefs for Oracle v. Google will be filed a couple weeks before FOSDEM 2020. This will be a rundown of the positions argued by various groups - how are the parties positioning the questions presented? What are the various amici arguing? Are there any positions that will be particularly impactful for FOSS groups and users?&lt;/p&gt;</abstract>
<description>&lt;p&gt;On Friday, Nov. 15, the U.S. Supreme Court agreed to hear Oracle v. Google. It is hard to overstate how impactful this decision will be on FOSS. For the first time in a generation, the Supreme Court will be evaluating how copyright and software interact - and they will be discussing it in the context of GPL-licensed Java.&lt;/p&gt;
&lt;p&gt;Right before FOSDEM, all the briefs by all parties will be due. As we sit in Brussels, the court clerks will be reading the various briefs and creating a &quot;bench memo&quot; for each justice, summarizing the arguments being advanced by both Oracle and Google, as well as the points raised by different amici.&lt;/p&gt;
&lt;p&gt;This presentation will be a verbal &quot;bench memo&quot; for those in the FOSS community. Rather than advance a particular view, we will try to understand the scope of issues being argued, and how they may affect Free and Open Source Software in the United States - and worldwide.&lt;/p&gt;</description>
<persons>
<person id="5973">Van Lindberg</person>
</persons>
<links>
<link href="http://www.supremecourt.gov/DocketPDF/18/18-956/89548/20190225155816527_18-956%20Amici%20Brief%20Python.pdf">Amicus Brief Supporting Cert filed last year</link>
<link href="https://submission.fosdem.org/feedback/9786.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="10739">
<start>17:30</start>
<duration>00:50</duration>
<room>UA2.220 (Guillissen)</room>
<slug>legal_organizers_panel</slug>
<title>Legal Organizer's Panel</title>
<subtitle/>
<track>Legal and Policy Issues</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The Legal &amp;amp; Policy Issues DevRoom Organizers gather to reflect on our DevRoom talks and FOSS issues of the day&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="418">Tom Marble</person>
<person id="441">Bradley M. Kuhn</person>
<person id="448">Karen Sandler</person>
<person id="583">Richard Fontana</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10739.php">Submit feedback</link>
</links>
<date>2020-02-01T17:30:00+01:00</date>
</event>
</room>
<room name="UB2.147">
<event id="9818">
<start>10:30</start>
<duration>00:30</duration>
<room>UB2.147</room>
<slug>testing_improving_culture_automated_testing_foss</slug>
<title>Improving the culture of automated testing in FOSS</title>
<subtitle/>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In this talk we will explore some of the FOSS specific mentalities and
practices that may discourage adoption of comprehensive automated testing, and
present advice for promoting and sustaining automated testing in FOSS projects.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Automated testing is on the rise in the FOSS world, but there is still ample
room for improvement when it comes to sufficiently comprehensive automated
tests. The test suites of many FOSS projects leave a lot to be desired,
a result that's often affected by useful FOSS practices that are
taken too far. Identifying such practices, like placing excessive trust in code
reviews because &quot;given enough eyeballs, all bugs are shallow&quot;, or leaving tests
for later in the spirit of &quot;release often, release early&quot;, is a first step in
having a discussion that will hopefully convince more projects to embrace
automated testing, and improve the quality of FOSS overall.&lt;/p&gt;</description>
<persons>
<person id="4989">Alexandros Frantzis</person>
</persons>
<links>
<link href="https://afrantzis.com/posts/on-the-low-adoption-of-automated-testing-in-foss/">Related blog post #1</link>
<link href="https://afrantzis.com/posts/metrics-for-test-suite-comprehensiveness/">Related blog post #2</link>
<link href="https://submission.fosdem.org/feedback/9818.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10643">
<start>11:05</start>
<duration>00:30</duration>
<room>UB2.147</room>
<slug>testing_welcome_kernelci</slug>
<title>Welcome to KernelCI</title>
<subtitle>You're all welcome to the KernelCI project's new home</subtitle>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;KernelCI is a project dedicated to testing the upstream Linux kernel.
Originally created by Linaro in 2014, it started a new chapter by
becoming a Linux Foundation project in October 2019. Its future looks
bright, with plenty of opportunities for new contributors to join.&lt;/p&gt;</abstract>
<description>&lt;h2&gt;The chosen one&lt;/h2&gt;
&lt;p&gt;The upstream kernel testing landscape is pretty wide, rich and
diverse, in the same ways that the Linux kernel is. But as there is
only one upstream kernel, it became clear that there should also be
one main test system associated with it. KernelCI was chosen to
fulfil this role, being rather neutral, versatile and based on a
distributed architecture.&lt;/p&gt;
&lt;h2&gt;A welcoming place&lt;/h2&gt;
&lt;p&gt;While the project now has a governing board via the Linux Foundation
membership, its involvement with the kernel community is only getting
stronger. It is of utmost importance to keep the roadmap aligned with
expectations from maintainers and developers to preserve the integrity
and overall purpose of project. In fact, it now needs to become an
easy tool to use by anyone who wants to add tests for their subsystem
or their hardware and for anyone to reproduce those tests locally.&lt;/p&gt;
&lt;h2&gt;An exciting year ahead&lt;/h2&gt;
&lt;p&gt;This is a new beginning for KernelCI, with many of its prior
limitations now being removed thanks to the framework provided by the
Linux Foundation. Contributors to the code, tests, hardware labs and
new project members will all have a great influence by joining the
project at this very special point in time. Now is the time to come
and help shape it as a successful project for the years to come.&lt;/p&gt;
&lt;p&gt;Slides: https://people.collabora.com/~gtucker/kernelci/doc/gtucker-kernelci-fosdem-2020.pdf&lt;/p&gt;</description>
<persons>
<person id="4997">Guillaume Tucker</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10643.php">Submit feedback</link>
</links>
<date>2020-02-01T11:05:00+01:00</date>
</event>
<event id="10271">
<start>11:40</start>
<duration>00:40</duration>
<room>UB2.147</room>
<slug>testing_abusing_gitlabci_test_kernel</slug>
<title>Abusing GitLab CI to Test Kernel Patches</title>
<subtitle/>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;See how Red Hat’s CKI project uses GitLab CI to test kernel patches as soon as they're posted to maillists.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Red Hat's CKI project uses GitLab CI to organize and track its pipelines, lint, patch, and build Linux kernels, and oversee testing. It also uses a number of supporting systems to discover kernel patches and commits, maintain hardware inventory, provision hardware and VMs, run tests, and finally record and report results.&lt;/p&gt;
&lt;p&gt;See which tricks the project is pulling to tie all these parts together, and test patches posted to several maillists, commits to 15+ git repos, builds done by other build systems, as well as weird things like stable kernel patch queue, and parts of its own software stack.&lt;/p&gt;
&lt;p&gt;Making such extensive use of a CI system inevitably uncovers its limitations, and a list of these will also be presented along with some possible solutions.&lt;/p&gt;</description>
<persons>
<person id="3164">Nikolai Kondrashov</person>
</persons>
<links>
<link href="https://cki-project.org/">CKI project's website</link>
<link href="https://gitlab.com/cki-project">GitLab group</link>
<link href="https://github.com/cki-project/">GitHub organization</link>
<link href="https://submission.fosdem.org/feedback/10271.php">Submit feedback</link>
</links>
<date>2020-02-01T11:40:00+01:00</date>
</event>
<event id="9336">
<start>12:25</start>
<duration>00:50</duration>
<room>UB2.147</room>
<slug>testing_openqa_jdp</slug>
<title>OpenQA with the JDP data analyses framework</title>
<subtitle>Bug tag propagation on 2M+ test results using Julia</subtitle>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Overview of SUSE's Linux kernel testing in OpenQA, how we keep track of known issues, explore test results and other features of JDP. The JDP framework is written in Julia, uses Redis as a distributed data cache and Jupyter for interactive reporting. OpenQA is a large application used for testing operating systems and displaying the results.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5048">Richard Palethorpe</person>
</persons>
<links>
<link href="https://palethorpe.gitlab.io/jdp/">JDP</link>
<link href="https://openqa.opensuse.org/group_overview/32">OpenSUSE kernel testing</link>
<link href="https://submission.fosdem.org/feedback/9336.php">Submit feedback</link>
</links>
<date>2020-02-01T12:25:00+01:00</date>
</event>
<event id="9888">
<start>13:20</start>
<duration>00:30</duration>
<room>UB2.147</room>
<slug>testing_automated_performance_testing_virtualization</slug>
<title>Automated Performance Testing for Virtualization with MMTests</title>
<subtitle>The Tools, the Challenges and also some War-Stories about Performance Testing Hypervisors and VMs</subtitle>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;What benchmark? How many VMs? How big each VM is? Are they all equal or are they different? What's the host OS? What are the guest OSes? I.e., when wanting to do virtualization performance testing, the matrix of test cases tends to explode pretty quickly. This talk will show how we enhanced an existing benchmarking suite, MMTests, in order to be able to deal a little bit better with such complexity. And what our further activities and plans are, for even more and better automation.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Functional testing is already hard enough, in virtualization. For instance, because we need to make sure that things work with different combinations of versions of the OSes in hosts and guests. Doing performance testing, even more so. In fact, there are much more things to consider, such as how many VMs we use, how big they are, whether or not they are equally big or different, what to run in them, how to partition the host resources for them... And this is true either in case you have a specific (virtualized) workload and some KPI to meet, in which case you need testing and benchmarking to figure out whether or not the tuning you have done has brought you there, or in case you wonder how good (or how bad) a certain configuration of both your host and your guests works, for a number of workloads,&lt;/p&gt;
&lt;p&gt;This talk will introduce the problem, showing how the size and the complexity of a typical 'virtualization performance testing matrix' really tend to explode. We will, as an example, show how some specific characteristics of a virtualized system were, despite tuning, causing us to not be able to achieve the desired performance levels. Then we illustrate how, at SUSE, we do automated performance benchmarking, how we enhanced the tool that was in use the most for baremetal benchmarks (the MMTests suite) in order for it to be much more useful in virtualized systems and how we are integrating it with other tools to bring the level of automation even further and achieve something that really resembles a Virtualization Performance CI system.&lt;/p&gt;</description>
<persons>
<person id="3513">Dario Faggioli</person>
</persons>
<links>
<link href="https://github.com/gormanm/mmtests">MMTests upstream</link>
<link href="https://github.com/dfaggioli/mmtests/commits/bench-virt">MMTests with virt extensions</link>
<link href="https://github.com/dfaggioli/mmtests/commits/wip/bench-virt">MMTests with virt extensions WiP/development branch</link>
<link href="https://submission.fosdem.org/feedback/9888.php">Submit feedback</link>
</links>
<date>2020-02-01T13:20:00+01:00</date>
</event>
<event id="9136">
<start>13:55</start>
<duration>00:25</duration>
<room>UB2.147</room>
<slug>testing_autohealing_negative_testing</slug>
<title>Auto-healing cluster through negative testing</title>
<subtitle/>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;OCS stands for Openshift Container storage. It provides container-based storage for OCP(Openshift container platform). It’s easily scalable to bare metal, VMs and cloud platforms.
Auto healing is a property of OCS cluster that auto heals a cluster component automatically when passes through an unexpected condition. A component can be a node, a network interface, a service, etc. To make sure auto heals just fine, we introduced negative testing.
Negative Testing is defined as, a testing type that checks a system for unexpected conditions. In this presentation, We’re going to talk, what role negative testing plays, how to negative test components like node by shutting it down, deploying a heavy workload, etc. Similarly, for the network component, we are going to see what happens when the public network is disconnected along with many more scenarios.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6523">Rajat Singh</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9136.php">Submit feedback</link>
</links>
<date>2020-02-01T13:55:00+01:00</date>
</event>
<event id="10645">
<start>14:25</start>
<duration>00:30</duration>
<room>UB2.147</room>
<slug>testing_introducing_opentap</slug>
<title>Introducing OpenTAP - Open Test Automation Project</title>
<subtitle>A developer-first extensible test and measurement automation project</subtitle>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;OpenTAP is a project aimed at automation in the test and measurement space. It is designed for test and measurement of hardware in R&amp;amp;D and manufacturing, but is moving more towards software testing e.g. with usage in cloud infrastructure testing. The project started as an internal product by Keysight Technologies and is used as the core of many products and solutions deployed around the world. As of 2019, we have released OpenTAP under the Mozilla Public License v2 and are working on building a community around it. The release was influenced by the team attending FOSDEM over the last few years, we will also welcome you for more detailed discussion at our booth on Saturday.&lt;/p&gt;
&lt;p&gt;What we want is to grow an environment for people to share, leverage and co-develop test system plugins and solutions.&lt;/p&gt;
&lt;p&gt;In this short talk, we will explain the basic concepts of OpenTAP, what it can be used for, and how to get started.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7344">Rolf Madsen</person>
</persons>
<links>
<link href="https://www.opentap.io">Home page</link>
<link href="https://gitlab.com/OpenTAP/opentap">Source repo</link>
<link href="https://submission.fosdem.org/feedback/10645.php">Submit feedback</link>
</links>
<date>2020-02-01T14:25:00+01:00</date>
</event>
<event id="10647">
<start>15:00</start>
<duration>00:30</duration>
<room>UB2.147</room>
<slug>testing_one_test_output_format</slug>
<title>One test output format to unite them all</title>
<subtitle/>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Since several years, software quality tools have evolved, CI systems are more and more scalable, there are more testing libraries than ever and they are more mature than ever and we have seen the rise of new tools to improve the quality of code we craft.&lt;/p&gt;
&lt;p&gt;Unfortunately, most of our CI system still launch a script and check the return code, most of the testing libraries don't allow to select finely which tests to launch and most of CI advanced innovations, parallel running, and remote execution, are not available to developers on their workstation.&lt;/p&gt;
&lt;p&gt;Each language community has its own set of tools, libraries, and command-line and visual interfaces increasing the effort for developers to learn or learn again how to write, run and debug tests in each language.&lt;/p&gt;
&lt;p&gt;How to improve the situation? In this talk, I will present one of my project LITF (https://github.com/Lothiraldan/litf) a new protocol for test running and test output as well as BALTO (https://github.com/lothiraldan/balto), a test orchestrator using this new format. Thanks to this new format, BALTO can execute several test suites in different languages, remotely on a Kubernetes cluster and all in parallel. In any case, this is the goal of the stable version.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="2751">Boris Feld</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10647.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="9205">
<start>15:35</start>
<duration>00:30</duration>
<room>UB2.147</room>
<slug>testing_releasing_software_gitops</slug>
<title>Releasing Software with GitOps</title>
<subtitle>How OpenStack manages releases using Git based automation</subtitle>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Overview of the process the OpenStack community uses to manage all software releases through automation around Git commits.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The OpenStack community has enabled a lot of automation around releasing their software. This presentation will give an overview of how code reviews are used to manage release activity. It will step through the use of Zuul CI jobs to perform validation of requests before they are accepted, and how commits are used to trigger jobs to tag and release the software, update documentation, trigger requirements updates, and other follow on work that needs to happen whenever new code is released.&lt;/p&gt;</description>
<persons>
<person id="5652">Sean McGinnis</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9205.php">Submit feedback</link>
</links>
<date>2020-02-01T15:35:00+01:00</date>
</event>
<event id="10576">
<start>16:10</start>
<duration>00:45</duration>
<room>UB2.147</room>
<slug>testing_writing_go_tests</slug>
<title>Writing Go(od) Tests</title>
<subtitle>Writing good tests in golang</subtitle>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Every year we hear great content about how to &lt;em&gt;develop&lt;/em&gt; in Go, but rarely do we focus on how to &lt;em&gt;test&lt;/em&gt; in Go. Well written tests are critical to the success of a project, and more often than not, they can help drive developers to design features in more simple and concise ways.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In this talk, I'll explain the importance of test driven development and provide some tactics for how to implement the practice in your daily work and on your respective team. I'll dive into the &lt;code&gt;testing&lt;/code&gt;, &lt;code&gt;require&lt;/code&gt;, and &lt;code&gt;assert&lt;/code&gt; packages to dissect which function calls are appropriate for different use cases, and present multiple different ways to write Go tests for each scope, including unit, integration and e2e. I'll also discuss how to refactor code to make it more testable (with examples), so you can optimize and simplify Go code for robust and reliable Go tests. Lastly, I will cover race conditions to help you debug concurrency related problems. Let's write Go(od) tests!&lt;/p&gt;</description>
<persons>
<person id="7316">Nikki Attea</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10576.php">Submit feedback</link>
</links>
<date>2020-02-01T16:10:00+01:00</date>
</event>
<event id="10639">
<start>17:00</start>
<duration>00:10</duration>
<room>UB2.147</room>
<slug>testing_apps_with_3rd_party_api</slug>
<title>Testing apps with third-party API integrations</title>
<subtitle/>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;As reliance on third-party services becomes more prevalent in our ecosystem, developers need cost-effective, secure and reliable ways to mock these services. In this talk, we will briefly examine strategies and best practices for testing apps that make heavy use of third-party API integrations.&lt;/p&gt;</abstract>
<description>&lt;p&gt;With such a short session, I want to focus on the bits that are the most useful for developers today. Whether you’re working in a hip startup or traditional company with legacy code, you’re likely going to need ways to mock services for both dev/staging environments and testing. So this will include a (very short) demo of Unmock, the fuzz testing library that I maintain, with references to other tools like Nock and PollyJS. After this session, audience members should walk away with practical ways to improve their testing practices for REST APIs and third-party integrations.&lt;/p&gt;</description>
<persons>
<person id="7341">Carolyn Stransky (carostran)</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10639.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="10632">
<start>17:15</start>
<duration>00:30</duration>
<room>UB2.147</room>
<slug>testing_large_testing_software</slug>
<title>Testing a large testing software</title>
<subtitle/>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;LAVA is an automated validation architecture primarily aimed at testing deployments of systems based around the Linux kernel on ARM devices, specifically ARMv7 and later.
LAVA is becoming the de facto standard to test software (bootloader, kernel, userspace) on development boards (rpi, juno, beagle, ...). It's used by many projects to build large testing systems like kernelci.&lt;/p&gt;
&lt;p&gt;Testing a testing system like LAVA is sometimes a tricky task. In order to test LAVA we had to develop some specific tools (meta-lava, DummySYS, lavafed, ...) that I will present during this talk.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5625">Rémi Duraffort</person>
</persons>
<links>
<link href="https://linaroconnectsandiego.sched.com/event/SueM/san19-422-advanced-testing-in-python">Will be extend one part of this presentation</link>
<link href="https://submission.fosdem.org/feedback/10632.php">Submit feedback</link>
</links>
<date>2020-02-01T17:15:00+01:00</date>
</event>
<event id="10584">
<start>17:50</start>
<duration>00:20</duration>
<room>UB2.147</room>
<slug>testing_correlation_analysis_automated_testing</slug>
<title>Correlation analysis in automated testing</title>
<subtitle/>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Correlation Analysis is a statistical method that is used to discover if there
is a relationship between two variables, and how strong that relationship might
be. A correlation coefficient is a numerical measure of such correlation.
According to the Cauchy–Schwarz inequality it has a value between +1 and −1,
where 1 is total positive linear correlation, 0 is no linear correlation, and −1
is total negative linear correlation. One of the axioms of automated testing is
that tests are independent and in spite of that correlation coefficient should
be equal to 0. But often it isn't. In this work, we are going to present
a method of evaluation of tests suites quality based on correlation coefficient
and finding their weak points. Using PC Engines open-source firmware regression
test results, which are based on over 140 automated tests run with 2 flavors of
software on 4 different platforms, we will show how its quality can be described
numerically, and how that results can be used to optimize test criteria.&lt;/p&gt;</abstract>
<description>&lt;p&gt;As far as automated testing is considered all the tests can have only two
expected output values - pass or fail. Originally Pearson's correlation
coefficient is the covariance of the two variables divided by the product of
their standard deviations - the first question was how to do it for Boolean
variables. We assumed that the only value that matters can be a failure of a
test. During the lecture, we will present how mathematical analysis can reveal
potential flaws in test criteria by targeting cases that have a large chance to
fail simultaneously.&lt;/p&gt;</description>
<persons>
<person id="6372">Łukasz Wcisło</person>
</persons>
<links>
<link href="https://docs.google.com/spreadsheets/d/1_uRhVo9eYeZONnelymonYp444zYHT_Q_qmJEJ8_XqJc">PC Engines regression tests results</link>
<link href="https://www.sciencedirect.com/topics/medicine-and-dentistry/correlation-analysis">Correlation Analysis by sciencedirect.com</link>
<link href="https://submission.fosdem.org/feedback/10584.php">Submit feedback</link>
</links>
<date>2020-02-01T17:50:00+01:00</date>
</event>
<event id="9358">
<start>18:15</start>
<duration>00:45</duration>
<room>UB2.147</room>
<slug>testing_fail_successfully_reliably</slug>
<title>How to fail successfully and reliably</title>
<subtitle>And look good while doing it</subtitle>
<track>Testing and Automation</track>
<type>devroom</type>
<language/>
<abstract>&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Activity: what's &quot;failure&quot;, anyway?&lt;/li&gt;
&lt;li&gt;Impact of failure
Resources spent before failure is made
Resources spent to detect failure
Resources spent after failure is detected&lt;/li&gt;
&lt;li&gt;So what is &quot;fail fast&quot;?
*The art and science of satisficing&lt;/li&gt;
&lt;li&gt;Activity: how would you design to fail in these scenarios?&lt;/li&gt;
&lt;li&gt;Documentation - the power of story-telling&lt;/li&gt;
&lt;li&gt;Summary: the successful way to fail fast&lt;/li&gt;
&lt;li&gt;Q/A&lt;/li&gt;
&lt;/ul&gt;
</abstract>
<description/>
<persons>
<person id="6663">Saleem Siddiqui</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9358.php">Submit feedback</link>
</links>
<date>2020-02-01T18:15:00+01:00</date>
</event>
</room>
<room name="UB2.252A (Lameere)">
<event id="9949">
<start>10:30</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_sudo</slug>
<title>Extending sudo in Python</title>
<subtitle>Best of both worlds</subtitle>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;From my talk you will learn about some lesser-known features of sudo, and how you can make your security more flexible by extending sudo using Python.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Everybody knows sudo, right? Sudo allows a system administrator to give certain users the ability to run some commands as root, while logging the executed commands and their arguments. It is installed by default on almost all Linux systems, and is available for most commercial UNIX systems. Sudo allows you to fine-tune access policies, record sessions, and do extensive logging. Still, even system administrators often only know it is the “prefix” to use before entering a command requiring root privileges, and don’t realize its true powers.&lt;/p&gt;
&lt;p&gt;Did you know that with version 1.8 sudo changed to a plugin-based architecture? You can extend or even replace basic functionality through plugins. While plugins provide the ultimate flexibility – and there are both open source and commercial plugins for sudo available – it is not easy to extend sudo. This is why the Python plugin is under way to sudo (and will be released before FOSDEM).&lt;/p&gt;
&lt;p&gt;Sudo has a number of well defined APIs for plugins (https://www.sudo.ws/man/sudo_plugin.man.html). The Python plugin builds on these APIs. For example, you can set your own policies using the policy API, or access what is happening on the screen using the I/O API (used by session recording).&lt;/p&gt;
&lt;p&gt;Using Python for extending sudo makes development not just easier (no development environment necessary), but opens up many new possibilities. For example, you can develop a plugin which analyzes on-screen activity in real-time, and breaks the session if the infamous “rm -fr /” command appears on screen. As multiple I/O plugins can work in parallel, you do not have to give up session recording to analyze sessions in real-time from Python.&lt;/p&gt;
&lt;p&gt;From my talk you will learn about some lesser-known features of sudo, and how you can make your security more flexible by extending sudo using Python.&lt;/p&gt;</description>
<persons>
<person id="828">Peter Czanik</person>
</persons>
<links>
<link href="https://blog.sudo.ws/">sudo blog</link>
<link href="https://www.sudo.ws/">sudo website</link>
<link href="https://submission.fosdem.org/feedback/9949.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10213">
<start>11:00</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_rust</slug>
<title>Boosting Python with Rust</title>
<subtitle>The case of Mercurial</subtitle>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;While working on the Mercurial version control system, we hit our heads against the limits of Python's performance. In this talk we will see how Python and Rust can cohabit to play off of each other's strenghts to improve a big open-source project, and what advances have been made in bridging the two languages.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7143">Raphaël Gomès</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10213.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
<event id="9504">
<start>11:30</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_scikit_learn_estimator</slug>
<title>How to write a scikit-learn compatible estimator/transformer</title>
<subtitle>Tips and tricks, testing your estimator, and must-watch related current developments</subtitle>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This is a hands-on short tutorial on how to write your own estimator or transformer
which can be used in a scikit-learn pipeline, and works seamlessly with the other
meta-estimators of the library.&lt;/p&gt;
&lt;p&gt;It also includes how they can be conveniently tested with a simple set of tests.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In many data science related tasks, the use-case specific requirements require us to
slightly manipulate the behavior of some of the estimators or transformers present
in scikit-learn. Some of the tips and requirements are not necessarily well documented
by the library, and it can be cumbersome to find those details.&lt;/p&gt;
&lt;p&gt;In this short tutorial, we go through an example of writing our own estimator,
test it against the scikit-learn's common tests, and see how it behaves inside
a pipeline and a grid search.&lt;/p&gt;
&lt;p&gt;There has also been recent developments related to the general API of the estimators
which require slight modifications by the third party developers. I will cover these
changes and point you to the activities to watch as well as some of the private utilities
which you can use to improve your experience of developing an estimator.&lt;/p&gt;
&lt;p&gt;The materials of the talk will be available on github as a jupyter notebook.&lt;/p&gt;</description>
<persons>
<person id="6765">Adrin Jalali</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9504.php">Submit feedback</link>
</links>
<date>2020-02-01T11:30:00+01:00</date>
</event>
<event id="9671">
<start>12:00</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_django_3</slug>
<title>Why is Django 3.0 a revolution for building websites with Python?</title>
<subtitle>From WSGI to ASGI and why it matters</subtitle>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;For almost 20 years, we relied on a CGI based protocol called WSGI to use Python to handle HTTP requests and responses software.
Because Python is singled threaded we relied on a couple of hacks such as Gunicorn or uWSGI to share a socket through multiple processes.
However the cost of all these multiple processes was a bit heavy and error prone.&lt;/p&gt;
&lt;p&gt;Through Django Channels Andrew Godwin paved the way for a better way of creating web services with Python. This work landed in Django 3.0.
Let's explore how it works and why it worth it!&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6891">Rémy Hubscher</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9671.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="10081">
<start>12:30</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_manage_change</slug>
<title>Will somebody *please* tell me what's going on?</title>
<subtitle>Managing change in Python projects</subtitle>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;How does one manage and document change in Python projects, be that new features or deprecation or removal of a feature? Let's explore some of the tools a Python developer can keep in their toolbox for just this purpose.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Software rarely stands still (unless it's TeX). Things are added, things are removed, things break and are then hopefully fixed. Managing this, from both the developer and user perspective, can be tough. In this talk we examine and compare some of the tools that one can use to make this process easier, such as 'debtcollector', 'reno' and 'towncrier', and contrast these with alternatives used in other projects. This talk would mainly be of interest to developers of open source libraries, though the same tooling can be used for any Python library or application that wishes to maintain stable interfaces and/or document changes in their product.&lt;/p&gt;</description>
<persons>
<person id="4186">Stephen Finucane</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10081.php">Submit feedback</link>
</links>
<date>2020-02-01T12:30:00+01:00</date>
</event>
<event id="9874">
<start>13:00</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_coala</slug>
<title>Discover Static Code Analysis in Python with Coala Framework</title>
<subtitle/>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;We, as developer, aim to provide code that, almost matches our team code style, looks better and behaves right. Static code analysis (SCA) tools are one of the way to achieves that. But, with multi-programming languages projects and all kinds of code related needs, It's difficult to address all thoses usecases without dealing with a vast majority of SCA tools.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Coala&lt;/strong&gt; is a — language agnostic — static code analysis framework that provides a common command-line interface for linting and fixing all your code.&lt;/p&gt;
&lt;p&gt;It is written in Python and supports way over 50 languages in addition to language independent routines. So, instead of building new analysis tools from scratch you can now build your own custom logic and let let coala deal with the rest.&lt;/p&gt;
&lt;p&gt;This talk introduces the audience to the Coala Framework and guides them through how the can use it to build routines to do almost anything you want with your code.&lt;/p&gt;</abstract>
<description>&lt;h6&gt;AUDIENCE&lt;/h6&gt;
&lt;p&gt;Python Developers&lt;/p&gt;
&lt;h6&gt;LEVEL&lt;/h6&gt;
&lt;p&gt;Beginner / Intermediate / Advanced&lt;/p&gt;
&lt;h3&gt;Notes&lt;/h3&gt;
&lt;p&gt;This talk is for python developers with any level of experience.&lt;/p&gt;
&lt;p&gt;At the en of the talk, the attendees will learn :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Some Basics concepts of static code analysis&lt;/li&gt;
&lt;li&gt;The purpose and usage of Coala Framework&lt;/li&gt;
&lt;li&gt;How to create custom routines either lint, or fix their code&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Abstract&lt;/h3&gt;
&lt;p&gt;We, as developer, aim to provide code that, almost matches our team code style, looks better and behaves right. Static code analysis (SCA) tools are one of the way to achieves that. But, with multi-programming languages projects and all kinds of code related needs, It's difficult to address all thoses usecases without dealing with a vast majority of SCA tools.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Coala&lt;/strong&gt; is a — language agnostic — static code analysis framework that provides a common command-line interface for linting and fixing all your code.&lt;/p&gt;
&lt;p&gt;It is written in Python and supports way over 50 languages in addition to language independent routines. So, instead of building new analysis tools from scratch you can now build your own custom logic and let let coala deal with the rest.&lt;/p&gt;
&lt;p&gt;This talk introduces the audience to the Coala Framework and guides them through how the can use it to build routines to do almost anything you want with your code.&lt;/p&gt;
&lt;h3&gt;Agenda&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Static Code Analysis : Quick overview&lt;/li&gt;
&lt;li&gt;Introduction to Coala and Coala-bears&lt;/li&gt;
&lt;li&gt;Coala-bears : How to build your own coala routines&lt;/li&gt;
&lt;li&gt;Going Further : What's next ?&lt;/li&gt;
&lt;li&gt;Q &amp;amp; A&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="6123">Lionel Lonkap Tsamba</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9874.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="9901">
<start>13:30</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_graphql</slug>
<title>When Python meets GraphQL: Managing contributors identities in your open source project</title>
<subtitle/>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;SortingHat is an open source Python tool that helps to manage the different contributor identities within an open source project. Under the hood SortingHat relies on a relational database, which can be queried via SQL, command line or directly via its Python interface. However, these ways of interacting with SortingHat hinder its integration with external tools, web interfaces and new web technologies (e.g., Django, REST services). To overcome these obstacles, we have evolved SortingHat's architecture using a GraphQL model based on the Graphene-Django implementation.&lt;/p&gt;
&lt;p&gt;This talk describes our experience in migrating to GraphQL, from adapting the SortingHat functionalities to refactoring the unit tests. Furthermore, we comment also on lesson learned, advantages and drawbacks of using this new approach&lt;/p&gt;
&lt;p&gt;SortingHat is one of the core tools of GrimoireLab, an open-source software analytics platform part of CHAOSS project (Community Health Analytics Open Source Software) under the umbrella of the Linux Foundation.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6013">Miguel-Ángel Fernández</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9901.php">Submit feedback</link>
</links>
<date>2020-02-01T13:30:00+01:00</date>
</event>
<event id="10031">
<start>14:00</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_celery</slug>
<title>Follow Your Celery Tasks</title>
<subtitle/>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;All Python developer who want to run asynchronous tasks should know Celery. If you have already used it, you know how great it is ! But you also discovered how it can be complicated to follow the state of a complex workflow. Celery Director is a tool we created at OVH to fix this problem : using some concepts of Event Sourcing, Celery Director helps us to follow the whole lifecycle of our workflows. It allows us to check when a problem occurred and relaunch the whole DAG (or just a subpart if tasks are not completely idempotent). During this talk we will introduce you the different concepts of Celery Director then we'll make a demonstration of it.&lt;/p&gt;</abstract>
<description>&lt;p&gt;All Python developer who want to run asynchronous tasks should know Celery. If you have already used it, you know how great it is ! But you also discovered how it can be complicated to follow the state of a complex workflow. Celery Director is a tool we created at OVH to fix this problem : using some concepts of Event Sourcing, Celery Director helps us to follow the whole lifecycle of our workflows. It allows us to check when a problem occurred and relaunch the whole DAG (or just a subpart if tasks are not completely idempotent). During this talk we will introduce you the different concepts of Celery Director then we'll make a demonstration of it.&lt;/p&gt;</description>
<persons>
<person id="6064">Nicolas Crocfer</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10031.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="9842">
<start>14:30</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_asyncio</slug>
<title>Asyncio: understanding async and await in Python</title>
<subtitle/>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Often when asyncio is discussed, people think of it as a high performance concurrency programming paradigm for Python. In this talk however, we approach asyncio from a different angle, one that will possibly help some of you to finally get what asyncio is about. it's not only about performance, but at least as much about correctness and readability of concurrent applications.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Concurrency is hard to get right.&lt;/p&gt;
&lt;p&gt;Often when asyncio is discussed, people think of it as a high performance concurrency programming paradigm for Python. In this talk however, we approach asyncio from a different angle, one that will possibly help some of you to finally get what asyncio is about. it's not only about performance, but at least as much about correctness and readability of concurrent applications.&lt;/p&gt;
&lt;p&gt;It is known that for multithreaded applications, synchronization is hard to get right. Doing it wrong can either lead to deadlocks or broken data structures.&lt;/p&gt;
&lt;p&gt;We will have a look at how using asyncio is different from using threads, when it's better and what pitfalls we have.&lt;/p&gt;
&lt;p&gt;This talk should be a good introduction for anyone just starting with asyncio, but can also clarify things for people that are using asyncio already. I expect people to have at least used some form of concurrency, either threads or an event loop like we have in JavaScript.&lt;/p&gt;</description>
<persons>
<person id="4289">Jonathan Slenders</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9842.php">Submit feedback</link>
</links>
<date>2020-02-01T14:30:00+01:00</date>
</event>
<event id="9935">
<start>15:00</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_profiling</slug>
<title>Production-time Profiling for Python</title>
<subtitle/>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Learn how to scrutinize your Python application in order to optimize them and make them run faster.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Getting inside knowledge of how your Python application runs is critical in order to achieve the best performance. Profiling is a mean to achieve this: by gathering all the runtime information available about the execution of your program, you might be able to understand how to optimize it. However, profiling running code in production might be a real challenge as it requires the profiler to be noninvasive and having low overhead.&lt;/p&gt;
&lt;p&gt;Therefore, to profile production services, statistical profiling is the favorite analysis method. By regularly checking your program activity, you’ll be able to find production code bottlenecks down to the line of code. Profiling services that are running with real workload makes sure that you are collecting valuable data and that you are not guessing what the performance barrier might be.&lt;/p&gt;
&lt;p&gt;This talk explains how it’s possible to build a statistical profiler that collects information about CPU time usage, memory allocation, and other information — all that while respecting the need for low overhead, data export format, and granularity. We’ll dig into some of the operating systems and CPython internals to understand how to build the best profiler possible.&lt;/p&gt;</description>
<persons>
<person id="3077">Julien Danjou</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9935.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="9318">
<start>15:30</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_reactive_programming</slug>
<title>Introduction to Reactive Programming with RxPY</title>
<subtitle/>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Reactive Programming is an event based programming method. ReactiveX is a cross-platform implementation of Reactive Programming. It is heavily inspired from functional programming and contains many operators that allow to create, modify, and combine streams of events. Moreover it is composable and extensible. This short introduction presents Reactive Programming through RxPY, the Python implementation of ReactiveX.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The aim of this talk is to present RxPY to people that never used it, or used RxPY v1:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Principles of Reactive Programming&lt;/li&gt;
&lt;li&gt;What is ReactiveX and RxPY&lt;/li&gt;
&lt;li&gt;Short history of RxPY&lt;/li&gt;
&lt;li&gt;How to deal with errors&lt;/li&gt;
&lt;li&gt;how to deal with concurrency&lt;/li&gt;
&lt;li&gt;How to document your code with marble and reactivity diagrams&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The examples of the presentations are done with RxPY v3, that has been released this summer. This release contains major improvements over RxPY v1 (v2 has never been released).&lt;/p&gt;</description>
<persons>
<person id="6631">Romain Picard</person>
</persons>
<links>
<link href="https://github.com/reactivex/rxpy">RxPY GitHub</link>
<link href="http://reactivex.io/">ReactiveX website</link>
<link href="https://submission.fosdem.org/feedback/9318.php">Submit feedback</link>
</links>
<date>2020-02-01T15:30:00+01:00</date>
</event>
<event id="10545">
<start>16:00</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_httpx</slug>
<title>Introducing HTTPX</title>
<subtitle/>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;HTTPX is a next generation HTTP client, that supports HTTP/2 and HTTP/1.1.&lt;/p&gt;
&lt;p&gt;It can be used in high-performance async web frameworks, using either asyncio or trio, and is able to support making large numbers of requests concurrently.&lt;/p&gt;
&lt;p&gt;This talk will introduce HTTPX, demonstrate some of its features, and talk through the motivation and aims for the project.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The talk will cover:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Why HTTPX exists &amp;amp; what new functionality HTTPX brings to the table.&lt;/li&gt;
&lt;li&gt;How and where HTTPX differs from the existing &lt;code&gt;Requests&lt;/code&gt; package.&lt;/li&gt;
&lt;li&gt;Examples of making parallel HTTP requests.&lt;/li&gt;
&lt;li&gt;Examples of making HTTP/2 requests.&lt;/li&gt;
&lt;li&gt;Examples of making requests directly to a web application, rather than over the network.&lt;/li&gt;
&lt;li&gt;Using Asyncio vs using Trio.&lt;/li&gt;
&lt;li&gt;A quick architecture overview.&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="7294">Tom Christie</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10545.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="9990">
<start>16:30</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_foxdot</slug>
<title>FoxDot and the Summer of 2019</title>
<subtitle/>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Yeah, this is about my last summer. But I promise to focus on the story of how I was able to do four amazing lightning talks with Python and a harmonica.&lt;/p&gt;
&lt;p&gt;This one is not about technical stuff, it is about finding something that python overlaps with your hobbies and sharing it back to the community.&lt;/p&gt;</abstract>
<description>&lt;p&gt;This talk is about writing songs and playing music with python. Back in 2017 I came to know FoxDot, a python wrapper around SuperCollider, which is a super popular open source synthesizer. Since then, I have been using it to create entertaining lighting talks and would like to cover a bit more than just a lightning talk this time.&lt;/p&gt;</description>
<persons>
<person id="5949">Moisés Guimarães</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9990.php">Submit feedback</link>
</links>
<date>2020-02-01T16:30:00+01:00</date>
</event>
<event id="9672">
<start>17:00</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_monads</slug>
<title>Monads in Python: why and how?</title>
<subtitle/>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In this talk I would give some motivating examples behind the idea of monads in Python, and show some implementation examples. I'd also show how we can leverage AST transformations to make the Python syntax more amenable to the use of monads. I have already given a talk on this topic during Pycon France 2018 in Lille. Unfortunately, the video footage has been lost, but the original slides can be found here: https://slides.com/v-perez/pythonic-monads-in-real-life#/&lt;/p&gt;
&lt;p&gt;If this talk was selected, I'd probably update it a bit to account for the feedback I received, and new ideas I may have.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In this talk I would give some motivating examples behind the idea of monads in Python, and show some implementation examples. I'd also show how we can leverage AST transformations to make the Python syntax more amenable to the use of monads. I have already given a talk on this topic during Pycon France 2018 in Lille. Unfortunately, the video footage has been lost, but the original slides can be found here: https://slides.com/v-perez/pythonic-monads-in-real-life#/&lt;/p&gt;
&lt;p&gt;If this talk was selected, I'd probably update it a bit to account for the feedback I received, and new ideas I may have.&lt;/p&gt;</description>
<persons>
<person id="6893">Vincent Perez</person>
</persons>
<links>
<link href="https://slides.com/v-perez/pythonic-monads-in-real-life#/">slides for PyconFR</link>
<link href="https://submission.fosdem.org/feedback/9672.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="9094">
<start>17:30</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_repacker</slug>
<title>repcloud</title>
<subtitle>A repacker for PostgreSQL in cloud</subtitle>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;repcloud is a tool for repacking postgresql databases in cloud written in python3.&lt;/p&gt;</abstract>
<description>&lt;p&gt;repcloud is a tool for repacking postgresql databases hosted in cloud.
as pgrepack is a far better approach for repacking tables online, there are situations where is not possible to install the extension on a postgresql if it's hosted in cloud (e.g. Heroku).
Hence comes repcloud which can help in rebuilding the tables on line with the use of simple SQL and some postgreSQL magic.
The author will explain how the project started, the functionalities and the limitations.&lt;/p&gt;</description>
<persons>
<person id="5052">Federico Campoli</person>
</persons>
<links>
<link href="https://github.com/the4thdoctor/repcloud">repcloud on github</link>
<link href="https://pypi.org/project/repcloud/">repcloud on pypi</link>
<link href="https://submission.fosdem.org/feedback/9094.php">Submit feedback</link>
</links>
<date>2020-02-01T17:30:00+01:00</date>
</event>
<event id="9614">
<start>18:00</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_thot</slug>
<title>Thoth - a recommendation engine for Python applications</title>
<subtitle/>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Project Thoth is a recommendation engine that collects information about software packages, container images such as installation, assembling issues, runtime crashes or information about performance. This information is subsequently used in a recommendation engine that searches large state space of libraries and recommends the best possible combination of libraries suitable for your application. Let’s have a look at how such information is collected and how the large state space is explored to resolve the best application stack for your Python application based on different aspects.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Python ecosystem is experiencing significant growth and popularity especially with the hype machine learning, data science and AI are creating. As the ecosystem grows its many times not straightforward and easy to decide which libraries in which versions are the most suitable ones for an application. Project Thoth is a recommendation engine which aggregates various characteristics of Python packages, called &quot;observations&quot;, and uses them to recommend the best possible software stack (a fully pinned down list of dependencies) suitable for user's runtime environment and the application purpose. In this talk, we give an overview of the project Thoth, main ideas in data aggregation and its recommendation engine. We will also show how you can benefit from Thoth's recommendations.&lt;/p&gt;</description>
<persons>
<person id="3993">Fridolín Pokorný</person>
</persons>
<links>
<link href="https://github.com/thoth-station">GitHub organization with all the sources</link>
<link href="https://thoth-station.ninja">Project home page</link>
<link href="https://submission.fosdem.org/feedback/9614.php">Submit feedback</link>
</links>
<date>2020-02-01T18:00:00+01:00</date>
</event>
<event id="9701">
<start>18:30</start>
<duration>00:25</duration>
<room>UB2.252A (Lameere)</room>
<slug>python2020_pythran</slug>
<title>The Pythran compiler, 7 years later</title>
<subtitle/>
<track>Python</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;7 years ago, a first file was commited in the Pythran git repo in order to create a compiler from Python to C++. The project now has hundreds of downloads per day on PyPI and has moved to a cross-platform compiler for scientific programs. This talks walks through the initial ideas, sorting out the good and the bad ones and compares the approach with other major Pythran compilers for scientific programs, most notably Cython, Pypy and Numba.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Relevant topics include :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Numpy compatibility&lt;/li&gt;
&lt;li&gt;Abstraction level&lt;/li&gt;
&lt;li&gt;Backward compatibility with Python&lt;/li&gt;
&lt;li&gt;Taking advantage of hardware&lt;/li&gt;
&lt;li&gt;Translating or optimizing&lt;/li&gt;
&lt;li&gt;Community interaction&lt;/li&gt;
&lt;li&gt;Multi-platform support&lt;/li&gt;
&lt;li&gt;Benchmarking&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="4847">Serge Guelton (serge-sans-paille)</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9701.php">Submit feedback</link>
</links>
<date>2020-02-01T18:30:00+01:00</date>
</event>
</room>
<room name="UB4.132">
<event id="9882">
<start>13:00</start>
<duration>02:00</duration>
<room>UB4.132</room>
<slug>cert_lpi_1</slug>
<title>LPI Exam Session 1</title>
<subtitle/>
<track>Certification</track>
<type>certification</type>
<language/>
<abstract>&lt;h3&gt;LPI offers discounted certification exams at FOSDEM&lt;/h3&gt;</abstract>
<description>&lt;p&gt;As in previous years, the Linux Professional Institute (LPI) will offer discounted certification exams to FOSDEM attendees.
LPI offers level 1, level 2 and level 3 certification exams at FOSDEM with an almost &lt;strong&gt;50% discount&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For further information and instructions see &lt;a href=&quot;https://fosdem.org/certification&quot;&gt;https://fosdem.org/certification&lt;/a&gt;.&lt;/p&gt;</description>
<persons>
<person id="1083">LPI Team</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9882.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="9883">
<start>15:30</start>
<duration>02:00</duration>
<room>UB4.132</room>
<slug>cert_lpi_2</slug>
<title>LPI Exam Session 2</title>
<subtitle/>
<track>Certification</track>
<type>certification</type>
<language/>
<abstract>&lt;h3&gt;LPI offers discounted certification exams at FOSDEM&lt;/h3&gt;</abstract>
<description>&lt;p&gt;As in previous years, the Linux Professional Institute (LPI) will offer discounted certification exams to FOSDEM attendees.
LPI offers level 1, level 2 and level 3 certification exams at FOSDEM with an almost &lt;strong&gt;50% discount&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For further information and instructions see &lt;a href=&quot;https://fosdem.org/certification&quot;&gt;https://fosdem.org/certification&lt;/a&gt;.&lt;/p&gt;</description>
<persons>
<person id="1083">LPI Team</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9883.php">Submit feedback</link>
</links>
<date>2020-02-01T15:30:00+01:00</date>
</event>
</room>
<room name="UB4.136">
<event id="9345">
<start>10:30</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>openoffice_build_system</slug>
<title>Openoffice Build system</title>
<subtitle>A walk through building OpenOffice</subtitle>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This talk will be about the OpenOffice Build system. We will talk about how it works today's, issues with it. And the talk will highlight current development in this field plus where it might moves in the future. (plans of development)&lt;/p&gt;
&lt;p&gt;Sheduled length will be 20 min +question&lt;/p&gt;</abstract>
<description>&lt;p&gt;Currently the build system is a mixture of dmake, gmake, ant and other tools. After a short going through I like to describe the vision we have for the future build system we are working towards.&lt;/p&gt;</description>
<persons>
<person id="5243">Peter Kovacs</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9345.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="9831">
<start>11:00</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>contributing_to_libreoffice_without_c_knowledge</slug>
<title>Contributing to LibreOffice without C++ knowledge</title>
<subtitle/>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;A good grasp of C++ is rather useful when it comes to improving LibreOffice. However, in the project there are vital roles and tasks that do not involve writing C++. This talk explores these other ways of contributing.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6939">Ilmari Lauhakangas</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9831.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
<event id="10315">
<start>11:30</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>coverity_and_oss_fuzz_issue_solving</slug>
<title>coverity and oss-fuzz issue solving</title>
<subtitle>common patterns for solving reported issues</subtitle>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="2068">Caolán McNamara</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10315.php">Submit feedback</link>
</links>
<date>2020-02-01T11:30:00+01:00</date>
</event>
<event id="10485">
<start>12:00</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>libreoffice_lockdown_and_encryption_improvements</slug>
<title>LibreOffice lockdown and encryption improvements</title>
<subtitle/>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;LibreOffice has builtin support for working with encrypted documents since a long time (with some recent improvements adding OpenPGP support). Further support for more fine-grained control of &lt;em&gt;what&lt;/em&gt; a user can do with access-restricted documents was though missing.
Come and see what recent improvements we implemented for LibreOffice 6.4 and 6.5, to permit fine-grained access controls to individual LibreOffice documents, matching the feature set of MS Rights Management Solution.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="2006">Thorsten Behrens</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10485.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="10472">
<start>12:30</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>prioritizing_is_key</slug>
<title>Prioritizing is key</title>
<subtitle>How to prioritize thousands of bugs without dying in the attempt</subtitle>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="4341">Xisco Fauli</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10472.php">Submit feedback</link>
</links>
<date>2020-02-01T12:30:00+01:00</date>
</event>
<event id="9807">
<start>13:00</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>proposal_to_inspect_and_highlight_styles_in_writer</slug>
<title>Proposal to inspect and highlight styles in Writer</title>
<subtitle/>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Styles are the essence of a text processor. And while experts love to unleash the power of LibreOffice Writer, it’s at the same time a major source of nuisance. In particular when you receive documents from other people, it can be quite difficult to understand the applied formatting and to fix issues around. This talk presents two ideas for an improved feedback.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4331">Heiko Tietze</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9807.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="9801">
<start>13:30</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>libreoffice_theme_changer</slug>
<title>LibreOffice Theme Changer</title>
<subtitle>An Extension for Customize LibreOffice Appearance in Easy Way</subtitle>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;LibreOffice is free and open source office suite software that is very popular today. LibreOffice is almost used in various user segments, ranging from personal, community, education, and even companies. It would be very interesting to be able to have LibreOffice specific themes for each segment. For this reason, we (LibreOffice Indonesia Community) took the initiative to create a special extension to manage themes in LibreOffice, we call it LO-TC (read: Lotis) LibreOffice Theme Changer.&lt;/p&gt;</abstract>
<description>&lt;p&gt;LibreOffice is free and open source office suite software that is very popular today. LibreOffice is almost used in various user segments, ranging from personal, community, education, and even companies. It would be very interesting to be able to have LibreOffice specific themes for each segment. This of course will also further strengthen the fact LibreOffice is truly free software.
Unfortunately, the features to set themes in LibreOffice are currently limited. As of now, LibreOffice only provides 6 theme choices for users. In the previous version, although there were many bug and problems, there was a persona theme menu that was quite interesting to me. For this reason, I and my friends in the LibreOffice Indonesia Community took the initiative to create a special extension to manage themes in LibreOffice, we call it LO-TC (read: Lotis) LibreOffice Theme Changer.
LO-TC was originally just a simple bash script that allows users to change some visual components in LibreOffice, some of which are:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;• Images in headers and footers
• Intro or splash screen
• Colors in the application, and
• Icons (optional)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Because it is only based on bash scripts, LO-TC can only be used for Linux and Mac (with a few adjustments). Because of this limitation, we finally decided to rewrite LO-TC in the form of extensions so that it could later be used on many operating systems.
The various LibreOffice installation models (via repositories of distributions, snap, flatpak, etc.) pose quite daunting challenges for developers. In addition, this is our first extension project, so we need a lot of new things that we must understand in the process of working on this latest LO-TC. Current status of LO-TC development can be found here: https://github.com/libreofficeid/LO-TC-GUI&lt;/p&gt;</description>
<persons>
<person id="6948">Rania Amina</person>
</persons>
<links>
<link href="https://github.com/libreofficeid/LO-TC-GUI">Development Repository</link>
<link href="http://docs.libreoffice.id/lotc">Project Documentations</link>
<link href="https://submission.fosdem.org/feedback/9801.php">Submit feedback</link>
</links>
<date>2020-02-01T13:30:00+01:00</date>
</event>
<event id="10482">
<start>14:00</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>creating_word_clouds_with_openoffice</slug>
<title>Creating Word Clouds with OpenOffice</title>
<subtitle>Text mining and visualization in Writer</subtitle>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;OpenOffice Writer offers all features needed for basic frequency analysis and visualization. We'll see how to do automated text analysis and simple word clouds without using specialized external tools.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="1275">Andrea Pescetti</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10482.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="9862">
<start>14:30</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>crowdfunding_to_advance_open_document_editors</slug>
<title>Crowdfunding to advance open document editors</title>
<subtitle>A status report</subtitle>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Productivity software like LibreOffice has long been sustained by the commercial activities of community members as well as the contributions of countless volunteers. That's also driven standards engagement, like the work around Open Document Format (ODF). But the cloud is slowly strangling the desktop support business, and spare-time volunteers may not be enough for complex, mature software. The Document Foundation has been innovating to sustain LibreOffice and ODF; this talk will describe the COSM and TDC projects, and ask whether similar approaches might sustain other open source desktop software.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="228">Simon Phipps</person>
</persons>
<links>
<link href="https://publicsoftware.eu/members/cosm-project/">About the COSM Project</link>
<link href="https://submission.fosdem.org/feedback/9862.php">Submit feedback</link>
</links>
<date>2020-02-01T14:30:00+01:00</date>
</event>
<event id="10468">
<start>15:00</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>online_open_document_editing_new_possibilities</slug>
<title>Online Open Document Editing New Possibilities</title>
<subtitle/>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Open Document editing is, as many things in life, more and more an online action. Collabora introduced the important first steps in 2015. Since then much work has been done and LibreOffice and Collabora Online grew enormously in possibilities. This presentation will guide you trough the various areas. And in the Q&amp;amp;A, lets talk about expectations for the future.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7270">Cor Nouws</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10468.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="10286">
<start>15:30</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>make_online_yours</slug>
<title>Make Online yours</title>
<subtitle>How to customize Collabora Online</subtitle>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Collabora Online - The driving force behind putting LibreOffice in the cloud -is quite flexible in the means that you can alter to your personal taste without the need to change other core components.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Collabora Online - The driving force behind putting LibreOffice in the cloud - is quite flexible in the means that you can alter to your personal taste without the need to change other core components.
Tag along and see how can you customize Online's look and feel without a sweat and using mainly CSS, SVG! Don't know much about web technologies? No problem! There is no requirement to be eligible to attend, as I'll be talking in a casual fashion and with examples and hopefully illustrate each step of the way.&lt;/p&gt;</description>
<persons>
<person id="5882">Pedro Pinto Silva</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10286.php">Submit feedback</link>
</links>
<date>2020-02-01T15:30:00+01:00</date>
</event>
<event id="10288">
<start>16:00</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>online_wrestling_web_copy_paste_to_usability</slug>
<title>Online: wrestling web Copy/Paste to usability</title>
<subtitle>Defeating the API and implementation disasters in copy/paste</subtitle>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Overcoming the synchronous web copy/paste API's limitations in real
browsers is extremely non-trivial. Come &amp;amp; hear how we provide rich
copy/paste support across browsers, inside our app and hear a bit
about how this mess should be fixed.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Collabora has been working to provide a good user-experience for Collabora
Online - bringing LibreOffice to the web, and a particularly
challenging aspect of this has been copy/paste. One of our challenges
is that by design we keep our document data on the server, which is at
the end of an asynchronous web-socket. Another challenge is the
impossibly baroque and arguably mis-designed set of clipboard APIs
that we have to work with.&lt;/p&gt;
&lt;p&gt;Hear a story of how we defeated the issues, as well as the somewhat
sad UX compromises we were forced to make for the hard cases.&lt;/p&gt;</description>
<persons>
<person id="425">Michael Meeks</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10288.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="10342">
<start>16:30</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>integrate_collabora_online_with_web_applications</slug>
<title>Integrate Collabora Online with web applications</title>
<subtitle/>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Come and hear how to integrate Collabora Online – a powerful online office suite based on LibreOffice code – with web applications. Learn about how Collabora developers helped to develop solutions by extending the WOPI-like API and PostMessage API of Collabora Online.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="313">Andras Timar</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10342.php">Submit feedback</link>
</links>
<date>2020-02-01T16:30:00+01:00</date>
</event>
<event id="9659">
<start>17:00</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>libreoffice_online_adoption_into_1_and_1_mail_and_media_ecosystem</slug>
<title>LibreOffice Online adoption into 1&amp;1 Mail&amp;Media ecosystem</title>
<subtitle>Brief overview of the open-source adoption of project LibreOffice Online into 1&amp;1 Mail&amp;Media ecosystem: WEB.DE, GMX, mail.com brands</subtitle>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="6872">Eduard Ardeleanu</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9659.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="10349">
<start>17:30</start>
<duration>00:25</duration>
<room>UB4.136</room>
<slug>collabora_office_android_app_gory_details</slug>
<title>Collabora Office Android app gory details</title>
<subtitle>How we tweaked LibreOffice &amp; the Online to get an Android app</subtitle>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The LibreOffice Android app consists of the LibreOffice core as the native code and Java part that takes care of compositing of the tiles, input handling, etc. It is hard to maintain, because everything that has been implemented in LibreOfficeKit for the Online has to be ported to Java - which is a huge amount of work.&lt;/p&gt;
&lt;p&gt;For the Collabora Office Android app, we have tried a new approach - to build on top of work pioneered by Tor Lillqvist for iOS: Using the native code for the rendering, the Online JavaScript for the composition of tiles, input handling, etc. and only a thin Java layer to instantiate a WebView where the JS lives.&lt;/p&gt;
&lt;p&gt;Come and see the current state! And don't worry, all the work is contributed back to the LibreOffice code too :-)&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="317">Jan Holesovsky</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10349.php">Submit feedback</link>
</links>
<date>2020-02-01T17:30:00+01:00</date>
</event>
<event id="10483">
<start>18:00</start>
<duration>00:55</duration>
<room>UB4.136</room>
<slug>lightning_talk_session</slug>
<title>Lightning talk session</title>
<subtitle/>
<track>Open Document Editors</track>
<type>devroom</type>
<language/>
<abstract/>
<description/>
<persons>
<person id="2006">Thorsten Behrens</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10483.php">Submit feedback</link>
</links>
<date>2020-02-01T18:00:00+01:00</date>
</event>
</room>
<room name="UB4.228">
<event id="9063">
<start>10:30</start>
<duration>08:30</duration>
<room>UB4.228</room>
<slug>soldering_workshop_saturday</slug>
<title>Open Source Hardware and Soldering Workshop</title>
<subtitle/>
<track>Workshops</track>
<type>workshop</type>
<language/>
<abstract>&lt;p&gt;Open Source Hardware room with two day soldering workshops.
Day 1 soldering workshop will be dedicated to Through Hole Technology and is good for beginners which has no experience with component soldering.&lt;/p&gt;
&lt;p&gt;Beside the soldering workshop we will show our latest OSHW boards we work on, you are welcome to join and show your own OSHW projects too.&lt;/p&gt;</abstract>
<description>&lt;p&gt;With this soldering workshop we will show that assembling printed circuit boards is not hard to learn.&lt;/p&gt;
&lt;p&gt;We designed special board with through holes components for FOSDEM - the FOSDEM MUSIC BOX which is Arduino programmable and can play music.&lt;/p&gt;
&lt;p&gt;During the soldering workshop we will introduce the electronic components used in the PCB and how to identify them and how components with polarity is to be recognized.&lt;/p&gt;
&lt;p&gt;We will teach you the basics of soldering, how good and bad solder joints look like and what is cold solder joint.
At the end of the workshop you will build your own Music Box and could program it with Arduino IDE to play music.&lt;/p&gt;</description>
<persons>
<person id="1641">Tsvetan Usunov</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9063.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
</room>
<room name="UB5.132"/>
<room name="UB5.230"/>
<room name="UD2.119">
<event id="9544">
<start>10:30</start>
<duration>00:30</duration>
<room>UD2.119</room>
<slug>drlm</slug>
<title>Past, Present and Future of DRLM project</title>
<subtitle/>
<track>Backup and Recovery</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Brief introduction to DRLM project, it's features and news in the 2.3.x release and the presentation of the new DRLM version 3 architecture and its development state.&lt;/p&gt;</abstract>
<description>&lt;p&gt;This talk is going to explain our vision on the future of the DRLM project, that will continue evolving in DRLM 2.x while the new DRLMv3 is being developed.&lt;/p&gt;
&lt;p&gt;For DRLMv3 we've prepared a complete development environment on Docker to provide an easy and fast way to contribute to the project.&lt;/p&gt;
&lt;p&gt;In this session we'll show all interesting new features on DRLMv2, a DRLMv3 preview of what is developed at time of this presentation, and how easy is to have a complete DRLMv3 development
environment with a couple of commands.&lt;/p&gt;
&lt;p&gt;We don't want to spoil anything, but this talk may be of interest for developers looking for a FLOSS project to contribute to ;).&lt;/p&gt;</description>
<persons>
<person id="3920">Didac Oliveira</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9544.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="9598">
<start>11:05</start>
<duration>00:30</duration>
<room>UD2.119</room>
<slug>basicrear</slug>
<title>Relax-and-Recover (ReaR) Basics</title>
<subtitle>with Demo on Real Hardware</subtitle>
<track>Backup and Recovery</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Introducing Relax-and-Recover (ReaR) for the novice users. What is it and what can it mean for you? Is Disaster Recovery useful to consider it or not? How can ReaR assist you with DR?
ReaR can store the details about your systems on disks (NAS, USB, SAN,...) or network (PXE, NFS, CIFS,...) including the complete backup. It also creates a bootable image which you need to recreate your system from scratch.
Furthermore, thanks to the modular concept, ReaR integrates perfectly with external backup solutions (be commercial and/or open source ones) to do the backup and restore part which makes ReaR very scalable in big enterprises. ReaR scales even with Cloud solutions and is the heart of another great project (DRLM or Disaster Recovery Linux Manager).&lt;/p&gt;</abstract>
<description>&lt;p&gt;Relax-and-Recover (ReaR) is the de facto standard generic (bare metal) disaster recovery framework for all kind of Linux systems.
ReaR is in common use by admins for disaster recovery on thousands and thousands of Linux server systems.
The first part of the &quot;ReaR Basics&quot; talk will be presented by Gratien D'haese (one of the co-founders of ReaR).&lt;/p&gt;
&lt;p&gt;In the second part of the talk Johannes Meixner (one of the main developers of ReaR) will use his own laptop to demonstrate the ReaR disaster recovery framework.
Therefore, Johannes will show a real live demo without safety net how ReaR is used to recover his own laptop from soft errors like deleted essential files
(rm -r /lib...) and/or destroyed partitioning/bootloader (dd if=/dev/zero of=/dev/sdX). Come and see for yourself how ReaR can save your day!&lt;/p&gt;</description>
<persons>
<person id="8">Gratien D'haese</person>
</persons>
<links>
<link href="http://relax-and-recover.org">Relax-and-Recover</link>
<link href="https://submission.fosdem.org/feedback/9598.php">Submit feedback</link>
</links>
<date>2020-02-01T11:05:00+01:00</date>
</event>
<event id="9373">
<start>11:40</start>
<duration>00:25</duration>
<room>UD2.119</room>
<slug>massrear</slug>
<title>Relax-and-Recover (ReaR) Mass Deployment</title>
<subtitle/>
<track>Backup and Recovery</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Installing and configuring ReaR on thousands of Linux systems might become a nightmare to keep track what/where was done with success. Luckily using configuration management software we can do this quite easily.
In this talk we will guide you through a recipe on how we have done this for a multi-national company.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="8">Gratien D'haese</person>
</persons>
<links>
<link href="http://relax-and-recover.org/">Relax-and-Recover</link>
<link href="https://submission.fosdem.org/feedback/9373.php">Submit feedback</link>
</links>
<date>2020-02-01T11:40:00+01:00</date>
</event>
<event id="10699">
<start>12:10</start>
<duration>00:25</duration>
<room>UD2.119</room>
<slug>bareosintro</slug>
<title>Overview of Bareos</title>
<subtitle>What is Bareos and what is new in 19.2?</subtitle>
<track>Backup and Recovery</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This talk will give quick overview of Bareos and the new features in Bareos 19.2.&lt;/p&gt;</abstract>
<description>&lt;p&gt;This talk will give quick overview of Bareos and the new features in Bareos 19.2.&lt;/p&gt;</description>
<persons/>
<links>
<link href="https://submission.fosdem.org/feedback/10699.php">Submit feedback</link>
</links>
<date>2020-02-01T12:10:00+01:00</date>
</event>
<event id="10700">
<start>12:40</start>
<duration>00:15</duration>
<room>UD2.119</room>
<slug>bareosovirt</slug>
<title>oVirt-Plugin for Bareos</title>
<subtitle>Backing up oVirt using Bareos </subtitle>
<track>Backup and Recovery</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Backing up virtual machines in larger environments is usually not a simple task. With the new oVirt-Plugin for Bareos you can now easily backup and restore your oVirt virtual machines.
This talk will give a short introduction how Bareos backs up oVirt virtual machines.&lt;/p&gt;</abstract>
<description/>
<persons/>
<links>
<link href="https://submission.fosdem.org/feedback/10700.php">Submit feedback</link>
</links>
<date>2020-02-01T12:40:00+01:00</date>
</event>
<event id="10038">
<start>13:00</start>
<duration>00:15</duration>
<room>UD2.119</room>
<slug>velero</slug>
<title>Preserve kubernetes state using heptio velero</title>
<subtitle/>
<track>Backup and Recovery</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Stateful applications like databases needs to preserve their state as they need to save client data of one session for use in next session in persistent storage. Managing state in Kubernetes is difficult because the system’s dynamism is too chaotic for most databases to handle. So backup of data is very important especially in case of node failures, disk failures etc.
Velero is an open source tool to safely backup and restore, perform disaster recovery, and migrate Kubernetes cluster resources and persistent volumes.
In this talk, I will elaborate on why, how and when to use velero for your Kubernetes cluster and volumes.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6836">Harshita Sharma</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10038.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="10646">
<start>13:20</start>
<duration>00:15</duration>
<room>UD2.119</room>
<slug>xtrabackup</slug>
<title>Percona XtraBackup Current and Future State</title>
<subtitle>What's the future for the open-source industry standard for MySQL hot backup?</subtitle>
<track>Backup and Recovery</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;A brief overview of the current state of the backup tool, architecture, MySQL 8.0 support, new cloud native features, and the roadmap.&lt;/p&gt;</abstract>
<description>&lt;p&gt;During this brief lecture, I will present the roadmap for Percona XtraBackup, talk about the importance of our Cloud direction, why PXB 8.0 is a separate binary, and how PXB fits into our Percona Distribution model for 2020.&lt;/p&gt;</description>
<persons>
<person id="7346">Tyler Duzan</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10646.php">Submit feedback</link>
</links>
<date>2020-02-01T13:20:00+01:00</date>
</event>
<event id="9357">
<start>13:40</start>
<duration>00:15</duration>
<room>UD2.119</room>
<slug>perconamongodb</slug>
<title>Percona Backup for MongoDB: Status and Plans</title>
<subtitle>Open Source solution for consistent backups of multi-shard MongoDB</subtitle>
<track>Backup and Recovery</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;A brief overview of the current state of backup tool, architecture, existing features, and the roadmap.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4801">Mykola Marzhan</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9357.php">Submit feedback</link>
</links>
<date>2020-02-01T13:40:00+01:00</date>
</event>
<event id="9607">
<start>14:00</start>
<duration>00:30</duration>
<room>UD2.119</room>
<slug>borg</slug>
<title>Self-hosted server backups for the paranoid</title>
<subtitle>Using Borg, SSH, Python and FreeNAS to securely backup Linux servers</subtitle>
<track>Backup and Recovery</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;&lt;a href=&quot;https://quarkslab.com/en/&quot;&gt;Quarkslab&lt;/a&gt; is a French company specializing in information security R&amp;amp;D, consulting and software development.&lt;/p&gt;
&lt;p&gt;Due to strong data security constraints imposing self-hosted solutions coupled with limited resources in a fast-growth environment, data safety has been a pain point in our infrastructure.&lt;/p&gt;
&lt;p&gt;After our backup server failed, we decided to recreate a new backup system from scratch, adapted to our needs and using technologies we were familiar with, to backup 30+ Linux servers.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;In this talk, we will present how our old backup system failed, the key requirements we learned from this failure, and how we designed and implemented a new backup system based on &lt;a href=&quot;https://borgbackup.readthedocs.io/en/stable/&quot;&gt;Borg Backup&lt;/a&gt;, &lt;a href=&quot;https://github.com/witten/borgmatic&quot;&gt;borgmatic&lt;/a&gt;, SSH, Python and &lt;a href=&quot;https://www.freenas.org/&quot;&gt;FreeNAS&lt;/a&gt; to solve those requirements.&lt;/p&gt;
&lt;p&gt;We will conclude by listing the shortcomings and improvement points of our approach, as well as comparing our solution to seven important properties every backup system should have.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Some interesting features of our new backup solution are strong data safety and security, fully self-hosted, using only open-source tools, simple to set up and easy to understand.&lt;/p&gt;
&lt;p&gt;One specific requirement we solved was for the sysadmin team to be blind to the data they backup, managing only the process itself.&lt;/p&gt;
&lt;p&gt;This lets people working on confidential project on dedicated and access-restricted servers to still use a centralized and resilient backup system without compromising data and server security.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;We will open-source our Ansible roles and Python scripts on &lt;a href=&quot;https://github.com/quarkslab&quot;&gt;Github&lt;/a&gt; before FOSDEM.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6806">Axel Tripier</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9607.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="10536">
<start>15:00</start>
<duration>00:30</duration>
<room>UD2.119</room>
<slug>fasten_scaling_static_analyses_to_ecosystems</slug>
<title>FASTEN: Scaling static analyses to ecosystems</title>
<subtitle/>
<track>Dependency Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;As recent events, such as the leftpad incident and the Equifax data breach, have demonstrated, dependencies on networks of external libraries can introduce projects to significant operational and
compliance risks as well as difficult to assess security implications. FASTEN introduces fine-grained, method-level, tracking of dependencies on top of existing dependency management networks. In our talk, we will present how FASTEN works on top of the Rust/Cargo and Java/Maven ecosystems.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3845">Georgios Gousios</person>
</persons>
<links>
<link href="https://www.fasten-project.eu/view/Main/Introduction">fine-grained and method-level tracking of dependencies with FASTEN project</link>
<link href="https://submission.fosdem.org/feedback/10536.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="9526">
<start>15:30</start>
<duration>00:30</duration>
<room>UD2.119</room>
<slug>foss_sustainability_issues</slug>
<title>There's no sustainability problem in FOSS</title>
<subtitle>Except that there is.</subtitle>
<track>Dependency Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The community seems to be rife with conversations about our sustainability problems. Do we actually have one? We’ll lead a discussion and debate around how we as a community can think about these issues, while drawing out the nuanced aspects of each as well as their potential solutions.&lt;/p&gt;</abstract>
<description>&lt;p&gt;When something like left-pad or event-stream happens, how much responsibility should be taken on by companies who deployed a dependency that was critical enough to their operations that removing it created immediate crisis, but not well supported or understood enough that there was any kind of mitigation strategy or backup plan?&lt;/p&gt;
&lt;p&gt;And yet, when you look at OpenSSL, curl, and other pieces of open source infrastructure that live in our dependency chains, there are many examples of projects that are important enough to be critical, but are under-resourced to the point that maintainers are having to make quality-of-life tradeoffs to stay on top of the project. We are responsible for ensuring that our shared dependencies are sustainably developed. But who is holding us accountable?&lt;/p&gt;
&lt;p&gt;If a maintainer is driving themselves to burnout because they are supporting too many of their open source projects, don’t they bear some responsibility for that choice?&lt;/p&gt;
&lt;p&gt;But how are we supposed to untangle which of the thousands of dependencies that we use are in most need of support - and what kind of support they prefer?&lt;/p&gt;
&lt;p&gt;Is there a sustainability problem in FOSS after all?&lt;/p&gt;
&lt;p&gt;This presentation will be co-presented with Duane O'Brien, Head of Open Source at Indeed.com, the world’s #1 jobs site.&lt;/p&gt;</description>
<persons>
<person id="5041">Carol Smith</person>
<person id="5854">Duane O'Brien</person>
</persons>
<links>
<link href="http://fossygirl.com">Carol Smith's personal website</link>
<link href="http://duaneobrien.com">Duane O'Brien's github account</link>
<link href="https://submission.fosdem.org/feedback/9526.php">Submit feedback</link>
</links>
<date>2020-02-01T15:30:00+01:00</date>
</event>
<event id="9669">
<start>16:00</start>
<duration>00:30</duration>
<room>UD2.119</room>
<slug>comparing_dependency_management_issues</slug>
<title>Comparing dependency management issues across packaging ecosystems</title>
<subtitle/>
<track>Dependency Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In the last couple of years, the Software Engineering Lab of the University of Mons has extensively studied different aspects of dependency management within and across different package management ecosystems, including Cargo, npm, Packagist, Rubygems, CPAN, CRAN and NuGet. These ecosystems contain a large number of package releases with many interdependencies. They face challenges related to their scale, complexity, and rate of evolution. Typical problems are backward incompatible package updates, and the increasing proportion of fragile packages due to an excessive number of transitive dependencies.&lt;/p&gt;</abstract>
<description>&lt;p&gt;This talk reports on our findings based on multiple empirical studies that we have conducted to understand different aspects of dependency management and their practical implications. This includes:
- the outdatedness of package dependencies, the transitive impact of such &quot;technical lag&quot;, and its relation to the presence of bugs and security vulnerabilities.
- the impact of using either more permissive or more restrictive version contraints on dependencies.
- the virtues and limitations of being compliant to semantic versioning, a common policy to inform dependents whether new releases of software packages introduce possibly backward incompatible changes.
- the impact of specific characteristics, policies and tools used by the packaging ecosystem and its supporting community on all of the above.&lt;/p&gt;
&lt;p&gt;The contents of the talk will be adapted to the target audience of open source software practitioners, but will be primarily based on the following peer-reviewed scientific articles:
- What do package dependencies tell us about semantic versioning? Alexandre Decan, Tom Mens. IEEE Transactions on Software Engineering, 2019. https://doi.org/10.1109/TSE.2019.2918315
- An empirical comparison of dependency network evolution in seven software packaging ecosystems. Alexandre Decan, Tom Mens, Philippe Grosjean. Empirical Software Engineering 24(1):381-416, 2019. https://doi.org/10.1007/s10664-017-9589-y
- A formal framework for measuring technical lag in component repositories and its application to npm. Ahmed Zerouali, Tom Mens, Jesus Gonzalez‐Barahona, Alexandre Decan, Eleni Constantinou, Gregorio Robles. Journal of Software: Evolution and Process 31(8), 2019. https://doi.org/10.1002/smr.2157
- On the Impact of Security Vulnerabilities in the npm Package Dependency Network. Alexandre Decan, Tom Mens, Eleni Constantinou. International Conference on Mining Software Repositories, 2018. https://doi.org/10.1145/3196398.3196401
- On the Evolution of Technical Lag in the npm Package Dependency Network. Alexandre Decan, Tom Mens, Eleni Constantinou. International Conference on Software Maintenance and Evolution, 2018. https://doi.org/10.1109/ICSME.2018.00050&lt;/p&gt;</description>
<persons>
<person id="6889">Tom Mens</person>
</persons>
<links>
<link href="https://doi.org/10.1109/TSE.2019.2918315">What do package dependencies tell us about semantic versioning?</link>
<link href="https://doi.org/10.1007/s10664-017-9589-y">An empirical comparison of dependency network evolution in seven software packaging ecosystems</link>
<link href="https://doi.org/10.1002/smr.2157">A formal framework for measuring technical lag in component repositories and its application to npm</link>
<link href="https://doi.org/10.1145/3196398.3196401">On the Impact of Security Vulnerabilities in the npm Package Dependency Network</link>
<link href="https://doi.org/10.1109/ICSME.2018.00050">On the Evolution of Technical Lag in the npm Package Dependency Network</link>
<link href="https://submission.fosdem.org/feedback/9669.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="10064">
<start>16:30</start>
<duration>00:30</duration>
<room>UD2.119</room>
<slug>building_confidence_in_security</slug>
<title>Building Confidence &amp; Overcoming Insecurity</title>
<subtitle>The ultimate software supply chain self-help guide</subtitle>
<track>Dependency Management</track>
<type>devroom</type>
<language/>
<abstract/>
<description>&lt;p&gt;The days of having only a few open source dependencies are over. Projects often have thousands of open source dependencies in their supply chain and companies may have millions. Even worse, risk is viral -- projects inherit and pass on the risks of all their dependencies. At the same time, software is shipping more frequently.&lt;/p&gt;
&lt;p&gt;This creates numerous challenges for commercial and open source projects of any size -- how to discover the myriad of components being used across a range of ecosystems and scenarios, where to get high quality data to drive smart decisions, how to capture and evaluate comprehensive policies.&lt;/p&gt;
&lt;p&gt;Enabling high-confidence, rapid delivery, requires integrating supply chain management automation deep into the engineering system. Core to this is accurate discovery and identification of dependencies and trustworthy, high-quality compliance and security data about the discovered components.&lt;/p&gt;
&lt;p&gt;In this talk we detail the challenges in this space, look at various approaches such as ClearlyDefined, a crowd-sourced, open source project aimed at discovering and curating compliance data about open source components, and relate experiences running high performance, massive scale compliance systems for a wide range of open source and commercial projects.&lt;/p&gt;</description>
<persons>
<person id="5990">Jeff McAffer</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10064.php">Submit feedback</link>
</links>
<date>2020-02-01T16:30:00+01:00</date>
</event>
<event id="10574">
<start>17:00</start>
<duration>00:30</duration>
<room>UD2.119</room>
<slug>github_cross_project_code_navigation</slug>
<title>Precise, cross-project code navigation at GitHub scale</title>
<subtitle/>
<track>Dependency Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;GitHub has recently added Code Navigation features (jump to definition and find all references) that let you navigate code directly on &lt;a href=&quot;github.com&quot;&gt;github.com&lt;/a&gt;. For the languages that we support, we extract and store symbol information for every named branch and tag, of every repository, public or private, with no configuration necessary. The compute and storage requirements to do this for all of the code on GitHub are quite large. In this talk, we'll discuss some of the trade-offs we've made to make this tractable at GitHub's scale, to be able to operate and monitor this service effectively, and to let us add support for new languages quickly and easily. We'll also talk about our ongoing work to extend Code Navigation to handle links that cross package and repository boundaries.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7314">Douglas Creager</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10574.php">Submit feedback</link>
</links>
<date>2020-02-01T17:00:00+01:00</date>
</event>
<event id="10581">
<start>17:30</start>
<duration>00:30</duration>
<room>UD2.119</room>
<slug>dependency_solving_not_just_sat</slug>
<title>Spack's new Concretizer</title>
<subtitle>Dependency solving is more than just SAT!</subtitle>
<track>Dependency Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Dependency resolution is deceptively complex; simply selecting a set of compatible versions for an arbitrary network of dependencies is NP-hard. Much effort has been spent on this problem for modern single-language ecosystems, but many of these ecosystems rely on natively compiled libraries, and dependency mangers often fail at managing the additional complexities that native libraries entail. Further, dependency resolution has traditionally been modeled as a SAT problem, where the package manager should find &lt;em&gt;any&lt;/em&gt; workable solution to satisfy package constraints. However, &lt;em&gt;any&lt;/em&gt; solution may not be good enough. Users want the most tested, most optimized, or most secure configuration, and this is a SAT problem coupled with complex optimization.&lt;/p&gt;
&lt;p&gt;Spack is a package/dependency manager rapidly gaining popularity in High Performance Computing (HPC) that aims to address many of the complexities of native, multi-language, cross-platform dependency management. Spack has recently been reworked to use Answer Set Programming (ASP), a declarative logic programming paradigm that also provides sophisticated facilities for optimization. This talk will cover how we’ve been able to model the compiler toolchain, ISA, build options, ABI, and other constraints on native libraries. We’ll also talk about how ASP has been a useful tool for finding &lt;em&gt;optimized&lt;/em&gt; dependency configurations. This work can be used to improve dependency resolvers in general — so that they can prefer more secure or tested configurations instead of simply selecting the most recent workable versions.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Expected prior knowledge / intended audience:
Audience should have basic knowledge of build systems and compiled languages, but we'll explain this up front with some brief background. The talk is aimed broadly -- for users, developers, packagers, researchers, package manager implementors, and HPC administrators.&lt;/p&gt;</description>
<persons>
<person id="4884">Todd Gamblin</person>
</persons>
<links>
<link href="https://www.youtube.com/watch?v=DRuyPDdNr0M">Presentation at HPCKP'19, Barcelona</link>
<link href="https://www.youtube.com/watch?v=edpgwyOD79E&amp;t=2891s">Recent webinar on Spack for NCSA</link>
<link href="https://www.youtube.com/watch?v=BxNOxHu6FAI">Dinner talk at Argonne Training Program on Extreme-Scale Computing</link>
<link href="https://insidehpc.com/2019/03/spack-a-package-manager-for-hpc/">Talk at Stanford HPC conference</link>
<link href="https://www.youtube.com/watch?v=iTLBkpHskzA">PyBay 2019 Lightning talk (5 min)</link>
<link href="http://spack.io">Spack website</link>
<link href="https://submission.fosdem.org/feedback/10581.php">Submit feedback</link>
</links>
<date>2020-02-01T17:30:00+01:00</date>
</event>
<event id="10063">
<start>18:00</start>
<duration>00:45</duration>
<room>UD2.119</room>
<slug>package_management_panel</slug>
<title>Package managers: resolve differences</title>
<subtitle>Lively panel discussion on package management</subtitle>
<track>Dependency Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Package managers have become the default way for managing dependencies for most projects but they’re not without their challenges and risks. In this panel we bring together experts representing several popular package managers for a lively discussion on package management best practices, the state of package management communities, and a look forward at what we can expect to see in the future.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Join our facilitators as they put representatives of popular package managers on the spot with difficult questions on package management infrastructure, security, and compliance.&lt;/p&gt;
&lt;p&gt;We’ll tackle topics such as:
* Versioning and naming
* Knowing the full graph of packages you’re consuming
* Best practices for securing your use of package managers
* Finding and resolving vulnerabilities in packages you’re using
* Malicious packages and typo-squatting
* Meeting your open source license obligations
* Dealing with dependencies that aren’t packages&lt;/p&gt;
&lt;p&gt;With package managers becoming the default way for managing dependencies, they are now a critical part of the software supply chain and while at first each package manager appears quite different, they share common requirements, are used in similar workflows, and are all targets for malicious actors.&lt;/p&gt;
&lt;p&gt;In this panel we will focus on those common problems so that regardless of which package manager you use, you’ll come away with a breadth of knowledge on how to securely use package managers in your software supply chain.&lt;/p&gt;</description>
<persons>
<person id="6899">William Bartholomew</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10063.php">Submit feedback</link>
</links>
<date>2020-02-01T18:00:00+01:00</date>
</event>
</room>
<room name="UD2.120 (Chavanne)">
<event id="10713">
<start>10:30</start>
<duration>00:25</duration>
<room>UD2.120 (Chavanne)</room>
<slug>tanka</slug>
<title>Introducing Tanka</title>
<subtitle>a scalable Jsonnet based tool for deploying and managing Kubernetes Infrastructure</subtitle>
<track>Infra Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Introducing Tanka, a scalable Jsonnet based tool for deploying and managing Kubernetes Infrastructure&lt;/p&gt;</abstract>
<description>&lt;p&gt;There are various tools available for managing Kubernetes resources. Whether they be Helm, Kustomize or others. Ksonnet offered a powerful approach with tremendous promise, but was discontinued by developers. In this presentation we will introduce Tanka, a drop in replacement for Ksonnet developed at Grafana labs and available on GitHub. For those not familiar with Ksonnet, we will introduce the Jsonnet language, and demonstrate its power as a way of interacting with Kubernetes. We will then demonstrate some of the enhancements we have already made to Tanka, and then explain our roadmap for the tooling, and how we believe it is already the best of breed configuration management solution for Kubernetes.&lt;/p&gt;</description>
<persons/>
<links>
<link href="https://submission.fosdem.org/feedback/10713.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10558">
<start>11:00</start>
<duration>00:25</duration>
<room>UD2.120 (Chavanne)</room>
<slug>openapi</slug>
<title>Using OpenAPI to Maximise Your Pulp 3 Experience</title>
<subtitle/>
<track>Infra Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Pulp (https://pulpproject.org) enables users to organize and distribute software. Now that Pulp 3.0 is generally available, it’s time to integrate it into your software delivery workflows. While the REST API is the primary integration point, it is the OpenAPI schema definition of that API that enables users to build client libraries in various languages. These clients simplify the integration with Pulp 3.&lt;/p&gt;
&lt;p&gt;This talk will provide a brief introduction to OpenAPI. This will be followed by a demonstration of how to use the Pulp’s OpenAPI schema to generate a Python client for Pulp’s REST API. The Python client will then be used to perform various workflows in Pulp 3.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4708">Dennis Kliban</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10558.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
<event id="10421">
<start>11:30</start>
<duration>00:25</duration>
<room>UD2.120 (Chavanne)</room>
<slug>doomed</slug>
<title>Doomed are the dinosaurs!</title>
<subtitle>Dealing with diversity by utilizing the versatility of Ansible and open source</subtitle>
<track>Infra Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;It may be hard to image, but some sysadmins do not operate in ideal, tightly controlled circumstances. Apparently, not every developer, application or organization is ready for Kubernetes…&lt;/p&gt;
&lt;p&gt;In this presentation we will share a real world use case: deploying and configuring a brand new natural history museum. We’ll show how we built the museum with open source software and config management tools, dealing with a broad set of technologies, a tight schedule, a sector dominated by traditional organizations fixated on proprietary solutions and a whole bunch of actual fossils. We’ll show how far we’ve come, and what choices we made along the way.&lt;/p&gt;
&lt;p&gt;Check out this talk if you want to see how Ansible, MAAS, PlatformIO, Nextcloud and other tools were used to not just automatically deploy and configure Linux based media players, games and digital signage screens, but also to manage Cumulus Linux-based switches, OPNsense firewalls, show controllers, Arduino microcontrollers, KNX gateways, projectors and even the odd OSX machine.&lt;/p&gt;</abstract>
<description>&lt;p&gt;It may be hard to image, but some sysadmins do not operate in ideal, tightly controlled circumstances. Apparently, not every developer, application or organization is ready for Kubernetes…&lt;/p&gt;
&lt;p&gt;In this presentation we will share a real world use case: deploying and configuring a brand new natural history museum. We’ll show how we built the museum with open source software and config management tools, dealing with a broad set of technologies, a tight schedule, a sector dominated by traditional organizations fixated on proprietary solutions and a whole bunch of actual fossils. We’ll show how far we’ve come, and what choices we made along the way.&lt;/p&gt;
&lt;p&gt;Check out this talk if you want to see how Ansible, MAAS, PlatformIO, Nextcloud and other tools were used to not just automatically deploy and configure Linux based media players, games and digital signage screens, but also to manage Cumulus Linux-based switches, OPNsense firewalls, show controllers, Arduino microcontrollers, KNX gateways, projectors and even the odd OSX machine.&lt;/p&gt;</description>
<persons>
<person id="7205">David Heijkamp</person>
</persons>
<links>
<link href="http://naturalis.nl">Naturalis Biodiversity Center</link>
<link href="http://gitlab.com/naturalis">Naturalis at Gitlab</link>
<link href="https://submission.fosdem.org/feedback/10421.php">Submit feedback</link>
</links>
<date>2020-02-01T11:30:00+01:00</date>
</event>
<event id="9936">
<start>12:00</start>
<duration>00:25</duration>
<room>UD2.120 (Chavanne)</room>
<slug>openscap</slug>
<title>Compliance management with OpenSCAP and Ansible</title>
<subtitle>Using OpenSCAP and Ansible for compliance management of large computing environments</subtitle>
<track>Infra Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Managing compliance of large IT environment is complex and challenging task. Today's hybrid cloud environments are having different life cycles, when considering many short lived system like cloud instances its difficult to manage compliance on the go. This talk focuses on how OpenSCAP policies, tools and Ansible can be used to have greater control of compliance of large environments.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Compliance management with OpenSCAP&lt;/p&gt;
&lt;p&gt;Enterprise computing environments may consist of thousands of computer systems, having multiple applications and services. These systems are accessed by large and diverse set of users and applications. To have a greater control over security of these vast environments a standard and unified way to scan systems for compliance with security policies is needed.&lt;/p&gt;
&lt;p&gt;This talk focuses on using SCAP tools to retain control over large environments, scan compliance with desired policy, and use Ansible to remediate detected problems,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Install and use the SCAP Security Guide.
Evaluate a server's compliance with the requirements specified by a policy from the SCAP Security Guide using OpenSCAP tools.
Create a tailoring file to adjust the policy's security checks so that they’re relevant and correct for a specific system and its use case.
Run Ansible Playbooks, included in the SCAP Security Guide, to remediate compliance checks that failed an OpenSCAP scan.
Demonstration
&lt;/code&gt;&lt;/pre&gt;</description>
<persons>
<person id="6531">Amit Upadhye</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9936.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="10352">
<start>13:30</start>
<duration>00:25</duration>
<room>UD2.120 (Chavanne)</room>
<slug>ephemeral</slug>
<title>Ephemeral Environments For Developers In Kubernetes</title>
<subtitle/>
<track>Infra Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;A key aspect of a microservice architecture is to make sure individual services work in isolation. But as a developer its also important to make sure the service works in the full system. Providing developers a way to run pre-production code in a multi-service environment is challenging.&lt;/p&gt;
&lt;p&gt;Making use of existing Helm charts and defaulting to production configuration does part of the work. Also important is being able to extend upon tools like Telepresence/Ksync for debugging in k8s. But while these great tools are available, what has been lacking is the &quot;easy to use&quot;, single command that gives a developer a place to work with their own full, self-contained system. There are now a few open source solutions to do just that (like Garden, Acyl, &amp;amp; Armador). In this talk, Jeff will break down how these tools work, and what makes them different.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6208">Jeff Knurek</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10352.php">Submit feedback</link>
</links>
<date>2020-02-01T13:30:00+01:00</date>
</event>
<event id="10493">
<start>14:00</start>
<duration>00:25</duration>
<room>UD2.120 (Chavanne)</room>
<slug>codeworkload</slug>
<title>Code Workload Management into the Control Plane</title>
<subtitle>What it means to be &quot;Kubernetes Native&quot;</subtitle>
<track>Infra Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Join us to learn why Operators are the leading and default approach for managing workloads on Kubernetes. We will pull back the curtain to show you exactly what an Operator is, how to make one, and what it means to be “Kubernetes Native”.&lt;/p&gt;</abstract>
<description>&lt;p&gt;SREs automate every aspect of workload management. Applying this mentality to the Kubernetes space, a pattern has emerged for coding such automation directly into the control plane. By adding native extensions to the Kubernetes API that are tailored to individual workloads, the Operator pattern enables infrastructure and workloads to be managed side-by-side with one set of tooling and access control.&lt;/p&gt;
&lt;p&gt;Join us to learn why Operators are the leading and default approach for managing workloads on Kubernetes. We will pull back the curtain to show you exactly what an Operator is, how to make one, and what it means to be “Kubernetes Native”. To close we will discuss use cases from the field; how real organizations have created and/or re-used Operators to automate their operations.&lt;/p&gt;</description>
<persons>
<person id="3493">Michael Hrivnak</person>
</persons>
<links>
<link href="https://www.linkedin.com/in/mhrivnak/">Michael Hrivnak linkedin page</link>
<link href="https://www.linkedin.com/in/matthewdorn/">Matt Dorn linkedin page</link>
<link href="https://submission.fosdem.org/feedback/10493.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="9938">
<start>14:30</start>
<duration>00:25</duration>
<room>UD2.120 (Chavanne)</room>
<slug>immutable</slug>
<title>Immutable deployments: the new classic way for service deployment</title>
<subtitle>Adopt the new immutable infrastructure paradigm using your old toolbox.</subtitle>
<track>Infra Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Immutable infrastructure paradigm is often associated with relative new concept like containers and orchestrators like kubernetes. In this talk will be illustrate how to obtain the same result but using most of the classic concepts, tools and simple cloud platforms.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In particular will be shown the usage of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Terraform for the orchestration&lt;/li&gt;
&lt;li&gt;Packer for the creation of the instance image&lt;/li&gt;
&lt;li&gt;Simple shell scripts for the provisioning&lt;/li&gt;
&lt;li&gt;DigitalOcean as cloud platform&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The illustrated approach is based on lessons learned in almost two years of using this methodology on a production service.&lt;/p&gt;</description>
<persons>
<person id="5705">Matteo Valentini</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9938.php">Submit feedback</link>
</links>
<date>2020-02-01T14:30:00+01:00</date>
</event>
<event id="9471">
<start>15:00</start>
<duration>00:25</duration>
<room>UD2.120 (Chavanne)</room>
<slug>foremanansible</slug>
<title>Foreman meets Ansible</title>
<subtitle/>
<track>Infra Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This talk focuses on how Ansible and Foreman integrate with each other and what
added value can the users get when using Ansible from Foreman. It describes two
primary approaches of using Ansible from Foreman. The first is a traditional
configuration management approach, where hosts are kept in a predefined state,
while the other works in a more remote execution fashion. The talk goes over
several scenarios and demonstrates how Foreman can leverage Ansible to
effortlessly solve the issues present in the given scenarios.&lt;/p&gt;</abstract>
<description>&lt;p&gt;This talk focuses on how Ansible and Foreman integrate with each other and what
added value can the users get when using Ansible from Foreman. It describes two
primary approaches of using Ansible from Foreman. The first is a traditional
configuration management approach, where hosts are kept in a predefined state,
while the other works in a more remote execution fashion. The talk goes over
several scenarios and demonstrates how Foreman can leverage Ansible to
effortlessly solve the issues present in the given scenarios.&lt;/p&gt;</description>
<persons>
<person id="6736">Adam Růžička</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9471.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="9331">
<start>15:30</start>
<duration>00:25</duration>
<room>UD2.120 (Chavanne)</room>
<slug>terraform</slug>
<title>Hacking Terraform for fun and profit</title>
<subtitle/>
<track>Infra Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Using Terraform is often simple, extending it to do what YOU want, can be challenging (or “impossible”). Want to manage unsupported resources? Maintain lots of resources? Integrate non-integrable? The talk is an advanced guide about HOW to extend, integrate and execute Terraform to get things DONE.&lt;/p&gt;</abstract>
<description>&lt;p&gt;If you’ve been using Terraform just by following the official documentation, you are not getting all from it.&lt;/p&gt;
&lt;p&gt;As soon as one cloud provider announces a new service or a feature, you dream that Terraform has zero-day support for it. Well, it is not always like this, and I will show what we can do about it.&lt;/p&gt;
&lt;p&gt;Are you using Terraform and keep asking yourself why I should copy-paste so much? What if you need to manage more than a dozen resources with Terraform (e.g., hundreds of GitHub repositories with permissions, or hundreds of IAM users and their permissions)? How can I use Terraform to manage absolutely ANY type of resource? What is beyond Terraform modules? What is a really dynamic module and what Terraform 0.12 will help us with?&lt;/p&gt;
&lt;p&gt;Let's see the advanced and very unusual solutions of how Terraform can be extended, integrated, executed, or merely hacked to get the job done with the help of external open-source services and integrations.&lt;/p&gt;</description>
<persons>
<person id="5521">Anton Babenko</person>
</persons>
<links>
<link href="http://github.com/antonbabenko">My GitHub profile</link>
<link href="https://medium.com/@anton.babenko">My blog about Terraform and AWS</link>
<link href="https://submission.fosdem.org/feedback/9331.php">Submit feedback</link>
</links>
<date>2020-02-01T15:30:00+01:00</date>
</event>
<event id="10302">
<start>16:00</start>
<duration>00:25</duration>
<room>UD2.120 (Chavanne)</room>
<slug>selfhealing</slug>
<title>Building a self healing system with SaltStack</title>
<subtitle/>
<track>Infra Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;As the number of servers that we are responsible for increases, the ability to manage issues on those systems becomes more and more difficult. Situations arise like log files filling up disks, failed login attempts that could be brute force attacks, and unwanted processes and services running. Using the Beacon and Reactor systems of SaltStack, we can monitor a system for these have SaltStack restore those systems to the desired state. In this talk, we’ll look at some real-life examples of these scenarios and how Saltstack can help to automatically heal the systems.&lt;/p&gt;</abstract>
<description>&lt;p&gt;As the number of servers that we are responsible for increases, the ability to manage issues on those systems becomes more and more difficult.
Situations arise like log files filling up disks, failed login attempts that could be brute force attacks, and unwanted processes and services running.&lt;/p&gt;
&lt;p&gt;Using the Beacon system of SaltStack, we can monitor a system for these &amp;amp; other scenarios.
Pairing this with the Reactor system, we can have SaltStack restore those systems to the desired state.&lt;/p&gt;
&lt;p&gt;In this talk, we’ll look at some real-life examples of these scenarios and how Saltstack can help to automatically heal the systems.&lt;/p&gt;
&lt;p&gt;The talk will include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A brief introduction to Salt Stack.&lt;/li&gt;
&lt;li&gt;Using Salt Beacons to monitor aspects of a system.&lt;/li&gt;
&lt;li&gt;Using Salt Reactors to react to events from the Salt Beacons.&lt;/li&gt;
&lt;li&gt;Using those reactors to re-mediate issues as they occur.&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="7187">Gareth J Greenaway</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10302.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="10284">
<start>16:30</start>
<duration>00:55</duration>
<room>UD2.120 (Chavanne)</room>
<slug>infratesting</slug>
<title>Infrastructure testing, it's a real thing!</title>
<subtitle/>
<track>Infra Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Software developers have been testing their code for years. Why is it still not a common thing for infrastructure and operations people? We are in an era where it is expected everyone moves fast. Moving too fast can negatively affect our customers so it's vital that we ensure the changes we make to our infrastructure are tested like other code changes would be.&lt;/p&gt;
&lt;p&gt;In this talk, Paul is going to demonstrate some of the methods for testing infrastructure code. The talk will demonstrate how to establish fast feedback loops that provisions infrastructure, as well as being able to check that the code adheres to company policies, and has not drifted from the plan of record as specified in our infrastructure as code repository.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Software developers have been testing their code for years. Why is it still not a common thing for infrastructure and operations people? We are in an era where it is expected everyone moves fast. Moving too fast can negatively affect our customers so it's vital that we ensure the changes we make to our infrastructure are tested like other code changes would be.&lt;/p&gt;
&lt;p&gt;In this talk, Paul is going to demonstrate some of the methods for testing infrastructure code. The talk will demonstrate how to establish fast feedback loops that provisions infrastructure, as well as being able to check that the code adheres to company policies, and has not drifted from the plan of record as specified in our infrastructure as code repository.&lt;/p&gt;</description>
<persons>
<person id="7176">Paul Stack</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10284.php">Submit feedback</link>
</links>
<date>2020-02-01T16:30:00+01:00</date>
</event>
<event id="9679">
<start>17:30</start>
<duration>00:25</duration>
<room>UD2.120 (Chavanne)</room>
<slug>mgmt</slug>
<title>Mgmt Config: Autonomous Datacentres</title>
<subtitle>Real-time, autonomous, automation</subtitle>
<track>Infra Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Mgmt is a real-time automation tool that is fast and safe. One goal of the tool is to allow users to model and manage infrastructure that was previously very difficult or impossible to do so previously.&lt;/p&gt;
&lt;p&gt;The tool has two main parts: the engine, and the language. This presentation will have a large number of demos of the language.&lt;/p&gt;
&lt;p&gt;To showcase this future, we'll show some exciting real-time demos that include scheduling, distributed state machines, and reversible resources.&lt;/p&gt;
&lt;p&gt;As we get closer to a 0.1 release that we'll recommend as &quot;production ready&quot;, we'll look at the last remaining features that we're aiming to land by then.&lt;/p&gt;
&lt;p&gt;Finally we'll talk about some of the future designs we're planning and discuss our free mentoring program that helps interested hackers get involved and improve their coding, sysadmin, and devops abilities.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="2026">James Shubin</person>
</persons>
<links>
<link href="https://github.com/purpleidea/mgmt/">project homepage</link>
<link href="https://twitter.com/mgmtconfig">twitter homepage</link>
<link href="https://submission.fosdem.org/feedback/9679.php">Submit feedback</link>
</links>
<date>2020-02-01T17:30:00+01:00</date>
</event>
<event id="9209">
<start>18:00</start>
<duration>00:25</duration>
<room>UD2.120 (Chavanne)</room>
<slug>gofish</slug>
<title>Gofish - a Go library for Redfish and Swordfish</title>
<subtitle/>
<track>Infra Management</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Gofish is a Golang library for interacting with Redfish and Swordfish enabled devices.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Gofish is a Golang library for interacting with Redfish and Swordfish enabled devices. This presentation will give an overview of the current state of the library and how it can be used to manage compute and storage resources using a common, standard API.&lt;/p&gt;</description>
<persons>
<person id="5652">Sean McGinnis</person>
</persons>
<links>
<link href="https://redfish.dmtf.org/">Redfish Standard</link>
<link href="https://www.snia.org/forums/smi/swordfish">Swordfish Standard</link>
<link href="https://github.com/stmcginnis/gofish">Gofish source</link>
<link href="https://submission.fosdem.org/feedback/9209.php">Submit feedback</link>
</links>
<date>2020-02-01T18:00:00+01:00</date>
</event>
</room>
<room name="UD2.208 (Decroly)">
<event id="10255">
<start>10:30</start>
<duration>00:20</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_podman</slug>
<title>Podman - The Powerful Container Multi-Tool</title>
<subtitle>An use case driven hands-on to the container management tool Podman</subtitle>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Podman is the container management tool of your choice when it comes to boosting
day-to-day development tasks around containers. The journey of Podman started as
a drop-in replacement for docker, but nowadays it’s even more than just that.
For example, Podman is capable of managing pods, running containers without
being root and supports fine granular configuration possibilities.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In this presentation, we will deep dive into the exciting world of Podman. We
discover how Podman fits into the containers ecosystem, learn about the
architecture behind the project and utilize practical examples for daily
development tasks.&lt;/p&gt;
&lt;p&gt;For example, we will learn how rootless containers work technically, how to
safely share resources within multiple containers and which benefits a
daemon-less container management tool like Podman provides. All these exciting
features will be explained by utilizing live demos which leaves room for an open
discussion at the end of the talk.&lt;/p&gt;</description>
<persons>
<person id="7162">Sascha Grunert</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10255.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10316">
<start>10:55</start>
<duration>00:20</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_lazy_image_distribution</slug>
<title>Lazy distribution of container images</title>
<subtitle>Current implementation status of containerd remote snapshotter</subtitle>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The biggest problem of the OCI Image Spec is that a container cannot be started until all the tarball layers are downloaded, even though more than 90% of the tarball contents are often unneeded for the actual workload.&lt;/p&gt;
&lt;p&gt;This session will show state-of-the-art alternative image formats, which allow runtime implementations to start a container without waiting for all its image contents to be locally available.&lt;/p&gt;
&lt;p&gt;Especially, this session will put focus on CRFS/stargz and its implementation status in containerd (https://github.com/containerd/containerd/issues/3731).
The plan for BuildKit integration will be shown as well.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3608">Akihiro Suda</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10316.php">Submit feedback</link>
</links>
<date>2020-02-01T10:55:00+01:00</date>
</event>
<event id="10501">
<start>11:20</start>
<duration>00:30</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_bpf</slug>
<title>BPF as a revolutionary technology for the container landscape</title>
<subtitle/>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;BPF as a foundational technology in the Linux kernel provides a powerful tool for systems developers and users to dynamically reprogram and customize the kernel to meet their needs in order to solve real-world problems and without having to be a kernel expert. Thanks to BPF we have come to the point to overcome having to carry legacy accumulated over decades of development grounded in a more traditional networking environment that is typically far more static than your average Kubernetes cluster. In the age of containers, they are no longer the best tool for the job, especially in terms of performance, reliability, scalability, and operations. This talk provides a few examples on how BPF allows to rethink container networking based on recent work we did in Cilium. Among others, the audience will learn about running a fully functioning Kubernetes cluster without iptables, Netfilter and thus without kube-proxy in a scalable and secure way with the help of BPF and Cilium.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3753">Daniel Borkmann</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10501.php">Submit feedback</link>
</links>
<date>2020-02-01T11:20:00+01:00</date>
</event>
<event id="10335">
<start>11:55</start>
<duration>00:20</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_kata</slug>
<title>Kata Containers on openSUSE</title>
<subtitle/>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Kata Containers provide a secure container runtime offering an experience close to that of native containers, while providing stronger workload isolation and host infrastructure security by using hardware virtualization technology. This is particularly useful when containers are used to host and run third-party applications. In this presentation, after a short intro to Kata, we will demonstrate how easy it is to install and use on openSUSE. We will show it in action both as part of a podman setup as well as within a full-featured Kubernetes environment.&lt;/p&gt;</abstract>
<description>&lt;p&gt;With containers becoming not only the preferred way of deploying applications, but also the building blocks of microservice architectures, infrastructure security and workload isolation concerns are being raised. The Kata Containers Open Source project addresses these concerns by using virtualization technology, in compliance with the &quot;defense in depth&quot; design principles. It is also a very flexible, dynamic and fast-moving project, with many components that need to be integrated among each others.&lt;/p&gt;
&lt;p&gt;This presentation will illustrate how easy it can already be to use Kata as a container runtime on top of the openSUSE distribution. In fact, after giving a short introduction of Kata Containers and its architecture, we will provide a DEMO of how we have integrated Kata into openSUSE and how it can be used with podman to run containers in a secure and isolated fashion. As Kata is compatible with the OCI (Open Container Initiative) runtime specification, it can be used to seamlessly replace or coexist with other runtimes (e.g. runc) in existing Container Engines (podman, CRI-O, docker, ...), even inside a Kubernetes cluster. We will therefore be able to show how native containers and strongly isolated Kata containers can run together on the same platform. Finally, we will also demonstrate how to set Kata Containers up as an alternative runtime inside of a Kubernetes Cluster.&lt;/p&gt;</description>
<persons>
<person id="7139">Ralf Haferkamp</person>
</persons>
<links>
<link href="https://katacontainers.io/">Kata Containers</link>
<link href="https://submission.fosdem.org/feedback/10335.php">Submit feedback</link>
</links>
<date>2020-02-01T11:55:00+01:00</date>
</event>
<event id="10418">
<start>12:20</start>
<duration>00:30</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_k8s_kube_proxy</slug>
<title>Evolution of kube-proxy</title>
<subtitle/>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Kube-proxy enables access to Kubernetes services (virtual IPs backed by pods) by configuring client-side load-balancing on nodes. The first implementation relied on a userspace proxy which was not very performant. The second implementation used iptables and is still the one used in most Kubernetes clusters. Recently, the community introduced an alternative based on IPVS.
This talk will start with a description of the different modes and how they work. It will then focus on the IPVS implementation, the improvements it brings, the issues we encountered and how we fixed them as well as the remaining challenges and how they could be addressed. Finally, the talk will present alternative solutions based on eBPF such as Cilium.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7242">Laurent Bernaille</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10418.php">Submit feedback</link>
</links>
<date>2020-02-01T12:20:00+01:00</date>
</event>
<event id="9288">
<start>12:55</start>
<duration>00:20</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_live_migration</slug>
<title>Container Live Migration </title>
<subtitle/>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The difficult task to checkpoint and restore a process is used in many container runtimes to implement container live migration. This talk will give details how CRIU is able to checkpoint and restore processes, how it is integrated in different container runtimes and which optimizations CRIU offers to decrease the downtime during container migration.&lt;/p&gt;
&lt;p&gt;In this talk I want to provide details how CRIU checkpoints and restores a process. Starting from ptrace() to pause the process, how parasite code is injected into the process to checkpoint the process from its own address space. How CRIU transforms itself to the restored process during restore. How SELinux and seccomp is restored.&lt;/p&gt;
&lt;p&gt;I want to end this talk with an overview about how CRIU is integrated in different container runtimes to implement container live migration.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5257">Adrian Reber</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9288.php">Submit feedback</link>
</links>
<date>2020-02-01T12:55:00+01:00</date>
</event>
<event id="10542">
<start>13:20</start>
<duration>00:20</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_syscall_emulation</slug>
<title>Supervising and emulating syscalls</title>
<subtitle/>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Recently the kernel landed seccomp support for SECCOMP&lt;em&gt;RET&lt;/em&gt;USER_NOTIF which enables a process (supervisee) to retrieve a fd for its seccomp filter. This fd can then be handed to another (usually more privileged) process (supervisor). The supervisor will then be able to receive seccomp messages about the syscalls having been performed by the supervisee.&lt;/p&gt;
&lt;p&gt;We have integrated this feature into userspace and currently make heavy use of this to intercept mknod(), mount(), and other syscalls in user namespaces aka in containers.
For example, if the mknod() syscall matches a device in a pre-determined whitelist the privileged supervisor will perform the mknod syscall in lieu of the unprivileged supervisee and report back to the supervisee on the success or failure of its attempt. If the syscall does not match a device in a whitelist we simply report an error.&lt;/p&gt;
&lt;p&gt;This talk is going to show how this works and what limitations we run into and what future improvements we plan on doing in the kernel.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5245">Christian Brauner</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10542.php">Submit feedback</link>
</links>
<date>2020-02-01T13:20:00+01:00</date>
</event>
<event id="10149">
<start>13:45</start>
<duration>00:20</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_k8s_runtimes</slug>
<title>Below Kubernetes: Demystifying container runtimes</title>
<subtitle/>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Today, the task of running containers involves a lot of technologies and levels of abstraction, and it can be difficult to understand, or just to keep up. How do CRI-O and containerd overlap ? Does Kata containers compete with Firecracker ? Is there any relationship between OCI and CRI ? How many different meanings can &quot;container runtime&quot; have ?&lt;/p&gt;
&lt;p&gt;In this talk, we will navigate this treacherous sea of overlapping technologies and acronyms that take care of running container workloads, below Kubernetes all the way down to the Linux kernel. We will present at a high-level how these technologies, interfaces and levels of abstraction combine and overlap, and hopefully clarify which are spec vs. implementation, which are complementary, and which are alternative solutions.&lt;/p&gt;</abstract>
<description>&lt;p&gt;This talk will cover the following points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The world used to be simple: the case of Docker&lt;/li&gt;
&lt;li&gt;Interfaces: OCI and CRI&lt;/li&gt;
&lt;li&gt;More puzzle pieces: Podman, Containerd and CRI-O&lt;/li&gt;
&lt;li&gt;Workload isolation: Kata Containers, GVisor and Firecracker&lt;/li&gt;
&lt;li&gt;Q&amp;amp;A&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="427">Thierry Carrez</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10149.php">Submit feedback</link>
</links>
<date>2020-02-01T13:45:00+01:00</date>
</event>
<event id="9662">
<start>14:10</start>
<duration>00:30</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_memory_management</slug>
<title>Linux memory management at scale</title>
<subtitle>Building the future of kernel resource management</subtitle>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Memory management is an extraordinarily complex and widely misunderstood topic. It is also one of the most fundamental concepts to understand in order to produce coherent, stable, and efficient systems and containers, especially at scale. In this talk, we will go over how to compose reliable memory heavy, multi container systems that can withstand production incidents, and go over examples of how Facebook is achieving this in production at the cutting edge. We'll also go over the open-source technologies we're building to make this work at scale in a density that has never been achieved before.&lt;/p&gt;
&lt;p&gt;We will go over widely-misunderstood Linux memory management concepts which are important to site reliability and container management with an engineer who works on the Linux kernel's memory subsystem, busting commonly held misconceptions about things like swap and memory constraints, and giving advice on key and bleeding-edge kernel concepts like PSI, cgroup v2, memory protection, and other important container-related topics along the way.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3621">Chris Down</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9662.php">Submit feedback</link>
</links>
<date>2020-02-01T14:10:00+01:00</date>
</event>
<event id="10578">
<start>14:45</start>
<duration>00:20</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_lxd</slug>
<title>Running full Linux systems in containers, at scale</title>
<subtitle>A look at LXD and its clustering capabilities</subtitle>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;LXD is a system container manager, its goal is to safely run full Linux systems at very high density and low overhead.
Containers may be created from pre-made images, covering most Linux distributions, or by importing an existing virtual machine or physical system.&lt;/p&gt;
&lt;p&gt;Advanced resource control and device passthrough is available to expose as much or as little system resources to those containers.
Snapshot and backup tooling is available to safeguard those containers and data.
Storage pools and networks can be used to offer a variety of storage and network options to the containers.&lt;/p&gt;
&lt;p&gt;Management happens through a REST API with a default CLI client.
LXD has built-in support for clustering which makes it trivial to scale a deployment to dozens of servers, all acting as one virtual LXD server.&lt;/p&gt;
&lt;p&gt;In this presentation, we'll go over LXD's main features through a demonstration including usage of LXD's clustering abilities, running a variety of Linux distributions and converting existing systems to containers.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3310">Stéphane Graber</person>
</persons>
<links>
<link href="https://linuxcontainers.org/lxd">LXD - system container manager</link>
<link href="https://submission.fosdem.org/feedback/10578.php">Submit feedback</link>
</links>
<date>2020-02-01T14:45:00+01:00</date>
</event>
<event id="10424">
<start>15:10</start>
<duration>00:30</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_k8s_security</slug>
<title>How (Not) To Containerise Securely</title>
<subtitle>Lessons Learned the Hard Way</subtitle>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This talk details low level exploitable issues with container and Kubernetes deployments. We focus on lessons learned, and show attendees how to ensure that they do not fall victim to avoidable attacks.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Andy has made mistakes. He's seen even more. And in this talk he details the best and the worst of the container and Kubernetes security problems he's experienced, exploited, and remediated.&lt;/p&gt;
&lt;p&gt;See how to bypass security controls, exploit insecure defaults, evade detection, and root clusters externally (and more!) in this interactive and highly technical appraisal of the container and cluster security landscape.&lt;/p&gt;</description>
<persons>
<person id="5693">Andrew Martin</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10424.php">Submit feedback</link>
</links>
<date>2020-02-01T15:10:00+01:00</date>
</event>
<event id="10138">
<start>15:45</start>
<duration>00:30</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_k8s_crio_lxc</slug>
<title>Using crio-lxc with Kubernetes</title>
<subtitle/>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Running application containers within Kubernetes presents a challenge to the operator for quickly handling security updates - every container must be patched, rebuilt and re-tested, and then updated separately. The slowest dev turnaround of all your containers is the fastest you can fully update your cluster.&lt;/p&gt;
&lt;p&gt;However, for many fixes, the application likely will not care which compatible version of a system library it is using.
Using AtomFS, operators can update individual libraries inside app containers without a rebuild. Containers using an AtomFS storage backend can simply be restarted after a fix is applied, and they will see it reflected in their filesystems.&lt;/p&gt;
&lt;p&gt;The AtomFS storage backend requires minor changes to your container runtime, and we demonstrate it with the LXC runtime and crio-lxc, an adapter to enable using LXC-based containers in Kubernetes using CRI-O.&lt;/p&gt;
&lt;p&gt;In this talk Tycho will cover how AtomFS works, what changes are needed to make application container builds work with AtomFS, and fix an exploit live without a rebuild.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3187">Tycho Andersen</person>
<person id="7371">Mike McCracken</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10138.php">Submit feedback</link>
</links>
<date>2020-02-01T15:45:00+01:00</date>
</event>
<event id="10338">
<start>16:20</start>
<duration>00:20</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_steam</slug>
<title>Containers and Steam</title>
<subtitle>Putting games under pressure</subtitle>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The availability of namespaces inside user sessions is increasing, and Valve's Steam game distribution platform is taking advantage of this for better gaming on Linux.&lt;/p&gt;
&lt;p&gt;A recent beta of Steam for Linux adds pressure-vessel, an experimental mechanism developed by Collabora to put games in containers. This gives the game partial isolation from various aspects of the host system, and in particular allows it to use a runtime library stack that is not entangled with the host's, with different games using different runtimes.&lt;/p&gt;
&lt;p&gt;Meanwhile, the unofficial Steam Flatpak app distributed on Flathub puts the entire Steam client and all of its games in a container. This gives the Steam client more thorough isolation from the host system, but all the games have to share that single container.&lt;/p&gt;
&lt;p&gt;In this talk, pressure-vessel developer and Flatpak contributor Simon McVittie will compare the two approaches and the challenges they encounter, and look at where Steam containers might go in the future.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5205">Simon McVittie</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10338.php">Submit feedback</link>
</links>
<date>2020-02-01T16:20:00+01:00</date>
</event>
<event id="10187">
<start>16:45</start>
<duration>00:30</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_hpc_unprivileged</slug>
<title>Distributed HPC Applications with Unprivileged Containers</title>
<subtitle/>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;We will present the challenges in doing distributed deep learning training at scale on shared heterogeneous infrastructure. At NVIDIA, we use containers extensively in our GPU clusters for both HPC and deep learning applications. We love containers for how they simplify software packaging and enable reproducibility without sacrificing performance. Docker is a popular tool for running application containers on Linux, and while it is possible to enable container workflows for users by granting them access to the docker daemon, the security impact needs to be carefully considered, especially in a shared environment. Relying on docker for the container runtime also requires a large amount of complicated boilerplate code to start multi-node jobs using the Message Passing Interface (MPI) for communication. In this presentation, we will introduce a new lightweight container runtime inspired from LXC and an associated plugin for the Slurm Workload Manager. Together, these two open-source projects enable a more secure architecture for our clusters, while also enabling a smoother user experience with containers on multi-node clusters.&lt;/p&gt;</abstract>
<description>&lt;p&gt;There are many container runtimes available, but none met all of our needs for running distributed applications with no performance overhead and no privileged helper tools. For our use case, we built a simple container runtime called enroot - it's a tool to turn traditional container images into lightweight unprivileged sandboxes; a modern chroot. One key feature is that enroot remaps all UIDs inside the container to a single UID on the host. So, unlike runtimes which rely on &lt;code&gt;/etc/subuid&lt;/code&gt; and &lt;code&gt;/etc/subgid&lt;/code&gt;, with enroot there is no risk of overlapping UID ranges on a node, and no need to synchronize ranges across the cluster. It is also trivial to remap to UID 0 inside the container which enables users to safely run &lt;code&gt;apt-get install&lt;/code&gt; to add their own packages. Enroot is also configured to automatically mount drivers and devices for accelerators from NVIDIA and Mellanox using enroot's flexible plugin system. Finally, enroot is highly optimized to download and unpack large docker images, which is particularly useful for images containing large applications.&lt;/p&gt;
&lt;p&gt;We also created a new plugin for the Slurm Workload manager which adds command-line flags for job submission. When the “--container-image” flag is set, our plugin imports a container image, unpacks it on the local filesystem, creates namespaces for the container, and then attaches the current job to these new namespaces. Therefore, tasks transparently land inside of the container with minimal friction. Users can even make use of the PMI2 or PMIx APIs to coordinate workloads inside the containers without needing to invoke mpirun, further streamlining the user experience. Currently, the plugin works with two different tools - enroot and LXC. It could be extended to other container runtimes in the future.&lt;/p&gt;</description>
<persons>
<person id="7007">Felix Abecassis</person>
<person id="7287">Jonathan Calmels</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10187.php">Submit feedback</link>
</links>
<date>2020-02-01T16:45:00+01:00</date>
</event>
<event id="9091">
<start>17:20</start>
<duration>00:20</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_k8s_arm64</slug>
<title>Kubernetes on ARM64</title>
<subtitle>Raspberry PI 4 Kubernetes cloud for a few Euros!!</subtitle>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Building a Kubernetes cloud using Raspberry PI 4.
The RPI4/4G offers enough memory and cpu to build an educative Kubernetes cluster.
The presentation will show how to put the pieces togother to get an Apache Tomcat
operator to deploy a small web application in the build RPI4 Kubernetes cloud.&lt;/p&gt;</abstract>
<description>&lt;p&gt;We will show:
- how to build a kernel for RPI4, use it to make a bootable SD card for a RPI4.
- how to configure it to use the WIFI board
- how to prepare Docker images for ARM64
- how to join the Kubernetes master
- how to use weave plugin to get the Kernetes internal network
- how to build and install the operator for Apache Tomcat.
- then run a small webapp using the operator.&lt;/p&gt;</description>
<persons>
<person id="6475">Jean-Frederic Clere</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9091.php">Submit feedback</link>
</links>
<date>2020-02-01T17:20:00+01:00</date>
</event>
<event id="10400">
<start>17:45</start>
<duration>00:20</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_bpf_tracing</slug>
<title>Inspektor Gadget and traceloop</title>
<subtitle>Tracing containers syscalls using BPF</subtitle>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;I will present Inspektor Gadget and traceloop, a tracing tool to trace system calls in cgroups or in containers using BPF and overwritable ring buffers.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Many people use the “strace” tool to synchronously trace system calls using ptrace. Traceloop similarly traces system calls but asynchronously in the background, using BPF and tracing per cgroup. I’ll show how it can be integrated with systemd and with Kubernetes via Inspektor Gadget.&lt;/p&gt;
&lt;p&gt;Traceloop's traces are recorded in a fast, in-memory, overwritable ring buffer like a flight recorder. As opposed to “strace”, the tracing could be permanently enabled on systemd services or Kubernetes pods and inspected in case of a crash. This is like a always-on “strace in the past”.&lt;/p&gt;
&lt;p&gt;Traceloop uses BPF through the gobpf library. Several new features have been added in gobpf for the needs of traceloop: support for overwritable ring buffers and swapping buffers when the userspace utility dumps the buffer.&lt;/p&gt;</description>
<persons>
<person id="3478">Alban Crequy</person>
</persons>
<links>
<link href="https://github.com/kinvolk/inspektor-gadget">Inspektor Gadget</link>
<link href="https://github.com/kinvolk/traceloop">traceloop</link>
<link href="https://submission.fosdem.org/feedback/10400.php">Submit feedback</link>
</links>
<date>2020-02-01T17:45:00+01:00</date>
</event>
<event id="10222">
<start>18:10</start>
<duration>00:20</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_containerd</slug>
<title>Extending and embedding: containerd project use cases</title>
<subtitle>A 2020 containerd project update and description of uses</subtitle>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Over the past year, projects looking to extend and embed core container runtime functionality have looked to containerd and its clean API and extension points as a valuable resource. In this talk we'll look at the projects which have extended or embedded containerd for specific use cases and how containerd has enabled these uses via its design. We will also do a brief project update for the broader container ecosystem and community.&lt;/p&gt;</abstract>
<description>&lt;p&gt;As containerd reaches its fourth birthday, it has already been adopted as a container runtime underneath Kubernetes in public cloud providers and various developer tools and platforms. In this talk we'll look deeper at the architecture choices and clean API layer which has enabled further use of containerd as an embedded and extensible runtime in additional projects, like Amazon's Firecracker integration, Kata's use of the v2 shim API, and Microsoft Azure's creation of the Teleport registry feature. We'll also look at in-flight work with CERN, Google, and others around remote &quot;pre-seeded&quot; snapshotters which allow for significant speedups in container startup time with special-case clusters like CERN's compute cloud.&lt;/p&gt;</description>
<persons>
<person id="4780">Phil Estes</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10222.php">Submit feedback</link>
</links>
<date>2020-02-01T18:10:00+01:00</date>
</event>
<event id="9386">
<start>18:35</start>
<duration>00:25</duration>
<room>UD2.208 (Decroly)</room>
<slug>containers_gpu_virtualization</slug>
<title>A way of GPU virtualization for container</title>
<subtitle/>
<track>Containers</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Containers are widely used in clouds due to their lightweight and scalability. GPUs have powerful parallel processing capabilities that are adopted to accelerate the execution of applications. In a cloud environment, containers may require one or more GPUs to fulfill the resource requirement of application execution, while on the other hand exclusive GPU resource of a container usually results in underutilized resource. Therefore, how to share GPUs among containers becomes an attractive problem to cloud providers. In this presentation, we propose an approach, called vCUDA, to sharing GPU memory and computing resources among containers. vCUDA partitions physical GPUs into multiple virtual GPUs and assigns the virtual GPUs to containers as request. Elastic resource allocation and dynamic resource allocation are adopted to improve resource utilization. The experimental results show that vCUDA only causes 1.015% of overhead by average and it effectively allocates and isolates GPU resources among containers.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6689">Shengbo Song</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9386.php">Submit feedback</link>
</links>
<date>2020-02-01T18:35:00+01:00</date>
</event>
</room>
<room name="UD2.218A">
<event id="10204">
<start>10:30</start>
<duration>00:25</duration>
<room>UD2.218A</room>
<slug>ema_integrating_julius</slug>
<title>Integrating Julius Speech Recognition Engine</title>
<subtitle/>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;This presentation deals with the integration of Julius Speech Recognition Engine.&lt;/p&gt;
&lt;p&gt;The aim of this Proof of Concept is to have a connectionless speech engine, working on an embedded device,
integrated as a binding of the AGL Application Framework.
The recognition uses Deep Neural Network realtime decoding, and for safer results and performances purpose,
uses a grammar.&lt;/p&gt;
&lt;p&gt;Julius does not support wakewords out of the box, some hacking has been done to enable it in an efficient way.
Tests have been done on Renesas' H3, and UPSquare boards.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7012">Thierry Bultel</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10204.php">Submit feedback</link>
</links>
<date>2020-02-01T10:30:00+01:00</date>
</event>
<event id="10590">
<start>11:00</start>
<duration>00:25</duration>
<room>UD2.218A</room>
<slug>ema_homebridge_with_yocto</slug>
<title>Building Homebridge with the Yocto Project</title>
<subtitle/>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Homebridge is a lightweight NodeJS server that emulates Apple HomeKit API. Combined with versatile plugins it allows you to make any device Homekit-compatible.
In the presentation you will understand how Homebridge works and how to integrated it in a custom embedded Linux distribution built with the Yocto Project and OpenEmbedded. We will go through the exact steps for leveraging the latest release of Poky, the reference system of the Yocto Project, with systemd, X11, openbox, surf web browser, nodejs, npm, Homebridge and some of its most popular plugins. Only open source software will be used, without any commercial licenses.
Practical examples for home automation with Homebridge on Raspberry Pi and the new STM32MP1 development boards will be demonstrated. The end result is an embedded device mounted in rack with a DIN rail that provides simple and user-friendly way to manage and configure Homebridge out of the box. The talk is appropriate for beginners.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Homebridge is a lightweight NodeJS server that you can run on your home network and emulate Apple HomeKit API. Started more than 5 years ago and available at GitHub under Apache License 2.0, Homebridge has a large and vibrant open source community.
Multiple plugins allow Homebridge to handle user's requests either via Siri or the Home app and this way to make any device Homekit-compatible. Raspberry Pi is the perfect platforms for hobbyists to install a local Homebridge instance. However, the installation of Homebridge on Raspbian requires numerous steps and despite the excellent tutorials, users without previous Linux experience face difficulties. Another disadvantage is that Raspbian is available only as 32-bit images which doesn’t use the full capabilities of the ARMv8 64-bit processors on Raspberry Pi 3 and 4.
The Yocto Project and OpenEmbedded provide all required tools to create a custom Linux distribution that out of the box offers user-friendly experience for configuring Homebridge in just a few easy steps. In the this presentation we do a code review of meta-homebridge Yocto/OE layer and we will walk through the exact steps for creating a lightweight Linux distribution with graphical user interface and a web browser that acts like a kiosk. We will integrated and configure popular open source software tools such as the Linux kernel, systemd, X11, openbox, surf web browser, nodejs, npm and of course Homebridge. Thanks to the meta-raspberrypi BSP Yocto/OE layer we will be able to unleash the full power of Raspberry Pi 3 and 4 by building 64-bit images.
At the end of the presentation demonstrations and tips for making an embedded device mounted in rack with a DIN rail will be shared. We will also mention the new STM32MP1 industrial grade development boards as alternatives of Raspberry Pi for this and similar projects in the maker community.
This talk brings benefits to the ecosystems of several open source communities. It will spread the word about Homebridge and significantly improve the getting started experience for user. Practical examples for using the Yocto Project and OpenEmbedded for makers will be revealed. As part of the development efforts for meta-homebridge Yocto/OE, a couple of new recipes, surf (simple web browser) and stalonetray (X11 system tray), have been contributed to the upstream of meta-openembedded.
The talk is appropriate for beginners. No previous experience is required. Hopefully, this presentation will encourage the audience to try out Homebridge and leverage their knowledge about the Yocto Project and OpenEmbedded with the example of this real-world entirely open source project.&lt;/p&gt;</description>
<persons>
<person id="1603">Leon Anavi</person>
</persons>
<links>
<link href="https://github.com/leon-anavi/meta-homebridge">meta-homebridge Yocto/OE layer</link>
<link href="https://homebridge.io/">Homebridge</link>
<link href="https://submission.fosdem.org/feedback/10590.php">Submit feedback</link>
</links>
<date>2020-02-01T11:00:00+01:00</date>
</event>
<event id="10614">
<start>11:30</start>
<duration>00:25</duration>
<room>UD2.218A</room>
<slug>ema_embedded_voip</slug>
<title>Building an embedded VoIP network for video intercom systems</title>
<subtitle>How to leverage open standards to bring voice and video capabilities to IP hardware intercom solutions</subtitle>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;IP video intercom systems combined with smartphones can leverage regular RTP/SIP VoIP technology to offer a new set of services to end-users: getting a notification when visitors press the door bell, seeing them on video before answering the call, interacting with them via voice and video and deciding to open the door, at home or anywhere else via wifi or 3G coverage.&lt;/p&gt;
&lt;p&gt;Linphone (a SIP user-agent) and Flexisip (a SIP proxy server) can be integrated into IP video door phones, in-house panels and video surveillance devices to build a complete VoIP network.&lt;/p&gt;
&lt;p&gt;Linphone and Flexisip use open standards to reliably send the audio and video streams captured from IP video intercoms to in-house devices, including smartphones and tablets, connected either to a local network or to the public internet.
These open source SIP-based software solutions can run perfectly on small hardware devices with reduced footprint, and can easily be integrated into GNU/Linux embedded systems, thanks to their Yocto packages.&lt;/p&gt;
&lt;p&gt;This lecture will describe how Linphone and Flexisip can be used together to build an embedded SIP network dedicated to home automation or video surveillance.
The network architecture used in these contexts can also be deployed in other areas, such as the emergency services or the Internet of Things.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Linphone and Flexisip can be integrated into IP video intercom systems to make the audio and video capabilities of a door entry panel accessible by in-house control screens and smartphones, connected either to a local network or to the public internet.&lt;/p&gt;
&lt;p&gt;Indeed, the linphone software fits well in embedded systems, which makes it a good candidate for being used in home automation devices, such as outdoor panels or indoor monitors, where video is to be capture or displayed.
However a SIP user-agent itself is not sufficient for setting up a fully functional SIP network: we propose the use of Flexisip, which is also able to run with reduced footprint on embedded devices as well as on a large scale cloud deployment, to fork incoming calls to in-house monitoring panels, smartphones or tablets.&lt;/p&gt;
&lt;p&gt;When used together, Linphone and Flexisip offer advanced features for IP door phones and video monitoring systems, such as :
- HD video and HD voice (with support for H.264 and H.265 hardware accelerated codecs, and Opus codec)
- Call forking with early media video
- ICE, STUN and TURN support for optimised NAT traversal allowing peer-to-peer audio and video connections whenever possible
- secure user authentication with TLS client certificates
- Interconnection with push notifications systems, for reliably notifying of people ringing the door&lt;/p&gt;</description>
<persons>
<person id="5169">Elisa Nectoux</person>
</persons>
<links>
<link href="https://www.linphone.org/solutions">Linphone and Flexisip standard deployment</link>
<link href="http://gitlab.linphone.org/BC/public/linphone">liblinphone gitlab repository</link>
<link href="https://gitlab.linphone.org/BC/public/flexisip">flexisip gitlab repository</link>
<link href="https://submission.fosdem.org/feedback/10614.php">Submit feedback</link>
</links>
<date>2020-02-01T11:30:00+01:00</date>
</event>
<event id="10596">
<start>12:00</start>
<duration>00:25</duration>
<room>UD2.218A</room>
<slug>ema_ros2_evolution</slug>
<title>ROS2: The evolution of Robot Operative System</title>
<subtitle/>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In FOSDEM 2013, Open Robotics introduced an overview of the Robot Operating System (ROS), an open software integration framework for robots created in 2007. After more than a decade of great success, powering from Robocup teams to NASA robots in space, ROS2 was born to break any limitation detected previously by roboticians all around the globe. It's an exciting time.&lt;/p&gt;
&lt;p&gt;This talk will explain the design changes and technical motivations that lead to the creation of ROS2 giving a quick overview of new features present on it: multi-platform, embedded devices, real time, etc.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="3281">Jose Luis Rivero</person>
</persons>
<links>
<link href="https://archive.fosdem.org/2013/schedule/event/ros_open_sourcet_sobotics/">ROS at FOSDEM</link>
<link href="https://design.ros2.org/articles/why_ros2.html">why ros2</link>
<link href="http://design.ros2.org/articles/realtime_background.html">realtime ros2</link>
<link href="https://www.omg.org/omg-dds-portal/">DDS standard</link>
<link href="https://vimeo.com/187696091">State of ROS2</link>
<link href="https://vimeo.com/236161417 ">Vision of ROS2 </link>
<link href="https://submission.fosdem.org/feedback/10596.php">Submit feedback</link>
</links>
<date>2020-02-01T12:00:00+01:00</date>
</event>
<event id="9459">
<start>12:30</start>
<duration>00:25</duration>
<room>UD2.218A</room>
<slug>ema_iceoryx</slug>
<title>Introduction to Eclipse iceoryx</title>
<subtitle>Writing a safe IPC framework for autonomous robots and cars</subtitle>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Bosch has open sourced a true zero-copy middleware for inter-process communication
on modern robotics and vehicle computers. The shared memory based
solution is compatible with Linux/QNX and achieves data independent communication
in constant time without serializing data. We would like to present our
recent development towards an open-source release and demonstrate our performance
and timing benchmarks on a privately developed embedded robot.&lt;/p&gt;</abstract>
<description>&lt;p&gt;On FOSDEM 2018 Bosch presented OpenADx, an initiative to collaborate and accelerate
the development of automated driving with the open source community.
On FOSDEM 2020 we would like to present the first project under the OpenADx
umbrella called Eclipse iceoryx TM.
Over the course of its company history, Bosch could establish a solid understanding
of the needs and requirements of the automotive domain in terms of liability,
reliability, safety and determinism. In a time where highly automated driving hits
the road, these aspects become more and more important. An automated driving
kit is a networked system that processes a sensor data stream in the range
of GBytes/s. This naturally arises the need of an efficient and lightweight data
transfer mechanism. Our group at Bosch has its main focus on tackling exactly
this challenge. In order to approach the problem of distributing the high frequency,
high throughput data streams on fusion and planning computers, we’ve developed
a solution which can guarantee a time constant communication channel independently
of the size of data to be transported. Our approach is based on shared
memory which allows for transparently connecting the same range of memory
between multiple processes and thus enables a true zero-copy communication.
Given the nature of shared memory, an efficient data transport can thus be realized
solely by passing pointers to memory addresses from publishers to subscribers.
iceoryx is fully compatible with the ROS2 and Adaptive AUTOSAR APIs
and can be used as an implementation for both.&lt;/p&gt;</description>
<persons>
<person id="6620">Simon Hoinkis</person>
</persons>
<links>
<link href="https://archive.fosdem.org/2018/schedule/event/automated_driving/">2018 FOSDEM OpenADx talk</link>
<link href="https://github.com/eclipse/iceoryx">Eclipse iceoryx at Github</link>
<link href="https://github.com/ros2/rmw_iceoryx">ROS2 RMW binding</link>
<link href="https://projects.eclipse.org/projects/technology.iceoryx">Eclipse iceoryx project page</link>
<link href="https://github.com/eclipse/iceoryx/wiki/Eclipse-iceoryx%E2%84%A2-in-1000-words">Eclipse iceoryx in 1000 words</link>
<link href="https://submission.fosdem.org/feedback/9459.php">Submit feedback</link>
</links>
<date>2020-02-01T12:30:00+01:00</date>
</event>
<event id="10537">
<start>13:00</start>
<duration>00:25</duration>
<room>UD2.218A</room>
<slug>ema_low_cost_test_fixture</slug>
<title>Building a low-cost test fixture</title>
<subtitle/>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;When printed circuit boards come out of the assembly line, a test fixture is required to perform functional testing and program the firmware.
These fixtures, called bed of nails, are sturdy setups usually built for high volume production, and can be quite costly.
The goal of this talk is to describe how you can build your own low cost fixture with basic PCB design skills and off the shelves components.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Functional testing of printed circuit boards (PCB) is typically done with a bed of nails fixture. The fixture holds the PCB in place over spring-loaded probes that make contact with the board’s test points.
The probes can be connected to an acquisition system that runs functional tests and to a programmer that flashes production firmware.
The Internet has tutorials and DIY kits suitable for PCBs with large test points (on a 2.54 mm grid). However as PCBs get smaller and more crowded, test points have to be smaller and closer to each other.
The goal of this talk is to describe how to build a test fixture with tighter requirements (test points with 0.6 mm diameter and 1.27 mm spacing) on a tight budget.&lt;/p&gt;
&lt;p&gt;Main talking points:
- Making a PCB (with Kicad) to hold the probes in place and align the device under test (DUT),
- Using a Raspberry Pi Zero to instrument the setup and communicate with the DUT,
- Running OpenOCD on the Raspberry Pi Zero to flash the production firmware.&lt;/p&gt;</description>
<persons>
<person id="7291">Guillaume Vier</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/10537.php">Submit feedback</link>
</links>
<date>2020-02-01T13:00:00+01:00</date>
</event>
<event id="9398">
<start>13:30</start>
<duration>00:25</duration>
<room>UD2.218A</room>
<slug>ema_secure_elements</slug>
<title>How to integrate secure elements</title>
<subtitle>A visually annotated summary of Opensource compatible secure elements with instructions to integrate</subtitle>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;In this half hour we study aspects of physically and cryptographically secure hardware (often termed secure element or SE) and the integration into existing circuits. We illustrate utility of such integration by inspecting a cryptocurrency wallet design, and explain the difficulty presented by nondisclosure agreements (NDA) common to industry closed adversaries. We examine several hardware devices, study their parts under a close range circuit camera, and suggest instructions on their use.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Building secure applications involves research of new technology while leveraging well known practices, for example when using ECDSA to secure systems with low power devices.&lt;/p&gt;
&lt;p&gt;In this half hour lecture, we study an in depth example of using cryptoaccelerated hardware to research such secure applications.&lt;/p&gt;
&lt;p&gt;We review common cryptography practices.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Applied security paradigms&lt;/li&gt;
&lt;li&gt;Asymetric public key exchange&lt;/li&gt;
&lt;li&gt;Encryption and signing algorithms&lt;/li&gt;
&lt;li&gt;Challenges of low power computing&lt;/li&gt;
&lt;li&gt;Noncomputational security features
...for example mechanical UI constructs&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We proposes new hardware supported techniques.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open FPGA platforms&lt;/li&gt;
&lt;li&gt;NDA unencumbered SE&lt;/li&gt;
&lt;li&gt;Circumventing black boxes&lt;/li&gt;
&lt;li&gt;Benchmark measurements&lt;/li&gt;
&lt;li&gt;Hardened serial interfaces&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We end by viewing a number of real device hardware circuits under a close range microscope, and possibly offer a device petting zoo to encourage exploration of hardware.&lt;/p&gt;</description>
<persons>
<person id="2380">Michael Schloh von Bennewitz</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9398.php">Submit feedback</link>
</links>
<date>2020-02-01T13:30:00+01:00</date>
</event>
<event id="9577">
<start>14:00</start>
<duration>00:50</duration>
<room>UD2.218A</room>
<slug>ema_early_boot</slug>
<title>Embedded systems, the road to Linux</title>
<subtitle>Early boot, comparing and explaining different systems.</subtitle>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;As soon as you are on Linux you are generally confident with the embedded system, whatever it is.
But often the boot process may hide some misteries, and understanding the details may help to recover a
bricked board or to upgrade or replace a bootloader. The explained path would start from comparing some different
SoC's, passing from the ROM boot loader, static RAM, sdram init, secondary bootloader, and so on,
until the last &quot;jump&quot; to Linux. Most common non volatile boot devices would be introduced. A basic
knowledge would be ok for the audience.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6310">Angelo Dureghello</person>
</persons>
<links>
<link href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&amp;q=dureghello">kernel contrib</link>
<link href="https://gitlab.com/u-boot/u-boot/commits/master?utf8=%E2%9C%93&amp;search=dureghello">u-boot contrib</link>
<link href="http://sysam.it/cff_stmark2.html">hardware designed</link>
<link href="http://sysam.it/cff_amcore.html">hardware designed</link>
<link href="https://submission.fosdem.org/feedback/9577.php">Submit feedback</link>
</links>
<date>2020-02-01T14:00:00+01:00</date>
</event>
<event id="9688">
<start>15:00</start>
<duration>00:25</duration>
<room>UD2.218A</room>
<slug>ema_boot_linux_only</slug>
<title>boot/loader — How to boot Linux and nothing else</title>
<subtitle/>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;To boot Linux on a new ARM/ARM64 platform we have to port Linux to that platform and a bootloader. Aside from the platform setup code, we need to add and maintain some device drivers to both Linux and the bootloader. We decided to avoid the extra effort and get rid of the dedicated bootloader. With a few dozen lines of assembly code, Linux Kernel and a pinch of userland tools the &quot;boot&quot; kernel was running with all the cool features we wanted! Then we used kexec(2) to start a &quot;full&quot; Linux kernel.&lt;/p&gt;</abstract>
<description>&lt;h1&gt;How to boot Linux and nothing else&lt;/h1&gt;
&lt;p&gt;To boot Linux on a new ARM/ARM64 platform we have to port Linux to that platform and a bootloader. Aside from the platform setup code, we need to add at least some platform specific device drivers both Linux and the bootloader and maintain the drivers in both trees. We decided to avoid the extra effort and get rid of the dedicated bootloader.&lt;/p&gt;
&lt;p&gt;We took a widely available Odroid XU4 board and replaced bootloader (U-Boot) with a few dozen lines of assembly code, Linux Kernel and a pinch of userland tools. The &quot;boot&quot; kernel was running with all the cool features we wanted! Then we used kexec(2) to start a &quot;full&quot; Linux kernel.&lt;/p&gt;
&lt;p&gt;Dedicated bootloaders perform two types of tasks: platform specific setup and management (starting an OS, managing OS updates). We show that Linux is a better environment to implement management proccedures.&lt;/p&gt;
&lt;p&gt;We want to share our experience and encourage others to join our effort to use Linux Kernel as a bootloader on ARM/ARM64 platforms.&lt;/p&gt;
&lt;h1&gt;Target audience&lt;/h1&gt;
&lt;p&gt;The presentation is meant for everyone interested in how the Linux Kernel handles the boot process and especially developers who commit to arch/* directories, and bootloader developers. We present our experience with ARM Odroid XU4 board, but we expect people working on other platforms will benefit too.&lt;/p&gt;
&lt;h1&gt;How we want to improve the ecosystem&lt;/h1&gt;
&lt;p&gt;Development of new bootloading code for ARM and other embedded platforms. We believe using Linux kernel for this task is beneficial in three different ways. Less platform specific code needs to be created and maintained in different repositories. General purpose code like filesystem drivers or network stack are maintained better in Linux than in U-Boot. This, as well as wide verity of libraries makes Linux better environment to develop advanced management functions (e.g OS updates, security checks etc.) in contemporary bootloader.&lt;/p&gt;</description>
<persons>
<person id="6761">Łukasz Stelmach</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9688.php">Submit feedback</link>
</links>
<date>2020-02-01T15:00:00+01:00</date>
</event>
<event id="10616">
<start>15:30</start>
<duration>00:25</duration>
<room>UD2.218A</room>
<slug>ema_pipewire</slug>
<title>PipeWire in the Automotive Industry</title>
<subtitle/>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;PipeWire has recently been adopted by Automotive Grade Linux for its implementation of the low-level platform audio service, replacing entirely previous solutions. Getting there had, of course, many challenges. In this talk, George is going to talk about how PipeWire has managed to overcome these challenges and has evolved to support automotive use cases and hardware through the design and implementation of a new, reusable, session &amp;amp; policy management component, WirePlumber.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4105">George Kiagiadakis</person>
</persons>
<links>
<link href="https://gstreamer.freedesktop.org/conference/2019/talks-and-speakers.html#pipewire-automotive-industry">Previous talk at the GStreamer Conference 2019</link>
<link href="https://gstconf.ubicast.tv/videos/pipewire-in-the-automotive-industry/">Previous talk at the GStreamer Conference 2019 (video)</link>
<link href="https://ossalsjp19.sched.com/event/OT1B/pipewire-in-the-heart-of-future-car-multimedia-george-kiagiadakis-collabora">Previous talk at the Automotive Linux Summit 2019</link>
<link href="https://gitlab.freedesktop.org/pipewire/wireplumber">WirePlumber project</link>
<link href="https://gitlab.collabora.com/gkiagia/pipewire-agl-presentations">All my previous presentations on this topic</link>
<link href="https://submission.fosdem.org/feedback/10616.php">Submit feedback</link>
</links>
<date>2020-02-01T15:30:00+01:00</date>
</event>
<event id="10498">
<start>16:00</start>
<duration>00:25</duration>
<room>UD2.218A</room>
<slug>ema_wpe</slug>
<title>WPE, The WebKit port for Embedded platforms</title>
<subtitle/>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;WPEWebKit is a WebKit flavour (also known as port) specially crafted for embedded platforms and use-cases. During this talk I would present WPEWebKit's architecture with a special emphasis on its multimedia backend based on GStreamer. I would also demonstrate various use-cases for WPE, spanning from Kiosk apps and Set-top-box user-interfaces to advanced scenarios such as Web overlays for live TV broadcasting.&lt;/p&gt;</abstract>
<description>&lt;p&gt;WPEWebKit is designed for simplicity and performance. It allows application developers to easily deploy hardware-accelerated fullscreen (or not) browsers with multimedia support, small (both in memory usage and disk space) and light as possible, and implementing the most relevant HTML specifications.&lt;/p&gt;
&lt;p&gt;Traditionally WebKit ports are associated with a specific widget toolkit library (GTK, Qt, Cocoa,...) but WPEWebKit breaks with this monolithic design and thus enables a new range of use-cases. By delegating the final web page rendering to dedicated view-backends, WPEWebKit allows flexible and tight integration in a wide range of hardware platforms. We also provide a Qt5 QML plugin that can easily replace the deprecated QtWebKit-based module.&lt;/p&gt;
&lt;p&gt;WPEWebKit leverages GStreamer for its multiple multimedia backends, ensuring your WPEWebKit-based browser supports zero-copy hardware video decoding on the most common embedded platforms such as the Raspberry Pi, i.MX6 and i.MX8M SoCS.&lt;/p&gt;
&lt;p&gt;WPEWebKit can also be used in pure GStreamer applications! Thanks to the GstWPE plugin, web-pages can be &quot;injected&quot; in GStreamer pipelines as audio and video streams. This new plugin thus enables use-cases such has HTML overlays.&lt;/p&gt;
&lt;p&gt;WPEWebKit is an open source project with a growing community, and it is developed within the ecosystem of the WebKit project, which powers many open source and proprietary web browsers.&lt;/p&gt;</description>
<persons>
<person id="6088">Philippe Normand</person>
</persons>
<links>
<link href="http://wpewebkit.org">Main WPEWebKit website</link>
<link href="https://webkit.org/wpe/">Upstream WebKit.org WPE landing page</link>
<link href="https://submission.fosdem.org/feedback/10498.php">Submit feedback</link>
</links>
<date>2020-02-01T16:00:00+01:00</date>
</event>
<event id="9515">
<start>16:30</start>
<duration>00:50</duration>
<room>UD2.218A</room>
<slug>ema_yocto_extra_tools</slug>
<title>How Yocto extra tools help industrial project</title>
<subtitle>Yocto is not (only) bitbake </subtitle>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Yocto is the most famous &quot;build system&quot; for embedded Linux. During this conference we'll study how to use some Yocto features to help the development of a free industrial project. We will study the eSDK (extended cross-toolchain), Ptest and Testimage (CI), Devtool and Devshell (recipe modification). We will also learn how to be in compliance with the GPLv3 / LGPLv3 licenses thanks to the &quot;archiver&quot; class (and more).&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="1663">Pierre Ficheux</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9515.php">Submit feedback</link>
</links>
<date>2020-02-01T16:30:00+01:00</date>
</event>
<event id="10606">
<start>17:30</start>
<duration>00:25</duration>
<room>UD2.218A</room>
<slug>ema_ptxdist</slug>
<title>The State of PTXdist</title>
<subtitle/>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;PTXdist has been around as a build tool for embedded systems for more than 16 years now, but many new features were added in the recent time. Most importantly this includes support for kconfig diffs and layered BSPs, infrastructure for code signing and license compliance, a homepage with online documentation and a cute logo, as well as several small improvements. This talk gives an overview for new and old users over the current feature set and the core concepts behind PTXdist.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="7327">Roland Hieber</person>
</persons>
<links>
<link href="https://ptxdist.org">PTXdist homepage</link>
<link href="https://submission.fosdem.org/feedback/10606.php">Submit feedback</link>
</links>
<date>2020-02-01T17:30:00+01:00</date>
</event>
<event id="10562">
<start>18:00</start>
<duration>00:25</duration>
<room>UD2.218A</room>
<slug>ema_lognplot</slug>
<title>lognplot - logging and plotting data from micro's</title>
<subtitle>Tracing data on a modern laptop</subtitle>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;Embedded systems are hard to debug. Complex systems have a lot of variables.
When debugging those systems, we often log data into some files, and visualize
them later on, using excel, matplotlib or something else.&lt;/p&gt;
&lt;p&gt;This talk is about tracing and logging. What are the options we have as embedded
software developers? I will present the lognplot tool, a project to plot incoming data
on the fly.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Embedded systems are hard to debug. Complex systems have a lot of variables.
When debugging those systems, we often log data into some files, and visualize
them later on, using excel, matplotlib or something else.&lt;/p&gt;
&lt;p&gt;This talk is about tracing and logging. What are the options we have as embedded
software developers? I will present the lognplot tool, a project to plot incoming data
on the fly. There are two implementations, one in python, and one in rust
with gtk-rs. The data is stored internally in a zoomable format, allowing
large sets of data to be browsed easily.&lt;/p&gt;
&lt;p&gt;During the talk you will learn how to draw a chart, and how to aggregate
large sets of data into summaries.&lt;/p&gt;
&lt;p&gt;I will demo a STM32 serial wire viewer output connected to this tool
to enable live tracing of an embedded system.&lt;/p&gt;</description>
<persons>
<person id="5053">Windel Bouwman</person>
</persons>
<links>
<link href="https://github.com/windelbouwman/lognplot">lognplot repository</link>
<link href="https://submission.fosdem.org/feedback/10562.php">Submit feedback</link>
</links>
<date>2020-02-01T18:00:00+01:00</date>
</event>
<event id="9143">
<start>18:30</start>
<duration>00:25</duration>
<room>UD2.218A</room>
<slug>ema_smoke_detector</slug>
<title>U:Kit: Open-source software and hardware smoke detector</title>
<subtitle/>
<track>Embedded, Mobile and Automotive</track>
<type>devroom</type>
<language/>
<abstract>&lt;p&gt;The presenter will show the audience U:Kit ( https://github.com/attachix/ukit).
U:Kit is an open source (software and hardware) smoke and motion detector with the help of open source tools.
U:Kit is easy to assemble, has a plastic case, and can be attached to the ceiling and used with minimum efforts also from non-technical savvy people. But that is just the tip of the iceberg.
The presenter will share with the audience his experience in creating the devices and talk about some of the software and hardware challenges with which he and his team had to solve.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6444">Slavey Karadzhov</person>
</persons>
<links>
<link href="https://github.com/attachix/ukit">U:Kit project on GitHub</link>
<link href="https://submission.fosdem.org/feedback/9143.php">Submit feedback</link>
</links>
<date>2020-02-01T18:30:00+01:00</date>
</event>
</room>
<room name="UD2.Corridor"/>
</day>
<day date="2020-02-02" end="2020-02-02T05:00:00+01:00" index="2" start="2020-02-02T10:00:00+01:00">
<room name="Janson">
<event id="9394">
<start>09:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>osi</slug>
<title>Open Source Under Attack</title>
<subtitle>How we, the OSI and others can defend it</subtitle>
<track>Freedom</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;Whether it is &quot;Open Core&quot;, the Mongo SSPL or the Common Clause, the core ethos of open source has been under attack for some time. As those parties who seek to limit the promise of free software enjoys more and more success, the community will need stronger and more forceful tools to defend ourselves. Presenters: Michael Cheng (Facebook), Max Sills (Google), Chris Aniszczyk (Linux Foundation)&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="4620">Chris Aniszczyk</person>
<person id="5412">Max Sills</person>
<person id="6309">Michael Cheng</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9394.php">Submit feedback</link>
</links>
<date>2020-02-02T09:00:00+01:00</date>
</event>
<event id="9047">
<start>10:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>open_door_closing</slug>
<title>Is the Open door closing?</title>
<subtitle>Past 15 years review and a glimpse into the future.</subtitle>
<track>Freedom</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;&quot;Open Source&quot; has been wildly successful, no doubt.&lt;/p&gt;
&lt;p&gt;Yet, in recent years, we have seen a massive amount of failed 'open' projects.&lt;/p&gt;
&lt;p&gt;Why is that?&lt;/p&gt;
&lt;p&gt;I have identified 10+ scenarios in which the 'Open' approach works. But what is most interesting, is that those scenarios have enabling conditions, and while those conditions are taken for granted, they are not.&lt;/p&gt;
&lt;p&gt;Not every 'Open' project is sustainable. Not every project is worth adopting or contributing to.&lt;/p&gt;
&lt;p&gt;During the presentation, we will look into what works and why, and what to expect from different 'Open' initiatives. We will cover almost everything that can be open - starting from hardware, through software, education, and we will end up covering Open Governments.&lt;/p&gt;
&lt;p&gt;Each sector is different, and for some of them, the 'Open' approach will not work. Come and see what I have found out in this space during my research, and evaluate whether you are working on the right project.&lt;/p&gt;
&lt;p&gt;Because the only resource you will never get back is time.&lt;/p&gt;</abstract>
<description>&lt;p&gt;If you are using or contributing to a software projects, especially on your own, you certainly want to know whether your project has a chance of slipping into oblivion.
Described scenarios will not only help you to answer that question, but will also help you to figure out what is most important for your project, right now.&lt;/p&gt;
&lt;h1&gt;The scenarios that will be covered include:&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Open Hardware - DIY movements, when 'Open' is used quite cunningly to explore possibilities.&lt;/li&gt;
&lt;li&gt;Open Hardware - farming and ecology - a noble idea which is deeply flawed because it does not take into account basic economic rules.&lt;/li&gt;
&lt;li&gt;Open Content - beneficial to many people and organisation, but not necessarily for content creators.&lt;/li&gt;
&lt;li&gt;Open Education - yet another great idea, which has a hidden catch that makes or breaks it, depending on how the idea is executed.&lt;/li&gt;
&lt;li&gt;Open Access &amp;amp; Science - a rebellion against corporations that slow down the growth of humanity.&lt;/li&gt;
&lt;li&gt;Open Collaboration - projects run in this spirit let us advance knowledge and technical capabilities, but they do not promise financial returns.&lt;/li&gt;
&lt;li&gt;Bypass high cost of adoption - the idea that you can use software without going through a 3 months approval process was appealing in 1990. But today... that business model is going away thanks to the security folks.&lt;/li&gt;
&lt;li&gt;Open as a marketing tool - if it has 'Open' in the name, it is not open.&lt;/li&gt;
&lt;li&gt;Open Pet Projects - that deserves only mention, because there are so many such projects, but almost none of them is sustainable.&lt;/li&gt;
&lt;li&gt;Open Legislations and Governments - a futile attempt to increase transparency&lt;/li&gt;
&lt;li&gt;Open Data - very difficult to monetise, increasingly dangerous to consume&lt;/li&gt;
&lt;li&gt;Open Standards - a lot of legal uncertainties&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="4655">Krzysztof Daniel</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9047.php">Submit feedback</link>
</links>
<date>2020-02-02T10:00:00+01:00</date>
</event>
<event id="9367">
<start>11:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>software_freedom</slug>
<title>The core values of software freedom</title>
<subtitle/>
<track>Freedom</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;If you are a Free Software (Open Source Software) developer, do you have to follow an open development model or a certain business model? Do you have to believe in or be a supporter of socialism, capitalism, or liberalism? Do we, when we work for software freedom, have to agree on certain positions on privacy, intelligence services, the military, the climate catastrophe, nuclear power, vaccinations, or animal rights?&lt;/p&gt;
&lt;p&gt;Or should we accept to have different views or even allow each other not to discuss certain views, because what brings us together are other values?&lt;/p&gt;</abstract>
<description>&lt;p&gt;I will argue that the core values of our movement are that everybody, no matter what background, can use the software for every purpose without discrimination. That everybody is allowed to study how software works. That you are always allowed to share your software with others, either to help other human beings or to make money. And that no individual, organisation or government should be forced to change their behaviour because of the software, but according to our principles, adapt and thereby improve the software for themselves and others.&lt;/p&gt;
&lt;p&gt;Furthermore, the talk understands itself as a plea for more respect and diversity in Free Software communities. It will be argued that while sticking to those values we should treat others decently who might have other believes, or another or no opinions at all about a topic we ourselves care about. That we should not try to put an emphasis on our other believes while working together on Free Software/Open Source Software, but instead work together with other groups or movements to bring our other topics forward.&lt;/p&gt;</description>
<persons>
<person id="421">Matthias Kirschner</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9367.php">Submit feedback</link>
</links>
<date>2020-02-02T11:00:00+01:00</date>
</event>
<event id="9355">
<start>12:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>open_infrastructure</slug>
<title>Why open infrastructure matters</title>
<subtitle/>
<track>Freedom</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;A lot of open source developers choose to deploy their software on infrastructure based on proprietary software. Behind this apparent paradox is the need to adapt to changing environments, adopt new technologies fast, and use increasing amounts of computing power. Open infrastructure (computing, networking and storage infrastructure based on open source software) has a lot to offer, but it's easy to overlook if you don't take the time to take a step back and analyze the situation rationally. In this talk, Thierry Carrez, VP of Engineering at the OSF, explains all the reasons why open infrastructure matters, and why it makes sense for you to adopt it today.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Outline of this talk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Infrastructure (what do we mean by infrastructure, and why it matters in the general evolution of computing)&lt;/li&gt;
&lt;li&gt;Open (key benefits of using open source software in general, and openly-developed community-led projects in particular)&lt;/li&gt;
&lt;li&gt;Capabilities, Compliance and Cost (extra benefits of using open source software for providing infrastructure)&lt;/li&gt;
&lt;li&gt;Interoperability (benefits of using the same open source projects across providers)&lt;/li&gt;
&lt;li&gt;Future-proof (open source allows to invest in adaptive communities rather than static products)&lt;/li&gt;
&lt;li&gt;Enabling innovation everywhere (infrastructure should not be only provided by a couple of Internet giants like Amazon and Google)&lt;/li&gt;
&lt;/ul&gt;
</description>
<persons>
<person id="427">Thierry Carrez</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9355.php">Submit feedback</link>
</links>
<date>2020-02-02T12:00:00+01:00</date>
</event>
<event id="9097">
<start>13:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>gpl_and_business</slug>
<title>Why the GPL is great for business</title>
<subtitle>Debunking the current business licensing discussion</subtitle>
<track>Freedom</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;In the past few years we saw a lot of discussions around free software licenses and why they are bad for companies. This talk debunks this claim and shows how free software licenses are actually great for startups if done right.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In the last few years we saw a lot of discussion in the open source and free software startup space around licenses. Several companies stepped forward and claimed that it’s not possible to build a working company on top of a free software product. Some changed the license of their product to proprietary license like the Commons Clause or the Business Source License. They claim that this is needed to ‘save’ free software. This talk describes why this is fundamentally wrong. It’s possible to build a working startup and company on top of a free software product. This talk discusses how companies like Red Hat, SUSE and Nextcloud manages to have a 100% free software product including a big contributor community but is still able to pay developers and grow.&lt;/p&gt;</description>
<persons>
<person id="6495">Frank Karlitschek</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9097.php">Submit feedback</link>
</links>
<date>2020-02-02T13:00:00+01:00</date>
</event>
<event id="9641">
<start>14:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>united_nations</slug>
<title>United Nations Technology and Innovation Labs</title>
<subtitle>Open Source isn't just eating the world, it's changing it</subtitle>
<track>Freedom</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;Amanda is the chair of the United Nations Technology and Innovation Labs' Open source and IP Advisory Board and will give an overview of the work being done by the labs and take the audience through a couple of case studies using data and blockchain for good in an open way.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Amanda will explain the goals and workings of the UNTIL Open Source Advisory Board and the opportunities for further community engagement with the labs, allowing a wider open community to be built supporting the labs through contributions and mentoring and the potential opportunities for Fellowship placings within the labs.
She will also look at the first projects working in the labs, with the Advisory and the open data and blockchain models that they have applied to these, using case studies.&lt;/p&gt;</description>
<persons>
<person id="6847">Amanda Brock</person>
</persons>
<links>
<link href="https://opensource.com/article/19/11/united-nations-goes-open-source">OpenSource.com Blog on the Advisory's work</link>
<link href="https://until.un.org/news/open-source-codes-and-challenge-sdgs-until-interview-amanda-brock">UN interview with Amanda</link>
<link href="https://submission.fosdem.org/feedback/9641.php">Submit feedback</link>
</links>
<date>2020-02-02T14:00:00+01:00</date>
</event>
<event id="9645">
<start>15:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>smartphones</slug>
<title>Regaining control of your smartphone with postmarketOS and Maemo Leste</title>
<subtitle>Status of Linux on the smartphone</subtitle>
<track>Freedom</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;Linux mobile software (and GNU/Linux distributions) are not widely available on smartphones yet. This talk covers why it is desirable to have GNU/Linux (not: Android or Android-based) on the smartphone, what current state of various software attempts at Linux on the smartphone is, the progress they've been making, and will also dive into the available old and new hardware (including the PinePhone and Librem 5) to run the software &amp;amp; distributions on.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Smartphones running regular (F)OSS Linux distributions are not common. We intend to provide an overview of the current Linux FOSS mobile stacks, distributions that package/provide the mobile stacks and to discuss the hardware that one can use to run this software on. We will provide additional details for the postmarketOS distribution and for Maemo Leste (Debian based FOSS mobile software). We also hope to go into some detail about the upcoming PinePhone (https://www.pine64.org/pinephone/)&lt;/p&gt;
&lt;p&gt;postmarketOS is a distribution based on alpine, with a focus on minimalism, security and mobile software. postmarketOS supports many old and new smartphones with varying degrees of support, and also packages/ships with various mobile software suites like Plasma Mobile, Maemo/Hildon, Phosh and more.&lt;/p&gt;
&lt;p&gt;Maemo Leste is based on Maemo Fremantle (from the Nokia N900 days), but completely open source. It's a repository on top of Debian/Devuan that pulls in the entire Maemo/Hildon user interface and suite of applications. Building on top of a proven set of interfaces, Maemo Leste also aims to be mostly compatible with Maemo the way many people might remember it, with a modern twist.&lt;/p&gt;
&lt;p&gt;Pine64 (known for ARM laptops and SBC (Single Board Computers) has decided to get into the mobile business with the Pine Tab and the Pine Phone device. Aiming to deliver developer devices in 2020Q1 and enthusiastic end-user devices in 2020Q2, they've energized software developers writing mobile interfaces for Linux and have been producing a mobile phone at remarkable pace. We will show the Pine64 device and discuss the current state of Linux support on the device.&lt;/p&gt;
&lt;p&gt;We plan to give live demos during the presentation, but will have pre-recorded videos as fallback.&lt;/p&gt;</description>
<persons>
<person id="5564">Merlijn B. W. Wajer</person>
<person id="6797">Bart Ribbers</person>
</persons>
<links>
<link href="https://postmarketos.org/">postmarketOS</link>
<link href="https://maemo-leste.github.io">Maemo Leste blog/homepage</link>
<link href="https://www.openfest.org/2019/en/full-schedule/#lecture-471">Maemo Leste talk at Openfest 2019</link>
<link href="https://www.pine64.org/pinephone/">Pine64 pinephone page</link>
<link href="https://submission.fosdem.org/feedback/9645.php">Submit feedback</link>
</links>
<date>2020-02-02T15:00:00+01:00</date>
</event>
<event id="9029">
<start>17:00</start>
<duration>00:50</duration>
<room>Janson</room>
<slug>fosdem_at_20</slug>
<title>FOSDEM@20 - A Celebration</title>
<subtitle>The cliché of constant change</subtitle>
<track>Keynotes</track>
<type>keynote</type>
<language/>
<abstract>&lt;p&gt;Since 2001, FOSDEM has been a ritualistic retreat for thousands of free and open source-minded developers.&lt;/p&gt;
&lt;p&gt;Incorporating contributions gathered from across the FOSDEM community, this talk reflects on those past events and makes comment on the changes in technology, community, and the conference itself.&lt;/p&gt;</abstract>
<description>&lt;p&gt;For those new to FOSDEM this talk provides a lively and interesting discussion on how FOSDEM began and has changed over the years, told through the eyes of one of its most loyal supporters, Steven Goodwin, who has attended them all and, since 2003, has been documenting his (mis-)adventures in &quot;The FOSDEM Diaries.&quot;&lt;/p&gt;
&lt;p&gt;And for those veterans, it provides a trip down memory lane and a solid reminder that we were all young once, and that we should help the current generation in the way we were helped all those years ago!&lt;/p&gt;
&lt;p&gt;This talk gives real insight on how communities change over time, and how those new to the fold can break into an arena that can often appear as one clique of kranky old developers! Steve will also explain the origin of the FOSDEM drinking game ‘beermat buckeroo!’&lt;/p&gt;</description>
<persons>
<person id="392">Steven Goodwin</person>
</persons>
<links>
<link href="https://marquisdegeek.com/words_fosdem">The FOSDEM Diaries</link>
<link href="https://submission.fosdem.org/feedback/9029.php">Submit feedback</link>
</links>
<date>2020-02-02T17:00:00+01:00</date>
</event>
<event id="9024">
<start>17:50</start>
<duration>00:10</duration>
<room>Janson</room>
<slug>closing_fosdem</slug>
<title>Closing FOSDEM 2020</title>
<subtitle/>
<track>Keynotes</track>
<type>keynote</type>
<language/>
<abstract>&lt;p&gt;Some closing words. Don't miss it!&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6">FOSDEM Staff</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9024.php">Submit feedback</link>
</links>
<date>2020-02-02T17:50:00+01:00</date>
</event>
</room>
<room name="K.1.105 (La Fontaine)">
<event id="9230">
<start>09:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>seccomp</slug>
<title>SECCOMP your PostgreSQL</title>
<subtitle/>
<track>Databases</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;SECCOMP (&quot;SECure COMPuting with filters&quot;) is a Linux kernel syscall filtering mechanism which allows reduction of the kernel attack surface by preventing (or at least audit logging) normally unused syscalls. Recent security best-practices recommend, and certain highly security-conscious organizations are beginning to require, that SECCOMP be used to the extent possible. The major web browsers, container runtime engines, and systemd are all examples of software that already support SECCOMP.&lt;/p&gt;
&lt;p&gt;This talk covers SECCOMP applied to PostgreSQL via 2 different methods -- namely top-down using systemd, and at the session level using a PostgreSQL extension called pgseccomp. The two methods will be explained and compared. We will also discuss how and why the two methods might be used in conjunction. Finally, a process to determine the list of expected/legitimate PostgreSQL kernel syscalls is described.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="5557">Joe Conway</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9230.php">Submit feedback</link>
</links>
<date>2020-02-02T09:00:00+01:00</date>
</event>
<event id="9123">
<start>10:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>dqlite</slug>
<title>dqlite: High-availability SQLite</title>
<subtitle>An embeddable, distributed and fault tolerant SQL engine</subtitle>
<track>Databases</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;SQLite has proven extremely successful at providing applications with a powerful, portable and embeddable SQL engine that can handle most of their data storage needs.&lt;/p&gt;
&lt;p&gt;Unfortunately, SQLite is neither replicating nor fault tolerant. These two features are however very important for the rising Edge/IoT market: dqlite delivers both of them.&lt;/p&gt;
&lt;p&gt;dqlite is a C library which exposes a SQLite database over the network and replicates it using the Raft algorithm, with built-in automatic failover.&lt;/p&gt;
&lt;p&gt;It allows to build and operate a fault-tolerant cluster of nodes each running an instance of the user application.&lt;/p&gt;
&lt;p&gt;dqlite was created to support clustering in the LXD container management project, where it has been used for over a year. In this talk we will look at its design, implementation and various use cases.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Distributed systems are ubiquitous these days: we need to commoditize the underlying technologies and algorithms, making them easy to consume. The dqlite project offers application developers the opportunity to build on top of a storage engine which is as easy and convenient as a plain SQLite database, but also meets higher durability and fault tolerance requirements.&lt;/p&gt;</description>
<persons>
<person id="5249">Free Ekanayaka</person>
</persons>
<links>
<link href="https://dqlite.io">dqlite web site</link>
<link href="https://submission.fosdem.org/feedback/9123.php">Submit feedback</link>
</links>
<date>2020-02-02T10:00:00+01:00</date>
</event>
<event id="9014">
<start>11:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>mysql8</slug>
<title>MySQL Goes to 8!</title>
<subtitle/>
<track>Databases</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;The latest and greatest version of MySQL is MySQL 8.&lt;/p&gt;
&lt;p&gt;Currently the most used version of MySQL is MySQL 5.7. This talk will highlight what is new in MySQL 8.0 - a huge step forward for our users. MySQL 8.0 delivers significant improvements on all fronts, such as dramatically improved SQL, GIS, and JSON support. The talk will also cover the MySQL Document Store (MySQL = NoSQL + SQL) and MySQL InnoDB Cluster (HA out of the box) as well as MySQL Shell which ensures power, freedom, and flexibility for the Developer.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6369">Geir Høydalsvik</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9014.php">Submit feedback</link>
</links>
<date>2020-02-02T11:00:00+01:00</date>
</event>
<event id="9174">
<start>12:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>swim</slug>
<title>SWIM - Protocol to Build a Cluster</title>
<subtitle>SWIM gossip protocol, its implementation, and improvements</subtitle>
<track>Databases</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;SWIM - is a relatively new protocol to discover and monitor cluster nodes, to disseminate events and data between them. The protocol is extremely lightweight, decentralised, and its speed and load per node do not depend on cluster size.&lt;/p&gt;
&lt;p&gt;The protocol solves several tasks at once. First - build and keep up to date topology of a cluster without explicit configuration. The task is quite intricate because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;new just started nodes know nothing about others, and they should somehow discover them;&lt;/li&gt;
&lt;li&gt;already working nodes can fail, and it should be detected so as to change a master, or evict an unrecoverable node from the cluster, or restart it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;According to the protocol, cluster nodes broadcast packets and send p2p ping requests. Broadcast helps to discover new nodes, p2p pings help to detect failure of a known node.&lt;/p&gt;
&lt;p&gt;A second task - events dissemination in a cluster. Event is a node failure; UUID change; IP address update; new node appearance - anything that affects cluster state. Sometimes users define their own event types. When a node learns about an event, it needs to disseminate the event to other nodes. SWIM protocol describes an algorithm how to detect and disseminate events, and gives the following guarantees:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;it takes a constant time to learn about an event on at least one node in the cluster;&lt;/li&gt;
&lt;li&gt;it takes logarithmic from cluster size time to disseminate that event to each node of the cluster.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the talk I tell about how SWIM works, how and with which essential improvements it was implemented, how to use SWIM, and what are the practical performance results.&lt;/p&gt;
&lt;p&gt;Implementation is a part of Tarantool DBMS. Tarantool is the biggest Russian Open-Source DBMS. Tarantool currently goes toward better scalability, improvements in horizontal scaling, in cluster-wide calculations, and better cluster management. In scope of that roadmap SWIM protocol implementation was recently released.&lt;/p&gt;</abstract>
<description/>
<persons>
<person id="6545">Vladislav Shpilevoy</person>
</persons>
<links>
<link href="https://www.tarantool.io/en/doc/2.2/reference/reference_lua/swim/">Documentation</link>
<link href="https://github.com/tarantool/tarantool/tree/master/src/lib/swim">Code</link>
<link href="https://submission.fosdem.org/feedback/9174.php">Submit feedback</link>
</links>
<date>2020-02-02T12:00:00+01:00</date>
</event>
<event id="9223">
<start>13:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>speculative_execution</slug>
<title>Improving protections against speculative execution side channel</title>
<subtitle/>
<track>Miscellaneous</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;Speculative execution side channel methods pose new challenges to not only system administrators, users and security experts but also to developers. Developers can use different techniques to harden their code and reduce the feasibility of a possible malicious actor using these methods to leak secrets. But what is a secret? How can someone leak any of my data using these methods? This presentation introduces some architectural concepts that these methods use. It will also present how these methods work and how malicious actors might try to infer data from other users and codes. We will introduce some of the techniques that developers can use for mitigation, together with details about specific challenges that developers of different programming languages might face when implementing these mitigation techniques. Finally, we will present some of the mitigations that we are introducing in software to help ensure that these techniques can not be exploited in production environments.&lt;/p&gt;</abstract>
<description>&lt;p&gt;No security or computer architecture background is required. Basic to intermediate programming skills are recommended.&lt;/p&gt;
&lt;p&gt;Attendees will come away with a better understanding of what speculative execution side channel issues are, how they work, and what they really mean for developers.&lt;/p&gt;</description>
<persons>
<person id="7412">David Stewart</person>
</persons>
<links>
<link href="https://submission.fosdem.org/feedback/9223.php">Submit feedback</link>
</links>
<date>2020-02-02T13:00:00+01:00</date>
</event>
<event id="9114">
<start>14:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>sabre</slug>
<title>SaBRe: Load-time selective binary rewriting</title>
<subtitle/>
<track>Miscellaneous</track>
<type>maintrack</type>
<language/>
<abstract>&lt;h2&gt;Abstract&lt;/h2&gt;
&lt;p&gt;Binary rewriting is a technique that consists in disassembling a program to modify its instructions, with
many applications, e.g. monitoring, debugging, reverse engineering and reliability. However, existing solutions suffer from well-known
shortcomings in terms of soundness, performance and usability.&lt;/p&gt;
&lt;p&gt;We present &lt;em&gt;SaBRe&lt;/em&gt;, a novel load-time framework for selective binary rewriting. SaBRe rewrites specific constructs of
interest — mainly system calls and function prologues — when the program is loaded into memory. This enables users to intercept those constructs at runtime
via a modular architecture allowing custom plugins to be linked with SaBRe using a simple and flexible
API. We also discuss the theoretical underpinnings of disassembling and rewriting, including conditions for
coverage, accuracy, and correctness; and how they affect SaBRe.&lt;/p&gt;
&lt;p&gt;We developed two backends for SaBRe — one for x86_64 and one for RISC-V — which were in turn used to
implement two open-source plugins: a fast system call tracer and a fault injector. Our evaluation
shows that SaBRe imposes little performance overhead, between 0.2% and 4.3% on average.
In addition to explaining the architecture of SaBRe and demonstrating its performance,
we also show on a concrete example how easy creating a new plugin for SaBRe is.&lt;/p&gt;
&lt;p&gt;SaBRe is a free open-source software released under the GPLv3 license
and originally developed as part of the Software Reliabilty Group at Imperial College London.&lt;/p&gt;</abstract>
<description>&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The goal of binary rewriting is to add, delete and replace
instructions in binary code. There are two main types of binary
rewriting techniques: static and dynamic.
In static binary rewriting, the binary file is statically rewritten on disk, while
in dynamic binary rewriting it is rewritten in memory, as the
program executes.&lt;/p&gt;
&lt;p&gt;Static binary rewriting has the advantage
that the rewriting process does not incur any overhead during
execution, as it is performed before the program starts running.
However, static binary rewriting is hard to get right: creating a
valid modified executable on disk is challenging, and correctly
identifying all the code in the program is error-prone in the
presence of variable-length instructions and indirect jumps.&lt;/p&gt;
&lt;p&gt;By contrast, dynamic binary rewriting modifies the code in
memory, during program execution. This is typically accomplished by translating one basic block at a time and caching the
results, with branch instructions modified to point to already
translated code. Since translation is done at runtime, when the
instructions are issued and the targets of indirect branches are
already resolved, dynamic binary rewriting does not encounter
the challenges discussed above for static binary rewriting.
However, the translation is heavyweight and incurs a large
runtime overhead.&lt;/p&gt;
&lt;p&gt;In this presentation, we introduce SaBRe, a system that implements
a novel design point for binary rewriting. Unlike prior techniques, SaBRe operates at load-time, after the program is
loaded into memory, but before it starts execution. Like static
binary rewriting techniques, SaBRe rewrites the code in-place,
but the translation is done in memory, as for dynamic binary
rewriting. To achieve a high level of both performance and reliability,
SaBRe relies by default on trampolines, which are extremely efficient
and can be used more than 99.99% of the time, and only falls back
on illegal instructions triggering a signal handler for pathological
cases.&lt;/p&gt;
&lt;p&gt;The main limitation of SaBRe is that it is designed
to rewrite only certain types of constructs, namely system
calls (including vDSO), function prologues and some architecture-
specific instructions (e.g. RDTSC in x86). However, as we illustrate
later on, this is enough to support a variety of tasks, with
much lower overhead than with dynamic binary rewriting and
without incurring the precision limitations of static binary
rewriting.&lt;/p&gt;
&lt;p&gt;We implemented two binary rewriters based on this design:
one for x86 64 and one for RISC-V code. Both rewriters
feature a flexible API, which we used to implement three
different plugins: a fast system call tracer, a multi-version
execution system (not open-sourced yet) and a fault injector.
In summary, our main contributions are:
1. A new design point for selective binary rewriting which
translates code in memory in-place at load time, before
the program starts execution.
2. An implementation of this approach for two architectures, one for x86 64 and the other for RISC-V.
3. A comprehensive evaluation using two open-source plugins: a fast &lt;code&gt;strace&lt;/code&gt;-like
system call tracer and a fault injector.
4. An extremely simple API that can be leveraged by users to
implement and integrate their own plugins.&lt;/p&gt;</description>
<persons>
<person id="6493">Paul-Antoine Arras</person>
</persons>
<links>
<link href="https://github.com/srg-imperial/SaBRe">SaBRe source repository</link>
<link href="https://submission.fosdem.org/feedback/9114.php">Submit feedback</link>
</links>
<date>2020-02-02T14:00:00+01:00</date>
</event>
<event id="9603">
<start>15:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>virtual_linux_desktop</slug>
<title>The year of the virtual Linux desktop</title>
<subtitle/>
<track>Miscellaneous</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;We made the Linux desktop work in VR. Join me to hear about the history and future of xrdesktop and the FOSS XR landscape.&lt;/p&gt;</abstract>
<description>&lt;p&gt;With tracked controllers, heads and hands, AR and VR introduced the requirement for a new set of user interactions. In this talk you will learn about existing implementations and how the classical UX model with keyboard and mouse translates to these new concepts. I will highlight the technical aspect of these requirements and how they were solved in xrdesktop. Featuring 3D window management and synthesis for traditional input, xrdesktop is a software stack that integrates VR in the GNOME and KDE desktop environments. You will also get an overview of the history and status of Open Source in AR and VR.&lt;/p&gt;</description>
<persons>
<person id="6842">Lubosz Sarnecki</person>
</persons>
<links>
<link href="http://col.la/xrdesktop">Moving the Linux desktop to another reality</link>
<link href="https://gitlab.freedesktop.org/xrdesktop">xrdesktop on Freedesktop</link>
<link href="https://guadec.ubicast.tv/videos/moving-gnome-to-another-reality/">GUADEC: Moving GNOME to Another Reality</link>
<link href="https://www.youtube.com/watch?v=siYvcs13b9M">xrdesktop Dev Podcast</link>
<link href="https://submission.fosdem.org/feedback/9603.php">Submit feedback</link>
</links>
<date>2020-02-02T15:00:00+01:00</date>
</event>
<event id="9236">
<start>16:00</start>
<duration>00:50</duration>
<room>K.1.105 (La Fontaine)</room>
<slug>matrix</slug>
<title>Making &amp; Breaking Matrix's E2E encryption</title>
<subtitle>In which we exercise the threat model for Matrix's E2E encrypted decentralised communication</subtitle>
<track>Miscellaneous</track>
<type>maintrack</type>
<language/>
<abstract>&lt;p&gt;Matrix is an open protocol and open network for decentralised real-time communication; shifting control over communication from the big proprietary silos back to the general population of the Internet. In 2016 we added E2E Encryption based on the Double Ratchet, and since then have been working away on getting the encryption so polished that we can transparently turn it on by default everywhere. In this talk, we'll show how we have finally done this, what the blockers were, and then try to smash the encryption to pieces to illustrate the potential attacks and how we mitigate them.&lt;/p&gt;</abstract>
<description>&lt;p&gt;&lt;a href=&quot;https://matrix.org&quot;&gt;Matrix&lt;/a&gt; is an ambitious project to build a open decentralised real-time communication network; providing an &lt;a href=&quot;https://matrix.org/docs/spec&quot;&gt;open standard protocol&lt;/a&gt; and &lt;a href=&quot;https://matrix.org/docs/projects/try-matrix-now/&quot;&gt;open source reference implementations&lt;/a&gt;, letting anyone and everyone spin up a Matrix server and retake control of their real-time communication. Matrix is looked after by the non-profit &lt;a href=&quot;https://matrix.org/foundation&quot;&gt;Matrix.org Foundation&lt;/a&gt;, and as of Oct 2019 we have over 11.5M addressable users and around 40K servers on the public network.&lt;/p&gt;
&lt;p&gt;Over the course of 2019 we spent a huge amount of time finalising Matrix's end-to-end encryption so we could finally turn it on by default without compromising any of the behaviour users had grown accustomed to in non-encrypted rooms. Specifically, the main remaining blockers were:
* Ability to search in E2E encrypted rooms (now solved by &lt;a href=&quot;https://github.com/matrix-org/seshat&quot;&gt;Seshat&lt;/a&gt;: a Rust-based full-text-search engine embedded into Matrix clients)
* Ability to get compatibility with non-E2E clients, bots and bridges (now solved by &lt;a href=&quot;https://github.com/matrix-org/pantalaimon&quot;&gt;pantalaimon&lt;/a&gt;: a daemon which offloads E2E encryption)
* Reworking the whole encryption UI to expose cross-signing to radically simplify key verification (including QR-code scanning for simplicity)
* Ability to receive notifications in E2E encrypted rooms.&lt;/p&gt;
&lt;p&gt;However, we have finally got there, and this talk will demonstrate how the final E2EE implementation works; the final problems we had to solve; the threat model we have implemented; and how we're doing on rolling it out across the whole network. More interestingly, we will then demonstrate a variety of attacks against the encryption (e.g. shoulder-surfing QR codes during device verification; MITMing TLS; acting as a malicious server implementation; global passive adversary) to demonstrate how well we handle them.&lt;/p&gt;</description>
<persons>
<person id="2951">Matthew Hodgson</person>
</persons>
<links>
<link href="https://matrix.org">Matrix.org</link>
<link href="https://matrix.org/foundation">The Matrix.org Foundation</link>
<link href="https://matrix.org/docs/spec">The Matrix Specification</link>
<link href="https://matrix.org/docs/projects/try-matrix-now/">Try Matrix Now</link>
<link href="https://submission.fosdem.org/feedback/9236.php">Submit feedback</link>
</links>
<date>2020-02-02T16:00:00+01:00</date>
</event>
</room>
<room name="H.2215 (Ferrer)">
<event id="9747">
<start>10:00</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>standards_organizations_and_open_source</slug>
<title>Open Source - Killing standards organizations or saving them</title>
<subtitle>Open source and standards join forces for mutual benefit</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Open source communities move quickly, value running code, and docs are best effort at best. Standards move slowly, value precise specs, and negotiate compromises for broad alignment. Given these differences, why would open source communities fraternize with standards orgs? Standards orgs such as IETF and MEF realize they need to change to remain relevant. By embracing open source, standards orgs benefit from the speed and collaborative spirit of open source and get timely feedback on the clarity and correctness of standards as they evolve in parallel with running code. Open source communities gain users, address additional use cases, and gain the stability of standards to ease integration efforts and avoid forks. This session explores this evolution in standards orgs, highlights areas of mutual interest, and shares ideas on the benefit of closer collaboration.&lt;/p&gt;</abstract>
<description>&lt;p&gt;By collaborating with standards organizations and supporting existing and evolving standards, the open source community gains users, address a larger set of use cases, and benefit from the stability of standards that can help avoid harmful forking and ease integration efforts. Standards orgs benefit from the speed and collaborative spirit characteristics of open source, and they gain timely and critical feedback on the clarity and correctness of their standards as they evolve iteratively and in parallel with the open source code. The end result is open source code that is more consumable by industry, and standards that are more consumable by the open source community.&lt;/p&gt;</description>
<persons>
<person id="3782">Charles Eckel</person>
</persons>
<links>
<link href="https://ietf.org/how/runningcode/hackathons//">IETF Hackathon site</link>
<link href="https://submission.fosdem.org/feedback/9747.php">Submit feedback</link>
</links>
<date>2020-02-02T10:00:00+01:00</date>
</event>
<event id="9456">
<start>10:20</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>emissions_api</slug>
<title>emissions API</title>
<subtitle>a service to easily access air quality data from remote sensing</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;The European Space Agency’s Sentinel-5P satellite is built to monitor air quality data (carbon hydroxide, sulfur monoxide, ozone, …). All data gathered are publicly available …if you know what to do with those data sets, great, but if not:&lt;/p&gt;
&lt;p&gt;Emissions API’s mission is to provide easy access to this data without the need of being an expert in satellite data analysis and without having to process terabytes of data.&lt;/p&gt;
&lt;p&gt;This way, we hope to empower others to easily build apps that use this data – e.g. visually showing emissions of countries over time.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Achievements of climate goals are so far only verifiable for a very small group of people with specialized know-how. As a result, public discussion remains abstract and elusive for many people. Easy access to emissions data provides a more general audience with the opportunity to form a fact-based opinion. For example, one could evaluate the effectiveness of environmental regulations – such as diesel driving bans in inner cities or new sulfur limits in shipping–by comparing actual measurements from before and after on a map.&lt;/p&gt;
&lt;p&gt;Emissions API is a solution that provides simple access to emissions data of climate-relevant gases. For this purpose, data of the European Space Agency’s Sentinel-5P earth observation satellite will be prepared in such a way that it allows programmers easy access without the need to have a scientific background in the field.&lt;/p&gt;
&lt;p&gt;The project strives to create an application interface which lowers the barrier to use the data for visualization and/or analysis.
Tackling the problem&lt;/p&gt;
&lt;p&gt;The project’s core is an API, which can be used to query the processed data. For this purpose, we develop a cloud service which queries the freely accessible data of Sentinel-5P, aggregates it, stores it in a cache and makes it available.
Target audience&lt;/p&gt;
&lt;p&gt;This project targets developers who want to build their own services based on the satellite data of the Copernicus program, but who do not want to work with huge amounts of scientific data directly. We will provide examples and libraries to quickly get you started without being an expert in satellite data analysis.&lt;/p&gt;</description>
<persons>
<person id="6740">Timo Nogueira Brockmeyer</person>
</persons>
<links>
<link href="https://github.com/emissions-api">github project page</link>
<link href="https://emissions-api.org/">website</link>
<link href="https://submission.fosdem.org/feedback/9456.php">Submit feedback</link>
</links>
<date>2020-02-02T10:20:00+01:00</date>
</event>
<event id="9224">
<start>10:40</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>git_issue_management</slug>
<title>git-issue</title>
<subtitle>Git-based decentralized issue management with GitHub/GitLab integration</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Git-issue is a minimalist decentralized issue management system based on Git,
offering (optional) biderectional integration with GitHub and GitLab issue management.
It has the following advantages over other systems.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No backend, no dependencies:&lt;/strong&gt;
You can install and use &lt;em&gt;git issue&lt;/em&gt; with a single shell script.
There's no need for a server or a database back-end, and the corresponding
problems and requirements for their administration.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decentralized asynchronous management:&lt;/strong&gt;
Anyone can add, comment, and edit issues without requiring online access
to a centralized server.
There's no need for online connectivity; you can pull and push issues
when you're online.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transparent text file format:&lt;/strong&gt;
Issues are stored as simple text files, which you can view, edit, share, and
backup with any tool you like.
There's no risk of losing access to your issues because a server has
failed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git-based:&lt;/strong&gt;
Issues are changed and shared through Git.
This provides &lt;em&gt;git issue&lt;/em&gt; with a robust, efficient, portable,
and widely available infrastructure.
It allows you to reuse your Git credentials and infrastructure, allows
the efficient merging of work, and also provides a solid audit trail
regarding any changes.
You can even use Git and command-line tools directly to make sophisticated
changes to your issue database.&lt;/li&gt;
&lt;/ul&gt;
</abstract>
<description/>
<persons>
<person id="3691">Diomidis Spinellis</person>
</persons>
<links>
<link href="https://github.com/dspinellis/git-issue">Git-issue on GitHub</link>
<link href="https://dspinellis.github.io/manview/?src=https://raw.githubusercontent.com/dspinellis/git-issue/master/git-issue.1">Manual page</link>
<link href="https://submission.fosdem.org/feedback/9224.php">Submit feedback</link>
</links>
<date>2020-02-02T10:40:00+01:00</date>
</event>
<event id="10046">
<start>11:00</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>heptapod_mercurial</slug>
<title>The Heptapod project</title>
<subtitle>Bringing Mercurial to GitLab</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Heptapod is a friendly fork of GitLab CE that supports the Mercurial DVCS.
Today, Bitbucket starts dropping the support for Mercurial. Heptapod can provide nice new homes for projects that have to migrate out of Bitbucket.
We are looking for contributors - lots of different skills can be useful.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Mercurial is a free software distributed version control system (DVCS) written primarily in Python, with an intuitive command line interface and strong, safe history rewriting features.&lt;/p&gt;
&lt;p&gt;Mercurial is in active development and in use at several large organisations, which
appreciate especially its extensibility and its ability to handle very large repositories.&lt;/p&gt;
&lt;p&gt;However, Mercurial has been somewhat lacking public exposure in the past few years for not being a first class citizen in the prominent integrated hosting and collaboration solutions.
This culminated recently with Bitbucket announcing last summer its plan to drop support for Mercurial, in particular planning to stop accepting new repositories by February 1st, 2020 (that's the first day of this FOSDEM edition!).&lt;/p&gt;
&lt;p&gt;In this talk, we will present the Heptapod project, which brings Mercurial support to GitLab Community Edition, the well-known open-source integrated platform for source collaboration and dev-ops. Lately, GitLab CE has been selected by some major free software projects, such as Debian and Gnome, to name only a few.&lt;/p&gt;
&lt;p&gt;Several free and open-source projects have successfully migrated from Bitbucket to Heptapod. We are willing to help more of them doing so, either by hosting them directly if possible (contact us) or by giving them a hand in the transition.&lt;/p&gt;
&lt;p&gt;Heptapod is a community-driven effort, whose development involves many programming languages: Ruby, Go, Python, Javascript and potentially Rust, but one does not need to be a expert in all of these to start contributing.&lt;/p&gt;
&lt;p&gt;We are calling interested people to join us on our Heptapod instance (of course), there's a bit of low hanging fruit to grab there.&lt;/p&gt;</description>
<persons>
<person id="7066">Georges Racinet</person>
</persons>
<links>
<link href="https://heptapod.net">Project page</link>
<link href="https://dev.heptapod.net">Main development instance</link>
<link href="https://submission.fosdem.org/feedback/10046.php">Submit feedback</link>
</links>
<date>2020-02-02T11:00:00+01:00</date>
</event>
<event id="9520">
<start>11:20</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>puavo_linux_desktops_finland</slug>
<title>puavo.org</title>
<subtitle>Linux desktops in Finnish schools</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;A Finnish company Opinsys has provided and maintained
many thousands of Linux desktops in Finnish schools for
about fifteen years now. This is a short introduction
to the technology (called Puavo) they have developed
for this purpose.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Puavo can be used to manage Linux desktops suitable
for school environments. It is a combination of web
software (Puavo Web) and a specially configured system
(Puavo OS) using Debian GNU/Linux operating system as
its base. Puavo Web is built for managing user accounts
and devices. Puavo OS is designed for large-scale
deployment in primary and secondary schools. The source
code for both is free software under GPLv2+ license.&lt;/p&gt;</description>
<persons>
<person id="6779">Juha Erkkilä</person>
</persons>
<links>
<link href="http://www.opinsys.fi">Opinsys</link>
<link href="http://puavo.org">puavo.org</link>
<link href="https://submission.fosdem.org/feedback/9520.php">Submit feedback</link>
</links>
<date>2020-02-02T11:20:00+01:00</date>
</event>
<event id="10052">
<start>11:40</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>semester_ly</slug>
<title>Open Source for students, by students</title>
<subtitle>Teaching university students how to contribute to open source projects by providing a product to their peers</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Five years ago, Semester.ly was created for students, by students. As a one stop shop for students to find classes that fit their schedule, Semester.ly has course reviews, textbook prices, and the classes your Facebook friends are taking. As a student start-up, it quickly expanded to 8+ schools and accumulated 100,000 users. In 2016, Semester.ly went open source and many of its core members graduated. Over the past three years, university administrators and students have worked together to maintain Semester.ly’s success and grow it as an educational tool within universities. Semester.ly’s serves two purposes now: make course registration easier and teach students how to contribute to open source projects.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Every semester, students at universities across the country scramble to plan their course schedules for the upcoming academic term. Post-it notes, Excel spreadsheets, emails, and group chats all make up a stressful period in an already stressed out student’s life. The problem is simple: university backed course scheduling infrastructure is outdated. Universities have been around for hundreds of years and their internal software for decades, yet their students are a part of a technology revolution that expects things to be fast and social&amp;lt;sup&gt;1&amp;lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;A few months after tangling with course registration woes, students are engrossed in another stressful time period in which they attempt to acquire jobs. Employers look for experienced qualified candidates. Students go to school to become these candidates but most of the time, they just get a piece of paper that is losing value in the public mind&amp;lt;sup&gt;2&amp;lt;/sup&gt;. Universities try their best to prepare their students for the workforce through rigorous classwork and career resources but today’s workforce is ultra competitive and a college education isn’t enough&amp;lt;sup&gt;3&amp;lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Here lie two seemingly unrelated problems for universities. University course registration systems are falling behind and universities aren’t fitting student’s needs in preparing them for post-graduation employment. Semester.ly solves both problems.&lt;/p&gt;
&lt;p&gt;Semester.ly was founded by an initial development team of Noah Presler, Felix Zhu, and Rohan Das during the summer of 2014. Back then, the goal of Semester.ly was to improve course registration. Before the founding team graduated, Semester.ly went open source in Spring 2016 with the hope that other students would carry on the torch. However, it was hard to find dedicated developers and funding without a business plan that involved making money later. These are problems that many open source organizations face but being based at a university also meant that team members would inevitably graduate every few years. There was a need for consistent members, incentives for developers, and funding for the server.&lt;/p&gt;
&lt;p&gt;Three organizational structures were created to solve these problems. The first was a student organization. This seemed like the obvious first choice since it's how the original team started but student developers didn’t have any incentive and would stop working once school work picked up. The second structure was a course to obtain credit for working on open source projects. After conversations with the Chair of the Computer Science Department at Johns Hopkins University, a course called Software for Resilient Communities was created focusing on four open source projects to benefit local and global communities&amp;lt;sup&gt;4&amp;lt;/sup&gt;. Since this was a course, students would take the first half of the semester to learn the technology stack, make an impact, and then never contribute again because they couldn’t repeat the class. This did succeed in getting lots of students exposed to open source projects but eventually the professor running the course left to run his own company and the course wasn’t offered again. The third and final organizational structure that Semester.ly maintains today is as a paid on-campus job. After all of these years, Semester.ly has become a strong presence on campus and school administrators have taken notice. To support our mission, Johns Hopkins Information Technology provides hosting, hourly pay for student developers, and consistent leadership for students. This organizational structure has been in place for about a year now and we’ve made great progress onboarding new student developers and creating new features.&lt;/p&gt;
&lt;p&gt;With this partnership, Semester.ly is more integrated with the university and several other partnerships have arisen. For example, Semester.ly now shows what tutoring services are available through the university and we’re developing a way to register for these tutoring services on Semester.ly next semester. Going forward, Semester.ly will continue to make course registration easier as well as provide whatever other services students see fit. Semester.ly proves that it's possible for open source projects to thrive on college campuses as a service and educational tool.&lt;/p&gt;</description>
<persons>
<person id="5740">Kristin Yim</person>
</persons>
<links>
<link href="http://semester.ly">Semester.ly homepage</link>
<link href="http://github.com/noahpresler/semesterly">Original Repository</link>
<link href="https://github.com/jhuopensource/semesterly">Johns Hopkins University Open Source Repository</link>
<link href="https://submission.fosdem.org/feedback/10052.php">Submit feedback</link>
</links>
<date>2020-02-02T11:40:00+01:00</date>
</event>
<event id="10048">
<start>12:00</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>adult_education</slug>
<title>Open Adult Education: a curriculum to bridge the digital skills gap with free and open source technologies</title>
<subtitle/>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;The OPEN-AE project is developing an open, and modular curriculum directed to train e-facilitators and trainers working with people who are in need of upskilling and reskilling in free and open-culture. The OPEN AE curriculum is meant to be modular and adaptable to the immediate training needs of the efacilitators. The training aims to introduce the trainers to the values of free and open-culture and empower them with the values behind this culture so it can be transmitted to low-skilled adults. the training will also have modules supporting a transition to free and open source software and culture. Open-AE is not merely about teaching free and open softwares, but aims to have the trainers be active participants in the culture, knowing how to license these openly how to collaborate and develop as a collective.&lt;/p&gt;</abstract>
<description>&lt;p&gt;The OPEN-AE project is developing an open, and modular curriculum directed to train e-facilitators and trainers working with people who are in need of upskilling and reskilling in free and open-culture. The OPEN AE curriculum is meant to be modular and adaptable to the immediate training needs of the efacilitators. The training aims to introduce the trainers to the values of free and open-culture and empower them with the values behind this culture so it can be transmitted to low-skilled adults. the training will also have modules supporting a transition to free and open source software and culture. Open-AE is not merely about teaching free and open software but aims to have the trainers be active participants in the culture, knowing how to license these openly how to collaborate and develop as a collective.&lt;/p&gt;
&lt;p&gt;ALL DIGITAL is a network that wants to ensure every European, or rather every person can be empowered by the digital transformation, in short, we work in the field of digital inclusion. Our organisation started slightly over ten years ago as a grassroots movement among digital competency centres, and this scaled to the European level. Today 43% lack basic digital skills with half of them having skills at all. It is important to ensure&lt;/p&gt;
&lt;p&gt;At the moment ALL DIGITAL is coordinating the OPEN-AE project which aims to introduce free and open-source technologies to those who do not have enough digital skills or are in need upskilling. The project consortium involves partners working in the sector of digital inclusion running digital competency centres around Europe and one European network, ALL DIGITAL. The project aims to bridge the digital skills gap with free and open source technologies by developing a training curriculum directed to e-facilitators working in the non-formal sector. This curriculum will be open and modular allowing trainers to immediately adapt it to their training needs.&lt;/p&gt;
&lt;p&gt;Open-AE aims to not merely be an one-off project but wants to start a movement in the digital inclusion sector to ensure the digital skills gap is not bridge merely with proprietary software, but empower users so they can be empowered users with access to the relevant software and they know how to participate in the open culture after the training ends. Many in the digital inclusion sector are intimidated by free and open source software, believing they need a higher level than basic skills to use the software effectively. Breaking down the image of free and open source software and making it more approachable is essential to ensure lower skills users can not only access and use digital technologies but are empowered by them.&lt;/p&gt;
&lt;p&gt;The Open-AE consortium would like to present their work to FOSDEM to be engaged in a dialogue with developers and the open source community in activities directed to bridge the digital skills gap, to know what work developers are doing, but also engage in the open community in a direct capacity. Two partners based in Brussels ALL DIGITAL a European network, and Maks, Medie en Actie in Kureghem, will present the work. The presentation will go over the need to work in the field of digital inclusion.&lt;/p&gt;
&lt;p&gt;The presentation will go over the challenges in the digital inclusion with approaching free and open source technologies, the process of how the curriculum was developed, the curriculum itself, and how to scale this movement and carry it further.&lt;/p&gt;</description>
<persons>
<person id="7021">Pia Groenewolt</person>
</persons>
<links>
<link href="https://open-ae.eu/">project website</link>
<link href="https://all-digital.org/projects/open-ae/">ALL DIGITAL project card</link>
<link href="http://www.unite-it.eu/profiles/blogs/how-to-open-ae">blog on workshop</link>
<link href="http://www.unite-it.eu/profiles/blogs/how-to-open-ae">Tool for the open ae curriculum</link>
<link href="https://www.ynternet.org/page/ressources/richard-stallman-2019-tour-conferences">Richard Stallman at a open ae/ ynternet workshop last year</link>
<link href="http://www.unite-it.eu/profiles/blogs/how-to-open-ae">workshop with efacilitators on how to open ae</link>
<link href="https://submission.fosdem.org/feedback/10048.php">Submit feedback</link>
</links>
<date>2020-02-02T12:00:00+01:00</date>
</event>
<event id="9706">
<start>12:20</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>wyliodrin_studio</slug>
<title>Prototyping the Internet of Things with Wyliodrin STUDIO</title>
<subtitle>An open source platform for building IoT prototypes</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;In 2014, teaching a Raspberry Pi programming course was a real challenge, mostly due to the lack of development devices. This is how we came up with the idea of building Wyliodrin STUDIO.&lt;/p&gt;
&lt;p&gt;Wyliodrin STUDIO is an easy to use IDE for the Internet of Things that enables remote control over embedded devices. While it is a good prototyping tool, the platform also targets students and educators who want to get started in the IoT field. It is designed to help both technical and non-technical people to get started with programming devices such as the Raspberry Pi.&lt;/p&gt;
&lt;p&gt;In this talk we aim to present Wyliodrin STUDIO, how it works and how we and other universities used it to teach IoT technologies in classes such as computer science, power engineering and film directing.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Wyliodrin STUDIO is an open source, web-based IDE designed for fast prototyping of Internet of Things applications.&lt;/p&gt;
&lt;p&gt;We have build this platform because we needed an affordable way of programming embedded devices such as the Raspberry Pi. Since 2014, when the first platform version was released, we have improved the solution so now it can be used to remotely program, control and monitor devices. For the moment, the platform is compatible with devices such as the Raspberry Pi and BeagleBone Black and supports Python, Node.js and visual, block-based programming languages.&lt;/p&gt;
&lt;p&gt;Since 2014 the platform has been used by companies such as Intel and Cisco and in institutions such as UCLA, USC, Ulm University and Toronto Public Library.&lt;/p&gt;
&lt;p&gt;The purpose of our presentation is not only to make an overview of Wyliodrin STUDIO's characteristics, but also introduce the audience to our experience in teaching IoT courses and how the platform helped us.&lt;/p&gt;</description>
<persons>
<person id="6910">Alexandru Radovici</person>
</persons>
<links>
<link href="https://wyliodrin.studio">Wyliodrin STUDIO website</link>
<link href="https://www.github.com/wyliodrinstudio">Wyliodrin STUDIO source code</link>
<link href="https://www.npmjs.com/package/wstudio-web">Wyliodrin STUDIO offline web version</link>
<link href="https://submission.fosdem.org/feedback/9706.php">Submit feedback</link>
</links>
<date>2020-02-02T12:20:00+01:00</date>
</event>
<event id="9810">
<start>12:40</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>duckdb</slug>
<title>DuckDB</title>
<subtitle>An Embeddable Analytical Database</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;We present DuckDB, our new, Open Source embedded analytical data management system.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Data management systems have evolved into large monolithic database servers running as stand-alone processes. This is partly a result of the need to serve requests from many clients simultaneously and partly due to data integrity requirements. While powerful, stand-alone systems require considerable effort to set up properly and data access is constricted by their client protocols. There exists a completely separate use case for data management systems, those that are embedded into other processes where the database system is a linked library that runs completely within a ``host'' process. The most well-known representative of this group is SQLite, the most widely deployed SQL database engine with more than a trillion databases in active use. SQLite strongly focuses on transactional (OLTP) workloads, and contains a row-major execution engine operating on a B-Tree storage format. As a consequence, SQLite's performance on analytical (OLAP) workloads is very poor.&lt;/p&gt;
&lt;p&gt;There is a clear need for embeddable analytical data management. This needs stems from two main sources: Interactive data analysis and edge computing. Interactive data analysis is performed using tools such as R or Python. The basic data management operators available in these environments through extensions (dplyr, Pandas, etc.) closely resemble stacked relational operators, much like in SQL queries, but lack full-query optimization and transactional storage. Embedded analytical data management is also desirable for edge computing scenarios. For example, connected power meters currently forward data to a central location for analysis. This is problematic due to bandwidth limitations especially on radio interfaces, and also raises privacy concerns. An embeddable analytical database is very well-equipped to support this use case, with data analyzed on the edge node. The two use cases of interactive analysis and edge computing appear orthogonal. But surprisingly, the different use cases yield similar requirements.&lt;/p&gt;
&lt;p&gt;In this talk, we present our new system, DuckDB. DuckDB is a new purpose-built embeddable relational database management system created at the Database Architectures group of the CWI. DuckDB is available as Open-Source software under the permissive MIT license. To the best of our knowledge, there currently exists no purpose-built embeddable analytical database despite the clear need outlined above. DuckDB is no research prototype but built to be widely used, with millions of test queries run on each commit to ensure correct operation and completeness of the SQL interface.&lt;/p&gt;
&lt;p&gt;DuckDB is built from the ground up with analytical query processing in mind. As storage, DuckDB uses a single-file format with tables partitioned into columnar segments. Data is loaded into memory using a traditional buffer manager, however, the blocks that are loaded are significantly larger than that of a traditional OLTP system to allow for efficient random seeks of blocks. Queries are processed using a vectorized query processing engine to allow for high performance batch processing and SIMD optimizations.&lt;/p&gt;</description>
<persons>
<person id="6953">Hannes Mühleisen</person>
</persons>
<links>
<link href="http://duckdb.org">DuckDB Website</link>
<link href="https://github.com/cwida/duckdb">GitHub repo</link>
<link href="https://submission.fosdem.org/feedback/9810.php">Submit feedback</link>
</links>
<date>2020-02-02T12:40:00+01:00</date>
</event>
<event id="9366">
<start>13:00</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>apache_datasketches</slug>
<title>Apache DataSketches</title>
<subtitle>A Production Quality Sketching Library for the Analysis of Big Data</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;In​ the analysis of b​ig data there are often problem queries that don’t scale because they require huge compute resources to generate exact results, or don’t parallelize well. Examples include c​ount-distinct, ​quantiles, most frequent items, joins, matrix computations, and graph analysis. Algorithms that can produce accuracy guaranteed approximate answers for these problem queries are a required toolkit for modern analysis systems that need to process massive amounts of data​ quickly. For interactive queries there may not be other viable alternatives, and in the case of real­-time streams, these specialized algorithms, called stochastic, s​treaming, sublinear algorithms,​ or 's​ketches',​ are the only known solution. This technology has helped Yahoo successfully reduce data processing times from days to hours or minutes on a number of its internal platforms and has enabled subsecond queries on real-time platforms that would have been infeasible without sketches. This talk provides a short introduction to sketching and to Apache DataSketches, an open source library of these algorithms designed for large production analysis systems.&lt;/p&gt;</abstract>
<description>&lt;p&gt;Fast:
Sketches are fast. The sketch algorithms in this library process data in a single pass and are suitable for both real-time and batch. Sketches enable streaming computation of set expression cardinalities, quantiles, frequency estimation and more. This allows simplification of system's architecture and fast queries of heretofore difficult computational tasks.&lt;/p&gt;
&lt;p&gt;Big Data Platforms:
This library has been specifically designed for big data platforms. Included are adaptors for Hadoop Pig, Hive, Spark, Druid, and Postgresql, which also can be used as examples for other systems, and many other capabilities typically required in big data analysis systems. For example, a Memory package for managing large off-heap memory data structures. Our sketch library is implemented in Java, C++ and Python and provides binary compatibility across languages and platforms. Some of our sketches provide off-Java-heap capability which dramatically improves performance in large systems. Our APIs provide a rich set of options to enable fine tuning performance parameters that are particularly important for large systems.&lt;/p&gt;
&lt;p&gt;Analysis:
Built-in Theta Sketch set operators (Union, Intersection, Difference) produce sketches as a result (and not just a number) enabling full set expressions of cardinality, such as ((A ∪ B) ∩ (C ∪ D)) \ (E ∪ F). This capability along with predictable and superior accuracy (compared with Include/Exclude approaches) enable unprecedented analysis capabilities for fast queries.&lt;/p&gt;</description>
<persons>
<person id="3098">Claude Warren</person>
</persons>
<links>
<link href="http://datasketches.apache.org">Project Website</link>
<link href="https://docs.google.com/presentation/d/1HP9uhWKCcRMZC96ZL1J0Jwup-cmvqIB3W7aKrvbC27M/edit?usp=sharing">Draft Presentation</link>
<link href="https://submission.fosdem.org/feedback/9366.php">Submit feedback</link>
</links>
<date>2020-02-02T13:00:00+01:00</date>
</event>
<event id="9219">
<start>13:20</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>reuse_code_licensing</slug>
<title>Go REUSE to license your code</title>
<subtitle>Free Software licensing made simple for everyone</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Why is it so hard to detect the licensing and copyright information of source code? Because it is a tedious and often confusing task for developers to provide this information. The REUSE project changes that! With three simple steps, it makes adding and reading licensing and copyright information easy for both humans and machines. In this presentation, Max Mehl will guide through the REUSE principles and presents how to make clear licensing simple.&lt;/p&gt;</abstract>
<description>&lt;p&gt;If you want to grant users the freedom to use, study, share, and improve your software, you have to grant those freedoms in the license of the software. To encourage people to develop Free Software, we help developers to understand and apply Free Software licensing. REUSE, started in 2017, contributes to this goal. Any project following the initiative's recommendations makes copyright and licensing information readable to both: humans and machines. This way, we want to ensure that individuals, organisations and companies who are re-using code are aware of the license terms chosen by the original author.&lt;/p&gt;
&lt;p&gt;REUSE does not reinvent the wheel. On the opposite, it integrates nicely into development processes and other best practices for Free Software licensing. Additionally, there are tools and documentation to help you get started. We will have a closer look at these during this talk.&lt;/p&gt;</description>
<persons>
<person id="3794">Max Mehl</person>
</persons>
<links>
<link href="https://reuse.software">REUSE website</link>
<link href="https://submission.fosdem.org/feedback/9219.php">Submit feedback</link>
</links>
<date>2020-02-02T13:20:00+01:00</date>
</event>
<event id="9851">
<start>13:40</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>pictor_radio_telescope</slug>
<title>PICTOR: A free-to-use open source radio telescope</title>
<subtitle/>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;PICTOR, located in Athens, Greece, consists of a 1.5-meter parabolic antenna that allows anyone to make continuous and spectral (i.e. hydrogen line) drift-scan observations of the radio sky in the 1300~1700 MHz regime for free. The goal of this effort is to introduce students, educators, astronomers and others to the majesty of the radio sky, promoting radio astronomy education, without the need of building a large and expensive radio telescope.&lt;/p&gt;
&lt;p&gt;PICTOR is a fully open source (software &amp;amp; hardware) project: https://github.com/0xCoto/PICTOR&lt;/p&gt;</abstract>
<description>&lt;p&gt;PICTOR is a free-to-use open source and open hardware radio telescope that aims to promote radio astronomy on a budget. It consists of a 1.5 meter parabolic dish antenna, a 1420 MHz-optimized feedhorn, a two stage low noise amplifier (LNA) with a built-in high-pass filter, and an RTL-SDR. Future upgrades may also use higher-bandwidth SDRs, such as the LimeSDR Mini.&lt;/p&gt;
&lt;p&gt;This radio telescope allows users to measure hydrogen line emissions from our galaxy. Under certain conditions, hydrogen atoms can emit photons with a wavelength of 21 cm, which corresponds to a frequency of 1420.405 MHz. Because our galaxy is so rich in terms of neutral hydrogen, a radio telescope like PICTOR is capable of detecting such faint radio emissions. When the telescope is pointing to the galactic plane (the Milky Way band), the intensity around 1420 MHz gets significantly stronger. Radio astronomers are able to use information like the Doppler shift such emissions have undergone, in order to determine neutral hydrogen concentration, map the spiral geometry of our galaxy, and even provide evidence for the existence of dark matter by plotting the rotation curve of the Milky Way!&lt;/p&gt;
&lt;p&gt;In order to observe with PICTOR, a user can just visit www.pictortelescope.com, click &quot;Observe&quot;, fill in their observation parameters (frequency, observing duration etc.) and submit their observation, and as soon as the observation is finished, the user will receive an email with their observation data and the parameters they entered.&lt;/p&gt;
&lt;p&gt;Since the initial launch, PICTOR has gotten lots of updates and improvements, particularly in the software backend, providing more data to the users, using advanced techniques to increase the signal-to-noise ratio by calibrating spectra and mitigating radio frequency interference (RFI) (if present), and more.&lt;/p&gt;
&lt;p&gt;There is also a PDF for users who are unfamiliar with radio astronomy and radio telescopes to get started: https://www.pictortelescope.com/Observing&lt;em&gt;the&lt;/em&gt;radio&lt;em&gt;sky&lt;/em&gt;with_PICTOR.pdf&lt;/p&gt;
&lt;p&gt;PICTOR is a fully open source (software &amp;amp; hardware) project, and everything can be found on the GitHub repository: https://www.github.com/0xCoto/PICTOR&lt;/p&gt;</description>
<persons>
<person id="6974">Apostolos Spanakis-Misirlis</person>
</persons>
<links>
<link href="https://www.pictortelescope.com/">Website</link>
<link href="https://www.pictortelescope.com/observe">PICTOR Telescope Control</link>
<link href="https://www.pictortelescope.com/Observing_the_radio_sky_with_PICTOR.pdf">PDF Guide</link>
<link href="https://www.github.com/0xCoto/PICTOR">Official GitHub Repository</link>
<link href="https://submission.fosdem.org/feedback/9851.php">Submit feedback</link>
</links>
<date>2020-02-02T13:40:00+01:00</date>
</event>
<event id="9055">
<start>14:00</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>dataverse</slug>
<title>Advancing science with Dataverse</title>
<subtitle>Publication, discovery, citation, and exploration of research data.</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;Dataverse is open source research data repository software installed by 48 institutions around the world and translated into ten languages. It facilitates data sharing, allowing researchers to replicate and build upon each other's work and receive academic credit in the form of citations for publishing data. Data deposited into Dataverse installations is made more discoverable through harvesting of metadata via standard protocols, publication to registries such as DataCite, and indexing into scholarly search engines such as Google Dataset Search. Data exploration is enabled by a variety tools contributed by the international Dataverse community that make use of Dataverse APIs to get data in and out. These APIs also enable a variety of integrations with scholarly publishing systems such as electronic lab notebooks, journal systems, reproducibility platforms, and more.&lt;/p&gt;</abstract>
<description>&lt;p&gt;In this talk a core developer for Dataverse will introduce the audience to the world of scholarly publishing, making the case for data publication and how it contributes to the advancement of science. An emphasis will be made on how Dataverse goes beyond simply being open source by being friendly to contributions from newcomers.&lt;/p&gt;</description>
<persons>
<person id="6423">Philip Durbin</person>
</persons>
<links>
<link href="https://dataverse.org">Dataverse project website</link>
<link href="https://github.com/IQSS/dataverse">Dataverse source code (core)</link>
<link href="http://guides.dataverse.org">Dataverse documentation</link>
<link href="https://submission.fosdem.org/feedback/9055.php">Submit feedback</link>
</links>
<date>2020-02-02T14:00:00+01:00</date>
</event>
<event id="9611">
<start>14:20</start>
<duration>00:15</duration>
<room>H.2215 (Ferrer)</room>
<slug>radicle_code_collaboration</slug>
<title>Towards decentralized alternatives for code collaboration</title>
<subtitle>Building Radicle, a peer-to-peer network for code collaboration</subtitle>
<track>Lightning Talks</track>
<type>lightningtalk</type>
<language/>
<abstract>&lt;p&gt;This talk will walk the audience through Radicle, a peer-to-peer network for code collaboration. It will touch on the design approach (outlined in the description) of the Radicle stack and outline the project's next steps and challenges for the coming year as we launch our network. It's narrative will also reflect the potential of distributed technology for free and open source sustainability and resilience. Radicle (http://radicle.xyz/) is a free and open source project supported by Monadic (https://monadic.xyz/).&lt;/p&gt;</abstract>
<description>&lt;p&gt;Radicle is a peer-to-peer network for code collaboration. It's a decentralized collaboration environment that’s designed to be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Offline first&lt;/strong&gt; : all data, including issues, comments and other social artifacts is yours &amp;amp; lives on your machine.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Peer-to-peer&lt;/strong&gt; : with no central server or intermediary in control.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cryptographically secure&lt;/strong&gt; : user data that is tamper-proof &amp;amp; unforgeable, using public key cryptography.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Programmable&lt;/strong&gt; : developers can program the way in which they collaborate.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interoperable &amp;amp; open&lt;/strong&gt; : reflecting the values of the open source community.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Radicle integrates with distributed version control systems like git and includes a high-level language with reprogrammable semantics, P2P networking for sharing application state, and flexible command line tools. Inspired by P2P protocols like &lt;a href=&quot;https://www.scuttlebutt.nz/&quot;&gt;Secure Scuttlebutt&lt;/a&gt;, radicle connects distributed version control with peer-to-peer networking to make collaboration a primitive – starting with git and building up an entirely peer-to-peer developer experience that encourages experimentation around how we write software together. In other words, radicle lets developers program the process of writing code, shaping their workflow around a specific project or context.&lt;/p&gt;
&lt;p&gt;Like many P2P systems, radicle uses an offline-first model. Issues, comments, and other social artifacts are stored locally as a log of events and synced automatically with your collaborators. While git repositories are already portable, social artifacts are not - radicle aims to change this. Radicle also allows you to define entirely new message types: projects, feature requests, releases, etc., each with their own event streams, metadata, and access control policies. All of this information is completely portable and self-amending in situ.&lt;/p&gt;
&lt;p&gt;Making any kind of semantic modification to a decentralized data structure is typically difficult to coordinate and prone to forks, but radicle’s programmable evaluator makes this process straightforward, safe, and immediate. Additionally, built-in aggregate signatures allow for the definition of custom security models to read or modify each chain, even to revise an access control policy.&lt;/p&gt;
&lt;p&gt;Finally, radicle comes with sensible defaults, ensuring you can be productive right away, while also giving programmers a flexible system for rolling their own software collaboration workflow. Inspired in many ways by &lt;a href=&quot;https://www.gnu.org/software/emacs/&qu
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment