FOSDEM 2019 ULB (Université Libre de Bruxelles) Brussels 2019-02-02 2019-02-03 2 09:00:00 00:05:00 09:30 00:25 Janson keynotes_welcome Welcome to FOSDEM 2019 Keynotes keynote <p>FOSDEM welcome and opening talk.</p> <p>Welcome to FOSDEM 2019!</p> FOSDEM Staff Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:00 00:50 Janson full_software_freedom Can Anyone Live in Full Software Freedom Today? Confessions of Activists Who Try But Fail to Avoid Proprietary Software Keynotes keynote <p>The FOSS community suffers deeply from a fundamental paradox: every day, there are more lines of freely licensed code than ever in history, but, every day, it also becomes slightly more difficult to operate productively using only Open Source and Free Software.</p> <p>In one sense, we live in the paramount of success of FOSS: developers can easily find jobs writing mostly freely licensed software. Companies, charities, trade associations, and individual actors collaborate together on the same code bases in (relative) harmony. The entire Internet would cease to function without FOSS. Yet, the "last mile" of the most critical software that we rely on in our daily lives is usually proprietary.</p> <p>We, the presenters of this talk, live as the canaries in the coalmine of proprietary software. We have spent our lives seeking to actively avoid proprietary software but both personally and professionally, we find ourselves making compromises. In this talk, we will report the results of our diligent efforts to use only FOSS in our daily work.</p> <p>Ideally, it would be possible to live a software freedom lifestyle in the way a vegetarian lives a vegetarian lifestyle: minor inconveniences at some restaurants and stores, but generally most industrialized societies provide opportunity and resources to support that moral choice. Not so with proprietary software: often, the compromise is between "spend hours or days for a task that would take mere minutes with proprietary software". In other cases, important opportunities are simply not offered to those who chose software freedom.</p> <p>The advent of network services, which mix server-side secret software, and proprietary Javascript or "Apps", are central to the decline in the ability to live a productive, convenient life in software freedom. However, few in our community focus on the implications of this and related problems, and few now even try to resist. We have tried to resist, and while we have succeeded occasionally, we have failed overall to live life in software freedom.</p> <p>In this talk, we will report on where the resistance fails the most and why. Finally, we will make suggestions of where volunteer developers can most strategically focus their efforts to build a world where all can live in software freedom.</p> Bradley M. Kuhn Karen Sandler Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:50 Janson floss_internet_future FLOSS, the Internet and the Future Keynotes keynote <p>The FLOSS movement is not just about convenience; our DNA includes a set of values that bring life to FLOSS. We’ve seen some of these values encoded in the infrastructure of the Internet and online life. We’ve also seen very troubling characteristics emerge online, where individuals and society face new and sometimes explosive risk. This talk explores how the FLOSS movement might reevaluate our values and seek to apply the lessons to our own projects and perhaps more broadly to online life as well.</p> <p>Today FLOSS software is everywhere. In some ways the dream of 20 years ago has been realized. FLOSS software is the norm, GitHub is mainstream. The technology that dominates our era — the internet — is firmly based in FLOSS software, open standards, and interoperability. These are victories, and we should celebrate them. FLOSS was radical idea, and we proved its value.</p> <p>However, Internet life is increasingly run by a handful of organizations. Many of these, like Facebook, google and amazon have FLOSS software at the core of they systems. However, the layers on top are not FLOSS and there is little openness in the systems they create and run. Today a common refrain is “the Internet is broken. What can we do?”</p> <p>One part of the answer to this is to be found in FLOSS software. That’s because FLOSS is not just a matter of convenience, of grabbing a library somewhere because it’s quick and efficient. FLOSS is not something of the past. FLOSS is not something settled, and comfortable and run of the mill.</p> <pre><code>FLOSS is about freedom. It’s about the choice of the individual to not accept what we are given, the freedom to branch off, to fork off and create something different. Floss software is not about wringing the very last cent of value out of a piece of software for the benefit of a small set of people. FLOSS software is about creating value for everyone. FLOSS software is about collaboration. </code></pre> <p>We need all of these values in digital life today. We don’t have them, just as we didn’t have them in desktop computing in the windows era. We didn’t have them until FLOSSS made them real. Starting with developer tools and compilers and building to operating systems,systems, and then browsers and then all sorts of software. We need that journey in digital life as well.</p> <p>It won’t be easy. Facebook and Google and Amazon and Alibaba are powerful monopolies just as Microsoft was in the previous era. It won’t be easy— there will be a period of building developer tool s and libraries before the FLOSS movement generates a raft of full fledged complex products. It may not be easy, but its worthwhile. its’ beyond worthwhile — its critical. And it can be wildly rewarding.</p> <p>FLOSS advocates and developers can not solve all the problems of digital life. But we can play an important role, a critical role. The world needs technologists who show that a better way is possible. We show a better ways possible by building a better way. By building tools and libraries and products that give a meaningful choice. Some will protect privacy, others will be algorithms and data sets that are transparent and verifiable. Others you will dream up. or perhaps you are working on them now.</p> <p>For many people today technology is becoming frightening. the world is looking for technologists who with values, and technologies who actually live by their values. The FLOSS world does this. We have licenses that we don’t change whenever it’s convenient or might bring us more money than fame. We live with them because we have decided as a community that our licenses reflect enduring values that are bigger than we are.</p> <p>We need FLOSS communities and projects in an every larger variety of the tech world. Perhaps that means reaching outside our own comfort zones. Or perhaps it means expanding the circle to include colleagues in open data, AI and other new technologies. We should be examples, support examples, and demand that more and more of online life incorporate the values that draw us to FLOSS. And we build and support those people and projects that are doing so.</p> Mitchell Baker Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:50 Janson blockchain_ethics Blockchain: The Ethical Considerations Keynotes keynote <p>What kind of world do we want to see blockchain make? Upsides like increased transparency, distributed control and the elimination of duplicative administrative work are appealing, but where are the potential downsides? We no longer live in a world where we can put off a conversation about the social impact of our work. Old industries used to call negative effects of their work "externalities" and it would sometimes take decades to discover the negative social effects and environmental destruction that had been wreaked by a new technological process.</p> <p>What kind of world do we want to see blockchain make? Upsides like increased transparency, distributed control and the elimination of duplicative administrative work are appealing, but where are the potential downsides? We no longer live in a world where we can put off a conversation about the social impact of our work. Old industries used to call negative effects of their work "externalities" and it would sometimes take decades to discover the negative social effects and environmental destruction that had been wreaked by a new technological process.</p> <p>Software is collaborative and fast which means early technical decisions have a huge impact on the way we grow. Is the heavy amount of computing power required for bitcoin widening the global wealth gap in a way that best resembles a fictional dystopia? Is the decentralization promised only available to certain kinds of players because of certification gate-keeping or network effects that rely on huge amounts of existing capital?</p> <p>Given the power and ubiquity of software, nothing is truly "external" to our work. Once we identify the ways that blockchain could potentially be used to build a nightmarish dystopia, what do we do? How can we ensure that the power and potential to improve lives is as evenly distributed as possible?</p> Deb Nicholson Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:50 Janson mattermost_layered_extensibility Mattermost’s Approach to Layered Extensibility in Open Source Communications maintrack <p>Mattermost is an open source, enterprise-grade messaging platform with thousands of contributors. At Mattermost, we set out to build a platform that would support a variety of extensions. Ranging from simple webhooks accepting curl commands, to bot and integration frameworks, a rich plug-in architecture across server and client experiences, to full access to system APIs with language-specific drivers. All of this is built on top of an open source engine with an open and accessible data model in SQL. We’ll chat about our approach to extending the platform as well as tools, technologies, and best practices for developers writing integrations with our developer toolkit.</p> Corey Hulen Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:50 Janson matrix_french_state Matrix in the French State What happens when a government adopts open source & open standards for all its internal communication? Communications maintrack <p>At the beginning of 2018, the French Government reached out to Matrix.org to discuss the idea of creating an entirely open source, standards-based encrypted messaging app as the official means of instant messaging and VoIP communication across the government; replacing adhoc usage of centralised proprietary services such as Telegram and WhatsApp. As of summer 2018, their app exists (a public fork of Riot.im), and there is now a massive federation of Matrix servers deployed throughout the government serving up to 5.5M users, spanning over 30 clusters, letting each ministry run and admin their own operationally independent deployment. In this talk we'll tell the adventure of rolling out FOSS communications at this scale, and give a tour of the architecture and all the work that's gone into Matrix along the way to reach a 1.0 capable of powering government-grade communication.</p> <p>Matrix is an open source project that defines a protocol for secure, decentralised real-time communication - providing simple HTTP+JSON APIs for sending and receiving instant messages, VoIP calls, file transfers, and any other arbitrary realtime data. In this talk we'll tell the tale of how the French Government has deployed Matrix at massive scale, show off their app and its capabilities, and dive into all the challenges and solutions which came up along the way. Particularly, we'll cover what was needed to finalise Matrix's end-to-end encryption such that it can be turned on by default for all conversations; designing whole new extensions to Matrix to support content-scanning of E2E encrypted attachments, and the pleasures of high-availability clustering and management of Matrix server farms by Ansible.</p> <p>Meanwhile, Matrix itself is rushing towards a 1.0 release (as of Oct 2018) - defining stable releases of the spec across all API surfaces; defining the long-term open governance process for Matrix; iterating on the room state merge resolution protocol which lies at the core of Matrix's decentralisation; and massive amounts of performance work: reducing disk space by 10x thanks to improved state compression; switching from O(N) to O(1) state resolution via memoization; reducing sync sizes and client RAM by 3-5x via lazy-loading members; saving 2-3x RAM in Synapse by migrating from Python 2 to Python 3 etc. We'll give a tour of Matrix 1.0, and talk about what comes next!</p> Matthew Hodgson Matrix.org Homepage The Matrix.org Spec Matrix and Riot confirmed as the basis for France’s Secure Instant Messenger app Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:50 Janson dns_over_http DNS over HTTPS - the good, the bad and the ugly Why, how, when and who gets to control how names are resolved Communications maintrack <p>DNS over HTTPS (aka "DoH", RFC 8484) introduces a new transport protocol to do secure and private DNS messaging. Why was it made, how does it work and how users are free (to resolve names).</p> <p>The presentation will discuss reasons why DoH was deemed necessary and interesting to ship and deploy and how it compares to alternative technologies that offer similar properties. It will discuss how this protocol "liberates" users and offers stronger privacy (than the typical status quo).</p> <p>How to enable and start using DoH today.</p> <p>It will also discuss some downsides with DoH and what you should consider before you decide to use a random DoH server on the Internet.</p> Daniel Stenberg Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:50 Janson netflix_freebsd Netflix and FreeBSD Using Open Source to Deliver Streaming Video Communications maintrack <p>Netflix has built a CDN to distribute streaming media through most of the world. The content caches run a lightly customized version of the FreeBSD operating system. This presentation will describe how Netflix uses FreeBSD, and the benefits to both FreeBSD and Netflix.</p> <p>Netflix has built a CDN, called <a href="https://openconnect.netflix.com/">Open Connect</a>, to distribute streaming media through most of the world. According to <a href="https://www.sandvine.com/phenomena">Sandvine</a>, Netflix accounts for approximately 15% of all downstream traffic volume across the entire internet. The content caches in the Netflix CDN, also known as <a href="https://openconnect.netflix.com/appliances/">Open Connect Appliances</a> (or, simply, OCAs), run a lightly customized version of FreeBSD.</p> <p>In some ways, this is nothing special: many products are based on an open-source operating system. However, Netflix does something slightly unusual, in that its OCA operating system code closely tracks the FreeBSD "head" branch (their development branch). In fact, a commit to the upstream FreeBSD development branch will usually be fully deployed across Netflix's CDN within 5-15 weeks.</p> <p>The Netflix development team strives for monthly releases for the content caches. We try to synchronize the latest code from FreeBSD's head branch at least once during each monthly release cycle. We then test this code thoroughly before deploying it across the Open Connect network. It is common that we find at least some bugs; however, we are able to work with upstream developers to fix these while the commits are fresh in their mind. This early (and widespread) use of the code gives the upstream FreeBSD Project the benefit of quick deployment and validation of their development-branch code across a wide fleet of servers. Netflix gets the benefit of being able to quickly use new features, and of getting quick bug fixes.</p> <p>Although it might seem scary to run "development" code in production, we find that it works very well in practice. The FreeBSD development branch is usually quite stable. Additionally, we expect that we will find some bugs. However, we find that it is much better to find and fix those sooner, rather than later. Also, Netflix is committed to upstreaming most of our customizations that have general applicability. Tracking the upstream development branch keeps us in the best position to easily upstream our changes.</p> <p>In this presentation, Jonathan Looney will explain how Netflix uses the FreeBSD development branch code to help Netflix produce the robust operating system which supports the Netflix CDN, and the synergies Netflix and FreeBSD see through this use.</p> Jonathan Looney Open Connect Website FreeBSD Website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:00 00:50 Janson tpm2 The TPM2 software community Getting started as a user, becoming a contributor Hardware maintrack <p>Security is and has been a hot topic in recent history. Software and hardware systems are increasingly complex, vulnerabilities increasingly publicised and attack methodologies increasingly sophisticated. This trend began long ago as did efforts to design and implement foundational technologies to curtail it. The trusted platform module (TPM) is one such technology. It was specifically designed to thwart attacks that aim to steal or misuse sensitive cryptographic keys. Despite its obvious benefits, TPM adoption on OSS platforms was historically minimal.</p> <p>The next iteration of TPM implementations (TPM2) is quickly reaching critical mass in consumer computing platforms. Aiming to capitalize on the availability of TPM2 hardware, the tpm2-software organization on Github (https://github.com/tpm2-software) has coalesced as a community around the implementation of the TCG standard APIs, and their integration into common software tool and infrastructure. This talk will start with an overview of the tpm2-software community, it's history, it's current direction and how new users can get involved. The talk will then shift to discuss the technical details of the TPM2 software stack (TSS2) infrastructure and programming APIs and our current efforts to improve the security properties of OSS through their adoption. Finally, we'll conclude by presenting a use case driving the implementation of a new TPM2 Command Transmission Interface (TCTI) module enabling use of the TPM2 from with the SGX trusted execution environment.</p> <p>Security is and has been a hot topic in recent history. Software and hardware systems are increasingly complex, vulnerabilities increasingly publicised and attack methodologies increasingly sophisticated. This trend began long ago as did efforts to design and implement foundational technologies to curtail it. The trusted platform module (TPM) is one such technology. It was specifically designed to thwart attacks that aim to steal or misuse sensitive cryptographic keys. Despite its obvious benefits, TPM adoption on OSS platforms was historically minimal.</p> <p>The next iteration of TPM implementations (TPM2) is quickly reaching critical mass in consumer computing platforms. Aiming to capitalize on the availability of TPM2 hardware, the tpm2-software organization on Github (https://github.com/tpm2-software) has coalesced as a community around the implementation of the TCG standard APIs, and their integration into common software tool and infrastructure. This talk will start with an overview of the tpm2-software community, it's history, it's current direction and how new users can get involved. The talk will then shift to discuss the technical details of the TPM2 software stack (TSS2) infrastructure and programming APIs and our current efforts to improve the security properties of OSS through their adoption. Finally, we'll conclude by presenting a use case driving the implementation of a new TPM2 Command Transmission Interface (TCTI) module enabling use of the TPM2 from with the SGX trusted execution environment.</p> Philip Tricca Andreas Fuchs tpm2-software github organization Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:00 00:50 Janson mender Mender - an open source OTA software update manager for IoT Hardware maintrack <p>Robust software updates on Embedded Linux devices is complex, and doing robust software updates over-the-air adds to the complexity. The hardships come of course from the embedded environment which differ in many ways compared to desktop or server Linux installations, where you must handle poor mobile network connectivity, sudden power-loss and never leave a device in a unusable state (brick) when doing the update OTA.</p> <p>There are a lot of examples that have gotten attention in media, where unstable software update solutions have caused real-life problems which could have been mitigated by a robust software solution that is able to handle the corner cases that exist in the embedded environment.</p> <p>In this talk Mirza Krak will present Mender, Apache 2.0 licensed end-to-end software update solution. This is a deep-dive session that will cover:</p> <p>Mender project ecosystem Insights to technical solutions/choices Security model/approach Community</p> <p>Drew will also present some of the features that are being worked on and what lays ahead for the project.</p> <p>Benefit of Open Source Ecosystem</p> <p>This presentation will help the open source community get detailed insight of the Mender project and general knowledge of designing an software update system for IoT devices.</p> Drew Moseley Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:50 K.1.105 (La Fontaine) nbdkit Better loop mounts with NBD Take your loop mounts to the next level with nbdkit Storage maintrack <p>Loop mounts let you mount a simple file as a device. But imagine having "FUSE for loop mounts". Linux Network Block Device (NBD) with the nbdkit server takes the concept of loop mounting to the next level, giving you a flexible, scriptable loop device, useful for end users, and for developers wanting to test anything involving a block device.</p> <p>Loop mounts let you mount a simple file as a device. Network Block Device (NBD) with the nbdkit server takes this concept to the next level. You can mount compressed files. Turn multiple files into a partitioned device. Mount esoteric formats like VMDK. NBD can also be used for testing: You can create giant devices up to 2^63 bytes in RAM and find out how filesystems cope. Inject errors on demand into your block devices to test error detection and recovery. Add delays to make disks deliberately slow. I will also show you how to write useful block devices using 10 line shell scripts, and show some advanced live visualizations of how the kernel and filesystems use block devices.</p> Richard Jones nbdkit home page Author's blog git repo containing paper, slides, etc Test presentation Video recording (WebM/VP9) Video recording (mp4) Blog entry Video subtitles Submit feedback 12:00 00:50 K.1.105 (La Fontaine) zfs_caching ELI5: ZFS Caching Explain Like I'm 5: How the ZFS Adaptive Replacement Cache works Storage maintrack <p>An in-depth look at how caching works in ZFS, specifically the Adaptive Replacement Cache (ARC) algorithm. Assumes no prior knowledge of ZFS or operating system internals.</p> <p>ZFS does not use the standard buffer cache provided by the operating system, but instead uses the more advanced "Adaptive Replacement Cache" (ARC).</p> <ul> <li>What is a cache</li> <li>How most caches work (LRU)</li> <li>Pros</li> <li>Cons</li> <li>What makes the ARC different?</li> <li>Recently Used</li> <li>Frequently Used</li> <li>Ghost Lists</li> <li>What makes the ARC Adaptive?</li> <li>Access Patterns (How the ARC adjusts over time)</li> <li>Compressed ARC</li> <li>Advantages over compressed memory or swapcache</li> <li>Tuning for...</li> <li>File Server</li> <li>iSCSI Target</li> <li>Database</li> <li>Hypervisor</li> </ul> Allan Jude ZFS Books Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:50 K.1.105 (La Fontaine) security_flaws AMENDMENT Handling Security Flaws in an Open Source Project - Jeremy Allison Miscellaneous maintrack <p>Please note that this replaces the talk by Sage Weil which has been rescheduled to 09.00 Sunday in Room Ferrer H.2215 (Ferrer).</p> Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:50 K.1.105 (La Fontaine) square_kilometre_array Square Kilometre Array and its Software Defined Supercomputer ... and a very fast parallel file system Storage maintrack <p>The next generation of research infrastructure and large scale scientific instruments will face new magnitudes of data. StackHPC have been working with Cambridge University on the Square Kilometre Array (SKA) radio telescope project (in collaboration with both CERN and Cambridge University) to build a performance prototype using OpenSource tools such as OpenStack and Kubernetes.</p> <p>One of the biggest challenges is building storage fast enough to deal with the expected 4Tb/s Read and 0.5 Tb/s Write, yet flexible enough to deal with the expected variety of workloads being run on the system. This has involved much collaboration with CERN given the shared challenges posed by the High-Luminosity LHC upgrade.</p> <p>The second aspect is making a system that keep up with the ever changing nature of the workloads running on the system. Key ideas from this project are being deployed in production on Cambridge University's Cumulus supercomputer (#87 in the Nov18 top500 https://www.top500.org/system/179577). We explore how this move away from a single Slurm cluster is helping meet a broader range of research computing needs.</p> John Garbutt https://rse-cambridge.github.io/data-acc/ https://github.com/openstack/kayobe https://www.iris.ac.uk OpenStack presentation joint with CERN and SKA https://www.skatelescope.org Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:50 K.1.105 (La Fontaine) postgresql11 PostgreSQL Goes to 11! Databases maintrack <p>The latest and greatest version of PostgreSQL is PostgreSQL 11.</p> <p>This talk will start off with some history of the community and a description of the development process including some metrics trends. It will then cover a high level overview of the features which will be part of PostgreSQL 11, and prognosticate a bit about the future of PostgreSQL.</p> <p>Community * History * Development Process PostgreSQL 11 * Patches committed 12 and Beyond * Actively worked items * Under active discussion</p> Joe Conway Slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:50 K.1.105 (La Fontaine) hugepages_databases Hugepages and databases working with abundant memory in modern servers Databases maintrack <p>The introduction of the 64-bit version of the x86 architecture allowed servers to operate with much larger amounts of memory and the use of memory pages of different sizes. This talk will explore the Linux kernel implementation of HugePages in view of two of the most popular open source RDBMS, MySQL and PostgreSQL. We will be looking at how HugePages works, what is necessary to configure to make use of it, and whether it is really worth and under which circumstances.</p> <p>The turn of the century saw the introduction of the 64-bit version of the popular x86 instruction set. The flagship feature of this new architecture specification was the use of a larger physical (and virtual) address space, increasing the practical memory limit of 4GB (or 64GB when in PAE mode) found in 32-bit x86 processors to values expressed in the order of Terabytes. Beyond the obvious advantage of operating with more memory, a bigger address space allowed programs to store larger amounts of data in memory: in many cases it made possible the mapping of entire files (instead of only fragments of it) in the respective process' address space.</p> <p>Another important factor to consider in this context is the translation of virtual memory (divided in "pages") into physical memory. This direct mapping is maintained in a data structure called "page table". However, each lookup made there is an expensive operation, thus the Memory Management Unit (MMU) employs a caching mechanism named Translation Lookaside Buffer (TLB) for faster lookups. Whenever a translation from virtual memory to physical memory is necessary the TLB is verified first. If the target entry is found to be there the physical address is promptly returned, otherwise a TLB miss is computed and a more costly lookup in the page table is made. But as any other cache, it can only fit a limited number of entries. Making optimal usage of this space is important: the bigger the page size is the most of the memory area will be mapped by the TLB. Applications that perform a lot of memory accesses may obtain performance improvements by using large pages due to reduced TLB misses (https://dev.mysql.com/doc/refman/8.0/en/large-page-support.html).</p> <p>A class of software that potentially benefits from operating with huge pages is that of database systems with their particular caching mechanisms. The PostgreSQL manual (https://www.postgresql.org/docs/9.6/static/kernel-resources.html) states that "using huge pages reduces overhead when using large contiguous chunks of memory, as PostgreSQL does, particularly when using large values of shared_buffers".</p> <p>While MySQL and PostgreSQL do have support for huge pages MongoDB doesn't. Applications running in userland that do not natively support huge pages may indirectly make use of them through a kernel feature named Transparent HugePages (THP). But does it works the same ?</p> <p>Furthermore, the enabling and use of huge pages is not made through a simple configuration flag that may be turned on or off: one needs to specify the number of huge pages needed in advance as well as the preferable page size. How should a database administrator makes this choice, and based in which factors ? Is there any tweaks necessary in the database side in order to benefit from huge pages ? What are the possible drawbacks in its use ? In this presentation we'll have a look at how this applies to MySQL and PostgreSQL.</p> Fernando Laudares Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:00 00:50 K.1.105 (La Fontaine) postgresql_fsync PostgreSQL vs. fsync How is it possible that PostgreSQL used fsync incorrectly for 20 years, and what we'll do about it. Databases maintrack <p>About a year ago the PostgreSQL community discovered that fsync (on Linux and some BSD systems) may not work the way we always thought it is, with possibly disastrous consequences for data durability/consistency (which is something the PostgreSQL community really values).</p> <p>I'll walk you through fsync basics, explain how we always thought/assumed it works and how it actually behaves. I'll also discuss where the misunderstanding likely comes from - which is a mix of cultural and technical reasons rooted in the past. We'll see how this issue impacts current PostgreSQL deployments, what you can (and can't) do about it, and finally outline some plans for addressing it properly in the future.</p> Tomas Vondra Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:00 00:50 K.1.105 (La Fontaine) raft_in_scylla Raft in Scylla Consensus in an eventually consistent database Databases maintrack <p>This talk will cover the characteristics and requirements of Scylla's Raft implementation, how it enables strongly consistent updates, and how it improves the reliability and safety of internal processes, such as schema changes, node membership, and range movements.</p> <p>Eventually consistent databases choose to remain available under failure, allowing for conflicting data to be stored in different replicas (later repaired by background processes). Weakening the consistency guarantees improves not only availability, but also performance, as the number of replicas involved in a given operation can be minimized. There are, however, use-cases that require the opposite trade-off. Indeed, Apache Cassandra and Scylla provide Lightweight Transactions (LWT), which allow single-key linearizable updates. The mechanism underlying LWT is asynchronous consensus in the form of the Raft algorithm. In this talk, we'll describe the characteristics and requirements of Scylla's consensus implementation, and how it enables strongly consistent updates. We will also cover how consensus can be applied to other aspects of the system, such as schema changes, node membership, and range movements, in order to improve their reliability and safety. We will thus show that an eventually consistent database can leverage consensus without compromising either availability or performance.</p> Duarte Nunes Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:15 H.2215 (Ferrer) decentralizing_web_freedombox Creating a Computing Revolution: from Personal Computers to Personal Servers Lightning Talks lightningtalk <p>The rise of cloud computing in the 2010’s accelerated a process that had been going on since the dot-com boom: the centralization of the internet. In February 2010, Eben Moglen predicted the wide-scale data-mining brought about by the centralization of our network infrastructure and launched the FreedomBox project. In the eight years since, FreedomBox has become a device that can decentralize the web one box at a time. Join this session to learn about FreedomBox’s approach to decentralization and the importance of three elements of its design: hardware neutrality, software freedom, and user interface.</p> <p>In this 15-minute session, I will lecture for the full 15 minutes. I will discuss the FreedomBox project, the role of hardware neutrality in the FreedomBox project, and the role of user interface in the FreedomBox project.</p> <p>FreedomBox is an immensely flexible and secure private server system that builds freedom into the internet by empowering regular people to host their own internet services, like encrypted messengers, a VoIP server, websites, VPN, a metasearch engine, and much more. To that end, it couples a free software system with always-on, inexpensive, and power-efficient hardware about the size of a pocket dictionary. The hardware is a single-board computer that costs about 60 USD and offers the computing power of a smart phone in a case about the size of a deck of cards. The software is a 100% free and open source system available for download at no cost preloaded with many useful apps and tools designed to protect your freedom, privacy, and user rights. These private servers are designed to create and protect freedom on the internet using a bundle of software packed inside one small, inexpensive box: a FreedomBox.</p> Danny Haidar FreedomBox Software FreedomBox Foundation Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:20 00:15 H.2215 (Ferrer) cogito_identity Cogito Privacy starts with Identity Lightning Talks lightningtalk <p>We present Cogito, a mobile app that helps you remain in control of your identity. It supports a friendly way to identify yourself to websites, perform blockchain transactions and encryption. But most importantly, it guarantees that your identity is really owned by you. We believe this to be a good starting point for true privacy online.</p> <p>Identity may seem like a boring topic. Haven't we solved the problem of how to identify ourselves to websites a hundred different ways? Isn't this a solved problem?</p> <p>We argue that in order to guarantee true privacy it is essential to introduce new ways to identify ourselves.</p> <p>We present Cogito, a mobile app that helps you remain in control of your identity. Use it to create multiple facets of your identity to separate for instance your working life from your personal life.</p> <p>Traditionally, identities are bestowed on you by others. Your passport is issued to you by your government. Your bank account is given to you by a bank. Website credentials are given to you by the owner of the website.</p> <p>These identities are ultimately not under your control. You get them on loan from the institutes that issue them, and they are free to retract them as they deem necessary. This is no basis for true control over your data. This is no basis for privacy.</p> <p>With Cogito we've taken a cue from blockchains and PGP and use cryptographic identities. This involves generating a public-private key pair in which the public part is used as your identity (similar to a passport number or bank account number). The private key you keep to yourself because you can use it to prove that you are the owner of the identity.</p> <p>These self-sovereign identities are created and maintained by their owners. They can not be taken away from them and are therefore completely under their control. We believe that this is a prerequisite for true privacy.</p> <p>With Cogito we aim to make these self-sovereign identities very easy to use. Using a Cogito identity on a website is therefore as simple as scanning a QR code. Signing a blockchain transaction or decrypting data is as simple as pressing the 'accept' button.</p> <p>In our FOSDEM session, we will demonstrate not only how Cogito works, but also what developers can do with Cogito. We will discuss the architecture, show the demo app and the tutorial. We invite those who are interested to help develop Cogito further.</p> Mark Spanbroek Marcin Czenko Stefan van den Oord Cogito website A previous presentation on Cogito Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:40 00:15 H.2215 (Ferrer) emitter_pubsub Emitter: Scalable, fast and secure pub/sub in Go Lightning Talks lightningtalk <p>Emitter: scalable and real-time networking for IoT, web apps and gaming. Open source or cloud based.</p> <p>Emitter.io is a real-time messaging service for connecting online devices. It is a scalable, fast and secure pub/sub in Go.</p> <p>Emitter.io is a real-time messaging service for connecting online devices. - scalable: Built to handle millions of messages per second and to scale horizontally. - Fast: Designed to ensure reliable, speed-of-light message delivery and high throughput. - Secure: Supports TLS encryption, binary messages, expirable channel keys and permissions. - Open source: Source code is available on GitHub and packaged as a docker container. - Persistent: Messages can be stored for a period of time and sent to subscribers on demand. - No more limits: Uses standard MQTT protocol, supports message filtering.</p> Florimond Husquinet Emitter's official website Emitter on Github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:15 H.2215 (Ferrer) leela_chess Leela Chess Zero Learning chess from scratch Lightning Talks lightningtalk <p>This talk presents an overview of the open source project "Leela Chess Zero" (Lc0), a new type of chess engine based on the AlphaZero paper released by DeepMind. Lc0 learns to play chess solely by playing against itself without any human knowledge or intervention. Starting from scratch with random moves, its play improves each iteration using a powerful combination of reinforcement learning and neural networks. We rely both on an active open community for the code and computing resources as many petaflops are required to train a solid neural network. Currently the engine is among the four best in the world.</p> Folkert Huizinga main website source repos Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:20 00:15 H.2215 (Ferrer) malt_malloc MALT, A Malloc Tracker Lightning Talks lightningtalk <p>In HPC the memory available is still growing a lot with now soon TB of memory on one server. This is means more stress for the allocator and to underlying OS. This lead to more performance issue and mistakes on memory amangement handling in large applications.</p> <p>Memory missusage is also an issue for more common application like desktop applications with large code base.</p> <p>MALT is a memory profiling tool dedicated to memory management to provide temporal charts, global metrics and source code annotations. It comes with a nice web graphical interface to dig into the profile.</p> <p>I made my PhD. developing a memory allocator for HPC application on large scale supercomputers. During this period I observed a lot of unperformant patterns and issues on existing HPC app. Mostly on a multi-million line simulation and worked a lot to support this in my memory allocator to improve things.</p> <p>During my postdoc at the Exascale Computing Research Lab, I focused on implementing a memory profiler trying to show the user what the app is doing with the allocator and trying to provide ways to observe the common issues an mistakes in large scale apps.</p> <p>It also uses an uncommon approach for such tools in HPC as it provides a web-based interface using tools like D3JS/Bootstrap/Angular and exposed by a small nodejs webserver. It permits to fix a big issue in HPC when running remotely as the GUI of the profiler needs to be X-forwared which make it slow, badly themed. Or to run locally without having our source code at the same place. The web server permit to easily ssh-port-forward the interface and eventually to work at many people remotely looking at the same profile. This also provides quickly a nicer rendering with less development overhead.</p> <p>I used it a lot on my own development at CERN for a code scaling on 500 nodes and also shortly made a try on a large scale ~1.5 million line C++ application used by physicists there to check it didn't crash at this challenging scale. The tool currently limits himself to process analysis which means for an MPI app it dumps a profile file for each rank. But this is what is meaningful for memory management as a first step.</p> Sébastien Valat Website Github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:40 00:15 H.2215 (Ferrer) structured_concurrency Structured Concurrency Finding our way out of callback hell Lightning Talks lightningtalk <p>We've got rid of GOTO and the spaghetti code it leads to in 1970's. However, we are encoutering very much the same problems when writing concurrent code even now, 50 years later. Programmers are still stuck deep in the callback hell or state machine hell. Concurrent code still looks like spaghetti. And while Go language provided a tool to write unspaghettified concurrent code to the masses, by no way are all the pieces of the puzzle in place.</p> <p>This talk focuses on what's missing. It explains where the current mainstream paradigms break the vital principles of encapsulation, separation of concerns and correspondence between layout of the code and the execution flow.</p> <p>It introduces a bunch of current approaches covered by the umbrella term of "structured concurrency" that attempt to solve these problems.</p> <p>The talk may be interesting to anyone who has to deal with concurrency, irrespective of the language they are using.</p> <p>Besides looking at the problems at hand, the talk will show examples of structured concurrency in Python (Trio) and C (libdill).</p> Martin Sustrik Notes on structured concurrency, or: Go statement considered harmful Strcutured concurrency “Concurrency made easy”: coming soon to a programming language near you Exceptions vs Structured Concurrency Timeouts and cancellation for humans Coroutine Cancellation and Structured Concurrency libdill (C) Trio (Python) Structured Concurrency (Kotlin) Venice (Swift) Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:15 H.2215 (Ferrer) vboard_3d_vr VBoard, making web dashboards in 3D and VR Lightning Talks lightningtalk <p>There are plenty of tools that can analyze data in many ways, but just a few of them try to visualize this data in new ways. This is the aim of VBoard, a 100% open source web application that allows building visualizations and dashboards in 3D and VR using A-Frame as its core render library. The data is retrieved in real time using a ElasticSearch, and VBoard saves its objects (visualizations, dashboards) in it.</p> <p>In this talk I will show the functionality of VBoard, starting with a general overview, its installation steps and a simple step by step user guide. All of this in order to build a 3D and VR dashboard from scratch. To finish, I will show examples of what kind of visualization/dashboard you can build with VBoard using data retrieved with GrimoreLab related to open source projects (e.g., commits, usernames, repositories, etc.).</p> <p>The goal of VBoard is to have a complex data visualization system in a 3D and VR environment. It started as my master's thesis and finally became a web application that uses A-Frame as the visualization render engine and ElasticSearch as a database and search engine. Specifically, VBoard rests on A-FrameDC to show these data visualizations, A-FrameDC is a JavaScript library to create different kind of data visualizations based on A-Frame. A-FrameDC extends A-Frame, encapsulating it in another library so that the construction of 3D elements is focused on data visualization graphics and it allows the creation and interaction with them in a simple way. This library allows the creation of different kinds of charts, from the simplest 2D charts like pies to 3D charts like bubbles. VBoard takes advantage of A-FrameDC using it in a web interface, making the visualization building process easy and scalable, permitting also the persistence of the objects (visualization and dashboards) saving it in the same ElasticSearch that it does the queries.</p> <p>The talk will show how to create visualization and dashboards with VBoard. I will start by explaining how to install it in a few steps. I will show how to import open source project data (e.g., commits, usernames, repositories, organizations, etc.) to ElasticSearch using GrimoireLab in order to build the visualization with it. Then, I will build visualizations from scratch, showing its features and usability. You will see how simple it is to create a 3D and VR dashboard that relates useful data like the relation of users with repositories, organizations, etc.</p> David Moreno Master thesis GrimoireLab VBoard main page VBoard repo VBoard user guide Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:20 00:15 H.2215 (Ferrer) microcontrollers_python MicroPython – Python for Microcontrollers How high-level scripting languages make your hardware project beautifuly easy Lightning Talks lightningtalk <p>MicroPython is an implementation of Python designed to run on microcontrollers and embedded systems. These devices don’t have many resources (CPU, RAM) and so it’s important to write efficient scripts. This talk shows how to make the most of your resources in MicroPython, and has some fun demos!</p> <p>MicroPython is a reimplementation of Python which is specifically designed to run on computing devices that have very few resources, such as CPU power, RAM and storage. Often when you write scripts in MicroPython you want to make the most of your available resources, and have code run as fast as possible (faster code usually saves power, which is important when running from a battery!) and there are certain ways of writing MicroPython code that are more efficient than others. In this talk I will go over the tricks and techniques for writing fast and efficient Python code in MicroPython. The talk will also include some hardware demos to show off these techniques.</p> Christine Spindler Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:40 00:15 H.2215 (Ferrer) cross_community_collaboration A brief story about friendship What we learned from cross-community collaboration Lightning Talks lightningtalk <p>CMS Garden is a not-for-profit association run by currently 12 open source content management systems. This talk will show you what is possible when you work together instead of competing each other.</p> <p>The story about CMS Garden is a story about trust and friendship. Before CMS garden we (as people from different cms communities) thought we were competitors. There was no real comparability between the cms and the most often heard argument was: don't take that $CMS. Take mine (because it's the best). After the first joint event (CeBIT 2013) we knew it's not true. There is no best CMS in the world. There are only good tools for the needs of a project. Sometimes my CMS. In other projects yours CMS.</p> <p>That event changed everything. Later in 2013 we founded a not-for-profit association and our journey began.</p> <p>This Lightning Talk wants to share some of the magic moments and try to invite other open source communities to join the garden and adopt the idea of collaboration.</p> Stephan Luckow official CMS Garden Website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:15 H.2215 (Ferrer) fossasia My 10 year journey with FOSSASIA: A woman's pathway to open source Lightning Talks lightningtalk <p>I grew up in the Mekong Delta, South of Vietnam. I first learned about free software at a FOSS event in Hanoi in 2007. I started to engage with the local Linux User Group in Singapore during my study time. Later on, I co-founded FOSSASIA - a community devoted to improving people’s lives through sharing Open Technologies and knowledge. I especially wanted to connect people together and to encourage developers from the region to participate in the Free and Open Source Software movement. Since then, FOSSASIA has become one of the largest open source communities in Asia.</p> <p>During this session, I will speak about challenges and lessons learned in the last 10 years of building FOSS community in Asia.</p> Hong Phuc Dang Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:20 00:15 H.2215 (Ferrer) autocrypt_email Autocrypt - Automating E-Mail Encryption What E-Mail can learn from the success of end-to-end encrypted messengers Lightning Talks lightningtalk <p>A short talk about Autocrypt, a standard for decentralized and automated public-key management for e-mail encryption, built on OpenPGP.</p> <p>Autocrypt is a set of guidelines for developers to achieve convenient end-to-end-encryption of e-mails. It specifies how e-mail programs negotiate encryption capabilities using regular e-mails. For users, Autocrypt Level 1 offers single-click, opt-in encryption, eases encrypted group communications, and provides a way to setup encryption on multiple devices. It builds on the OpenPGP standard for compatibility, but tries to automate key management for the user as much as possible, without relying on provider support or centralized infrastructure. It is supported in Enigmail as well as K-9 Mail, among others. In a short talk, we'll go over our technical as well as our cultural approach.</p> <p>https://autocrypt.org/</p> Vincent Breitmoser Autocrypt Homepage Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:40 00:15 H.2215 (Ferrer) email_standards IMAP, JMAP and the future of open email standards a look at what's new in the IMAP world and the upcoming JMAP standard Lightning Talks lightningtalk <p>In the past couple of years there's been renewed enthusiasm for improving the open source email client standards, with multiple new IMAP standards becoming RFCs, and a revision of the base IMAP standards currently in evaluation.</p> <p>As the working group co-chair of both the JMAP (new email standard) and EXTRA (updating existing standards) working groups at IETF, I've been following email standards closely. I'll talk about what's happening in both working groups, how to find the specifications, and some cool new things you can do as an email client (or server) author.</p> Bron Gondwana JMAP working group EXTRA working group JMAP protocol website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:15 H.2215 (Ferrer) eventyay_event_system Eventyay! An event system for community organizers Lightning Talks lightningtalk <p>Eventyay is built based on the experiences and lesson learned from organizers of FOSSASIA Summit after a several years searching for suitable solution.</p> <p>This is a update on the current development of eventyay, the tech stack and feature set.</p> <p>(Please note that it was originally advertised that Hong Phuc Dang would be giving this talk.)</p> Mario Behling Eventyay Open Event Server Repository Open Event Frontend Repository Open Event Android Attendee App Open Event Android Organizer App Open Event Website Generator Twitter of Eventyay FOSSASIA Twitter Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:20 00:15 H.2215 (Ferrer) open_hardware Open Software deserves Open Hardware How Europe is taking the lead in Open Hardware Lightning Talks lightningtalk <p>This proposed talk would focus on how Europe is taking the lead deploying and supporting Open Hardware technologies. Large enterprises are looking for best practices gleamed from hyper-scale companies like Facebook, Microsoft and Google who run highly efficient private and public clouds. The sharing of open hardware and data centre designs is a core strategy for these companies and the basis for the Open Compute Project (OCP).</p> <p>The Open Compute Project (OCP) was started by Facebook in 2011 with the idea of delivering the most efficient designs for scalable computing through an open source hardware community. We believe that openly sharing ideas, specifications, and other intellectual property is the key to maximizing innovation and reducing complexity in technology components.</p> <p>In this topical discussion we would discuss the recent research that highlights how efficiency plays a role in the data centre transformation from conventional gear to OCP and open source. We would provide specific examples of how local European VAR’s and Solution Providers are capitalising on the open hardware business model and how "Open Source Software deserves Open Hardware".</p> Steve Helvie Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:40 00:15 H.2215 (Ferrer) skulls_coreboot The Skulls project - coreboot your Laptop The easy way Lightning Talks lightningtalk <p>Skulls makes it easy to install an unlocked, up-to-date and easy to use coreboot-based BIOS on your laptop. It should be a starter drug to more advanced systems like Heads.</p> Martin Kepplinger Skulls project source Official coreboot website with Skulls in the list of Custom ROMs Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:00 00:15 H.2215 (Ferrer) baseboard_management bmclib: A Baseboard Management Controller library One library to rule them all? Lightning Talks lightningtalk <p>This talk is about a library written to help manage a fleet of bare metal servers, it leverages existing (mostly undocumented) APIs on Baseboard Management Controllers, and exposes a consistent API interface to,</p> <ul> <li>Inventorize bare metal hardware</li> <li>Manage BMC/BIOS configuration</li> <li>Reliably Power cycle/PXE boot bare metal.</li> <li>Update firmware on BMCs</li> </ul> <p>https://github.com/bmc-toolbox/bmclib</p> <p>This talk is about bmclib, a library written to perform asset lifecycle management, across a fleet of bare metal servers, it leverages existing (mostly undocumented) APIs on Baseboard Management Controllers, and exposes a consistent API interface to,</p> <ul> <li>Inventorize bare metal hardware</li> <li>Manage BMC/BIOS configuration</li> <li>Reliably Power cycle/PXE boot bare metal.</li> <li>Update firmware on BMCs</li> </ul> <p>https://github.com/bmc-toolbox/bmclib</p> <p>While all of the above seems obvious functions of bare metal server hardware that should just work, in reality they do not - when dealing with ~45k units of bare metal server hardware from various vendors, this is a lesson we learned and hence we developed bmclib and all of the various tools that is part of the bmc-toolbox.</p> <p>https://github.com/bmc-toolbox</p> <p>We intend to talk about the current state of BMCs, the current vendor solutions to have a single API (Redfish) and the various tools that are part of the bmc-toolbox which were possible thanks to bmclib.</p> <p>Another interesting project (which we intend to talk about) was to implement a service on top of bmclib to retrieve thumbnails from the BMC, of the screen of the server and run image classification on it to infer what state a bare metal is currently in, thanks to bmclib this was easy since we implemented a common method to grab "Screen previews" through the BMC.</p> <p>The bmc-toolbox is built and maintained in Booking.com.</p> Joel Rebello Juliano Martinez Baseboard management controller library Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:20 00:15 H.2215 (Ferrer) maemo_leste_mobile Maemo Leste A Debian/Devuan based mobile hacker OS Lightning Talks lightningtalk <p>Maemo Leste is community a Debian/Devuan based GNU/Linux distribution for smartphones and tablets aimed at free software hackers. In spirit and look it is similar to the Maemo Fremantle OS for the famous Nokia N900 phone. This talk will present the current (alpha) state of Maemo Leste, the presently supported devices, our development setups, the present and upcoming challenges and lay out the future plans for software and hardware (device) support.</p> <p>This lecture will introduce Maemo Leste, a free Debian/Devuan based GNU/Linux hacker distribution for smartphones and tablets. We will cover the history of Maemo and explain what drove us to work on and create Maemo Leste.</p> <p>We will provide a technical overview of the software stack, show off and discuss the current status software stack, how we got there, our upcoming milestones and the challenges that lie ahead.</p> <p>Additionally, we'll take some time to discuss the "hacker" aspect of Maemo Leste. such as (only) supporting mainline Linux, future (first class) Tor and Wireguard integration, bleeding edge open GPU drivers and the availability of all the packages of Debian.</p> <p>Next to that, we will explain the development setups, build servers and infrastructure, provide some information on how to port Maemo Leste to a new device, dive into possible Android compatibility and hardware and driver issues difficulties (such as mobile GPU drivers and the current open source solutions).</p> <p>Resources:</p> <ul> <li>Website+News: https://maemo-leste.github.io/</li> <li>Github: https://github.com/maemo-leste</li> <li>Wiki: https://leste.maemo.org/</li> <li>Nokia N900 status of Maemo Leste: https://leste.maemo.org/Nokia_N900</li> <li>Motorola Droid 4 status of Maemo Leste: https://leste.maemo.org/Motorola<em>Droid</em>4</li> <li>Lima driver (Linux 4.19 + patches) running Maemo Leste on Allwinner A33 tablets: https://www.youtube.com/watch?v=ihCVsaEMNzY</li> </ul> Merlijn B. W. Wajer Maemo Leste Blog Maemo Leste Wiki Maemo Leste Source/Github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:40 00:15 H.2215 (Ferrer) android_pi Running Android on the Raspberry Pi Android Pie meets Raspberry Pi Lightning Talks lightningtalk <p>You can run Android on a wide range of devices, not just phones and tablets. Building Android from scratch is fun and a great way to learn about the lower levels of the operating system. Imagine - here is a chance to create ANY Android configuration you want.</p> <p>In this presentation, I will describe how to take a Raspberry Pi 3 and build Android completely from scratch, using source code from the AOSP (Android Open Source Project). One issue is finding an implementation of the OpenGL ES libraries and GPU drivers with the appropriate Android additions. Luckily, there is a cross-platform graphics layer called SwiftShader that we can use. Another pain point is that the Raspberry Pi doesn’t have a USB OTG port, so we can’t use adb in the normal way. No problem, we can use adb over Ethernet instead.</p> <p>This presentation focuses on the Raspberry Pi, but in a similar way you can port Android to many other devices. If it can run Linux, there is a good chance it can run Android.</p> Chris Simmonds Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:00 00:15 H.2215 (Ferrer) test_case_management 10 years of open source test case management with Kiwi TCMS Lightning Talks lightningtalk <p>In the world of professional QA there are many proprietary test management tools but very few open source ones. This lightning talk will tell the audience why and how we resurrected Kiwi TCMS and what are we doing to make it the best open source test case management system!</p> <p>FOSDEM marks 10 years since the first version was released and our team will celebrate at the Open Source Test Management stand, Building K, Level 2, stand 10!</p> Alexander Todorov Kiwi TCMS website Open Source Test Management - Building K, Level 2, Stand 10 Project mission and goals for 2019 Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:20 00:15 H.2215 (Ferrer) cloud_security Cloud Native Security 101 Lightning Talks lightningtalk <p>Cloud native environments such as Kubernetes or AWS Lambda come with new challenges around security and in this talk we will review the environments and their properties, highlight common features and look at attack vectors and how to potentially reduce them.</p> <p>Cloud native environments such as Kubernetes or AWS Lambda come with new challenges around security: short-lived entities (containers, functions), untrusted environments/public clouds, high velocity, etc.. In this talk we will review the environments and their properties, highlight common features and table stakes (e.g., mutual TLS), and look at attack vectors and how to potentially reduce them. Focus areas are: managing confidential data in untrusted environments, container (image) and runtime security, Kubernetes control plane, as well as Function-as-a-Service execution isolation and considerations.</p> Michael Hausenblas Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:40 00:15 H.2215 (Ferrer) userspace_network_stacks AMENDMENT The brief case for User-space Network Stacks (DPDK and friends) The case for DPDK, FD.io VPP, Snabb, F-Stack and friends. Lightning Talks lightningtalk <p>The Userspace networking ecosystems has really matured since DPDK (the Data Plane Development Kit) was first open sourced in March 2013. Since then, a whole ecosystem of technologies developed with it or seeking to becoming a better DPDK has emerged.</p> <p>Sometimes controversially data plane networking (the packet processing) which was once the sole responsibility of the Operating System Kernel is now being handled entirely in Userspace, by applications built with tools such as DPDK.</p> <p>This talks discusses:-</p> <ol> <li>Why the phenomenon exists? Where did it come from? Why are people eager to re-invent the wheel?</li> <li>A (very) brief survey of user space data plane networking projects.</li> <li>The case for better inter-operability, need the Kernel and Userspace data plane really be two separate Islands?</li> <li>How to collaborate to achieve a better future?</li> </ol> <p>Please note that this talk was originally scheduled to be given on Sunday at 14:00. The talk originally in this slot, Theo: The Authorized Keys Manager by Michele Azzolari will now take place on Sunday at 14:00.</p> Ray Kinsella Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:10 H.1301 (Cornil) mysql_mariadb_welcome Welcome to the MySQL, MariaDB & Friends Devroom opening the Community Day MySQL, MariaDB and Friends devroom <p>Opening the MySQL, MariaDB &amp; Friends Devroom !</p> Frédéric Descamps Ian Gilfillan Submit feedback 10:40 00:20 H.1301 (Cornil) patterns_anti_patterns Patterns and anti-patterns in OSS participation Lessons from MySQL AB, the MariaDB Foundation, and others MySQL, MariaDB and Friends devroom <p><strong>"Don't expect patches to the core. It's just too complex for external developers."</strong> Nearly twenty years ago, that was the broadly-held opinion at MySQL AB. Now, with MariaDB, there are 174 contributors to the server alone and Monty isn't the top contributor by commits or even LoC. Clearly, some things have changed, but what are they and how much impact have they had? In this fast-paced session Zak Greant, MySQL's first community advocate, will walk through some of the critical changes over the years and share some of the best (and worst) practices.</p> <p>In the early days of MySQL, we had the idea that people didn't contribute to the core because the code base was too difficult to get into. Perhaps this was correct at the time, perhaps not. Nearly twenty years later, the MariaDB project sees contributions from a wide range of contributors and to many different parts of the project - including the MariaDB server. Clearly, many things have changed in this time. In this session, I'll present some of the key macro and micro changes, and present conclusions about how they have come about.</p> <p>For instance, if the server was the most difficult part of the MySQL/MariaDB code to contribute to, why are there so many more contributors and contributions now? Potential causes could include:</p> <ul> <li>the widespread adoption of MySQL and MariaDB</li> <li>the popularity and maturity of the projects</li> <li>the change in corporate control</li> <li>maturation of the broad Free Software/Open Source community</li> <li>improvements in collaborative development infrastructure</li> <li>better community management practices</li> <li>more senior project members or senior project members having more time to mentor contributors</li> <li>better incentives for contribution</li> <li>better contribution management processes</li> <li>the long time span has let people learn the code base better (as many contributors were or are MySQL/Oracle/MariaDB Corp. staff)</li> </ul> <p>I'll support the talk with a written report and I'll share my research, including:</p> <ul> <li>analysis of commits and contributors over time</li> <li>maps of contributors journeys over time (eg. what did one have to do to get a patch into MySQL in ca. 2000 vs. MariaDB in 2018)</li> <li>a timeline of changes to key policies, contribution infrastructure, corporate involvement, etc.</li> </ul> Zak Greant Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:10 00:20 H.1301 (Cornil) mysql_replication_faster Making Your MySQL Replication Setup Run Faster! MySQL, MariaDB and Friends devroom <p>Designing and operating high-performance, efficient, manageable and reliable MySQL replication deployments requires knowledge of the intricacies of the underlying technologies. MySQL Replication is no exception to this rule, even if it is becoming simpler to manage and operate by every release.</p> <p> This session will provide insights on the main areas that affect the performance of Asynchronous Replication and Group Replication, and how to configure them to make the most out of the underlying computing system. We will also demonstrate the practical improvements that can be seen by going through various benchmarks. You will then understand when and how it would apply to your usage, allowing you to provide a better MySQL database service. Join us for an interesting dive into the always exciting world of MySQL Replication performance.</p> Vitor Oliveira Blog posts on MySQL High-Availability Submit feedback 11:40 00:20 H.1301 (Cornil) unplitmysql AMENDMENT Un-split brain (aka Move Back in Time) MySQL MySQL, MariaDB and Friends devroom <p>Un-split brain (aka Move Back in Time) MySQL. This brings to light some of our recent work on disaster mitigation at @github.</p> <p>Please note that this talk replace Jean-François Gagné's talk entitled "The consequences of sync_binlog != 1" as he wasn't able to join us in Brussels.</p> Shlomi Noach Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:10 00:20 H.1301 (Cornil) mysql_replication_advance MySQL Replication - Advanced Features MySQL, MariaDB and Friends devroom <p>MySQL Replication is powerful and has added a lot of advanced features through the years. In this presentation we will look into replication technology in MySQL 8 and variants focusing on advanced features, what do they mean, when to use them and when not, Including</p> <p>When should you use STATEMENT, ROW or MIXED binary log format ?</p> <p>What is GTID in MySQL and MariaDB and why do you want to use them ?</p> <p>What is semi-sync replication and how is it different from lossless semi-sync ?</p> <p>What are the different parallel replication options and when do they excell ?</p> <p>Why delaying transaction commits can improve your application performance ?</p> <p>How is MySQL Group Replication is different from standard replication and Galera ?</p> <p>This presentation is for audience well familiar with MySQL Replication and looking to expand their knowledge in deeper replication topics.</p> Peter Zaitsev Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:40 00:20 H.1301 (Cornil) tapping_binlogs Tapping Into the Binary Log Change Stream MySQL, MariaDB and Friends devroom <p>Row-based binary log is mostly used as a logical replication log for MySQL. However, ever since row-based replication was introduced, it has also been widely used as an integration point between a MySQL server and other components in an IT infrastructure. It is often used as a capture-data-changes stream, as a source of data for extract-transform-load operations or even as an event notification trigger (e.g., propagating transaction information to proxy layers).</p> <p>Commonly deployed setups revolve around collecting/subscribing to data changes and propagating these to downstream consumers through a message bus, like Kafka for instance.</p> <p>This session will present such use cases, highlighting the additional metadata added to the binary log in the latest releases, explain how to efficiently make the most out of these and how to optimize the implementation of a change capture procedure. We will also showcase a couple of example plugins that tap into the server's binary log stream and export it even before it reaches the binary log files.</p> Luis Soares Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:10 00:20 H.1301 (Cornil) multiplexing_proxysql The art of multiplexing MySQL connections with ProxySQL MySQL, MariaDB and Friends devroom <p>Handling tens of thousands of database connections poses seriously performance issues on any database system because resources are poorly utilized. ProxySQL, a MySQL protocol aware, reverse proxy for database servers using the MySQL protocol, is able to track connections statuses and utilize very few connections to MySQL server to serve traffic from thousands of client connections. This session will focus on explaining implementation details and how this algorithm is able to boost performance.</p> René Cannaò Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:40 00:20 H.1301 (Cornil) improve_sql Improve your SQL Common Table Expressions (CTE) and Window Functions MySQL, MariaDB and Friends devroom <p>What are Common Table Expressions (CTEs) and Window Functions? Why do you need them? How to use them?</p> <p>Correlated subselects are a pain, but your software needs them? You still could need recursive queries? You want an easy way for finding lagging or leading rows? The keywords are Common Table Expressions (CTE) and Window Functions. Finally, both, MariaDB and MySQL support them. After explaining functionality and use cases, the talk also will show the ease of use.</p> Susanne Holzgraefe Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:10 00:20 H.1301 (Cornil) lateral_mysql LATERAL derived table in MySQL MySQL, MariaDB and Friends devroom <p>MySQL 8.0 supports SQL feature T491 LATERAL derived table, also called the "for each" loop of SQL. What is it? How does it work? How can you use it? What is it good for? Learn all about it in this talk!</p> Norvald H. Ryeng Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:40 00:20 H.1301 (Cornil) dbdeployer Test complex database systems in a laptop with dbdeployer The friendly tool that makes DBA and developers life easy MySQL, MariaDB and Friends devroom <p>Meet dbdeployer, a tool that helps developers and DBA to deploy and test simple and complex database systems from the oldest versions to the latest ones.</p> <p>dbdeployer is a tool that helps developers and DBAs to quickly deploy a single MySQL server of any version, without affecting existing servers in the same host. It can also deploy, in a single machine, a test system for replication in several topologies (master/slave, single or multi primary group replication, multi-source replication). The tool creates sandboxes that are equipped with customised scripts that allow users to manipulate and test all the deployed databases. This talk will show the main scenarios where dbdeployer is useful, with examples of usage and tips for a quick start.</p> Giuseppe Maxia dbdeployer Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:05 H.1302 (Depage) java_welcome_2019 Welcome Free Java devroom <p>Welcome to the Free Java DevRoom</p> Mario Torre Submit feedback 10:35 00:40 H.1302 (Depage) state_openjdk State of OpenJDK Free Java devroom <p>A review of the past year in the life of the OpenJDK Community, and a look at what's ahead.</p> Mark Reinhold Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:20 00:25 H.1302 (Depage) java_jungle Rumble in the Java Jungle Free Java devroom <p>Rumble in the Java Jungle</p> <p>OracleJDK, OpenJDK, AdoptOpenJDK, OpenJ9, Zulu, IcedTea, Liberica, SapMachine, GraalVM, SubstrateVM. 8, 9, 10, 11, 12, 18.3, 18.9, short-term, mid-term, long-term support release, security updates. GPLv2, Classpath Exception, Oracle Binary Code License, Technology Network License Agreement. Field of use restriction, private and commercial use, reference implementation, substantially derived, TCK/JCK, Oracle Contribution Agreement, OpenJDK Community TCK License Agreement (OCTLA), Java Community Process (JCP), Java Specification Request (JSR), Java Enhancement Proposal (JEP), Preview Features, Incubator Modules, Java (TM), Java SE compatibility, OpenJDK trademark notice.</p> <p>Confused? Come and hear from Java and OpenJDK veteran Volker Simonis how the Java world has been radically turned inside out in the last year and how this impacts you as a Java user or developer. After the talk you'll have a clear understanding what's going on in the Java ecosystem and you'll be ready to plan your or your companies future Java strategy.</p> Volker Simonis Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:50 00:25 H.1302 (Depage) loom_weaving_executions Loom: Weaving executions Free Java devroom <p>Project Loom’s mission is to make it easier to write, debug, profile and maintain concurrent applications under heavy load. Threads are a natural and convenient concurrency construct which is being supplanted by less convenient abstractions because their implementation as OS kernel threads is insufficient for meeting performance demands and wasteful in computing resources. Project Loom will introduce fibers as lightweight, efficient threads managed by the Java Virtual Machine, that let developers use the same simple abstraction but with significantly better performance and lower footprint. Fibers are implemented in the JDK libraries on top of scoped, stackful delimited continuations in the JVM. This session will present the current status and challenges of the project -- both of implementation and design -- one year in.</p> Ron Pressler Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:20 00:25 H.1302 (Depage) checkpoint_restore Java Checkpoint/Restore Free Java devroom <p>Java has evolved significantly in the past 20+ years. Users still want to run highly scalable monolithic applications, but now they also want to run in the cloud with fast startup and small footprint. Checkpointing will solve at least half of that problem. I'll show you how to checkpoint your java application and then restore it on a different machine, or several different machines. An application that might take minutes to warm up, can be warmed up, garbage collected, etc and then checkpointed. Users can restore Java processes in ms. I'll give an overview of CRIU (Checkpoint Restore In Userspace) a Linux utility that Java checkpointing is based on, present the proposed Java API, and then demo some interesting use cases.</p> Christine H Flood Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:50 00:25 H.1302 (Depage) java_docker Java with Docker: How to Make it Work Free Java devroom <p>Ever tried developing Java applications in containers?</p> <p>Of course not. You're a sensible person.</p> <p>From a small footprint to a super-fast spin-up time, the reality of containers is a far cry from the reality of an OpenJDK binary execution.</p> <p>So how do we bring these two disparate visions closer together?</p> <p>Simple! We jlink the required JDK modules to generate a smaller footprint, then leverage alternate JVMs for performant startup!</p> <p>I promise, the reality is simpler than that sentence. :)</p> <p>Drop by and see what I mean.</p> Adam Farley Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:20 00:25 H.1302 (Depage) performance_graal Performance tuning Twitter services with Graal and Machine Learning Free Java devroom <p>Running Twitter services on Graal has been very successful and saved Twitter a lot of money on datacenter cost. But we would like to run more efficient to reduce cost even more. I mean, who doesn’t? In order to do this we are using our Machine Learning framework called Autotune to tune Graal inlining parameters. This talk will show how much performance improvement we got by autotuning Graal.</p> Christian Thalinger Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:50 00:25 H.1302 (Depage) securing_jvm Securing the JVM, neither for fun nor for profit, but do you really have a choice? Free Java devroom <p>Consider a Java application in a private banking system. A new network administrator is hired, and while going around, he notices that the app is making network calls to an unknown external endpoint. After some investigation, it’s found that this app has been sending for years confidential data to a competitor (or a state, or hackers, whatever). This is awkward. Especially since it could have been avoided.</p> <p>Code reviews are good to improve the hardening of an application, but what if the malicious code was planted purposely? Some code buried in a commit could extract code from binary content, compile it on the fly, and then execute the code in the same JVM run… By default, the JVM is not secured! Securing the JVM for a non-trivial application is complex and time-consuming but the risks of not securing it could be disastrous. In this talk, I’ll show some of the things you could do in an unsecured JVM. I’ll also explain the basics of securing it, and finally demo a working process on how to do it.</p> Nicolas Frankel Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:20 00:25 H.1302 (Depage) deep_learning_openjdk Learning about Deep Learning: Applications for OpenJDK/Java Verification Free Java devroom <p>In this talk, we identify some well-known software verification problems, using real-world examples from open-source projects and see how we might apply some deep learning principles to address them. In the various points where we may test the Java runtime, we find candidates for deep learning. What is required? We need a problem to solve, a model that describes it, and a large amount of data to feed the neural network.</p> Shelley Lambert Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:50 00:25 H.1302 (Depage) imc An introduction to Middleware Application Monitoring with Java Mission Control and Flight Recorder Free Java devroom <p>Recently open sourced, JDK Mission Control is the industry standard tool for Java performance analysis in production environments. This presentation will introduce the tool and explain how to use it to solve various production time problems with very little overhead.</p> <p>We will also discuss how application developers can extend their applications to take advantage of the event recording capabilities of the JDK Flight Recorder, now included in OpenJDK 11, and how to create custom tools based on the extensive Mission Control API to analyse specific issues beyond what is offered by default by the Eclipse based tool.</p> <p>At the end a demo will be shown using the JDK Flight Recorder, JDK Mission Control and OpenTracing together to facilitate deep distributed tracing capabilities.</p> Mario Torre Marcus Hirt Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:20 00:25 H.1302 (Depage) memory_benchmark The Missing Benchmark Metric: Memory Consumption Free Java devroom <p>When doing benchmarks we are usually interested in comparing the throughput of different solutions. However, when the code under investigation is not trivial, memory consumption may vary significantly, because using more memory to achieve better throughput is a typical design trade off.</p> <p>The talk discusses what memory metrics are more or less meaningful and what approaches can be used to track memory consumption alongside JMH benchmarks. A special focus will be given on dynamic effects on the interaction with the garbage collector and whether it is possible to get some stable benchmark results.</p> Jens Wilke Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:50 00:25 H.1302 (Depage) compiler_instrinsic A walkthrough guide to implementing a compiler intrinsic Free Java devroom <p>One of the ways Java achieves high performance is to provide a route for accelerated, hand-crafted compilation of certain critical methods via the JIT. This optimization path is available both for native methods implemented as callouts to C code and for methods that are defined in Java. In both cases the method needs to be flagged as a HotspotIntrinsic and provided with a JITted code implementation. The intrinsic implementation defines the hand-crafted definition of as a high-level intermediate representation (IR) graph for the C2 JIT. This means it can be inlined into the IR graph for caller methods, providing even greater opportunities for optimization.</p> <p>This talk will demonstrate how to implement an intrinsic by walking through a specific real-life example that is currently under review as a JEP candidate. It will start by motivating the need for the intrinsic and defining the candidate as a Java method which relies on an underlying native implementation. It will then show how the candidate can be replaced with an intrinsic implementation, working through the changes required in the VM, the JIT compiler front and back end and, ultimately, the assemblers for x86 and AArch64.</p> Andrew Dinn Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:20 00:25 H.1302 (Depage) build_gc_minutes Build your own GC with OpenJDK in 20 minutes Free Java devroom <p>A new Garbage Collector interface has been introduced in OpenJDK 10, and has been further improved in OpenJDK 11 and 12. This talk will give a short sight-seeing tour through its design and its important interfaces and should give you an idea where to start, if you'd want to make your own Garbage Collector or want to get started with OpenJDKs existing collectors.</p> Roman Kennke Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:50 00:25 H.1302 (Depage) jit_cloud Making the JIT part of the cloud Free Java devroom <p>Many language runtimes like the JVM rely on JIT compilation to improve application performance, but JIT compilers actively compete with applications for CPU and memory resources. Because of this, a JIT compiler's activities may hinder application throughput and create performance hiccups that can affect quality of service while also complicating resource provisioning. On top of that, it takes a while even for the best JIT compilers to fully compile the performance critical methods of an application to deliver the steady state performance we all expect from the JVM. An approach we are exploring is to decouple the JIT compiler from the rest of the JVM so that JIT compilation can operate as a separate, remote service. This approach opens up the possibility of an elastic, cloud based service offering JIT compilation for many applications, languages, and even different architectures simultaneously.</p> <p>In this talk we will present our experience building an open source JIT-as-a-service prototype based on the Eclipse OpenJ9 JVM. We will discuss some of the engineering challenges we encountered, demonstrate the advantages we've seen thus far, and present performance data for enterprise grade Java EE benchmarks.</p> Irwin D'Souza Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:20 00:25 H.1302 (Depage) tested_business Tested for Business: An Open and Transparent Quality Kit Free Java devroom <p>With the proliferation of OpenJDK binaries for a developer or a business to choose from, one factor in determining the selection is quality. How do you know your choice is up to snuff? The AdoptOpenJDK Quality Kit is an open and transparent verification story for OpenJDK binaries. A robust and adaptable test kit that can be utilized by any OpenJDK implementor, and represents the quality bar required by large-scale customers in enterprise environments. We test multiple freely available JDK implementations at AdoptOpenJDK and continue to refine this suite of tests to give the community access to high-quality binaries.</p> <p>Beyond a frank discussion starter on the criteria by which we measure quality, this talk summarizes the real quality requirements of enterprise customers and presents a compelling story for verifying and/or selecting your OpenJDK implementation.</p> Shelley Lambert Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:50 00:25 H.1302 (Depage) java_language_futures Java Language Futures Free Java devroom <p>With the new more rapid cadence, improvements are coming to Java faster than ever. Join Java Language Architect Brian Goetz on a whirlwind tour of some of the features that are coming to Java in the coming months and years.</p> Brian Goetz Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:20 00:40 H.1302 (Depage) openjdk_gb OpenJDK Governing Board Q&A Free Java devroom <p>An open Q&amp;A session with members of the OpenJDK Governing Board.</p> Mark Reinhold Mario Torre Andrew Haley Georges Saab Doug Lea John Duimovich Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:40 H.1308 (Rolin) graph_weaviate_knowledge_graph AMENDMENT Introduction of OSS Weaviate, the Decentralised Knowledge Graph What is a decentralised knowledge graph and what is the contextionary that powers it? Graph Processing devroom <p>Weaviate is an open source decentralized knowledge graph. During this talk, I will introduce the software Weaviate, present specific use cases, present Weaviate's architecture, and introduce one of the core features: the contextionary. More info about Weaviate: https://github.com/creativesoftwarefdn/weaviate</p> Etienne Dilocker Weaviate on Github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:15 00:40 H.1308 (Rolin) graph_gephi_js Gephi JS: Exploring the dystopian future of a Javascript Gephi Graph Processing devroom <p>Gephi is a popular network analysis open source software written in Java. This talk about its future is a joint effort by the Gephi dev team and Javascript experts to explore the issues and opportunities of web technologies for large-scale network analysis and visualization.</p> <p>Gephi relies on the Swing library for the general user interface plus an OpenGL insert for network visualization. This choice made more than 10 years ago was one of the very few options available for a multiplatform software able to harness GPU power for displaying millions of nodes and edges. Despite a number of issues, the situation was considered relatively satisfying.</p> <p>However two long-term trends force the Gephi dev team to reconsider its future: computer infrastructures are moving away from true multiplatform software to web-based interfaces, and Java is moving away from user interface development to server-side computation. Most if not all UX developers agree that web technologies are better supporting modern UX design than the Java ecosystem. However the specific use of OpenGL puts Gephi is a special situation. We know from user surveys that scaling up your network is key to most users. No Gephi user has only small networks, and many of them has tried to analyze networks with hundred thousands nodes or more. This use case is far from usual in the world of web technologies. Is WebGL up to the task of visualizing such amount of objects?</p> <p>We used existing Javascript libraries to build a stack comparable to the basic features of Gephi. Graphology was used as a Javascript equivalent of Gephi's GraphStore library, and a tweaked version of Sigma JS WebGL renderer was used as display engine. We used this prototype to benchmark the performance of web technologies for rendering large graphs in OpenGL.</p> <p>In parallel we explored the possibility to keep the project in the Java world but stop relying on the JOGL library that is at risk of being less and less maintained. In this mind we developed a new OpenGL visualisation engine prototype, with a better code base and better performance than current implementation.</p> <p>In this talk we will showcase both the Javascript proof-of-concept and the new Java prototype. We will present state of our reflections and the results of our benchmarks. Of course technological choices are not only (and even not primarily) a question of performance, and we will take the time to discuss the various issues and limits we met in this exercise of prospective technological exploration. we will conclude with a broader reflection on how Gephi as an open source project tries to adapt to global technological changes.</p> <p>We expect this talk to be useful to Java and/or Javascript developers/engineers dealing with graphs.</p> <p>Eduardo Ramos Ibáñez is lead developer of Gephi Mathieu Jacomy is co-author of Gephi Alexis Jacomy is co-author of the Sigma JS library Guillaume Plique is author of Graphology and co-author of Sigma JS</p> Mathieu Jacomy Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:40 H.1308 (Rolin) graph_real_time_streaming_kafka_neo4j Leveraging real-time streaming with Neo4j-Streams Graph Processing devroom <p>Nowadays real-time Messaging Systems has become widely used, covering a variety of use-cases, from log aggregation to real-time Stream Processing (in combination with Big Data Processing Frameworks). In this talk we'll introduce how to use Apache Kafka (the most used Message Brocker) in combination with Neo4j through the Neo4j-Streams project, demonstrating via simple use-cases how you can leverage the information driven by the Change Data Capture Module and how to add Neo4j in your streaming flow by using the Sink module.</p> <p>Nowadays real-time Messaging Systems has become widely used, covering a variety of use-cases, from log aggregation to real-time Stream Processing (in combination with Big Data Processing Frameworks). In this talk we'll introduce how to use Apache Kafka (the most used Message Brocker) in combination with Neo4j through the Neo4j-Streams project, demonstrating via simple use-cases how you can leverage the information driven by the Change Data Capture Module and how to add Neo4j in your streaming flow by using the Sink module.</p> Andrea Santurbano Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:45 00:20 H.1308 (Rolin) graph_usage_efl Graph usage in EFL using graphs to navigate a UI Graph Processing devroom <p>EFL is a graphical framework that is used on a lot of TVs. The challenge with a TV is, that it needs to be operated with a remote control. Which means, every selectable element on the screen has to be connected to a parent element (i.e. it needs to have a way to navigate to and from itself). In other words, it can be accessed just by pressing the 4 navigation keys on your remote control.</p> <p>To achieve this, graphical elements on the screen are grouped into graphs, which are then connected together after the creation process.</p> <p>The talk will cover:</p> <p>· how the set of graphical components (or elements) on the screen are separated into smaller graphs; · look at how they are connected together; and · show why caching calculation results is now easier to cache, than in the previous system.</p> Marcel Hollerbach Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:10 00:40 H.1308 (Rolin) graph_french_trade_study Using networks to study 18th century French trade Graph Processing devroom <p>France started to compile statistics about its trade in 1716. The "Bureau de la Balance du Commerce" (Balance of Trade's Office) centralized local reports of imports/exports by commodities produced by french tax regions. Many statistical manuscript volumes produced by this process have been preserved in French archives. This communication will relate how and why we used network technologies to create a research instrument based on the transcriptions of those archives in the <a href="https://toflit18.hypotheses.org">TOFLIT18 research project</a>. Our corpus composed of more than 500k yearly trade transactions of one commodity between a French local tax region or a foreign country between 1718 and 1838. We used a graph database to modelize it as a trade network where trade flows are edges between trade partners. We will explain why we had to design a classification system to reduce the heterogeneity of the commodity names and how such a system introduce the need for hyperedges. Our research instruments aiming at providing exploratory data analysis means to researchers, we will present <a href="http://toflit18.medialab.sciences-po.fr">the web application</a> we've built on top of the neo4j database using JavaScript technologies (Decypher, Express, React, Baobab, SigmaJS). We will finally show how graph model was not only a convenient way to store and query our data but also a poweful visual object to explore trade geographical structures and trade products' specialization patterns.</p> <p>By Paul Girard and Guillaume Plique. Sciences Po, médialab, Paris, France</p> <p>Project funded by the French Agence Nationale de la Recherche (TOFLIT18)</p> Paul Girard our slides : http://medialab.github.io/toflit18/fosdem2019/#/ our web application http://toflit18.medialab.sciences-po.fr Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:55 00:40 H.1308 (Rolin) graph_access_control_tinkerpop Differentiated access control to graph data Applied to TinkerPop-compatible graph databases Graph Processing devroom <p>JanusGraph provides access to persisted graph data in a way that is scalable in data size and graph traversal length. Graphs become more valuable if data from multiple sources is ingested, but in general not all users will be authorized to access all data in the graph, given privacy laws on personal data and corporate policies. Since it is not practical to maintain separate copies of large graphs for the different authorization groups, a technical solution for access control is required. This presentation deals with this issue and discusses techniques to provide access to graph data under heterogeneous confidentiality regimes. In particular, an add-on TinkerPop API is presented that provides an abstration to the required filtering and supports the auditing of gremlin queries for validity.</p> Marc De Lignie Presentation at BNAIC2008 Presentation at a 2017 Utrecht Data Science meetup Personal blog Contribution to Apache TinkerPop on Kerberos authentication Contribution to Apache TinkerPop on usage with Spark on Yarn Contribution to Apache TinkerPop on querying connected components with gremlin Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:40 00:40 H.1308 (Rolin) graph_multiplex_analysis_graphblas Multiplex graph analysis with GraphBLAS Graph Processing devroom <h2>Introduction</h2> <p>Graph analysis workloads present resource-intensive computations that require a large amount of memory and CPU time. Consequently, there an abundance of graph processing tools which build on distributed data processing frameworks, including <a href="https://spark.apache.org/graphx/">Spark GraphX</a>, <a href="https://flink.apache.org/news/2015/08/24/introducing-flink-gelly.html">Flink Gelly</a> and <a href="https://giraph.apache.org/">Giraph</a> (which runs on Hadoop). According to a <a href="https://arxiv.org/abs/1607.02646">recent survey</a>, most of these systems build on the <em>vertex-centric programming model</em>, originally introduced in Google’s <a href="https://ai.google/research/pubs/pub37252">Pregel paper</a>. This model defines graph analytical algorithms in terms of vertices communicating with their neighbours through message passing, which allows both easy parallelization (for the systems) and intuitive formalization of the computation (for developers). While these systems indeed exhibit horizontal scalability, they introduce numerous inefficiencies requiring a large amount of resources even for moderately sized graphs. Most practical applications only use graphs up to a few hundred million vertices and edges, which can now be stored comfortably on a single machine. For such graphs, it is worth investigating techniques that allow their evaluation without the additional cost and complexity of operating a distributed cluster.</p> <h2>GraphBLAS</h2> <p>The <a href="http://graphblas.org/">GraphBLAS</a> initiative is an effort to design a set of standard building blocks that allow users to formulate graph computations <a href="http://bookstore.siam.org/se22/">in the language of linear algebra</a>, using operations on sparse adjacency matrices defined on custom semirings. Since its inception, GraphBLAS has been implemented for multiple languages (e.g. <a href="http://faculty.cse.tamu.edu/davis/suitesparse.html">C</a>, <a href="https://github.com/cmu-sei/gbtl">C++</a>, and <a href="https://github.com/Accla/graphulo">Java</a>). Additionally, GraphBLAS is being designed in collaboration with hardware vendors (such as Intel and Nvidia) to define a standardized set of interfaces, which will allow building specialized hardware components for graph processing in the future.</p> <h2>Multiplex graph metrics</h2> <p>Graph analysis has a significant overlap with <em>network science</em>, a field that aims to uncover the hidden structural properties of graphs and determine the interplay between their vertices. Most works in network science only study homogeneous (<em>monoplex</em>) graphs, and do not distinguish between different types of vertices and edges. We believe this abstraction is wasteful for most real-life networks, which are heterogeneous (<em>multiplex</em>) and emerge by different types of interactions. To illustrate such analyses, we calculated <a href="https://arxiv.org/abs/1308.3182">multiplex clustering metrics</a> on the <a href="https://offshoreleaks.icij.org/pages/database">Paradise papers data set</a> to find interesting entities that were engaged in disproportionately high levels of activities with their interconnected neighbours. We found that even on this relatively small data set (2M vertices and 3M edges), naive implementations did not terminate <em>in days</em>. Hence, we adapted techniques from GraphBLAS to optimize the computations to finish in a few minutes.</p> <h2>Outline of the talk</h2> <p>This talk gives a brief overview of how linear algebra can be used to define graph computations on monoplex graphs, and how we applied it to <a href="https://www.db.bme.hu/preprints/tdk2018-matrix-based-analysis-of-multiplex-graphs.pdf">speedup the calculation of multiplex graph metrics</a>. We present the lessons learnt while experimenting with sparse matrix libraries in <a href="https://github.com/jluttine/suitesparse">C</a>, <a href="https://softwarerecs.stackexchange.com/questions/51330/sparse-matrix-library-for-java">Java</a>, and <a href="https://docs.julialang.org/en/v1/stdlib/SparseArrays/index.html">Julia</a>. Our <a href="https://github.com/FTSRG/graph-analyzer">graph analyzer framework</a> is available as open-source.</p> <p><strong>Intended audience:</strong> users interested in applying multiplex graph analytical techniques for their problems and developers who strive to implement high-performing graph analytical computations.</p> <p><strong>Speaker biography.</strong></p> <p>Gabor Szarnyas is a researcher working on graph processing techniques. His core research areas are live graph pattern matching, benchmarking graph queries, and analyzing large-scale multiplex networks. His main research project is <a href="http://docs.inf.mit.bme.hu/ingraph/">ingraph</a>, an openCypher-compatible query engine supporting live query evaluation. His research team was the first to <a href="http://cyprusconferences.org/adbis2017/acceptedpapers.html">publish</a> a <a href="https://link.springer.com/chapter/10.1007/978-3-319-66917-5_13">formalisation that captures the semantics of a core subset of the openCypher language</a>.</p> <p>Gabor works at the Budapest University of Technology and Economics, teaching system modelling and database theory. He conducted research visits at the <a href="https://www.york.ac.uk/">University of York</a>, <a href="http://www.mcgill.ca/">McGill University</a> and the <a href="https://uwaterloo.ca/">University of Waterloo</a>. He is a member of the <a href="http://www.opencypher.org/ocig">openCypher Implementers Group</a> and the <a href="http://ldbcouncil.org/">LDBC</a> <a href="http://ldbcouncil.org/developer/snb">Social Network Benchmark</a> task force. He received 1st prize in the <a href="https://src.acm.org/candidates/2017">MODELS 2016 ACM Student Research Competition</a> conference and 2nd prize at the <a href="https://src.acm.org/winners/2018">SIGMOD 2018 competition</a>. He is a frequent speaker at industrial conferences (<a href="https://archive.fosdem.org/2017/schedule/event/graph_incremental_queries_open_cypher/">FOSDEM</a>, <a href="http://graphconnect.com/speaker/gabor-szarnyas/">GraphConnect</a>) and meetups (<a href="https://www.meetup.com/nycneo4j/events/243464557/">openCypher meetup NYC</a>, <a href="https://www.meetup.com/neo4j-budapest-users/events/240363389/">Budapest Neo4j meetup</a>).</p> Gabor Szarnyas Graph analyzer library Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:25 00:40 H.1308 (Rolin) graph_mgmt_config Mgmt Config: A tale of three graphs Real-time, autonomous, automation with graphs (mostly DAG's) Graph Processing devroom <p>Mgmt is a real-time automation tool that is fast and safe. It works by running a DAG (graph) of resources. The DAG is built in real-time, by running a graph-based DSL (language). We'll fill this talk with a number of exciting real-time demos that show how some cleverly applied graph algorithms can solve an incredibly difficult set of problems. We'll finish this off by including a demo of building a real-time, distributed, finite state machine (a distributed graph) using our tool.</p> <p>Mgmt is a real-time automation tool that is fast and safe. It works by running a DAG (graph) of resources. The DAG is built in real-time, by running a graph-based DSL (language). We'll fill this talk with a number of exciting real-time demos that show how some cleverly applied graph algorithms can solve an incredibly difficult set of problems. We'll finish this off by including a demo of building a real-time, distributed, finite state machine (a distributed graph) using our tool.</p> <p>A number of blog posts on the subject are available: https://purpleidea.com/tags/mgmtconfig/ Attendees are encouraged to read some before the talk if they want a preview!</p> James Shubin Project homepage Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:40 H.1308 (Rolin) ceph_msgrv2 Ceph wire protocol revisited - Messenger V2 Software Defined Storage devroom <p>In this talk we will present an overview of the current design and implementation of the new wire protocol of Ceph, named Messenger V2, that aims to overcome the limitations of the current protocol.</p> <p>In this talk we will present an overview of the current design and implementation of the new wire protocol (the protocol used for communication between pairs of daemons and daemons and clients), named Messenger V2, that aims to overcome the limitations of the current protocol. We will start by describing the current wire protocol design and pinpoint its limitations, which will pave the way to present the new protocol features. Then we will present the details of the new protocol design and talk about some of the possible future features that can be implemented by extending the base protocol.</p> Ricardo Dias Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:15 00:25 H.1308 (Rolin) monitoring_distributed_storage_tendrl Challenges in Monitoring Distributed Storage Environment and how Tendrl addresses them Software Defined Storage devroom <p>Monitoring involves dynamically extracting, disseminating, interpreting and presenting system information to the user. The advent of distributed storage environments brings in new challenges to the monitoring world. Going through logs of a large volume of data over geographically distributed nodes simultaneously to detect the point of failure is becoming infeasible and time-consuming. There is a dire need to replace the standard monitoring techniques and practices used to monitor centralized storage with a centralized monitoring system, which obtains exact information required to track the health, performance, load and capacity of system objects or software processes in the distributed systems and present it to the users in real time and in useful formats.</p> <p>In this talk, Rishubh and Gowtham will discuss the challenges faced by sys-admins in monitoring distributed systems and will discuss how tendrl an open source monitoring tool aids them in monitoring a distributed storage system with the help of a scale-out open source software defined storage (SDS) - Gluster. You will get an in-depth explanation on how tendrl monitors each system in the distributed environment and get a glimpse of its modern web interface. They will also show the audience how metric virtualization provided by grafana makes monitoring rudimentary and fast. Their talk will conclude with a demo on how tendrl helps vendors in capacity planning, detecting and alerting the failure conditions, and keeping track of performance and health of the system.</p> <p>Monitoring involves dynamically extracting, disseminating, interpreting and presenting system information to the user. The advent of distributed storage brought in a lot of new challenges in monitoring the storage systems. It has become impractical for the sys-admins to go through logs of each storage systems distributed across geographically dispersed nodes to detect points of failure. It’s also infeasible to keep a track of health, performance, and capacity of each system by tracking logs obtained via fetching information over terminal using CLI commands.</p> <p>In order to monitor the environment efficiently, the monitoring system should be able to get information about each component on every node in the distributed storage environment. Gathering so much data can flood it with a lot of information all of which is not required by the user. The monitoring system should be able to filter the information and display only relevant information to the user when it’s required.</p> <p>Monitoring should:</p> <ol> <li>Help users find out why and when did their system fail?</li> <li>Help users to predict future problems.</li> <li>Help users make decisions based on real data and trends instead of hunches.</li> <li>Avoid outage costs.</li> <li>Observe and check the status of processes and resources over a period of time and keep them under systematic review.</li> </ol> <p>Tendrl facilitates:</p> <ol> <li>Monitoring distributed storage system with ease.</li> <li>Operational consistency and efficiency (streamlined provisioning, enhanced discovery, and management via the integrated service dashboard).</li> <li>Getting important information about storage utilization to help troubleshoot and diagnose issues (noisy neighbor, flaky disks, network bottlenecks)</li> <li>Proactively monitor and manage health, performance, and capacity utilization and gain operational intelligence at scale. Receive alerts for operational issues requiring intervention.</li> <li>Alert on operational issues: (OSD state, Cluster state, Failed Drive etc)</li> </ol> <p>For better understanding, in the presentation we also include interactive demos that show the challenges faced by users and how they can overcome these challenges.</p> Rishubh Jain Gowtham Shanmugasundaram Tendrl main site. Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:45 00:25 H.1308 (Rolin) ceph_deepsea What's new in DeepSea An overview of new features Software Defined Storage devroom <p>Ceph is a highly distributed software-defined storage solution. It provides allows you to store and access your data via interfaces for block, file and object storage. It aims primarily for completely distributed operation without a single point of failure, while being scalable to the exabyte level. Deployment and management of a cluster not rarely consisting of hundreds of nodes can be a challenge. That's why we, at SUSE, provide a salt based tool called 'DeepSea' that tries to help you manage your cluster with ease. We designed our product with scalability in mind so that our users don't have to care about the size of their data-center but can concentrate on the important tasks. This Talk will give a short introduction to DeepSea and highlight the new features we added.</p> <p>Ceph is a highly distributed software-defined storage solution. It provides allows you to store and access your data via interfaces for block, file and object storage. It aims primarily for completely distributed operation without a single point of failure, while being scalable to the exabyte level. Deployment and management of a cluster not rarely consisting of hundreds of nodes can be a challenge. That's why we, at SUSE, provide a salt based tool called 'DeepSea' that tries to help you manage your cluster with ease. We designed our product with scalability in mind so that our users don't have to care about the size of their data-center but can concentrate on the important tasks. This Talk will give a short introduction to DeepSea and highlight the new features we added.</p> Joshua Schmid Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:15 00:40 H.1308 (Rolin) replicated_sds_drbd_linstor Replicated SDS with DRBD & LINSTOR An Open Source SDS for the automated management of storage clusters Software Defined Storage devroom <p>Presentation of the LINSTOR SDS system, which automates the management of different types of block storage volumes on a cluster of storage servers, with a focus on replicated storage for high availability and disaster recovery.</p> <p>Focus on architecture &amp; implementation of the system, integration with other software and the development process.</p> <p>Intended audience:</p> <ul> <li>Operators, Architects, Developers of cloud &amp; virtualization environments</li> <li>Operators of systems based on software defined storage</li> <li>Operators of OpenStack, OpenNebula, Proxmox virtualization platforms</li> <li>Operators of Kubernetes/Docker containerization</li> </ul> <p>Focus of the lecture &amp; discussion:</p> <ul> <li>Existing storage technologies, focus on Linux: block devices in general, device mapper/LVM, ZFS, DRBD, dmcrypt, etc.</li> <li>Challenges of automating storage management (allocation/modification (resizing, ...)/deallocation of volumes)</li> <li>Challenges of managing clusters (parallelization, networking, ...)</li> <li>Our solutions - how the system works, protocols involved, security model, configuration persistence, transaction safety, etc.</li> <li>Some interesting implementation details</li> <li>How the development team works - methods, processes, project management, the tools that we like to use</li> </ul> Robert Altnoeder Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:25 H.1309 (Van Rijn) media_vlc VLC 4.0 4.0++ Open Media devroom <p>A presentation about the next version of VLC, called <em>4.0</em>.</p> <p>This is a continuation of the talk from last year, to explain exactly what was indeed implemented in the VLC core codebase.</p> <p>A presentation about the next version of VLC, called <em>4.0</em>, codename <strong>Otto Chriek</strong>.</p> <p>This is a continuation of the talk from last year, to explain exactly what was indeed implemented in the VLC core codebase.</p> <p>It notably speak about the results of the VLC 3.0 release, and speak about the following changes for 4.0: - the media library, - the core clock changes, - the new playlist, - the VR support, - and the new interface for Linux and Windows, using Qt5/qml.</p> Jean-Baptiste Kempf Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:25 H.1309 (Van Rijn) media_kodi The final release of Kodi v18 A two year development story Open Media devroom <p>Kodi v18 has been in development for over two and finally it is released. During this presentation we go through the most important parts that were added or changed and what this actually means for the future.</p> <p>During past two years developers in and outside of the Kodi Team have been steadily refactoring and working on new features that will be included in Kodi v18. Although we initially thought about doing a RERO release it ended up being quite the opposite. In this presentation we will go through the most important parts that are actually included and why it took so long to come to a final release. Additionally we will briefly cover some parts that we already know will go into v19 at the moment we branched of the current v18 release.</p> Martijn Kaijser Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:25 H.1309 (Van Rijn) media_gstreamer_1_16 GStreamer 1.16 and beyond Open Media devroom <p>This talk will take a look at what's been happening in the GStreamer multimedia framework as of late: What's new in the latest GStreamer 1.16 release and what features you can expect to land in the near future.</p> <p>It will be fairly high-level and is targeted at both application developers and anyone interested in cross-platform multimedia.</p> <p>GStreamer is a highly versatile plugin-based multimedia framework that caters to a whole range of multimedia needs, whether desktop applications, streaming servers or multimedia middleware; embedded systems, desktops, or server farms. It is also cross-platform and works on Linux, *BSD, macOS, Windows, iOS and Android.</p> <p>Whether WebRTC, RTP, RTSP, SRT or RTMP, decoding or encoding, streaming or recording, we have it all!</p> <p>Join us to find out what's new and improved!</p> Tim-Philipp Müller Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:25 H.1309 (Van Rijn) media_gstreamer_rust Fearless Multimedia Programming using GStreamer & Rust Open Media devroom <p>GStreamer is a popular framework of choice for multimedia programming in the Linux world, especially for embedded. Since efficiency is a typical core requirement for embedded solutions, traditionally C/C++ have been the languages of choice for writing GStreamer applications and plugins. Unfortunately, this efficiency comes at the price of safety. Even the most skilled C/C++ developers make mistakes with memory management and the results could potentially be catastrophic. Thread safety is another aspect that is central to multimedia solutions but is extremely difficult to achieve with C/C++.</p> <p>Rust language is designed to be both efficient and safe at the same time. In this talk, Zeeshan will present how GStreamer's Rust bindings not only make multimedia programming a lot safer, easier and fun but also allow developers to write even more efficient code than C/C++ in certain cases.</p> Zeeshan Ali Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:25 H.1309 (Van Rijn) media_gstreamer_embedded GStreamer embedded state of the union 2019 Open Media devroom <p>GStreamer is the de-facto multimedia framework used for embedded Linux systems. I will focus on recent improvements relevant to the embedded community. I'll explain our progress in the Video4Linux support, in particular support for encoders. I'll talk about various optimizations thas have been happening and how they can help embedded developer deliver better devices. Finally, I'll will look forward at the next releases. I'll also discuss the on-going effort to add embedded systems into GStreamer's Continuous Integration &amp; Automated Testing system.</p> <p>GStreamer is a highly versatile plugin-based multimedia framework that caters to a whole range of multimedia needs, whether desktop applications, streaming servers or multimedia middleware; embedded systems, desktops, or server farms. It is also cross-platform and works on Linux, *BSD, Solaris, macOS, Windows, iOS and Android.</p> <p>This talks targets everyone who cares about Free and Open Source multimedia on embedded systems. GStreamer is the standard multimedia framework, not only on the Linux desktop, but most importantly, in embedded Linux products.</p> Olivier Crête Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:10 H.1309 (Van Rijn) media_gstreamer_wpe Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit source element Open Media devroom <p>This lightning talk will showcase a new GStreamer plugin that allows applications to overlay HTML pages on top of video content. This plugin also allows to capture and interact with an HTML page in a live GStreamer pipeline, for recording purposes for instance.</p> <p>Overlaying content on top of live video is common practice in the broadcasting industry nowadays. What if you could use HTML and Javascript for your overlay implementations? This would be possible with GStreamer and WebKit's WPE port combined in a GStreamer plugin.</p> <p>GstWPE receives EGLImages from WPE and shares them as GstMemory objects attached to buffers injected into the pipeline. This approach enables applications to perform overlaying directly in the GPU using shaders. Alternatively the EGLImages can be downloaded to the CPU main memory using the GStreamer gldownload element and processed there.</p> <p>GStreamer is an extremely powerful and versatile framework for creating streaming media applications. WPE WebKit allows embedders to create simple and performant systems based on Web platform technologies. It is designed with hardware acceleration in mind, leveraging common 3D graphics APIs for best performance.</p> Philippe Normand WPE WebKit port GStreamer Multimedia framework Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:15 00:10 H.1309 (Van Rijn) media_radio Voice Controlled Radio Enabling broadcast reception for Smart Speakers Open Media devroom <p>https://tech.ebu.ch/news/2018/09/voice-controlled-hybrid-radio-demonstrated-at-2018-ibc</p> <p>The EBU and NAB co-funded a project to create a demonstrator for a radio device able to be entirely controlled by voice. This demonstrates the concept of the 'Single Voice Service List', and uses openly-standardized metadata from the broadcaster (using RadioDNS lookup, ETSI 103 270, and the Service and Programme Information data, ETSI TS 102 818) to automatically select between DAB+/IP/FM. The project was implemented by hacking the underlying Alexa Voice Service SDK.</p> Ben Poor Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:25 H.1309 (Van Rijn) media_ebus EBUs - Live IP Software Toolkit Open Source Software in professional media Open Media devroom <p>With the upcoming change from a dedicated technology called SDI towards IP. The goal is to move from dedicated boxes to pure software based broadcast. Our Toolkit can help you on your way to discover SMPTE ST 2110, AMWA interface specifications, and many more.</p> Willem Vermost LIST Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:25 H.1309 (Van Rijn) media_rist RIST - an evolutionary video transport protocol Open Media devroom <p>This presentation will explain RIST (Reliable Internet Stream Transport), a new protocol for professional video transport that is evolutionary. It is a protocol designed to allow for packet retransmissions between broadcast equipment, something which in the past had been vendor specific. Unusually for professional standards, it has a public specification and thus has already been implemented in a number of open source projects. This talk will took about the good parts and the bad parts as well as comparing it with traditional transport protocols such as TCP.</p> Kieran Kunhya Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:25 H.1309 (Van Rijn) media_scene_changes Video Analysis using CUDA and OpenCV Detecting scene changes in videos using CUDA and OpenCV Open Media devroom <p>CUDA has gained popularity as the programming language for GPUs.</p> <p>OpenCV remains the most popular library for computer vision.</p> <p>The aim of the talk is to introduce people to harness both the technologies to build high performance models for image and video processing, by using the simple problem of detecting scene changes in a video.</p> <p>Detecting scene changes in videos using CUDA and OpenCV.</p> <p>CUDA is a parallel computing platform and application programming interface (API) model created by Nvidia. It allows software developers and software engineers to use a CUDA-enabled graphics processing unit (GPU) for GPGPU (General-Purpose computing on Graphics Processing Units).</p> <p>OpenCV stands for Open Source Computer Vision Library. It has C++, python and Java interfaces.</p> <p>The scene change detection problem is can be defined formally as - given two frames, do they belong to the same scene, or different scenes? The content-aware scene change detection finds all areas in a video where the difference between two subsequent frames exceeds a threshold value. This allows to detect cuts between scenes.</p> <p>The proposed algorithm has the following steps - * Decode the video. * For each frame -</p> <pre><code> * Convert the frame to HSV colour space. * For each channel, find the average pixel by pixel difference with the previous frame * Average the difference over the number of channels. * If greater than a given threshold declare the frame as a scene change </code></pre> <p>The pixel-by-pixel operation of each channel can be optimised to execute in parallel. This can be achieved using CUDA.</p> <p>The simple algorithm above can be optimised to execute on a GPU and achieve 10x improvements in speed.</p> <p>All the code is written in C++</p> Sam Radhakrishnan Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:25 H.1309 (Van Rijn) media_futatabi Futatabi: Multi-camera instant replay with slow motion Open Media devroom <p>Futatabi is a free software solution for doing instant replay, e.g. for sports production. It supports multiple cameras, high-quality realtime slow motion on the GPU through optical flow, and seamless integration with Nageru, my live video mixer. We'll talk a bit about how interpolation through optical flow works, challenges in transporting the streams back and forth, and demonstrate a real-world sports production done last year using Nageru and Futatabi.</p> Steinar H. Gunderson Nageru and Futatabi home page Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:25 H.1309 (Van Rijn) media_sreview The SReview review system Open Media devroom <p>SReview is a conference video review system, originally written for FOSDEM 2017, that is now being used for the third time at FOSDEM 2019. It is also in active use by the debconf video team.</p> <p>This talk will explain the background in which it was written, and will also give a somewhat detailed explanation of its inner workings.</p> <p>For an explanation of the detailed UI design work we did to the review page over the last year, see the companion talk in the open source design devroom.</p> Wouter Verhelst source code Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:25 H.1309 (Van Rijn) media_libre How libre can you go? Reaching as many viewers as possible using only libre video technologies. Open Media devroom <p>Streaming video on the internet in 2019 is littered with a cacophony of proprietary, patent encumbered technologies. As the landscape of the internet evolves libre video technologies are becoming more prominent in browsers and on devices, but we’re still a long way from a complete solution.</p> <p>In this session we’ll walk through the state of libre video on the internet and pick technologies to reach as many users and devices as possible while suggesting workarounds for the problems we find. We’ll also explore how we can leverage adaptive bitrate technologies within a libre video technology stack to provide a seamless user experience.</p> <p>Finally we’ll also take a forward facing look at the future of online video and how AV1 can help bring libre video to the masses.</p> Phil Cluff Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:55 H.1309 (Van Rijn) media_migrating Migrating from Adobe Connect - the Victory of FOSS Over Proprietary Software Open Media devroom <p>Adobe Connect is a proprietary platform for virtual presentations, conferencing sessions and screen recordings. Recently, one of our customers has requested our assistance in migrating their content from Adobe Connect to Kaltura. We've released the <a href="https://github.com/kaltura/adobe-connect-to-mkv-to-kaltura">project</a> as FOSS [licensed under AGPLv3]. This session will cover the challenges we faced and the FOSS tools we used to overcome them.</p> <p>During the session, we will review the steps the code takes in order to extract and process the data associated with an Adobe Connect recording [video and audio files, metadata, etc]. We'll walk attendees through our use of FFmpeg, Selenium, Mozilla's Geckodriver and OpenCV and demonstrate how they were harnessed for the purpose of migrating the content.</p> <p>We will conclude with a live demo of the migration process.</p> Jess Portnoy Adobe Connect migration project Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:30 00:55 H.1309 (Van Rijn) media_ossia ossia ecosystem workshop Combining media of all kinds with libossia and ossia score Open Media devroom <p>We propose a workshop on the usage of the various software of the ossia ecosystem (https://ossia.io), which are a set of tools to be used in a creative coding context, in order to create art, in particular shows, artistic installations, or museum exhibitions.</p> <p>We will present the usage of two tools. First, the library libossia (https://github.com/OSSIA/libossia), which allows exposure and control of the parameters of a creative software over the network across many different languages and environments (C++, Java, C#, PureData, Python, SuperCollider, Qt/QML, Faust...). Then, we will show and teach the usage of the software ossia score (https://github.com/OSSIA/score), which allows to score the parameters of these creative applications in time, as well as include media, sound effects, hardware peripherals, robots, DMX lightning, etc. In particular, the interactive features, which allow for non-interactive timelines and scoring will be showcased and explained.</p> <p>The OSCQuery protocol will be discussed (https://github.com/Vidvox/OSCQueryProposal). It has been conceived in collaboration with the authors of multiple industrial-grade media software companies such as VDMX, Vezér, Millumin and others. This protocol is implemented in libossia and allows extensive interoperability amongst this kind of software, in particular between websites and traditional desktop software thanks to the use of WebSockets.</p> Jean-Michaël Celerier ossia website link to the latest release Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:30 H.2213 vai_enlightening_kvm "Enlightening" KVM Hyper-V emulation Virtualization and IaaS devroom <p>Is running a Windows guest any different from Linux from KVM's perspective? KVM can pretend being Hyper-V and this is actively used for running Windows guests. Following Hyper-V naming convention, individual features are named "enlightenments": some of them are already mature, some of them were just added to KVM and some are still waiting to be implemented. What are these features and how Windows guests use them? How is it different from Linux?</p> <p>Attendees of the talk will get to know the current status and the ongoing work for Hyper-V emulation in KVM, how this impacts Windows guests. Some benchmarks won't be missing too. The talk is intended for virtualization development engineers as well as system administration running KVM in production. In the talk both the internals of Hyper-V emulation in KVM and practical advises on how to run Windows guests on KVM will be discussed.</p> Vitaly Kuznetsov Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:30 H.2213 vai_getting_to_blinky Getting To Blinky: Virt Edition Making device pass-through work on embedded ARM Virtualization and IaaS devroom <p>Virtualization, including safe pass-through guest access to devices, is a well-known and mature technology on servers. With the increasing complexity and abilities of SoCs, virtualization is gaining importance on embedded systems, too. In this presentation, Geert will explore virtualization and device pass-through (VFIO) using QEMU and KVM on a Device Tree-based embedded ARM system, pursuing the holy grail of embedded developers: the ability to blink a connected LED. While seemingly too trivial and inapplicable, Geert will show how relevant such a contrived example is to more complex real-world uses of device pass-through. He will talk about the obstacles he encountered, and how they were overcome, enabling the use of device pass-through for real on-SoC devices using DMA. Finally, Geert will discuss when to use device pass-through, and when other virtualization techniques offer a better solution.</p> <p>In this presentation, embedded developers will get a grasp of virtualization, and can expect a hands-on report of getting device pass-through working on DT-based systems, enabling them to accelerate implementing virtualization in their own projects and products. Understanding the differences between traditional PCI-based servers, and relatively new embedded systems with DT, will help software developers improve support for device pass-through, in both Linux and virtualization environments like QEMU/KVM. Hardware (SoC and board) designers will learn about the impact of their design decisions on virtualization, and what to take into account to allow efficient virtualization of hardware devices.</p> Geert Uytterhoeven Device Pass-Through Using VFIO on R-Car SoCs Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:30 H.2213 vai_towards_exploring_virtual_disks Toward exploring virtual disks using a file manager! Virtualization and IaaS devroom <p>How many times did you need to start a virtual machine and either provide it with a directory on the host or use some file-sharing service (e.g., dropbox) or your email, just to copy a resource that resides within the virtual disk? In this session, Arik presents the upcoming integration between the muCommander file-manager and libguestfs. This produces an alternative to that complex process by enabling to browse/copy-from/copy-to various virtual disk formats directly using a user-friendly interface. Come to see the planned functionality and hear about the technical complexity of this integration.</p> <p>muCommander is an open source cross-platform file manager that supports a variety of file formats (e.g., zip, tar) and file protocols (e.g., sftp, smb). These days muCommander is extended with a pluggable framework to ease the process of supporting more file formats and protocols.</p> <p>This session focuses on a specific plugin for virtual disks. The plugin wraps the libguestfs library that provides an API for accessing and modifying various formats of virtual disks, such as vmdk and qcow. Libguestfs is a powerful library that is used by a variety of tools, e.g., the conversion utility virt-v2v. However, libguestfs lacks a user-friendly interface for those who wish to inspect and modify virtual disks as ordinary archive files. The plugin for muCommander aims to provide that via a dual-pane graphical interface.</p> <p>The on-going development of this plugin exposes some of the complexity of integrating virtual disks, and libguestfs in particular, into a file-manager. For instance, unlike ordinary archive files, the operating system needs to be inspected in order to produce the tree structure of the file system(s). As another example, muCommander uses a stream based approach to copying files while libguestfs assumes local files or standard input/output. This session would cover not only the functional side of the integration, that will be demonstrated with images that resides on oVirt's storage domains, but also interesting sides of its implementation.</p> Arik Hadas Demonstration of the provided functionality muCommander's website libguestfs's website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:30 H.2213 vai_its_time_for_the_populator It's Time for the Populator Declarative initialization of kubernetes persistent storage Virtualization and IaaS devroom <p>Kubernetes clusters increasingly host applications that manipulate data in persistent storage. Preserving that data is important but how does it get there in the first place? Unless it can generate its own data, the application should expect the volume to be populated prior to initialization. This may seem like a trivial problem with many simple solutions but we can build on kubernetes design principles to produce a superior solution. In this session you will discover a declarative PV population pattern, observe some concrete examples how this can be applied to different sources of data, learn about some common problems in this area and how kubernetes can help to solve them. After the session you will be ready to contribute your own populator to the kubernetes community.</p> Adam Litke Slides http:// Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:30 H.2213 vai_bare_metal_in_the_cloud Bare Metal In The Cloud: Isn’t it Ironic? Explaining OpenStack bare metal provisioning service Virtualization and IaaS devroom <p>With IaaS, common way to provide compute resources is to ask the hypervisor to allocate a bunch of VMs for you. Sometimes, however, allocating a bare metal machine could be essential to withstand higher workloads or harden data security. Running a container engine (like k8s) inside of a bare metal machine avoids double resource management and achieves higher density.</p> <p>In this talk we will introduce the OpenStack project called Ironic - the bare metal provisioning and life cycle service that can also act as a hypervisor for the OpenStack compute service.. We will explain system design, typical hardware management workflow, upcoming features and future challenges.</p> Dmitry Tantsur Ilya Etingof Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:30 H.2213 vai_managing_vms_and_containers Managing VMs and Containers in a Deeply Integrated UI Virtualization and IaaS devroom <p>Interested in managing virtual machines and containers using single integrated UI? See Kubevirt's web-based user interface in action.</p> <p>Kubevirt Web UI will be presented.</p> <p>Create, monitor and access VMs easily in a Kubernetes cluster. Discover k8s API objects relationships graphically. Enjoy wizards for common tasks.</p> Marek Libra Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:30 H.2213 vai_monitoring_kubernetes Monitoring Kubernetes and Virtualization Virtualization and IaaS devroom <p>Now that Kubevirt, a converged infrastructure that brings virtualization on top of Kubernetes came into the world, it’s time to take a look on the monitoring aspects of this solution. This talk will go through some of the popular monitoring solutions and integrations that exist for Kubernetes, a sneak peak of how monitoring is done for Virtual machines on oVirt's open-source distributed virtualization solution and how could it be applied on Kubevirt. Attendees with Kubernetes experience could learn more on monitoring solutions for both Kubernetes and virtualization.</p> Yanir Quinn Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:30 H.2213 vai_make_room Make Room! Make Room! Space saving techniques in oVirt Virtualization and IaaS devroom <p>The whole idea of virtualization is to utilize resources as heaviliy as possible. oVirt, an open- source virtualization solution, comes with several techniques, that require every VM to actually fight for each byte it needs, thus keeping disk usage as small as possible. oVirt uses different types of thin provisioning, data compression and data deduplication, to improve disk space utilization.</p> Denis Chaplygin Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:30 H.2213 vai_use_kcli Use kcli with all your virtualization solutions! Virtualization and IaaS devroom <p>What if you could use the same tooling to interact with libvirt, kubevirt, gcp, aws ovirt or openstack ? In this talk, I will present kcli, the tool I initially wrote to ease my work on libvirt and which evolved into a multiprovider abstraction tool We will detail installation, typical workflow and advanced features I use every day.</p> Karim Boumedhel Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:30 H.2213 vai_high_preformance_vms High performance virtual machines in oVirt Explain oVirt solution for easy creation of virtual machines running in highest possible performance Virtualization and IaaS devroom <p>Running a virtual machine enables the user with a high level of flexibility in the expense of the virtual machine's performance. Users are sometimes required to run applications on a virtual machine but still gain performance metrics as close to bare metal as possible. Until now this wasn't a straightforward mission to accomplish in oVirt. A new feature was now added to introduce a simple to manage solution for running a new/existing virtual machine in high performance. In this session we will talk about the essential requirements, functionality, limitations and assumptions for improving virtual machine performance, including host pinning and live migration enabled functionality. Attendees with virtualization knowledge (without necessarily oVirt experience) can learn from this session.</p> <p>Support a new type of virtual machine in oVirt destined for running a virtual machine with highest possible performance and performance metrics as close to bare metal as possible. By choosing this new High Performance virtual machine type, the virtual machine will be per-configured with a set of suggested and recommended configuration settings for reaching the best efficiency.</p> <p>Before this feature was implemented in oVirt, configure a virtual machine to run with high performance workloads was not an easy straightforward mission to do and required the user to manually set the virtual machine as such by going over all settings and check what is relevant and how to configure it. In addition, live migration was usually not supported for such virtual machines due to pinning constraints. Furthermore, few required features essential for improving virtual machine performance were not supported at all by oVirt (for example: using huge pages, IO and Emulator threads pinning, CPU cache layer 3 support, USV and other devices disabling, headless mode, enable Multi Queues per Virtual Interface etc).<br/> All these new features and more can now be leveraged to suggest one solution of the best recommended configuration according to virtual machine usage requirements.</p> <p>We will explain why increasing performance will decrease flexibility of the virtual machine, discuss how to set the virtual machine's devices, pass through host CPU mode, io/cpu/emulator threads pinning typologies, paravirtualized random number generator, virtual NUMA nodes and NUMA pinning topology and more settings. We will also explain how to combine all settings together wisely, what are the requirements from the physical hosts running those virtual machines and what are the limitations. We will also discuss virtual machines' pinned hosts limitations</p> <p>We will explain out solution for supporting migration for those high performance virtual machines which include pinning configuration, migration constraints to handle and hosts scheduler requirements. In addition we will talk about affinity rules for managing groups of high performance virtual machines and physical hosts.</p> Sharon Gratch Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:30 H.2213 vai_ppeeding_up_the_booting_time_of_a_toro_appliance Speeding up the Booting Time of a Toro Appliance Virtualization and IaaS devroom <p>Microservices propose a new paradigm to split monolithic cloud infrastructure into unitary services which allow better scaling of the global infrastructure by integrating heterogeneous technologies. Current cloud infrastructure allows to implement cheap microservices by hosting them in VMs. To leverage host resources, VMs are launched on demand, i.e., when the microservice is idle, the VM is shutdown and it is only powered on when a request arrives. In this context, the time that takes the VM to be ready and serves incoming requests becomes very important. We have identified two problems that prevent VMs to start up on time: first, the initialization of the hypervisor, and second, the size of the image. In this talk, we present three approaches that work around on these problems, i.e., Qboot, NEMU and Firecracker. We evaluate these approaches on a Toro appliance that is a unikernel dedicated to microservices. In Toro, the kernel and the microservice are compiled together and the result is a single image that can be used to launch a Virtual Machine (VM) on different hypervisors like Xen, KVM or HyperV.</p> Matias Vara Linkedin http://matiasvara.github.io Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:30 H.2213 vai_apply_complex_network_configuration_to_your_kubernetes Apply complex network configuration to your Kubernetes cluster hosts by declaring it Virtualization and IaaS devroom <p>Classical Kubernetes workload consists of microservices, that are relatively cheap to restart and reschedule. With the expansion of containerized application technologies, heavier, longer-living applications are looking to leverage Kubernetes. These applications may keep a complex state that is hard to relocate and may have strong hardware requirement. Thus, stopping and rescheduling them is more expensive and disruptive to the application. For such applications, an administrator would like to modify the configuration of the cluster nodes on-the-fly. In particular, this is important for network-related changes, such as setting SR-IOV cards or defining bonds. In this talk you will learn about kubernetes-nmstate. A tool that allows Kubernetes administrators to dynamically configure networking on cluster nodes.</p> <p>Attendees will learn how to configure node network from the Kubernetes API</p> Petr Horáček nmstate kubernetes-nmstate Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 H.2213 vai_real_time_virtualization_automation Real-time virtualization automation Mgmt Config: Virtualization Virtualization and IaaS devroom <p>Mgmt is a next gen config management tool that takes a fresh look at automation. It has tight integration with a number of virtualization related functionality. This presentation will demo our virt resource and other virtualization related features! We'll demo live scaling a cluster of virtual machines, hot swapping the cpu count dynamically in seconds, and automatic load adjustment of vm's. We'll also show some unique integrations of these virtual machines with the existing mgmt language functions. We'll include many interactive examples showing you how to build reactive, autonomous, real-time systems with vm's! Finally we'll talk about some of the future designs we're planning and make it easy for new users to get involved and help shape the project.</p> <p>Mgmt is a next gen config management tool that takes a fresh look at automation. It has tight integration with a number of virtualization related functionality. This presentation will demo our virt resource and other virtualization related features! We'll demo live scaling a cluster of virtual machines, hot swapping the cpu count dynamically in seconds, and automatic load adjustment of vm's. We'll also show some unique integrations of these virtual machines with the existing mgmt language functions. We'll include many interactive examples showing you how to build reactive, autonomous, real-time systems with vm's! Finally we'll talk about some of the future designs we're planning and make it easy for new users to get involved and help shape the project.</p> <p>A number of blog posts on the subject are available: https://purpleidea.com/tags/mgmtconfig/ Attendees are encouraged to read some before the talk if they want a preview!</p> James Shubin Project homepage Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:00 00:30 H.2213 vai_implementing_uefi_variable_services_in_qemu Securing Secure Boot on Xen Virtualization and IaaS devroom <p>UEFI is a replacement for the BIOS. It supports Secure Boot which is signature verification of bootloaders and OS kernels which helps prevent attacks where malware injects itself into the bootloader or kernel so that it can be loaded during startup. Despite the poor reputation that Secure Boot has in the free software community (mostly due to non-technical reasons), this would be useful to have for VMs running on Xen. It is also required for features in guests such as Windows Credential Guard. This talk describes how Secure Boot support has been added to Xen.</p> <p>Xen has long had support for running guests booted with UEFI using a build of edk2/Tianocore built for VMs called OVMF.</p> <p>Systems that use UEFI boot have a small amount of NVRAM that stores variables critical for booting the system. Secure Boot is built upon the concepts of authenticated variables and a set of keys. Authenticated variables require updates to be signed by particular keys. These keys themselves are stored in authenticated variables.</p> <p>Verifying updates to authenticated variables needs to be performed in a way that cannot be tampered with by the guest which may have been infected by malware. There are a few ways of dealing with this. The talk will look at the approach taken by bare metal, KVM, and finally how we have implemented it for Xen. This is done by introducing a new component called varstored which runs outside of the context of the guest. It acts as an interface to the guest's NVRAM and verifies updates to it. Actual storage of the NVRAM is delegated to a number of backends to support different uses cases. For example, for a single host it could store the NVRAM in a simple file. For a pool of hosts it could store the NVRAM in database server accessible poolwide.</p> Ross Lagerwall Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:30 00:30 H.2213 vai_xcp_ng_building_an_open_source_and_turnkey_virtualization_platform XCP-ng: building an Open Source and turnkey virtualization platform From Kickstarter to the datacenter, a Xen based solution Virtualization and IaaS devroom <p>Creating a new virtualization platform in 2018 seems intriguing. Why doing something like this? Is anyone would be interested? XCP-ng answered those questions in a clear manner. Initially a fork of XenServer, XCP-ng made something some people thought would be impossible: gathering a large community around a new virtualization platform in those modern days, where containers and serverless are advertised as the only way to build a decent IT infrastructure.</p> <p>XCP-ng is a fully Open Source and turnkey virtualization platform. In other words, a specialized Linux distro, with everything you need to run your virtual machines on it, without complicated installation and configuration. We'll see why it was born in the first place, what happened since and the future of it.</p> Olivier Lambert XCP-ng website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:00 00:30 H.2213 vai_rust_vmm rust-vmm shared virtualization crates Virtualization and IaaS devroom <p>rust-vmm aims to create a common base of virtual machine monitor (vmm) components written in Rust. It's organized as a shared-effort, shared-ownership open-source project that includes (so far) the crosvm, Kata Containers, and Firecracker teams . We believe that Rust is a great fit for a vmm: its memory management guarantees simplify the task of security hardening, while its roots as a system programming language ensure C-like performance. So far, we've started with the initial KVM wrapper crate, and, while separating out a few more basic functionality crates is underway, we still have to answer questions like "can independent teams compose reliable yet different vmms out of a set of decoupled components?", "how much can be decoupled?", "what's the right way to import/build these components into the larger vmm projects?", or, "does the world even need that many vmms?". During this talk, we'll look at some ways to answer these questions, but we're really here to get the room's feedback and opinions!</p> Andreea Florescu Rust VMM Organization on GitHub Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:30 00:30 H.2213 vai_iommu_implementation_using_hw_nested_paging Virtual IOMMU Implementation using HW Nested Paging Virtualization and IaaS devroom <p>Direct device assignment allows a virtual machine to directly interact with a host device. The device DMA registers are programmed by the guest with guest physical addresses (GPAs) and the virtualizer uses a physical IOMMU to map the GPAs to the actual host physical addresses (HPAs) backing the virtual machine RAM space. The physical IOMMU guarantees the DMA transfers initiated by the guest are properly translated and isolated.</p> <p>When a virtual IOMMU is exposed to a guest, the physical IOMMU needs to be programmed with the combination of two mappings: the IOVA/GPA mapping programmed by the guest OS and the former GPA/HPA mapping programmed by the hypervisor.</p> <p>Some IOMMU architectures implement nested paging, including the ARM SMMUv3. This talk aims to describe the work recently done to set up the two translation stages at the Linux and QEMU levels. This integration allows a guest exposed with a virtual SMMUv3 to get the full benefit of the underlying physical SMMUv3, avoiding the need to implement shadow page tables.</p> <p>The principles of the integration will be explained and the APIs will be covered. IOMMU nested paging will be compared with the existing virtual Intel IOMMU integration relying on shadow page tables. Remaining challenges will be presented.</p> Eric Auger http:// Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:50 H.2214 xdp_overview_and_update XDP (eXpress Data Path) as a building block for other FOSS projects Software Defined Networking devroom <p>The eXpress Data Path (XDP) is a Linux kernel feature, that have gain a lot of traction over the last couple of years. This talk is focused on how other FOSS projects can leverage XDP. How we believe XDP should be seen as a software offload for the kernel network stack.</p> <p>The motivation is to plant FOSS seeds for collaboration by describing that XDP offers of facilities and capabilities. But also explain that XDP is not the magic-bullet by framing the XDP design and what layer it operates at (e.g. no de-fragmentation) and what limits XDP impose when enabled (e.g. no jumbo-frames).</p> <p>In the second part of this talk we will focus on AF_XDP and how it can be leveraged by the DPDK project. AF_XDP is a new socket type introduced in Linux 4.18, that allow the XDP driver hook to deliver raw frames into userspace. This offers new opportunities for e.g. integrating with DPDK via a Poll Mode Driver (PMD) for AF_XDP.</p> Magnus Karlsson Jesper Brouer Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:20 00:20 H.2214 cilium_overview_and_updates Cilium - overview and recent updates Software Defined Networking devroom <p>Cilium is on open source project which provides networking, security and load balancing for containers by using eBPF and XDP technologies in the Linux kernel. It provides eBPF and XDP features to CRI-O, Docker and Kubernetes. This talk will present an overview on Cilium, explain the concepts behind it and then provide the project update, as it reached the 1.0 milestone last year.</p> <p>Bio: Michal Rostecki is a Software Engineer working at SUSE. He's contributing to Cilium on daily basis, sometimes to Kubernetes and several projects related to containers and networking. He used to be a core reviewer for OpenStack Kolla project.</p> Michal Rostecki Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:40 00:30 H.2214 merging_system_and_network_monitoring_with_bpf Merging System and Network Monitoring with BPF Merging packets with system events using eBPF Software Defined Networking devroom <p>Network traffic monitoring is traditionally based on packet analysis. While this approach still makes sense in many contexts, it is unable to provide detailed visibility when containers or virtual systems are used. This talk describes how the advent of eBPF enables the creation of monitor rich applications that can provide both network and application monitoring information to provide detailed information for both monitoring and troubleshooting. It shows how eBPF has been used in ntopng, an opensource monitoring application, and what are the challenges and pitfalls when integrating packets with system monitoring events.</p> <p>This talk describes how packet monitoring and system-based event monitoring work and how they could be merged together to provide increased visibility. From the network administrator perspective the advantage is that monitoring does not stop at network level but it can also identify the application/username that has generated traffic. From a security standpoint this enables to identify suspicious network traffic and bind it to applications, for network administrators it allows faulty applications misbehaving users to be identified and tracked. System visibility is yet another layer of observability on top of traditional packet traffic monitoring and deep-packet-inspection.</p> Luca Deri Samuele Sabella Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:10 00:20 H.2214 network_filtering_with_bpf Unifying network filtering rules for the Linux kernel with eBPF Software Defined Networking devroom <p>At the core of fast network packet processing lies the ability to filter packets, or in other words, to apply a set of rules on packets, usually consisting of a pattern to match (L2 to L4 source and destination addresses and ports, protocols, etc.) and corresponding actions (redirect to a given queue, or drop the packet, etc.). Over the years, several filtering frameworks have been added to Linux. While at the lower level, ethtool can be used to configure N-tuple rules on the receive side for the hardware, the upper layers of the stack got equipped with rules for firewalling (Netfilter), traffic shaping (TC), or packet switching (Open vSwitch for example).</p> <p>This presentation reviews the needs for those filtering frameworks and the particularities of each one. Then it focuses on the changes brought by eBPF and XDP in this landscape: as BPF programs allow for very flexible processing and can be attached very low in the stack—at the driver level, or even run on the NIC itself—they offer filtering capabilities with no precedent in terms of performance and versatility in the kernel. Lastly, the third part would explore potential leads in order to create bridges between the different rule formats and to make it easier for users to build their filtering eBPF programs.</p> Quentin Monnet Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:15 H.2214 oko_open_vswitch_extensions_with_bpf Oko: Open vSwitch Extensions with BPF Getting the best of Flow Table and Code-based approaches to network programmability Software Defined Networking devroom <p>The widely adopted Open vSwitch implements the OpenFlow forwarding model. Its simple match-action abstraction eases network management, while providing enough flexibility to define complex forwarding pipelines. OpenFlow, however, cannot express the many packets processing algorithms required for traffic measurement, network security, or congestion diagnosis because it lacks a persistent state and basic arithmetic and logic operations.</p> <p>This talk presents Oko, an extension of Open vSwitch with support for BPF actions. We implemented a first userspace prototype over Open vSwitch-DPDK. Our userspace BPF VM relies on the ubpf project, extended with a rudimentary verifier and support for persistent data structures (BPF's maps).</p> <p>We compare the performance of our prototype for several packet processing applications with a second setup in which applications run as secondary DPDK processes exchanging packets with Open vSwitch over a shared memory (zero-copy DPDK Ring Port setup). Our Oko setup offers a near 2x performance improvement over this alternative setup.</p> Paul Chaignon Submit feedback 12:45 00:15 H.2214 virtio_update An update on Virtio What happened recently and what's coming soon? Software Defined Networking devroom <p>Virtio 1.1 was released recently and it brings some exciting new features, pushing forward performance and hardware implmementations of Virtio. In this talk we will look into what happened since FOSDEM 2018 and also look at which features are on the horizon and can be expected soon.</p> <p>Virtio is a common framework for IO virtualization in hypervisors. It is part of DPDK accelerated Open vSwitch and allows for hardware abstracted VNFs. In the past year version 1.1 of the Standard document was released and the additions focused on support for hardware implementations and performcance improvements. This talk will give an overview of new features and will also give a quick introduction into how interested parties can participate in work on the Virtio specification.</p> Jens Freimann Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:20 H.2214 writing_network_drivers_in_high_level_languages Writing Network Drivers in High-Level Languages How to write drivers in Rust, go, C#, Swift, Haskell, and OCaml Software Defined Networking devroom <p>Drivers are usually written in C for historical reasons, this can be bad if you want your driver to be safe and secure. We show that it is possible to write low-level drivers for PCIe devices in modern high-level languages. We are working on super-fast user space network drivers for the Intel 82599ES (ixgbe) 10 Gbit/s NIC in Rust, C#, go, OCaml, Haskell, Python, Swift, and a few more languages (WIP). All of our drivers are written from scratch and require no additional kernel code.</p> <p>Check out <a href="https://github.com/ixy-languages/ixy-languages">our GitHub page</a> with links to all implementations, performance measurements, and publications for further reading.</p> <p>Supposedly modern user space drivers (e.g., DPDK or SPDK) are still being written in C in 2018 :(</p> <p>This comes with all the well-known drawbacks of writing things in C that might be prevented by using safer programming languages. Also, did you ever see a kernel panic because a in-kernel driver did something stupid? It doesn't have to be that way, drivers should not be able to take down the whole system.</p> <p>There are three steps to building better drivers:</p> <ul> <li>Write them in a safer programming language eliminating whole classes of bugs and security problems like bad memory accesses</li> <li>Isolating them from the rest of the operating system: user space drivers that drop privileges</li> <li>Isolating the hardware using the IOMMU</li> </ul> <p>We are showing that it is possible to achieve all of these goals for PCIe drivers on Linux by implementing user space network drivers in all of the aforementioned programming languages. Our techniques are transferable to other drivers that would benefit from more modern implementations.</p> <p>Our drivers in Rust, C#, go, OCaml, and Swift are completely finished, tuned for performance, evaluated, and benchmarked (they are about 80-90% as fast as our user space C driver which is as fast as older versions of DPDK).</p> <p>The main thing to take away from this talk is: writing drivers is neither scary nor hard. You can write one in your favorite programming language, so go ahead and try that :)</p> Paul Emmerich Simon Ellmann GitHub project summary Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:20 00:15 H.2214 how_connectx_device_driver_works How a Connect-X device driver works How we wrote a Connect-X 4/5 10G-100G driver for Snabb Software Defined Networking devroom <p>I will explain how to write your own device driver for the Mellanox Connect-X device family, why you might want to do this, and what lessons we learned when we wrote the driver for Snabb.</p> <p>I will put this into context with other hardware and related technologies like AF_XDP, Intel AVF, DPDK, etc.</p> <p>Good news! Hackers nowadays feel empowered to write our own 10G-100G ethernet device drivers. Github contains many such drivers written in languages including C, C++, Lua, Rust, and Go. Community projects successfully use these simple bespoke drivers to keep in control of our applications' software architectures.</p> <p>The problem is that today these drivers mostly target aging hardware: the beloved Intel 82599 (Niantic) 10G family. Niantic is on the way out of the market and, surprisingly perhaps, there is no obvious successor for independent developers.</p> <p>In this talk I will present the Mellanox Connect-X family as a potential successor to Niantic as the darling of independent driver hackers. I will tell you how we independently wrote our device driver for the Snabb project and why this driver works for all 10G/25G/40G/50G/100G NICs in the ConnectX-4 and ConnectX-5 device families. I will go into technical detail about how the driver and the hardware works in case you want to write your own driver one day too.</p> <p>Together we will contemplate the merits of such a custom device driver in the context of related technologies like AF_XDP, Intel AVF, DPDK, and hardware from other vendors.</p> Luke Gorrie Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:35 00:30 H.2214 netmap_vnf_development VNF development made easy with netmap A flexible framework for high performance packet processing within QEMU VMs Software Defined Networking devroom <p>The Netmap framework provides a simple and efficient user-space API for direct access to Ethernet NICs and other fast software interfaces (e.g., VALE switches, pipes and monitors). Because of its flexibility, performance and ease of use, Netmap is an attractive solution to implement high-speed portable Virtual Network Functions. This talk shows how to write packet processing applications using the Netmap API, and run them inside QEMU VMs, over passed-through Netmap interfaces. With Netmap, applications running in two VMs or containers can exchange up to 20-30 Mpps (per-core) at minimum packet size.</p> <p>The need for an alternative mechanism and APIs for network I/O has been recognized by several O.S. bypass projects (DPDK, PF RING), and comes from the performance limitations of the traditional socket API (and the associated O.S. implementation) in terms of maximum packet rate. Using a traditional socket API a single processor core is not able to send or receive more than 1-2 million packets per second (Mpps) at minimum packet size (60 bytes), despite of much faster modern NICs which support 10-100 Mpps. These limitations are largely due to per-packet size-independent costs: system call, packet copy across user/kernel boundary, VFS layer overheads, dynamic (de)allocation of packet metadata (e.g. sk_buff on Linux), NIC register access and interrupts. Moreover, moving networking to userspace facilitates experimentation and improves portability. The bypass solutions overcome these limitations by pre-allocating packet buffers, mapping those buffers in the application address space and allowing applications to send and receive multiple packets using a single operation (e.g. a system call or a NIC register access). They also use simple packet representation structures optimized for raw packet I/O rather than for full-fledged protocol stack. When combined together, these techniques allow user-space applications to send/receive tens of millions of packets per second, saturating the NIC capacity even with short packets. Exploring Netmap is a good introduction to these topics, common to all frameworks. However, Netmap brings some additional benefits that are not found elsewhere: it does not force applications to resort to busy-polling, it protects devices from uncontrolled user-space access, and it introduces a common API which can also be used for fast VM networking and Inter-Process Communication. Netmap is available on both Linux and FreeBSD.</p> <p>The Netmap framework has evolved significantly from its inception as a user-space packet I/O interface to NIC hardware in 2011. It is now a flexible network I/O tool that supports many backends (in addition to NICs) and virtualized environments, accessible with the same API. The VALE programmable switch (part of Netmap) acts as a virtual switch for Virtual Machines (VMs) and physical NICs, supporting hundreds of virtual ports and over 20 Mpps per-core between its ports. Netmap pipes are point-to-point virtual links that connect processes or VMs at over 40 Mpps, useful for service function chaining. Netmap as a fast network backend has been integrated into hypervisors like QEMU, Bhyve and VirtualBox. Accelerated network I/O is also possible for lightweight virtualization (containers) by means of native support for Linux veth devices (over 40 Mpps). Finally, a virtual pass-through device allows any Netmap interface (e.g. a VALE port, NIC or pipe endpoint) to be safely exposed inside a VM, enabling unprecedented packet-rates (20-40 Mpps) between VMs.</p> <p>These Netmap features constitute the datapath building blocks for Network Function Virtualization (NFV) deployments. We are not aware of other technologies that allow applications running in two VMs or containers to exchange up to 20-30 Mpps at minimum packet size. With such powerful I/O capabilities, we believe Netmap is the preferred candidate to implement NFV applications such as load balancers, Intrusion Detection Systems, firewalls, etc.</p> Vincenzo Maffione Netmap github repository Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:05 00:20 H.2214 onos_introduction ONOS Introduction Overview of ONOS, Open Network Operating System from ONF, the Open Networking Foundation. Software Defined Networking devroom <p>ONOS is an open source project, written in Java that aims to deliver a software-defined networking (SDN) OS focusing on scalability, high availability, and high performance. The session will go over the ONOS modular architecture, its main tenets, use cases, and applications. It will describe the APIs that enable programmability in the network, both at the control and data planes.</p> <p>The talk will detail how your needs in network programmability are easily solved by new apps, REST APIs and other tools that the ONOS platform offers. ONOS has become production ready. The code undergoes strict and high-quality testing. ONOS is currently in production in data centers managing traffic on thousands of customers in mission critical networks. The talk will highlight how ONOS serves as a building block for opensource and commercial projects, such as Software enabled Broadband Access (SEBA), SONA for networking in Openstack and others. ONOS is also deployable in a kubernetes environment through docker containers. ONOS also keeps pushing the boundary of new technologies, for example enabling data plane programmability through P4 and P4Runtime and by providing support and connectivity to edge cloud deployments to better offer low-latency, personalised and secure services to the end-users.</p> <p>Finally, the talk will dive into the great ONOS open-source community, its strengths and how to become part of it.</p> Laszlo Papp Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:25 00:15 H.2214 ansible_networking_and_odl_integration Automation networking engine for enterprise SDN Ansible Networking and OpenDaylight integration Software Defined Networking devroom <p>Ansible is one of the fastest growing projects in the history of opensource. It is simple, flexible and powerful, and there is a huge community behind it. Ansible is capable of automate systems, storage and of course, networking. However, Ansible is stateless, and from the network engineer standpoint, a stateful view of the network topology is needed. There is where OpenDaylight joins the game. As a proper opensource SDN controller and network platform, OpenDaylight provides the translation of bussiness APIs into resource APIs, and Ansible networking performs its magic in the network.</p> <p>In this talk, we will go over a high lever overview of what is OpenDaylight. We will learn about its architecture and how it works and what we can do with it. Moreover, we will explain how Ansible networking is changing the game for network operators due to its simplicity and flexibility. Both of this components can create an automation engine for network devices with all the benefits of an SDN controller such a centralized control plane, programmability of your network and that holistic approach that networking engineers love.</p> <p>One more thing... there will be a live demo! We will demonstrate the ability to create an L3VPN in a typical telco service provider network with heterogeneous hardware, using the same interfaces from the user standpoint. This demo is using only opensource projects such OpenDaylight, Ansible, Skydive, etc. If you are interested in future network management, come and enjoy!</p> Ricardo Noriega Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:40 00:20 H.2214 scalable_virtual_switching A Scalable Approach to Virtual Switching Software Defined Networking devroom <p>The seamless scaling of a vSwitch in relation to changing platform workloads running in VMs/containers in real-time can be difficult, particularly when the workloads and the vSwitch are independent entities. Typically a user/orchestrator must somehow provision vSwitch cores on-the-fly or even over-provision these cores up-front, in order to ensure the vSwitch can handle the traffic going to and from these workloads at any given time. This talk introduces an approach/approaches to vSwitching that distributes the vSwitching work alongside worker cores, and as a result automatically scales with the amount of work being done on the platform. The approach is likely to be superior to existing approaches in terms of compute cost.</p> Ciara Loftus Bruce Richardson Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:40 H.2214 vpp_ligato_as_ipsec_gateway VPP & Ligato use cases: Contiv/VPP CNI plugin for Kubernetes & IPSEC VPN gateway Development of cloud-native network functions with VPP & Ligato Software Defined Networking devroom <p>In this talk, we will introduce FD.io VPP and the Ligato cloud-native networking framework and demonstrate how these are used to address two use cases - a CNI plugin for Kubernetes (Contiv/VPP) and an IPSEC VPN gateway.</p> <p>FD.io VPP is a high-performance packet forwarder that runs on commodity CPUs. Ligato provides a platform for developing Cloud-Native Network Functions (CNFs) using VPP running in Linux user-space and leveraging Intel's DPDK to grab packets directly from the NIC.</p> <p>Contiv/VPP is a CNI (Container Network Interface) plugin that uses VPP to provide network connectivity for Kubernetes pods. Its aim is to bypass the kernel for packet handling in a Kubernetes cluster wherever possible. To achieve this, it replaces the kube-proxy load-balancer by leveraging VPP's advanced NAT functionality, and implements native Kubernetes policy (to avoid the requirement for a kernel-based policy plugin). As well as providing fast packet processing, Contiv/VPP can be used as the foundation for CNF deployments running in Kubernetes - since it is based on the Ligato VPP Agent its functionality can be easily extended to interconnect CNFs, e.g. using the Ligato SFC Controller.</p> <p>StrongSwan is probably the most common IPSEC VPN concentrator in use today. It provides an IKE daemon but leverages the Linux kernel for IPSEC forwarding. Using Ligato we can interface StrongSwan's IKE implementation to VPP's IPSEC forwarding plane to create a high-performance IPSEC VPN CNF.</p> <p>In general we will look at the benefits of forwarding traffic using VPP rather than the Linux Kernel in terms of: 1) performance 2) flexibility 3) manageability</p> Giles Heron Rastislav Szabo Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:40 00:20 H.2214 vpp_northbound_connections Northbound Connections of VPP for NFV in Containers and Kubernetes Software Defined Networking devroom <p>Many have recognized the advantages of containerization and container platforms for traditional web server and database apps. With the expansion of IoT as well as Telco and service providers’ workloads into containers, there is an increased focus on NFV, and other non-traditional networking intensive applications. These applications require layer two and three access to high performance data planes from within containers and Kubernetes pods. In this session, we will dive into the particular requirements for layer2 and layer3 containerized applications. We will also discuss and compare some solutions such as Network Service Mesh (NSM) and Multus and how they are used for the connection and orchestration of NFV containerized workloads.</p> Thomas F Herbert Billy McFall Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:30 H.2214 csit_building_production_grade_networking_software Building production-grade networking software with FD.io CSIT Building fast and robust networking software must be data-driven! Software Defined Networking devroom <p>Numerous open-source projects develop software-defined data planes targeting network use cases such as Discrete Appliances, Cloud Infrastructure, Virtual Network Functions and now also Cloud-Native deployments. These may be based on foundation toolkits such DPDK, eBPF/XDP, Snabb and so on, and may implement a diverse range of network functions, applied in many combinations and on different compute platforms and devices.</p> <p>The need for a consistent and repeatable, use-case driven performance validation and benchmarking approach has never been greater. Enabling both the development community and the end-user to understand, measure and verify expected performance.</p> <p>Achieving great performance with Network Software, should not be accidental, it should be data-driven!</p> <p>This talk explains how the FD.io CSIT project aims to meet this need by developing and providing Continuous Performance Lab platform for benchmarking, validation, performance trending and regression detection. Founded on multi-vendor collaboration, CSIT leverages deep multi-platform understanding and telemetry tools to analyze and correlate benchmarking results leading to consistent, repeatable and reliable performance validation the FD.io user base can rely on.</p> <p>This talk will cover</p> <ul> <li>A brief overview of FD.io CSIT</li> <li>Recent FD.io VPP release performance data is presented and discussed in this context.</li> <li>Recent CSIT Community Innovations Performance Trending graphs, MLRSearch and PMU Tooling are presented.</li> <li>Debugging a real system setup issue with FD.io CSIT is also covered</li> </ul> Ray Kinsella Maciek Konstantynowicz Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 H.2214 opnfv_testing_infrastructure_and_services Testing your infrastructure and services with the help of OPNFV testperf team Software Defined Networking devroom <p>The OPNFV community has developed a comprehensive set of open source test tools and test methodologies for NFVIs and VM-based cloud platforms. With the proliferation of cloud native and edge computing, we need to think about how to evolve these tools to meet the requirements of emerging and future use cases. In this talk, we will give an outlook on how the OPNFV test tool ecosystem can address new use cases and challenges. The test tools in OPNFV are not just for NFV, but can be more widely useful. We will present the tools, and discuss how they can be extended to support new and existing usecases.</p> <p>This talk is aimed at an audience that want to test their SDN/NFV deloyments (but not necessarily using OPNFV). It will give an overview of the test tools, and how they can be use tools for many different deployments, test different components of your system (VIM, vswitch, storage, etc.) and perform different types of testing (infrastructure verification, feature validation, stress and resiliency testing, performance benchmarking, characterization, etc.).</p> Emma Foley Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:00 00:20 H.2214 noisy_neighbor_insurance Are you insured against your noisy neighbor? Software Defined Networking devroom <p>Traditional NFVi dataplane performance testing rarely focuses on (availability, consumption) dark resources such as CPU Cache and Memory Bandwidth. Much of the Quality of Service fine tuning often leads to oversubscription ending up with shared resource contention often termed as noisy neighbor effects. We present the methodology and test scenarios using open source solutions - OPNFV-VSPERF Framework, Collectd monitoring solution, Stress-NG workload generator and Resource Management client for (a) analyzing the performance impact due to presence of noisy neighbors and (b) controlling resources like Last Level Cache (LLC) for optimal performance. This talk was presented at recent Open Source Summit.</p> <p>Short Bio: Sunku Ranganath is a network software engineer in Intel Corporation, focused on enabling service assurance solutions for SDN/NFV infrastructures. With background in drivers &amp; firmware development, Sunku has been actively involved in enabling reference solutions, performance methodologies and industry guidance in the NFV domain. Sunku is also an active contributor and user of OPNFV barometer &amp; VSPERF communities.</p> Sunku Ranganath Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:20 00:15 H.2214 dpdk_burst_replay Introduction to dpdk-burst-replay A tiny tool for easily inject pcap files on DPDK NICs Software Defined Networking devroom <p>dpdk-burst-replay is a friendly tcpreplay tool for DPDK NICs, main objective being to operate as fast as possible (similar to --topspeed option of tcpreplay). To achieve this, it pre-load the pcap file on memory before sending it to the Tx queues. It can send the packets simultaneously through multiple ports (with dedicated threads), and several times in a row.</p> <p>We will start with an overview of what it can do, what it is made for, then we will see how to use it on a typical use case: setting up a stress test between several NIC ports with pcap dumps of real traffic. Finally, we will talk about how it was designed, how it should evolve, and what features we would like to add.</p> Jonathan Ribas GIT repository Documentation Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:35 00:15 H.2214 dpdk_softnic_enrich_nics_capabilities Enrich your NIC's capabilities with DPDK SoftNIC Software Defined Networking devroom <p>Over the years, more and more vendors have embraced DPDK to enable their NICs for userspace packet processing. This trend has advanced DPDK, leading to the development of new APIs with the aim of leveraging the heterogeneous features and capabilities of NICs. This level of diversity in PMDs and APIs is a catalyst for an inconsistent development environment, making it difficult for applications to accommodate all types of NIC. To overcome this, we propose DPDK SoftNIC, which is capable of being programmed to build custom NIC pipelines to augment missing features to HW NICs by using advanced DPDK features without requiring an application redesign. SoftNIC allows the application to be incognizant of the hardware available to it without compromising functionality.</p> Kevin Laatz Reshma Begam Pattan Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:50 00:30 H.2214 from_closed_to_open_source_switch From closed to Open Source switch ASICs The transition in the world of switching asics Software Defined Networking devroom <p>A journey over the last ten years of opening access to switching ASICs. Starting with OpenFlow going through the lands of open APIs we have reached the harbours of openness. Are we there yet to build a truly open Network Operating System?</p> <p>Open Source got mainstream in the world of switching ASICs. We nowadays can get open access to steer multiple terabits of packets through the network. This talk tries to cover the path that startet ten years ago with OpenFlow that tried to open up the networking world. We will pass by some more or less known buzzwords like Indigo, OF-DPA, Switchdev, OpenNSL, SAI, P4, SDK-LT and NPL. From this zoo of lower level details we will have a look at their use in Network Operating Systems (NOS) today. Finally trying to answer the question: Are we there yet?</p> Tobias Jungel Indigo (First Gen) OF-DPA Switchdev OpenNSL SAI P4 SDK-LT FBOSS SONiC OPX ONL Stratum project Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 01:00 H.3242 apache_maven_bof Apache Maven BOFs (Track B - in H.3242) bof Submit feedback 16:00 01:00 H.3242 samba4_bof Samba 4 self-compiling BOFs (Track B - in H.3242) bof Submit feedback 17:00 01:00 H.3242 nethserver_bof Nethserver BOFs (Track B - in H.3242) bof Submit feedback 14:00 01:00 H.3244 sailfishos_bof SailfishOS BOFs (Track C - in H.3244) bof Submit feedback 10:30 00:20 AW1.120 welcome_to_the_open_source_design_collective Welcome to the Open Source Design Collective! An introduction to our Open Source Design collective Open Source Design devroom <p>This session will be the opening session of the Open Source Design devroom. We will have a short introduction to the Open Source Design collective, what we do, who we are.</p> <p>We also welcome new comers to FOSDEM, user-centred design, or open source to introduce themselves, tell us a little bit about the work they do, and what they're looking to learn or find out.</p> <p>It is a good opportunity to meet potential collaborators and make new friends. ☺️</p> Bernard Tyers Open Source Design Collective Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:20 AW1.120 component_based_design_system Component-based Design System and Development Open Source Design devroom <p>How do you bring order to this chaotic web frontend climate fueled by the ever-changing technologies driving it? We - a UX Designer and a Software Engineer - will introduce you to the concept of WebComponents, and how we can achieve order through evolving from Bootstrap to CSS grid based design system.</p> <p>Target Audience: designers and engineers. our talk introduces the importance of collaboration and bringing designers and engineers together.</p> <p>The Red Hat portfolio includes about 50 different products. There was a need for a design system as different patterns were build over and over again which led to inconsistency. The UXD goal is to bring consistent user experience to the entire Red Hat portfolio. This talk explains why it is important to have a unified look and feel. Patternfly is an open-source design system that helps our designers and engineers build user friendly products. As the frontend technologies are constantly evolving, this design system has to evolve with them. We would like to talk about the history and evolution of PatternFly - how it was created and how it tries to handle the continuous evolution of the frontend landscape. Perspectives from both design and engineering will be included.</p> Dávid Halász Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:20 AW1.120 educational_resources_on_digital_accessibility Open Educational Resources on Digital Accessibility for Building Your Own Courses Open Source Design devroom <p>The accessibility of digital technologies in the European Union (EU) varies from country to country, due, in part, to differences in accessibility-related legislation. In October 2016, the European Parliament accepted a directive on the accessibility of websites and mobile applications provided by public sector bodies (Directive (EU) 2016/2102). New public sector websites in the EU will need to conform by 23 September 2019, all public sector websites will need to conform by 23 September 2020, and all public sector mobile apps will need to conform by 23 June 2021. The directive references standard EN 301 549, which has been updated to reflect the requirements in the Web Content Accessibility Guidelines (WCAG) 2.1. This new legal situation will create a greater demand for accessibility-related training and training resources for public sector bodies. The EU-funded project MOOCAP (MOOC Accessibility Partnership, https://moocap.gpii.eu/, September 2014 - August 2017) created 11 free online courses about various aspects of digital accessibility. Four of these courses ran as MOOCs (massive open online courses) on platforms such as FutureLearn and edX. The resources from these courses are freely available as Open Educational Resources (OERs) under the Creative Commons Attribution 4.0 International licence (CC-BY 4.0). This licence allows anyone to share, adapt and redistribute the content of the OERs, provided that they correctly attribute the MOOCAP partner (or partners) who created the resources. This presentation will briefly present the MOOCAP project, the courses it created (especially those that are still available) and the Open Educational Resources it made available.</p> Christophe Strobbe MOOCAP: A pan-European project on providing education on accessible design Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:20 AW1.120 ux_overhaul_ooni Designing for Activism An overview of the UX overhaul of OONI Probe Open Source Design devroom <p>How do you design a user experience to guide both grassroot contributors as well as the advanced data researchers? That's what we were trying to solve in the past year for OONI Probe, the internet censorship measurement tool which enables thousands of activists worldwide to measure their network and automatically report potential anomalies of censorship. As part of the Tor Project, OONI Probe is vital to in helping the Internet Freedom movement, as all data gathered is Freely accessible as Open Data.</p> <p>During the talk we will go through the redesigned OONI Probe 2.0 for Mobile and Desktop and explain the new design system and how we hope to design an experience which enables both advanced and beginners to OONI and measuring internet censorship.</p> Elio Qoshi Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:20 AW1.120 ux_at_tor UX at Tor an Open Approach Open Source Design devroom <p>How do you create privacy tools that work for people all over the world, who are fighting many different struggles for liberation? We will talk about how we empower users with open design and community help at the tor project. We'll share our process during the development of Tor Browser 8 and explain why the way we work defines the product we release.</p> <p>To make useful software, especially software that aims to keep people safe, it is essential to understand users’ contexts and goals. As part of our global south initiative, members of the Tor user experience and community teams traveled through India, Uganda, Colombia, and Kenya to run usability testing. We ran in-person testing of several user experience (UX) improvements in Tor Browser 8.0 with users of different technical backgrounds. We conducted more than 45 interviews that gave us an understanding of the diverse mental models and technical levels of knowledge of our users. We met people like Juana, a coffee farmer in Colombia who is part of a self-managed group of women coffee growers. The group uses Tor to communicate securely with one another. We met Jon, an environment activist and journalist in Hoima, Uganda who uses Tor to anonymously publish his blog. We learned about several threat models of the people we spoke to in Uganda. Concern about local police retaining hardware devices, and the practice of the political party currently in power seizing journalists notes and other records were common in most of those communities.</p> <p>In addition, this work allowed us to speak with people using our software in extreme conditions, such as poor telecommunications infrastructure, very expensive data packages or very old hardware. This helped us to understand their context, empathize, and consider solutions that work for them. We believe that Tor Browser must be usable by people without a technical background, as well as by advanced users. We want to empower our users through education so that they can have control of their browsing.</p> <p>We use an open design process where developers and designers work together to achieve the best solution. We use knowledge gained from our research to help us to create the most usable flow for users.</p> <p>We will talk about the iterations and improvements we released in Tor Browser 8: the security indicators for .onion sites, the circuit display and the onboarding for new users.</p> Antonela Debiasi TB8 Release Tor UX Team Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:20 AW1.120 localizing Breaking Down Language Barriers Localizing for access, activism and preservation Open Source Design devroom <p>We will introduce the work of Localization Lab and localization as a key element of bridging the digital divide. We will also discuss the essential connections between emerging connectivity in vulnerable societies, adoption of open source tools, means to oppose or prevent censorship and localization into local languages.</p> <p>Only about 25% of the world's population speaks English natively or as a second language, however English still dominates over half of website content. This dominance also extends to Free and Open Source Software. While FOSS plays a large role in bridging the digital divide and bringing access to technology and the open Internet to new users around the globe, these tools and spaces are only as effective as they are linguistically accessible.</p> <p>Over the past 5 years, Localization Lab has built a network of over 6,000 volunteers worldwide who localize open source, digital security and circumvention tools for communities in need. In this session we will share experiences we have had working with communities around the globe who are localizing digital security tools out of necessity, as language preservation, and as forms of activism. We will also discuss the importance of planning for localization in the early design stages and how you can improve your tools by harnessing the knowledge and experience of localizers as end users.</p> <p>You should leave the session excited to promote language diversity in tech and on the Internet and with ideas for how you can improve FOSS localization efforts as a translator or a developer.</p> Erin McConnell Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:20 AW1.120 cost_of_not_doing_user_research The real cost of not doing user research And how to get insight-based decisions on a budget Open Source Design devroom <p>In this talk, I address the direct value or user research for small teams. It illustrates how much money, developmental effort and time a remote team had lost without a proper research process. In 2013 I was working on an RSS-reader: a personal project that quickly grew to six digits daily active users. Five years later, I look back, reflecting on the research-related mistakes and outlining what lightweight and budget-friendly methods could have flipped the table, including approaches to planning, organising and running research.</p> <p>The importance of following a user-centered design approach has been declared over 53 million times on the internet, according to Google Search results. However, in practice, small teams may not have the resources, and often lack a dedicated researcher or the luxury of proper budgets, so the research becomes a lesser priority compared to the delivery side of projects. This creates sets of problems, where teams are losing money, waste limited developmental efforts and are often unable to evaluate their work on a larger scale.</p> <p>In 2013 I was working on an RSS-reader: a personal project that quickly grew to six digits daily active users. We did not follow a proper research process and because of that made some seriously bad mistakes and decisions. This talk lists the core ones and outlines what lightweight and budget-friendly methods could have dramatically change the situation, including approaches and advice on planning, organising, running and presenting research along with the advice for developers and engineers. Since the topic of "Should designers code" has been hotly debated in the past couple of years, maybe it is time for discussion around "Should developers research" and arguments for (and against!) non-UX-people being involved in traditional UX activities.</p> <p>This talk covers: - The direct value of (not) doing research - Planning, organising and running lightweight discovery and evaluation activities - Introducing research to non-UX people</p> Olena Bulygina Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:20 AW1.120 open_source_design_in_trenches Open Source Design in the trenches: a case study How we redesigned the FOSDEM video review interface Open Source Design devroom <p>Early in 2018 I responded to a call for help published in the Open Source Design jobs board (https://opensourcedesign.net/jobs/). It was from the maintainer of something called SReview (https://github.com/yoe/sreview), which happens to be the software FOSDEM uses to capture, post-process and publish the videos of all the talks at the conference.</p> <p>Over the past 10 months we redesigned the SReview interface in a user-centred, collaborative, iterative and open way. This talk explains how we went about it. Using a model of the "ideal" design process as a reference, we'll show where we deviated from it and why. The moral of the story? There is no best way of doing design. The best way of doing design is the way that suits your project.</p> <p>Early in 2018 I responded to a call for help published in the Open Source Design jobs board (https://opensourcedesign.net/jobs/). It was from the maintainer of something called SReview (https://github.com/yoe/sreview), which happens to be the software FOSDEM uses to capture, post-process and publish the videos of all the talks at the conference.</p> <p>SReview takes a rather ingenious approach to the problem of how to review presentation videos before publication. Instead of the small video team doing all the work, which would take ages, they crowdsource the task, by asking the speakers themselves to review their own presentations. Speakers get an early preview of the video - something they appreciate -, and the FOSDEM video team gets the job done faster. Everybody wins.</p> <p>There was only one small problem: the interface speakers had to use to review presentation videos was not working. Speakers kept making mistakes in the process, which caused a lot of extra work for the FOSDEM video team.</p> <p>Over the past 10 months we redesigned the interface in a user-centred, collaborative, iterative and open way. This talk explains how we went about it. Using a model of the "ideal" design process as a reference, we'll show where we deviated from it and why.</p> <p>The moral of the story? There is no best way of doing design. The best way of doing design is the way that suits your project.</p> Wouter Verhelst Belen Barros Pena sreview repository sreview design work repository Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:20 AW1.120 open_source_design_collective Our Open Source Design collective and group photo Open Source Design devroom <p>For everyone who doesn’t know what exactly we do, this is a short intro to our collective: We work to raise the profile of good design in open source software, and connect developers &amp; designers to make it happen.</p> <p>We run an Open Source Design community forum, organize design tracks at well-known events like FOSDEM (hello 🙋), FOSSASIA and OpenTechSummit, have a job board to get designers involved, provide open design resources to developers &amp; designers, and more.</p> <p>We will also take our GROUP PHOTO during this session! 😊</p> <p>A few of our activities from last year include:</p> <p>👩‍💻 Lots and lots of posts on our Open Source Design job board! https://opensourcedesign.net/jobs/ 2️⃣ Organization of our second Open Source Design Summit in Tirana! https://opencollective.com/opensourcedesign/events/open-source-design-summit-2018-371ev 💸 Sponsored by Sticker Mule, Mozilla &amp; phpList and supported by Open Technology Fund, Ura Design, Red Hat &amp; Nextcloud 📑 More activity on our Discourse forum! https://discourse.opensourcedesign.net</p> <p>Things we are working on or need to work on:</p> <p>💬 Attending a bunch of events and giving talks related to Open Source Design https://discourse.opensourcedesign.net/c/events 🎨 Attendance at more mainstream design events! ⭕ Still working on becoming an Open Source Initiative affiliate https://github.com/opensourcedesign/organization/issues/53 👥 We need to do more on the meetup front: https://discourse.opensourcedesign.net/c/meetups – NYC is active, but we can improve elsewhere 💻 Another work in progress is the website, we are looking into improving the design. ;)</p> <p>✨ Probably lots more we forgot to list! :)</p> Jan-Christoph Borchardt 🎨📐 Open Source Design 💼 Open Source Design job board 👥 Open Source Design events 💬 Open Source Design community forum 💸 Funding at Open Collective Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:20 AW1.120 designing_for_security Designing for Security Open Source Design devroom <p>Good security requires usability. If a secure technology isn’t usable, users will simply use something else - or worse, they might work around the technology to do what they need to do. We will demonstrate this universal truth with a handful of examples and supplement them with good design principles.</p> <p>We will cover UX of key handling, password managers and anti-phishing, and also spend some time on why these products and services so often lack usability. We also won't miss this opportunity to introduce simple human-centered design methods to incorporate in the development process!</p> Molly Wilson Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:50 AW1.120 panel_more_designers Panel: Difficulties in having more designers participate in Open Source Open Source Design devroom <p>Open discussion about getting more designers participating in Open Source projects and better understanding of the barriers that may be preventing them from contributing.</p> <p>We will invite several designers into the panel, to share their experience with their open source communities and provide insight on the topic. Some questions will be interactive and the public can also vote and respond, representing their opinion.</p> Ecaterina Moraru Talk Slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:20 AW1.120 device_to_device_networks Mobile design with device-to-device networks Exploring the design space of novel technologies through research, design, prototyping and storytelling Open Source Design devroom <p>This talk outlines a strategy for designing interactions that take advantage of novel technologies by combining research, design, prototyping and storytelling.</p> <p>Current and future network standards (e.g Neighbour Awareness Networking) will allow faster and more convenient direct connections between mobile devices. This technology has the potential to enable new interactions and social dynamics, as phones become aware of each other's presence and can exchange large amounts of data in a fast and private way.</p> <p>But how do we find out what is possible? And how do we design for it?</p> <p>This talk draws on several examples and working prototypes to show how a multidisciplinary iterative process can lead to important insights and a broadened range of possibilities.</p> <p>Both design and engineering are fundamental parts of this process, as a wide range of skills is necessary to (among other things) carry out research, understand the constraints of the technology, build prototypes while ensuring that they remain usable and focused, detect problems and opportunities, and inform the course for future exploration.</p> Felipe Erias Video recording (WebM/VP9) Video recording (mp4) Blog post (with videos) Submit feedback 17:00 00:20 AW1.120 ethics_for_foss_user_research Dotting the ethics i and crossing the t Solid ethics for FOSS user research Open Source Design devroom <p>This talk will be about establishing good ethical guidelines and standards for user research for the SecureDrop project. The 2 speakers have contributed to SecureDrop, an open-source software platform for secure communication between journalists and whistleblowers.</p> <p>This talk will be about how we established good ethical guidelines and standards for user research for the SecureDrop project. The 2 speakers have contributed to SecureDrop, an open-source software platform for secure communication between journalists and whistleblowers.</p> <p>It will focus on why ethical research is important in user-centred design, how to do ethical user research in open source projects. It will also explain how to establish a trusting relationship with participants.</p> Belen Barros Pena Bernard Tyers Bernard Tyers' Twitter Belén Barros Pena's Twitter Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:30 00:20 AW1.120 yoast_design_meeting The Yoast Design Meeting and how it started us on the path to open source design Open Source Design devroom <p>The Yoast design team explains how they went from individual designers to a design team, to having a weekly design meeting, building a design system, and how this is preparing them to standardize and open source their design philosophy.</p> <p>Open Source is a great philosophy, but for designers it doesn’t necessarily feel like a natural fit. Even at Yoast, which lives and breathes open source, the design team has had their struggles with this - and still does to this day. We have a strong brand identity that lives in our shared consciousness, but how can we explain this well to a new team member, or someone outside the design team, or even outside the company? In this talk, we’ll talk about the process we went through to get our designers to think outside their own heads, and the way we're creating a shared vision through the ‘Yoast Design Meeting’.</p> Tim Hengeveld Luc Kickken Company website Tim Hengeveld's Twitter Luc Kickken's Twitter Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:00 00:20 AW1.120 furniture_with_javascript Making furniture with Javascript An open-source community run platform for designers to experiment with parametric furniture design. Open Source Design devroom <p>An experimental project which uses web technologies to help design, display and make furniture. O-LAP is an open-source community run platform for designers to experiment with parametric furniture design. Designers create parametric furniture designs as plugins into the framework. Registered designs gets displayed in the online gallery. Users can view the designs from the gallery and customize the design. Framework lets users extract CAD drawings which can be used to fabricate the design using a CNC machine. The project is built as an open access network of git repositories delivering updated Javascript for the clients.</p> <p>O-LAP is a community of makers who like to make furniture from code. Designers write code which can create designs for furniture pieces. They make the designs like a plugin into a web app. The app can then extract drawings from the designs which can be used to fabricate the design using a computer controlled machine (similar to 3D printing). Designers can get creative in different ways when they start writing code to create furniture designs. For example they can make the design for a chair which changes for people with different heights, or furniture which learns from your genetic data to customise it for you. We also adapt a new way of production so that such designs can be manufactured by anyone with a CNC machine. It distributes the task of production to independent makers, so the designs are fabricated closest to the place where they are needed, reducing transport. The group has grown with people across the globe interested. It would be great to showcase it to the broader OS developer community.</p> Amit Nambiar Project page Sample design Github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:30 00:20 AW1.120 pitch_your_project Pitch your project Designers meet projects. Projects meet designers. Open Source Design devroom <p>This is one of the sessions we run every year.</p> Bernard Tyers Open Source Design Collective Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:50 00:10 AW1.120 open_source_design_closing_session Closing session Open Source Design devroom <p>We will close the Open Source Design devroom with a few words from all the collective and some comments from the people attending.</p> Bernard Tyers Open Source Design Collective Submit feedback 10:30 00:25 AW1.121 qosf_oss_meets_qc When open source meets quantum computing Opening keynote Quantum Computing devroom <p>This talks overviews the available quantum computing paradigms and outlines the pratical possiblities of leveraging and exploring the promised power of quantum computing processors that developers have today.</p> Tomas Babej Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:45 AW1.121 forest_oss_quantum_sdk Forest: An Open Source Quantum Software Development Kit Quantum Computing devroom <p>Rigetti Computing manufactures programmable quantum computers. As a part of that, they have developed a number of new technologies: a programming language, compiler, simulator, runtime, language bindings, and execution environment. Together, these form Forest, their quantum software development kit. We discuss Rigetti's open source quantum ecosystem, and how we see it developing in the coming year.</p> <p>Rigetti Computing manufactures quantum integrated circuits, and they become computers when the silicon is made programmable. Programming a quantum computer is fundamentally different than programming a classical one. The earliest quantum computers will run hybrid quantum/classical algorithms, marrying traditional software approaches with very non-traditional paradigms born out of quantum mechanics.</p> <p>In this light, open source quantum software serves dual purposes. First, it makes the mathematical realities of quantum computing more accessible to non-experts, and second, it leverages the vast innovations made by countless open source software engineers around the world. Both of these serve to maximize the power of near-term quantum computers.</p> <p>We discuss the fundamental nature of an open source quantum development ecosystem, starting with the quantum programming language Quil, and discuss how that's made into a practical tool through open source quantum software development kits. We discuss Rigetti's open source quantum ecosystem called Forest, and how we see it developing in the coming year.</p> Robert Smith Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:50 00:30 AW1.121 dwave_delivering_practical_qc Delivering Practical Quantum Computing on the D-Wave System Quantum Computing devroom <p>Quantum computing pioneer D-Wave Systems has led the development of quantum hardware and software over the past two decades. And the company has always taken a slightly different approach. Learn how at each step along the quantum computing journey, the company’s pragmatic decisions have brought quantum computing to market. From the development of the only commercially-available quantum computer to the recent release of the first Quantum Application Environment, D-Wave has long been at the forefront of bringing practical quantum computing to customers. This approach has helped customers and users develop over 100 early applications with real-world implications in industries spanning healthcare, defense, and automotive.</p> <p>Alexander Condello, Ocean stack developer, gives insight into the company’s growth, beginning with years of research and the development of the first quantum computer – a 28-qubit machine built in 2007. Ten years later, D-Wave would realize Dr. Richard Feynman’s original vision of a quantum simulator, proving that its quantum computers could be used to simulate quantum systems at a large scale. This year, the company launched Leap, the first real-time Quantum Application Environment that provides immediate access to a live quantum system. The Leap environment hosts a robust online community, learning demos, resources and software tools for developers to start writing and running code, today.</p> <p>From initial steps in hardware design to opening access through the quantum cloud, Alex discusses the technology and research that made this evolution possible, and what we can expect from the next era of quantum applications.</p> Alexander Condello Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:25 00:30 AW1.121 dwave_sdk D-Wave's Software Development Kit Quantum Computing devroom <p>D-Wave's Ocean software tools are an open source ecosystem for solving customer-scale problems on the quantum computer.</p> <p>The D-Wave System solves a particular problem - the Binary Quadratic Model (also known as the QUBO or Ising problem). We will provide an overview of the open source tools that are used to express your problem as a BQM and to convert that BQM into something that can be solved by the quantum computer.</p> <p>Finally we will motivate open sourcing these steps, and discuss the areas that interested users can participate in the project.</p> Alexander Condello Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:30 AW1.121 dwave_hybrid D-Wave Hybrid Framework Quantum Computing devroom <p>The D-Wave Hybrid is a general, minimal Python framework for building hybrid asynchronous decomposition solvers of quadratic unconstrained binary optimization (QUBO) problems. Designed in the spirit of the dataflow programming paradigm, and built atop the Ocean SDK primitives, it provides a simple workflow construction, execution and instrumentation environment that enables rapid development and tuning of hybrid applications running across classical and quantum systems. In the talk, we'll briefly discuss the motivation for some of our architectural decisions, briefly present available submodules, features and building blocks, only to focus on describing several interesting use cases (hybrid workflows).</p> Radomir Stevanovic Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:35 00:45 AW1.121 ibmq What is IBMQ Quantum Computing devroom Mark Mattingley-Scott Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:25 00:45 AW1.121 make_your_code_count_quantum_simulations_and_collaborative_code_development Make your code count: Quantum simulations and collaborative code development Introduction to QuTiP: the quantum toolbox in Python Quantum Computing devroom <p>Open source tools such as QuTiP - The Quantum Toolbox in Python are playing a big part in facilitating research in quantum technologies in both academia and the industry. Such tools provide the users with the software resources to model, simulate and study various quantum effects easily. QuTiP goes beyond the simulation of quantum circuits and facilitates the simulation of the physics of quantum devices. In this talk, I will take the example of some new developments in QuTiP to show the ease with which one simulate open quantum systems as well as contribute to the development of such software tools. We will discuss various parts of collaborative code development using Git, and possible optimizations of calculations. The talk will be an end-to-end discussion of how to collaborate, develop and distribute your own open-source tools for the study of quantum systems.</p> <p>A major challenge to developing quantum computing is modeling the quantum systems themselves which are used to build quantum devices - superconducting circuits, ion traps, spin qubits, photonics. In addition to simulating quantum circuits and algorithms, simulating quantum physics itself is a challenging task and if we are to harness the power of quantum computing, we need to model quantum systems better and study the interactions of a quantum system with the environment and the effect of noise.</p> <p>QuTiP allows the user to simulate several quantum phenomena and study the effects of noise on an open quantum system. The open-source nature allows anyone to add and contribute code which makes it an excellent place to showcase new simulation techniques and quantum effects emerging from a research project. This also enables reproducibility and it can accelerate further study and research without the need to spend weeks reproducing previous results.</p> <p>I will introduce QuTiP and discuss several examples on how to use the tool. The examples will range from generating topological circuit descriptions from arbitrary quantum circuits to simulations of spin ensembles to simulating spin-boson models with strong and ultrastrong coupling.</p> <ol> <li>Introduction</li> <li>Open source projects for quantum computing and quantum simulations - a brief discussion on python based tools.</li> <li>Beyond quantum circuits: simulating quantum physics with QuTiP.</li> <li>Examples and latest additions to QuTiP</li> <li>Contributing your own code to open source projects.</li> <li>Conclusions</li> </ol> Shahnawaz Ahmed QuTiP tutorials Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:15 00:45 AW1.121 xanadu_strawberry_fields Strawberry Fields - software for photonic quantum computing Quantum Computing devroom <p>n this talk, we introduce Strawberry Fields, an open-source quantum software library for light-based quantum computers. Built in Python, Strawberry Fields is a full-stack library for design, simulation, optimization, and quantum machine learning of photonic quantum circuits. The platform consists of three main components: (i) an API for quantum programming based on an easy-to-use language named Blackbird; (ii) a suite of three virtual quantum computer backends, built in NumPy and Tensorflow, each targeting specialized uses; and (iii) an engine which can compile Blackbird programs on various backends, including the three built-in simulators, and – in the near future – photonic quantum information processors. The library also contains built-in examples of several paradigmatic algorithms, including teleportation, (Gaussian) boson sampling, instantaneous quantum polynomial, Hamiltonian simulation, and variational quantum circuit optimization.</p> Joshua Izaac Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:05 00:45 AW1.121 xanadu_penny_lane PennyLane - Automatic differentiation and machine learning of quantum computations Quantum Computing devroom <p>In this presentation, we introduce PennyLane, a Python-based software framework for optimization and machine learning of quantum and hybrid quantum-classical computations. PennyLane’s core feature is the ability to compute gradients of quantum circuits in a scalable way that is compatible with classical techniques such as backpropagation. PennyLane extends the automatic differentiation algorithms common in optimization and machine learning to be compatible with quantum and hybrid computations. The library provides a unified architecture for near-term quantum computing devices, supporting both discrete- and continuous-variable paradigms of quantum computation. A plugin system makes the framework compatible with any gate-based quantum simulator or hardware, including leading quantum software platforms such as Xanadu's Strawberry Fields, IBM's Qiskit, and Rigetti's PyQuil. PennyLane can be used for the optimization of variational quantum eigensolvers, quantum approximate optimization, quantum machine learning models, and many other applications.</p> Nathan Killoran Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:55 00:45 AW1.121 google_qc Quantum Computing at Google and in the Cloud An update on Google's quantum computing program and its open source tools. Quantum Computing devroom <p>Google is a world leader in technology and a major contributor to a number of open source efforts. Google's quantum hardware and algorithms teams have achieved a number of quantum computing "firsts". This talk will present the Google quantum computing architecture, an update on current hardware implementations, and a description of the design and philosophy of Cirq, Google's open source programming language for near term "NISQ" (noisy intermediate-scale quantum) computers.</p> Kevin D. Kissell Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:45 00:45 AW1.121 qosf_panel_discussion Promotion of open source and role of standardization in Quantum Computing Open panel discussion Quantum Computing devroom Tomas Babej Mark Fingerhuth Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:35 00:25 AW1.121 qosf_closing Exponential speedup in progress Closing remarks Quantum Computing devroom Mark Fingerhuth Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:05 AW1.125 ada_welcome Welcome to the Ada DevRoom Ada devroom <p>Welcome to the Ada Developer Room at FOSDEM 2019, which is organized by Ada-Belgium in cooperation with Ada-Europe.</p> <p>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.</p> Dirk Craeynest More info on Ada-Belgium web site Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:35 00:45 AW1.125 ada_introduction An Introduction to Ada for Beginning and Experienced Programmers Ada devroom <p>An overview of the main features of the Ada language, with special emphasis on those features that make it especially attractive for free software development.</p> <p>Ada is a feature-rich language, but what really makes Ada stand-out is that the features are nicely integrated towards serving the goals of software engineering. If you prefer to spend your time on designing elegant solutions rather than on low-level debugging, if you think that software should not fail, if you like to build programs from readily available components that you can trust, you should really consider Ada!</p> Jean-Pierre Rosen More info on Ada-Belgium web site Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:20 AW1.125 ada_sequential Sequential Programming in Ada: Lessons Learned Ada devroom <p>What's hot right now in the proposal for Ada 2020 is increased support of safe parallelism. However, the support for sequential programming in Ada 2012 is absolutely great and probably underestimated.</p> <p>This presentation will demonstrate lessons learned from making an Ada binding to the Wayland Client API: how to leverage nested subprograms, pragma Unmodified, subpools, Gnatcheck and GPS to provide a flexible/enjoyable way of working and at the same time maximize compile-time error checking when developing sequential algorithms.</p> Joakim Strandberg More info on Ada-Belgium web site Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:50 AW1.125 ada_train Autonomous Train Control Systems: a First Approach Ada devroom <p>Numerous small villages in Austria have lost their connections to the railway network because it was no longer cost-effective to operate under a regular schedule. To re-establish these connections, FH Campus Wien started the project "autonome, schienengebundene, on-Demand, open-Track Systeme" AuSoDoTS (Autonomous rail bound on-Demand Open Track systems). The project's objective is to develop a concept for how to safely operate small autonomous trains, without a fixed schedule. Trains are only approaching to stations when a passenger explicitly requests them by pressing a button at the station or using a mobile app. A short track from Liesing at the edge of Vienna to Kaltenleutgeben, a small town in Lower Austria, could be one of the first test locations.</p> <p>As a first approach a small model railway has been built. The model has two purposes. One is to find the optimal placement for passing loops where trains can pass each other, since the connection is mostly single track. The other is to test different scheduling algorithms for on-Demand service. To fulfill the strict safety aspects of a passenger transportation system, the programming language Ada is used and in following versions SPARK will be used as it can be formally verified to be correct then.</p> Julia Teissl More info on Ada-Belgium web site Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:20 AW1.125 ada_parallel Controlling the Execution of Parallel Algorithms in Ada Ada devroom <p>Tasking in Ada provides an effective tool for shared memory parallelism. An "any time" algorithm is an algorithm that, given some more resources, will improve the accuracy of an estimate. For example, consider the estimation of Pi by a Monte Carlo method. With multitasking, the status of the running of an "any time" algorithm can be monitored without interrupts.</p> <p>The programming concepts will be illustrated with examples of algorithms in polyhedral geometry. The demonstrated code belongs to the free and open source PHCpack, at https://github.com/janverschelde/PHCpack.</p> Jan Verschelde More info on Ada-Belgium web site Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:20 AW1.125 ada_database Persistence with Ada Database Objects Ada devroom <p>The presentation describes how Ada Database Objects helps in connecting to an SQLite/MySQL/PostgreSQL database from Ada. It explains how by mapping SQL tables in Ada records, it simplifies saving and updating database records and makes the application more safe and reliable. The presentation will briefly describe the Ada code generator (Dynamo) that is behind this.</p> Stephane Carrez More info on Ada-Belgium web site GitHub Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:50 AW1.125 ada_compression Shrink your Data to (almost) Nothing with Trained Compression Ada devroom <p>We will show a new Trained Compression generic plug-in, which can leverage prior information about the data to be transmitted for reducing further raw compressed streams. We will also present a pick-and-choose technique feature called "Preselection" for improving the Zip archiving process.</p> <p>The Zip-Ada library has met over the years the needs of several professional users who need the file archiving features, or the data compression features to reduce storage and shorten transmission times. We will show the evolution of this full-Ada portable library and the advantages of using it.</p> Gautier de Montmollin More info on Ada-Belgium web site Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:20 AW1.125 ada_shell GSH: an Ada POSIX Shell to Speed Up GNU Builds on Windows Ada devroom <p>GSH is an implementation of a POSIX shell developed for the Windows platform. The aim of the project is to speed up builds of GNU projects on Windows in a large automated build infrastructures. GSH can be used to compile projects depending on autotools, UNIX make, ... It is up to 2-3 times faster than Cygwin shells for GCC builds.</p> <p>In this talk I will present:</p> <ul> <li>what makes GSH faster than other Windows shells for building GNU projects;</li> <li>how GSH was developed;</li> <li>how you can use it to speed up your builds;</li> <li>the limitations;</li> <li>what features of Ada we benefit from in this project.</li> </ul> Nicolas Roche More info on Ada-Belgium web site Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:20 AW1.125 ada_safety What is Safety-Critical Software, and How Can Ada and SPARK Help? Ada devroom <p>We are (too much) used to software having bugs as an unavoidable fate. But for safety-critical software, like the code that's driving planes or trains, "Failure is Not an Option".</p> <p>This presentation exposes the constraints of such software, and how they require a special state of mind, special methods, and special tools - like Ada and SPARK. And these can be useful for more casual programming - zero bug software is nice, even when not safety-critical!</p> Jean-Pierre Rosen More info on Ada-Belgium web site Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:50 AW1.125 ada_secureweb Secure Web Applications with AWA Ada devroom <p>Web application security is often underestimated, and using a secure framework can help reduce application vulnerabilities. Ada Web Application (AWA) is a web framework that leverages Ada's safety features to provide a secure environment on top of which safe applications are built. AWA is based on several Java-like technologies such as Java Beans, Java Servlet, Java Server Faces, other standards such as OAuth2, REST and OpenAPI, all implemented in Ada.</p> <p>This presentation briefly describes the AWA architecture and how applications are built with it. The presentation highlights some of the Ada functionalities that contribute to the safety and make applications secure and reliable.</p> Stephane Carrez More info on Ada-Belgium web site GitHub Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:00 00:20 AW1.125 ada_distribution Distributed Computing with Ada and CORBA using PolyORB Ada devroom <p>Imagine you have a fantastic Ada program or library but you want more! You want it to be scalable and used by other developers with other languages. The goal of this presentation is to show you the way to achieve it without bending to fashion. :) As of today, we see distributed computing as Web services, mainly RESTful stuff. Some technologies exist since years and are working successfully in many systems. One of these is CORBA which allows Object-Oriented communication between applications in languages such as Ada or C++.</p> <p>In this presentation, the chosen middleware providing CORBA infrastructure is PolyORB. We will use it to make a distributed version of an existing piece of software, the Corporate Bullshit Generator (CBSG), and create client applications in C++ and Ada. This will allow us to put the power of Ada and PolyORB into a distributed system.</p> Frédéric Praca More info on Ada-Belgium web site The code linked to the presentation Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:30 00:20 AW1.125 ada_bindings Cappulada: Smooth Ada Bindings for C++ Ada devroom <p>Writing Ada bindings for C and especially for C++ is a tedious but not necessarily sophisticated task. There are several approaches to both C and C++ but many of them lack desired language features, generate non-compilable code or are project specific.</p> <p>With Cappulada (a coinage of coupling, CPP and Ada made pronounceable) we try a more general approach that aims to support complex language features such as templates or inheritance while providing a semantically appropriate mapping of object structures and types. The talk will also cover which features can be mapped and what is not feasible or possible.</p> Johannes Kliemann More info on Ada-Belgium web site Cappulada on GitHub Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:00 00:20 AW1.125 ada_archiving The AZip Archive Manager: a full-Ada Open-Source Portable Application Ada devroom <p>If you open the AZip application with a can opener, it will look like an Ada programmer's paradise: you'll find Ada on all levels:</p> <ol> <li>the AZip user interface (UI framework specific);</li> <li>the AZip abstract application layer (platform-independent);</li> <li>the archive and data compression library (Zip-Ada);</li> <li>the user interface framework (GWindows);</li> <li>the run-time library (GNAT's).</li> </ol> <p>We will quantify this.</p> <p>Portability is matched on three different definitions of the word:</p> <ol> <li>platform-independence for the abstracted part and the Zip-Ada library - no porting effort at all there;</li> <li>you can easily port the user interface layer since most of the job is done in the abstracted part;</li> <li>no installation needed: the version built on GWindows is contained in a single executable file and can be run from a USB stick; it can be even run in a stealth mode, without writing settings to the registry of the host system.</li> </ol> Gautier de Montmollin More info on Ada-Belgium web site Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:30 00:20 AW1.125 ada_pointers Proof of Pointer Programs with Ownership in SPARK Ada devroom <p>Pointers are a notorious "defect attractor", in particular when dynamic memory management is involved. Ada mitigates these issues by having much less need for pointers overall (thanks to first-class arrays, parameter modes, generics) and stricter rules for pointer manipulations that limit access to dangling memory. Still, dynamic memory management in Ada may lead to use-after-free, double-free and memory leaks, and dangling memory issues may lead to runtime exceptions.</p> <p>The SPARK subset of Ada is focused on making it possible to guarantee properties of the program statically, in particular the absence of programming language errors, with a mostly automatic analysis. For that reason, and because static analysis of pointers is notoriously hard to automate, pointers have been forbidden in SPARK until now. We are working at AdaCore since 2017 on including pointer support in SPARK by restricting the use of pointers in programs so that they respect "ownership" constraints, like what is found in Rust.</p> <p>In this talk, I will present the current state of the ownership rules for pointer support in SPARK, and the current state of the implementation in the GNAT compiler and GNATprove prover, as well as our roadmap for the future.</p> Yannick Moy SPARK RM on pointers learning SPARK downloading SPARK (as part of GNAT) More info on Ada-Belgium web site Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:50 00:10 AW1.125 ada_wrapup Informal Discussions & Closing Ada devroom <p>Informal discussion on ideas and proposals for future events.</p> Dirk Craeynest More info on Ada-Belgium web site Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:45 AW1.126 riscvllvmclang LLVM+Clang for RISC-V Past, present, and future RISC-V devroom <p>This talk will give an update on the journey towards upstream, production-ready support for RISC-V in LLVM, Clang, and related projects. It will detail the project's start, current status, and next steps with a special focus on the work for support for building 64-bit Linux binaries (hard-float ABI, TLS, PIC etc.</p> Alex Bradbury Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 01:00 AW1.126 riscvdebian Porting Debian to the RISC-V architecture Tales from a long quest RISC-V devroom <p>The talk tells the story of how the <a href="https://www.debian.org/">Debian GNU/Linux</a> port for the RISC-V architecture came to life and describes the steps and challenges involved in adding support for a completely new architecture to one of the major Linux distributions. It provides an overview of the current state of the port and gives an outlook on further developments.</p> K. Merker Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:45 AW1.126 riscvsbi The future of Supervisor Binary Interface(SBI) RISC-V devroom <p>Supervisor Binary Interface (SBI) is one of the most fundamental interfaces in RISC-V eco-system. It allows the operating system to interact with the supervisor execution environment (SEE). The SEE always runs in higher privileged mode than the supervisor OS. It can be a simple bootloader in low-end hardware platform, a hypervisor-provided virtual machine in a high-end server, or simply machine mode software in bare metal systems. An unchecked rapid development of many RISC-V systems could lead to incompatibilities between different systems SEE, preventing the use of a common OS binary image.</p> <p>The RISC-V ISA has defined SBI to provide a cleaner interface for the supervisor OS which makes virtualization and bring-up of new hardware platforms much easier. In hypervisor extended supervisor (HS) mode, an OS or hypervisor interacts with the machine through the same SBI as an OS normally does from supervisor mode. An HS-mode hypervisor is expected to implement the SBI for its virtualized supervisor (VS) mode guest. The current RISC-V SBI only defines a few mandatory functions such as inter-processor interrupts (IPI) interface, reprogramming timer, serial console, and memory barrier instructions. Many important functionalities such as CPU/system power management are not yet defined due to difficulties in accommodating modifications without breaking backward compatibility with the current interface.</p> <p>This talk presents the ongoing work to make SBI an extensible yet robust specification. The proposal to extend SBI is based on the foundation policy of RISC-V i.e. modularity and openness. It will always be backward compatible with previous versions including the existing aka legacy version. To achieve that, the focus will be only to develop a Base SBI extension that will contain feature list, version and vendor type queries. Once that is ratified, the future extension such as CPU/system power management, vendor extensions can be developed in parallel. The use cases and calling convention of these extensions will be discussed in details. We will also talk about a reference implementation i.e. OpenSBI for the SBI specification. This project will be licensed under most permissive software license which will allow everybody to reuse the OpenSBI code base in their favorite software eco-system in whatever way choose to do so. This will help in reducing SBI fragmentation in future as well.</p> <p>In the spirit of the open design nature of RISC-V, the goal of this presentation is to continue the open discussion leading to the formalizing RISC-V SBI specification simplifying both hardware and software designs and doing so, contributing to further development of the RISC-V ecosystem.</p> Atish Patra Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:45 AW1.126 riscvadaspark Alternative languages for safe and secure RISC-V programming RISC-V devroom <p>In this talk I want to open a window into the wonderful world of "alternative" programming languages for RISC-V. What can you get by looking beyond C/C++.</p> <p>So I will start with a quick introduction to the Ada and SPARK languages, the benefits, the hurdles. I will also present an overview of the applications and domains where they shine, when failure is not an option.</p> <p>I will then do a short getting started session and provide all the details for you to start RISC-V programming with Ada/SPARK on different platforms (QEMU, HiFive1, FPGAs with PicoRV32).</p> <p>At the end of the talk, I will give my view of the RISC-V architecture and community from the perspective of an alternative languages developer. I will cover the good points, the risks, and provide some ideas on how the RISC-V can keep the door open.</p> Fabien Chouteau Ada on FPGAs with PicoRV32 Embedded.fm podcast where I talk about Ada and SPARK Ada/SPARK e-learning website GNAT Community release (Ada compiler) including RISC-V32 on Linux Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:15 00:30 AW1.126 riscvcompact How compact is compiled RISC-V code? RISC-V devroom <p>RISC-V is an increasingly popular architecture for embedded systems. For such systems, compiled code density is a critical factor, particularly for deeply embedded and low power systems, where memory may be very constrained. Architectures in this space are often designed to improve code density. Thus ARM has its Thumb-2 instructions and RISC-V has its compressed instructions.</p> <p>If compiler tool chains are to generate compact code, we need to be able to measure how well we are doing. In this talk I shall present measurements of code density for 32-bit RISC-V, ARM and ARC architectures using the GCC and Clang/LLVM compiler tool chains using the BEEBS benchmark suite for deeply embedded systems (http://beebs.eu/). I shall show how confounding factors (such as emulation library implementation and C run-time startup) can be eliminated from such measurements, to ensure the results are meaningful.</p> <p>The purpose of this exercise is not to show that any one architecture is "best" but to provide insight which will drive compiler optimization for code density. I shall use the data to highlight areas where the RISC-V compiler tool chain can be improved, drawing on customer work carried out by Embecosm during 2018.</p> Jeremy Bennett Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:45 00:30 AW1.126 riscvfreertos FreeRTOS on RISC-V Running the FreeRTOS kernel in RISC-V emulators and RISC-V hardware RISC-V devroom <p>The open source (now MIT licensed) <a href="https://www.freertos.org" title="FreeRTOS Kernel">FreeRTOS kernel</a> has been helping embedded developers manage the complexity of their microcontroller designs for 15 years – during which time FreeRTOS has gained a reputation for reliability, ease of use, and responsive support. FreeRTOS now runs on RISC-V! In this talk you will see how easy it it to execute the FreeRTOS kernel in open source RISC-V emulators and on physical RISC-V microcontrollers, as well as learn how to port the FreeRTOS kernel to new RISC-V implementations.</p> Richard Barry Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:45 AW1.126 riscvhelenos Lessons learned from porting HelenOS to RISC-V Pros and cons of RISC-V from a microkernel OS point of view RISC-V devroom <p>HelenOS is an open source operating system based on the microkernel multiserver design principles. One of its goals is to provide excellent target platform portability. From the time of its inception, HelenOS already supported 4 different hardware platforms and currently it supports platforms as diverse as x86, SPARCv9 and ARM. This talk presents practical experiences and lessons learned from porting HelenOS to RISC-V.</p> <p>While the unprivileged (user space) instruction set architecture of RISC-V has been declared stable in 2014, the privileged instruction set architecture is technically still allowed to change in the future. Likewise, many major design features and building blocks of HelenOS are already in place, but no official commitment to ABI or API stability has been made yet. This gives an interesting perspective on the pros and cons of both HelenOS and RISC-V. The talk also points to some possible research directions with respect to hardware/software co-design.</p> Martin Děcký Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:15 00:45 AW1.126 riscvtee Updates from the RISC-V TEE Group Working on a Trusted Execution Environment spec for RISC-V RISC-V devroom <p>In this talk, I'll try to provide an overview of the RISC-V Trusted Execution Environment working group, and what we are working on.</p> <p>A Trusted Execution Environment guarantees the integrity and confidentiality of code and data, ARM has TrustZone, Intel has SGX, and we are working on a similar spec for RISC-V. Our main tool is Physical Memory Protection (PMP) functionality of RISC-V (part of the Privilege spec) for isolating memory regions of the execution environment's hart (hardware thread) from the rest of the harts on the system. We are also working on a proposal for an I/O PMP hw block for providing similar memory isolation between the different devices on the system (bus masters). The goal is to provide a flexible and scalable solution, that can work from 32bit embedded devices without MMU, to large 64bit systems with virtual machines etc, and keep it as simple and RISCy as possible.</p> Nick Kossifidis Current privilege spec Description of the TEE working group Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:15 00:45 AW1.126 riscvsail Using SAIL to generate GNU assembler/disassembler and simulator for RISC-V RISC-V devroom <p>At the GNU Tools Cauldron, my colleague, Jeremy Bennett, showed how the long established GNU tool, CGEN, can be used to create an assembler, disassembler and simulator from a semi-formal description of the RISC-V architecture in Scheme (https://gcc.gnu.org/wiki/cauldron2018#cgen).</p> <p>However the CGEN specification in Scheme is far from rigorous by today's standards. Alastair Reid of ARM has shown how SAIL can be used to define rigorous semantics for RISC-V in a paper to be presented at POPL in January 2019 (https://alastairreid.github.io/papers/POPL_19/).</p> <p>In this talk I shall show how a SAIL specification can be transformed into a CGEN framework. Using this approach, a rigorous SAIL semantic specification can be used to generate a practical GNU assembler, disassembler and simulator.</p> <p>This will is a work in progress - the project is not due to finish until May 2019. I shall explore the general approach used, and the areas where the greater rigour of SAIL runs into problems with the limitations of CGEN Scheme specification.</p> Mary Bennett Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:00 00:30 AW1.126 riscvbuildroot Buildroot for RISC-V Using Buildroot to create embedded Linux systems for 64-bit RISC-V RISC-V devroom <p>Buildroot is an embedded Linux build system that generates complete system images from source for a wide range of boards and processors. I have recently added support for 64-bit RISC-V to the official Buildroot distribution which make it a viable alternative to other build systems for RISC-V such as Yocto.</p> <p>During this presentation I will give a brief overview of Buildroot and how it compares to Yocto for those in the audience who are unfamiliar with these systems. In the main part of the talk I will look at the issues relating to the implementation of RISC-V support, based on my experiences. This will include a look at the status of the RISC-V software ecosystem with regard to the selection of a suitable toolchain, C library, kernel and bootloader. I will then run through how to configure and build a minimal system for booting under QEMU. Finally I will consider any further work required to improve Buildroot for RISC-V including the status of 32-bit support.</p> Mark Corbin Buildroot for RISC-V blog post Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:30 00:30 AW1.126 riscvfedora Fedora on RISC-V 64-bit Introduction, Brief Overview and Latest Developments RISC-V devroom <p>The talk provides introduction to Fedora/RISCV bootstrap efforts for the last 2+ years. In addition to that, we will overview our current build infrastructure (powered by Koji), different disk image flavors, setup instructions and differences between upstream Fedora and Fedora/RISCV. We will look into future ideas, short-term plans (tentative) for Fedora 30/Rawhide and general wish-list for RISC-V eco-system.</p> <p>Share with us what is important for you or/and your company. This will help us to focus our efforts on important parts.</p> David Abdurachmanov Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:30 K.3.201 dotnet_wasm_toolchain .NET on the Web with Mono WebAssembly .NET and TypeScript devroom <p>Using WebAssembly, Mono can now run your C# and F# code in the web browser. You'll learn about Mono's WebAssembly backend and the AOT and interpreter engines that power it, and see its modern dotnet SDK based toolchain in action.</p> Mikayla Hutchinson Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:30 K.3.201 typescript_advanced_tooling Advanced TypeScript tooling at scale .NET and TypeScript devroom <p>Tooling has always been a focus for TypeScript and a large reason for its success. TypeScript code intelligence is available across many editors and even web-based tools, all provided by the same service TypeScript ships out-of-the-box with the compiler itself. This presentation gives a tour and history of how TypeScript is able to provide the same great experience to many different clients through the tsserver and tsserver protocol, as well as how it influenced and fits into newer efforts like the Language Server Protocol. I will show how it can be used to provide code intelligence features like jump-to-definition and find-references at cross-repository scale, using some of TypeScript’s newest features like declaration maps and combining it with lesser-known interesting features of the JavaScript package management tooling. At the end of this talk, the audience will know how TypeScript tooling works under the hood and how it can be combined with other tools in the ecosystem to make developers more productive. The goal is to inspire innovation in the TypeScript tooling ecosystem by showing what is possible and how.</p> Felix Becker Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:30 K.3.201 typescript_il_game_modding Typescript => IL => Game Modding Supercharged .NET and TypeScript devroom <p>In the game development world, games are built in layers, and it's common to have different languages for the different layers. C/C++ is a common choice for the engine layer, while C# is a popular choice for the scripting layer - the one that gameplay is implemented with, and the one available for users to mod their games with. There's multiple engines built on C# (Unity and Monogame come to mind).</p> <p>When I started implementing my own runtime-moddable game with Unity, I realized how awkward C# is for scripting, and how there just might be a better language for this. In this talk we'll look at what a game scripting language ideally needs and does, why C# is not quite the best of fits, and why Typescript is - when it targets the .NET runtime!</p> <p>At the end, you'll hopefully have a better understanding of how languages fit in game development and what (great!) tooling Typescript has for introspection and compiling.</p> Andreia Gaita Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:30 K.3.201 dotnet_fsharp_js_ecosystem Hacking F# in JS ecosystem .NET and TypeScript devroom <p>Javascript has conquered the world - developers can use it in the browser, on the server, to write mobile apps, on the desktop with Electron, and even to create serverless services. Like the language or not, the truth is JS developers have built an incredible ecosystem with libraries and tools to do almost anything. During the talk I'll show how to bring the power of F# - the functional paradigm, static typing with type inference, pattern matching, and more modern language features - to this huge and rich JS world using Fable - F# to JS compiler. Fable doesn't add any runtime overhead and generates clean JS code in conformance with new ES6 patterns, like modules or iterables, making it compatible with modern development tools, including Github Electron or React Native to let you develop not only web, but also cross platform desktop and mobile apps. I'll demonstrate how to create different types of JS applications using F# - from React-based frontend application, through mobile app using React Native to serverless services.</p> Krzysztof Cieslak Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:15 K.3.201 dotnet_retro_console AMENDMENT Retro.NET - .NET for building Console Applications .NET and TypeScript devroom <p>In this talk, we will discuss Miguel’s pet projects to build console applications. To this day Miguel continues to use Midnight Commander, and he wants to bring the joy of developing user interfaces in consoles to the world of .NET programmers.</p> <p>(Please note that this replaces the talk 'Do you think is easy to create a console app?' by Eduard Tomàs.)</p> Miguel De Icaza Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:45 00:15 K.3.201 dotnet_netcore_dbus Connecting .NET Core to D-Bus .NET and TypeScript devroom <p>Accessing D-Bus services from .NET.</p> <p>D-Bus provides a bus for accessing system and desktop services.</p> <p>In this talk we'll use Tmds.DBus to access those services from .NET Core.</p> <p>Tmds.DBus is a fork of dbus-sharp, updated with asynchronous programming patterns introduced in .NET 4.5.</p> <p>The library comes with a cli tool that generates a strongly-typed representation of a D-Bus service.</p> <p>We'll build a small example application that consumes a D-Bus service.</p> Tom Deseyn git repository Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:15 K.3.201 dotnet_valkyrja_eating_servers Valkyrja and the tale of eating servers using C# Valkyrja project - why .NET Core, C# & Fedora Linux in production? .NET and TypeScript devroom <p>Who is Valkyrja, and what is she like? Why did she choose .NET Core on Fedora? Her mum will tell you the story, about Valkyrja outgrowing the Raspberry Pi and what kind of diet she went on to stop eating up all the performance of an expensive VPS.</p> <p>Story driven presentation of a small open source project with character and all the obstacles she had to overcome.</p> Radka Janeková Blog Twitter Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:15 00:15 K.3.201 typescript_time_to_migrate TypeScript-It's time to migrate! .NET and TypeScript devroom <p>TypeScript adoption it's been a reality in the last years. This presentation is going to be an explanation on how we can take advantage of TypeScript compiler to have a smooth migration from JavaScript to TypeScript.</p> <p>Maintaining big projects in JavaScript can be a hard task. Wouldn't be great if we could gradually migrate our applications to TypeScript? Having types and access to all features from the latest EcmaScript versions can help us scaling and maintaining our code. TypeScript compiler allow us to compile JavaScript code and at the same time takes advantage of definitions to make type checking. Using this features we can easily start migrating our code base to TypeScript over time avoid headaches.</p> Marco Talento Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:30 K.3.201 dotnet_interactive_fsharp_with_jupyter Interactive Computing with F# Jupyter .NET and TypeScript devroom <p>Notebooks let you blend code, data, and graphical visualisations to explore and share explanations. I’ll show how you can use F# in Jupyter to investigate data, train machine learning models, and visualise results.</p> <p>You'll learn how to use F# and several NuGet libraries in a more interactive setting than your usual development environment. I'll talk about how we use this in our work on programming biology, and ways other people may find it useful to work with data scientists.</p> <p>It's an open source project https://github.com/fsprojects/IfSharp and there are several ways people could help from connecting to more analysis tools to helping with the migration to .NET Core.</p> Colin Gravill Example usage Samples for talk Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:30 K.3.201 typescript_for_infrastructure Infrastructure as Typescript .NET and TypeScript devroom <p>Modern cloud applications consist of many moving parts, so they are hard to manage without employing Infrastructure-as-Code approach.</p> <p>Traditionally, tools like CloudFormation, ARM templates and Terraform employ text-based templates, which tend to be verbose and hard to create and reuse.</p> <p>What if instead of configuration files you could just use Typescript? Meet Pulumi—an open-source library which brings types, components, conditionals, and much more to your cloud infrastructure definition.</p> Mikhail Shilkov Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:30 K.3.201 dotnet_xaml_to_il Why, and How, we compiled Xaml into IL .NET and TypeScript devroom <p>Some years ago we started to compile some bits of the Xamarin.Forms Xaml directly into IL. It’s now fully turned on into our templates, and on par with the runtime Xaml loader. In this short talk you’ll learn about the story that got us there, about some of the internal cooking of Xamarin.Forms, and what our plans are for that Xaml compiler.</p> Stéphane Delcroix Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:30 K.3.201 dotnet_netcore_2_1_in_production .NET Core 2.1 in Production How Namely develops .NET Core services .NET and TypeScript devroom <p>In this talk, Steve will discuss the benefits and challenges his team found using .NET Core 2.1 in production at Namely.com. We'll discuss .NET Core service deployment in containers on Kubernetes, how we monitor our services with logs, charts, and alerting, and how we use service templates and a common .NET Standard helpers library to promote consistency and type safety, and to implement new services fast.</p> <p>You'll hear about some of the issues we encountered while using .NET Core - such as the BadImageFormatException with New Relic or the HttpClient "CPU leak" issue - and which ones you will still need to watch out for (like Kubernetes OOM-kills).</p> <p>We've been using .NET Core in production at Namely since 2017. We started with three ASP.NET Core WebAPI projects, and now also deploy .NET Core services that are scaffolded from Protobuf definitions and communicate via gRPC. Steve will talk about some of the issues we encountered while deploying .NET Core 2.0 and 2.1, and how we resolved them (and which ones you'll still have to look out for because they're unfixed as of December 2018). He will also demonstrate the process of how to define a service in the Protobuf format, and how we scaffold our .NET services (and clients) from the proto, taking advantage of some of our common internal NuGet libraries. Steve will demonstrate how to compile a proto to a TypeScript API client - since the server is also scaffolded from the same proto, we call this "NotSupportedException as a Service". Lastly, Steve will talk about how we build and run our .NET services in Docker containers on Linux with Kubernetes deployed via Spinnaker.</p> Steve Ognibene Namely Docker Proto Compiler Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:30 K.3.201 dotnet_medical_imaging Medical image reconstruction using the .NET Framework .NET and TypeScript devroom <p>Medical image reconstruction is a highly demanding topic in terms of processing power, memory consumption and computational complexity. In the past several low level approaches have been conducted that improved performance but made such systems become inflexibel and reduced maintainability. This presentation shows a setup of using the .NET framework as well as a GPU-based integration in the C# language. Several topics in image reconstruction and processing will be shown in the context of medical image processing. Additionally, challenges and problems of .NET and C# are discussed.</p> <p>Since the introduction of Computed Tomography (CT) as a medical diagnostic imaging procedure 40 years ago, there are still unresolved challenges regarding radiation dose, image quality and image reconstruction. One of the major concerns is radiation dose applied to the patient and - not frequently mentioned - the medical staff. For that reason, several new inventions have been made that improve the equipment of the CT-scanning device, for example X-ray sources and detectors systems. Recently, new developments in the computing power of modern computers have led to new approaches that enable the replacement of traditional reconstruction methods (filtered backprojection) by using iterative or AI-based methods as well as cloud-based approaches that allow both, the reduction of radiation dose and a tremendous improvement in image quality.</p> <p>However, evaluating new methods require a solid development environment to allow for and simple and convenient implementation of new ideas and algorithms. Although there are several well-known and established platforms that are a good starting point for plain prototyping, an efficient execution of code inside these platforms is often challenging with regard to the management computing power and memory resources. Additionally, shipping prototypes to customers for evaluation is often not easy.</p> <p>This presentation starts with a basic introduction into medical image acquisition and reconstruction, followed by a short explanation of the storage of image data using the DICOM (digital imaging and communications and medicine) standard. Afterwards it is shown how the .NET environment using C#, .NET and .NET Core, WPF and the nVidia computing platform (CUDA) can be applied as a modular prototyping platform for developers, researchers and customers in order to develop new algorithms and to conduct clinical and scientific studies.</p> <p>The presentation will end with a summary of state-of-the-art development with C# and point out challenges that exist with managed runtime environments regarding memory management, performance and missing language and CLR features that would help to further improve the development within the C#/.NET environment in the light of high performance computing.</p> Martin Sedmair Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:30 K.3.201 dotnet_intel_intrinsics_netcore Intel® Hardware Intrinsics in .NET Core .NET and TypeScript devroom <p>In this presentation, we will talk about the Intel Hardware Intrinsics in .NET Core, a new feature in .NET Core 3.0. For the first time, .NET developers will have the ability to directly exercise underlying CPU features, very similar to what C/C++ developers could do with intrinsic functions for their performance critical code. The Intel Hardware Intrinsics in .NET Core include more than 1300 intrinsic functions, which cover the instruction set architecture (ISA) SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, FMA, LZCNT, POPCNT, BMI1, BMI2, PCLMULQDQ, and AES. Many of the intrinsic functions are designed for Single Instruction Multiple Data (SIMD) computation, a common used technology to speed up computation intensive algorithms. To illustrate the benefits of using Hardware Intrinsics, we implemented a Structure of Array (SoA) based RayTracer and compared its performance with that of the traditional Array of Structure (AoS) based RayTracer which uses System.Numerics.Vectors. Our experience shows that significant performance improvement is possible when using Hardware Intrinsics for this particular application. Another use case is ML.NET, an open source machine learning framework for .NET developers, which leverages the Intel Hardware Intrinsics to simplify the acceleration of machine learning scenarios.</p> <p>We will give an overview of SIMD and the Intel Hardware Intrinsics in .NET Core. In addition, we will talk about the differences of System.Numerics.Vectors and System.Runtime.Intrinsics, which are the two different ways to use SIMD in .NET Core. we will show live demos on how to use Intel hardware intrinsics. By the end of the presentation, the audience will learn the current status of the Intel Hardware Intrinsics in .NET Core and how to use the Intel Hardware Intrinsics to speed up their code.</p> Han Lee Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 K.3.201 dotnet_fsharp_reinventing_mvc Reinventing MVC pattern for web programming with F# .NET and TypeScript devroom <p>The MVC pattern has been one of the most important architectural patterns for server-side web development - it has been implemented and popularized by frameworks like Ruby On Rail or ASP.NET MVC. However, this pattern was traditionally coupled with object-oriented programming. In the talk, I will show how to reinvent MVC pattern, and structure your web application in a functional language - F#.</p> <p>The talk will cover some brief introduction to F# - modern functional programming language running on .Net platform, show how to model MVC layers using functional composition, and at the end show some examples of applying MVC pattern with Saturn - opinionated, web development framework for F# which implements the server-side, functional MVC pattern</p> Krzysztof Cieslak Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:00 00:30 K.3.201 dotnet_runtime_tuning Tuning a Runtime for Both Productivity and Performance .NET and TypeScript devroom <p>Developers generally enjoy increased productivity when working in a managed code environment. What might not be obvious to them is the amount of investment in the managed code’s Virtual Machine to enable both productivity and high performance. Microsoft’s .NET team would like to share how they designed the runtime environment to balance convenience, fast startup, serviceability, low latency, high throughput. For examples services such as JIT compilation, TypeSystem, garbage collection all provide convenience but come at a cost. The challenges presented are common to many environments – you do not need to be a .NET developer to attend this talk.</p> <p>If you are a .NET developer, you can leverage the tools demo in this talk to tune your application as well.</p> Mei-Chin Tsai Sergiy Kuryata Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:30 00:45 K.3.201 dotnet_open_source_panel Panel: Open Source .NET .NET and TypeScript devroom <p>Come here our panelists discuss the past, present and future of open source .NET. There will also be opportunities to ask questions.</p> Radka Janeková Mikayla Hutchinson Krzysztof Cieslak Miguel De Icaza Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:15 00:45 K.3.201 dotnet_typescript_lightning_talks .NET and TypeScript Lightning Talks .NET and TypeScript devroom <p>Do you want to give a talk about .NET or Typescript but didn't submit a proposal in time? Sign up on the day for a lightning talk! Slots will be around 5 minutes.</p> <p>Although you can sign up in person at the event, if you'd like to discuss your talk idea in advance, feel free to email m.j.hutchinson at gmail.</p> Mikayla Hutchinson Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:25 K.3.401 25_years_of_freebsd 25 Years of FreeBSD BSD devroom <p>FreeBSD is 25 years old! Learn the history of FreeBSD, why its use is increasing, and why you should use and/or contribute to FreeBSD!</p> Deb Goodkin Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:40 K.3.401 freebsd_ci_cd_environment How to build a FreeBSD CI/CD environment based on pot container BSD devroom <p>The talk presents a project that use pot containers to implement a CI/CD pipeline on FreeBSD. The presentation highlights the internal structure of the project, showing how jails and ZFS are used to efficiently implement a build pipeline.</p> Luca Pizzamiglio Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:45 00:45 K.3.401 automated_firewall_testing Automated firewall testing BSD devroom <p>We're all convinced that automated tests are a good idea. For some applications (e.g. grep, awk, cc, ...) this is very straightforward. Others are a lot harder to test, for example firewalls. Typically testing firewalls takes two to three hosts. One to send traffic, the firewall test host and one to receive traffic. This makes automated test orchestration complex and brittle. This in turn means that tests either don't get written, are difficult to write and/or suffer random failures unrelated to issues in the firewall itself. Virtualisation has made this all somewhat easier, but it's still fiddly and difficult to make robust. It's also slow.</p> <p>The new FreeBSD network stack virtualisation lets us build on the existing jails system to build test setups, execute tests and clean up in mere seconds, without any requirement for additional hardware, or even hardware virtualisation support.</p> <p>FreeBSD 12 will ship with network stack virtualisation (known as VIMAGE or vnet). This is an important feature for many applications, one of which is automated network stack and firewall testing. As of FreeBSD 12 PF fully support VIMAGE, allowing users to configure a firewall for each jail.</p> <p>This talk will introduce VIMAGE and show how it can be used to easily write firewall tests. If there's time a few interesting bugs and their test cases will also be discussed.</p> Kristof Provost Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:35 00:20 K.3.401 testing_freebsd_risc_v5 Embedded FreeBSD on a five-core RISC-V processor using LLVM How hard can it be? BSD devroom <p>In this talk we describe our experience of bringing up embedded FreeBSD for a heterogeneous 32/64-bit RISC-V system using LLVM, which was more difficult than you might expect. We look at the practical engineering steps needed to bring up an embedded operating system where many of the key components are not fully mature. The result is a reference embedded FreeBSD implementation for RISC-V, freely available to the community.</p> <p>We were tasked with bringing up and testing embedded FreeBSD on a custom five-core 32/64-bit RISC-V processor using LLVM. Given FreeBSD has already been ported to RISC-V and LLVM is the standard BSD C/C++ compiler surely this should be easy.</p> <p>But it wasn't. LLVM for RISC-V is still relatively immature, particularly for 64-bit. FreeBSD runs on symmetric multi-core 64-bit QEMU RISC-V, but not on embedded systems and not on heterogeneous multicore systems.</p> <p>In this talk we'll go through the steps needed to bring up a functioning embedded FreeBSD system on multi-core heterogeneous RISC-V system. Our target hardware was not available at the start of the project, so we used the generally available HiFive Freedom Unleashed board. The result is a reference embedded FreeBSD implementation for RISC-V, freely available to the community.</p> <p>This is not a talk about the deep internals of FreeBSD, but about the practical engineering steps needed to bring up an embedded operating system where many of the key components are not yet fully mature.</p> Jeremy Bennett Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:20 K.3.401 netbsd_update An Update on NetBSD and pkgsrc BSD devroom <p>There have been a number of exciting developments in NetBSD and pkgsrc in the last year. This talk will give an overview over some cool recent developments, new features and show some exciting hardware to run NetBSD and/or pkgsrc on.</p> <p>NetBSD 8 has been released, and perhaps there will be a -9 release in time for FOSDEM!</p> <p>64-bit ARM support is improving quickly. There is exciting new hardware (such as the Pinebook) to use NetBSD on, plus ARM cloud instances on Scaleway and EC2.</p> <p>pkgsrc has gotten a lot more packages, of course, but there have been other improvements.</p> Benny Siegert Slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:25 00:30 K.3.401 kleak KLEAK Practical Kernel Memory Disclosure Detection BSD devroom <p>Kernel memory disclosures - also known as kernel information leaks - denote the inadvertent copying of uninitialized bytes from kernel space to user space. Such disclosed memory may contain cryptographic keys, information about the kernel memory layout, or other forms of secret data. In this presentation, we introduce KLEAK, our method to dynamically detect kernel memory disclosures. It utilizes a simple form of taint tracking, enhanced with compiler instrumentation as well as rotation of the taint values to decrease false positives. KLEAK detected more than 20 kernel information leaks in NetBSD-current and FreeBSD 11.2.</p> <p>Kernel memory disclosures - also known as kernel information leaks - denote the inadvertent copying of uninitialized bytes from kernel space to user space. Such disclosed memory may contain cryptographic keys, information about the kernel memory layout, or other forms of secret data. Even though kernel memory disclosures do not allow direct exploitation of a system, they lay the ground for it.</p> <p>We introduce KLEAK, a simple approach to dynamically detect kernel information leaks. Simply said, KLEAK utilizes a rudimentary form of taint tracking: it taints kernel memory with marker values, lets the data travel through the kernel and scans the buffers exchanged between the kernel and the user space for these marker values. By using compiler instrumentation and rotating the markers at regular intervals, KLEAK significantly reduces the number of false positives, and is able to yield relevant results with little effort.</p> <p>Our approach is practically feasible as we prove with an implementation for the NetBSD kernel. A small performance penalty is introduced, but the system remains usable. In addition to implementing KLEAK in the NetBSD kernel, we applied our approach to FreeBSD 11.2. In total, we detected 21 previously unknown kernel memory disclosures in NetBSD-current and FreeBSD 11.2, which were fixed subsequently. As a follow-up, the projects’ developers manually audited related kernel areas and identified dozens of other kernel memory disclosures.</p> Thomas Barabosch white paper KLEAK commit to NetBSD Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:05 00:35 K.3.401 freebsd_graphics FreeBSD Graphics BSD devroom <p>FreeBSD Graphics - what is it, and how does it work?</p> <p>In this presentation I will talk about the FreeBSD Graphics effort and the team behind it. I will work my way through the graphics stack, starting with kernel drivers and end with the X server, talking about the various components along the way.</p> <p>In this presentation I will talk about the FreeBSD Graphics effort and the team behind it.</p> <p>I will give an overview of the various components that make up the FreeBSD graphics stack, starting with the kernel drivers and subsystem, and then work my way through the stack. I will talk a bit about Mesa, the X server and other software in the FreeBSD graphics ecosystem.</p> <p>I will also talk a bit about the team behind it, what is going on, and where we are going, as well as challenges working with and porting the graphics software.</p> <p>This talk is intended to give a broad overview of the FreeBSD Graphics stack and the team working on it. I will not go into too much technical details on each part of the Graphics stack, instead focusing on the big picture.</p> Niclas Zeising Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:45 00:40 K.3.401 freebsd_in_audio_studio FreeBSD in Audio Studio FreeBSD is usually not the first choice for music art, but it has quite a lot to offer BSD devroom <p>This presentation is about tuning FreeBSD OS to give more in the sense of real time audio, possibilities of such a studio and how to make one</p> <p>With preemptive real time kernel and base system which is relatively small, FreeBSD makes the perfect platform for music production studio. With OSS and Virtual OSS, routing, which is one of the most demanding tasks of any studio, is easy, big number of channels is handled efficiently and support for LV2 plugins in recent year became excellent. Today, if we ignore proprietary solutions, FreeBSD is at least at the level of Linux in music studios, and in some cases it's even better, especially if used PC is older or not powerful. Presenter will demonstrate his own studio from the view of FreeBSD and talk about what is good and what can be improved.</p> Goran Mekić Blog/Homepage Band recordings Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:40 K.3.401 migrating_cluster_to_freebsd Migrating a Big Data Cluster from Linux to FreeBSD Slowly, but steadily BSD devroom <p>This talk will cover the on-going process of migrating a big data cluster from a Linux-only system to a mixed OS environment using more and more BSD. I'll cover how the cluster started, what it is used for and the current setup (hardware and software). Particular focus will be put on the migration of the fileserver that has been successfully migrated from a hardware RAID configuration using Linux to an OpenZFS-based FreeBSD setup. I'll detail how it was done, the planning, preparation, and important learnings I too away from the experience. The talk closes with an outline of what steps will follow in the future. The talk is intended for people interested in such setups, migration strategies, steps to take and pitfalls to avoid.</p> <p>I manage the Big Data cluster of the University of Applied Sciences, Darmstadt, Germany as system administrator. As such, I'm responsible for providing the compute resources to researchers and teachers during the semester, as well as students doing projects and thesis work on the cluster nodes. When I took over the cluster a couple of years ago, it was a Linux-only system. I've managed to convert more and more nodes to using FreeBSD and OpenZFS. My talk will focus on the how and why, elaborating benefits of the approach and rough edges that still need to be worked on. In the summer of 2018, I took on one of the biggest tasks yet: the migration of the central file server for the cluster. This fileserver provides the home directories to each node via NFS. I was successful in migrating it from a pure hardware RAID setup to a FreeBSD-based OpenZFS software RAID solution. This provides the usual benefits associated with OpenZFS such as compression, quotas and reservation, as well as data protection on various levels. My talk will detail the preparation that I took before the migration and provide some insight into how the setup works now. Future work is discussed and I hope to gather some feedback from the audience about topics like monitoring, backup, and outstanding work.</p> Benedict Reuschling Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:15 00:40 K.3.401 openbsd_nas_system OpenBSD as a full-featured NAS system BSD devroom <p>In this presentation I'll explain how OpenBSD simplify your task if you want to setup a full-featured NAS.</p> <p>In my case, the NAS has the following features: - full encryption file system - transfer via NFS (for Linux and BSD machines) and sshd - implement a time machine-like system for end users' files - how to backup this NAS on a 2nd disk and make sure we do not have bit rotation - implement Dnla to present to present the multimedia content of this NAS to any DLNA devices (TV, ...) - How to transform this NAS into a music daemon via the Music Player Daemon. Thanks sndio, this NAS is connected to a Cambridge Audio DAC and an HIFI audio system.</p> <p>I'll share my expertise in terms of Hardware for such NAS.</p> <p>I'll highlight how to implement all those features and how OpenBSD facilitates this setup.</p> Vincent Delft http://vincentdelft.be Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:00 00:40 K.3.401 zfs_powered_magic_upgrades ZFS Powered Magic Upgrades Using boot environments for atomic in-place upgrades BSD devroom <p>Describe a system of using ZFS Boot Environments to quickly, safely, and atomically upgrade 100s of remote machines.</p> <p>Overview: * How the file system hierarchy is modified to allow the systems to be upgraded in-place * How we use ZFS to create and deploy the boot environments * Simplifying the creation of the BEs using <code>poudriere image</code> * Extending <code>poudriere image</code> to support ZFS * Using zfsbootcfg to boot a new BE once * How we determine if the BE “works” and should be promoted to the default</p> <p>Motivation: * We often have only SSH access to the machines, so we needed something that could self-recover just by power cycling the machine * No longer need to use freebsd-update, mergemaster, or etcupdate</p> Allan Jude Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:45 00:40 K.3.401 walking_through_walls Walking through walls PostgreSQL ♥ FreeBSD BSD devroom <p>A talk about past changes and potential future changes in PostgreSQL and FreeBSD that aim to make this combination the best relational database platform.</p> <p>PostgreSQL and FreeBSD have many things in common, including ancestry at Berkeley, similar project structures and a pesky more popular rival. The talk will cover some recent changes made over the past years on both sides of the "wall" to improve the performance and user experience of this pairing, some ongoing work and many ideas for future improvements. In many cases it's a matter of catching up with Linux, and in others it's entirely new possibilities. The talk will finish with a question: "what would you change if we could change anything?", because, well, we can!</p> Thomas Munro Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:30 00:30 K.3.401 rspamd_integration_freebsd Rspamd integration into FreeBSD.org mail infrastructure BSD devroom <p>After years using SpamAssassin on FreeBSD.org, we have moved towards Rspamd last year to improve spam filtering and integrate it as milter to postfix. With this step we could impressively drop spam rate and increased performance comparing to SpamAssassin.</p> <p>In this presentation, we plan to describe the current architecture of the email system and how Rspamd fits into it. Then we will describe the main challenges for AS system when dealing with lots of technical discussions and mailing lists. We will also explain the unique features of Rspamd and cover the outstanding issues (e.g. with DKIM).</p> Vsevolod Stakhov Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:25 K.4.201 mgmtconfig A small, FRP DSL for distributed systems Mgmt Config: The Language Minimalistic Languages devroom <p>Mgmt is a next gen config management tool that takes a fresh look at existing automation problems. The tool has two main parts: the engine, and the language. This presentation will have a large number of demos of the language. The language is a minimalistic, functional, reactive DSL. It was designed to both constrain the user with safe types, and no core looping constructs, but also to empower the user to build powerful real-time distributed systems.</p> <p>Mgmt is a next gen config management tool that takes a fresh look at existing automation problems. The tool has two main parts: the engine, and the language. This presentation will have a large number of demos of the language. The language is a minimalistic, functional, reactive DSL. It was designed to both constrain the user with safe types, and no core looping constructs, but also to empower the user to build powerful real-time distributed systems. We will present a number of traditional use cases that were historically quite difficult to setup and deploy, but which can now be expressed as simple, short snippets of code. Examples will include service discovery, auto-scaling, provisioning, state-machines, scheduling and more! Finally we'll talk about some of the future designs we're planning and make it easy for new users to get involved and help shape the project.</p> <p>A number of blog posts on the subject are available: https://purpleidea.com/tags/mgmtconfig/ Attendees are encouraged to read some before the talk if they want a preview!</p> James Shubin Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:55 00:20 K.4.201 jsonwhendsl Why JSON when you can DSL? Your problematics deserve their own language Minimalistic Languages devroom <p>The history of programmers trying to use programming languages for data files, configuration, or UI description files, is filled with horror stories. "WHY in the world did we choose Lua for our data files again?" was an interrogation I had not so far in the past, when I was working for a big game company. "HOW did we let this Grunt file grow more than 8000 js lines?" was a more recent one. Programming languages are NOT a good fit for data files. But there may be another way... Today, I want to talk about my favorite part of lisp languages: <strong>making your own languages when you need them</strong>. By that I don't mean making a big pile of utility functions or macros for the savvy lisper to drool upon, but actually taking the time to think about a file format, may it be completely static, and make it from scratch using s-expressions. Those parentheses may be good for something in the end...</p> Jérôme Martin An additional tutorial to go further The presentation code The slides in PDF format Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:15 00:25 K.4.201 templatinglanguagesinteractive Templating Languages for Interactive Fiction Minimalistic Languages devroom <p>Interactive Fiction, or "Choose Your Own Adventures" games, have been reinvigorated by new, friendly tools such as Twine. Twine and its scripting language Harlowe are a type of Templating Language, where static presentation content dominates, but is modified by small snippets of embedded code. Thus, Harlowe is in the same family of templating languages such as PHP, M4, or front-end web application libraries. I examine the characteristics of truly minimal templating languages intended for non-programmers and demonstrate a toy templating language built with Scheme.</p> <p>From the point of view of language design and implementation, scripting languages for interactive fiction or visual novels -- such as Harlowe, SugarCube, or Ren'Py -- are interesting in their pragmatism. They hide complexity from the programmer and try to put focus on generating story content. While paradigms such as Model-View-Controller or Model-View-ViewModel tend to crop up in general-purpose programming languages to help manage front-end complexity, these languages mix code and content much like how PHP or HTML+JavaScript was used a decade ago. But by keeping syntax simple, the MVC or MVVM separation of concerns is not necessary.</p> <p>To keep things intuitive for the non-programmer, they make some interesting decisions about readers, interaction models, procedure definitions, and scoping. These decisions are examined and contrasted with Scheme's standard programming paradigm.</p> Michael Gran Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:40 00:25 K.4.201 tcllang Tcl - An Embeddable Long-lever with a Comfortable Grip, that fits in your Pocket. Minimalistic Languages devroom <p>An introduction to the simplicity of Tcl, some use cases, and examples of tweaking-and-extending.</p> Brad Harder Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:05 00:20 K.4.201 minimalismintro Minimalism matters Minimalistic Languages devroom <p>Minimalism matters in computing. To trust systems we need to be able to understand them completely. Openssl heartbleed disaster was caused by code no longer being minimalistic, even if it is free and open source software. Hardware manfucturers and proprietary closed source solutions make things even worse with expectations of intrusion to privacy and backdoors if we don't aim for free hardware, software and minimalism. In this talk I will discuss minimalism in a broad context and narrow down on what the free software community can aim for.</p> Pjotr Prins Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:25 00:25 K.4.201 minimalismversustypes Minimalism versus Types An experience report on the development of Titan, a statically-typed Lua-like language Minimalistic Languages devroom <p>We love minimalistic languages because they let us do so much with so little. But when we start doing a lot with them, often we start yearning for types to help us make sense of it all. Adding types to a minimalistic language (well, adding anything!) makes it larger. Is this worth the price? Is a rich type system antithetical to minimalism? Let's find out!</p> <p>This talk is based on the experiences in the development process of Titan, a statically-typed Lua-like language.</p> Hisham Muhammad Titan programming language Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:50 00:20 K.4.201 luainerlang Luerl: Lua in Erlang Luerl introduction emphasizing its trade-off as scripting skin on top of the BEAM ecosystem. Minimalistic Languages devroom <p>Luerl is an implementation of standard Lua 5.3 written in Erlang/OTP. Lua is a powerful, efficient, lightweight, embeddable scripting language common in games, IoT devices, machine learning and scientific computing research.</p> <p>The Luerl VM is a mixture of interpreting Lua VM instructions and using Erlang directly to implement function calls.</p> <p>Through the use of Erlang functions, Luerl can be augmented to cope with a wide range of different domains, creating a customized language sharing a syntactical framework.</p> Jean Chassoul website wiki Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:10 00:25 K.4.201 neverlanguage Never Functional Programming Language Minimalistic Languages devroom <p>Never is a simple functional programming language. Technically it may be classified as syntactically scoped, statically typed, call by value, functional programming language. In practise Never offers basic data types, assignment, control flow, exceptions, arrays, first order functions and some mathematical functions to make it useful to calculate expressions. The language itself is an example how minimalistic language can be created as a hobby project in several months and used to solve interesting problems.</p> <p>The presentation outlines Never language features and presents its capabilities by demonstrating simple neural network supervised learning algorithm. During the talk audience will learn why the language was created, which solutions are used under the hood and about its possible future extensions.</p> Sławomir Maludziński https://never-lang.github.io/never/ Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:35 00:25 K.4.201 guixinfra GWL: GNU Workflow Language Minimalistic Languages devroom Ricardo Wurmus Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:25 K.4.201 perl6newtool Perl 6 as a new tool for language compilers Using Perl 6 grammars to design and implement a programming language Minimalistic Languages devroom <p>Perl 6 grammars are a great way to describe the grammar and implement an interpreter or a compiler of DSL or a programming language. In this talk, I will demonstrate how you can do it.</p> <p>During the talk, we will create an interpreter for a tiny programming language. The engine behind the implementation will be the so-called Grammars that are available in today's Perl 6. We will create the full language specification and describe all the actions it needs to do to execute the program.</p> <p>The great part is that you no longer need to split your language implementation in traditional phases: lexer, parser, etc.. Neither you need a compiler of compilers to process the formal grammar rules and emit the lexer/parse code that you will later use in your compiler. All you need is just to write some Perl 6 code.</p> <p>You even don't need to be a specialist in compilers or learn numerous tools like bison etc. to create your own language in a few hours.</p> Andrew Shitov Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:25 00:25 K.4.201 experiencewithwisp Experience with wisp 5 years with fewer parens Minimalistic Languages devroom <p>Experience with wisp: 5 years with fewer parens</p> <p>What changed, what evolved, best practices, usage for a lecture, and why wisp aka SRFI-119 is completed as a language (though not in tooling or documentation).</p> Arne Babenhauserheide wisp releases Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:50 00:30 K.4.201 gnuguixminimalism Building a whole distro on top of a minimalistic language The story of GNU Guix Minimalistic Languages devroom <p>GNU Guix is a package manager and GNU/Linux distribution that builds on Scheme, a Lisp dialect known for its emphasis on minimalism. This talk will be an exploration of Guix’ use of Scheme’s extensibility to build high-level abstractions and user interfaces in a broad sense.</p> <p>GNU Guix is a package manager, GNU/Linux distribution, and more generally a “software deployment toolbox” featuring key features such as transactional upgrades and rollbacks, declarative operating system configuration, and more. Guix has become a relatively large piece of software but a key aspect of it is that Guix builds on Scheme, a Lisp dialect known for its emphasis on minimalism. From day one, use of Scheme as its single implementation language has shaped Guix.</p> <p>This talk will be about what it means for Guix to be implemented as a set of libraries on top of this tiny core that Scheme is. Together we will have a guided tour through Guix’ interfaces, be they “programming” or “user” interfaces; we’ll look at its embedded domain-specific languages (EDSLs) that make it just as clear as your favorite YAML/JSON/XML thing while retaining the full power (and joy!) of a general-purpose programming language. We’ll discuss the features of Scheme that make it possible. I will share my thoughts on how such a design can empower users and how well this has worked in practice.</p> Ludovic Courtès GNU Guix Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:20 00:30 K.4.201 gnumes GNU Mes Reduced Binary Seed bootstrap for GNU Guix Minimalistic Languages devroom <p>Two years ago on FOSDEM'17 a minimalistic bootstrap was a dream; today it has started to become reality. Bootstrapping GNU/Linux without use of the GNU toolchain (gcc, binutils, glibc) was our first milestone that we just reached. Mes became a GNU project. We will talk about what bootstrapping is and why it is important.<br/> We will show how Mes' minimalistic Scheme has made this possible and on future milestones (Scheme only bootstrap, other GNU/Linux distributions) before reaching the holy grail: a full source bootstrap.</p> Jan (janneke) Nieuwenhuizen GNU Mes Reduced Binary Seed bootstrap GuixSD Bootstrappable Builds Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:50 00:30 K.4.201 guile3fasterprograms Guile 3: Faster programs via just-in-time compilation Minimalistic Languages devroom <p>There's a new major version of the Guile language implementation coming, and it's on average around twice as fast as Guile 2.2. Guile 3, expected to be released in Spring 2019, achieves these improvements by adding on a just-in-time compilation system to its virtual machine. Co-maintainer Andy Wingo will walk you through how we managed to achieve these improvements while not increasing startup latency, and give tips and tricks for early adopters.</p> Andy Wingo Video recording (WebM/VP9) Video recording (mp4) Slides (pdf) Submit feedback 16:20 00:30 K.4.201 guileracket A Guiler's Year of Racket Minimalistic Languages devroom <p>Having used Guile for the previous number of years and being an enthusiastic supporter of and occasional contributor to Guix, what's it like switching to Racket, a different but in many ways similar Scheme language, for the last year? What can Guile learn from Racket? What can Racket learn from Guile?</p> Christopher Webber Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:50 00:30 K.4.201 fractalideandcantor Fractalide and Cantor A Racket application built with Flow-Based Programming Minimalistic Languages devroom <p>Fractalide is a Flow-Based Programming framework for making GUI applications in Racket and Rust, tied together by Nix. As one of the first applications to make use of this, we created Cantor, a cryptocurrency wallet.</p> <p>How did using Racket help us or hinder us, and how does Flow-Based Programming interact and fit with Functional Programming?</p> Claes Wallin Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:20 01:00 K.4.201 makeownlangracket Make your own language with Racket A kickstart workshop for the creative minds Minimalistic Languages devroom <p>You always wished you could have a language that explains perfectly what you are trying to do? You find yourself constantly waiting for your favorite programming language to add a feature? Why not doing it yourself? Come at this workshop and try making your own language using Racket, the language-oriented programming language! (did I say "language" twice?)</p> <p>This workshop will quickly describe how to use the Racket language, then dive into making your own language. I should be able to handle between 3 to 5 people at a time. Session duration should range from 1 hour to 1.5 hours.</p> Jérôme Martin A written tutorial Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:25 K.4.401 vkrunner VkRunner: a Vulkan shader test tool A presentation of VkRunner which is a tool to help test the compiler in your Vulkan driver using simple high-level scripts Graphics devroom <p>A presentation of VkRunner which is a tool to help test the compiler in your Vulkan driver using simple high-level scripts.</p> <p>Perhaps the largest part of developing a modern graphics driver revolves around getting the compiler to generate the correct code. In order to achieve this, extensive testing is essential. For OpenGL we have Piglit and its convenient shader_runner script format. On Vulkan, writing the boilerplate needed to test a simple shader is a lot more work. This is where VkRunner steps in to implement all of the boilerplate once and provide a very high-level scripting language to make it easy to write a test. The scripts contain the required shaders, any data they need to run and simple commands to draw or compute and probe the results.</p> <p>This talk will give an overview of the functionality of VkRunner, its current status and the plans for its future.</p> Neil Roberts GitHub repo Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:25 K.4.401 igt_ci Intel GFX CI: Validation done the Linux way Graphics devroom <p>The Linux community is slowly moving towards better quality trough automated testing to prevent regressions in mainline and stable trees. However, Linux is full of HW-specific code which makes validation of patches impossible for individual developers, which leads to regressions. In this talk, we will explain how we solved these issues by getting inspired by Linux's development model, and how we extend it to the development of our testsuite, CI infrastructure and bug handling.</p> <p>After 2 years of activity, this led Linus Torvalds to say i915's quality has greatly improved compared to other graphic drivers.</p> <p>Linux's development model has been described as being akin to a bazaar, where any developer can make changes to Linux as long as they strictly improve the state of Linux, without regressing any application that currently runs on it. This allows Linux users to update their kernels and benefit from the work of all developers, without having to fix anything in their applications when a new version comes. Unfortunately, it is impossible for developers to try their changes on all the different hardware and userspace combination being used in the wild.</p> <p>Typically, a developer will mostly test the feature he/she is working on with the hardware at hand before submitting the patch for review. Once reviewed, the patch can land in a staging repository controlled by the maintainer of the subsystem the patch is changing. Validation of the staging tree is then performed ahead of sending these changes to Linus Torvalds (or one of his maintainers). Regressions caught at this point require to bisect the issue, which is time consuming and usually done by a separate team, which may become a bottleneck. Sometimes they let regressions through, hoping to be able to fix them during the -rc cycles.</p> <p>To address this bottleneck, the developer should be responsible for validating the change completely. This leads to a virtuous cycle as not only developers can rework their patches until they do not break anything (saving the time of other people), but they also become more aware of the interaction their changes have on userspace, which improves their understanding of the driver which leads to better future patches.</p> <p>To enable putting the full cost of integration on developers, validation needs to become 100% automated, have 100% code/HW coverage of the userspace usecases, and provide timely validation results to even the most time-pressured developers. To reach these really ambitious objectives, driver developers and validation engineers need to be considered as one team. The CI system developers need to provide a system capable of reaching the objectives, and driver developers need to develop a test suite capable of reaching the goal of having 100% code coverage of the whole driver on the CI system provided to them.</p> <p>Finally, this increase in understanding of how validation is done allows developers to know if their patch series will be properly validated, which reduces the risk of letting regressions land in Linux.</p> <p>The devil however lies in the details, so in this talk, we will explain how we are going from theory to practice, what is our current status and what we are doing to get closer to our ambitious goal! We will describe the current developer workflow and demonstrate how we empowered developers by providing timely testing as a transparent service to anyone sending patches to our mailing lists.</p> Martin Peres Intel GFX CI main page CI Bug Log repo Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:25 K.4.401 oss_vr XR The present, the future and how to get there. Graphics devroom <p>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 OpenHMD project was created to solve this issue, and as it so happen it was funded by two former Chalmers students.</p> <p>The consumer VR space has now grown from a crazy inventor in a garage 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.</p> <p>In this talk, Jakob will cover Khronos' OpenXR standard, give an overview about the current state of open source VR and what lies ahead.</p> <p>Jakob works for Collabora with graphics and virtual reality. He has worked with Linux graphics since 2006, starting with Tungsten Graphics and moving into VMware. In 2013 he along with a friend started the OpenHMD project to make open source drivers for VR and AR hardware.</p> Jakob Bornecrantz Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:25 K.4.401 igt_tools IGT GPU Tools - the past, the present, the future Graphics devroom <p>IGT recently underwent quite a few changes. The name is now vendor-agnostic, meson is the new default build system, we are on the GitLab, and the new runner, a piglit replacement, has landed.</p> <p>So what's up with the name change from "Intel GPU Tools" to "IGT GPU Tools"? Is it just GNU, with its sweet recursiveness, being that inspiring or do we really belive that having a vendor agnostic test suite that benefits the whole DRM subsystem is important?</p> <p>Let's also talk build system. Everyone, and their dog, is switching to Meson nowadays, so we have too jumped on the bandwagon. How has the switch went? How does Meson compare to autotools? Are we going to remove the old build system... and when is that going to happen?</p> <p>GitLab and its CI/CD pipleine allows us to generate and publish documentation efortlessly, get us cross-compilation working and run some post-merge autotools/meson consistency checs.</p> <p>There is also the new runner. Are we suffering from "Not Invented Here" syndrome or it there actual, compelling reason to do all the extra development? This allows us to drop Python as a dependency and have a way to run a single binary with multiple subtests in one go, instead of spawning a new process for each subtest which does the same initialization, and shaving off those sweet sweet seconds so we can squeeze even more CI runs in a day.</p> Arek Hiler Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:25 K.4.401 wayland_ivi Wayland in IVI systems In-Vehicle-Infotainment systems and their graphics sub-system Graphics devroom <p>A few years back Wayland started to change the open source graphics stack in Linux. Today a few major Linux distribution are already using wayland as default window system. Also in In-Vehicle-Infotament(IVI)systems Wayland becomes popular, several projects are already successfully launched, popularity is growing and bigger automotive communities like Genivi and AGL are participating. IVI environment is quite different for the Desktop on and one of the important difference is in the window or application management. Weston as an open source reference implementation of wayland compositor cannot be used directly and needs some adjustments. To address this point ivi-shell was introduced to Weston and provides a possibility to realize IVI specific use-cases. I would like to present the available implementation and talk about upcoming use-cases like virtualization and distributed HMI</p> Eugen Friedrich Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:25 K.4.401 greenfield Greenfield: An in-browser Wayland compositor Running a Wayland compositor entirely in your browser Graphics devroom <p>Greenfield is a Wayland compositor running entirely in your browser. No plugins or black magic required. This talk will go into the conception, exploration and struggles of making this possible. The result is a product far from finished, but already capable of running existing Wayland applications directly in your browser.</p> <p>Greenfield is a in-browser Wayland compositor capable of running existing Wayland applications in the browser. This is made possible by leveraging a large amount existing HTML5 apis.</p> <p>Greenfield is different from existing solutions like VNC or RDP in that it does not stream a final server side generated image to a remote. Instead Greenfield live encodes each individual application to h264 frames using gstreamer. After encoding, frames are send to the browser using a dedicated WebRTC datachannel. On reception, the h264 frames are decoded using a WebAsembly h264 decoder running in a WebWorker while WebGL is used to do color conversion from YUV+A to RGBA. The end result are applications who's content is drawn in their own HTML5 canvas. As a consequence, the entire screen you see in the browser is actually composed of nothing more than ordinary browser DOM elements. All of this is done while adhering to the Wayland mantra 'Every frame is perfect'.</p> Erik De Rijcke repository Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:25 K.4.401 cameras Complex cameras are (were?) complex How to make complex cameras easier: an update from the Libcamera project Graphics devroom <p>The 'complex camera' user-space library is a fairly new and hot topic in the Linux kernel video community. The issue is debated and targets a real technical debt of Linux systems. Device producers have been tackling this with in-house solutions that proved not to scale once brought in the open space, so a generic solution is now required to address the issue.</p> <p>The Linux kernel video input subsystem and its APIs changed greatly in the last years to keep up with the increasing complexity and processing power embedded in modern SoCs. Namely, the biggest game-changing feature introduced already 5 years ago is the media controller subsystem and its pad oriented APIs, that allows composing pipelines of processing blocks to model the acquisition and re-processing of video and images.</p> <p>While most of the media subsystem drivers in mainline Linux have been ported to fully support media-controller, the real missing component is now user space support to automate setting up and controlling the image processing pipelines.</p> <p>The Video4Linux community is now tackling the issue by implementing support for "complex camera" systems by providing a user space library that aims to support the most recent use cases represented by mobile consumer devices and high end laptops.</p> <p>This talks provides an overview of modern media-controller capable video device drivers, their userspace APIs and the challenges the currently in-development "libcamera" library has to face.</p> <p>It also aims to provide to both driver and application developers an overview of the most modern implementation of the Linux video input stack architecture, that will likely be found in most system in next years.</p> Jacopo Mondi http://libcamera.org Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:25 K.4.401 hdmi_cec AMENDMENT HDMI CEC: A Status Update Graphics devroom <p>The past year the focus in this kernel subsystem was on bug fixing, new drivers and improved CEC debugging support. This presentation gives an overview of the current status and future work.</p> <p>This talk is a replacement for the cancelled talk by intel's Manasi Navare "Display Stream Compression: More pixels, faster, over DisplayPort", as intel decided not to approve travel for Manasi.</p> Hans Verkuil Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:25 K.4.401 waffle Writing X11/Wayland agnostic GL applications with Waffle Graphics devroom <p>When writing GL applications, one needs to use APIs to bridge the rendering (as done by OpenGL, OpenGLES) with the underlying platform - X11, Wayland and others. As the technical details greatly varies across platforms, a project called Waffle was introduced in 2012.</p> <p>Today Waffle is a core library, used heavily for testing GL drivers with piglit. Additionally, the library provides a simple API which allows easy integration and use of GL application across both X11 and Wayland.</p> <p>For newcomers, a quick outline of the project and its usecase will be provided. Then we'll walk through the project evolution - from platforms supported, feature set and developer base. The main part of the talk will focus on the work done to improve the quality of the project. The CI that was recently deployed will be presented, static analysis tools and code coverage.</p> <p>Finally, we'll talk about the outstanding "issues" of the projects - from missing features, additional testing, tooling required and everything else that is preventing people from using the project.</p> Emil Velikov Waffle homepage Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:25 K.4.401 gpu_reset A low latency GPU engine based reset mechanism for a more robust UI experience Graphics devroom <p>On newer generations of Intel Gen GPUs we now have the ability to reset specific engines for a light weight engine reset approach when things go wrong inside the GPU. Instead of resorting to a full GPU reset mechanism from the get go when things go wrong there are less aggressive options that could help us achieve a faster and smoother recovery from a hung GPU. This talk will go over one such mechanism that includes a low latency engine based reset approach through the use of a GPU watchdog timeout. The talk will end by discussing a specific use case under Chrome OS that shows how all the pieces fit together (including how media drivers can make use of this mechanism from user space) and also how a compositor could take advantage of this approach and improve the user experience.</p> Carlos Santa Lighting talk slides at XDC 2018 Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:25 K.4.401 flickerfree Flickerfree boot Seamless boot for UEFI systems Graphics devroom <p>Presentation on the recent "flickerfree" boot work, where the goal is to go from the firmware splashscreen/logo to the GUI in one fluid experience without any modesets (causing the screen to blank) or transitions to text-mode. Topics discussed during the presentation are:</p> <ul> <li>The changes made to each of the involved components</li> <li>The upstream status of these changes</li> <li>Steps to take to enable this</li> </ul> <p>A typical UEFI boot of a Linux system looks like this: * firmware shows a boot logo * shim loads, clears the screen * grub loads, shows a text menu * kernel efifb loads, clears the screen, may show a bunch of text messages * kernel drm/kms driver loads * bootsplash (plymouth) loads * GUI loads</p> <p>Where the kms driver, plymouth and GUI load all may do a modeset resulting in the display loosing signal for a while. The constant screen clearing, various text-messages and the modesets all result in a quite restless boot experience.</p> <p>My latest project at Red Hat is fixing all this so that we go straight from the logo shown into the GUI, while still being able to show error messages at all stages if necessary.</p> <p>During this presentation I describe: * The changes made to each of the involved components * The upstream status of these changes * Steps to take to enable this</p> <p>Benefits to the eco-system:</p> <p>1) A nicer boot experience for all Linux systems makes Linux more user-friendly and will hopefully lead to wider boot experience</p> <p>2) Customized embedded systems can already offer a similar experience by disabling the kernel's fbcon driver. There are 2 downsides to the current solutions: 2.1) They are per project customizations, there is no standard way to do this, 2.2) Without fbcon, no text output is possible at all and if something causes the GUI to not load there is no way to show a message to the end user (who will not have serial console access).</p> <p>My work offers a standardized way to achieve the desired boot experience while keeping fbcon enabled so that error messages can be shown at any stage if necessary.</p> Hans de Goede Blogpost about flickerfree boot Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:25 K.4.401 virtual_gpu What's new in the GPU virtual world? Graphics devroom <p>The FOSS GPU virtualization stack has never before seen as intensive progress as in the the last months. Virglrenderer started as a research project to investigate the possibility of creating a virtual 3D GPU for use inside QEMU virtual machines that allows the guest operating system to use the capabilities of the host GPU to accelerate 3D rendering and is now getting to a product level quality.</p> <p>This talk will go through an introduction of the Open Source graphics virtualization stack, the security advantages, look at history of the project and at what is happening to take it to production level.</p> <p>Finally, the future plan for the GPU virtualization stack will be shared, like the support to different versions of OpenGL ES and Vulkan on the guest side, improvements to the performance and security of the stack.</p> Elie Tournier Project GitLab Project website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:00 00:25 K.4.401 v4l2 V4L2: A Status Update Graphics devroom <p>In the past year a lot of work has been put into improving the V4L2 subsystem. The main addition was the Request API, which is required for stateless hardware codecs, and will help improve complex camera pipelines. Codecs in general saw a lot of attention and our virtual drivers are now being used in test frameworks. So it is time to present an overview of the current state of V4L2 and what can be expected from it in the future.</p> Hans Verkuil Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:30 00:25 K.4.401 pipewire PipeWire PipeWire wants to take over your multimedia Graphics devroom <p>This is a proposal to give a presentation about PipeWire and the current state of affairs. See also https://pipewire.org</p> Wim Taymans Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:00 00:25 K.4.401 mesa_mem Reducing Memory Usage of Mesa's Shader Compiler (Again) Why does this shader need 80GiB to compile? Graphics devroom <p>During recent work to implement software double precision (fp64) support in Mesa's shading language compiler, some shaders were found to use excessive amounts of memory. One pessimal test case used over 80GiB. This talk will discuss techniques that were used to reduce that memory usage to less the 2GiB. This reduction was achieved through a combination of optimizing existing data structures, use of more compact data structures, and improved memory management. Use of tools such as Valgrind and pahole will be covered.</p> Ian Romanick Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:30 00:25 K.4.401 0ad_graphics 0 A.D: Graphics Graphics problems and opportunities of open-source game Graphics devroom <p>A story about graphics and graphic problems that we have in development of 0 A. D. - the open-source game of Wildfire Games.</p> <p>Talking structure:</p> <ul> <li><p>A little history of 0AD (https://play0ad.com/about/the-story-of-0-a-d/)</p></li> <li><p>Used technologies and how it works (SDL, OpenGL 1/2, ARB/GLSL shaders)</p></li> <li><p>Known problems (inaccurate hardware statistics, old OpenGL, driver/application crashes on Intel cards on different OS, legacy support of OpenGL drivers on macOS 10.14)</p></li> <li><p>Current solutions (tracker &amp; forum to collect people feedback, a feedback server to recieve automatic hardware reports, analyse our audience)</p></li> <li><p>Future plans (more abstractions, probably a low-level third party library for GL/Vulkan/Metal, white &amp; black lists for drivers with bugs)</p></li> </ul> Vladislav Belov 0 A.D. official site Story of 0 A.D. Feedback site WildFire Games Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:05 K.4.601 retro_welcome Welcome to the RetroComputing devroom Retrocomputing devroom <p>For this second year of retro talks at FOSDEM we have a wide range of topics covered, from hardware design to software preservation, and of course emulation, for many machines like the ZX Spectrum, C64 or Atari ST.</p> <p>Since the schedule is tight for the devroom, we'll ask people to note their questions on an etherpad during talks and have speakers answer later on, with a recap of the answers being sent on the mailing list after the event.</p> Pau Garcia Quiles (pgquiles) François Revol Retrocomputing (Wikipedia) Etherpad for devroom Q&A and other notes Submit feedback 10:35 00:30 K.4.601 retro_hatari Hatari - a cycle-exact Atari ST emulator Retrocomputing devroom <p>A talk about the history of the Atari ST/STE/TT/Falcon emulator "Hatari", and the difficulty of emulating these machines in a cycle-exact way. This talk is for everybody who is interested in emulation of old computers, no special previous knowledge is required.</p> <ul> <li>A short overview of the Atari ST and successor machines</li> <li>The history of the the Hatari emulator</li> <li>How to get started with using Hatari (explanation of disk images and firmware ROMs)</li> <li>Hardware tricks on the ST and why cycle-exact emulation is required here</li> </ul> Thomas Huth Hatari website Submit feedback 11:05 00:45 K.4.601 retro_hw_emulation AMENDMENT Open source projects at Silicium retrocomputing association A french non-profit organization for the preservation of videogame and computer heritage Retrocomputing devroom <p>Presentation of open source projects made at or used by Silicium, a french non-profit organization for the preservation of videogame and computer heritage.</p> <p>At Silicium, we have a large collection of old computers and videogames, that we periodically present to the public. But machines break down, especially media and drives, so we like to use mass storage emulators and have tested quite a few: we will present the open source ones that we like and use.</p> <p>Moreover some of our members have retrocomputing open source projects of their own, such as FPGA-based emulators of old gaming consoles. We will present their works and the development techniques they use, notably the MiSTer FPGA platform and coverification with Verilator.</p> <p><strong>Note that this replaces "Emulation revisited - narrowing the gap between software and hardware" by Gregory Estrade who is no longer able to attend the event, but will include parts of it. </strong></p> Benoît Triquet Rene Speranza MiSTer project Verilator Silicium.org Submit feedback 11:55 00:30 K.4.601 retro_minitel CANCELED Restoring a 30+ years old Minitel server on Apple II Retrocomputing devroom <p>Minitel network stopped 6 years ago, but Minitel server software and hardware still exists and allow to re-discover how the whole system was working and how minitel users were interacting with this pre-internet media. Let's make COMPUTEL, an Apple II based Minitel BBS run again... more than 30 years after its shutdown...</p> Christian Quest Medium post Submit feedback 12:25 00:30 K.4.601 retro_gbforth GBForth: Using Forth to understand the Game Boy Retrocomputing devroom <p>During this talk we'll get a good understanding of Game Boy programming by reverse-engineering a ROM using Forth. We go beyond just decompiling the ROM to assembly and show how we created a cross-compiler that allows writing Game Boy games in Forth as well. You'll get to see how Forth interacts with the Game Boy hardware, and how the language can be extended to easily render sprites or play sounds for example.</p> <p>We show you how to use Forth to incrementally refactor Game Boy bytecode into higher levels of abstraction. No black boxes. No magic. This way you can understand and appreciate every layer of the hardware and CPU instructions one by one. A similar approach can help you understand other systems (NES comes to mind) and create a language that is more comfortable than ASM or C to work with.</p> <p>The talk is accessible to developers without former Game Boy, Forth or compiler experience.</p> <p>Topics covered: - Go through the basics of Game Boy hardware - Explain how rendering graphics works on a Game Boy - Outline the challenges of working with the Game Boy memory - Show how to reverse-engineer a binary using Forth - Describe the process of writing the cross-compiler - Talk about using GBForth to write Game Boy games</p> Tijn Kersjes David Vázquez Púa GBForth project Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:45 K.4.601 basic_engine Introduction to the BASIC Engine A low-cost single-board home computer programmable in BASIC that can be built at home for under 10 Euros Retrocomputing devroom <p>This talk introduces the BASIC Engine, a very low-cost single-board home computer with advanced 2D color graphics and sound capabilities, roughly comparable to late-1980s or early-1990s computers and video game consoles. It can be built at home without special skills or tools and using readily available components for under 10 Euros in parts, or mass-produced for even less.</p> Ulrich Hecht BASIC Engine home page Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:45 00:30 K.4.601 retro_preserving_algorithms Preserving numerical algorithms Retrocomputing devroom <p>A typical result in Numerical Analysis is an algorithm to solve a mathematical problem. The main ingredients are the precise statement of the problem, an algorithm to solve it, and an assessment of the errors. From algorithm, there is a long journey to a program: the method needs to be more user-friendly (handling of error cases, etc.), has to be implemented in a programming language, and tested. The resulting program is not only a practical product, but also a very precise description of the algorithm. If the reader is a computer, nothing is left to interpretation as long as the translator is correct. In my talk, I would like to introduce an effort to preserve mathematical software: the histoRicalg project, and summarize some of its results.</p> <p>In two decades from 1970 to 1990, there was an upsurge in the writing and publication of mathematical software. Much of this has been collected in subroutine libraries or published in print or in machine readable form. Traditionally, scientific results are published in journals, and journal papers are archived in libraries. However, as programs grew larger, they were no longer printed with the papers, but sent to interested readers on tape, diskettes, or other forms of data storage.</p> <p>The knowledge accumulated in these codes is extensive and valuable. Its preservation, however, is more difficult than that of papers. Storage technologies come and go, programming languages come into fashion, then become forgotten. To preserve the algorithms, one needs to constantly copy their source code from old computers to newer ones and preserve the tools needed to compile them.</p> <p>In this poster, I plan to introduce one effort to preserve mathematical codes: the histoRicalg project. Its primary objective is to find, document, and preserve the originals of the numerical codes that have found their way into the R statistical programming system. In particular, I will summarize my experience with attempts to run the originals of these codes on a modern Linux PC.</p> <h3>PRESERVING NUMERICAL ALGORITHMS</h3> <p>A typical result in Numerical Analysis is an algorithm to solve a mathematical problem. The main ingredients are the precise statement of the problem, an algorithm to solve it, and an assessment of the errors. From algorithm, there is a long journey to a program: the method needs to be more user-friendly (handling of error cases, etc.), has to be implemented in a programming language, and tested. The resulting program is not only a practical product, but also a very precise description of the algorithm. If the reader is a computer, nothing is left to interpretation as long as the translator is correct.</p> <p>In two decades from 1970 to 1990, there was an upsurge in the writing and publication of mathematical software. Much of this has been collected in subroutine libraries or published in print or in machine readable form. Traditionally, scientific results are published in journals, and journal papers are archived in libraries. However, as programs grew larger, they were no longer printed with the papers, but sent to interested readers on tape, diskettes, or other forms of data storage.</p> <p>The knowledge accumulated in these codes is extensive and valuable. Its preservation, however, is more difficult than that of papers. Storage technologies come and go, programming languages come into fashion, then become forgotten. To preserve the algorithms, one needs to constantly copy their source code from old computers to newer ones and preserve the tools needed to compile them.</p> <p>I plan to introduce one effort to preserve mathematical codes: the histoRicalg project. Its primary objective is to find, document, and preserve the originals of the numerical codes that have found their way into the R statistical programming system. In particular, I will summarize my experience with attempts to run the originals of these codes on a modern Linux PC.</p> <h1>Present status:</h1> <ul> <li>SLATEC codes: Fortran 77. Modifications only needed for machine dependent parts; code is well preserved. LINPACK and EISPACK parts are largely superseded by LAPACK.</li> <li>PORT Library: Bell Labs has changed owners and the web site is gone. Fortran 77. What code we have runs without changes. Contains an interesting collection of optimization algorithms.</li> <li>CMLIB: large overlap with SLATEC. Fortran 77. So far UNCMIN has been tested.</li> <li>NSWC: large overlap with SLATEC. Fortran 77. Needs changes in machine dependent parts. Large collection of special functions routines. So far, I have checked machine parameters: integer parameters match x86_64-linux-gnu.</li> <li>NUMAL: one of the early attempts at a mathematical software collection. Algol 60. Needs a translator to run. I have created Ubuntu packages for two translators (MARST and JFF-ALGOL).</li> <li>CALGO: Fortran 77 and Algol 60 parts, not all available in machine readable form. Prof. Tim Hopkins, ACM Algorithms Editor, has informed us of translations to Fortran 90 and extensive testing in progress.</li> </ul> <h1>Language translator status</h1> <ul> <li>Fortran 77 is "too big to fail": it is well supported after 40 years (gfortran, f2c)</li> <li>Algol 60 is far less so, but a translator to C is available</li> <li>Algol 68 and Algol W also have translators</li> <li>BASIC, Pascal are not as old and there are workable tools</li> <li>Many less widely used languages far more problematic (APL, PL/I, ...)</li> </ul> <h1>Case study: UNCMIN</h1> <ul> <li>Minimization code used, e.g., in R as function nlm()</li> <li>Well known: Kahaner Moler Nash (1989) has a subset code, while CMLIB has a version of the full original (code). R apparently has this code translated to C via f2c and hand editing.</li> <li>Recent bug reports have appeared for R. Is there a bug in the original?</li> </ul> <h1>Outlook and difficulties</h1> <ul> <li>An additional issue: abandonware. What is to be done if the code is copyrighted, but we can not contact the author anymore?</li> <li>Preservation: fix code that violates (sometimes newer) standards</li> <li>Are there bugs? If so, were they present in the original version? And which version is the original?</li> </ul> Arpad Laszlo Lukacs Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:15 00:25 K.4.601 ohw_rpi Making Open Source Hardware for Retrogaming on Raspberry Pi Retrocomputing devroom <p>Raspberry Pi, the most popular single board computer for hobbyists and students, is an affordable and widely used platform for retrogaming. Over the years the community has created numerous cool cases, add-on boards and peripherals for optimized gaming.</p> <p>In this presentation you will learn how to use cutting edge free and open source technologies such as KiCAD and OpenSCAD to create a gamepad as a Raspberry Pi HAT (Hardware Attached on Top) with device-tree fragment for mapping the keys saved in an EEPROM connected via I2C. Exact steps for setting it up and playing retro games in emulators on RetroPie and Raspbian will be provided. Furthermore we will discuss the benefits of the open source hardware and the certification program of Open Source Hardware Association (OSHWA).</p> <p>The presentation is appropriate for anyone interested in low-cost retrogaming and modern free and open source software technologies. No previous experience or hardware knowledge is required. Apart from retrogaming enthusiasts, the talk is appropriate for wide range of developers, makers, and students. Hopefully, the presentation will encourage the attendees to grab the soldering iron and start prototyping retrogaming compatible hardware for fun and profit.</p> <p>Raspberry Pi, the most popular single board computer for hobbyists and students, is very affordable platform and it is a popular solution for retrogaming. Nowadays modern free and open source tools allows us to develop Raspberry Pi add-on boards to improve the gaming experience. Over the years the community has already created numerous awesome hardware projects for cases, add-on bards and peripheral optimized for retrogaming. The focus will be on providing guidelines and recommendations how to use the open source EDA software KiCAD to design open source hardware gamepad as a HAT (Hardware Attached-on Top) according to requirements of the Raspberry Pi foundation as well as a simple cases for laser cutting or 3D printing with another popular open source software tool OpenSCAD. Using practical examples related to retrogaming you will understand how to create device tree binary overlay for mapping keys and how to flash it in EEPROM attached to pin 27 of 28 of the Raspberry Pi header. Exact steps for setting up and using our do-it-yourself gamepad with popular GNU/Linux distributions RetroPie and Raspbian will be provided. Last but not least we will discuss the benefits of using open source hardware and the certification of the Open Source Hardware Association (OSHWA). The presentation is appropriate for anyone interested in low-cost retrogaming and modern free and open source software technologies. No previous experience or hardware knowledge is required. Apart from retrogaming enthusiasts, the talk is appropriate for wide range fo developers, makers, and students.</p> Leon Anavi Introducing Raspberry Pi HATs RetroPie Open source hardware gamepad for Raspberry Pi designed with KiCAD Device tree source for key mapping Open Source Hardware Association Open Source Hardware Association Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:45 K.4.601 the_first_contact The First Contact PHP & Friends devroom <p>So you did a great job with your website and now your customers want to get into contact with you. They actually want give you their holy grail and apply for a login. And that's where it usually starts to go south. So many things can go wrong with a registration form that your customer doesn't really feel welcome or safe. In this session we will debug a few real-life examples from a user-experience Point of View. By analysing that we will find ways to make the first contact of a user with our application a better experience. And you don't need to be a coder to see why and how to improve your next registration form.</p> Andreas Heigl Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:45 K.4.601 profiling_php_applications Profiling PHP applications PHP & Friends devroom <p>Help my client is complaining some parts of the application are slow. Now what?</p> <p>Profiling!</p> <p>What is profiling and how can we measure the performance of our application? There are several tools we can use. Once we have the tools, how do we approach profiling. What to look for. And caveats to avoid when profiling. To finish up, we should avoid that our client is complaining about performance, how can we pro actively use profiling to improve our application.</p> <p>When finished we will end up with a nice toolbox of profiling tools and good ideas how to do profiling and avoid some common mistakes that might distract you from the real optimisation.</p> Ike Devolder slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:55 00:30 K.4.601 working_with_webhooks Working with Webhooks PHP & Friends devroom <p>Webhooks are the natural evolution of modern applications beyond using APIs to integrate between systems. This talk will showcase the webhook examples you're already familiar with, and show you how to handle these features in your own applications.</p> <p>In an increasingly connected world, APIs are key to great tools and effective workflows. What is better than an API? A webhook of course! Webhooks are the modern way for integrating systems and allowing them to react to one another. This session will cover what a webhook is, when you might want to use one, and some examples for handling webhooks in your own PHP projects. You'll see some examples of tools to help during the development process, and some real examples of webhooks in action.</p> Lorna Mitchell Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:35 00:45 K.4.601 functions_as_a_service Functions as a Service How PHP set the ground stone for serverless PHP & Friends devroom <p>"Serverless" is the one hot topic of the past years. "Serverless functions" can be incredibly useful and supported by all major cloud providers. I want to compare this to the beginnings of PHP and how we can do very similar things with low effort and without any super fancy tools.</p> <p>"Serverless functions" are basically "functions as a service". But what makes this so special? And why did PHP do most of this from it's beginning? I want to show how things worked when I started with PHP >10 years ago and how similar this was to todays "serverless functions". How you can easily create specific endpoints that do one specific thing, without writing a single line of code that handles routing. Even without writing a single line of configuration. "Serverless functions" are something bold and awesome and new and fancy, but they are not es special as they might look on first sight.</p> <p>The talk is supposed to be entertaining. I don't want to talk people into using "functions as a service" or into not using them. But it might be interesting to know where things came from and that PHP might have inspired this whole development of the past years.</p> Sven Finke Submit feedback 18:30 00:30 K.4.601 amendment_async_php_requests_and_reactive_responses_with_php_fpm AMENDMENT Async PHP Requests & Reactive Responses with PHP-FPM PHP & Friends devroom <p>There are many approaches to execute PHP sub-tasks asynchronously or to parallelise PHP execution. While some solutions require extra extensions, individual PHP builds or a lot of process control management, this talk will show you how to configure and use the built-in PHP FastCGI Process Manager (php-fpm) to execute requests asynchronously in an isolated, tunable process pool and eventually handle their responses in a reactive way.</p> <p>Please note that this talk replaces one entitled "Instant Upgrades with Rector" that was due to have been given by Tomas Votruba, who has sent his apologies but is now unable to attend as he has fallen ill. We wish him a speedy recovery.</p> Holger Woltersdorf Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:30 UA2.114 (Baudoux) relaunching_the_odf_adoption_tc_at_oasis Relaunching the ODF Adoption TC at OASIS Open Document Editors devroom <p>In 2019, we will relaunch the old ODF Adoption TC at OASIS as ODF Adoption Open Project, to allow a wider participation from ODF stakeholders. The program is to announce the new project in March, and convene for the first online meeting before Easter. An update about the program status at FOSDEM.</p> Italo Vignoli Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:30 UA2.114 (Baudoux) server_side_solution_for_generating_odf_reports Server side solution for generating ODF reports An important step to adopt ODF in Taiwan Open Document Editors devroom <p>The National Development Council in Taiwan have asked the OSSII, a local LibreOffice service provider, to develop a solution that can directly generate ODF reports, while the servers in public administrations do not need to change a lot.</p> <p>To adopt ODF and LibreOffice in Taiwan, a very important part, besides desktop applications, is to ask the reports generated from servers in all the public administrations to be in ODF format. Currently almost all reports are in Microsoft office format; some of them are even non-standard -- they can be opened by Microsoft Excel, but can not be converted by LibreOffice. Hence, the National Development Council asked the OSSII, a local LibreOffice service provider, to develop a solution that can directly generate ODF reports, while the server side do not need to change a lot. This talk gives a simple introduction of how this solution works.</p> Franklin Weng Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:30 UA2.114 (Baudoux) resurrecting_mozilla_themes_for_libreoffice Resurrecting Mozilla Themes for LibreOffice Trying to uncover, fix and improve a hidden gem in the rough Open Document Editors devroom <p>Past, present, and the future of LibreOffice's Personalization dialog.</p> <p>LibreOffice has had the ability to use Mozilla Themes (Personas) for some time (Tools > Options > Personalization); but it kept breaking all the time, and never had an acceptable UX. Also tons of errors/warnings, and very slow search and apply processes almost brought it to the point of being killed for good. But I couldn’t let it die, started looking into the related code and the bug reports. Now it has a better UX/UI, and got most annoying bugs/crashers fixed, and is much faster.</p> <p>I will try to present a summary about the journey so far, and the plans for the future.</p> Muhammet Kara Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:30 UA2.114 (Baudoux) libreoffice_extensions Quo vadis, LibreOffice extensions? Open Document Editors devroom <p>The way how users can extend Libreoffice underperform the known usability from the office suite by a special kind of storage and a cumbersome way to load it. The talk will present one possible solution, open collaboration service, and show the improvements on both sides, the contributors who upload as well ideas on how users may easier customize and enhance the program.</p> <p>Our extensions are hosted on a Plone-based content management site. The procedure to upload an extension is cumbersome as neither a wizard nor clear steps are provided. And also because the administration is hard work and a one-person show. Furthermore, the site lacks on good search and filter capabilities for the users and has no categories beyond Extensions and Templates. The talk will present two aspects: The first is how the open collaboration service works on https://www.opendesktop.org/ and the second part gives an idea how a tight integration into LibreOffice similar to GetHotNewStuff known from KDE might substantially improve the usability with also benefits for the development.</p> Heiko Tietze Open Collaboration Service Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:30 UA2.114 (Baudoux) improving_libreoffice_quality_together Improving LibreOffice quality together A summary of what happened in 2018 Open Document Editors devroom <p>Improving LibreOffice quality together. A summary of what happened in 2018.</p> Xisco Fauli Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:30 UA2.114 (Baudoux) collabora_office_on_ios Collabora Office on iOS Open Document Editors devroom <p>After several years of only occasional progress but mostly stagnation, resources have now been available for work on a LibreOffice-based app for iOS. This talk will describe the history and technical aspects of the effort.</p> <p>Collabora Office for iOS is based on the C++ server-side code for Collabora Online (based on LibreOffice Online), and JavaScript code for the same (browser-side). Plus the core of Collabora Office (i.e. LibreOffice). Plus, finally, a rather small amount of glue code in Objective-C++. In the app all this code runs on the device, there is no server involved.</p> <p>Work on enabling compiling the LibreOffice core for iOS (cross-compiling, on a Mac, as all iOS development is done) was started originally back in 2011, by me. Initially this was mostly done in spare time, for fun.</p> <p>There was initially no clear product plan and no technical exact plans how, once the core code works on iOS, it can and would be used in an actual app. No work on any user interface. But just making the functionality needed to even load and save documents on iOS, for instance, was challenging enough, given the somewhat obscure and complex internal plumbing of LibreOffice with its long history.</p> <p>Some year later, for Collabora Online, the concept of “tiled rendering” was introduced by Michael Meeks. In this approach a client requests the core to render a document as “tiles”, rectangular pixmaps. The user interface in Online, in JavaScript, requests and displays these tiles and provides the user interface that send user input and edit request as necessary to the core.</p> <p>Also in the same timeframe, the CloudOn company needed an iOS app with the ability to load and edit office documents natively on an iOS device. We started working on making the LibreOffice core useful for that, based on my earlier work, and using tiled rendering for this, too. One major challenge here turned out to be the massive size of the LibreOffice core code, which was problematic as Apple at that time restricted the size of the executable code in an iOS app quite severely. Anyway, various workarounds were found, and this was progressing nicely, but then CloudOn was acquired and lost interest. No public iOS app code was released from that.</p> <p>As a test so see that the code works at least to some extent, I had written a minimal test app (without any actual editing UI), “TIledLibreOffice”, in the LibreOffice core code.</p> <p>Then no iOS work happened until a few years later when Jan Iversen got interested. He was at the time working for TDF. He worked on an iOS app, LibreOfficeLight, which is still present in the LibreOffice core code. He also worked on keeping the iOS functionality working in LibreOffice. Jon Nermut also helped. The LibreOfficeLight app as such worked but did not contain any actual editing functionality.</p> <p>Then half a year or so later, Michael started toying with the idea of re-using the by now quite substantial JavaScript UI we have in Online in an iOS app. And then a customer turned up that took part in funding it, Adfinis SyGroup.</p> <p>I started working on that, and it turned out to be surprisingly straightforward to get it working. Sure, there were lots of technical issues involved. Some of the iOS code in LibreOffice had bit-rotted over the years. The Online server code normally runs as multiple separate processes on a Linux machine. That had to be combined into code running in just one process (the iOS app) which was challenging.</p> <p>The JavaScript code in the iOS app is the same as that in Online. There are very few places where the JavaScript needs to know that it is running in an iOS app and not in a browser.</p> <p>All the code is Open Source and publicly available, in the LibreOffice “core” and “online” git repositories.</p> Tor Lillqvist Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:30 UA2.114 (Baudoux) preventing_ooxml_interoperability_problems_in_libreoffice Preventing OOXML interoperability problems in LibreOffice Open Document Editors devroom <p>As we know LibreOffice is an editor built around the feature set of ODF standard. When it comes to interoperability with other formats, notably OOXML, this causes another interesting source of problems: there are features available in the editor that might not be available in the counterpart product and consequently neither in OOXML format. The result might be loss of work time: the user assumes if she saves her carefully crafted document in OOXML it will be retained. In some unlucky cases this might not be true because of differences between the LO feature set and the file format preferred by the user or her peers.</p> <p>My proposed solution to this is a small, simple and gradually extensible one: let's offer a configuration key that might be turned on by system administrators and this in turn would disable elements of the LibreOffice UI that offer features not available in the OOXML file format, or set different defaults in certain situations.</p> Gabor Kelemen Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:30 UA2.114 (Baudoux) new_interoperability_i18n_and_librelogo_improvements_of_libreoffice New interoperability, i18n and LibreLogo improvements of LibreOffice for office suite migrations in public sector, supported by NISZ and FSF.hu Foundation Open Document Editors devroom <p>3 lightning talks about news and the most important experiences of the various LibreOffice developments made for migration projects in public administration and education, based on my recent presentations of LiboCon, Tirana, and our newer results.</p> <p>Building a LibreOffice development team: We have found and filed more than three hundred bugs during the biggest LibreOffice migration project of Hungary. Our help desk service couldn't handle these efficiently using half measures and workarounds, so we started to build a small LibreOffice development team focusing on the most important OOXML compatibility and other migration problems. After three month learning and trial period, we summarize our results and failures for LibreOffice community.</p> <p>LibreOffice language technology – news and best practices: This lightning talk shows new and improved language technologies of LibreOffice and their usage: new features of Hunspell spell checker (better handling of words written separately or with special orthography, faster suggestions, etc.), “Grammar by” spell checking for default technical dictionaries, Numbertext and NatNum12 number modifier for default date and other formats fulfilling special language needs, and exemplary developments for example for German (hyphenation using compound feature of libhyphen) and Hungarian (fields with automatic article selection; spell checking of word with special word breaking, for example, recognizing the parenthesized word forms, like “us(ag)e”).</p> <p>LibreOffice and eTwinning: LibreLogo in schools and teacher training programs: LibreLogo, integrated Logo extension of LibreOffice is based on strong practical and educational principles. After 4 years of research period, lead by Andreas Formiconi, University of Florence advocates LibreLogo usage in eTwinning program, community of European schools. This short presentation summarize the research results and recent and planned improvements of LibreLogo.</p> László Németh LibreOffice Language Technology – News & Best practices Build your LibreOffice development team! LibreLogo in schools and teacher training programs LibreLogo Improvements in LibreOffice 6.2 Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:30 UA2.114 (Baudoux) mysql_connector_and_other_databases_in_libreoffice Mysql connector and other databases in LibreOffice Changes around database drivers in LibreOffice Open Document Editors devroom <p>There had been several changes since lately around the database drivers of LibreOffice. The drivers, which are used to establish connection between various database-management systems and LibreOffice, allow us to customize Base to our needs. I am going to talk about the improvements around database drivers such as upgrading the Firebird driver and creating a migration suite. Although the majority of the talk will be about improvements around the mysql connector.</p> Tamás Bunth Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:30 UA2.114 (Baudoux) online_under_the_hood Online - under the hood How to bring LibreOffice to your web app Open Document Editors devroom <p>The Online code-base can bring LibreOffice into an iframe in your web app. Come and hear how this works, how to integrate it with your software, and about all the options and tweaks that go with this.</p> <p>Online uses a WOPI-like protocol, and it is simple to integrate. Come hear about the total of three REST methods you need for a simple integration. Hear about the wealth of options to control sharing work.</p> <p>See how Online works, and how you can get involved with building, debugging, and developing it, and checkout some of the new features we've been working on to make life better for our users.</p> Michael Meeks Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:30 UA2.114 (Baudoux) vereign_toolbar_in_libreoffice_online Vereign toolbar in LibreOffice Online Technical aspects of integration of a 3rd party document signing service Open Document Editors devroom <p>This presentation will tell the story of integration of a 3rd party document signing service (provided by Vereign) into LibreOffice Online.</p> Andras Timar Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:30 UA2.114 (Baudoux) improving_smartart_import_in_libreoffice_impress Improving SmartArt import in LibreOffice Impress Open Document Editors devroom <p>LibreOffice Impress was capable of importing your SmartArt graphics from PPTX files for a long time. Today this is a popular feature, and we only do a good job of rendering this shape type when the file has a fallback rendering included. LibreOffice 6.3 will contain a long series of small, incremental improvements in this area, resulting in a large step forward when it comes to laying out SmartArt document models. This will be a major improvement for documents which don't have a pre-rendered layout included. The result affects both desktop LibreOffice and the Online. Come and see how this work is implemented, where are the still rough edges and how you can help.</p> Miklos Vajna Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 UA2.114 (Baudoux) libreoffice_layers Do you know "layers"? Open Document Editors devroom <p>The talk introduces you to the concept of "layers" in ODF (Open Document Format), which is completely different from "layer" concepts in image processing. The talk will then explain the "layers" actually implemented in LibreOffice, which come from StarOffice. Finally the presentation shows the resulting challenges for developers to adapt LibreOffice to ODF.</p> Regina Henschel Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:00 00:30 UA2.114 (Baudoux) clang_plugins_in_libreoffice_global_analyses_across_a_large_codebase Clang plugins in LibreOffice - global analyses across a large codebase Open Document Editors devroom <h2>Clang plugins in LibreOffice - global analyses across a large codebase</h2> <p>In the old days, we expended considerable effort to make our global analyses more efficient, especially when dealing with large codebases like LibreOffice. However, with the advent of modern hardware and software tools this has become largely necessary.</p> <p>This talk will focus on some pragmatic design choices that lead to being able to run global analysis passes across the LibreOffice codebase, without breaking the bank on hardware or waiting days for results.</p> <p>Also, I discuss gradual approaches to developing such plugins that do require language-lawyer level knowledge of the C++ AST.</p> Noel Grandin Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:30 00:30 UA2.114 (Baudoux) native_gtk_dialogs Native GTK Dialogs current status and future work Open Document Editors devroom <p>Native GTK Dialogs, current status and future work</p> Caolán McNamara Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:00 00:15 UA2.114 (Baudoux) are_we_optimiert_yet Are we optimiert yet? Open Document Editors devroom <p>A well known deficiency of Writer is that its Hide Tracked Changes mode is slow. We will discuss the origin of the problem, and the current status of the plans to fix it. Also an aside on leveraging type systems to aid large scale refactoring.</p> Michael Stahl Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:15 00:15 UA2.114 (Baudoux) text_mining_with_openoffice Text Mining with OpenOffice Open Document Editors devroom <p>While typically done through dedicated natural language processing tools, text mining can be done at a basic level using OpenOffice too. We'll see how to leverage on OpenOffice's built-in features for automated text analysis.</p> Andrea Pescetti Submit feedback 18:30 00:30 UA2.114 (Baudoux) lightning_talks Lightning Talks Open Document Editors devroom <p>Lightning Talks. Andras will start the session with a lightning talk covering the technical aspects of LibreOffice Online localization and showing the issues that are not yet fixed, but will also collect proposals from other speakers.</p> Andras Timar Schedule on TDF Wiki Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:10 00:20 UA2.118 (Henriot) stats_optimizer MariaDB and MySQL — what statistics optimizer needs or when and how not to use indexes MySQL, MariaDB and Friends devroom <p>When your SQL query reaches the DBMS, it's the optimizer job to decide how to execute it for you to get the result as fast as possible. To make this decision optimizer can examine the actual table data, but with multi giga- and terabyte tables, the only practical solution is to use various data statistics that was collected in advance. The better the statistics is and the more precisely it describes the actual data, the faster the plan will be, because optimizer image of the reality will be closer to the actual reality.</p> <p>In this talk you'll learn what data statistics MariaDB and MySQL can collect, what statements do that, how to tell the optimizer to use it (it won't necessarily do it automatically!) and how it can make your queries many times faster.</p> <p>And, of course, when not to use indexes, when up-to-date statistics is enough.</p> Sergei Golubchik Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:40 00:20 UA2.118 (Henriot) mysql_cap MySQL and the CAP theorem: relevance & misconceptions Dissecting, affirming and refuting CAP assumptions in real production systems. MySQL, MariaDB and Friends devroom <p>The CAP theorem is often used to describe the tradeoffs of available versus consistent systems. But the CAP theorem is often misunderstood and misrepresented. In this session we investigate the CAP properties of various MySQL replication setups, and show that it is impossible to claim a setup is AP or that it is CP. We will see how the properties can be non binary, and change across time, geography and workload. We will also observe where CAP's terms can be made irrelevant. This session takes the practical engineer's perspective and shows how we can gain the upper hand with reasonable tradeoffs.</p> Shlomi Noach Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:10 00:20 UA2.118 (Henriot) mysql_bug_report How to create a useful MySQL bug report ...and make sure it's properly processed MySQL, MariaDB and Friends devroom <p>This session is for those MySQL DBAs and users who found some wrong, erratic, undocumented behavior while working with MySQL or MariaDB, got it crashed or failed in a way they consider totally wrong. We discuss what details to collect and provide, what tools to use and what steps to perform to create a public bug report that is processed (and, hopefully, fixed) fast. Possible efficient ways to escalate bugs that do not get proper attention are also presented.</p> <p>This session is for those MySQL DBAs and users who found some wrong, erratic, undocumented behavior while working with MySQL or MariaDB, got it crashed or failed in a way they consider totally wrong. We discuss what details to collect and provide, what tools to use and what steps to perform to create a bug report that is processed (and, hopefully, fixed) fast.</p> <p>We discuss current life cycles of MySQL and MariaDB bugs, details of practical bug trackers usage, approaches to "security" bugs and escalation procedures, formal and informal - everything to get a real MySQL bug processed, properly fixed and documented. All this based on my personal experience of 14+ years of bugs reporting, processing and prioritizing in MySQL, Sun, Oracle, Percona and MariaDB Corporation.</p> Valerii Kravchuk Basic structure would be the same as on these slides Initial blog post on the topic On recently added severity levels for MySQL bugs On reporting MySQL bugs upstream for support providers On reporting MySQL bugs in public for Oracle customers Slides for this talk at SlideShare http:// Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:40 00:20 UA2.118 (Henriot) online_backup_myrocks How Online Backup works in MyRocks and RocksDB MySQL, MariaDB and Friends devroom <p>In this session, the speaker will talk about how MyRocks's online backups work. Both physical (myrocks<em>hotbackup) and logical (mysqldump) backups will be covered, and physical backups will be more focused. MyRocks (and RocksDB)'s physical backups basically work by 1. invoking RocksDB checkpoint that creates hard links then 2. copying data files (SST), redo logs (WAL) and others. myrocks</em>hotbackup has additional features like "renewing checkpoint" that makes replication catchup shorter, streaming backups, and auto-detecting O_DIRECT. Logical backups in MyRocks/RocksDB is more efficient than InnoDB because RocksDB more efficiently keeps track of transaction histories. How physical/logical MyRocks/RocksDB backups work are not widely discussed in public, and the speaker will demystify in this session.</p> <p>In this session, the speaker will talk about how MyRocks's online backups work. Both physical (myrocks<em>hotbackup) and logical (mysqldump) backups will be covered, and physical backups will be more focused. MyRocks (and RocksDB)'s physical backups basically work by 1. invoking RocksDB checkpoint that creates hard links then 2. copying data files (SST), redo logs (WAL) and others. myrocks</em>hotbackup has additional features like "renewing checkpoint" that makes replication catchup shorter, streaming backups, and auto-detecting O_DIRECT. Logical backups in MyRocks/RocksDB is more efficient than InnoDB because RocksDB more efficiently keeps track of transaction histories. How physical/logical MyRocks/RocksDB backups work are not widely discussed in public, and the speaker will demystify in this session.</p> Yoshinori Matsunobu Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:10 00:20 UA2.118 (Henriot) tidb TiDB: Distributed, horizontally scalable, MySQL compatible MySQL, MariaDB and Friends devroom <p>TiDB is an open source distributed scalable hybrid transactional and analytical processing (HTAP) database built by PingCAP. It also speaks the MySQL protocol and uses RocksDB as the underlying storage engine!</p> <p>This talk provides an introduction and overview of TiDB, tailored for those with a strong background in MySQL. I will use MySQL as an example to explain various implementation details of TiDB, and translate terminology to MySQL/InnoDB terms.</p> Morgan Tocker Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:40 00:20 UA2.118 (Henriot) pfs_20min MySQL Performance Schema in 20 Minutes MySQL, MariaDB and Friends devroom <p>Born in 2010 in MySQL 5.5.3 as "a feature for monitoring server execution at a low level," grown in 5.6 times with performance fixes and DBA-faced features, in MySQL 5.7 Performance Schema is a mature tool, used by humans and more and more monitoring products. It becomes more popular over the years. In this talk I will give an overview of Performance Schema, focusing on its tuning, performance, and usability.</p> <p>Performance Schema helps to troubleshoot query performance, complicated locking issues, memory leaks, resource usage, problematic behavior, caused by inappropriate settings and much more. It comes with hundreds of options which allow precisely tune what to instrument. More than 100 consumers store collected data.</p> <p>Performance Schema is a potent tool. And very complicated at the same time. It does not affect performance in most cases and can slow down server dramatically if configured without care. It collects a lot of data, and sometimes this data is hard to read.</p> <p>This talk will start from the introduction of how Performance Schema designed, and you will understand why it slowdowns server in some cases and does not affect your queries in others. Then we will discuss which information you can retrieve from Performance Schema and how to do it effectively.</p> <p>I will cover its companion sys schema and graphical monitoring tools.</p> Sveta Smirnova Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:10 00:20 UA2.118 (Henriot) mysql_component MySQL 8.0 Component Infrastructure Why, what's there, what's next and how to use it MySQL, MariaDB and Friends devroom <p>You probably saw the new MySQL 8.0 commands INSTALL COMPONENT and UNINSTALL COMPONENT and been wondering "is there anything for me". I'll try to explain what the component infrastructure is, why do we need it, what's available through it and where do we have the ambition to get it. I'll present what does it take to create a simple component too.</p> <p>The MySQL component infrastructure is intended as a reboot of the plugin functionality. It's built on the principle of modularity, explicit interfaces and dependencies and obfuscation of complex internal structures and object instances behind handles. It inherits the best from the plugin functionality while avoiding the known pitfalls and providing missing functionality. We'll go over the architectural principles behind the components, services and service implementations. We'll also create a simple component, see how it declares the APIs it needs and provides and how does it interact with the other APIs available in the service registry. At the end we'll go through an enumeration of the services available from the MySQL server component. We'll then try to think together on what's missing, what could be next and what's more desired in terms of functionality.</p> Joro Kodinov Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:40 00:20 UA2.118 (Henriot) mysql8documentstore MySQL 8.0 Document Store: How to Mix NoSQL & SQL in MySQL 8.0 a database where developers and DBAs live in peace MySQL, MariaDB and Friends devroom <p>MySQL 8.0 is now also a Document Store where it's very easy to store JSON documents and use CRUD operations. Developers now can deal with their datata without writing a single line of SQL. In this talk, I will show how easy it's for developers to use CRUD operations that allow a cleaner and easier development but also how the DBA can deal with the data and benefits from the power of a RDBMS.</p> <p>I will illustrate this with examples where we add data/modify data very easily and where we increase the speed of the queries in the background and generate more complicated reports using SQL on the same data.</p> <p>The best of both worlds in one single product.</p> Frédéric Descamps Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:05 UA2.220 (Guillissen) welcome_legal_policy Welcome to the Legal and Policy Issues devroom Legal and Policy Issues devroom <p>Welcome to and overview of the eighth year of the Legal and Policy Issues DevRoom</p> Tom Marble Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:35 00:25 UA2.220 (Guillissen) what_did_i_agree_to What did I just agree to? A quick trip through the un-"popular" open source licenses Legal and Policy Issues devroom <p>Understanding FOSS licenses are indisputably an important part of the process for contracting for IT services ranging from software agreements, professional services to create or support software, and to cloud solutions.</p> <p>It’s not uncommon to find carve outs in those agreements saying that “Some Third-Party Content may be provided to you under a separate license, such as the Apache License, Version 2.0, or other open source license.” What does that mean? Are there any surprising terms to be found in those “other open source licenses”.</p> <p>This presentation will briefly review the terms of some of the less commonly discussed licenses approved by OSI as “open source.” What are some of the interesting properties of these less common licenses? And do we really want to keep agreeing to use them in our contracts?</p> <p>There are 83 licenses listed as approved “Open source” licenses on the Open source initiatives website. Most of the time when developers, lawyers, and FOSS compliance experts talk about “open source” licenses the permissions and obligations of the nine licenses listed on OSI’s “popular licenses” list are front and center. Occasionally a few other licenses like the AGPL and the Creative Commons licenses are considered as well. But what about the other 70 licences? Do the generalizations and expectations many of us have based on the popular licenses hold up when we start to consider the other OSI approved licenses?</p> <p>This presentation will argue that many the spoken and unspoken expectations of open source licenses do not generalize well when we consider the full list of licenses approved by OSI. This can be a challenge when IT policies and contractuals are written about “open source” licenses generally. Do organizations that are comfortable working with and using open source software and licenses really want to bound by all of the obligations in every free software license? Are the generalizations we make about open source licenses really true for every license? Do we need to be more careful in crafting policies and contracts then treating all open source licenses the same?</p> <p>This presentation will review attributes found in the un-”popular licenses” that have been approved by OSI that differ from the unique and common attributes found in the popular licenses.</p> <p>For example not all of them are classified as free by the Free Software Foundation and some appear to not be acceptable for inclusion in Debian. We will look at the public rationale for Debian and the Free Software Foundation refusing to include those licenses. We will also look at other unexpected properties of other licenses that may challenge many of our internal models for open source licenses.</p> <p>We will also look at which licenses have the unusual attributes such as: * Choice of Venue Clauses * Choice of Law clauses * Unusual distribution clauses such as - requirements to secure assent to the agreements and licenses - Mandatory Public publication requirements for specified periods of time - Grant of third party beneficiary rights for recipients * Retaliation clauses with broad scopes (terminating all rights for unrelated litigation) * Licenses that have restrictions or contingent obligations that trigger on use * Exclusion of patent rights * Restrictions on selling copies of software</p> <p>We will pay particular attention to licenses that impose obligations on individuals for merely using the software even if they don’t modify the software such as: * requirements distribution when software is used and the various ways use triggers: * distribution and to whom distribution is required under those circumstances. such as the several licenses that require sharing source code when you use it or let others use it. * Indemnification of authors of the source code</p> Marc Jones Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:25 UA2.220 (Guillissen) cern_ohl_v2 Introducing the CERN Open Hardware Licence version 2 Covering some of the major changes in this new version of CERN-OHL Legal and Policy Issues devroom <p>The CERN OHL is a copyleft open hardware licence which was launched in March 2011. It has undergone point releases 1.1 and 1.2 and since then, but feedback from user communities, particularly those working with microprocessor cores and FPGAs has made us reconsider some of the fundamental assumptions made when the licence was first drafted. We have shamelessly taken ideas from other licences as well as introducing some new approaches, driven by the needs of users. This session introduces our new draft of version 2.0, which aims to make v2.0 more flexible than any previous version, while increasing clarity of drafting.</p> <p>Full Description} Hardware is more complex than software from an intellectual property perspective, and this makes developing an open hardware licence, especially a copyleft/reciprocal open hardware licence, particularly challenging. The CERN OHL has been designed to work with as wide a range of hardware as possible, from artistic works, through mechanical devised, to circuit board layouts and, more particularly to software, microprocessor cores and even FPGAs and ASICs. At the same time, we recognise that hardware is a different domain from software, and that it is a mistake to assume that lessons learned in the software domain can automatically be applied to open hardware.</p> <p>We have listened to the concerns of many users and potential users of the CERN OHL, and have produced a radical redraft of the licence which aims to:</p> <p>be concise and clear; be appropriate for a wide range of different use cases in fields of use (such as microprocessor cores, FPGAs and ASICs); be appropriate for a wide range of users, from not-for-profits through to commercial organisations; be compatible, so far as possible with other licences like GPLv3 and TAPR; be easy to use; discourage licence proliferation; encourage compliance as the main outcome of enforcement; maximise the availability of open hardware designs to the public; maintain the same spirit as the previous versions of the CERN OHL; allow for strong- and weak-reciprocal licensing models, as well as permissive models.</p> <p>The new version 2, in its three variants - strong, weak and permissive, is the culmination of significant drafting effort with the input of a wide range of users and potential users of open hardware licensing.</p> <p>This talk introduces some of the key concepts in the CERN-OHLv2, explains its evolution from previous versions, and aims to explain how it can best be applied to a number of different types of hardware.</p> Andrew Katz Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:25 UA2.220 (Guillissen) community_guidelines Now what? Following through on your community guidelines Legal and Policy Issues devroom <p>Is there a single right way to enforce a code of conduct, community guidelines, or whatever you call the systems you have to help maintain a good community? This is a peek into how the Debian Anti-Harassment (AH) team functions, a few (anonymized) examples of issues handled, and the philosophy behind helping the Debian community to be a welcoming place for all contributors.</p> <p>The Debian code of conduct (<a href="https://www.debian.org/code_of_conduct">https://www.debian.org/code_of_conduct</a>), mailing list code of conduct, Debian Community Guidelines, DebConf code of conduct, and even the Diversity Statement are tools used for the goal of building a welcoming and inclusive community for Debian.</p> <p>As much of Debian's work is carried out in the open, so too are many of its problems, which can be visible on social media, in the blog aggregation site Planet Debian, and on public mailing lists. Inappropriate behaviors, harsh communications, and general poor decision making occur on a fairly regular basis. When problems arise within the project, they are typically escalated to either the Anti-harassment team or the Debian Project Leader (DPL). The Anti-harassment team (AH) tackles these problems on a fortnightly basis, making recommendations and directly contacting those involved in disputes or questionable practices.</p> Molly de Blanc Freedom embedded: Devices that respect users and their communities (DebConf 2017) A division of labor in free software (LCA 2018) That's a free software issue (DebConf 2018) Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:25 UA2.220 (Guillissen) open_source_gdpr Open source in the quest for GDPR compliance Legal and Policy Issues devroom <p>Uniformisation at the European level of data protection legislation brought on the table a lot of diversity in implementation from the private sector. Before the GDPR, member states had a specific national approach on how to interpret the previous Data protection directive 95/46/EC. Also, lots of actors came in the spotlight: the National Supervisory Authority, different public and private entities coming from all sectors of economy. The OSS community found itself driven in this ride and even with the best intentions nobody was able to find a complete, personalized guide to implement this new ruling that in theory is so welcomed. This talk is about pointing out how the Open source ecosystem is tangential with the GDPR data protection principles. Also, it will show how are the data protection rights and responsibilities shared between the community participants and the community's infrastructure providers.</p> <p>The OSS field has as core value the concept of community, which helps a project evolve and make a difference in the software world. Not surprisingly a lot of the OSS projects are around the notions of privacy, anonymity and data protection, as they reflect in general a need that the people forming OSS communities have: to keep their personal data protected and avoid monopoly of that by proprietary software. The GDPR came as an effective tool to raise awareness about the importance of personal data and brought on the table specific principles, rights, obligations, along with a lot of improvements to be made in the current status quo. This talk will analyse how the provisions of the GDPR are tangential with the OSS ecosystem. It will point out how the principles of the GDPR are connected to the OSS world, how we could analyse the model of data controller / data processor in the context of the OSS participants / infrastructure providers. Also, it will point out how the data protection rights are enforced by the OSS model, by analyzing some of the technologies that have risen from this ecosystem: wikis and zero-knowledge collaborative software.</p> Cristina DeLisle Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:25 UA2.220 (Guillissen) libreoffice_origins LibreOffice: the origins of a community fork Legal and Policy Issues devroom <p>LibreOffice was announced in September 2010 as a fork of OOo, by a group of active members of the OOo community who were worried by Oracle acquiring Sun. They decided to create an organization capable of growing the LibreOffice project based on five founding principles: copyleft license, no contributor agreement, meritocracy, independence from vendor(s), and community governance. The talk will cover the history and governance peculiarities of The Document Foundation.</p> <p>The Document Foundation (TDF), based in Germany, is the not for profit home of LibreOffice and the Document Liberation projects. Although is a German foundation, it has members who are at the same time the owners of the foundation and those who decide the governance, as they elect the Board of Directors and the Membership Committee from a list of candidates who have to be TDF members. TDF is based on five founding principles: copyleft license, no contributor agreement, meritocracy, independence from vendor(s), and community governance. Governance and statutes are hevily influenced by the previous experience at OOo, i.e. there isn't any community manager, there aren't any formal roles, and there isn't any formal mechanism for involving people (which makes people involvement a challenge). On the other hand, the community is growing nicely even without these people being appointed and a specific mechanism, but of course there are some issues like in any other community. The talk will briefly summarize the challenges we had to face in term of governance, and hopefully foster a discussion on the topic.</p> Italo Vignoli Interview Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:25 UA2.220 (Guillissen) tragedy_of_the_commons_clause Redis Labs & the tragedy of the Commons Clause Legal and Policy Issues devroom <p>In August 2018, Redis Labs relicensed a number of AGPL-licensed Redis modules with the "Commons Clause" amendment on the grounds that it prevents abuse and therefore ensures the sustainability of its development.</p> <p>As this renders the software no-longer free and open source, GNU/Linux distributions such as Debian and Fedora are unable to ship Redis Labs' versions of the affected modules to their users.</p> <p>This talk from a long-time (2009) Redis user &amp; developer will outline the history, background &amp; response to this flavour of license, as well explain how this it at odds with communities in which they participate in and are ultimately are a short-sighted &amp; retrograde step for the companies and individuals that are advocating for them.</p> <p>Furthermore, this talk will ask some thought-provoking questions about how the the conversation around "sustainability" in open source is being co-opted by foregrounding of financial elements to the detriment of the principles &amp; people that have so clearly and demonstratively served us so well in the past four decades.</p> Chris Lamb Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:50 UA2.220 (Guillissen) legal_ethics How should lawyers behave? Legal "Ethics" and Free Software Legal and Policy Issues devroom <p>Legal issues are at the heart of FOSS, and lawyers play an important role in the creation and adoption of free software. Around the world, legal practice is constrained and governed by different rules outlining who lawyers can represent, how they can interact with their clients, the nature of advice they can give, how they deal with conflicts of interest and what information they must keep confidential. This panel will talk about how legal ethics plays out specifically for free software.</p> Karen Sandler Pamela Chestek Miriam Ballhausen Amanda Brock Justin Colannino Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:25 UA2.220 (Guillissen) foss_governance FOSS Governance: The good, the bad and the ugly Legal and Policy Issues devroom <p>There are lots of ideas out there about how to run a free and open source software project... but not all strategies were created equal. Sometimes governance "just happens" but more often than not, projects end up with some things that work and some that don't. Transparency, clear expectations and compassion go a long way towards helping you find people who support your vision but can still bring new ideas to the table when it comes time to talk implementation. Your project's governance should reflect your values and empower individuals to succeed within its structure.</p> <p>Maintaining and scaling your project is easier when you've laid a good foundation. The community is mature enough that we can learn from what's already been done and set up new projects for success. This talk will cover some of the big red flags you'll want to avoid as well as some of the structural details that will help avoid issues later on.</p> <p>There are lots of ideas out there about how to run a free and open source software project... but not all strategies were created equal. Sometimes governance "just happens" but more often than not, projects end up with some things that work and some that (really) don't. Unfortunately, by the time they regret some of the bad ideas they're baked into the project and harder to change. This talk will cover some of the big red flags you'll want to avoid as well as some of the less obvious stuff that most people discover "the hard way."</p> <p>Figuring out when your idea is cohesive enough to bring people in but not so detailed that you're basically looking for clones of yourself, is a delicate dance. Transparency goes a long way towards helping you find people who support your vision but can still bring new ideas to the table when it comes time to talk implementation. Laying down a few rules or sharing some expectations early on can help you avoid a world of hurt and confusion later on. And of course, there are a few nitty gritty details (like licensing and naming) that are worth paying a little bit of special attention to in the beginning.</p> <p>Maintaining and scaling your project is easier when you've laid a good foundation. Join me for whirlwind tour of what not to do, what to do instead and <em>maybe</em> what you can do to fix what you've already done. The FOSS community has more than enough good, bad and ugly governance stories that you should at least make be able your own brand new mistakes.</p> Deb Nicholson Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:50 UA2.220 (Guillissen) license_tools_panel Making Sense of so many License Compliance Tools Legal and Policy Issues devroom <p>License Compliance has become big business. Many proprietary tools exist, but fortunately in recent years FLOSS tools to aid understanding the licenses of codebases have been created. This panel includes developers of many of these freely available tools. We'll discuss what these tools do, if they can actually address compliance problems in the wild yet, and the general challenges of developing freely available tools in a heavily proprietarized industry.</p> Bradley M. Kuhn Michael Jaeger Philippe Ombredanne Valerio Cosentino Max Sills Thomas Steenbergen ScanCode-Toolkit AboutCode-Toolkit ScanCode-Workbench Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:25 UA2.220 (Guillissen) nobody_uses_the_agpl Who wants you to think nobody uses the AGPL and why Legal and Policy Issues devroom <p>The GNU Affero General Public License (AGPL) is an important tool for protecting user freedom on the network. Detractors have criticized it for being both too weak and too strong/demanding. In 2018, it was in the news more than ever. Are the interests of corporations that are afraid of their free code being turned into network services run by competitors starting to align with users losing their freedom to such services?</p> <p>Historically, the AGPL has been the target of criticism from entities that want to extinguish it. Some companies have banned it from their premises, sowed fear about how it operates, and propagated a myth that nobody is using it.</p> <p>Others claim that the AGPL is being used primarily by companies seeking to strong-arm downstream users into purchasing a proprietary version of the covered software -- by catching those users being out of compliance with the AGPL, and telling them that they must buy the software under a proprietary license to avoid being taken to court for copyright infringement.</p> <p>A third group of companies is now claiming that the AGPL doesn't go far enough to protect their software against being turned into services that deny users freedom -- though freedom may not be their primary concern.</p> <p>In fact, the AGPL is being used today by a variety of interesting and important projects, including ones started by governments, nonprofits, and even businesses. I'll highlight some illustrative examples. I'll also do my best to separate understandable concerns that people have about using the AGPL from attacks on user freedom masquerading as concerns, and see if there is any synergy between the concerns of the third group above and those of individual users.</p> <p>While not a full solution to the problems raised when users replace software running on their own machines with software running on someone else's machine, the AGPL is a tool that is being embraced and should be embraced even more.</p> John Sullivan Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:50 UA2.220 (Guillissen) foss_inside_companies Advocating For FOSS Inside Companies Redux Legal and Policy Issues devroom <p>Companies regularly use and contribute to FOSS. Most larger companies now employee internal staff who make policy decisions, recommend Tools, oversee license compliance, teach others about FOSS, and interpret community politics for the company. Different offices and departments usually differ in their approaches to managing, using, contributing to, and releasing FOSS. This second annual Open Source Program Office (OSPO) panel explores the different approaches companies have to FOSS.</p> Tom Marble Charles Eckel Nithya Ruff Duane O'Brien Jeff McAffer Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:30 00:25 UA2.220 (Guillissen) patent_exhaustion The surprising interaction of open source and patent exhaustion Legal and Policy Issues devroom <p>When people think of the interaction between patents and open source, the most frequent questions have to do with the existence and scope of patent licenses, either express or implied. However, patent exhaustion may end up being far more impactful than licenses. This discussion will present the results of some recent analysis of the caselaw and discuss some of the unexpected implications of recent patent exhaustion cases.</p> <p>A patent gives its owner the right to exclude others from making, using, and selling the claimed invention. In contrast, FOSS licenses grant broad rights to modify, compile, distribute, and use software. Absent explicit treatment in the license, the patent-related right to exclude and the open-source-granted right to use are at least apparently in tension. One of the ways in which this tension is addressed is through the doctrine of patent exhaustion. An analog to copyright's "first sale" doctrine, any authorized sale of a patented object by a patent owner or a licensee exhausts all patent rights in the product sold, which prohibits a patent owner from enforcing post-sale restrictions through patent infringement suits.</p> <p>It is uncontroversial to say that patent exhaustion applies to FOSS. A patent holder that "sells" a software product, or sells a physical product with with FOSS software embedded, will clearly be subject to patent exhaustion as applied to any downstream customers of the patent holder. But that is not the end of the analysis. What does it mean to "sell" a "product" sufficiently to invoke patent exhaustion? How does that correspond to the normal ways in which organizations typically interact with FOSS?</p> <p>This presentation will quickly go through the essential holdings from five cases[1], and then present an argument regarding how the holdings of these cases interact with typical FOSS practices in a far more extensive fashion than people may have previously considered.</p> <p>[1] Cases: * Quanta Computer, Inc. v. LG Electronics, Inc. * Impression Products v. Lexmark International * Lifescan Scotland, Ltd. v. Shasta Technologies * Cascades Computer Innovation, LLC v. Samsung Electronics Co. * Intel Corp. v. ULSI System Technology, Inc.</p> Van Lindberg Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:00 00:50 UA2.220 (Guillissen) organizers_panel Organizer's Panel -- Now and Forever Legal and Policy Issues devroom <p>The organizers of the Legal &amp; Policy Issues DevRoom will reflect on recent developments in software freedom policy and law, and will discuss some of the topics and issues raised in this year's and past year's DevRooms.</p> Tom Marble Bradley M. Kuhn Karen Sandler Richard Fontana Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:25 UB2.252A (Lameere) ten_years_puppet Ten years of Puppet installations: what now? Lessons learned, sane suggestions, outlook for the future. Infra Management devroom <p>The presenter has more than 10 years of experience in installing, configuring, designing, migrating Puppet infrastructures of any size and kind. This presentation is all about sharing experiences and knowledge on what has worked and what hasn't, ways to introduce automation and approaches to [Puppet] migrations. The final part is about what comes next and the role of Puppet and classic configuration management tools in the containers universe.</p> <p>A presentation that outlines the kind of challenges that faces whoever has to automate the configuration and the management of an IT infrastructure. Understanding who has to implement and maintain the automation, what are the elements to cover, how their configurations change in the infrastructure, what are the priorities and the timings. Then deliver and implement an operative approach for the migration and maintenance. All this with a historical perspective which involves reasonings on the role of configuration management in current and future IT landscapes.<br/> Topics are based on the presenter Puppet experience but focus on principles valid to any automation challenge.</p> Alessandro Franceschi Presentation slides http:// Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:50 UB2.252A (Lameere) keeping_track_stateful_infrastructure Keeping Track of Stateful Infrastructure An overview over InnoGames infrastructure and the tools we build Infra Management devroom <p>At InnoGames we have to keep track of three collocations, ~30 racks with thousands of VMs to run games for over 200 million registered users. We have to manage our self hosted as well as various external services and preferably do so in a way that does not wake our oncall admin at 3am.</p> <p>All our infrastructure is configured via a central configuration management database. We use that database to keep track of physical and virtual machines, network equipment and configuration, monitoring and much more. We have open sourced our configuration management database [0], as well as our tooling for managing KVM VMs [1]. What makes serveradmin unique is how easy it is to modify the database schema as well as its very easy to use and fast API.</p> <p>This talk will - give you an overview over our infrastructure and custom tooling. - explain our approach to API driven infrastructure automation. - show you how to model your infrastructure in serveradmin. - demonstrate creation, deletion and live migration of KVM VMs.</p> <p>[0] https://github.com/innogames/serveradmin [1] https://github.com/innogames/igvm</p> Patrick Meyer Serveradmin on Github IGVM on Github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:50 UB2.252A (Lameere) multicloud_ci_cd_openstack_kubernetes Multicloud CI/CD with OpenStack and Kubernetes Infra Management devroom <p>With over 50 Public cloudbased on OpenStack, distributing workloads closer to customers is now a reality. Expect to learn how to leverage CI/CD to build multicloud Kubernetes clusters across several OpenStack Public Clouds.</p> <p>We’ll start by presenting the benefits of multicloud and how Kubernetes and OpenStack fit in that strategy.</p> <h1>Multicloud architecture</h1> <p>Then we’ll explain the setup of a geo-distributed Kubernetes environment and this translates in OpenStack terms.</p> <h1>Cloud agnostic tools</h1> <p>An important part of multicloud is to have adapted tooling, so we’ll compare several tools to manage OpenStack resources (heat, ansible, terraform, …) and to install Kubernetes (kops, kubespray, kubeadm, …) in a cloud agnostic way.</p> <h1>Demo</h1> <p>We’ll put it all to the test with a live demo with a CI/CD application deployment across the globe.</p> <h1>Wrap up</h1> <p>Finally we’ll wrap it up with lessons learned and challenges of multicloud.</p> Maxime Guyot slides code Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:25 UB2.252A (Lameere) use_configmanagement Use configmanagement for your ... configmanagement. Infra Management devroom <p>After discovering Foreman Ansible Modules I've set up an Ansible Playbook to set up and configure Foreman and Katello. Once its up and running, it allows you to boot PXE machines, or image based using Packer and Gitlab. The lab is deployed on my laptop and showcases the following technologies:</p> <ul> <li>lifecycle management (create/update/delete machines)</li> <li>content management (Environments/Packages/Subscriptions)</li> <li>scheduled image building and delivery with a pipeline</li> <li>cloud-init</li> <li>immutable infrastructure</li> </ul> <p>In other words, in this talk I will show how I manage foreman/katello/smartproxies with configuration management tools themselves.</p> Wim Bonthuis Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:25 UB2.252A (Lameere) mgmt Mgmt Config: The Road to 0.1 Real-time, autonomous, automation Infra Management devroom <p>Mgmt is a real-time automation tool that is fast and safe. As we get closer to a 0.1 release that we'll recommend as "production ready", we'll look at the last remaining features that we're aiming to land by then. We'll explain and demo the import and module system, classes, and native functions.</p> <p>We'll also show some exciting real-time demos that include scheduling, finite state machines, and remote execution.</p> <p>Mgmt is a real-time automation tool that is fast and safe. As we get closer to a 0.1 release that we'll recommend as "production ready", we'll look at the last remaining features that we're aiming to land by then. We'll explain and demo the import and module system, classes, and native functions.</p> <p>We'll also show some exciting real-time demos that include scheduling, finite state machines, and remote execution.</p> <p>A number of blog posts on the subject are available: https://purpleidea.com/tags/mgmtconfig/ Attendees are encouraged to read some before the talk if they want a preview!</p> James Shubin Project homepage Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:25 UB2.252A (Lameere) configurations_prove_yours Configurations: Do you prove yours ? Infra Management devroom <p>How can we be sure of the continuous configuration management proper operation? How to expose factual topic-related reports to dev, sec, managers, customers...?</p> <p>We believe that, in order to deliver the full business and collaboration value of continuous configuration management, the solution needs to go further than simply applying policies - it must ensure configuration reliability; prove historized application and status; share it to other teams; notify of any drift with a relevant context.</p> <p>This talk will present why and how we should be concerned about transmitting factual measures on infrastructure management to all parties involved. We will also guide you through the journey to include a full-fledged reporting feature in a configuration management solution.</p> Alexandre Brianceau Video recording (WebM/VP9) Video recording (mp4) RUDDER website Slides Submit feedback 14:30 00:25 UB2.252A (Lameere) uyuni_world_class_frontend Uyuni: A world-class open source frontend solution for managing your software-defined infrastructure with Salt https://www.uyuni-project.org/ Infra Management devroom <p>Uyuni (https://www.uyuni-project.org/), an opinionated fork of the Spacewalk project, provides open source lifecycle management for today's datacenter. With the help of Salt for configuration management it keeps your workloads up to date and secure.</p> <p>Uyuni manages all your Linux workloads. It bootstraps physical servers, creates VMs for virtualization and cloud, builds container images, and tracks what runs on your Kubernetes clusters. All using Salt under the hood!</p> <p>It provides you a high-class frontend solution to interact with Salt, manage your states, formulas with forms, and much more using a web UI.</p> <p>Uyuni is open source, backed by SUSE Linux, and actively developed.</p> <p>This presentation will give you an overview about Uyuni, its current possibilities for managing datacenters, and how it provides you a powerful frontend to interact with Salt.</p> Pablo Suárez Hernández Julio González Gil Uyuni homepage Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:25 UB2.252A (Lameere) declare_linux_network_state Declare your Linux Network state! Infra Management devroom <p>NMState is a new declarative API that simplifies Linux network management.</p> <p>Various services built on top of Linux need to manage the network configuration. Each service models network entities differently and uses various APIs to change the network state, multiplying the required work. NMState centralizes the challenges by providing a unified declarative representation of the Linux network state and allowing to modify it using the same schema. NMState also provides Ansible network modules to manage Linux systems, conforming to the same uniform schema used to control network appliances. The talk will introduce NMState, its core capabilities, current users and roadmap, including plans for Kubevirt, oVirt, Openshift and Openstack support. Afterwards, the audience will understand the benefits of using NMState to centralize collaboration on Linux network management.</p> Till Maas Edward Haas NMState homepage NMState GitHub Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:25 UB2.252A (Lameere) sysadmins_deserve_interface_stability Sysadmins, too, deserve interface stability Designing a stable interface to abstract OS configuration across multiple distribution versions - Linux System Roles for Ansible Infra Management devroom <p>APIs strive to make programmers’ jobs easier by staying stable. Less attention is paid to make the jobs of system administrators easier by providing stable configuration interfaces. These interfaces consist of configuration file formats and various utilities that often change with new major OS releases. Ansible is a great tool for system management, but keeping Ansible playbooks working across major distribution version upgrades can be challenging due to this interface instability. We present Linux System Roles (github.com/linux-system-roles) which allow to manage RHEL, CentOS and Fedora with sufficient abstraction to enable using the same playbooks for different releases and to avoid the need of changing playbooks due to implementation changes. The main difficulty of this approach is getting the interface right to avoid the need of incompatible changes in the future. We will show how to use Linux System Roles with Ansible to configure your Fedora, RHEL or CentOS systems and discuss the challenges that one may encounter when designing such a system or Ansible roles in general.</p> <p>APIs strive to make programmers’ jobs easier by staying stable. Less attention is paid to make the jobs of system administrators easier by providing stable configuration interfaces. These interfaces consist of configuration file formats and various utilities that often change with new major OS releases. Ansible is a great tool for system management, but keeping Ansible playbooks working across major distribution version upgrades can be challenging due to this interface instability. We present Linux System Roles (github.com/linux-system-roles) which allow to manage RHEL, CentOS and Fedora with sufficient abstraction to enable using the same playbooks for different releases and to avoid the need of changing playbooks due to implementation changes. The roles currently support configuring: - kdump - SELinux - networking - time synchronization - postfix - storage - logging</p> <p>The main difficulty of this approach is getting the interface right to avoid the need of incompatible changes in the future. We will explain and discuss the choices that we made in the design of the interfaces of our roles. We expect our experience to be generally useful for those who design Ansible roles.</p> <p>Attendees will gain a practical understanding of how to use Linux System Roles with Ansible to configure their Fedora, RHEL or CentOS systems consistently across multiple releases. The audience is assumed to have a basic understanding of Ansible and experience with Linux (preferably Fedora-derived) system administration.</p> Till Maas Pavel Cahyna Home page GitHub project Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:25 UB2.252A (Lameere) pulp_3 Pulp 3: Ready for a Test Drive Infra Management devroom <p>Pulp is a platform for managing repositories of software packages, and its plugin architecture allows management of any type of content. Pulp’s web API enables users to synchronize, upload, and publish versioned repositories with simple but flexible workflows. This presentation will build on last year’s talk by Dennis Kliban <a href="https://archive.fosdem.org/2018/schedule/event/pulp3/">0</a>, and will highlight simplified installation and deployment, better performance, new features, and a growing collection of plugins including rpm, python, docker, ansible, chef, ruby, file, and more in development. Pulp 3 is approaching maturity and is ready for you to test drive.</p> Austin Macdonald Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:50 UB2.252A (Lameere) terraform_best_practices Codifying infrastructure with Terraform for the future Infra Management devroom <p>Immutable infrastructure is a way to success, but what about the lifecycle of individual resources. This talk is about the evolution of resources, code structure, Terraform coding tricks, composition, and refactoring.</p> <p>Your infrastructure almost always starts simply: few resources + few developers. As time goes it grows in all possible directions. You found your ways around grouping resources into Terraform modules, so what can possibly go wrong? (famous last words)</p> <p>Over the time you feel that infrastructure is your new pet, but why? You are worried about the configuration drift, you are afraid of touching it, you are delaying things...</p> <p>By the end of my talk participants will become more aware of principles related to management of Terraform resources, Terraform modules best-practices and some CI/CD principles applicable to infrastructure management and deployments.</p> Anton Babenko Terraform Best Practices web-site Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:30 00:25 UB2.252A (Lameere) automate_kubernetes_ansible Automate Kubernetes Workloads with Ansible Easy deployment, self-service provisioning, and day-2 management! Infra Management devroom <p>Ansible, the familiar IT automation tool, makes it easier than ever to automate your Kubernetes cluster. This talk introduces two practical ways to define and provision complex applications using Ansible Automation with Kubernetes.</p> <p>Have you longed for a simple yet powerful way to automate workloads on Kubernetes? Ansible, the familiar IT automation tool, makes it easier than ever to automate your cluster. This talk introduces two practical ways to define and provision complex applications using Ansible Automation with Kubernetes.</p> <p>The Automation Broker allows users to leverage Ansible Automation to define and orchestrate applications, making them available for self-service provisioning in the Service Catalog.</p> <p>The Ansible Operator allows users to actively manage the full lifecycle of an application by defining management behaviors with Ansible; the Operator handles everything else.</p> <p>In this session you will learn: How to define and deploy your application on Kubernetes using Ansible. How to publish your own applications in the Kubernetes Service Catalog. How to create a Kubernetes Operator using Ansible.</p> Michael Hrivnak An introduction to Ansible Operators in Kubernetes Automated provisioning in Kubernetes Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:00 00:50 UB2.252A (Lameere) modified_agent_based_architecture How We Modified an Agent-based Automation System to Become an Agentless One Lessons and Architecture Infra Management devroom <p>Salt initially was designed to be an agent-base automation system. Salt SSH was added later on to allow an alternative that does not require installing a agent, and instead communicate over SSH. We will discuss how we modified the initial agent-based solution and the architectural decisions behind this work. We will talk through some of the challenges, lessons learned and what worked well for the project.</p> Megan Wilhite Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 02:00 UB4.132 cert_lpi_1 LPI Exam Session 1 Certification certification <h3>LPI offers discounted certification exams at FOSDEM</h3> <p>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 <strong>50% discount</strong>.</p> <p>For further information and instructions see <a href="https://fosdem.org/certification">https://fosdem.org/certification</a>.</p> Submit feedback 15:30 02:00 UB4.132 cert_lpi_2 LPI Exam Session 2 Certification certification <h3>LPI offers discounted certification exams at FOSDEM</h3> <p>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 <strong>50% discount</strong>.</p> <p>For further information and instructions see <a href="https://fosdem.org/certification">https://fosdem.org/certification</a>.</p> Submit feedback 10:30 00:25 UD2.119 openapispec Introduction to OpenAPI Specification Tool the Docs devroom <p>Describe your API with OpenAPI Spec (what Swagger grew up to be) and open the door to beautiful, adaptable documentation and a world of other possibilities.</p> <p>Open API Specification is a machine and human readable way to describe APIs. From these specs we can generate documentation, create libraries, and ensure that our users know exactly what to expect from our APIs. This talk shows you around OAS from the beginning, showing how to create the specs and recommending some tools to help the process. Once you have the spec, things get interesting and this talk will showcase some of the things that you can offer once your API is described in this way. This session is recommended for writers looking to become more API-savvy and API engineers wanting to make their APIs more useful to their users.</p> Lorna Mitchell Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:25 UD2.119 pantheondoc Building Pantheon documentation Feedback about on our documentation team experience Tool the Docs devroom <p>The story of building our enterprise Ethereum client documentation, successes and failures, things we tried, decisions we had to make...</p> Nicolas Massart Video recording (WebM/VP9) Video recording (mp4) Pantheon documentation Pegasys website Submit feedback 11:30 00:25 UD2.119 multikuber Multilingual Kubernetes The kubernetes.io stack, how we got there, and what it took to get there Tool the Docs devroom <p>How Kubernetes SIG Docs changed our stack, our git workflow, and the world.</p> <p>One year ago, the Kubernetes documentation group (SIG Docs) received a request: could we host a Chinese localization of the docs? One year later, the answer is yes--we host Chinese docs, as well as several other languages, with more localizations in the works. This talk is about what happened with Kubernetes SIG Docs in the course of one year: the easy part (changing our site stack from Jekyll to Hugo), the difficult part (changing our git workflow), and the most challenging part (opening ourselves to internationalization). I'll briefly discuss the technical hazards we encountered (swapping Markdown parsers, Black Friday bugs), what worked well versus what didn't, and what we recommend for others looking to internationalize midstream.</p> Zach Corleissen The Kubernetes website The Kubernetes docs and website repository Hugo static site generator Netlify build generator Prow, the Kubernetes CI Custom language labeler Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:25 UD2.119 testautomated Write Drunk - Test Automated Different aspects of Continuous Integration Testing for documentation testing Tool the Docs devroom <p>This talk covers topics such as:</p> <ul> <li>Theory of CI testing, where it can help and where not.</li> <li>Insights about your repository (Version Control Systems, VCS).</li> <li>Strategy (what to test, level of testing and when).</li> <li>Human/community aspects and challenges (Open Source Software, OSS).</li> <li>Workflows (Make your devs happy).</li> <li>Security.</li> <li>Examples of production setups.</li> </ul> <p>This talk is slightly opinionated and based on experience gathered through various open source communities and companies.</p> Sven Strack Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:25 UD2.119 toolthedocs Getting to Closer to a Software Help Language Untangling complexities of the LibreOffice Help Tool the Docs devroom <p>LibreOffice has currently an large set of help pages which are hard to maintain and to edit. On the other hand the XML language used was designed for a broader purpose and is not used in its full capacity. The lecture presents simplifications of the help XML and the design of specific XML objects to describe the user interface and to connect the help pages closer to the dialogs of the application.</p> <p>Software user interfaces has menus, toolbars, panes, dialogs, mouse clicks ad even voice to enable complex tasks for the user. Because of the cost of the screen real-estate, elements of interaction are concise either in textual form or in pictorial form (icons). The need of Help pages are necessary to give more details on the elements functionalities. But since the set of UI elements is limited in size, the elements of the Help pages should also be limited, and the corresponding help page element to UI element should be connected.</p> <p>The lecture presents simplifications of the help XML and the design of specific XML objects to describe the user interface, to connect the help pages closer to the dialogs of the application and produce Help contents in a faster way, making easier to upgrade and to address softwares translations processes.</p> Olivier Hallot Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:25 UD2.119 sphinx Who needs pandoc when you have Sphinx? An exploration of the parsers and builders of the Sphinx documentation tool Tool the Docs devroom <p>Using Sphinx doesn't necessarily mean using reStructuredText for input and HTML for output. We explore Sphinx's newfound support for Markdown as well as it's broad range output formats available, before moving onto an overview of how you can develop your parser and builder extensions.</p> <p>Sphinx is the documentation tool of choice for an increasing amount of projects, both inside and outside Python. Thanks to the success of platforms like Read the Docs, building documentation with this toolkit has never been easier. Most people associate Sphinx with the reStructuredText syntax provided by docutils, and typically output documents to HTML and, occasionally, PDF. However, Sphinx is capable of so much more. Since Sphinx 1.8, it is possible to use source documents written in the CommonMark syntax, while the amount of builders provided both in-tree and out-of-tree continue to grow.</p> <p>Through this talk, we explore how one can build their documentation using Sphinx and Markdown source documents. We detail the variety of builders available as part of the standard Sphinx installation and as third-party extensions, including some basic configuration tips for the more commonly useful ones like man pages and LaTeX/PDF. Finally, we provide a high-level overview on how you can go about writing your own extensions to parse other plain-text documentation formats and output in additional documentation format. The latter of these will touch on docutils, a foundational component of Sphinx, so one can understand the intermediate documentation model it provides.</p> Stephen Finucane Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:25 UD2.119 gravcms To the future with Grav CMS How we migrated from a Wiki to the open-source Grav CMS Tool the Docs devroom <p>We've recently migrated our developer portal from a wiki-based system to Grav CMS to support Docs-As-Code. In my talk I'll share our ups and downs in this long and exciting joruney.</p> Aleksei Akimov My profile Our developer portal Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:20 UD2.119 collab_pce A private cloud for everyone Why and how Nextcloud builds a private cloud software Collaborative Information and Content Management Applications devroom <p>Private clouds are all the rage!</p> <p>Ok, not really, but privacy violations certainly are. Facebook, Dropbox et all are not exactly providing a safe home for your family pictures and as such, alternatives are sought after. Nextcloud gives you a place where your data is stored, designed to protect rather than exploit it. Self-hosted or at a provider you trust, your Nextcloud lets you share, chat and edit documents with others or alone in the same way the big American players do. But you stay in control. Shouldn't that be all the rage?</p> <p>In this presentation I'll touch on the subject of privacy and why you should care about it, showing you what drives us to make Nextcloud. Next I will cover the results of our work: a real alternative build for real humans!</p> <p>Nextcloud is a private file sync and share solution that can take care of not only your files but also your calendars and contacts, your passwords and news feeds, notes, audio/video or text chats and so much more. Over 150 apps developed by the largest open source file sync &amp; share community give you everything you care about, and more.</p> <p>Nextcloud is 100%-no-shenanigans-open-source, because we think that that's best for everyone involved. And you can contribute, join our awesome community!</p> Jos Poortvliet nextcloud homepage Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:25 00:20 UD2.119 collab_wntk AMENDMENT Who needs to know? Private-by-design collaboration Collaborative Information and Content Management Applications devroom <p>It is often difficult to untangle technical choices made when designing systems from the values and implicit assumptions of its those systems' designers.</p> <p>For many developers of open-source software, radical openness and permissionless participation have become the de facto methodology to follow when designing collaboration systems. This ideology has driven the creation of a wealth of information systems and collaboratively curated data sets which could not have been created in a top-down fashion. Consequently, different values, and thus different architectures have remained largely unexplored.</p> <p>This lecture will present <a href="https://github.com/xwiki-labs/cryptpad">CryptPad</a>, a <a href="https://cryptpad.fr">web-based</a> suite of collaborative tools which employs client-side encryption to restrict access to those who possess the cryptographic keys which are unique to each document. I will include an overview of the underlying architecture, and provide insight into its design process and the values that it encodes.</p> <p>This talk was originally proposed by Aaron MacSween.</p> Ludovic Dubost CryptPad.fr, the flagship instance of the open-source project CryptPad's source code on GitHub Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:50 00:20 UD2.119 collab_tiki_wiki_knowledge_base Tiki: Easy setup of wiki-based knowledge management system This talk demonstrates how to build up a simple but powerful knowledge management system starting from a freshly installed Tiki Collaborative Information and Content Management Applications devroom <p>I will demonstrate an easy and fast way of configuring Tiki Wiki CMS Groupware for the purpose of having a central repository for a knowledge base. I will also explain how to manage permissions for various use cases, how to separate different topics, how to access stored knowledge.</p> <p>This presentation will start with a minimal Tiki site and show how to build structures of pages and file repositories with a knowledge base in mind. This will rely on a concrete real-life working example of a site for collaboration between a freelancer/company and their various separate customers with different projects.</p> <p>I will show how to configure permissions for: * a publicly visible and editable knowledge base; * separate knowledge bases which are restricted to groups of users and invisible to others; * intermediate scenarios with groups of editors and groups of read-only viewers.</p> <p>I will show the basics of how to make the knowledge accessible, searchable, navigable and allow comments from people who can only view it.</p> <p>I will provide hints about more powerful approaches using Tiki's inbuilt user-configurable database feature.</p> Jean-Marc Libs Tiki Wiki CMS Groupware Presentation making of. If you want to build yours leisurely. Video recording (WebM/VP9) Video recording (mp4) Vidéo redone later in longer format (not interrupted) Submit feedback 16:15 00:20 UD2.119 collab_doadiaw Displaying other Application data into a Wiki … and other integrations Collaborative Information and Content Management Applications devroom <p>A Wiki is a powerful tool to store and display information provided by users. In this presentation we will show how it can also show information from external applications and connect to external applications. Using macros and internal scripting language on top of the XWiki Open Source Wiki platform, we will show examples of data being displayed from external applications. Examples will include: Elastic Search, Matrix/RIOT, Nagios, Cacti, JIRA, Databases.</p> Ludovic Dubost Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:40 00:20 UD2.119 collab_loohyd LibreOffice Online - hosting your documents Keeping your documents close and yet collaborative Collaborative Information and Content Management Applications devroom <p>Come hear how you can avoid giving your documents to a large proprietary company - and yet enjoy powerful collaborative editing of text documents, spreadsheets and presentations.</p> <p>Come hear how you can avoid giving your documents to a large proprietary company - and yet enjoy powerful collaborative editing of text documents, spreadsheets and presentations.</p> <p>Hear how you can host that yourself, integrated into various other FLOSS projects. See how the code is structured - bringing the full power of LibreOffice's rendering and interoperability, along with an increasing amount of our feature surface to the browser.</p> <p>See some demos of it in action. Hear how you can get involved with development, build a rich integration via scripting and integrate this with your own online solution.</p> <p>Hear about our relatively simple collaboration protocol, the thinking behind it, and the great privacy, security, and even some performance benefits it brings vs. traditional multiple-model, streamed composable operation approaches.</p> Michael Meeks Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:05 00:35 UD2.119 collab_wdaw AMENDMENT XWiki: a collaborative apps development platform Build applications incrementally on top of XWiki rather than coding them from scratch Collaborative Information and Content Management Applications devroom <p>XWiki's advanced features for structuring data and scripting in wiki pages make it suitable for developing applications of various sizes, for various needs. The wiki principle make all these applications collaborative by default, while the multiple UI configuration options and permission system allow to show as much or as little of it as needed for the specific case . In this talk I will explain the usage of XWiki through the angle of comparing its usage with the development of applications from scratch. I will explain and demo the various features of the XWiki platform and how they can be assembled together to create applications and show some examples of such work that was done for professional accounts (e.g. https://nosdemarches.gouv.fr ).</p> Anca Luca XWiki website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:55 00:20 UD2.119 collab_mcwr Memex: Collaborative Web-Research & the next generation knowledge management tools. Collaborative Information and Content Management Applications devroom <p>Are you also annoyed that it is 2019 and you still have to bookmark stuff? Or that your notes about your web research are scattered everywhere? How come we cannot really collaborate and communicate in our web-research? In this talk we give a brief introduction into Memex. It's an open-source browser extension to organise your web-research. Full-text search everything you've seen on the web, archive and annotate websites and collaborate with your peers in your web-research. All data stored on your computer &amp; self-hostable. With a mix of open-source software, data interoperability and a non-speculative economic model we try to protect users data sovereignty, privacy and stimulate the democratisation of knowledge management software.</p> Oliver Sauter Memex 3 min Demo How we try to democratise Knowledge Management What's on the roadmap for the next 12 months, and beyond? Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:20 00:20 UD2.119 collab_cwldbe CubicWeb Linked Data Browser Extension Collaborative Information and Content Management Applications devroom <p>The Web of Data has become a reality over the past decade. But how do you browse all that data and how do you surf from one resource to the next by following the links in the datasets ? We will introduce the new CubicWeb, a Web Extension to make your favorite browser capable of handling RDF data so that you can surf the Semantic Web and chose how data is displayed and how you interact with it.</p> <p>The Web started as a set of linked documents written in HTML and displayed by hypertext browsers. With the dawn of the Web of data, the information exchanged between the server and the client can be encoded in a form that is directly machine processable instead of being embeded in text document for humans to interpret.</p> <p>We asked ourselves what would be a browser for the Web of data, that would not be limited to displaying documents and would allow its user to surf the gigantic graph of linked data by displaying each piece of data with the best visualization for the task at hand.</p> <p>With this goal in mind, we reinstanciated the ideas developed more than ten years ago for the user interface of the CubicWeb semantic web framework. The result is the <a href="https://www.cubicweb.org/project/cubicweb-linked-data-browser">CubicWeb Linked Data Browser</a>, a <a href="https://wiki.mozilla.org/WebExtensions">Web Extension</a> for the main browsers (Firefox et Chrome) that can turn into HTML the RDF data sent by servers, with the user choosing the best view among the ones she registered when configuring the extension.</p> <p>Nicolas Chauvat is the founder and CEO of Logilab, a company that has been since year 2000 at the forefront of the Semantic Web in France. Logilab created the CubicWeb framework and used it for many applications, including the high-profile <a href="http://data.bnf.fr">data.bnf.fr</a> and <a href="http://francearchives.fr">francearchives.fr</a>.</p> Nicolas Chauvat Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:45 00:15 UD2.119 collab_drwl Document Redaction with LibreOffice Preventing Leakage of Sensitive Information by Redaction in Collaborative Environments Collaborative Information and Content Management Applications devroom <p>Redaction in its sanitization sense (as distinguished from its other editing sense) is the blacking out or deletion of text in a document, or the result of such an effort. It is intended to allow the selective disclosure of information in a document while keeping other parts of the document secret. Typically the result is a document that is suitable for publication or for dissemination to others than the intended audience of the original document. For example, when a document is subpoenaed in a court case, information not specifically relevant to the case at hand is often redacted. Another example is patient information of hospitals, which is distributed to be used for research purposes.</p> <p>A new document redaction feature for Collabora Office is being developed, and it will also be available on the next major version of LibreOffice. This new feature will provide a much more efficient means than the traditional print-redact-scan process, and will try to prevent also the accidental leakage of redacted information by completely removing them in the resulting PDF document, rather than just hiding.</p> Muhammet Kara Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:30 UD2.120 (Chavanne) thestateofgo The State of Go What's new since Go 1.10 Go devroom <p>Go 1.12 is planned to be released in February 2019 and this talk covers what's coming up with it.</p> <p>We'll talk about Go Modules, the proposals for Go 2, and all of the new things you might have missed.</p> <p>This has been a staple talk of the Go devroom, opening the stage every year, and has always been a successful one.</p> Francesc Campoy Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:30 UD2.120 (Chavanne) godesktopapps Building modern desktop apps in Go Go devroom <p>I'll show how to quickly build a simple desktop app with Go+HTML5, that doesn't look like it's from the 90s, neither it feels bloated like Electron.</p> <p>User interfaces have come a long way from punch cards and command line to post-WIMP era with touch screens and voice input. Modern UI is expected to be fast, responsive and smooth, with high-quality typefaces, rich images, animations, accessibility. HTML5 handles it all very well, and with GPU acceleration it has decent visual performance. Go may have stated itself as a language for writing services, but with Redux architecture GUI apps are not much different from request/response model. Having excellent performance, Go is a perfect fit for writing core app logic. The only thing that's missing is a link between HTML5 and Go, so that Go code could be called from the UI, and UI could be manipulated from Go.</p> <p>HTML5 is often considered heavy because it requires a browser engine. We don't want to ship browser runtime with each and every app. One solution is to reuse the native OS runtime. Another is to use some pre-installed browser in the standalone app mode. Both end up with small, fast, self-contained binaries that are easy to build and to distribute.</p> <p>I would like to briefly explain how each approach works, and how to choose one that fits better for your needs.</p> <p>I'll introduce Webview<a href="https://github.com/zserge/webview">1</a> and Lorca<a href="https://github.com/zserge/lorca">2</a> libraries and show how to build a quick desktop app in Go with either of those. I'll cover bootstrapping the new app, communication between Go and UI layer, debugging UI, building and packaging the app. I'll do the demonstration on Linux, but will show how to prepare the same app for Windows/MacOS.</p> Serge Zaitsev Cross-platform webview library for C/C++/Go UI layer for Go based on Chromium/Chrome Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:30 UD2.120 (Chavanne) reverseproxy25mins How to write a reverse-proxy with Go in 25 minutes Go devroom <p>In a world littered with containers, microservices, and virtual networks, the need for a reverse-proxy increases. I'll introduce you to the world of reverse-proxies by writing one -- live, and from scratch. Step by step, we'll discover the responsibilities of a reverse-proxy and how to fulfill them.</p> Julien Salleyron Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:30 UD2.120 (Chavanne) gitdatabase Git database with bitmap index Go devroom <p>Data retrieval team at source{d} process lot of data from git repositories. Most of the key components in our workflow like engine, gitbase, mysql-server are implemented in Go. This talk will go through the story how we embedded "pilosa" (distributed bitmap index) in our SQL frontend for git repositories. - Why we decided to use bitmaps as indexes - How we got to the point where we are (we have embedded pilosa's server implementation inside mysql server implementation) - What problems we came across and how we solved them.</p> Kuba Podgórski distributed bitmap index An extensible MySQL server implementation in Go. Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:30 UD2.120 (Chavanne) delvehandson Hands on debugging with Delve Go devroom <p>Hands on Go debugging with Delve. Less slides, more substance: this talk will be focused on live demos that the audience is invited to participate in. Come learn advanced debugging techniques and the intricacies of the Delve debugger.</p> <p>In this talk I will present several demos, all of which will be available online. Each demo will target a specific use case of Delve. The goal is for audience members to walk away with an expert level understanding on the usage of the Delve debugger. During the course of this talk users will be guided through basic to very advanced usage of Delve, exploring features they may not have used, or known existed!</p> <p>Topics covered will include basic debugging, tracing, advanced Goroutine debugging, panic debugging, general advanced debugging and low-level debugging (exploring registers, disassembly, etc). Each demo will have an accompanying program that will be hosted online and available for everyone to download to enable everyone to follow along.</p> Derek Parker Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:30 UD2.120 (Chavanne) designingcli Designing Command-Line Tools People Love Go devroom <p>It is a joy to build command-line tools that are not only easy to learn, but that other developers are willing to maintain. Often a team's engineering efforts are spent on the backend, while the cli doesn't receive the same level of attention. This can result in hard-to-test tools, and dumping maintenance of them to whoever most recently joined the team.</p> <p>Learn how to take full advantage of popular Go libraries, structure your Go code to improve reuse and testability, publish binaries, and of course design your commands to be user friendly.</p> <p>Slides are available at https://carolynvs.com/cli</p> Carolyn Van Slyck Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:30 UD2.120 (Chavanne) gocontainersorserverless Go containers? Go serverless? A cloud native journey Go devroom <p>This talk compares the approaches using a simple Go app, once implemented as containerized microservices and once as a serverless app and discusses advantages and limitations of each approach.</p> <p>Increasingly, we find deployments of Go in either a containerized setup (read: Kubernetes) or serverless (think: AWS Lambda). This talk compares the approaches using a simple Go app, once implemented as containerized microservices and once as a serverless app and discusses advantages and limitations of each approach. We will review the workflow end-to-end, and touch on topics like defining domain boundaries, communication, sharing state, observability, and costs, both in terms of learning curve and actual money. Parts of the app will be demoed live.</p> Michael Hausenblas Git repo Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:30 UD2.120 (Chavanne) grpcohmy gRPC, Protobufs and Go... OH MY! An introduction to building client/server systems with gRPC Go devroom <p>gRPC is an open source remote procedure call framework built on HTTP/2 that provides an easy way to create high performance, scalable APIs in a multitude of programming languages.</p> <p>In this talk we’ll describe what grPC is, how we it came to be, and compare it to some other alternatives. We’ll talk about the pros and cons and hopefully convince you to take a closer look at it and add it to your toolbox.</p> <p>Best of all we’ll walk through an example of how to build a gRPC based application using gRPC, Protobufs and Go! We’ll even take a look at how easy it is to add a client using another programming language.</p> John Griffith Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:30 UD2.120 (Chavanne) gotensorflow AI image search with Go & Tensorflow Integrate the advances of AI in your Go apps Go devroom <p>The goal of this talk is to guide you through the integration of pre-trained models into a Go app. From A to Z, we will build an AI image search with Go and Tensorflow.</p> <p>AI is on everybody's lips nowadays. Every company wants to bring it to its customers. Google, Facebook, Microsoft and more are racing against each other with research papers and open-source frameworks. From a developer point-of-view, it has never been so easy to access so powerful AI engines. The goal of this talk is to guide you through the integration of pre-trained models into a Go app. From A to Z, we will build an AI image search with Go and Tensorflow.</p> Gildas Chabot Video recording (WebM/VP9) Video recording (mp4) Slides on Google doc Submit feedback 15:00 00:30 UD2.120 (Chavanne) gco When and How to use CGo Or, Foreign Functions for Fun and Profit Go devroom <p>Go is, for all its C-esque syntax, is a relatively high-level language. There’s garbage collection, a type hierarchy, and even advanced concurrency primitives. Sometimes, though, you need access to lower-level control. Whether for performance, interoperability, or just for fun, the Cgo API is here to help! I will explain what it is, how to use it, and perhaps most importantly, when to avoid it.</p> <p>A lot of Go programmers only experience with Cgo is when compilation fails with some obscure error. There’s a lot more to learn than that, and a lot of opportunities! I’ve personally used Cgo for writing Postgres foreign wrappers, and as a consumer when compiling Kubernetes.</p> <p>Using Cgo can be a fun, rewarding experience. There are a lot of existing projects and libraries written in C, and calling them means not needing to reinvent the wheel. On the same face, if you have an existing project with a C API, calling Go can get you some of the higher-level Go niceness on top of the jagged C edges.</p> <p>Some things I intend to touch on: * Calling Go from C * Calling C from Go * Memory management with Go objects in C * Using C libraries from Go * Real-world Cgo examples * The pitfalls Go and dynamic linking * Debugging failures</p> Liz Frost CGo demo code Video recording (WebM/VP9) Video recording (mp4) Slides (Slideshare) Submit feedback 15:30 00:30 UD2.120 (Chavanne) gomidi Building a Hardware MIDI Player Exploration of Linux's System Interfaces Go devroom <p>An exploration of using Go to build a hardware MIDI player, complete with floppy drive, on a minimal Linux distribution, gokrazy. Without our standard system utilities, in this talk we'll explore Go's syscall interface, as well as Linux's other interfaces, such as netlink and kobject. There will also be sweet, sweet chiptunes.</p> <p>In this talk, I'll be talking about the hardware MIDI project powered by Go I built in 2018, inspired by the mid-90s Roland MT-80S.</p> <p>This MIDI player was built on a Raspberry Pi using a USB floppy drive. It's using the minimalist and Go-focused Linux distribution gokrazy. As gokrazy doesn't provide the usual system utilities, your project is expected to handle everything, this is a good project to explore the system interfaces. The three main interfaces I'll be exploring are:</p> <ul> <li>syscall: The unix syscall interface, golang.org/x/sys/unix. These are calls into the kernel, and while large, the syscall interface is extremely powerful for low level system administrative tasks.</li> <li>netlink: A family of RPC interfaces with the Linux kernel. The kernel implements this interface where function calls and directly passing structures in memory would be more difficult.</li> <li>kobject: A stream interface, related to netlink, where the kernel can inform userspace (that is, us!) about objects changing in the kernel, such as hardware devices being added or removed.</li> </ul> <p>By pulling these interfaces together with Go, we can build a MIDI player that starts playing when a floppy disk is inserted. There will be chiptunes.</p> Terin Stock Source Code Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:30 UD2.120 (Chavanne) pargo Parallel programming in Go for performance with the Pargo library Go devroom <p>Go is an excellent tool for concurrent programming. Goroutines and channels make it easy to coordinate multiple interacting processes. With careful design, good concurrent Go programs run efficiently on multi-core CPUs because multiple goroutines can run in parallel on multiple CPUs.</p> <p>What is less known is that Go also works very well for expressing parallel algorithms that do not communicate via channels, but access shared memory directly. This goes against Go’s famous slogan: “Do not communicate by sharing memory; instead, share memory by communicating.” However, sometimes performance matters so much that you have to make an exception.</p> <p>Fortunately, Go is a very powerful language and makes it easy to make such exceptions. In this talk, I am going to walk you through Pargo, an open-source Go library explicitly designed for parallel programming rather than concurrent programming, which is available at https://github.com/exascience/pargo. This library is based on several years of experience with parallel programming at the ExaScience Lab at imec in Belgium, with many programming languages (C, C++, Java), many parallel programming libraries (Cilk, OpenMP, Intel Threading Building Blocks), and many applications (physics simulations, DNA sequencing, statistics).</p> <p>Go already provides primitives that help with parallel programming in the sync and sync/atomic packages of its standard library. Pargo builds on top of these primitives and offers high-level functions and data structures for expressing parallel algorithms. This covers simple convenience functions on top of goroutines, efficient parallel maps, parallel sort functions, and a very powerful pipeline concept for efficiently processing large data sets.</p> <p>This talk will cover the following topics:</p> <ul> <li>How Go schedules goroutines, and why they can therefore be used for task-based parallel programming.</li> <li>How Pargo provides a number of parallel programming primitives to make task-based parallel programming easier.</li> <li>How parallel Quicksort and Mergesort can be implemented with Pargo.</li> <li>How Pargo allows you to write parallel pipelines for efficiently streaming, filtering, and transforming large data sets in parallel.</li> </ul> <p>Pascal Costanza has a Ph.D. degree from the University of Bonn, Germany, and works as a senior researcher at imec, Leuven, Belgium. He was previously employed by Intel Corporation, and Vrije Universiteit Brussel, Belgium. He is an expert on high-performance and data-intensive computing with applications in bioinformatics, sequencing pipelines, and artificial intelligence.</p> Pascal Costanza Open-source repository for the pargo library Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 UD2.120 (Chavanne) kubernetesclusterfuck The clusterfuck hidden in the Kubernetes code base and the brilliant refactoring techniques developed to fix it Go devroom <p>In this talk we explore the devastating effects using object oriented antipatterns in go while building programs in a monorepo. We look at how we got here in Kubernetes, and how (several years later) we are still working on cleaning up the mess. We explore brilliant refactoring techniques developed because of the original mistakes in Kubernetes.</p> <p>Unknown to most, Kubernetes was originally written in Java. If you have ever looked at the source code, or vendored a library you probably have already noticed a fair amount of factory patterns and singletons littered throughout the code base. Furthermore Kubernetes is built around various primitives referred to in the code base as “Objects”. In the Go programming language we explicitly did not ever build in a concept of an “Object”. We look at examples of this code, and explore what the code is truly attempting to do. We then take it a step further by offering idiomatic Go examples that we could refactor the pseudo object oriented Go code to.</p> <p>If the anti patterns weren’t enough we also observe how Kubernetes has over 20 main() functions in a monolithic “build” directory. We learn how Kubernetes successfully made vendoring even more challenging than it already was, and discuss the pitfalls with this design. We look at what it would take to begin undoing the spaghetti code that is the various Kubernetes binaries built from github.com/kubernetes/kubernetes</p> <p>The audience walks away feeling empathetic that they aren’t alone in their journey to writing idiomatic Go and is now equipped with strong refactoring techniques developed by some of the world’s top engineers for the Kuberentes project.</p> Kris Nova Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:00 00:30 UD2.120 (Chavanne) embeddedwithgo Embedded with Go: from an AWK prototype to a gokrazy appliance How to build a self-contained toy for young children to give them control over their music and rhymes Go devroom <p>In this talk we'll see how to build a toy using off-the-shelf hardware (Raspberry PI and Mir:ror), the various explorations that led to this creation. How we moved from a shell and AWK prototype, to a Go program, removing many bugs and races in the process. Then, we'll see how we used gokrazy to remove most of the non-go userspace, and move from raspbian to a custom, pure-go distro.</p> <p>This talk is a continuation of <a href="https://anisse.astier.eu/awk-driven-iot.html">the awk driven IoT blog post</a>, in which I explained how I explored various toy concepts with awk and shell scripts. Once I found a working concept, I decided to rewrite it in Go to fix race conditions, and ease adding new features. I'll show the challenges of this first step: how to drive an external program (mp3 player) with context and goroutines, while simultaneously getting events from the hardware NFC reader.</p> <p>Then I'll show how to convert the raspbian image with a systemd service, shell, etc. to a <a href="https://github.com/gokrazy/gokrazy">gokrazy</a> image; first using the breakglass escape hatch to have a minimal working solution, then solving the various parts that can rely on external dependencies, in order to achieve a real pure-go userspace: using a custom mp3 decoder, handling the alsa audio output, using the proper HID device, etc.</p> <p>We'll finish with a demo of the working device, the lessons learned, and a small suprise at the end.</p> Anisse Astier gokrazy Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:30 00:30 UD2.120 (Chavanne) gogc Tuning Go GC Parameters Go devroom <p>The Go runtime has a garbage collector (GC) which is famously simple and lacking in tuning parameters compared to, say, a JVM.</p> <p>However there are controls, and in this talk we shall look at what they do and when you might use them. We will also look at how to understand what GC is doing and how much that work might be costing your program.</p> <p>Primarily we will look at the GOGC environment variable, and how it can be used to increase or decrease the rate of garbage collection, or turn it off completely.</p> <p>We will show how garbage-collection activity can be observed via metrics, e.g. using Prometheus, or in more low-level detail via the GODEBUG environment variable.</p> <p>We will also look at the evolution of GC performance in Go over the last five years, and new controls being added in the next version of Go.</p> Bryan Boreham Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:00 00:30 UD2.120 (Chavanne) encryptedgrpc How Kubernetes used gRPC to encrypt secrets with an external Key Management Service Go devroom <p>How Kubernetes used gRPC to encrypt secrets with an external Key Management Service</p> <p>In recent headlines, there are increasing news about cloud resources getting hacked caused by attacks on Kubernetes clusters. Failing to properly secure your Kubernetes data can result in cloud resources getting hacked and your application secrets getting stolen. The etcd database contains information that may grant an attacker significant visibility into the state of your cluster.</p> <p>This presentation focuses on how a gRPC-based implementation was added to Kubernetes to delegate encrypting secrets to an external Key Management Service and the benefits of using a gRPC-based design for this type of problem. Basic knowledge of Kubernetes and gRPC is a plus but not required.</p> Rita Zhang Video recording (WebM/VP9) Video recording (mp4) slides Submit feedback 18:30 00:30 UD2.120 (Chavanne) golightning Go Lightning Talks Come speak! Go devroom <p>The last pard of the day will be dedicated to lightning talks. Come watch great short talks, or come present yours!</p> <p>The last hour of the day will be dedicated to lightning talks. Come watch great short talks, or come present yours! We will be accepting lightning talk proposals till a few hours till the lightning talks start happening!</p> <p>CfP is open till Saturday 16:00 at http://bit.ly/golight2019</p> cfp Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:30 UD2.208 (Decroly) continuous_localization Continuous Localization How we ship localized versions of Firefox, on Laptops and Android Mozilla devroom <p>Localization at Mozilla happens in a tight loop between development and localizer involvement. We're going to show how this works on Firefox for Desktop, and how it works for our Android projects. We show how we get to multiple testable builds a day, and how we mitigate the bad parts.</p> Axel Hecht Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:30 UD2.208 (Decroly) firefox_is_your_marionette Firefox is your Marionette Get fun using the unit test system to control Firefox Mozilla devroom <p>Marionette is the library integrated in specific builds used for unit testing in Firefox. Using Python enables to automatize procedure or other stuff using the browser also in headless mode. Let's see how it is possible to simplify your daily job routine on internet like a pro.</p> <p>Often there are tasks that are easily to automatize with scripting but this portal/website doesn't offer API. Develop a browser extension only for an internal usage can be an over engineering step but there is another way. Python is a powerful language and we can use it also to integrate in other services or to help a community. There will 2 real cases: how to export WordPress posts without having advanced backend permissions to reimport it later and how to automatize the reject of bad translation in the WordPress community based on terms.</p> Daniele Scasciafratte WP-FF-Exp_imp BulkRejectGP Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 01:00 UD2.208 (Decroly) http3 HTTP/3 HTTP over QUIC is the next generation Mozilla devroom <p>HTTP/3 is the next coming HTTP version. This time TCP is replaced by the new transport protocol QUIC and things are different yet again!</p> <p>HTTP/3 is the next coming HTTP version.</p> <p>This time TCP is replaced by the new transport protocol QUIC and things are different yet again! This is a presentation about HTTP/3 and QUIC with a following Q&amp;A about everything HTTP. Join us at Goto 10.</p> <p>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.</p> <p>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. 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.</p> Daniel Stenberg HTTP/3 Explained Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:30 UD2.208 (Decroly) global_consent_manager Global Consent Manager Improving User Privacy and the Consent Experience for Trusted Websites Mozilla devroom <p>Global Consent Manager project is a collaboration between Mozilla, University of Missouri and University of Nebraska Omaha. The result is a browser extension prototype that helps with managing of GDPR cookies and consent dialogs across trusted websites.</p> <p>Description of how consent management on the web works today, and the relationship between user privacy and reputable content providers. Web users face a confusing array of data sharing choices, and click fatigue can lead to poor user experience and possible inadvertent selection of options that do not match the user’s privacy norms. Reputable content providers face revenue disruption arising from changing data privacy regulations.</p> <p>In this session, we will discuss how to improve the consent experience. New standards for user control of data sharing present an opportunity for sites trusted by users to work together with browsers to implement data sharing choices that provide a better experience and a more accurate reflection of the user's privacy preferences.</p> Tomislav Jovanovic Presentation slides Project homepage Firefox extension Github repo Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:40 UD2.208 (Decroly) project_things Project Things A secure gateway to connect your things to Internet Mozilla devroom <p>With the advent of the IoT, are we really making our lives simpler or diving ourselves in a vast ocean by uploading our lives to the internet? Project Things is an experimental framework of software and services from Mozilla for connecting "things" without any Middleman.</p> <p>Mozilla is working to create a Web of Things framework of software and services that can bridge the communication gap between connected devices. By providing these devices with web URLs and a standardized data model and API, we are moving toward a more decentralized Internet of Things that is safe, open and interoperable. Using the Internet of Things today is a lot like sharing information on the Internet before the World Wide Web existed. There were competing hypertext systems and proprietary GUIs, but the Internet lacked a unifying application layer protocol for sharing and linking information. The “Web of Things” (WoT) is an effort to take the lessons learned from the World Wide Web and apply them to IoT.</p> <p>From this talk audience will take away an understanding of the privacy concerns related to IoT, and how they may be putting their personal information at risk by connecting my physical entities to the internet and how project things come to the rescue. The goal is for visitors to leave with a better understanding of some of the issues surrounding the Internet of Things today, and how Mozilla is working to build a decentralised IoT with the Web of Things, to improve interoperability, privacy and security through standardization. Visitors</p> <p>Project Things initially focuses on developing three components:</p> <ol> <li>Things Gateway — An open source implementation of a Web of Things gateway which helps bridge existing IoT devices to the web</li> <li>Things Cloud — A collection of Mozilla-hosted cloud services to help manage a large number of IoT devices over a wide geographic area</li> <li>Things Framework — Reusable software components to help create IoT devices which directly connect to the Web of Things</li> </ol> <p>A) Without Demos</p> <p>Time Duration: 20-40 mins (flexible depending on the time allocation) Talk Structure: A.Without Live Demos:</p> <ul> <li>General Discussion on What Is IoT and its future.</li> <li>The pros and cons of connecting things to the internet.</li> <li>How exploiters can breach the security and know our lifestyles.</li> <li>Introduction to project things</li> <li>Details about the project things framework.</li> <li>How project things is secure and solve the problem of privacy and security</li> </ul> <p>B) With Demos (can be converted to a workshop if needed)</p> <ul> <li>Points included above (without demos).</li> <li>Demo of DIY web things that makers can build themselves using the Things Framework. Examples will be shown using several low-cost developer boards such as Arduino, Espressif, BBC micro: bit, Adafruit Circuit Playground, and Raspberry Pi.</li> <li>Demo and discussion of Implementing basic IoT attacks (education purposes) : accessing the devices using the physical, remote or local network.</li> <li>Live demo &amp; session on increasing security: Participants will learn how to increase the security and bypass few of these attacks.</li> </ul> Philippe Coval Dipesh Monga FOSDEM 2019 Demo (static backup video) Other FOSDEM talk about Things Slides with video demo Short video on Project Things Previous presentation WebThingIotJs Guide Video recording (WebM/VP9) Video recording (mp4) HTML slides Past talk videos somewhat related to Privacy and security Submit feedback 13:40 00:30 UD2.208 (Decroly) the_state_of_webassembly_in_2019 The State of Webassembly in 2019 DevTools, support and specifications ready and in progress in 2019 Mozilla devroom <p>Let's see the state of WebAssembly technology in 2019, their progress and browser support</p> <p>"WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications." - This is the description of Webassebly from official website. In this talk we'll see the progress of this technology during last year, starting from the state of the art in early 2018 until early 2019.</p> Gabriele Falasca WebAssembly website https://developer.mozilla.org/en-US/docs/WebAssembly Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:10 00:30 UD2.208 (Decroly) simple_geodata_visualization_with_a_frame VR Map: WebXR with Real-World OSM Data Simple GeoData Visualization with A-Frame Mozilla devroom <p>Mozilla's A-Frame library makes it really easy to create WebXR experiences (XR stands for Mixed Reality, i.e. Virtual and Augmented Reality) without requiring a lot of code knowledge. VR Map builds on that and the availability of real-world data from OpenStreetMap (OSM) to demonstrate how to build a model of the real world in an WebVR environment.</p> <p>The talk will describe what WebXR is, how building basic scenes with A-Frame works, and how those technologies were used together with live data from OpenStreetMap to create the "VR Map" demo that allows people to walk and "fly" through a model of the real world in a Virtual Reality scene rendered directly in a browser supporting the WebXR Device APIs, ideally Firefox, of course.</p> Robert Kaiser VR Map - live demo Source Code (GitHub) Video recording (WebM/VP9) Video recording (mp4) Slides Submit feedback 14:40 00:30 UD2.208 (Decroly) inclusion_includes_you Inclusion Includes You Let's talk about how inclusion benefits all of us Mozilla devroom <p>Even the kindest people with the best intentions have blind spots and implicit biases, and these ingrained biases affect the way we work and what we end up working on. Becoming more inclusive will benefit everyone, including you.</p> <p>It’s fairly easy to talk about the things we share - code, open source projects, development tools. It’s much harder to talk about, and overcome, our differences, especially when we’re talking about about our identities and how we relate to, work with, and build things for others. All societies and cultures have some ingrained biases related to age, gender, religion, orientation, ethnicity, and disability. These affect everyone, not just the non-dominant groups, and can negatively impact innovation, productivity, and the users of the things we create and build. In this talk, I’ll walk through some examples of how more inclusion benefits all of us, and give examples of inclusive practices everyone can use.</p> Ali Spivak Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:10 00:30 UD2.208 (Decroly) automated_analysis_of_tls_1_3 Automated Analysis of TLS 1.3 Mozilla devroom <p>The Transport Layer Security (TLS) protocol is the security backbone of the Web, and is used my millions, if not billions, of users of a daily basis. Weaknesses in TLS 1.2 and below, as well as pressure to improve the protocol's efficiency, lead the Internet Engineering Task Force (IEFT) to engage in development of a new version of the protocol, namely TLS 1.3. In the design of TLS 1.3, the IETF welcomed analyses of the protocol prior to its official release, with the intention of remedying flaws and weaknesses before users would be affected. This "analysis-prior-to-deployment" design process was in sharp contrast to previous versions of the protocol. In this talk I will present two analyses of TLS 1.3 using the Tamarin prover, a state-of-the-art formal methods tool designed specfically for cryptographic protocol analysis. The first analysis, of draft 10, found a serious attack against the protocol and informed the next draft of this critical protocol. The TLS 1.3 draft, however, was a rapidly moving target, and the second analysis effort, of draft 21, went on to confirm the stability of the protocol, showing that after four years of development, the logical core of the protocol was sound. This confirmation gave the IETF confidence to release the protocol, and it was officially approved in August of 2018.</p> Thyla van der Merwe Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:40 00:30 UD2.208 (Decroly) how_xr_goes_beyond_demos_and_games How XR goes beyond demos and games Is XR just a trend? Or is there more to it? Mozilla devroom <p>XR has been trending for many years, and so far we've all seen awesome demos, like being on the moon, on a roller coaster, playing horror games and watching 360 videos. But while we're busy creating standards, we're forgetting the most important part of XR. Our brain.</p> <p>Now, I'm not saying that we shouldn't develop what we've been already developing. But, XR is, in fact, a technology. That's more than a content medium. XR has recently used for treatment for PTSD, ADD &amp; ADHD, OCD, various phobias, and even for vaccinations. So, what else is XR being used for? And how do tools developed by Mozilla help? Let's find out!</p> Boris Budini Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:10 00:30 UD2.208 (Decroly) countless_beautiful_contributions Countless, Beautiful Contributions Mozilla devroom <p>If you're joining us in the Mozilla devroom, you're likely already passionate about some of the things Mozillans do to build a better internet, contribute to cutting edge technologies or to help teach and share knowledge. You may even have a favorite project in mind. In this talk we're going to look at a range of different volunteer and contribution opportunities across Mozilla projects that could use a little bit of TLC from you. We'll examine how volunteer efforts power these projects, what impact your contribution could make and talk about the impact volunteer efforts make across the web and the world.</p> Jessica Rose Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:40 00:45 UD2.208 (Decroly) speed_without_shenanigans Speed without Shenanigans How Rust and WebAssembly is changing the web as we know it Mozilla devroom <p>This talk is replacing Rabimba Karanjai talk that we have to cancel for unforeseen travel issues.</p> Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:25 00:35 UD2.208 (Decroly) yet_moar_css_features Yet Moar CSS Features Mozilla devroom <p>A quick review of new features of CSS that came widely available in 2018 or are about to come in 2019. Some of these features were already present but have matured enough to e used by Web Developer</p> Jean-Yves Perrier Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:00 00:30 UD2.208 (Decroly) decentralizing_the_web_despite_itself Decentralizing the Web Despite Itself Mozilla devroom <p>The web is unimaginably large. Despite all recent challengers, it is still the most successful digital platform in human history. However, the web's centralized nature works against true user agency... and its success is one of the biggest barriers to changing it. Come learn about these challenges and about efforts by Mozilla and other projects to enable decentralized and distributed applications on the web today.</p> Dietrich Ayala Video recording (WebM/VP9) Video recording (mp4) Submit feedback 18:30 00:30 UD2.208 (Decroly) when_perf_html_met_a11y When perf-html Met A11y Mozilla devroom <p>One in seven people is disabled.</p> <p>And accessible websites (and apps!) enable them to work on an even playing field, while also being more usable for everyone.</p> <p>For the past couple of months, I've been working on improving the accessibility of perf-html, Mozilla's virtuoso profiler.</p> <p>During this talk, I'll be sharing my journey into the world of accessibility and demonstrating how perf-html aims to make Mozilla not just more performant, but also more usable for everyone.</p> <p>Topics covered: Focus, keyboard navigation, semantic HTML, ARIA and Accessibility inspector &lt;3</p> Eva Dovc Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:30 UD2.218A cancelled_open_and_federated_identities_with_id4me CANCELLED Open and federated identities with ID4me An alternative to "sign in with Facebook" Decentralized Internet and Privacy devroom <p>PLEASE NOTE THAT THIS TALK HAS BEEN CANCELLED.</p> <p>Online identities are the cornerstone on which data-based capitalism is built - so, Google, Facebook and other OTTs are trying to dominate them and close them into silos. The ID4me platform extends OpenID Connect to create an open and federated architecture that allows any number of providers to interoperate, and gives back control to users, and a role to community service providers.</p> <p>In the last years, the Internet has been increasingly centralized into the hands of GAFAM and other over-the-top companies that built walled gardens in fields like messaging and social networks. More and more of these companies have user data monetization and targeted advertising as a core revenue stream; thus, tracking people across their Internet activities is necessary to their existence.</p> <p>This is why they have also built closed identity systems that supply single-sign-on and very easy sign up for new websites and services, at the expense of privacy and user control. As managing hundreds of separate accounts is inconvenient and insecure, and as alternatives such as password managers are not easy enough for the average Internet user, clicking on “sign in with Google” or “sign in with Facebook” has become a very common choice.</p> <p>We think that this is bad for the Internet in general, and thus we are creating a platform that allows anyone to provide identities, creating an open, public and federated single-sign-on and data management system. We are extending OpenID Connect just a bit, the bit that is necessary to break the silos and allow interoperability; and we are basing the system on the DNS, the widely available and already federated naming directory of the Internet.</p> <p>The talk will explain how the system works and encourage participation and contributions.</p> Vittorio Bertola ID4me website Internet draft describing the system Submit feedback 11:00 00:30 UD2.218A web_extensions_exposing_privacy_leaks Watching Them Watching Us WebExtensions Exposing Privacy Leaks Decentralized Internet and Privacy devroom <p>Internet has become an integral part of our lives and everything we do online leaves a trail of data. This data is being collected, analyzed, sold and aggregated to cast profiles about us by companies across the globe.</p> <p>In the physical world, if a stranger was to follow you everywhere you go, keep a log of who you talk to and meet with, read your mails and then share all this information with others, wouldn’t you be concerned? But somehow in the digital world we do not seem to worry too much about the same scenarios.</p> <p>One of the main reasons for this is lack of awareness about how most Internet companies are making money these days. In fact, as a consequence of the business model of brokering personal data, a surveillance capitalism emerges.</p> <p>With the advent of SaaS, website and app owners usually outsource functionality like analytics, recommendations, A/B tests to be managed by third parties, with legitimate business purposes.</p> <p>While these use-cases might seem legit, the way data is collected to solve the legit use-cases are bound to harm the user’s privacy. You end up sharing sensitive user data with the companies you may have never heard of. They can not only link the webpages you visit but also have the ability to de-anonymize you by knowing your name, email, address, passport number etc.</p> <p>Once this information leaves your machine, it is out of your control. From it, a detailed profile about you is created, which is then available to a whole bunch of parties, which may or may not live to any ethical standards. With accurate enough profiles, companies and data brokers can simulate the behaviors and decision making of the world's population. They don't even need everyone's interactions because they can infer the whole population behavior from just a few examples of each cluster.</p> <p>This is why privacy is everyone’s concern so we need to raise awareness: - The general public needs to know how every move that they make in the online world is being tracked, shared and used. - Developers need to consider how their users and customers' data deserves to be treated with respect and care, not sold unknowingly to faceless companies.</p> <p>But how do you transmit this complex reality to the broader audience outside our community? What data is being shared unconsciously? Who are these data collectors? What is the impact of our blocking mechanisms as users?</p> <p>This is precisely the problem both Local Sheriff and Trackula tackle.</p> <p>In this joint talk, we will showcase how two groups of people independently built Browser Extensions to answer these questions.</p> <ul> <li>Local Sheriff - informs the user about which PII is shared, and with which companies?</li> <li>Trackula  - from a less technical perspective and through a more visual UX focuses on raising awareness to non technical users.</li> </ul> <p>More details about the tools can be found:</p> <ol> <li> Local Sheriff - https://github.com/cliqz-oss/local-sheriff</li> <li> Trackula – https://trackula.org/</li> </ol> Santiago Saavedra Konark Modi Trackula website Trackula firefox plugin Local Sheriff Github Repository Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:30 UD2.218A analysis_of_the_behavior_of_mobile_applications_and_its_consequences_for_our_privacy Analysis of the behavior of mobile applications and its consequences for our privacy Presentation and analysis of the work of Exodus Privacy Decentralized Internet and Privacy devroom <p>Presentation of the organization Exodus Privacy and its study of the respect of privacy by Android applications, via a platform performing static analyses of APK files (in order to identify trackers embedded in Android applications)</p> <p>Exodus Privacy is a French non profit organization founded in 2017 and animated by hacktivists. We developed an open-source platform (called εxodus) in order to analyze Android applications from the Google Play Store and their respect of privacy, through the static analysis of APK files. This platform provides the public with reports presenting, among other things, trackers embedded in Android applications.</p> <p>During this talk, we will present in details how we are analyzing Android applications on the εxodus platform and its results, as well as the impact on our privacy that represent trackers which have invaded our smartphones.</p> pnu Guinness Project website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:30 UD2.218A librehosters LibreHosters A federation of networks for cooperation and solidarity through distributed platforms. Decentralized Internet and Privacy devroom <p>librehosters is a network of cooperation and solidarity that uses free software to encourage decentralisation through federation and distributed platforms. The values of the group connect transparency, fairness and privacy with a culture of data portability and public contributions to the commons.</p> <p>In this presentation we show how people with interest in self-hosting, system administrators from not-for-profit initiatives and members of hosting collectives are federating practices and infrastructure outside of the commercial market. Early members of the recently bootstrapped network will be present to counsel the conversation.</p> <p>A data-driven approach to reactive provisioning of immutable infrastructure will be outlined and put into context with the diverse needs of associated user communities in the network. This will allow to close with an outlook about how to preconceive a federated computational commons, in which user data is not tainted by hegemonic discourses.</p> <p>After a session about so-called <em>migration networks</em> (of user data) at <a href="http://labs.ouishare.net/">OuiShare Labs Camp #3</a> in 2015, the conversation continued between a flock of hosting providers independently. Over the years a list of <a href="https://github.com/libresh/awesome-librehosters/"><code>awesome-librehosters</code></a> quickly filled, which only underlined the need for a cooperative praxis around independently hosting user and community infrastructure.</p> <p>With the emergence of the federated messaging network Matrix, different hosting providers interested in supporting distributed computation environments got in touch directly on the channel <code>#librehosters:matrix.allmende.io</code> and prepared a physical meeting over the course of the year 2018. This ultimately gave birth to Librehosters as an independent, informal entity.</p> <p>In there, groups and individuals find a communication and exchange platform about practices of Self-Hosting in general, Docker Compose and systemd based hosting with libre.sh in particular, plus a prospect of a shared Kubernetes-based hosting environment. A data-driven approach to framing the conversation are the <a href="https://github.com/libresh/catalogue">application catalogue</a> and <a href="https://lab.libreho.st/librehosters/directory/">member directory</a>.</p> <p>The latter currently (26.11.2018) renders into</p> <p>``` { "weho.st" : "https://weho.st/librehost.json", "Petites Singularités" : "https://ps.lesoiseaux.io/librehost.json", "lain haus" : "https://lain.haus/librehost.json", "Indie.Host" : "https://indie.host/librehost.json", "aktivix.org" : "https://aktivix.org/librehost.json", "Webarchitects Cooperative" : "https://www.webarchitects.coop/librehost-api/librehost.json", "hackerspaces.be" : "https://hackerspaces.be/librehost.json", "snopyta.org" : "https://snopyta.org/librehost.json" }</p> <p>```</p> <p>and presents the beginning of a wider federation of computing resources. One can imagine a directory per offered service, where producers of FLOSS can find an easy to find, maybe even canonical place for hosting offers of their respective applications.</p> <p>The movement inbetween the Librehosters leads to a convergence of documentation and practice within the field of self-determined hosting, which eases the sharing of use cases and appropriate answers to reappearing needs. General acceptance receive federated platforms, such as file, calendar and contacts sharing with Nextcloud, microblogging with Mastodon, instant messaging with Matrix/Riot, but also the communication and collaboration environments Discourse for post-email, web-native discussion spaces and CodiMD Markdown pads alike.</p> <p>The convergence of hosting practices within a self-determined network of practitioners taking care of user data helps with achieving data portability between platforms and providers, provides a social network for security training &amp; mutual audit and enables a commoning of process and resources within the hosting communities to construct shared infrastructure.</p> <h2>How to join the network?</h2> <p>The librehosters network is work in progress at this point. The first gathering kicked of the creation of the network, inspired by the CHATONS network in the french speaking world. Libre Selfhosters are also welcome in the network.</p> <h2>How to participate in the project?</h2> <p>We currently have a discussion ongoing at talk.libreho.st and are developing tools at lab.libreho.st. A list of librehosters will soon be published at libreho.st/librehosters. If you would like to be included in this list please add a librehost.json file to your projects website and add the project itself to the librehosters directory repository.</p> Jon Richter libreho.st - the librehosters network Riot messaging in #librehosters:matrix.allmende.io Discourse discussion on talk.libreho.st GitLab group on lab.libreho.st Riot community at +librehosters:chat.weho.st Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:30 UD2.218A onion_adventures Onion adventures how to use onion services and the Tor network in your web endeavors Decentralized Internet and Privacy devroom <p>Tor is an important tool providing privacy and anonymity online. The Tor network itself is only a part of what Tor is. Tor also provides privacy at the application level through the Tor Browser. The Tor Browser was designed to provide privacy while surfing the web and defend users against both network and local forensic adversaries. The same properties can be adopted by applications and services wishing to integrate the tor network in their architecture. Furthermore, onion services provide better authentication and assurance of who you are talking to. With onion services Tor can provide bi-directional anonymity by making it possible for users to hide their locations while offering various kinds of services, such as web publishing or an instant messaging server. This talk is going to explain how it is possible to integrate tor and build onion applications.</p> <p>or is an important tool providing privacy and anonymity online. The property of anonymity itself is more than just providing an encrypted connection between the source and the destination of a given conversation. Encryption only prevents the content of the communication between Alice and Bob from becoming known. There is in fact a lot of information that can still be learned by just observing encrypted communications. For example, it is always possible to guess certain information by learning some properties of the conversation beyond just the content, such as the length of the conversation, or who was involved, or even guessing a group of people that communicate with a certain frequency. These properties are called metadata and can be used to describe information even when the full data is not available.</p> <p>Anonymity is a broad concept, and it can mean different things to different groups. The main advertised property of the Tor network is that it provides strong anonymity given a variety of people using the network. For the Tor network to function properly and to satisfy users' needs, we need a certain degree of diversity. We need diversity in the nodes relays comprising the network and in the user population sending traffic through it. Lately, we have been introducing new traffic scheduling features in the network in order to solve problems, reduce congestion, and improve overall performance. The Tor network itself is only a part of what Tor is. Tor also provides privacy at the application level through the Tor Browser.</p> <p>Other applications can also make use of the Tor network to be more secure. Onion services provide better authentication and assurance of who you are talking to. In this case, Tor can provide bi-directional anonymity by making it possible for users to hide their locations while offering various kinds of services, such as web publishing or an instant messaging server.</p> <p>This talk is going to introduce what it does mean to do web development with privacy in mind. We will start by presenting a few example of applications that use onion services and follow up with tips on how to integrate onion services in your architecture and how to provide a seamless frontend experience for privacy-concerned people that prefer to use the Tor Browser.</p> Silvia Puglisi Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:30 UD2.218A retroshare_json Retroshare JSON API Making libRetroshare a generic service for decentralized and private communication Decentralized Internet and Privacy devroom <p>RetroShare is a platform that allows users to create a fully decentralized network with a high level of security, privacy and confidentiality. It offers a unique combination of features (File transfer, publishing channels, forums, distributed chat, asynchronous email,...) that provide users lots of ways to interact. Its generic nature allows to create new services based on an existing cryptographic and networking backend.</p> <p>The presentation will start with a short overview of the RetroShare software and motivate the need for a JSON API to safely access the features offered by the core of the software. Our JSON API, to be released in December 2018, uses clever techniques to automatically generate handles from existing code based on Doxygen capabilities as well as a very compact serialization technique. We will explore the potential of the JSON API with concrete examples including the --preliminary-- web interface and Android RetroShare clients. Finally, a call to developers will be made, based on generic examples, while proposing multiple ideas of distributed services to be developed on top of it.</p> <p>The detailed plan for the presentation will be the following. Each line indicates the approximate time duration and number of slides. The presentation is tuned to approximately 20 mins.</p> <p>Overview of the Retroshare platform</p> <ul> <li>Services offered by the application (FT, channels, forums, identities, etc)</li> <li>Architecture (libretroshare + Qt UI, main components)</li> <li>Motivation for a JSON API (use of RetroShare as a background library for decentralized communication, Android client, web interface, getting rid of old UI...)</li> </ul> <p>The JSON API</p> <ul> <li>Automated serialization</li> <li>Automated JSON API code stub generation</li> <li>Interaction, syntax</li> <li>Authentication</li> </ul> <p>Concrete examples</p> <ul> <li>RetroShare's new web interface</li> <li>Experimental mobile chat app based on RetroShare JSON API</li> <li>ElRepo.io App based on RetroShare JSON API</li> </ul> <p>Call for contributions</p> <ul> <li>ideas of applications</li> <li>conclusion and contacts</li> </ul> Gioacchino Mazzurco RetroShare web site Slides showed at the talk Retroshare development blog Technical description of the backend data distribution system Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:30 UD2.218A the_new_internet The New Internet let's talk about IPFS Decentralized Internet and Privacy devroom <p>Step by step, internet as we know it is currently being limited, censored and monitored. To prevent and fight against this, there are associations, activists and such... and one of the proposals is... IPFS protocol. IPFS is, as the official website describes "peer-to-peer hypermedia protocol to make the web faster, safer, and more open". It wants to offer a distributed alternative protocol, making it more resilient which is handy in case of developing countries, for example.</p> <p>In this speech I'd love to introduce the reasons that brought internet community to care about distributed internet, what is IPFS and how to easily setup and start using it on linux terminal and web interface.</p> <p>We are in the late 80's, internet is very exciting, everyone want to have a webpage... Communication has changed, and we are going into a new lifestyle, in which we can be anonymous, there are no walls between users and knowledge is open. But... uh-oh, some countries are not very happy with this statements... Internet begins to have such importance, it shapes society. If you where an ambitious company or country, wouldn't you think... Who has internet control has society influence, right?</p> <p>This was actually predicted by some computer scientist and technology related persons back then, and that's why associations such as the Electronic Frontier Foundation were created. As internet has evolved since then, it has been limited and censored, as I already describe above. Tim Berners Lee (world wide web) already expressed the need of a new way of understanding the internet, more specifically, a distributed way of doing it. One of the most ambitious projects for decentralize the internet is IPFS, a distributed protocol that can be used from the terminal and has a web interface, very user-friendly.</p> <p>I aim to show the basic commands, explaining the close-future options that this protocol give us, and explain why is this important.</p> Paula de la Hoz an article about to introduce the topic Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:30 UD2.218A challenges_with_building_end_to_end_encrypted_applications_learnings_from_etesync Challenges With Building End-to-End Encrypted Applications - Learnings From EteSync Decentralized Internet and Privacy devroom <p>Building end-to-end applications is not easy, or at the very least, it comes with its own unique set of challenges.</p> <p>There are the often talked about challenges, like making sure you use battle tested encryption primitives and use them correctly, and striking the balance between security and usability. Unfortunately, there are many more challenges that are not often talked about, like the significantly decreased development speed due to all the code being implemented on the client side, the increased difficulty and complexity in upgrading the protocol and many others.</p> <p>In this talk Tom will use EteSync as an example for a secure application to show some of the more interesting challenges he faced while creating it, and new challenges that he encountered as the user-base grew and the protocol evolved. Tom will also cover some of the issues that affect EteSync today, how they will be addressed in the future, where EteSync is going, and what's currently holding it back. By the end of this talk, attendees will be made familiar with some of the unique challenges that come with building end-to-end encrypted applications and some alternatives for solving them.</p> <p>Audience:</p> <ul> <li>People interested in the inner workings of EteSync</li> <li>Developers interested in, or actively designing secure applications and protocols</li> <li>People interested in the future of the EteSync</li> </ul> Tom Hacohen EteSync Tom's Website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:30 UD2.218A gdpr_and_dtp_vs_data_portability_and_freedom The right to data portability (and why it's a very bad idea) How the RGPD leads to the DTP and why DTP is a dead-end Decentralized Internet and Privacy devroom <p>The GDPR (and some local regulations) have created a right to data portability. It looks like a <em>good thing</em> but it probably isn't, as it seems to lead to the future DTP (https://datatransferproject.dev/) from our beloved GAFAM. What is DTP goal, which usecase does it handle IRL and why we should, from now on, fight for a right to real time data <em>accessibility</em> instead of portability, those are the questions we'll try to answer.</p> <p>The right to data portability was intented as a way to enforce competition (and, somehow, to help create european counterparts to GAFAM) and to give back to the public some control over their personal data, but it fails in both situations. The best proof is that GAFAMs themselves are promoting a new common API called DTP (Data Transfer Project) that will never disrupt their market influence. We will analyze in detail how DTP works and why it can't help with decentralization and personal data protection.</p> <p>What we really need is a right to data /accessibility/, through a common API that will give users the right to access at any time their own data, from whatever service they are using, wherever it is stored.</p> <p>This is the only way to create some real competition, as one could then chose to move on from a "must have" service without leaving his friends and contacts behind, consequently adopting services that will protect his privacy without making him change his known addresses.</p> <p>It's a realistic goal: such a right would not be economically unacceptable to GAFAM. The current DTP would be a basic starting point for the development of the new API, that would be a real decentralization opportunity and a real chance for new business models, based on federation of privacy respectful services, to take off.</p> Laurent Chemla Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:30 UD2.218A enough_how_journalism_can_benefit_from_free_software Enough: How journalism can benefit from free software Decentralized Internet and Privacy devroom <p>Enough is a set of tools, online and self-hosted, as well as a community composed of technical people and journalists. The tools were designed to empower journalists and Human Rights Defenders when protecting their privacy, and their sources in the digital era. We will run you through the approach with examples of practical application. We hope to inspire developers and sysadmins to help journalists and provide them with the tools they need when the freedom of the press is challenged.</p> <p>It‘s not news that journalism has undergone significant changes since the beginning of digitalization: from methods and tools applied in news rooms to the pace at which information is received, processed and outdated, today‘s news are as heavily influenced by modern technology as every other aspect of our lives. While many of these changes contribute to the empowerment of citizens, some of them pose challenges and threats to the traditional role of journalism as safeguard of informed public debates which our societies depend on.</p> <p>One of them is the growing number of intermediaries involved in communication: Journalists rely on Google, Facebook and other private companies to communicate with sources or store documents online. At the same time, a lack of regulation facilitates the access of governments to data collected by said intermediaries, and legislation introduced all across the globe in the name of terror prevention and protecting national security contributes to curtailing civil liberties. All of these taken together significantly increase the risk of abuse through regulators to inhibit journalists from doing their job – which, in turn, becomes all the more important in that very same context to protect the public interest in a fair and free society.</p> <p>An answer to this would be to empower journalists to maintain control over their data. But because only few of them have the technological know-how to make use of tools that would allow them to do so, they require support. Establishing closer cooperation between journalists and technological experts is one effective way to close this gap.</p> <p>This is why we promote the use of the communication platform Enough: based on Free Software exclusively, it offers journalists and Human Rights Defenders a way of communicating and exchanging documents with their sources through an interface that seems familiar to them. At the same time, Enough is embedded and maintained by a decentralized community composed of technological experts, who can support users in technical questions.</p> Veronika Nad Enough Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:30 UD2.218A nextcloud Nextcloud decentralize the way we sync, share and collaborate Decentralized Internet and Privacy devroom <p>Nextcloud enables you to regain control over your data and freely share and sync them. That's probably the part of Nextcloud most people are already familiar with. But Nextcloud takes huge efforts to go beyond handling your data and provides strong collaboration and communication tools. In 2019 most people not only want to store their data, they are looking for a integrated platform which allows them to do actual work with their data. In this context collaborative editing but also video, audio and text chat, integration with your contacts and calendars and many more play an important role. If you want to do this without losing the connection to your friends, family and co-workers strong federation capabilities are needed. Federation is at the heart of Nextcloud and was completely re-written last year based on the vendor neutral Open Cloud Mesh (OCM) specification.</p> <p>Additionally to the OCM implementation which allows you to share data across Nextcloud instances, we are excited to announce that with Nextcloud 15 we joined the Fediverse with our own ActivityPub implementation. This turns every Nextcloud user into a participant of the free, open and federated social network and allow them to communicate with people on Mastodon, Friendica, Pleroma and many more. Join the talk and learn what you can do with Nextcloud and how to join the cloud federation.</p> Björn Schießle Nextcloud Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:30 UD2.218A dark_peak_data_co_op Dark Peak Data Co-op Sheffield Geeks Freeing Their Data Decentralized Internet and Privacy devroom <p>Dark Peak is a user-run co-operative providing hosted open-source software for the benefit of our members.</p> <p>This is the story of how some geeks from Sheffield are working together to free their data from the tyranny of global corporations!</p> <p>We each want better control over what we share online and how our data is used, so we founded an organisation democratically run and owned by its users. By sharing resources and expertise, our volunteers aim to provide convenient alternatives that put you back in control, according to our four main principles:</p> <ol> <li>Data with representation</li> <li>Promote the dignity of data ownership</li> <li>Provide the freedom to host some or all services yourself</li> <li>Federate and interoperate where possible</li> </ol> <p>This talk aims to give an overview of our organisation and how we came to be, what choices we made and why we made them and the mistakes we made along the way -- we want to share what we've learned from both organisational and technical points of view.</p> <p>We hope the audience will be enthusiastic about self-hosting, and are interested in seeing the power of running or joining a self-hosting co-op.</p> Mat Booth Dark Peak Data Co-op Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 UD2.218A yunohost YunoHost An essential building block for the decentralized Internet Decentralized Internet and Privacy devroom <p>The YunoHost and Internet Cube projects are driven by the existing complexity in deploying and maintaining a server providing basic services, such as mail and web applications. How realistic is it to fight for a free and decentralized internet if only an elite of technicians have the skill, knowledge and time to administrate and maintain servers ?</p> <p>Since a few years, the intention of those projects is to solve this key issue by lowering the technical barrier of self-hosting and making it a common practice. YunoHost is a Debian-based distribution that provides a clean and simple web interface through which the administrator can deploy services and apps quickly and with limited technical knowledge. The Internet Cube is a low-cost ARM board, preinstalled with YunoHost and preconfigured with a VPN to bypass ISP's restrictions, making it a plug-and-play solution for people willing to start self-hosting.</p> <p>In this talk, I want to emphasize the necessity to democratize self-hosting against the GAFAM hegemony. Then, I shall recap how YunoHost and the Internet Cube currently works and present the evolution of the projects over the last two years. I will conclude by making a call for feedback and contributors from the FOSS community.</p> Aleks Video recording (WebM/VP9) Video recording (mp4) Video with slide view in addition to speaker view Submit feedback 17:00 00:30 UD2.218A organisational_processes_in_decentralized_software Organisational Processes in Decentralized Software roundtable open to decentralized software developers Decentralized Internet and Privacy devroom <p>We would like to invite developers for a round table to discuss the specificity of the organization of decentralized software, and to address organizational issues that are crucial for the survival of the projects we love.</p> <p>F/LOSS development is often mostly organized along a the sequence of its commits, while the idea that a great software starts with one person,is a quite common narrative in F/LOSS (think about linux or git). Even community-led projects often tell their history centering it on one hero (see for example the history of open street map: https://wiki.openstreetmap.org/wiki/History<em>of</em>OpenStreetMap). So what about decentralized software? From a feminist standpoint we are not satisfied with the "hero narrative", as we feel it doesn't fully represent the complexity and the values of decentralized software projects. Furthermore, this narrative can be detrimental for the long term sustainability of decentralized projects because it can overshadow the importance of thinking about organizational problems and community health. Instead, we would like to invite developers for a round table to discuss the specificity of the organization of decentralized software, and to address organizational issues that are crucial for the survival of the projects we love. How to build and sustain projects which are not only decentralized from a technical perspective, but also from an organizational one? How to share responsibilities so that code and infrastructure work but people do not burn out -making entire projects at risk to disappear? And how to tell if a project is anyway destined to disappear or if there is an organizational bug which can be fixed? During this roundtable we wish to invite developers from Fosdem's decentralized room to discuss those issues but we are still in the phase of contacting them.</p> Natacha Roussel zeyev Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:30 01:00 UD2.218A activitypub_panel ActivityPub panel Decentralized Internet and Privacy devroom <p>This panel gathers standard authors and implementors of ActivityPub to discuss the role of ActivityPub in the present in connecting together the fediverse and what the future might hold.</p> Christopher Webber Cory Slep Eliot Berriot Matt Baer Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 01:00 J.1.106 bof_apache_camel Apache Camel Meetup Meeting of the Apache Camel community BOFs (Track A - in J.1.106) bof <p>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.</p> <p><a href="https://camel.apache.org">Apache Camel website</a></p> <p>Apache Camel has been around and its used quite widely for in all sorts of software integration projects. We recently kicked of a number of initiatives in the Camel community around the next version - Camel 3, cloud native Camel - Camel-K and building the new website. Let's meet and discuss this initiatives or just talk and exchange ideas around Camel. Anyone wishing to share can present on any topic relating to Apache Camel, 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.</p> Zoran Regvart Apache Camel website Camel-K on GitHub Submit feedback 13:00 01:00 J.1.106 bof_musescore MuseScore User and developer Meetup Free and open-source music notation software BOFs (Track A - in J.1.106) bof <p>This meetup is to connect MuseScore users and developers, and have a hands-on session on all things MuseScore.</p> <p>MuseScore is music notation software used by millions of musicians worldwide to create, play and print beautiful sheet music. MuseScore is easy to use, yet powerful, and creates professional-looking sheet music. MuseScore is licensed under GNU GPLv2.</p> <p>MuseScore is available for Linux, Windows and Mac OS X, and is available in 50+ languages. It features an easy to use WYSIWYG editor with audio score playback for results that look and sound beautiful. It supports unlimited staves with up to four voices each, dynamics, articulations, lyrics, chords, lead sheet notation, import/export of MIDI and MusicXML, export to PDF and WAV, plus online score sharing.</p> <p>https://musescore.org</p> Thomas Bonte Submit feedback 14:00 01:00 J.1.106 bof_gnuradio GNURadio BoF Hack the #cyberspectrum BOFs (Track A - in J.1.106) bof <p>No description provided yet.</p> Philip Balister Submit feedback 15:00 01:00 J.1.106 bof_zonephone ZeroPhone meetup Hardware demo, Q&A BOFs (Track A - in J.1.106) bof <p>ZeroPhone is an (almost) open-source, Linux-powered smartphone that you can source parts for and build independently. During this meetup, you can check out the hardware and software (both the phone itself and the addons), discuss any aspects of the project with the main developer, take a look at the ZeroPhone kits (and, possibly, some yet-not-mentioned hardware), meet some contributors, as well as get some ZeroPhone stickers!</p> Arsenijs Picugins Submit feedback 16:00 01:00 J.1.106 bof_kodi Kodi Meetup Meeting for the Kodi media center community BOFs (Track A - in J.1.106) bof <p>Kodi (formerly XBMC) is a free and open source media player application developed by the XBMC/Kodi Foundation, a non-profit technology consortium. Kodi is available for multiple operating-systems and hardware platforms, featuring a 10-foot user interface for use with televisions and remote controls. It allows users to play and view most videos, music, podcasts, and other digital media files from local and network storage media and the internet.</p> <p>This meeting is for everyone interested in our project and community - as user, developer, or just to get an idea of what Kodi is all about. Several Team Kodi members will be present to chat with at your leisure.</p> Philipp Kerling Project website GitHub Subreddit Submit feedback 17:00 01:00 J.1.106 bof_free_software_mobile_devices Free Software on Mobile Devices Community Q/A BOFs (Track A - in J.1.106) bof <p>This is a BoF on the status of Free Software on a mobile device using the Purism L5 phone. Members of the development team and community members who have dev kits will gather today to talk about we will develop software for the Librem 5, Q/A from the audience, and a small part of time flashing some dev kits for dev kit owners.</p> sramkrishna Submit feedback 09:00 00:50 Janson stopping_community_licenses SSPL, Confluent License, CockroachDB License and the Commons Clause Is it freedom to choose to be less free? Online Privacy maintrack <p>The emergence of the SSPL, CockroachDB, Commons Clause and Confluent licenses are putting the definition of "Open Source" to the test. The companies that are behind these licenses argue that cloud providers aren't playing fair and these licenses are required to protect their investment. But is software freedom situation dependent? Can we make exceptions to software freedom to allow for practical commercial considerations? This is a critical debate that strikes at the very heart of what is free software, open source and software freedom. This talk will examine the rationale behind these licenses, whether they are "open source" and explore how we as a community can respond in a effective and responsible manner.</p> Michael Cheng Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:00 00:50 Janson solid_web_decentralization Solid: taking back the Web through decentralization App development as we know it will radically change Online Privacy maintrack <p>Solid is a new ecosystem for the Web, in which people store their own data instead of having to upload it to applications. This changes how we will build apps: we no longer have to harvest people's data, but ask permission to access people's data space.</p> <p>Solid was created by the inventor of the World Wide Web, Sir Tim Berners-Lee. Its mission is to reshape the web as we know it. Solid will foster a new breed of applications with capabilities above and beyond anything that exists today.</p> <p>Within the Solid ecosystem, people decide where they store their data. Photos they take, comments they write, contacts in their address book, calendar events, how many miles they run each day from their fitness tracker… these are all stored in their Solid pod. This Solid pod can be in their house or workplace, or with an online provider of their choice. Since they own their data, they are free to move it at any time, without interruption of service. People can give apps permission to read or write to parts of their Solid pod. So whenever they’re opening up a new app, they don’t have to fill out their details ever again. Things saved through one app are available in another: syncing is never needed, because data stays with people.</p> <p>This approach protects people's privacy and is also great for developers: we can build apps without harvesting massive amounts of data first.</p> Ruben Verborgh Blog post on Solid The official Solid webpage Re-decentralizing the Web, for good this time Slides of the FOSDEM talk Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:50 Janson tor_project The Current and Future Tor Project Updates from the Tor Project Online Privacy maintrack <p>In this talk I'll take you on a tour of the Tor landscape, starting with a crash course on Tor, how it works, and what security it provides. I'll explain why Tor's open design and radical approach to transparency are critical to its success, and then compare the censorship circumvention arms race to the nation-state surveillance arms race. We'll end with a discussion of onion services, which are essentially an even stronger version of https, but which you might instead know from confusing phrases like "the dark web".</p> <p>Tor is a free-software anonymizing network that helps people around the world use the Internet in safety. Tor's 8000 volunteer relays carry traffic for millions of daily users, including ordinary citizens who want protection from identity theft and prying corporations, corporations who want to look at a competitor's website in private, people around the world whose Internet connections are censored, and even governments and law enforcement.</p> <p>This past year has seen many changes to the Tor world:</p> <ul> <li><p>Major browsers are working on Tor integration so their private browsing modes will provide actual privacy.</p></li> <li><p>We have a new Tor Browser for Android that brings the same browser-level protections as we have on desktop.</p></li> <li><p>Major institutions like the Toronto Public Library are piloting Tor Browser deployments on all of their computers.</p></li> <li><p>We have a growing and diverse relay community---which needs your help.</p></li> <li><p>Recent Tor Browser updates include major usability improvements, both for initial user experience and for users in censored environments.</p></li> <li><p>We've done trainings in many interesting countries to help vulnerable populations use the internet more safely.</p></li> <li><p>The anti-censorship arms race has moved forward, with China's further crackdown on VPNs vs the design of new pluggable transports to get around blocking.</p></li> <li><p>We've seen new and novel attacks by nation-states to try to block Tor connections or degrade its security.</p></li> <li><p>We've deployed the new v3 onion services, which offer improved security, and companies like Facebook and Cloudflare are adopting them.</p></li> <li><p>New research on privacy-preserving measurement has let us gather statistics that we had previously been unable to safely observe, including a new estimate that the Tor network has 8 to 10 million daily users.</p></li> <li><p>And last but not least, we have a new executive director for the non-profit organization.</p></li> </ul> Roger Dingledine Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:50 Janson algorithmic_sovereignty Algorithmic Sovereignty and the state of community-driven open source development Is there a radical interface pedagogy for algorithmic governementality? Online Privacy maintrack <p>Algorithms are growing in power and importance. Their logic is often hidden, while their results are manifest: the free and open source movement mostly addresses this condition. Yet moving beyond transparency, there is an urgent need for awereness and governmentality on decisions made by algorithms about the social and economical context in which we live. Community driven development may be the perfect answer to this, but faces many challenges ahead.</p> <p>The metaphor of a “black box society” is apt to describe the role that algorithms have taken in our contemporary and highly digitised world, following a pervasive adoption from industrial automation to public administration. Who understands what is inscribed in such algorithms? What are the consequences of their execution and what is the agency left for the living world? Is there any chance for sovereignty outside of technical expert circles?</p> <p>There is nothing neutral in an algorithm, to the contrary every algorithm has to be seen as the cultural product of a negotiation of power and its analysis requires the understanding of its language applied to the living world. The concept of sovereignty I'm proposing represents the way a community of participants can influence an algorithm, appropriate it, distribute it, share it and create new ones.</p> <p>The free and open source community has gone a long way to realise this condition for the technical elites that can interact with the literature of algorithms. But is transparency, as opposed to secrecy, enough of a condition to make algorithms functional to the creation of an intelligible society? By moving forward with an answer this talk proposes that "openness" and "transparency" are not sufficient conditions to realise the good ethical propositions of the free software movement. It now becomes even more urgent to understand this limit and envision how to move forward as computing becomes more pervasive and relevant to many functions supporting the living economies of our planet.</p> <p>This talk will not be limited to describe the problem and the contexts where it can arise, but also to give practical examples, from software design patterns to social experimentations as working solutions.</p> Denis Roio (Jaromil) Algorithmic Sovereignty observatory Short video interview Doctoral dissertation on topic Decentralized Citizen Owned Data Ecosystem Decentralized Citizen Engagement Technologies Dyne.org Think&do Tank Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:50 Janson duckduckgo_open_source Open Source at DuckDuckGo Raising the Standard of Trust Online Online Privacy maintrack <p>Privacy was THE hot topic of 2018, but at DuckDuckGo we've been raising the standard of trust online since 2008. Find out why privacy is important, how we're helping raise the standard of trust online, and the part that Open Source plays in our mission.</p> <p>In this lecture we'll cover the following topics:</p> <ul> <li>Why privacy is important</li> <li>What you can do to protect yourself online</li> <li>What DuckDuckGo has been doing to raise the standard of trust</li> <li>What part Open Source plays in DuckDuckGo's mission</li> <li>A technical dive in to our Privacy Components, including browser extensions and mobile apps</li> <li>What's coming in 2019 and beyond</li> </ul> Chris Brind DuckDuckGo's Public Github Repo Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:50 Janson crostini Crostini: A Linux Desktop on ChromeOS Miscellaneous maintrack <p>Recent versions of ChromeOS allow users to run a full Debian operating system in a dedicated container. This talk discusses the technologies behind the implementation, the current functionalities, and a rough roadmap of where we're going to bring this features, that integrates the chrome and linux desktop for the first time, making ChromeOS the most readily available Linux machine for an end user or enterprise.</p> <p>ChromeOS is a Google made Linux-based operating system that focuses on security, speed, and is optimized to run a web centric workload. From the beginning ChromeOS computers could run Chrome, and a few specially made applications, but since 2016 they also run Android apps. ChromeOS devices are readily available from many manufacturers.</p> <p>Since version 69 of ChromeOS, released in the fall of 2018, users can run a Debian GNU/Linux operating system inside a VM and container. This is initially targeted at power users and developers, but opens the option of running any Linux desktop app on a ChromeOS device, instantly making ChromeOS devices the most easily available Linux computer for a consumer to get.</p> <p>In this talk we will discuss:</p> <ul> <li><p>The architecture of Crostini, and its rationale</p></li> <li><p>Its current features and functionality</p></li> <li><p>Personalizing and configuring your container</p></li> <li><p>Enterprise features to control linux deployments on ChromeOS</p></li> <li><p>Roadmap plans, including how developers can target ChromeOS as a platform for users to run their Linux desktop applications</p></li> </ul> Guido Trotter Dylan Reid Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:50 Janson open_source_microsoft Open Source C#, .NET, and Blazor - everywhere PLUS WebAssembly Miscellaneous maintrack <p>Scott will talk about the last ten years at Microsoft. Scott went there specially to open source .NET and promote open source in general to a company that wasn't (at the time) OSS friendly. A decade later we have achieved that and .NET Core runs everywhere from microcontrollers to iPhones to any cloud. 40% of Azure runs Linux. .NET Core runs on every Linux and the full stack is open source, all the way down to the metal. How did that happen and what’s next? This technical and demo-heavy talk will cover .NET -> WebAssembly running Open Source C# in the browser.</p> <p>Scott will spend much of his time at the command line doing demos in Windows, Linux, Docker,and online. He'll talk about the tech underneath that brings .NET, .NET Core, and Mono together in a cohesive OSS platform. He'll also talk about .NET Standard as a set of APIs and now it overs true and real code reuse across a wide range devices. Scott will also cover the history of WebAssembly as it relates to .NET and Blazor and show how C# and .NET can run within the browser.</p> <p>Scott will also talk about how Microsoft changed both culture and code to release .NET Core as a fully OSS platform with more than 60% of contributions coming from the community.</p> Scott Hanselman Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:50 Janson cloud_is_another_sun The Cloud is Just Another Sun Keynotes keynote <p>You could reasonably call cloud services the crowning achievement in the world of Free and Open Source software. Linux and Free and Open Source software killed proprietary UNIXes in bare metal data centers and went on to dominate cloud services to such a point that it has even caused Microsoft to completely change their stance and embrace Linux and Free and Open Source software or risk the future of Azure and arguably the future of their company.</p> <p>Yet in many ways, this dominance has also bred complacence in the community. On top of all of those Linux instances are many proprietary services, abstraction layers and APIs that make cloud services easy to use for developers, but also turn them into the largest-scale proprietary operating system on the planet, where the network is the computer. Left unchecked, this proprietary operating system has the potential to undo the achievements Open Source software has made in the past two decades.</p> <p>The FOSS community has seen this "network is the computer" pattern before with Sun Microsystems and Solaris--a proprietary UNIX operating system that administrators ultimately loaded up with GNU software and free software services before deploying to the data center. Instead of Linux images running your dynamic Rails application or Docker container you ran CGIs in Apache and portable Java apps in Tomcat. Instead of disposable instances you had hot-swappable CPUs and RAM. Instead of S3 you had NFS. Expert users would use well-documented but proprietary CLI tools and libraries to interact with the OS and manage their free software processes. Yet in the end, administrators were subject to the roadmaps, whims, pricing structures, expensive hardware, and overall vendor lock-in from Sun. For all of Sun's talented engineers and sophisticated hardware and software, the freedom and values from Linux and Free and Open Source software combined with low-price commodity hardware ultimately dominated the server room.</p> <p>This keynote is part history lesson and part rallying cry. Proprietary OSes and services aren't dead, they just morphed into the cloud. By remembering why Linux was important in the age of Solaris, we can apply those lessons to cloud services before their proprietary APIs and vendor lock-in risk undoing the freedom, open standards, and overall progress our community has made over the last 20 years.</p> Kyle Rankin Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:00 00:50 Janson keynote_fifty_years_unix 2019 - Fifty years of Unix and Linux advances Keynotes keynote <p>2019 marks the fiftieth anniversary of Unix, but it is also the fiftieth anniversary of the ArpaNet/Internet, and people walking on the moon. It marks the 50th anniversary of Woodstock, the beginning of America's LGBTQ movement at the Stonewall Inn in New York City, and maddog wrote his first program fifty years ago. It was also in 1969 that he shaved for the last time.</p> <p>2019 marks the 30th year of the World Wide Web, the 25th anniversary of V1.0 of the Linux kernel, and of many GNU/Linux distributions starting. 2019 also marks the twentieth anniversary of the Linux Professional Institute.</p> <p>All of these years, and anniversaries.....but why has Unix (and its younger offspring Linux) lasted so long? What was different about Unix that caused it to survive and flourish? Why is it important today, and how can we take it further? How should we celebrate 2019? While maddog does not have all the answers, he tries to make the answers he does have interesting and fun to know.</p> Jon 'maddog' Hall Video recording (WebM/VP9) Video recording (mp4) Submit feedback 17:55 00:05 Janson closing_fosdem Closing FOSDEM 2019 Keynotes keynote <p>Some closing words. Don't miss it!</p> FOSDEM Staff Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 00:50 K.1.105 (La Fontaine) love_everyday Love What You Do, Everyday! Miscellaneous maintrack <p>Build a career doing what you love. Open source is an enabler and the community can be your best coach, mentor and referral. Whether you are a beginners or someone who has been working in open source for years, the speakers covers tips in building an open source career. On bringing out the best in yourself, the community and your project.</p> Zaheda Bhorat Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:00 00:50 K.1.105 (La Fontaine) tesla_hacking Tesla Hacking to FreedomEV! Bringing Freedom to electric vehicle software Hardware maintrack <p>How and why hack a Tesla and its Linux systems? What is possible, implemented and 'to-do'? Call for joining the new world of Electric Vehicle Hacking. Do you want to help to bring some Freedom to our cars? My 'Tesla Hacking' evolved to a broader project 'FreedomEV'.</p> <p>Building a community to encourage and build better and OpenSource sofware for in-vehicle entertainment and beyond...</p> <p>The current state of Tesla Hacking. Difficulties. Strategies. What has been done and what is possible? The creation of an opensource platform for hacking electric Linux-based vehicles. We will launch the website http://www.freedomev.com to bring our hacks to the world and allow others to contribute in the repository. Debian-style.</p> <p>It started out with hacking my Tesla Model X. And is evolving now into a community project which seeks your cooperation to build new exciting features into Electric Vehicles. Welcome to the launch of FreedomEV!</p> <p>The FreedomEV project aims to give you full control over your own vehicle. Over it's security and full features and capabilities. The future possibilities are endless. We explore how we are doing this, why, and what is possible. Consider this a call for your participation as well. Currently only supporting Tesla Model S and X with ARM MCU, but looking to broaden vehicle support to include Intel based MCU's and Tesla Model 3 and possibly other manufacturers too?</p> Jasper Nuyens The to be Fosdem-launched FreedomEV website FreedomEV Wiki FreedomEV Github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:50 K.1.105 (La Fontaine) go_on_microcontrollers Go on Microcontrollers: Small Is Going Big TinyGo takes the Go programming language to the "final frontier" where we could not go before... running directly on microcontrollers. Hardware maintrack <p>TinyGo takes the Go programming language to the "final frontier" where we could not go before... running directly on microcontrollers like Arduino and more! In this talk I will introduce TinyGo (http://tinygo.org) a new miniature version of the Go language that uses the LLVM compiler toolchain to create native code that can run directly even on the smallest of computing devices.</p> <p>This talk will feature live coding demos of flying objects...</p> Ron Evans Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:50 K.1.105 (La Fontaine) lttng Fine-grained Distributed Application Monitoring Using LTTng Performance maintrack <p>There is no shortage of great tools to monitor distributed applications. However, most of them focus on monitoring overall performance metrics and error rates, giving only a general idea of the health of an infrastructure.</p> <p>Unfortunately, rarely occurring issues are often hidden by general trends making it difficult to completely understand infrequent, yet sometimes catastrophic, problems.</p> <p>Tracers are great at tracking down sporadic problems in production environments, but the amount of data they generate can be hard to manage in the wild.</p> <p>This talk will present how the work done on LTTng over the last year, notably the introduction of a session rotation mode, makes it easier to integrate fine-grained monitoring in production environments.</p> <p>The talk will also cover approaches to collecting traces on multiple hosts to troubleshoot problems occurring in distributed systems using both kernel and user-space traces.</p> Jeremie Galarneau Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:50 K.1.105 (La Fontaine) ebpf_kubernetes eBPF powered Distributed Kubernetes performance analysis Performance maintrack <p>Since the Linux kernel 4.x series a lot of enanchements reached mainline to the eBPF ecosystem giving us the capability to do a lot more than just network stuff. The purpose of this talk is to give an initial understanding on what eBPF programs are and how to hook them to programs running inside Kubernetes clusters in order to answer targeted questions at cluster level but about very specific fine-grained situations happening in our programs and systems, like: - Had that function in my program been called ? - For a given function which arguments have been passed to it? And what it did return? - Which TCP packets are being retransmitted? - What are the queries running slow? - Insights on programming language events/gc - Had that file been opened? Imagine a programmable Kubernetes performance analysis tool that runs at cluster level without performance implications how would you it to be?</p> Lorenzo Fontana Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:50 K.1.105 (La Fontaine) perl11 Perl 11 The Future of Saint Larry's Language Performance maintrack <p>Perl 11 is the philosophy of pluggability, performance, and the reunification of Perl 5 with Perl 6. RPerl is the new optimizing compiler for Perl 5, and is the primary implementation of the Perl 11 philosophy. We can currently use RPerl to speed up low-magic Perl 5 code with over 300x performance gain. This talk will discuss the future plans for supporting medium-magic and high-magic Perl 5 code, as well as Perl 6, and beyond.</p> <p>Perl 5 is a programming language. Perl is fast at string manipulation and regular expressions. Unfortunately, Perl is really, really slow at most everything else.</p> <p>On New Year's Day 2013, the RPerl optimizing compiler project officially began. On US Independence Day 2015, RPerl v1.0 was released, at long last; exactly 1 year later, RPerl v2.0 was released with automatic parallelization capabilities. After another year, RPerl v3.0 was released with regular expression support. Major RPerl releases happen on each major holiday.</p> <p>Using RPerl, low-magic Perl 5 software may be compiled in serial mode to run 200x, 300x, maybe even 400x as fast as normal high-magic Perl. In serial mode, RPerl moves Perl from being (arguably) the slowest general-purpose language to being among Fortran, C, and C++ as one of the very fastest. In auto-parallel mode, there is theoretically no upper limit to the speed of RPerl, and it may be (arguably) considered the fastest software on Earth.</p> <p>RPerl works by implementing a restricted low-magic (low-complexity) subset of the Perl 5 language, which is then converted into C++ and compiled into ultra-fast binary form. The resulting compiled low-magic RPerl code can be called seamlessly from existing high-magic pure Perl code. RPerl is primarily meant to be used for performance optimization, although as a true source-to-binary compiler it can also be used for strong source code obfuscation and IP protection.</p> <p>The Perl 11 philosophy includes the 3 primary goals of pluggability at all levels of Perl, performance at-or-beyond the speed of C++, and full reunification of Perl 5 with Perl 6. Perl 11 was formulated in the summer of 2012 by Ingy döt Net, Reini Urban, and Will Braswell.</p> <p>RPerl currently supports low-magic Perl 5 input source code. Future RPerl development plans include support for medium-magic Perl 5, then high-magic Perl 5, then Perl 6. It's taken us 30 years of Perl to get here, and we built the Internet along the way. Let's make the next 30 even more unbelievably amazing.</p> Will the Chill Braswell Perl 11 Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:50 K.1.105 (La Fontaine) blockbuster_game Making the next blockbuster game with FOSS tools Using Free Software tools to achieve high quality game visuals. Miscellaneous maintrack <p>More than ever before, It is now possible to create high quality looking game visuals with little effort by using free and open source software tools. The combination of Blender, Gimp, Krita and Godot Engine running under Desktop Unixes gives the developers unprecedented creative power and ease of use to achieve professional quality visuals, all this with ease of use and productivity surpassing that of proprietary software. This presentation will be a step by step description of the tools and techniques used by an artist and a programmer to create the Godot Third Person Shooter demo in three weeks.</p> <p>The presentation will be broken down in steps describing the tools and techniques used to create a state of the art third person shooter demo using free and open source software.</p> <p>-Level blocking using Blender -Level testing using Godot -Character modelling using Blender -Character rigging and animation using Blender Actions -Character import using Godot -Animation Tree and State Machine in Godot -Character and Enemy VFX in Godot -Level hard-surface modelling using Blender -Texture painting using Gimp or Krita -Level importing to Godot -Level lighting and post processing setup using Godot Real Time Global Illumination. -Level audio setup using Godot</p> Juan Linietsky Video of the final demo in action Blender website Godot Website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:50 K.1.105 (La Fontaine) susi_ai SUSI.AI: An Open Source Platform for Conversational Web Miscellaneous maintrack <p>This talk is about SUSI.AI - an open source conversational framework developed by FOSSASIA developer community. We will talk about current development of the project including the overview of SUSI’s technology stack and the recent released hardware prototype.</p> <p>The motivation behind the project was to create an ecosystem made up of conversational web services, AI technologies, search engines, smart devices and open source communities - together develop a framework as an alternative to dominant players like Alexa, Siri or Google Home. The project is based on the principle of privacy and collaboration. It provides user freedom and enables user to have the complete control over his/her own data.</p> <p>SUSI is capable of chat and voice interaction and by using APIS to perform actions such as music playback, making to-do lists, setting alarms, streaming podcasts, playing audiobooks, and providing weather, traffic, and other real time information. Additional functionalities can be added as console services using external APIs. It is able to answer questions and depending on the context will ask for additional information in order to perform the desired outcome. The core of the assistant is the SUSI.AI server that holds the "intelligence" and "personality" of SUSI.</p> <p>The application already comes with clients for all major platforms and services including mobile phones (iOS, Android), web clients and plugins for chat services like Slack, Gitter, Skype and many more.</p> Hong Phuc Dang https://github.com/fossasia/susi_server Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 00:50 H.2215 (Ferrer) ceph_data_services AMENDMENT Data services in a hybrid cloud world with Ceph Making data as portable as your stateless microservices Storage maintrack <p><em>PLEASE NOTE: Sage was delayed travelling and this talk has been rearranged from 13.00 on Saturday.</em></p> <p>IT organizations of the future (and present) are faced with managing infrastructure that spans multiple private data centers and multiple public clouds. Emerging tools and operational patterns like kubernetes and microservices are easing the process of deploying applications across multiple environments, but the achilles heel of such efforts remains that most applications require large quantities of state, either in databases, object stores, or file systems. Unlike stateless microservices, state is hard to move.</p> <p>Ceph is known for providing scale-out file, block, and object storage within a single data center, but it also includes a robust set of multi-cluster federation capabilities. This talk will cover how Ceph's underlying multi-site capabilities complement and enable true portability across cloud footprints--public and private--and how viewing Ceph from a multi-cloud perspective has fundamentally shifted our data services roadmap, especially for Ceph object storage.</p> Sage Weil Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:00 00:15 H.2215 (Ferrer) kornshell Squeezing Water from Stone - KornShell in 2019 Lightning Talks lightningtalk <p>This talk is going to be:</p> <ul> <li>Short update about state of ksh93</li> <li>Why it's so challenging to maintain it</li> <li>Steps current upstream maintainers have taken to revive it</li> </ul> <p>And call for developers who like to work on crazy problems.</p> Siteshwar Vashisht GitHub link for ksh93 Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:20 00:15 H.2215 (Ferrer) environment_modules Environment Modules Provides dynamic modification of a user's environment Lightning Talks lightningtalk <p>Typically users initialize their shell environment when they log in a system by setting environment information for every application they will reference during the session. The Modules project, also referred as <em>Environment Modules</em>, provides a shell command named <code>module</code> that simplifies shell initialization and lets users dynamically and atomically modify their environment during the session with configuration files called modulefiles.</p> <p>This talk will explain the root concept behind the module command then describe how it could be useful whether as a system administrator you have to provide access to a large software catalog or as an end-user you need to juggle with different workloads combining software elements. Current development trends to further improve the modulefile standard and the module command capabilities will then be shared with the audience.</p> Xavier Delaruelle Modules website Modules source repository Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:40 00:15 H.2215 (Ferrer) console_services Console oriented services: wttr.in, cheat.sh, rate.sx Lightning Talks lightningtalk <p>The talk is devoted to console oriented services, like: wttr.in, cheat.sh, rate.sx. Which popular console oriented services exist currently and how can they be used in everyday life; what advantages and disadvantages do they have; how services like that could be created.</p> <p>I've created several console oriented services, that you are probaly aware of, if you are a vivid console user.</p> <p>If you've never heard about them, you can try to do the following in your terminal, just to get the first impression:</p> <p>```</p> <pre><code>$ curl wttr.in/Karlsruhe $ curl rate.sx/btc $ curl cheat.sh/lua/:learn </code></pre> <p>```</p> <p>As we will see, in many cases services creaated using this approach has many advantages comparing to browser-orineted services: * speed; * portability; * small footprint and ubiquituous of the client; * good possibility of integration; * consciosness; * anonimity; * etc.</p> <p>In the talk I will demostrate several popular console oriented services, that I've created, and tell: * how such services could be created, * what tasks could be and should be solved by means of them; * what advantages (and disatvantages) do they have; * what changes in curl we are currently doing, to make such services even easier to use, and even more universal and pervasive.</p> <p>The talk will be accompanied with many technical examples and useful practical tips and tricks such as:</p> <ul> <li><p>how to make weather forecast using nothing else but curl;</p></li> <li><p>how to bring any text from you console one your smartphone using nothing else but curl;</p></li> <li><p>how to find an answer to (almost) any programming question not leaving your editor;</p></li> </ul> <p>and many other like that.</p> <p>I would be happy to share my ideas with you, discuss them and get some feedback from you during this discussion.</p> Igor Chubin Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:15 H.2215 (Ferrer) nuspell Nuspell: the new spell checker FOSS spell checker implemented in C++14 with aid of Mozilla Lightning Talks lightningtalk <p>Nuspell is a FOSS checker that is written in pure C++14. 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.</p> <p>In this talk we will highlight the functionality of Nuspell and provide easy to follow examples on how to use it as a command-line tool or link to the C++ library. The audience will be invited to integrate this new spell checker into their software, create new language bindings or port it to other operating systems.</p> Sander van Geloven Nuspell's Homepage Nuspell at Github Nuspell at Mastodon Nuspell at Twitter Nuspell at Facebook Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:20 00:15 H.2215 (Ferrer) nim_metaprogramming Metaprogramming with Nim Lightning Talks lightningtalk <p>Over the years I've visited languages on all levels of abstraction and paradigms, both through my studies but also in a professional capacity. One of the languages that have caught my eye is Nim, which ticks a lot of boxes for me, and leaves me wanting it's features in many other languages. Of the many interesting features in the language one of the most mentioned is the metaprogramming capabilities. This talk will briefly introduce Nim for those unfamiliar with the language, before diving right into the possibilities metaprogramming offer, with interesting real-world examples of its utility.</p> Peter Munch-Ellingsen Talkers website Official Nim website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:40 00:15 H.2215 (Ferrer) open_food Open Food Network open source for worldwide food systems Lightning Talks lightningtalk <p>Open Food Network is a worldwide collaborative network of projects that want to change local food systems and boost short distribution circuits by means of open source software and democratic governance. It forms a global community with projects based in Belgium, Australia, UK, France, Canada, USA, Spain and Portugal, and which is still growing.</p> <p>A single global team develops an online marketplace for local food enabling independent online food stores connect farmers and food hubs with individuals. It gives them an easier and fairer way to distribute their food. This boosts short distribution circuits which positively impact local communities.</p> <p>Each of the local projects offer the software as Saas to their local communities who participate on the governance of the platform taking part on the decision making.</p> <p>The project is sustained by the funds contributed by all the local projects that are communalized. This makes it possible to afford the development of such ambitious project, which would be impossible by each of the local communities while still allowing new local projects to join.</p> <p>This talk aims to share Open Food Network's challenges around its governance and internal organization. How it successfully manages to coordinate the efforts of people scattered throughout the world while involving local communities on its design. We also touch on the tech challenges around the tech stack and infrastructure and how we envision it in the future.</p> Pau Pérez global Open Food Network website Community forum Open source repo An older presentation about the project and its potential Facebook account Video of our last global gathering Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:15 H.2215 (Ferrer) openscore_sheet_music OpenScore Open-sourcing sheet music Lightning Talks lightningtalk <p>OpenScore is a crowdsourced initiative to transcribe the world's public domain sheet music into an open source, digital format. This brings music notation into the 21st Century, enabling its convenient use on devices such as phones, tablets and computers. OpenScore extends the principles of open source to apply not only to software, but also to the content produced by the software, thereby opening up a new avenue of funding for open source software development.</p> <p>OpenScore was announced to the world exactly 2 years ago at <a href="https://archive.fosdem.org/2017/schedule/event/openscore/">FOSDEM 2017</a>. Since then we ran a successful Kickstarter campaign to digitize famous classical works, and transcribed over 250 19th Century Lieder as part of OpenScore Lieder Corpus. We return to FOSDEM now to update you with our progress so far, share details about some of the key challenges and hurdles faced along the way, and look ahead to the bright future of open source sheet music.</p> <p>OpenScore was created as a collaboration between MuseScore, the leading open-source music notation program, and IMSLP, the largest online archive of public domain music. The IMSLP archive contains scanned copies of public domain scores by Mozart, Beethoven and other classical composers in “binary” PDF format, which allows musicians to read them, but not edit or listen to them. OpenScore unlocks the scores’ true potential by making the actual musical “source code” available in MuseScore’s text-based format, which enables listening, editing, and easy conversion to MusicXML, MIDI, PDF as well as image, audio and video formats.</p> <p>Text-based scores offer improved accessibility over PDFs, and are easily parseable by software tools to allow searching, indexing, data mining, and analysis for research purposes.</p> <p>All OpenScore transcriptions of public domain works are released under Creative Commons Zero (CC0), ensuring they remain in the public domain where they belong.</p> <p>OpenScore partners: MuseScore, IMSLP, RNIB, Nicholas Rougeux (c82)</p> Peter Jonas OpenScore website OpenScore collection OpenScore Lieder Corpus Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:20 00:15 H.2215 (Ferrer) 0ad_rts 0 A.D., a libre real-time strategy game "History is yours for the taking!" Lightning Talks lightningtalk <p>0 A.D. is a free and open-source game of ancient warfare. It is a real-time strategy game which can compete with the classics of the industry, but comes with absolutely no cost for the players. Come and discover your new favorite game!</p> <p>We will present the game, its features and beautiful art, and its completion state: the game is fully playable, with a challenging AI for solo players and a fully-fledged multiplayer experience. It is an ideal playing field for hackers of all kinds, who can contribute to its development, create game mods, or use it for a completely different purpose. We will share our plans for the future and talk about how we got here, from the first idea of 0 A.D. to our latest release, available on all the desktop platforms.</p> <p>From 500 B.C to "0 A.D.", History is yours for the taking! Play with thirteen civilizations from the Mediterranean world and build your military base from the bottom up to achieve supremacy on the map. Team up with friends, crush your enemies, and enjoy living History as you make it yours.</p> <p>You can also participate to this wonderful adventure by bringing your skills and dedication to the project!</p> Nicolas Auvray Website Download Page Facebook Twitter Community Forums Wiki and bugtracker Getting started with contributions Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:40 00:15 H.2215 (Ferrer) debian_java Debian Java: Insights and challenges learn more about the daily work to package Java software for Debian Lightning Talks lightningtalk <p>The talk gives insights into the state of Java in Debian and what challenges contributors face when we package Java software for the Debian GNU/Linux distribution. Participants will learn more about how the Java ecosystem is integrated into Debian, what problems have to be solved and how Java software can be truly free and long-term supported. It is brought to you by a Debian Developer and Debian Java team member.</p> <p>Many applications and libraries distributed by Debian are written in the Java programming language. In fact based on simply counting source code lines, it is ranked in third place only after C and C++. The Java team alone maintains more than one thousand source packages ranging from web servers to IDEs. Packaging Java software can be difficult at times because all packages must be built from source but no internet connections are allowed at build time. None of the packages in the main archive area may require software outside of that area to function thus we have to package every dependency and make sure it complies with the Debian Free Software Guidelines. This is often completely diametral how Java developers usually build software (versioned dependencies downloaded from online repositories like Maven Central). And if you know that Debian prefers to ship only one software version because of security support but different applications tend to depend on different versions at the same time and we also strive for one long-term supported Java Virtual Machine, the possible problems are easily imaginable. Last but not least Java development has become rapider in the past with new OpenJDK versions and bugs every six months. How this all works or not will be told during the next 15 minutes.</p> Markus Koschany Debian GNU/Linux Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:15 H.2215 (Ferrer) library_generation Automating Client Library Generation How and Why Lightning Talks lightningtalk <p>How good are you at keeping your multiple client libraries up to date?</p> <p>Keeping client libraries in multiple languages up to date can be a trying task. Learn how Kaltura does it, and how you can use the same principles - as well as our open source project - to implement the same system into your application.</p> Avital Tzubeli Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:20 00:15 H.2215 (Ferrer) dbus_asio Introducing DBus-ASIO How and why we built a new D-Bus library from the ground up Lightning Talks lightningtalk <p>Modern software needs inter-process communication. Often through DBus. But the state of the existing libraries are more perfunctory, than active. Consequently, the limits of these libraries become apparent when you go beyond a single thread, are limited to standard libraries, or use anything other than a classical event loop. In this talk we cover the journey, from the realisation of the problem, the guiding development tenets, to the implementation of a library that covers everything from the low-level protocol and high-level C++ interface.</p> <p>We start with a breakdown on the whys and wherefores of the choices made, be it C++11 or C++14, to fork or not to fork existing code, or whether boost::asio should be used.</p> <p>We continue with a discussion on the implementation details, such as the pitfalls in serial protocols, zero-length strings, non-aligned data, and the problems in C++ over C.</p> <p>We end up with production-quality code, the politics of naming, and a question: will this be the final DBus library we need to write?</p> <p>Background: D-Bus is an inter-process mechanism that allows communication between multiple programs running on the same machine. Asio is a cross-platform C++ library for network and low-level I/O programming. This talk covers how and why the former was implemented using the latter.</p> Steven Goodwin DBus-ASIO Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:40 00:15 H.2215 (Ferrer) neuropil_iot Neuropil - Secure Interaction for Things Elevating Security for IoT with the First Decentralized Opensource Solution Lightning Talks lightningtalk <p>CHALLENGE The exchange of data between applications continually raises concerns as to the authorization and dynamic network of devices.<br/> In particular, within the realm of IoT, some messaging paradigms are used which from a security perspective offer little to no value. Closed systems arise, yet the future data value remains unclear. Additional project and integrations costs are a direct result of delays in connections. Data quality, data transparency, and data sovereignty of users, companies, and organizations suffer as a result of this.</p> <p>SOLUTION What is Neuropil? We all have it in us: The fibrous network of tissue which forms the gray matter in our brain. Neuropil facilitates the networking between individual cells. It is in this manner that the Neuropil layer, an open source solution, assures the stable communication between machines and applications. What makes it so unique is that the secure exchange of data between the IoT devices and applications is dynamic, decentralized, and fully automated.</p> <p>The Neuropil® layer, therefore, ensures data quality, data transparency, and data sovereignty all the while reducing IT costs, maximizing availability, and increasing reliability. A secure IoT is a crucial prerequisite for secure collaboration and competitive businesses.</p> <p>The Neuropil® layer provides: - Automatic discovery of data channels across enterprises - Attribute based access control to authorize data exchange - Asymmetric end-to-end encryption between the participating systems - Protection of IoT devices regarding excessive payloads - High scalability without central infrastructure - Centralized governance, but decentralized messaging</p> <p>The neuropil messaging layer combines several proven IT concepts, but rearranges them to accomplish a secure interaction of things. The combination is a mixture of MQTT, VPN and DNS, with a strong focus on privacy (meta-data obfuscation) and security (double encryption).</p> <p>Unlike other pure messaging systems we have designed our solution without additional components. Each system or application, which uses the neuropil messaging layer becomes part of an overlay network.</p> <p>Most encryption solutions are designed to protect two communicating parties using a direct connection. The neuropil messaging layer accounts for intermediate hops within the (overlay) network. It defines a routing and discovery protocol to automatically exchange required security credentials or other information.</p> <p>Due to this approach it is possible to address fingerprints of identities (belonging to a system, person or device), without prior exchange of IP addresses or certificates. This eases the setup and build-time to a minimum and reduces the time to market of IoT solutions.</p> <p>What makes it so unique is that the SECURE exchange of data between the IoT devices and applications is DYNAMIC, DECENTRALIZED, and FULLY AUTOMATED. Furthermore, it is highly SCALABLE without needing a central infrastructure.</p> <p>DYNAMIC: We have a strong focus on attribute-based authorization supported by digital identities for devices, applications and users alike. Compared to other systems this allows neuropil® messaging layer to establish highly secure connections that are dynamic and can, therefore, be changed at any time.</p> <p>DECENTRALIZED: Moreover, traditional messaging systems cover the horizontal value chain within a single enterprise and its internal connections. Neuropil® messaging layer on the other hand can work throughout different organisations and systems (vertical), greatly reducing legislative burdens. As an example it enforces technical SLAs (i.e. the number of messages a second party may send into your IT infrastructure) and follows a decentralized, distributed network setup (please see attachment for visualization), which eliminates single points of attack.</p> <p>Combining a dynamic and decentralized system allows neuropil® messaging layer to cut down project costs. This includes development and collaboration transaction costs, while new B2B connectivity can be setup within several days rather than several months.</p> Stephan Schwichtenberg Documentation & repository Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:15 H.2215 (Ferrer) theo_keys_manager AMENDMENT Theo: The Authorized Keys Manager How to manage easily and securely ssh accesses to your servers Lightning Talks lightningtalk <p>In this talk I will explain why and how we decided to write <em>Theo</em> and how <em>Theo</em> will help you to secure your servers' accesses.</p> <p>Please note that this talk was originally scheduled to be given on Saturday at 18:40. The talk originally in this slot, The brief case for User-space Network Stacks (DPDK and friends) by Ray Kinsella will now take place on Saturday at 18:40.</p> <p><em>Theo</em> is a 3 components software (a server, an agent and an administrative CLI) that you can use to replace - or to put aside - of all the <code>$HOME/.ssh/authorized_keys</code> in your organisation.</p> <p>Managing access to your servers could be a time-wasting and error-prone task, even in small organisations: you need to add the public keys of new team member, clean up them when a member leaves, update them when people generate new ones.</p> <p>With <em>Theo</em> you'll be able to control all accounts' public keys and configure which servers and which OS users they can access.</p> <p>If you want to take part of the live demo, please send your public key to fosdem19@authkeys.io</p> Michele Azzolari Github Theo's project Theo presentation Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:20 00:15 H.2215 (Ferrer) trex_generator TRex TRex open source traffic generator Lightning Talks lightningtalk <p>TRex is an open source, low cost, stateful and stateless traffic generator fuelled by DPDK. Used by Open source projects like DPDK, OPNFV, DPDK-OVS, fd.io VPP for benchmark SDN/VNF solutions in very high scale.</p> <p>TRex is an open source, low cost, stateful and stateless traffic generator fuelled by DPDK. It generates L4-7 traffic based on pre-processing and smart replay of real traffic templates . TRex amplifies both client and server side traffic and can scale up to 200Gb/sec with one UCS. TRex Stateless functionality includes support for multiple streams, the ability to change any packet field and provides per stream statistics, latency and jitter. Advanced Stateful functionality includes support for emulating L7 traffic with fully-featured scalable TCP layer. The main objective is to meet with TRex active community and discuss next features with potential developers/users.</p> Hanoch Haim Video recording (WebM/VP9) Video recording (mp4) github doc Submit feedback 14:40 00:15 H.2215 (Ferrer) nextgen_internet Next Generation Internet initiative - Year Zero Come work for the internet on privacy, trust, search & discovery Lightning Talks lightningtalk <p>Last year during a FOSDEM keynote Michiel Leenaars, director of strategy at NLnet foundation, introduced the Next Generation Internet initiative together with member of the European parliament Marietje Schaake. NGI aims to be the first concerted effort to put significant public funding to hands-on work to really fix the internet. Meanwhile, the project is on its way. On December 1st 2018, the first open calls opened with funding for independent researchers and developers working on free and open source projects in the area of <em>privacy</em> and <em>trust</em> enhancing technologies and on <em>search</em>, <em>discovery</em> and <em>discoverability</em>. In this talk Leenaars, project lead of NGI Zero that is currently offering 11.2 million euro in grants, will tell everything you need to know about the various open calls that you can apply for. With grants ranging from 5.000 euro to 50.000 euro available for research, development and engineering effort NGI Zero aims to lead the push toward the post-Snowden internet we want.</p> <p>From the humble four nodes of the ARPANET that were bootstrapped half a century ago this year, until today, the internet has grown at a breathtaking pace. But while the technology has gradually penetrated every aspect of our lives, it has become clear that not all is well and at least some part of its growth has spiraled out of control. In fact, web inventor Tim Berners-Lee has recently called the current state of his creation (and by extension the larger internet) "dystopian".</p> <p>The internet of especially the last fifteen years has brought about undesirable concentration of power ("winner takes all"), and while it has given us many good things has also caused loss of human agency in many other realms. Internet has given the world totalitarianism the likes of which it has never seen, has enabled political manipulation at unprecedented scale affection the lives of hundreds of millions of people. Internet has eroded the private sphere to the point where it has been declared dead, and the mantra of 'big data' and business analytics frame the discussion we should be having. Due to its open global nature and the wholly new types of economic dominance neither internet users nor governments both have an adequate answer against dominant super-actors. How dow we stop large scale abuse of power. Have the web and the internet become "anti-human" as Berners-Lee posits? And what can we do about it?</p> <p>The internet is not going to fix itself. Many of the more promising efforts in this realm have been 'bottom up' efforts from individuals or small teams, but these isolated efforts certainly have missed critical mass to actually scale up and change the mainstream internet and the commercial landscape where powerful actors are fully vested in the current course. The Next Generation Internet initiative aims to bring those efforts together, strengthen and unite them and turn them into something that can be deployed across the whole internet. Let there be no doubt about it: fixing the internet is an insane 'moonshot++' effort: the internet is the largest technical structure man has ever made, and the task at hand is to vastly improve its very operating fabric with > 3 billion people using it on a daily basis.</p> <p>And yet we have to: fixing the internet is essential to safeguard our economy and create a more resilient and robust infrastructure. And even more importantly we also depend on it to upholding our way of life. How the internet, the web and the mobile ecosystems work directly impacts our human values. Crafting a better internet is essential for maintaining basic human rights such as privacy for the near-future Europe.</p> <p>Surely, a larger political agenda of Europe should be an integral part of the approach - in some cases regulating the most predatory behaviour from bad actors might be the only thing left to put the genie back in the bottle and to restore health back to the internet. However, it is also clear that a significant part of the solution lies in the hands of technologists. NGI Zero is probably the first funding programme of its scale that is entirely based on the principles of free/libre, open source software. We need smart and resourceful people that come and work for the internet. Could this be you? In this talk Michiel Leenaars will explain how the funding works, and how NGI Zero deals with important issues like localisation, accessibility, security, packaging, documentation, responsible disclosure and more. Come and work for the internet too!</p> Michiel Leenaars NGI Zero Discovery NGI Zero PET Main site NGI Initiative Keynote Michiel Leenaars FOSDEM 2018 Website European Commission Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:15 H.2215 (Ferrer) owncloud_2fa Add enterprise 2FA to your ownCloud in 15 minutes Lightning Talks lightningtalk <p>You are running an ownCloud or Nextcloud installation and are sick of lazy users choosen week passwords? You want to add two factor authentication to secure the login at ownCloud. But users refuse to enroll the internal TOTP app? In this talk we will show you how to protect the ownCloud login with a 2nd factor, that is centrally managed and forces the user to login in a secure way.</p> <p>privacyIDEA is a central two factor authentication system, where administrators can manage the 2nd factors of the users. You can run privacyIDEA in your network and connect several applications to privacyIDEA for authentication. This way users only need to have one 2nd factor for all applications and services.</p> <p>In this talk we will start with a standard ownCloud setup with simple password authentication. We will install a privacyIDEA machine and configure ownCloud to authenticate against privacyIDEA. We will enroll tokens like a Smartphone Authenticator, an OTP Keyfob token and a Yubikey to users and use these 2nd factors to login to ownCloud.</p> <p>privacyIDEA and all necessary components are open source and available via github.</p> Cornelius Kölbel privacyIDEA Project privacyIDEA at Github privacyIDEA ownCloud App Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:20 00:15 H.2215 (Ferrer) lemonldap LemonLDAP::NG 2.0 Lightning Talks lightningtalk <p>LemonLDAP::NG is a free WebSSO software, implementing CAS, SAML and OpenID Connect protocols</p> <p>The 2.0 version is a major step in LemonLDAP::NG history. It brings brand new features as second factor authentication, SSO as a Service, devops Handler, etc. This talk will present how the software works, and the main new features.</p> Clément Oudot LemonLDAP::NG Screenshots Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:40 00:15 H.2215 (Ferrer) monica_crm Monica, a personal CRM Remember everything about your friends and family Lightning Talks lightningtalk <p>Monica is a personal relationship manager to remember everything you want about your friends</p> <p>Monica is an open-source web application to organize the interactions with your loved ones. We call it a PRM, or Personal Relationship Management. Think of it as a CRM (a popular tool used by sales teams in the corporate world) for your friends or family.</p> <p>It helps you remember details about your friends and family. You can add calls, conversations, activities, gifts, debts, tasks, or even notes. You can also create reminders to get some notification at a regular frequency. You can log life events that happened to your contact's life. You can also use a personnal diary to log some events of your day. And a lot of other features to come...</p> Alexis Saettler Monica official website Monica sources Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:15 H.2215 (Ferrer) behind_snapcraft Good Will Snapping ~10 benefits of publishing your application in the Snap Store Lightning Talks lightningtalk <p>Thousands of users, millions of downloads, dozens of distributions. Numbers going up and down and sideways. A look behind the scenes of Snapcraft, the highly popular universal app store for Linux.</p> <p>Canonical developed snaps and snapcraft to enable developers to get their freshest software in the hands of users quickly. Think of snaps on Linux as similar to APKs on Android. Applications published in the Snap Store are easier for users to discover and install. Users love new and interesting software, and appreciate getting the latest features and bug fixes.</p> <p>In this lightning talk Alan will some features unique to the Snap Store, which give developers more control over delivery of their software updates.</p> Alan Pope Snap Store Free Build Service Developer Forum Documentation Youtube Channel Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:20 00:15 H.2215 (Ferrer) lava_federated_testing LAVA federated testing Testing with and by the community Lightning Talks lightningtalk <p>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.</p> <p>LAVA is at the same time supporting a wide range of devices and maintained by a small team of people. Which mean that maintainers do not have access to most device types that LAVA is supported.</p> <p>In this lightning talk, I will present LAVA Federation, a project aiming at testing the LAVA software on community owned hardware. The tests will be spread across many labs, owned by the community members with a variety of community hardware.</p> Rémi Duraffort Lava federation Lava software Lava instance Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:40 00:15 H.2215 (Ferrer) fosdem_infrastructure FOSDEM infrastructure review Lightning Talks lightningtalk <p>Informational and fun.</p> Richard Hartmann Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 00:40 H.1302 (Depage) cancelled_best_practices_for_building_scalable_blockchain_applications CANCELLED Best Practices for Building Scalable Blockchain Applications Blockchain and Crypto Currencies devroom <p>Please note that this talk has been cancelled as the speaker is no longer able to attend FOSDEM.</p> <p>Being a new domain, there are very few Blockchain technology resources to learn the best practices for building applications that perform well at scale. Over the past 2 years, we have designed and built multiple Blockchain applications and proof of concepts for fortune 500 companies. In this process, we have made many rookie mistakes and the experience has helped us to create a record of best practices in designing and building Blockchain applications. This knowledge has also enabled us to design Blockchain elective courses for Universities which we share with them freely so that students can learn from it.</p> <p>In this talk, I will share our Blockchain application development best practices as well as demonstrate (with code) how to leverage them with different Blockchain platforms like Ethereum, Hyperledger and R3 Corda. By the end of the talk, you should have a clear idea on what techniques have delivered good results and things that should be avoided when you plan on building a Blockchain application.</p> Girish Nuli Submit feedback 09:40 00:40 H.1302 (Depage) ledger_identity Distributed ledgers finally brought me a usable digital identity! Blockchain and Crypto Currencies devroom <p>Our technological society wants digital identities, but previous attempts undermine the user's right to control their personal information. With the advent of distributed ledgers, it is finally possible to have a digital identity that preserves the best aspects of our offline systems of identification, while also providing significant improvements. This talk will describe the challenges in creating a digital identity, and how the Sovrin network's deployment of Hyperledger Indy overcomes those challenges using open source technologies to implement verifiable credentials. The solution involves more than fancy code, and demonstrates the importance of considering the environment where a technology will function.</p> Richard Esplin Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:20 00:30 H.1302 (Depage) etherlime Etherlime: open source blockchain development tool An open source tool for Ethereum developers Blockchain and Crypto Currencies devroom <p>With Etherlime we aim to solve issues in the deployment of smart contracts and to allow developers to write their own scripts. This way they are not constrained to just the deployment transactions but also they can use the newly deployed contracts right away as part of the initialization sequence.</p> <p>In September 2018 our project received funding from Ethereum foundation, Ethereum community fund and ETHPrize.</p> <p>Etherlime is an Ethereum development and deployment framework based on ethers.js created by our team in LimeChain. The framework was born out of necessity, hardships, and trouble in the development and deployment of ethereum smart contract. We are trying to ease the pain of deployment, compilation and unit testing and add much-needed stability to the process. In our mind ethers.js is a much more stable alternative than web3.js for the moment, and this is one of the main reasons why we created it.</p> Ognyan Chikov Etherlime Github Medium article about Etherlime Youtube video about Etherlime Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:50 00:30 H.1302 (Depage) tezos An overview of Tezos focusing on On-Chain Governance A new develoment paradigm for the blockchain Blockchain and Crypto Currencies devroom <p>Governance is a big topic in the blockchain world. Deciding on the evolution of the protocol, even changing a constant can fracture the community. Hard forks are not uncommon with often negative consequences. Tezos, an emerging blockchain, has been designed from the ground up with the idea of on-chain Governance, where changes are decided by the community on the Tezos blockchain using an open and democratic process.</p> <p>In particular in the context of FOSDEM, this talk will focus on the benefits that this type of governance can offer to the developer community in terms of visibility, rewards and potential for open collaboration.</p> <p>I'll provide background on the topic, an overview of Tezos and its current protocol in relation to voting and governance, and close the talk with a few ideas about the future.</p> Pietro Abate tezos code Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:20 00:20 H.1302 (Depage) hey Hey, A Blockchain-Based Social Network Leveraging Ethereum Sidechains Towards Scalability Blockchain and Crypto Currencies devroom <p>At Hey, we're building a new breed of social network based on the Blockchain. As most main Blockchains present scalability issues (e.g. Etherem scales at 20 transactions/s), we have decided to run our decentralised application on a so-called sidechain, which is an offspring of the Ethereum mainchain and which enables us to scale to the throughput required to support the rich interactions happening within a social network. Come and discover the specific architectural peculiarities that it takes to run a decentralised application on a sidechain.</p> <p>We will be discussing the following elements about building an on-chain social network: - Scalability (volume and throughput) - UX vs Security in fostering users adoption - Loom, an L2 scaling solution on which Hey's sidechain is running - Deep-dive on Hey's architectural peculiarities - How to move assets from a sidechain to the Ethereum mainchain</p> Thomas Vanderstraeten Main website Manifesto GitHub repository Block explorer Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:40 00:30 H.1302 (Depage) nimbus How to build your own Ethereum client The development story of Nimbus Blockchain and Crypto Currencies devroom <p>Early 2018, Nimbus was born - an exciting experimental lightweight client and research project for Serenity - the next major upgrade to Ethereum - and resource-constrained devices, such as mobiles.</p> <p>In this talk, we'll go over the anatomy of an Ethereum client - the cryptography, the peer-to-peer networking, the virtual machine, the latest research - as well as the language we're working in, Nim.</p> <p>Nimbus, a research project started by Status.im, is a client for the Ethereum blockchain. Its focus lies on Serenity, the next major update to the network, and resource-restricted devices, and is done in collaboration with the Ethereum Foundation.</p> <p>Having developed everything from scratch in a new language, we'd like to share our journey through the early stages of development, talk about current research in the space and future plans for the client. In the talk, we will cover topics such as:</p> <ul> <li>Cryptography</li> <li>Peer-to-peer networking</li> <li>Virtual machines</li> <li>Proof-of-stake implementation in Ethereum</li> <li>Sharding and beacon chains</li> <li>Nim, the programming language we're building the client in</li> </ul> Jacek Sieka Github repository Project introduction First talk given on the subject (a lot has changed since then) Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:10 00:15 H.1302 (Depage) opengreffe OpenGreffe Decentralised company register for decentralised companies Blockchain and Crypto Currencies devroom <p>A company register is a centrepiece of the legal existence of firms in a given country. Usually, these registers are state-controlled.</p> <p>Can we conceive a register that is decentralised?</p> <p>We will present OpenGreffe, an Ethereum-based register based on simple legal foundations of the French Code Civil.</p> <h1>What is OpenGreffe?</h1> <p>It's a public blockchain-based registry of firms, in the sense of "société de fait" of the Art. 1832 of the French Code Civil.</p> <p>This registry open but is maintained by selected agents, based on reputation. To kickstart reputation: we can base it on existing real-world business reputation.</p> <p>Each entry in the registry is consisting of:</p> <ul> <li>a company identification (name, associates, capital)</li> <li>an Ethereum address owned by the associates</li> <li>a stamp of approval by a registry maintainer</li> <li>a date.</li> </ul> <p><strong>The goal</strong>: make it possible for anyone to register a company and build reputation for it in the Ethereum world, so as to raise funding, loans, use insurance, etc.</p> <h1>Lifecycle of a registration</h1> <ol> <li>Some founders agree on starting the business.</li> <li>They share an Ethereum address on a multi-sig wallet.</li> <li>They go see some 2+ existing registry maintainers (like Legalstart plus another lawyer company), and ask them to perform KYC/KYB to verify that capital is well shared and that they indeed aim to work together on some projects.</li> <li>The registry maintainers commit the change to the OpenGreffe database.</li> <li>The founders can start building their Ethereum-based business, using the Ethereum address that has been written in the registry.</li> <li>After some months/years, for example some external auditors (like Euler-Hermes, an insurance company) can start scoring the new company for their credit defaults and account payables. Good news: they give an AAA rating, because the founders did well!</li> <li>After some more time, when the founders want to raise a loan, they can claim being proper on their credit payments thanks to external auditors!</li> </ol> <p>All of this, without the use of any state institution!</p> <p>Notes:</p> <ul> <li>step 6 is possible thanks to OpenGreffe only. Indeed, without the registry, good account payables behavior on a given Ethereum address couldn't be linked to a company identification.</li> </ul> <p>Question TBD: why do we need anything other than an Ethereum address? Why identify associates and a company name...?</p> Alex Hajjar Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:30 H.1302 (Depage) hwallet HWallet: The simplest Bitcoin hardware wallet Blockchain and Crypto Currencies devroom <p>All major cryptocurrency hardware wallets on the market either use general purpose microcontrollers that are never meant to be used as secure devices or break the Kerckhoffs's principle by using chips that require an NDA, thus making it impossible to completely release the source code. HWallet (https://gitlab.com/nemanjan/hwallet) is a project developed as a proof of concept to show that it is possible to have a very secure microcontroller, signing Bitcoin transactions in hardware and still be completely open source. The code is released under GPLv3 and is meant to serve as the basis for some future devices or projects aiming to connect the real world to blockchain. This talk will give a brief introduction to the project and describe ways for it's customization.</p> Nemanja Nikodijevic https://gitlab.com/nemanjan/hwallet Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:20 H.1302 (Depage) p4_private_periodic_payments_protocol P4: Private Periodic Payments Protocol Blockchain and Crypto Currencies devroom <p>P4 aims to solve the problem of subscription services offering end-to-end private cryptocurrency payments. This protocol introduces periodicity to cryptocurrency payments through an ongoing relationship between the merchant and the customer without unintentionally disclosing personally identifiable information. We are creating this protocol to allow us to offer a truely end-to-end private subscription data storage solution built with Tahoe-LAFS. By sharing it, we hope that other subscription services will implement our protocol and further the adoption of cryptocurrency payments in real world retail use cases.</p> <p>Although this protocol is currently a work in progress, we have already specified some design decisions. For periodicity, we are avoiding a payment pre-authorization design to keep the user in control of their keys. And for privacy we are utilizing Zcash shielded transactions and the coming improvements in the Sapling release.This protocol is being created by the Least Authority team with support from the Zcash team.</p> Liz Steininger P4 implementation work on GitHub Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:50 00:30 H.1302 (Depage) protecting_secrets_with_hardware Protecting Secrets with Hardware Secure elements, hardware wallets, and device support for cryptocurrencies Blockchain and Crypto Currencies devroom <p>Using special purpose hardware devices to protect secrets is a staple of cryptocurrency enthusiasts. We share the lessons learned of creating secure hardware wallets and insecure conference badges at Monero Hardware.</p> <p>In this half hour presentation, we work backwards disassembling parts of a series of hardware security devices capable of participating in blockchain networks.</p> <p>We consider devices like the Signet, Nitrokey, SC4-HSM, Trezor, and the Monero Hardware Wallet. In our high level comparison we identify common hardware components and common strategies to defeat MITM and other forge attempts at network edges. Shifting gears, we disassemble and put devices under the microscope to study circuits. Explanations are kept at novice level hardware competence to ensure we're all on the same page.</p> <p>An interesting angle involves counting the generic blockchain use cases provided by special purpose cryptocurrency wallet hardware, and we conclude by a whirlwind hypothetical workflow illustrating the steps involved in building a new secure hardware device.</p> Michael Schloh von Bennewitz The Dedicated Monero Hardware Wallet project An example secure hardware design A badge explorer (in contrast to secure hardware) Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:20 00:20 H.1302 (Depage) sustain_in_open_source_with_gitcoin Sustain in Open Source with Gitcoin Gitcoin is a decentralized application where you can use various ERC-20 tokens to grow and sustain in Open Source and many other things. Blockchain and Crypto Currencies devroom <p>Open Source Software and Open Source contributors provide for a massive percentage of today's softwares and web and other technical ecosystems. It provides a freedom and global way of contributing to make things better. However, Open Source contributions are mostly driven by intrinsic motivations. This often leads to burn out due to lack of sustainability. Gitcoin provides a solution to help all the wonderful Open Source contributors earn by doing what they do best. Gitcoin is a bountying platform which helps bounty open source issues which now the contributors can work on and also earn and sustain themselves.</p> <p>Gitcoin is a platform which incentivizes open source contributions in the form of bounties using blockchains. Gitcoin is built upon the Ethereum network and the solidity of smart contract programming language. Ethereum provides opportunities to align incentives across actors in the ecosystem. By programming rights of stakeholders directly into smart contracts, actors are incentivized to provide value, and edge cases are handled <em>without</em> having to involve legacy legal enforcement mechanisms.</p> <ul> <li>We believe in open standards and fat protocols, and have built Gitcoin with StandardBounties -- an Open, Free, Fair, Bounty Protocol on Ethereum.</li> <li>We believe that an ICO and tokenization is not the best business model for our dapp. We do not have a token</li> <li>We believe that blockchain is a game-changer for funding of Open Source. We believe that Open Source Funding and Open Source Jobs will be built on Open Source Money</li> </ul> <p>The aim of Gitcoin is to make a community for developers to collaborate and monetize their skills while working on Open Source projects through bounties. Gitcoin is a decentralized application built on Ethereum’s blockchain. Gitcoin does not have a native token.</p> Saptak Sengupta About Gitcoin Gitcoin Mission Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:40 00:30 H.1302 (Depage) the_current_and_future_state_of_ethereum the current and future state of Ethereum layer 1 scaling, layer 2 scaling, proof of stake and Serenity (Ethereum 2.0) Blockchain and Crypto Currencies devroom <p>If accepted, I will begin discussing the current state of infrastructural development in the Ethereum ecosystem. Starting with why we need scaling solutions, then discussing how layer 1 and layer 2 solutions work. I will then discuss the basics behind Casper Proof of Stake and how Serenity (Ethereum 2.0) fits into all of this. Our team is currently implementing a JS beacon chain which is part of the Serenity ecosystem and working on implementing layer 2 solutions, specifically custodial state channels.</p> <p>When Ethereum was created, the move to Proof of Stake was an inevitability. Layer 2 scaling solutions like state channels have always been a focus of collaborative research. In trying to explain everything Ethereum, I will begin by talking about the basics of blockchain consensus from the first Proof of Work (Nakamoto consensus) blockchain and what the different bottlenecks are with it. To the new blockchains implementing Delegated Proof of Stake, Bonded Proof Stake, and others. The focus will be to identify these bottlenecks and discuss the current research and development being done to solve these problems that have stopped Ethereum and most public blockchains from scaling to the masses. By the end of the talk, it is my intention that you will leave with an understanding of where Ethereum is currently, where Ethereum started, and where Ethereum is going.</p> Aidan Hyman personal website my github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:10 00:40 H.1302 (Depage) the_dao_of_bisq The DAO of Bisq Blockchain and Crypto Currencies devroom <p>Bisq is a P2P exchange for cryptocurrencies. As part of Bisq’s “decentralize everything!” approach, the organization that develops Bisq is in the process of transforming itself into a DAO.</p> <p>Bisq DAO is a second-layer solution on top of Bitcoin blockchain. The Bisq DAO enables, among other things, payment to Bisq contributors, the appointment of roles in the Bisq organization, and the adjustment of parameters in the Bisq trading protocol.</p> <p>This talk presents an overview of the technical design of the Bisq DAO, with a focus on the high level blockchain model that enables a construction of a second layer DAOs on top of Bitcoin. The Bisq DAO is already up and running, currently in a testing environment, with a scheduled mainnet deployment set for 2019.</p> Eyal Ron Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:50 00:30 H.1302 (Depage) substrate Substrate An Open-Source Framework for Building Blockchains Blockchain and Crypto Currencies devroom <p>Substrate is an open-source framework which allows developers to easily create new, customizable blockchains. At its heart, Substrate is a combination of three technologies: WebAssembly, Libp2p and AfG Consensus.</p> <p>Substrate chains have three distinct features that make them "next-generation": a dynamic, self-defining state-transition function; light-client functionality from day one; and a progressive consensus algorithm with fast block production and adaptive, definite finality. The STF, encoded in WebAssembly, is known as the "runtime". This defines the execute_block function, and can specify everything from the staking algorithm, transaction semantics, logging mechanisms and procedures for replacing any aspect of itself or of the blockchain’s state ("governance"). Because the runtime is entirely dynamic all of these can be switched out or upgraded at any time. A Substrate chain is very much a "living organism".</p> <p>Substrate is being developed by Parity Technologies, a company who has build client software for multiple blockchains such as Ethereum, Bitcoin, and the upcoming Polkadot network.</p> Shawn Tabrizi Substrate Collectables Workshop Substrate Github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:20 00:30 H.1302 (Depage) hyperledger_fabric_blockchain_for_the_enterprise Hyperledger Fabric - Blockchain for the Enterprise Blockchain and Crypto Currencies devroom <p>This session will introduce attendees to the Hyperledger Fabric framework, its design principles, its architecture and roadmap, leaving attendees with some practical information on how to get started setting up their own permissioned blockchain network and developing a blockchain application.</p> <p>Hyperledger Fabric is the most popular Hyperledger framework with over 280 contributors from over 27 different organizations and a growing number of applications in production. It is designed for the Enterprise use case and presents some unique characteristics that differentiate it from all other blockchain frameworks, providing finality, performance, confidentiality, and flexibility.</p> <p>This presentation will cover those characteristics, and walk attendees through Fabric's unique architecture, consensus model, and its different components. It will then give insights to Fabric's roadmap, covering the release schedule, the main axis of development, as well as what's in the works for the foreseeable future.</p> <p>Finally, attendees will be given practical information on how to get started using Fabric. This includes setting up a first blockchain network and start developing an application. The various options available to developers will be covered both with regard to the SDKs and smart contract languages available.</p> <p>This session is designed to give attendees a good understanding of Fabric so that they get started with their own development with confidence.</p> Arnaud Le Hors Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 00:25 H.1308 (Rolin) js_love_it JavaScript: If you love it, set it free Javascript devroom <p>The vast majority of JavaScript carries no license or copyright notice at all, often because of concerns about optimizing bandwidth and speed, but also because of a lack of awareness. As JavaScript developers, you are well-positioned to help solve this problem -- by clearly licensing your code, by making improvements to the common tooling, and by providing important feedback on what licensing methods make the most sense.</p> <p>The lack of clear licensing info, especially when combined with minification, makes most JavaScript proprietary for the users who receive and execute it in their browsers, even if the source code is available elsewhere on the Internet in some repository under a free license. The lack also means rampant license violations, for both permissively and reciprocally licensed code. The Free Software Foundation has proposed and implemented a couple of licensing metadata methods by which JavaScript which is intended to be free software can clearly say so, and therefore actually respect the freedom of its users. This is the first step in compliant and realistic distribution of copyleft-licensed JavaScript, as well as a step toward allowing free software users to run only free software inside the browser as they do outside the browser. Other approaches have been proposed as well. We will discuss these questions and seek input on the approaches so far, and hopefully leave with some momentum to make positive changes.</p> John Sullivan LibreJS plugin for detecting JS licensing JavaScript Web Labels documentation Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:30 00:25 H.1308 (Rolin) cross_browser_extensions Cross browser extensions Javascript devroom <p>Browsers are built on very simple principle - “one fit that suits all”. We use number of browser extensions to make most of our browser. How about being on other side of table; lets create one. From Javascript developer to a browser extension developer in 50 mins.</p> <p>Browsers are built on very simple principle - “one fit that suits all”. Browser extensions are the thing that help us to personalize the browser as per our need. We use number of browser extensions to make most of our browser. How about being on other side of table; lets create one. Webextension APIs are here to convert us(Javascript developers) to extension developers. Javascript mixed with Webextension APIs empower us to modify our browsers to suit as per our need. Adding to awesomeness, not only for one browser but same code that can be deployed on Firefox, Chrome, Opera with minimal or no changes.</p> <p>In this session, we will be learning how to develop portable cross browser extensions using Javascript. One can learn how to use features of browser such as Notifications, Tab capture, HTTP request handling, Toolbar buttons in an addon. Also there will be a hands-on demo of creating a browser extension right in the session and deploying it in the browser.</p> <p>By the end of session, audience will be empowered enough to command their browser to perform tasks as per their wish, may be throwing notification to drink water after every hour.</p> <p>By this session, I look forward to increase the circle of browser extension developers so as to make browsers great!</p> Trishul Goel Presentation slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:00 00:25 H.1308 (Rolin) pwa_control_iot Using Progressive Web Apps to control IoT Using a PWA app to control an IoT device using JS frameworks Javascript devroom <p>Using Progressive Web Apps (PWA) to control IoT devices using JS frameworks</p> <p>What you will learn * What is a PWA * Why is a PWA so cool! * How a PWA can control IoT * Why should a PWA control IoT * A cool demo of a PWA controlling a thing!</p> <h2>Content</h2> <p>1) What are progressive web applications? A basic overview and their frameworks. A quick mention of web components. 2) The Samsung things.samsunginter.net demo. The demo at the start showing a PWA app controlling an IoT thing via BlueTooth Low Energy (BLE) interface. 3) Controlling bluetooth low energy from our PWA application. Concerns of browser support and issues developers may have. 4) A breakdown of controlling your IoT thing, via BLE using for our demo a Javascript application running on a Linux OS with a raspberry pi zero. 5) Why should a designer/ developer/ engineer consider using PWA and BLE for the control of ‘things’. And what about security concerns?</p> <h2>Wrapping it up</h2> <p>Going over key points. Good resources. Other technology frameworks to consider. Where to find details of code and this talk at SamsungInter.net</p> Nicholas Herriot source code for demo Presentation http:// Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:25 H.1308 (Rolin) machine_learning_javascript High end augmented reality using Javascript Using markers with a webcam is cool but what about a HoloLens or MagicLeap straight from the browser? Javascript devroom <p>VR is so 2018. Now is time for AR... or is it? In this talk we will explore practically what is feasible today and how. We'll rely on Exokit for the new Magic Leap ML1 after briefly exploring what is AR, what it's good for then some guiding principles. No AR expertise required, just basic JavaScript frontend of backend will do.</p> <p>The talk explored how create and experience augmented reality content on the latest commercially available hardware, namely the MagicLeap MP1 using the exokit node based browser (MIT License) and AFrame (MIT License) as properly isolated and re-usable component.</p> <p>More specifically the different topics were : - limitations of native AR - WebAR, the definition - status of the specifications - hardware support / browsers / libraries - deconstruction of an experiment - what's yet to come - references</p> <p>A live demo with content live streamed to the browser from the HMD was shown to the audience to highlight the device specific features with content they could related to, namely themselves.</p> Fabien Benetou (@Utopiah) Slides Brain dump aframe-eyetracking-blink-controls-component on Github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:25 H.1308 (Rolin) jquery_react From jQuery to React Gradual migration with hybrid approach Javascript devroom <p>Migration from legacy javascript to react in a well existing project isn't instant or easy, but the outcome will be worth it. How we can combine legacy with a modern front end, surviving the hybrid umbrella, improving application's client and enjoy coding !</p> <p>The migration process from legacy javascript to react might take you some time and wouldn’t be easy, but the outcome will be worth it.</p> <p>Two years ago, the foreman project decided to adopt react and started a gradual migration process from legacy javascript (rails assets pipeline) into a modern react web app. We’d like to share with you our journey, the do’s and don’ts</p> <p>Why we should adopt react Where to begin - The first step How to survive under the hybrid umbrella Gradual process - is it good enough? Long term goals (does SPA one of them?)</p> Amir Fefer The foreman repository The foreman website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:25 H.1308 (Rolin) data_structures_javascript Developing data structures for JavaScript Why and how to implement efficient data structures to use with node.js or in the browser Javascript devroom <p>There is a tenacious misconception nowadays that people working with JavaScript do not need to know much about data structures because developing for the web is still often deemed to be, and this cannot be more false, an easier task than "real" programming.</p> <p>Web applications have become complex beasts and node.js allows to build programs that used to be other backend languages' turf. JavaScript developers now need to develop, as with any other programming language, custom data structures to solve particular problems when arrays and objects are simply not enough. The intention of this presentation is therefore to compile series of tips, tricks and use cases regarding the implementation of data structures in JavaScript and the challenges it poses. It is indeed tricky to ensure consistent performance in a high-level language with JIT and where engines like v8 apply a lot of optimization magic. One has to be able to evolve around those constraints. Examples will be taken from libraries such as <a href="https://github.com/graphology/graphology">graphology</a>, <a href="https://github.com/jacomyal/sigma.js">sigma.js</a>' newest version and finally <a href="https://yomguithereal.github.io/mnemonist/">mnemonist</a> to demonstrate that 1. performant data structures can be designed for JavaScript using the language's capabilities and that 2. everyone can use them to solve problems more efficiently.</p> Guillaume Plique Graphology Sigma.js Mnemonist Presentation Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:25 H.1308 (Rolin) foss_corporate_js_stacks AMENDMENT Free Open Source Corporate JavaScript Stacks 2nd Generation JavaScript Frameworks & Libraries Javascript devroom <p>Did you know that over the past few years, large enterprises have been developing and open sourcing their JavaScript technology stacks? On GitHub, you'll find solutions by ING, Uber, PayPal, the Financial Times, Oracle, Microsoft, and many others. Some of these are software vendors, while others are in a variety of other industries. Each of them start from open source frameworks and libraries and all of them are interested in contributions.</p> <p>The session focuses on something that's been going on below the surface, mostly unseen: large enterprises are using open source solutions in the JavaScript ecosystem (e.g., React, Vue, Knockout, Angular), developing their own internal tech stacks, and then pushing these stacks out to GitHub. Let's explore the advantages of these and see what can be done and how practical these developments are.</p> Geertjan Wielenga Submit feedback 12:30 00:25 H.1308 (Rolin) pwa_caching_strategies PWA caching strategies How to obtain maximum performance from your Progressive web app Javascript devroom <p>How to obtain maximum performance from your Progressive web app</p> <p>In this talk i want to explain what PWA is and how to obtain maximum performance for your project focusing on the caching strategies, use cases when you can prefer your caching data vs use cases when it's better to try to fetch your data first.</p> Gabriele Falasca Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:25 H.1308 (Rolin) e2e_tests_cypress Less painful E2E tests with Cypress.io Javascript devroom <p>The normal state of things with end-2-end testing is a pain: tests are flaky, slow, verbose and written by some QA guy. Let's see if I can convince you that it doesn't need to be like that, with an example of Cypress.io framework: a dev-centric open-source tool designed to make our life a little simple.</p> Pavel Kruhlei Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:25 H.1308 (Rolin) js_teaching_tool JavaScript for open computing education Javascript devroom <p>Prof. dr. Edsger W. Dijkstra says that the only true way to teach programming is by writing proofs by hand, on paper, approaching coding like a purely mathematical skill. Only then, he claims, can students truly understand the "radical novelty" of programming. He's onto something, analogies or high-level understanding are appealing and rewarding but ineffective for true learning. What if there were a way to introduce key concepts of computer science in an honest way without scaring away even the above-average student?</p> <p>There are certain sticking points in introductory computer science that are difficult to teach and to learn. Many efforts are moving towards visual programming environments, simplified languages, and AI tutors. The problem with these approaches are open accessiblity &amp; skill transfer from learning environments to professional environments. Using just JavaScript, devtools, and some clever study techniques it is possible to get many of the same benefits you see in custom learning environments while still providing a fluid transition to substantial CS concepts.</p> <p>Stop by to see how CS concepts integrate with every-day programming &amp; languages with some fun hands-on exercises.</p> Evan Cole what is open education? on the cruelty of really teaching computer science on computational literacy critical code studies resources for open computing education presentation slides and examples Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:25 H.1308 (Rolin) js_iot_smart Bring JavaScript to the Internet of Things From Embedded Device to Smart Gateway Javascript devroom <p>With huge popularity and high resource efficiency JavaScript has gone well beyond the web and reached out for many other areas. The rapidly growing Internet of Things is no exception. This talk will discuss why we think that JavaScript is a good option to kick-start building your own Internet of Things. Solutions we have been used for building an end to end IoT system using JavaScript will be discussed. An introduction to JerryScript, an ultra-light JavaScript engine from Samsung, will be given to address the issue of resource restriction in embedded devices. It is followed by a look at JavaScript platforms based on JerryScript that provide direct JavaScript APIs to developers. The open gateway framework is node.js based and targets at decentralized ‘Internet of Things’ with privacy and security in mind. This talk is supported by a demo.</p> Philippe Coval Ziran Sun Slides with video demos WebThingIotJs guide Video demo Mozilla Project Things at FOSDEM Video recording (WebM/VP9) Video recording (mp4) color-sensor-js sources Submit feedback 14:30 00:25 H.1308 (Rolin) testing_nodejs_security Hacking NodeJS applications for fun and profit Testing NodeJS Security Javascript devroom <p>NodeJS is one of the fastest growing platforms nowdays and from a security point of view is necessary to know all posibilities that the platform offers to developers.This is a talk that explains some of the most common problems in NodeJS applications and how using frequently used tools it is possible to exploit such vulnerabilities.Also I will show what are the main vulnerabilities we can found and how we can fix them in our applications.</p> <p>These could be the talking points:</p> <p>-Node.js security packages</p> <p>I will comment how to protect express applications in terms of authentication, logging ,middleware and security best practices before put applications in production</p> <p>-How to prevent OWASP TOP 10 in a NodeJS application In this point I will comment the OWASP NodeGoat project that provides an environment to learn OWASP Top 10 security risks. I will comment the main risks we can find in nodejs applications from a attacker perspective.</p> <p>https://github.com/OWASP/NodeGoat</p> <p>-Tools which will help to protect our node applications like NodeJSScan allow detecting vulnerabilities following some predefined rules</p> José Manuel Ortega NodeJS security checklist NodeJS security tips Helmet package Security best practices Node GOAT Applicattion Node GOAT project GitHub repository Security Checklist Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:25 H.1308 (Rolin) testing_graphql_javascript Testing GraphQL in your JavaScript application Javascript devroom <p>Test GraphQL in your JavaScript application.</p> <p>This talk will show how you can test GraphQL in your JavaScript application using available open-source packages. It will describe how to get started, best practices and a real-world example.</p> Roy Derks (@gethackteam) Code example for FOSDEM 2019 Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:25 H.1308 (Rolin) web_components_future Web Components are the future. And the future is now! Javascript devroom <p>I used to talk about Web Components as the future of the web and this future is here and now.</p> <p>During this talk, I'll show you how you can effectively use these technologies today in your application regardless of your tech stack. From Angular to React including VueJS and Polymer, during this talk, I'll show you a practical way of using Web Components in 2019.</p> Davy Engone (Hackages) Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:25 H.1308 (Rolin) furniture_javascript Making furniture with Javascript An open-source community run platform for designers to experiment with parametric furniture design. Javascript devroom <p>An experimental project which uses web technologies to help design, display and make furniture. O-LAP is an open-source community run platform for designers to experiment with parametric furniture design. Designers create parametric furniture designs as plugins into the framework. Registered designs gets displayed in the online gallery. Users can view the designs from the gallery and customize the design. Framework lets users extract CAD drawings which can be used to fabricate the design using a CNC machine. The project is built as an open access network of git repositories delivering updated Javascript for the clients.</p> <p>O-LAP is a community of makers who like to make furniture from code. Designers write code which can create designs for furniture pieces. They make the designs like a plugin into a web app. The app can then extract drawings from the designs which can be used to fabricate the design using a computer controlled machine (similar to 3D printing). Designers can get creative in different ways when they start writing code to create furniture designs. For example they can make the design for a chair which changes for people with different heights, or furniture which learns from your genetic data to customise it for you. We also adapt a new way of production so that such designs can be manufactured by anyone with a CNC machine. It distributes the task of production to independent makers, so the designs are fabricated closest to the place where they are needed, reducing transport. The group has grown with people across the globe interested. It would be great to showcase it to the broader OS developer community.</p> Amit Nambiar Project page Sample design Github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:25 H.1308 (Rolin) js_binary_ast BinAST Let's make the javascript startup bottleneck a thing of the past! Javascript devroom <p>The size of JavaScript frameworks and apps increases and won't stop increasing any time soon. Unfortunately, this causes large performance issues, both because the files are large and because the browser needs to spend considerable time parsing them.</p> <p>The JavaScript Binary AST is a new content developed by Mozilla, Bloomberg and Facebook to speed things up, both by making files smaller, and by making it much faster for your JavaScript VM to parse them – all if this without needing to minify or uglify your code, unless you want to.</p> <p>Let's see how it works!</p> David Teller Slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 00:20 H.1309 (Van Rijn) webrtc_sip_phone Asterisk WebRTC frontier: make client SIP Phone with sipML5 and Janus Gateway Analyzing a real project on production (www.nethvoice.it) we will look at two different implementations of a SIP Phone WebRTC of NethCTI Web App. We will see great code examples, WebRTC technologies and a real demo of an audio/video call Real Time Communications (RTC) devroom <p>We will analyze the steps to make audio &amp; video communications (as SIP Phone WebRTC) into your WebApp, exploiting Asterisk WebRTC techology. The talk shows pros e cons of two different implementations: one using sipML5 library and one with Janus Gateway.</p> <p>Asterisk WebRTC technology open huge scenarios of applications for unified communications. In this session we will look at that technology to make a SIP Phone WebRTC directly integrated into your web browser to provide a real-time audio &amp; video communication WebApp that serves hundreds of contemporary calls. We will consider two different solutions, sipML5 and Janus Gateway, showing pros and cons of both solutions.</p> Alessandro Polidori sipML5 Janus Gateway WebRTC Asterisk VoIP PBX NethServer Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:25 00:20 H.1309 (Van Rijn) xmpp_beyond_im XMPP Beyond Instant Messaging How we use XMPP to do many neat features Real Time Communications (RTC) devroom <p>XMPP is known to be a instant messaging protocol, and is sometime blamed for its extensibility for bad reasons. This talk will try to show how powerful is XMPP, by explaining how we have built many exciting features likes a blog engine, file sharing, the base of a code forge (tickets handlers + merge requests), a universal remote controller and even a decentralized web framework on top of XMPP. All of this (and more) are parts of the Salut à Toi ecosystem.</p> <p>Lastly we have been hearing more often than not XMPP bashing: XMPP is supposed to be bad because it's old, or XML based, it's not based on web technologies (HTTP, JSON), or there are too many XEPs, etc.</p> <p>This is unfair and often due to a lack of knowledge or a misunderstanding of the protocol. This talk will try to offer a different view of XMPP by explaining how we have used it in the "Salut à Toi" ecosystem to offer exciting features like: - a blog engine - file sharing (P2P or through a server à la Owncloud/NextCloud), using Jingle - the base of a decentralised code forge (tickets handling and merge-requests) - a universal remote control - forums - events</p> <p>In Salut à Toi, XMPP has also been used to build a unique decentralized web framework (Libervia web framework). We'll see how XMPP can help in this field thanks to the powerful PubSub technology.</p> <p>Finally, we'll see how gateways can be used beyond messaging, to, for instance allow XMPP to communicate with other protocols like ActivityPub (the protocol behind Mastodon).</p> Jérôme Poisson (Goffi) official website blog of the main developer Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:50 00:20 H.1309 (Van Rijn) kamailio Kamailio VoIP development update Real Time Communications (RTC) devroom <p>Kamailio is an widely used carrier-grade open source SIP server that focus on flexibility, security and performance. It offers extensive core functionality and provides over 200 extension modules. Therefore it can be challenging as developer to decide which of the available APIs to use for your development. This is especially true if you want to integrate your extension later into the project upstream source code repository.</p> <p>This talk will start with a quick overview of the new functionality in the current major release 5.2. It will then highlight important changes in the last year for developers which are using Kamailio or developing extensions for it. Several code examples describes how to achieve a good security and performance. The talk will also provide guidelines about the development process, contributions acceptance and community interactions.</p> Henning Westerholt Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:15 00:20 H.1309 (Van Rijn) beyond_webrtc_monoculture Beyond the webrtc.org monoculture Alternative WebRTC implementations in C and Python Real Time Communications (RTC) devroom <p>WebRTC’s most prominent implementations rely on the webrtc.org codebase. In this talk, Jeremy Lainé and Lennart Grahl will present two alternative WebRTC / ORTC implementations (aiortc in Python and RAWRTC in C), their use cases, the challenges in writing these implementations and the benefits for the WebRTC ecosystem.</p> <p>Both Chrome’s and Firefox’s (to some extent) WebRTC implementations are built on top of a common codebase hosted at webrtc.org, which serves as the de facto reference implementation of WebRTC. While it is popular, hacking on the codebase or embedding into a custom project is a complex endeavour.</p> <p>Alternative implementations of WebRTC (and ORTC) exist in the form of libraries which are simpler to understand and embed:</p> <ul> <li>RAWRTC (in C, currently data channels only), written by Lennart Grahl</li> <li>aiortc (in Python), written by Jeremy Lainé</li> </ul> <p>The talk will focus on the following aspects:</p> <ul> <li>Use cases and demos for these alternative WebRTC implementations, such as Internet of Things or server-side real time audio and video processing.</li> <li>The genesis and challenges involved in implementing these two libraries.</li> <li>How the WebRTC ecosystem benefits from having such alternative WebRTC implementations.</li> </ul> Jeremy Lainé WebRTC and ORTC implementation for Python using asyncio WebRTC and ORTC with a little bit of RAWR Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:40 00:20 H.1309 (Van Rijn) matrix Breaking the 100 bits per second barrier with Matrix An entirely new transport for Matrix for really terrible networks. Real Time Communications (RTC) devroom <p>The Matrix team has had a lot of fun recently investigating radically more efficient transports thanks to a challenge to get usable client-server and server-server communication on links as bad as 100bps. In this talk we're give a tour of the network simulation environment we've built and the transports, encodings and routing algorithms we've used to slash our network resource utilisation. We'll also look at what this could mean for open source push notification implementations.</p> <p>Matrix is an open protocol and network for secure decentralised communication which uses HTTPS+JSON as its baseline transport and encoding. Whilst HTTP is convenient for developers, it's not the most resource-efficient solution for instant messaging. Matrix has always theoretically supported alternative transports, and we finally got an excuse to build one and push it to a ludicrous extreme - to try to operate usably over links as low as 100bps, as high as 4s latency, and up to 40% jitter. The approaches we've taken include:</p> <ul> <li>Building a Matrix simulator (FOSS) which lets you dynamically spin up hundreds of real containerised homeservers in a virtual physical network to investigate and model performance</li> <li>Switching from full-mesh routing to spanning-tree and thicket-based fan-out routing to avoid overloading links</li> <li>Switching from HTTPS+JSON to compressed CBOR over CoAP with DTLS+PSK (ChaCha20-Poly1305)</li> <li>Investigation of CoAP-over-QUIC and performance comparison with HTTP/3</li> <li>Comparison with MQTT</li> <li>Investigation into using this to power open source decentralised push notifications service.</li> </ul> <p>We'll talk through our findings, show off the simulator (which is <em>ridiculously</em> fun), spin up a ton of servers and log into them, break the network, and see just how well everything holds up...</p> Matthew Hodgson Matrix.org website Matrix.org specification Early notes on the project Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:05 00:20 H.1309 (Van Rijn) chat_over_imap Break the Messaging Silos with COI Get to know the Chat Over IMAP initiative Real Time Communications (RTC) devroom <p>Meet COI (Chat over IMAP) - a powerful contender for WhatsApp, Facebook Messenger and other proprietary messengers. Based on email this open standards &amp; open source iniative overcomes the network effect by providing a chat experience to over 3.8 billion active email users worldwide. By being backwards compatible with pure email, you do not need to convince all your friends, family and peers to join the new system - you can still engage with them and they can reach you. We cooperate with Delta Chat open source project to bundle efforts and ensure interoperability. Join this talk to learn about all things COI from Michael (Dovecot) and Robert (OX).</p> <p>The COI standard is the best way to overcome the current messaging silos and allow everyone to compete on the same terms. Read on to learn why COI matters.</p> <h1>Problem</h1> <p>Most popular messaging services are currently proprietary, closed and operated by single providers. This leads to several problems:</p> <ul> <li><em>Privacy:</em> The provider knows all about your social network: when you communicate with whom, the frequency of your communication and the number, type and length of your messages – even with end to end encryption in place.</li> <li><em>Unfair competition:</em> Service providers depend on the rules set by the messaging owner and access to the API for participation. If the messaging provider changes the rules or chooses to offer your particular service itself, you are out of luck.</li> <li><em>Lock in:</em> You cannot simply change to another provider, because your friends and peers are also using that service provider. If you want to switch you would need to convince everyone to join your new service provider. And of course you would lose all your conversation history if you dare to move away. Don’t like the new app version? Bad luck, you cannot choose another app.</li> <li><em>Silo:</em> the network is only controlled by a single party, you cannot start hosting your own WhatsApp, WeChat or FB Messenger Service. Some providers like Facebook even control several popular messaging apps, like WhatsApp and Facebook Messenger.</li> </ul> <h1>Why Others do not Solve this Problem</h1> <p>Maybe you are thinking “I thought this is why we have Signal, Telegram and the other privacy-centric apps?” – they might very well be better than some of the more popular networks, but in the end, they control the network and other providers are locked out. Basically, you are exchanging one silo with another.</p> <p>“What about XMPP and Matrix.org?” – glad you asked! We love XMPP and Matrix.org because they provide a great solution – this only solves the problem in theory though. With XMPP and Matrix.org-based services you would still need to convince everyone to join your new network. Easy in theory, very complex in practice!</p> <p>“What about RCS? I thought Google fixes this?” – well, are you sure about Google? Google used XMPP in the past but then locked it down. Google tried to push several chat solutions out with only little success. So, Google’s track record is far from perfect. Most notably, however, RCS requires a device to have a phone number (MSISDN). As communication is quickly migrating towards pure IP based solutions, MSISDNs become relics of the past. Most new innovative devices come without MSISDNs, e.g. voice enabled devices such as Alexa or Google Home, VR and AR devices such as HoloLens or Oculus Rift, portable game consoles, etc. With this dependency on MSISDNs, RCS’ future is uncertain.</p> <h1>Meet COI</h1> <p>COI enhances an already existing communication system: email. This already solves lots of problems:</p> <ul> <li>It’s free, open and permission-less.</li> <li>You can reach more than 3.8 billion active email users – this overcomes the network effect!</li> <li>With COI’s backward compatibility, you can reach everyone, even when they are only using traditional email.</li> </ul> <p>In this talk Michael and Robert will explain why COI really offers potential, the technical details about the new standards and what the next steps on this exciting journey are.</p> Robert Virkus Will go live ready for FOSDEM Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:20 H.1309 (Van Rijn) webxr Building Immersive Experiences with the Web The power of the Web with WebXR Real Time Communications (RTC) devroom <p>The way our users consume media and interact with applications is changing. That's partially down to hardware costs coming down but its also because its easier than ever to build these new forms of communication without it costing to earth. WebXR is a standard that combines both Virtual Reality and Augmented Reality into a Web API; by using all that the web has to offer we can build amazing experiences for our users that just require a phone, a web browser and maybe a cheap VR headset. Come check out how you can utilise the technologies deep within the browser on your mobile device to build amazing immersive experiences.</p> Dan Jenkins Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:55 00:20 H.1309 (Van Rijn) resiprocate Introduction to reSIProcate A quickstart for C++ SIP application development Real Time Communications (RTC) devroom <p>Pocock, from the reSIProcate development team, explains how to integrate SIP capabilities into new or existing C++ applications, with a quick look at some of the new APIs for AMQP and Python integration.</p> Daniel Pocock reSIProcate home page Daniel Pocock's blog planet.sip5060.net blog aggregation site Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:20 00:20 H.1309 (Van Rijn) asterisk Asterisk 16: What's new in the world of Asterisk Real Time Communications (RTC) devroom <p>This talk will be to discuss what's happened in the last year or so in the Asterisk project. It will have discussion of recent changes as well as potentially include some updates on ongoing work in the development branch. For people that utilize Asterisk in their networks, it's an opportunity to understand how new functionality might improve their existing installations.</p> Matthew Fredrickson Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:45 00:20 H.1309 (Van Rijn) opensips Building a Multi-Node SIP Platform Using OpenSIPS Cluster multiple OpenSIPS nodes to create a highly available, multi-node SIP platform Real Time Communications (RTC) devroom <p>This talk will present the challenges encountered when building highly available, multi-node SIP platforms and how they are solved using a modern OpenSIPS release.</p> <p>For those aiming to build a high capacity SIP service involving clusterized nodes running in a unified manner, this is a must-attend talk! During the presentation, we will enumerate the major types of issues that might pop up when architecting multiple SIP proxy instance setups and how OpenSIPS completely shatters them, making the management of such platforms a piece of cake!</p> Razvan Crainea Liviu Chircu OpenSIPS Project Website OpenSIPS Project Blog OpenSIPS GitHub Source Code Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:10 00:20 H.1309 (Van Rijn) jitsi_mobile_webrtc Going mobile with React Native and WebRTC How Jitsi Meet went from web to mobile, while sharing most of its code Real Time Communications (RTC) devroom <p>Jitsi Meet started out as a web application, but when mobile became a target we tackled it in a relatively unusual way: the web and mobile share all the business logic wth mobile using React Native for platform support and presentation.</p> <p>Jitsi Meet started out as a web application, but when mobile became a target we tackled it in a relatively unusual way: the web and mobile share all the business logic wth mobile using React Native for platform support and presentation.</p> <p>The talk will go through the challendes and solutions we found along the way.</p> Saúl Ibarra Corretgé Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:35 00:20 H.1309 (Van Rijn) janus_ml Artificial Intelligence, Fuzzing and WebRTC using Janus Having fun with Janus, libFuzzer, OpenCV and Tensorflow Real Time Communications (RTC) devroom <p>This presentation will address two challanges we had to face: Artificial Intelligence and Fuzz Testing in the Janus WebRTC Server</p> <p>The first part of the slot will show how to integrate Artificial Intelligence world with WebRTC using the Janus WebRTC Server. Taking advantage of a dockerized architecture, a Janus instance was configured to provide the handled media to an OpenCV/Tensorflow Server as a low-latency RTP stream, and to receive back information on the processed media through a data channel, everything in a seamless way. The presentation will explore how we built a tool that can be specialized to execute different Computer Vision tasks, from the architecture till the code.</p> <p>The second part is dedicated to fuzzing, and will demonstrate how fuzz testing has been implemented and integrated in the code base in order to fix the discovered bugs. This was particularly useful, considering the emphasis that has recently been placed on fuzz testing in the WebRTC servers world. By randomizing and altering the input patterns in an automated fashion, many software products, thought to be secure because used for years, proved to be vulnerable to specific RTP and RTCP packets, leading to crashes and memory overflow errors. The well known libFuzzer tool was put in place and fully integrated, through the writing of tests and the updating of building scripts in Janus code base.</p> Alessandro Toppi Paolo Saviano https://janus.conf.meetecho.com https://opencv.org/ https://www.tensorflow.org/ https://llvm.org/docs/LibFuzzer.html https://github.com/google/oss-fuzz https://github.com/justadudewhohacks/opencv4nodejs Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:20 H.1309 (Van Rijn) converse_xmpp Converse: Open, federated teamchat with XMPP Real Time Communications (RTC) devroom <p>Converse (and XMPP) provides a federated alternative to other chat apps.</p> <p>You can set up a chat instance for your own project or team, while still using the same account to join other team chats on other servers.</p> <p>In this talk I'll show the advances that have been made the last two years, discuss some of the challenges we're facing and explain how we're improving and extending the XMPP protocol to fulfill modern expectations around teamchats.</p> <p>Two years ago I gave a talk about Converse.js, the XMPP webchat client.</p> <p>Since then lots of further development work has been done and many new features added. Converse can now be used as a fullpage teamchat client.</p> <p>It's being deployed in various environments and an Electron client is in the works.</p> <p>Converse (and XMPP) provides a federated alternative to other chat apps.</p> <p>You can set up a chat instance for your own project or team, while still using the same account to join other team chats on other servers.</p> <p>In this talk I'll show the advances that have been made the last two years, discuss some of the challenges we're facing and explain how we're improving and extending the XMPP protocol to fulfill modern expectations around teamchats.</p> JC Brand The Converse website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:25 00:20 H.1309 (Van Rijn) pade Unified Communications with Pàdé Making the X in XMPP work with software Real Time Communications (RTC) devroom <p>Pàdé (the "p" is pronounced explosively) is a new unified communications solution from the Ignite Real-time community that is built by integrating the SIP and HTTP protocols with XMPP and is focused at the enterprise desktop for small and medium sized businesses. It is implemented client-side as a web browser extension and server-side as a collection of supporting plugins that run inside the Openfire XMPP server.</p> <p>The purpose of the talk is to introduce Pàdé and show how the plugin architectures of Openfire, Chromium and Converse have provided a development ecosystem for creating business driven communication applications and solutions for enterprises.</p> <p>Pàdé is the Yoruba word for "Meet". It is a unified communications client for Openfire Meetings and uses the following front end web applications.</p> <ul> <li>Jitsi-Meet for SFU-based WebRTC audio/video conferencing, screen share and real-time application collaboration with Jitsi Video-bridge</li> <li>SIP.js for SIP based telephony with FreeSWITCH</li> <li>Converse.js for XMPP chat/groupchat with Openfire</li> <li>Chat REST API for creating bots and enabling integration with business applications.</li> </ul> <p>This talk will first introduce Pàdé and then focus on how the plugin architecture of the Chromium web browser, ConverseJs and Openfire made it possible to quickly integrate HTTP and SIP with XMPP and create a feature-rich and very extensible unified communications solution for small and medium businesses.</p> Dele Olajide Pàdé Development at GitHub Ignite Realtime Blogs Dele Olajide Bio Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:50 00:20 H.1309 (Van Rijn) homer HOMER RTC Stats Timeseries for Fun and Profit Real Time Communications (RTC) devroom <p>Can HOMER be used to generate RTC Statistics and Timeseries for Monitoring, Alerting and train Machine Learning? Open-Source says Yes!</p> <p>The HEP stack has been completely redesigned to support the many faces of RTC (Janus, Jitsi, Mediasoup and more) and moderns Event based flows, extending both the User and Developer front with powerful diagnostic and investigative tools alongside cross-platform libraries ready for integration of Capture, Deep-Packet Inspection and Extraction pipelines. Find how to leverage the latest and greatest HEP tools to build your very own Monitoring and Troubleshooting tools, while staying 100% Open-Source!</p> Lorenzo Mangani Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:15 00:20 H.1309 (Van Rijn) sip3 VoIP Troubleshooting and Monitoring with SIP3 Twenty Thousand MPS under the SIP: VoIP network troubleshooting and monitoring simplified Real Time Communications (RTC) devroom <p>An exciting journey from troubleshooting to monitoring or how VoIP network monitoring can simplify troubleshooting and shorten customer tickets resolution time.</p> <p>Find out how SIP3 turned from troubleshooting into monitoring platform, what were the biggest challenges along the way and what is the team behind the project planning ahead.</p> <p>SIP3 is an open sourced project that helps engineering teams detect voice quality problems and prevent call failures. Take advantage of a fast and efficient platform that scales with your business. The powerful monitoring UI provides key performance metrics that are giving detailed VoIP network insights.</p> <p>Learn how you can shorten customer support tickets resolution time while staying focused on your product development.</p> <p>Deep dive into the business KPIs and learn how to recognize service disruptions and system failures before they actually happen.</p> <p>Be part of the live demo and join the SIP3 community! See you in the RTC room!</p> Oleg Agafonov RTC and VoIP traffic monitoring & analysis Twitter Github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:40 00:20 H.1309 (Van Rijn) cgrates Fraud mitigation using traffic pattern monitoring with CGRateS Real Time Communications (RTC) devroom <p>Traffic transparency and ability to react on pattern changes became more than a nice to have functionality in modern communication infrastructure. In this talk Teo will explore various mechanisms implemented in the new ThresholdS module of CGRateS, focusing not only on improving QoS stats but also towards securing networks with automatic reaction profiles against fraud attempts. CGRateS is a battle-tested Enterprise Billing Suite with support for various prepaid and postpaid billing modes.</p> <p>Traffic transparency and ability to react to pattern changes became more than a nice to have functionality in modern communication infrastructure. ThresholdS module within CGRateS offers the ability to monitor generic events in real-time and react when preset thresholds are hit. As reactions, one can set notifications via HTTP or AMQP or CGRateS accounts related top-ups, debits or complete account deactivation. The events can be injected into ThresholdS via simple RPC (ie: JSON-RPC over socket), contributing to easy integration from external systems. In case of the high amount of events received in a short time, ThresholdS will absorb them via built-in DoS protection and only react on predefined intervals or number of events. All these characteristics make ThresholdS an ideal candidate as a standalone component (without involving additional billing subsystems within CGRateS) for fraud detection and mitigation. CGRateS is a battle-tested Enterprise Billing Suite with support for various prepaid and postpaid billing modes.</p> Teofil Voivozeanu Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:05 00:20 H.1309 (Van Rijn) xmpp_sprint Make XMPP Sprint Again Real Time Communications (RTC) devroom <p>This talk will be about how I approached problems organizing sprints, what issues I faced and how I solved them.</p> <p>This summer, on August 18-19th, was held the first developer event in the XMPP community for a long time. The idea came up at the Gulaschprogrammiernacht, in Karlsruhe earlier this year. I set a goal for myself to start a movement in the community, gather interested people, and work together to improve the ecosystem. I'm going to talk about how I approached the organizational problems, what issues I faced and how I solved them.</p> Maxime Buquet Summary of the first sprint that was organized Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:10 00:40 H.2213 ml_on_code_understanding Understanding Source Code with Deep Learning ML on Code devroom <p>Code is written by humans for humans and machines. By learning from the human-oriented components of code, recent research has invented models that start to "understand" some aspects of source code. This opens the exciting possibility of using machine learning to assist developers in their everyday tasks, such as writing new code and finding bugs.</p> <p>In this talk, I will give a brief tour of our lab's recent explorations in this area. Then I will focus on a specific kind of neural networks, namely graph neural networks (GNN). These networks allow us to learn from the rich semantic relationships within code and, by training them on a self-supervised task, they have allowed us to find bugs in open-source projects. I will conclude with a brief discussion of the practical challenges in using machine learning on source code.</p> Miltos Allamanis Research in Lab Academic Survey of Methods Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:50 00:40 H.2213 ml_on_code_code_review_suggestions Suggesting Fixes during Code Review with ML ML on Code devroom <p>Many developers hate doing code reviews. Reading foreign code is hard, and suggesting improvements is even harder. Yet a dramatic portion of code review time goes to figuring out the boring details: formatting, naming, microoptimizations and best practices. We believe that all of those can be automated with ML on Code, either learning from a particular project or from all the open source code in the world which is relevant. This talk will be about open source "analyzers" - ML-driven code review agents which deal with the boring but important details.</p> Vadim Markovtsev Code style analyzers Video recording (WebM/VP9) Video recording (mp4) Slides Submit feedback 10:30 00:40 H.2213 ml_on_code_astor Astor: An automated software repair framework ML on Code devroom <p>Astor is an open-source framework for repairing buggy Java program, which includes 5 publicly available repair approaches. Those repair approaches take as input a buggy Java program (having at least one failing test case that exposes the bug) and search for a patch that produces all test cases to pass. Astor provides twelve extension points that form the design space of program repair. Using those extension points, program repair researchers can create new repair approaches or extend those included in the framework by choosing existing components (among 33 ones) or implementing new ones. In this talk, we will first discuss the main techniques proposed on the field of automated software repair. Then, we will discuss how to execute repair approaches included in Astor framework, how to extend them, and how to implement new repair approaches reusing components provided by Astor.</p> Matias Martinez Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:10 00:40 H.2213 ml_on_code_kotlin_anomalies Code anomalies in Kotlin programs Automatic detection of anomalous code fragments written in Kotlin ML on Code devroom <p>This talk will discuss code anomalies — code fragments that are written in some way that is not typical for the programming language community. Such code fragments are useful for language creators as performance tests, or they could provide insights on how to improve the language. With Kotlin as the target language, we discuss how the task of detecting code anomalies for a very large codebase could be solved using well-known anomaly detection techniques. We outline and discuss approaches to obtain code vector representation and to perform anomaly detection on such vectorized data. The talk will highlight examples of such anomalies found in open source GitHub repositories.</p> Timofey Bryksin Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:50 00:40 H.2213 ml_on_code_code_review_mailing_list Predicting areas for PR Comments based on Code Vectors & Mailing List Data ML on Code devroom <p>Many of us have seen the small PR changing 20 lines with 20 comments and the large PR with over 1k line changes sail through (or stall) with no comments because who has the time to read all that text? What if we could predict areas of the PR that are more likely to need attention?</p> <p>Many of us have seen the small PR changing 20 lines with 20 comments and the large PR with over 1k line changes sail through (or stall) with no comments because who has the time to read all that text? What if we could predict areas of the PR that are more likely to need attention? This talk will explore creating a model to predict areas of PRs that will generate comments on, using a combination of historic comment data and mailing list stack traces. Then once we’ve built this model we’ll explore how to serve it live with Kubeflow as well as how Kubeflow and K8s can work together to allow us to scale our model training to a larger set of projects.</p> Holden Karau Kris Nova Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:40 H.2213 ml_on_code_deduplicating_pga Deduplication on large amounts of code Fuzzy deduplication of PGA using source{d} stack ML on Code devroom <p>In this talk I will discuss how to deduplicate large amounts of source code using the source{d} stack, and more specifically the Apollo project. The 3 steps of the process used in Apollo will be detailed, ie: - the feature extraction step; - the hashing step; - the connected component and community detection step; I'll then go on describing some of the results found from applying Apollo to Public Git Archive, as well as the issues I faced and how these issues could have been somewhat avoided. The talk will be concluded by discussing Gemini, the production-ready sibling project to Apollo, and imagining applications that could extract value from Apollo.</p> <p>After a quick introduction on the motivation behind Apollo, as said in the abstract I'll describe each step of Apollo's process. As a rule of thumb I'll first describe it formally, then go into how we did it in practice.</p> <p>Feature extraction: I'll describe code representation, specifically as UASTs, then from there detail the features used. This will allow me to differentiate Apollo from it's inspiration, DejaVu, and talk about code clones taxonomy a bit. TF-IDF will also be touched upon. Hashing: I'll describe the basic Minhashing algorithm, then the improvements Sergey Ioffe's variant brought. I'll justify it's use in our case simultaneously. Connected components/Community detection: I'll describe the connected components and community notion's first (as in in graphs), then talk about the different ways we can extract them from the similarity graph.</p> <p>After this I'll talk about the issues I had applying Apollo to PGA due to the amount of data, and how I went around the major issued faced. Then I'll go on talking about the results, show some of the communities, and explain in light of these results how issues could have been avoided, and the whole process improved. Finally I'll talk about Gemini, and outline some of the applications that could be imagined to Source code Deduplication.</p> Romain Keramitas Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:10 00:40 H.2213 ml_on_code_commit_message Neural commit message suggester Proposing git commit messages with neural networks ML on Code devroom <p>We present a suggester of git commit messages based on the files diff: by reading the commit patch, the system outputs a message in natural language describing the subject of the commit. While high level intent guessing is out of the scope of this project, this may provide further insights to a CI system in refusing pull requests with poor commit messages or not explaining the subject matter.</p> <p>When it comes to commit messages, we all have witnessed the worst of our kind: while code is (hopefully) carefully crafted, the urge to submit our work for peer review can play badly with the helpfulness of the commit message attached (leaving a helpless reviewer in the dark and calling for the developer presence to explain the meaning of the coded feature). Machine translation techniques come to the rescue, by providing a viable aid to suggesting better commit messages from a golden standard of various situations: by analyzing thousands of commit messages along with their patches, we show that a machine can understand the semantics of a patch thus providing a way to automatically tell good messages from bad messages. We can employ this in CI environments to rule out insufficiently documented patches or to propose better alternatives to the developers.</p> Alberto Massidda Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:50 00:40 H.2213 ml_on_code_mining_source_code Mining Source Code^3 Mining Idioms, Usages and Edits ML on Code devroom <p>Code is an incredible source of information. Indeed, mining software repositories can tell us whether code is natural, how to use a new framework, or how to identify similar changes.</p> <p>In this talk, I will present state-of-the-art and limitations on the usage of graph-based algorithms to mine software repository.</p> <p>In particular, I will cover how program analysis, pattern mining and pattern matching can help developers to identify:</p> <ol> <li>conventions and idioms, using syntactic information commonly represented as Abstract Syntax Trees;</li> <li>framework usages, relying on semantic information such as control and data dependencies represented as Program Dependency Graphs;</li> <li>similar modifications in multiple different locations, computed using change loggers or change distillers.</li> </ol> <p>Last I will present INTiMALS, an ongoing industry-university collaboration to develop a language-parametric framework for mining this information in legacy systems.</p> Dario Di Nucci Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:40 H.2213 ml_on_code_coming Coming: a Tool for Mining Change Pattern Instances from Git Commits ML on Code devroom <p>Software repositories such as Git have become a relevant source of information for software engineer researchers. For instance, the detection of commits that fulfill a given criterion (e.g., bugfixing commits) is one of the most frequent tasks done to understand the software evolution. However, to our knowledge, there is not open-source tools that, given a Git repository, returns all the instances of a given source code change pattern. In this talk, we present Coming, a tool that takes an input a Git repository and mines instances of source code change patterns on each commit. For that, Coming computes fine-grained changes between two consecutive revisions, analyzes those changes to detect if they correspond to an instance of a change pattern (specified by the user using XML). Finally, after analyzing all the commits, Coming presents the frequency of code changes and the instances found on each commit.</p> Matias Martinez Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:10 00:40 H.2213 ml_on_code_automatic_refactoring How to build an automatic refactoring and migration toolkit ML on Code devroom <p>Every code base needs to be modernised at some point, either to reduce the technical debt or to migrate to another language. In such complex and challenging projects, automation is a key point to reduce the workload of low added-value tasks as monotonous refactoring or redundant paradigm translation.</p> <p>To do so with our clients, struggled with deeply in-debt code bases, we built an in-house toolkit to support the developers in modernisation projects from detection to transformation. We created a language-agnostic model to represent code and several engines based on it: code smells and custom pattern detection, quality metrics, automatic refactoring, code generation… With this talk I would like to share what are the steps to build a toolkit to automate code’s transformation and share a few practical use cases.</p> Juliette Tisseyre Slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:50 00:40 H.2213 ml_on_code_smelling_source Smelling Source Code Using Deep Learning ML on Code devroom <p>Poor quality code contributes to increasing technical debt and makes the software difficult to extend and maintain. Code smells capture such poor code quality practices. Traditionally, the software engineering community identifies code smells in deterministic ways by using metrics and pre-defined rules/heuristics. Creating a deterministic tool for a specific language is an expensive and arduous task since it requires source code analysis starting from parsing, symbol resolution, intermediate model preparation, and applying rules/heuristics/metrics on the model. It would be great if we can leverage the tools available for one programming language and cross-apply them on another language.</p> <p>In this presentation, I would like to present our work on detecting smells using deep learning models. It will cover the tooling aspects summarizing the preparation goes behind the scene before the source code is fed into a deep learning model. The focus of the work is on two specific aspects: 1. to show that we can detect code smells with minimal pre-processing without converting them to a feature set. We compare the performance of smell detection among different deep learning models (CNN and RNN) in different configurations (i.e., model architectures). 2. to explore the feasibility of applying deep learning models across the programming languages. In other words, learning smell detection from samples in one programming language and using the model to detect smells in samples of another programming language. The presentation will bring out insights from this exploration.</p> Tushar Sharma Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 00:20 H.2214 nfs_ganesha_weather_report NFS-Ganesha Weather Report Software Defined Storage devroom <p>The NFS is old but simple protocol existed from long back and it is one of most widely accepted protocol in linux systems. NFS-Ganesha is user space nfs server. This talk will helpful to anyone who wants to run their day today application on nfs. NFS-Ganesha has plug-able architecture in which any file systems can easily added, currently it supports Gluster, Ceph(FS/RGW), GPFS etc. There are a lot of features and discussions happening on the community. This talk will help to provide update whats happening on the community</p> <p>NFS-Ganesha is a user-mode file server for NFS (v3, 4.0, 4.1, 4.1 pNFS, 4.2) and for 9P from the Plan9 operating system. It can support all these protocols concurrently. The project was started around 2009 and it got well matured over past few years and includes participation including CEA, IBM, Red Hat. There are a lot protocol specific features added including LABELED NFS, Delegations to nfs-ganesha layer. The is workload specific changes made to nganesha layer which includes async op and non blocking io's. There are other projects like storhaug which integrates the nfs-ganesha to ctdb and so on. The session will touch up briefly on all the new improvements happening in nfs-ganesha and how it can be consumed in different scenarios.</p> Jiffin Tony Thottan Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:25 00:25 H.2214 cehp_mgr_modules_fun_and_profit Leveraging ceph-mgr modules for fun and profit Software Defined Storage devroom <p>In this talk, we will demonstrate how Ceph's ceph-mgr can be leveraged for whatever silly project we want, as long as we have a silly idea for a project and enough to time to sink into it. In our case, we will show how one could relay health status (and other information) to the user by visual, annoying means -- i.e., by plugging into a Philips Hue bridge, and changing the colors of the room.</p> <p>We shall cover</p> <p>1) high-level view of what ceph-mgr is 2) basics of ceph-mgr modules, their bare-bones architecture and how to create a simple module 3) the basic architecture of our proof-of-concept 4) a quick, live (ugh) demo, should power sockets be available 5) time permitting, an overview of how to scale this to something that goes beyond a silly home made project</p> Joao Eduardo Luis Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:55 00:15 H.2214 gluster_as_a_service How we use Gluster offering Gluster-as-a-service Software Defined Storage devroom <p>At ING Netherlands our team is building gluster-as-a-service providing our internal clients with a portal where they can request volumes and make changes to these volumes. In this talk we would like to go through the design of this setup, discuss the scale out ability's and our experiences developing this service and using Gluster. Technologies: RH Gluster HA proxy Ganesha Nagios and Tendlr</p> <p>At ING Netherlands our team is building gluster-as-a-service providing our internal clients with a portal where they can request volumes and make changes to these volumes. In this talk we would like to go through the design of this setup, discuss the scale out ability's and our experiences developing this service and using Gluster. Technologies: RH Gluster HA proxy Ganesha Nagios and Tendlr</p> Jurgen Reij Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:15 00:35 H.2214 container_storage_interface_explained The Container Storage Interface, Explained Software Defined Storage devroom <p>Over the next year, all Kubernetes persistent storage will be moving to CSI plugins. But what is CSI? What's in the specification? How does it work in practice?</p> <p>The rapidly evolving Container Storage Interface specification has finally slowed down, reaching its first stable release v1.0. With it, all vendors have rushed to update their drivers or write new ones. But what does this mean to us? How does CSI benefit the ecosystem? What are the final features?</p> <p>In this talk we’ll cover this and more, going over the objectives and feature of the CSI spec, as well as some of the Kubernetes flows. By the end of the talk, you’ll be up to date with the current CSI spec, be able to deploy a Kubernetes cluster with a CSI plugin, and know the elements in Kubernetes’ CSI, their relationship, and the part that each one plays.</p> Gorka Eguileor Slides Ember-CSI website Ember-CSI repository CSI spec Kubernetes docs Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:55 00:40 H.2214 ceph_project_status_update What's new in Ceph Nautilus project status update and preview of the coming release Software Defined Storage devroom <p>Project status update, and preview of what is new in the Ceph Nautilus release, due out this month. Management dashboard, unified orchestration CLI and GUI across kubernetes and bare metal environments, device failure prediction, PG num autoscaling, memory autoscaling, live RBD image migration, and more.</p> Sage Weil Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:40 00:40 H.2214 openebs_breaking_million_iops_barrier OpenEBS asymmetric block layer in user-space breaking the million IOPS barrier Software Defined Storage devroom <p>Container Attached Storage was introduced at FOSDEM last year, we will revisit the basic concept shortly and give an update how we have abstracted storage fully in user space, and are capable of breaking the million IO barrier with the latest data engine.</p> <p>Last years talk was more a generic introduction about the concepts and ideas around openEBS. This time around we will go over more detail as to how we do it. We will go over the concept of front-ends and back-ends and how they allow for asymmetrical backends.</p> <p>We will also be talking about, how we implement proxying and replication in openEBS and the ability to do rebuilds. Also, how can we make sure we are making good use of the latest hardware, e.g., NVMe devices and NVMe-OF (RDMA as well as TCP) and make sure we do not incur a penalty of being in user space?</p> Jeffry Molanus Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:25 00:25 H.2214 clustered_samba Clustered Samba: Witness Protection Programming Software Defined Storage devroom <p>This talk will cover two new clustering features under development for Samba: Persistent Handles and the Witness service. Alongside a scale-out filesystem such as CephFS, both features can be combined to provide transparent client failover and automatic load balancing.</p> <p>The presentation will finish with a recap of ongoing and outstanding clustered Samba tasks, focusing in particular on CephFS integration.</p> <p>This talk is intended for developers and users familiar with Samba.</p> <ul> <li>Clustered Samba overview</li> <li>Current SMB1/SMB2 failover methods with CTDB <ul> <li>Tickle ACKs</li> </ul> </li> <li>New failover features <ul> <li>Transparent failover in SMB3 <ul> <li>Persistent handles</li> <li>Witness protocol</li> </ul> </li> <li>Automatic cluster balancing</li> </ul> </li> <li>Demo</li> <li>Clustered Samba outlook / future tasks</li> </ul> David Disseldorp Samuel Cabrero Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:55 00:40 H.2214 ceph_storage_with_rook Ceph storage with Rook Running Ceph on Kubernetes Software Defined Storage devroom <p>The talk will show how simple it is to use Rook for Ceph storage on Kubernetes. In addition to showing how simple it is to use the storage, the ease of adding and removing nodes will also be shown in a demo.</p> <p>Target audience are people interested in Ceph and Kubernetes.</p> <p>Topics:</p> <ul> <li>What is Rook?</li> <li>Architecture of Rook</li> <li>Kubernetes native integration</li> <li>What can Rook help you do (better) with Ceph?</li> <li>Demo of Rook's capabilities <ul> <li>Creating a Ceph cluster</li> <li>Showing ease of consuming storage using an example application</li> <li>Adding and removing a new (Ceph) cluster node</li> </ul> </li> <li>Why Rook?</li> </ul> Alexander Trost "Distributed storage with Rook" old slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:40 00:40 H.2214 gluster_container_storage Gluster Container Storage Storage for containers, in containers Software Defined Storage devroom <p>Gluster Container Storage (GCS) is a new initiative from the Gluster community. It integrates several different old and new Gluster projects, building on top of the experience gained from the Heketi and gluster-kubernetes projects, and aims to provide the best persistent storage solution for containers.</p> <p><a href="https://github.com/gluster/gcs">Gluster Container Storage</a> (GCS) is a new initiative from the <a href="https://www.gluster.org">Gluster</a> community, that aims to build the best persistent storage solution for containers.</p> <p>GCS integrates different Gluster projects, built on top of the experience gained from the <a href="https://github.com/heketi/heketi">Heketi</a> and <a href="https://github.com/gluster/gluster-kubernetes">gluster-kubernetes</a> projects and provides users with simple and robust tools to deploy, monitor and manage Gluster as well-behaved citizens of the Kubernetes world.</p> <p>GCS introduces the new <a href="https://github.com/gluster/anthill">Anthill</a> and <a href="https://github.com/gluster/gluster-csi-driver">gluster-csi-driver</a> projects. Anthill is Kubernetes operator, that deploys and manages GlusterFS with <a href="https://github.com/gluster/glusterd2">GlusterD2</a> and the gluster-csi-driver as containerized applications in a Kubernetes cluster. The gluster-csi-driver implements the <a href="https://github.com/container-storage-interface/spec">Container Storage Interface</a> API, and interacts with GlusterD2 to automatically provision persistent volumes for Kubernetes applications when needed.</p> <p>In this session we'll learn how all of these projects work together and form GCS.</p> Kaushal Madappa Slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:25 00:40 H.2214 ceph_manager_dashboard Managing and Monitoring Ceph with the Ceph Manager Dashboard Introduction / Overview and Demo Software Defined Storage devroom <p>The Ceph Manager Dashboard is a web-based application that aims for providing a built-in and easy to use graphical user interface for performing a wide range of administrative tasks on a Ceph cluster.</p> <p>In this presentation, Lenz will give an introduction and overview to the Dashboard, its architecture and current functionality as well as an outlook into ongoing development and future plans.</p> <p>The dashboard's various elements and components will also be shown in the form of a live demo.</p> <p>Starting with the "Mimic" release, the <a href="https://ceph.com/">Ceph distributed storage project</a> ships with a new web-based management and monitoring tool out of the box: the Ceph Manager Dashboard gives Ceph Administrators an easy to use interface to manage and monitor various aspects of their cluster without having to use the CLI or any third-party utilities.</p> <p>It is based on the original (read-only) Ceph Dashboard as well as the concepts and architecture of the standalone open source Ceph management framework <a href="https://openattic.org/">openATTIC</a>. The development of this new component is driven and coordinated by the openATTIC team at SUSE as well as engineers from Red Hat and other members of the Ceph community.</p> <p>Features include monitoring the cluster health status, managing OSDs, Pools, Ceph block devices (RBDs) and the Object Gateway (RGW). Detailed performance graphs for each component and service are provided by embedding Grafana Dashboards into the Ceph Manager Dashboard UI.</p> <p>The web application is developed using the Angular web development framework; the backend code is implemented as a Ceph Manager Module based on Python and the CherryPy framework.</p> Lenz Grimmer Ceph Project Dashboard Documentation Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:10 00:40 H.2214 smb2_posix_extensions SMB2 POSIX Extensions Where we are, what remains to be done. Software Defined Storage devroom <p>The SMB3 POSIX Extensions, a set of protocol extensions to allow for optimal Linux and Unix interoperability with NAS and Cloud file servers, have evolved over the past year, with test implementations in Samba and in the Linux kernel. These extensions address various compatibility problems for Linux and Unix clients (such as case sensitivity, locking, delete semantics and mode bits among others). This presentation will review the state of the protocol extensions, what was learned in the implementations in Samba and provide an opportunity for feedback and suggestions for future improvements to the POSIX extensions.</p> Jeremy Allison Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:55 00:15 H.2214 ceph_rgw_sync_modules Exporting Ceph Object Storage data to the outside world RGW Sync Modules for fun & profit! Software Defined Storage devroom <p>RGW (Rados Gateway) is the HTTP REST frontend to Ceph, exposing a S3 and Swift API. From the Kraken release of Ceph, RGW introduced the concept of sync modules which allows for forwarding data and metadata to an external tier. This allows for interesting analysis of metadata or archival/backup solutions without the need to support these in Ceph itself. We'll take a brief look into the design of sync modules, peer into the crystal ball for what the future holds and also cover the currently available ElasticSearch and Cloud Sync modules, which allows data to be exported to external clouds supporting a S3 like API including Amazon S3.</p> <p>Ceph is a distributed storage platform that is a contender to become the future of software defined storage, providing unified access to block, object and file interfaces. Rados Gateway (abbreviated RGW from here on) is the Object storage component of Ceph, exposing an all familiar S3 and Swift APIs for object storage. Since the Kraken release, RGW introduced the concept of sync modules which allows for forwarding data and metadata to an external tier. This allows for interesting analysis of metadata or archival/backup solutions without the need to support these in Ceph itself. We'll look into the basic design of sync modules, pointers to look for should you ever need to write one, cover the existing ElasticSearch &amp; Cloud sync modules, and see what the future holds for RGW Sync modules.</p> Abhishek Lekshmanan Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:15 00:45 H.2214 small_files_in_swift_cluster Storing "Lots Of Small Files" in a Swift cluster Software Defined Storage devroom <p>OpenStack Swift is the massively scalable object storage of OpenStack. It can store billions of objects in a single cluster without any disturbances. But what happens if all of your objects are "small objects"?</p> <p>Because OpenStack Swift stores objects as files on XFS, disks will end-up storing millions of small files, creating large performance and stability issues. This is all related to the constraints of POSIX filesystems.</p> <p>During this presentation, we will give you an overview of these issues, and explain their root causes. You will then discover what we tried to overcome them, as well as the chosen solution. Eventually, we will present you results of our production deployment.</p> Romain LE DISEZ https://github.com/alecuyer/swift/tree/master-losf Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 01:00 H.3242 bof_gluster_fs Gluster FS BOFs (Track C - in H.3244) bof Submit feedback 13:00 01:00 H.3242 riotos_bof Riot OS BOFs (Track B - in H.3242) bof Submit feedback 14:00 01:00 H.3242 podcast_friends_of_illumos Podcast Friends of IllumOS BOFs (Track B - in H.3242) bof Submit feedback 15:00 01:00 H.3242 lua_bof Lua BOFs (Track B - in H.3242) bof Submit feedback 16:00 01:00 H.3242 jenkins_bof Jenkins project continuous delivery BOFs (Track B - in H.3242) bof Submit feedback 10:00 01:00 H.3244 bof_videolan VideoLAN BOF BOFs (Track C - in H.3244) bof Submit feedback 11:00 01:00 H.3244 vlc_bof VLC Tech Meet BOFs (Track C - in H.3244) bof Submit feedback 12:00 01:00 H.3244 bof_terraform Terraform and Infrastructure Testing BOFs (Track C - in H.3244) bof Submit feedback 13:00 01:00 H.3244 bof_arch_linux Arch Linux Meetup BOFs (Track C - in H.3244) bof Submit feedback 15:00 01:00 H.3244 tor_bof Tor relay operators meetup BOFs (Track C - in H.3244) bof Submit feedback 16:00 01:00 H.3244 bof_ci_infrastructure Sharing CI infrastructure on FOSS Projects BOFs (Track C - in H.3244) bof Submit feedback 09:00 00:15 AW1.120 sdr_intro Intro to the Free Software Radio Track Free Software Radio devroom <p>Welcome talk.</p> Martin Braun Submit feedback 09:15 00:15 AW1.120 gr_soapy gr-soapy: A handy SDR hardware interface module for GNU Radio Free Software Radio devroom <p>gr-Soapy is an OOT module for the GNU Radio platform to configure and manage a plethora of SDR devices through the SoapySDR API. It provides easy to use source and sink blocks with various parameter fields, enabled according to the capabilities of the device specified by the user.</p> <p>With the emergence of various low cost SDR devices that anyone can experiment with, ham radio community continues to expand and create fascinating open source projects. Aside from the ham radio community, also researchers and professionals study and develop protocols and applications for the radio spectrum with the use of SDR devices.</p> <p>To facilitate the interface of users with SDR devices, in this short talk we will present the gr-Soapy OOT module for the GNU Radio platform. gr-Soapy tries to simplify the process of configuring and using SDR devices inside the popular platform of GNU Radio, without omitting functionalities needed by more experienced users. It uses the open source SoapySDR project for the management of the devices. SoapySDR is an active, expanding and robust API, enabling gr-Soapy to be up to date without the need to actively update it with every new SDR device that becomes available.</p> Nestoras Sdoukos repo containing project Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:30 00:30 AW1.120 sdr_rusty GNU Radio with a Rusty FPGA Experiment building FPGA accelerated blocks with Rust bindings Free Software Radio devroom <p>Spurred out of my need to write a fast decoder block and my seeming inability write presentable CPP code, we explore writing Rust bindings for GNU Radio block, and then implement a work function in the programmable logic of a Xilinx UltraScale+ FPGA.</p> <ul> <li>Quick overview of the state of CPP &lt;-> Rust bindings</li> <li>Overview of a decoder block implemented on the FPGA.</li> </ul> <p>Spurred out of my need to write a fast decoder block and my seeming inability write presentable CPP code, we explore writing Rust bindings for GNU Radio block, and then implement a work function in the programmable logic of a Xilinx UltraScale+ FPGA.</p> <ul> <li>Quick overview of the state of CPP &lt;-> Rust bindings</li> <li>Overview of a decoder block implemented on the FPGA.</li> </ul> Brennan Ashton Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:00 00:30 AW1.120 sdr_grfec Protect your bits: Introduction to gr-fec A look into the error-correction capabilities of GNU Radio Free Software Radio devroom <p>In the 1940s, Shannon proved that we can transmit data error-free depending on rate and SNR. In practical radios, we need to employ forward error correction (FEC) to achieve those rates. GNU Radio has a built-in component to handle FEC, called gr-fec. After some basics of FEC, we will see how GNU Radio does this, and how it can be extended.</p> Martin Braun Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:30 AW1.120 gr_scapy GNU Radio meets Scapy Free Software Radio devroom <p>Most GNU Radio modules focus on the physical layer and less on creating standard compliant data payloads. In this talk, we'll show how easy it is to combine GNU Radio implementations of WLAN and ZigBee with Scapy, a powerful interactive packet manipulation program. Using Scapy, we can quickly craft our own packets and poke at other stations (e.g., by sending deauths) or fuzzing its network stack (e.g, to test an IoT device).</p> <p>Most GNU Radio modules focus on the physical layer and less on creating standard compliant data payloads. In this talk, we'll show how easy it is to combine GNU Radio implementations of WLAN and ZigBee with Scapy, a powerful interactive packet manipulation program. Using Scapy, we can quickly craft packets that encapsulate protocols from the whole network stack, including WLAN, ZigBee, and higher layers like IP and TCP. Thanks to GNU Radio's socket interface, we can forward these packets into the flow graph and send them out through our PHY. With this setup, it becomes trivial to broadcast WLAN beacons, deauth WLAN devices, or even fuzz protocols by sending frames with randomized, not necessarily standard compliant data. The latter is possible, since Scapy allows to fill all fields of a protocol header that are not explicitly set with random data. This might trigger all kinds of interesting behavior.</p> Bastian Bloessl Blog Post Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:45 AW1.120 gnuradio GNU Radio in 2019: Facts and Plans An overview of where GNU Radio is going this fine year Free Software Radio devroom <p>GNU Radio is one of the biggest and most widely adopted SDR framework in the free software world. In this talk, we will lay out how we intend to keep it going for the next year, and beyond.</p> <p>GNU Radio is one of the biggest and most widely adopted SDR framework in the free software world. It's history is pretty interesting, and spans multiple decades at this point. However, we're far from being done! We will talk about how we intend to keep the samples flowing in 2019, and beyond.</p> Marcus Müller Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:45 00:45 AW1.120 sdr_libsigmf libsigmf: Human Tools for Extra-Terrestrial and AI Radios Free Software Radio devroom <p>This presentation will introduce libsigmf, a FOSS library providing C++ functionality and utilities for generating, using, and translating digital recordings of signals using the Signal Metadata Format (SigMF), itself a FOSS effort that was first publicly announced at FOSDEM'17. This talk will provide an introduction to SigMF and its design philosophy, sharing its strengths, current state, and intended usage patterns. It will then present details on libsigmf, which can be integrated and used in other projects, like GNU Radio, or directly via a C++ API. Finally, we will discuss the use of SigMF in machine learning, an application for which it is particularly well suited. Additionally, the 'Breakthrough Listen' project at the UC Berkeley SETI Research Center will share their use of libsigmf and the availability of SigMF datasets from 'Breakthrough Listen' radio telescope facilities.</p> Ben Hilburn Nathan West SigMF SETI DeepSig Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:30 AW1.120 sdr_makerspace SDR Makerspace sdrmaker.space Free Software Radio devroom <p>SDR Makerspace (https://sdrmaker.space) is a collaboration between the European Space Agency and Libre Space Foundation with the objective of bringing innovative open-source SDR technologies to space communications. Makers, open-source hackers, SDR enthusiasts, and researchers are brought together to work on small SDR hardware and software projects, focusing on rapid prototyping and development of reusable open-source SDR components for future CubeSat missions. In this presentation, we give an overview of the current activities and present the results achieved so far.</p> <p>SDR Makerspace (https://sdrmaker.space) is a collaboration between the European Space Agency and Libre Space Foundation with the objective of bringing innovative open-source SDR technologies to space communications. Makers, open-source hackers, SDR enthusiasts, and researchers are brought together to work on small SDR hardware and software projects, focusing on rapid prototyping and development of reusable open-source SDR components for future CubeSat missions. In this presentation, we give an overview of the current activities and present the results achieved so far.</p> Alexandru Csete SDR Makespace Libre Space Foundation SatNOGS Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:30 AW1.120 sdr_dpd Digital Predistortion Implementation and Use Free Software Radio devroom <p>Digital Predistortion is a powerful but theoretically simple DSP technique for improving the output spectrum of radio. This talk introduces the subject through the underlying theory and GNU Radio flowgraphs.</p> Derek Kozel Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:30 AW1.120 sdr_equinox Equinox: A C++11 platform for realtime SDR applications Free Software Radio devroom <p>Equinox: A C++11 platform for realtime SDR applications</p> <p>Equinox is a block programming platform suitable for SDR applications. It is written in C++11 and targets mainly realtime applications. To accomplish that, it exploits the flowgraph topology trying to optimize the scheduling of the different components and the data exchange between them. Using graph analysis algorithms and based on the available CPU cores, overheads like threading synchronization, as well as data dependencies or memory copies can be reduced.</p> <p>At the same time, the platform tries to provide such an abstraction so it can easily adapt on the application requirements. To do so, it provides an abstracted scheduling mechanism, that can be easily extended. Currently there are two available schedulers. A simplified one, trying to equally distribute the number of blocks into the available CPU cores and a more sophisticated one, using the spectral graph partitioning algorithm which targets the minimum data dependencies between different CPU cores. Both of them can be used based on a user defined configuration parameter, without altering the flowgraph. For the DSP, Equinox will utilize the liquid-dsp library, abstracted in a visual block programming way.</p> <p>As block programming platform, it provides a QT5 based GUI (equinox-ui) in order users to be able to develop their application with ease. The UI is responsible for generating the C++ source file and build system, so it can be then compiled and executed.</p> <p>The code is licensed under the GPLv3 license and is available at the https://gitlab.com/equinox-sdr repository.</p> Manolis Surligas Equinox Core repository Equinox QT5 frontend GNU Radio OOT module for delay comparison Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:30 AW1.120 sdr_lte_testbed An End-to-End LTE Testbed in Three Clicks Free Software Radio devroom <p>After three years without active participation, this talk is going to look back at what happened to srsLTE since then, how it evolved from a flexible PHY library to 4G UE implementation, to a full eNB and finally to a complete open-source, end-to-end 4G testbed. We'll also discuss some of the currently ongoing activities and the exciting new features that are ahead of us.</p> <p>After three years without active participation, this talk is going to look back at what happened to srsLTE since then, how it evolved from a flexible PHY library to 4G UE implementation, to a full eNB and finally to a complete open-source, end-to-end 4G testbed. We'll also discuss some of the currently ongoing activities and the exciting new features that are ahead of us.</p> Andre Puschmann Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:30 AW1.120 sdr_gps Spoofing GPS is it really the time we think it is, and are we really where we think we are ? Free Software Radio devroom <p>Global Navigation Satellite System (GNSS) positioning has become ubiquitous in many daily activities, with the Global Positioning System (GPS) being the most common source of signals. Having analyzed earlier the reception and decoding of such signals, we now address the issue of signal spoofing, and develop some of the requirements on the emitted signal power and stability to efficiently spoof single frequency GPS receivers, whether in mobile phones, cars or UAV.</p> <p>Initially designed as a military positioning system (NAVSTAR &amp; GLONASS), Global Navigation Satellite Systems (GNSS) and the Global Positioning System (GPS) in particular have become ubiquitous to mostly everyone's life. Before being a localization system through triangulation of the signals received from the satellite constellation, GNSS is based on time transfer. As such, it is used in multiple industrial applications requiring time-synchronization, whether for communication (mobile phone basestations), trading (stock exchange), or distributed sensor timestamping: a British study [1] estimates at 1 billion pounds (aka euros) per day the cost of GNSS disruption (jamming), not to mention the impact of spoofing in which the user might not even be aware that a false signal is being received. While GNSS spoofing, requiring multi-MHz bandwidth around a carrier frequency of 1575.42 MHz, used to be restricted to well funded organizations, the advent of Software Defined Radio (SDR) emitters opens the opportunity for any motivated developer to create a spoofing device. We here demonstrate the use of Analog Device's PlutoSDR for such a purpose, the need for an accurate local oscillator, the impact of the local oscillator frequency on the short term (phase noise) and long term (Allan deviation) frequency stability of the output signal, the capability to move mobile phones, cars and even high grade (UBlox) receivers to any location assuming a few conditions are met (emitting signals mimicking the same satellites as those seen at a given time by the receiver, meaning not too far in space or time with respect to the real signal). Finally, we demonstrate shifting the timing output of high-grade receivers (1 PPS) by introducing erroneous time offsets in the messages transmitted by the spoofing signal. We conclude with mitigation strategies, excluding multi-constellations approaches which are only a matter of better spoofing capability, but focusing on physical signal characteristics hardly spoofed from a single ground based emitter.</p> <p>[1] https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment<em>data/file/619544/17.3254</em>Economic<em>impact</em>to<em>UK</em>of<em>a</em>disruption<em>to</em>GNSS<em>-</em>Full_Report.pdf</p> Jean-Michel Friedt article for MISC [French] proceeding for FOSDEM [English] slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:30 AW1.120 sdr_dwingeloo The Dwingeloo radio telescope goes SDR Free Software Radio devroom <p>The Dwingeloo radio telescope is a historic instrument in the Netherlands. At its opening in 1956, the 25m dish was the largest fully steerable radio telescope in the world. These days it is run by a group of volunteers, who have restored and rejuvenated the instrument. It is used for radio astronomy and amateur radio, but also for outreach and art projects, to name a few of our activities.</p> <p>We perform observations of pulsars, the hydrogen line of our own Milky Way and other galaxies, have a SETI project, and have recently participated in our first VLBI observation. We are increasingly using Software Defined Radio and in particular GNU Radio to perform our measurements. This allows for rapid development of new signal processing chains, and a lot of flexibility in how we process the incoming data.</p> <p>In this presentation I will present some of the signal processing that is useful for radio astronomy, the flowcharts we have developed, and the astronomical results that we obtain with them.</p> <p>Contents:</p> <ul> <li><p>Very short introduction to Radio Astronomy</p></li> <li><p>The Dwingeloo Telescope and CAMRAS</p></li> <li><p>Pre GNU Radio: a home-built FPGA based astronomy backend / SDR</p></li> <li><p>Receiving Pulsars</p></li> <li><p>The Hydrogen Line</p></li> <li><p>Receiving GPS</p></li> <li><p>Teaching the backend to speak to GR</p></li> <li><p>Spectrum recording and WOLA</p></li> <li><p>Pulsars, again</p></li> <li><p>DSLWP-B</p></li> <li><p>SETI</p></li> <li><p>White Rabbit</p></li> <li><p>VLBI</p></li> </ul> Paul Boven CAMRAS volunteer organisation Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:30 AW1.120 sdr_em_sidechannel_attacks Performing Low-cost Electromagnetic Side-channel Attacks using RTL-SDR and Neural Networks Free Software Radio devroom <p>Electromagnetic (EM) side-channel attacks exploit the EM radiation that inherently leaks from electronic systems during various computations. Patterns in the amplitude or frequency of this radiation can be analyzed to break even theoretically secure cryptographic algorithms such as RSA and AES. In this presentation, we will cover the various challenges involved with successfully performing EM side-channel attacks using relatively low-cost Software Defined Radios (SDRs) and EM probes. More concretely, we will discuss the measurement setup, trace capture process, trace alignment / filtering, and Correlation Electromagnetic Attack (CEMA) for a scenario in which an Arduino Duemilanove is executing a software AES algorithm with an unknown key. Finally, we will see how artificial neural networks can be used to reduce the complexity of performing successful EM side-channel attacks.</p> <p>In present-day communications systems, cryptographic algorithms (ciphers) provide confidentiality and integrity of data through secret pieces of information (i.e. shared or private keys) known only to the communicating parties. However, as shown in numerous previous works, measuring the physical properties of hardware during executions of a cipher can reveal information about its current state. When sufficient information leaks through these so-called "side-channels", an adversary can compute the key. In this presentation, we will examine the EM side channel, which originates from electromagnetic radiation leaking from a device.</p> <p>Performing EM side-channel attacks used to require rather expensive oscilloscopes with high sample rate ADCs. With the advent of inexpensive SDRs such as the RTL-SDR and advances in AI, the bar to perform such attacks has been adequately lowered. We will learn how to use the open-source ElectroMagnetic Mining Array (EMMA) tool to capture leakages emanated by an Arduino Duemilanove during the execution of an AES encryption operation. Next, a standard CEMA attack will be performed. This attack correlates the measured amplitude of a signal with the hamming weight of part of the key in order to determine which key was used during the execution of the cipher. Finally, we will examine applications of neural networks to side-channel analysis. Both traditional deep Convolutional Neural Networks (CNNs) as well as a novel "correlation optimization" (CO) method using shallow neural networks will be discussed.</p> Pieter Robyns EMMA Github repository Training set used for the example shown in the presentation Test set used for the example shown in the presentation Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:30 AW1.120 sdr_meteorm2n Decoding Meteor-M2: QPSK, Viterbi, Reed Solomon and JPEG from IQ coefficients to images, analysis of digital weather satellite transmissions Free Software Radio devroom <p>A low cost, digital video broadcast-terrestrial (DVB-T) receiver is used to collect radiofrequency signals emitted from the low Earth orbiting Russian satellite Meteor-M2. The QPSK encoded signal is analyzed all the way from extracting bit values, to recovering the JPEG encoded image transmitted from the satellite. This investigation is an opportunity to experimentally assess all the layers of digital communication widely used from Deep Space communication to daily mobile phone communication, including Viterbi encoding, Reed Solomon error correction, and JPEG image display.</p> <p>Few members of the audience might have any interest in the details of Meteor M2 weather satellite transmissions. However, tackling the reception of this digital weather satellite opens the opportunity to address most if not all the layers of the OSI model, from the physical layer by collecting the radiofrequency signal using a cost-effective DVB-T receiver acting as a general purpose software defined radio signal source, to the data link layer with the various error correction schemes implemented to address the corruption introduced by the noisy radiofrequency communication channel (Viterbi, Reed Solomon) and the network layer with the frame encoding including telemetry and, of course, the payload as a digital picture. The latter is encoded in JPEG format, adding more abstractions with the lossy compression to be reverted to display greyscale images representative of the atmosphere and ground reflectivity in the various wavelengths monitored by Meteor M2. This decoding path matches most recent space-borne signal transmissions, as documented by the Consultative Committee for Space Data Systems (CCSDS [1]), and despite extensive documentation available online, a practical demonstration of the various decoding steps helps understanding the many documents over which the information is spread.</p> <p>[1] https://public.ccsds.org/Publications/BlueBooks.aspx</p> Jean-Michel Friedt article summarizing the results slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 AW1.120 sdr_flush Flushing the Delay Line Closing out the Free Software Radio Devroom Free Software Radio devroom <p>We will block off the last minutes of the Free Software Radio devroom to close out, allow for last-minute ideas, tidy up, and be on time for the closing talk.</p> Submit feedback 09:00 00:45 AW1.121 world_of_sel4 What's new in the world of seL4 Microkernels and Component-based OS devroom <p>This talk will cover the developments of and around seL4 over the past 4 years, covering new and improved functionality for supporting mixed-criticality real-time systems, status and future of its formal verification, an overview of past and future deployments, and an assessment of the state of seL4's open-source ecosystem.</p> <p>seL4 is the world's first (and still only real-world suitable) operating system (OS) kernel with a machine-checked, formal (mathematical) proof of implementation correctness. It has further proofs of security enforcement (the CIA properties of confidentiality, integrity and availability). It is also, the only protected-mode OS (as far as the open literature goes) with a complete and sound worst-case execution-time analysis, the key to supporting hard real-time applications.</p> <p>Much has happened since I last talked about seL4 at FOSDEM 4 years ago, half a year after it had been open-sourced (GPL). In the meantime it has flown a full-size helicopter in autonomous mode while withstanding a cyber-attack (which easily succeeded when the chopper was running on Linux), driven autonomous trucks, and flown in space. It's in commercially developed security-critical systems in use in multiple defence forces and is making its way into commercial safety-critical systems.</p> <p>Arguably, seL4's greatest weakness is a spartanic development environment and a paucity of components running on top, at the moment it's mostly BYO Ethernet driver and file system. We, the developers at Data61 have to accept some blame for that: we weren't sufficiently proactive in encouraging community contributions. Note that this was not because we don't want them, but simply because we were too busy.</p> <p>We're in the process of changing that, in collaboration with the DARPA-funded US seL4 Center of Excellence, which is focussed on providing open-source tools and components on top of se4, but also provide development services to commercial users. On our end we are working on better documenting what is there, and what is maintained and by whom. We hope to encourage people to adopt existing userland components/tools and contribute further ones. A major enabler of this is a device-driver framework that defines driver interfaces and protocols. We hope to release this soon. The DARPA-sponsored first seL4 Summit held in Washington in Nov'18 with 140 attendees demonstrated the growing ecosystem and user base, including companies building frameworks for medical devices and autonomous vehicles. I hope this talk will also help to build the community.</p> <p>On the research side, seL4 has made great progress in the past 4 years. It has been enhanced by a new scheduling model with capability-based control over time, arguably the first and only OS with a principled treatment of time as a resource, and the first able to support mixed-criticality real-time systems without sacrificing utilisation. This enhancement is presently undergoing verification, and lives in the MCS branch until verification is completed, after which it will become the mainline version.</p> <p>The kernel's correctness and security proofs have grown to about 1 million lines (all open source) and have been maintained over ten years of evolution of the code base, now also including functional correctness on the x86 architecture. A RISC-V port is available and is undergoing formal verification as well. This is by far the larges, maintained proof base in the world, and has led to the new discipline of proof engineering to manage maintenance and evolution.</p> <p>There is further work on pushing the mathematical guarantees into userland, especially the CAmkES component architecture and the Cogent language system, aimed at producing systems components (drivers, file systems, network stacks) that can be verified at a cost that is not far from that of traditional quality-assurance processes. Both frameworks are also open source (tools are GPLed while libraries are BSD). CAmkES is mature and in routine use for building secure systems, Cogent is still rapidly evolving, but is increasingly used by externals.</p> <p>Finally we are working on ways for preventing information leakage through timing channels, considered an unsolvable problem by most.</p> Gernot Heiser seL4 home page seL4 research page Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:55 00:35 AW1.121 microkernel_virtualization Microkernel virtualization under one roof Dare the impossible Microkernels and Component-based OS devroom <p>Today's off-the-shell virtualization solution is ridden with complexity. Application of virtualization call for trustworthy solutions. Complexity defeats trust.</p> <p>Microkernels with virtualization extensions and user-level VMMs on top are a approach to mitigate complexity. Modern microkernels like seL4, the NOVA microhypervisor, Genode's -hw- kernel or Fiasco.OC are such promising candidates. Fortunately and unfortunately, the diversity come with fragmentation of the small microkernel community. There are several VMMs for each platform tight to a specific microkernel, rendering it unusable across various kernels.</p> <p>Genode supports several kernels already, so that unification of virtualization interfaces for VMMs across kernels seem to come into reach. Does it ? The talk will cover the venture and current state of harmonization hardware-assisted virtualization interfaces to fit into the Genode OS framework.</p> Alexander Boettcher Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:40 00:20 AW1.121 roadmap_for_the_hurd A roadmap for the Hurd? Microkernels and Component-based OS devroom <p>Most people don't realize it, but the Hurd system is actually well established. About 75% of Debian official packages do build fine, it has mainstream gcc/glibc/llvm support, go and rust ports are ongoing, it can be installed with the Debian installer and GuixSD and Arch ports are ongoing...</p> <p>Yet not so much has been happening within the Hurd itself in the past couple of years. We have notably added a PCI arbiter, which allows for both flexible and safe PCI access for end users, and some basic ACPI support is ongoing. But many exciting features could be achieved with a bit of work.</p> <p>This talk will discuss some of these promising features, to give a sort of ideas roadmap for contributions. Some have implementation sketches which just need to be polished to be more production-ready, such as httpfs, mboxfs, or writing translators in more high-level languages than C. Other features are at early stage, such as adding sound support through rump, getting complete rid of disk drivers from the kernel by moving them to userland, or also getting valgrind support. I will also discuss some promising ideas, such as using rump to get support for more filesystems.</p> Samuel Thibault http://hurd.gnu.org/ http://www.debian.org/ports/hurd/ Video recording (MP4) Video recording (WebM) Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:10 00:45 AW1.121 microkernel_written_in_rust A microkernel written in Rust: Porting the UNIX-like Redox OS to Armv8 A case study of Rust as a language for writing microkernel based compositions Microkernels and Component-based OS devroom <p>This talk is about my experiences porting the Rust language based Redox OS stack to the Arm v8 architecture. The talk uses this theme to discuss the general importance of microkernel architecture in safety critical domains, the trends I've seen in safety themed system design - especially around the Arm architecture, the viability of the Rust language for safety themed system software construction and the design of the Redox OS stack - a stack written in Rust on top of the Redox microkernel.</p> <p>I work at Arm on safety critical software architecture. My area of interest is at the intersection of operating system architecture, safety focused programming models and safety themed extensions to the Arm architecture.</p> <p>Microkernels are a justifiably popular design choice in safety critical domains with most of the dominant OS' in the proprietary realm being microkernel implementations.</p> <p>Rust is a modern systems programming language with features that assist with safe software development. Rust focuses on memory safety, especially in concurrent execution scenarios and presents functional and imperative design patterns - traditionally the domain of very high level interpreted languages - in an accessible form to system software programmers.</p> <p>The Redox OS is a UNIX like operating system with a microkernel core - all written in Rust.</p> <p>With version 8 of the Arm architecture, Arm became 64-bit capable. The Arm architecture has continued to evolve with new safety and security themed extensions being added such as hardware support for memory tagging, pointer authentication and others.</p> <p>I wanted to test the claims made by the Rust language community about the safety centric properties of Rust. I also wanted to explore how microkernel design can leverage the evolving Arm architecture.</p> <p>Porting Redox OS to Arm v8 presented me with an opportunity to explore all of the above.</p> <p>In this talk, I would like to share my experiences of the above while describing the design of Redox OS.</p> Robin Randhawa Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:05 00:45 AW1.121 l4re_composition Hands-on composition of basic L4Re components Microkernels and Component-based OS devroom <p>L4Re is an operating system framework for building systems with real-time, security, safety and virtualization requirements. It consists of the L4Re hypervisor/kernel and a user-level infrastructure that includes basic services such as program loading and memory management. L4Re also provides the environment for applications, including libraries and process-local functionality. L4Re has been released in the form of open source snapshots and also an increasing number of L4Re components has been published on GitHub. This talk will show how some of them can be composed together to create a functional microkernel-based system.</p> Jakub Jermář https://l4re.org https://github.com/kernkonzept Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:35 AW1.121 unikraft_made_easy Unikraft: Unikernels Made Easy Microkernels and Component-based OS devroom <p>Highly specialized Unikernels are still terrible to develop and maintain. Applications have to be ported manually to non-standard OSes before gaining from impressive benefits, like superb performance, great isolation, and a small trusted compute base. Unikernels can be instantiated in tens of milliseconds or less. They are tiny with low memory footprints of a few MBs or even KBs. They can achieve high network throughput of 10-40 Gb/s with a single CPU core and they enable running thousands of concurrent instances.</p> <p>We are going to present the Xen Project/Linux Foundation's open source Unikraft project. Its high level goal is to provide an automated tool to build unikernels without requiring the time-consuming, expert work as today. In addition, Unikraft targets support for multiple "platforms": Xen, KVM, containers and bare-metal. Images are automatically produced for multiple of these platforms without requiring any additional time from users.</p> <p>We have spent quite a bit of our time over the last years developing unikernels – highly specialized virtual machine images targeting specific applications. We have been particularly interested in them since because of their fantastic performance benefits: tiny memory footprints (hundreds of KBs or a few MBs), boot times comparable to those of processes, and small migration times, to name a few metrics.</p> <p>Despite the fact that this work and work from several others is proof of their potential, unikernels have yet to see massive adoption. One of the main showstoppers is development time: for instance, developing Minipython [4], a MicroPython unikernel, took the better part of 3 months to put together and test. ClickOS [5], a unikernel for NFV, was the result of a couple of years of work. What’s particularly bad about this development model besides the considerable time spent is that each unikernel was basically a “throwaway”: every time we wanted to create a new unikernel targeting a different application, we would start more or less from scratch. This comes from the fact that each application has different OS dependencies and benefit from different optimizations and specializations of these layers.</p> <p>One year ago, we started Unikraft as an open source incubator project under the umbrella of the Xen Project and the Linux Foundation. Our goal is to build a common pool of decomposed OS functionalities, called libraries, where various Unikernel projects can share implementations and optimizations with others. We started with initial and elementary pieces like schedulers, memory allocators, an VFS layer, network stacks and the pool is growing. The project provides Unikernel builders a menu where these libraries can be picked and configured. Unikraft's build system quickly and automatically creates images tailored to the needs of their specific applications. The users can choose multiple target platforms (e.g., Xen, KVM, containers, bare metal) without having to do additional work for each of them.</p> <p>In this talk we introduce the concept of specialized Unikernels, give an overview of the Unikraft open source project, and show a live demo to the audience.</p> Simon Kuenzer Sources Webpage Documentation Wiki (search for Unikraft) Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:45 00:35 AW1.121 hardware_software_co_design Hardware/Software Co-Design for Efficient Microkernel Execution Microkernels and Component-based OS devroom <p>While the performance overhead of IPC in microkernel multiserver operating systems is no longer considered a blocker for their practical deployment (thanks to many optimization ideas that have been proposed and implemented over the years), it is undeniable that the overhead still does exist and the more fine-grained the architecture of the operating system is (which is desirable from the reliability, dependability, safety and security point of view), the more severe performance penalties due to the IPC overhead it suffers. A closely related issue is the overhead of handing hardware interrupts in user space device drivers. This talk discusses some specific hardware/software co-design ideas to improve the performance of microkernel multiserver operating systems.</p> <p>One reason for the IPC overhead is the fact that current hardware and CPUs were never designed with microkernel multiserver operating systems in mind, but they were rather fitted for the traditional monolithic operating systems. This calls for an out-of-the-box thinking while designing instruction set architecture (ISA) extensions and other hardware features that would support (a) efficient communication between isolated virtual address spaces using synchronous and asynchronous IPC primitives, and (b) treating object references (e.g. capability references) as first-class entities on the hardware level. A good testbed for evaluating such approaches (with the potential to be eventually adopted as industry standard) is the still unspecified RV128 ISA (128-bit variant of RISC-V).</p> <p>This talk discusses some specific hardware/software co-design ideas to improve the performance of microkernel multiserver operating systems.</p> Martin Děcký Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:45 AW1.121 solo5_unikernels Solo5: A sandboxed, re-targetable execution environment for unikernels A {unikernel,kernel} is just a {process,hypervisor} in disguise Microkernels and Component-based OS devroom <p><a href="https://github.com/Solo5/solo5">Solo5</a> is a microkernel friendly, sandboxed, re-targetable execution environment for unikernels, with a taste for minimalism. We will start with an overview of core Solo5 concepts and present the interfaces it offers to the unikernel/library operating system/application developer. Using existing library operating systems, such as <a href="https://mirage.io">MirageOS</a>, we will demonstrate the developer experience for various Solo5 targets, going on to show how rigorously applying minimalist principles to interface design is used to our advantage, blurring traditional lines between unikernels, processes, kernels and hypervisors. We will conclude with some lessons learned during development of Solo5 thus far, and present ideas and challenges for future development.</p> <p>The target audiences for this talk are application developers with an interest in operating systems and unikernels, language runtime and toolchain developers interested in porting their language to a unikernel environment such as Solo5, and operating systems developers in general. No {uni,micro,separation,monolithic,}kernels or hypervisors will be harmed during this talk.</p> Martin Lucina Ricardo Koller Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:25 00:30 AW1.121 microkernel_lightning_talks AMENDMENT Microkernel lightning talks Microkernels and Component-based OS devroom <p>Due to a cancellation, the Microkernel devroom will offer a lightning talk session in the field of Microkernels, Unikernels, and component based systems on Sunday from 15:25-15:55. Feel free to offer proposals.</p> <p>Current proposals:</p> <p>15:25 - 15:45 Norman Feske - Genode's Sculpt OS - A general purpose microkernel based OS in daily use</p> <p>15:45 - 16:00 Jakub Jermar - What is new in HelenOS</p> <p>Please note this session replaces Jiří Svoboda's talk "Evolution of file system and disk management in HelenOS" due to illness. We wish him a speedy recovery.</p> Jakub Jermář Norman Feske Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:05 00:25 AW1.121 os_external_interrupts Operating System hardening : Dealing with external interrupts Microkernels and Component-based OS devroom <p>We are modifying the Nova hypervisor to protect the operating system it hosts, against frequent transient faults resulting from cosmic radiations or manufacturing defects in the CPU. The method relies on the CPU internal exceptions management mechanisms, redundancy of execution and the machine check architecture. Here we will present how to deal with external interrupts, that is one of the challenges faced when it comes to execute short sequences of operating system's instructions twice.</p> Tokponnon Parfait Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:35 00:25 AW1.121 meltre_specdown The impact of Meltre and Specdown on microkernel systems (*) (*) Deliberate misspelling of Meltdown and Spectre Microkernels and Component-based OS devroom <p>It has been one year since the first security bugs in modern out-of-order CPUs were discovered. These bugs broke the fundamental mechanisms and assumptions that were used to build operating systems.</p> <p>In this talk we look at how these bugs affected the L4Re operating system. We will present some of the mitigations that were implemented and show the performance impact. We also discuss whether microkernel systems in general did fare better in dealing with this new class of security bugs.</p> Matthias Lange Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 00:25 AW1.125 gnucap Gnucap -- The GNU circuit analysis package Architecture, Algorithms and Applications CAD and Open Hardware devroom <p>Digital vs analog simulation and in between, principles of fast spice algorithms, how Gnucap does it. Possible simulator architectures, monolithic vs modular. Relevant implementation details and benefits will be highlighted.</p> <p>Recent applications will be presented, including Gnucsator, Gnucap-Python. Gnucsator provides the component library needed to replace the simulator behind the QUCS project. Gnucap-Python builds the bridge between component modelling, circuit simulation and scientific software packages available from Python scripts. Examples include parametric optimisation (nlopt) and transfer function analysis (scipy).</p> Felix Salfelder Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:30 00:25 AW1.125 ngspice ngspice, current status and future developments CAD and Open Hardware devroom <p>The talk will review the current status of ngspice, the open source spice simulator for electric circuits. After some years of quiet development, with release of ngspice-27 in 2017 we have accelerated the pace for development. Major activities have been around compatibility, code stability and features for enhanced applicability.</p> <p>After some years of quiet development, with release of ngspice-27 in 2017 we have accelerated the pace for development of ngspice. Major activities have been around compatibility, towards PSPICE, to serve users by enabling discrete circuit simulation with vendor device models. ngspiceas well read HSPICE compaitible commercial PDKs for IC simulation.</p> <p>ngspice may be compiled into three variants on most operating systems. Standard is the executable with console or file input and output via plots and data saved to file. Shared ngspice is a shared library without user interface. All data may be transferred over the api of the library, so a master program may get full control over the simulator. A third variant is tclspice, a shared library with tcl/tk interface. The talk will give a comparison of the three variants, with usgae examples.</p> <p>ngspice provides full analog simulation capability, but also contains a digital event simulator by integration of XSPICE. Its status will be reviewd.</p> <p>Short term future activites are planned towards full UNICODE support by applying utf-8 throughout the simulator, a better integration of XSPICE and an update to adms for supporting recent MOS or bipolar device models.</p> Holger Vogt Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:00 00:25 AW1.125 openems openEMS - An Introduction and Overview Using an EM field solver to design antennas and PCBs CAD and Open Hardware devroom <p>openEMS is an electromagnetic field solver using the FDTD method. The tool can be used to design and understand the electromagnetic behavior of antennas, filters, PCBs and more. It has an Octave (or Matlab) and Python interface to setup and analyze the simulation model. This allows for a great flexibility and the possibility to integrate or interface to other software.</p> <p>The talk will give a short introduction into the FDTD method and for which cases it is suitable, which features it offers, how to get started using the tool and which interfaces to other software already exist.</p> Thorsten Liebig openEMS Website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:25 AW1.125 trellis_and_nextpnr Project Trellis and nextpnr FOSS FPGA flow for the Lattice ECP5 CAD and Open Hardware devroom <p>Following on from Project Icestorm; Project Trellis has created bitstream documentation for the substantially larger Lattice ECP5 FPGAs. This has been combined with a new multi-architecture FOSS place-and-route tool, nextpnr, and the existing Yosys Verilog synthesis tool to build a fully-FOSS FPGA flow for these parts; capable of building advanced designs including SoCs running Linux! This talk will include an overview of the flow for developers and end users alike; as well as how you can contribute to the FOSS FPGA ecosystem.</p> David Shah Project Trellis nextpnr Yosys Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:25 AW1.125 epfl_logic_synthesis Design Automation in Wonderland The EPFL Logic Synthesis Libraries CAD and Open Hardware devroom <p>The EPFL logic synthesis libraries are a collection of open source C++ libraries for the development of logic synthesis applications. Today, there are six libraries focused on classical computing: alice, easy, kitty, lorina, mockturtle and percy. All libraries are well documented and tested. Furthermore, being header-only, the libraries can be readily used as core components in complex design automation systems, e.g., Yosys.</p> <p>In this talk, I will demonstrate how simple it is to compose these libraries to create a personalized synthesis tool capable of reading a Verilog description of a circuit, building a logic network out of it, optimizing the logic network, and then map it to lookup tables of six inputs (LUT6).</p> <p>The libraries: - The alice library is a lightweight wrapper for shell interfaces, which is the typical user interface for most design automation applications. It includes a Python interface to support scripting. - The lorina library is a parsing library for simple CAD file formats. - The kitty library is a truth table library for explicit representation and manipulation of Boolean functions. - The mockturtle library implements several logic network representations and logic optimization algorithms. - percy is an exact synthesis library with multiple engines to find optimum logic networks.</p> Bruno Schmitt EPFL Logic Synthesis Libraries (Showcase) alice: C++ command shell library lorina: C++ parsing library kitty: C++ truth table library mockturtle: C++ logic network library percy: C++ exact synthesis library easy: C++ ESOP library Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:10 AW1.125 virtual_prototyping Open source virtual prototyping for faster hardware and software co-design Make your hardware / software development Agile CAD and Open Hardware devroom <p>Co-designing hardware and software is a long and iterative process specific to embedded system design. Mainly driven by hardware prototype iterations, it makes project time and cost hard to forecast. While software modifications can be done in a modular and non-destructive way, reworking on hardware implies production of new prototypes. Moreover, software optimizations being strongly hardware-dependent, the software development could remain idle during hardware re-prototyping. This uncertainty on time and cost makes embedded systems projects hard to fund. In the end, ambitious projects are mostly reserved to large companies. Hardware simulation and virtual prototyping contributes to solve this issue. A virtual prototype consists in a software application representing the system's hardware behavior, allowing system's software to be directly executed without the real hardware. Once available, a virtual prototype reduces embedded system time-to-market and development cost. However, virtual prototype development cost makes them inaccessible. Hardware simulation leverages models which are hard to find and which interoperability is lacking. Each company should invest and maintain its own virtual prototyping solution. That is why in Hiventive, we believe that the emergence of an open source, unified, normalized hardware and software ecosystem leveraging state-of-the-art virtual prototyping technologies and methodologies is necessary to boost and widely generalize the use of virtual prototypes. Thus, we will present our innovative open source collection of solutions to enable and empower virtual prototyping for everyone.</p> Guillaume Delbergue Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:45 00:10 AW1.125 chips4makers Lesson learned from Retro-uC and search for ideal HDL for open source silicon CAD and Open Hardware devroom <p>The <a href="https://www.crowdsupply.com/chips4makers/retro-uc">Retro-uC</a> was a crowdfunding campaign for an open source silicon project. One of the reasons the campaign did not attract enough people was a lack of enough attractive features. The feature set was kept minimal to allow a first time right chip production. The choice of <a href="https://en.wikipedia.org/wiki/Hardware_description_language">HDL</a> is important to allow to implement more features with enough productivity and without increasing the risk of having buggy silicon. As will be presented, the venerable VHDL and Verilog RTL languages are not considered ideal for this purpose. In the quick talk an overview of pros and cons of some HDL investigated for further development will be presented.</p> Staf Verhaegen Background information on the Retro-uC Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:25 AW1.125 fritzing Fritzing - the past, the present and the future Paving the way for Fritzing's development CAD and Open Hardware devroom <p>Making electronics accessible to the broad public was mainly made possible by Arduino, the 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 Fritzing is still widely used by over 200.000 users but struggles to find a sustainable way to fund its development.</p> <p>This talk will give a rough introduction to Fritzing including its strength and weaknesses and introduce a roadmap for its further development.</p> <p>TBD</p> Patrick Franken Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:25 AW1.125 kicad KiCad Project Status Everything you wanted to know about the state of the KiCad project. CAD and Open Hardware devroom <p>A state-of-the-union talk by KiCad's project leader.</p> Wayne Stambaugh Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:10 AW1.125 pcb_inkscape Drawing PCBs with Inkscape Creating printed circuit board designs using Inkscape, SVG2Shenzhen and KiCad CAD and Open Hardware devroom <p>A quick introduction to using the vector drawing tool Inkscape with the SVG2Shenzhen plugin to turn arbitrary drawings into PCB design layers in KiCad. No previous knowledge of PCB design, electronics or Inkscape required.</p> Kaspar Emanuel SVG2Shenzhen Support Badgeek on Patreon (slides) Example project from the talk Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:15 00:10 AW1.125 kitspace_bom_builder The Kitspace BOM Builder Create bills of materials and buy parts with the information you need at your fingertips CAD and Open Hardware devroom <p>The Kitspace BOM builder is a tool that tries to make it easy and fun to select parts for your electronics project by giving you all the information you need and automating everything that can be automated. This talk covers what it does, how to use it and how it is built.</p> Kaspar Emanuel Kitspace BOM Builder (slides) Support Kitspace on OpenCollective Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:25 AW1.125 horizon horizon EDA - what's new CAD and Open Hardware devroom <p>Horizon is a from-scratch EDA package with focus on useful parts management and rule-driven design. It has already proven it's suitability for medium-complexity projects in the board design for my master thesis.</p> <p>This talk covers my motivation for starting a new EDA package in 2016 and the main ideas behind horizon as well as some unique features. I'll also go into my short- and long-term plans for the project.</p> Lukas Kramer github project x-band transmitter created in horizon EDA Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:25 AW1.125 idea_to_prototype From the idea to the prototype using FLOSS CAD and Open Hardware devroom <p>Now that Arduino, Raspeberry Pi &amp; other development boards are widely available, anyone can envision creating an intelligent and/or connected object. But which tools do the FLOSS community provide to help us in this kind of project ?</p> <p>Any IoT project will generally start with "off-the-shelf" modules, but as soon as things become serious, it will be important to integrate all of the electronics into a single "HAT" or "shield", and finally build a fancy case to hold it all. This will require using electronics development tools, as well as mechanical design software, before finally coding the embedded software.</p> <p>This talk will walk you through an example workflow, which will help you bring your ideas to the real world. Along with a few tips &amp; tricks, we will introduce a range of "libre" EDA and CAD software that can be used to assist you during the design and implementation of your project.</p> Arnaud Ferraris OpenSCAD FreeCAD Qucs Ngspice JSchem KiCAD EDA Fritzing Horizon EDA gEDA Visolate PCB Shopper LibreCAD Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:25 AW1.125 guide_to_oshw The Software Developer’s Guide to Open Source Hardware CAD and Open Hardware devroom <p>The popularity of the open source hardware movement and IoT is constantly increasing. But is it worth making open source hardware using expensive proprietary software? Of course not!</p> <p>In this presentation Leon Anavi will share his experience in developing IoT by designing printed circuit boards (PCB) with the free and open source EDA tool KiCAD, the open source hardware certification program of OSHWA, crowdfunding opportunities for low volume manufacturing and open source success stories for building a community. Practical examples based on the certified open source hardware development boards ANAVI Light Controller and ANAVI Thermometer will be provided. The talk also contains information about open source hardware licenses, KiCAD getting started guidelines, tips and tricks for avoiding common mistakes.</p> <p>Always take with a pinch of salt anything that a software engineer like Leon says about hardware and in the same time have in mind that if he can do it, anyone can! Hopefully the talk will encourage more people to use KiCAD, join the open source hardware movement and certify their open source devices at OSHWA.</p> <p>With the advance of free and open source technologies, designing printed circuit boards became more affordable and easy. Makers can cross boundaries and integrate together free and open source software with open source hardware. This presentation will provide several showcases of certified open source hardware Internet of Things developed as hobby projects by Leon Anavi and will share his first steps as a software engineer to using KiCAD for making his own printed circuit boards. Tips and tricks for avoiding common mistakes and recommendations for low volume manufacturing will be shared. For any open source project the commonly is always on first place. ANAVI Light Controller and ANAVI Thermometer are a couple of example for n entirely open source project that combines open source hardware with free and open source software. Both are made in Plovdiv, Bulgaria, certified by OSHWA as open source hardware devices and powered by ESP8266 (BG000005 and BG000017). Firmware written as an Arduino sketch allows easily to connect to a WiFi network and through the machine-to-machine protocol MQTT to the popular open source automation platform Home Assistant. The acrylic cases for both devices are designed with another open source tool – OpenSCAD. The fully open source nature of the projects quick attracted contributors. In just a couple of months, following a successful crowdfunding campaign at Crowd Supply, several people started to contribute to the sofware and hardware repositories of ANAVI Light Controller in GitHub. Furthermore the project inspired other people to develop their own open source boards based on similar design such as esp01-i2c-little-board by Nicolas Vion. The presentation is appropriate for beginners. No previous experience is required. Hopefully the talk will attract a wide range of professionals, hobbyists and students and will encourage them to use free and open source software for developing open source hardware. Furthermore the presentation will reveal the benefits of the open source hardware certification program by OSHWA.</p> Leon Anavi ANAVI Light Controller (KiCAD project) Arduino sketch for ANAVI Light Controller ANAVI Thermometer (KiCAD project) Arduino sketch for ANAVI Thermometer Crowd Supply KiCAD Open Source Hardware Association Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:25 AW1.125 pocket_science_lab Pocket Science Lab - An Open Source Hardware for Electronics Teaching & Learning CAD and Open Hardware devroom <p>The hardware comes with a firmware, desktop app, android app - all open source. This tiny pocket lab provides an array of sensors for doing science and engineering experiments. It comes with functions of numerous measurement devices including an oscilloscope, a waveform generator, a frequency counter, a programmable voltage, current source and as a data logger.</p> <p>During this session, PSLab team will speak about the current development of the project, new features, usage, communities and a story of production in China and lesson learned.</p> Hong Phuc Dang https://pslab.fossasia.org https://github.com/fossasia/pslab-hardware Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:25 AW1.125 oshw_smart_city Open Source Hardware for Smart City OSHW LoRaWAN implementation for Parking, Air quality, City lighting and Waste management CAD and Open Hardware devroom <p>Smart City concept includes Park Management, City Lighting management, Waste Management, Public Transport monitoring and management, Air quality monitoring, Security and People Healthcare alerts and monitoring. Olimex is working on OSHW solutions for two popular LWPAN technologies, the results of the work will be presented and demonstrated.</p> Tsvetan Usunov Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:25 AW1.125 scientific_oshw Building open source scientific equipment How researchers are owning their own instruments CAD and Open Hardware devroom <p>One of the biggest limiting factors preventing people to participate in science &amp; education, is the lack of access to research equipment. Scientific hardware is vital for researchers and educators to conduct the experiments that will provide them with data necessary to answer scientific questions. Luckily, technological advances are making the entry barrier and learning curve for hardware development low enough that more and more researchers are trying their hands at building the tools they need in their labs. In this talk we are going to see examples of Open Source Hardware in Academia, current repositories curating these types of projects, and see more technical details of one of these tools, the FlyPi, an open source “all in one” biology lab to perform state-of-the-art methods in neuroscience, built using off-the-shelf components and 3D printed parts, costing 10-20X less then proprietary counterparts.</p> <p>In order to do experiments to test ideas and hypothesis, curious people, DIY biologists, researchers and citizen scientists need access to reagents and equipment. Normally created using public funds, equipment is normally commercialized as proprietary tools by only a handful of providers, making them expensive and hard to obtain. Luckily, fast prototyping tools and powerful yet affordable integrated circuits are becoming easy to use at a hobbyist/consumer level. Leveraging these developments, independent initiatives are investing in creating open source hardware for science, enabling people and institutions around the globe to perform their own experiments. In this talk I will present one of these projects, the FlyPi: an open source all-in-one biology lab, which can be built for ~250 Euros and used for current state of the art methods in Neurosciences (eg Optogenetics, fluorescence microscopy and behavioural tracking), as well as diagnostics of human parasites (making it 10-20X cheaper then current available solutions). Based on the Raspberry Pi and its camera, it runs an user interface developed in Python3, and communicates via Serial to an Arduino, which takes care of time critical tasks (eg millisecond precise light stimulation). I will also present an overview of other hardware projects related to science and repositories dedicated to curating them (eg OpenBehaviour, Open Neuroscience, PLOS Open source toolkit channel).</p> Andre Maia Chagas FlyPi publication FlyPi github repository Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 AW1.125 gnuk_hardware FST-01SZ (Flying Stone Tiny 01 revision ShenZhen) free hardware design for Gnuk Token CAD and Open Hardware devroom <p>Gnuk Token is a security hardware USB token for GnuPG, which supports OpenPGP card protocol. The important feature is it avoids special thing like hardware accelerator or tool (which comes with NDA). Development environment, Tools, Firmware, and hardware design are all free, as they should be.</p> <p>FST-01 was designed and used as a reference hardware implementation for Gnuk. In 2011, FST-01 was designed as free hardware design with KiCAD, so that people can use Gnuk Token for their computing, having the nature of reproducible by other parties. In 2016, we had a revision called FST-01G, following update of KiCAD. FST-01 and FST-01G were mass produced and sold more than 1200 pieces (2012-2018). In 2018, it has major update, now called FST-01SZ, using Chinese chip (GD32F103TB) and Chinese connector for USB, following another update of KiCAD. In this short talk, I will show my experience of FST-01/FST-01G/FST-01SZ, focusing new revision.</p> <p>See https://www.gniibe.org/memo/development/fst-01/fst-01-revision-sz.html for an explanation and https://www.gniibe.org/memo/development/fst-01/fst-01sz-testplan.html for the test plan.</p> Yutaka Niibe Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 00:40 AW1.126 geo_osmdeeplearning Improve OSM data quality with DeepLearning Geospatial devroom <p>Quality Analysis on a wide dataset, is always a gageure. And automatic semantic segmentation from imagery is still an open subject since decades. But. Nowadays with latests DeepLearning techniques, we can use new kind of techniques, to easily extract patterns from our dataset, and therefore help humans to be that more efficient to take the right decision (think filtering).</p> <p>Two main points on this presentation: - How to produce high quality results, while you start with noisy/creapy/real world data ? - How to predict, at scale without huge hardware infrastructure ?</p> <p>RoboSat.pink as the ecosystem to do so.</p> Olivier Courtin RoboSat.pink Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:45 00:30 AW1.126 geo_3geonames 3Geonames.org An open source Geocoding system for the simple communication of locations with a resolution of 1 m Geospatial devroom <p>Encoding geographic coordinates into a string is a trivial thing. Yet, there are many grid based systems (geohash, PlusCodes, Mapcodes), and some even turn the thing into a business (Zippr, What3Words). I agree with the commonly stated motivation that Latitude and Longitude are not sufficient for identifying a place in both an unambiguous and human friendly way. A single string for this pair of numbers is a better representation, if only it can preserve all the information contained in the original latitude,longitude pair, something no existing geo-encoding system does. That's my goal.</p> <p>Geocode is a one-dimensional location code. It uses a simple space-filling technique to map a two dimensional point (latitude,longitude) to either an alphanumeric string or a geoname triple with no loss of information. It is a one-to-one mapping (no two geocodes map to the same point and no two points map to the same geocode).</p> <p>Geocode has several advantages over similar systems.</p> <p>The alphanumeric geocode is short (10 bytes), has higher accuracy (up to 1 meters) and avoids the borderline discontinuities and many to one mappings of other one-dimensional location codes such as geohashes.</p> <p>Triple geoname codes on the other hand are more memorizable, are intuitively reprentative of the location and are composed of relatively short existing geo names (up to 8 letters).</p> <p>The first name in a triple geoname code represents the most prominent location name inside a 21,403 km² area containing the point.</p> <p>For example, 34.05223,-118.24368 (a location in Los Angeles), is encoded to EKEAJ18E08 or as three geonames: LA-GASPAR-YANSI or as a hybrid code LA-MJKQH4. Another location about 1 m away, say (34.05223,-118.24369), is EKEAJ18E1D or LA-GASPAR-HINGWEN or LA-MJKQI9.</p> <p>The human readable algorithm uses 146300 geonames from http://geonames.org and http://geonames.nga.mil/gns/html/gis_countryfiles.html with several requirements for the names (chosen to be recognizable, short, easy to pronounce, distinct from each other and evenly spread throughout the earth.) We also shorten geonames to their acronyms whenever possible (LA -> Los Angeles, NY -> New York, etc)</p> <p>Unlike many grid-based location codes, geocodes represent points not areas. Each geocode maps to a latitude,longitude pair with accuracy up to the 5th decimal point (i.e. 1 meter)</p> <p>In a nutshell, latitude,longitude values are represented as two linear curves, converted to binary numbers then combined by interleaving their bits. As a result of this technique, similar geocodes are located geographically close together in both alphanumeric and triple geoname formats.</p> <p>A geolocation expressed as (latitude,longitude) can be converted offline into a geocode, and vice versa using a data structure embeded in the software.</p> <p>The software is in the public domain to be used without any restrictions.</p> Ervin Ruci TU Berlin Talk 3geonames.org Presentation Geocode XYZ Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:20 00:40 AW1.126 geo_boostgeometry Latest developments in Boost Geometry Geospatial devroom <p>How to compute the two closest points between two geometries and how this differs from distance computation? What happens when some points are on opposite/antipodal sides of the globe? How can one create equidistant points along a line composed of one or more line segments?</p> <p>We discuss solutions to those questions highlighting some of the latest developments in Boost Geometry, the library that is currently being used to provide GIS support to MySQL. The implemented algorithms are parameterized by strategies that control the accuracy-efficiency trade-off. The proposed solutions work for 3 different coordinate systems (namely, cartesian, spherical and ellipsoidal) each of which comes with its own advantages and limitations.</p> <p>We sum up by briefing the plan of future development and a short discussion.</p> Vissarion Fysikopoulos Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:05 00:30 AW1.126 geo_navit Continuous Integration to compile and test Navit Geospatial devroom <p>Navit is a car navigation system with routing engine. Navit's modular design is capable of using vector maps of various formats for routing and rendering on the screen. It's even possible to use multiple maps at the same time. Points of Interest of various formats are displayed on the map. The current vehicle position is either read from gpsd or directly from NMEA GPS sensors. The routing engine not only calculates an optimal route to your destination, but also generates directions and even speaks to you in 49 languages. It can run on various platforms, e.g. raspberry pi, tomtom, desktop pcs.</p> <p>The talk will in particular discuss challenges and approaches faced in the continious integration and testing of an open source GPS app.</p> Patrick Höhn Project Website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:40 00:40 AW1.126 geo_osmwikidata Linking OpenStreetMap and Wikidata A semi-automated, user-assisted editing tool Geospatial devroom <p>Wikidata and OpenStreetMap are collaborative open data projects that contain structured data for real world places and things. Adding links between the projects makes the data more useful, but doing this by hand is laborious. I've written a software tool that automates much of the process.</p> <p>Editors of OpenStreetMap can use my software to search for a place or region, generating a list of candidate matches from Wikidata, which can then be checked and saved to OpenStreetMap.</p> <p>Linking the two projects isn't without controversy. They use different licenses which raises questions about what information from one project can be copied to the other.</p> <p>I will talk about the benefits of linking, the process of finding matches, the community response - including the controversy - and how people can get involved.</p> Edward Betts OSM/Wikidata link tool Twitter Source code on GitHub Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:25 00:30 AW1.126 geo_graphhopper GraphHopper Routing Engine - New Features Overview of the latest features and development Geospatial devroom <p>GraphHopper is one of the popular open source routing engines and has a steady stream of new features. For example we recently introduced the Isochrone API and added real time routing features for public transit.</p> <p>In this talk I will give a brief overview of what is possible today and give also some insights of what will be possible with the upcoming releases.</p> Peter Karich Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:30 AW1.126 geo_augmentedreality Hikar - Augmented reality for hikers Developing an app and framework for outdoor AR Geospatial devroom <p>In recent years, augmented reality (AR) has gained a good deal of mainstream interest, particularly with the advent of Pokemon Go. Of great potential interest is the use of AR for outdoor users such as walkers. This talk will describe the new version of Hikar, a GPL AR Android app in development which helps outdoor users navigate by overlaying footpaths from OpenStreetMap on the camera feed, and by generating virtual signposts showing the direction and distance to nearby points of interest. The talk will describe Hikar in technical detail and challenges faced during its development, and will also invite discussion and possible collaboration on developing a completely open-source solution to geographical AR, as an alternative to ARCore or ARKit.</p> <p>Augmented reality (AR) has gained a great deal of media attention in recent years, helped in no small measure by the massive mainstream success of Pokemon Go. However, AR has a great deal of potential for real-world applications too, particularly for outdoor users, which has only partly been realised.</p> <p>A number of geospatial AR apps have been available for some years, including Layar and Wikitude, primarily focusing on points of interest (POIs), buy many are proprietary and closed-source. One potential use of AR, little explored as-yet, is to provide navigation tools for hikers and other outdoor users, by overlaying paths and hiking trails on the camera feed of the device. An early version of the app under discussion, Hikar, was presented at the OpenStreetMap (OSM) "State of the Map" conference in 2013, with the footpaths and trails sourced from OSM, and the latest version, detailed below, has been presented at an emerging technologies event in Northern Ireland (Digital NMD, digitalnmd.org).</p> <p>After a hiatus, development on Hikar has restarted in the past year, partly inspired by increased mainstream interest in AR. The app is now capable of generating virtual signposts, showing the distance and direction to nearby POIs at path junctions, helping people navigate in the field (examples will be shown in the 'Files' section when available). The talk will include an in-depth technical discussion on how the virtual signposts feature has been implemented.</p> <p>The Hikar app itself is only one possible application of AR to outdoor use. While Google and Apple have recently made available their ARCore and ARKit frameworks, with impressive results, these are not open-source and (certainly in the case of ARCore) are restricted to certain higher-end devices. There is thus a need for a completely free and open-source framework aimed at outdoor, geographic AR. The presentation will invite discussion and seek collaboration on developing such a framework, which could for example use OpenCV to detect surfaces and therefore more realistically place objects in the same way that ARCore can.</p> <p>Currently Hikar is restricted in coverage to Britain, Ireland and Greece. This is, however, solely due to the database on the server only containing data for those areas; it is capable of working internationally provided servers are available to provide path and elevation data (work is underway to support the XYZ tile format), has been tested in Greece, and the virtual signposts support Greek and Cyrillic alphabets.The talk will outline how interested parties can setup a Hikar server to cover their country or region of Europe and indeed other parts of the world.</p> <p>Problems and issues with the app as it stands (such as the realism of the path and signpost placement, and inaccuracies with GPS and mapping data) will be discussed, along with strategies for resolving those problems.</p> Nick Whitelegg Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:35 00:30 AW1.126 geo_gpxtraces Hundred thousand rides a day How can a massive amount of GPX traces help us improve OpenStreetMap Geospatial devroom <p>We at Juno track a massive fleet of taxi cars in a relatively small area of New York. For all the internal mapping we use OpenStreetMap — and we are naturally interested in it having zero road errors. One way to ensure that is to validate it against tens of thousands GPS traces we get every day. In this talk we'll look at the relation of traces and map data in OSM, find a few ways to improve OSM using these traces, and see the validation system we made.</p> Ilya Zverev Video Recording on Youtube Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:10 00:30 AW1.126 geo_locationchallenges Open Source Geolocation The story and challenges ahead Geospatial devroom <p>In this talk, Zeeshan will share his story of development of Geoclue, the open source geolocation service for Linux. He'll talk about the challenges and setbacks faced during these years in developing a framework designed to provide a simple API to application developers while also addressing the privacy issues related to giving out users' location to random applications. Also presented will be the current big problems faced by the project and possible solutions to them.</p> Zeeshan Ali Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:45 00:30 AW1.126 geo_osmqgis OpenStreetMaps for emergency prep: The view from San Francisco Using OpenStreetMap and QGIS to build resiliency maps Geospatial devroom <p>In San Francisco, the fire department offers free training to residents in the hopes that they won’t become victims the next time an earthquake hits. Residents of San Francisco, California are advised to keep a map in their emergency kit. What kind of map? People who take the fire department training class (Neighborhood Emergency Response Team - NERT) learn to spot potable water hydrants, gas meters, soft story buildings, police call boxes, chemical hazard warnings posted outside gas stations, car repair shops and construction sites. Until now, however, there are no maps with these features marked. This session will talk about the journey to creating these emergency maps with my local NERT using OpenStreetMap. It will include best practices and lessons learned that can make this project useful for citizen mappers everywhere.</p> Stefano Maffulli slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:20 00:30 AW1.126 geo_streetview OpenTrailView 360 FOSS StreetView for hikers Geospatial devroom <p>OpenTrailView is a project to create a StreetView-like application by walkers with contributors providing stitched 360-degree panoramas of locations on hiking trails. First discussed at State Of the Map Girona 2010, the project has been dormant for several years due to the high barrier of entry; at the time contributors had to manually stitch photos to produce a panorama using third-party stitching software. The recent availability of 360-degree cameras with auto-stitching has revived the author's interest in the project. This lightning talk will give technical details of the new version of OTV and outline initial work.</p> <p>Google StreetView has for many years provided users with panoramic street views of much of the world. However Google only provide limited coverage of off-road areas and in any case, neither the system nor the panoramas themselves are Free or Open. In 2010, the author developed an initial version of OpenTrailView (OTV), a system designed to produce a StreetView-like experience for outdoor users, giving users an immersive preview of countryside areas before they visit them. The system attracted a fair amount of interest at the State Of The Map conference in Girona that year, however the need for users to manually stitch photos to produce panoramas meant the system had a high barrier to entry.</p> <p>In 2013 a new version supported PhotoSpheres from Android devices, though this again gained limited contributor interest due to supporting that format only. Recently, however, 360 degree cameras have become mainstream, some of which perform auto-stitching of panoramas on the device. Thus, due to the potential lower barrier of entry to contributors, the author's interest in the project has been revived and it is proposed to restart work on the project. This lightning talk will give a technical overview of the new version of OTV and detail initial work and future plans. (Note that by the time of FOSDEM it is unlikely that there will be a fully working version, just an initial demo)</p> Nick Whitelegg Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:55 00:30 AW1.126 geo_spatialboostgeometry Spatial Reference Systems Transformations with Boost.Geometry Geospatial devroom <p>What are spatial reference systems and how to convert between them? What are various ways of creating transformation representation in Boost.Geometry and how to use them to convert between polygons on the surface of a globe and flat surface of a map?</p> <p>We discuss solutions to those questions highlighting some of the latest developments in Boost Geometry, the library that is currently being used to provide GIS support to MySQL. The implemented solutions allows to define transformations both in compile-time and run-time with known tradeoffs: execution time vs compilation time, run-time flexibility vs compile-time error reporting, etc. Last but not least we discuss similarities and differences between Boost.Geometry and Proj4 libraries.</p> Adam Wulkiewicz Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 AW1.126 geo_virtualreality VR Map: Putting OpenStreetMap Data Into a WebVR World Simple GeoData Visualization with A-Frame Geospatial devroom <p>Mixed Reality (XR), i.e. Virtual and Augmented Reality, opens up new possibilities for 3D visualizations of OpenStreetMap data (OSM). With WebXR and Mozilla's A-Frame library, it's really simple to create cross-device XR experiences running right in the browser with very little code. VR Map brings all that together and allows you to walk or "fly" through a virtual model of the real world courtesy of live OSM data.</p> <p>The talk will describe WebXR as Mixed Reality APIs for the browser and A-Frame as Mozilla's library to make it really simple to build WebXR scenes. Then, it will dive into how those technologies were used together with live OSM data to create the VR Map demo and show how it enables people to move through virtual models built from that real-world data to give an interesting new perspective on OpenStreetMap - and hopefully inspire developers to build similar experiences.</p> Robert Kaiser VR Map - live demo Source Code (GitHub) Slides http:// Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:25 K.3.201 elasticsearch_correctness_performance_validator ElasticSearch Correctness and perfOrmance Validator Formally measuring the cost of a query before hitting the fan Search devroom <p>Alright, you built an application to show off your impressive skills at data gathering and processing. Now you got data on ElasticSearch that you want to show, but your users may want to see too many data points and will shatter your DB performance. In this talk, we will present a project to formally measure the cost of queries before actually running them, and your app can decide, given a cost value, whether to launch a query or not.</p> <p>ESCOVA leverages the ElasticSearch query parser to generate the parse tree of an ES query, and we use tree-based cost analysis in order to determine the cost of queries. Moreover, users may restrict their queries to only those of forms that have been previously whitelisted in order to avoid blocking the database. ESCOVA is available both as a plugin for an Elasticsearch as well as a library (that can, e.g., be deployed independently as a microservice).</p> <p>The talk will describe: - How you can currently profile queries in Elasticsearch - A discussion about the pros and cons of static analysis/symbolic computation v. profiling - The inner structure of the project - Lessons learned on how to build an Elasticsearch plugin - Future work, questions and feedback</p> <p>No specific prior knowledge required; topics will be presented before diving into them.</p> Santiago Saavedra Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:50 K.3.201 learning_to_rank Learning to Rank Explained for Dinosaurs Search devroom <p>Internet search has evolved from its early days. It has become smarter and more natural, and people expect it to “just work.” But, anyone who has worked behind-the-scenes with a search engine knows exactly how hard it is to get the “right” results to show up at the right time.</p> <p>Not to mention, what happens when the trends change, when your users’ favorite weirdly-shaped dinosaur isn’t a T-Rex anymore? Spending countless hours tuning the boosts before your user can find their favorite two-legged tiny-armed dinosaur on the front page isn’t fun. What is cool is using Learning to Rank to automate the process! In this talk, you will learn how Learning to Rank works and how you can use it in Apache Solr — all from the Bloomberg team that built and implemented it in the first place.</p> <h4>Description</h4> <p>Internet search has long evolved from days when you had to string up your query in just the right way to get the results you were looking for. Search has to be smart and natural, and people expect it to “just work” and read what’s on their minds.</p> <p>On the other hand, anyone who has worked behind-the-scenes with a search engine knows exactly how hard it is to get the right result to show up at the right time. Countless hours are spent tuning the boosts before your user can find his favorite two-legged tiny-armed dinosaur on the front page.</p> <p>When your data is constantly evolving, updating, it’s only realistic that so do your search engines. Search teams thus are on a constant pursuit to refine and improve the ranking and relevance of their search results. But, working smart is not the same as working hard. There are many techniques we can employ, that can help us dynamically improve and automate this process. One such technique is Learning to Rank.</p> <p>Learning to Rank was initially proposed in academia around 20 years ago and almost all commercial web search-engines utilize it in some form or other. At Bloomberg, we decided that it was time for an open source search-engine to support Learning to Rank, so we spent more than a year designing and implementing it. The result of our efforts has been accepted by the Solr community and our Learning to Rank plugin is now available in Apache Solr.</p> <p>This talk will be presented by two engineers working in the News Search Engineering team at Bloomberg - Sambhav Kothari and Diego Ceccarelli. The talk will serve as an introduction to the LTR(Learning-to-Rank) module in Solr. No prior knowledge about Learning to Rank is needed, but attendees will be expected to know the basics of Python, Solr, and machine learning techniques. We will be going step-by-step through the process of shipping a machine-learned ranking model in Solr, including:</p> <ul> <li>how you can engineer features and build a training data-set as per your needs</li> <li>how you can train ranking models using popular Python ML(machine learning) libraries like scikit-learn</li> <li>how you can use the above-learned ranking-models in Solr</li> </ul> <p>Get ready for an interactive session where we learn to rank!</p> Sambhav Kothari Diego Ceccarelli Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:25 K.3.201 hibernate_search_6 From table to index (and back) with Hibernate Search 6 Leveraging Elasticsearch's power with a relational DB as primary source of truth Search devroom <p>On one side, Elasticsearch. It scales, has great support for full-text search, and many features you like. On the other side, a relational database. It has transactions, relational capabilities, implements standards, and lots of developers are familiar with it. Each is a great datastore targeting specific needs. What if you have many needs? What if you want both? Transactions, relations <em>and</em> scale; full-text search <em>and</em> SQL. Preferably without headaches.</p> <p>Enters Hibernate Search. This Java library allows to define a mapping from Hibernate ORM entities to Elasticsearch documents, to transparently index entities as they are persisted in the ORM, and to conveniently query the index through APIs that make the most of a mixed entity/document model. Doing so, it solves the problems that arise when synchronizing data from a relational database to Elasticsearch:</p> <ul> <li>Entities are generally too small to be mapped directly to a useful Elasticsearch document: you need to map <em>trees</em> of entities to a single document. How to handle complex mappings, i.e. how to infer that when entity A is written to, then entity D, three relations away, needs to be reindexed?</li> <li>The database cannot be fully reindexed every minute: synchronization needs to be smart. How to accurately detect database changes without adding boilerplate everywhere in database writing code?</li> <li>The database may be transactional, but Elasticsearch is not. How to correctly handle transactions, generating documents and sending indexing commands at just the right time?</li> </ul> <p>In this talk, I will demonstrate how Hibernate Search 6, the new major version of Hibernate Search currently in development, can be used in an application based on Hibernate ORM.</p> Yoann Rodiere Hibernate Search website Hibernate Search 6.0.0.Alpha2 release announcement Slides Hibernate Search 6 on the Hibernate website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:50 K.3.201 deepdive_tantivy A Deepdive into Tantivy Search devroom <p>Tantivy is a search engine library, akin to Lucene but for Rust.</p> <p>In this talk, we will walk through the building blocks that make a scalable full-text search engine. While this talk will be centered on tantivy, most of the concepts introduced should apply to other inverted-list search engines like Lucene.</p> Paul Masurel Tantivy's repository Presentation slides http:// Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:25 K.3.201 apache_lucene_solr_8 Apache Lucene and Apache Solr 8 What’s coming next? Search devroom <p>Spring 2019 will be the time for a new major release of Apache Lucene and the well-known search server Apache Solr. Since Lucene 7 a lot new features have been developed, mainly a new way to short circuit query execution if the total number of hits is not needed. This may improve query execution for common full text search use cases enormously. The talk will also present other new features and changes like change to a more standard BM25 implementation or optimizations for Java 9 and later Java versions using MR-JAR files. The second part of this talk will quickly cover news in Apache Solr: Solr 8 now also uses HTTP/2 for its cloud communication.</p> Uwe Schindler Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:25 K.3.201 super_speedy_scoring_lucene Super-speedy scoring in Lucene 8 Search devroom <p>Lucene 8 will have some remarkable speed-ups when it comes to querying across large datasets. In this talk I will describe how this has been implemented, from new data structures through to changes in the scoring API, and the trade-offs required to make them possible.</p> <ul> <li>Lightning overview of the structure of an inverted index, showing how current queries are executed and documents scored</li> <li>Extension of an inverted index to include Impacts (single level, multi-level)</li> <li>Given impacts, show how a scorer can skip large blocks of documents</li> <li>Restrictions on Similarity implementations to make this possible (scores must increase with docfreq, must be greater than 0, etc)</li> </ul> Alan Woodward Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:25 K.3.201 lucene_upgrade_jira_8 Lucene Upgrade in Jira 8.0 How we fought and killed the code debt beast Search devroom <p>Jira 8.0 will be shipped with Lucene 7.3. It's been the first update for 7 years. In this talks I'll describe why it took so long, what it taught us and how the new Lucene improved Jira.</p> <p>Jira was stuck on Lucene 3.3 for 7 years. The cost of update to the 4.0 version was so high and the benefits were so unknown, that the decision to remove this code debt was put off for so long. In early 2018 it was decided we will finally upgrade Lucene to 7.3. Just making the product functionally correct took around 2-3 months. However, we didn't stop there. We invested more time to get the most of the momentum we had and improved our usage of Lucene. Now Jira indexing is faster, index is smaller, search is much faster and more exact, and the API is cleaner. The process of the upgrade taught us how much one can gain from removing code debt, and how much improvement one can get by small fixes. I will also talk about Lucene consultancy we had from Uwe Schindler and how it kickstarted the project.</p> Kamil Cichy Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:50 K.3.201 rated_ranking_evaluator Rated Ranking Evaluator: an open-source approach for Search Quality Evaluation How to automate the Search Quality Evaluation process using a completely based FOSS solution Search devroom <p>Every team working on information retrieval software struggles with the task of evaluating how well their system performs in terms of search quality(currently and historically). Evaluating search quality is important both to understand and size the improvement or regression of your search application across the development cycles, and to communicate such progress to relevant stakeholders. In the industry, and especially in the open source community, the landscape is quite fragmented: such requirements are often achieved using ad-hoc partial solutions that each time require a considerable amount of development and customization effort. To provide a standard, unified and approachable technology, we developed the Rated Ranking Evaluator (RRE), an open source tool for evaluating and measuring the search quality of a given search infrastructure. RRE is modular, compatible with multiple search technologies and easy to extend. The focus of the presentation will be on a live demo showing an example project with a set of initial relevancy issues that we will solve iteration after iteration: using RRE output feedbacks to gradually drive the improvement process until we reach an optimal balance between quality evaluation measures.</p> <p>Every team working on information retrieval software struggles with the task of evaluating how well their system performs in terms of search quality(currently and historically). Evaluating search quality is important both to understand and size the improvement or regression of your search application across the development cycles, and to communicate such progress to relevant stakeholders. To satisfy these requirements an helpful tool must be: - flexible and highly configurable for a technical user - immediate, visual and concise for an optimal business utilization In the industry, and especially in the open source community, the landscape is quite fragmented: such requirements are often achieved using ad-hoc partial solutions that each time require a considerable amount of development and customization effort. To provide a standard, unified and approachable technology, we developed the Rated Ranking Evaluator (RRE), an open source tool for evaluating and measuring the search quality of a given search infrastructure. RRE is modular, compatible with multiple search technologies and easy to extend. It is composed by a core library and a set of modules and plugins that give it the flexibility to be integrated in automated evaluation processes and in continuous integrations flows. This talk will introduce RRE, it will describe its functionalities and demonstrate how it can be integrated in a project and how it can help to measure and assess the search quality of your search application. The focus of the presentation will be on a live demo showing an example project with a set of initial relevancy issues that we will solve iteration after iteration: using RRE output feedbacks to gradually drive the improvement process until we reach an optimal balance between quality evaluation measures.</p> Andrea Gazzarini Alessandro Benedetti Project Repository on Github Sease Blog Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:50 K.3.201 fulltext_search_tips_tricks CANCELLED Full-text Search Tips and Tricks Search devroom <p>Unfortunately our speaker cannot make it. Have a quick recovery, Denis!</p> <p>The real challenge in search is not how to pick the best search engine framework or how to find a match, but how to bring the most relevant results. In this talk we will discuss about relevance and to extract most of your search engine framework by indexing your data in multiple ways, boosting fields correctly, using analyzers, fuzziness, penalizing results, facets, and searching on data with different structures.</p> <p>In this session we are also going to build from scratch a movie’s search microservice.</p> <p>In this talk, I basically go through some of the major problems with relevance while building a search mechanism in an application. I spend usually half of the presentation implementing the concepts that I show and comparing with the results we had before.</p> Denis Wilson Souza Rosa Submit feedback 09:00 00:50 K.3.401 packaging_for_mageia_with_docker AMENDMENT Packaging for Mageia Linux with Docker containers Distributions devroom <p>Docker has brought an ease of use without comparison with VMs typically to build native upstream distribution packages. Where before it was needed to launch a complete environment, copy the sources into it, invoke the build tools to create the packages and then copy them back to the host, Docker has made all these steps much easier and straight forward, allowing for more rapid package production and automation.</p> <p>This presentation will show a detailed use case for building packages for the Mageia Linux distribution with bm and mgarepo usages encapsulated in Docker containers. It should help any upstream packager adopt a similar approach to make his packaging task a breathe.</p> <p>Please note that this talk replaces one entitled "Do Linux Distributions Still Matter with Containers?" by Scott McCarty who has sent his apologies but is now unable to attend as he has fallen ill.</p> Bruno Cornec Tools for Mageia containers for Docker Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:55 00:50 K.3.401 linux_distributions_lifecycles_containers Linux distributions, lifecycles, and containers Distributions devroom <p>Deploying software has lots of solutions, but what gets deployed often plays out as a fight between developers and operators. Developers want the latest (or at least later) code. Operators want things in nice packages, certified, and with a known period of support. What we need is a catalog of software with the variety of versions the developers need, with the qualities expected by the operators. Come and learn how various projects within Fedora approach this problem from different perspectives, including Fedora Modularity, containers, Fedora CoreOS, and Fedora Silverblue.</p> <p>This session contains a high-level overview as well as a live (or recorded) demo of Fedora Modularity — a project bringing multiple versions of packages in Fedora with the qualities expected from a Linux distribution: transparently built and delivered, actively maintained, and easy to install. In other words, having the flexibility that developers need and the qualities operators need.</p> <p>Followed by a demonstration of why building containers using Linux distributions' packages makes your life easier. And now with Modularity there's more versions of software to choose from.</p> <p>Ending with a quick intro into container distributions for the server (Fedora CoreOS) and for the workstation (Fedora Silverblue) — demonstrating the benefits of having an immutable small OS which is possible thanks to applications in containers.</p> <p>Expected audience: system administrators and developers</p> <p>Come and learn how developers and operators can be friends by using packaged software from Linux distributions, and what Fedora has to offer to both!</p> Adam Samalik Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:50 00:30 K.3.401 grub_upstream_and_distros GRUB upstream and distros cooperation Distributions devroom <p>The presentation will discuss current state of GRUB upstream development and cooperation with distributions.</p> <p>The first half of presentation will be focusing on last year and current development efforts. The second half will discuss cooperation between GRUB upstream and distros. In general it will show current progress in the project and main pain points. One of the goals of the presentation is to solicit some help from the community. Maintainers are quite busy and they are not able to solve all issues themselves. So, help from others is greatly appreciated. At the end of presentation Q&amp;A session is planned.</p> Daniel Kiper GNU GRUB - GNU Project - Free Software Foundation (FSF) Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:20 00:30 K.3.401 package_software_with_upt Package software for any distribution with upt Distributions devroom <p>In this talk, we will introduce the Universal Packaging Tool (upt), a modular tool meant to help packagers in their daily tasks. We will show how it is an improvement over similar existing tools, which upt means to replace. This will be especially interesting for distribution developers that have had to deal with upstream platforms such as PyPI, CPAN or RubyGems.</p> <p>Nowadays, most languages come with a package manager (such as pip or gem) that can install packages from an upstream package archive (such as pypi.org or rubygems.org). Traditional distributions (such as Debian, Fedora or OpenBSD) still package these same pieces of software, making them available through their own package manager (such as apt, dnf or the OpenBSD ports).</p> <p>Over the years, multiple scripts have been written in order to automate part of the packaging process. Tools like pypi2deb (which turns a package from PyPI into a Debian package) or gem2rpm (which turns a package from RubyGems into an RPM package) make the work of packagers much easier. There are a lot of these tools, and they all behave a bit differently, expose a different interface to their users, and duplicate a lot of code.</p> <p>In this presentation, I will introduce the Univesal Packaging Tool (upt), a modular program that allows packagers to create packages from any language-specific upstream archive to any GNU/Linux or *BSD distribution. We will show how this is done without any code duplication, and how any improvement to this tool will benefit developers from all distributions.</p> Cyril Roelandt Collection of git repositories used in upt Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:55 00:50 K.3.401 opensuse_kubic openSUSE Kubic for Distro People exploring the containerised frontiers Distributions devroom <p>As the world moves more and more towards containerised solutions, a number of real questions start to appear. - What is the perfect platform for running containers atop? - How to use this platform as part of a flexible, scalable, highly available infrastructure fabric? - How to minimize the maintenance and administration of this platform at scale?</p> <p>All of these problems are well answered in an enterprise environment by SUSE CaaS Platform, but for developers more interested in the state of containers &amp; kubernetes upstream, new issues start to appear. With such fast moving upstreams, developers and enthusiasts need a platform that can keep up and is closely involved with those upstream developments. This platform needs to not only be able to run containers at scale, but also on single machine, all the while preserving the attributes of low maintenance so the focus can be on the containers, not the base system beneath them.</p> <p>This talk will introduce openSUSE Kubic, and explains how it addresses the above, being the perfect distribution for this modern age. The session will explore in some detail how Kubic is developed in lockstep with the Tumbleweed rolling release and various upstreams including kubeadm and CRI-O. Transactional Updates, Kubic's system update stack will be demonstrated and the benefits from such an atomic update approach discussed in some detail. Finally the kubeadm Kubernetes cluster boostrapping tool will be discussed and some future plans shared for consideration and feedback.</p> <p>Attendees should come away from this talk with everything they need to know to get starting using, developing with and contributing to openSUSE Kubic.</p> Richard Brown Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:50 00:50 K.3.401 portable_services_ready_to_use Portable Services are Ready to Use Portable Services bring some container features to classic service management Distributions devroom <p>Portable Services bring certain aspects of containers to classic systemd service management. With systemd v239 Portable Services are for the first time complete and ready for users to take advantage of. In this talk we'll have a look on the underlying technical concepts, how things fit together and what the precise limitations and benefits are.</p> Lennart Poettering systemd homepage Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:45 00:30 K.3.401 homebrew_2 Homebrew 2.0.0 Distributions devroom <p>Talk discussion the major features, leadership and community changes accompanying Homebrew 2.0.0 (which will be released at or shortly after FOSDEM 2019).</p> <p>This talk will be a talk running through Homebrew's major changes since 1.0.0 and some of the trials and tribulations since then such as maintainers leaving, the lead maintainer position being abolished, becoming more focused and enabling the community to do more for themselves.</p> Mike McQuaid Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:15 00:30 K.3.401 set_versioned_package_dependencies Set-versioned package dependencies addressing the problem of shared library updates Distributions devroom <p>Set-versioned package dependencies is a free software technology invented in ALT and implemented in ALT package repositories and distributions since 2010 to prevent breakages caused by updates of shared libraries containing incompatible changes.</p> <p>Every time a shared library is going to be updated, there is a chance of incompatible changes in the library that will cause breakages in some of its clients. This happens, for example, when a symbol provided by the library is removed but the soname remains unchanged. Detecting such changes manually is getting more problematic nowadays when packages are updated automatically by scripts.</p> <p>The approach implemented in ALT package repositories to address this problem is to encode all symbols provided by shared libraries in package Provide tags, and to encode all symbols required by clients of shared libraries in package Require tags.</p> <p>In this talk the speaker will describe in detail how to implement such encoding efficiently, explain the computational costs associated with set-versioned package dependencies, and share his experience of maintaining package repositories based on set-versions.</p> <p>The primary auditory of this talk are maintainers of package repositories and distributions who might be interested in addressing the problem of shared library updates.</p> Dmitry Levin source code of golomb and set-string routines what is a set-version Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:50 00:50 K.3.401 freeipa_cross_distrbution_packaging_experience FreeIPA and cross-distribution packaging experience Distributions devroom <p>The talk is going to reflect on the effort Fedora development community has done to allow complex solutions like FreeIPA to be tested continuously and to ensure a working solution at any release time. FreeIPA is one of projects that would benefit from a tighter collaboration between distributions and we would also like to discuss how its cross-distribution support could be improved to provide a more consistent behavior to our users across multiple distributions.</p> <p>FreeIPA is an identity management solution for POSIX environments. It is often characterized as an 'Active Directory for Linux systems' which, while not exactly right description, helps to visualize a level of complexity FreeIPA has to deal with. FreeIPA as a solution is built on a number of existing and proven technologies implemented as a free and open source software. As result, a FreeIPA deployment has to deal with coordination between a lot of packages. In Fedora, for example, a fully-functioning FreeIPA deployment requires to install several hundred binary packages, including but not limited to SSSD, MIT Kerberos, 389-ds LDAP server, Samba, Apache, OpenSSH, database libraries, Java components for Dogtag Certificate Authority server, and many Python libraries.</p> <p>It is not a surprise that coordinating these components often leads to complications in an operating system distribution release management. Packages need to be at right versions at right time with knowledge about that not always shared across multiple groups of developers and maintainers. Regressions need to be tracked and fixed. Security updates and cross-platform protocol compatibility issues are adding their own flavor.</p> Alexander Bokovoy FreeIPA project home Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:40 00:50 K.3.401 distribution_build_delivery_styles Distribution build / delivery styles, one style to rule them all ? Is rolling release the answer for everything ? Or Service Pack ? SUSE and openSUSE experience Distributions devroom <p>There has been several camps on distribution style: - Rolling style, where everything is constantly moving - Regular style, where everything get polished and fixed before some freeze - Stable style, where (almost) nothing move, fearing to break anything</p> <p>openSUSE (and SUSE) have been releasing distributions in those various style and unlike common believe, they are not as different as you might thing</p> <p>We will describe pro and cons for each style and look at how our tools (OBS / openQA) and our processes (Staging / Factory First) are being use, independently of the distribution style.</p> <p>And how a "Stable" style can also be delivered like "Regular" style.</p> Frederic Crozat Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 K.3.401 gnu_guix_new_approach_to_software_distribution GNU Guix’s take on a new approach to software distribution Distributions devroom <p>As GNU Guix reaches 1.0, this talk will reflect on what it 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.</p> <p>In a time where distros are sometimes viewed as “that thing you run inside a container”, where alternative approaches to software distribution are taking steam—from CONDA and pip to Flatpak and Docker—is there still room for the traditional approach to GNU/Linux distros?</p> <p>As GNU Guix reaches 1.0 after six years of development, this talk will reflect on what Guix has to offer to users and how that compares to other approaches. You can view Guix as a package manager, but with transactional upgrades and roll-backs. Or you can view it as a standalone distribution like Debian but with a declarative interface à la Puppet. Guix is also an environment manager à la VirtualEnv but not limited to a single language, a container provisioning tool like—think ‘Dockerfile’ but with reproducibility and transparency built in, and a continuous integration/deployment tool—why write a lengthy ‘gitlab-ci.yml’ when you can reuse your package definition?</p> <p>In this talk I will give an overview of all these tools Guix provides and discuss our journey from a “package manager” kind of project to a complete software deployment toolbox. I will present key properties that set Guix apart: transparency through reproducible builds and provenance tracking, and practical user freedom through a broad range of discoverable APIs that we hope invite users to hack. We believe Guix has shown that there’s still room for innovation in the distro space, and still value in distro-style software distribution.</p> Ludovic Courtès GNU Guix Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 00:40 K.4.201 llvm_irgen Roll your own compiler with LLVM Easy IR generation LLVM devroom <p>A close look at IR code generation inside a Modula-2 compiler.</p> <p>With LLVM, one of the main tasks of an compiler engineer is to design the IR code generation from an abstract syntax tree (AST). How easy is it? Although I have worked with and on LLVM for several years now I have not yet written an compiler from scratch. So I began to work on my own compiler for an simple yet powerful language: Modula-2. In this talk I introduce the architecture of the m2lang compiler. My main focus is the generation of basic blocks and IR code from the AST. I show which general patterns emerged and which areas of the languages caused trouble. I also give hints when it is useful to introduce yet another intermediate language between the AST and the IR.</p> Kai Nacke Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:45 00:40 K.4.201 llvm_bpf_rewriting Rewriting Pointer Dereferences in bcc with Clang Syntactic sugar for BPF programs LLVM devroom <p>The bcc project [1], mostly known for its collection of Linux tracing tools, is a framework to ease the development of BPF programs for Linux. Indeed, in its recent releases, the Linux kernel can be extended with small BPF bytecode programs whose memory and fault safety is statically verified at load time. These programs are usually written in a subset of C and compiled to the BPF bytecode. To access kernel memory they must use special functions, called helpers.</p> <p>The bcc framework provides Python, Lua, and C++ wrappers to install and interact with these programs, as well as syntactic sugar for the C subset. In particular, bcc allows developers to access kernel memory as easily as they would access the BPF stack. C programs are transparently rewritten at load time, before their compilation to BPF bytecode, to translate all dereferences of pointers to kernel memory (called external pointers) into calls to the appropriate helpers.</p> <p>In this talk, after providing the necessary background on BPF, we will discuss bcc's use of Clang to track external pointers throughout the code and rewrite their dereferences. We will describe the problems we had to overcome with code examples and detail the limitations of the current implementation. Among other things [2], bcc performs three traversals of the AST to track external pointers across BPF programs (through persistent data structures), follows external pointers through assignments, return values, and structure members, and keeps track of their indirections levels.</p> <p>1 - https://github.com/iovisor/bcc 2 - https://github.com/iovisor/bcc/blob/master/src/cc/frontends/clang/b_frontend_action.cc</p> Paul Chaignon bcc's repository Pointer dereference rewriting code in bcc Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:40 K.4.201 llvm_building Building an LLVM-based tool Lessons Learned LLVM devroom <p>In this talk, I want to share my experience in building an LLVM-based tool.</p> <p>For the last three years, I work on a tool for mutation testing. Currently, it works on Linux, macOS, and FreeBSD and the source code is compatible with any LLVM version between 3.8 and 7.0. Anything that can run in parallel - runs in parallel. I will cover the following topics:</p> <ul> <li>How to support multiple LLVM versions</li> <li>How to support different operating systems (Linux, macOS, FreeBSD)</li> <li>How to build against precompiled LLVM and sources at the same time</li> <li>How to parallelize everything</li> <li>How to test things</li> <li>Different ways to get bitcode from any project</li> </ul> Alex Denisov Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:15 00:40 K.4.201 llvm_debug Debug info in optimized code - how far can we go? Improving LLVM debug info with function entry values LLVM devroom <p>Software release products are compiled with optimization level –O2 and higher. Such products might produce a core-file that is used for investigating cause of problem that produced it. First thing from which we start debug analysis is call-trace from a crash. In such traces most of the parameters are reported as optimized out due to variety of reasons. Some of parameters are really optimized out, but some of their locations could be calculated. Expert software developers are able to find what values parameters had at function entry point by using the technique that requires searching those values in disassembly of caller frame at place of that particular function call. Automation of such technique is described by DWARF 5 specifications and it is already implemented in GCC and GDB since 2011. The goal of this paper is to present ideas, implementation and problems that we encountered while we were working on this feature in LLVM. We will also show the improvement by presenting recovered parameters in some of the call-traces. This feature should improve debugging of optimized code built with LLVM by recovering optimized-out function parameters.</p> Nikola Prica Djordje Todorovic Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:40 K.4.201 llvm_tablegen Lessons in TableGen LLVM devroom <p>TableGen is LLVM's DSL for describing intrinsics, backends' machine instructions, physical registers, machine scheduling models, and a bunch of other things. It is extremely flexible and powerful, but can also be rather aggravating. Most people who spend a significant amount of time working on an LLVM backend probably develop a love/hate-relationship with it.</p> <p>The goal of this talk is to give a brief overview of what TableGen offers -- frontend, application-specific backends, generic table emission backend, idiosyncratic type system, and these days even limited functional-style programming -- and a brief introduction on how to use it. The focus will be mostly on the frontend -- that is, syntax and semantics of the TableGen DSL itself -- rather than on specific backends.</p> <p>Along the way, I want to share some lessons learned and decisions made during a major refactoring of the TableGen frontend that I undertook in early 2018 to iron out many of TableGen's quirks and shortcomings that had accumulated over the years, as well as some glimpses of the advanced TableGen uses in the AMDGPU backend that motivated that refactoring.</p> Nicolai Hähnle (Incomplete) Series of blog posts about TableGen Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:45 00:40 K.4.201 llvm_apollo LLVM for the Apollo Guidance Computer LLVM devroom <p>Nearly 50 years ago on the 20th of July 1969 humans set foot on the moon for the first time. Among the many extraordinary engineering feats that made this possible was the Apollo Guidance Computer, an innovative processor for its time with an instruction set that was thought up well before the advent of C. So 50 years later, why not implement support for it in a modern compiler such as LLVM?</p> <p>This talk will give a brief overview of some of the architectural features of the Apollo Guidance Computer followed by an account of my implementation of an LLVM target so far. The shortcomings of LLVM when it comes to implementing such an unusual architecture will be discussed along with the workarounds used to overcome them.</p> Lewis Revill Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:40 K.4.201 llvm_mix llvm.mix Multi-stage compiler-assisted specializer generator built on LLVM LLVM devroom <p>Automatic program specialization is a well-formed area of computer-science research with many interesting practical applications, but to this day most existing specializers and partial evaluators are only applicable to one of a few high level programming languages. The reason is that developing a specializer for a new language remains still a from-scratch endeavor, and it's hard.</p> <p>It is the lack of general-purpose flexible program specialization tools that often leads projects to creating custom just-in-time compilers for their specific use cases. These compilers, even if based on mature compiler infrastructures such as LLVM's, immediately become way harder to develop and maintain than simple interpreters they make obsolete. In many cases, however, program specialization could bring the proverbial 80% of the benefits for a fraction of the cost, while maintaining simplicity and testability of the original design.</p> <p>It is our belief that developing a specializer for a new language should be as easy as adding some supporting syntactic and semantic definitions to a language front-end and reusing an existing specializer in the middle end.</p> <p>Such a language-independent specializer preferably has to:</p> <ul> <li>remove as much interpretation overhead as possible, and add no extra interpretation overhead of its own;</li> <li>be able to produce both interpreters and compilers from the same code base, to enable gradual transition and to preserve debugging and testing properties of the original source code;</li> <li>include a binding-time analysis component to simplify binding-time improvements of the source program;</li> <li>be guided by annotations embedded in the source program as opposed to external annotations, to ease development and maintenance;</li> <li>support multiple compilation stages to take advantage of as many specialization points as necessary;</li> <li>be flexible enough with resource management to fit in both managed and unmanaged environments.</li> </ul> <p>We will present the design and the prototype implementation of a multi-stage offline specializer generator that ticks most of these boxes. The generator is based on LLVM and runs in compile time along with the compilation of a source program. It is controlled by intrinsics and function and parameter attributes in LLVM IR. Being developed in the middle-end of the LLVM optimizer, the specializer generator can be used with any language front-end. We will talk about some elements of its design, its limitations, and ways to improve.</p> Eugene Sharygin llvm.mix Clang extension Examples and micro benchmarks Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:15 00:40 K.4.201 llvm_smt_csa SMT-Based Refutation of Spurious Bug Reports in the Clang Static Analyzer LLVM devroom <p>I will present a new option added to the clang static analyzer (CSA) to refute false bug reports, using satisfiability modulo theory (SMT) solvers. In this talk, I will:</p> <p>(1) give a general overview of the CSA, how it works and its limitations;</p> <p>(2) show how we extended the existing heuristics to remove spurious bug reports: path constraints produced by CSA are encoded as SMT problems, SMT solvers precisely check them for satisfiability, and bug reports (whose associated path constraints are unsatisfiable) are removed;</p> <p>(3) show the evaluation of our refutation algorithm when analyzing twelve widely used open-source projects;</p> <p>(4) show how to set up an automated testing environment using scripts provided by the CSA infrastructure. As an example, I will show how to set up the twelve projects used to evaluate our refutation algorithm: https://github.com/mikhailramalho/analyzer-projects.</p> <p>The target audience of this talk is anyone interested in learning more about the clang static analyzer and in analyzing their C/C++/ObjectiveC projects.</p> <p>The clang static analyzer works by symbolically executing a program, collecting the symbols and constraints for every path in the program, and reasoning about bug feasibility using a built-in solver called RangedConstraintManager. It was designed to be fast so that it can provide results for common mistakes (e.g., division by zero or use of uninitialized variables) even in complex programs. However, the speed comes at the expense of precision; it cannot handle some arithmetic operations (e.g, remainders) or bitwise expressions. In these cases, the analyzer discards the constraints and might report false bugs.</p> <p>The new option works by adding an extra step in the program analysis after the bug is found by the built-in solver but before reporting it to the user; the path and the constraints that trigger the bug are encoded in SMT and checked for satisfiability.</p> <p>I will present an evaluation of the crosscheck when analyzing twelve C/C++ open-source projects of various size (tmux, redis, openssl, twin, git, postgresql, sqlite3, curl, libWebM, memcached, xerces-c, and XNU). When analyzing these projects with bug validation enabled, the slowdown is negligible in cases where no bug is refuted (average 1.2% slowdown) and, when it finds false bugs, the bug validation gives a small speedup (average 6.2% speedup). On average, 12.2 bugs per program were refuted by the SMT solver, ranging from 1 bug refuted in redis to 51 being refuted in XNU.</p> <p>Finally, I will present a set of scripts provided by the CSA that can be used to set up an automated testing environment. The scripts are freely available and their presentation will follow the process described in https://github.com/mikhailramalho/analyzer-projects.</p> Mikhail Gadelha Scripts to analyze projects The clang static analyzer main page Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:40 K.4.201 llvm_lld What makes LLD so fast? LLVM devroom <p>One of the main features of LLD, the LLVM Linker, is its high performance, frequently outperforming existing linkers by a substantial margin. In this presentation we'll take a look at why this might be? Starting with a brief description of the linker and what it must do, we'll look at how LLD approaches the problem, compare and contrast with other open source linkers and see how it performs on a selection of programs. We'll conclude by looking at what you might be able to take from LLD's architecture, implementation, and development into your own programs.</p> <p>LLD (https://lld.llvm.org/) is a drop in replacement for system linkers such as GNU ld and link.exe. Since LLVM release 4.0 it has been available in the official release. Speed of linking is especially important in large projects where a single change in an object file can result in minutes of link time. On a fast machine can bring the link time of even large projects like Chrome and Clang under a minute on a fast machine, permitting developers to iterate on their changes more rapidly.</p> <p>All linkers have the same basic job, find and load all the object files and libraries that will form the output, lay the contents out in order, write the combined output. In many ways a glorified form of cat. There is no single reason why LLD is faster than other linkers, it is a combination of architectural and implementation factors as well as a focus on performance by the projects maintainers. In some cases these factors will only pertain to linking but in many cases they will generalize to similar projects.</p> <p>The intended audience for this talk is made up of: - People interested in learning more about the linking process. - Software developers interested in performance of batch programs that deal with a large input size.</p> <p>Knowledge of C++ for the implementation aspects will be helpful.</p> Peter Smith Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:45 00:40 K.4.201 llvm_kernel Compiling the Linux kernel with LLVM tools LLVM devroom <p>The Linux kernel codebase has co-evolved with GCC and binutils over its lifetime, but LLVM is now capable of producing production ready Linux kernels. Come learn what some of the challenges were in porting the codebase from GCC/binutils to Clang/LLVM, and what the latest efforts are in both codebases to work towards this goal.</p> <p>The Linux kernel codebase has co-evolved with GCC and binutils over its lifetime, but LLVM is now capable of producing production ready Linux kernels. Come learn what some of the challenges were in porting the codebase from GCC/binutils to Clang/LLVM, and what the latest efforts are in both codebases to work towards this goal.</p> <p>We plan to cover some of the previous challenges, current challenges, issue tracker, various continuous integration setups, topics of future interest, usage in production, and how folks interested in helping out can participate. This talk will be from a kernel developer's (slash recent LLVM contributor's) perspective.</p> Nick Desaulniers Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 K.4.201 llvm_bisect It was working yesterday! Investigating regressions with llvmlab bisect A hands-on introduction to llvmlab bisect LLVM devroom <p>Investigating the source of correctness of performance regressions can be a very challenging and time consuming process. In this talk, I’m going to present an introduction to automated LLVM/clang bisecting with llvmlab bisect. Examples will be demonstrated using a Raspberry Pi board.</p> <p>Understanding the source of a correctness, performance regression or behaviour changes is valuable information for developers. The process of going backwards and looking for a specific code change that caused a given issue is called bisection, see also https://en.wikipedia.org/wiki/Bisection<em>(software</em>engineering).</p> <p>Even though the algorithmic complexity of bisection is O(log N), the constants involved are sometimes very large, leading to a very long run time. It can be very simple when an obvious local change causes something to start malfunctioning. On the flip side, it can become very costly in case the behaviour change is actually a side effect of a supposedly unrelated commit.</p> <p>In projects with large code bases, lots of commits per day and requiring more than few minutes to be built - like LLVM and clang -, manually bisecting issues can be a painful and time-consuming process. That is why many tools are available to automate this process, with probably "git bisect" and "svn bisect" amongst the best known ones.</p> <p>llvmlab bisect is a tool introduced in 2015 by Chris Matthews and Daniel Dunbar, to address challenges when bisecting behavioural changes in LLVM. Especially, it sharply reduces bisection time by not needing to rebuild LLVM on every bisection step, resulting in often many order of magnitude improvements in bisection speed. For example, it is not uncommon for a bisection run to find the commit that changes behaviour in 1 day worth of LLVM commits, to be sped up from hours to minutes.</p> <p>The bisection process with llvmlab bisect relies on a publicly available build cache. This build cache saves time by avoiding the need to build a toolchain for every commit, by every developer. We have been using a build cache internally at Arm to be able to keep on top of correctness and performance regressions. Without this tool, the bisection runs would take too long to be able to feedback regressions introduced in recent commits in a timely fashion to external developers.</p> <p>We have recently created two new public bots as part of the Works on Arm project (https://www.worksonarm.com/) to build LLVM and clang, and populate the LLVM build cache with Arm binaries, so they can be used with upstream llvmlab bisect.</p> <p>In this talk, I’m going to present a practical introduction to automated LLVM/clang bisecting using llvmlab bisect, and following the recent addition of armv7 and aarch64 support on llvmlab bisect, examples will be demonstrated on a Raspberry Pi 3B+ board.</p> Leandro Nunes Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:00 00:30 K.4.401 hardware_raspberrypi Raspberry Pi history, tips and use case its history, how to use it and what is its good use case Hardware Enablement devroom <p>Raspberry Pi is now 6 years old, there are several tips and use cases.it was born for kids programming education, though, it is now also used for electric DIY hobbies, industrial use, Edge Computing, IoT and more. Masafumi will talk Raspberry Pi history and latest updates and discuss several its use cases and tips for our business and daily use.</p> <h1>Raspberry Pi histories, tips and use case</h1> <h2>What is Raspberry Pi</h2> <p>1.Raspberry Pi history</p> <pre><code>1.1 The opportunity at programming education in latest kids generation 1.2 Concept of Raspberry Pi 1.3 Release in 2012 and now 1.4 Related vendors (resellers) encourage Raspberry Pi market. 1.5 Review its effects and results 1.6 Road maps and future </code></pre> <p>2.Raspberry Pi models</p> <pre><code>2.1 Raspberry Pi 1 2.2 Raspberry Pi 1+ 2.3 Raspberry Pi 2 2.4 Raspberry Pi 2 (v1.2) 2.5 Raspberry Pi 3 2.6 Raspberry Pi 3+ 2.7 compare other card-sized board machines </code></pre> <h2>Raspberry Pi tips</h2> <p>3.Tips you should know</p> <pre><code>3.1 look inside hardware 3.2 check inside software 3.3 check inside related license and etc to sell your Raspberry Pi embedded products. 3.4 other useful tips you should check </code></pre> <h2>Raspberry Pi use case</h2> <p>4.Learn from its use case</p> <pre><code>4.1 Not only for kids but also young engineers 4.2 Small and speedy starts gain your business with Raspberry Pi 4.3 Prototype and production 4.4 Daily DIY hobby expand your life </code></pre> <h2>Conclusion</h2> Masafumi Ohta Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:30 K.4.401 hardware_boot_haiku Will you boot Haiku, on a non intel platform, no BIOS winter? Booting Haiku on non-x86, a never-ending story. Hardware Enablement devroom <p>The quest for booting Haiku on non-x86 platforms is a never-ending story. The pace of development on the x86 platform doesn't explain everything. We'll tell the story of how we started ports on ARM, PPC, m68k, how well it went so far, and what's next. Some rants on EFI, OpenFirmware, U-Boot and others might interfere with the narration.</p> <p>We will tell the story of architecture support in Haiku, how it progressed, and sometimes regressed due to other developments, and how different firmwares impacted the bootloader and kernel support.</p> François Revol Haiku website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:30 K.4.401 hw_uboot U-Boot from Scratch v2019.01 edition Hardware Enablement devroom <p>U-Boot project has evolved in the time span of over 17 years and so as its complexity and its uses. This has made it a daunting task in getting started with its development and uses. This talk will address all these issues start with overview, features, efforts created by U-Boot community and future plans.</p> <p>In this talk Jagan Teki will introduce U-Boot from scratch with a brief overview of U-Boot history, U-Boot Proper, SPL, TPL, Build process and Startup sequence. He will talk about other preliminaries such as Image booting, Falcon Mode, Secure Boot and U-Boot features like device tree, device overlays, driver model and DFU, etc.</p> <p>Once giving enough introduction, he will also talk about steps to port U-Boot to new hardware with a demo, along with U-Boot testing process. Finally, he will address and review ongoing development work, issues and future development regarding U-Boot.</p> Jagan Teki OSFC, 2018 paper Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:30 K.4.401 linux_and_usb_audio_class_3 Linux and USB Audio Class 3 Hardware Enablement devroom <p>The USB Audio Class 3.0 is a specification recently introduced by USB Implementers Forum. Ruslan is an author of UAC3 implementation in Linux, he will give an overview of improvements and changes in this USB Audio spec, and will share current Linux support status and challenges faced during ALSA drivers implementation.</p> Ruslan Bilovol Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:30 K.4.401 uefi_boot_for_mere_mortals UEFI Boot for Mere Mortals Hardware Enablement devroom <p>Over the past decade the Unified Extensible Firmware Interface (UEFI) has become the primary standard for boot firmware. However, the complexity of the UEFI spec and the myriad of implementation choices can be confusing to even experienced developers. Fortunately, there are a growing number of open source UEFI implementations for different architectures, making it easier to explore the world of firmware.</p> <p>This session will provide an overview of UEFI and show working examples based on two maker platforms: BeagleBone Black and the Aaeon’s UP Squared board. Everything from “lightweight” implementations to full UEFI stacks will be examined, using a variety of open source projects (TianoCore, U-Boot, coreboot, and Slim Bootloader).</p> <p>Questions this talk should answer:<br/> -What is the goal of the UEFI spec and what are some popular implementations?<br/> -How do I replace the stock firmware on my board with open source UEFI?<br/> -What are the benefits of running TianoCore rather than something more lightweight like coreboot or Slim Bootloader?<br/> -How does U-Boot implement UEFI, and how does it differ from EDK II?</p> Stephano Cetola Alexander Graf Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:30 K.4.401 hw_gitlab_ci_arduino AMENDMENT CI/CD for embedded development with an ESP8266, Arduino-cli, Gitlab-ci, Raspberry Pi, and Kubernetes Blink a LED with gitlab-ci and arduino-cli Hardware Enablement devroom <p>Blink an ESP8266 board via an arduino-cli CI/CD pipeline hosted on Gitlab.com, with Kubernetes, and a Raspberry-pi board.</p> <p>WARNING: This replaces the "MCU Immutable Booting" talk from Michael Schloh von Bennewitz, which was canceled since the speaker could not attend FOSDEM due to a lack of financial sponsorship. It was about protecting microcontroller bootloaders with immutable boot.</p> <p>In this live demo, I will show how to blink an ESP8266 board via a CI/CD pipeline hosted on Gitlab.com. Gitlab-ci is connected to a stripped down Kubernetes cluster (K3S fork) hosted on a local raspberry-pi board, to which we have attached an ESP8266 board. I will explain how to use the new Arduino CLI instead of the Arduino IDE.</p> Benjamin Henrion (zoobab) Arduino-cli blink example for ESP2866 + gitlab-ci + kubernetes Arduino-cli K3S, a lightweight kubernetes Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:30 K.4.401 open_source_firmware_at_facebook Open Source Firmware at Facebook "If you don't own your firmware, your firmware owns you" Hardware Enablement devroom <p>LinuxBoot is an embedded Linux-based environment intended to be integrated into the firmware on the boot ROM. It provides an open, reliable way of initializing hardware and booting a target operating system. It can even replace large portions of proprietary and closed firmware on existing systems. We are experimenting with it at Facebook for speed, reliability, flexibility, transparency and control, and the goal is to make it available on as many platforms as possible.</p> <p>UEFI was introduced about two decades ago to address the growing complexity of booting a modern computer. It has evolved over the years and is now almost ubiquitous. However there are some parts which still seem limited and difficult to work with, and most vendor implementations are still closed source.</p> <p>LinuxBoot, an open source effort, offers a solution by embedding a Linux kernel into a machine's firmware and using Linux to initialize most of the hardware and boot the target OS. The idea is to build on top of core silicon initialization modules (e.g. from UEFI) and get into into Linux as early as possible. We are experimenting with LinuxBoot in our infrastructure and various hardware projects at Facebook. We will talk about the advantages of running LinuxBoot for reliability, speed and flexibility, debugging, and how you can try it today on accessible hardware.</p> Andrea Barberio David Hendricks LinuxBoot main website Systemboot: bootloader components u-root: a Go-based initramfs coreboot: open source firmware for silicon and DRAM initialization Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:30 K.4.401 zink Zink OpenGL on Vulkan Hardware Enablement devroom <p>For the last 25 years or so, OpenGL has been the only major cross-platform 3D graphics API out there. But in the last couple of years this has changed, and it's looking more and more like Vulkan will take over the throne. This means that we currently need two graphics drivers for each GPU, one per API. But it's not like the available workforce for opensource drivers all of a sudden doubled, so this leaves us with a scalability problem.</p> <p>To remedy this, we have started working on Zink, a new Mesa Gallium driver that implements OpenGL on top of Vulkan. This means that in the future, GPU vendors can focus on one, high-performance Vulkan driver, and leave OpenGL as a legacy/compatibility feature. This does come at a loss of performance, but this might not be as bad as one would fear.</p> <p>This approach also has some extra interesting benefits when virtualizing GPU access, where the channel through the VM to the GPU needs to be thoroughly vetted for security issues. Allowing this to be done once rather than twice has obvious benefits.</p> <p>This talk will cover what the current status of the project is, what problems are on the horizon, and where it'll hopefully go in the future.</p> Erik Faye-Lund Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:30 K.4.401 one_image_to_rule_them_all One image to rule them all Single boot image for SBCs Hardware Enablement devroom <p>Bootable images for single board computers (SBCs) are currently tailored for a specific board - even boards sharing the same SoC have to use separate image files. This either causes several almost identical images being provided or only very few boards being supported. The talk will present a single image designed to boot various ARM64 based SBCs, including boards from different SoC vendors, like Allwinner and Rockchip. It uses the different start sector used by the SoC families, with some tweaks to allow coexistence between the different firmware components, plus some runtime detection of the SoC and DRAM chips used. This can be used for instance by distributions to provide generic distribution installer images.</p> Andre Przywara Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:30 K.4.401 psl Pocket Science Lab Developing FOSS Hardware and Scaling up to Large Scale Production Hardware Enablement devroom <p>The goal of Pocket Science Lab is to miniaturize laboratories with FOSS and Open Hardware. We have released the first commercial FOSS version. The talk covers our journey from developing FOSS Hardware and to scaling up to large scale production.</p> <p>The goal of Pocket Science Lab is to miniaturize laboratories. We have released the first commercial FOSS version. The talk covers our journey from developing FOSS Hardware and to scaling up to large scale production.</p> <p>PSLab is a tiny pocket science lab that provides an array of test and measurement instruments for doing science and engineering experiments. It can function like an oscilloscope, waveform generator, frequency counter, programmable voltage and current source and also as a data logger. An Android app is developed and available on app stores. A desktop version is available in Python. In the session we will also explain how the software applications with their unique functionalities help to grow the PSLab and Open Science community.</p> Mario Behling PSLab Website PSLab Git PSLab Shop PSLab Twitter PSLab Facebook PSLab Roadmap PSLab Neurolab Hardware Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:30 K.4.401 porting_u_boot_to_a_modular_device Porting U-Boot to a Modular Device Booting Linux via U-Boot on a board which can be composed of several different modules Hardware Enablement devroom <p>Currently, Das U-Boot and Linux use device tree to specify how the different hardware components are connected to each other on a board. If a board has a way via which the user can plug in another hardware component, unless we are talking about universal buses like USB or SDIO, the device tree has to be updated to corresponding to the change.</p> <p>There are several ways how this issue can be solved. One may, for example, have a different device tree for each configuration, or one can use device tree overlays.</p> <p>But what if you have a device which can, via one bus, connect several devices, and these may or may not be of the same kind? The number of different device trees would grow rapidly, and one could not use the same device tree overlay when the same device is connected more than one time without editing the overlay.</p> <p>Fortunately U-Boot can fixup the loaded device tree before booting.</p> <p>In this talk we shall describe how we used this fixup feature (hopefully in an elegant and upstreamable way) to solve this issue on Turris MOX, a modular SOHO router.</p> Marek Behún Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:30 K.4.401 microcontroller_firmware_from_scratch Microcontroller Firmware from Scratch Hardware Enablement devroom <p>Follow a journey of writing STM32 microcontroller firmware from scratch, using open-source tools.</p> <p>Follow Nikolay Kondrashov's journey of learning to write firmware for an STM32 microcontroller (the Blue Pill one) from scratch, using only open-source tools. From blinking LEDs, to controlling a toy car, without the complicated, and license-restricted manufacturer's libraries, or the comfortable crutches of the Arduino stack. Learn where to look for information, which tools you might need, and how to do it yourself with a similar or a different microcontroller.</p> Nikolai Kondrashov Slides at slides.com Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:30 K.4.401 kernelci_a_new_dawn KernelCI: a new dawn How the KernelCI project is getting a second breath Hardware Enablement devroom <p>KernelCI is a project dedicated to testing the upstream Linux kernel. Originally created by Linaro in 2014, it is now given a second breath by joining the Linux Foundation and has a fast growing community. Results are already starting to show.</p> <h2>On testing the upstream kernel</h2> <p>The upstream Linux kernel is known for having a high rate of changes while supporting a vast range of hardware. How is it being tested? The answer is manifold, with various systems focusing on very different use-cases. From Intel's 0-Day project which has a large test coverage but only runs on x86 platforms to individual hackers who only have their locally available development hardware, there is no comprehensive solution to test the kernel as a whole.</p> <h2>A second breath for KernelCI</h2> <p>KernelCI was originally created by Linaro in 2014 to address a segmented ARM ecosystem. It then went through a long period of slow progress, with a good range of hardware in its test labs but limited build infrastructure, a reduced community and a lack of advanced features. It is now given a second breath: labs are growing with new devices, functional testing is expanding to cover more subsystems, automated bisection is becoming effective. Last but not least, KernelCI is now joining the Linux Foundation with a membership scheme to provide it with a sustainable structure and funding.</p> <h2>In the long run</h2> <p>Overall, the project aims at testing the upstream kernel in its entirety. The hope is to gradually shift the kernel development model to become more test-driven with continuous automated testing. It is a very big task, so to start with it's going off the beaten tracks by looking at areas that are not already very well covered. And of course, there are many things there that need fixing before they become real problems for users.</p> Guillaume Tucker KernelCI home page Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 K.4.401 redfish_the_new_standard_for_a_software_defined_infrastructure Redfish: the new standard for a Software Defined Infrastructure Hardware Enablement devroom <p>Redfish is an IPMI replacement standardized by the DMTF. It provides a RESTful API for server out of band management and a lightweight data model specification that is scalable, discoverable and extensible. (Cf: http://www.dmtf.org/standards/redfish). This presentation will start by detailing its role and the features it provides with examples. It will demonstrate the benefits it provides to system administrator by providing a standardized open interface for multiple servers, and also storage systems.</p> <p>We will then cover various tools such as the python-redfish library (Cf: https://github.com/openstack/python-redfish) offering Redfish abstractions useful to provide Redfish support for python based solutions such as Ironic in OpenStack, cobbler or anaconda. The recently OpenSource python-redfish-utility client will also been covered.</p> <p>Finally, we'll show how to combine that to add CMDB support (with the Open Source iTop tool as an example) into a Software Defined Infrastructure.</p> <p>Live or Recorded demos will be displayed in order to illustrate the different aspects covered during the presentation.</p> Bruno Cornec Redfish standard Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:35 00:30 K.4.601 dns_getdns_local_validation Using getdns for local DNSSEC validation DNS devroom <p>The most common setup is where a recursive DNS resolver does the DNSSEC validation. The nice thing about this approach in that existing applications do not require modifications.</p> <p>However, an application cannot easily tell if the resolver is doing DNSSEC validation, and the path between the application and the resolver is unprotected.</p> <p>The solution to this, is for applications to do local DNSSEC validation. This can be done using the getdns library. The getdns library provides other advantages as well, such as a modern interface to DNS resolution, support for event libraries (such as libevent).</p> <p>In this presentation I will describe getdns and show two examples of how it can be used in practice.</p> Philip Homburg Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:10 00:30 K.4.601 dns_systemd_resolved How and why (not) to use the 127.0.0.53 nameserver, systemd-resolved and resolvctl Or what is systemd-resolved and how it is integrated on Ubuntu DNS devroom <p>Resolved is a local, caching, DNS nameserver resolver and is used by default on Ubuntu. This talk's goals is to de-mystify how it works and what it does by default on Ubuntu, and how one can further configure it to either not get in the way, or do even more cool things. We will discuss how it can be used (nss, dbus, over the network, command-line, text-configs) and how to configure it (config files, command line, resolvconf, dbus, networkd, network-manager). We will cover advanced use cases for per-interface nameservers, true split-dns configuration, and optional features such as DNSSEC MDNS Zeroconf. Last we will discuss bugs, DNS violations and diss captive portals.</p> <p>Talk outline</p> <p>= Fantastic DNS records and where to find them =</p> <p>Demystifying systemd-resolved and how it is integrated on Ubuntu</p> <p>== What is systemd-resolved? ==</p> <ul> <li>Local, caching nameserver resolver</li> <li>Nss-module, dbus-interface, command-line tool, networked daemon</li> <li>Per-connection nameservers</li> </ul> <p>== How can one integrate systemd-resolved on the system? ==</p> <ul> <li>Nss</li> <li>Resolv.conf symlinks</li> </ul> <p>== How to update resolved nameservers ==</p> <ul> <li>Netplan.io / NetworkManager / Networkd</li> <li>Dbus</li> <li>Systemd-resolved / Resolvctl</li> <li>Resolvconf</li> <li>Read resolv.conf</li> </ul> <p>== Ubuntu defaults ==</p> <ul> <li>Things we do by default</li> <li>Divergent defaults from upstream applied</li> </ul> <p>== Fun stuff ==</p> <ul> <li>Dnssec</li> <li>Mdns</li> <li>Zeroconf</li> <li>Split DNS ~</li> </ul> <p>== Bugs ==</p> <ul> <li>Edns0 is sad</li> <li>Captive portals are sad</li> <li>Abuse of Option 15 for multiple domains</li> <li>MDNS taking too long</li> <li>Domain-less searches are not forwarded</li> </ul> Dimitri John Ledkov resolved.conf man-page systemd-resolved.service man-page resolvectl, resolvconf man-page Slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:45 00:30 K.4.601 dns_bind9_refactoring Stories from BIND9 refactoring Dealing with code that can drink legally DNS devroom <p>Bind9 code is 21 years old - it was written in times without all the modern buzz-words like test-driven development, QA and code quality. Having working on refactoring the code I want to guide the audience through the process of refactoring one particular function - query_find, showing the mistakes made on the way, cul-de-sacs entered, hours and days lost, for others to learn on my mistakes.</p> Witold Kręcicki Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:20 00:30 K.4.601 dns_over_https_dilemma DNS and the Internet's architecture: the DoH dilemma Impacts of DNS-over-HTTPS on how the Internet works DNS devroom <p>Mozilla's announced deployment model for DNS-over-HTTPS made some properties of this protocol apparent to everyone, stirring a lot of discussion. Specifically, DoH could promote a collective switch from local resolvers to a few global public services, and make each application independent from the user's preferences in the operating system. This could provide more privacy and less censorship, or less privacy and more censorship, depending on how it is deployed and who gets to control the resolvers. What would be the advantages and disadvantages of a broad adoption of DoH by Web browsers, and its likely long-term effects?</p> <p>The talk will start with a general introduction to DoH, stressing its main architectural features: hiding DNS queries inside Web traffic in an unblockable way, moving DNS resolution to the application layer, and putting application makers (especially browser makers) in charge for DNS settings.</p> <p>It will then discuss all the things that are broken by mass-scale deployment of DoH under this paradigm, including DNS-based security mechanisms and access control services, local and national content filtering policies, and network monitoring tools. It will also discuss in which use cases DoH creates advantages for the user (i.e. more privacy and freedom of expression) and in which others it creates disadvantages (i.e. less privacy and more control). Finally, it will discuss the changes to the Internet's original principles that would derive from the centralization that DoH could induce, by providing an additional control point to a few of the usual big over-the-top companies from the GAFAM club.</p> <p>We also look forward to a final discussion to listen to more opinions (including those that disagree with us) and allow participants to learn more about the issue and make up their mind - or, perhaps, end up with more questions than they had in the beginning.</p> Vittorio Bertola Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:55 00:30 K.4.601 dns_privacy_panel DNS Privacy panel A discussion about all aspects of DNS Privacy DNS devroom <p>Daniel Stenberg, Stéphane Bortzmeyer and Bert Hubert will discuss the changing DNS privacy landscape, including topics such as DoH, DoT. Moderated by Jan-Piet Mens.</p> Daniel Stenberg Stéphane Bortzmeyer Bert Hubert Jan-Piet Mens Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:25 K.4.601 dns_id4me ID4me: using the DNS as a directory for identities Who needs a blockchain when you have the DNS? DNS devroom <p>The DNS was born as a directory for hosts, but shouldn't it also be a directory for people? As Internet-scale single sign-on and identity management platforms multiply, each enclosed in its own private namespace, there is a need to federate them and make them interoperable in an open and standard manner. We will discuss why the DNS is the best tool for that, compare it with trendy but less suitable alternatives (e.g. blockchains), and summarize the workings and the status of existing projects (ID4me).</p> <p>The talk starts by discussing why a standard identity layer for the Internet is necessary and how it could work. It then discusses the possible options to build a distributed and federated database of existing identities, which is necessary for any such layer to work; and shows why the DNS is the best option currently available, when compared to Web-based protocols (e.g. Webfinger) and to blockchains. The talk then presents the architecture of the ID4me project, an attempt to build an open and public standard for Internet single sign-on based on the DNS; since the project was already partially presented in last edition's DNS devroom but has accomplished several new steps, it then gives an update on its status.</p> <p>An earlier version of this talk was already presented at the 2018 DNS Symposium organized by ICANN in Montreal last July (the slides from that talk are attached as a sample). This version will include an updated second part with some more details on the architecture and recent developments of the ID4me project.</p> Vittorio Bertola ID4me website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:20 K.4.601 dns_flamethrower Flamethrower A flexible tool for DNS load and functional testing DNS devroom <p>Flamethrower is a new DNS performance and functional testing utility. Originally envisioned as an “improved dnsperf” and allowing simulation of realistic looking traffic patterns it has become a versatile tool for DNS server development and load testing. We will discuss motivations for its existence, its technical architecture, and use cases.</p> Jan Včelák Flamethrower repository at GitHub Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:25 00:30 K.4.601 dns_powerdns_lua_record Dynamic answer generation with Lua An exploration of the LUA record from the upcoming PowerDNS release DNS devroom <p>This talk will focus on an in-zone way of generating dynamic answers to DNS queries using Lua. These LUA records look like TXT in the zone, but the authoritative server will run the code that is inside them to answer a query. This talk details the design, implementation and usecases of these records as implemented in the PowerDNS Authoritative Server 4.2 (unreleased as of talk submission).</p> Pieter Lexis Lua records on the PowerDNS blog Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:30 K.4.601 dns_is_single_vendor_enough Is a single DNS vendor enough? Discussion about complexities of multi-vendor deployment, and why you should do it anyway. DNS devroom <p>Why is using a single DNS implementation not enough? Discussion about complexities of multi-vendor deployment, and why you should use multi-vendor setup anyway.</p> <p>In theory all the DNS server implementations do basically the same thing, so why bother with deploying and maintaining software from more than vendor?</p> <p>In this talk we will look at consequences of having single DNS implementation, and give basic recommendations on DNS diversity.</p> <p>After an introductory presentation we will together discuss complexities of multi-vendor deployments, and try to gather ideas for common configuration interface which could help people to deploy software from multiple vendors.</p> Petr Špaček YANG modelling language RESTCONF protocol NETCONF protocol Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:35 00:30 K.4.601 dns_octodns DNS as code with octodns Versioning and keep track of your dns records changes and automatize all the thing via travis-ci DNS devroom <p>In this talk will be illustrate who to manage a DNS infrastructure with a git repository and pull requests, will be also show how to easy setup multiple zones backup with multiple DNS providers. All make possible with octodns and travis-ci.</p> Matteo Valentini Octodns travis-ci Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:10 00:30 K.4.601 dns_dnssec_security_without_maintenance DNSSEC security without maintenance ... with the right software and registry DNS devroom <p>We will show how to use open-source DNS server "Knot DNS" to automatically sign and maintain DNS zones, and how to automate DNSSEC maintenance.</p> <p>Today DNSSEC technology is mature and automation tools are available for all tasks.</p> <p>In this talk we will show how to use open-source DNS server "Knot DNS" to sign your DNS zone and publish keys with little effort, and how to automate DNSSEC key management using CDS/CDNSKEY technology (RFC 8078).</p> Petr Špaček Knot DNS homepage Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:45 00:15 K.4.601 dns_documenting_validator_requirements Documenting Validator Requirements DNS devroom <p>Within the IETF there is an effort to document what is needed for a DNSSEC Validator to work. This talk is to "sell" this document to the developer community and to assess the desire to see the document published. An important question to discuss - how is this not another straw on the back of the camel.</p> Edward Lewis Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:05 00:20 K.4.601 dns_ksk_2010_revoke_monitoring Revoking the 2010 DNSKEY Monitoring the events of 11th of January 2019 DNS devroom <p>The new root DNSKEY is in use since October 11th 2018. The old root DNSKEY is still present in the root zone, and will have the revoked bit set on January 11th, 2019. The intent is to monitor RFC8145 data from all the root-server operators.</p> <p>The DNSKEY roll for the root is a major event. The most noticeable step was using the new DNSKEY, which started on October 11th. The next step is revoking the old key. This is a minor event, but should still be visible in our RFC8145 data. We will monitor this event and track what happens via various measurement techniques.</p> Roy Arends Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 K.4.601 dns_testing_1000_gtld_edns0 Testing Over 1000 gTLDs for EDNS0 DNS devroom <p>In advance of open source DNS developers "DNS Flag Day", ISC's EDNS0 tester is applied across 1200+ zones. In preparing so many delegations across so many zones, a lot of interesting comments can be made regarding how zones, name servers and addresses are mixed, as well as the results of the original goal, testing EDNS0 protocol deployment.</p> Edward Lewis Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 00:30 UA2.114 (Baudoux) containers_kubic openSUSE Kubic for Container People Exploring the Containerised Frontiers Containers devroom <p>As the world moves more and more towards containerised solutions, a number of real questions start to appear. - What is the perfect platform for running containers atop? - How to use this platform as part of a flexible, scalable, highly available infrastructure fabric? - How to minimize the maintenance and administration of this platform at scale?</p> <p>All of these problems are well answered in an enterprise environment by SUSE CaaS Platform, but for developers more interested in the state of containers &amp; kubernetes upstream, new issues start to appear. With such fast moving upstreams, developers and enthusiasts need a platform that can keep up and is closely involved with those upstream developments. This platform needs to not only be able to run containers at scale, but also on single machine, all the while preserving the attributes of low maintenance so the focus can be on the containers, not the base system beneath them.</p> <p>This talk will introduce openSUSE Kubic, and explains how it addresses the above, being the perfect platform for container developers and enthusiasts. The session will mention how Kubic is based on the Tumbleweed rolling release and various upstreams including kubeadm and CRI-O. The kubeadm Kubernetes cluster boostrapping tool will be discussed in some detail and demonstrated, with some sneak peaks into how it may be extended in the future.</p> <p>Attendees should come away from this talk with everything they need to know to get starting using, developing with and contributing to openSUSE Kubic.</p> Richard Brown Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:35 00:30 UA2.114 (Baudoux) containers_atomfs An operator centric way to update application containers with AtomFS Containers devroom <p>Operators today have a problem when they want to update application containers: they have to go ask the developers to re-build and re-test the container. That's because application containers today are a bit-for-bit representation of the container that the developer ran.</p> <p>An insight here is that applications probably don't care about which versions of what libraries are in use: any reasonable libc, python3, ssl, etc. will do. But today, to fix a CVE in SSL, an entire container rebuild is required.</p> <p>Enter AtomFS. AtomFS is an entirely userspace tool designed to allow operators to update individual libraries inside app containers. In this talk Tycho will cover how the tooling works, as well as what changes are needed to make application container builds work with AtomFS.</p> Tycho Andersen Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:10 00:15 UA2.114 (Baudoux) containers_lsm Containers with Different Security Modules Stacking & Namespacing the LSM Containers devroom <p>Containers would like to be able to make use of Linux Security Modules (LSMs), from providing more complete system virtualization to improving container confinement. To date containers access to the LSM has been limited but there has been work to change the situation.</p> <p>This presentation will discuss and demonstrate the current state of Linux Security Module (LSM) stacking and namespacing making it possible to run containers with a different security module than that of the host.</p> John Johansen Submit feedback 10:30 00:30 UA2.114 (Baudoux) containers_k8s_storage Upcoming Kubernetes Storage features transfers, clones and populators Containers devroom <p>The popularity and use cases for Containers continues to grow, and storage features are quickly evolving to catch up. In this talk we'll introduce a few of the latest features being added to CSI and Kubernetes. We'll go through transferring PVCs across Namespaces, Cloning PVCs and Populating PVCs with data from external data sources. We'll look at how these features are particularly useful in a Container world, and some of the new use cases that they open up. Finally, we'll include some demos of the features in Kubernetes as well as where they are currently in terms of release status and when you can expect to see them in your Kubernetes deployment.</p> John Griffith Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:05 00:30 UA2.114 (Baudoux) containers_firecracker Firecracker, should it work only with a single runtime? Containers devroom <p>Firecracker, an open-source project published by Amazon, opens up a lot of interesting perspective to the container ecosystem. For the diversity of Kubernetes ecosystem, we should also think about how we should get the new shape of containers integrated with all other high-level container runtimes, such as cri-o or rktlet.</p> <p>Firecracker, an open-source project published by Amazon, opens up a lot of interesting perspective to the container ecosystem. It opens up use cases between containers and VMs, making use of KVM without relying on heavyweight Qemu instances. Though its integration with the Kubernetes ecosystem has only started its first step, only with containerd. For the diversity of Kubernetes ecosystem, we should also think about how we should get the new shape of containers integrated with all other high-level container runtimes, such as cri-o or rktlet.</p> <p>In this talk, I would like to talk about alternative ways of integration for getting firecracker integrated with multiple container runtimes. A proof-of-concept for the concept can be also presented during the talk.</p> Dongsu Park Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:40 00:30 UA2.114 (Baudoux) containers_kernel_update A year of Container Kernel Work Past, Present, and Future of Container Kernel Features Containers devroom <p>In this talk we will focus on container related kernel features. We will take an in-depth, technical look at what features have been worked on, are currently worked, or are planned.</p> <p>Containers have become ubiquitous. Nowadays, the computing landscape is mostly concerned with a higher-level view on the functionality and features of containers (e.g. orchestration). In this talk we will take a step back and focus on the low-level aspects that make containers possible. Specifically, we will look at kernel features that have been implemented in the last year(s), features that are currently being worked on and features that are planned in the future. We will try to take a closer technical look and not shy away from analysing code and patchsets where needed. The goal of the talk is to inform users about the kernel development status but also to raise awareness that all the shiny glitter takes a lot of difficult technical arguments and patches that are not just "boring plumbing" but actually are pretty exciting.</p> Christian Brauner Overview and Recent Developments: Namespaces and Capabilities Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:15 00:30 UA2.114 (Baudoux) containers_mgmt Real-time container automation and scheduling Mgmt Config: Containers Containers devroom <p>Mgmt is a next gen config management tool that takes a fresh look at existing automation problems. The tool has two main parts: the engine, and the language. The engine has a number of resources, including a container resource. We will feature a number of demos of this resource, and discuss how the language can be used to build a custom container automation solution. The language is a minimalistic, functional, reactive DSL. It can be used to build a real-time, distributed container automation solution, or something else entirely! We'll also use it to demo, service discovery, auto-scaling, and scheduling! Finally we'll talk about some of the future designs we're planning and make it easy for new users to get involved and help shape the project.</p> James Shubin Project homepage Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:50 00:20 UA2.114 (Baudoux) containers_lttng A follow-up on LTTng container awareness System level tracing in a containerized world Containers devroom <p>Follow up on the work that was done since last year's 'LTTng: The road to container awareness' presentation. A quick glance at the base features that were merged upstream, what is still missing and the tooling integration with container runtimes we plan to build on those features.</p> Michael Jeanson Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:15 00:20 UA2.114 (Baudoux) containers_containerd_update A containerd project update 20 minute project update for 2019 FOSDEM containers devroom Containers devroom <p>Last year at FOSDEM, containerd was presented as a fairly new CNCF project which had just reached its 1.0 release a month prior. With two major releases since then and a large list of new adopters, including two major public clouds, containerd has continued to gain momentum as a project and this talk will provide an update on users, releases, and the future plans for containerd and its maturity as a core, open source container runtime.</p> <p>Last year at FOSDEM, containerd was presented as a fairly new CNCF project which had just reached its 1.0 release a month prior. With two major releases since then and a large list of new adopters, including two major public clouds, containerd has continued to gain momentum as a project and this talk will provide an update on users, releases, and the future plans for containerd and its maturity as a core, open source container runtime.</p> <p>In 2018, containerd and its CRI plugin was marked as GA for use in Kubernetes, followed by two major public clouds--Google's GKE and IBM Cloud's IKS--offering containerd as their managed Kubernetes cluster's runtime. Containerd continues to be used by all Docker releases, and Docker has plans to remove more code from the moby project and utilize stable features within containerd instead, furthering adoption of containerd's codebase.</p> <p>Additionally, the attractive API and stability of containerd has brought quite a few new adopters since last year including AWS Firecracker VMM, Kata Containers, Alibaba PouchContainer, and Microsoft contributing and hardening the complete Windows container support in the containerd 1.2 release. Containerd has also proposed to be a "graduated" project in the CNCF and has received a full security audit which will be published soon.</p> Phil Estes Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:40 00:30 UA2.114 (Baudoux) containers_istio_security Kubernetes Network Security Demystified Containers devroom <p>Kubernetes provides multiple layers of network security including the control plane, etcd, the CNI network, network policies, and - with Istio on top - the requests between applications themselves. In this talk we explore the underlying technologies on which these layers are built using approachable examples and demonstrations. Attendees can expect to gain an understanding of these implementations and the principles behind encryption, identity, and trust in Kubernetes.</p> <ul> <li>What are TLS, X.509, and mutual authentication?</li> <li>Why cloud native communication should be encrypted by default</li> <li>Kubernetes component intercommunication</li> <li>CNI and network policy for applications</li> <li>Bootstrapping identity with SPIFFE</li> <li>Mutual TLS, route rules, and destination policies in Istio</li> </ul> Andrew Martin Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:15 00:20 UA2.114 (Baudoux) containers_lxd_update A year of LXD development Project update on what happened in LXC/LXD in 2018 Containers devroom <p>Over 2018, LXD's userbase grew significantly, partly thanks to it shipping on all Chromebooks. But other than merely getting more users, we've still been very hard at work introducing a number of exciting new features.</p> <p>The main one of those has certainly been LXD clustering which released alongside our second LTS release back in April.</p> <p>We've also been adding a wide variety of storage related features, simplified networking, better support for GPUs, ...</p> <p>In this presentation, we'll go over the past year and highlight the most interesting changes, then look a bit further for what to expect in 2019.</p> Stéphane Graber Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:40 00:20 UA2.114 (Baudoux) containers_k8s_rootless Rootless Kubernetes Running Kubernetes and CRI/OCI Runtimes as an unprivileged user Containers devroom <p>Kubernetes supports several security mechanisms such as Seccomp, Apparmor, SELinux, and runAsUser for protecting the hosts from container-breakout attacks. However, these mechanisms are not sufficient for the security demand because Kubelet and CRI/OCI runtimes require the root privileges on the hosts, and these components are seriously bug-prone. The dependency on the root privileges has been also problematic for promoting Kubernetes to the HPC world, where users are often disallowed to install software as the root.</p> <p>In this talk, Akihiro and Giuseppe will show the community’s ongoing work for making Kubernetes deployable and runnable as a non-root user, by using User Namespaces. The main topics of discussion will be UID/GID mapping, unprivileged Copy-on-Write filesystems, Usermode networking (Slirp), and Cgroups.</p> Akihiro Suda Giuseppe Scrivano Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:05 00:30 UA2.114 (Baudoux) containers_nabla A new approach to container isolation with Nabla Containers devroom <p>Despite its many advantages, containers have not been accepted as isolated sandboxes. In this talk, we present Nabla containers, which uses library OS/unikernel techniques to avoid system calls and thereby reduce the attack surface on the host kernel. We will demonstrate the running of popular applications (node.js, python, redis, etc.) on container ecosystems (kubernetes, etc.) as nabla containers (using &lt; 9 syscalls). In addition, We will compare isolation and performance metrics against other isolation technologies (gvisor, kata, etc.)</p> <p>Horizontal attacks are an important security concern for cloud providers and its tenants. Despite its many advantages, containers have not been accepted as isolated sandboxes, which is crucial for container-native clouds. The exposure of the syscall interface directly to untrusted workloads has greatly increased the number of exploits possible to the host.</p> <p>We present Nabla containers, which uses library OS/unikernel techniques to avoid system calls and thereby reduce the attack surface on the host kernel. Using our OCI runtime, runnc (https://github.com/nabla-containers/runnc), we show the running of popular applcations: Node.js, python, redis, etc. permitting the use of &lt; 9 syscalls via seccomp. In this talk, we will discuss and demo how we have leveraged libOS ideas in a novel way and compare isolation and performance metrics against other technologies such as gvisor and Kata Containers. In addition, we will demonstrate the running nabla containers with the existing container ecosystems such as kubernetes.</p> Brandon Lum Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:40 00:20 UA2.114 (Baudoux) containers_kubectl_trace Introducing kubectl-trace bpftrace meets Kubernetes with kubectl-trace Containers devroom <p>I will show how to use BPFtrace to trace both function calls in your programs and kernel functions. Then, I will show how such a low-level tracing tool can be used in high-level environments like Kubernetes clusters with kubectl-trace.</p> <p>kubectl-trace (https://github.com/fntlnz/kubectl-trace) schedules bpftrace programs on your kubernetes cluster using the kubectl.</p> <p>BPFtrace (https://github.com/iovisor/bpftrace) is a new tracing tool announced in October 2018. You can write one-liner commands in your shell using a high-level tracing language inspired by awk and C, and predecessor tracers such as DTrace and SystemTap. Behind the scenes, it compiles this high-level language with LLVM into eBPF bytecode (extended Berkeley Packet Filter) available in recent Linux kernels. It allows you to trace different layers of the system: kernel dynamic tracing (kprobes), user-level dynamic tracing (uprobes), and tracepoints.</p> <p>It can be used to trace containers, for example running on Kubernetes, the most popular container orchestration tool. BPFtrace is used as a base tool by kubectl-trace to build more complex tracing tools on Kubernetes.</p> Alban Crequy kubectl-trace bpftrace Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:05 00:20 UA2.114 (Baudoux) containers_singularity_update A quick update on singularity 3.0 singularity 3.0 Containers devroom <p>Singularity is increasingly recognized as the ideal container technology for AI, Machine/Deep Learning, compute-driven analytics, and Data Science. Recently released Version 3.0 of this open source software incorporates a number of significant enhancements that span from the core of the software itself to the enabling ecosystem that surrounds it. Thus the purpose of this presentation is to provide a technical overview of the following enhancements: reimplementation of the Singularity core in a combination Go and C; the introduction of the Singularity Image Format (SIF) as a file-based paradigm for encapsulating cryptographically signable and verifiable container images; expansion of the Singularity ecosystem through cloud-hosted services for signing and verifying cryptographic keys for SIF images, remotely building images as well as a repository for storing and sharing images; plus miscellaneous enhancements regarding instance support and networking management. Platform enhancements, together with an expanded and better-enabled container ecosystem, combine to set Singularity apart as the optimal choice for compute-driven workloads wherever they exist. Because the Go-based core and SIF enhancements are essential to the roadmap for Singularity, allusions are made here with respect to standards compliance as well as integration with Kubernetes for container orchestration.</p> <p>Singularity is the most widely used container solution in High Performance Computing (HPC). Enterprise users interested in AI, Deep Learning, compute-driven analytics, and IoT, are increasingly demanding HPC-like compute infrastructures. Singularity has many features that make it the preferred container solution for this new type of “Enterprise Performance Computing” (EPC) workload.</p> <p>2018 has proven to be a remarkable year for Singularity. In this talk we will take a look back at what has been accomplished this year, including what’s new in the Version 3.0 release. For this release, the core Singularity codebase was rewritten from a Bash/Python/C combination into a Go-C architecture. Motivated at the outset by the need to both modernize and unify the Singularity codebase, Go emerged as the obvious choice to replace scripting languages Bash and Python. While advantageous in and of itself, from the perspective of software lifecycle management for example, the choice of Go offered the potential for a significant strategic upside. Briefly, it is increasingly the case that Go is the go-to language for many of the major projects in the broader container ecosystem. The second big change is the format used for container images, as Singularity 3.0 introduced the Singularity Image Format (SIF) - a new file format specifically tailored for container images. SIF allows for storage of the different components that make up a container. For example, SIF-based containers may include OS partition images (read-only), user writable sections, recipes used to create the container, cryptographic signatures for data integrity and authenticity, and whatever else the community can think of - as SIF is an extensible format. A SIF file resembles a generic Linux file system in structure and content. A global header identifies the file as being of type SIF, and the necessary metadata to detail the remaining content of the image file. Following these descriptors is the corresponding data - namely the OS partition image, recipe, environment variables and signature blocks. As Singularity is drawn into full compliance with standards emerging from the Open Container Initiative (OCI), data encryption is a requirement slated for immediate action. Also related to OCI compliance, and involving SIF specifically, will be the need to harmonize the existing signing and verification capability inherent in SIF with those requirements currently emerging from within the OCI. Because extensibility was designed into SIF from the outset, OCI compliance can be addressed through technically efficient and effective means. Finally, and related to compliance with respect to the OCI Image Specification, will be efforts to ensure that SIF images can be appropriately ‘ingested’ – e.g., for subsequent use by an OCI-compliant runtime. In other words, SIF will become a packaging format for OCI-based containers. Still related to SIF, compliance will include the ability to mount an arbitrary number of SIF images as an OCI bundle. Needed for compliance with the OCI Runtime Specification, at a high level, this translates to mounting an arbitrary number of files – as SIF encapsulates each Singularity container into a single file. Keywords Go, HPC, Linux Containers, Singularity, Docker, OCI</p> Eduardo Arango Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 UA2.114 (Baudoux) containers_k8s_cni Writing a CNI - as easy as pie Write you own CNI (Container Network Interface) Containers devroom <p>The CNI specification describes a generic plugin-based networking solution for application containers on Linux. It allows to create easily plugable network plugins for container management system (such as for example Kubernetes). The session will show how easy it is to create a CNI from scratch, plug it into Kubernetes, and spawn a container connected to the network by this CNI.</p> Marcin Mirecki CNI spec Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 00:45 UA2.118 (Henriot) rapids RAPIDS Data Science on GPUs HPC, Big Data and Data Science devroom <p>The next big step in data science will combine the ease of use of common Python APIs, but with the power and scalability of GPU compute. The RAPIDS project is the first step in giving data scientists the ability to use familiar APIs and abstractions while taking advantage of the same technology that enables dramatic increases in speed in deep learning. This session highlights the progress that has been made on RAPIDS, discusses how you can get up and running doing data science on the GPU, and provides some use cases involving graph analytics as motivation.</p> <p>GPUs and GPU platforms have been responsible for the dramatic advancement of deep learning and other neural net methods in the past several years. At the same time, traditional machine learning workloads, which comprise the majority of business use cases, continue to be written in Python with heavy reliance on a combination of single-threaded tools (e.g., Pandas and Scikit-Learn) or large, multi-CPU distributed solutions (e.g., Spark and PySpark). RAPIDS, developed by a consortium of companies and available as open source code, allows for moving the vast majority of machine learning workloads from a CPU environment to GPUs. This allows for a substantial speed up, particularly on large data sets, and affords rapid, interactive work that previously was cumbersome to code or very slow to execute. Many data science problems can be approached using a graph/network view, and much like traditional machine learning workloads, this has been either local (e.g., Gephi, Cytoscape, NetworkX) or distributed on CPU platforms (e.g., GraphX). We will present GPU-accelerated graph capabilities that, with minimal conceptual code changes, allows both graph representations and graph-based analytics to achieve similar speed ups on a GPU platform. By keeping all of these tasks on the GPU and minimizing redundant I/O, data scientists are enabled to model their data quickly and frequently, affording a higher degree of experimentation and more effective model generation. Further, keeping all of this in compatible formats allows quick movement from feature extraction, graph representation, graph analytic, enrichment back to the original data, and visualization of results. RAPIDS has a mission to build a platform that allows data scientist to explore data, train machine learning algorithms, and build applications while primarily staying on the GPU and GPU platforms.</p> Christoph Angerer rapids website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:50 00:25 UA2.118 (Henriot) openhpc OpenHPC Update HPC, Big Data and Data Science devroom <p>High performance computing (HPC) - the aggregation of computers into clusters to increase computing speed and power- relies heavily on the software that connects and manages the various nodes in the cluster. Linux is the dominant HPC operating system, and many HPC sites expand upon the operating system's capabilities with different scientific applications, libraries, and other tools.</p> <p>To avoid duplication of the necessary steps to run an HPC site the OpenHPC project was created in response to these issues. OpenHPC is a collaborative, community-based effort under the auspices of the Linux Foundation to solve common tasks in HPC environments by providing documentation and building blocks that can be combined by HPC sites according to their needs.</p> <p>In this talk I want to give an introduction about the OpenHPC project. Why do we need something like OpenHPC? What are the goals of OpenHPC? Who is involved in OpenHPC and how is the project organized? What is the actual result of the OpenHPC project?</p> <p>It also has been some time (it was FOSDEM 2016) since OpenHPC was part of the HPC, Big Data and Data Science devroom, so that it seems a good opportunity for an OpenHPC status update and what has happened in the last three years. In addition to previous mentioned topics I would also like to give an outlook about upcoming releases and plans for the future.</p> Adrian Reber OpenHPC Introduction OpenHPC OpenHPC Introduction Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:15 00:25 UA2.118 (Henriot) collective_knowledge CK: an open-source framework to automate, reproduce, crowdsource and reuse experiments at HPC conferences HPC, Big Data and Data Science devroom <p>Validating experimental results from articles has finally become a norm at many HPC and systems conferences. Nowadays, more than half of accepted papers pass artifact evaluation and share related code and data. Unfortunately, lack of a common experimental framework, common research methodology and common formats places an increasing burden on evaluators to validate a growing number of ad-hoc artifacts. Furthermore, having too many ad-hoc artifacts and Docker snapshots is almost as bad as not having any (!), since they cannot be easily reused, customized and built upon.</p> <p>While overviewing more than 100 papers during artifact evaluation at HPC conferences, we noticed that many of them use similar experimental setups, benchmarks, models, data sets, environments and platforms. This motivated us to develop Collective Knowledge (CK), an open workflow framework with a unified Python API to automate common researchers’ tasks such as detecting software and hardware dependencies, installing missing packages, downloading data sets and models, compiling and running programs, performing autotuning and co-design, crowdsourcing time-consuming experiments across computing resources provided by volunteers similar to SETI@home, reproducing results, automatically generating interactive articles, and so on: http://cKnowledge.org .</p> <p>In this talk I will introduce CK concepts and present several real world use cases from the Raspberry Pi foundation, ACM, General Motors, Amazon and Arm on collaborative benchmarking, autotuning and co-design of efficient software/hardware stacks for emerging workloads including deep learning. I will also present our latest initiative to create an open repository of reusable research components and workflows at HPC conferences. We plan to use it to automate the Student Cluster Competition Reproducibility Challenge at the Supercomputing conference.</p> Grigori Fursin Collective Knowledge website (CK) CK use cases CK workflow to automate Student Cluster Competition Reproducibility Challenge at SC18 RESCUE-HPC workshop at SC18 Slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:45 00:25 UA2.118 (Henriot) precice Couple scientific simulation codes with preCICE A journey towards sustainable research software HPC, Big Data and Data Science devroom <p>Have you ever observed how birds fly? By moving their wings, they cause an air flow. This air flow then deforms their wings back. By simulating this complex, multi-physics phenomenon, we could design better flexible wings. However, we don’t need complex software to simulate such complex phenomena.</p> <p>"Make each program do one thing well" is part of the UNIX Philosophy, but it can also apply to scientific software. We should aim to simulate multi-physics phenomena with a combination of simpler software: one "expert" for each domain (for example, flows and structures). There are so many "expert programs" in the free/open-source software community; what if we could enable them to collaborate?</p> <p>The preCICE coupling library* can couple different simulations in an easy, plug-and-play way, while it is also designed for the Exascale HPC era, offering peer-to-peer communication over TCP/IP or MPI. Not only is it easy to use it in your own code, but it also comes with ready-to-use "adapters" for OpenFOAM, SU2, CalculiX, Code_Aster, FEniCS and other software. For example, one can set up a flow simulation in OpenFOAM, set up a structure simulation in CalculiX, start the two simulations normally, and get a coupled Fluid-Structure Interaction simulation. But FSI is only one of the possible applications.</p> <p>Being developed in the academia, but with the goal to stay and help users all over the world, even when its main contributors change, our project is an actively evolving example of (wanting to be) sustainable research software. Over the past year, we had to answer many questions on building, packaging, dependency management, usability, and other topics, questions which previous FOSDEM talks helped us to answer. For example, over the past year we changed from SCons to CMake to provide closer to the expected behavior, added support for Spack to bring preCICE into supercomputers near you, we experimented with other package managers, and we rethought our workflows to encourage community contributions.</p> <p>This talk will present the possibilities that preCICE opens to the free/open-source scientific software community and discuss our efforts to improve the project’s sustainability.</p> <ul> <li>Website: precice.org. Code available on github.com/precice under LGPL3.</li> </ul> Gerasimos Chourdakis preCICE webpage preCICE on GitHub web-based tutorial "CMake Overhaul" Pull Request (#240) preCICE with CMake (wiki) preCICE with Spack (wiki) Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:15 00:25 UA2.118 (Henriot) reframe ReFrame: A Regression Testing and Continuous Integration Framework for HPC systems HPC, Big Data and Data Science devroom <p>Regression testing of HPC systems is of crucial importance when it comes to ensure the quality of service offered to the end users. At the same time, it poses a great challenge to the systems and application engineers to continuously maintain regression tests that cover as many aspects as possible of the user experience. In this presentation, we present ReFrame, a new framework for writing regression tests for HPC systems. ReFrame is designed to abstract away the complexity of the interactions with the system and separate the logic of a regression test from the low-level details, which pertain to the system configuration and setup. Regression tests in ReFrame are simple Python classes that specify the basic parameters of the test plus any additional logic. The framework will load the test and send it down a wel-defined pipeline which will take care of its execution. All the system interaction details, such as programming environment switching, compilation, job submission, job status query, sanity checking and performance assessment, are performed by the different pipeline stages. Thanks to its high-level abstractions and modular design, ReFrame can also serve as a tool for continuous integration (CI) of scientific software, complementary to other well-known CI solutions. Finally, we present the use cases of two large HPC centers that have adopted or are now adopting ReFrame for regression testing of their computing facilities.</p> Victor Holanda GitHub Project Project documentation Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:45 00:25 UA2.118 (Henriot) containers_hpc_singularity Reproducible science with containers on HPC through Singularity Singularity containers HPC, Big Data and Data Science devroom <p>One of the biggest problems in scientific HPC is ensuring that results are reproducible. That is, the code a scientist runs locally must be able to run identically on any computational resource. Until recently, the job of ensuring that fell to system administrators who needed to manage a complex web of tools and dependencies on those resources. However, with the introduction of HPC containers via Singularity, the ability to mobilize the compute environment has never been easier. Singularity allows anybody to run their own containers on HPC, ushering in a new era of computational mobility, validity, and reproducibility.</p> <p>Singularity is the most widely used container solution in high-performance computing (HPC). Enterprise users interested in AI, Deep Learning, compute drive analytics, and IOT are increasingly demanding HPC-like resources. Singularity has many features that make it the preferred container solution for this new type of “Enterprise Performance Computing” (EPC) workload. Instead of a layered filesystem, a Singularity container is stored in a single file. This simplifies the container management lifecycle and facilitates features such as image signing and encryption to produce trusted containers. At runtime, Singularity blurs the lines between the container and the host system allowing users to read and write persistent data and leverage hardware like GPUs and Infiniband with ease. The Singularity security model is also unique among container solutions. Users build containers on resources they control or using a service like the Sylabs Remote Build Service. Then they move their containers to a production environment where they may or may not have administrative access and the Linux kernel enforces privileges as it does with any other application. These features make Singularity a simple, secure container solution perfect for HPC and EPC workloads.</p> <p>One of the biggest problems in scientific HPC is ensuring that results are reproducible. That is, the code a scientist runs locally must be able to run identically on any computational resource. Until recently, the job of ensuring that fell to system administrators who needed to manage a complex web of tools and dependencies on those resources. However, with the introduction of HPC containers via Singularity, the ability to mobilize the compute environment has never been easier. Singularity allows anybody to run their own containers on HPC, ushering in a new era of computational mobility, validity, and reproducibility.</p> <p>Singularity is the most widely used container solution in high-performance computing (HPC). Enterprise users interested in AI, Deep Learning, compute drive analytics, and IOT are increasingly demanding HPC-like resources. Singularity has many features that make it the preferred container solution for this new type of “Enterprise Performance Computing” (EPC) workload. Instead of a layered filesystem, a Singularity container is stored in a single file. This simplifies the container management lifecycle and facilitates features such as image signing and encryption to produce trusted containers. At runtime, Singularity blurs the lines between the container and the host system allowing users to read and write persistent data and leverage hardware like GPUs and Infiniband with ease. The Singularity security model is also unique among container solutions. Users build containers on resources they control or using a service like Singularity Hub. Then they move their containers to a production environment where they may or may not have administrative access and the Linux kernel enforces privileges as it does with any other application. These features make Singularity a simple, secure container solution perfect for HPC and EPC workloads.</p> <p>Singularity blocks privilege escalation within the container so if a user wants to be root inside the container, it must be root outside the container. This usage paradigm mitigates many of the security concerns that exists with containers on multi-tenant shared resources. You can directly call programs inside the container from outside the container fully incorporating pipes, standard IO, file system access, X11, and MPI. Keywords HPC, Linux Containers, Singularity, Docker, LXC, portability</p> <p>References Kurtzer, G. M. (2016). Singularity 2.1.2 - Linux application and environment containers for science. Zenodo. http://doi.org/10.5281/zenodo.60736 LinuxContainers.org Infrastructure for container projects. Project sponsored by Canonical Ltd. https://linuxcontainers.org/</p> Eduardo Arango Singularity git repo Sylabs web Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:15 00:10 UA2.118 (Henriot) nakadi Nakadi: Streaming Events for 100s of Teams Serving all sorts of users and use cases, the sane way HPC, Big Data and Data Science devroom <p>At Zalando, a small team of 9 engineers develops, maintains, and operates an internal deployment of Nakadi, the open source event streaming platform. Nakadi handles dozens of terabytes of data every day, produced and consumed by hundreds of teams, with use cases from big data to service-to-service communication. Nakadi also feeds data into Zalando’s data lake for batch analysis. In this talk, we will show how a small team can serve so many customers while still finding the time to work on new features and fixing bugs. Serving users at scale requires a completely self-service offering. Nakadi provides self-service stream creation, administration, schema validation and evolution, monitoring, authorization, SQL over streams, and a great UI so that even less technical users can use Nakadi.</p> Lionel Montrieux Nakadi Event Broker Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:25 00:10 UA2.118 (Henriot) numaprof MALT & NUMAPROF, Memory Profiling for HPC Applications HPC, Big Data and Data Science devroom <p>Memory is now a key component to understand and control to extract the best performance from High Performance Computing computer architectures. With an increasing gap between CPU and memory speed, the memory accesses themself now represent one of the largest performance impact which increase the impact of the memory layout on performance. On the other side, the memory size available is still growing with now easily reachable TB memory systems which make a huge space to handle with a management cost which if badly done can become non neglectable.</p> <p>In order to better address those questions I will present two tools I developped during my post-docs arround the HPC fields: MALT [MALloc Tracker] and NUMAPROF.</p> <p>MALT is dedicated to memory management analysis by tracking calls to malloc and annotate the source code of a C/C++/Fortan application. It provides many metrics arround memory management, like the allocations sizes, lifetime, time charts to better understand the memory behavior of you application in them of memory management. The tool comes with the nice web based graphical interface.</p> <p>NUMAPROF is built arround the same code base to provide NUMA (Non Uniform Memory Access) performance analysis by tracking the memory location of every access in a NUMA system by using binary instrumentation. It is usefull to easily track the remote of unbound memory access which can be a source of large performance loss in such systems. The tool has currently mostly been tested on the new Intel Knigh Landing architecture.</p> <p>With TB of now availble memory on large HPC servers and NUMA (Non Uniform Memory Access) architectures, memory management can be on of the biggest and hard to handle bottleneck to reach performance at scale on large systems.</p> <p>During my PhD. I studied and developed a parallel memory allocator specifily designed for NUMA architectures and tuned for large-scale application. On this topic I was able to quickly gain a speedup of 2x on a multi-million line C++ numerical simulation at CEA just by changing the memory allocator (not recompiling the app) when running on a 16-processor machine (128 cores) and making 75 million allocations in 5 minutes.</p> <p>The gains where coming from better handling of the memory management overhead over the OS (Linux) which was not well scaling on this platform and explicit handling of the NUMA topology which mixed where providing the 2x performance gap compared to the best today production memory allocator.</p> <p>For this development I would have been really happy to have a memory profiler to look how the memory is placed and what was the allocation profile of the application. This is what I'm doing with MALT and NUMAPROF by projecting dedicated memory metrics onto the source code by annotating it with many metrics (allocation size, chunk lifetime, NUMA remote memory accesses....). The tool also provide global views on the applications over charts and computed metrics.</p> <p>The two tools also use an uncommon approach for such tools in HPC as it provides a web-based interface using tools like D3JS/Bootstrap/Jquery and exposed by a small python webserver. This permit to fix a big issue in HPC when running remotely as the GUI of the profiler needs to be X-forwared which make it slow, badly themed. Or to run locally without having our source code at the same place. The web server permit to easily ssh-port-forward the interface and eventually to work at many people remotely looking at the same profile. This also provides quickly a nicer rendering with less development overhead.</p> <p>MALT has been developped and financed as a post-doc at the Exascale Computing Research Lab. NUMAPROF was then extrapoled from this work as a side research project at CERN.</p> <p>I will presend shortly both tools and some motivation showing the possibly huge impact on memory management on HPC applications, one with rougthly one million line of codes.</p> Sébastien Valat Website Github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:40 00:10 UA2.118 (Henriot) hpc_lab_from_scratch Setting up an HPC lab from scratch with Mr-Provisioner, Jenkins and Ansible HPC, Big Data and Data Science devroom <p>At Linaro, we have an HPC lab where we can setup multiple clusters and machines, install OpenHPC, run the test-suite, benchmarks using Mr-Provisioner, Jenkins and Ansible automation. This allows us to test new kernels/initrd, new versions of OpenHPC, compilers, applications, etc. on different architecture at the same time, from scratch. The work we did is open source, on GitHub, and is intended to be used by other people. We started with hard-coded rules but are slowly moving towards generic configuration-based setup from the ground up, so that anyone else can clone, change the configuration files and run the Ansible playbooks. From scratch.</p> <p>These are the repositories that we contribute to / use:</p> <p>Mr-Provisioner, the bare metal provisioner that installs OSs on all our servers (Arm or Intel): https://github.com/Linaro/mr-provisioner</p> <p>Our infrastructure scripts, setting up Jenkins and running the jobs logic: https://github.com/Linaro/hpc<em>lab</em>jenkins</p> <p>Our benchmark harness, which runs benchmarks in a repeatable way: https://github.com/Linaro/benchmark_harness</p> <p>Our OpenHPC Ansible scripts, which install OpenHPC on bare-metal/VM, clusters (Arm or Intel): https://github.com/Linaro/ansible-playbook-for-ohpc</p> Renato Golin Mr-Provisioner Infrastructure scripts Benchmark harness OpenHPC Ansible playbooks Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:50 00:10 UA2.118 (Henriot) feature_store Feature store: A Data Management Layer for Machine Learning Data Management for ML HPC, Big Data and Data Science devroom <p>Data may be the new oil, but refined data is the fuel for AI. Machine learning (ML) systems are only as good as the data they are trained on and getting the data in the right format at the right time is a challenge. ML systems are trained using sets of features, a feature can be as simple as the value of a column in a database entry, or it can be a complex value that is computed from diverse sources.</p> <p>A feature store is a central vault for storing documented and curated features, ideally with support for access control. A feature store enables automatic feature analysis and monitoring, feature sharing across models and teams, feature discovery, feature backfilling, and feature versioning. The feature store is a data management layer that fills an important piece in the modern machine learning infrastructure, it empowers enterprises to scale their machine learning workflows and make full use of their investment in machine learning.</p> <p>In this talk, we will present key points on how to take your machine learning workflow to the next level using a feature store, and demonstrate how the feature store fits into the larger machine learning pipeline. We will introduce HopsML, an open-source, end-to-end machine learning pipeline built on the world's most fastest and most scalable Hadoop distribution, Hops Hadoop. With HopsML you can build production-ready machine learning pipelines using open source software, where features are stored in a shared feature store that is automatically backfilled as new data arrive, where machine learning models can be trained on datasets in the order of billions examples using distributed deep learning, where data scientists can follow engineering principles by using versioned and reproducible experiments, and where models can be automatically deployed in an elastic manner using auto-scaling.</p> Kim Hammar Hopsworks Feature Store Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:10 UA2.118 (Henriot) 8_principles_production_data_science The state of machine learning operations in 2019: reproducibility, explainability, bias evaluation and beyond HPC, Big Data and Data Science devroom <h1>Description</h1> <p>This talk will provide a practical overview of the state of production machine learning frameworks, tools and techniques that seem to have become a trend for the coming year. I will be mainly covering the open source tools and frameworks available in 2019 to help you expand your DataOps and MLOps infrastructure. This talk will cover the technologies available to support specifically around reproducibility, monitoring, compliance and orchestration of data and computations. I will present these technologies through the 8 principles of machine learning.</p> <h1>Talk Name</h1> <p>The state of machine learning operations in 2019: reproducibility, explainability, bias evaluation and beyond</p> <h1>Description</h1> <p>This talk will provide a practical overview of the state of production machine learning frameworks, tools and techniques that seem to have become a trend for the coming year. I will be mainly covering the open source tools and frameworks available in 2019 to help you expand your DataOps and MLOps infrastructure. This talk will cover the technologies available to support specifically around reproducibility, monitoring, compliance and orchestration of data and computations. I will present these technologies through the 8 principles of machine learning.</p> <h1>About me</h1> <p>Alejandro Saucedo is a technology leader with over 10 years of software development experience, he is currently the Chief Scientist at The Institute for Ethical AI &amp; Machine Learning. Throughout his career, Alejandro has held technical leadership positins across hyper-growth scale-ups and tech giants including Eigen Technologies, Bloomberg LP and Hack Partners. Alejandro has a strong track record building multiple departments of machine learning engineers from scrath, and leading the delivery of numerous large-scale machine learnig systems across the financial, insurance, legal, transport, manufcturing and construcion sectors (in Europe, US and Latin America).</p> Alejandro Saucedo Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:15 00:25 UA2.118 (Henriot) convergence_hpc_big_data The convergence of HPC and BigData What does it mean for HPC sysadmins? HPC, Big Data and Data Science devroom <p>There are mainly two types of people in the scientific computing world: those who produce data and those who consume it. Those who have models and generate data from those models, a process known as 'simulation', and those who have data and infer models from the data ('analytics'). The former often originate from disciplines such as Engineering, Physics, or Climatology, while the latter are most often active in Remote sensing, Bioinformatics, Sociology, or Management.</p> <p>Simulations often require large amount of computations so they are often run on generic High-Performance Computing (HPC) infrastructures built on a cluster of powerful high-end machines linked together with high-bandwidth low-latency networks. The cluster is often augmented with hardware accelerators (co-processors such as GPUs or FPGAs) and a large and fast parallel filesystem, all setup and tuned by systems administrators. By contrast, in analytics, the focus is on the storage and access of the data so analytics is often performed on a BigData infrastructure suited for the problem at hand. Those infrastructure offer specific data stores and are often installed in a more or less self-service way on a public or private 'Cloud' typically built on top of 'commodity' hardware.</p> <p>Those two worlds, the world of HPC and the world of BigData are slowly, but surely, converging. The HPC world realises that there are more to data storage than just files and that 'self-service' ideas are tempting. In the meantime, the BigData world realises that co-processors and fast networks can really speedup analytics. And indeed, all major public Cloud services now have an HPC offering. And many academic HPC centres start to offer Cloud infrastructures and BigData-related tools.</p> <p>This talk will focus on the latter point of view and review the tools originating from the BigData and the ideas from the Cloud that can be implemented in a HPC context to enlarge the offer for scientific computing in universities and research centres.</p> Damien François Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:40 00:25 UA2.118 (Henriot) kubeflow Introducing Kubeflow (w. Special Guests Tensorflow and Apache Spark) HPC, Big Data and Data Science devroom <p>Data Science, Machine Learning, and Artificial Intelligence has exploded in popularity in the last five years, but the nagging question remains, “How to put models into production?” Engineers are typically tasked to build one-off systems to serve predictions which must be maintained amid a quickly evolving back-end serving space which has evolved from single-machine, to custom clusters, to “serverless”, to Docker, to Kubernetes. In this talk, we present KubeFlow- an open source project which makes it easy for users to move models from laptop to ML Rig to training cluster to deployment. In this talk we will discuss, “What is KubeFlow?”, “why scalability is so critical for training and model deployment?”, and other topics.</p> <p>Users can deploy models written in Python’s skearn, R, Tensorflow, Spark, and many more. The magic of Kubernetes allows data scientists to write models on their laptop, deploy to an ML-Rig, and then devOps can move that model into production with all of the bells and whistles such as monitoring, A/B tests, multi-arm bandits, and security.</p> Holden Karau Trevor Grant Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:05 00:25 UA2.118 (Henriot) validating_big_data_jobs Validating Big Data Jobs An exploration with Spark & Airflow (+ friends) HPC, Big Data and Data Science devroom <p>If you, like close to half the industry, are deploying the results of you big data jobs into production automatically then existing unit and integration tests may not be enough to present serious failures. Even if you aren’t automatically deploying the results to production, having a more reliable deploy to production pipeline with automatic validation is well worth the time.</p> <p>If you, like close to half the industry, are deploying the results of you big data jobs into production automatically then existing unit and integration tests may not be enough to present serious failures. Even if you aren’t automatically deploying the results to production, having a more reliable deploy to production pipeline with automatic validation is well worth the time.</p> <pre><code>Validating Big Data Jobs sounds expensive and hard, but with a variety of techniques can be done relatively easily with only minimal additional instrumentation overhead. We’ll explore the kinds of instrumentation to add to your pipeline to make it easier to validate. For jobs with hard to meet SLAs we’ll also explore what can be done with existing metrics and parallel data validation jobs. After exploring common industry practices for Data Validation we’ll explore how to integrate these into an Airflow pipeline while making it recoverable if manual validation over-rules the automatic safeguards. </code></pre> Holden Karau Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:25 UA2.118 (Henriot) beam_cross_language From Zero to Portability Apache Beam's Journey to Cross-Language Data Processing HPC, Big Data and Data Science devroom <p>Apache Beam is a programming model for composing parallel and distributed data processing jobs.</p> <p>As many other Apache projects, Beam first used Java as its API language. Unsatisfied with the status quo, Beam developers launched the portability project to enable other languages to run with Beam. Currently, Beam has a Java, Python, and a Go API.</p> <p>Ultimately, these languages won't just coexist in Apache Beam, but they will complement each other in cross-language data processing jobs.</p> <p>In this talk we will learn how it is possible to support multiple languages and why it might be a good idea to combine these languages in data processing jobs.</p> <p>Apache Beam is a programming model for composing parallel and distributed data processing jobs. Once composed, these jobs run on various execution engines like Apache Flink, Apache Spark, or Google Cloud Dataflow. But Apache Beam's vision goes beyond just running on multiple execution engines.</p> <p>As many other Apache projects, Beam first used Java as its API language. Unsatisfied with the status quo, Beam developers launched the portability project to enable other languages to run with Beam. Currently, Beam has a Java, Python, and a Go API. That means users are not restricted to the Java ecosystem but can use their favorite Python libraries like Numpy or Tensorflow with Apache Beam.</p> <p>Ultimately, these languages won't just coexist in Apache Beam, but they will complement each other in cross-language data processing jobs. For example, reading from Kafka can be done with the Java connector but the data can afterwards be processed in Python.</p> <p>In this talk we will learn how it is possible to support multiple languages and why it might be a good idea to combine these languages in data processing jobs.</p> Maximilian Michels Apache Beam Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:25 UA2.118 (Henriot) openacc Speeding up Programs with OpenACC in GCC ... using the compute power of GPUs and other accelerators HPC, Big Data and Data Science devroom <p>Proven in production use for decades, GCC (the GNU Compiler Collection) offers C, C++, Fortran, and other compilers for a multitude of target systems. Over the last few years, we -- formerly known as "CodeSourcery", now a group in "Mentor, a Siemens Business" -- added support for the directive-based OpenACC programming model. Requiring only few changes to your existing source code, OpenACC allows for easy parallelization and code offloading to accelerators such as GPUs. We will present a short introduction of GCC and OpenACC, implementation status, examples, and performance results.</p> <p>"OpenACC is a user-driven directive-based performance-portable parallel programming model designed for scientists and engineers interested in porting their codes to a wide-variety of heterogeneous HPC hardware platforms and architectures with significantly less programming effort than required with a low-level model."</p> Thomas Schwinge OpenACC - GCC Wiki GCC OpenACC Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:25 UA2.118 (Henriot) streaming_pipelines_neural_machine_translation Streaming Pipelines for Neural Machine Translation HPC, Big Data and Data Science devroom <p>Machine Translation is important when having to cater to different geographies and locales for news or eCommerce website content. Machine Translation systems often need to handle a large volume of concurrent translation requests from multiple sources across multiple languages in near real time.</p> <p>Many Machine Translation preprocessing tasks like Text Normalization, Language Detection, Sentence Segmentation etc. can be performed at scale in a real time streaming pipeline utilizing Apache Flink.</p> <p>We will be looking at a few such streaming pipelines leveraging different NLP components and Flink’s dynamic processing capabilities for real time training and inference. We'll demonstrate and examine the end-to-end throughput and latency of a pipeline that detects language and translates news articles shared via twitter in real-time. Developers will come away with a better understanding of how Neural Machine Translation works, how to build pipelines for machine translation preprocessing tasks and Neural Machine Translation models.</p> <p>Speaker Bio Suneel Marthi: Suneel is a member of the Apache Software Foundation and is a PMC member on Apache OpenNLP, Apache Mahout, and Apache Streams. He has done talks at Hadoop Summit, Apache Big Data, Flink Forward, Berlin Buzzwords, and Big Data Tech Warsaw. He is a Principal Engineer at Amazon Web Services.</p> <p>Experience Suneel: He has done talks at Hadoop Summit, Apache Big Data, Flink Forward, Berlin Buzzwords, and Big Data Tech Warsaw.</p> <p>Speaker Bio Jörn Kottmann: Jörn is a member of the Apache Software Foundation. He contributed to Apache OpenNLP for 13 years and is PMC Chair and committer of the project. In his day jobs he used OpenNLP to process large document collections and streams, often in combination with Apache UIMA where he is a PMC member and committer as well.</p> Suneel Marthi Jörn Kottmann Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:25 UA2.118 (Henriot) dl_parallel_db Deep Learning on Massively Parallel Processing Databases HPC, Big Data and Data Science devroom <p>In this session we will discuss the use of massively parallel databases for deep learning, drawing on experience from running deep learning frameworks like Keras and TensorFlow with GPU acceleration using free and open source software like Greenplum Database and the Apache MADlib machine learning library. Topics will include architecture, common usage patterns, scalability results and bright opportunities for the future.</p> <p>Deep neural networks are very efficient at solving problems in domains such as computer vision, speech recognition and language translation. Once solely the purview of academia and Silicon Valley types of companies, deep learning is now making inroads in the enterprise by virtue of new algorithms, better tools, and lower costs for computation, storage and networking.</p> <p>But enterprise data typically lives in relational and document form in databases, so how can you use this data for building deep learning models? You could try to move it out to a separate execution engine, but it is suboptimal to copy huge amounts of data between systems. What about the idea of building deep learning models directly in the database, bringing the compute to where the data lives?</p> <p>It’s possible and I look forward to discussing this topic at FOSDEM’19!</p> Frank McQuillan Greenplum website Apache MADlib website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:25 UA2.118 (Henriot) condition_monitoring Condition Monitoring & Transfer Learning Good predictions in situations with (initially) almost no data HPC, Big Data and Data Science devroom <p>Predictive maintenance and condition monitoring for remote heavy machinery are compelling endeavors to reduce maintenance cost and increase availability. Beneficial factors for such endeavors include the degree of interconnectedness, availability of low cost sensors, and advances in predictive analytics. This work presents a condition monitoring platform built entirely from open-source software. A real world industry example for an escalator use case from a large railroad company underlines the advantages of this approach. In particular, it is shown that even in situations with initially scarce amounts of data accurate predictions can be made using a hybrid analytics approach. Therefore, it combines neural network training and random forest classifier training using two different data sources. This caters for fast time-to-market and highly accurate predictions.</p> <p>Deutsche Bahn operates a large number of machines of both, rolling stock and landside infrastructure. Machines finally break and require maintenance, repair, or replacement. The traditional approach of periodic maintenance cycles is increasingly replaced by demand-oriented maintenance, as it turns out to decrease maintenance cost and simultaneously improves on the availability. Demand-oriented maintenance clearly requires a notification system, which continuously monitors a machine's condition, detects failures or deviations from the normal machine state, and informs maintenance personnel. While a vast amount of sensors that can do the monitoring job exist, our focus was directed on a universal, non-intrusive, commodity sensor technology. Consequently, we focus on acoustic emissions and sense those using microphones. These emissions are analyzed and classified using state of the art machine learning technology, neural networks foremost. The advantages of a machine learning approach include the generalization of classification models, such that not every single machine requires individual fitting. Transitioning from a proof-of-concept phase, saving potential and our customers request a short time to market for which convolutional neural networks (CNNs) are not particularly well suited because the availability of labelled data is still poor. The need to develop methods to cope with such situations arises. Hence, we have picked up the notion of transfer learning and show the superiority of this approach in regards of accuracy and required data amounts opposed to learning CNNs from scratch. In order to do so, for both data science and production systems, we utilize a comprehensive stack of open source software technologies that support us in data ingestion, edge computing, data preprocessing, neural network training, software deployment, and visualization tasks.</p> Daniel Germanus Felix Bert Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:00 00:50 UA2.220 (Guillissen) around_the_world_with_postgres_extensions AMENDMENT Around the world with Postgres extensions PostgreSQL devroom <p>Postgres continues to get more and more feature rich. But equally as impressive is the network of extensions that are growing around Postgres. With the rich extension APIs you can now add advanced functionality to Postgres without having to fork the codebase or wait for the main PostgreSQL release cycle.</p> <p>This is a late addition to the schedule.</p> <p>Postgres continues to get more and more feature rich. But equally as impressive is the network of extensions that are growing around Postgres. With the rich extension APIs you can now add advanced functionality to Postgres without having to fork the codebase or wait for the main PostgreSQL release cycle. In this talk we'll cover some of the basics of what an extension is and then take a tour through a variety of Postgres extensions including:</p> <p>pg<em>stat</em>statments PostGIS HyperLogLog and TopN Timescale pg_partman Citus Foreign data wrappers which are their own whole class</p> Craig Kerstiens Schedule Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:50 UA2.220 (Guillissen) hacking_postgresql Hacking PostgreSQL PostgreSQL devroom <p>This talk will include an introduction to the backend code and an example on hacking PG and adding in a new feature.</p> <p>We'll cover what needs to be modified to add an option to an existing command (grammar, execution, etc) and the major components of PG (parser, commands, memory management, etc). We'll also cover the PG style guidelines, a crash-course on using git, how to submit your patch, and the review/commitfest process.</p> Stephen Frost Schedule Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:50 UA2.220 (Guillissen) whats_new_in_postgresql_11 What's new in PostgreSQL 11 PostgreSQL devroom <p>PostgreSQL 11 is out! Do you know what your favorite feature is yet? This talk will outline some of the bigger new features in this new version of PostgreSQL, giving you a chance to pick your favorite feature -- or to change your mind if you already had one!</p> <p>PostgreSQL 11 is out! Do you know what your favorite feature is yet? This talk will outline some of the bigger new features in this new version of PostgreSQL, giving you a chance to pick your favorite feature -- or to change your mind if you already had one!</p> Magnus Hagander Schedule Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:50 UA2.220 (Guillissen) deploying_postgresql_on_kubernetes Deploying PostgreSQL on Kubernetes PostgreSQL devroom <p>A look at some of the ways available to deploy Postgres in a Kubernetes cloud environment, either in small scale using simple configurations, or in larger scale using tools such as Helm charts and the Crunchy PostgreSQL Operator. A short introduction to Kubernetes will be given to explain the concepts involved, followed by examples from each deployment method and observations on the key differences.</p> <p>A look at some of the ways available to deploy Postgres in a Kubernetes cloud environment, either in small scale using simple configurations, or in larger scale using tools such as Helm charts and the Crunchy PostgreSQL Operator. A short introduction to Kubernetes will be given to explain the concepts involved, followed by examples from each deployment method and observations on the key differences.</p> Jimmy Angelakos Schedule Slides on Slideshare Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:50 UA2.220 (Guillissen) breaking_postgresql_on_scale Breaking PostgreSQL at Scale PostgreSQL devroom <p>Database systems don't just slow down in a clear, linear way. They reach a certain point and start failing, often very suddenly and surprisingly.</p> <p>This talk is about some of the most common scaling "discontinuities" in PostgreSQL, and how to plan for them and mitigate them. Why is SERIAL a bad primary key on high-insert-rate tables? What happens when autovacuum can't keep up? How do you know you don't have enough memory for your queries? What happens when a query that worked just fine before suddenly has a horrible plan?</p> <p>Drawn from real-life examples, we'll go over these and show how to fix them… and avoid them in the first place.</p> <p>Database systems don't just slow down in a clear, linear way. They reach a certain point and start failing, often very suddenly and surprisingly.</p> <p>This talk is about some of the most common scaling "discontinuities" in PostgreSQL, and how to plan for them and mitigate them. Why is SERIAL a bad primary key on high-insert-rate tables? What happens when autovacuum can't keep up? How do you know you don't have enough memory for your queries? What happens when a query that worked just fine before suddenly has a horrible plan?</p> <p>Drawn from real-life examples, we'll go over these and show how to fix them… and avoid them in the first place.</p> Christophe Pettus Schedule Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:50 UA2.220 (Guillissen) data_modeling_normalization_and_denormalization Data Modeling, Normalization and Denormalization PostgreSQL devroom <p>As a developer using PostgreSQL one of the most important tasks you have to deal with is modeling the database schema for your application. In order to achieve a solid design, it’s important to understand how the schema is then going to be used as well as the trade-offs it involves.</p> <p>As Fred Brooks said: “Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious.”</p> <p>In this talk we're going to see practical normalisation examples and their benefits, and also review some anti-patterns and their typical PostgreSQL solutions, including Denormalization techniques thanks to advanced Data Types.</p> <p>As a developer using PostgreSQL one of the most important tasks you have to deal with is modeling the database schema for your application. In order to achieve a solid design, it’s important to understand how the schema is then going to be used as well as the trade-offs it involves.</p> <p>As Fred Brooks said: “Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious.”</p> <p>In this talk we're going to see practical normalisation examples and their benefits, and also review some anti-patterns and their typical PostgreSQL solutions, including Denormalization techniques thanks to advanced Data Types.</p> Dimitri Fontaine Schedule Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:50 UA2.220 (Guillissen) latest_evolution_of_linux_io_stack_explained_for_database_people Latest evolution of Linux IO stack, explained for database people PostgreSQL devroom <p>Input-output performance problems are on every day agenda for DBAs since databases exist. In Linux - probably the most popular operating system for databases now - there is a major overhaul of the IO stack for last several years. In this talk i will review what is going on there, why the IO stack needed an urgent improvement and what all those brand new NVMe driver and blk-mq layer improvements mean for databases, and database people. As a useful takeaway, I will provide a checklist of PostgreSQL and Linux settings to maximize IO performance with the new kernels.</p> <p>Input-output performance problems are on every day agenda for DBAs since databases exist. In Linux - probably the most popular operating system for databases now - there is a major overhaul of the IO stack for last several years. In this talk i will review what is going on there, why the IO stack needed an urgent improvement and what all those brand new NVMe driver and blk-mq layer improvements mean for databases, and database people. As a useful takeaway, I will provide a checklist of PostgreSQL and Linux settings to maximize IO performance with the new kernels.</p> Ilya Kosmodemiansky Schedule Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 07:30 UB2.147 quantum_computing_workshop Quantum Computing Workshop Quantum Computing Workshop workshop <p>Quantum computing workshop is part of two-day quantum computing track at FOSDEM 2019.</p> <p>Sunday is the hands-on day: in the morning, developers of 11 open source quantum computing projects in total will introduce attendees of the workshop to their projects and relevant concepts of quantum computing. During the afternoon, participants of the workshop (yes, you!) will work in small groups with the developers of the selected project to work learn more about the respective projects, help improve the documentation or even work on their first contributions!</p> <p>Participants of the Quantum computing workshop are generally expected to attend the whole day - the space is limited. If you want a better chance to get a spot, please pre-register. More information here: https://qosf.org/fosdem/</p> Tomas Babej Details of the Quantum Computing track Submit feedback 09:00 00:10 UB2.252A (Lameere) observability_101_2019 Devroom intro Monitoring and Observability devroom <p>Intro to the devroom.</p> Richard Hartmann Slides from DENOG10 Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:10 00:25 UB2.252A (Lameere) grafana_6 Grafana 6.0 Jumping in when others cancel Monitoring and Observability devroom <p>Jumping in for a cancellation, Carl showed us his dev env of Grafana 6.0</p> Carl Bergquist Submit feedback 09:50 00:25 UB2.252A (Lameere) augmented_network_visibility_with_high_resolution_metrics Augmented Network Visibility with High-Resolution Metrics Monitoring and Observability devroom <p>In the area of network visibility, having high-resolution metrics is useful to unveil patterns and behaviors that would otherwise be "averaged out" in smoother, lower-resolution signals. Visibility tools that have access to packets are, in theory, able to produce metrics up to the packet-by-packet resolution, that is, the best one could hope for. Nevertheless, high-resolution metrics are particularly demanding in terms of storage and this has actually posed a practical upper-limit on the metrics resolution, that rarely offer sub-minute samplings. Fortunately, thanks to the tremendous evolution of big-data stores, it is now possible to rethink network visibility solutions for the generation and storage of high-resolution network metrics. This talk discuss the challenges behind the generation and storage of high-resolution metrics and demonstrates how opensource software ntopng, InfluxDB, and Grafana can be used together to build an effective high-resolution network visibility solution. Intended audience is technical and managerial individuals who are familiar with network visibility.</p> <ul> <li>Principles of network visibility</li> <li>Metrics and metrics resolutions</li> <li>Challenges behind the generation, storage, and visualization of high-resolution metrics</li> <li>Opensource software: ntopng, InfluxDB, Grafana</li> </ul> Simone Mainardi Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:25 UB2.252A (Lameere) critical_path_analysis Critical Path Analysis Monitoring and Observability devroom <p>Complexity in coding and system design should be defeated until it is possible to do. Some problems are complex in nature and it is expensive to build and maintain solutions for problems in this category. Observability provides us tools to see our architectures from a different perspective. It is not just helping us to troubleshoot but also self-document our architectural decisions and help us to improve the most significant execution paths.</p> <p>Complexity in coding and system design should be defeated until it is possible to do. Some problems are complex in nature and it is expensive to build and maintain solutions for problems in this category. Observability provides us tools to see our architectures from a different perspective. It is not just helping us to troubleshoot but also self-document our architectural decisions and help us to improve the most significant execution paths.</p> <p>Agenda of the talk: - Give motivation why systems get more complex. - How to deal with complexity? - What else to do if complexity is in the nature of the problem? - Introduce critical path analysis as a solution. - Explain the organizational and technical challenges of critical path analysis. - Conclude by summarizing the pros/cons of critical path analysis.</p> Jaana Dogan (JBD) Video recording (WebM/VP9) Video recording (mp4) Slides http:// Submit feedback 11:10 00:25 UB2.252A (Lameere) on_observability_2019 On Observability Observability 101 Monitoring and Observability devroom <p>Observability is, at best, currently overloaded. I would like to re-create some common understanding of the term, and also remind everyone of much-needed abstractions and underlying concepts.</p> Richard Hartmann Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:50 00:25 UB2.252A (Lameere) loki_prometheus_for_logs Loki - Prometheus for logs Monitoring and Observability devroom <p>Imagine if you had Prometheus for log files. We will talk about Tempo, our attempt at creating just that.</p> Tom Wilkie Video recording (WebM/VP9) Video recording (mp4) slides Submit feedback 12:30 00:25 UB2.252A (Lameere) latency_slos_done_right Latency SLOs done right Monitoring and Observability devroom <p>Latency is a key indicator of service quality, and important to measure and track. However, measuring latency correctly is not easy. In contrast to familiar metrics like CPU utilization or request counts, the "latency" of a service is not easily expressed in numbers. Percentile metrics have become a popular means to measure the request latency, but have several shortcomings, especially when it comes to aggregation. The situation is particularly dire if we want to use them to specify Service Level Objectives (SLOs) that quantify the performance over a longer time horizons. In the talk we will explain these pitfalls, and suggest three practical methods how to implement effective Latency SLOs.</p> Heinrich Hartmann Slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:10 00:25 UB2.252A (Lameere) m3_and_a_new_age_of_metrics_and_monitoring_in_an_increasingly_complex_world M3 and a new age of metrics and monitoring in an increasingly complex world Monitoring and Observability devroom <p>The world in which we monitor software is growing more complex every year. There are increasingly more ways to run server-side software, with many more independent services and more points of failures, the list goes on! On the plus side, there’s a lot of great tools and patterns being developed to try and make things simple to assess and understand. This talk covers how metrics and monitoring can be leveraged in a variety of different ways, auto-discovering applications and their usage of databases, caches, load balancers, etc, setting up and tearing down dashboards and monitoring automatically for services and instances, and more.</p> <p>We’ll also talk about how you can accomplish all this with a global view of your systems using both Prometheus and Graphite with M3, our open source metrics platform. We’ll take a deep dive look at how we use M3DB, distributed aggregation with the M3 aggregator and the M3 Kubernetes operator to horizontally scale a metrics platform in a way that doesn’t cost outrageous amounts to run with a system that’s still sane to operate with petabytes of metrics data.</p> Rob Skillington Video recording (WebM/VP9) Video recording (mp4) Slides on slideshare Submit feedback 13:50 00:25 UB2.252A (Lameere) monitoring_anon Privacy-preserving monitoring of an anonymity network Data Collection, Analysis, and Visualisation from the public Tor network Monitoring and Observability devroom <p>The goals of a privacy and anonymity network like Tor are not easily combined with extensive data gathering, but at the same time data is needed for monitoring, understanding, and improving the network. The Tor Metrics team collects data and analyses the public Tor network. This talk will discuss safety principles that are followed, the tooling and workflows used, and also share some plans for future work to further enhance safety of data collection.</p> Iain Learmonth (irl) Tor Metrics Home Page Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:25 UB2.252A (Lameere) using_ebpf_for_linux_performance_analyses Using eBPF for Linux Performance Analyses Monitoring and Observability devroom <p>eBPF is one of the most powerful instrumentation frameworks in modern Linux Kernel. In this presentation we will cover eBPF basics as well as usage of Interactive eBPF tools, showing practical examples when and how they can help to resolve performance problems. Finally we will look into Cloudflare’s ebpf_exporter and show how you can integrate eBPF with Prometheus for Long Term Monitoring</p> Peter Zaitsev Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:10 00:25 UB2.252A (Lameere) thanos_transforming_prometheus_to_a_global_scale_in_a_seven_simple_steps Thanos - Transforming Prometheus to a Global Scale in a Seven Simple Steps Monitoring and Observability devroom <p>Thanos - Transforming Prometheus to a Global Scale in a Seven Simple Steps</p> <p>The Prometheus Monitoring system has been thriving for several years. Along with its powerful data model, operational simplicity and reliability have been a key factor in its success. However, some questions were still largely unaddressed. How can we store historical data at the order of petabytes in a reliable and cost-efficient way? Can we do so without sacrificing responsive query times? And what about a global view of all our metrics and transparent handling of HA setups?</p> <p>Thanos is an open source project that takes Prometheus' strong foundations and extends it into a clustered, yet coordination free, globally scalable metric system.</p> <p>In just 20 minutes, this talk will walk you through the real, actionable steps of seamlessly transforming your Prometheus setup into a robust, global and durable monitoring system using Thanos.</p> Bartek Plotka Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:50 00:25 UB2.252A (Lameere) deep_dive_kubernetes_metrics_with_prometheus Deep Dive: Kubernetes Metrics with Prometheus Monitoring and Observability devroom <p>Kubernetes traditionally uses metrics for its core scheduling decisions - in the beginning all of this started with an opinionated internal stack. Since then Kubernetes has introduced 3 orthogonal standardized metrics APIs. As of today many implementations exist - i.e. for cloud providers and on premise.</p> <p>In this talk we will first show the community process around metrics in Kubernetes, how the Special Interest Group (SIG) for instrumentation works and how to get involved. We will do an overview and deep dive in all 3 metric APIs, with a concrete fully open source Prometheus based deployment example. Once we have Prometheus running we will show how to bridge the gap between Prometheus and Kubernetes to use these APIs. Finally, we will conclude the talk with an example on scaling your deployments based on custom metrics served by your Prometheus.</p> Matthias Loibl Sergiusz Urbaniak Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:05 UB2.252A (Lameere) real_time_merging_of_config_management_and_monitoring Real-time merging of config management and monitoring Mgmt Config: Monitoring Monitoring and Observability devroom <p>Mgmt is a next gen config management tool that takes a fresh look at existing automation problems. The tool has two main parts: the engine, and the language. This presentation will demo both and include many examples showing how monitoring is built-in to each resource, and how events can cause the system to react and fix a problem before your pager even goes off. The language demos will show how you can feed real-time monitoring data from a tool such as prometheus, into your code and use that data to make real-time decisions. Lastly, we'll talk about our existing prometheus integration for exporting useful information about mgmt.</p> <p>Mgmt is a next gen config management tool that takes a fresh look at existing automation problems. The tool has two main parts: the engine, and the language. This presentation will demo both and include many examples showing how monitoring is built-in to each resource, and how events can cause the system to react and fix a problem before your pager even goes off. The language demos will show how you can feed real-time monitoring data from a tool such as prometheus, into your code and use that data to make real-time decisions. Lastly, we'll talk about our existing prometheus integration for exporting useful information about mgmt.</p> James Shubin Project homepage Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:35 00:05 UB2.252A (Lameere) lets_use_centralized_log_collection_to_make_incident_response_teams_happy Let's use centralized log collection to make incident response teams happy Monitoring and Observability devroom <p>The OWASP top 10 most critical web application security risks report published that insufficient logging is one of the top risks security teams face today.</p> <p>In this talk, we will go through issues with incident response teams without centralized logging as well as other reasons to do centralized logging (if you need more!), brief intro about structured data as well as configuration and output examples using NXLog Community Edition. This talk is aimed at administrators involved with setting up centralized logging on their networks.</p> Hannah Suarez NXLog Community Edition on Gitlab NXLog Community Edition on Docker Download NXLog Community Edition Package on NXLog.co NXLog Documentation Video recording (WebM/VP9) Video recording (mp4) http:// Submit feedback 16:40 00:05 UB2.252A (Lameere) writing_asynchronous_snmp_agents Writing Asynchronous SNMP Agents From a MIB file to a fully-fledged Python application Monitoring and Observability devroom Ilya Etingof Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:45 00:05 UB2.252A (Lameere) saymon_object_oriented_monitoring_and_management_for_both_ict_and_iot_ SAYMON - object-oriented monitoring and management for both ICT&IoT object hierarchies and time-series for robust back-end and visual front-end on top Monitoring and Observability devroom <p>SAYMON is a software platform. It makes possible to build a kind of specific problem solution in days. There's a great technology stack we would like to describe and discuss on FOSDEM19. MQTT, HTTP, WebSockets, NodeJS Actors, Redis, Kafka, Hierarchy and Documents Storage, Time-Series Storage, Front and Back Ends. ICT and IoT SW projects made by SAYMON team description. SAYMON use for tech people opportunities.</p> <p>We will talk for modern technologies and for it's business appliances. SAYMON architecture review. Object information model. Trees and graphs of hierarchies of objects. Infrastructure and smart things control methods review. Time-series collections and storage as well as current and future usage - visualisation, simple aggregates and machine-learning. Event processing. Incidents register and processing. Incidents correlations. Notifications and alerts implementation aspects. We will make demo and show cases.</p> Konstantin Mikhaylov SAYMON Documentation SAYMON Web Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:50 00:05 UB2.252A (Lameere) slapdcheck slapdcheck Monitoring OpenLDAP with Python Monitoring and Observability devroom <p>This lightning talk highlights how to monitor OpenLDAP in detail with Python module slapdcheck.</p> <p>OpenLDAP servers are typically used as backed for authentication (login) and other mission-critical infrastructure components. Furthermore OpenLDAP setups can be non-trivial resulting in higher risk that something could go wrong.</p> <p>The talk will introduce the Python module package slapdcheck which implements monitor checks for OpenLDAP servers: * performance data * allocated back-mdb pages * need for restart * replication state</p> <p>slapdcheck parses cn=config to automatically adjust monitoring checks based on current running configuration.</p> Michael Ströder slapdcheck on PyPI Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:30 02:00 UB4.132 cert_lpi_3 LPI Exam Session 3 Certification certification <h3>LPI offers discounted certification exams at FOSDEM</h3> <p>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 <strong>50% discount</strong>.</p> <p>For further information and instructions see <a href="https://fosdem.org/certification">https://fosdem.org/certification</a>.</p> Submit feedback 12:00 01:00 UB4.132 cert_libreoffice_1 LibreOffice Exam Session 1 Certification certification <p>LibreOffice Certifications are designed to recognize professionals in the areas of development, migrations and trainings who have the technical capabilities and the real-world experience to provide value added services to enterprises and organizations deploying LibreOffice on a large number of PCs.</p> <p>In the future, LibreOffice Certifications will be extended to Level 1 and Level 2 Support professionals.</p> <p>The LibreOffice Certification is not targeted to end users, although Certified Training Professionals will be able to provide such a service upon request (although not as a LibreOffice Certification). In general, end user certification is managed by organizations with a wider reach such as the Linux Professional Institute.</p> Submit feedback 13:30 01:00 UB4.132 cert_libreoffice_2 LibreOffice Exam Session 2 Certification certification <p>LibreOffice Certifications are designed to recognize professionals in the areas of development, migrations and trainings who have the technical capabilities and the real-world experience to provide value added services to enterprises and organizations deploying LibreOffice on a large number of PCs.</p> <p>In the future, LibreOffice Certifications will be extended to Level 1 and Level 2 Support professionals.</p> <p>The LibreOffice Certification is not targeted to end users, although Certified Training Professionals will be able to provide such a service upon request (although not as a LibreOffice Certification). In general, end user certification is managed by organizations with a wider reach such as the Linux Professional Institute.</p> Submit feedback 15:00 01:00 UB4.132 cert_libreoffice_3 LibreOffice Exam Session 3 Certification certification <p>LibreOffice Certifications are designed to recognize professionals in the areas of development, migrations and trainings who have the technical capabilities and the real-world experience to provide value added services to enterprises and organizations deploying LibreOffice on a large number of PCs.</p> <p>In the future, LibreOffice Certifications will be extended to Level 1 and Level 2 Support professionals.</p> <p>The LibreOffice Certification is not targeted to end users, although Certified Training Professionals will be able to provide such a service upon request (although not as a LibreOffice Certification). In general, end user certification is managed by organizations with a wider reach such as the Linux Professional Institute.</p> Submit feedback 09:00 00:10 UB5.132 community_welcome_remarks Community DevRoom Welcoming Remarks Community devroom devroom <p>In which Leslie and Laura welcome everyone to the Community DevRoom 2019</p> Laura Czajkowski Leslie Hawthorn Submit feedback 09:10 00:30 UB5.132 community_supporting_foss_community_members_imposter_syndrome Supporting FOSS Community Members with Impostor Syndrome Mentoring and supporting peers with impostor syndrome Community devroom devroom <p>This talk will share knowledge of how to support people who experience impostor syndrome, especially people from groups underrepresented in Free Software.</p> <p>Many people from groups underrepresented in open source experience impostor syndrome. Impostor syndrome is the combination of unrelenting standards for yourself and a fear of people finding out that you're not knowledgeable or experienced, that you're a fake, an impostor. People from groups underrepresented in tech have to work twice as hard to receive recognition as people who don't face discrimination, which often leads to impostor syndrome. Women and ethnic/racial minorities are much more likely to face impostor syndrome. If Free Software is to become more diverse, the community needs to understand how to support people who experience impostor syndrome.</p> <p>Most of the articles and training around impostor syndrome focus on changing the person who experiences impostor syndrome. What if instead, we focused on how the Free Software community could support people who experience impostor syndrome? How do we support our peers with impostor syndrome? How do we mentor someone with impostor syndrome? How do we acknowledge the work of community members who face impostor syndrome in a way that doesn't trigger the feelings of "I'm not good enough"?</p> <p>Sage Sharp will draw on their experience working with the Outreachy internship program to provide tips for how to support people with impostor syndrome. Despite being a Linux kernel developer for seven years and a Diversity and Inclusion consultant for three years, Sage often personally struggles with impostor syndrome. Their talk will draw on personal experience and provide examples of what has worked for Outreachy mentors who work with people from groups underrepresented in tech.</p> Sage Sharp Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:45 00:30 UB5.132 community_why_cant_we_all_just_get_along Companies and Communities Why Can't We All Just Get Along? Community devroom devroom <p>Companies and communities have different goals, different structures and different challenges. This talk will discuss the differences between companies and communities that can lead to friction, confusion and missed opportunities. With one speaker from the company side and one from the community side, we plan to explore this occasionally prickly relationship from both directions.</p> <p>Companies and communities have different goals, different structures and different challenges. That said, many of the largest and most successful free and open source software projects rely on a combination of both -- to create new code, address bugs and plan for the future of their codebase. A little more understanding could go a long way towards a more harmonious and efficient working relationship. With one speaker from the company side and one from the community side, we plan to explore this occasionally prickly relationship from both directions.</p> <p>This talk will discuss the differences between companies and communities that can lead to friction, confusion and missed opportunities. In order to build a sustainable future for free and open source software, we're going to need to get more comfortable with each other. Attendees will walk away with tactics for fostering better understanding, suggestions for initiatives that can be put into practice in their own projects and some inspiration for what these two entities could accomplish if they were committed to working together on the future of FOSS.</p> Deb Nicholson Nithya Ruff Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:20 00:30 UB5.132 community_open_souce_community_past_and_future The Open Source Community: its past and future What I learned about the Open Source Community while celebrating its 20th Anniversary around the World Community devroom devroom <p>Throughout the year of 2018, we celebrated the 20th Anniversary of Open Source. I'll provide an overview of what I've learned about the Open Source Community while celebrating its 20th Anniversary around the World.</p> <p>In 2018, the OSI has organized several activities at major open source events worldwide to celebrate it's 20th Anniversary. Events included Linux Conf Australia, FOSDEM, Campus Party, FOSSAsia, OpenExpo Europe, OW2con, FOSS Backstage, OSCON, Open Source Summit, All Things Open, and Mozilla Festival.</p> <p>As part of the OSI, I was able to work behind the scenes, as well as travel around the world, to help with the activities. This has allowed me to meet and talk with several members of the Open Source community: to learn from them, to hear their stories, and to discuss our future.</p> <p>I hope to share some exciting insights from this experience!</p> Nick Vidal The OSI Commemorative Website The OSI Website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:55 00:30 UB5.132 community_improve_project_onramp_new_participants Improve your project’s on-ramps for new participants Community devroom devroom <p>The long-term success of a FOSS project depends on the “on-ramp” experience - the documentation, support, and opportunities available to help new users and participants come up to speed. Students can be a good source of new participants for FOSS projects, which can provide valuable opportunities for students to learn technologies and develop key skills in communication, teamwork, critical thinking, and problem solving. This session will explore the structure and findings of activities designed to help students identify and explore FOSS projects, and consider ways to improve the on-ramp experience for new participants.</p> <p>Active, diverse communities are essential to develop and support FOSS projects. Research shows that most participants start as users and gradually become more engaged, but that only a small fraction of users advance to become active community members. Thus, the long-term success of a FOSS project depends on the “on-ramp” (or “slip road”) experience - the documentation, support, and opportunities available to help new users and participants come up to speed and join the community. This can be particularly important for people who are non-developers or from underrepresented groups (by gender, ethnicity, language, etc) who may experience “imposter syndrome”. Students can be a good source of new participants for FOSS projects, which can provide valuable opportunities for students to learn technologies and develop key skills in communication, teamwork, critical thinking, and problem solving. However, FOSS is often quite different from traditional academic experiences. Thus, the Professors Open Source Software Experience (POSSE) is a multi-stage program to help faculty understand how FOSS communities work, and how to help students participate effectively in FOSS communities. POSSE includes a “FOSS Field Trip” activity which explores sites like SourceForge and GitHub to discover projects of interest, and a “Project Evaluation” activity which uses a rubric to explore a specific project and assess how welcoming it is for new participants. In this interactive session, I will briefly present these two activities and summarize what students and faculty experience when they explore unfamiliar FOSS projects. In small groups, participants will consider the strengths and possible improvements of specific FOSS projects. I will then facilitate a discussion of broader insights, and ways that FOSS communities, faculty, and students can work together to improve the on-ramp experience for new participants.</p> Clif Kussmaul Professors Open Source Software Experience FOSS Field Trip (Activity) Project Evaluation (Activity) Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:30 UB5.132 community_data_not_community_metrics Community Data is Not Community Metrics One Team's Journey Down the Wrong Path Community devroom devroom <p>We all recognize that metrics are key to measuring community health. And that quantitative data is a key to these metrics. But, as Brian Proffitt will describe in this talk, all the data in the world won't help you find answers if you don't know what the questions are.</p> <p>We all recognize that metrics are key to measuring community health. And that quantitative data is a key to these metrics. But, as Brian Proffitt will describe in this talk, all the data in the world won't help you find answers if you don't know what the questions are. Brian will walk attendees through what happens when pretty data can distract from the real purpose of metrics, and how his team course-corrected to seek out the questions before the answers.</p> Brian Proffitt Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:30 UB5.132 community_building_community_metrics_strategy Building a Community Metrics Strategy Community devroom devroom <p>You probably know that community metrics are important, but how do you come up with a plan and figure out what you want to measure? Most open source projects have a very diverse community infrastructure with some combination of code repositories, chat, mailing lists, wikis, forums, and more. Deciding where to focus and what to measure across these many technologies can be a challenge.</p> <p>What you measure can have a huge impact on behavior within the community, and you want to make sure that you are encouraging people to contribute in sane ways by measuring the activities that matter for your project.</p> <p>This presentation will cover how you decide what to measure and provide some examples.</p> Dawn Foster Dawn's Blog CHAOSS, an OSS Metrics Project Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:35 00:30 UB5.132 community_sustaining_foss_projects_democratizing_sponsorship Sustaining FOSS Projects By Democratizing The Sponsorship Process How we run and manage our FOSS Sustainability Fund Community devroom devroom <p>Within a given company, there are typically only a few people involved in deciding which FOSS projects and initiatives to support financially. This year we decided to change all that and democratize the decision making process. We set up an internal FOSS Sustainability Fund, and invited everyone to participate in the process. This talk will examine how we got executive buy in for the fund, how the fund was set up, how we encouraged participation, and what the impact has been so far.</p> <p>Within a given company, there are typically only a few people involved in deciding which FOSS projects and initiatives to support financially. This year we decided to change all that and democratize the decision making process. We set up an internal FOSS Sustainability Fund, and invited everyone to participate in the process. This talk will examine how we got executive buy in for the fund, how the fund was set up, how we encouraged participation, and what the impact has been so far.</p> Duane O'Brien Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:10 00:30 UB5.132 community_hackers_gotta_eat Hackers gotta eat Building a Company Around an Open Source Project Community devroom devroom <p>Creating a growing open source project can be both rewarding and frustrating. It is rewarding to see the project grow and people contribute, but it can become frustrating and burdensome when your side-project comes to dominate your free time. If you're fortunate, you might be employed to work full-time on your open source project or even start a company around the project; then what? What is your new relationship "with the community?" How do you balance the motivations of various contributors, yourself included, within the project?</p> <p>In this talk we'll look at the history of the Jenkins project, from its origins as a side-project at Sun Microsystems to the growth of the project and on to the relationship with CloudBees, Inc. We'll look at what has and, perhaps more importantly, what hasn't worked well as CloudBees has grown in tandem with the Jenkins project. We will examine the evolving cultural dynamics of the project and the challenges of wearing two hats: corporate and open source.</p> Kohsuke Kawaguchi Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:45 00:30 UB5.132 community_consorting_with_industry Consorting with Industry Sustainability, FLOSS and building a local small business consortium Community devroom devroom <p>How can you become self-employed as a developer while building free software? In 2015, in a belief that FLOSS makes more economic and social sense, several of us, with a range of skillsets, worked to see where the boundaries are. Is it possible to scale beyond freelancing or contracting? Can you be a small, local, multifacted business and be paid to release code? What are the painful lessons...? And what really is a consortium anyway?</p> <p>Based on learning from the Northern Ireland based Avata Industries members, this talk covers the reusable outcomes of building a small business consortium - one that is focused on using and creating open technology. In particular, it will focus on sustainability, building relationships, presenting an engaging free software business case, and the feasibility study commissioned to examine these.</p> <p>When a call went out for small companies who could work on open source in public sector contracts, we saw little coordinated response in our local free software community. It became clear that having a FLOSS-focused job - putting food on the table - is not just about demand from FLOSS-enthusiastic customers. We need to have a coordinated means of supplying their needs. How can we quit our proprietary jobs, work on projects that inspire us, and increase the IP we can publicly release? Can we work on FLOSS projects as a main income, outside of specific big players?</p> <p>We set out to answer this as systematically, and reproducibly, as possible - not solely freelancing or contracting, tied to pre-set IP requirements, but looking at the IP-based business landscape and thinking how we could structure differently to compete. Crucially, we did not start out with an exclusive project to fund or progress, but took free and open source software as our theme, and worked from there. Nearly three years later, this talk will tell the tale of that journey, finding a space to experiment with FLOSS business models, and how that can be replicated. This has taught us a lot about local business, collaboration, code and community; how they interlink, providing an opportunity to have a sustainability in the largely proprietary world of small business.</p> <p>Amazingly to us, focusing on FLOSS in a highly competitive development market, made us even more creative in business than in code, and forced us to innovate faster in our business architecture than our software architecture. If only we had known when we started what we know now... and so, in the spirit of open source, we are keen to discuss this with the wider community.</p> <p>Key outcomes for becoming self-employed in FLOSS will be briefly explained:</p> <ul> <li>open source is only one critical piece of an open technology jigsaw</li> <li>variety of skillsets is essential, and open source facilitates this</li> <li>using FLOSS philosophy in building up business relationships</li> <li>the role of research &amp; development</li> <li>how we reach agreement on the balance between private, open and free with clients</li> <li>where the limitations are in all of this</li> </ul> <p>This session will touch on working with non-technical users, in companies big and small, to meet their needs and keep ourselves going. It will show how we are aiming to support others in taking the same steps - in reusable template documents, R&amp;D oucomes, lessons learned, and building a roadmap ahead.</p> <p>From a case study perspective, this will reference OurRagingPlanet, a schools-focused tool teaching natural disaster impact; Lintol, an open data validation platform; and The Data Times, a data discovery platform for community journalist - all works in progress.</p> <p>Finally, realistic alterations to the funding landscape will be discussed, to help existing projects become more sustainable, to streamline FLOSS support from local industry, and to improve the software ecosystem for all involved.</p> Phil Weir Project Lintol OurRagingPlanet The Data Times Avata Industries Requests for docs Presentation Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:20 00:30 UB5.132 community_back_from_the_dead Back From the Dead Resurrecting a national FOSS organization Community devroom devroom <p><a href="https://hamakor.org.il">"Hamakor"</a> is a non-profit that was founded in 2003 as the umbrella organization of the Israeli Free and Open Source Software community. It organized multiple events, led various public campaigns and even took part in defining some local standards. But over the years, many of the early members have moved on and the activities slowly dwindled. By 2014, all that remained was several old-timers debating over a mailing list and a yearly gathering that was becoming difficult to organize. There were barely enough volunteers left to fill the legal requirements for running a non-profit.</p> <p>Ironically, just as Open Source was becoming popular, the organization was fighting for its life. An emergency general assembly was called to discuss the possibility of disbanding the organization. With a narrow margin of 4:2, the members decided to continue operating. From that point, the organization started on a path of growing its activities and working on its rejuvenation, attracting new members and adapting to the current trends in the FOSS world.</p> <p>In 2018, Hamakor provided the platform for organizing multiple conferences, held regular monthly open source hack nights, and got to the point of working towards hiring it's first paid employee.</p> <p>We will discuss what worked, what didn't work, the lessons learned, what challenges we faced along the way and what are the challenges ahead as we continue to grow.</p> <p>While the talk is a case study of one organization, much of the content will be relevant to other mature organizations facing similar situations, and to younger organizations that wish to avoid making into the same mistakes we made.</p> Tomer Brisker Hamakor website Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:55 00:30 UB5.132 community_coaching_open_source_communities_2 Coaching for Open Source Communities 2.0 Community devroom devroom <p>A community is a big company with a different purpose: a passion. That passion is the key but is not enough to manage a community and let to grow and improve his effect every day. Coaching is a way to improve your action as community leader or volunteer without change your workflow.</p> <p>Do you know that there are many little tips and approaches that can improve your community health and quality for the participation? What are the best practices, issues and how to manage them to help your community to grow?</p> Daniele Scasciafratte Slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:30 UB5.132 community_towards_sustainable_solution_open_source_sustainability Towards a sustainable solution to open source sustainability Community devroom devroom <p>A few years ago, Heartbleed epitomized a massive open source sustainability problem for critical parts of the internet infrastructure. The bug, which affected the popular OpenSSL cryptographic software library, notably compromised the confidentiality of 4.5 million US patient records and cost the industry an estimated $500M.</p> <p>It was soon revealed that the root-cause of the issue was that OpenSSL was precariously understaffed. Open source sustainability became a major theme overnight. Stories of maintainer burn-out made the headlines. And tentative solutions started to emerge, most of them donation-based.</p> <p>In this talk we'll explore a number of existing strategies to fund open source and make it more sustainable, from patronage to dedicated ad networks. And we'll defend the idea that the best path to open source sustainability is to help companies understand the tangible business value they can get from contributing to open source.</p> Tobie Langel Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:05 00:30 UB5.132 community_collaboration_open_source_is_the_better_way "Collaboration in Open Source Is the Better Way" Community devroom devroom <p>Do you wish that your project team was more productive? Do you struggle with communication and project quality? Are you missing opportunities to make a bigger impact because of ineffective communication? Are you unsure why there is turnover among your most effective contributors? Do you see the benefits that collaboration brings to other projects, but are unsure how it could apply to you &amp; your project team?</p> <p>This session will present a set of specific examples &amp; stories from our direct experience of the benefits of open collaboration to enable more productive &amp; effective open source development.</p> <p>We believe that the desire to assist each other &amp; to collaborate is often present but unrealized. Many projects have established systems &amp; styles of communication that limit opportunities for creative interaction, reduce flexibility, &amp; ultimately restrict effective community engagement and results.</p> <p>The session will include several hands-on exercises for participants to learn-by-doing.</p> <p>Do you wish that your project team was more productive? Do you struggle with communication and project quality? Are you missing opportunities to make a bigger impact because of ineffective communication? Are you unsure why there is turnover among your most effective contributors? Do you see the benefits that collaboration brings to other projects, but are unsure how it could apply to you &amp; your project team?</p> <p>This session will present a set of specific examples &amp; stories from our direct experience of the benefits of open collaboration to enable more productive &amp; effective open source development.</p> <p>We believe that the desire to assist each other &amp; to collaborate is often present but unrealized. Many projects have established systems &amp; styles of communication that limit opportunities for creative interaction, reduce flexibility, &amp; ultimately restrict effective community engagement and results.</p> <p>The session will include several hands-on exercises for participants to learn-by-doing.</p> <p>Our focus is on 3 key themes: collaboration is more effective than siloed work - reducing barriers between collaborators and communities; open source &amp; open collaboration represent success stories of more interaction creating better technology AND better business results; collaboration is inclusion - when more voices are heard, both results &amp; culture are improved.</p> <p>Benefits to the Ecosystem The power of open source projects &amp; associated cross-company, cross-disciplinary collaboration are much discussed &amp; highly valued. In order to achieve the true benefits of open source tech &amp; open ecosystems, invest in adjustments to your approaches &amp; processes. You might need to make cultural changes in addition to technical changes. The examples we discuss are applicable to individual contributors, as well as leaders &amp; managers/maintainers.</p> Lauri Apple Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:40 00:15 UB5.132 community_devroom_closing Community DevRoom Concluding Remarks Community devroom devroom <p>In which Leslie and Laura provide the concluding remarks for the day.</p> Laura Czajkowski Leslie Hawthorn Submit feedback 09:00 00:05 UD2.119 tools_and_editors_welcome_2019 Welcome Free Tools and Editors devroom <p>Welcome to the Free Tools and Editors devroom!</p> Geertjan Wielenga Lars Vogel Johan Vos Submit feedback 09:05 00:30 UD2.119 news_from_eclipse_2019 Approaching Light Speed - News from the Eclipse Platform Project Free Tools and Editors devroom <p>The Eclipse Photon simultaneous release was the last “big” annual release, and with Eclipse 2018-09 the first rolling release has been shipped to the public. Its heart, the Eclipse Platform, has come with a plethora of new features and improvements for Eclipse Photon and afterwards that will continue the Eclipse IDE keeping the #1 flexible, scalable and most performing IDE!</p> <p>Come and see the incredible achievements the platform team and its growing number of contributors made to bring you the best Eclipse IDE ever!</p> <p>The Eclipse Photon simultaneous release was the last “big” annual release, and with Eclipse 2018-09 the first rolling release has been shipped to the public. Its heart, the Eclipse Platform, has come with a plethora of new features and improvements for Eclipse Photon and afterwards that will continue the Eclipse IDE keeping the #1 flexible, scalable and most performing IDE!</p> <p>This session will give a guided tour through the new features and changes in Eclipse Photon and Eclipse IDE 2018-09. Although especially JDT has been moved on quite much with support of new Java versions, this talk will focus on the other features of the Eclipse Platform and leaving JDT details to a separate talk at ECE. You will see usability improvements, code mining for enhancing the text editor information, useful new API for platform developers and neat features for users. Besides visible changes, the platform project team has paid special attention on stability, performance and resource consumption tuning. In this talk, we will give some insights how the team has worked on that.</p> <p>Come and see the incredible achievements the platform team and its growing number of contributors made to bring you the best Eclipse IDE ever!</p> Lars Vogel Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:40 00:30 UD2.119 news_from_netbeans_2019 From Oracle to Apache - News from Apache NetBeans Free Tools and Editors devroom <p>Oracle donated NetBeans to Apache in 2016. What's the status of the project, what's the roadmap, and how can you get involved?</p> <p>In this talk we will show what NetBeans has for the future. This includes how to experiment with new Java language features in NetBeans, how to develop OpenJDK with NetBeans and how to add a support for a new language to NetBeans based the language server protocol.</p> Geertjan Wielenga Jan Lahoda Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:15 00:30 UD2.119 intellij_tooling_2019 Tooling for IntelliJ Platform Plugins Free Tools and Editors devroom <p>Open sourced under Apache 2 license, IntelliJ Platform is the base for a number of well-known IDEs. It supports a large variety of languages and technologies via bundled plugins as well as thousands of third-party plugins.</p> <p>This talk will showcase the tooling and ecosystem for plugin developers, covering the whole lifecycle of creation and maintenance.</p> <p>We'll start by taking a look at the IDE features for development and testing: smart code insight, highlighting, and refactorings.</p> <p>How to keep up with the latest platform releases? Plugin Verifier allows you to check for any incompatibilities locally as well as get reports for already published versions.</p> <p>The built-in exception reporter provides the data for the Exception Analyzer, which helps collect and (auto-)triage all user-submitted runtime problems.</p> Yann Cébron Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:50 00:30 UD2.119 graalvm_status_2019 GraalVM: Polyglot Development Platform with Great Toolability Free Tools and Editors devroom <p>In this session, we will explore how GraalVM is a polyglot VM based on JDK, supporting languages Java, JS, R, Ruby and Python, while providing various development tools, with integration in IDEs, such as NetBeans and VisualStudio Code, with Chrome Developer Tools to monitor and profile using Graal VisualVM. The Chrome integration is based on implementing Chrome Inspector protocol and Language Server Protocol, among others. GraalVM provides universal tooling support for all languages implemented on top of it.</p> Martin Entlicher Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:25 00:30 UD2.119 language_server_protocol_2019 Embracing Language Servers for Blockchain Development Free Tools and Editors devroom <p>In this session I will demonstrate how we implemented a language server for the Solidity language, the language for smart contract development on the Ethereum blockchain. The language development is based on Eclipse Xtext, which implements the Language Server Protocol (LSP). By doing so, we were able to deliver Solidity tooling for multiple IDEs at once. I will show the Solidity integration for Eclipse, VSCode and Theia, and give some understanding about the LSP. Further I will show the development of smart contracts with the means of statemachines with the integration of Solidity into the Yakindu Statechart Tools.</p> Karsten Thoms Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:20 UD2.119 containers_free_tools_devroom_2019 Tools for Shrinking Your Containers Free Tools and Editors devroom <p>Honey I shrunk the container! Containers are increasingly the standard mechanism for packaging, delivering and deploying software.</p> <p>They provide a simpler, more lightweight architecturally significant form of virtualisation than VMs. They are a natural candidate for running microservices. But can we do better?</p> <p>If we can simplify our containers, we can shrink them further, improving: - performance - security - management</p> <p>In this talk I'll be discussing: - advantages of microcontainers over containers - how to build and use microcontainers - Smith (https://github.com/oracle/smith) - a microcontainer builder from Oracle - Crashcart - (https://github.com/oracle/crashcart) a tool for debugging microcontainers (and containers)</p> Ewan Slater Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:25 00:30 UD2.119 iot_devroom_tools_editors_2019 Time is Important - Developer Centric IoT Platforms Free Tools and Editors devroom <p>A break down of different IoT platforms that can be used to rapidly prototype 'things'.</p> <h2>What this is about</h2> <p>1) Don’t make me think! A breakdown of IoT frameworks to help you build things. 2) Demonstration of different rapid prototyping environments. 3) The key points in development of an IoT thing and getting your idea alive.<br/> 4) The trade off between complexity and features in IoT</p> <h2>Who this is for</h2> <p>Developers, engineers and hobbyists not familiar with embedded IoT technology and wanting a breakdown of the main differences offered by companies, organisations and communities</p> <h2>Content</h2> <p>A breakdown of IoT frameworks and the communities they serve. Which one do you belong to? The demos Looking at 3 systems. Using a ‘C’ cloud based remote compiation and development tool chain, a Python framework and Javascript. Hardware will be available for people to try afterwards in a meeting hub. Complexity vs Simplicity! As your ‘thing’ evolves you suddenly worry about onboarding, installation, configuration, security, updating and interfaces! This is not how to solve just what are your options.</p> <h2>Wrapping it up</h2> <p>Going over key points. Good resources. Other technology frameworks to consider.</p> Nicholas Herriot Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:30 UD2.119 language_eclipse_ide_2019 Adding Support for a New Language in the Eclipse IDE Free Tools and Editors devroom <p>We will show how to utilize the LSP adapter in the Eclipse IDE to extend it with a new language.</p> <p>The language server protocol is a new technology to simplify the implementation of support for a new language in a client (editor or IDE). It is backed and developed by Microsoft and implemented in many different clients. Eclipse also supports the LSP and in this demo/talk we will demonstrate how to use it by implementing support for the dart language (which is used by the flutter project).</p> Jonas Hungershausen Submit feedback 13:35 00:30 UD2.119 eclipse_tuning_2019 Taming The Dinosaur: How Eclipse was Performance Tuned Free Tools and Editors devroom <p>While increasing amount of features usually result in poorer performance and more memory consumption, Eclipse Photon has proven the opposite: The Eclipse Platform got faster and less memory hungry than before. This has been achieved by intensive profiling of multiple use cases and refactorings derived from the analysis.</p> <p>This talk will take a look behind the scenes and shows how profiling tools can help to understand performance bottlenecks in Eclipse based products and Java applications in general. Attendees will learn about the YourKit Java Profiler tool, which while being a commercial product can be used for free on Open Source development. I will discuss some former hot spots identified in the Eclipse platform with analysis screenshots and how they got resolved.</p> Karsten Thoms Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:10 00:30 UD2.119 praxislive_2019 PraxisLIVE: Hybrid Visual Live Programming Free Tools and Editors devroom <p>PraxisLIVE is an open-source hybrid-visual IDE for live programming, built on top of the NetBeans platform. While the IDE is primarily aimed at creative coders, its underlying forest-of-actors runtime supports real-time coding Java in general. PraxisCORE brings aspects of Erlang, Smalltalk and Extempore into the Java world, providing a powerful platform for media processing, data visualisation, sensors, robotics, IoT, and lots more! We will explore some of the trials and tribulations of designing a just-in-time programming system in Java, including actors, classloaders and reactive dataflows, with the aid of some hypnotic visuals and bleepy sounds.</p> Neil C Smith PraxisLIVE Submit feedback 14:45 00:30 UD2.119 html_java_api_2019 Quick & Easy Desktop Development with NetBeans and its HTML/JAVA API Free Tools and Editors devroom <p>In the era of microservices, HTTP/2 and IoT, desktop applications are still here to stay. Seeing is believing. See how to develop enterprise applications being built on top of the Java desktop application framework known as "the NetBeans Platform", many of them are Open Source and/or freely available, while when you use the new open source HTML/JAVA UI, you'll be able to write portable rich applications with the power of DukeScript.</p> John Kostaras Submit feedback 15:20 00:30 UD2.119 kotlin_code_coverage_bytecode Java 4..12, Kotlin, Code Coverage and their best friend — bytecode: scandals, intrigues, investigations Free Tools and Editors devroom <p>Do you know what is inside of your class files? Are you ready to bet? Let's have fun by diving into bytecode pattern matching and explore how different compilers (Java/Kotlin) and their different versions, including unreleased javac 12, transform your source code.</p> <p>Our dive will be based on details of implementation of most popular open source code coverage tool for Java — JaCoCo, whose recently released version finds in bytecode and filters out various compiler generated artifacts, which otherwise require unnecessary and sometimes impossible tricks to have full code coverage.</p> Evgeny Mandrikov Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:55 00:30 UD2.119 extend_emacs_2019 Extend Emacs in C or Other Languages Free Tools and Editors devroom <p>Starting with GNU Emacs 25, your favorite editor can now load and execute shared objects at runtime. That means you can extend Emacs by writing C code for example. This talk will briefly present the history and controversies about binary modules in the GNU world, cover the basics of the module API and show you how to write a simple module.</p> Aurélien Aptel Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:30 UD2.119 profiling_low_end_platforms_hawktracer Profiling Low-End Platforms using HawkTracer Profiler Free Tools and Editors devroom <p>HawkTracer is low-overhead instrumentation-based profiler built at Amazon Video for platforms with limited capabilities. It's highly extensible (at compile time) and portable so it can be run on almost any embedded device. In this talk I'll briefly talk about history of the profiler (why did I start it, and how did I manage to publish it to open source world), introduce the architecture of the profiler, present it's advantages and limitations, show how can you instrument the code and demonstrate the profiler in action by running it with an example project.</p> Marcin Kolny Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 00:25 UD2.120 (Chavanne) python_diversity_gap Beyond the 10%: analysis of the gender-diversity gap Python devroom <p>Women represents half of the population. The technological industry claims that around 30% of their work force are women. And that percentage decreases down to 20% when focusing on the tech. teams.</p> <p>If we analyze open source communities, those hardly reach 10% of the population as this is the case of the OpenStack Foundation or the Linux Kernel.</p> <p>This talk will show previous analysis and data publicly available with this respect, and an analysis of the Python community [1] to compare to.</p> <p>In addition to that, this talk will provide the steps done up to having the data: retrieving, curating, cleaning and visualizing the information with Python. For this process GrimoireLab, and specifically Perceval [2] was used used for retrieving information. Perceval retrieves information from the usual data sources found in the open source world. Then Ceres [3] is a small library that handle Perceval's data. These are the basics of the technical infrastructure.</p> <p>[1] https://github.com/python [2] https://github.com/chaoss/grimoirelab-perceval, [3] https://github.com/chaoss/grimoirelab-cereslib</p> Daniel Izquierdo Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:30 00:25 UD2.120 (Chavanne) python_discover_graphql Discover GraphQL with Python, Graphene and Odoo Python devroom <p>GraphQL is the hottest new technology for building APIs, sometimes touted as a better REST. This practical talk aims at explaining what GraphQL is and how it can help expose an elegant and flexible API for advanced business applications in record time. Real code examples will be shown, based on the Graphene library and Odoo Community. Care will be taken so the audience can easily transpose those to other python frameworks such as Django, Tryton or sqlalchemy. A short comparison of GraphQL with other familiar "RPC" technologies such as SOAP and REST will be provided, as well as a discussion of strengths, weaknesses and potential pitfalls.</p> <p>Talk structure:</p> <ul> <li>GraphQL, a short introduction</li> <li>Demonstration, code examples using Python Graphene and Odoo Community</li> <li>How GraphQL relates to other technologies, such as REST and SOAP <ul> <li>benefits,</li> <li>weaknesses,</li> <li>potential pitfalls.</li> </ul> </li> </ul> Stéphane Bidoul Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:00 00:25 UD2.120 (Chavanne) python_write_pylint_plugins How to write pylint plugins Python devroom <p>Pylint is the most popular Python source code analyzer which looks for programming errors, helps enforce a coding standard and sniffs for some code smells. It is possible to write plugins to add your own checks, for example enforce all documentation strings to be enclosed with 3 double quotes!</p> <p>This presentation will focus on how the pylint plugin system works, how to examine AST tree of a piece of code and create a minimalistic plugin from scratch. It will also examine couple of plugins that are used in the Kiwi TCMS project.</p> Alexander Todorov Custom pylint plugins used by Kiwi TCMS Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:25 UD2.120 (Chavanne) python_application_configuration Mastering Application/Service Configuration How to cover your configuration needs with oslo.config Python devroom <p>This talk covers oslo.config as a replacement option for ConfigParser, ArgumentParser and os.environ integrating all of their main features.</p> <p>Many applications and services rely on configuration data to behave according to a set of specific needs.</p> <p>The standard library gives us ConfigParser, ArgumentParser and os.environ used for easy configuration via plaintext configuration files, command line arguments and environment variables, but they don't come with batteries included to integrate with each other.</p> <p>OpenStack Common Libraries (Oslo) has an enhanced alternative called oslo.config with support to config files, command line arguments, environment, option deprecation, and much more. With the recent addition of source drivers feature, it is also possible to increase the security of config values storing them in a safer place like a secret manager. Using oslo.config over the standard library options is an easy way to achieve flexibility and also become compliant with security matters.</p> Moisés Guimarães Oslo.Config @ EuroPython Oslo.Config Poster on Hardening Plaintext Secrets in Configuration Files Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:25 UD2.120 (Chavanne) python_demystifying_coroutines Demystifying Coroutines and Asynchronous Programming in Python Python devroom <p>In this talk we will explore how coroutines work and how they are implemented in Python. We will learn that generators lie at the heart of coroutines, and how this long-standing feature of Python evolved over time to support the new capabilities of asynchronous programming.</p> <p>It’s a time travelling tale that explores the milestones in Python that relate to generators, coroutines, and asynchronous programming.</p> <p>The talk is intended to explore coroutines and asynchronous programming in Python, in full detail. It provides a historical revision of all the milestones in Python that led to the current implementation of coroutines, asynchronous programming, and event loops (asyncio) as we know them today. Starting from generators, it reviews their original idea and rationale, and then it explores how they became the pythonic solution for supporting coroutines, by extending their interface with new methods (PEP-342). Later on, generators (and coroutines) were extended once again in PEP-380, to support even more advanced functionality (like the "yield from" syntax). This was a major milestone that actually allowed programmers to start working with non-blocking I/O asynchronously fashion, and the idioms used for that resemble modern asynchronous programming with Python. Understanding what's behind those idioms helps to explain much of the current asynchronous frameworks.</p> <p>The dynamic nature of Python made the syntax prone to mixing iterators with coroutines, so the community (wisely) agreed on the fact that the language had to evolve, and new syntax needed to be added. New specific types were added for coroutines in Python 3.5, and Python 3.6 incorporated asynchronous generators. Finally in Python 3.7, "async" and "await" were promoted to keywords, and there were several enhancements to the asyncio library, marking the current state of the art of asynchronous programming in Python.</p> <p>The talk concludes by providing food for thought on what asynchronous programming actually means in Python, and what to expect for the future (Python 3.8 and beyond).</p> Mariano Anaya Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:25 UD2.120 (Chavanne) python_matching_with_behavior_trees Tree matchings with Behavior Trees How to recognize a complex subtree in a big tree Python devroom <p>Any python data structure could be seen as a big tree of related objects. Would it be useful for you to recognize in this big tree some specific form?</p> <p>Recognizing of subtrees is really a common aim in compilers implementation. But it's not an easy task. I recently found that I could easily use behavior trees to do such things. However this kind of techniques could be useful in other situation. This talk want to popularize this technique by explaining how behavior trees work in common way, how to adapt then for a bottom-up tree matching algorithm.</p> <p>For instance, some HTML parser provide CSS Selector function to match one node at the time optionally related to some ancestor. Here, with this kind of matching algorithm you could match many nodes in only one pass.</p> <p>I create on my github a "treematching" module that use this algorithm to provide an Embedded DSL to write patterns, match any python data structure and in some case, allow you to do tree rewriting.</p> Lionel Auroux A link to the Treematching python module Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:25 UD2.120 (Chavanne) python_ast_module Making your Python code write your Python code Discover Python's 'ast' module to see how you can analyze and generate Python code Python devroom <p>Have you ever wondered how much of your code could be generated automatically? Introspection, mutation, extension - Python's uber-dynamic nature allows us to do all kinds of kinky stuff. In this presentation we will take a look at the 'ast' module and see how it allows us to analyze and produce Python code. By leveraging it's power, we will try to create useful tools and even our own DSLs!</p> Marcin Sobczyk Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:25 UD2.120 (Chavanne) python_memory_management Memory Management in Python A Short Overview of CPythons Memory Management Python devroom <p>Learn what is going on behind the scene about memory. How CPython allocates memory? How it manages Private Heap? Does it uses abstractions for managing the memory? Does python relase memory back to the system? Learn how python GC works, reference counting and generational GC. How generations classified? How does reference counting mechanism work? This talk is going to try to answer all this questions.</p> <ul> <li><p>Motivation about that subject. Why do i need to know this stuff? What is the effect of these things on my code quality? Is that lecture enough for being a master about this subject?</p></li> <li><p>Understanding Objects Everything is an object in python (even code). If we want to understand what is going on behind the scene about memory allocation for objects first we should understand objects. This part has a cpython code reference for PyObject. We are going to learn python objects with seeing how they implemented.</p></li> <li><p>Memory Management Model Python has a great system about managing the memory (the private heap). Heap managed by +1th layer but the main part of this talk is +2th layer, object allocation. We'll discuss them</p></li> <li><p>Small Object Threshold Classifies objects into 2 sections. If size of an object bigger than 512 it is big else it is small.</p></li> <li><p>Abstractions We'll talk about abstractions, Arena > Pool > Block</p></li> <li><p>Deallocations We'll talk about GC, reference count, counting mechanism, generational gc, mark &amp; sweep, generations.</p></li> </ul> Batuhan Taşkaya My latest article about memory management Latest article about cpython Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:25 UD2.120 (Chavanne) python_pyodide Pyodide: scientific Python stack compiled in WebAssembly Python devroom <p>The <a href="https://github.com/iodide-project/pyodide/">Pyodide project</a> aims to compile the scientific Python stack to WebAssembly, so that it can be run directly in the browser. It currently supports data science libraries such as NumPy, Pandas, matplotlib (and more planned in the future). In this talk we will outline the current capabilities, existing challenges, and possible future development directions.</p> <p>Pyodide is closely related to the <a href="https://iodide.io/">Iodide</a> project, which implements a notebook environment (including but not limited to Pyodide) that allows performing calculations in the client-only mode (without sending requests to a server).</p> <p>The <a href="https://github.com/iodide-project/pyodide/">Pyodide project</a> aims to compile the scientific Python stack to WebAssembly, so that it can be run directly in the browser. It currently supports data science libraries such as NumPy, Pandas, matplotlib (and more planned in the future). In this talk we will outline the current capabilities, existing challenges, and possible future development directions.</p> <p>Pyodide is closely related to the <a href="https://iodide.io/">Iodide</a> project, which implements a notebook environment (including but not limited to Pyodide) that allows performing calculations in the client-only mode (without sending requests to a server).</p> Roman Yurchak Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:25 UD2.120 (Chavanne) python_games_with_micropython Computer Games with MicroPython Become a full-stack game developer. Python devroom <p>MicroPython lets you program your own hardware easily, so why not use it for programming your own games on your own custom handheld game console? And once you have the game console, why not make it super-easy to program and use it for education and workshops?</p> <p>I like making computer games, and I think that everybody should at least try to do it once. Not only it is great fun, but you also learn a lot of useful skills, including the fact that now you can control the computer, and not be controlled by it. But programming games with regular Python is hard, so why not turn to MicroPython and build your own hardware that will make it super-easy to make simple games? And as you gain experience and extend your tool set, you can build better devices and make better games for them. You can even experiment with non-standard control methods and output. In this talk I will tell you how you can start doing this, and I will show you the hardware and games that I made. I will also talk about how I turned one of them into an educational device running CircuitPython and suitable for game-programming workshops.</p> <p>After the talk, I want you to know that: 1. it's actually pretty easy to make custom gaming hardware these days, 2. it is still a lot of work to actually make a good computer game, 3. using high-level languages like Python helps, both beginners and advanced developers.</p> Radomir Dopieralski projects home page documentation for PewPew documentation for µGame Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:25 UD2.120 (Chavanne) python_extending_numba Extending Numba Python devroom <p>Over the years the Numba project has proven itself to be a pragmatic and effective tool to accelerate numerical computations significantly. Numba however puts some restrictions on the code that can be accelerated. These restrictions can force you to compromise, making your code less readable or more difficult to integrate with the rest of your code. This tradeoff makes Numba less attractive. In this talk I'll share what I've learned integrating Numba in our simulator. We'll look at the architecture of Numba and explore how we can extend it to ensure our code can be accelerated without having to trade in expressiveness.</p> Joris Geessels http://numba.pydata.org/ Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:25 UD2.120 (Chavanne) python_extending_syslog_ng Extending syslog-ng in Python Best of both worlds Python devroom <p>The syslog-ng application collects logs from many different sources, performs real-time log analysis by processing and filtering them, and finally it stores the logs, or forwards them for further analysis. It was originally developed in C due to its low footprint and high performance. Recently Python language bindings were added, so you can collect, process, and store log messages using embedded Python code.</p> <p>Learn how to customize your log processing infrastructure in Python using syslog-ng, integrate your logs to local and cloud services, and the implementation details and benefits of such solutions.</p> <p>The syslog-ng application collects logs from many different sources, performs real-time log analysis by processing and filtering them, and finally it stores the logs, or forwards them for further analysis. It was originally developed in C due to its low footprint and high performance. Recently Python language bindings were added, so you can collect, process and store log messages using embedded Python code.</p> <p>Python bindings always have two parts: a configuration part – where you configure a source, parser, or destination – and the actual Python code part. You can store the code in-line in the syslog-ng configuration file, or in external files, if you have a larger project.</p> <p>The first Python binding added to syslog-ng was the Python destination. Many databases and cloud services have an easy to use Python API, while a C implementation of the API is either missing or difficult to implement. The syslog-ng application handles log messages and parsed data as name-value pairs. You can pass name-values to the Python destination code in mulitple ways: an object which contains all of the name-value pairs, or as a dict, which contains only name-value pairs configured in syslog-ng.conf. Recent releases also support the use of templates.</p> <p>Next the Python parser was implemented. Originally it was intended as an easy-to-code parser for messages not supported by the built-in parsers, like PatternDB or csv-parser. But you can also use it to enrich log messages from external databases. For example, you can use it to resolve host names from IP addresses.</p> <p>Recently support for Python source was added. You can use it to fetch data or implement a server in Python, for example, to collect messages over HTTP or Kafka protocols.</p> <p>Obviously the Python code is slower than native C code. On the other hand, extending syslog-ng in Python offers a lot more flexibility than development in C. You do not need a development environment other than a text editor and the Python module installed. Neither do you need you to compile the code. Just write it and use it.</p> <p>It is easy to get started, as there is no need for extra setup. You can get proof-of-concept minimal setup working with a single method quickly. You can extend it later to have proper initialization and connection control for added robustness.</p> <p>Learn how to customize your log processing infrastructure in Python using syslog-ng, integrate your logs to local and cloud services, and the implementation details and benefits of such solutions.</p> Peter Czanik Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:25 UD2.120 (Chavanne) python_markup_to_pdf Text Markup to PDF with Python Python devroom <p>Python is brilliant at many things, but did you know it could also create beautiful documents from simple markup? Discover rst2pdf in this session.</p> <p>Introducing: rst2pdf. This open source python project enables you to write simple, text-based markup and generate beautiful PDF documents with a single command. Using text-based content makes collaboration simple as source control tools can be used; it also allows content to be easily repurposed to different documents without reformatting. The styling can be changed independently and different formats produced from the same content source - it also supports syntax highlighting. This talk will also cover a bit about the state of the open source project itself and how people can get involved as users or contributors.</p> Lorna Mitchell Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:25 UD2.120 (Chavanne) python_compute_qos_of_your_infrastructure Compute the QOS of your infrastructure with DEPC Python devroom <p>DepC is an open source tool written in Python 3.5+ : https://github.com/ovh/depc</p> <p>We use it to compute the Quality Of Service (QoS) of our IT infrastructure and customers (14k servers and 5M websites in the WebHosting department).</p> <p>To be able to do this we use some open source technologies : - TimeSeries databases and Pandas / Numpy for the QoS computing, - Neo4j to store the graph of our dependencies (a customer depends on several servers and some services, like databases, themselves depends on servers. If a server fails, several customers QOS are impacted), - Kafka consumer to update in real time the graph in Neo4j, - Apache Airflow to schedule the jobs used to compute the QOS of the whole infrastructure (the graph in Neo4j contains ~10M nodes).</p> <p>The goal of this conference is to show you how do we assemble these technologies to construct DepC in OVH.</p> Nicolas Crocfer Anthony Olea Github Repo Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:25 UD2.120 (Chavanne) python_salut_a_toi_network Salut à Toi: A Python Based Social Network And More A multi-platforms communication ecosystem based on XMPP and Python Python devroom <p>"Salut à Toi" is a Python based multi-platforms decentralized communication ecosystem. It is using a standard protocol (XMPP) and offers a lot of features like chat, e2e encryption, files sharing, photo albums, events, (micro)blogging, forums, remote control, tickets, merge-requests and even a decentralized web framework. This talk is an overview and a demonstration of the project, and it will explain how the Python technologies helped.</p> <p>"Salut à Toi" is a large communication ecosystem based on a daemon/frontends architecture, and available on many platforms (desktop, mobile, web, console). It uses the power of XMPP far beyond instant messaging, and takes profit of many exciting python technologies such as Twisted, Kivy, python-for-android, Jinja2, or Urwid.</p> <p>This talk will be a quick tour of the project mainly focusing on desktop/mobile frontend and web frontend.</p> <p>After a brief explanation of the project, the association behind, and its goals, a demo of the desktop/mobile frontend will be done on GNU/Linux and on Android, with features likes: - one2one and group chat with e2e encryption (OTR and OMEMO) - sharing a folder either in P2P or through a server à la Owncloud/Nextcloud, with easy permission handling - remote controlling a VLC instance running on the desktop through the Android app</p> <p>Then a demo of the web frontend will take place with blogging, events, forums, tickets and merge-requests.</p> <p>This will be the occasion to have some words on the Python technologies used and how, and why Python has helped a lot.</p> <p>More details on the project can be found on https://salut-a-toi.org or on the blog of the main developer: https://www.goffi.org.</p> Jérôme Poisson (Goffi) official website main developer blog Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:25 UD2.120 (Chavanne) python_solving_polynomial_systems Solving Polynomial Systems in Python phcpy: a scripting interface for PHCpack Python devroom <p>PHCpack is a software package for solving polynomial systems with homotopy continuation. The talk will tell the story of the development of phcpy, a scripting interface for PHCpack, which has been under development for the past five years. One result is the availability of the software in a Python2, Python3, and SageMath kernel of JupyterHub, which runs at https://pascal.math.uic.edu/hub/login (www.phcpack.org).</p> <p>Other relevant details: https://arxiv.org/abs/1310.0056 (EuroSciPy 2013 proceedings paper) http://homepages.math.uic.edu/~jan/phcpy<em>doc</em>html/index.html (documentation) https://github.com/janverschelde/PHCpack (github repository)</p> <p>PHCpack is a software package for solving polynomial systems with homotopy continuation. The talk will tell the story of the development of phcpy, a scripting interface for PHCpack, which has been under development for the past five years. Working on phcpy involved the following activities: (1) Accessing code in a shared object file from Python. (2) Documenting the code with Sphinx. (3) CGI processing, managing user information and user data. (4) Making the code available online with JupyterHub. The presentation will provide examples of the expertise acquired for the four tasks mentioned above.</p> Jan Verschelde Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:00 00:25 UD2.208 (Decroly) rust_python RustPython: a Python implementation in Rust Building a Python 3 interpreter in Rust Rust devroom <p>Rust is a relatively new programming language aimed as a safe competitor of C. There are already attempts to write extension modules in rust and load them into CPython. A whole new approach would be to re-implement the Python language in rust. This is what RustPython is about.</p> <p>RustPython is a relatively new project. The aim of the project is to create a Python interpreter written entirely in Rust. Until now we used many of the language features available in rust, such as vectors, hashmaps, iterators. To implement standard library modules, we would like to wrap existing rust crates. This is what we did with the json module for example.</p> <p>During this talk, we will demo the current state of the art of the project. We will take a dive into the internals of RustPython, from parsing, compilation, bytecode to actual execution on the Python virtual machine. Next to this we will cover the growing community, and the road ahead!</p> Windel Bouwman Shing Lyu Project page on Github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:30 00:45 UD2.208 (Decroly) rust_cargo_inspect What is Rust doing behind the curtains? Exploring syntactic sugar with cargo-inspect Rust devroom <p>This is an hands-on talk, showing a journey from code with a lot of syntactic sugar to plain, veeery explicit Rust code.</p> <p>Rust allows for a lot of syntactic sugar, that makes it a pleasure to write. It is sometimes hard, however, to look behind the curtain and see what the compiler is really doing with our code. "It is good to know what these conveniences are, to avoid being mystified by what's going on under the hood... the less magical thinking we have of the world, the better." (Tshepang Lekhonkhobe). In this hands-on talk, we will go from code with a lot of syntactic sugar to extremely verbose Rust code.</p> <p>We will use a little tool called <code>cargo-inspect</code>, which was built for teaching Rust internals. The goal is to make the compiler more approachable to mere mortals.</p> Matthias Endler Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:20 00:25 UD2.208 (Decroly) rust_praezi RustPräzi: a tool to build an entire call graph of crates.io From package-based to precise call-based dependency network analysis Rust devroom <p>Which crates call a vulnerable function? Which deprecated functions are central to crates.io and should not be deleted? Am I breaking important clients and their dependencies with my new release? These are questions that package publishers and owners of package repositories crave for answers to. To solve this problem, we created RustPräzi: a call-based dependency network that represents a gigantic single large versioned call graph of all crates.io packages.</p> <p>In this talk, I will describe how RustPräzi is developed, the challenges we faced while compiling the entire crates.io and the future directions. Our goal is to make RustPräzi a community effort that can help in maintaining the stability of crates.io. For example, bad releases which may negatively impact crates.io can be detected and avoided.</p> Joseph Hejderup github preprint Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:50 00:45 UD2.208 (Decroly) rust_beyond_first_steps Beyond The First Steps Key ideas and advices to improve your development posture Rust devroom <p>There is plenty of content available to teach you the first steps in Rust… But what about after?</p> <p>What are good resources? how can you leverage generated documentation instead of just tutorials and books? How can you manage the trade-offs in API design? We’ll look at some content and examples, both old and new, worth consuming and talk about their key ideas.</p> <p>Then, we’ll spend some time talking about some ways to refine your APIs, measure the impact of optimizations, reduce mental overhead on your developers, and tools to help you dig into the heart of your code (flamegraphs, metrics, failure injection, debugging).</p> <p>Agenda:</p> <ul> <li>5 min: A Brief Introduction (to help with context)</li> <li>10-15 mins: Content Resources</li> <li>Rust Conference/Meetup Videos</li> <li>Great Articles</li> <li>RFCs (and how to figure them out)</li> <li>5 mins: Flexible/Optional Parameters</li> <li>5 mins: Linearizable Types &amp; #[must_use]</li> <li>(Optional, or pick any/all) 5 mins: Flamegraphs (Flamer) OR Prometheus (rust-prometheus) OR Debugging (lldb/VS Code).</li> </ul> Jay Lee Ana Hobden Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:40 00:45 UD2.208 (Decroly) rust_sans_io Sans IO: safe and testable network protocols Building safe, deterministic and testable network protocols by removing IO Rust devroom <p>Implementing network protocols is a hard task, especially considering the support of conflicting implementations, or long term maintenance. And it does not help that testing them often requires complex client or server setups. By removing IO from the equation, and instead working directly with buffers, we’ll see that testing instantly becomes easier to setup, the core implementation becomes completely deterministic, and the protocol gets more reusable. This talk draws heavily from experience implementing protocols such as HTTP or AMQP. It will show how to build protocols in such a way, using the nom parsing library, cookie-factory serialization library, and a new state machine development library. And we will see how to reuse the resulting protocols, by swapping out the underlying transport (TCP, various TLS libraries, unix sockets…) or wrapping it in a nice futures based API.</p> Geoffroy Couprie Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:45 UD2.208 (Decroly) rust_prometheus Introducing rust-prometheus How Rust makes metrics safe and fast Rust devroom <p>This talk is to give a brief introduction to the rust-prometheus library, which is a Rust client for Prometheus, a monitoring and alerting toolkit. After a brief look at basic usage, this talk will dive into how Rust features make the library safe and fast. Finally, we will discuss some ways to use Procedural Macros to reduce metric lookup by over 10x via generated static lookups.</p> <p>Intended audience: Rust beginner</p> <h1>Agenda</h1> <ol> <li>Introduction (5 min) <ul> <li>Self introduction</li> <li>What is Rust-Prometheus: A brief introduction to Prometheus and the client library</li> <li>How to use: A short example of using the library to collect different kind of metrics</li> </ul> </li> <li>How Rust Shines <ul> <li>Safe (5 min) <ul> <li>Why we care about safety</li> <li>Type-safe generic labels: Use generic label length so that label length can be checked at compile time.</li> <li>Rust’s Send &amp; Sync markers</li> <li>Rust’s #[must_use] attribute</li> </ul> </li> <li>Fast (5 min) <ul> <li>Why we care about performance</li> <li>Local !Sync metrics: Shared global metrics across threads is not efficient, e.g. causing cache eviction. Local metrics to solve under the cost of normal variables!</li> <li>Static metric vectors via proc_macros: A macro to provide efficient metric vectors.</li> </ul> </li> </ul> </li> <li>How static metric macro is implemented (10 min) <ul> <li>A small explanation of the macro implementation so that listeners will have a blueprint about the capability and the approach of Rust procedural macros.</li> <li>Benchmarks showing speed difference.</li> </ul> </li> <li>Future Plan (2 min) <ul> <li>Thread-local metrics: Enables seamlessly local metrics and less contention</li> <li>More metrics, like Prometheus Summary</li> <li>A more consistent API</li> <li>Metrics pulling</li> <li>Contributions are welcome!</li> </ul> </li> <li>Production Use Case (5 min)</li> </ol> Wish Shi Project page on GitHub Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:20 00:25 UD2.208 (Decroly) rust_hawktracer Profiling Rust Rust bindings for the HawkTracer profiler Rust devroom <p>Rust-hawktracer allows you to do in-depth profiling for your Rust projects.</p> <p>Talk overview: - Introduction to profilers<br/> - A state of profilers in Rust<br/> - What HawkTracer is (the original C project)<br/> - API design and trade-offs<br/> - Live demo!<br/> - Visualizing the data</p> Alexandru Ene Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:50 00:25 UD2.208 (Decroly) rust_gnome Rust and GNOME Adoption and impact of Rust through out GNOME Rust devroom <p>A tour through out the adoption of Rust in the GNOME and Freedesktop communities. Showcasing existing projects that adopted Rust like Librsvg and Gstreamer, but also desktop applications from scratch, new infrastructure tooling, and the challenges of integrating Rust with the rest of the ecosystem.</p> Jordan Petridis Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:20 00:25 UD2.208 (Decroly) rust_gtk_rs gtk-rs: newest and future developments Progress report on GTK+ Rust bindings Rust devroom <p>A tour on newest and future developments for gtk-rs, the Rust bindings to GTK+.</p> <h2>Agenda</h2> <p>Introduction:</p> <ul> <li>Small presentation of Gtk-rs project.</li> <li>Small code demonstration.</li> </ul> <p>Last year developments:</p> <ul> <li>Add of futures to handle asynchronous function calls.</li> <li>Generation of union types.</li> <li>A lot of new types/functions generated.</li> </ul> <p>Next developments:</p> <ul> <li>Generate bindings for functions/methods taking callbacks as argument.</li> <li>Long run: being able to "subclass" widgets.</li> <li>Global API improvements as always!</li> <li>Generate sys crates documentation on gtk-rs.org as well?</li> </ul> <p>gtk-rs ecosystem:</p> <ul> <li>A lot of projects are starting to use gtk-rs, two of them are part of the ten most active GNOME projects on gitlab (Fractal - https://wiki.gnome.org/Apps/Fractal - and Podcasts - https://wiki.gnome.org/Apps/Podcasts).</li> <li>Some (nice) API are built upon it like relm (https://github.com/antoyo/relm).</li> </ul> <p>Question time!</p> Guillaume Gomez Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:50 00:45 UD2.208 (Decroly) rust_gstreamer GObject subclassing in Rust for extending GTK+ & GStreamer Or: How to safely implement subclassing in Rust while making use of a C library Rust devroom <p>Many commonly used libraries from other languages, especially GUI toolkits, make use of Object Oriented Programming (OOP). While Rust has support for many of the OOP concepts in one way or another, there is no easy way for implementing subclassing or inheritance.</p> <p>The topic of this talk will be how to implement subclassing and inheritance in safe Rust, based on the GObject C library. The GObject library is providing Java/ObjectiveC-style OOP features to C. It is used by the GTK+ UI toolkit, the GStreamer multimedia framework and various GNOME libraries.</p> <p>Apart from reasons why you would want to do this in Rust, this talk will cover the new implementation for subclassing that was recently integrated into the existing GLib/GObject, GTK+ and GStreamer bindings. These bindings allowed usage of existing GObject types before, but didn't provide any features to create new GObject types. In addition to usage of the subclassing implementation, a couple of details about the implementation will also be explained.</p> <p>Last but not least, an outlook in the future will be given for how one can take this even one step further with procedural macros to allow writing code that looks very close to Java or C#.</p> <p>This talk will not only be interesting for those who want to make use of GTK+ or GStreamer and extend those libraries, but will also cover various aspects about safely interfacing with C libraries from Rust and all kinds of type tricks to teach the Rust type-system about subclassing and making use of the type-system for enforcing various invariants at compile-time.</p> Sebastian Dröge Rust GTK+ bindings Rust GStreamer bindings GTK+ GStreamer Rust GStreamer plugins librsvg librsvg branch making use of GObject subclassing in Rust gtk-rs examples Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:40 00:25 UD2.208 (Decroly) rust_cpp Call C++ from Rust with the cpp crate Interoperate with C++ libraries, using Qt as an example Rust devroom <p>There is a lot of existing code and libraries written in C++. The cpp crates allow to embed easily C++ within your rust code so you can call interoperate with the existing C++ code. In this talk, we will see how to use this create and how it works behind the scenes. As an example, we will look at the <code>qmetaobject</code> which expose Qt api to Rust.</p> Olivier Goffart The cpp crate The qmetaobject crate Slides Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:10 00:25 UD2.208 (Decroly) rust_ffi_rdma Containing the RDMA plasma An experience report on wrapping a wildly unsafe library Rust devroom <p>This talk is an experience report on my safe rust wrapper for a c++ RDMA library<a href="https://github.com/utaal/infinity-rust">^1</a>. RDMA enables the network hardware to directly read and write to memory, without the cpu's involvement. My rust implementation ensures that memory regions are exclusively either owned by client code, or enqueued for use by the underlying RDMA stack. This makes sure that data cannot be changed by hardware while owned by safe rust code, and that user logic cannot mutate data while it is being read by the card. In this talk, I'll go over the design of the library and how it embraces rust's ownership transfer semantics.</p> <p>In rust's safe/<code>unsafe</code> model, the burden of upholding safety guarantees at the <code>unsafe</code> boundary is entirely up to the programmer who's writing the wrappers. These guarantees are not formally specified, which makes it harder to reason about the safety of the wrapped <code>unsafe</code> logic; this issue is compounded by the fact that undefined behaviour can seep into safe rust from <code>unsafe</code> code that doesn't match rust's expected semantics. I'll discuss how this improves ergonomics in safe code, but requires careful engineering of <code>unsafe</code> code because it doesn't allow the programmer to reason locally.</p> <p>Expected prior knowledge / intended audience: some working experience with Rust's semantics and guarantees of safe code</p> Andrea Lattuada Video recording (WebM/VP9) Video recording (mp4) Submit feedback 09:30 00:25 UD2.218A bug_bounty Open source software security testing Crowd supported via bug bounty Security devroom <p>The European Commission has launched the EU-FOSSA2 project where they want to invest in the security of open source projects by running bug bounty programs against popular software. Intigriti got the first position in this contract and will be running programs for some really known open source projects. In these programs, users from the community will be invited to help testing the security of these programs and will be rewarded for finding vulnerabilities.</p> <p> In this talk we will explain how bug bounty actually works, announce which programs can be found, which bounties can be earned and how the process flow works.</p> Stijn Jans Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:00 00:25 UD2.218A tls13_apis TLS 1.3: what developers should know about the APIs Security devroom <p>Introduction to the new API added for TLS 1.3 in crypto libraries.</p> <p>Major crypto libraries have adopted TLS 1.3 since its final publication in last August. Those libraries are carefully designed so the applications can switch to the new protocol with minimal code modification. However, as TLS 1.3 also brings new concepts, such as post-handshake authentication and 0-RTT, the applications needs to use new API to take full advantage of the protocol. In this presentation, we will go through the new API functions added for TLS 1.3 in multiple crypto libraries, see pros and cons of their design choices, and discuss the best practice in using those new functions.</p> Daiki Ueno Video recording (WebM/VP9) Video recording (mp4) Submit feedback 10:30 00:25 UD2.218A gost_crypto Russian crypto algorithms in the OpenSource world GOST crypto demystified Security devroom <p>This talk presents status of Russian national crypto standards and their support in OpenSource projects.</p> <p>In parallel to mainstream cryptography world, Russia has a strong school of crypto algorithms development, including block ciphers, hash functions, digital signature, etc. There is slow but ongoing trend of harmonizing GOST algorithms usage with the rest of Internet community. This talk is dedicated to debunking several myths and presenting current state of support in open source project.</p> <ul> <li>GOST Myth busting: insecure, Russian-only, unnecessary to the rest of the World</li> <li>Major areas: PKI, CMS, TLS, DNSSEC, XML DSIG</li> <li>New areas of contribution: rekeying, new crypto modes</li> <li>OSS support: <ul> <li>OpenSSL</li> <li>GnuTLS</li> <li>LibreSSL</li> <li>Linux kernel</li> <li>libgcrypt</li> <li>you name it</li> </ul> </li> </ul> Dmitry Eremin-Solenikov (Lumag) http://gostcrypt.github.io https://github.com/gost-engine/engine/ Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:00 00:25 UD2.218A eu_cybersecurity_act The new EU CyberSecurity Act Or how to prevent the EU from becoming the worlds largest botnet honeypot Security devroom <p>Fibre to the home opens numerous interesting possibilities for both bona-fide and not so bona-fide use cases. Having your espresso machine or refrigerator being part of a multi-million device botnet which is attacking critical infrastructure might not necessarily be your first association when zipping your early morning caffeine fix.</p> <p>Fibre to the home opens numerous interesting possibilities for both bona-fide and not so bona-fide use cases. Having your espresso machine or refrigerator being part of a multi-million device botnet which is attacking critical infrastructure might not necessarily be your first association when zipping your early morning caffeine fix. Not only might this notion be somewhat disruptive for your early morning zen-moment, you might also be held legally accountable for these actions as it is actually your home network participating in an international attack wreaking havoc on, let’s say, the healthcare information system of a close NATO ally. Nowadays there is zero quality control being enforced over internet connected devices in general. But the EU (and US) have decided this somewhat naive approach should come to an end.</p> <p>A new directive (NIS, Directive on the Security of Network and Information Systems) comes into effect. Especially for branches active in the development of internet connected devices with a direct application in the “quality of life improvement” domain, this will be something to look out for: Medical devices Automotive Domotica</p> <p>This new directive includes the ambition of implementing a certification scheme for IT systems and devices, this scheme will be based on the existing ISO 15408 standard:</p> <p>“ISO/IEC 15408-1:2009 establishes the general concepts and principles of IT security evaluation and specifies the general model of evaluation given by various parts of ISO/IEC 15408 which in its entirety is meant to be used as the basis for evaluation of security properties of IT products.”</p> <p>What does this standard encompass? What does open-source and free software have to do with this?</p> <p>Let’s have a closer look in this talk!</p> Hans de Raad (OpenNovations) openSUSE Conference 2018 presentation: Upcoming EU cybersecurity act Video recording (WebM/VP9) Video recording (mp4) Submit feedback 11:30 00:25 UD2.218A performance_core_protocols Tracking users with core Internet protocols Enhancing privacy and performance the Internet Security devroom <p>TLS 1.3, QUIC, and TCP belong to the most important and most often used protocols on the Internet. We will point out how these protocols can be used to track user beyond what is commonly known to be possible. We also present modifications to the protocols for preserving the user's privacy. To further reduce the page load times on the Web, we point out how the layering between DNS, TCP, and TLS is affecting the speed of connection establishment between client-server pairs. Finally, we present modifications to some of those protocols to get us a faster and more privacy-friendly Internet.</p> <p>The download of an average Web site causes around one hundred small transactions from several hosts. Nowadays, the available bandwidth does not present an effective limitation of the page load time anymore. Thus, the design of a faster connection establishment is a promising direction to further improve the convenience of web browsing. To this end, TLS 1.3, QUIC and TCP Fast Open reduce the delay of the connection establishment by requiring the client to store data across several connections.</p> <p>These mechanisms, however, can be abused to stealthily track user's independent of traditional tracking approaches like HTTP Cookies, IP addresses, and browser fingerprinting. In particular, like TLS Session Resumption, QUIC's source-address Token, QUIC's server config, and TCP Fast Open cookies expose tokens which may be used to invade the users' privacy. To investigate the real-world feasibility of these tracking mechanisms, we analysed the configuration of popular Web browsers. Our worrying results indicate that especially via QUIC and TCP Fast Open tracking periods of multiple days are practical.</p> <p>While these protocols lead to faster connection setups, an initial connection establishment requires still at least three round-trip times (1 DNS, 1 TCP, 1 TLS 1.3). The idea of strict layering between those protocols prevents us from achieving further performance gains. In our talk, we will present cross-layer solutions which allow to substantially reduce the number of required round-trip times to establish initial connections on the Web without affecting the core components of each protocol, respectively. To substantiate the feasibility of our presented solutions, we implemented our approach and investigated its performance properties.</p> <p>Please note, that this talk assumes the audience to be familiar with the basic concepts of DNS, TCP, and TLS.</p> Tobias Mueller Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:00 00:25 UD2.218A crypto_pitfalls How to prevent cryptographic pitfalls by design Security devroom <p>Many security vulnerabilities are based on mistakes in integrating cryptographic mechanisms into the application. We argue that this is due to the design of the API of cryptographic libraries, which requires knowledge about cryptographic mechanisms and how to correctly embed them into specific use cases. However, most developers do not possess the required expert knowledge in this area. The lack of expertise in one specialist area is not a bad thing in itself, as developers excel in other areas. Therefore, we argue that the design of APIs of cryptographic libraries have to be substantially improved. We show you how easy it is to make mistakes during the integration of cryptographic mechanisms. We discuss how a few simple and well-known programming techniques can be utilized to make cryptographic APIs more usable for application developers and introduce a free software library which integrates cryptographic functions using an easier API in order to avoid common pitfalls.</p> <p>The improvement of the correct integration of established cryptographic tools is a quite simple but essential step to achieve a higher level of security in general.</p> Maximilian Blochberger Video recording (WebM/VP9) Video recording (mp4) Submit feedback 12:30 00:25 UD2.218A usb_borne_attacks USB borne attacks and usable defense mechanisms Hardening built into the operating system without compromising on usability Security devroom <p>The attack surface of USB is quite large and while disabling USB altogether solves the problem, it creates many other. As do existing protection mechanisms. They suffer from poor usability and missing integration into the operating system. We present our approach to defending against rogue USB devices for a GNOME-based operating system.</p> <p>USB is arguably to most exposed interface of a user's machine. It allows an attacker to interact with pretty much any driver, many of which are of questionable quality. We try to be smart about when to allow new USB devices. First, we try to detect when the user is present, arguing that if the user is not then new USB devices should not work. But it is not that simple, because you might very well want to attach a new keyboard in case yours breaks. Keyboards, however, pose another risk as several attacks have shown. But not all keyboards are equally bad and we propose to promote a harmless keyboard to become dangerous after getting the user's consent. It is not entirely clear yet how to that best, so your feedback and a discussion is certainly welcome!</p> Tobias Mueller Ludovico de Nittis Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:00 00:25 UD2.218A otr4 No evidence of communication and implementing a protocol: Off-the-Record protocol version 4 Version 4 of OTR protocol Security devroom <p>OTRv4 is the newest version of the Off-The-Record protocol. It is a protocol where the newest academic research intertwines with the real-world implementations. This newest version is one where we are asked to revisit our definitions around deniability (online and offline) and how important they are to the world. It is also one where we must ask ourselves around how usable a protocol has to be in order to be used by real-world people. In this talk we will try to start a discussion around the importance of deniable secure communication, how it integrates with the whole security of a system, and how a user will need it for their normal activities.</p> <p>As we know from past revelations, the Internet has become a place where any action is surveilled and recorded. In the light of this, the OTR protocol was created. But it was created long time ago. In the past years, there have been a increased work on cryptographic primitives, privacy and security notions, and how to incorporate them in a usable way. But these thoughts have not been incorporated yet into projects. OTRv4 is the newest version of the Off-The-Record protocol, which tries to incorporate these new ideas. In this talk, we will give an overview around why deniability matters, how it can be incorporated into protocols, how it is used by real-world people, and how to create a protocol that cares about its users.</p> Sofía Celi The protocol specification of OTRv4 The C library of OTRv4 Paper of OTRv4 presented in PETS2018 Presentations slides in IETF Video recording (WebM/VP9) Video recording (mp4) Submit feedback 13:30 00:25 UD2.218A recordflux RecordFlux: Facilitating the Verification of Communication Protocols Security devroom <p>Many security problems have been discovered in communication protocols in the past, examples are:</p> <ul> <li>BlueBorne, a set of security vulnerabilities in the Bluetooth implementation which affect millions of devices</li> <li>Heartbleed, a security bug in the OpenSSL library that lead to exposure of sensitive data</li> <li>CVE-2018-10933, a critical bug in libssh which allows successful authentication without any credentials</li> </ul> <p>Still today many critical issues remain in protocol implementations, as their root causes have not been addressed. Two classes of faults dominate: runtime errors like buffer overflows, and logic errors in protocol state machines. The main reasons for runtime errors is the use of unsafe programming languages. Better alternatives with formal guarantees like Rust, SPARK or Frama-C exist, but re-implementing complex protocols means a lot of effort. Logic errors are caused by the complexity of protocols and imprecise specifications in natural language.</p> <p>RecordFlux is a framework for the secure implementation of communication protocols. From a formal protocol specification written in a domain-specific language the tools generate SPARK code, for which the absence of runtime errors can be proven automatically. In the future RecordFlux will also allow the specification of dynamic protocol semantics and support formal correctness proofs for protocol state machines. In this talk we give an overview of the current state and speak about an upcoming project that uses RecordFlux for a complex real-world application, the compartmentalized implementation of TLS 1.3 for component-based operating systems.</p> Tobias Reiher RecordFlux on GitHub Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 00:25 UD2.218A chipsec CHIPSEC on non-UEFI Platforms Using CHIPSEC to harden firmware against attacks & exploits Security devroom <p>CHIPSEC is a firmware threat assessment tool used to help verify systems meet basic security best practices. The tool’s threat model is based UEFI, so other firmware threat models may cause failures in CHIPSEC modules. This session is a brief overview of the CHIPSEC, limitations of the tool, interpreting failures seen on different firmware implementations, and information on developing new test modules.</p> <p>CHIPSEC is a firmware threat assessment tool used to help verify systems meet basic security best practices. CHIPSEC runs under Microsoft Windows, Linux, Mac OS X, and the UEFI Shell. The tool’s threat model is primarily based on Unified Extensible Firmware Interface (UEFI). However, other firmware may have different threat models that will cause failures in different CHIPSEC modules. This session is a brief overview of the CHIPSEC, limitations of the tool, failures seen on different types of firmware, and information on developing new test modules in Python.</p> Brian Richardson CHIPSEC (github) 2018 OSFC Session Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:30 00:25 UD2.218A base64_not_encryption Base64 is not encryption A better story for Kubernetes Secrets Security devroom <p>Secrets are a key pillar of Kubernetes' security model, used internally (e.g. service accounts) and by users (e.g. API keys), but did you know they are stored in plaintext? That's right, by default all Kubernetes secrets are base64 encoded and stored as plaintext in etcd. Anyone with access to the etcd cluster has access to all your Kubernetes secrets.</p> <p>Thankfully there are better ways. This lecture provides an overview of different techniques for more securely managing secrets in Kubernetes including secrets encryption, KMS plugins, and tools like HashiCorp Vault. Attendees will learn the tradeoffs of each approach to make better decisions on how to secure their Kubernetes clusters.</p> <p>This lecture and discussion outlines the current state of Kubernetes' security with respect to managing and securing Kubernetes Secrets.</p> <p>First, attendees will learn the current state of the world: a default Kubernetes cluster has secrets pretty widely exposed. We will talk briefly about how some cloud providers add additional layers of security, but the default is insecure.</p> <p>Next, attendees will learn about features released in Kubernetes 1.7 to allow for application-layer encryption of secrets. We will discuss the pros and cons of this approach, and walk through same code/live demo of it working in action.</p> <p>Next, attendees will learn about features released in Kubernetes 1.10 to allow for delegated application-layer encryption of secrets to a KMS provider. We will again discuss the pros and cons of this approach, show some code and live demos.</p> <p>Finally, attendees will see an example of a full secrets management on Kubernetes, using the open source HashiCorp Vault tool.</p> <p>Importantly, this talk is <em>not</em> a general security talk - it is specific to Kubernetes secrets. Specifically, there are no plans to discuss cluster-level security, firewall security, ACLs, or RBAC.</p> Seth Vargo Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:00 00:25 UD2.218A falco_container_monitoring What are your users kubectl-ing into your Kubernetes cluster? Security devroom <p>In any Cloud Native architecture, there’s a seemingly endless stream of events that happen at each layer. These events can be used to detect abnormal activity and possible security incidents, as well as providing an audit trail of activity.</p> <p>In this talk, we’ll cover how we extended Falco, the container behavior monitoring tool to ingest events beyond just host system calls, such as Kubernetes audit events. We will also show how to create Falco rules to detect behaviors in these new event streams, eg: a user trying to create a serviceAccount or storing some credentials in a ConfigMap rather than on a Secret. Attendees will gain a deep understanding of Kubernetes audit system, and how to audit and trigger events based on Kubernetes anomalous behavior.</p> Julio Garcia Falco web page Falco github Video recording (WebM/VP9) Video recording (mp4) Submit feedback 15:30 00:25 UD2.218A scale_auditing Scale Your Auditing Events Security devroom <p>The Linux Audit daemon is responsible for writing audit records to the disk, which you can then access with ausearch and aureport. However, it turned out that parsing and centralizing these records is not as easy as you would hope. Elastic's new Auditbeat fixes this by keeping the original configuration, but ships them to a centralized location where you can easily visualize all events. You can also use Auditbeat to detect changes to critical files, like binaries and configuration files, and identify potential security policy violations. This talk shows you what can you do to discover changes, events, and potential security breaches as soon as possible on interactive dashboards. Additionally, we are combining Auditd events with logs, which are security relevant.</p> Philipp Krenn Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:00 00:25 UD2.218A spamassassin Fighting spam for fun and profit the long road to SpamAssassin 4.0 Security devroom <p>Using SpamAssassin at work and loving open source development lead me to improve SpamAssassin and to develop some features. The upcoming release will contain lot of bug fixes and some new interesting and useful features. This talk will be a trip towards the new version and finally to some ideas we have for the future.</p> <p>This talk will be an explanation of some new feature of SpamAssassin and some features some people are using. There will be news about official and unofficial plugins and rules and how to get the best out of SpamAssassin. Some additional services that could be useful for other antispam services will be explained as well.</p> Giovanni Bechis Project Homepage Video recording (WebM/VP9) Video recording (mp4) Submit feedback 16:30 00:25 UD2.218A pkcs11_in_os Consistent PKCS#11 in Operating Systems improving user experience and security in RHEL and Fedora Security devroom <p>During last year, we worked hard to make cryptographic tokens usage consistent across the operating system and to improve its usability, mostly using the means of PKCS#11 URIs. This was done for both administrators and end users, in the end resulting in easier configuration of HSMs and authentication using smart cards and cryptographic tokens.</p> <p>I will outline what we worked on to improve the user experience and support for smart cards, cryptographic tokens and HSMs across the operating system. I will share experience with implementing or improving this support across various applications, libraries and tools, experience with testing them and making sure they work together in Linux distribution. I will focus on the current state in Fedora and RHEL 8 and propose some future steps that we have yet to take.</p> Jakub Jelen Video recording (WebM/VP9) Video recording (mp4) Submit feedback 14:00 02:00 UD2.Corridor keysigning PGP Keysigning Keysigning keysigning <p>The FOSDEM 2019 GPG Keysigning</p> <p>The keysigning event takes place in the corridor on the second level of the U building. There is no fixed end time. Previous editions last for approximately one hour per 100 keys on the list. You must register before the conference to take part. Please bring the printed list, a pen and appropriate form of identification with you the event.</p> <p>Please note that you must register your key a week in advance of the conference.</p> FOSDEM Staff Instructions Submit feedback 10:00 01:00 J.1.106 bof_freedombox FreedomBox Meetup BOFs (Track A - in J.1.106) bof <p>This meetup welcomes all members of the FreedomBox community and anyone who wants to learn more! FreedomBox is a private server system that empowers regular people to host their own internet services, like a VPN, a personal website, file sharing, encrypted messengers, a VoIP server, a metasearch engine, and much more. It is designed to be secure, flexible, and simple. FreedomBox builds freedom into the internet by putting you in control of your activity and data on the net.</p> <p>The FreedomBox software ecosystem is actively developed by a global community of contributors. Though we always welcome new contributors, many of our developers have been working on FreedomBox for years. Their expertise and steady contributions have grown FreedomBox into a flourishing software ecosystem. The community releases new versions of FreedomBox approximately once every two weeks, which usually include patches, new features, and UI updates. At freedombox.org, the latest version of the FreedomBox software is available for download for free. You can also find a video explaining how to set up a FreedomBox on the FreedomBox website, and you can learn more about the non-profit behind the project by going to freedomboxfoundation.org.</p> Danny Haidar FreedomBox Software FreedomBox Foundation Mastodon Twitter Submit feedback 11:00 02:00 J.1.106 bof_replicant Replicant Meetup Meeting for the Replicant community BOFs (Track A - in J.1.106) bof <p>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. This meeting is for everyone interested in the Replicant project (users, developers, devices vendors, etc). Among other things, we will discuss how to improve Replicant and the project's future directions. Everyone's point of view is welcome.</p> Joonas Kylmälä Project website Blog post about this meeting Submit feedback 13:00 01:00 J.1.106 bof_tinygo TinyGo BoF TinyGo compiler for microcontrollers and WASM BOFs (Track A - in J.1.106) bof <p>TinyGo is an exciting new compiler that brings the Go programming language to microcontrollers and WebAssembly. Come join us in mapping out the future roadmap and hacking on this awesome new project.</p> <p>TinyGo is an exciting new compiler that brings the Go programming language to microcontrollers and WebAssembly. Come join us in mapping out the future roadmap and hacking on this awesome new project.</p> Ron Evans Submit feedback 14:00 01:00 J.1.106 bof_sr_ht sr.ht meetup sr.ht users and devs BOFs (Track A - in J.1.106) bof <p>No description provided yet.</p> ddevault Submit feedback 15:00 01:00 J.1.106 bof_sway_wlroots sway/wlroots meetup BOFs (Track A - in J.1.106) bof <p>A few sway/wlroots devs will be there, and we'll release sway-1.0-rc1!</p> emersion Submit feedback 16:00 01:00 J.1.106 bof_openhmd OpenHMD Community meeting Open Source VR driver development, reverse engineering and community gathering of OpenHMD. BOFs (Track A - in J.1.106) bof <p>Gathering for the OpenHMD open source AR/VR community.</p> <p>We have been working on a BOOST licensed driver for AR/VR/MR hardware for platform and hardware independent use. During this BoF session we will go over the current state of Open Source VR, go over the progress we have made, and have open discussion about VR and Open Source. In our 2017 session, we even hacked together basic camera support for the Oculus CV1, have fixed up our then recent Sony PSVR driver and made plans and collaborations with other Open Source developers.</p> <p>If you are interested in this field, develop games/engines, have experience with reverse engineering (USB), like Computer Vision or DSP logic, please come and hang out!</p> TheOnlyJoey Website Github Twitter Submit feedback