FOSDEM 2015ULB (Université Libre de Bruxelles)Brussels2015-01-312015-02-01209:00:0000:05:0009:3000:25Jansonkeynotes_welcomeWelcome to FOSDEM 2015keynote<p>FOSDEM welcome and opening talk.</p><p>Welcome to FOSDEM 2015!</p>FOSDEM Staff10:0000:50Jansonidentity_crisisIdentity Crisis: Are we who we say we are? keynote<p>Karen Sandler, Executive Director of the Software Freedom Conservancy, will discuss the peculiar tension in the intersection of free and open source software and corporate interest. Working in free software often triggers a complicated set of allegiances. When tricky situations arise how do developers decide what their priorities are? As a community how do you know whether a contributor is advocated the best for the project of the best for their employer? How much can governance help? And at the end of the day, how do the ideological components to these projects really play out? And how should they?</p><p>This is a very confusing area in free and open source software communities. I will use specific examples from a few different free software communities to illustrate the current state of ambiguity. This presentation will shed light on the situation and propose proactive solutions.</p>Karen Sandler11:0000:50Jansonwhat_is_wrong_with_operating_systemsWhat is wrong with Operating Systems(and how do we make things better)keynote<p>The talk will be a thought-provoking exploration of operating systems and the software/hardware stack. It will be a high-flying tale of low-level gore, and is intended for everyone with an understanding of programming and/or software systems.</p><p>The focus of the talk is in core operating system architecture. While that is sometimes seen as a highly technical topic, the talk will put the subject into common terms to disband the illusion of magic, and to give the audience an idea of what the purpose of the OS is in 2015 and why they should care beyond just having one installed.</p>
<p>Some of the subjects that the talk will graze upon include:</p>
<ul>
<li>the need for an operating system (or lack thereof)</li>
<li>historical perspective and what has actually changed since time immemorial</li>
<li>hardware/software interface</li>
<li>userspace is the new kernelspace (or is it?)</li>
<li>why actually good ideas fail</li>
</ul>
<p>Every discussed subject will not be backed by experimental evidence, nor does the presenter claim that all insights are original. The intent is to raise awareness of good ideas so that they can be implemented more widely, and to raise awareness of bad ideas so that they can be unimplemented more widely.</p>Antti Kantee12:0000:50Jansonautomating_attributionAutomating AttributionGiving credit where credit is duemaintrack<p>From blame logs to authors signing their names on their paintings; everyone appreciates and deserves credit for what they do. This has been codified in open licenses such as those from Creative Commons which put attribution as one of the requirements for re-use. Over the last two years, a number of libraries and tools have been developed to make attribution easier and seamless, and this talk demonstrates how they all fit together, how you can use them in your programs, and how a browser plugin can help you both find and attribute openly licensed works.</p><p>Commons Machinery is an initiative supported by the Shuttleworth Foundation to give some much needed attention to metadata support for creative works. First and foremost, the project has worked with images and metadata standards for images. The software developed include a catalog of openly licensed creative works, a browser plugin interacting with that catalog, and several libraries to support the managing of metadata for creative works. In total, this talk will skim across the following technologies and tools:</p>
<ul>
<li>The Catalog - a free software backend for metadata storage, currently in production and seeded with metadata information about all openly licensed works from Wikimedia Commons, as well as other collections. The catalog API supports querying for images by URL or by a perceptual hash that will help you find images even if they've been resized.</li>
<li>Blockhash - a JavaScript, Python and C library and utility to calculate basic perceptual hashes of images, with particular emphasis on verbatim reuse scenarios. This means that images that have been rescaled (sometimes heavily) or changed format, should result in identical or near-identical hashes, whereas images that have been modified to create derivative works should result in more different hashes.</li>
<li>Elog.io - a Firefox and Chromium plugin that can query the Catalog for information about images to determine if they're openly licensed or not, and show you which images on a web page are openly licensed, as well as give you source links and a way to automatically attribute those images when you re-use them.</li>
<li>hmsearch - A C++ implementation (with Node and Python interface) of hamming distance algorithm HmSearch using Kyoto Cabinet, used in the Catalog to search for hashes which are nearly identical.</li>
<li>libgetmetadata - a library to retrieve metadata about images based on their URL</li>
<li>libcredit - formats appropriate credit statements from an RDF graph with metadata</li>
</ul>
Jonas Öberg13:0000:50Jansona_new_version_of_firefox_is_availableA new version of Firefox is availableReleasing Quality Firefox Productsmaintrack<p>Mozilla Firefox is a Web Browser. The red panda just turned 10.
For the last 4 years, we have been releasing a major release every 6 weeks. During this talk, we will explain how we have been able to reach this goal.</p><p>Releasing software is hard. Doing it every 6 weeks is harder, especially in an environment like a Web browser in which there are constant evolutions and changes.
We will explain how we have been able to reach a high quality level on a software complex as an operating system while keeping frozen deadlines.
We will present our workflow, our tools and our organization to reach these goals.</p>Sylvestre LedruLukas Blakk14:0000:50Jansonbuilding_high_performance_language_implementationsBuilding High-Performance Language Implementations With Low Effortmaintrack<p>This talk shows how languages can be implemented as self-optimizing interpreters, and how Truffle or RPython go about to just-in-time compile these interpreters to efficient native code.</p><p>Programming languages are never perfect, so people start building
domain-specific languages to be able to solve their problems more easily.
However, custom languages are often slow, or take enormous amounts of effort to
be made fast by building custom compilers or virtual machines.</p>
<p>With the notion of self-optimizing interpreters, researchers proposed a way to
implement languages easily and generate a JIT compiler from a simple
interpreter. We explore the idea and experiment with it on top of RPython (of
PyPy fame) with its meta-tracing JIT compiler, as well as Truffle, the JVM
framework of Oracle Labs for self-optimizing interpreters.</p>
<p>In this talk, we show how a simple interpreter can reach the same order of
magnitude of performance as the highly optimizing JVM for Java. We discuss the
implementation on top of RPython as well as on top of Java with Truffle so that
you can start right away, independent of whether you prefer the Python or JVM
ecosystem.</p>
<p>While our own experiments focus on SOM, a little Smalltalk variant to keep
things simple, other people have used this approach to improve peek performance
of JRuby, or build languages such as JavaScript, R, and Python 3.</p>Stefan Marr
SOM Smalltalk homepage
Paper on self-optimzing interpreters
One VM to Rule Them All, a paper on using partial evaluation to compile self-optimizing interpreters
Are We There Yet? A Paper on first experiments with RPython and Truffle
15:0000:50Jansonigprof_the_ignominous_profilerIgProfThe Ignominous Profilermaintrack<p>IgProf is a GPL, general purpose, cross platform (x86_64, x86, ARMv7-A, ARM64/AArch64), memory and performance profiling tool originally developed 10 years ago in the context of LHC experiments at CERN (*), to enable optimisation of simulation and data acquisition software. It provides detailed, call-stack level, information on where time / energy is spent and memory allocations happen using a variety of techniques varying from dynamic instrumentation to sampled profiling. While not dissimilar from other similar softwares like Google perftools it was specially tailored to profile extremely large C++ applications comprising millions lines of codes, loading thousands of dynamic libraries and with a very high memory allocation frequency. In addition, ease-of-use and the ability to easily share performance profiles between distributed collaborators are important aspects to enable use by a large community of scientists with varying software development skills.</p><p>We present our experience about profiling and improving performance of large applications, discuss similarities and differences with other similar tools and show a few of the new features we have been working on lately, in particular ARM64 support and energy profiling via a PAPI add on. We also show how we gave back to the opensource community by providing patches to libunwind for both x86 and ARM.</p>
<p>(*) CMS is one of the flagship experiments at CERN, a collaboration of over 4000 researchers distributed in more than 100 institutes around the world. They use a distributed computing architecture consisting of more than 100K x86-64 cores to answer questions about the origin of the universe and the structure of matter. Given the scale of the computational resources, software performance optimization is a critical need.</p>Giulio Eulisse
IgProf Homepage
FOSDEM 2015 Video
16:0000:50JansonsuperoptimizationSuperoptimizationHow fast can your code go?maintrack<p>Modern compiler optimization can take almost any code and produce a reasonably efficient binary at the end. However compiler "optimization" doesn't make your code "optimal", just better.</p>
<p>In contrast, superoptimization can produce perfect code - the fastest, the smallest or the most energy efficient code. The technique, first introduced in the late 80s found in some cases it could do 25% better than the best assembly programmer, and 40% better than the best compiler at the time.</p>
<p>Free software has always played a central role in superoptimization research, with the GNU Superoptimizer being one of the very first tools constructed.</p>
<p>However there is a downside. Superoptimization today is incredibly demanding of compute time, so currently it is limited to short instruction sequences. At present it is most valuable in optimizing code hotspots and key library routines, and can also be a valuable aid to the compiler writer for peephole optimization. Recent research has developed new techniques that can make superoptimization more applicable to general code.</p>
<p>In this talk I will introduce superoptimization and give some examples of the weird and wonderfully short sequences of code it produces. I will introduce the GNU superoptimizer and show how it is used, including some of the recent improvements I have contributed. The final part of my talk will look at the latest research including machine learning and constraint solving, and show how in future superoptimizers may be able to optimize much larger programs.</p>James Pallister
http://www.superoptimization.org
FOSDEM 2015 Video
17:0000:50Jansonubiquitous_performance_analysis_and_system_introspectionUbiquitous Performance Analysis and System IntrospectionAn introduction to Performance Co-Pilot and Systemtapmaintrack<p>Performance Co-Pilot is a highly adaptable and established toolkit for those
interested in examining the details of system performance. Similarly,
Systemtap is a powerful tool for digging deep into the innards of a program.
This presentation will go over the basics of the tools, recent developments,
and examples.</p><p>Performance Co-Pilot is a highly adaptable and established toolkit for those
interested in examining the details of system performance. When used in tandem
with Systemtap, an introspection tool, both developers and system administrators
are able to progress from a high level view of the current performance, to detailed
information about a specific subsystem or program. This presentation will go
over the basics of the tools, recent developments, and examples.</p>Lukas Berk
FOSDEM 2015 Video
12:0000:50K.1.105 (La Fontaine)gps_watchA GPS watch made of free software and hardwaremaintrack<p>F*watch is an infinitely hackable GPS watch with many sensors
based on a 100% Free design. Everything is Free, from the PCB and watch
housing design to the software stack. Moreover, only Free software tools
have been used during the development.</p>
<p>F*watch. Why should your watch be different?</p>
<p>The talk describes the development process and shows a first
prototype, along with performance measurements and future plans.</p>Federico VagaMatthieu Cattin
F*Watch wiki
FOSDEM 2015 Video
13:0000:50K.1.105 (La Fontaine)lowrisclowRISCThe path to an open-source SoCmaintrack<p>The <a href="http://www.lowrisc.org">lowRISC</a> project was established in the summer of 2014 with the aim of producing a complete open-source System-on-Chip in volume, with low-cost development boards. Alex Bradbury, one of the co-founders of the project will discuss the progress to date and the path to the first test chip. lowRISC implements the open RISC-V instruction set architecture and is exploring ideas on improving security via tagged memory and increasing flexibility through the addition of RISC-V 'Minion' cores to implement soft peripherals. This talk will discuss the potential benefits of a fully open-source hardware ecosystem, the challenges of getting to first silicon, and how the open source community at large can help.</p><p>There has been an explosion in interest in low-cost hardware platforms in recent years with many (e.g. Arduino and BeagleBone Black) having their schematics and PCB layout released under an open hardware license. These platforms are supported by open-source toolchains, applications, and libraries yet the processor this software targets remains closed. We believe there is an opportunity for open source processor and SoC designs to influence industry in a way similar to the successes we've seen in open source software - to help increase the pace of change of development, more easily move ideas from research to real world usage, and to lower the barrier of entry to the market.</p>
<p>Two features we are focusing on for our first test chip are <a href="http://www.lowrisc.org/docs/memo-2014-001-tagged-memory-and-minion-cores/">tagged memory and 'minion' cores</a>. Tagged memory has applications in security, to prevent control-flow hijacking attacks or for debug or performance monitoring. The 'minions' we propose are small cores which also implement the RISC-V instruction set, used for implementation of I/O protocols in software, secure isolated execution, or many other potential uses. This talk will describe the current status of the project, our planned path to production silicon, and how the wider open source community can get involved.</p>Alex Bradbury
lowRISC homepage
lowRISC memo: tagged memory and minion cores
14:0000:50K.1.105 (La Fontaine)beriBERIAn open RISC softcore for research and experimentationmaintrack<p>BERI (the Bluespec Extensible RISC Implementation) is a softcore processor jointly developed by SRI International and The University of Cambridge. It implements a superset of the MIPS III ISA in Bluespec, a high-level HDL and supports a fully open source, permissively licensed, software stack comprising the FreeBSD operating system and the LLVM compiler suite. This talk will describe the design of the BERI processor and its use.</p><p>BERI was created to facilitate experimentation at the boundaries between CPU architecture, operating systems, and programming languages. It runs in Altera and Xilinx FPGAs, including the NetFPGA 10G board. At 100MHz, it is fast enough to use as a real computer (albeit a fairly slow one). This allows</p>
<p>There is a close tie between the history of UNIX-like systems and academic use. The original AT&T UNIX was distributed cheaply to universities and so formed the basis of both research projects and operating systems courses for a long time. MINIX, originally free for non-commercial use and now BSD licensed, was written primarily as a platform for teaching and research use and the ties between BSD and UCB speak for themselves. The open source community has benefitted enormously from people passing through university for almost three decades and studying UNIX and related systems.</p>
<p>Compiler development has seen a similar renaissance in recent years, primarily spurred by LLVM, which provides a set of libraries that are easy to use and to modify for building compilers for new languages and new platforms.</p>
<p>The one missing part of the puzzle, so far, has been the hardware. Although we have a plethora of commodity CPUs and even a number of open source designs, these have not typically well integrated into an open source stack.</p>
<p>This talk will discuss the BERI softcore, jointly developed by The University of Cambridge and SRI International and the associated open source software stack. BERI, the Bluespec Extensible RISC Implementation, is a 64-bit MIPS implementation in Bluespec, a high-level hardware description language. It implements the instruction set that debuted in the MIPS R4000 core in 1991, and therefore a set that is free of patents owing to its age. In spite of this, it is a relatively modern 64-bit architecture and is well supported by open source systems. The FreeBSD port to BERI required minimal changes, which were shipped as part of the FreeBSD 10.0 release, and runs unmodified userland 64-bit MIPS code. BERI can run in simulation at a speed acceptable for testing but not for general usage or in an FPGA at 100MHz. The BERI design supports multiple cores on a single FPGA and work is ongoing to support multicore across boards connected with a low-latency interconnect.</p>
<p>On top of this runs FreeBSD, a permissively licensed UNIX variant, and the LLVM compiler suite. This provides a solid platform for experimental use, as users can modify any aspect of the system, from the instruction set upwards. It is relatively simple, for example, to add a new set of instructions as a coprocessor to BERI, add code to the operating system so that the state is preserved across context switches, and add code generation support in LLVM.</p>
<p>BERI provides a generic coprocessor interface, which makes it very easy to extend the functionality. CHERI, Capability Hardware Enhanced RISC Instructions, is a BERI-based CPU that adds a coprocessor providing a capability-oriented memory model. This demonstrates the extensibility of the BERI stack: the CPU, operating system, and compiler have all been modified to provide support for new functionality.</p>Jonathan Woodruff
BERI web site
FOSDEM 2015 Video
15:0000:50K.1.105 (La Fontaine)freecadFreeCADa hackable design platformmaintrack<p>FreeCAD is a general purpose, open-source, multiplatform parametric 3D modeling application, geared mainly for product design, in other words anything that is meant to be built in the real world. The project started around 2002, and is today entering a a big momentum with the blossoming of home 3D printing and manufacturing, and thanks to is extreme hackability.</p><p>FreeCAD can be described as a big, modular "collage" between many heavyweight open-source libraries and projects, such as OpenCasCade (our geometry engine), Coin3D (an implementation of OpenInventor, which drives the 3D display), Qt and Python. But it can also, more accurately, be called a "python beast". With a bit of knowledge of the python language, its user is given the powers of a God.</p>
<p>Although programmed mainly in C++, python is everywhere in FreeCAD: It acts as a "glue" between the "core" part of the application, which handles all the heavy geometric calculations, and the Qt graphical interface. This offers a wealth of interesting features such as the separation of FreeCAD into a non-GUI (server mode) part and a GUI part, possibilities to record, tweak, drive, or interact with the python flow in many ways, and much more. Each of the main libraries used in FreeCAD also has its own python bindings, all usable inside FreeCAD, all connecting to the running application and able to operate on its contents, its objects, its interface, its 3D display.</p>
<p>Python code in FreeCAD is also constantly exposed to the user, turning the application very pedagogic. It is almost impossible to work with it without learning at least a bit of python. Many have tried.</p>
<p>This has formed a highly technically knowledgeable community around FreeCAD, where the differences between developer and user have blurred.</p>
<p>This talk will try to convey some of the amazing social/technical experience we have building this tool that is made to build.</p>Yorik van Havre
The FreeCAD project's homepage
FOSDEM 2015 Video
16:0000:50K.1.105 (La Fontaine)stretching_out_for_trustworthy_reproducible_buildsStretching out for trustworthy reproducible buildsThe status of reproducing byte-for-byte identical binary packages from a given sourcemaintrack<p>With free software, anyone can inspect the source code for malicious flaws. But Debian provide
binary packages to its users. The idea of “deterministic” or “reproducible” builds is to empower anyone to
verify that no flaws have been introduced during the build process by reproducing byte-for-byte identical
binary packages from a given source.</p>
<p>This talk will explain the current status of the Debian Reproducible Builds project, how this is relevant for the complete free software eco system and how you can contribute.</p><p>see https://wiki.debian.org/ReproducibleBuilds and https://reproducible.debian.net</p>Holger LevsenJérémy Bobbio (Lunar)
about Reproducible Builds of Debian
shiny graphs about the current state
FOSDEM 2015 interview
FOSDEM 2015 Video
12:5500:05H.2215 (Ferrer)lightning_talks_welcomeLightning Talks Welcomelightningtalk<p>Welcome and Introduction to the FOSDEM 2015 Lightning Talks.</p>Tias GunsAlasdair Kergon13:0000:15H.2215 (Ferrer)developing_fosdem_companionDeveloping FOSDEM CompanionHow to build a modern, user-friendly schedule app for Androidlightningtalk<p>FOSDEM Companion is a mobile schedule app for Android, first released for FOSDEM 2014. Its code is open source and designed as a reference implementation for this kind of application. This session will cover the architecture of the app and its building blocks, the motivation behind its features, what's new in the 2015 version and the best practices for designing a modern Android application.</p>Christophe Beyls
GitHub project page
Online slides
13:2000:15H.2215 (Ferrer)ultra_web_serverUltra - Smallest. Web server. Evar.lightningtalk<p>This talk introduces a brand new web server - Ultra. With a binary at just 51K it's small, fast, and encompasses an all-in-memory web server with an in-built NoSQL datastore, a data processing language, SSI, multiple configurations, and logging. If you want to learn basic networking programming, its source is small enough for you to learn from. The talk covers the basic architecture and approach in keeping a small footprint, and breaks down the source into easily understandable blocks.</p><p>The talk covers the history and development of a unique project - one that tells a classic open source story about a developer scratching an itch, and solving a problem he didn't have! It covers the code from 47 lines of C, to 1500 of C++. It also details how the processing language was governed by code re-use, and how the data store uses convention over configuration to work efficiently. It's one of the few projects that is small enough to do serious work, but small enough to be explained line-by-line in a talk! (Although it won't be that direct!)</p>Steven Goodwin
Ultra - main page
13:4000:15H.2215 (Ferrer)how_adblockers_workHow adblockers worklightningtalk<p>There is an increase in popularity of adblockers. Adblock Plus is the oldest and most popular one, with over 50M users. But most people still don't know how an adblocker actually works. In this talk I will attempt to explain how adblocking works, at least how we have implemented it in Adblock Plus.</p>Sebastian Noack14:0000:15H.2215 (Ferrer)openui5_introductionA Whirlwind Introduction to OpenUI5The Responsive, Enterprise Strength HTML5 Toolkitlightningtalk<p>A whirlwind introductory tour of OpenUI5, the open source, responsive, enterprise strength HTML5 toolkit from SAP.</p><p>SAP open sourced their HTML5 toolkit that is used as the foundation for all SAP's present and planned UI endeavours. It's responsive, enterprise strength, has a ton of features including full MVC support, a powerful data binding system, declarative view mechanics, support for internationalisation, right-to-left and accessibility right out of the box. And it's great to use, too.</p>
<p>This lightning talk will take you on a whirlwind tour of OpenUI5: no slides, just code and activity in the Chrome Developer Tools console.</p>DJ Adams
OpenUI5 Home
OpenUI5 Sources on Github
14:2000:15H.2215 (Ferrer)all_about_hackAll about Hack in 15 minutesWhy you should consider Hack over PHPlightningtalk<p>Hack is a new programming language from Facebook. It is the natural evolution of PHP. This talk will cover some of the problems with PHP, the benefits of a compiled and statically typed language and then introduce Hack and HHVM as a solution.
Half way into the talk I will give a crash course in Hack and explain its perks and syntactic sugar. At the end I'll give some advice on how and where to get started testing Hack.</p>Tobias Nyholm
Website
14:4000:15H.2215 (Ferrer)cockroachdbCockroachDBtowards an Open-Source Spannerlightningtalk<h2>CockroachDB a distributed database written in Go.</h2>
<p>Many NoSQL databases come with a focus on performance, availability and scalability, sacrificing strong consistency guarantees along the way. In effect, this shifts the burden of providing consistency to the application, and often results in complex and error-prone application logic.
Just a few years ago, an intense effort by Google resulted in Spanner - a globally distributed, replicated datastore that puts transactions back where they belong: right into the heart of the database.</p>
<p>CockroachDB is a grass-roots effort to bring to the table the guarantees of Spanner (and more) in an open source scalable database that is easy to deploy and, despite the name, quite attractive to have around.</p>Tobias Schottdorf
website
15:0000:15H.2215 (Ferrer)gcomprisGCompris goes Qt Quick with the help of KDEGCompris is educational software for children 2 to 10lightningtalk<p>GCompris is a high quality educational software suite comprising of numerous activities for children aged 2 to 10. It was created in 2000 using the GTK+ graphical toolkit. It is available on different platforms, GNU/Linux, and the proprietary platforms MacOSX and Windows.</p>
<p>Willing to address the large number of tablet users and to enhance the user experience the choice was made in January 2014 to rewrite GCompris in Qt Quick.</p><p>The presentation will address the following topic:</p>
<ul>
<li>Project goal and history</li>
<li>Community and commercial. Starting in 2003 a Windows version was created and is distributed under a commercial model while being still Free Software. We will see how and why we decided to do so</li>
<li>Why we selected Qt Quick. This development toolkit is based on Qt and let the developer create dynamic user interface that can run on desktop and mobile platforms</li>
<li>Why we became a KDE project. GCompris has always been a community project, leaving the GTK+ toolkit it does not make sense to develop the new version under the Gnome umbrella</li>
<li>State of the Qt Quick port</li>
</ul>
Bruno Coudoin
GCompris main site
15:2000:15H.2215 (Ferrer)requirements_bazaarRequirements BazaarHow to encourage users to tell us what they really need!lightningtalk<p>In this Lightning Talk we want to present “Requirements Bazaar 2.0” that aims to be a social continuous innovation platform to bring developers and end-users together. In years of research we have developed and actually operated an open innovation platform for gathering requirements for prototypes in large international academic projects. The last version of the current product is available under http://requirements-bazaar.org . End-users can enter their requirements by providing short descriptions including user stories, screenshots and other images. The requirements can then be shared amongst its users. On the other side of the chain, developers may take up ideas and transfer the accepted requirements to an issue system like JIRA.</p>
<p>Over the last years it turned out that people want more lightweight and mobile-friendly tools; we found the old monolithic system to be very hard to maintain to add new features. Therefore we are currently redeveloping it from scratch integrating many ideas from our users and incorporating new research findings. We are further driven by a mobile-first approach to support a wide variety of devices. We additionally want to support various social features like sharing on social networks or blogs and allowing discussions and rating amongst end-users and developers.</p>
<p>At FOSDEM we would like to encourage open source developers in rethinking the way requirements are currently gathered from the crowd. How do we want to collect new software ideas or simply feature requests from our users. Will it really be through feedback forms in our apps’ “About” menu? Do our users really think in terms of issues like we developers do? How can gamification be used to reward actual end-users of software? We hope Requirements Bazaar can answer these questions and fill the gap!</p><p>The main backend part can be found at
https://github.com/rwth-acis/RequirementsBazaar
while the Web frontend is hosted at
https://github.com/rwth-acis/RequirementsBazaar-WebFrontend</p>
<p>We use a Java backend based on microservices and an AngularJS/Polymer based Web frontend.</p>István Koren
Docker Container of nightly build
Service on GitHub
Web Frontend on GitHub
15:4000:15H.2215 (Ferrer)jitsi_videobridgeScalable Video Conferencing with Jitsi VideobridgeUsing Simulcast, DataChannels and adaptive streaming for Free scalable conferencing lightningtalk<p>The talk will describe the problems of scalability for libre video conferencing and how they are being addressed by the new video routing architectures. It is gong to go over optimization techniques such as Last N and Simulcast. The presentation is going to then go over the Jitsi Videobridge FLOSS video router and talk about how developers can use it in their video conferencing applications.</p><p>Until recently high quality, multi-party video conferencing has been an ever elusive dream to many of us. While it has existed for tens of years already, it has always been been prohibitively expensive and a luxury that only rich corporations could afford.</p>
<p>Readily available broadband, has opened up new horizons in the field however. The traditional video mixing servers (MCUs) are becoming irrelevant today and are being replaced by infinitely more scalable video routers, also known as Selective Forwarding Units (SFUs).</p>
<p>Google Hangouts and the underlying Vidyo technology they used, have been one of the more popular examples in the past couple of years. Early 2014, jitsi.org also released Jitsi Videobridge, an open source video router (SFU) that is compatible with WebRTC and that allows FLOSS developers around the world to start building scalable video conferencing applications.</p>
<p>This lecture is going to go over some of the more important concepts of scalable video conferencing, such as selective routing, simulcasting and layered video, RTCP termination and others.</p>
<p>We are then going to look into the privacy issues related to video conferencing today, discuss the possibilities for truly confidential multi-party calls and the interesting impact, both positive and negative, that WebRTC has on the possible solutions.</p>Emil Ivov16:0000:15H.2215 (Ferrer)xmpp_and_androidXMPP and AndroidCreating stable, reliable, push-enabled and battery friendly XMPP connections on Androidlightningtalk<p>Using XMPP on resource constraint systems, like Android devices that are surrounded by a hostile mobile environment, imposes many challenges. But with the right measures a stable, reliable, push-enabled and battery friendly connection can be achieved. This talk will present the required techniques using Smack, an open source XMPP client library written in Java. One outstanding property of Smack is that it's a multi-runtime library, i.e. it is able to run on Java SE runtimes <em>and</em> on Android.</p><p>XMPP on Android is challenging. But with Smack there exists an open source XMPP client library written in Java, that is able to run natively on Java SE runtime environments and on Android. Smack is a lightweight, resource friendly and highly modular library. Ideal for the deployment in low-end devices. But the mobile usage scenario of Android devices poses another obstacle towards a stable and reliable (mobile) XMPP connection. Data connectivity changes, caused for example when a GSM ↔ WiFi switch happens, and high latency, are just some effects of such a mobile environment. With XEP-198 Stream Management, XMPP provides the ideal extension to tackle those issues. Using XEP-198 Stream Management enabled connections, data connectivity changes become transparent to the application.</p>
<p>Another obstacle imposed by Android is caused by the device entering the so called "deep sleep" mode. While incoming radio activity usually causes the device to leave the sleep, it's not guaranteed that it will not re-enter the sleep before the XMPP stanza has been fully processed. There are some forms of possible mitigations conceivable. But which are good? And which are just snake oil?</p>
<p>I'll start with a short introduction of XMPP and Smack and explain how Smack is able to target Android and Java SE runtimes. The rest of the talk will consist of best practices using Smack on Android and how Smack can be used for stable, reliable XMPP connections and push notifications.</p>Florian Schmaus
http://www.igniterealtime.org/projects/smack/
https://github.com/flowdalic/asmack
https://github.com/igniterealtime/Smack
16:2000:15H.2215 (Ferrer)matrixMatrix.org - a new open standard for distributed, real-time communicationSolving the fragmented online communication space with an open standard lightningtalk<p>Matrix is a new, pragmatic HTTP-based clean-room alternative to XMPP, SIP, IRC and other messaging/VoIP technologies. It consists of an open standard defining RESTful HTTP APIs and open source, Apache-licensed reference implementations for creating and running your own real-time communication infrastructure.</p>
<p>Our hope is to make VoIP/IM as universal and interoperable as email, and build an open ecosystem that people can use for a multitude of purposes.</p><p>We believe that real-time communication is fundamentally broken and fragmented on today's internet. XMPP and SIP tried to solve this, but haven't taken off as they might have done, leaving the internet dominated by closed proprietary islands of communication like WhatsApp, Facebook, Hangouts, etc.</p>
<p>Enter Matrix: a set of pragmatic RESTful HTTP JSON APIs as an open standard, intended to be implemented on a wide range of servers, services and clients, letting developers build messaging and VoIP functionality on top of the Matrix ecosystem rather than adding yet another closed/proprietary solution.</p>
<p>In Matrix, every user runs one or more Matrix clients, which connect through to a Matrix "homeserver" which stores all their personal chat history and user account information - much as a mail client connects through to an IMAP/SMTP server. Just like email, you can either run your own Matrix homeserver, which means you own and control your own communications and history - or you can use one hosted by someone else (e.g. matrix.org) - there is no single point of control or mandatory service provider in Matrix. In fact, there is no single point of control over conversations in Matrix at all - conversation history is a first class citizen, with room state replicated over all participating servers, avoiding single-points of failure or control as you get in XMPP MUCs.</p>
<p>In the end, we hope Matrix will crack the problem of a widely successful open federated platform for communication on the internet, and provide a worthy alternative to the PSTN. You should be able to use your favourite app to communicate via Matrix - and your recipients should be able to reply through the app of their choice!</p>Oddvar LovaasMatthew Hodgson
Matrix.org
16:4000:15H.2215 (Ferrer)yattaYjs: A Real-Time Framework for Peer-to-peer Group Editing on Arbitrary Data TypesEnabling real-time collaboration on the Weblightningtalk<p>Yjs is an open source framework that can be used to collaborate in real-time on arbitrary data types. It is based on a new operational transformation-like approach that can be used in peer-to-peer settings on the Web, using standard communication protocols such as WebRTC or XMPP. Part of the shared editing projects family (e.g. ShareJs, OpenCoweb, etc.), Yjs currently implements support for text, XML and JSON and proved to be very fast and reliable.
In this lightning talk we introduce the concepts and features of the Yjs framework and discuss how it can be leveraged to design the next generation of peer-to-peer shared editing tools. We conclude the talk with a short demo that highlights the capabilities of the framework.</p><p>Yjs solves many of the current issues for concurrency control and consistency maintenance approaches in collaborative software. In order to achieve this, we created a new approach for optimistic concurrency control, which was formally proven to be reliable and to output the best time complexity (compared to existing dedicated related literature). The approach was designed to support real-time shared editing on linear, tree and graph data structures. A short part of this lightning talk aims to present the core concepts of our approach.</p>
<p>Designed to work on both peer-to-peer and client-server architectures, Yjs can be easily embedded in Web applications in order to foster collaboration. Developed in Javascript, the framework outputs very good scaling capabilities in the number of users and operations in test environments. Yjs currently supports text, JSON and XML data types and was tested using WebRTC and XMPP as an underlying communication protocol.</p>
<p>In this lightning talk, the Yjs framework will be presented to the wider OS community for the first time. We consider our framework to be developer friendly, but given the opportunity of a lightning talk, we would like to invite FOSDEM developers to use Yjs and share with us their experience. Ideally we aim to establish connections and potential collaborations, in order to improve our open source project.</p>Petru NicolaescuKevin Jahns
Yjs Framework
17:0000:15H.2215 (Ferrer)open_source_voip_phoneBuilding an Open Source VoIP hardware phonelightningtalk<p>Introduction to OP^2 Project, which provides a framework for implementing SIP hardware phones.</p><p>Project OP^2 started as a self-learning experience to see if the features present in SIP desktop clients could be brought to a hardware device. Traditional VoIP hardware phones are very closed systems, and Project OP^2 was designed with openness and flexibility in mind. The first prototypes were built using a RaspberryPi as the hardware platform.</p>Saúl Ibarra Corretgé
Project website
Repository
17:2000:15H.2215 (Ferrer)codebendercodebender: Arduino programing, onlineLearn how to program an Arduino faster and easier, online, using codebenderlightningtalk<p>Arduino is the favorite programming platform for embedded hardware, especially for beginners, but also for more advanced users who take advantage of its ease of use. We will show how to program more effectively, easily, and in collaboration with others. By using codebender, you can code, compile, and test Arduino code online, take advantage of the ~500 included libraries, and use code available by the community.</p>
<p>We will show how someone can use Arduino with the power of codebender.</p>Vasileios Georgitzikis
codebender website
17:4000:15H.2215 (Ferrer)rizzlyRizzly: Event Driven Microcontroller ProgrammingA new programming language for event driven programming of 8 bit microcontroller.lightningtalk<p>I present Rizzly, a programming language and compiler I am working on. It is designed for the event driven programming of the smallest 8 bit micro controllers.</p>
<p>In this talk I first present the concepts and some interesting details of Rizzly.
Although one can already use Rizzly, there are several open tasks. In the second part I will address those and present ideas how to solve those.</p>Urs Fässler
Description of Rizzly
Source of Rizzly
Presentation of Rizzly at LinuxDay (German)
18:0000:15H.2215 (Ferrer)crazyfile_nano_quadcopterCrazyflie Nano QuadcopterA flying open source PCBlightningtalk<p>In 2009 three Swedish engineers invented a small quadcopter that started with a simple idea: get an electronic board (PCB) to fly.
They created the "Crazyflie Nano Quadcopter" which weighs only 19g and fits in the palm of your hand. It can be controlled from various devices, including PC, Android or iOS devices, Raspberry Pi or a R/C remote.
While the main client has been written in Python, it has also been ported to Java, C, JavaScript.
Since the beginning of 2013 the hardware can be bought from http://www.seeedstudio.com, but the schematics for the PCB and the firmware/host source code are also available on their website/Github account.
Due to the low cost for the hardware and the open source approach, the Crazyflie has been used in different private and academic science and research projects around the world.</p>Frederic Gurr
Crazyflie website
Crazyflie Github repository
Crazyflie Wiki
18:2000:15H.2215 (Ferrer)llvmlinuxLLVMLinuxThe advantages of using clang for the kernellightningtalk<p>Being able to build the kernel with clang opens up the possibility of using a range of llvm related tools with the kernel code. This talk will introduce a number of the possibilities.</p>Behan Webster18:4000:15H.2215 (Ferrer)dtracePretty-printing kernel data structuresReusing D-Trace technology in unexpected placeslightningtalk<p>Compact C Type Format (CTF) is a technology created during development of the
D-Trace software to describe the C data types. With its second version it
evolved into a fully expressive, yet space-wise efficient format that can be
used outside of the D-Trace suite too. Compiling the FreeBSD kernel with the
CDDL/CTF option triggers the creation of such CTF data that corresponds to the
respective kernel objects. This dataset can be parsed and processed to become a
source of information needed to pretty print all kernel data structures inside
the on-line kernel debugger DDB.</p><p>In order to use the CTF technology a new implementation of the format had to be
developed - truly multiplatform, freely licensed and supporting different
endians. The project had to tackle many difficult problems such as transport of
the CTF data to the kernel debugger, which itself is a very limited space.
Pretty-printing recursive data structures can be very tricky, as they are
implemented as nested struct pointers and the interpretation can lead into
unmanageable indentation issues. The solution is to detect certain common types
of data structures - lists, queues and trees - and adapt to such structures on
a higher level of abstraction.</p>
<p>Apart from the DDB application, CTF data can be used inside user-space
debuggers too. As a result of the slim binary design of the format storage,
each binary in the whole system, even a production one, can contain the CTF
data. To achieve even further minimisation of the space used, a concept of
multilevel parent-child relationships was introduced, in which the parent
contains the types used in both parent and child and its own, whereas the child
has only its unique ones and references the parent set.</p>
<p>This talk is interesting outside of the BSD community too: since the libctf
implementation is multiplatform and supports the Debian and OpenIndiana
distributions, such pretty-printing functionality could be ported. The CTF
toolset - ctfconvert, ctfmerge and ctfdump - is multiplatform as well. Thanks
to the free BSD license, the inclusion of such library should not pose a legal
problem. Some parts of the project are still work in progress and therefore the
community support is much appreciated.</p>Daniel Lovasko
Main project repository
10:4000:20UD2.120 (Chavanne)v2vMoving your Virtual Machines to oVirt with easeOverview of the process of import VMs from different environments into oVirt in light of the upcoming integration with virt-v2vdevroom<p>Suppose you want to import virtual machines you already have into oVirt to enjoy a features-rich open sourced management system. You will soon figure out that the conversion of virtual machines running on different hypervisors or managed by different management systems into oVirt is not an easy task. The next major version of oVirt is going to introduce an integrated process that will simplify import of virtual machines not being managed by oVirt into oVirt. This session gives a heads up for the feature: we will go over the design and see how it solves issues that we had before to provide better way for import virtual machines to oVirt.</p><p>Until now from oVirt one could only import virtual machines (VMs) that were managed once by oVirt, either VMs that were exported from oVirt or VMs that reside on storage that was attached once to oVirt. In order to import VMs that run on different hypervisors or managed by different tools/management solutions, one had to use external tool, such as virt-v2v, separately to convert the VMs so they will fit to oVirt and then import the VMs from oVirt. This results in a slow, tedious and error-prone process.
An important feature in oVirt 3.6 is going to be the extension of import VMs capabilities to provide users with a process that is integrated within oVirt web-admin ui for import VMs from external environments, i.e VMs that run on different hypervisors and managed by different management solutions. We produce a process based on integration with virt-v2v, for import such VMs to oVirt which is better in terms of usability, performance and monitoring. The new process will ease migration of existing VMs into oVirt, encouraging people to have their existing virtual environments replaced with oVirt.
In this session we will analyse the problems with the previous process, go over the design of the new one and see how it address the problems we used to have, producing a better way for migrate existing virtual environments to open source virtualization platform.</p>Arik Hadas11:0000:40UD2.120 (Chavanne)faulttolerantmesosBuild Distributed, Fault-Tolerant Infrastructure with Apache Mesosdevroom<p>Apache Mesos is a resource manager for datacenter infrastructure that uses a two-level scheduling model to provide hardware resources to various application frameworks. Organized in two parts, this talk will provide an overview of the Mesos compute model (comparing and contrasting how it relates to IaaS), and then walk through writing an application for Mesos using the framework API.</p><p>Apache Mesos is a resource manager for datacenter infrastructure that uses a two-level scheduling model [1] to provide hardware resources to various application frameworks. Similar to Infrastructure as a Service (IaaS), Mesos manages hardware and the execution of applications, while delegating the responsibility of deployment to other platforms. In the Mesos model, application frameworks are responsible for scheduling and deployment logic. Multiple frameworks can be run on bare-metal at the same time using a single pool of resources, including use-cases for long-running services (including Marathon, Aurora, Singularity), and batch/streaming (Hadoop, Storm, Jenkins).</p>
<p>The abstraction Mesos provides for running and writing distributed applications has proven interesting to several IaaS projects, including OpenStack [3] and CloudStack. [4] While IaaS typically addresses a larger set of concerns (including virtual machines, servers, storage, load balancers, and network), the narrow focus of Mesos on resource management has provided opportunities for integration between traditional IaaS and Mesos in the future.</p>
<p>Organized in two parts, this talk will provide both an overview of the Mesos compute model (comparing and contrasting how it relates to IaaS), and walk through writing an application for Mesos using the framework API.</p>
<p>Part one will cover their essential architectures and how they enable fault-tolerance with replicated master nodes, scalability to 10,000's of machines, and resource isolation between tasks. Part two will demonstrate how users can write custom application schedulers for Mesos by leading through an example (likely in Python or Go). Attendees will come away with an understanding of how the software abstractions Mesos provides (resource manager and scheduler) work together, and with essential knowledge to write a custom scheduler.</p>
<p>Citations:
[1] http://people.csail.mit.edu/matei/papers/2011/nsdi_mesos.pdf
[2] http://mesos.apache.org/documentation/latest/mesos-frameworks
[3] https://issues.apache.org/jira/browse/MESOS-876
[4] https://twitter.com/ke4qqq/status/535421157202460674</p>Dave Lester
FOSDEM 2015 Video
11:4000:40UD2.120 (Chavanne)glusterfsoverviewGlusterFS - Overview & Future Directionsdevroom<p>GlusterFS is a distributed scale-out filesystem that runs on commodity hardware. In this session, Niels de Vos will
provide an architectural overview of GlusterFS and discuss how its file, object & block interfaces can be used to build a scale-out storage solution for
IaaS needs. Details on new features , use cases and interesting challenges with GlusterFS will be provided. As part of this
session, Niels will also discuss integration of GlusterFS with other open source ecosystems like OpenStack, oVirt and provide
future directions of the GlusterFS project.</p>Niels de Vos
Homepage of the Gluster Community
Red Hat Storage (based on GlusterFS)
FOSDEM 2015 Video
12:2000:40UD2.120 (Chavanne)hyperconvergenceoVirt and Gluster Hyperconvergencedevroom<p>This session will cover in detail the ongoing effort of integrating the oVirt virtualization and Gluster storage resources in single commodity boxes that can scale horizontally. The presentation will include the description of the technical challenges encountered, the status of the ongoing effort and the roadmap for the possible future improvements.</p>
<ul>
<li>oVirt virtualization and Gluster storage overview</li>
<li>Architecture, hardware and software setups</li>
<li>Scaling horizontally</li>
<li>Challenges of the oVirt and Gluster Hyperconvergence</li>
<li>Current status and other possible improvements</li>
<li>Roadmap and future additions</li>
</ul>
Federico Simoncelli
FOSDEM 2015 Video
13:0000:40UD2.120 (Chavanne)leveragingcephLeveraging CephCeph integration in OpenStack, Cloudstack, ganeti ..devroom<p>The Ceph storage system is used by many IaaS software. It provides self-healing distributed storage in many forms (block device, file system and object store).</p><p>An overview of the most recent Ceph features will be followed by use cases about how current IaaS stacks could leverage them.</p>Loic DacharySage Weil
Ceph
FOSDEM 2015 Video
13:4000:40UD2.120 (Chavanne)opennebulaOpenNebula Deployments, from Small to MassiveLeveraging other open source projects to build cloudsdevroom<p>Learn how other people are using OpenNebula today to deploy clouds in a snap, all the way from micro clouds to massively big, federated clouds. Learn performance and tuning tips shared by other OpenNebula fellow users to leverage other open-source projects like Ceph, LizardsFS, Open vSwitch and Puppet into making your cloud resilient, fast, flexible and massive.</p>
<p>We will also shed some light on other OpenNebula compoments that have grown indispensable to their users, like hooks, AppMarket to share images accross OpenNebula deployments, OneFlow to manage services and OneGate to report metrics directly to OpenNebula.</p>Jaime Melis
FOSDEM 2015 Video
14:2000:40UD2.120 (Chavanne)cinderstateopenstackCinder - the state of block storage in OpenstackWhere we've been, where we are, where we're going and where you can helpdevroom<p>Cinder is the block storage solution for Openstack. It has been around for 2 years, and has become a stable and useful part of the Openstack infra-structure. This talk gives the history of Cinder, the current challenges being worked on and some blue sky ideas for where it could go.</p>Duncan Thomas
FOSDEM 2015 Video
15:0000:40UD2.120 (Chavanne)deployopenstackxenOpenStack and XenDeploy your OpenStack cloud on the Xen hypervisordevroom<p>This talk will explain how to deploy OpenStack using the Xen hypervisor to run your virtual machines.</p>
<p>It will start by describing the OpenStack architecture and its most important components.
It will go into details on how to use DevStack to setup an OpenStack development environment based on Xen and Libvirt. It will also cover the most popular and robust deployment schemes for OpenStack with Xen and Libvirt aimed for production servers, including Ubuntu packages from the latest LTS, Chef and Puppet.</p>
<p>The audience will learn the most important OpenStack and Xen config options, the pitfalls to avoid in their deployment and how to tweak both of them to get the best performance and stability out of your OpenStack cloud.</p>Stefano Stabellini
FOSDEM 2015 Video
15:4000:40UD2.120 (Chavanne)smartvmschedSmart VM scheduling in oVirt clusterDeep dive to scheduling service based on probabilistic methodsdevroom<p>The oVirt project allows efficient management of virtualized datacenters. Deciding what machine should host a certain VM is one of the important functions of the management platform. Unfortunately it is also one of the complex ones, because there can be many rules governing the placement policy and there is a time limit in which a VM has to be started or migration initiated. Till now each VM was considered separately and that caused fragmentation of free resources.</p>
<p>We are about to present a new solution to this issue in this presentation. We have started a cooperation with the OptaPlanner team that develops an optimization engine based on probabilistic (soft computing) algorithms. This means that oVirt will feed situation updates to an optimization service and continuously receive improved solutions back. It will then use the precomputed results for rebalancing the clusters.</p>Roy Golan
Blog post explaining the project goals and internals
FOSDEM 2015 Video
16:2000:40UD2.120 (Chavanne)whatmanageiqWhat you can do with open source cloud management (and ManageIQ)Control all of the thingsdevroom<p>What is cloud management and why do you need it? This talk explains the security and productivity ramifications of a hybrid cloud infrastructure, and how you can wrangle its various components. You need: comprehensive security, finance/chargeback, automation and orchestration. Here's how to control all of the things.</p><p>What is "Cloud Management"? In a datacenter, you might have 2 or more virtualization management platforms, with a private cloud running alongside, and some workloads running in a public cloud. ManageIQ gives admins and developers a way to seamlessly deliver services from multiple cloud and virtualization platforms.</p>
<p>Across your cloud and virtualization platforms, you'll need to enforce some kind of consistency in who can consume your resources, integrate with approval workflows, and be aware of waste when it is happening. Maybe you also want to automate the provisioning of instances, integrate with a service catalog or configuration management system. Perhaps you want to know when VMs are vulnerable to security issues, prevent new VMs to be created from known-bad templates, and perform some clean-up of services when they are retired.</p>
<p>These are all cloud management problems. Whether it's containing VM sprawl or finding and fixing hot spots in the data center, this presentation will give you tools and techniques you can use to manage it all.</p>
<p>ManageIQ is a recently open sourced cloud management platform and toolkit with a RESTful API and comprehensive gateway to most popular virtualization and cloud services platforms, including vSphere, Hyper-V, oVirt, RHEV, AWS, and OpenStack (with more on the way). It is a powerful orchestration and automation engine that admins use to integrate their build, test and deploy services with virtualization and cloud platforms. ManageIQ allows developers and admins to manage their services in one place, side-by-side.</p>
<p>In this technical deep dive, we will explore the orchestration and automation components of ManageIQ and demonstrate how it can be used to operationalize any hybrid cloud deployment . You'll learn about:</p>
<pre><code>Code to create an application service catalog.
Automation of compute host evacuation in response to monitoring and security events
Preparation of physical compute hosts in advance of planned maintenance work.
This talk will include an overview of the ManageIQ community as well as a live demonstration.
</code></pre>John Mark Walker
ManageIQ home
17:0000:20UD2.120 (Chavanne)ignoredfamousiaasWhy we tried (and ignored) famous IaaS to deliver SecurePassA walk through our journey through IaaS such as VMware, OpenStack and Ganeti and why we chose our own solutiondevroom<p>Our question was: "what is the best infrastructure to run our SaaS on?".
We tried most of the infrastructure software, starting from vmware, moving to Proxmox, OpenNebula, OpenStack, and Google's Ganeti. We also considered software storage and software defined networks. We mastered some of these technologies and we even contributed to the projects. But we felt we needed something different and lighter and we "blended" our own solution, mixing and matching the best of the above and keeping in consideration our needs in terms of computing, network and storage. This talk will go through our (long) journey, understanding pros and cons of each technology and describing what we used to deliver SecurePass and other services.</p>Giuseppe Paternò
FOSDEM 2015 Video
17:2000:20UD2.120 (Chavanne)designatednsDesignate - DNS as a Service for OpenstackMultitenant DNS Service for your clouddevroom<p>Designate is a newly incubated project in OpenStack, for providing an easy to use, integrated DNS service to users of your cloud.
We integrate with Nova and Neutron, and allow control of Reverse DNS for floating IPs.
Using sink features, we can pull events from the neutron / nova event queue and auto generate DNS entries.</p>
<p>We will show all of this functionality, and talk about the upcoming features, while taking feedback from the community about what else they would like to see provided by Designate.</p>
<p>We will also update the community on the developments of the Mid-Cycle summit (happening the week previously)</p>
<p>Graham Hayes is a member of designate-core, and one of the main architects of our current feature push called server pools, which will allow per user DNS servers, and the ability to run DNS servers at massive scale.</p>
<p>Kiall Mac Innes is the PTL and the original author for Designate</p>Graham Hayes
FOSDEM 2015 Video
17:4000:20UD2.120 (Chavanne)iaasbeyondIaaS Beyond the Infrastructuredevroom<p>We've been talking about Infrastructure providers for quite a bit already. OpenStack itself started as such an IaaS and then it quickly became a cloud provider. But what does that mean? What is a cloud provider suppose to provide? What's cloud after all?</p>
<p>Scaling a distributed system goes beyond virtualization, shared storage etc. In order to support on-demand scaling it is necessary to have an easy way to provision and consume the available infrastructure, a way for the services running in it to communicate, etc. Not to mention latency needs, reliability, etc.</p>
<p>This talk aims to answer the above questions and take a step further down the path of explaining what should be considered essential for nowadays needs, especially when those needs require a <code>cloud</code> to be covered.</p><p>We've been talking about Infrastructure providers for quite a bit already. OpenStack itself started as such an IaaS and then it quickly became a cloud provider. But what does that mean? What is a cloud provider suppose to provide? What's cloud after all?</p>
<p>Scaling a distributed system goes beyond virtualization, shared storage etc. In order to support on-demand scaling it is necessary to have an easy way to provision and consume the available infrastructure, a way for the services running in it to communicate, etc. Not to mention latency needs, reliability, etc.</p>
<p>This talk aims to answer the above questions and take a step further down the path of explaining what should be considered essential for nowadays needs, especially when those needs require a <code>cloud</code> to be covered.</p>Flavio Percoco
FOSDEM 2015 Video
18:0001:00UD2.120 (Chavanne)iaaspanelIaaS Devroom PanelDiscussing What We've Learneddevroom<p>Discussion panel with the IaaS/Virt devroom organizers about the day's program.</p><p>Discussion panel with the IaaS/Virt devroom organizers about the day's program.</p>Thierry CarrezItamar HeimjzbLars KurthDave LesterLuca Gibelli10:3000:25UB2.252A (Lameere)allwinner_upstreamUpstream Allwinner ARM SoC (A10 / sunxi) support statusdevroom<p>What is the current status of Allwinner support in upstream u-boot and the kernel, which SoCs are supported, and which features (sound, video, etc.) are supported ?</p><p>The linux-sunxi community has been slowly but steadily working on getting Allwinner SoCs like the A10 supported in upstream u-boot and the kernel.</p>
<p>This talk will present the current status of Allwinner support upstream. Which SoCs are supported and which ones are not (yet) supported ? Which blocks if the supported SoCs are supported, and which are not ? Why are some SoCs / blocks not supported, and what are the plans to get them supported ? This are some of the questions this talk tries to answer.</p>Hans de Goede
FOSDEM 2015 Video
11:0000:25UB2.252A (Lameere)freertosFreeRTOS introductiondevroom<p>Not all free operating systems are feature-full POSIX systems. FreeRTOS is a minimal operating system which is designed to run on microcontrollers, and provide real-time scheduling. It is used in industrial automation and automotive.</p>
<p>A brief introduction to FreeRTOS, depending on audience preference, will be followed by either a hands-on workshop using PCs, or a demonstration on a board. The workshop includes how to get started, what can be done with it, and what type of features and pitfalls to expect from FreeRTOS.</p>Atilla Filiz
FOSDEM 2015 Video
11:3000:25UB2.252A (Lameere)car_hypervisorXvisor: An open-source, lightweight, embedded hypervisor for your cardevroom<p>As ADAS and infotainment require more electronics, using an hypervisor is
a solution to gather multiple boards into one. Xvisor is an open source
lightweight hypervisor for embedded systems that perfectly fits the needs of
the automative industry. It is a complete monolithic type-1 hypervisor with
full virtualization and paravirtualisation support, showing better performances
than KVM.</p>
<p>We, OpenWide and the Institute for Technological Research SystemX, are working
on its port on i.MX6 boards.</p><p>Nowadays, as the Advance Driver Assistance Systems (ADAS) needs drastically
increases, the number of electronic boards, cables, communication channels,
and devices explodes.
In the meantime, infotainment is one of the selling points for automotive
industries to sell new cars, which also mean more electronics.
Thanks to the Genivi initiative, those systems will run under Linux, whilst
car control electronics run under Autosar (AUTomotive Open System
ARchitecture) OSes, which are closed source binaries.</p>
<p>Gathering multiple boards into one with hypervisors is a solution to reduce
costs and increase functionalities. Xvisor is an open source lightweight
hypervisor for embedded systems that fits perfectly the needs of the automative
industry.</p>
<p>It is a complete monolithic type-1 hypervisor with full virtualization,
allowing unmodified guest support (useful for AUTOSAR components) and
paravirtualization, which can help improve Linux guest performance.
Moreover, on ARM, Xvisor shows better performances than KVM.
It has been mainly developed by Anup Patel, and joined by
Jean-Christophe Dubois, Himanshu Chauhan, Sukanto Ghosh and
Pranav Sawargaonkar.
This presentation will focus on ARM usage while introducing the concepts of
virtualisation, paravirtualisation.</p>
<p>Even if Xvisor is a young project, publicly visible from June 2011, as its
sources are very close to Linux, ports remain quite fast and easy. It uses
device tree files, both for board definition and configuration parts.
It is in this way that we, OpenWide and the Institute for Technological
Research SystemX, continue the work of Jean-Christophe on the i.MX6 port of
Xvisor, for the Boundary Devices Nitrogen6x (and the Freescale SabreLite).</p>
<p>Then will show:
- the binary rewriting tool usage on guest binaries,
- Xvisor running on Qemu,
- configurable and dynamic guest creation
- and Xvisor running on the i.MX6.</p>Jimmy Durand Wesolowski
FOSDEM 2015 Video
12:0000:45UB2.252A (Lameere)fish_flyTeaching Fish to FlyEmbedded platforms take to the air.devroom<p>In 2013, at the Embedded Linux Conference in Europe in Edinburgh, there was a race between a dog and a blimp. It was said that despite the dogs win, that the blimp had participated in the miracle of flight. In 2014 we intend to show that the brains of that dog can be transplanted and that it too, can participate in the miracle of flight. The talk is mainly targeting taking an off the shelf embedded platform, MinnowBoard Max, and it's use in UAVs, specifically quad-copters. With the ability to do real time computer vision, as well as various GPIO capabilities we'll explore the directions that significantly more autonomous UAVs can take with Linux and embedded platforms using, mostly, off the shelf components.</p><p>In 2013, at the Embedded Linux Conference in Europe in Edinburgh, there was a race between a dog and a blimp. It was said that despite the dogs win, that the blimp had participated in the miracle of flight. In 2014 we intend to show that the brains of that dog can be transplanted and that it too, can participate in the miracle of flight. The talk is mainly targeting taking an off the shelf embedded platform, MinnowBoard Max, and it's use in UAVs, specifically quad-copters. With the ability to do real time computer vision, as well as various GPIO capabilities we'll explore the directions that significantly more autonomous UAVs can take with Linux and embedded platforms using, mostly, off the shelf components.</p>
<p>There are a multitude of applications where this kind of technology is useful, from basic hobbyists, forestry services to search and rescue.</p>John 'Warthog9' Hawley13:0000:45UB2.252A (Lameere)sailfishosRecycle your Android devices for anything : run real Linux on themRouting around the breakage of closed binary blobsdevroom<p>Our world is full of small powerful devices; but most of them run Android.</p>
<p>I'll show how Mer, SailfishOS and HADK lets us reuse them as full blown linux systems - with touchscreens, 3D graphics, modem, wifi, usb...</p>
<p>At the heart is libhybris - talked about at FOSDEM; found inside the Ubuntu Touch distro, invented and developed at Mer & Jolla where it's used in the Jolla phone (ARM) and soon the Jolla tablet (x86).</p>
<p>Together we can route around the breakage of closed binary blobs and work on FOSS on these devices.</p>David Greaves
FOSDEM 2015 Video
14:0000:45UB2.252A (Lameere)hack_your_cameraHow to program your camera!An introduction to CHDKdevroom<p>Digital cameras provide almost every feature you could want. But if they don't, you are forced to upgrade or go without. CHDK is a project which allows you to program new functionality to the majority of Canon cameras, in either C, Lua, or Basic. The talk features background on the project, code, tools, and the methods of compiling and introducing a new firmware into the camera.</p><p>Over the course of 1 hour, Steven Goodwin will guide the audience through the entire process of taking a normal (proprietary) camera and converting it into an open source version by installing custom firmware on it. He will then cover some of the features available (such as the on-device scripting language) and continue by explaining how to build and debug your own functionality. Starting with simple grids, continuing with games, and time-lapse code. And ending with a fully recompiled firmware running on the device.</p>Steven Goodwin
Main site
Speakers CHDK tools
FOSDEM 2015 Video
15:0000:45UB2.252A (Lameere)embedded_freedomEmbedded freedom roundtabledevroom<p>GNU and Linux are now embedded on more kinds of hardware than ever,
but often only by requiring proprietary bits. Plus, we now have
tablets and phones loaded with nonfree software on top of a free core
-- how do we get the freedom we all want, and how do we create the
market for that? Roundtable discussion.</p><p>Round table about embeddd freedom, problems, approaches and solutions.</p>
FOSDEM 2015 Video
16:0000:25UB2.252A (Lameere)arm_perfperf status on ARM and ARM64devroom<p>Kernel profiling tools status on ARM and ARM64:
- perf status,
- ARM and ARM64 support,
- callchain unwinding mechanisms and support,
- patches status: merged, pending, in development,
- links to discussions (LKML) and patches.</p><p>The profiling tools in the kernel are changing at a fast pace.
This talk is about the support for ARM and ARM64 architecture and the development of features for these architectures, namely the callchain unwinding.
The presentation goes over:
- the detailed description of the feature,
- the methods used to do the callchain unwinding (fp, exidx, dwarf etc.),
- the status of the on-going patches,
- the remaining work to be done,
- the links to patches, discussions on the mailing lists,
- -if needed and if time allows- a demo of the feature.</p>Jean Pihet16:3000:25UB2.252A (Lameere)medical_monitoringBuilding a medical monitoring connected device with YoctoProfessional OS with yoctodevroom<p>Building a medical device requires to follow certain rules specially when health care depend on it.
The presentation will explain how Yocto help us in Kaptalia to solve this issue.
In particular we will focus on fast boot, update with unskilled user base, Bluetooth Low Energy, security and data privacy.</p><p>During this event we will show how our team succeeded to build our first OS, start from a company with medical expert only and no prior expertise on embedded systems.</p>
<p>In addition, an explanation to the Yocto (errors you do not want to repeat) path will be presented.</p>
<p>During a medical procedure, especially when the patient is asleep, the anesthetist need a device to check the vital signs of his patient.
As our device is aimed to be used as medical user base, it meets the requirements of being reliable, easy to use, easy to update, and satisfies regulatory environments.
Our monitor communicates with some wireless devices using Bluetooth Low Energy.
The device contains medical data so we had deal with data privacy and security.
During industrialization, the entire OS is deployed in one shot. This operation has to be performed by a technician in a very secure manner.
Also, the steps of building our devices will be presented. This includes the device architecture, the fast boot on ARM, the time duration of boot on ARM and its optimization, the bullet proof update, and the custom Bluetooth Low Energie program.</p>
<p>At the end, a live demonstration for using the the monitor and sensor will be held.</p>
<p>Questions & answers</p>Adrien Renault
website
17:0000:45UB2.252A (Lameere)lava_bugsUsing LAVA for bisecting bugsThe Linaro Automated Validation Architecturedevroom<p>LAVA is a python service created by Linaro for testing software on hardware which accepts test jobs to perform on selected hardware to provide a black box to continuous integration tests. Bisecting is a technique for finding commit in version control system that broke the software. Git provides the powerful "git bisect" subcommand for this purposes. In this talk we give and introduction to LAVA and explain howto combine LAVA and git bisect to automatically find offending commits in the Linux kernel.</p><p>LAVA stands for "The Linaro Automated Validation Architecture", A tool created to help automatic testing of ARM Linux systems. It is completely open source and developed out in open. LAVA is the testing side of the Linaro's continous integration loop, providing users ability to do smoke, regression and performance test easily on wide variety of ARM boards. It provides a web dashboard for submitting test jobs, viewing results, trends and states of users jobs. Pretty much any embedded Linux project involves updating the kernel and booting the target board numerous times. LAVA helps take away the manuals steps from the process.</p>
<p>"Git bisect" is a powerful command in git. It lets users do a binary search from git version history between a "known good" and "known bad" commit to find which exact commit is at the fault on regressions. Most developers who actively use git are familiar with bisect, those who are not, should definitely consider learning it.</p>
<p>Wiring up LAVA to manual bisect testing is easy, but why settle there, when you can automate it all the way? During the presentation we let the computer do a bisecting demo in background.</p>Riku Voipio
Linaro LAVA Server
LAVA wiki
LAVA documentation
git bisect manual
Lava-boot git and README
Talk slides
http://
FOSDEM 2015 Video
18:0000:45UB2.252A (Lameere)diy_dvrHow to record all TVCreating a 30 channel DVRdevroom<p>Prospero Technologies has made a Linux based Digital Video Recorder which constantly records all UK broadcast TV so that the consumer no longer needs to schedule recordings. This will be a talk on the technologies used to achieve this, the open source software on the consumer device and how you can build your own 30 channel DVR.</p><p>The 30 channel DVR is a consumer version of a product we have been refining, a multi-tuner PCI card called Vortex. I shall be detailing the process and the pitfalls of developing a Linux PCI driver and explaining how Vortex itself works.</p>
<p>Lots of consumer embedded devices run Linux these days, but it's hard to pick out a distribution. I'll be explaining the process we went through, how we ended up with using Yocto for our device and a brief overview of how to roll your own distribution using Yocto.</p>
<p>The final version of the DVR uses a freescale i.mx6 cpu with a video processing unit, the talk will cover how well this is supported by gstreamer and how we built a QT application to display our HTML5 interface.</p>Philip Downer
FOSDEM 2015 Video
10:3000:25H.1301 (Cornil)python_&_postgresql,_a_wonderful_weddingPython & PostgreSQL, a Wonderful Weddingdevroom<p>Python and PostgreSQL, two tools we like to use for our projects but do you know everything about them? The talk will give an overview of psycopg2, SQLAlchemy, Alembic and PL/Python, these libraries can be used with PostgreSQL to improve the life of the Python developer.</p><p>Python and PostgreSQL, two tools we like to use for our projects but do you know everything about them?</p>
<p>The talk will give an overview of psycopg2, SQLAlchemy, Alembic and PL/Python, these libraries can be used with PostgreSQL.</p>
<ul>
<li>psycopg2, the well known connector, this basic component is really useful, well documented and battle-tested and used by the most famous toolkits of the Python ecosystem.</li>
<li>SQLAlchemy, a Python SQL toolkit and Object Relational Mapper, you can use this library to create your models and interact with them.</li>
<li>Alembic, a lightweight database migration tool for usage with SQLAlchemy, allows to create some migration scripts for your project.</li>
<li>PL/Python, a procedural language for PostgreSQL, allows to write functions in the Python language.</li>
<li>MultiCorn, a Foreign Data Wrapper in Python</li>
</ul>
<p>Please note that this talk replaces one entitled "TaskFlow: State Management Framework" which was to have been given by "Vishal Yadav". Regrettably "Vishal Yadav" has withdrawn from the event on account of an illness.
We wish him/her a speedy recovery.</p>Stéphane Wirtel
Slides in French
11:0000:25H.1301 (Cornil)lea,_a_probability_engine_in_pythonLea, a probability engine in Pythonthe discreet charm of probabilitiesdevroom<p>Lea is a Python open-source module dedicated to discrete probability distributions. It allows modelling uncertain information and derive probabilities in an intuitive way. It provides means to build random variables with given probability distributions, probability calculus with integers, standard indicators, conditional probabilities and generation of random samples. The forthcoming Lea 2 (should be ready for FOSDEM 2015!) shall include Bayesian reasoning, Markov chains and a high-level PPL (Probability Programming Language).</p><p>Lea is a Python package aiming at working with discrete probability distributions in an intuitive way. It allows modelling a broad range of random phenomenons, like dice throwing, coin tossing, cards hands, gambling, lottery, … with fair or unfair characteristics! More generally, Lea may be used for any finite set of discrete values having known probability: numbers, boolean variables, date/times, symbols, ...</p>
<p>Each probability distribution is modelled as a plain object, which can be named, displayed, queried or processed to produce new distribution objects. Lea provides standard indicators, conditional probabilities and generation of random samples. The forthcoming Lea 2 (should be ready for FOSDEM 2015!) shall include Bayesian reasoning, Markov chains and "Leash", a high-level PPL (Probability Programming Language).</p>
<p>On an implementation point of view, probabilities are stored using integers (e.g. not float), allowing to avoid any risk of rounding errors. Lea implementation heavily relies on Python's operator overloading, generators and duck-typing.</p>Pierre Denis
Lea project page
Lea on PyPI
11:3000:25H.1301 (Cornil)dive_into_scrapyDive into ScrapyIn this talk some advanced techniques will be shown based on how Scrapy is used at Scrapinghub.devroom<p>Scrapy is a fast high-level screen scraping and web crawling framework, used to crawl websites and extract structured data from their pages. It can be used for a wide range of purposes, from data mining to monitoring and automated testing.
In this talk some advanced techniques will be shown based on how Scrapy is used at Scrapinghub.</p>Juan Riaza
Scrapy framework
http://scrapinghub.com
12:0000:25H.1301 (Cornil)mercurial,_with_real_python_bitesMercurial, with real python bitesUp and Down of the python language in large scale command line tool.devroom<p>In 2005, Matt Mackall picked Python to implement a new version control system: Mercurial. Ten years later, the project is a success! Thanks to python? Lets see what shinning advantages met us and what issues we, developers, had to work around. We'll also take a detour to the place were python outcrop to the users, the extensions system.</p><p>In 2005, Matt Mackall picked Python to implement a new version control system: Mercurial. Ten years later, the project is a success! Thanks to python?</p>
<p>In this Talk, we'll go over on the advantages of Python that helped the project both in its early life when so much feature needs to be implemented, but also nowaday when major companies like Facebook bet on Mercurial for scaling. We'll also point at the drawback of choosing python and how some work-arounds had to be found. Finally, we'll look at how the choice of python have an impact on the user too with a demonstration of the extensions system.</p>Pierre-Yves David
First version of the talk (french)
FOSDEM 2015 Video
12:3000:25H.1301 (Cornil)python_prompt_toolkit_/_ptpythonpython-prompt-toolkit / ptpythondevroom<p>Ptpython is a better Python REPL built on top of prompt-toolkit. In this talk we'll have a look at what pt(i)python is and how to use it.
Further we'll have a look at the underlying library prompt-toolkit. We'll see how it works and how easy it is to create a custom REPL with syntax highlighting, code completion and input validation. (for instance to create an SQLite client.)</p><p>Prompt-toolkit is a library for designing command line interfaces. Basically, it can be a pure Python replacement for GNU readline: it implements most of the Emacs and Vi keybindings as well as reverse search and code completion and it supports double width characters. However, it can be even much more powerful. There is syntax highlighting of the input, multiline editing, support for toolbars, custom layouts, multiple input fields and integration with other event loops (e.g. asyncio).</p>
<p>In this talk we will see how easy it is to create a custom command line interface: it doesn't take more than a few lines of code. Further we'll see how to add input validation, code completion and other extensions, each without much effort.</p>
<p>We will also have a look at ptpython. This is a Python REPL build on top of this library. We have a look at several interesting features of ptpython which can make your REPL experience even better. And finally, there is ptipython, the front-end for IPython.</p>Jonathan Slenders
FOSDEM 2015 Video
13:0000:25H.1301 (Cornil)federation_and_python_webappsFederation and Python webappsdevroom<p>Decentralize the web! Everyone wants to, but actually getting a decentralized network of websites is notoriously hard. Luckily, much of the hard work is already done. Learn about federation standards (including recent activities at the W3C Social Working Group) and how to use PyPump, a library to make federating with Python easier, and how we're tackling site-to-site federation in GNU MediaGoblin.</p><p>Decentralize the web! Everyone wants to, but actually getting a decentralized network of websites is notoriously hard.</p>
<p>Luckily, much of the hard work is already done. Learn about federation standards and how to use <a href="http://pypump.org/">PyPump</a>, a python library to make federating with Python easier following the <a href="https://github.com/e14n/pump.io/blob/master/API.md">Pump API</a>, and how we're tackling site-to-site federation in <a href="http://mediagoblin.org/">GNU MediaGoblin</a>.</p>
<p>In addition to examples on how to federate, learn what the current state of standardizing federation protocols are, lessons learned through the standards process, and the latest to come out of the <a href="https://www.w3.org/wiki/Socialwg">W3C Social Working Group</a>.</p>Christopher Webber
FOSDEM 2015 Video
13:3000:25H.1301 (Cornil)lets_build_a_spreadsheet_app_in_pythonLet's build a spreadsheet app in PythonA tour of the (remarkably simple) code you need to build a fully-functional Pythonic spreadsheetdevroom<p>Building a spreadsheet app with Python is simpler than you think! I'll show you how we can build one with Python, from the ground up, in 15 minutes or less. Fun times with recursion guaranteed.</p><p>Have you ever wondered how a spreadsheet works? I was fairly #mindblown when someone first explained it to me on the back of a beermat -- it's simpler than I thought! Let me take you on a tour of the source code for Project Dirigible, an experimental web port of Resolver One, the (sadly defunct) Pythonic spreadsheet. We'll cover formula parsing, identifying dependencies, building the recalculation graph, loop detection, and even some of the mind-bending fun that Dirigible lets you do with user-defined functions.</p>Harry Percival
the source code for dirigible, the pythonic spreadsheet
http://
FOSDEM 2015 Video
14:0000:25H.1301 (Cornil)understanding_cpython_34_objectsUnderstanding CPython (3.4) Objectsdevroom<p>I will explain how CPython objects are built, from simple objects
like int or None to complex ones like dict. To make it funnier, I
will play to change instance data directly using ctypes and do
"really bad things" like truncating tuples.</p>Jesús Espino
Slides in PyConEs 2013
Video on PyConEs 2013
FOSDEM 2015 Video
14:3000:25H.1301 (Cornil)customize_gunicorn_for_your_own_businessCustomize Gunicorn for your own business.devroom<p>Most people know Gunicorn as a Python WSGI HTTP Server engine, but a lot
ignore it can be used for more usages. With this talk you will discover how
you can use it to fit your own needs/business or simply distribute extensions for it.</p><p>Most people know Gunicorn as a Python WSGI HTTP Server engine, but a lot
ignore it can be used for more usages.</p>
<p>This talk will show you how you can use the current Gunicorn version for different usages, from
embedding it in your application to extend it with your own TCP workers or
logging modules. This talk will also provide a quick glance (with demo) of the new
gunicorn engine, a fully featured process and sockets supervisor engine
allowing more customisations.</p>Benoit Chesneau
Gunicorn main website
http://
FOSDEM 2015 Video
15:0000:25H.1301 (Cornil)python,_webrtc_and_youPython, WebRTC and youdevroom<p>Introduction to WebRTC and application development using Python on the server side. Let's build a "Call Roulette"!</p><p>WebRTC is a recent technology present in modern web browsers allowing developers to create rich multimedia applications using realtime audio, video and data. This talk will give an introduction to WebRTC and walk through the implementation of a simple Call Roulette application, designing the necessary signaling protocol and implementing it on the server side using Python3 and asyncio.</p>Saúl Ibarra Corretgé
FOSDEM 2015 Video
15:3000:25H.1301 (Cornil)when_performance_matters_When performance matters ...devroom<p>Python applications sometimes need all the performance they can get. Think of e.g. web, REST or RPC servers. There are several ways to address this: scale up by using more processes, use Cython, use PyPy, rewrite parts in C, etc.</p>
<p>However, there are also quite a few things that can be done directly in Python. This talk goes through a number of examples and show cases how sticking to a few idioms can easily enhance the performance of your existing application without having to revert to more complex optimization strategies.</p>Marc-André Lemburg
FOSDEM 2015 Video
16:0000:25H.1301 (Cornil)gradual_typing_in_pythonGradual Typing in Pythondevroom<p>Gradual typing in dynamic languages is becoming popular. The implementations for Python, Lua, Clojure and Racket show how a dynamic language can be retrofitted with static type checking. This makes possible to combine the flexibility of these languages with the guarantees of a type checker and can be done in a gradual, non-invasive manner.</p>
<p>In this talk we'll understand what gradual typing is and the benefits it yields, explore the existing implementations for Python and talk about Guido's plans for the usage of function annotations introduced in Python 3.</p>Alejandro Gómez
FOSDEM 2015 Video
16:3000:25H.1301 (Cornil)knowing_your_garbage_collectorKnowing your garbage collectordevroom<p>As Python programmers we're used to program without taking care about allocating
memory for our objects and later on freeing them, Python garbage collector
takes care of this task automatically for us.</p>
<p>Garbage collection is one of the most challenging topics in computer science,
there are a lot of research around the topic and different ways to tackle
the problem.</p>
<p>Knowing how our language does this process give us a better understanding
of underlying interpreter and allow us to know why problems like cycles
can happen in CPython interpreters.</p>
<p>So, this talk aims to be and introduction to the topic and a walkaround
through different approaches followed in CPython and PyPy:</p>
<ul>
<li>Generational Reference counting with cycles detector on CPython.</li>
<li>Incremental version of the MiniMark GC on PyPy.</li>
</ul>
<p>As Python programmers we're used to program without taking care about allocating
memory for our objects and later on freeing them, Python garbage collector
takes care of this task automatically for us.</p>
<p>Garbage collection is one of the most challenging topics in computer science,
there are a lot of research around the topic and different ways to tackle
the problem.</p>
<p>Knowing how our language does this process give us a better understanding
of underlying interpreter and allow us to know why problems like cycles
can happen in CPython interpreters.</p>
<p>So, this talk aims to be and introduction to the topic and a walkaround
through different approaches followed in CPython and PyPy:</p>
<ul>
<li>Generational Reference counting with cycles detector on CPython.</li>
<li>Incremental version of the MiniMark GC on PyPy.</li>
</ul>
Francisco Fernández Castaño
FOSDEM 2015 Video
17:0000:25H.1301 (Cornil)redbaronRedBarona bottom up approach to refactoring in pythondevroom<p>Writing code that modifies source code is a task reserved to a small number of audacious developers. RedBaron was built on the foundations of a Lossless Abstract Syntaxe Tree (AST) and serves to make customized refactoring accessible to as many developers as possible. It does so by offering an abstraction that allows to focus on specific objectives regardless of the low-level details.</p><p>RedBaron's aim is to make the process of writing of code that modifies source code easy (and fun) enough to change it into a manageable, or even desirable, task. To do so, RedBaron acts like BeautifulSoup/JQuery onto your Python source code. The idea is to make it powerful and expressive enough so that it can be directly used into a Python shell like IPython.</p>
<p>Baron, the basis for RedBaron , is a Syntax Tree for Python meant to preserve every information. In this way, [source code -> tree -> source code] will yield the exact same source code even at the formatting level. Baron is relatively stable; it comprises over 1000 unit tests; it was applied to the top 100 pypi packages; and it is documented. Though still in development, RedBaron is stable and functional. The next step consists in making it enjoyable to use. Around November it comprised more than 1200 unit tests, and was fully documented with numerous examples.</p>
<p>Source code and documentation:</p>
<ul>
<li>RedBaron: https://github.com/psycojoker/redbaron http://redbaron.rtfd.org</li>
<li>Baron: https://github.com/psycojoker/baron http://baron.rtfd.org</li>
</ul>
<p>The ambitious aim of RedBaron is to facilitate the writing of code-writing source code and make this task both realistic and enjoyable.</p>Laurent Peuch
RedBaron documentation
RedBaron Github
Baron documentation
Baron Github
FOSDEM 2015 Video
17:3000:25H.1301 (Cornil)extending_python,_what_is_the_best_option_for_meExtending Python, what is the best option for medevroom<p>Python is a great language, but there are occasions where we need access to low
level operations or connect with some database driver written in C or we need to
overcome to some speed boottleneck in Python due to some limitation in the
language, like NumPy or Scikit-learn do, using extensions.</p>
<p>With the FFI(Foreign function interface) we can connect Python with other
languages like C, C++ and even Rust or Fortran.
There are some alternatives to achieve this goal, Native Extensions, Ctypes and CFFI.
We'll compare this three ways of extending Python and we'll study pros and cons
of each approach.</p><p>Python is a great language, but there are occasions where we need access to low
level operations or connect with some database driver written in C or we need to
overcome to some speed boottleneck in Python due to some limitation in the
language, like NumPy or Scikit-learn do, using extensions.</p>
<p>With the FFI(Foreign function interface) we can connect Python with other
languages like C, C++ and even Rust or Fortran.
There are some alternatives to achieve this goal, Native Extensions, Ctypes and CFFI.
We'll compare this three ways of extending Python and we'll study pros and cons
of each approach.</p>Francisco Fernández Castaño
FOSDEM 2015 Video
18:0000:25H.1301 (Cornil)pypy_and_the_future_of_the_python_ecosystemPyPy and the future of the Python ecosystemdevroom<p>Python has a great versatile ecosystem but the competition is getting better, this talk is about how can Python keep up with these new languages and where PyPy fits into this.</p><p>Recently we've seen the rise of new technologies like Go, Node.js and Julia, those have the ability to build an ecosystem on a clean slate and thus be better than Python in some aspects. What would it take to be as good as those technologies on those aspects without loosing all the things we love about Python ? This talk will describe my perfect future where Python keeps getting better, gets to keep it's great set of libraries and where PyPy fits in that future.</p>Romain Guillebert
FOSDEM 2015 Video
18:3000:30H.1301 (Cornil)lightning_talksLightning Talksdevroom<p>Lightning Talks Session</p><p>Lightning Talks Session</p>
FOSDEM 2015 Video
10:3000:05H.1302 (Depage)welcome_to_the_distributions_devroomWelcome to the Distributions DevroomA short introduction to the room, the schedule and the teamdevroomAndreas Thienemann10:3500:20H.1302 (Depage)from_debian_gis_to_osgeo_live_and_backFrom Debian-GIS to OSGeo live and backdevroom<p>Debian GIS is a project with the goal of making Debian the best distribution for Geographical Information System applications.</p>
<p>OSGeo live (live.osgeo.org) is a self-contained bootable dvd, usb thumb drive or virtual machine based on Lubuntu, that allows you to try a wide variety of open source geospatial software without installing anything. It also contains a set of uniform documentation (description and quickstarts) to guide people around the different projects.</p>
<p>Even though OSGeo live is based on the packages in Debian, both projects diverted and where OSGeo live managed to get a large (100+) community of contributors, progress in Debian GIS was stalling. Recently however, a new wind is blowing in Debian GIS (among others with the Debian pure blends initiative) and many changes from OSGeo live are being incorporated back into Debian.</p>
<p>Apart from presenting both projects I will highlight some problems people encounter when they would like to add their package to Debian GIS, and how Debian pure blends try to solve this.</p>Johan Van de Wauw
https://wiki.debian.org/DebianGis
http://live.osgeo.org/en/index.html
11:0000:50H.1302 (Depage)nix_nixos_nixopsNix, NixOS, NixOpsFrom Developing to Provisioning softwaredevroom<p>Nix is a package manager that provides side-by-side installation of multiple versions of a package, multi-user package management and easy setup of build environments. This talk highlights how simple features of a package manager can change the way components are developed and deployed. We will investigate how Nix works and demonstrate how to use it throughout the development cycle. We will create a development environment, configure a system service, deploy to a container for testing and finally deploy a remote system.</p><ul>
<li>Package management:</li>
<li>Issues: Correctness, Completeness, Interference.</li>
<li><p>Deployment: Source vs. Binary.</p></li>
<li><p>Nix</p></li>
<li>Isolation: Hashing build inputs.</li>
<li>Making build environment.</li>
<li>Demo: Building a package.</li>
<li><p>Source & Binary deployment.</p></li>
<li><p>NixOS</p></li>
<li>Configuration implies Installation.</li>
<li>Configuration management & Abstraction.</li>
<li><p>Demo: Generate configuration files around a service.</p></li>
<li><p>NixOps</p></li>
<li>Provisioning a configuration.</li>
<li>Demo: Testing deployment.</li>
</ul>
Nicolas B. Pierron
Nix - Package Manager
NixOS - Linux Distribution
NixOps - Cloud Deployment Tool
12:0000:55H.1302 (Depage)upstream_downstreamUpstream DownstreamThe relationship between developer and package maintainerdevroom<p>How is it to be a fairly large project upstream of several Linux
distributions? How is it do be downstream of such a project? Among the
challenges are coordinating between distributions, handling different
expectations from distributions and users, and technical issues such
as making the software easy to package. Using MySQL as the example,
we'll go through several real-life cases and try to see them from both
sides of the developer-maintainer relationship.</p><p>MySQL is the world's most popular open source DBMS, with a large user
base on Linux, Windows, OS X, FreeBSD, Solaris, and others. Besides
direct download from the upstream web site and package repositories,
Linux distributions are the major delivery channels for MySQL. This
talk is based on real-life experiences in the upstream-downstream
relationship between MySQL and the major Linux distributions over the
last few years.</p>
<p>Among the topics covered are upstream's role in coordinating between
the different distributions, how to handle distributions that deliver
on platforms that are unsupported by upstream, handling bugfixes and
requests for new features in stable releases, and how having an
upstream package repository can improve the quality of packages in the
distributions.</p>
<p>The target audience is software developers that have or want to have
their software packaged for one or more Linux distribution, package
maintainers in distributions, and end users wanting to understand more
about how Linux distributions are made.</p>Norvald H. Ryeng
MySQL Server development blog
MySQL Release Engineering blog
13:0000:55H.1302 (Depage)how_coreos_is_built,_modified,_and_updatedHow CoreOS is built, modified, and updatedFrom repo sync to Omaha. devroom<p>Traditional Linux distributions are updated via one of two methods: utilizing package managers like RPM, apt, or pacman or good old "config, make, make install." We will analyze how atomic CoreOS updates are developed, packaged, and distributed in order to sign an image and distribute it to the masses.</p>Brian 'redbeard' Harrington
FOSDEM 2015 Video
14:0000:55H.1302 (Depage)distributions_boring_solved_problemAre distributions really boring and a solved problem?devroom<p>Recently distributions are often perceived as boring, and working mostly on
solved problems, as the focus is moving away to hype stuff such as
configuration management or the Cloud. However, distributions are in the best
spot to address a number of important challenges -- both old ones that never
had a satisfying solution so far, and arising ones. I will describe ongoing
work on some of those challenges (mainly in Debian), as well as some thoughts
on how we could address other challenges.</p><p>The goal of this talk is to review a number of ongoing work in Debian and other distributions, and try to motivate people to work on some important issues. Though centered on Debian due to my experience, I believe that it will be equally valuable for people from other distributions.</p>Lucas Nussbaum
FOSDEM 2015 Video
15:0000:45H.1302 (Depage)the_emacs_of_distrosThe Emacs of DistrosHow GNU Guix Seeks to Empower Usersdevroom<p>What's with Emacs? Its design makes user freedom more practical by putting all the mechanics at the user's fingertips. This talk will explore how GNU Guix and its distribution seek to empower users in a similar way.</p><p>The very design of Emacs empowers users: the whole documentation and source is at their
fingertips, ready to be debugged or changed for immediate effect. Free
software made practical!</p>
<p>What about following that Emacs meme for a complete distro? That's what
the GNU Guix project has been trying to answer. The project has been
developing a package manager and associated GNU/Linux distribution over
the last two years. By using a general-purpose implementation language,
Scheme, and by specializing it to offer high-level abstractions, Guix
and the Guix System Distribution (GNU GSD) empower users by blurring the
distinction between packagers and users, and by offering a uniform, hackable
framework.</p>
<p>This talk gives an update of GNU Guix, and gives insight into how
its design and implementation attempt to enhance software freedom.</p>
<p>We will see how users can fiddle with these foundations without having
to cross barriers imposed by complex C systems and the historical
baggage of a flurry of loosely integrated scripts and tools of varying
languages. The talk will also demo features that set Guix apart from
many other tools: supports transactional upgrades, rollback, per-user
installations, reproducible operating system declarations, and more.</p>Ludovic Courtès
GNU Guix
GNU operating system
FOSDEM 2015 Video
15:5000:40H.1302 (Depage)_centos:_community_build_service_and_infrastructure CentOS: Community build service and infrastructure.Leveraging existing tools and build workflows for RPM distribution.devroom<p>CBS is the community build system for CentOS Special Interest Group members.</p>
<p>The service allows to build package with Koji, the open source Fedora project, against CentOS 5, CentOS 6 and CentOS 7.
Details for leveraging and adapting existing tools to build RPMs from git repositories will be given.</p>
<p>The process uncovered challenges about both RPMs building and their final distribution, we will review them, along with solutions and what remains to be done.</p>
<p>Finally, the supporting infrastructure will be described and key choices highlighted.</p><p>In an agile world, building RPMs and distributing them in a clean and fast way is more and more important for all system administrators.
Providing users with a simple interface and an easy way to deploy test packages, validate their software functionality and finally distribute them is very important.</p>
<p>Koji is the software that builds RPM packages for the Fedora project. It uses Mock to create chroot environments to perform builds.
"Koji" installation and management will be detailed with a review of needed patches.</p>
<p>"fedpkg" is the command line software for Fedora developers. It interacts with dist-git, koji, rpmbuild, git.
"centpkg" provides CentOS specific configuration to interact with CBS Koji instance and git.centos.org.
Both tools are based on rpkg ; a python library (pyrpkg) and example runtime script to interact with git repos housing rpm spec files building through koji like build systems.</p>
<p>An additional challenge is to distribute in well organised repositories the resulting signed RPMs. The adopted process will be detailed,</p>
<p>An insight in the infrastructure needed for building, distributing and signing will be given.</p>Thomas Oulevey
Some documentation about the project
CBS link
FOSDEM 2015 Video
16:3500:30H.1302 (Depage)homebrew_the_good,_bad_and_ugly_of_osx_packagingHomebrew - The Good, Bad and Ugly of OSX PackagingSome of the things that Homebrew does well, badly and the special challenges that OSX packagers need to deal with.devroom<p>Homebrew is a popular package manager for OSX. We have a relatively unusual contribution and maintenance model and some practices that differentiate us from other package management systems on both OSX and on Linux. This talk will discuss some of the lessons learnt from maintaining Homebrew to facilitate discussion of how we and other package managers can do better.</p><p>The audience for this talk is primarily developers of other package managers and maintainers of Unix distributions. We all do things in slightly different ways so this talk aims to facilitate discussion of what we can do better and how we can work together to minimise repeated work. Audience members will learn about Homebrew, how to encourage more contributions to package managers and how to handle a large number of packages will very few maintainers and time spent.</p>
<p>The plan would be a 15m somewhat interactive talk with 15m discussion afterwards.</p>Mike McQuaid
Homebrew homepage
Homebrew on GitHub
FOSDEM 2015 Video
17:1000:50H.1302 (Depage)get_more_people_intrested_in_your_distros_users_groupGet more people intrested in your distros users group.Advice from someone who has tried, failed and tried again.devroom<p>This talk will discuss the practical ways that someone who is wanting to grop either a community or a meetup around their project or distro they use. Aimed for developers who might be more into the back end side of things, this talk will attempt to show people ways that are both often overlooked and easy to implement for the both the average user and the experienced developer.</p><p>Have you ever wanted to grow your projects community, both at home or on a global scale? This talk will go in depth about the problems most people face when they attempt to grow a users group and discuss the areas that people can easily work on to make their users group, or even community as a whole, be a thriving member of the free software world. If you have thought that running meetups is too much work, and afraid to try, this talk will show how meetings and gatherings can plan themselves, and ultimately become the best way to grow your projects community. I will mainly focus on the Ubuntu users groups I have run in the past and still run today. This will be the place where most of my examples come from and where my information will be from.</p>Philip Ballew
FOSDEM 2015 Video
18:0500:50H.1302 (Depage)providing_an_lts_distro_with_gentoo_prefixProviding an LTS distro with Gentoo Prefixat Salomon Automation GmbH - a case study.devroom<p>Why Salomon Automation GmbH has need for Gentoo Prefix.
How to provide an LTS distro based on Gentoo Prefix.</p><p>In this lecture, after telling about why Salomon Automation GmbH needs something like Gentoo Prefix,
and a short overview of the differences between Gentoo Linux and Gentoo Prefix,
I'll show how we manage to combine the rolling distribution concept of Gentoo with the Long-Term Support concept.</p>Michael Haubenwallner
FOSDEM 2015 Video
18:5500:05H.1302 (Depage)see_you_tomorrowSee you tomorrowClosing remarks for the first day of the Distributions Devroomdevroom<p>Please do share your impressions of the first day at the distributions devroom.
What was great, what can be improved?
What would you like to see in the future?</p>Andreas Thienemann11:0000:05H.1308 (Rolin)welcomeWelcome to the Legal and Policy Issues Devroomdevroom<p>Now in its fourth year, the FOSDEM Legal and Policy Issues DevRoom covers topics of licensing, legal, governance issues, and more as it relates to Open Source and Free Software projects.</p>
<p>Attendees are welcome to come and engage in lively debate with our excellent speakers. Please come with your questions, comments or concerns. The DevRoom talks are carefully chosen to avoid merely being introductory: we believe that FOSDEM attendees are well informed on these issues, and we welcome participation for all. Our goal in organizing this DevRoom is to bring the previously secretive and non-public discussion on these sorts of issues to a public forum.</p>Tom MarbleBradley M. KuhnKaren SandlerRichard Fontana11:0500:40H.1308 (Rolin)opensourcebydesign Open Source by Designdevroom<p>It’s time for GitHub to focus on helping oss thrive. Our "Open Source by Design" project includes three steps. The first step is set to wisely alter the “no license” default, and is based on data we’ve purposefully accumulated. The second step aims to create governance templates that prevent problems that hamper projects. The third step is a new service to help projects comply with license requirements of third party code. The final part of the plan is the project's evaluation metrics.</p><p>GitHub recognizes that it has a role in the development of open source code. For starters, and as a platform, GitHub obviously hosts a great deal of it. As a product, GitHub's primary and presumed workflow is like that of an open source project, with loose or disaggregated networks of project maintainers, contributors, and users. And even as a corporation, GitHub has at times attempted to organize itself according to open source models, experimenting with non-coercive, collaborative, and geographically disparate structures of corporate organization.</p>
<p>GitHub's internal legal counsel wishes to discuss what GitHub can do to help existing open source projects thrive, to support new projects and new contributors, and to promote the development of the open source community. More specifically, and given GitHub's unique vantage point, GitHub Legal is working on projects utilizing tools of governance and process to contribute to open source in new ways. We wish to present the details of an "Open Source by Design" project in four parts.</p>
<p>The first part relates to altering the default understanding as to what it means for a project to be hosted without an explicit license on GitHub. We show why we need to tread with care when we alter this default, which data we are collecting that is intended to help us choose the new default wisely, and where that data seems to lead.</p>
<p>Our second part aims to help introduce governance infrastructure to open source projects in order to solve problems that such projects may some day face. We place particular focus on problems that, in GitHub's experience, often hamper open source projects as they transition along some relevant axis, be it user makeup, maintainer makeup, rate of adoption, commercial developments, design disputes, ownership disputes or the like. We believe that by developing and offering some measure of template governance structures, much confusion and many challenges that bedevil open source projects may be avoided.</p>
<p>We are sensitive to the potential side-effects of such a project, such as the stifling of alternate project organization and governance models. Another interesting aspect of study would be to what extent, if any, such bottom-up models of project self-governance would influence, supplement, or even act take on the role of law as they themselves became subject to things like increased adoption and standardization. This question seems particularly relevant in areas where formal legislative intervention is light.</p>
<p>The third part of an "Open Source by Design" project would be a new compliance service that aims to help projects comply with license requirements of third party code that they use, to avoid license inconsistencies where they actually occur and flags preventing the neglect of licensing.</p>
<p>Finally, we've given much thought to the metrics by which we would gauge the success of the different steps of this project once implemented and that could help us plan the second stage of the project.</p>Julio Avalos11:4500:25H.1308 (Rolin)appstoresCopyleft licenses and the appstoresdevroom<p>This talk is an overview of the current compatibility of the various app stores with the major copyleft licenses.</p>
<p>I will then speak about the technical limitations of what those platforms impose on application licenses.
I will also cover license strategies to have cross-platform FLOSS applications distributed on those app stores.</p><p>This talk is an overview of the current compatibility of the various app stores (Apple App Store, Google Play Store, Windows Store, BB, etc...) with the major copyleft licenses.</p>
<p>I will then speak about the technical limitations of what those platforms impose on application licenses, notably on Android, where a large part of the userland is licensed under Apache 2.</p>
<p>I will also cover license strategies to have cross-platform FLOSS applications distributed on those app stores, if one would like to do it.</p>
<p>Most of the information gathered here are based on the work we did on VLC to get it running on numerous mobile platforms.</p>Jean-Baptiste Kempf
JBKempf Blog
12:1500:25H.1308 (Rolin)spdxSPDX: Debunking the myths and misunderstandingsdevroom<p>The SPDX specification is a standard format for communicating the components, licenses, and copyrights associated with a software package. Despite that relatively simple explanation, myths and misunderstandings seem to abound as to what SPDX does and does not do; whom benefits from SPDX and how; and more. This talk will address some of the commonly heard myths and misunderstandings.</p>
<p>This talk will also describe the key changes accompanying the upcoming official release of SPDX 2.0.</p>Jilayne Lovejoy12:4500:40H.1308 (Rolin)cryptoCrypto Wars 2.0 and the Free Software Responsedevroom<p>Recent revelations about the scope of government surveillance have touched off renewed interest in encryption and personal data privacy, and prompted technology companies to offer more protections for users' data. In response, the U.S. government has made moves toward increased regulation of encryption software. This talk will discuss the laws regulating surveillance and cryptography, how those laws apply to free software, and opportunities for community response to the new crypto wars.</p>Aaron Williamson13:3000:25H.1308 (Rolin)mozillaidMozilla ID - Developing and protecting a living branddevroom<p>I propose to introduce the audience to Mozilla's new brand project Mozilla ID. Mozilla ID is a very new project, launched in August 2014 and headed by Mozilla's art director Sean Martell. Mozilla ID aims at developing the core pillars for a new, living Mozilla brand, consisting of a word mark and logo. Mozilla's aim with the project is to allow unlimited variants of the Mozilla logo which will be based on live community data. There will be a logo generator that Mozilla is currently working on where contributors can select the data feeds and colors and it will output SVG versions of the logo for use. People will be able to customize the look based on the options they choose. Effectively, the openness and community contribution that is at the core of Mozilla's software projects will be transferred also to its branding, enhancing community identification on that additional level.</p>
<p>I will first of all introduce the project and will show images to illustrate the ongoing creative development process led by Sean Martell.</p>
<p>Moving on to the protection angle: I will speak about traditional patterns of trademark protection and enforcement and how these are being challenged by the market and marketing realities of our modern times. I will speak about the advantages and appeal of living, or fluid, brands, giving examples (such as Google doodle, MTV, Absolut Vodka, to name but a few). I will point out risks and provide guidance on how a living brand can bridge the divide between valuable community contribution and identification and the restrictions of trademark protection. Essentially, a living brand can have a steady distinctive core which suffices to maintain trademark protection, while certain of its characteristics may be subject to change, community contribution and innovation. The key challenge is to define the core that is to be the subject of trademark protection, without unduly restricting the process of innovation that makes the brand a living brand.</p>Anthonia Ghalamkarizadeh
Active member of the Marques team of trademark bloggers
Talk at fsfe 2013 on Mozilla's trademark enforcement
Discussion of a decision of the District Court of Hamburg on the license conditions of the open source software "netfilter/iptables"
Regular publications in Hogan Lovells' IP Newsletter
14:0000:50H.1308 (Rolin)gnomeFog of War - The GNOME Trademark Battledevroom<p>The backstory of one of the most remarkable trademark battles in Free Software in recent times. Sri Ramkrishna, Director of the GNOME Foundation and Pamela Chestek, GNOME's trademark counsel will talk about the remarkable 24 hours in a public fundraiser that and the events leading up it.</p><p>GNOME's public fundraiser to fight for its trademark will go down as one of the most successful operations by a Free Software project and expression of the political power of the Free Software community. Join Pamela Chestek, GNOME's trademark legal counsel and Sri Ramkrishna, Director of GNOME Foundation and learn how events unfold and how a single tweet started a campaign that ended so remarkably.</p>Pamela ChestekSri Ramkrishna
FOSDEM 2015 Video
15:0000:40H.1308 (Rolin)sambaWhy Samba moved to GPLv3Why we moved, what we gained, what we lost.devroom<p>This talk will cover the reasons Samba moved license from GPLv2+ to GPLv3+, what we gained as a community out of it, and also the downsides we have experienced from the decision. This talk should interest any project thinking of moving to GPLv3 from an existing license, and also projects considering a new license.</p><p>This talk will cover the reasons Samba moved license from GPLv2+ to GPLv3+, what we gained as a community out of it, and also the downsides we have experienced from the decision. This talk should interest any project thinking of moving to GPLv3 from an existing license, and also projects considering a new license.</p>Jeremy Allison
FOSDEM 2015 Video
15:4500:25H.1308 (Rolin)copyleft_in_europeCopyleft in Europe: How does copyleft interact with Exhaustion Of RightsTo what extent can a copyright owner control copyleft code once it's placed in circulation in the EEA?devroom<p>Copyleft licences work by conditioning distribution of a work's binary on providing access to relevant source code. Under the European Computer Programs directive, once a copy of a computer program has been placed in circulation in the EEA by or with the consent of the copyright holder, the copyright holder can no longer control circulation ("exhaustion of rights"). Is the condition to provide source an attempt to control circulation, and is the exhaustion principle problematic for the GPL and other copyleft licences? Commentators have suggested that this is fatal to copyleft, but we argue these analyses are overblown.</p>Amanda BrockAndrew Katz
FOSDEM 2015 Video
16:1500:40H.1308 (Rolin)legal_best_practicesTowards legal criteria for best practices in free software/open source developmentdevroom<p>This talk will propose several ideas for inclusion in a set of modern
legal standards for good practices in FLOSS development and governance
beyond the traditional emphasis on software freedom-conformant source
code licensing. The theme will be maximizing diverse, egalitarian and
authentically meritocratic participation, minimizing legal
impediments, and avoiding distortion or corruption by powerful project
stakeholders. Ideas to be discussed include distributed and
symmetrical copyright licensing, fair trademark policies, appropriate
approaches to patent nonassertion by corporate participants, and
commitments by projects or associated foundations to promoting diverse
and safe environments for development work.</p>
<p>Ideas discussed in this talk may form the basis for work done by the
Open Source Initiative during the coming year.</p><p>It was traditionally assumed that licensing of source code under a
free software/open source license, with its basic forkability
guarantee, was sufficient for software to <em>be</em> free. More recently,
some have suggested that source code licensing criteria is
insufficient to capture what is truly normative in the development and
governance of FLOSS projects, but no settled view on what constitutes
"open development" or "good FLOSS governance" has yet emerged.</p>
<p>While some ideas that have been suggested for defining so-called "open
development" and good project governance focus on technical criteria,
this talk will discuss those that are essentially legal in nature, and
the policy justifications for their inclusion. At root these concern
the desire to maximize diverse participation on an egalitarian and
authentically meritocratic basis with a minimum of legal or other
structural impediments, and an avoidance of distorting or corrupting
influence by relatively powerful or influential project participants
or governance stakeholders.</p>
<p>Important examples of such legal criteria include distributed
copyright ownership coupled with symmetrical inbound/outbound
licensing, as well as community fairness in trademark policy
formulation and the arguable need for external mechanisms of patent
nonassertion for projects dominated by corporate contribution. I will
also argue that it is an essential legal feature of good governance
for projects or their affiliated foundations to affirmatively prevent
or police abusive or exclusionary behavior by project participants.
Some focus will be placed on problems presented by large-scale,
well-known projects that receive significant corporate participation.</p>Richard Fontana
FOSDEM 2015 Video
17:0000:25H.1308 (Rolin)patentsSoftware Patent Litigation Data: What Have We Learned? devroom<p>The huge increase in software patent litigation over the last 15 years has produced reams of articles, cost fortunes and even snagged the US President's attention. But when something goes on for long enough, it also produces data -- lots and lots of data. So what have we learned from all the data?</p><p>The huge increase in software patent litigation over the last 15 years has produced reams of articles, cost fortunes and even snagged the US President's attention. But when something goes on for long enough, it also produces data -- lots and lots of data. So what have we learned from all the data?</p>
<p>Non-practicing entities are growing and litigation costs increase each year, but that's hardly the whole story. Even as defensive strategies are proliferating, software patent plaintiffs are becoming much more sophisticated. Software patent trolls are expanding their reach internationally and practicing entities are increasingly embracing troll-like behavior. Ms. Nicholson will examine data from academic and industrial sources to see what it all means for Linux, Android, GNU and the rest of the free software community. More data provides more opportunities to defend free software from the pernicious effects of vague and overly broad software patent aggression, as long as we are willing to use it.</p>Deb Nicholson
FOSDEM 2015 Video
17:3000:50H.1308 (Rolin)fork_and_ignoreFork and Ignore: Fighting a GPL Violation By Coding InsteadThe Story of Kallitheadevroom<p>Typically, GPL enforcement activity involves copyright infringement actions which compel license violators to correct errors in their GPL compliance,thus yielding the policy goals of the GPL: the rights of developers and users to copy, share, modify and redistribute.</p>
<p>While traditional enforcement is often undeniably necessary for embedded electronics products, novel approaches to GPL violations are often possible and even recommended for more traditional software distributions.</p>
<p>Recently, Conservancy engaged in an enforcement action whereby,rather than fight the violator in court, Conservancy instead fostered and provide resources and assistance to a vetted GPL-compliant fork of a violating codebase.</p>
<p>This talk discusses which scenarios make this remedy optimal and lessons learned. The talk includes some licensing and technical content about vetting licensing information of codebases.</p>Bradley M. Kuhn
Slides from an earlier version of this talk
FOSDEM 2015 Video
18:2500:35H.1308 (Rolin)terminationDiscrimination & ReciprocityTermination Clauses in FOSS and FRAND Licensesdevroom<p>Termination provisions are a standard component of license agreements. FOSS licenses and FRAND commitments, however, are not standard agreements, as they are founded on ideals of non-discrimination. Termination clauses, which permit licensors to cancel rights of specific licensees, contradict these ideals. The talk will clarify the contradictions between these principles and license termination provisions, explain why termination provisions are nonetheless justified in these models, and illustrate these explanations by reference to a number of current debates.</p><p>A fundamental principle of FOSS and FRAND licensing is that the rights under the license must be made available to all end users or willing licensees. The Open Source Definition, for example, expressly provides that open source licenses must not “restrict any party” from redistributing the licensed software, and that such licenses cannot “discriminate against any person or group of persons”. The principles of FRAND licenses are perhaps less sharply defined, but the “ND” in FRAND also imposes a similar requirement of “non-discrimination”.</p>
<p>Notwithstanding these principles, many FOSS licenses provide that licensees that breach the terms of the license can have their rights terminated. FOSS and FRAND licenses may also include “defensive termination” provisions, which allow for the termination of rights in retaliation for patent infringement suits. Such provisions allow licensors to discriminate against specific and identifiable licensees by revoking previously granted rights. Typically, according to these provisions, once a licensee’s rights are terminated the licensor has no obligation to reinstate these rights. Even if the licensor does agree to reinstate the licensee’s rights, the licensor may discriminate against the licensee by imposing restrictions or obligations that would not be permitted under the original terms of the license.</p>
<p>One could imagine an alternative means of structuring FOSS and FRAND licenses that, in hewing more closely to standards of non-discrimination, would not include termination provisions. Licensors would perhaps be required to allow licensees to continue exercising their rights, even as the licensor brings suit against the licensee for copyright infringement or breach of the license. Licensors would not be allowed to impose additional obligations on a licensee in exchange for the reinstatement of license rights.</p>
<p>The talk will advance several explanations of why termination provisions are nonetheless a justified breach of the non-discrimination principles in FOSS and FRAND licenses. Such explanations will include a discussion of the basic principles of non-discrimination and reciprocity in FOSS licenses and FRAND commitments, an analysis of possible remedies available to licensors aside from termination, and an exploration of the legal risks to licensors and licensees of not including termination provisions in the license. The talk will also illustrate the tensions between termination provisions and non-discrimination principles by reference to a number of current debates.</p>Eli Greenbaum
FOSDEM 2015 Video
10:3001:00H.1309 (Van Rijn)constructive_conversationHow to have a constructive conversation about awful infrastructure codedevroom<p>Now that expressive infrastructure as code models nearly everything in the datacenter, we have a different problem — weeding out bad infrastructure code! Quality coding practices aren’t new but most operations teams are learning them for the first time. This talk will offer guidance on how to identify various facets of infrastructure code quality. Though examples are offered in the Puppet DSL, this talk is designed for anyone using configuration management software to manage infrastructure and applications.</p><p>Now that expressive infrastructure as code models nearly everything in the datacenter, we have a different problem — weeding out bad infrastructure code! Quality coding practices aren’t new but most operations teams are learning them for the first time. The Puppet Forge’s product manager Ryan Coleman will discuss what he’s learned from the thousands of examples available on Forge. Though examples are offered in the readable Puppet DSL, this talk is designed for anyone using configuration management software to manage infrastructure and applications. No knowledge of Puppet is required to learn from this session.</p>
<p>Ryan has been knee-deep in infrastructure code for 4 years, starting as a user of Puppet at Penn State and moving on to manage the Puppet Forge at Puppet Labs, a shared repository for great (and not so great) infrastructure as code written in the Puppet DSL. He’ll cover how to identify various quality characteristics and why they matter in your day to day. It’s not just about conforming to a style and aligning your braces! After this talk, you should be equipped to have a conversation with your team about how to collectively improve the code base and reduce long-term maintenance.</p>Ryan Coleman
Puppet Forge
11:3001:00H.1309 (Van Rijn)better_devopsBetter Devops through ThieveryEffective Practices for Infrastructure as Codedevroom<p>The advent of Infrastructure as Code (IaC) has radically changed how IT
infrastructure is built and maintained. Instead of building and maintaining
servers by hand, tools like Puppet can be used to describe and automatically
configure entire data centers.</p>
<p>The implication of this is that the workflow of IT operations is starting to
resemble the workflow of a traditional software developer. Writing code to
make infrastructure changes instead of directly making changes opens up new
opportunities for how changes can be made. The software development field has
had 30+ years to learn how to effectively develop code, and their hard won
wisdom can be ripped off wholesale to make it a breeze to develop IaC.</p>
<p>This talk will discuss the following:</p>
<ul>
<li>Using version control tools to more effectively administer infrastructure</li>
<li>Writing and using tests to confidently make changes and get feedback earlier</li>
<li>Using continuous integration services to test changes and run deployments</li>
</ul>
Adrien Thebo
FOSDEM 2015 Video
12:3000:50H.1309 (Van Rijn)interfacing_infrastructureInterfacing infrastructure as code with non-expert usersdevroom<p>Implementing a tool to automate IT infrastructure management has many undeniable benefits. But that doesn't mean there aren't some drawbacks too (usually outweighed by the benefits) that we should be considering, and working to reduce or remove.</p>
<p>Implementing a tool like this in a team usually has a pretty significant impact: new processes, new language(s) to learn, new way of doing pretty much everything on your infrastructure. These tools are complex, so a minority of the team tends to become experts in it, and tries to lead the others. Resistance to change is common and understandable, but unfortunately, this can end up with some of the team members being left behind by the sudden and massive changes to their work. This is clearly not a Good Thing, and certainly not showing very good inclusiveness towards everyone. It is also making some configuration management projects fail, which is definitely a Bad Thing for those of us trying to implement them.</p>
<p>How to improve this situation is a topic dear to me. This has always been the focus of the Rudder and ncf open source projects I work on - making our technologies more accessible, easier to adopt and simpler to understand. Some key points we have focused on include:
- Avoiding the <em>necessity</em> to write code (user interfaces of course, but that can be combined with other users writing code)
- Separating roles so that experts can implement the <em>how</em> and others can focus on the <em>what</em>
- Minimising the amount of effort required (sane and non-surprising default values, auto-configuration where possible, ...)</p>
<p>This talk will explain some of these concepts, and show how we have achieved considerable success using the ""ncf builder"" web interface that can be used to write configuration management policy without writing any code (see http://www.ncf.io).</p>Jonathan Clarke
FOSDEM 2015 Video
13:3000:30H.1309 (Van Rijn)consul_first_stepsConsul first stepsLearning Service Discoverydevroom<p>Consul is a Service discovery tool created by Hashicorp, in this talk I will guide the audience through the basics of its functionality and how to take the best out of it.</p><p>Consul is a Service discovery tool created by Hashicorp, in this talk I will guide the audience through the basics of its functionality and how to take the best out of it.
The talk will be composed of the following parts:
1- What is Service Discovery
2- What is Consul
3- Consul components
4- How does it fit in your platform (cloud, docker, hardware)
5- Advanced functionality
6- Extra modules</p>Marc Cluet
FOSDEM 2015 Video
14:0000:50H.1309 (Van Rijn)contributing_foremanContributing to Foreman: where and howdevroom<p>The Foreman project and its community is varied, big, and it can take very long to understand what is really going on. Luckily, a group of people is actually working full-time on making it a better project. Contributors often scratch their own itches, and move on.</p>
<p>This talk is meant to give you an overview about areas of Foreman that badly need help, refactoring, and some of the efforts the Foreman community is doing to mitigate technical debt and keep on improving. In short, we want to highlight our flaws so you can target your efforts to the right place.</p><p>The Foreman project and its community is varied, big, and it can take very long to understand what is really going on. Luckily, a group of people is actually working full-time on making it a better project. Contributors often scratch their own itches, and move on.</p>
<p>This talk is meant to give you an overview about areas of Foreman that badly need help, refactoring, and some of the efforts the Foreman community is doing to mitigate technical debt and keep on improving. In short, we want to highlight our flaws so you can target your efforts to the right place.</p>Daniel Lobato
FOSDEM 2015 Video
15:0001:00H.1309 (Van Rijn)healthy_communityIs your community healthy? Metrics on the top CM softwaredevroom<p>In this talk, I'll illustrate and analyze the health of the top configuration-management software, as well as making data-driven predictions and looking at major showstoppers. I'm going to draw comparisons across communities as well as within them, to make it clear where the critical mass and acceleration are.</p><p>Drawing on data from a wide variety of sources like GitHub, Stack Overflow, bug trackers, external modules, and mailing lists, I'll illustrate and analyze the health of the top configuration-management software. By looking at historical data, we can also make some rough predictions about future directions as well as pitfalls to avoid. I'll draw comparisons across communities like Puppet, Chef, CFEngine, Ansible, and SaltStack to help you understand where things stand today and where they're headed in the future.</p>Donnie Berkholz
FOSDEM 2015 Video
16:0001:00H.1309 (Van Rijn)juju_orchestrationOrchestration of Services with JujuHow to orchestrate any machine or cloud with Jujudevroom<p>Orchestration is a hot topic today. Juju has been tackling the issue of orchestration for the past four years. In this talk we'll cover how Juju handles orchestration, how Juju can fit in to your existing stack, and demonstrate how Juju can orchestrate common deployments.</p>Marco Ceppi
Homepage
Charms!
FOSDEM 2015 Video
17:0001:00H.1309 (Van Rijn)consuming_foss_configurationConsuming Open Source Configuration Infrastructure and configuration is now code, and some of it is open source. What is it like to be downstream of one of these projects?devroom<p>Infrastructure and configuration are now being represented as code. This code is then put into git repositories, OSI approved licenses are attached, and the code published. This creates an Open Source project. There are several instances of this now: OpenStack, Mozilla, Wikimedia, and Jenkins all have open sourced their infrastructure. It is, however, relatively easy to say "our configuration is totally open source, anyone can use it", and it is actually much harder to actively consume someone else's configuration. My team consumes one of these open source configuration projects and sits downstream from it. I will present on we're doing, what has worked, what hasn't, and what we're going to do next. I'm going to give actionable advice for people who are consuming or want to be consuming another organization's open source infrastructure, and I'll be providing some feedback to those who are currently open sourcing their infrastructure on how to make it easier to consume.</p><p>OpenStack's infrastructure team has an open source infrastructure primarily using the Puppet configuration management tool. Using hiera they are able to separate secrets from puppet code, and using roles they can keep OpenStack specific logic from generically reusable configuration. The infrastructure is multifaceted but the core of it is gerrit for code review, cgit for code checkout, zuul for merging/gating, jenkins and gearman for testing with apache, mysql, and zmq doing what they do best.</p>
<p>My team at HP consumes this open source infrastructure and replicates it internally. We use their Puppet code, and do the dance of the downstream: patch/submit patch upstream/reconsume patch after it has landed upstream. We call the project Gozer and our admins are called Ghostbusters. We attend the weekly meeting that upstream holds, and some of us are well on our way to having our upstream commit bits, but our core focus is on maintaining the downstream ci/cd pipeline for HP.
Configuration management is the reason any of this is possible. I'm going to talk about specific ways Puppet code can be written to be re-consumable, and highlight a couple 'dead ends' we walked down before finding some successful patterns.</p>
<p>In this presentation I will cover:</p>
<pre><code>The problems upstream is solving, the problems downstream is solving, where those goals align and where they differ
How we bootstrapped our infrastructure(and why that was a problem)
How we participate upstream
How the Puppet codebase has evolved to be more consumable, where it started, and where it is now
How we dealt with different network topology between our infrastructure and upstream's infrastructure
How we maintain parity with upstream (consistently consuming it)
How we consume data, not just code
Answer questions
</code></pre>Spencer Krum
Upstream open source ifnra
FOSDEM 2015 Video
18:0000:30H.1309 (Van Rijn)public_puppetThe open source OpenStack project infrastructureFully public Puppetdevroom<p>The OpenStack Infrastructure team manages a fully open source infrastructure which includes a continuous integration system, as well as tools OpenStack developers around the world use on a day to day basis. This includes the OpenStack wiki, IRC bots, Etherpad, ELK stack and more.</p>
<p>This talk will explain how we've open sourced all of our configuration with Puppet and challenges faced by both our team and downstream consumers of our infrastructure.</p>Elizabeth K. Joseph
OpenStack CI Documentation
FOSDEM 2015 Video
18:3000:30H.1309 (Van Rijn)monitoring_serviceMonitoring As A Servicedevroom<p>Building a modern monitoring environment is more than just using the latest awesome tools, collecting all of the data, displaying numerous graphs and knowing when things go wrong. A modern monitoring environment is more than tools and infrastructure. It's a service. A service you provide to your whole team: developers, operations, security, and the business. This talk is about how you can build monitoring environments (or extend your existing environment) that are customer-focussed rather than infrastructure focussed. We'll see how you can treat your needs and the needs of your organization as customer requirements and build monitoring that is consumable and configurable on demand.</p><p>Building a modern monitoring environment is more than just using the latest awesome tools, collecting all of the data, displaying numerous graphs and knowing when things go wrong. A modern monitoring environment is more than tools and infrastructure. It's a service. A service you provide to your whole team: developers, operations, security, and the business. This talk is about how you can build monitoring environments (or extend your existing environment) that are customer-focussed rather than infrastructure focussed. We'll see how you can treat your needs and the needs of your organization as customer requirements and build monitoring that is consumable and configurable on demand.</p>
<p>We'll focus on:</p>
<ul>
<li>What does monitoring as a service look like?</li>
<li>How do we move to a customer-driven service?</li>
<li>What tooling do we need to build, change or extend?</li>
<li>How does this change how your monitoring environment operates?</li>
<li>What new components and metrics do we need to collect and measure?</li>
</ul>
<p>By the end of the talk you should be able to build a plan to make your monitoring available as a service to anyone in your organization.</p>James Turnbull10:3000:25H.2213mediaflossHow to make professional media users care about FOSSdevroom<p>Many professional users at broadcasters and other institutions want to use FOSS but at the same time in the eyes of others FOSS doesn't get the respect it deserves for a variety of technical and social reasons. This presentation will look at some examples of how this can be improved using examples from the speaker's experience where FOSS is used for mission critical uses, mostly in compression but also in other areas.</p>Kieran Kunhya11:0000:25H.2213mmbtoolsODR-mmbTools Digital Radio DevelopmentDigital Radio tools. Latest News on the Software Side of Thingsdevroom<p>The ODR-mmbTools is a collection of tools that can be used to generate a Digital Audio Broadcasting signal through Software-Defined Radio. These tools are used in a 24/7 production setup in Switzerland.</p>
<p>I have been working on improving them since my studies, and present here the current state of these tools and a small outlook on future work.</p>Matthias P. Brändli
Opendigitalradio
11:3000:25H.2213subtitlingOpen source tools for new subtitle standardsdevroom<p>Open Source software can play a critical role for the roll-out of broadcast standards. This is also true for new caption and subtitle standards. The focus on the presentation will be on the OS Subtitle Conversion Framework (SCF). SCF consists of different software modules that aim at a faster and conformant adoption of the EBU-TT standard, an XML based subtitle standard defined by the EBU. Apart from SCF also other OS software that are important for the implementation of subtitles standards will be discussed (e.g. mp4box from GPAC or the WebVTT parser from Anne van Kesteren).</p>Andreas Tai
Subtitle Conversion Framework (SCF) on GitHub
Timed Text Markup Language (TTML) Validation Tools on GitHub
WebVTT parser and validator http://quuz.org/webvtt/ on GitHub
Subtitling with GPAC on GitHub
]EBU Tech 3264-1991 EBU subtitling data exchange format (PDF)
EBU Tech 3350 - EBU-TT part 1 (PDF)
EBU Tech 3380 EBU-TT-D (PDF)
Timed Text Markup Language 1 (TTML1) (Second Edition)
WebVTT: The Web Video Text Tracks Format
http://
12:0000:25H.2213upipeAutomatic Multicast Tunneling & Upipe: a Proof of ConceptMulticast inside a web browserdevroom<p>The presenter will explain Automatic Multicast Tunneling, a draft RFC allowing to extend multicast content distribution to unicast-only connected receivers, and its implementation in the flexible multimedia framework Upipe. He will also show how it is possible to take advantage of AMT in web browser, using the Native Client plug-in of Upipe.</p>Christophe Massiot
AMT proof of concept
AMT RFC draft
FOSDEM 2015 Video
12:3000:25H.2213tvopensourceWhy open source lets a broadcaster sleep at nightOpen source project within a TV Broadcast Workflowdevroom<p>This talk is about how different opensource tools are use by Trace TV team</p>Emmanuel Aldeguer
Trace official website
FOSDEM 2015 Video
13:0000:25H.2213daalaDaala Video CodecResearch Updatedevroom<p>Daala is a next-generation royalty free video codec under development by Xiph.org and Mozilla.</p>Nathan Egge
FOSDEM 2015 Video
13:3000:25H.2213gpacProducing media content for the browsers using GPACLatest developments for media web distributiondevroom<p>This talk will present the latest developments in GPAC regarding the media production for playback in modern browsers. This will include aspects related to subtitling (WebVTT, TTML) and graphics (SVG) streaming, MPEG-DASH and HTML5 Media Source Extensions, in particular using the MP4Box.js MP4 demuxer.</p><p>Producing media content for the browsers using GPAC: Latest developments for media web distribution</p>
<p>This talk will present the latest developments in GPAC regarding the media production for playback in modern browsers. This will include aspects related to subtitling (WebVTT, TTML) and graphics (SVG) streaming, MPEG-DASH and HTML5 Media Source Extensions, in particular using the MP4Box.js MP4 demuxer.</p>Romain BouqueauCyril Concolato
http://www.gpac.io
http://github.com/gpac/gpac
FOSDEM 2015 Video
14:0000:25H.2213gstreamerGStreamer in the living room and in outer spacedevroom<p>This talk is targeted at anyone interested in multimedia, whether
professionally or as a hobbyist. Be it as an application developer,
framework architect, embedded system integrator, or anybody else.</p>
<p>GStreamer is a highly versatile plugin-based multimedia framework that
caters to a whole range of multimedia needs, including desktop
applications, streaming servers or multimedia middleware; embedded
systems, desktops, or server farms. It is also easy to get started with,
and is cross-platform, with support for Linux, Android, OS/X, iOS, and
Windows, as well as *BSD and Solaris.</p>
<p>In this talk we will present an overview of some of the many different
areas and use cases where GStreamer is deployed nowadays and what advantages
the use of GStreamer had in these areas. We will talk about web browsers,
set-top boxes, mobile devices, live video mixing applications,
audio/video editors, broadcasting applications, research of gravitational
waves and the International Space Station.</p>
<p>Join us to find out what GStreamer can do for you!</p>Tim-Philipp Müller
FOSDEM 2015 Video
14:3000:25H.2213vimeoVimeo and the open source communitydevroom<p>How Vimeo <em>plays nice</em> with the open source community.</p><p>The Vimeo magic is a wonderful collection of Open Source multimedia tools, all able to talk together, whether processing video or audio or images. But what really matters in the Open Source philosophy is the people who are behind this incredible movement.</p>
<p>In this presentation, we will explore how Vimeo leverages open source and how healthy it is to give back to the community whenever possible. Many Vimeo developers are also members of relevant Open Source projects, taking part in application and API design, maintainability and infrastructure discussions.</p>Vittorio Giovara
Vimeo
FOSDEM 2015 Video
15:0000:25H.2213vlcVLC 2.2.0Videolan VLCdevroom<p>This presentation will cover the new features in VLC 2.2.0 and 3.0.0 that we introduced.</p>
<p>It will cover also the updates in libVLC APIs for developers</p><p>This presentation will cover the new features in VLC 2.2.0 and 3.0.0 that we introduced.</p>
<p>It will cover also the updates in libVLC APIs for developers.</p>Jean-Baptiste Kempf
FOSDEM 2015 Video
15:3000:40H.2213open_video_playersWeb Video Players Architecture & Open Source CommunityIn depth with Video.js, JwPlayer, and Kaltura Playerdevroom<p>This talk brings together presentations from three very popular web players Video.js, JwPlayer, and Kaltura Player ToolKit. Collectively these project represent a huge percentage of online video views and enable video robust video delivery for many content makers around the world. In this presentation, each project will present it’s architectural approach to contemporary multi-screen, multi-browser video playback. Projects will highlight how they work with the open source community and with tips for integration into your applications or websites. After the short presentations there will be a chance for QA for the projects.</p>Michael DaleItay KinnrotSteve HeffernanPablo Schklowsky
FOSDEM 2015 Video
16:1500:25H.2213kodiKodi mediacenter (XBMC) past, present and future.A brief history on the trials of an open-source media centredevroom<p>A brief overview of Kodi (XBMC) open source Media center. How one of the oldest and largest open source projects originated, the path walked to present day and what the future might hold. Talk will include a brief history overview, what steps were taking to come in current state and what our goals are for the future.</p><p>It's relatively rare and difficult to keep a large scale open source project going year after year without the firm financial backing of a larger organization. Since its inception in 2002, the software currently called Kodi has gone through numerous changes, both at the software level and at the organizational level, and has encountered numerous difficulties along the way, from simple communications problems both internally and with the userbase to larger organizational snafus. In this talk, we'll review how the organization has managed to overcome these problems and continue on.</p>
<p>Topics expected to be covered will include a look at the platforms, distributions, and hardware supported today; a review of the history on the Xbox, the switch to platform agnosticism, and the creation of the Foundation; and plans for the future.</p>
<p>Additionally, an overview of how the organization works and software is developed currently will be presented, along with a look at who uses Kodi, both from a user perspective and a business perspective.</p>Martijn KaijserEjal de Klerk
FOSDEM 2015 Video
16:4500:25H.2213enabling_video_preservationEnabling video preservation through open sourcedevroom<p>Determining what codecs, containers, and specifications should be favored in audiovisual preservation and how to use them is an ongoing dialogue within archives. Media preservation is a relatively small community and thus often relies on technology and recommendations from larger related communities such as broadcast, media production, and increasingly open source development to support the objectives of audiovisual preservation. As the machinery and skills needed to sustain access to film and analog video collections decay it is increasingly urgent for archives to address blocking technological issues in order to re-format legacy audiovisual recordings to digital formats efficiently. This presentation reviews the requirements and demands on technology within audiovisual preservation projects and assesses the opportunities for existing open source technology to contribute to resolving preservation challenges. The presentation will focus on lossless audiovisual codecs, technical and contextual metadata, and both the openness and standardization of relevant file formats.</p>Dave Rice
FOSDEM 2015 Video
17:1500:25H.2213kalturaHarnessing FOSS in an End to End Online Video PlatformLearn how the Kaltura platform builds and optimizes use of many open source components to build amazing online video experiencesdevroom<p>Kaltura is widely used to address a wide range of education, media, and enterprise video needs. In this talk covers how Kaltura interact with open source components for an end to end scalable FOSS video platform. We also cover how the core open source Kaltura platform interacts with these components, giving best practices for your own online video projects weather using a single component or integrating with a larger platform.</p><p>In addition to contributing its core server as an open source video platform offering, Kaltura makes use of many third party FOSS projects. This session will walk attendees through major projects used by the Kaltura platform to ingest, analyze, optimize, record and play video files, and provide guidance in optimizing use</p>
<p>The following projects and their role in our architecture will be surveyed:</p>
<ul>
<li>Kaltura server -- Pulls together all the media services under a unified REST API.</li>
<li>nginx-vod-module - An Kaltura developed Nginx module for On-the-fly repackaging of MP4 files to DASH, HDS, HLS, MSS</li>
<li>Mediainfo - used to analyze source videos to determine how best to handle them</li>
<li>FFMPEG and Mencoder - used in transcoding to optimize source videos so that they'll be best viewed by various devices; i.e: Desktops, tablets and cellphones running different OSes</li>
<li>ImageMagic - used for image manipulation and thumbnail creation</li>
<li>Red5 - used in order to record from webcams, and broadcast live streams.</li>
<li>The Kaltura HTML5 player - used for playback in native and web environments.</li>
</ul>
<p>The session will include a review of our video source detection and optimization processes as well as demos showing how each project is used within the platform.</p>
<p>We will conclude with an overview of our current community activities and focus.</p>Jess PortnoyZohar Babin
FOSDEM 2015 Video
17:4000:25H.2213peer5Peer5 content delivery network and how it uses WebRTC and FOSSdevroom<p>Peer5 is a content delivery network based on WebRTC, a widely adopted open source project.
The talk will be about how we deliver media using a hybrid system of HTTP and peer-to-peer mesh network.</p>
<p>We will review the API which is agnostic to the video technology, and show how it works with MP4, HLS, DASH and open source video players.</p>
<p>We will also cover the advantages of being heavily based on open source projects and how it is compared to client based proprietary solutions in terms of security, portability and more.</p>Hadar Weiss
FOSDEM 2015 Video
18:1500:15H.2213openmediaWrapup, conclusion of Open Media Devroomdevroom<p>Wrap-up and conclusion of the Open Media devroom, next activities.</p><p>Wrap-up and conclusion of the Open Media devroom, next activities.</p>
<p>The Open Media devroom is a new at FOSDEM and co-organised by the European Broadcasting Union and FOMS. It addresses the topics as found in broadcast(radio/TV) and Web media technologies such as video/audio encoding, playout, streaming, broadcasting, metadata . Information of related activities to this topic.</p>Kieran KunhyaMichael DaleMathias CoinchonFrans
EBU Technology&Innovation
Awesome broadcasting list
10:3000:45H.2214cl_style_macroexpansion_applied_to_cCommon Lisp-Style Macroexpansion applied to CA Code Generator from Lisp-Syntax to C-Syntaxdevroom<p>We describe a new free software project, called CGen [name might change], a C
code generator with support for Common Lisp-style macro
expansion. It is based on a new S-Expression based Syntax
for C (and C-like languages) which is transcompiled to C
(or C-like) code. Our code generator supports the simple
and efficient management of variants, ad hoc code
generation to capture reoccurring patterns, composable
abstractions as well as the implementation of embedded
domain specific languages by using the Common Lisp macro
system. We demonstrate the applicability of our approach
by numerous examples from small scale convenience macros
over embedded languages to real-world applications in
high-performance computing.</p>
<p>After successful presentation at ELS in 2014 we decided to
polish our research prototype and make it available as
free software.</p><p>For a full description we would like to refer to the attached paper, which was accecpted and presented at ELS this year.</p>Kai Selgrad
Website of our ELS paper
11:2000:30H.2214wikipedia_text_reflectorWikipedia Text ReflectorEntity Linking in clojure for fundevroom<p>Enitity Linking is a very helpfully technique to improve search on natural text. I will present
a system that allows to first spot entity's and than find related entity's using modern search engines like
solr and elasticsearch.</p><p>In my talk I want to show how to use clojure and raw text, to get a wikipedia reflection
out of a given natural language text. A reflection is a set of related entities from
the wikipedia. I will show how to spot entity's in a given text using the Lucene FST
feature. With the spotted entities I will show how to retrieve additional informations, like related persons, and places by using elasticsearch and the wikipedia category graph. The system is entirely written in clojure, and works in form of a web application with backed and fronted.
The system makes use of the core.async library and the reactive UI library Om.</p>Hagen Tönnies
Clojure
Solr text Tagger
elasticsearch
Om
Sente (Websockets via core.async)
loom (a in memory graph)
Entity Linking
12:0001:00H.2214elisp_small_and_useful_programsEmacs Lisp (Elisp) small and useful programsdevroomEmanuel Berg
http://
13:1000:50H.2214lfe_a_lisp_on_the_erlang_vmLFE - a Lisp on the Erlang VMdevroom<p>This talk will discuss the issues around implemeting LFE (Lisp Flavoured Erlang) on the Erlang VM. The Erlang VM has been specially designed to implement Erlang and as such it has a number of interesting features and limitations which directly influence the design of a lisp running on top of it. We will look at the properties of the Erlang VM and our design goals for LFE and the LFE lisp which this resulted in.</p>Robert Virding14:1001:00H.2214gcc_meltGCC-MELT a translated Lisp dialect inside GCC for customizing the compilerdevroom<p>GCC-MELT see http://gcc-melt.org/ for more is
a Lispy domain specific language (and GPLv3+ implementation, as a GCC meta-plugin)
to extend and customize the GCC compiler (see http://gcc.gnu.org/ for more)</p>
<p>This talk (for people familiar with Lisp, but unfamiliar with GCC internals)
will describe the MELT dialect, the implementation challenges, and some MELT usage,
with the future directions within the MELT project.</p><p>MELT is a Lispy domain specific language to ease the customization of GCC thru particular extensions
(notably for additional coding rules checks and diagnostics, or for additional application-specific optimizations).</p>
<p>MELT is a bootstrapped Lisp implementation (of nearly 100KLOC of GPLv3+ source code), compiled to C++ code fit for GCC internals.
The MELT dialect has several pecularities: it offers both first-class values and other stuff as data kinds;
it provides useful language features (pattern-matching, introspective reflection, meta-programming with macros)
for powerful GCC customization.</p>
<p>MELT is integrated inside GCC by being a GCC meta-plugin. It enables adding new GCC optimization passes.
We describe some implementation challenges and how we tackled them.</p>Basile Starynkevitch
the GCC MELT website
the GCC compiler
15:2000:30H.2214puppet_plus_parenthesesPuppet Plus Parenthesesdevroom<p>Puppet is a tool for configuration management and automation. It’s written in Ruby, and therefore its codebase contains a notable lack of parentheses. So, we set out to solve that problem and wrote Puppet Server: a new, open source implementation of the Puppet Master, written in Clojure. In this talk, we’ll discuss the development of Puppet Server, our experience with Clojure, and some of the dragons slain along the way. I’ll also give an introduction to Trapperkeeper - an open source application framework for Clojure programs, which we developed along the way.</p>Kevin Corcoran16:0001:00H.2214emacs_and_elisp_on_the_chromebookEmacs and Elisp on the Chromebookdevroom<p>Emacs contains one of the most widely used Lisp dialects, Elisp. As the preferred text editor for a multitude of software developers, Emacs has been ported to a wide range of platforms. Recently, Emacs has come to the Web by way of a technology called Native Client. This talk explores the unique challenges of porting Emacs and Elisp to Native Client and the browser.</p><p>Native Client (NaCl), is an open-source technology that allows native machine code to run securely sandboxed in the browser. Two layers of sandboxing, a static verification inner sandbox combined with Chrome’s outer process sandbox, ensure users can safely run untrusted applications. Modified GCC and an LLVM based toolchains allow applications to target NaCl. An I/O API called PPAPI, mirroring the security constraints of Javascript, is provided to NaCl applications.</p>
<p>This talk will focus on the challenges of porting Emacs to NaCl including: emulation of POSIX APIs—processes, sockets, files—on top of Web-centric APIs, porting an X11 server and client libraries, adapting Elisp to NaCl’s memory layout, and packaging for an integrated experience. I will talk about the challenges of debugging the lisp that is a part of the editor itself. I’ll demonstrate Emacs running in Google Chrome and explorer how it can interoperate with other developer tools we’ve ported to the browser.</p>Pete Williamson
FOSDEM 2015 Video
17:1000:40H.2214escaping_dsl_hellEscaping DSL Hell By Having Parenthesis All The Way Downdevroom<p>Domain Specific Languages, defined broadly, are everywhere. We will look at the good, the bad and the ugly and see where Lisp excels (ranting a bit about Configuration Management tools as that's what I spend lots of my day doing)</p>
<p>The world is buzzing with the idea of teaching everyone to program. Sometimes we create simpler languages and environments for learning but if we constrain them too much we can impoverish the learner.</p>
<p>For scientists we have R, Maple, Mathematica and Matlab etc - but how easy is it to build a web service, run Hadoop jobs, read files in some obscure format or talk to a datastore? Better to give them a productive environment to solve their problems quickly, with the full power of Clojure when they need.</p>
<p>Concretely we will reimagine Netlogo and Geomlab as Clojure DSLs. See how embedding them in Clojure makes the implementation easier, gives greater power to the user and enables extension.</p>
<p>We have a bunch of great embeddings already in Clojure: logic, stats, datalog, CSP - Let’s build more and not trap people in DSL Hell.</p>Tom Hall11:0002:00H.3227cert_bsdcgBSDCG Exam Sessioncertification<p>The BSDA certification is designed to be an entry-level certification on BSD Unix systems administration.</p><p>Testing candidates with a general Unix background and at least six months of work experience as a BSD systems administrator, or who wish to obtain employment as a BSD systems administrator, will benefit most from this certification.</p>
<p>The successful BSDA candidate is able to complete common administrative and troubleshooting tasks and has a good understanding of general BSD Unix and networking principles. In addition, the successful candidate demonstrates basic skills with these BSD operating systems: Dragonfly BSD, FreeBSD, NetBSD and OpenBSD. This does not mean that the candidate needs to learn the complete details of four operating systems. It does mean that the candidate is aware of the basic utilities common to these operating systems, and where specified in the exam objectives, of features unique to some of the BSD operating systems.</p>BSDCG Team10:3000:50AW1.120valgrind_eclipseValgrind Integration in the Eclipse IDEAn Overview of the Valgrind Plugindevroom<p>Software development rarely has "spare" time, which often forces developers to stick to the tools they already know. Having any sort of learning curve can be a barrier to entry for debugging and performance tools, even when the payoffs are worth the time invested learning new tools. The Linux Tools Project aims to improve the state of C/C++ development on the Eclipse IDE by integrating popular tools, such as Valgrind. This integration allows developers to maintain an environment they're familiar with, yet leverage new development tools.</p>
<p>This talk is aimed at people of varying experience with the Valgrind tool who have never used it within the Eclipse IDE.</p><p>An overview of the Eclipse Valgrind plugin provided by the Linux Tools Project will be given. Topics discussed will include :</p>
<p>Quick overview of the Linux Tools Project
Introduction to the Eclipse Valgrind plugin
Demonstration of
* Memcheck
* Massif
* Helgrind
* Cachegrind
* Eclipse Platform specific integrations (Error markers, Problems View)
* Simple Auto-correction for common Memcheck/Helgrind problems
* Support for execution on remote targets</p>
<p>Possible improvements to Valgrind tool</p>
<p>Challenges faced regarding Valgrind tool</p>Lukas Berk11:3000:50AW1.120valgrind_tuningTuning Valgrind for your WorkloadHints, tricks and tips to effectively use Valgrind on small or big applicationsdevroom<p>Valgrind with its set of tools provides a lot of powerful/sophisticated
functionalities. However, this power has a price in CPU and memory.</p><p>This talk will discuss various ways to balance CPU and/or memory
versus more (or less) functionalities.</p>
<p>Among others, we will explore command line options that control
tools such as memcheck or helgrind, in order to detect more (or less)
classes of errors, or tune the amount of data recorded by these tools.</p>
<p>We will analyse the impact of such command line options on the CPU
and memory.</p>
<p>We will also look at the various ways to investigate the behaviour
of Valgrind regarding memory or cpu behaviour.</p>
<p>Demo and small test cases will be used to illustrate the discussed
functionalities.</p>Philippe Waroquiers12:3000:25AW1.120valgrind_extending_cachegrindExtending Cachegrind: L2 Cache Inclusion & TLB Measuringdevroom<p>Description: I have extended Cachegrind to include L2 Cache Inclusion & TLB Measuring. The main goal of this talk is to present and explain how these two extensions work; why they might be useful, what one can do with them, how did I test them, etc. (see full description for the points to be covered)</p>
<p>Intended Audience: Valgrind core developers and Cachegrind users</p><ul>
<li>Overview of Cachegrind and its limitations
<ul>
<li>Functionality added by my extensions</li>
</ul>
</li>
</ul>
<p>And then, for both TLB measuring and L2 cache inclusion the following points will be
covered:</p>
<ul>
<li> Usage</li>
<li> Example use</li>
<li> Available options</li>
<li> How does the extension interact with the original code</li>
<li> How to extend it</li>
<li> Validity of results</li>
<li> Introduced slowdown</li>
</ul>
Stavros Kaparelos14:0000:50AW1.120valgrind_multi_prototypeRunning Valgrind on multiple processorsa prototypedevroom<p>Valgrind runs properly multi-threaded applications, but effectively only uses one CPU at a time to run them.
In other words, Valgrind cannot make use of multi-core CPUs when running a multi-threaded application.</p><p>A prototype of a 'multi-core' Valgrind was developped. This talk will describe this prototype and discuss the challenges to obtain a production quality Valgrind that makes use of multiple core.</p>Philippe Waroquiers15:0000:50AW1.120valgrind_inliningPartial inlining of Memcheck helper function fast pathsdevroom<p>Memcheck's performance is significantly limited by the need for the JIT generated code to call a helper function for every memory access. This talk will describe ongoing work to inline the fast cases of these helpers into the generated code, with the goal of getting a significant speedup.</p><p>Valgrind's Memcheck tool performs address checking at the byte level and definedness checking at the bit level. Most of the definedness checking code is generated by Valgrind's JIT (VEX) as in-line code. But address checking is done by calling small C helper functions. That means one function call for each memory access to be checked, which is expensive. And it's wasteful because those checks are actually very simple, so the overhead of the calls is significant.</p>
<p>This talk describes ongoing work to inline the fast paths of such helper functions into the generated code. The fast paths deal with the common case -- naturally aligned addresses and fully defined values -- with all other cases being pushed "off-trace" onto cold paths, possibly with helper calls to C land.</p>
<p>Modifying the until-now simple JIT to support the arbitrary control flow this requires would be a big and complex task. Instead we use a system of machine code templates which allow precise control of branching and register use without significantly complicating the JIT. Making the templates architecture-neutral yet capable of generating good straight-line code is an interesting challenge.</p>Julian Seward16:0000:50AW1.120valgrind_easy_hackHow to start hacking on Valgrind by exampleEasy hacks for valgrinddevroom<p>If you always wanted to hack on Valgrind, but haven't yet really looked at the code yet, then this talk is for you. We'll go over setting up the sources to start hacking, where to start and explore various easy hacks by example. After attending this talk, you should be all set to attend the hackaton in the Valgrind devroom at the end of the day.</p>Mark Wielaard17:0002:00AW1.120valgrind_hackatonValgrind HackatonCome and hack on Valgrind togetherdevroom<p>Hacking on Valgrind together.</p>10:3001:00AW1.121edgebsdEdgeBSD: Status reportNews from the benevolent dictatordevroom<p>This presentation will summarize the status and current roadmap of the
EdgeBSD Project, which started from the NetBSD codebase in mid-2013. The
aims at broadening and community development around NetBSD thanks to a
tentatively more modern development workflow, based on Git.</p>Pierre Pronchery
The EdgeBSD Project
11:4500:45AW1.121enlightenment_freebsdEnlightenment, a cross-platform window manager and toolkitDealing with Enlightenment portability issues in FreeBSD and elsewheredevroom<p>The EFL is a toolkit for writing cross-platform applications. Enlightenment
is a desktop shell built using this toolkit. Both the EFL and Enlightenment
are fast and light on resources (which made them the toolkit of choice in
places such as the Tizen operating system and embedded environments) while
remaining scalable, but their low level approach complicates portability.
In this talk I'd like to summarize our past portability issues and tackle
current ones, as well as talk about our future direction. The talk will be
focused on FreeBSD, using it as an example, but will also cover our general
issues and portability to other operating systems including Windows and OS X.</p><p>The EFL (Enlightenment Foundation Libraries) is a toolkit for writing
applications (desktop and mobile alike), notably used by the Tizen operating
system as well as other places. Enlightenment itself is a desktop shell built
upon this toolkit. It's clean, lightweight and written entirely in C. However,
its low-level implementation approach has, besides small size and high
performance, a flaw, which is portability, an issue I have to deal with
very often as part of my work at Samsung.</p>
<p>Enlightenment/EFL developers have always tried to write relatively portable
code, but there are still quite a few issues (major and minor) that remain.
As a FreeBSD user I think that portability is a very important topic that
should not be overlooked, and that's why I would like to cover these issues
in this talk as well as propose some solutions. The problems we're currently
facing include dependency on certain very Linux specific things, such as udev,
Wayland etc. as well as differences between APIs provided by those operating
systems and differences in tooling (build systems...).</p>
<p>By coming up with solutions to these issues, we can make the EFL and E work
better on non-Linux operating systems (including but not limited to the BSD
family, Mac OS X or even Windows) as well as make it work better in those
places where it already runs, making it more accessible to more developers.</p>
<p>In this talk I will introduce the EFL and Enlightenment, cover portability
problems across different operating systems with a focus on *BSD (and
lesser coverage of OS X and Windows) and present our future plans as far
as platform coverage is concerned.</p>Daniel Kolesa13:0501:00AW1.121fuzzing_freebsdFuzzing (on) FreeBSD(Mostly) automated bug discovery with security/afldevroom<p>Fuzzing can help to find various kinds of bugs automatically.
It may also highlight "weak" spots that deserve manual code inspection.</p>
<p>Both FreeBSD itself and the ports we use daily contain bugs that have
yet to be discovered and fixed.</p>
<p>American fuzz lop (security/afl) is a fast intrumented fuzzer available
in ports.</p>
<p>I'll present a couple of bugs that were already found with it
and describe the code modifications that were used to increase
the efficiency.</p>Fabian Keil
American fuzzy lop website
Slides
14:1500:45AW1.121bsdrpBSD Router ProjectA brief introductiondevroom<p>BSDRP is a software router based on FreeBSD</p><p>Here is the Agenda:</p>
<ul>
<li>Why a software router ?</li>
<li>Presenting nanobsd</li>
<li>Feature list</li>
<li>Benchmarking forwarding performance</li>
<li>Virtual lab</li>
</ul>
Olivier Cochard-Labbé
Project homepage
15:0500:45AW1.121xen_freebsdFreeBSD/Xen status updateCurrent status and future development of FreeBSD/Xendevroom<p>During the last year (2014) a lot of interesting development happened around the FreeBSD/Xen port. FreeBSD slowly moved from running as a PV with HVM drivers, to running as a PVHVM guests and finally as a PVH DomU. The last step into getting full Xen support into FreeBSD was to get it to run as a PVH Dom0, which is now finished and in a tech-preview status.</p>
<p>This talk will include a high-level description of the modifications needed in order to get FreeBSD running as a Dom0, and a demo of FreeBSD running as a PVH Xen Dom0.</p><p>The goal of this talk is to provide information about the Xen PVH and FreeBSD architecture, and to encourage other OS hackers to work on it.</p>
<ul>
<li>Basic Xen description and specific Xen concepts.</li>
<li>How the Xen community works (compared to BSD communities).</li>
<li>A look into new Xen features (PVH).</li>
<li>Work being done in FreeBSD improving Xen support.</li>
<li>Demo of a FreeBSD PVH Dom0.</li>
</ul>
Roger Pau Monné16:0501:00AW1.1214yearofpkg4 years of pkg(8)A end less journeydevroom<p>A summary of four years working on pkg:</p><ul>
<li>why a new packages manager;</li>
<li>what happened in the different versions;</li>
<li>mistakes made;</li>
<li>lesson learned</li>
<li>What is cooking for the future:
<ul>
<li>within pkg(8) itself;</li>
<li>packaging the FreeBSD base system;</li>
<li>improvement in the ports tree.</li>
</ul>
</li>
</ul>
Baptiste Daroussin10:3000:30AW1.124ada_arrivalArrival & Informal Discussionsdevroom<p>Feel free to arrive early, to start the day with some informal
discussions while the set-up of the DevRoom is finished.</p>
More info on Ada-Belgium web site
11:0000:05AW1.124ada_welcomeWelcomedevroom<p>Welcome to the Ada Developer Room at FOSDEM 2015, 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.</p><p>More information on this DevRoom is available on the Ada-Belgium web-site.</p>Dirk Craeynest
More info on Ada-Belgium web site
11:0500:50AW1.124ada_introductionAda, an Introductiondevroom<p>This talk will introduce the Ada programming language to people used
to more classical, weak-typed languages.</p>
<p>We will focus on how Ada uses its strong typing basis to prevent the
most common programming errors at the language level, allowing the
compiler to check them before they cause problems.</p>Jérémy Rosen
More info on Ada-Belgium web site
12:0000:50AW1.124ada_gtkadaBuilding a GUI for an Ada Application with GtkAdadevroom<p>GTK+ is an open-source library that allows to quickly and easily
build a graphical user interface, using standard widgets like buttons,
combo boxes, text and tree views, scroll bars, etc. Even though GTK+
is written in C, it can be used from an Ada application thanks to
GtkAda, an object-oriented Ada/C binding.</p>
<p>Illustrated by a poker game application, this presentation will
explain the essential concepts of GtkAda. It will show how to create
the most common widgets and how to interact with the user.</p>Serge Vanschoenwinkel
More info on Ada-Belgium web site
13:0000:25AW1.124ada_phcpackOpening the Development of PHCpackdevroom<p>PHCpack originated from bundling programs to solve polynomial
systems with symbolic-numeric and polyhedral methods. The core of
PHCpack consists mainly of Ada code, with interfaces to C and Python.
Its blackbox solver is accessible from various scientific software
packages such as Macaulay2, Maple, MATLAB, Octave, and Sage.</p>
<p>The goal of the talk is to explain the application of software
engineering principles and the role of Ada in the development of
PHCpack.</p>Jan Verschelde
More info on Ada-Belgium web site
FOSDEM 2015 Video
13:3000:30AW1.124ada_informalInformal Discussionsdevroom<p>A half-hour slot has been reserved for much needed interaction
and informal discussion among Ada DevRoom participants and anyone
potentially interested in Ada.</p>
More info on Ada-Belgium web site
14:0000:50AW1.124ada_contractsContract-based Programming - A Route to Finding Bugs Earlierdevroom<p>Contract-based programming is a software development technique, which
is used to find programming errors earlier in the development process.
"Contract" refers to formal declarations of how types and subprograms
("functions and methods" if you aren't an Ada programmer already)
behave. In the strictest form, the contracts are checked as a part
of the compilation process, and only a program which can be proven
to conform with the contracts will compile.
In a less strict form, it is more similar to "preventive debugging",
where the contracts are inserted as run-time checks, which makes it
more likely to identify errors during testing.</p>
<p>Ada provides a quite extensive support for contract-based programming.
The checks are specified as a mix of compile-time checks, obligatory
run-time checks, and optional run-time checks. In addition to that,
SPARK defines a subset of Ada with full compile-time checks.</p><p>The presentation will introduce the Ada features related to
contract-based programming, and provide suggestions for how to make use
of the features in practice. It is organized in three main sections:
type/object invariants; pre- and postconditions for operations;
making the contracts for entire packages consistent.
If there is time, the presentation will close with a live test of
the guidelines on an example problem selected by the audience.</p>
<p>The intended audience is anybody with enough programming experience
to know concepts like types, encapsulation and packages. Having seen
source text in Pascal-like programming languages will be a benefit.</p>Jacob Sparre Andersen
More info on Ada-Belgium web site
FOSDEM 2015 Video
15:0000:50AW1.124ada_armAda for ARM Bare Boarddevroom<p>In 2014, AdaCore has released two new components in the GNAT GPL
Edition: GNAT GPL for ARM Bare Board and SPARK 2014. I present the
content of GNAT GPL for ARM, its Ravenscar runtime, how to build and
deploy an embedded application in Ada and how it was used to teach Ada.</p>
<p>Two different demos will be presented: a Tetris game and a train
signalling system. Both are fully written in Ada, with some parts
written and proven with SPARK 2014.</p>Tristan Gingold
More info on Ada-Belgium web site
FOSDEM 2015 Video
16:0000:50AW1.124ada_multithreadingMultithreading Made Easy, part 3 - Bounded Work Queuesdevroom<p>Ada is one of very few programming languages that support
multithreading as part of the language, as opposed to libraries.</p>
<p>In the previous two episodes, we showed how Ada makes it easy to turn
a single-threaded program into a multi-threaded program. We ended
up with ten thousand threads working concurrently then introduced
a task pool and work queue wherein a small number of threads (one
per processor core) process thousands of small work units. But the
work queue could become very big. In this third and last episode,
we show how to restrict the size of the work queue to a fixed limit,
thereby preventing denial-of-service attacks.</p>
<p>This presentation will feature live editing of source code, compilation
and debugging. Questions from beginners are encouraged. It is not
necessary to have attended the first installments. The sources of our
example program will be provided to those who want to tinker with them.</p>Ludovic Brenta
More info on Ada-Belgium web site
FOSDEM 2015 Video
17:0000:50AW1.124ada_cairo2D Drawing with Ada and Cairodevroom<p>Cairo is a 2D graphics library with support for multiple output
devices. It is designed to produce consistent output on all output
media while taking advantage of display hardware acceleration
when available. The Cairo API provides operations similar to
the drawing operators of PostScript and PDF. Operations in Cairo
including stroking and filling cubic Bézier splines, transforming
and compositing translucent images, and antialiased text rendering.
All drawing operations can be transformed by any affine transformation
(scale, rotation, shear, etc.).</p>
<p>Illustrated by a poker game application, this presentation will show
you how to do nice drawings with Cairo, still programming with your
preferred language: Ada!</p>Serge Vanschoenwinkel
More info on Ada-Belgium web site
FOSDEM 2015 Video
18:0000:25AW1.124ada_simulationsBuilding Economic Simulations in Adadevroom<p>Virtual Worlds Research has been using Ada to build large scale
economic simulations for 10 years now. These simulations have been
used by Governments and others to model the effects of, amongst
other things, changing Legal Aid and reforming Social Care funding
- many billions of pounds of annual spending. Here, I discuss our
experiences, good and bad, with the Ada language, and provide a live
demonstration of the most recent model. I'll also discuss work in
progress to build a new forecasting model in association with the
University of Southampton.</p>Graham Stark
More info on Ada-Belgium web site
FOSDEM 2015 Video
18:3000:30AW1.124ada_wrapupInformal Discussions & Closingdevroom<p>Informal discussion on ideas and proposals for future events.</p>
More info on Ada-Belgium web site
10:3000:15AW1.125graph_helloWelcome to the GraphDevroomA short introduction an overview to this years graph devroomdevroom<p>We, the organizers of the the GraphDevroom, will give a warm welcome and a review on the graphy year 2014.</p><p>We, the organizers of the the GraphDevroom, will give a warm welcome and a review on the graphy year 2014.</p>Achim FriedlandPere Urbon-Bayes10:4500:45AW1.125graph_finkLarge-scale graph processing with Apache Flinkdevroom<p>Apache Flink is a general-purpose platform for batch and streaming distributed data processing. This talk describes how Flink’s powerful APIs, iterative operators and other unique features make it a competitive alternative for large-scale graph processing as well. We take a close look at how one can elegantly express graph analysis tasks, using common Flink operators and how different graph processing models, like vertex-centric, can be easily mapped to Flink dataflows. Next, we get a sneak preview into Flink's upcoming Graph API, which further simplifies graph application development in Flink. Finally, we show how to perform end-to-end data analysis, mixing common Flink operators and the Graph API, without having to build complex pipelines and combine different systems. We will go through a step-by-step example, demonstrating how to perform loading, transformation, filtering, graph creation and analysis, with a single Flink program.</p>Vasia Kalavri
Apache Flink
Apache Flink on Github
Flink's Graph API development repo
11:3001:00AW1.125graph_manylinesManylines a graph web publication platform with storytelling featuresdevroom<p>More and more people work with graphs nowadays, but it is not always easy to publish and share the graph interpretation on the web.
<strong>Manylines</strong> is a web tool built at Sciences Po médialab to solve this issue.
Some researchers and students use network visualizations to explore their data, but networks are not as clear as maps and sharing one’s interpretation is difficult.
Manylines main innovation is to allow the user to <strong>explain and share a narrative about his network</strong>: an interactive story where each “slide” is a particular zoom, pan and filtering of the network, completed by a title and description, with fluid transitions like in Prezi.</p>
<p>Published as an open source prototype with the source code available on GitHub, Manylines is currently built around three screens:
- The first screen allows applying the ForceAtlas2 layout to the network, in order to <strong>settle the “basemap”</strong>: the definitive positions of nodes and edges used to support further interpretations.
- The second screen allows zooming and filtering the network to explore the data and <strong>“take snapshots”</strong> representing different insights.
- The third screen allows <strong>composing narratives</strong> by building a series of snapshots, adding a title and short description for each step.
The result is <strong>an interactive slideshow widget</strong> where the user's exploration of the network is guided step by step, revealing the key interpretation points one by one.</p>
<p>Manylines is a single webpage app built for HTML5 browsers.
It makes an <strong>extensive use of the sigma.js library</strong> to deal with networks within the browser and it implements different features inspired from Gephi, the reference desktop graph viz platform.
The WebGL visualization (with Canvas fallback) implemented by Sigma.js allows great performance for networks up to 1000 nodes on an average computer.
To reach this level of performance, <strong>we optimized the javascript version of the ForceAtlas2 algorithm</strong> used by sigma.js.
We ported it to use <strong>web workers</strong> and we optimized the <strong>Barnes-Hut quadtree approximation</strong> in this context by implementing it <strong>as an iterative and not recursive process</strong>.
We made an extensive use of <strong>sigma.js' custom renderers and cameras</strong> to build dynamic graph thumbnails, snapshots and widgets.
The server side stores the networks, snapshots and narrative data in a <strong>Couchbase database</strong> (which we discovered in FOSDEM 2014) accessed by a <strong>Node.js express REST API</strong>.</p>Paul Girard
manylines prototype for testing only
ForceAtlas 2 algorithm in details
manylines' source code
sigma.js library
our presentation
12:3001:00AW1.125graph_timeflowsTime flows on GraphManaging event sequences and time series with a Document-Graph Databasedevroom<p>Time dimension is fundamental in many different contexts, from statistical analysis to representation of cause-effect relationships, from forecasting to automatic control systems.</p>
<p>Representing this kind of data in "traditional" databases can lead to performance problems, due to their quantity, frequency and domain model; this is why NoSQL solutions are widely used in this field.</p>
<p>In this talk we will show how to use OrientDB, a Document-Graph Database, to store, process and query this type of information in an efficient and effective way.</p><p>Time dimension is fundamental in many different contexts, from statistical analysis to representation of cause-effect relationships, from forecasting to automatic control systems.</p>
<p>Representing this kind of data in "traditional" databases can lead to performance problems, due to their quantity, frequency and domain model; this is why NoSQL solutions are widely used in this field.</p>
<p>In this talk we will show how to use OrientDB, a Document-Graph Database, to store, process and query this type of information in an efficient and effective way.</p>Emanuele TagliaferriEnrico Risa13:3000:30AW1.125graph_sigmajssigma.js, two years laterA presentation of the latest version of sigma.jsdevroom<p>This talk will present how to solve some graph visualization use cases with sigma.js, an open JavaScript library dedicated to graph drawing.</p><p>Sigma.js is an open JavaScript library dedicated to graph drawing.
It can display some medium graphs (tens of thousands of nodes, hundreds of thousands of edges, under some conditions), using Canvas, WebGL or SVG.
Its API has been designed to facilitate the development of Web applications highly customized renderings and interactions as well as the most simple use cases.
This talk will show how sigma can solve in action some common use cases, such as:
- static graph visualizations:
typically a graph that has already been "mapped" and exported from Gephi
- dynamic exploration:
for instance a neighborhoods exploration of a large graph
- customized rendering:
for example to make the graphs being displayed with a specific graphic guidelines
- customized interactions:
to adapt the behaviours to specific UX needs</p>
<p>Website:
Repository:</p>Alexis Jacomy
Sigma.js website
Github repository
14:4500:45AW1.125graph_structrUsing Neo4j as a Document DatabaseWith Structr 1.1, Neo4j can be used as a Document Databasedevroom<p>With the current Structr version 1.1, you can use deeply nested JSON documents to create graph structures in Neo4j. In this talk, I will demonstrate how to use Structr and Neo4j as a document database and explain how it works under the hood.</p>Axel Morgner15:3000:30AW1.125graph_meetupAnalysing London's NoSQL meetups using R & Graphsdevroom<p>The majority of NoSQL meetups in London are hosted on meetup.com and luckily for us meetup.com has an API that allows us to extract all the corresponding data - groups, events, venues, members and RSVPs.</p>
<p>In this talk Mark will show how we can use R to gain quick insights into the data using tools like dplyr and ggplot2. We'll also do some social network analysis of the attendees of London's meetup scene using igraph.</p>
<p>Finally we'll look at how we could bring together all these insights into a brand new Clojure front end for the meetup website.</p><p>The majority of NoSQL meetups in London are hosted on meetup.com and luckily for us meetup.com has an API that allows us to extract all the corresponding data - groups, events, venues, members and RSVPs.</p>
<p>In this talk Mark will show how we can use R to gain quick insights into the data using tools like dplyr and ggplot2. We'll also do some social network analysis of the attendees of London's meetup scene using igraph.</p>
<p>Finally we'll look at how we could bring together all these insights into a brand new Clojure front end for the meetup website.</p>Mark Needham16:0001:00AW1.125graph_sparkBig Graph Analytics on Neo4j with Apache SparkA Docker Image for Graph Analytics on Neo4j with Apache Spark GraphX devroom<p>In this talk I will introduce you to a Docker container that provides you an easy way to do distributed graph processing using Apache Spark GraphX and a Neo4j graph database. You'll learn how to analyze big data graphs that are exported from Neo4j and consequently updated from the results of a Spark GraphX analysis. The types of analysis I will be talking about are PageRank, connected components, triangle counting, and community detection.</p><p>Database technologies have evolved to be able to store big data, but are largely inflexible. For complex graph data models stored in a relational database there may be tedious transformations and shuffling around of data to perform large scale analysis.</p>
<p>Fast and scalable analysis of big data has become a critical competitive advantage for companies. There are open source tools like Apache Hadoop and Apache Spark that are providing opportunities for companies to solve these big data problems in a scalable way. Platforms like these have become the foundation of the big data analysis movement.</p>Kenny Bastani
Using Apache Spark and Neo4j for Big Data Graph Analytics
A Docker Image for Graph Analytics on Neo4j with Apache Spark GraphX
17:0000:30AW1.125graph_recomRecommendation Engines with Graph DatabasesBuilding a high-performance recommendation engine using open-source software (Neo4j & GraphAware Framework)devroom<p>Graph Databases are naturally well-suited for building recommendation engines. In this talk, Michal will share his experience building a number of high-performance production-ready recommendation engines using Neo4j and introduce the open-source GraphAware Recommendation Engine Library, which enables Java developers to rapidly build their own recommender systems.</p><p>This presentation starts by a brief explanation of why graphs are a suitable data model for building recommender systems. A summary of typical recommendation engine requirements follows, including the business and technical challenges these requirements introduce. Afterwards, the talk dives into possible solutions of these challenges, both from business and architectural/design perspectives, and introduces the GraphAware Recommendation Engine Library.</p>
<p>What follows is a demonstration of how this open-source recommendation engine skeleton solves many of the issues and how it handles the "plumbing", so that developers can focus on expressing the business logic specific to their domain.</p>
<p>The talk concludes by presenting complexities yet to be solved, and a brief survey of alternative approaches.</p>
<p>A majority of examples in this talk are drawn from real-world use cases and the speaker's personal experience building recommendation engines. Attendees should have a very basic understanding of graph theory. Prior experience with Neo4j and the Cypher query language is a plus, but not necessary. Ability to read Java is recommended.</p>
<p>Attendees will learn:
* what is a recommendation engine and what it is good for
* why graphs are a good fit for building one
* what business and technical challenges one faces building a recommender
* what possible solutions there are for these challenges
* how to build a high-performance graph-based recommendation engine in minutes
* real-world case studies</p>Michal Bachman17:3000:30AW1.125graph_tesseractTesseract: Distributed Graph Database and Computation platformUnlocking the connected nature of the worlddevroom<p>The Tesseract is a <strong>distributed</strong> graph processing and computation platform, purpose built, from the ground up.
This talk will present the new algorithms developed to create an efficient platform for native distributed graph traversals and computations.</p><p>The last 10 years has had provable uses of graph processing systems. As we aim to do more, we stretch existing technologies far beyond what they were intended for. Remarkable efforts like <em>Apache Giraph</em> or the <em>Titan</em> project are examples that are pushing the bounds. Ultimately the brute force techniques are inefficient, often don't scale very well and come with their own problems. In the ideal world, a scalable graph processing system would evenly distribute both vertices and edges. Richard Karp has shown this to be an np-complete problem (i.e. the clique problem / complete subgraphs).</p>
<p>The talk will give a brief introduction to <em>CRDT - Convergent & Commutative Replicated Data types</em> and how commutative & idempotent operations enable the three contributions.
Three key contributions The Tesseract makes include partitioning "super vertices" with a technique called "<strong>cascading vertices</strong>", an optimization called "<strong>wormhole traversal</strong>" and a computational framework, "<strong>TQL</strong>" able to make use of two aforementioned techniques. The talk will give an introduction to the first two and a very brief overview of the third.</p>Courtney Robinson (zcourts)
List of np-complete problems
The Clique problem
Karp's 21 NP-complete problems
Reducibility among combinatorial problems (Richard M. Karp)
A comprehensive study of Convergent and Commutative Replicated Data Types
Haskell
Rendezvous hashing
Graph theory
18:0000:25AW1.125graphgenGraphgen - Graph prototyping made easydevroom<p>Graphgen aims at helping people prototyping a graph database, by providing a visual tool that ease the generation of nodes and relationships with a Cypher DSL.</p><p>Many people struggle with not only creating a good graph model of their domain but also with creating sensible example data to test hypotheses or use-cases.</p>
<p>Graphgen aims at helping people with no time but a good enough understanding of their domain model, by providing a visual dsl for data model generation which borrows heavily on Neo4j Cypher graph query language.</p>
<p>The ascii art allows even non-technical users to write and read model descriptions/configurations as concise as plain english but formal enough to be parseable. The underlying generator combines the DSL inputs (structure, cardinalities and amount-ranges) and combines them with a comprehensive fake data generation library to create real-world-like datasets of medium/arbitrary size and complexity.</p>
<p>The genrated data can be visualized, directly imported into a remote Neo4j database or exported in a variety of formats.</p>
<p>Users can create their own models combining the basic building blocks of the dsl and share their data-descriptions with others with a simple link.</p>Christophe Willemsen11:0000:50AW1.126youd_better_have_tested_backupsYou'd better have tested backups...devroom<p>A PostgreSQL data recovery tale from a true story, where we dig deeper and deeper into the PostgreSQL internals in order to be able to get back some data from a destroyed cluster.</p>
<p>If that story doesn't leave you wanting to check all your backups before the talk has ended, I don't know what will.</p>Dimitri Fontaine12:0000:50AW1.126new_wal_record_format_in_postgresql_95New WAL record format in PostgreSQL 9.5devroom<p>The WAL record format was revamped in version 9.5. This presentation goes into the details of the WAL format, and the reasons for the change.</p>Heikki Linnakangas13:0000:50AW1.126json_and_postgresql_the_state_of_the_artJSON and PostgreSQL, the State of the Artdevroom<p>PostgreSQL 9.4 introduces a new type, JSONB, index types, operators... all kinds of new infrastructure for processing JSON. It's all rather overwhelming.</p>
<p>We'll look at the current set of tools, including real-life applications and performance metrics, and talk about options as to when it is a great and perhaps still not-as-great idea to use JSON.</p>Christophe Pettus14:0000:50AW1.126foreign_data_wrappers_in_postgresql_where_are_we_nowForeign Data Wrappers in PostgreSQL : Where are we now ?devroom<p>Since the introduction of the Foreign Data Wrapper API in 9.1, things have evolved rather quickly on the SQL-MED front</p>
<p>We will look at the promising things coming (hopefully!) for 9.5 in core, but also at the numerous innovative use-cases for FDW: IMPORT FOREIGN SCHEMA, foreign table inheritance, new ways of storing data, and how to combine those features to use PostgreSQL as an ETL.</p>Ronan Dunklau15:0000:50AW1.126modern_sql_in_postgresqlModern SQL in PostgreSQLdevroom<p>SQL has gone out of fashion lately—partly due to the NoSQL movement, but mostly because SQL is often still used like 20 years ago. As a matter of fact, the SQL standard continued to evolve during the past decades resulting in the current release of 2011. In this session, we will go through the most important additions since the widely known SQL-92, explain how they work and how PostgreSQL supports and extends them. We will cover common table expressions and window functions in detail and have a very short look at the temporal features of SQL:2011 and the related features of PostgreSQL.</p>Markus Winand16:0000:50AW1.126large_scale_quality_assurance_in_the_postgresql_ecosystemLarge Scale Quality Assurance in the PostgreSQL Ecosystemdevroom<p>The apt.postgresql.org repository hosts PostgreSQL server packages for seven major releases: all the stable branches plus beta and the devel versions. Targetting two architectures and seven Debian and Ubuntu releases, this is almost 100 combinations in the cross product. On top of that, we build binary packages for various PostgreSQL extensions and applications. Of course no one is able to test thousands of packages manually.</p>
<p>We are putting much effort into running regression tests on all extensions using pg_regress, and creating system integration tests to be run with the autopkgtest tool. All tests are integrated with our Jenkins build server.</p>
<p>This talk presents recent advances made in the area and includes examples of bugs found.</p>Christoph Berg10:3000:05UA2.114 (Baudoux)search_welcomeWelcoming RemarksOpen Source Search Dev RoomdevroomLeslie Hawthorn10:3500:45UA2.114 (Baudoux)search_sphinxSphinx Search technical highlightsdevroom<p>This talk will provide you key technical highlights about Sphinx as a full text search engine from internal architecture overview to scalability and high availability strategies.</p><p>Detailed talk line up:
- What is Sphinx
- Internal architecture
- Key full text and non-full-text functionality
- Application integration
- On-disk vs Real-time indexes.
- Performance tricks
- Scalability and high availability</p>Vlad Fedorkov11:2500:45UA2.114 (Baudoux)effective_spelling_correction_with_term_relation_graphs_using_lucene_fstsEffective spelling correction with term relation graphs using Lucene FSTsdevroom<p>Our approach for doing spelling correction has deviated considerably from the default approach Lucene is offering. While Lucene's FuzzyQuery uses a compiled Automaton to filter the dictionary rather efficiently, we directly use normal Automatons and intersect that automaton with a separate FST. This proves to be more efficient for our use case, since it saves memory and time to compile the automaton and also part of the time to identify the matching terms in the dictionary.</p>
<p>This approach gives us the possibility to store any meta-information with each term, which is used then to pick the top N spellcorrections. We build a term co-occurence graph, where each vertex is a possible spelling correction of a term and each link is the co-occurence in the same document. Each vertex and link get a score based on the meta-information and edit distance. Then we use graph reduction techniques until the graph contains the desired number of spellcorrections.</p>Anna Ohanyan
FOSDEM 2015 Video
12:1500:45UA2.114 (Baudoux)apache_solr_as_a_compressed,_scalable_and_high_performance_time_series_databaseApache Solr as a compressed, scalable and high performance time series databasedevroom<p>How can you store 86 billion measurement points in 30 gigabytes and search through it within a few milliseconds on your laptop? A relational database? No! Apache Solr empowers you to do this if you follow a few concepts. The horizontal scalability capabilities of Solr bores away the borders of your laptop and allows you easily to scale out to your needs. In this code intense session we give an introduction how to store time series data in Apache Solr.</p><p>How can you store 86 billion measurement points in 30 gigabytes and search through it within a few milliseconds on your laptop? A relational database? No! Apache Solr empowers you to do this if you follow a few concepts. The horizontal scalability capabilities of Solr bores away the borders of your laptop and allows you easily to scale out to your needs.</p>
<p>In this session we give an introduction how to store time series data in Apache Solr. QAware has developed an Enterprise Application Performance Analysis Platform on top of Solr. Based on code examples you will see how easy multi-dimensional time series data can be stored and retrieved. We show how Solr features like Facets, Filters and Queries can be used to build graphical user interfaces with an outstanding performance and usability. We also compare this approach to other time series databases like InfluxDB and relational databases like MySQL.</p>Florian Lautenschlager13:0500:45UA2.114 (Baudoux)elasticsearch_from_the_bottom_upElasticsearch from the Bottom Updevroom<p>This talk will teach you about Elasticsearch and Lucene's architecture.</p>
<p>The key data structure in search is the powerful inverted index, which is actually simple to understand. We start there, then ascend through abstraction layers to get an overview of how a distributed search cluster processes searches and changes.</p>Alex Brasetvik14:0000:45UA2.114 (Baudoux)apache_lucene_5Apache Lucene 5New Features and Improvements for Apache Solr and Elasticsearchdevroom<p>Around FOSDEM 2015, the first alpha/beta releases of Apache Lucene 5 will likely be downloadable. This talk will present the improvements and new features, but also some incompatible changes in the Lucene 5 release. Lucene 5 will focus on data safety: The move to Java 7 will be completed. Lucene now uses all the brand new features (NIO.2) of Java 7 to make the indexing process more stable and resulting indexes durable. Checksums are used during merging to prevent bugs in the underlying JVM or data corruption due to networking errors (e.g., while distributing indexes during recovery in Elasticsearch) to persist in newly created index segments.</p><p>The previous major version, Lucene 4 was a major release that introduced index codecs. In Lucene 5, the API around codecs will be cleaned up and will likely get more stable. There are also new features, like a common FilterCache that can be reused by Solr and Elasticsearch.</p>
<p>In parallel Apache Solr 5 will be released, the first version that will now work as a server out of the box, so Solr is no longer exposed as a webapp. Init.d scripts are included and configuration is managed easier through Zookeeper.</p>Uwe Schindler
Apache Lucene
14:5000:45UA2.114 (Baudoux)searching_over_streams_with_luwak_and_apache_samzaSearching over streams with Luwak and Apache Samzadevroom<p>Traditional searches take the form of individual queries over large mostly-stable corpuses of documents. In this talk, we'll show how we invert this paradigm to allow for searching over streams of documents by combining Samza, a distributed stream-processing framework, with Luwak, a library for efficiently running large numbers of queries over individual documents.</p><p>Real-time searching over streams is useful in a number of contexts. For example, companies may want to detect whenever they are mentioned in a news feed; or a Twitter user might want to see a continuous stream of tweets for a particular hashtag.</p>
<p>Luwak provides a mechanism for running many thousands of queries over a single document in a highly efficient manner, by filtering out queries that it can detect will not match. Luwak is designed to run on a single node, holding all registered queries in RAM. Scaling to higher document throughput, or to more queries, requires parallelization across multiple machines.</p>
<p>Samza provides a framework for such parallelization, by partitioning and recombining both the document streams and the query set (which can be treated as just another stream), and also provides fault-tolerance mechanisms that allows swift recovery from machine failure, without losing documents or queries.</p>Alan Woodward15:4500:30UA2.114 (Baudoux)ebisearch_biological_data_search_engineEBISearch - Biological data search enginedevroom<p>EBISearch is a text search engine providing access to biological data
resources hosted at EMBL-EBI. We will speak about the history of this
engine, the infrastracture used, some statistics and future plans.</p><p>EBISearch is a text search engine providing access to biological data
resources hosted at EMBL-EBI. These Lucene indexes are organized in a
hierarchy and we offer an easy 'inter-index' (or, in Lucene terms:
inter-domain) navigation via a network of cross-references.</p>
<p>The data resources represented in the EBI Search engine include:
biological sequences, chemicals and macro-molecular structures,
bio-medical literature abstracts and meta-information related to
biological entities (e.g. genes, transcripts, proteins, etc.)</p>
<p>The EBISearch evolution/development is influenced by the EMBL-EBI IT
infrastructure, which is designed to cope with great amount of data and
relies on technical choices about data storage on network/distributed
filesystem and heterogeneous type of hosts.</p>
<p>The EBISearch engine provides search accross ~1.1bn documents updated
to the last biologial data available; we will provide some statistics
about the amount of data we index; indexing parallelisation and the
lifecycle of these indexes.</p>
<p>At search time the engine organize the indexes in a hierarchy and searches
are executed across most domains. This allows us to benefit of homogeneus
score across the indexes. We rely heavily on the use facets for
filtering results (Lucene taxonomies)..</p>
<p>EBISearch usage is monitored and analyzed through our application logs
as well as web logs; we will present some statistics about usage and
discuss which kind of theme we are looking into; the focus is in
understanding usage patterns to drive our next development.</p>
<p>In the future, we need to explore how to cope with the increasing
volume of data that are being generated in the bio-medical fields and on
how to handle requests for new functionalities; for these reasons we will
investigate the usage of other technologies and existing
search engines based on Lucene.
We are also interested in different types of data visualization and we
will briefly present what we have done in this area.</p>Nicola Buso
EBI Search
16:3000:45UA2.114 (Baudoux)the_typed_indexThe Typed Indexdevroom<p>Besides issues of scaling your search, there are very important aspects concerning search-quality that should not be neglected. Search-quality is mainly controlled by analysis and query parsing. I will talk about frequent problems concerning Lucene analysis and I will show on several examples that usually one analyzer (normal form) is not sufficient, even in a mono-lingual environment but especially in multilingual environments. I will show how our typed index approach allows to solve many of these problems and how we plan to properly treat even mixed-language documents based on this approach.</p><p>If you want to search in a multilingual environment with high-quality language-specific word-normalization you soon realize, that you need different types of terms. For example you cannot use morphologically normalized terms or stemmed terms for every kind of search. For Wildcard- and Fuzzy-Search you need terms that have not been normalized at all or that have been normalized only slightly. Phonetic search adds another kind of normal form. Sometimes search should be case-sensitive (e.g. if you want to distinguish between search for the company "MAN" and the word "man") sometimes it shouldn´t. Semantic search (search for persons, organizations and places) might add another type of terms. Usually one uses different fields to distinguish between different types of terms. I will show that putting different types of terms into the same field and representing their type by e.g. a prefix, has an important advantages. It allows you to use the important information about their relative positions. I even challenge the standard approach of having different fields for different languages because it requires so much configuration effort and because it prevents a reasonable treatment of mixed-language documents. At IntraFind we decided to implement a language chunker based on Ted Dunnings paper "Statistical Identification of Language" and to include it into our next-generation linguistic analyzer for Lucene/Solr/Elasticsearch. It identifies chunks of the same language within text and delegates the analysis to a specified language-specific analyzer, which might be a high-quality IntraFind morphological analyzer, a third-party analyzer or one of the high-quality Lucene Open-Source analyzers e.g. for Chinese and Japanese. Terms of different languages are distinguished by different prefixes (types). In this way we can provide an easy-to-use and very powerful linguistic analyzer that requires almost no configuration effort. You simply index your content and don’t have to care about the language. If there is enough time I would like to add a deep dive into Lucene Analysis with position increments and position length and why this is important e.g. for analyzers that decompose terms such as Lucenes WorldDelimiter Analyzer and IntraFinds German Analyzer which also does word decomposition.</p>Christoph Goller17:2000:45UA2.114 (Baudoux)querying_your_datagrid_with_lucene,_hadoop_and_sparkQuerying your datagrid with Lucene, Hadoop and Sparkdevroom<p>Key/Value stores rely on a simple data model represented by a map, where each key appears once. Using such a structure does not necessarily mean giving up on query expressiveness and capability.
This talk will demonstrate what Infinispan can do to empower your analytics needs, from directly running Lucene Queries in a cluster to Hadoop Map Reduce and Spark.</p>Gustavo Fernandes
FOSDEM 2015 Video
18:0500:45UA2.114 (Baudoux)elk,_making_sense_of_your_data_not_just_for_logs!ELK, making sense of your data (not just for logs!)devroom<p>Elasticsearch, together with his cousins Logstash and Kibana, provide you with a great environment to analyse your data. In this talk we’re going to get inside the eclipse project, analysing what going on, their bugs, etc. If you were wondering what can ELK do for you, this is your talk.</p><p>By ingesting the some parts of the source code, plus the bugzilla repos into elasticsearch we’re able to analyse how the project is performing, getting insides on the project evolution during time. The purpose of this talk is to have a real demo on how to process, store and query data using Elasticsearch and friends, if you always had not much time, after that talk you will be able to start analysing your data.</p>Pere Urbon-Bayes
FOSDEM 2015 Video
18:5000:10UA2.114 (Baudoux)search_closingClosing RemarksOpen Source Search Dev RoomdevroomLeslie Hawthorn11:0002:00UB2.147tdf_exam_1LibreOffice Exam Sessioncertification<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>LibreOffice Team
The Document Foundation certification program
13:3001:45UB2.147lpi_1LPI Exam Session 1certification<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>LPI Team16:0001:45UB2.147lpi_2LPI Exam Session 2certification<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>LPI Team11:0000:30UD2.218Astateful_open_vswitchConnection tracking and stateful services with Open vSwitchdevroom<p>Open vSwitch has traditionally focused on stateless L2-L4 packet processing. The introduction of stateful connection tracking, NAT, and L7 service integration extend the scope of Open vSwitch usage. In this talk, we will discuss the introduction of stateful services and cover the implementation of reflexive ACL and integration of L7 DPI on the data center edge.</p>Thomas Graf
FOSDEM 2015 Video
11:3000:30UD2.218Aopenstack_opencontrailSDN for Massively Scalable CloudsCombining OpenStack and OpenContraildevroom<p>In this presentation, Kristian Köhntopp and Martin Loschwitz from SysEleven in Berlin will explain how SysEleven uses OpenContrail to create decent SDN networking for the company's OpenStack platform.</p><p>A lot has been said about Software Defined Networking in the Cloud Computing context. Most modern solutions are based on technologies such as OpenFlow, Open vSwitch and Open Daylight. And they almost all have serious technical issues avoiding proper scale out and sometimes even impacting normal operations in small-scale environments. If you’re out for SDN today, you will find yourself soon looking out for alternatives. OpenContrail is one of them: Based on standard protocols such as MPLS, OpenContrail allows you to realize virtual networks while retaining the advantages provided by real hardware.</p>
<p>At SysEleven, we’ve been working on an OpenStack-based cloud offering over the last year. One of the major design decisions was to go with OpenContrail as the stack for Software Defined Networking. This presentation will give you an insight into why we found other solutions such as OpenFlow inappropriate and what the challenges were in getting OpenContrail up and running. You will learn what our current SDN scenario looks like and what conclusions we have come to based on the experience that we’ve made.</p>Martin Loschwitz12:0000:30UD2.218Amidonet_101Midonet 101! Face to face with the distributed SDN solutiondevroom<p>Midonet, our distributed SDN solution, has been finally released to the the community and we’d like to share our excitement with you.
You’ll learn about the core concepts, why it’s different, its core design and why you would choose it for your project/business. Or not.
You’ll be introduced to concepts like Topology Aware Edges and JIT Datapath flow computation as well as our distributed agent model.
You’ll learn why we strongly believe in having intelligent edges and how this impact the overlay topology definition as well as the NFV implementation.
We’ll share with you the challenges we’re facing, our ideas and our product vision.
If you believe in the SDN future, please join us, bring your ideas and be part of the community we’re building. Fun included!</p>Antonio SaglioccoAlex Bikfalvi
FOSDEM 2015 Video
12:3000:30UD2.218AopenlispOpenLISP: Open source Locator/ID Separation Protocol implementation devroom<p>Due to scalability issues that the current Internet is facing, the research community has re-discovered the Locator/ID Split
paradigm. Among the various proposals, the most successful is LISP (Locator/ID Separation Protocol), which is currently
discussed at the IETF and strongly pushed by Cisco.The talk overviews OpenLISP (www.openlisp.org), an open source
implementation of LISP. The talk is organized in two parts. A first part will overview the main principles of LISP and the way it works.
The second part, which is also the main part of the presentation, will describe the kernel implementation work done.</p><p>In the last years both academia and industry have worked toward new Internet architecture proposals, due to the awareness that the current architecture is facing unforeseen scalability issues, concerning the restless increase of the BGP routing tables, addressing, mobility, multihoming, and inter-domain traffic engineering.
The general consensus is that splitting the locator and identifier roles of IP addresses solves these issues and is necessary for the Future Internet architecture.
However, in practice, several constraints have to be taken into account in order to design a viable solution that can be incrementally deployed, without disrupting the existing communication infrastructure, whilst providing benefits, hence incentives, for early adopters.
An instance of such a paradigm is the Locator/ID Separation Protocol (LISP). LISP was first proposed by Cisco in the IRTF (Internet Research Task Force) and is now under development in the IETF (Internet Engineering Task Force). Aiming at being incrementally deployable, LISP has evolved from its initial design in order to accommodate the constraints that the current Internet imposes, but still offering an effective solution for the scalability issues.
Our goal is not to convince the reader about the merits of LISP, or the general Locator/ID Split paradigm, and neither to provide numerical results of its performance.
Rather, the talk aims providing an overview on how LISP works and what are the basic principles, including its implementation aspects.</p>Luigi Iannone
Experimental Deployment
IETF LISP WG Page
OpenLISP Project
FOSDEM 2015 Video
13:0000:30UD2.218Apacket_filtering_pfluaHigh-performance packet filtering with Pfluadevroom<p>Pflua is a fresh implementation of the well-known pcap-filter language (pflang), designed to filter network traffic in the Snabb Switch. It is, to our knowledge, the fastest pflang implementation. This talk introduces pflua, its two compilation pipelines, its performance, and shows a demonstration of pflua filtering traffic at 10Gb line-speed in a Snabb Switch.</p><p>Packet filtering generally works by taking pflang expressions and compiling them to bytecode for the BPF virtual machine. Pflua, a new pflang implementation, instead compiles pflang expressions to Lua code, which are then optimized at run-time to native machine code by a trace compiler (LuaJIT). Tracing seems a particularly appropriate strategy for the packet filtering use case, as you end up with linear machine code that reflects the shape of actual network traffic.</p>
<p>Pflua is a project that lives at the intersection of networking and compilers. Its pflang to Lua compiler builds an AST that is exhaustively optimized, folding constants and tests, inferring ranges of expressions and packet offset values, hoisting assertions that post-dominate success continuations, etc. For compatibility, pflua also has a BPF bytecode to Lua compiler, whch leaves the first layer of compilation to libpcap, while benefitting from pflua's much better run-time performance.</p>
<p>Join us in this Pflua presentation and learn about:</p>
<ul>
<li> The architecture of Pflua.</li>
<li> Compiler optimization techniques implemented in Pflua.</li>
<li> Benchmarking. How Pflua compares to other packet-filtering solutions. Spoiler: it is sometimes several times faster.</li>
<li> Real-world demo: filtering with pflua and Snabb Switch.</li>
</ul>
Andy Wingo
FOSDEM 2015 Video
13:3000:30UD2.218Adpdk_performanceDPDK performanceHow to not just do a demo with DPDKdevroom<p>The Intel DPDK provides a platform for building high performance Network Function Virtualization applications. But it is hard to get high performance unless certain design tradeoffs are made. This talk focuses on the lessons learned in creating the Brocade vRouter using DPDK. It covers some of the architecture, locking and low level issues that all have to be dealt with to achieve 80 Million packets per second forwarding.</p>Stephen Hemminger
FOSDEM 2015 Video
14:0000:30UD2.218Adpdk_and_kernelUse DPDK and the Linux KernelOpen and High Performance Network Function Virtualization Infrastructure (NFVI)devroom<p>The SDN Community is building network automation along with OpenStack Neutron's capabilities. This creates connectivity based on Linux kernel functions, prevents single vendor solution lock-in and avoids building proprietary data paths. With DPDK and packet processing software to create NFVI, it is possible to keep this openness while both introducing performance and avoiding Neutron plugins for proprietary technologies. In this presentation, Vincent will show how DPDK applications can be combined on the host and guest of the network, and compute nodes of OpenStack scenarios, in order to sustain high performance for north-south and east-west traffic that is required for NFV solutions. 100 Gbps of packet processing throughput examples will be demonstrated.</p>
<p>Down the road, this openness shall apply on any packet processing data plane logic: on x86 hypervisors, ARM CPUs, new IBM Power8 or PCI SmartNICs (Cavium, Broadcom, Tilera).</p>
<p>Vincent will show that in networking, "Open" and "SPEED MATTERS" mean:
- keep Linux kernel stack
- freedom of Hardware IOs</p>Vincent Jardin
DPDK
OPNFV
FOSDEM 2015 Video
14:3000:30UD2.218Aproject_calicoProject Calico: A pure Layer 3 approach to virtual networking.devroom<p>An important part of building a virtual datacenter is networking. The common wisdom in the field is that providing virtual layer 2 networks built using one of the many open source vSwitches is the correct approach. This talk covers Project Calico, an open source attempt to provide an alternative approach by re-architecting the data center in the image of the Internet, aiming for simplicity, scale and efficiency.</p>Cory Benfield
FOSDEM 2015 Video
15:0000:30UD2.218AhakaHAKA : A security oriented languagedevroom<p>Haka is an open source, security oriented, language and framework that allows to
analyze live (or captured) traffic and easily dissect and modify it. Haka is
based on Lua which is a simple, lightweight and efficient scripting language.
The goal of Haka is to simplify the writing of network filtering rules using
a common high-level language, hide the complexity of network protocol dissection
to the end-user while still allowing complex tasks (such as packet injection)
to happen transparently on a live stream.</p>
<p>This presentation will introduce HAKA's capabilities and show
some examples of data manipulation both at the packet and at the stream level.
An example of packet dissector and grammar implementation will also be shown
to demonstrate how protocol management is handled in Haka</p>
<p>more information at http://www.haka-security.org/</p>Jérémy Rosen
http://www.haka-security.org/
FOSDEM 2015 Video
15:3000:30UD2.218AvxvdeVXVDE: almost zero configuration virtual networkingdevroom<p>VXVDE does not require any program to dispatch packets: vxvde has been implemented as a module of the libvdeplug library. It does not need
any infrustructure other than a well configured IPv4 or IPv6 network supporting IP multicast. VXVDE has a very simple configuration. A valid IP multicast address is enough to configure a "switchless switched" virtual network.</p>
<p>Unlike VXLAN, VXVDE does not require any Virtual Tunnel End Point (VTEP). Virtual Machines manage their own access to the virtual network. VXVDE unicast packets are mapped on UDP packets traveling on a direct path from the sending virtual machine to the receiving one, without any copy, any packet retransmission or extra header.</p>Renzo Davoli
source code
FOSDEM 2015 Video
16:0000:30UD2.218Apyroute2_netlink[pyroute2] On the peaceful uses of the Netlink protocoldevroom<p>The Netlink protocol is a Linux framework, that implements an easy to use communication channel between the kernel and userspace. This discussion is planned to highlight some common Netlink issues and practices, that can be interesting to other low-level network related projects.</p><p>The purpose of the pyroute2 project is to provide [not only] Python developers with a simple and reliable Netlink library, which could be used for the network setup as well as for the traffic processing, or even process monitoring and audit. While implementing it, we've met a number of issues coming from different parts of different Netlink subsystems. No one of the issues is a bug sensu stricto, but all of them seriously affect the final implementation.</p>
<p>So, it would be nice to share and discuss shortly the experience of the implementation solutions. Almost every low-level network related project has to work with the Netlink features and issues, and some of this knowledge can and, probably, should be generalized.</p>
<p>The agenda of the discussion is to show Netlink tricks and their impact on different levels: from the lowest protocol level to the high-level OS network setup. Will be prepared a demo of different projects interoperability, including Netlink proxying.</p>Peter V. Saveliev
the project home
FOSDEM 2015 Video
16:3000:30UD2.218Ahardware_switchesCANCELLED - hardware switches - the opensource approachdevroom<p>Imagine buying off the shelf switch hardware, install Fedora (or any other
distribution) and configure it using standard linux tools. This is not
possible at the moment primarily because of lack of unified and consistent
platforms and driver interfaces. We are working to change that.</p>
<p>The current state of support for switch chips in Linux is not good. Each
vendor provides userspace binary sdk blob that only works with their
chips. Each of this blobs has proprietary APIs. To get switch chips
properly supported there's need to introduce a new infrastructure directly
into Linux kernel and to work with vendors to adopt it.</p>
<p>This talk presents the current effort to unify and uphold the Linux
networking model across the spectrum of devices which is necessary to make
Linux the cornerstone of industrial grade networking. The scope of this
talk covers state of art with current implementation of standard commodity
switches such as top of rack switches, small home gateway device as well
as SR-IOV NIC embedded switches.</p>
<p>A device model and driver infrastructure will be presented for
accelerating the Linux bridge, Linux router, accelerated host virtual
switches and flow level offloads when supported by the hardware
underneath.</p>Jiří Pírko17:0000:30UD2.218Aknot_dnsKnot DNSindependent high-performance DNS serverdevroom<p>Knot DNS is a high-performance authoritative-only modern open-source DNS server. In this talk Knot DNS will be presented we will present the motivation, the goals and the current state of the project.</p><p>The Knot DNS supports most of the DNS standards and it has been already deployed at several TLDs and DNS hosters. Deployment at two root servers are already planned in upcoming months as an alternative to Bind 9 and NSD. The goal of the presentation is to show the audience the alternative DNS server that can be used to increase code diversity of used DNS software on the Internet.</p>Jan Včelák
Knot DNS Homepage
Knot DNS Documentation
FOSDEM 2015 Video
17:3000:30UD2.218Amanaging_networks_snmpManaging Networks in a Software-Defined FutureHow OpenNMS is coping, and: is SNMP finally dead?devroom<p>Since the late 1980s, the discipline of network management has kept up well enough with virtual notions in networks while continuing to rely heavily on the Simple Network Management Protocol (SNMP). The rise of software-defined networks poses similar challenges to the ones brought to the systems management space by server virtualization and cloud computing, leaving practitioners to wonder how much retooling will be needed to cope in this new world.</p>
<p>As the oldest enterprise-grade, open-source network management platform, OpenNMS has proved fairly adaptable so far. This talk will cover where we've been, what's possible given today's realities, and what we expect will be the toughest challenges in the future.</p>Jeff GehlbachMarkus Neumann
FOSDEM 2015 Video
18:0000:30UD2.218Anetworkd_statusnetworkd status updatedevroom<p>A brief introduction to networkd and an update on recent features</p><p>systemd-networkd is the network management stack that comes with systemd. In this talk I'll introduce the basic concepts, and outline where we are headed next. I will also discuss the possibility of code-reuse and colaboration with similar projects (in particular ConnMan and NetworkManager), how we have done this so far, and how we plan to do it going forward.</p>Tom Gundersen
FOSDEM 2015 Video
18:3000:30UD2.218Anetworkmanager_updateNetworkManager v1.0 status updateWhat happened. Where are we. What comes next for NetworkManagerdevroom<p>Give a status update on NetworkManager and talk about the current 1.0 release</p><p>NetworkManager 1.0 will be released by the time of FOSDEM15.</p>
<p>Talk shortly the major changes from the last year.
Show highlights of 1.0 and discuss future plans.</p>Thomas Haller
FOSDEM 2015 Video
11:0000:20K.3.201editors_optimizing_main_loopOptimizing the Libre Office Main LoopMunich students get their hands on Libre Officedevroom<p>A Lightning Talk with a Munich student, about his first project in Libre Office: Optimizing the Libre Office Main Loop.</p>Tobias Madl
Main Loop
11:2000:20K.3.201editors_cpp11_libreofficeC++11 and LibreOfficeThe future has arrived (it was about time)devroom<p>C++ has evolved quite a bit over the years, and the new C++11 standard finally has usable implementations on all relevant platforms.
We aim to give an overview of the current status of C++11 adoption in the LibreOffice project.</p>Michael Stahl11:4000:20K.3.201editors_openglOpenGL backend for LibreOfficeRendering everything through OpenGLdevroom<p>This talk will present the work to integrate an OpenGL vcl backend.</p>Markus Mohrhard12:0000:20K.3.201editors_openglcanvas_libreofficeOpenGLCanvas in Libreofficedevroom<p>Munich student talks about his first project for libreoffice: Implementing a OpenGL canvas backend.</p>Michael Jaumann12:2000:20K.3.201editors_ide_integrationLibreOffice IDE integrationdevroom<p>LibreOffice recently has finished to use a consistent build system, this made it easy to now allow it to be debugged, modified and improved in an IDE for developers.</p><p>This lecture will show how we improved LibreOffice to be debugged, edited and hacked upon in an IDE with nice features like code-completion. It will show some examples on how easy this makes contributing to LibreOffice and how the support of such tools can make you an contributor too.</p>Bjoern Michaelsen
the first IDE integration implemented: Kdevelop
FOSDEM 2015 Video
12:4000:20K.3.201editors_pdf_signingPDF signing in LibreOffice: no longer experimentaldevroom<p>During the Google Summer of Code in 2012, Gökçen Eraslan implemented digital signatures for LibreOffice's PDF export. There were some glitches left in the feature, for instance it did not really work well on Windows, which is where most of our users are. Because of that, the functionality was marked as "experimental" and was thus not easily available to users. Recently, thanks to a crowdfunding effort, we had the opportunity to improve this feature. The presentation will describe that work and show how to use the feature.</p>Tor Lillqvist
FOSDEM 2015 Video
13:1000:20K.3.201editors_continuous_integrationCI for LibreOfficeJenkins-Gerrit Integration and other woesdevroom<p>LibreOffice has been using gerrit for some time. This present an on-going effort to integrate jenkins into the mix
to provide multi-platform build verification and test as early in the dev process as possible.</p>Norbert Thiebaud
FOSDEM 2015 Video
13:3000:20K.3.201editors_gerrit_code_reviewNew features in Gerrit Code Review 2.11Support for browser based Gerrit workflowdevroom<p>Gerrit Code Review is Git based pre-merged code review tool, used by LibreOffice
project. And as thus is heavily used by LibreOffice developers in different roles,
either as a contributor or as a core reviewer.</p>
<p>In this talk the long awaited feature (that GitHub and other platforms already support):
the ability to create, populate and amend Gerrit changes directly in browser is explained.</p><p>Priot to Gerrit 2.11 to address reviewer comments, (even typos) The Gerrit
change must be amended in local environment and repushed to Gerrit again.</p>
<p>Starting from gerrit 2.11 changes can be created and edited directly in the browser.</p>
<ul>
<li><p>New changes can be created and populated directly in the browser via
a 'Create Change' button on the project info screen.</p></li>
<li><p>New follow-up changes can be created via a 'Follow-Up' button on the change
screen</p></li>
<li><p>Content editing takes place in a full screen CodeMirror window with support for
themes, syntax highlighting, different key maps (Emacs, Vim, Default).</p></li>
<li><p>The CodeMirror screen can be configured in the same way as the side-by-side
diff screen.</p></li>
<li><p>The file table in the change screen supports edit mode with seamless navigation
to CodeMirror for editing.</p></li>
<li><p>Edit mode can be started from the side-by-side diff screen with seamless
navigation to CodeMirror.</p></li>
<li><p>The commit message can be changed in context of change edit. The 'Edit Message'
button is still supported, but now it creates a change edit that must be published.</p></li>
<li><p>Files can be added, deleted, restored and modified directly in browser.</p></li>
<li><p>User-specific configuration dedicated to edit mode in CodeMirror are stored in
the <code>All-Users</code> repository rather than in the database.</p></li>
</ul>
<p>In this talk i will present the concepts and go into implementation details.</p>David Ostrovsky
FOSDEM 2015 Video
13:5000:20K.3.201editors_texboxes_writerTextBoxes: complex shapes with complex content in LibreOffice Writerdevroom<p>LibreOffice Writer was always capable of handling complex content in a floating
TextFrame, which allows fields, tables, embedded objects and similar features.
But what about non-rectangular shapes? Or even rectangular ones, but with
rounded corners? TextBoxes is a new concept that allows attaching complex
Writer content to a drawinglayer custom shape: having both custom geometry
without being limited to simple editeng content. Come and see where we are,
what still needs to be done, and how you can help.</p>Miklos Vajna
FOSDEM 2015 Video
14:1000:20K.3.201editors_calc_dependency_performanceLibreOffice Calc dependency & performance workhow we made things faster & betterdevroom<p>Calc has undergone some revolutionary changes in recent years to improve parallelism and enable OpenCL calculation, I'll explain
this base-line that we've reached. I'll then explain recent improvements from Collabora in the dependency engine to further accelerate computation, and to shrink memory usage of the spreadsheet. Then we'll look at the next steps, and where you can get involved.</p>Michael Meeks
FOSDEM 2015 Video
14:3000:20K.3.201editors_reaching_outOpenOffice reaches out: the technical angledevroom<p>It is time for Apache OpenOffice to change direction and focus outwards, including collaboration with other projects. Leaving all the non-technical issues out, we will discuss what the technical ones are and how they can be solved.</p>Jan IversenAndrea Pescetti
FOSDEM 2015 Video
15:0000:20K.3.201editors_improving_libreoffice_qualityImproving LibreOffice qualityCoverity and crash testingdevroom<p>This talk will present some of the automated tools that the LibreOffice project is using to improve the quality of the code. This includes coverity where the LibreOffice project managed to reach a nearly perfect defect density score of 0.00 and the import/export crash testing with about 75000 documents.</p>Markus Mohrhard
FOSDEM 2015 Video
15:2000:20K.3.201documents_torturingTorturing your software with 124 ODF file formatsBringing gleeful sadism back to software development and base your opinions on factsdevroom<p>Good software can take a hit. Most software can't. The OpenDocument Format (ODF) specification is quite large and very important. Now that it is being adopted more and more, many strange and wonderful documents will be created by custom software that claim to be ODF documents. The ODF softwares of the world should be prepared. That's why ODFAutoTests helps you to create outlandish documents and lets you run them through your software.</p>
<p>This talk will include an enticing argument for writing tests and will present the audience with the data of running the current tests on the current software.</p>Jos van den Oever
git repo
FOSDEM 2015 Video
15:4000:20K.3.201editors_ux_easy_hacksLibreOffice Design/UX Easy HacksHow you can get involveddevroom<p>LibreOffice 4.4 has got many user interface improvements - but there's still much more to do. Come and hear how you can get involved, and can help make LibreOffice more usable & more beautiful!</p>Jan Holesovsky
FOSDEM 2015 Video
16:0000:20K.3.201editors_document_liberation_projectDocument Liberation ProjectTools and framework for achieving preservation of digital contentdevroom<p>The Document Liberation Project has already developed a dozen of import libraries which have been integrated by software such as: Abiword, Calligra, CorelDRAW File Viewer, Inkscape, LibreOffice and Scribus.
Besides short overview of motivations behind the project creation, this lecture will present the technical details of the framework used by the Document Liberation Project, as well as the different home-brewed introspection tools that we use. This are all free software tools that can be of use for wide range of other FLOSS projects.</p>Fridrich Strba
FOSDEM 2015 Video
16:2000:20K.3.201editors_libreoffice_odfLibreOffice and ODFdevroom<p>Open Document Format (ODF) is the native file format of LibreOffice. It means that all features of the document model must be represented at the ODF level, too. The features, which cannot be represented in ODF version 1.2, need to be submitted to OASIS to be included in the next version of the standard. My talk gives an overview of recent work and plans of the LibreOffice project related to ODF standardization.</p>Andras Timar
FOSDEM 2015 Video
16:4000:20K.3.201editors_corinthia_mobileCorinthia a new idea for document handlingediting on mobile devices or using multiple document formats?devroom<p>Corinthia is a brand new apache project, based on the very successfull UXwrite editor. Peter Kelly decided earlier this year to make his editor open source (Thanks), and we rapidly built a community around it. Corinthia is firstly a toolkit for document format conversion, that ffacilitates round trip conversion without data loss. The engine us a complete new idea comming from desktop editors like LO and AOO. The idea of the editor is not to replace a full fledged desktop editor, but merely to let you correct minor things when you discuss your work with friends wich of course happens on a tablet.</p><p>The corinthia project is a new apache project, and while we look at lot at LO and AOO we look for new ideas.....actually some of the LO/AOO developers told us to start fresh......here we are, cone listen to what we are and will do.....one person named us AOO light, for sure that is not who we are, but we would love to have discussions and participation with the people if both LO and AOO.</p>
<p>The presentation will show where we are and where we would like to be.....but honestly a big debate is hoped for, and stay sure, some remarks will be made to provoke a debate.</p>
<p>The preseneter is a commiitter in AOO (former PMC) and a STRONG believer in cooperation.</p>Jan Iversen
FOSDEM 2015 Video
17:0000:20K.3.201editors_libreoffice_androidLibreOffice on Androiddevroom<p>Come and hear about what we had to do to get LibreOffice on the Android platform - how we stripped down Fennec (Firefox for Android), combined it with the LibreOfficeKit, and still got an .apk that fits the 50M limit of the Play store.</p>Miklos Vajna
FOSDEM 2015 Video
17:2000:20K.3.201editors_android_visionA vision about a LibreOffice document manager for Androiddevroom<p>The document manager will bridge the Android port of LibreOffice with the services provided by this operating system. We will show the current status, specially regarding the implementation of the cloud storage support funded by The Document Foundation, and present a vision of the future of this component as a full featured, Android-centric document manager.</p>Jacobo Aragunde Pérez
FOSDEM 2015 Video
17:4000:20K.3.201editors_public_administrationAdapting Apache OpenOffice for adoption in a public administration: configuration, Sharepoint webdav integration and an extension to help users exchange ODF filesdevroom<p>This talk aims to give an overview of the introduction of the ODF standard and Apache OpenOffice in an Italian public administration with more than 3000 users, addressing briefly the main technical issues and solutions. In particular we will talk about: 1) the configuration of OpenOffice, extended with community developed and custom extensions to help users in the everyday work 2) the interoperability with Sharepoint through the webdav protocol and what we developed in Apache OpenOffice for the correct interaction 3) our extension to simplify picking the right format for file exchange, to answer the users' ubiquitous question "Ok but… should I use ODF to send/share this?”, in relation to our ODF census project in Italy.</p>Maurizio BertiGiovanni Grazia
FOSDEM 2015 Video
18:0000:20K.3.201editors_lightning_talksLightning talk slotDemo your cool hack in 5 minutes!devroom<p>Lightning Talks</p>Thorsten Behrens
FOSDEM 2015 Video
10:3000:05K.3.401perl_devroomWelcome to the Perl devroom!And oh man, this year is special!devroom<p>Introduction to the Perl devroom.</p>Claudio RamirezWendy G.A. van Dijk10:3500:20K.3.401metacpanCPAN is amazing, MetaCPAN is amazing, and APIs are greatdevroom<p>CPAN is Perl's killer feature. The information available in CPAN is massive, but without a proper API, it's difficult to work with. MetaCPAN provides this API, and MetaCPAN::Client provides the ability to work with the API in a sophisticated and comfortable way.</p>Mickey Nasriachi10:5500:40K.3.401modules_ecosystem_perl6Leapfrogging the bootstrapBringing whole module ecosystems to Perl 6. devroom<p>Perl 6 and its implementation Rakudo are rapidly becoming ready for serious use. What's missing now is the huge module ecosystem that makes Perl 5 the swiss army chain saw it is.</p>
<p>Inline::Perl5 attempts to solve this by allowing you to use Perl 5 modules (including XS modules) in Perl 6. If that's not enough, Inline::Python may jump in and safe the day.</p>Stefan 'nine' Seifert
FOSDEM 2015 Video
11:3500:50K.3.401perl6_lang_spec_lessons_learnedHow (not) to create a language specification for Perl 6 Lessons learneddevroom<p>In the process of designing, implementing, and using Perl 6 (or any programming language), people often refer to ""the language specification"" as a commonly understood and perhaps self-evident fixed reference point. For mature languages this can be reasonable, because the people using that language have generally developed a shared understanding of what constitutes the language's specification.
But languages are not all specified in the same manner, and in a new or rapidly evolving language it may be unwise to prematurely commit to an inflexible specification. Perl 6 has gone through several imprecise notions of what constitutes its specification, such as design documents like the Synopses, reference implementations of certain features, and the ""official"" test suite. This imprecision sometimes leads to misunderstandings among developers, confusion for newcomers to the language, and difficulty communicating with external audiences.
This talk presents a historical perspective on how Perl 6's specification process has evolved over the past decade: identifying things we've done (or are doing) wrong, things we've gotten very right, and ideas of what that process ought to look like going forward.</p>Patrick 'pmichaud' Michaud
FOSDEM 2015 Video
12:2500:50K.3.401c_bindings_a_journeyBinding C librariesA journeydevroom<p>Pure Perl is awesome. But often there are situartions where Pure Perl™ means that your program will either be slow, or it will not comply with industry standards. On the other hand, using battle tested open source libraries is a sane choice, but implementing the bindings to a language like Perl can be quite challenging. This talk is a walk-through this business, illustrating the bindings to the library libxml.</p>Tobias 'FROGGS' Leich13:1500:40K.3.401dancer_statusDancer Statusdevroom<p>The status of Dancer. Version 1 vs version 2. Development efforts. Progress, lack of progress, and everything in between.</p>Sawyer X
FOSDEM 2015 Video
13:5500:50K.3.401perl6_for_mortalsPerl 6A Dynamic Language for Mere Mortalsdevroom<p>With the complete failure of security forces to contain the impending threat of Perl 6, developers are beginning to investigate it themselves. Unfortunately, many of the combatants who wield Camelia are so enraptured that they post long sermons extolling the virtues of hyperoperators, meta-object protocols, and composable concurrency, scaring off the faithful.
Those sermons are important. However, it turns out Perl 6 is actually a fairly easy weapon to use and for day-to-day use, it's simple. This talk will take things down a notch or three and show you how simple basic Perl 6 really is. The talk might even be less objectionable than this description.</p>Curtis 'Ovid' Poe
FOSDEM 2015 Video
14:4500:50K.3.401perl5_22_things_to_comePerl 5.22The Shape of Things to Comedevroom<p>Every spring, there's a new version of perl. Every new version of perl ships with "perldelta," the comprehensive list of changes in that version. Every summer, rjbs (the Perl 5 project lead) tries to summarize the perldelta, omitting the tedious and obscure in favor of the awesome and exciting. This winter only, you can get a sneak preview of the yet-unreleased Perl 5.22's planned changes, a recap of the best bits of 5.20, and the faintest whiff of changes under discussion for next</p>Ricardo Signes
FOSDEM 2015 Video
15:3500:50K.3.401fast_enough_perl6"Fast enough” Perl 6How I learned to stop worrying and love gamesdevroom<p>Every time a question of speed or production readiness comes up, the answer always seems to be somewhat evasive -- "depends on what your production is", they say, or it's fast enough for my use case". Let's see how it works with computer games, where you can't easily cheat with pre-rendering or caching to workaround things being slow.</p>Tadeusz 'tadzik' Sosnierz16:2500:50K.3.401perl_syntactic_legacyPerl's Syntactic LegacyUsing the future to improve the pastdevroom<p>The Perl programming language is currently enjoying a resurgence in popularity, and for good reason!
Perl 5 development continues to move forward with new features being introduced and many old ones improved, meanwhile the development of Perl 6 is making significant progress and has reached a major milestone, the details of which will be announced by Larry Wall at this very conference.
For many years now the development of these sister languages have affected and influenced one another in a myriad of ways. Over the last few years I have been working on a design proposal for enhancing and extending the object system of Perl 5 which borrows a number of elements from the Perl 6 object system.
In this talk we will explore the various evolutionary stages of that work, as well as discuss the complexities of adding new features to such a mature and well established language like Perl 5. Along the way we will also examine the various meanings of "legacy" in each context and show how it informed the design decisions that were made.</p>Stevan Little
FOSDEM 2015 Video
17:1500:50K.3.401devops_logiqueDevops Logiquedevroom<p>Most of us already owe Prolog a debt indirectly via Erlang. However, logic programming in and of itself has much to teach us about approaches to systems - taking declarative system descriptions to a new level of abstraction, and finding ways to integrate these ideas back into more common workflows.
From Prolog to Erlang to Haskell to Lisp to TLC and then back to Prolog I have journeyed, and I'd like to share some of the beautiful and brilliant things I've discovered along the way and why I think they might make us better operations geeks.
And when approaching new languages, always remember: You can't scare us, we've used m4.</p>Matt 'mst' Trout
FOSDEM 2015 Video
18:0500:55K.3.401perl6_beyond_dynamic_vs_staticPerl 6: beyond dynamic vs. staticdevroom<p>Is Perl 6 dynamic? Well, it sure looks like it: you can eval code at runtime, do all kinds of late-bound lookups, write code without a type declaration in sight, dynamically generate types, and even mutate the language and the way its object model works.
But hang on a moment! Misspell a variable or object attribute? That's a compile time error. Call a subroutine that doesn't exist? Yup, same deal. Passing just one argument to a sub that needs two? There's a good chance you'll be told about that too...at compile time. Want to write code that uses native integers and floating point numbers? Go right ahead and throw in some types. Oh, and those super-dynamic modules that extend the language? They can get in on the act, and flag up things to the programmer at compile time too!
In this session, we'll explore how Perl 6 strikes a balance between static and dynamic, how the Rakudo Perl 6 compiler takes advantage of this careful design work, and how the language and implementation are flexible enough to let the programmer pick their own trade-offs if the defaults don't fit their problem.</p>Jonathan 'jnthn' Worthington
FOSDEM 2015 Video
10:3000:25K.4.201state_of_openjdkThe State of OpenJDKdevroom<p>A review of the past year in the life of the OpenJDK Community, and a look at what's ahead.</p>Mark Reinhold11:0000:25K.4.201java_modulesJava 9: Make Way for Modules!devroom<p>Java 9 will introduce a standard module system to the platform in order to modularize the platform itself, improve performance and security, and simplify the development and maintenance of large applications. In this session we'll discuss how these changes will impact developers in general and those who work on the JDK in particular.</p>Mark Reinhold11:3000:25K.4.201mapped_byte_bufferMappedByteBuffer.hurray()Programming the Linux Framebuffer in Java. #essentialtools and #allthethings #rgbdevroom<p>Java is a great language for rapid prototyping. For those interested in multimedia and UI design in Linux, however, there are limited options that provide a varying degree of performance and feasibility. It is quite straightforward to perform I/O on a Video 4 Linux device or the Linux framebuffer in C, but not as straightforward in Java. The end result of this project enables Java programmers program devices like the Linux framebuffer much ease as they use byte[] and int[] classes. An interactive demonstration will be made available as part of the workshop. Moreover, the implementation demonstrates speedups of up to 150x in MappedByteBuffer I/O.</p><p>This patchset [1], currently implemented as a proof of concept using
JamVM and GNU Classpath, enables</p>
<p>1) the JVM to mmap special files (i.e. those in /dev) - something no
other VM can do AFAIK
2) a true, direct, MappedByteBuffer from any mapping or pointer in the CRT
3) provides a safe, memory-managed Java backing array, via
MappedByteBuffer.array()
4) speeds up MappedByteBuffer I/O by factor of up to 150 times!!</p>
<p>In human terms, it lets me draw to the FB[4] using pure Java :-) Since
originally posting my patchset, I have made a few changes including
removing the custom JNI calls in favour of using sun.misc.Unsafe API.</p>
<ul>
<li>If possible describe why Free Java is helpful or perhaps even
essential to your project.</li>
</ul>
<p>This would have been practically impossible to do with a closed-source
JVM and class library. JamVM and GNU Classpath have been open source
for as long as I've known, and that's enabled me to become familiar
enough with the source to make it do whatever I needed in various
embedded environments.</p>
<ul>
<li>What the audience will learn from the talk.</li>
</ul>
<p>I will provide a fairly minimal VMWare image so that the audience can
easily download the VM, modify some Java code, and draw whatever
demo's they would like to to the FB - using pure Java! My forks are up
on github [2,3]</p>
<ul>
<li>How can people help out with the project, what feedback are you looking for?</li>
</ul>
<p>I would like to have some feedback about the patchset to get it in
good enough shape for acceptance to GNU Classpath and JamVM. I would
like to entice some other tinkerers to port the changes to OpenJDK as
well, and would like to get some feedback about possibly using JNA in
combination with my /dev/fb and /dev/event classes. Lastly, I would
very much like to open up the discussion about forming a
performance-optimization group.</p>
<p>Recording me on audio and/or video: YES (acceptable)</p>
<p>[1] https://plus.google.com/+ChristopherFriedt/posts/N4eVKvn2oL4
[2] https://github.com/cfriedt/jamvm
[3] https://github.com/cfriedt/classpath
[4] https://plus.google.com/+ChristopherFriedt/posts/XkNYEfgESea</p>Chris Friedt
JamVM Fork
Classpath Fork
Demo Video
12:0000:25K.4.201diagnosing_with_thermostatDiagnosing Performance Issues Using Thermostatdevroom<p>Debugging performance problems can be a daunting task, especially when you are short on time and lack proper tools that integrate nicely with your custom application landscape. Thermostat was designed to answer the most interesting questions related to performance measurement and application monitoring. It takes advantage of performance metrics and serviceability features of OpenJDK to provide a holistic view of the system. In this session, attendees will get a chance to see Thermostat in action as it is used to analyse programs, gather data, and debug issues affecting performance and functionality.</p>Mario TorreSeverin Gehwolf
FOSDEM 2015 Video
12:3000:25K.4.201iot_eclipseBuilding an open Internet of Things with Java and Eclipse IoTdevroom<p>Java is a platform of choice for many IoT applications, from building smart gateways that bridge sensors to the cloud, to device management infrastructures or home automation systems. This session provides you with concrete examples of how to build end-to-end solutions with the Eclipse IoT Java stack and in particular how to use open-source projects such as Paho, Kura, Californium and Concierge on top of OpenJDK. You should join this session if you have Java developments skills that you'd like to put to good use for your next IoT project, and if you are interested in learning more about how to use open standards like CoAP, MQTT, 6LoWPAN, … in your Java applications.</p>Benjamin Cabé
FOSDEM 2015 Video
13:0000:25K.4.201caciocavalloCaciocavallo, or how we ported OpenJDK from embedded to cloud and still liked itdevroom<p>Caciocavallo has been one of the very first external projects to land in the OpenJDK repository and sponsored by the OpenJDK Porters Group. Named after a delicious cheese we're never tired of eating, it had the original purpose of refactoring the AWT peers to allow different implementations to be added to OpenJDK. The project evolved very quickly until it became itself a full implementation of AWT based on Swing with just enough abstraction to allow custom plugging into the Java2D system for rendering. As time passed, this characteristic was used to implement a GUI testing framework running on offscreen buffers to avoid the usual problems of focus stealing and random mouse moving that plague every other GUI testing framework (here everything is emulated!), and finally a full Web based backend to allow application to run remotely but still be visible on the local screen. This talk will cover the progress we have done over the years, we will show how easy is to implement a new backend and how this project could be used to give Wayland support to OpenJDK. We will show the testing framework and finally we will discuss about WebJDK, an idea to give more web oriented functionality to OpenJDK and use the web backend to enable fully cloud based applications.</p>Mario TorreRoman Kennke
FOSDEM 2015 Video
13:3000:25K.4.201packed_objectsPacked Objects, Object Layout & Value Types - a Surveydevroom<p>Java is often criticized for its lack of supporting C-style structs. This makes it hard to efficiently implement certain type of data structures (like for example arrays of small objects) in Java.</p>
<p>However, recently there have been several different approaches which try to address this problem. My talk will briefly introduce "Packed Objects", an extension available in IBM's Java SDK 8, "Object Layout", a layout-optimized Java data structure package proposed by Azul Systems and Value Types [3][4], an OpenJDK proposal for immutable, reference-free value objects.</p>
<p>I will describe the commonalities and differences of the three approaches and explain how they can improve the memory overhead and locality of Java objects.</p>Volker Simonis14:0000:25K.4.201jitsi_cryptoJitsi Videobridge in Cryptoland: the adventures of a Java WebRTC video router on the road to supporting 1000s of video streamsdevroom<p>In Jitsi Videobridge (https://jitsi.org/Projects/JitsiVideobridge), a WebRTC video conferencing router, encryption and packet signing were among the most expensive components in terms of CPU intensity. We therefore set out on a journey to optimize them as much as possible.</p>
<p>We would like to share this journey with the Java FLOSS community.</p>
<p>We are going to present a comparison we have made on the execution times of popular open source implementations of AES and SHA-1 in search of the best performer. Our reference implementations are provided by the pure-Java Bouncy Castle cryptography APIs. Our contenders are an assortment of widely-used Java and cross-platform C code: the SunJCE security provider optimized by Java Runtime Environment (JRE) 8, the Mozilla Network Security Services (NSS) libraries employed through the SunPKCS11 security provider and the OpenSSL Crypto library accessed with the help of the Java Native Interface (JNI).</p>
<p>We're going to pit software against hardware in our examination how we can leverage the Advanced Encryption Standard New Instructions (AES-NI).</p>
<p>We're going to look at the performance compromises of transferring bytes between Java and C. Can we beat Java's intrinsics? Will Java New/Non-blocking I/O (NIO) be better?</p>Lyubomir Marinov14:3000:50K.4.201arm_micro_itThe ARM microJIT, a JIT for the IoTdevroom<p>We have all got used to memory being essentially infinite, however the IoT reopens the constrained device with devices having 256M or less. This project looks at developing an ARM microJIT targeted at these devices. The project is based on the original work I did on the Thumb2 JIT (FOSDEM 2010).</p>
<p>The project targets the Raspberry PI which is an ideal IoT development/demonstration platform. Unfortunately the Thumb2 JIT does not support the Raspberry PI because the Raspberry PI does not have the Thumb2 instruction set. This is a project which I am working on in my 'free' time and I hope to have a demonstrable port by FOSDEM.</p>
<p>Finally I would like to have a discussion about the future of this work.</p>Edward Nevill15:3000:50K.4.201hacking_openjdkWhat Lies Beneath?: Lessons learned hacking the OpenJDK interpreter/compilersdevroom<p>What really happens to your Java code along the way to becoming machine code?</p>
<p>Red Hat has been developing an almost pauseless GC for OpenJDK which requires adding read barriers to every object access. We've also developed ARM64 versions of both the server and the client compilers. This has given us quite a bit of experience with the internals of the various methods of generating machine code inside the JVM. This talk will start with a brief tour of the various levels of code generation available and then open up the floor for questions from our panel.</p>Andrew HaleyRoman KennkeAndrew DinnChristine H Flood16:3000:25K.4.201jfreeJFree - The Long and Winding Road (Ahead)devroom<p>This year the JFree project (that’s JFreeChart and friends) turns 15! Though looking forward not backward is the JFree way, so this session will cover a couple of the latest free things we’ve been working on. We fly <em>high</em> above the low level virtual machine technology, even above the standard Java APIs, so if you want to soar with eagles (and your brain hurts from some other talks about complex low-level <em>magic</em>) then come a see some shiny graphical things and we’ll promise not to talk about anything that’s complicated!</p>
<p>In this session, you will hear about our recent JavaFX work, or get a quick demo of JFreeSVG, or maybe we’ll surprise you with something else graphical, awesome and free. :-)</p>David Gilbert
FOSDEM 2015 Video
17:0000:50K.4.201java_restart_webfxJava restart with WebFXdevroom<p>The purpose of the WebFX project is to investigate the capabilities of using JavaFX to build rich web applications. Actually, it is an attempt to create a new web where HTML is replaced with FXML — the markup language for JavaFX UI, and the logic can be written in any programming language that is available on top of Java platform from JavaScript, Groovy, JRuby to Java, Kotlin and Scala. Java ReStart is a complimentary project that acts as transport layer for WebFX allowing FXML pages to reference arbitrary Java byte code on a web server and hence any custom JavaFX UI components and Java third-party libraries. In addition, Java ReStart allows to run arbitrary Java applications
instantly from a web server downloading only required parts of applications on demand and executing them in parallel with downloading.</p>
<p>I would like to give an overview of the projects, make a live demo, compare the proposed technologies with traditional web and native clients, show how the technologies differ from Java applets and Java Webstart, reveal benefits in compare with RDP-like approaches. Finally, I will share my vision on how to evolve the projects.</p>Nikita Lipsky
FOSDEM 2015 Video
18:0001:00K.4.201debugging_hotspotOpen Heart Surgery: HotSpot Debugging at the OS Leveldevroom<p>Debugging Java applications is comfortable and simple, but if you want to look beyond the Java horizon, you need special knowledge and and different tools.</p>
<p>This interactive session shows you how to debug a running VM or analyze a VM core file with a native debugger like gdb. You will also learn how to use some of the more than 1,200 VM options to trace or
modify the VM behavior. This knowledge can greatly help you identify, isolate and reproduce the root cause of hard VM crashes, and it can also be pure fun to see which actual machine instruction the CPU is executing for your Java code.</p>Volker Simonis
FOSDEM 2015 Video
11:1000:45K.4.401rubinius_and_the_yakRubinius And The Eternal YakCovering what it takes to maintain a Ruby implementation and the process behind itdevroom<p>What exactly does it take to maintain a Ruby implementation? What is the process
of porting over features? Why can this often take a considerable amount of time?
This talk aims to dive into these topics in general but also how it affects
Rubinius.</p><p>This talk will focus on what it takes to maintain a Ruby implementation and the
process behind it. While there will be a strong focus on how Rubinius handles
this, most of the topics also apply to other implementations such as JRuby and
Opal. We'll also look into writing tests for Ruby, how this has been handled
historically and why it's so important to have good tests.</p>
<p>One of the examples I'll be showcasing is how String#scrub, a new method in Ruby
2, was implemented in co-operation with Charles Nutter from JRuby and why this
took quite a large amount of time (nearly a month). Another example will be
Kernel#caller_locations, a method recently added to Rubinius which highlighted
a potential bug in the implementation of MRI itself <a href="this">1</a>.</p>Yorick Peterse
Rubinius Website
RubySpec Website
FOSDEM 2015 Video
12:0500:45K.4.401peeling_back_ruby_c_extensionsRuby-red onions: Peeling back Ruby's layers in C extensionsDive into using the Ruby C extension API to understand more about MRIdevroom<p>The fact that Ruby has different implementations is strange but also powerful as it allows us to write extensions. Although writing an extension can be a daunting task, there's no better way to get to the heart of what exactly Ruby objects are and the reason for some of the language's quirks.</p>
<p>In this talk, we'll use an example of writing a C extension for Ruby to use a third-party C security library. We'll peel back the layers of Ruby objects to deepen our knowledge of MRI and to understand in a little more detail what it really means to write object-oriented code.</p><p>Ruby is a very high-level language and I've found that Rubyists often lack more lower-level knowledge concerning operating systems, memory management, differences with other languages, and typing. Writing a C or Java extension exposes some of these concepts to the Rubyist and highlights the uniqueness of the language. I would like to share some of what I've learned from writing C and Java extensions with the RubyConf audience.</p>
<p>In this presentation I'll use an example of writing a C extension so that Ruby code can make use of a third-party C security library. The topics I'll touch on are:</p>
<p>How to write a rake task so that your extension compiles when your gem installs
How Ruby objects are represented in C code
The appropriate C functions to use when going back and forth between Ruby objects and C code</p>
<p>Here is the c code: https://github.com/mongodb/mongo-ruby-driver/blob/1.x-stable/ext/csasl/csasl.c</p>
<p>Why I'm qualified as a speaker on this topic:</p>
<p>I had to write both a Java and C extension for the MongoDB Ruby driver using a sasl library for GSSAPI authentication against MongoDB. There was minimal documentation available for how to write extensions in Java or C and I learned a ton from having to figure it out on my own.
Having written the extensions gives me a much deeper understanding of MRI in particular and general knowledge about programming languages.</p>
<p>I've given numerous talks at conferences, including RubyConf '13, invited to BaRuCo '14, RailsConf '13, RailsIsrael, RuLu, GoGaRuCo '13, GoRuCo '13, ScottishRuby, etc. I love giving talks and put a lot of heart and soul into the preparation. I've heard people usually think they're high quality = )</p>Emily Stolfo13:0000:45K.4.401concurrent_rubyConcurrent Ruby: low and high-level concurrency abstractions for the Ruby languageDiscussion of concurrency patterns available and how they're implemented for Rubydevroom<p>The concurrent-ruby is a gem which provides a variety of concurrency abstractions at high and low levels. It is an unopinionated toolbox allowing users to pick the right tool for a given concurrent problem. The gem has Agents, Actors, STM and many more.</p>
<p>The talk will cover:
- Overview of the available tools.
- Examples of some abstractions.
- Java and C specific implementations.</p>Petr Chalupa13:5500:45K.4.401the_future_of_jrubyOver 9000: The Future of JRubyA talk on JRuby 9000 and where it will take Ruby in the next yeardevroom<p>JRuby 9000 represents the biggest-ever leap forward for JRuby. Not only have we caught up on compatibility (9000 will be 2.2-compatible from release), but we've completely redesigned our JVM-based runtime and have opened our codebase up to the JRuby+Truffle research project from Oracle Labs. The changes we've made will make it easier to keep up with MRI on compatibility and give us the potential to run Ruby as fast as Java or C. The entire Ruby world will change over the next year, and JRuby 9000 will be leading the way. We'll talk about what Ruby's going to look like once JRuby is "over 9000".</p>Charles Nutter14:5000:45K.4.401jruby_truffle_deep_diveTruffle: A tour through a new Ruby implementationAn in-depth walk-through of JRuby+Truffle, a new high performance Ruby implementationdevroom<p>JRuby+Truffle is a new high performance implementation of Ruby being built as an open-source research project at Oracle Labs. It uses state-of-the-art research into techniques for writing interpreters and dynamic compilers that allows it to be both significantly faster than any other implementation of Ruby, but also conceptually simpler.</p>
<p>In this talk we'll explain how JRuby+Truffle works. We'll cover the whole system from the parser to emitting the actual machine code bytes - and we won't have to leave our Java IDE to do it.</p>
<p>We won't shy away from technical depth where it's needed to uncover all the details, but Truffle is designed to be a high-level and simple system accessible to non-experts. Novices will get an insight into the big ideas, and experts will be able to find out how it all really works.</p>Chris SeatonBenoit Daloze15:4500:45K.4.401ruby_mri_vs_father_timeMRI vs. Father TimeCovering the Past, Present and Future of the MRI interpreterdevroom<h1>MRI vs. Father Time</h1>
<p>Matz Ruby Implementation has grown into a fast and effective option for building dynamic applications. Thanks to the advancements such as YARV virtual machine and Incremental GC introduced in Ruby 2.2.</p>
<p>In this talk we will cover the Past, Present and Future of the MRI interpreter. We'll see how it performs under various conditions, such as static content generation and web services.</p>
<p>With the help of new and improved MRI tooling, you'll get to see the path to profiling your applications and enlightenment.</p>
<p>Join the author of MRI’s new Virtual Machine and Garbage Collector Koichi Sasada along with Terence Lee and Zachary Scott. As they dig through the internals of Matz Ruby Implementation.</p>Zachary ScottKoichi SasadaTerence Lee16:3500:45K.4.401inside_rubymotionInside RubyMotionThe toolchain that lets Ruby developers write iOS and Android appsdevroom<p>RubyMotion is a toolchain that lets Ruby developers write iOS and Android apps. Internally RubyMotion features 2 distinct implementations of the Ruby language (one for the Objective-C runtime and one for the JVM) as well as a static compiler written with LLVM. In this presentation, we will dig inside RubyMotion and see how everything works, from unified runtimes to static and dynamic (JIT) compilation strategies.</p><p>This presentation will focus on RubyMotion internals. It will not cover iOS or Android development. It will not focus on Ruby as a development language as well.</p>
<p>We will start by introducing RubyMotion then explain how it works. We will do quick overviews of the 2 Ruby runtimes included in RubyMotion, which are full implementations of Ruby, and explain design and implementation decisions.</p>
<p>Following up, we will explain how RubyMotion apps are statically compiled into machine code. We will have a look inside the RubyMotion compiler, written in LLVM, and we will explain how a dynamic language such as Ruby gets compiled statically. We will look at a few optimization passes.</p>
<p>Finally, if we have time, we will show up a few exciting use cases of the LLVM JIT, used to implement the REPL (irb) in RubyMotion.</p>Laurent Sansonetti
http://rubymotion.com
http://
FOSDEM 2015 Video
12:0000:50K.4.601eflEFL - A UI Toolkit Designed for the Embedded Worlddevroom<p>Enlightenment Foundation Library is a set of libraries designed to use the full potential of any hardware to do great UI. It has been designed with the embedded devices in mind, but it is a desktop class toolkit. Being done in C, it is providing a stable API/ABI, high efficiency, low memory and low battery usage for all kind of Linux device. Enabling development of modern UI adapted to any hardware that run Linux. These are the reason why Samsung use it in its Tizen devices. This talk after a short overview of what this libraries cover, will focus on last year improvement and where it is heading. It will also be an opportunity to learn about project around EFL that will help people develop product with it. And it would also be a good opportunity to see where EFL are used with some real use case.</p>Cedric Bail
Enlightenment
FOSDEM 2015 Video
13:0000:50K.4.601webx11X11 on the WebUsing Native Client to run X11 applications in the Browserdevroom<p>The clever minimalism and flexibility of the X-Windows system has allowed it to be ported to a diverse range of platforms. Recently, that flexibility has allowed the X.org server, client libraries, several window managers, and a range of applications to be ported to run stand-alone inside the Chrome web browser using a technology called Native Client. This talk explores the unique challenges of porting X11 to Native Client and the browser.</p><p>Native Client (NaCl), is an open-source technology that allows native machine code to run securely sandboxed in the browser. Two layers of sandboxing, a static verification inner sandbox combined with Chrome’s outer process sandbox, ensure users can safely run untrusted applications. Modified GCC and LLVM based toolchains allow applications to target NaCl. An I/O API called PPAPI, mirroring the security constraints of Javascript, is provided to NaCl applications.</p>
<p>This talk will discuss the central porting challenges including: emulation of POSIX APIs—processes, sockets, files—on top of Web-centric APIs, packaging, and protocol transport. I’ll demonstrate several X11 applications running the browser, including Emacs, Tcl/Tk, and Xeyes! We’ll look at how X11 applications can interoperate with our in-browser development environment and discuss how you can use this technology to bring your X11 application to the Web.</p>
<p>Check out our ports collection at: https://code.google.com/p/naclports/wiki/PortList</p>
<p>Learn more about Native Client: https://developer.chrome.com/native-client/overview</p>Brad Nelson
NaCl Ports collection
NaCl Dev Environment
FOSDEM 2015 Video
14:0000:50K.4.601v4l_testingTesting Video4Linux Applications and Driversdevroom<p>The video4linux subsystem of the kernel is a very large API with many ioctls, settings, options and capabilities. This poses a problem both for the kernel developer and for the application developer. Since early 2014 major improvements have been made to both the v4l2-compliance utility for verifying drivers, and to the virtual video driver that applications can use as a reference input. This presentation will explain and demonstrate this utility and driver and show how to use them to ensure your driver or application works correctly.</p>Hans Verkuil
FOSDEM 2015 Video
15:0000:50K.4.601colorspaceVideo Capture and Colorspacesdevroom<p>The video4linux kernel subsystem reports which colorspace the captured video uses. But what does that really mean, and what do you have to do to correctly reproduce those colors? This talk will dive into the crazy world of colorspaces and give you a practical guide to colorspace handling. I will also demonstrate colorspace handling, both right and wrong.</p>Hans Verkuil
FOSDEM 2015 Video
16:0000:50K.4.601intel_gfxSync points in the Intel gfx driverWhy and how we're adding a sync API to the Intel gfx driverdevroom<p>Discussion of the motivation for explicit sync points and how we're implementing them in the Intel gfx driver, called i915 in the Linux kernel sources.</p><p>Explicit synchronization APIs like NV<em>fence or ARB</em>sync allow rendering clients to manage their GPU usage explicitly, rather than relying on an underlying implementation to implicitly synchronize activity reading and writing multiple buffers. In cases where the low level driver (generally in the kernel) doesn't have information about buffer usage, an explicit synchronization mechanism becomes necessary, and in the current i915 environment of implicit synchronization, an additional explicit API can still be useful for tracking performance, non-rendering activity like mode sets, and explicitly queueing unsynchronized activity that an implicit synchronization approach would prevent.</p>Jesse Barnes
FOSDEM 2015 Video
17:0000:50K.4.601gl_testingHow to test OpenGL drivers using Free Softwaredevroom<p>OpenGL is an API for rendering 2D and 3D graphics now managed by the non-profit technology consortium Khronos Group. Implementors are free to provide their own implementation of the API. For example, in GNU/Linux systems NVIDIA provides its own proprietary version while other manufacturers like Intel are using Mesa, the most popular open source OpenGL implementation.</p>
<p>Because of this implementation freedom, ensuring compliance with the specification is important. Khronos provides their own OpenGL conformance test suite but there are several unofficial open source alternatives.</p>
<p>This talk will explain some of these open source OpenGL conformance test suites and give an introduction about how to use them, including sharing tips between the speaker and the audience.</p>Samuel Iglesias
Piglit
dEQP
FOSDEM 2015 Video
10:0000:50Jansonapache_celixModularizing C software with Apache Celixmaintrack<p>Join the world of service oriented programming with all its benefits - but without its usually found shortcomings - with Apache Celix. Apache Celix is a framework for service oriented programming in C, with a focus on a low overhead, and a small footprint.</p>
<p>Service oriented programming brings a lot to table. It enables the design and development of software applications in small cohesive modules, which interact based on loosely coupled services.</p>
<p>In this presentation the history and concepts behind Apache Celix will be explained.</p><h2>Apache Celix</h2>
<p>With Apache Celix, C applications can be designed and developed in small modules. Modules run in the same process, but are not visible for each other. When developing applications with Apache Celix it is more natural and compelling to develop modules which do one thing (and do it well), and thus avoiding monolithic and complex applications.</p>
<p>Apache Celix has taken the approach to add the service oriented programming paradigm to the C language without deviating too much from developing plain C, and at the same time deliver a better solution for present-day challenges when working with ever increasing time to market demands and ever changing customer requirements (e.g. Agile Development).</p>
<h2>OSGi</h2>
<p>Apache Celix follows the Java OSGi specification with some adaptations needed because of the language differences.
The OSGi specification is an open standard specification, describing a framework for modular and service oriented development without entailing too much technical details. The specification contains a core specification, describing the minimal OSGi framework, and a considerable selection of compendium specifications: The Event Admin specification for async message, the Configuration Admin specification for decoupling code and configuration, the Remote Services specification for distributed development, to name but a few.</p>Pepijn Noltes
Apache Celix
OSGi Alliance
11:0000:50Jansonthe_story_of_rustThe Story of Rustmaintrack<p>A retrospective on Rust 1.0!</p><p>The Rust programming language is just about to hit its 1.0
release. It's been a very long time coming, and in this talk, I'd like
to give a retrospective on Rust's history, and show you how it came to
be today. A teaser: Rust has <em>lost</em> many more features than it's
actually gained!</p>Steve Klabnik12:0000:50Jansondesign_and_implementation_of_a_perl_number_theory_moduleDesign and Implementation of a Perl Number Theory Modulemaintrack<p>This talk describes the history, design, and implementation details of a number theory module for Perl. With implementations for most functions in C, C+GMP, and Perl this offers speed on most platforms as well as portability. Comparisons will be made with tools such as Pari/GP, SymPy, SAGE, Primo, OpenPFGW, and others.</p><p>The Perl ntheory module (aka Math::Prime::Util) offers a portable solution for many integer number theory tasks in Perl. While not offering the full feature set of robust and mature packages such as Pari/GP and SAGE, there are many areas where this package offers improvements.</p>
<p>With implementations in C, C+GMP, and Perl, there were a number of design choices made. We describe the choices and tradeoffs of making a package that is both portable, robust, and performant. Design choices for some algorithms (e.g. primality tests) are also discussed.</p>
<p>Highlights of this open source package include:
- Fastest single threaded open source prime count and nth<em>prime
- Fastest 64-bit primality testing
- Fastest bigint probable prime testing to 10k digits
- Fastest next</em>prime, prev_prime
- Fastest open source AKS primality proofs
- Fastest open source ECPP primality proofs
- Support for random primes and random proven primes
- Ability to compile standalone C programs for tasks such as prime count, primality tests, primality proving, and primality certificate verification.</p>
<p>The random primes and primality testing/proving have been used in some new crypto modules, replacing older CPAN modules that were slower and had defects. The ECPP verifier written as part of this project is being used by FactorDB. In less than a year of use, simple Perl scripts using this module have been able to find over 37% of all current record prime gaps. Numerous defects in other open source packages have been identified during testing of this module.</p>Dana Jacobsen
ntheory module description
Detailed documentation
A version of my YAPC lightning talk on the subject.
13:0000:50Jansonget_ready_to_partyGet ready to party!maintrack<p>The last pieces are finally falling into place. After years of design and implementation, 2015 will be the year that Perl 6 officially launches for production use.</p><p>In this talk, the creator of Perl reflects on the history of the effort, how the team got some things right, and how it learned from its mistakes when it got them wrong. But mostly how a bunch of stubbornly fun-loving people outlasted the naysayers to accomplish the extraordinary task of implementing a language that was so ambitious, even its designers said it was impossible. Prepare to be delightfully surprised.</p>Larry Wall14:0000:50JansonsdapsSDAPSSurveying Made Easymaintrack<p>This talk will give an introduction into SDAPS how it works and how it can be used automate surveys or even examinations on paper. In the core SDAPS is an optical mark recognition software that is integrated with LaTeX and LibreOffice. It provides all the utilities to automate simple surveys, including questionnaire creation, manual error correction, and a simple report generation module. Also important is its flexibility to be used for data acquisition by either exporting the data or even interfacing with SDAPS python API directly for specialized applications.</p><p>While the core of SDAPS is the optical mark recognition there is a lot more to creating a good utility. Both usability and technical aspects have to be taken into account to achieve the goal of a simple to use utility that is still flexible enough for more complex use cases. With a background for conducting anonymous survey a lot of the feature development to support different use cases was driven by suggestions from the community. Further changes and improvements are now on the way thanks to input from academic users using SDAPS both for surveys and examinations. Especially examinations pose a unique challange as there is a multitude of different ways to conduct these, making custom data processing and workflows necessary. All this poses new challenges to the development of SDAPS as the different requirements should be realized on top of a common core SDAPS code base either by extending SDAPS itself or allowing it to be extended using own code.</p>Benjamin Berg
Project Homepage
15:0000:50Jansonintroducing_sileIntroducing SILE: A New Typesetting Systemmaintrack<p>SILE is a system for creating beautiful printed documents. It borrows extensively from TeX, but brings some of TeX's ideas into the 21st century with frame-based layouts, native support for Unicode, PDF, Opentype and XML processing, and extensibility and programmability in a modern, high-level language.</p><p>Hello, my name's Simon and I wrote a typesetting system by mistake. Then I found out that people needed to use it. Come and hear about how SILE got started, how it's developed since then, and how you can use it to make printed documents.</p>
<p>SILE is a typesetter designed to meet the needs of a particular translation community, with an emphasis on extensibility and layout flexibility. Existing solutions (TeX and friends) were not able to provide the required features in these areas, and so translators and publishers have been looking around for an alternative solution for many years. SILE takes a lot of inspiration from TeX, but updates many of its ideas to match the changes in the software ecosystem in the past 35 years.</p>
<p>SILE does not, however, aim to be a replacement for TeX, but is a separate system for document layout and rendering. Because of this, functionality which is a challenge for TeX users - for instance, laying out text on a grid, or magazine-style frame based layouts - becomes very easy in SILE. SILE is written in an interpreted language, so parts of the system's operation, including core typesetting algorithms, can be redefined at run time.</p>
<p>SILE is also designed to meet the realities of today's data processing. Documents these days are often prepared in authoring software and stored in XML format. This applies both to document-specific XML DTDs, such as DocBook and the Text Encoding Initiative, and also tagged text database formats, such as those for storing linguistic and other annotation data such as the LIFT standard for dictionary data and the USX format used by translators. SILE classes can define processing expectations for XML elements, which means that XML files can then be read in and typeset directly. We will look at examples of complex book layouts driven by XML data sources.</p>Simon Cozens
SILE github repository
SILE home page
FOSDEM 2015 Video
16:0000:50Jansonalgorithmic_graph_drawing_in_tikzAlgorithmic Graph Drawing in TikZmaintrack<p>Graph drawing aims at computing pleasing layouts of graphs algorithmically. The talk will present a new framework, implemented in Lua and integrated into TikZ, that allows an easy implementation of graph drawing algorithms and that pays special attention to typography in this context.</p><p>Visualizing graphs is a time-consuming and complicated process, even when the to-be-drawn graphs have only a few nodes, and thus best left to special graph drawing algorithms. At the heart of every good such algorithm lies an efficient procedure for assigning canvas positions to a graph's nodes and the bend points of its edges. However, every real-world implementation of such an algorithm must address numerous problems that have little to do with the actual algorithm, like handling input and output formats, formatting node texts, or typesetting node texts and edge labels. In the talk I will present a new framework, implemented in the Lua programming language and integrated into the TikZ graphics description language, that aims at simplifying the implementation of graph drawing algorithms. Implementers using the framework can focus on the core algorithmic ideas and will automatically profit from the framework's pre- and post-processing steps as well as from the extensive capabilities of the TikZ graphics language and the TeX typesetting engine.</p>Till Tantau17:0000:50Jansonliving_on_marsLiving on Mars: A Beginner's GuideCan we Open Source a society?keynote<p>Humans will go to Mars one day. But what if we skipped the plant-a-flag stage, and instead built a permanent human settlement on Mars in 2025?</p>
<p>What challenges will need to be overcome to make this a reality, and how can they be dealt with? What technologies will be needed for a small community to survive (and ultimately thrive) on the red planet? How might the early Martian pioneers engineer unique solutions as they construct the first society on another world? Though it may sound like science fiction, the scale of the challenge ahead is such that an Open Source strategy could prove vital to its success.</p>
<p>In a first for human spaceflight, the Mars One project intends to send 4 people on a one-way mission of permanent settlement to Mars in 2025. This will be preceded by a series of unmanned precursor missions, the first one of which is planned for a 2018 departure. What makes Mars One unique is that it is entirely privately funded, international, and apolitical, which enabled it to launch a global astronaut selection process in 2013 - to which over 200,000 people from over 140 countries applied.</p>
<p>After a series of cuts, there are now just 660 people remaining in Mars One's selection process. Over the course of 2015, 24 will be chosen to enter full time astronaut training for the mission.</p>
<p>In this talk, one of those remaining 660 Astronaut Candidates will explore the architecture of Mars One's mission. A special focus will be on how a one-way trip using just existing technology is not only possible, but is substantially simpler and cheaper than previously proposed return missions.</p>Ryan MacDonald17:5000:10Jansonclosing_fosdemClosing FOSDEM 2015keynote<p>Some closing words. Don't miss it!</p>FOSDEM Staff
FOSDEM 2015 Video
10:0000:50K.1.105 (La Fontaine)the_cheri_cpuThe CHERI CPURISC in the age of riskmaintrack<p>The CHERI research CPU extends the 64-bit MIPS ISA with byte-granularity memory protection. CHERI enables language memory model enforcement and fault isolation in hardware rather than software. In contrast to past capability models, CHERI complements, rather than replaces, the ubiquitous page-based protection mechanism, providing a migration path towards deconflating data-structure protection and OS memory management. Furthermore, CHERI adheres to a strict RISC philosophy: it maintains a load-store architecture and requires only single-cycle instructions, and supplies protection primitives to the compiler, language runtime, and operating system.</p>
<p>This talk will present the CHERI softcore and associated software stack and describe how building on open source has enabled full-stack security research.</p><p>2014 saw memory safety vulnerabilities such as Heartbleed in the mainstream press on several times, yet modern CPUs provide a memory model that does nothing to prevent them. Modern security-critical applications such as web browsers split themselves into components to minimise the damage done by a compromise, but are forced to do so using hardware mechanisms (the MMU) designed to protect small numbers of programs from each other and which don't scale to the hundreds or thousands of components that modern software demands.</p>
<p>The CHERI research CPU was created to attempt to apply the RISC philosophy to addressing these problems: To provide a simple hardware primitive that could be used to enforce everything from object-granularity memory protection to library-granularity sandboxing, with the policy under the control of software. The resulting design has undergone several significant revisions and is the focus of ongoing research on OS and programming language security policies.</p>
<p>Our software stack uses a modified FreeBSD and LLVM/Clang, co-designed along with the CPU. This allows us to evaluate real programs, running at a useable (if not spectacular) speed.</p>David Chisnall
FOSDEM 2015 Video
11:0000:50K.1.105 (La Fontaine)keccak_and_sha3Keccak and SHA-3: code and standard updatesFrom the Keccak Code Package to a wide range of cryptographic applicationsmaintrack<p>In April 2014, the American National Institute of Standards and Technology (NIST) published the draft FIPS 202 standard for the SHA-3 hash functions and the SHAKE extendable-output functions (XOFs), all based on the Keccak sponge function. Since the selection of Keccak as the winner of the SHA-3 cryptographic open competition, NIST announced that they will exploit Keccak's abilities for other purposes than just hashing, including key derivation, pseudo-random bit generation, authentication and (authenticated) encryption.</p>
<p>A first part of the talk will be to give a summary of the current developments around Keccak and the FIPS 202 standard.</p>
<p>In the meantime, we have gathered the most efficient implementations of Keccak, SHA-3 hash functions and SHAKE XOFs in the Keccak Code Package. These open source implementations are organized in a way that aims satisfying both the developer of optimized code and the cryptographic user. Central to this organization is a specific internal interface that allows interchangeable optimized codes and a user-friendly set of external services.</p>
<p>As a second part of the talk, we will briefly present the current status of this development and how the FOSS community can benefit from (and contribute to) this effort.</p>
<p>This is a follow-up of the talk "Keccak: more than sha3sum" at FOSDEM 2013.</p>Gilles Van AsscheJoan DaemenMichaël Peeters
August presentation on the Keccak Code Package
August presentation on the SHA-3 standard status
August presentation on the use of extendable-output functions (XOFs)
August presentation on authenticated encryption using Keccak
August presentation on MACs based on Keccak
August presentation on SHA-3 domain extensions
Keccak
Keccak Code Package
12:0000:50K.1.105 (La Fontaine)precise_timePrecise time: from CPU clocks to hacking the UniverseAdventures of a time nutmaintrack<p>Time is the most precisely measured quantity we have, yet it is still the most mysterious. Precise time and frequency are the hidden ingredient in most technology used today, from computer synchronization, to satellite navigation, to data communications, to digital music and video. In this talk we explore the amazing world of precise time, a world that anyone with curiosity can explore on their own.</p><p>It is not uncommon for ham radio operators, electrical engineers, or physicists to encounter the details about precision timing. But it turns out that playing with computer hardware and operating system software is also a wonderful entry into the obscure world of nanoseconds and parts per million accuracy.</p>
<p>The talk is in three parts:</p>
<ul>
<li>Examples of precise time and frequency in computing, from operating systems to microcontrollers.</li>
<li>A "powers of ten" tour of clocks, timekeeping, and measurement; from the worst possible clock you can find at home to the best atomic clock you can buy.</li>
<li>The results of Project GRE²AT, a DIY time experiment where Einstein's general theory of relativity was demonstrated by carrying atomic clocks from home up a mountain and the predicted time dilation actually measured. This puts keeping accurate time on a new level, and makes one wonder what time really is.</li>
</ul>
Tom Van Baak
Time Hacking
Video
FOSDEM 2015 Video
13:0000:50K.1.105 (La Fontaine)computers_clocks_and_network_timeComputers, Clocks and Network TimeEverything you never wanted to know about time.maintrack<p>Most people who work with computers have no idea how the computers keep time. All networked computer systems require some form of temporal synchronization. As networks have gotten faster the demands for accurate, distributed, timekeeping have increased, but most programmers have no idea about the quality of the clocks in their systems, nor how they might be kept in sync. This talk will go over the basics of computer clocks, why they're inaccurate, and what can be expected from various strategies for getting systems into sync.</p><p>All networked computer systems require some form of temporal synchronization. As networks have gotten faster the demands for accurate, distributed, timekeeping have increased, but most programmers have no idea about the quality of the clocks in their systems, nor how they might be kept in sync. Most programmers have at least heard of NTP (The Network Time Protocol) which is used to synchronize computer clocks over a network, but fewer have heard about more recent work, such as the Precision Time Protocol which can keep computers accurate to within several hundred nanoseconds when working over a LAN. Well synchronized clocks are used in financial applications such as High Frequency Trading as well as the electrical grid and cellular telephone networks.</p>
<p>This talk will cover:</p>
<ul>
<li>How computers keep track of the time, and how they fail miserably at this.</li>
<li>The fundamental ideas behind network based time keeping, why we do it, and how it works.</li>
<li>Network Time Protocols (NTP and PTP) deployment, use and tuning.</li>
</ul>
George Neville-Neil
Open Source PTP Daemon
FOSDEM 2015 Video
14:0000:50K.1.105 (La Fontaine)technical_aspects_of_leap_second_propagation_and_evaluationTechnical Aspects of Leap Second Propagation and Evaluationmaintrack<p>Leap seconds are scheduled by the International Earth Rotation Service (IERS) whenever the difference between true earth rotation and the UTC time scale reaches a certain limit. Whenever a leap second has been scheduled by the IERS, a warning must be disseminated to time keeping devices so that clocks become aware of the scheduled leap second early enough to be able to handle the leap second properly.</p>
<p>There are different ways to propagate leap second warnings using different timing signals, protocols, etc. For example, the GPS satellites transmit a specific point in time when a leap second is to be inserted or deleted, but other timing signals may just provide a leap second warning flag which is set during a certain interval before the leap event, where the warning interval depends on the specification of the protocol.</p>
<p>Also, there are different implementations how leap seconds are handled, which especially affect the sequence of timestamps across the leap second event. The clock can be stepped at the beginning or end of the leap second, can be slowed down or even stopped during a leap second insertion, or time can be slewed across a leap second. This makes it difficult to compare time stamps which have been taken on different systems during a leap second.</p>
<p>Last, but not least, there are implementations of time keeping code which don't always work correctly, e.g. invalid leap second warnings are generated, leap seconds are not handled at all, or severe bugs occur due to side effects of the leap second handling.</p>Martin Burnicki
FOSDEM 2015 Video
15:0000:50K.1.105 (La Fontaine)ntimed_ntpd_replacementNtimed an NTPD replacementmaintrackPoul-Henning Kamp
Sort of a running log
GitHub project
FOSDEM 2015 Video
16:0000:50K.1.105 (La Fontaine)ntf_s_general_timestamp_api_and_libraryNTF's General Timestamp API and LibraryCurrent timestamps suck. We can do much better.maintrack<p>A good timestamp can be a very useful thing. Unfortunately, most current timestamps don't have enough information in them to be very useful, and they don't "age well"' and are too often not useful outside of the context of where they were taken. After decades of casual thought, Harlan started to document what information would be needed to have a useful timestamp, and what sort of underlying support would be necessary to produce and use them. This turned in to a GSoC project in 2013 where a proof-of-concept user-level library was produced, and some work was done to implement the new timestamp format as a core kernel timekeeping structure in a Linux kernel.</p>Harlan Stenn
FOSDEM 2015 Video
10:0000:15H.2215 (Ferrer)gerrit_hooksValidate your gerrit patches automaticly using magic hookshook framework to test patches as part of gerrit systemlightningtalk<p>Use a hook framework, written in python to create rules to validate and automate tasks in your git/gerrit environment.</p><p>Every r&d department has its own rules and version planning for their product. It might be you're working on a latest (master) branch and at some point (feature freeze), you'll branch into a stable branch for the current version and backport only specific fixes to it. That process can be problematic and not without misses when managing a large scale project such as a virtualization project as oVirt. You'll want to integrate some validation into the process and ensure developers are following the right procedure, like merging fixes in right order (master->stable branch), adding 'bug-url' to the bug to maintain info on the bug fix and so on. In this talk I'll show you a unique system we developed for oVirt that works on gerrit (code review system) and bugzilla api that will run set of verification rules on each patch sent and will ensure patches are treated correctly and with respect! :)</p>Eyal Edri
FOSDEM 2015 Video
10:2000:15H.2215 (Ferrer)luarocksLuaRocks - fostering an ecosystem of Lua modulesCreating the package manager for the Lua languagelightningtalk<p>This talk will present LuaRocks, the package manager for modules for the Lua programming language. Lua has successful as a scripting language embedded into applications, especially in the gaming industry. However, its "no-batteries-included" design prevented it from getting traction as a stand-alone application language.
LuaRocks was created to target this problem. This talk will discuss the particular challenges of developing a package manager for Lua. With this project, we've been successfully fostering an ecosystem of extension modules, improving reuse of Lua code.</p><h2>Full Description</h2>
<p>This talk will present LuaRocks, the package manager for modules for the Lua programming language.</p>
<p>Lua has been used for many years as a scripting language embedded into applications. It has been especially successful in the gaming industry, being present in several AAA titles. Its ease of embeddability, good performance and small footprint have been major factors it this success.</p>
<p>However, its minimalistic, "no-batteries-included" design has also prevented it from getting much traction as a stand-alone application development language. A major setback was the lack of an easy way to integrate extension libraries for various tasks (such as sockets, databases, UI, XML/JSON, etc.)</p>
<p>LuaRocks was created to target this problem. It is a package manager designed for Lua modules (written in Lua or C). It serves both as a package manager in the style of RubyGems or npm, and also as a build system for compiling C code into Lua modules.</p>
<p>This talk will discuss the particular challenges of developing a package manager for Lua. Some are technical challenges, related to portability; some are social challenges that reflect into technical issues, such as the lack of established practices.</p>
<p>With the LuaRocks project, we've been successfully fostering an ecosystem of extension modules for Lua. The repositories keep growing, and the dependencies between modules show that reuse is increasing.</p>
<h2>About the presenter</h2>
<p>Hisham Muhammad (Rio de Janeiro, Brazil) — lead developer of <a href="http://luarocks.org">LuaRocks</a>. PhD student at PUC-Rio, the university where Lua is developed. Other projects include <a href="http://hisham.hm/htop">htop</a> and <a href="http://gobolinux.org">GoboLinux</a>. I've been involved with the Lua community since 2004 and I have given talks on Lua-related topics in a number of conferences.</p>Hisham Muhammad
LuaRocks
the LuaRocks repository
The Lua programming language
FOSDEM 2015 Video
10:4000:15H.2215 (Ferrer)openchange_rest_apiHow to create your own Exchange compatible backendDive into the OpenChange REST APIlightningtalk<p>At OpenChange, we work on offering a portable Open Source implementation of Microsoft Exchange Server and Exchange Protocols. During the past 10 years, we have seen the community growing but not the number of developers. The conclusions were clear. The price to pay to develop on OpenChange was too high: C language only, very complex, too much knowledge required, too much time before you get visible results. We have addressed all these obstacles and will teach you during this talk how to set up the development environment in no time, understand the basics of the OpenChange REST API and leverage its resources and samples to get first visible results in Outlook today.</p>Julien Kerihuel
OpenChange website
OpenChange REST API Reference
FOSDEM 2015 Video
11:0000:15H.2215 (Ferrer)jmapJMAPA better way to emaillightningtalk<p>For the past 4 years, FastMail has been working on a next generation email protocol for our web interface. We have years of experience writing email clients and servers, and we know where the pain points are. This protocol is in production right now, and a 30 second demo will show it in action.</p>
<p>At the moment the email world is divided. Every vendor is building their own proprietary JSON protocol, because IMAP+SMTP is a really poor fit for mobile apps and even the LEMONADE protocol changes haven't made the experience good enough.</p>
<p>We want to change that by offering a completely unencumbered standard which is good enough that companies don't need to build their own, and gain an interoperability layer which is better for everybody. Raise the baseline experience if you will. We believe it's possible to have a protocol which is both open AND good.</p>Bron Gondwana
website
FOSDEM 2015 Video
11:2000:15H.2215 (Ferrer)mail2voiceMail2Voice: an accessibility approach to maillightningtalk<p>Mail2voice is a mail management software dedicated to people with cognitive disabilities or illiteracy, to elder people or young children.
Mail2Voice uses a simplified graphical interface which permits to use a touch screen.
Outgoing messages are handled through audio recording, incoming messages are read by a speech synthesis, and address book contacts are reachable through a photo.</p>Matthieu Hazon
website
FOSDEM 2015 Video
11:4000:15H.2215 (Ferrer)agora_votingAgora VotingAn end to end verifiable systemlightningtalk<p>Agora Voting is an open source voting software that allows any organization to carry out secure, flexible, transparent and cost-effective electoral processes. It has been used in multiple high profile elections in Spain, first in Congreso Transparente in 2013 by a congressman, then by multiple political parties (including leading ones like Podemos) to do internal binding elections, counting more than 400k votes in 2014. This year we moved to work on it full time, and we're expanding world-wide. Our aim: to be the reference secure open source voting project worldwide.</p>Eduardo Robles Elvira
Agora Voting
source code (multiple repositories)
Mailing list
Blog
Congreso Transparente
FOSDEM 2015 Video
12:0000:15H.2215 (Ferrer)kodi_mediacenterKodi mediacenter (XBMC) past, present and futureA very brief history on the trials of an open-source media centrelightningtalk<p>A brief overview of Kodi (XBMC) open source Media center. How one of the oldest and largest open source projects originated, the path walked to present day and what the future might hold. Talk will include a brief history overview, what steps were taking to come in current state and what our goals are for the future.</p><p>It's relatively rare and difficult to keep a large scale open source project going year after year without the firm financial backing of a larger organization. Since its inception in 2002, the software currently called Kodi has gone through numerous changes, both at the software level and at the organizational level, and has encountered numerous difficulties along the way, from simple communications problems both internally and with the userbase to larger organizational snafus. In this talk, we'll review how the organization has managed to overcome these problems and continue on.</p>
<p>Topics expected to be covered will include a look at the platforms, distributions, and hardware supported today; a review of the history on the Xbox, the switch to platform agnosticism, and the creation of the Foundation; and plans for the future.</p>
<p>Additionally, an overview of how the organization works and software is developed currently will be presented, along with a look at who uses Kodi, both from a user perspective and a business perspective.</p>Martijn KaijserEjal de Klerk
FOSDEM 2015 Video
12:2000:15H.2215 (Ferrer)improving_key_signing_partiesImproving Key Signing PartiesTools to make them easier, more secure, and much fasterlightningtalk<p>KSP Tools is a set of tools to simplify and automate the tasks that are needed to attend a key signing party. They will significantly reduce the amount of work needed, and reduce the amount of errors that can be made. My aim is to reduce the amount of work to be done before and after the meeting to just 5 minutes, even with the large amount of people that attend the event at FOSDEM (~100 people), without compromising security.</p>
<p>I also hope to considerably shorten the amount of time that a key signing party takes through future work.</p>
<p>The current tools are:</p>
<ul>
<li>ksp-makelist: Generates a better formatted key list for usage at a key signing party. It's better looking, more readable, more comfortable to use and can be processed automatically by scanning QR codes.</li>
<li>ksp-scanlist: Makes a list of keys to sign by scanning QR codes from the above list.</li>
<li>ksp-list: Performs operations on a list of selected keys like signing keys and mailing them.</li>
<li>ksp-import-keys: Connects to a mail server and automatically imports signatures people emailed to you.</li>
</ul>
<p>The tools automatically check fingerprints and use a file format that is easy to handle with standard tools like grep and awk.</p>
<p>These tools were made after my experience with key signing parties at FOSDEM and I hope other people will find them useful.</p><p>After attending several key signing parties at FOSDEM I found that with a large number of participants it's a process that can take hours to finish the meeting, and a large amount of time afterwards to deal with the results. It's easy to make mistakes that make people waste their time, or that compromise security.</p>
<p>Since PGP signatures are widely used in Free Software development (for instance for signing packages), it's important to make the process as reliable as possible.</p>
<p>Signatures are also important for end users. Important packages like GPG or Tor are signed. The easier it is to participate in a key signing party, the more people will attend and will be able to know they got a good copy.</p>
<p>The tools are written in simple, clear code and follow the UNIX philosophy, making it easy to customize the process to your needs.</p>Vadim Troshchinskiy
github page
FOSDEM 2015 Video
12:4000:15H.2215 (Ferrer)next_generation_cloud_computingCloud Computing: The Next GenerationFederation of the Cloudlightningtalk<p>Looking at the evolution of the Cloud everything started with centralized services. Today everybody can set up his own Cloud with Free Software. What's next? This talk will discuss the idea to connect this decentralized clouds in a way that users can share seamlessly data across multiple instances.</p><p>Looking at the evolution of the cloud, as a file share and sync solution, everything started with centralized services and evolved to to the point where everybody can set up his own Cloud with Free
Software. Decentralizing the cloud was a important step but at the same time it created islands. Only user on the same instance can collaborate on the same files. The next step will be to connect this individual clouds to enable the users to collaborate seamlessly across multiple instances. The ownCloud project works actively on this idea, this talk will discuss the general idea behind it and how this is going to happen.</p>Frank Karlitschek
The ownCloud project
FOSDEM 2015 Video
13:0000:15H.2215 (Ferrer)volunteer_computingAll your cycles are belong to usVolunteer computing in the age of the ubiquituous browserlightningtalk<p>We live in an age in which every person owns two or three devices that are powerful enough to render a few seconds of 3D movies in a while although they are used mainly to send messages via WhatsApp and create selfies for social network consumption. At the same time, all these devices have the closest thing to an universal virtual machine that has ever existed: the JavaScript virtual machined, paired to a (roughly) standard object model that allows anybody with a bit of programming prowess to create programs that can be run anywhere and everywhere.
There is great potential for massive distributed computing in this environment, but the ability to tap it a bit farther than sending basic computations is not there yet. In this presentation we will talk about the issues involved in doing so, from basic algorithmic issues to twisted legal issues that can arise when you are using devices you don't own to perform unwitting computations.</p><p>Volunteer computing was started thanks to lack of funds and surplus of computing power (and connectivity to go with it) on the hands of labs and companies. Stealth computing was proposed initially by Barabasi to take advantage of devices connected to the network that perform very basic computations. There's a very fine line between them, a line that includes a button that says "Click here" or the will to not use resources more than those dutifully allotted by the operating system. There are also usability differences between volunteer and stealth computing and maybe ethical and legal ones. However, from the point of view of the computing model and the techniques involved, there is no difference.
In this talk we will explore the possibilities of stealth/volunteer computing using mainly the browser and the issues involved with it. The main one is performance, either from the algorithmic point of view or CPU-cycles-wise. How many CPU cycles could be achievable using them? Is it predictable in a way? And there is an intriguing edge to the performance model: it includes the fact that there will be a big dependence on the web page that is used itself, from its content, to its search engine position, to the way it is announced in social networks and by whom.
Even as there is some predictability in the whole experiment, from the algorithmic point of view it is impossible to know, in advance, how long a particular user is going to stay contributing to the system and when he's going to come and go. This is an issue that has to be leveraged in the algorithm so that these cycles contributed actually add something to the whole experiment and do not detract from it. We will specially talk about population-based algorithms, which are the ones we do have a certain experience with, but any algorithm that has some dependencies (that is, anything that goes beyond brute-force approach) will experience similar issues.
Finally, there are some trust issues that must also be taken into account. There are purely legal issues, but stealthy volunteer (or voluntarily stealth) computing should follow open science best practices, since that is the only way of managing a healthy and sustainable meta-computing device where people or citizens have a huge role.</p>Juan Julián Merelo
FOSDEM 2015 Video
13:2000:15H.2215 (Ferrer)datacenter_provisioningDatacenter Provisioning and Orchestrationlightningtalk<p>Discovery and tracking of data center resources to enable highly accurate server provisioning and software deployments is a complex problem. The inability to make available resources for use in production in a timely and cost effective manner causes overruns across product and feature life-cycles. Automating discovery, provisioning and orchestration cuts down on delays. This talk presents Genesis, an open source ruby DSL developed at Tumblr. Genesis provides a DSL for resource discovery and is part of an open source stack from Tumblr, alongside Phil (Provisioning) and Collins (Orchestration).</p><p>The theme of the talk will be the need for discovery, provisioning and orchestration of physical infrastructure, presenting a non-traditional use case for Ruby. We will cover the DSL developed in Ruby that is part of Genesis. The talk will cover Genesis, from initialization using PXE (PreBoot Execution Environment), to tasks written using the DSL to discover system information.</p>
<p>The talk will cover the history of Tumblr, growth from using PaaS providers to migrating to self owned and operated data centers. The challenges faced in accomplishing the transition and lessons learned from it leading to the need for Genesis (Discovery), Phil (Provisioning) and Collins (Orchestration).</p>
<p>Key takeaways for attendees is exposure to Tumblr's experience of applying Ruby in a non-traditional domain. It will include coverage of datacenter design and operations, attendees can expect to gain an understanding of infrastructure software.</p>
<p>NOTE: Genesis and Phil are not currently open sourced. Genesis will be open-sourced prior to the conference date and Phil at a later time. Collins, on which Genesis relies heavily on is already open-sourced.</p>Felix Aronsson
FOSDEM 2015 Video
13:4000:15H.2215 (Ferrer)automated_devops_environmentFabricate your automated devops environment using pythonfabric is your (devops) friendlightningtalk<p>Maintaining a devop environment isn't easy, this talk will explain how to use fabric to automate a lot of tasks you're doing and some you havn't thought of even.</p><p>At some point in your job as devops lead, you'll come to a conclusion there are some tasks that has to be automated (enough is enough!). You'll start looking for the right tool to do it, and you'll have lots of options out there, we chose fabric, and we're doing some cool stuff with it! In this short talk we'll show you how to use fabric from simple tasks such as updating multiple hosts using yum, to provisioning a system to any operating system you'll need or even monitoring Jenkins master status for offline slaves or job load, while utilizing nagios along the way.</p>Eyal Edri
http://www.fabfile.org/
FOSDEM 2015 Video
14:0000:15H.2215 (Ferrer)upgrade_uxUpgrade-UXUpgrade-UX is a software framework to update or patch Unix systemslightningtalk<p>Upgrade-UX is an open source framework developed to assist in patching and/or updating Unix Operating Systems in a consistent and repeatable way. Especially in the industry it is forbidden just to run yum update (on Linux) to update your Linux system, therefore, upgrade-ux may proof to be a handy tool to guide you through the patching and/or update process as it follows a track you control (evidence gathering, pre/post executing of scripts, logging, and so on).</p><p>Upgrade-UX is a software framework to update or patch lots of Unix systems (Linux, HP-UX, AIX and Solaris).</p>
<p>In professional environments it is not allowed to just blindly update an UNIX system without testing this first out on a development system, pre-production and so on. The upgrade-ux product allows you to repeat this process in a consistent way and as many times as you like on any system. Upgrade-ux understands two states:</p>
<ul>
<li>preview mode: will go through the whole process without actually doing the update</li>
<li>upgrade mode: will do it for real (the update)</li>
</ul>
<p>The upgrade-ux uses configuration files which describes what a particular Unix Operating System requires to be upgraded in the way you want it (or designed it). Doing it this way allows you to exactly define how a system should look like after the upgrade or patching. Nothing else can be installed, removed or configured.</p>
<p>Furthermore, many checks can be build-in via adding simple scripts. We also keep of each run an unique log file, and furthermore, we keep evidence before and after patching in a special directory. Months later we can still inspect these logs and evidence directories to verify what happened or what has changed in the meantime.</p>Gratien D'haese
Upgrade-UX project
FOSDEM 2015 Video
14:2000:15H.2215 (Ferrer)elvishElvishan experimental Unix shelllightningtalk<p>Elvish is a new Unix shell that seeks to combine the expressiveness of a programming language with the convenience of a shell interface. In the lightning talk I will showcase the linguistic and interactive features of Elvish.</p>Qi Xiao
Code
Hacker News submission
Talk at FUDCON Beijing 2014
FOSDEM 2015 Video
14:4000:15H.2215 (Ferrer)satnogsSatNOGS - Global Network of Ground StationsCreating a full stack of destributed ground station management.lightningtalk<p>SatNOGS project is a complete platform of an Open Source Networked Ground Station. The scope of the project is to create a full stack of open technologies based on open standards , and the construction of a full ground station as a showcase of the stack. In this lighting talk we will be introducing the software stack of the project, including a scheduling and observations management server, a data crowd-sourcing app and the client of the ground station.</p>Pierros Papadeas
Detailed site for project
Project Website
Code repositories
FOSDEM 2015 Video
15:0000:15H.2215 (Ferrer)openbazaarOpenBazaarDecentralized markets for online tradelightningtalk<p>We will have a half-dozen members of the OpenBazaar team at the conference, and we'd like to give an overview of how our decentralized marketplace for online trade works. Our goal is to give a slideshow (attached) that explains the basics around the history and evolution of the platform, a high-level explanation of the technical challenges and solutions to creating a decentralized marketplace, and then ask them to come visit our stand to give them a personal demonstration.</p>
<p>Please contact me at sam@openbazaar.org if you have any questions.</p>Dionysis ZindrosSam Patterson
Explanation of OpenBazaar
FOSDEM 2015 Video
15:2000:15H.2215 (Ferrer)health_sectorOpen source is not only for geeks and idealists in the (danish) health sectorA presentation of the OpenTele project and other health related projects by the 4S organisationlightningtalk<p>A presentation of the telemedicine project OpenTele, and the 4S organization behind it.</p>
<p>We will talk about the impact OpenTele has had for the many conical ill and pregnant who has used it in the pilot phase, and what the (open source) community can use OpenTele and the related 4S toolbox for.</p><p>We would like to make a presentation of the open source OpenTele project and what it has done for people in Denmark, as well as shortly introduce the toolbox of open source modules that are under the wings of the 4S organization.</p>
<p>We do this to increase the awareness of our project in the open source community, we want to extend our community beyond the limited reach it currently has, open for contributions on all levels, and for letting people with interest in the health sector know that there is a free alternative that they can promote and use in their own projects, but also in their local communities by cooperating with medical professionals.</p>
<h1>4S</h1>
<p>4S is an open source ecosystem for telemedicine providers and consumers. Members include the National eHealth Authority (who is responsible for setting the national standards for telemedicine in Denmark), three out of the five Danish regions (who operate all public hospitals and secondary care), municipalities (primary health care and social care), software providers, Aarhus University and the Alexandra Institute. The two latter are currently the operators of 4S.</p>
<h1>Open Tele</h1>
<p>OpenTele is an open source project that is governed by 4S and released under an Apache 2.0 license - it is in a transition phase from different pilot projects to production mode, and going from the company that originally developed it, into the 4S open source eco system.</p>
<p>OpenTele is currently being used for people with diabetes, COPD and pregnancies with medical complications - allowing medical staff to monitor patients remotely, and empowering patients with respect to their own illness or pregnancy, giving them a better understanding of their issues and the ability to be proactive with respect to their own treatment.</p>
<h1>The Toolbox</h1>
<p>A number of separate components are being developed, either as spin-offs from OpenTele or as separate components.</p>
<p>We are a couple of people that are currently working on making a device communication module written in C++ with ports to Ubuntu and Android for talking with Continua medical devices as well as devices using proprietary formats.</p>
<p>It's possible to use our code either from html5 sites running in the app, or to build new apps from the code, this can be used in other projects that wishes to have integration with measurement devices, either as medical applications or health/fitness aware application and of course all the things we didn't even dream about yet.</p>
<p>The devices that this component will provide easy communication with are things like weight scales, blood pressure monitors, puls-oxymeters, blood glucose monitors etc.</p>Mike Kristoffersen
The 4S, Net4Care and OpenTele Wiki
FOSDEM 2015 Video
15:4000:15H.2215 (Ferrer)medical_imagingFree and open-source software for medical imagingBringing technological independence to hospitalslightningtalk<p>The amount of medical images that are generated, analyzed and exchanged by hospitals is dramatically increasing. Medical imaging is indeed the first step to the treatment of more and more illnesses, such as cancers or cardiovascular diseases.</p>
<p>In turn, the data management of clinical images and the administration of the computer network of a medical imaging department imply continuously growing technological challenges. Tasks such as autorouting between imaging modalities, exchanging data between clinical departments or hospitals, or anonymizing images are still hard to achieve in practice. This is a direct consequence of the lack of interoperability software that could bring technological independence to hospitals by creating low-cost gateways between proprietary ecosystems.</p>
<p>In this talk, I will explain the pains behind modern medical imaging, from the perspective of the hospitals. The DICOM standard will be introduced, together with free and open-source software supporting this standard.</p>
<p>I will then put emphasis on the free software Orthanc, a lightweight, versatile DICOM server. Thanks to its REST API and to its Lua scripting engine, Orthanc is primarily conceived as a central, robust building block to bring technological independence to clinical departments by automating their very specific imaging flows. Orthanc was nominated at the Zénobe Award 2013 for social innovation.</p><h1>Table of Contents</h1>
<ul>
<li>Introduction: Imaging flows for radiology and radiotherapy</li>
<li>DICOM and the pains of medical imaging</li>
<li>Free and open-source software for DICOM</li>
<li>Orthanc:
<ul>
<li>Description and architecture</li>
<li>Automating imaging flows with Orthanc</li>
<li>The present and the future of Orthanc</li>
</ul>
</li>
<li>Conclusion</li>
</ul>
Sébastien Jodogne
Homepage of Orthanc
Orthanc on Wikipedia (French)
FOSDEM 2015 Video
16:0000:15H.2215 (Ferrer)leihs_booking_systemLeihs, the leading free equipment booking systemIt took us eight years to get it right. What we learned about being a FOSS project.lightningtalk<p>leihs is probably the most widely used free inventory management and equipment booking system. Started at the Zürich University of the Arts (ZHdK) in order to manage their own sizeable pool of equipment, it quickly became clear that other organizations have exactly the same problems. It now made sense to release leihs under the GPL. In this talk, Ramón talks about mistakes made, challenges and things learned in the last 8 years of managing a free software project from within a government organization.</p><p>leihs began as a small internal project, written when Ruby on Rails was still young and considered cutting-edge technology. Deployment was messy and unreliable, the code had to be changed significantly with every Rails upgrade and even Ruby itself had a few pretty bad bugs at the time. But we stuck with it and rewrote the core and most of the interface for version 2.0. This was the initial version of leihs released under the GPL. Later GitHub came along, and so leihs went there. With GitHub came some popularity, and the project really took off when we redesigned the user interface yet again, this time with real interaction designers.</p>
<p>The main takeaways from eight years of free software development:</p>
<ul>
<li>If you choose a technology that's immature, things get very exciting. But be prepared to rewrite your code again and again as the foundation you built on shifts.</li>
<li>Don't add internationalization at a later time, do it from the start. One of my biggest regrets is not going with a complete German/English interface from the start.</li>
<li>Make sure your management understands what it means to do free software, and that you can't just do your own thing. Be part of your own community. Comment on bug reports, write change logs, have a project blog -- if you treat the community as if it isn't there, it will soon not be there anymore.</li>
<li>If you're doing something with a GUI and don't have interaction- or UX people, hire professionals to do it for you.</li>
</ul>
<p>leihs has now been installed at some very important universities and colleges in and outside Switzerland. I want to encourage anyone who is paid with taxpayer money to develop free software and to politely urge their management into letting them do it. But I don't want to create the illusion that it will be easy.</p>Ramón Cahenzli
Leihs homepage
ZHdK
FOSDEM 2015 Video
16:2000:15H.2215 (Ferrer)community_dataData, data and data about your favourite communitylightningtalk<p>This talk aims at providing a quick overview of the GrimoireLib library. This python-based piece of code provides a list of classes that help to analyze open source communities. This talk is intended for those interested in open source analytics and want to have a better understanding of the community and processes around their favourite open source projects. The talk will use ipython notebook recipes to follow the code.</p><p>GrimoireLib [1] is a python-based library that facilitates the analysis of open source communities. This is part of the Grimoire toolset, a set of tools that help to download, parse and analyze open source communities from several perspectives. Activity in the source code, mailing lists, ticketing systems are some of the data sources supported by this toolset.</p>
<p>This talk assumes the existence of a previous CVSAnalY retrieved database and will play with the several metrics and analysis available at GrimoireLib. Examples driven on ipython notebook will help to follow the talk. And specific analysis of some communities will be carried out. Among other metrics, commits from several perspectives will be calculated: branches, message log, type of file, organizations, module, and others.</p>
<p>[1] https://github.com/VizGrimoire/GrimoireLib</p>Daniel Izquierdo
https://github.com/VizGrimoire/GrimoireLib
FOSDEM 2015 Video
16:4000:15H.2215 (Ferrer)home_automationOpen source home automationby OpenMoticslightningtalk<p>There are 3 problems with close source home automations systems. i. These systems tend to be ridiculously expensive for the features that they offer, since most vendors target the high-end market segment with customized solutions. ii. Configuring and maintaining the system has to be done by a certified installer, giving the customer little control over their own house. iii. Theses systems use closed-source communication protocols and you -as a user- are not able to interface with the system or change anything in the system.</p>
<p>OpenMotics is an open source home automation hardware and software system that offers features like switching lights and outputs, multi-zone heating and cooling, power measurements, and automated actions. The system encompases both open source software and hardware. For interoperability with other systems, the OpenMotics Gateway provides an API through which various actions can be executed. The project was open sourced 2 years ago and was started about 10 years. The choice to open source the project was very conscious: we want to offer a system where users are in full control over their home automation system.</p><p>OpenMotics is an open source home automation hardware and software system that offers features like switching lights and outputs, multi-zone heating and cooling, power measurements, and automated actions. The system encompases both open source software and hardware. For interoperability with other systems, the OpenMotics Gateway provides an API through which various actions can be executed.</p>
<p>Open source software: Download, adjust and recompile the source code of our Home Automation Modules; licensing as GPLv2.</p>
<p>Open hardware: Download the PCB files (including BOM and schematics) to create, adjust and manufacture your own hardware; licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.</p>
<p>The project first started 10 years ago with basic hardware modules for switches and outputs. Since then the number of modules has increased to create an extensible full-featured home automation system. The modules include a Gateway module that is the heart of the system which drives all other modules. An Input module for reading the status of the switches. An Output module that toggles lights, outlets or other devices. And others like a Dim Control module, a Sensor module and a Power module for measuring the power consumed by each appliance in your home.</p>
<p>Two years ago we decided to open source the software running on the Gateway module, all firmware running on the other modules and the schematics and PCBs (printed circuit boards) for all modules. The choice to open source the project was very conscious—at OpenMotics we believe there are three fundamental problems with the existing commercial home automation offerings.</p>
<p>The first problem concerns the price: home automation systems tend to be ridiculously expensive for the features that they offer. Most vendors target the high-end market with fully integrated custom solutions. The alternative is using open source software like OpenHAB to stitch together components from different vendors. With OpenMotics we offer a complete solution that is easy to install, configure and use, at a fair price.</p>
<p>The second problem is that many home automation systems are not maintainable by the customer, and every change to the system requires an installer to come by at location to make the changes. We believe a home, and how it is used, changes over the years and the owner should be able to modify the configuration of his home automation system to reflect this. Compare this to a smartphone where you don't have to run to the shop every time you want to install a new app. So why should your home automation system be any different? Why shouldn't we be in full control of our own homes?</p>
<p>For more tech-savvy users, the inability to configure your own system brings us to the third problem: most proprietary systems use closed communication protocols and you—as a user—are not able to interface or change anything. Everybody has ideas on how they could make their home better, a home automation system should enable the user to implement these improvements. We tackled this problem on three different levels.</p>
<p>First, as described above, the user is in full control over the configuration of the system and can change it at any time. For techy users, we provide a plugin mechanism on the Gateway module: any self written or community developed plugin can be installed through the secure web interface. These plugins can communicate with the modules, catch events like lights turning on or off, expose a web interface and communicate with other services. The possibilities are up to your own imagination. And third, because the software and hardware are both open source, an electronics and/or software enthusiast can modify both hardware and software at will, or even create their own modules. Or you can just use the system as is, with lots of features readily available.</p>Frederick Ryckbosch
OpenMotics
OpenHAB
FOSDEM 2015 Video
09:0000:40UD2.120 (Chavanne)underhoodcontainersUnder the hood of Docker ContainersIn flight and at restdevroom<p>Docker containers are generating excitement because of relatable and recognizable use cases and unique facilitation of solutions. One example of this is easy distribution of the container environment. Docker does this with a particular design of images.</p><p>In this talk, we will discuss:</p>
<ul>
<li>Storage of Docker images: the drivers available as well as some of best practices and recommended performance tunings.</li>
<li>Notes on the format: how a Docker image is at rest on a daemon versus a registry, and how the image is transferred.</li>
<li>Verification of images: mechanics of validation and how to return reproducible sums</li>
</ul>
<p>The goal of this talk is to provide greater awareness of options available for daemon setup, knowledge around the bits in-flight daemon-to-registry, and assurance of this data.</p>Vincent Batts
FOSDEM 2015 Video
09:4000:40UD2.120 (Chavanne)dockerovirtDocker Integration in oVirt and IaaSdevroom<p>This session will present the current status of integration between oVirt, Docker containers and Kubernetes. It will cover the motivations, some of the low level details and ideas for the future. The second part of the presentation will be dedicated to possible future work within oVirt, ideas for the new concept of multi-purpose data-center and an overview of other projects related to Docker and IaaS.</p>
<ul>
<li>Deploying an Application (Old-Fashion and Docker)</li>
<li>Ecosystem: Kubernetes and Project Atomic</li>
<li>Current Status of Integration in oVirt</li>
<li>oVirt Docker User-Interface Plugin</li>
<li>Dockerized oVirt Engine</li>
<li>Docker on Virtualization</li>
<li>Possible Future Integration</li>
<li>Managing Containers as VMs</li>
<li>Future Multi-Purpose Data Centers</li>
<li>Other Projects Related to Docker and IaaS</li>
</ul>
Federico Simoncelli
FOSDEM 2015 Video
10:2000:40UD2.120 (Chavanne)livemigrationLive migration for containers is around the cornerdevroom<p>CRIU (checkpoint/restore in userspace) is a project, which allows to dump a group of processes on a disk and restore them back later on the same or another host. Another significant use case is online (iterative) migration of Linux Containers.</p><p>CRIU (checkpoint/restore in userspace) is a project, which allows to dump a group of processes on a disk and restore them back later on the same or another host. Another significant use case is online (iterative) migration of Linux Containers. CRIU project was born in OpenVZ team to replace their in-kernel realization.</p>
<p>There was a talk here about CRIU two years ago. In that time CRIU was a young project and we needed to do a lot of things to be ready for real use. Now CRIU is mature enough, the main functionality is completed. People are getting more and more interested in the project. They are integrating CRIU into their own projects. Our community becomes bigger. There are more than thirty people from Parallels, Canonical, Google, Docker, etc.</p>
<p>The talk will cover following questions:
* How does this work?
* How to integrate CRIU in another project?
* What are the most interesting use cases?
* What are the current state and future plans?
* How are we caring about quality?</p>Andrew Vagin
FOSDEM 2015 Video
11:0000:40UD2.120 (Chavanne)provisiondockerProvision and manage Docker containers with ForemanRoll out your applications in containers with easedevroom<p>Deploying containers, images with Docker is becoming a big trend. However, large installations of containerized applications are still few and far between, and solutions are either proprietary or they force you to use their own cloud.</p>
<p>We believe Foreman can fill this space by providing a central space to provision and manage your containers and your network, as we already do with your data center. This provides a great framework for mixed environments where physical machines, vms, and containers are all used in conjunction. Orchestration through Kubernetes is being implemented at the moment.</p>
<p>Monitoring, deploying, and everything else is possible to do through the web UI or an API, and it's open source, so if you miss any feature, feel free to add it!</p><p>Deploying containers, images with Docker is becoming a big trend. However, large installations of containerized applications are still few and far between, and solutions are either proprietary or they force you to use their own cloud.</p>
<p>We believe Foreman can fill this space by providing a central space to provision and manage your containers and your network, as we already do with your data center. This provides a great framework for mixed environments where physical machines, vms, and containers are all used in conjunction. Orchestration through Kubernetes is being implemented at the moment.</p>
<p>Monitoring, deploying, and everything else is possible to do through the web UI or an API, and it's open source, so if you miss any feature, feel free to add it!</p>Daniel Lobato
Katello, for docker registries content management
Foreman Docker, the plugin for container management and orchestration
Provision, monitoring, management of baremetal, virtual, and now containers all in one
FOSDEM 2015 Video
11:4000:40UD2.120 (Chavanne)rocketspecRocket and the App Container Specdevroom<p>Rocket is a simple daemon-free tool that enables users to run containerized apps on their systems free of host dependencies. Containers running under rocket execute like regular processes and can be managed using existing process management tools like upstart, systemd, runit, and etc.</p>
<p>Rocket is also an implementation of the "App Container Spec" which defines how to define and build containerized applications based on tooling like tar and pgp. And then host these files easily using standard protocols like HTTP. The goal of the spec is to enable independent and creative implementations of container runtimes and build tools.</p>
<p>Both of these projects are open source and part of a young growing community. Come learn how they work and how you can get involved.</p>Kelsey Hightower
FOSDEM 2015 Video
12:2000:40UD2.120 (Chavanne)zombieapocalypseSurviving the Zombie ApocalypseContainers, KVM, Xen, and Securitydevroom<p>In our interconnected world of mobile and cloud computing, particularly with the rise of governmental spying, corporate espionage, and theft of data by organized crime syndicates, security is more important than ever. Many claims are being made about the security of open-source cloud technologies: How can administrators, users, and developers separate fact from fiction?</p>
<p>This talk will equip the audience with the principles needed to evaluate security claims. We will talk the nature of risk, of vulnerabilities and exploits; the various factors that reduce the risk of vulnerabilities in software; and about TCB, threat models, and defense-in-depth. And we will introduce a colorful and (hopefully) helpful analogy to help make these concepts more clear.</p>
<p>We will then apply these principles to three open-source cloud technologies: containers, KVM, and Xen, to see how they stack up. These will be backed up with numbers: lines of code, security advisories, entry points, and so on.</p><p>Audience</p>
<p>This is particularly aimed at system administrators or system architects wishing to make decisions about which cloud technologies to use or deploy. It should also be of interest to those who want an introduction to thinking about security analysis in general.</p>
<p>Benefits to the ecosystem</p>
<p>First, it will help those making decisions about which technology to used to make an informed decision. Secondly, by giving the audience a framework for thinking about security analysis, and show how to apply it to some concrete examples, it will help anyone thinking about security in almost any area of development or configuration.</p>Ian Jackson
FOSDEM 2015 Video
13:0000:40UD2.120 (Chavanne)lxdLXD: The Container Hypervisordevroom<p>LXC is a production-ready container management toolset focused on flexible container management. Its container management API has language bindings for many languages including C, python, Go, lua, and more.</p>
<p>LXD is a new project by the LXC community. It provides a REST API for LXC, an improved command line interface and OpenStack integration plugin. The command line interface lets you control both local and remote LXD in a perfectly transparent way including live migration. LXD is also strongly focused on security, uses user namespaces by default, integrates with apparmor, selinux, seccomp and any other security mechanism available.</p>
<p>This talk will present the most exciting features of LXD, including a walk-through of the new command line tool.</p>Serge Hallyn
lxd homepage
FOSDEM 2015 Video
13:4000:40UD2.120 (Chavanne)observabilityObservability in KVMHow to troubleshoot virtual machinesdevroom<p>KVM is the most popular hypervisor deployed with OpenStack and is also often used with libvirt in non-cloud scenarios. With multiple layers of software between the user and the virtual machine, how does one troubleshoot failures and performance issues?</p>
<p>This presentation covers tools and techniques for observing virtual machines with the KVM hypervisor. It gives you a mental model of KVM's architecture so you'll know how to get to the bottom of questions about virtual machine behavior and performance.</p>
<p>Areas covered include guest CPU activity, RAM, disk I/O, network traffic, and the QEMU monitor. Examples are based on real-life scenarios often encountered by KVM users.</p><p>The KVM hypervisor is part of the Linux kernel, making it an easy and popular way to run virtual machines on Linux hosts. KVM is also the most well supported and popular hypervisor deployed with OpenStack, typically through the libvirt library.</p>
<p>When something goes wrong with a virtual machine there are often questions like "how do I see the network packets that the host is receiving for this virtual machine?" or "can I find out which virtual machine is causing excessive disk I/O?".</p>
<p>Luckily KVM is not a black box, it's an open source hypervisor that runs together with the userspace QEMU emulator. There are a wealth of tools for observing virtual machine activity and they can be used to troubleshoot failures and performance issues. From packet sniffing to CPU profilers, tracing to debuggers, this talk covers the arsenal of tools and how to apply them.</p>
<p>This presentation arms you with knowledge of KVM's architecture and how to observe virtual machine activity. Monitoring and debugging virtual machines is actually much like (and sometimes even easier than) on physical machines so you can reuse many familiar tools.</p>
<p>Once you understand how virtual machines interact with the outside world, how CPU, RAM, disk I/O, and network resources are connected, investigating issues with virtual machines becomes a systematic process. This presentation includes examples of common questions you can ask with the help of performance monitoring and debugging tools.</p>
<p>This talk is suitable for both users of KVM virtual machines and developers of management software like libvirt, OpenStack, or oVirt. The aim is share knowledge gained from real-world cases so that virtual machines are not just a joy to use, but also a powerful vehicle for observability.</p>Stefan Hajnoczi
FOSDEM 2015 Video
14:2000:40UD2.120 (Chavanne)transplantationTransplantation of VirtualBox to the NOVA microhypervisordevroom<p>NOVA is both a microkernel and a hypervisor. With only 10,000 lines of code, it is able to host virtual machines and applications securely side by side. In contrast to mature virtualization solutions like VirtualBox, however, the range of supported virtual machines used to be limited to a few fine-tuned guest OSes. The talk explains and demonstrates how VirtualBox became able to run on top of Genode/NOVA, and presents the benefits of combining NOVA with VirtualBox.</p><p>Commodity open-source virtualization solutions like Qemu/KVM and VirtualBox have received tremendous work and hand-crafted heuristics to enable a wide range of unmodified guest operating systems to run flawlessly inside virtual machines. On the other hand, those commodity virtualization solutions rely on a highly complex trusted computing base. Speaking of VirtualBox, the user has to ultimately trust the VirtualBox application in addition to the host OS kernel because VirtualBox exercises all-encompassing control over the host system. This high complexity comes with a high likelihood for bugs and thereby represents a large attack surface that puts the security and privacy of the user at risk.</p>
<p>With the NOVA virtualization architecture, there exists an alternative approach where the complex parts of the virtualization platform are executed in the form of unprivileged components on top of a low-complexity hybrid microkernel/hypervisor. The hypervisor solely provides mechanisms to segregate platform resources, to enable secure inter-component communication, and to reflect virtualization events to user-level virtual-machine monitors. This way, the effective isolation between virtual machines as well as components that run beside virtual machines depends on a trusted computing base of less than one percent compared to commodity virtualization solutions. On the downside, the beauty of the architecture has not gained much attention because NOVA's existing user-level virtual machine monitor lacked the feature set and out-of-the box experience of mature virtualization products.</p>
<p>The talk will present how the feature-rich VirtualBox virtual machine monitor was brought to the NOVA microhypervisor using the Genode OS framework as user-level infrastructure. It will start with an overview of the VirtualBox architecture on the traditional platforms, followed by a brief introduction into the world of NOVA and Genode. The main part of the talk will explain the methodology of the transplantation work and the challenges that had to be overcome. Finally, it will outline the benefits and possible future directions of combining both technologies.</p>
<p>The presentation will be held using a Genode/NOVA system, which will also be used for a live demonstration.</p>Norman Feske
Genode OS Framework
FOSDEM 2015 Video
15:0000:40UD2.120 (Chavanne)xorchestraXen Orchestra: a web UI for Xen and XenServerHandle modern IaaS needs from the webdevroom<p>XenServer exposes a fully featured management API called XAPI. Xen Orchestra was originally designed as web interface for Xen in 2009, and is now a complete re-write to leverage all those new possibilities.</p>
<p>This is the story of a tool evolving from "simple hypervisor management" to a "Infrastructure as a Service" interface, with all the challenges involved.</p>
<p>First, we will examine architecture choices of Xen Orchestra (to reduce connections, bandwidth waste, storing of structured data, allowing persistence and so on...), then and how we decide to address common problems, like user permissions and ACLs in a virtualized infrastructure. Finally, we'll see the roadmap of this fully open source project (aGPLv3)</p>Olivier Lambert16:2000:20UD2.120 (Chavanne)numaovirtUtilizing NUMA architecture in oVirtdevroom<p>For several years now, the oVirt project is leveraging KVM and relevant technologies (ksm, etc) in data center virtualizations. Being a mature
and feature reach, oVirt takes another step forward with introducing NUMA architecture support which will allow better utilization of hypervisors
in advanced virtual data centres. Different NUMA implementations and insights on use cases will allow participants to gain more knowledge on how
to optimize their existing hypervisors in the virt world.</p><p>Starting the latest release of the oVirt project, NUMA architecture is
supported. This presentation will cover general NUMA architecture concepts,
as well as review recent oVirt improvements to support NUMA.</p>
<p>The first part will provide an introduction to Non Uniform Memory Access
and its importance for better utilization of current hardware. The differences
between NUMA implementations in various Linux kernels (numad VS autonuma)
should provide insights on how NUMA is implemented to participants of this
presentation.</p>
<p>The second part of this session we will present support of various NUMA modes
with insights for various flows and use cases. participants will hear about
virtual NUMA options available today, which are quite advanced in the virt
world.</p>Doron Fediuck
oVirt NUMA feature page
FOSDEM 2015 Video
16:4000:20UD2.120 (Chavanne)immutableCentOS Virt SIGCommunity virtualization packages on an immutable coredevroom<p>CentOS is a "distribution" with a rather unique description: it is a free (gratis) clone of a commercially-supported "distribution" with all the branding removed. Being enterprise-grade distribution means solid and well-tested; but it also means not having the latest functionality. It also means having a small enough feature set to provide commercial support in a viable manner: and that typically means choosing one technology and sticking with it.</p>
<p>But what if you wanted your entire system to be solid, and well-tested, but want the latest features for one particular package or program? Or what if you really wanted an enterprise system, but wanted to use one of the alternate technoligies that were not selected?</p>
<p>This is where CentOS SIGs come in. The new CentOS is still at its core a clone of an upstream enterprise distribution. But having had success with the Xen4CentOS project, which provided a version of Xen to run on CentOS 6, they have now generalized the process.</p>
<p>This talk will talk about CentOS SIGs: the vision, the structure, what SIGs are available. We will compare and contrast them to other community distro development models like Fedora, OpenSuSE, Debian, Ubuntu, and so forth. We will also share lessons from the CentOS Virt SIG, in which a number of virtualisation and related technologies such as Xen, oVirt, Docker and others collaborate.</p>George Dunlap
FOSDEM 2015 Video
10:0000:45UB2.252A (Lameere)tizen_iot_securityAdding advance Connectivity and Security to an embedded projectTizen-meta as a security and Connectivity layers for Yoctodevroom<p>More and more embedded projects require support for advance connectivity. With it, comes the requirement to enforce a better security as well as private data protection.
Using the layer model of Yocto, we show how we can extract from a complex project such as Tizen, advance connectivity and security and apply it to any embedded project.</p><p>The Internet of Things (IoT) is growing fast and opens large opportunities to embedded Linux. Unfortunately traditional embedded Linux has been weak when it comes to security and complex connectivity enabling. Tizen which has been developed as a Linux base OS for connected object (phone, TV, car) is on the other side very well equipped in that area. We will start by explaining what is Tizen architecture and how it provides Security and Connectivity facilities on top of a base Linux. We will then show how Yocto and Tizen-meta can be used to create embedded devices which benefit from several years of work done by the Tizen community. In particular we will review : - the mandatory access control enabling in an embedded device - the enforcement of good behavior by applications - resource access control - connectivity layers - HTML5 App enabling. - multi user mode enabling.</p>Dominig ar Foll11:0000:25UB2.252A (Lameere)8bit_compilerSmall Device C CompilerAn optimizing standard C compiler for 8-bit architecturesdevroom<p>SDCC is a standard (ANSI C89, ISO C90, ISO C99, ISO C11) C compiler targeting 8-bit architectures (MCS51, DS80C390, Z80, Z180, Rabbit 2000, Rabbit 3000A, GBZ80, TLCS-90, HC08, S08, STM8, PIC).
It works on many host systems (Linux, Windows, Mac OS, Solaris, NetBSD, FreeBSD, ...).
The talk starts with a view on SDCC from a user perspective - standard compliance, targets.
There is a short interlude on how the SDCC project is set up.
The second part is about some of SDCC's unusual optimizations currently not found in any other compiler, in particular an optimal register allocator and bytewise register allocation.</p>
<p>The presentation will be held jointly with sdcc developer Maarten Brock.</p>Philipp Klaus Krause
SDCC website
FOSDEM 2015 Video
11:3000:25UB2.252A (Lameere)uc_qtcreatorUpdate on QtCreator for µCOn the way to the best C/C++ embedded IDE.devroom<p>This is an update on the first talk about QtCreator for embedded devices.
There will be an short overview and then the presentation of the improvements from the last year:</p><p>QtCreator is the IDE of the Qt-Project. While the main focus is C++ based Qt development it has all usefull features for editing and navigation through
large codebases. Like a code model for refactoring and autocompletion. As a lot of embedded development is done in C/C++ the only part missing for small µController support has been filled by the baremetal plugin for QtCreator. This enables QtCreator to talk to hardware debuggers with support for the gdb protocol.
OpenOCD is a main development focus and it has now gained support for pipelining mode.</p>
<p>Besides giving an short overview over QtCreator the improvments made for embedded development will be shown.
<em>Fast Restart - issues a hardware reset right away without reflashing
</em>OpenOCD pipelining support - one click debugging
*CMake build support (hopefully)</p>Tim Sander
FOSDEM 2015 Video
12:0000:25UB2.252A (Lameere)backporting_driversBackporting Linux mainline driversdevroom<p>This talk will give an overview over the Linux backports project and how to use it.
The Linux backports project makes it possible to use a driver from a recent Linux mainline kernel with an older kernel version.</p><p>When you have a vendor board support package which does not use a bleeding edge mainline kernel, like it is the case most times, but you want to use some driver from a bleeding edge Linux kernel you can use backports.
Backports "automatically" generates a tar with many drivers from a specific Linux mainline kernel which can be used with older kernel versions.</p>
<p>In this talk I will describe how the backports project, with its compatibility layer, the spatches and the normal patches.
For practical usage I will show how to use backports with your own kernel in addition I will give a brief overview on how to add a new driver to backports.</p>Hauke Mehrtens
Project Page
FOSDEM 2015 Video
12:3000:25UB2.252A (Lameere)embedded_multiuserMulti User support in an embedded secured environmentPratical return of experience from Tizen 3 in Automotivedevroom<p>The multi-user support is a new feature of Tizen 3 which aims to enable multiple profile in connected devices while enabling a strict application containment.
This new feature responds to a secured multi-seat context as Tizen IVI (In-Vehicle Infotainment) project.</p><p>The multi-user mode is a new feature of Tizen 3 that mainly impacts the application framework, resources management and security framework.
The aim of multi-user Tizen 3 support is to enable multiple profile in connected devices while enabling a strict application containment.</p>
<p>We will see how this new feature allows a new way to manage applications, services and HW resources in a secured multi-seat context, thus meeting Tizen In-Vehicle Infotainment (IVI) project needs;
We will discover the concepts of a default user before connecting, of separated connected users and privilege user and how users can exchange seats without lost their applications context.</p>Kévin Thierry
FOSDEM 2015 Video
13:0000:25UB2.252A (Lameere)curl_deviceInternet all the things - using curl in your deviceeveryone uses curl - how did this happen and how do you use it?devroom<p>libcurl is the world's most used and most popular internet transfer library, already used in every imaginable sort of embedded device out there. How did this happen and how do you use libcurl to transfer data to or from your device?</p><p>Embedded devices are very often network connected these days. Network connected embedded devices often need to transfer data to and from them as clients, using one or more of the popular internet protocols.</p>
<p>libcurl is the world's most used and most popular internet transfer library, already used in every imaginable sort of embedded device out there. How did this happen and how do you use libcurl to transfer data to or from your device?</p>
<p>Daniel once founded the project and is still lead developer and maintainer of the curl project, making curl and libcurl. He is also active within IETF and maintain several other open source projects. Daniel is employed by Mozilla.</p>Daniel Stenberg
The cURL project
FOSDEM 2015 Video
13:3000:25UB2.252A (Lameere)open_hw_tizenPorting Tizen to open source hardware devicesDIY open source hardware devices with open source softwaredevroom<p>This presentation will reveal the process of porting Tizen:Common to open source hardware developer boards with SoC manufactured by Allwinner, Rockchip or Intel such as OLinuXino, Radxa Rock, Minnowboard. The following topics will be covered:
- Building Tizen ARMv7 and x86 images from scratch,
- Adapting the Linux kernel, bootloader and Tizen:Common to popular single board computers,
- Do it yourself (DIY) open-source hardware Tizen tablet or laptop,
- Sharing knowledge and experience of the community.</p><p>The presentation will discuss the Tizen project and the efforts for porting it to open source hardware devices with ARM or Intel processors. Guidelines for making your own DIY device to be part of an Internet of Things (IoT) based on Tizen:Common.</p>
<p>The following show cases will be demonstrated:
- Tizen:Common for A20-OLinuXino-MICRO with Allwinner A20 SoC (Dual-Core ARM Cortex-A7 CPU and Mali400-mp2 GPU)
- Tizen:Common for Radxa Rock with Rockchip RK3188 SoC (Quad-core ARM Cortex-A9 CPU and Mali400-mp4 GPU)
- Tizen:Common for Minnowboard Max (64-bit Intel Atom CPU)</p>
<p>The presentation will also provide information about U-Boot, Yocto project, the Linux-Sunxi and Linux-Rockchip, Minnowboard communities.</p>
<p>This presentation should help and encourage more developers to experiment with Tizen and to port it to new devices. A comparison between different single board computers as well as hints how to select hardware devices that fit your needs best will be also shared.</p>
<p>No previous experience with the Tizen platform is required. Attendees should expect to learn what is open-source hardware, how to build the Linux kernel and Tizen platform images from scratch.</p>
<p>Note this lecture will be shared with Tizen community's member Leon Anavi. He is the founder and maintainer of Tizen-sunxi, Tizen-rockchip.</p>Phil Coval (rzr)
https://wiki.tizen.org/wiki/ARM
https://wiki.tizen.org/wiki/Linux
https://dockr.eurogiciel.fr/blogs/embedded/tds14sh/
https://github.com/leon-anavi/tizen-sunxi
FOSDEM 2015 Video
14:0000:45UB2.252A (Lameere)replicant_embedded_freedomReached milestones and ongoing development on Replicantdevroom<p>Replicant was started as a pragmatic way to achieve software freedom on mobile devices, as a fully free version of Android. Over the years, support was added for a dozen of different mainstream devices. However, most of these are severely flawed when it comes to software freedom and privacy/security. Thus, it was decided to focus the development effort on a few specific devices that perform better than others from those perspectives, instead of trying to catch up with the latest mainstream devices.</p><p>This talk will first cover what was accomplished by the Replicant project over the last few years and what milestones have been reached. This includes an overview of the work that was completed to support various devices, especially when it comes to writing free software replacements for proprietary components. Some of the most challenging examples will be highlighted and put in perspective as milestones for the project. In addition, some of the work on making the system better regarding privacy and security will be mentioned.
Once the improvement of the situation is acknowledged, this talk will show how most of these devices are still fundamentally flawed, hence opening up two possible ways for the future of the project: adding support for more and more new devices and recent Android versions or focusing on a handful of devices that show real potential for being liberated.
Hence, the second part of this presentation will introduce the recent efforts that were started to support devices that can take freedom to the next step. Some of these exciting devices will be presented in details, with a description of the journey to freeing them from the ground up!</p>Paul Kocialkowski
Replicant website
FOSDEM 2015 Video
15:0000:45UB2.252A (Lameere)starting_yoctoStarting with the Yocto Projectdevroom<p>Yocto has an alleged steep learning curve. It can be a challenge for modules and evaluation board manufacturers to add support for their devices in Yocto as they don't necessarily have a software background. This talk will highlight the steps required, techniques and good practices to create a well integrated machine configuration allowing to build images using the Yocto Linux build system. The Crystalfontz support from meta-fsl-arm-extra will be used to illustrate the talk.</p>Alexandre Belloni
FOSDEM 2015 Video
16:0000:45UB2.252A (Lameere)bitbox_game_consolethe bitbox consolemaking of a small, open & DIY ARM game machinedevroom<p>The bitbox console is a small open hardware & open source game console.
I will present the rationale behind it and the current status of the project, detail the hardware conception and particularly video signal generation from a cortex-m4 chip with no video subsystem. I will then proceed to show the different elements of the software stack : kernel, video engines, the boot loader and, finally, current programs and games, including a Gameboy emulator and a full motion video player.</p><p>The bitbox console is a small open hardware & open source game console.
The intent behind it is to make a fun little, open console that anyone can actually build, hack or modify.</p>
<p>I will present the rationale behind it and the current status of the project, detail the hardware conception and particularly video signal generation from an ARM cortex-m4 microcontroller with no video subsystem. I will then proceed to show the different elements of the software stack : kernel, video engines, the boot loader and, finally, current programs and games, including a Gameboy emulator and a full motion video player.</p>
<p>Its current abilities are :</p>
<pre><code>- Based on the STM32F4 ARM chip including 1MB Flash and 192kB SRAM
- 15 bit (32768 colors) color VGA with a resistive DAC.
- Software based signal generation, DMA based. Resolution : Variable, standard resolution of 640x480 @ 60 Hertz
- Stereo 12bit Audio DAC, variable sampling frequency
- microSD driven by 4wire SDIO (6 MB/s transfers tested)
- 1 user button / user LED
- 2 USB 2.0 host
- 1 microUSB for power (may be used for loading firmware by soldering 2 solder jumpers)
- UEXT extension port
- SWD port to debug programs on chip
</code></pre>
<p>A description of the console is available on <a href="http://bitboxconsole.blogspot.fr/p/blog-page.html">its main blog</a></p>Xavier Moulet
main website of the console
sources
FOSDEM 2015 Video
09:0000:50H.1301 (Cornil)newwavephpNew Wave PHPdevroom<p>With new PHP versions being released more often, and projects including Drupal increasing their minimum requirements for PHP versions, it's clear that things are changing rapidly. This session is all about the changes introduced in newer versions of PHP (5.3 onwards), and what that means for PHP projects everywhere. There will be practical examples of the shiny new features, advice on finding hosting and safely upgrading existing projects, and news about the performance improvements you can expect as you move between the versions. The way PHP is evolving is truly exciting so come and join in on the fun!</p>Lorna Mitchell
FOSDEM 2015 Video
10:0000:50H.1301 (Cornil)phppackagedesignPHP package designdevroom<p>With many great tools available for sharing packages of PHP code, it is now up to you as a developer to design these packages well. You have to decide what to put in a package, when to split a package and on what other packages you can safely depend.</p>
<p>You will learn how to make good decisions about your package design and release reliable, highly usable and therefore highly esteemed packages of PHP code.</p>Matthias Noback
FOSDEM 2015 Video
11:0000:50H.1301 (Cornil)profilingphpapplicationsProfiling PHP applicationsdevroom<p>It's nothing new that speed is important for the success of any web application. Only a few hundred milliseconds may lie between a user leaving your site or staying. Unfortunately performance problems are oftentimes hard to fix and even harder to pinpoint. In this talk I will show you how we at ResearchGate measure web application performance, which means not only timing how long the PHP backend took to deliver a page, but also tracking the speed the users actually perceives in the browser. After that you will see how you can track down and analyze any problems you found through measuring with the help of tools like Xdebug, XHProf and the Symfony Debug Toolbar. And if you still need to get faster after optimizing and fixing all these issues, I'll introduce you to some tricks, techniques and patterns to even further decrease load times.</p>Bastian Hofmann
FOSDEM 2015 Video
12:0000:50H.1301 (Cornil)beyondphpBeyond PHP - it's not (just) about the codedevroom<p>Most web developers focus on writing code. But creating web applications is about much more than just writing code. Take a step outside the code cocoon and into the big web ecosphere to find out how small code changes can make a world of difference on servers and network. This talk is an eye-opener for developers who spend over 80% of their time coding, debugging and testing.</p>Wim Godden
FOSDEM 2015 Video
13:0000:50H.1301 (Cornil)thestateofphpunitThe State of PHPUnitdevroom<p>Every eight weeks a new version of PHPUnit is released. In this session we discuss features that were added recently to help with writing and running tests. The development of new features is not limited to the PHPUnit core anymore, though. Thanks to Composer there is a thriving ecosystem of plugins available that can be used with ease to make your testing effort more effective. We will have a look at the most commonly used plugins and close with an outlook on the future of PHPUnit.</p>Sebastian Bergmann
FOSDEM 2015 Video
14:0000:50H.1301 (Cornil)php7PHP 7devroom<p>It's been over ten years since PHP5 arrived on the scene and a lot has happened in that time. Namespaces, Closures, Generators, Traits, and performance improvements every step of the way. Next year, the runtime we all know and love will be experiencing another major milestone: PHP 7. Find out what new functionality is around the corner, what's likely to break, how it'll impact your application and your development strategies, and most importantly: What the heck happened to PHP6?!</p>Sara Golemon
FOSDEM 2015 Video
15:0000:50H.1301 (Cornil)depencymanagementwithcomposerphpreinventedDependency Management with Composer: PHP Reinventeddevroom<p>Over the last 3 years Composer helped reshape the way PHP programs are written. It was key in transforming a language ecosystem from bad-mouthed procedural mess to an environment in which engineers focus on best practices, refined architecture and code re-use. This talk covers best practices of Composer usage and some tips & tricks even regular Composer users might not be aware of yet!</p>Nils Adermann
FOSDEM 2015 Video
16:0000:50H.1301 (Cornil)rediscoveringspl(Re)discovering SPLdevroom<p>The Standard PHP Library (SPL) might be one of the most powerful, yet the most unused part of PHP, but you are one of those lucky developers who have discovered it! But now what? The lack of documentation about SPL makes it that a lot users don't really harvest the power that SPL brings. During this presentation I will dive into the numerous iterators, data-structures and interfaces that SPL defines and when & how to implement them in your own projects, but we will talk about the edge-cases as well, as in SPL land things don't always are what they seem..</p>Joshua Thijssen
FOSDEM 2015 Video
09:0000:55H.1302 (Depage)supporting_accessibility_in_your_distributionSupporting accessibility in your distributiondevroom<p>This will discuss the few important details that distribution hackers should know to make sure that their distribution is accessible to everybody.</p><p>Freedom #0 of free software is to be able to execute the software. But that is useless if one is unable to actually use the software. Distributions should thus take particular care of their accessibility, which means shipping accessibility tools of course, but also making sure that some accessible software alternatives are packaged, that accessibility can easily be enabled on an installed system, and even that the distribution installer itself is accessible!</p>
<p>Thanks to the experience we have had in Debian in the past years, I will guide the audience through the few important details to know for distribution hackers in order to make sure that their distribution is accessible.</p>Samuel Thibault
Accessibility projects
Debian accessibility user wiki
Debian accessibility developer wiki
Debian installer accessibility wiki
FOSDEM 2015 Video
10:0000:30H.1302 (Depage)scl_for_bleeding_edge_stacks_on_enterpriseSCL for bleeding edge stacks on enterpriseFind out how to deliver bleeding edge, flexible development stacks on stable enterprise platform using Software Collectionsdevroom<p>Learn how to provide bleeding edge features on stable platform using Software Collections that allow you to enjoy different versions of a package or whole application stack on one machine, separately for every process and without influencing the rest of the system. The Software Collections technology is more open than ever before and developed in cooperation with CentOS now. Learn how to use it in practice, what projects use them already and what are the recent changes in the concept.</p><p>For last two years Red Hat delivers two major products using Software Collection. Goal is to provide development environments, newer packages like dynamic languages, modules for them, databases to satisfy customer demand on more up to date contant on stable enterprise platform.
The lecture will introduce concept of Software Collections, while listeners will learn how to build and use application stack delivered using this technology. Practical examples will demonstrate this unusual combination of stable enterprise platform with latest versions of frameworks like latest NodeJS, Django or Ruby on Rails.
Also, tips how to get involved or extend existing collections will be given.
The lecture is intended for developers that need to develop applications for enterprise Linux platform but are not satisfied with old versions that are usually delivered on such platforms.
Also admins or devops engineers will benefit from being able to install any software without influence the rest of the system.</p>Honza Horak
Main site of Software Collections
Blog posts about Software Collections
FOSDEM 2015 Video
10:3500:50H.1302 (Depage)the_tumbleweed_factoryThe Tumbleweed Factoryfrom an unstable development branch to a fully rolling binary distro devroom<p>openSUSE Factory is the head development branch for the openSUSE
distribution releases. As such the explosive mixture of changes and
new versions throughout the whole stack from kernel to the desktops
made openSUSE Factory a challenging distribution to use even for
hard core distribution hackers. To make Factory usable for a wider
audience of distribution developers it had to be made more stable
while retaining the short turnaround times needed for a bleeding
edge distribution. openSUSE therefore introduced a number of automated
and semi-automated tools for review and QA into the development
workflow to reach that goal. The result is now called openSUSE
Tumbleweed, a fully rolling binary distribution based on openSUSE
Factory. This talk explains the development process and the tools
used to turn openSUSE Factory into Tumbleweed.</p><p>Target audience are distribution integrators in general. All of them
have problems like "does this new dracut submission break the
installer or render the system unbootable?". With the process used
by openSUSE many such questions can be answered by the machine,
automatically. The process outlined in this talk is not only useful
for rolling distributions like Tumbleweed but also for stable
releases. It helped significantly to increase the quality resp avoid
regressions between beta and RC versions during the release process.</p>Stephan Kulow
openQA
openSUSE Factory dashboard
FOSDEM 2015 Video
11:3000:55H.1302 (Depage)whats_new_in_systemd,_2015_editionWhat's new in systemd, 2015 EditionWhat's new in the systemd world, and what's coming nextdevroom<p>systemd is now a core component of most major distributions. In this talk I want to give an overview over everything new in the systemd project over the last year, and what to expect over the next year.</p>Lennart Poettering
systemd homepage
FOSDEM 2015 Video
12:3000:50H.1302 (Depage)retooling_fedoraRetooling FedoraA Retrospective on Fedora 21 (and looking to 22)devroom<p>Fedora 21 marked the first phase of the Fedora.next Initiative, an umbrella concept for a reimagining of how Fedora will operate in its second decade. This talk will focus on the switch to a Product-based model, the reasons behind it and the challenges (both technical and social) that we faced in shipping Fedora 21.</p><p>The session will be broken into approximately 25-30 minutes of lecture lightly covering a variety of topics including release-engineering, new feature development and socialization of ideas.</p>
<p>After the talk, the session will be opened up to a Q&A session with the audience.</p>Stephen GallagherMatthew Miller
Fedora Download Page
FOSDEM 2015 Video
13:2500:30H.1302 (Depage)openstack_on_fedora_&_centosOpenstack on Fedora & CentOSdevroom<p>This talk will describe the state of OpenStack packaging on Fedora & CentOS through the project RDO.</p><p>Openstack is a big player in the FOSS IaaS field, yet, it's still a challenge to package it and integrate it into major GNU/Linux Distros.
Here, we'll see how it is packaged and maintained in Fedora/CentOS and what are the plans in the near future.</p>Haïkel Guémar14:0000:45H.1302 (Depage)can_distros_make_the_link?_lets_package_the_customizable,_free_software_web_of_the_future!_Can Distros Make the Link? Let's Package the Customizable, Free Software Web of the Future! devroom<p>Without buy-in from non-technical users, decentralized web services are destined to fail. It's time for the folks who are building the distros of the future and the folks who are building the web of the future to see what we can offer each other. Come hear what we've done so far at MediaGoblin, where we think the tricky bits will be and then join us in building the computing, sharing, connecting environment of the future!</p><p>Let's be honest. Most of the people who currently run a node of a decentralized web service are pretty technical. The rest of the world uses massive centralized services. These large centralized service providers are prone to easy surveillance, hard for users to customize and rife with arbitrary censorship. But people want to connect and share, so if we aren't building free web services for everyone, then we may as well not be building them at all.</p>
<p>GNU/Linux distributions could well be the missing link. If users could install the software to host their own node of MediaGoblin, Diaspora or Pump.io as easily as they choose an application like VLC or Audacity then we might start to see the multi-node network that federated services need to succeed. Of course, there are a few hurdles we'll have to overcome before we can expect easily deployable federation in every distro. Some of the great new innovations from the world of devops (prepare for all the failure) and the magic of containerization (assemble once, deploy everywhere) could help us bridge the gap.</p>
<p>It's time for the folks who are building the distros of the future and the folks who are building the web of the future to see what we can offer each other. The folks at MediaGoblin have been thinking about this for quite a while. Come hear what we've done so far, where we think the tricky bits will be and then join us in building the computing, sharing, connecting environment of the future!</p>Deb Nicholson
FOSDEM 2015 Video
14:5000:45H.1302 (Depage)centos_community_infra_revealedCentOS (community) Infra revealedaka the joy of running on donated machinesdevroom<p>CentOS.org Infra explained</p><p>CentOS Project exists now for more than 10 years now, and some people are wondering how the CentOS.org Infra is managed. We'll explain all the tools we use to maintain that infra, but also the constraints we have due to the fact that our infra is spread around the world on community/donated machines, without SLA and disappearing without notification. We'd like to also not only present how we run the infra, from a community perspective, but a real discussion with other distributions (round-table discussion ? ) about those common issues, and how to solve those</p>Fabian Arrotin
CentOS website
FOSDEM 2015 Video
15:4000:30H.1302 (Depage)live_atomic_updatesLive atomic updatesInstalling new software without the need for packages or a rebootdevroom<p>If you install packages on a running system you need to be careful to not break running software, or leave the filesystem in an invalid state. This is why Android, Baserock, CoreOS and Project atomic do atomic updates for system software. Currently this requires a reboot, so it's an offline atomic update, but if we can solve online atomic updates, there's no need for packages any more.</p><p>I work for Codethink on a project called Baserock, the goal of which is to solve problems in embedded systems development.</p>
<p>With package-based upgrades you need to be careful to not remove anything that a running program is using, and you need to avoid moving the file-system through invalid states.
Distributions generally get this right, but it's a lot of work, and the complicated dance required to make this work, also makes it slow.</p>
<p>We decided to do away with packages to simplify things, so we do image-based updates by applying a binary delta to a snapshot and atomically flip to the new version.
Currently the way to do this is reboot or kexec, but requires a service outage, so for Baserock I've been looking at a better way to do this.</p>
<p>In this talk I'm going to explain the various alternative approaches, why I settled on my current approach, the limitations of this approach, and future work to make this more reliable.</p>Richard Maw
The Baserock Project
FOSDEM 2015 Video
16:1500:45H.1302 (Depage)the_centos_storage_sig_and_glusterfsThe CentOS Storage SIG and GlusterFSChallenges, solutions and how GlusterFS is fitting in Storage SIGdevroom<p>GlusterFS is a scale out storage solution which has wide range of uses cases.</p>
<p>GlusterFS is one of the founding members of Storage SIG. We have been able to successfully bootstrap GlusterFS in the Storage SIG. Relevant RPMs have been build for the SIG using the new CentOS build system. During the last couple of months of bootstrapping GlusterFS in the storage SIG we have faced some technical challenges which will be applicable to other SIGs (current and Future). During this talk we will share our experiences and discuss the technical challenges GlusterFS faced, how we solved it and the thought process around it. In this talk we will also talk about how Storage SIG is trying to give best upstream experience to community/users.</p><p>Open source storage projects (e.g. Ceph and GlusterFS) were the first to jump on the SIG bandwagon. For GlusterFS it is a perfect match as most of the users in Gluster community preferred CentOS over RHEL to deploy GlusterFS. Our goal was to create a seamless experience for community to consume GlusterFS and related technologies. GlusterFS is also deeply integrated with other technologies too e.g. Samba,NFS, nfs-ganesha, OpenStack, QEMU-KVM, Hadoop, OpenStack Swift, and OVirt. One of the goals of the Storage SIG to ensure users can consume GlusterFS and related technologies easily through storage SIGs and other SIGs( e.g virtualization SIG ) etc.</p>
<p>We have been working on GlusterFS in the storage SIG for some time now. In the presentation we will share our experiences, challenges, and some insights to SIG.</p>
<p>The talk will be beneficial to wide variety of people e.g. System admins who want to deploy GlusterFS, and developers who are working with technologies which consume GlusterFS. It would also give fair idea what kind of challenges SIGs face, and to those who want to know more about storage SIG</p>Kaleb KeithleyLalatendu Mohanty
Storage SIG
Storage SIG Proposal
CentOS Variants
FOSDEM 2015 Video
09:0000:05H.1308 (Rolin)opening_desktops_devroom_2015Opening of the Desktops DevRoom 2015devroom<p>Welcome to the Desktops DevRoom at FOSDEM 2015</p>Christophe FergeauPau Garcia i QuilesPhilippe CaseiroJerome LeclancheDidier Roche09:0500:30H.1308 (Rolin)wapt_apt_get_for_windowsWAPT, apt-get for WindowsA package manager for Windowsdevroom<p>With WAPT, IT teams can manage simply and effectively the lifecycle of an installed base of Windows applications. WAPT can (1) install, (2) update, (3) configure, (4) uninstall and (5) inventory your Windows based applications, be they business, office, utilities or even system drivers.</p>Vincent Cardon
Main community website (in French as of 2014/10)
09:3500:30H.1308 (Rolin)lessons_learned_with_time_based_releases_for_eflLessons Learned with Time Based Releases for EFLdevroom<p>The Enlightenment window manager and its libraries have for a long time been seen as one of the
pieces of software that might never be released. With E17 taking 12 years for its first release
there was some truth in this story. Since we have released E18 and E19 and adopted a time based
release schedule for our library releases. Enlightenment still runs on its own schedule.</p><p>The Enlightenment window manager and its libraries have for a long time been seen as one of the
pieces of software that might never be released. With E17 taking 12 years for its first release
there was some truth in this story. Since we have released E18 and E19 and adopted a time based
release schedule for our library releases. Enlightenment still runs on its own schedule.</p>
<p>The EFL gets a new release roughly every 3 month. Over a year into my role as release manager of
EFL and 4 time based releases later it seems to be a good time to look back and let others know
about the lessons I learned to get this working.</p>
<p>The talk will touch topics like setting a release schedule within the community, keep track of the
status of git master while progressing, motivate people to invest time in stabilization and tools
and automation to keep time effort small. It will touch technical as well social topics involved
with release management.</p>Stefan Schmidt10:0500:30H.1308 (Rolin)ubuntu_on_phones_and_beyondUbuntu on phones and beyondHow we built Ubuntu for the phone and plan to build out to all the other devices out theredevroom<p>I would like to talk about the next generation of Ubuntu, currently working on phones and, mostly, on tablets.</p>
<p>We're building it out for traditional windowed use cases now, ultimately enabling convergence, i.e. using one device to drive all your computing (mobile or otherwise) needs. I'll talk about how we want to get there</p>Michał Sawicz
FOSDEM 2015 Video
10:4000:30H.1308 (Rolin)gcompris_goes_qt_quick_with_the_help_of_kdeGCompris goes Qt Quick with the help of KDEGCompris is an educational software for children 2 to 10devroom<p>GCompris is a high quality educational software suite comprising of numerous activities for children aged 2 to 10. It was created in 2000 using the GTK+ graphical toolkit. It is available on different platforms, GNU/Linux, and the proprietary platforms MacOSX and Windows.</p>
<p>Willing to address the large number of tablet users and to enhance the user experience the choice was made in January 2014 to rewrite GCompris in Qt Quick.</p><p>The presentation will address the following topic:</p>
<ul>
<li>Project goal and history</li>
<li>Community and commercial. Starting in 2003 a Windows version was created and is distributed under a commercial model while being still Free Software. We will see how and why we decided to do so</li>
<li>Why we selected Qt Quick. This development toolkit is based on Qt and let the developer create dynamic user interface that can run on desktop and mobile platforms</li>
<li>Why we became a KDE project. GCompris has always been a community project, leaving the GTK+ toolkit it does not make sense to develop the new version under the Gnome umbrella</li>
<li>State of the Qt Quick port</li>
<li>A short Qt Quick presentation</li>
<li>A live coding session where showing how easy it is to create a new educational activity for GCompris</li>
</ul>
Bruno Coudoin
GCompris main site
FOSDEM 2015 Video
11:1500:45H.1308 (Rolin)mobile_webMobile == Webthe best mobile "apps" are on the webdevroom<p>The next billion people to come online will do so through their phone. If they don't have access to awesome mobile web content, their experience will be controlled by the app ecosystem of the phone they purchase.</p>
<p>Help them - and all your friends - by making sure that all the websites and apps you create are great mobile experiences. Increase your reach to mobile and make sure that everyone has access to your content by creating a discoverable, responsive, awesome mobile experience on the web.</p>
<p>Why?
1) All mobile users have access to the web. Not all mobile users will download an app.
2) Web pages are more accessible through search.
3) All users, regardless of their platform, have access to mobile websites.
4) Nobody is censoring content, nor taking part of the profits, on the web.
5) Everyone can create mobile web content without needing third party approval.
6) Your mobile website can easily become an app for mobile platforms.</p><p>The next billion people to come online will do so through their phone. If they don't have access to awesome mobile web content, their experience will be controlled by the app ecosystem of the phone they purchase.</p>
<p>Help them - and all your friends - by making sure that all the websites and apps you create are great mobile experiences. Increase your reach to mobile and make sure that everyone has access to your content by creating a discoverable, responsive, awesome mobile experience on the web.</p>
<p>Why?
1) All mobile users have access to the web. Not all mobile users will download an app, especially for things they do once or places they visit infrequently.
2) Web pages are more accessible through search.
3) All users, regardless of their platform, have access to mobile websites.
4) Nobody is censoring content, nor taking part of the profits, on the web.
5) Everyone can create mobile web content without needing third party approval.
6) Your mobile website can easily become an app for mobile platforms.</p>Stormy Peters
FOSDEM 2015 Video
12:0500:45H.1308 (Rolin)wikimedia_adopts_phabricatorWikimedia adopts Phabricator, deprecates seven infrastructure toolsFirst hand experiences from a big free software project on a complex migrationdevroom<p>Phabricator is an open source software development platform used for project management, bug reporting, and code review in an integrated fashion. Wikimedia has about 500 regular contributors developing MediaWiki plus hundreds of extensions and related tools. We are deploying https://phabricator.wikimedia.org to replace Bugzilla, RT, Trello, Mingle, Gerrit, gitblit, and Jenkins. This is the biggest and most complex Phabricator migration we are aware of, and we want to share our first-hand experiences with other free software projects.</p><p>Why such a big change? All the tools we are/were using kind of work/ed. However, we felt that the cocktail of tools was slowing us down, becoming also an obstacle for new contributors. In more detail:</p>
<ul>
<li>The volume and complexity of our software projects keeps increasing; MediaWiki and Bugzilla fall short for project management.</li>
<li>Wikimedia Foundation teams were increasingly using Mingle and Trello, 3rd party commercial services that are alien to the Wikimedia community and principles. This was creating a divide. Wikimedia Germany was trying Scrumbugz, a one-man OSS project barely maintained.</li>
<li>Overlap, duplication, and actions falling between the cracks increased.</li>
<li>To mitigate this problem, we created more tools to synchronize information between services (like "Bingle", "Bugello" or Gerrit notifications in Bugzilla). They needed to be maintained (i.e. when one service is upgraded and its API interface has changed).</li>
<li>Contributing to Bugzilla (Perl) and Gerrit (Java) is complex for us (PHP, and Phabricator is written in PHP), while there is no way to contribute code to proprietary Mingle and Trello.</li>
<li>The current setup brings overhead and annoyance to key developers:
<strong> Senior developers having to use heavily Gerrit, Bugzilla, and Mingle/Trello.
</strong> New contributors, most of them arriving with GitHub-like expectations.</li>
</ul>
<p>As we write these lines, this is an ongoing work. Learn more about the Wikimedia Phabricator timeline and other project details at https://www.mediawiki.org/wiki/Phabricator</p>Quim GilAndre Klapper
Wikimedia Phabricator project page
Wikimedia Phabricator site
phabricator.org
FOSDEM 2015 Video
12:5000:30H.1308 (Rolin)application_sandboxing_with_systemdApplication Sandboxing with systemdContainers and wayland and kdbus, oh my!devroom<p>I will talk about the experimental work I've been doing to securely sandbox graphical applications in a Wayland based desktop. I will also talk about the next steps and how this work relates to the GNOME Safety project and systemd.</p>Rob Taylor
FOSDEM 2015 Video
13:2000:30H.1308 (Rolin)qtquick_in_complex_applicationsQtQuick in Complex Applicationsdevroom<p>It is well known that QtQuick is cool, trendy, and empowers you to make your applications looking awesome. Various tutorials and talks discuss that and how to do this, but seldom reach the point where they talk about QtQuick usage for more complex use cases than a simple game/a small example text editor. In this talk, I will discuss how the mechanisms in "hybrid" C++ (logic, models, data) and QtQuick (the fancy looking stuff) applications work and what are best practices there. This includes a very brief recap of QtQuick and QML, but mainly focuses on how to access and communicate data from the QtQuick engine that is provided by the C++ models, and the other way around. The talk will conclude with a walk through different pitfalls and best practices when working with QtQuick UIs of significant size.</p>Andreas Cord-Landwehr
FOSDEM 2015 Video
13:5000:30H.1308 (Rolin)desktop_software_on_the_webDesktop Software on the WebBringing FOSS Desktop Software to the Browserdevroom<p>Until recently, Free and Open Source Software designed for the Desktop, particularly development tools, has been unavailable on the Web. Now, using a technology called Native Client, some 240+ packages including editors, compilers, interpreters, and utilities can be made available in the Chrome web browser, online or offline, without sacrificing portability or security. Come learn how the the Desktop of the future will meld the security and flexibility of the Web with the performance and rich application set of today’s Desktop.</p><p>Native Client (NaCl), is an open-source technology that allows native machine code to run securely sandboxed in the browser, with privileges mirroring Javascript. Two layers of sandboxing, a static verification inner sandbox combined with Chrome’s outer process sandbox, ensure users can safely run applications they may not trust. Modified GCC and LLVM based toolchains allow applications to target NaCl using the PPAPI I/O interface.</p>
<p>This talk will explore key challenges including: packaging, testing, emulating process management using a JavaScript “microkernel”, and building POSIX support—pthreads, files, processes, sockets, terminal I/O—on top of Web-centric APIs.</p>
<p>See a full-featured development environment comprised of FOSS applications including editors (Vim, Emacs, Nano), scripting languages (Python, Lua, Ruby, Tcl/Tk, Bash), utilities (tar, zip, curl, grep), version control (git, svn), compilers (GCC, Clang/LLVM), GDB, GNUMake, window managers, and an X11 server, all running in concert, sandboxed in the browser. Discover how the Desktop can now become one with the Web and help put Free and Open Source Software in the hands of developers and users everywhere.</p>Brad NelsonBen Smith
NaCl Dev Environment Codelab
NaCl Overview
FOSDEM 2015 Video
14:2500:30H.1308 (Rolin)application_gui_designApplication GUI Design - Notes From a Toolkit Developerdevroom<p>Designing an application with a good user interface and user experience is hard. Many people get it wrong which results in a degraded user experience, satisfaction and retention.
In this talk, Tom will demonstrate some good design patterns, review the current design landscape in the desktop and touch friendly worlds and will give his notes and ideas as a developer of the EFL graphical toolkit and applications.
Tom will also offer some easy tips for making your applications better.</p>Tom Hacohen
FOSDEM 2015 Video
14:5500:30H.1308 (Rolin)gnome_creating_ripples_in_the_linux_ecosystemGNOME - creating ripples in the Linux eco-systemdevroom<p>Sri Ramkrishna makes the argument that GNOME's off the beaten style of development are ripples that create opportunities for interesting problems for the eco-system to solve.</p><p>GNOME tends to be a controversial project, their design and technical decisions create ripples that affect the Linux eco-system. Whether good or for ill, GNOME's decisions creates opportunities to solve interesting problems by pushing a 'just works'. The talk will involve a retrospective of GNOME's initial path and how they changed the Linux eco-system today and contrast today's design and how things will go further with integration with systemd.</p>Sri Ramkrishna
FOSDEM 2015 Video
15:3000:30H.1308 (Rolin)reinventing_the_enlightenment_object_systemReinventing the Enlightenment Object Systemdevroom<p>The Enlightenment project started over 15 years ago, and while it has evolved a lot over the years, its object system has not; this is quite surprising given that almost everything in Enlightenment is represented by objects. Tom, later joined by other Enlightenment developers, has taken upon himself to redesign it, and called the new system Eo. In this talk Tom will describe the main goals they had for Eo, what (and how) they have achieved, how it was received by fellow developers and how it impacted the Enlightenment project as a whole. Tom will also briefly review other C object systems, some of Eo's unique features, and several related projects that were either created to support Eo, had undergone major improvements enabled by it, or owe they existence to Eo.</p>Tom Hacohen
FOSDEM 2015 Video
16:0000:30H.1308 (Rolin)the_haxe_language_as_a_transmedia_toolkitThe Haxe language as a transmedia toolkitOne codebase, one app, many runtimes, millions of devices.devroom<p>We will present the Haxe Language (haxe.org), what is is, and what it is not. We will explain why Motion Twin (motion-twin.com) originally had the need to use Haxe, and why it still does.</p><p>title : The Haxe language as a transmedia toolkit
sub : One codebase, one App, many runtimes, millions of devices.</p>
<p>We will present the Haxe Language (haxe.org), what is is, and what it is not. We will explain why Motion Twin (motion-twin.com) originally had the need to use Haxe, and why it still does.</p>
<p>part 1 : Developing games using open source technology
- Who are Motion Twin and why do they have 15 million users?
- A Motion Twin showreel of games created using open source tools
- An overview of the open source tools available for writing games</p>
<p>part 2 : What is Haxe ?
- Why did we need Haxe, a comparison with alternative languages (compilers are too slow, or languages are too broken)
- A one man (army) Swiss army knife
- People using Haxe to fuel their creativity
- The Haxe Foundation mission</p>
<p>part 3 : A case study : Dead Cells, a zombie survival game (dead-cells.com)
- Server technologies : going back from the servers to the users with the best tool available
- Client technologies : driving GPU, FPU, resolving screen resizing with simple yet efficient methods.
- Paying hommage : Breakdown of all technologies involved
- A Transmedia experience : start at work on a desktop, continue on the metro with a phone, and end at home on a micro console</p>
<p>part 4 : Questions</p>
<p>ps : The game used as case study might change</p>David "Blackmagic" Elahee
FOSDEM 2015 Video
16:3000:30H.1308 (Rolin)microraptor_guiMicroRaptor GuiAn immediate mode UI framework on top of cairodevroom<p>Traditional UI toolkits like motif, GTK, qt, Clutter, QML, HTML DOM and more are retained. MicroRaptor Gui is immediate mode - like cairo itself and augments the cairo drawing API with keyboard and pointer event handling, as well as styling and positioning using CSS. The API of MicroRaptor Gui makes it easy to implement your own scene-graph, or directly
render from in memory data structures or using iteration APIs.</p>
<p>MicroRaptor Gui has backends for /dev/fb, SDL, embedding in GTK+ applications, running as a composited client of another MicroRaptor Gui process and for some uses even vt100 terminal emulators.</p>Øyvind Kolås
FOSDEM 2015 Video
10:0000:45H.1309 (Van Rijn)openstack_infra_tools_to_borrowOpenStack Infrastructure tools you will want to borrowdevroom<p>A presentation of original open source tools created for (and used by) the OpenStack project infrastructure.</p><p>Last year at FOSDEM I gave an overview of the OpenStack project infrastructure, a Puppet-driven collection of free software tools which ensure continuous integration at the crazy pace of the OpenStack projects.</p>
<p>While a number of these tools are well-known (Puppet, Jenkins, Gerrit), we also created our own free software tooling to support our unique needs, and those are potentially useful for any software project development infrastructure.</p>
<p>Come one, come all. Step right up and prepare to be amazed! Learn more about Zuul, our fearless pipeline-oriented gatekeeper. Be surprised by jenkins-job-builder, our YAML-driven err... Jenkins job builder. Make Gerrit saner with git-review, JeepyB or gertty. And don't leave without discovering StoryBoard, our amazing future task tracker.</p>Thierry Carrez
FOSDEM 2015 Video
10:5500:45H.1309 (Van Rijn)mongooseim_testing_massively_concurrent_systemMongooseIM: Testing Massively Concurrent Systemdevroom<p>Distribution to multiple virtual machines in the cloud or servers is the way to scale horizontally when there is no more room or resources to grow vertically. In this talk we will discuss how to load test an XMPP server and distribute load generation using Erlang/OTP as a platform. Experiences from testing production ready MongooseIM systems will be presented.</p>
<p>Talk objectives: show from the ground up how to plan and execute load tests of a distributed service and distribute load generation.</p>
<p>Talk audience: DevOps people wanting to load test their XMPP or other message oriented services. People evaluating XMPP solutions in terms of capacity and scalability.</p>Michal Slaski
FOSDEM 2015 Video
11:5000:45H.1309 (Van Rijn)ci_as_infrastructureCI as an infrastructure: components, patterns and problemsdevroom<p>Usually we talk about CI as a process. We can start from very simple "checkout, build, test and deploy" idea and we might come to some complex scheme of interconnected tasks or jobs with different pipelines fulfilling certain requirements, but we mostly remain within the process scope dealing with problems like what to automate, how to automate and in which order to run those automated tasks.</p>
<p>However in this talk we are going to step back a bit and look at CI as an infrastructure, i.e. the system of services, which is constantly evolving to catch up with changes happening in the base project. We will go through number of examples trying to figure out basic principles and common patterns of CI infrastructure, and discuss the ways to solve common problems arising from them.</p><p>To organize the discussion we will structure it in groups:</p>
<p>Services group includes topics like:
- setup and update system,
- message bus and status reports,
- artifacts storage and distribution.</p>
<p>In Master group we put questions related to build system configuration, such as:
- difference between interactive and non-interactive build systems,
- proper use of templates for jobs configuration,
- version control.</p>
<p>There are also Workflow questions like:
- should people get access to debug failures in place and how to organize it?
- how to test test?</p>
<p>As an extension for setup and update system topic we'll go through questions which deal with test environment, such as:
- How to add new worker?
- How to check it?
- Will Docker containers solve all of our problems?</p>
<p>While this talk doesn't provide you with the recipe of the perfect CI, it could help you to prepare for the challenge which designing CI infrastructure definitely is.</p>Aleksandra Fedorova
FOSDEM 2015 Video
12:4500:45H.1309 (Van Rijn)its_not_a_bug_its_an_environment_problemIt’s not a bug, it’s an environment problem. devroom<p>It’s not a bug, it’s an environment problem.
Environments are costly and data refreshes tedious. As a result, QA analysts have to make compromises and work in environments that have a different makeup than the production environment, which can create false positives and missed bugs. This presentation will help QA engineers learn how to mitigate the lack of data refreshes by creating modular test cases and use parameters to dissociate the data from the test cases and automation and therefore be able to work with data that you do have in each environment. Additionally, it will dive into how to maximize the environments QA professionals currently have and align them to their testing process to do feature testing and regression efficiently.</p>Helene Astier
FOSDEM 2015 Video
13:4000:45H.1309 (Van Rijn)appium_module_automation_made_awesomeAppiumMobile Automation Made Awesomedevroom<p>Appium (http://appium.io) is a world-class, award-winning open source test automation framework for use with native, hybrid and mobile web apps. It drives iOS and Android apps using the WebDriver protocol and uses APIs similar to Selenium. In doing so, it allows developers to run the same tests across multiple mobile devices.</p>
<p>This talk will explain how Appium works, the advantages it offers, and provide implementation examples for Android and iOS. I am a core contributor to Appium development and work for Sauce Labs.</p>Eric Millin
FOSDEM 2015 Video
14:3500:45H.1309 (Van Rijn)property_based_testingProperty-based testing an open-source compiler, pfluaA fast and easy way to find bugsdevroom<p>Discover property-based testing, and see how it works on a real project, the pflua compiler.</p><p>How do you find a lot of non-obvious bugs in an afternoon? Write a property that should always be true (like "this code should have the same result before and after it's optimized"), generate random valid expressions, and study the counter-examples!</p>
<p>Property-based testing is a powerful technique for finding bugs quickly. It can partly replace unit tests, leading to a more flexible test suite that generates more cases and finds more bugs in less time.</p>
<p>It's really quick and easy to get started with property-based testing. You can use existing tools like QuickCheck, or write your own: Andy Windo and I wrote pflua-quickcheck and found a half-dozen bugs with it in one afternoon, using pure Lua and no external libraries.</p>
<p>In this talk, I will introduce property-based testing, demonstrate a tool for using it in Lua - and how to write your own property-based testing tool from scratch, and explain how simple properties found bugs in pflua.</p>Katerina Barone-Adesi
Lua quickcheck implementation for pflua.
FOSDEM 2015 Video
15:3000:45H.1309 (Van Rijn)make_your_tests_failMake your tests failHow randomisation adds a whole new dimension to finding bugs in your codedevroom<p>It's easy as pie: before checking in, your test suite should always be green. Or should it? What if your tests are all green but you forgot to check one important edge case? What if your underlying system environment lets you down, but only under rare conditions that you didn't cover in your tests?</p>
<p>This talk introduces randomised testing as used by projects like Apache Lucene and Elasticsearch based on the Carrotsearch Randomised Testing framework. It has helped uncover (and ultimately fix) a huge number of bugs not only in these project’s source code, but also in the JVM itself which those projects rely on.</p><p>Writing unit and integration tests can be tricky: assumptions about your code may not always be true as any number of "this should never happen" log entries in production systems show. When implementing a system that will be integrated in all sorts of expected, unexpected, and outright weird ways by downstream users, testing all possible code paths, configurations and deployment environments gets complicated.</p>
<p>With the Carrotsearch Randomised Testing framework, projects like Apache Lucene and Elasticsearch have introduced a new level to their unit and integration tests. Input values are no longer statically pre-defined but are generated based on developer defined constraints, meaning The test suite is no longer re-run with a static set of input data each time. Instead, every continuous integration run adds to the search space covered. Though generated at random, tests are still reproducible as all configurations are based on specific test seeds that can be used to re-run the test with the exact same configuration.</p>
<p>Add to this randomising the runtime environment by executing tests with various JVM versions and configurations,and you are bound to find cases where your application runs into limitations and bugs in the JVM.</p>
<p>This talk introduces randomised testing as a concept, shows examples of how the Carrotsearch Randomised Testing framework helps with making your test cases more interesting, and provides some insight into how randomising your execution environment can help save downstream users from surprises. All without putting too much strain on your continuous integration resources.</p>Isabel Drost-Fromm
FOSDEM 2015 Video
16:2500:35H.1309 (Van Rijn)it_doesnt_do_what_you_think_it_doesIt Doesn't Do What You Think It DoesA Survey of Strategies for Gaining Confidence in (Testing) Applications/Systemsdevroom<p>How do we have confidence that our applications and systems do what they say on the tin? This will be a brief survey of how people gain confidence that their systems work as intended, finding links between everything from type systems to operational monitoring and how each layer of a system can help improve our confidence in the other.</p><p>We will start with the emphasis of modern type systems on the compile time correctness of a program as well as language level strategies for run time assertions. We will transition from having confidence in our systems via language level features to external tests as we compare and contrast how tests are written using xUnit style and BDD style testing as well as introduce generative testing from functional languages. Going farther up the layers of abstraction, we will look at full system level testing of emergent behaviors via simulation testing. Finally we will compare similarities with simulation testing and staging environments, and how this level of insight is extended into production via monitoring.</p>
<p>This talk will discuss high level concepts with brief examples using FLOSS tools and many links for further examples and reading. Its target audience is intermediate Developers, Testers, and Leads that want to understand the big picture of how testing fits into many other disciplines.</p>Justin Stoller
FOSDEM 2015 Video
09:4500:10H.2213deviot01Welcome to the IoT DevroomWelcome to participants and explanation of the daydevroom<p>Welcome to participants and explanation of the day.</p>Pieter Hintjens
FOSDEM 2015 Video
10:0000:25H.2213deviot02Orchestrating computer systems, a new protocolIntroducing ZOCP an orchestration protocol for live performances, rapid prototyping and the IoTdevroom<p>Trying to control multiple computers in live performances is a challenging task. Often computers intercommunicate using fixed or manually configured parameters. However when projects expand across many devices this is hard to maintain, especially in situations where parameters are prone to change. ZOCP is a new protocol which solves this problem by facilitating flexibility and autonomous configurations in an orchestrated environment.</p><p>In this presentation we present the ZOCP protocol which overcomes the situations mentioned below. The ZOCP protocol is designed with the following in mind:</p>
<ul>
<li>KISS (Keep it simple and stupid): We want this protocol not be in our way and we want to be able to understand it easily.</li>
<li>Zero Configuration: The protocol should be able to handle most, if not all configuration by itself. There is no need for setting up specific parameters unless requested, aka convention over configuration.</li>
<li>Runs on anything TCP/IP: Since TCP/IP is the de facto standard for devices to communicate the technology should be able to run on any device that is able to talk TCP/IP</li>
<li>Open Standards: All used technologies, software, protocols should be freely and openly available.</li>
<li>Low latency, when needed</li>
<li>Reliability, when needed</li>
<li>Unintrusive debugging and monitoring</li>
</ul>
<p>As artists embrace new technologies as an artistic medium, these technologies often provide artists with new methods for cooperation. Networking technologies are used frequently for these purposes. Internet has been a driving force behind the development of networking hardware and open standards for connecting any to device to any device. These technologies are now a commodity and thus available for anybody to use. However we see a rising need to be able to implement these technologies in a flexible adaptive manner without the explicit fixed configurations requiring manual configuration.</p>
<p>Open Sound Control (OSC) is a protocol developed for exchanging music performance data. OSC is often used as an alternative to MIDI, however, it has found its way to many use cases besides musical performances. We have found OSC to be an ideal de facto standard for connecting applications to each other in order to orchestrate them. However the flexibility of OSC tends to decrease exponentially when used in large configurations because of its hard-coded nature. This implies that many applications need to be instructed to use specific manual settings and agreements in order for applications to communicate. In large configurations containing multiple systems and multiple applications, this manual work is inflexible and error prone.</p>
<p>The current prototype is developed using the ZeroMQ framework. We will demonstrate the protocol in a setup with Blender, a game engine, an Urwid console monitor and a RaspberryPi.</p>Arnaud Loonstra
Initial research paper
Python implementation
FOSDEM 2015 Video
10:3000:25H.2213deviot03Creating an IoT device with ease.With Tizen you are almost there !devroom<p>This talk will focus on how to adapt an existing distro like Tizen to the IoT world and try to answer some questions:</p>
<ul>
<li>how 'small' is an IoT device ?</li>
<li>why starting with Tizen ?</li>
<li>what are the consequences on the software architecture ?</li>
<li>which adjustments for which components ?</li>
</ul>
<p>Topics:</p>
<ul>
<li><p>How 'small' is an IoT device ?</p>
<ul>
<li>memory size, CPU power</li>
<li>headless or not ?</li>
<li>wireless or not ? (which connectivity)</li>
<li>power consumption</li>
</ul>
</li>
<li><p>Why Tizen ?</p>
<ul>
<li>OS for everything !</li>
<li>connected</li>
<li>secure</li>
<li>Yocto-enabled</li>
</ul>
</li>
<li><p>Tizen architecture revisited</p>
<ul>
<li>Tizen APIs</li>
<li><ul>
<li>Wearable APIs</li>
</ul>
</li>
<li><ul>
<li>OIC APIs (or AllJoyn APIs)</li>
</ul>
</li>
</ul>
</li>
<li><p>Tizen components to adjust:</p>
<ul>
<li>linux kernel</li>
<li>display system: framebuffer (no GPU)</li>
<li>no graphics server (no weston, no X11)</li>
<li>embedded crosswalk on framebuffer</li>
<li>systemd -> uselessd</li>
<li>others ...</li>
</ul>
</li>
</ul>
Stéphane Desneux
FOSDEM 2015 Video
11:0000:25H.2213deviot04IoT through MatrixMatrix.org is a new open standard for distributed, real-time communicationdevroom<p>Matrix is a new, pragmatic HTTP-based clean-room alternative to XMPP, SIP, IRC and other messaging/VoIP technologies. It consists of an open standard defining RESTful HTTP APIs and open source, Apache-licensed reference implementations for creating and running your own real-time communication infrastructure for VoIP/IM or any other service that includes sending binary data around - including IoT services.</p><p>Matrix is a set of pragmatic RESTful HTTP JSON APIs presented as an open standard, intended to be implemented on a wide range of servers, services and clients, letting developers build functionality on top of the Matrix ecosystem for messaging, VoIP and a multitude of other services.</p>
<p>In Matrix, every user runs one or more Matrix clients, which connect through to a Matrix "homeserver" which stores all their personal communication history and user account information - much as a mail client connects through to an IMAP/SMTP server. Just like email, you can either run your own Matrix homeserver, which means you own and control your own communications and history - or you can use one hosted by someone else (e.g. matrix.org) - there is no single point of control or mandatory service provider in Matrix. In fact, there is no single point of control over conversations in Matrix at all - conversation history is a first class citizen, with room state replicated over all participating servers, avoiding single-points of failure or control as you get in XMPP MUCs.</p>
<p>With the continously increasing number of devices connected to the internet, we need ways to gather and unify all the status and instruction data going back and forth - and Matrix is a perfect fit for these kind of services.</p>Matthew Hodgson
Matrix
FOSDEM 2015 Video
11:3000:25H.2213deviot05Using GSM network for IoT - CANCELLEDAT commands are not deaddevroom<p>Connectivity is crucial for Internet of Things concept. For moving devices like position data loggers is typical solution GSM network. I will show you how you can use different types of GSM network for your IoT projects.</p><p>GSM network is easy way how to connect almost any device to internet. There are lot of GSM modules on market from different vendors but all devices has one thing in common - AT commands. There is standardized AT commands set for GSM networks. Using AT command you can send text messages, read phone number from list on SIM card, connect to internet and much more. I will show you basic command set for HTTP communication using basic GSM module SIM900 and Arduino.</p>Stepan Bechynsky
FOSDEM 2015 Video
12:0000:25H.2213deviot06Working with I/O using libmraa on Linuxdevroom<p>libmraa is a low level IO library for GNU/Linux platforms in the IoT sector. It tries to abstract platform 'crazyness' such as level shifters, i2c gpio expanders and other hardware features that software engineers don't want to deal with. It supports C/C++/python & nodejs and a number of hardware platforms.</p><p>I plan to run the talk in this order:
- Small demo showing how to use IO on a MIPS based vocore & an intel based edison both using libmraa, a few sensors & actuators on various buses to show the flexibility and the same code running on both platforms
- Example of why current APIs are too complicated and not portable
- Quick walkthrough of the board configuration API to add new platforms to the build system
- Q&A</p>
<p>The aim is to show people how we can interact with IO as seemlessly as possible between platforms and that adding new platforms to the framework is relatively easy.</p>Brendan Le Foll
libmraa git repository
FOSDEM 2015 Video
12:3000:25H.2213deviot07Patchwork ToolkitLightweight Platform for the Network of Thingsdevroom<p>Patchwork is a toolkit for connecting various devices into a network of things or, in a more broad case - Internet of Things (IoT). The main goal of creating this toolkit is to have a lightweight set of components that can help to quickly integrate different devices (i.e. Arduinos, RaspberryPI's, Plugwise, etc) into a smart environment and expose specific devices' capabilities as RESTful/SOAP/CoAP/MQTT/etc services and data streams.</p><p>The key features of patchwork include:</p>
<ul>
<li>Lightweight (no RAM-consuming sliced pie of Java and OSGi, only bare necessities)</li>
<li>Cross-platform (can be deployed on OSX/Linux/Windows, tested on RaspberryPI and BeagleBone Black boards)</li>
<li>Language-agnostic (device agents can be written in any programming language, APIs can be consumed by app written in any programming language)</li>
<li>Easily deployable (no JARs, no Eggs or Wheels for the core components, just a single native binary with statically linked dependencies)</li>
<li>Easily extendable (integrate new devices without modification of the core components, drop in solution)</li>
<li>Interchangeable (not happy with current existing Device Gateway or Catalog? replace it with another implementation without breaking the infrastructure)</li>
<li>Not re-inventing the wheel (we re-use as many existing technologies and components as possible)</li>
</ul>
Alexandr Krylovskiy
web site
source code
FOSDEM 2015 Video
13:0000:25H.2213deviot08picoTCP for Linux Kernel tinificationReplacing the kernel's stack with picoTCPdevroom<p>By replacing the Linux Kernel's TCP/IP stack with picoTCP, we aim to lower the threshold to use Linux on small embedded systems and bring it to the IoT world. In this case we ran it on a Cortex-M microcontroller with a few MBs of RAM and flash.
Using picoTCP inside the kernel results in a reduction of the kernel's size by over 300 kb, while still having all of the TCP/IP functionality an embedded system might need, and more.
The talk will start with a demo, then a motivition why we did this, and finally explaining how we did this.</p><h1>picoTCP for Linux Kernel tinification</h1>
<p>"Linux runs on everything from cellphones to supercomputers"; While this is true, in 2014 an average cellphone has around 2GB of memory, 16GB of flash and a quad-core CPU. The embedded systems we have in mind for the Internet of Things might be more in the region of a few megabytes of flash and ram.</p>
<p>The Linux kernel has been growing in size over the years; growing in features also. But a lot of the development has been focused on supporting more CPU’s, more memory, more high-end stuff to support supercomputer-like systems. The minimum possible kernel size has increased with almost every release.</p>
<p>An ongoing effort exists to try and tinify the Linux kernel, with these embedded systems in mind. There is the Tiny wiki1, LWN article on Kernel tinification2 and the LWN article on Networking on tiny machines3.</p>
<p>Being embedded system developers, getting inspired by these articles, and being the creators of picoTCP, we thought of pushing the tinification a step further: Replace the Kernel’s TCP/IP stack with picoTCP. picoTCP is a free TCP/IP stack designed for embedded systems.
In a typical ucLinux kernel the network functionality is over 500 kb; that can be 1/4th of the kernel!</p>
<p>The talk will start with a demo of picoTCP inside the Linux kernel, running on an STM32F4 Cortex-M4 microcontroller. Then, we’ll show some figures on why this is important, and explain the steps taken to strip the default TCP/IP stack from the kernel and replace it with picoTCP; reducing the kernel size by over 300 kb.</p>
<p>References:
https://tiny.wiki.kernel.org/
http://lwn.net/Articles/608945/
http://lwn.net/Articles/597529/</p>
<p>uC Linux kernel size - nominal - = 2.1 MB
uC Linux kernel size - No Network Support - = 1.5 MB
uC Linux kernel size - No TCP, but drivers - = 1.67 MB (1,749,216 b)
uC Linux kernel size - PicoTCP (ipv4, dns client, arp, tcp, udp, icmp) - = 1,790,912 b (+ 41696 bytes = 40.7 kB)</p>Maxime Vincent
FOSDEM 2015 Video
13:3000:25H.2213deviot09What's new inside the Linux IEEE 802.15.4 subsystem?devroom<p>Many patches found their way into the mainline Linux kernel since the last talk about the state of IEEE 802.15.4 and 6LoWPAN at FOSDEM 2014.</p>
<p>This presentation will outline what changes were done, with a focus on the 802.15.4 subsystem.
The architecture of the subsystem has been reworked to be more similar to the 802.11 wifi stack; in addition, this lecture will explain new internal kernel frameworks and the new "wpan" userspace tool which is based on "iw" and give an outlook towards upper layer protocol such as 6LoWPAN.</p><p>This talk will begin with a demo to show the fixed changes according the last FOSDEM talk.
Mainly these are the fragmentation and UDP fixes.
Demo for fragmentation will be a simple "ping6" example with high payload between two Linux nodes.
Another demo for UDP fixes will be a simple "netcat" example between Linux and contiki nodes.
During the demo applications wireshark is running for confirm the working connection.
Additional the demo will show the new userspace tool.</p>
<p>After that the presentation will start with information about general project information like project name change and new mailinglist address.
Moreover the talk explain new internal kernel frameworks for introducing new userspace interfaces.
At last future work will be show.</p>
<p>Rest of time is to start a Q&A with the audience.</p>Alexander Aring
project website
FOSDEM 2015 Video
14:0000:25H.2213deviot10Put an "Actor Model" in your Housedevroom<p>The Internet of Things with the explosion of sensor adds a lot of challenges in how to deal with all of these simultaneously connected devices producing lots of data to be retrieved, actors have delivery guarantees and isolation properties that are perfect for the IoT world. The session will show how to implement an actor base home automation system.</p><p>The actor model with the characteristics of elastic and decentralized by design, is the perfect solution for IOT environment. With actor is possible to create a simple concurrency and distributed system that react on the events. The talk will give an overview on the existing technologies and implementation, it will show also the experience of build an home automation system with an actor model with the description of the challenges and the solution adopted.</p>Fabrizio Manfredi
Actor Model
Reactive Manifest
How One Developer Set Out To Make The Internet Of Things Manageable
Actors Play backend role for Internet of Things
OpenHab
FOSDEM 2015 Video
14:3000:25H.2213deviot11MCUIO/LININOIO - Virtualizing MCU peripheralsdevroom<p>MCUIO/LININOIO - Virtualizing MCU peripherals</p>
<p>The MCUIO/LININOIO subsystem allows a Microprocessor Unit (MPU), somehow
connected to a Microcontroller Unit (MCU), to see the MCU's peripherals as
standard Linux peripherals (i.e. gpios, i2c adapters, pwms, ...).
The basic communication protocol is completely generic, it just defines ways
to read/write a (virtualized) memory space on the MCU. Standard, vendor
independent memory maps are then defined for each kind of MCU peripheral, so
that MCU specific implementation details can be ignored by the MPU.
Interrupt events can be spontaneously sent by the MCU to the MPU as write
requests.
The protocol is transport independent, only a bidirectional channel is required
(for instance rs232 or even a network connection).</p><p>Coming soon...</p>Aurelio ColosimoDavide Ciminaghi
FOSDEM 2015 Video
15:0000:25H.2213deviot12XMPP-IoT an open solution for thingsA demo and talk around using XMPP to create open scalable and secure IoT systems between peers in different domainsdevroom<p>The XMPP community has since 2013 been working to enable the federated XMPP network to support Internet of Things (IoT).
In this Demo/Talk, we will go through the initiative, showing how individual devices, and larger systems can interact cross domains in a secure interoperable environment.</p><p>The XMPP-IoT initiative is an Internet of Things solution from the XMPP standards foundation XSF. It consists of several extensions to the common known XMPP instant messaging standard.</p>
<p>One of the core values of the technology is that XMPP already has a large federated server to server infrastructure for messaging. Using this will create an open interoperable middleware for IoT. Where any device in a domain freeley can choose to interact with anybody else through the federation and friendship mechanisms, just as the chat network is used today.
Using standard XML creates good interoperability possibilities and during 2014 the xmpp network also upgraded to demand participants in the network to enforce encryption both server to server and client to server to increase security.</p>
<p>Agenda:
Demo of live devices locally and on the web.
-The audience is invited to interact with them during the talk through phones and laptops
An intro to the core concepts, reading and writing values in devices.
A discussion on the security, scalability and interoperability, distributed vs. centralized solutions.
If interest and time exist we will touch on EXI to create XML compression.</p>Joachim Lindborg
the XMPP extension library
Live open github web with explanations and how-to
XMPP wikipages
Securing the federated XMPP network
Intro to the XEP 323 reading fields
Intro to the XEP 325 writing fields
EXI XML compression
FOSDEM 2015 Video
15:3000:25H.2213deviot13Manage all the things, small and big, with open source LwM2M implementationsdevroom<p>LwM2M is a standard for device management that solves many of the issues M2M and IoT solutions makers have faced in the past (or, let's be realistic, are still facing), with custom protocols or even standards like OMA-DM: complex workflows, high bandwidth usage, lack of open-source implementations...
Join this talk to get an overview of the LwM2M protocol, and to learn how you can start managing an embedded device with Eclipse Wakaama (yes, it fits in an Arduino, and yes, there will be a live demo!), or build your own device management server with Eclipse Leshan.</p>Benjamin Cabé
Leshan
Wakaama
Eclipse IoT projects
FOSDEM 2015 Video
16:0001:00H.2213deviot14Open spacedevroom<p>Open space for participant-driven talks, Q&A, demos, and other short pieces.</p><p>Speakers welcome on a FIFO basis, 5-minute time slots allocated by the room moderators at their discretion and according to feedback from the audience.</p>
FOSDEM 2015 Video
09:3000:30H.2214vidiViDI - The Visual Design Inspectordevroom<p>We present ViDI, a platform to provide interactive 2D and 3D visualizations of Design Problems in Smalltalk systems. The user can inspect and correct issues in the source code, as well as compare different versions of the same system in terms of design quality. ViDI is built on top of Moose, CodeCity, Roassal, and CodeCritics.</p>Yuriy Tymchuk10:0000:30H.2214gtGTA new generation of development toolsdevroom<p>Mold your development environment. Your system is too special to leave it in the hands of generic tools. The <a href="http://gt.moosetechnology.org/">Glamorous Toolkit (GT)</a> brings a new generation of easily customizable development tools.</p>Andrei ChisAliaksei Syrel
The Glamorous Toolkit
http://
10:3000:30H.2214ddcDynamic Distributed Computation with Smalltalkdevroom<p>Context is a Smalltalk distribution with a minimal object memory
and a distributed module system. I will demonstrate distributed
operation on a small local network of machines, focusing on use cases
for remote team development.</p>Craig Latta
FOSDEM 2015 Video
11:0000:30H.2214embeddedpharoEmbedded pharodevroom<p>Pharo can be used on much more than just a Linux, Mac or Windows pc. The vm is rather easy to port as most of the code is written in Slang, a Smalltalk subset that easily compiles to c.</p>Max MattoneJean-Baptiste Arnaud
FOSDEM 2015 Video
11:3000:30H.2214zerooverheadZero-Overhead MetaprogrammingUsing Self-optimizing Interpreters to make Runtime Metaprogramming Fastdevroom<p>Runtime metaprogramming enables many useful applications and is widely used in frameworks, middleware, and domain-specific languages to simplify the task of application developers. However, today’s language implementations rarely optimize even common concepts such as reflective method invocation or dynamic proxies, despite the fact that solutions for efficient implementations have been advocated since decades.</p>
<p>In this presentation, we demonstrate how self-optimizing interpreters can be used to implement runtime metaprogramming efficiently.
For the implementation, we use SOM Smalltalk, a little Smalltalk implemented in RPython (think PyPy) as well as Truffle (with Graal on top of the JVM).
We show that both platforms can remove the runtime overhead of reflection and thus open up new opportunities for metaprogramming in performance critical scenarios.</p>Stefan Marr
FOSDEM 2015 Video
12:0000:45H.2214showsmalltalkShow us your projectsShort demosdevroom<p>Short presentations and demonstrations of interesting tools & projects. Let us know if you want to see or present something.</p>12:4501:00H.2214amberAmber Smalltalk - Get Started & MoreJump into the modern web with Amberdevroom<p>SPAs are the new way to do web apps.
Javascript is the de facto assembly language of the web,</p>
<p>But Javascript is ugly and debugging it is nightmarish (despite Developer Tools).
Node is cool, but Javascript is not as much.</p>Philippe Back
FOSDEM 2015 Video
13:4500:30H.2214cirelaCirela, open source solutions to manage, monitor and prevent natural and environment disasters; an initial workdevroom<p>CIRELA (Communication and Information technology for REsiLience to disAsters) is a non profit NGO aiming at providing open source solutions to manage, monitor and prevent natural and environmental disasters. Currently we are focusing on wireless sensor network (WSN) based monitoring and warning systems.</p>
<p>We are working on WSN applications where people in a disaster-prone area can actively participate, to have access to information, to be warned on time, and to have their own sensor if they want. Jakarta with frequent flood events is currently a case we are working on.</p>
<p>A 'simple' WSN based flood monitoring application will measure water levels on different locations using sensors, put this information on a server and make it available to users, warn people when the water level in an area is higher than an acceptable limit, ... So we have to manage a geographically distributed and concurrent system where sensor modules represent concurrent processes.</p>
<p>We want to have a pleasant and user friendly environment for end-users as well as for programmers. We started to develop our applications with Pharo. We'll show Pharo with OpenStreetMap and Roassal2:
- to visualize geographic data and information
- to present and to simulate wireless sensor networks</p><p>CIRELA (Communication and Information technology for REsiLience to disAsters) is a non profit NGO aiming at providing open source solutions to manage, monitor and prevent natural and environmental disasters. Currently we are focusing on wireless sensor network (WSN) based monitoring and warning systems.</p>
<p>We are working on WSN applications where people in a disaster-prone area can actively participate, to have access to information, to be warned on time, and to have their own sensor if they want. Jakarta with frequent flood events is currently a case we are working on.</p>
<p>A 'simple' WSN based flood monitoring application will measure water levels on different locations using sensors, put this information on a server and make it available to users, warn people when the water level in an area is higher than an acceptable limit, ... So we have to manage a geographically distributed and concurrent system where sensor modules represent concurrent processes.</p>
<p>We want to have a pleasant and user friendly environment for end-users as well as for programmers. We started to develop our applications with Pharo. We'll show Pharo with OpenStreetMap and Roassal2:
- to visualize geographic data and information
- to present and to simulate wireless sensor networks</p>Onil Goubier
FOSDEM 2015 Video
14:1500:45H.2214pharoPharo: Status and PlansAnother year, another releasedevroom<p>Pharo3 was released in March 2014. Not even a year later, we are close to the release of Pharo4.</p>
<p>This talk will give an overview of the changes and improvements done and show some demos of new functionality.
Again, Pharo4 is just a small step: after the release in the Spring of 2015, we will start to iteratet on Pharo5.
I will present the roadmap of what we will work on in Pharo5.</p><p>Pharo3 was released in March 2014. Not even a year later, we are close to the release of Pharo4.</p>
<p>This talk will give an overview of the changes and improvements done and show some demos of new functionality.
Again, Pharo4 is just a small step: after the release in the Spring of 2015, we will start to iteratet on Pharo5.
I will present the roadmap of what we will work on in Pharo5.</p>
<p>Bio
Marcus Denker is a permanent researcher (CR1, with tenure) at INRIA Lille - Nord Europe. Before, he was a postdoc at the PLEIAD lab/DCC University of Chile and the Software Composition Group, University of Bern. His research focuses on reflection and meta-programming for dynamic languages. He is an active participant in the Squeak and Pharo open source communities for many years. Marcus Denker received a PhD in Computer Science from the University of Bern/Switzerland in 2008 and a Dipl.-Inform. (MSc) from the University of Karlsruhe/Germany in 2004. He is a member of ACM, GI, and IEEE and a board-member of ESUG.</p>Marcus Denker
Pharo Website
15:0002:00H.2214backtothefutureBack to the Future(Re)learn smalltalkdevroom<p>Always wanted to see what the origin of object orientation and the IDE looks like 40 years later?
This is your chance to try the environment for yourself, and see the future of live development</p>Stephan EggermontNicole de Graaf09:0000:25AW1.120openconnect_vpnSoftware isolation in Linuxas used in the development of openconnect VPN serverdevroom<p>For the development of openconnect VPN server a decision to compartmentalize the server was taken, in order to protect any sensitive values exchanged, ranging from the user transferred data, to the data used during the authentication process.
This talk will summarize the issues faced during that development that relate to software isolation. That would cover issues with protecting the server's keys via TLS, the client-side authentication of TLS, and PAM authentication, and how they were solved.</p><p>For the development of openconnect VPN server a decision to compartmentalize the server was taken, in order to protect any sensitive values exchanged, ranging from the user transferred data, to the data used during the authentication process.
This talk will summarize the issues faced during that development that relate to software isolation. That would cover issues with protecting the server's keys via TLS, the client-side authentication of TLS, and PAM authentication, and how they were solved.</p>Nikos Mavrogiannopoulos
openconnect vpn server design
09:3000:25AW1.120pixelvaultPixelVaultUsing GPUs for Securing Cryptographic Operationsdevroom<p>Protecting the confidentiality of cryptographic keys in the event of partial or full system compromise is crucial for containing the impact of attacks. The Heartbleed vulnerability of April 2014, which allowed the remote leakage of secret keys from HTTPS web servers, is an indicative example. PixelVault is a system for keeping cryptographic keys and carrying out cryptographic operations exclusively on the GPU, which allows it to protect secret keys from leakage even in the event of full system compromise. This is possible by exposing secret keys only in GPU registers, keeping PixelVault’s critical code in the GPU instruction cache, preventing this way even privileged host code from accessing any sensitive code or data.</p>
<p>Due to the non-preemptive execution mode of the GPU, an adversary that has full control of the host cannot tamper with PixelVault’s GPU code, but only terminate it, in which case all sensitive data is lost. We have implemented a PixelVault-enabled version of the OpenSSL library that allows the protection of existing applications with minimal modifications. Based on the results of our evaluation, PixelVault not only provides secure key storage using commodity hardware, but also significantly speeds up the processing throughput of cryptographic operations for server applications.</p>Giorgos Vasiliadis10:0000:25AW1.120caml_crushThou shalt not leak your keysPractical key privilege separation using Caml Crushdevroom<p>The Heartbleed vulnerability made one thing very clear, current TLS stacks lack
an efficient way to isolate the cryptographic material from the application
layer. Hence, this vulnerability required the massive renewal of private keys
and certificates. This sure was a costly and painful process for IT
departments. The most efficient approach consists of using Hardware Security
Modules or smartcards to store the cryptographic material. Keys remain
confidential while being usable through an API to perform cryptographic
operations.
PKCS#11 is a standardized security API that is widely adopted by
device vendors. However, deployment of such hardware can be costly and
inconvenient in many scenarios. We propose using Caml Crush, a PKCS#11
filtering proxy, in combination with software PKCS#11 tokens. This architecture
leverages process isolation between the TLS stack and the cryptographic
material. This low-cost alternative is immediately applicable to PKCS#11
compliant software. We demonstrate that this architecture has a low performance
overhead by benchmarking the impact on web hosting scenarios.</p>Thomas Calderon
Caml Crush github
10:3000:40AW1.120second_factor_authUniversal 2nd Factor AuthenticationStrengthening username/password authentication with "driverless" USB hardwaredevroom<p>Universal 2nd Factor is the next step in hardware-assisted authentication for cloud services and more. U2F specify a USB-based protocol for offloading the private-key handling for strengthening username/password logins, and is supported by Chrome and Google (for gmail.com users) since October 2014. By using dedicated hardware that require physical presence, issues with common solutions (one-time-password or certs) are improved on. This talk will be about the U2F protocol, and the free software implementations that we are writing. There will be hands-on demo of the user-experience and also details about the implementation.</p>Simon Josefsson
FIDO Alliance
Yubico
Yubico U2F Developer's resources
11:1500:40AW1.120javacardsQuickstart JavaCard development.Isolate keys and code into secure hardware!devroom<p>Tutorial on how to start developing useful smart card applications for real life smart cards in less than a day.</p><p>Overview of smart cards and specifically JavaCard platform and a description of what is needed for development and testing and how everything can be accomplished with minimal money and mostly open source tools. Dedicated smart card applications allow to isolate critical keys or even generic code into small, secure devices that can be kept in a safe.</p>Martin Paljak12:0000:25AW1.120genode_os_security_by_designGenode - OS security by designdevroom<p>Most provisions against the steadily growing threats imposed by malware, viruses, and directed attacks are fighting symptoms rather than addressing the root of the problem, which lies in the operating system. Genode is an open-source OS technology that promises to give an answer to those threats. By organizing the system as nested sandboxes and consequently applying the principle of least privilege, it protects the privacy of the user and renders most classes of malware ineffective. The talk will be presented on a Genode-based system, which allows the demonstration of the concepts live during the talk.</p><p>The effects of malware and client-side attacks seem to have become a prevalent part of our inter-connected world and increasingly affect individuals, businesses, and governmental institutions alike. The topic has even managed to capture the attention of main-stream media, prompting vocal calls for counter-measures. Governments invest large sums in forming cyber-defense departments. Computer users are urged to invest money in anti-virus software and install a steady stream of security updates. However, those actions are just reactive, fighting symptoms, and merely relieve the problem rather than solving it. For example, none of those measures is effective against zero-day exploits.</p>
<p>The root of the problem is not the "dumb user", or "outdated anti-virus software", or "cyber terrorists" but the antiquated way of how today's operating systems are structured, how they implement security, and the chaotic way of how software components are allowed to interact with each other.</p>
<p>Genode is an operating-system architecture that promises to prevent most classes of security problems by design. Genode-based systems are created out of surprisingly simple primitives: Each program runs in a dedicated sandbox and gets granted only those rights and resources that are needed for its actual task. Programs can create and manage sub-sandboxes out of their own resources, thereby forming hierarchies where policies can be enforced at each level. Furthermore, programs are able to communicate and trade their resources, but only in a well-defined manner. Thanks to this rigid regime, the attack surface of security-critical functions can be reduced by orders of magnitude compared to contemporary operating systems.</p>
<p>This sounds pretty academic but there exists an Open-Source implementation in the form of the Genode OS Framework showing that those ideas translate to a general-purpose OS. In line with Unix philosophy, this framework is a collection of small building blocks, out of which complex systems can be composed. But unlike Unix, those building blocks include not only applications but all classical OS functionalities including kernels, device drivers, file systems, and protocol stacks.</p>
<p>During the talk, we will see several of those compositions demonstrated, hinting at the vast flexibility the architecture provides. At present, this makes Genode a rich playground for OS enthusiasts. The ultimate goal, however, is a fully-fledged operating system that protects the user's privacy and data, and relieves us from worrying about malware, virus infections, and directed attacks. The talk will show how Genode renders various classes of malware pointless and how the Genode developers envision their migration path from current-generation OSes to Genode.</p>Norman Feske12:3000:25AW1.120mandosMandosDisk encryption without passwordsdevroom<p>Disk encryption is essential for physical computer security, but seldom used due to the trouble of remembering and typing a password at every restart. We describe Mandos, a program which solves this problem, its security model, and the underlying concepts of its design.</p><p>Any security system must have a clear view of its intended threat model – i.e. what threats it is actually intended to protect against; the specific choices and tradeoffs made for Mandos will be explained. Another danger of security system design is the risk of its non-use; i.e. that the system will not be used for some real or perceived drawbacks, such as complexity. The deliberate design choices of Mandos, involving low-interaction, “invisible” and automatic features, will be covered.</p>Teddy Hogeborn
Mandos Home Page
13:0000:25AW1.120hybrid_cryptoHybrid CryptographyApplying Hybrid Cryptography to Restful Systemsdevroom<p>This will show what is Hybrid Cryptography and how we can use Hybrid Cryptography in Restful environments.</p>
<p>I will show with example code in Ruby how this flexible system can be applied in Text, HTTP, and maybe other places to show how it is applicable to Restful systems without changing any current protocols.</p><p>Firstly, I will give an explanation of what Hybrid Cryptography is in theory, how it can work as an alternative cryptosystem or work with other cryptography.
My aim is to show that the users of this method allow them to control which cryptographic algorithms are used and when key rollover is performed.</p>
<p>I will then highlight that as this is non-invasive, it can be used anywhere in the Internet protocols, maybe showing an example of working with another Internet protocol to show this.</p>
<p>Then, I will show simple examples.
I show how it can be used in text, encrypting a text file.
Then, I show an alternative to HTTPS using this to encrypt a web page.
I then show that it can work with HTTPS pages too.</p>
<p>If given time, I will show where this came from in encrypting DNS NAPTRs.</p>
<p>Example code in Ruby will be shown throughout to allow others to use.</p>
<p>I do not believe this applies directly to the main themes.
I am estimating that this talk is 30 mins, although I am busy coding, so have not drawn up the presentation slides.</p>Romek Szczesniak13:3000:25AW1.120netaidkitNetAidKitUsable Privacy and Anonymity for Journalistsdevroom<p>The NetAidKit is a pocket size, USB powered router that connects
everything to everything, designed specifically for non-technical
users. The easy to use web interface will allow you to connect the
NetAidKit to a wireless or wired network and share that connection
with your other devices, such as a phone, laptop or tablet.</p>
<p>Once the NetAidKit is connected to a wireless or wired network, you
can make it connect to a Virtual Private Network or the anonymising
Tor network at the click of a button. Any devices connected to the
NetAidKit will use these extra security features automatically,
without needing to configure each of the devices separately.</p>
<p>For more info, see: https://netaidkit.net</p><p>The NetAidKit is a pocket size, USB powered router that connects
everything to everything, designed specifically for non-technical
users. The easy to use web interface will allow you to connect the
NetAidKit to a wireless or wired network and share that connection
with your other devices, such as a phone, laptop or tablet.</p>
<p>Once the NetAidKit is connected to a wireless or wired network, you
can make it connect to a Virtual Private Network or the anonymising
Tor network at the click of a button. Any devices connected to the
NetAidKit will use these extra security features automatically,
without needing to configure each of the devices separately.</p>
<p>For more info, see: https://netaidkit.net</p>Harm Boertien
First blog on the S/Box
New website for the NetAidKit
http://
14:0000:25AW1.120sec_webcryptoWeb SecurityWebCrypto and CSP devroom<p>This talk is about how CSP and WebCrypto provides security in a web browser. It will present how security is implemented in browser. CSP provides many advantages and providing content security provide many advantages. It will also include where it is lacking and what more need to be addressed. Also includes WebCrypto provides a nice interface for interacting with the native platform security infrastructure.</p><p>This talk is about how CSP and WebCrypto provides security in a web browser. CSP is about securing content from external attacks. It provides explanation about CSP (Content Security Policy) and how it is involving from providing static content security to more dynamic content security via script-hash nonce, SubResource integrity and Per-page suborigins. Via examples it will be shown what cases how these security mechanism secure dynamic content and why these are needed.</p>
<p>WebCrypto is method through which user data can be used. WebCrypto API allows access to key located on the device and perform operation such as signature generation, hashing, encryption and decryption. WebCrypto provide whole set of new possibility of how information is secured. It will include the use cases for the WebCrypto, algorithm it current supports and examples on how to use WebCrypto in a device.</p>
<p>The CSP topic is bit of a deviation from the main topic, but WebCrypto is related as it provide layer in software to access key stored in different storage. It is an important abstraction which is vital for web developer to make use of hardware tokens.</p>
<p>About Me: I am a open source developer, contributing mainly to Chromium in rendering and security areas. I have worked previosuly on EU open source project, Webinos, which used PKI model to store keys and enable communication between the devices.</p>Habib Virji14:4500:25AW1.120fuzz_projectThe Fuzzing ProjectImproving the state of free software security with fuzzing toolsdevroom<p>It is surprisingly easy to find memory access violation bugs in all kinds of common Linux tools via very simple fuzzing.
The Fuzzing Project is trying to fix that by systematically fuzzing applications and providing helpful pointers for developers to fuzz their own code.</p><p>Fuzzing is an easy strategy to find bugs in software. It works by creating a large number of malformed inputs and see what happens. Crashes usually point to bugs in the memory handling of an application which can often be a sign of potential security bugs.</p>
<p>Lately a large number of bugs and security issues have been found with fuzzing, many of them in basic and important tools like less, strings, unzip, gnupg, bash and many more. This highlights a pretty dismal state of the security of many key free software projects.</p>
<p>The talk will give a short introduction to fuzzing with tools like zzuf, american fuzzy lop and Address Sanitizer.</p>Hanno Böck
The Fuzzing Project
american fuzzy lop
Address Sanitizer
15:1500:25AW1.120keysigningTwo decades later - Signing OpenPGP keys in the 2000sPresenting GNOME Keysigndevroom<p>This presentation shows a novel approach to signing keys which makes it easy to sign a person's key.
It enables very small groups of people to casually hold very small key signing parties.
The key idea is to automatically authenticate the key material
before the transfer via a secure audible or visual channel.
A Free Software implementation of the protocol will be shown and people are invited to sign their keys :-)</p><p>The Web of Trust is the decentralised PKI in the OpenPGP world.
It depends on people participating by signing other people's keys.
However, when following best practises, the act of signing a key involves secure transfer of the OpenPGP key which contemporary casual key signing protocols for small groups address by exchanging the fingerprint of the key to be signed.
The key will then be downloaded over an untrusted channel and the key obtained needs to be manually verified.</p>
<p>The presented solution was designed with Ellison's Law in mind,
which states that ``the userbase for strong cryptography declines by half with every additional keystroke or mouseclick required to make it work''.
It tries to make it as easy as possible to sign another person's key while not compromising security.
Contemporary key signing protocols were designed in the late 90s with big key signing party gatherings in mind.
The setup cost of such an event are prohibitively high for a small group of people.
Because we have arrived in the new millennium, mobile computing devices, link-local networks, cameras, and QR codes exist.
It is time for us to leverage these technologies to strengthen the Web of Trust without having to mumble hexadecimal strings.</p>Tobias Mueller
FOSDEM 2015 Video
15:4500:25AW1.120bifuzBIFUZBroadcast Intent Fuzzing Framework for Androiddevroom<p>We have designed and implemented an Intent Fuzzing Framework for Android.
Intents are one of the most important ways used by applications to communicate. They benefit also for a very high level of trust inside the Android OS, so if they are not validated appropriate, they might create an unwanted damage, or might even compromise a mobile device, from Security perspective.
As a term, fuzzing implies manipulating input data, in order to validate it through the mechanism or device under test. It is usually a black-box, negative testing technique, but we have used it as a grey-box method, also.
Knowing how Intents are built, and which type of parameters they accept and expect, we have been able to craft fuzzed Intents, in order to find Security vulnerabilities in the Inter Process Communication protocol.</p>Razvan-Costin IonescuAndreea Brindusa Proca
FOSDEM 2015 Video
16:1500:25AW1.120sec_enforcementSecurity enforcement by privilege aware launcherInteresting research trial in Tizen securitydevroom<p>Adding a launcher to a binary allows to control some aspects of its execution environment of the target application.
This is used to change the namespace (view of the filesystem) of the target application at launch time.
An other mechanism is also setup: the process receives (or not) keys that can be checked by other applications for the purpose of controlling authorisations.
When implementing this mechanism, lakes appeared on the extendibility of the /proc kernel's filesystem that we will expose here.</p><p>The mainstream user is now accustomed to install applications that declare needing privileges (GPS position, reading contacts, ...).</p>
<p>This kind of API privileges is hard to guaranty for native applications without a framework that linux does not provide by itself.</p>
<p>The described framework is made of 3 parts:
- the installer
- the launcher
- the key manager</p>
<p>The installer is setting the launching mechanic. This is mecanic uses links, security extended attribute, and groups.</p>
<p>The launcher setups the namespace environment using namespaces and the authorised keys and launches the target application.</p>
<p>The key manager is a high efficient server that allows any service to ask if a process has a given key.</p>
<p>The mecanism of the authorisation keys allow privileges to be given once, never or to be asked by some popup daemon.</p>
<p>The key manager is made using a virtual filesystem implemented using FUSE for prototyping. But the study of this mechanism shown limitations of the /proc kernel filesystem and its link to the LSM. It does not allow to extend the subdirectories /proc/pid with security by process items. The question will be debated.</p>José Bollo
secure launcher
key manager
FOSDEM 2015 Video
09:0000:05AW1.121intro_geospatialIntro geospatial devroomdevroom<p>A very short intro from the devroom organisers - who is doing this and what organisations support the initiative.</p>Johan Van de Wauw09:0500:10AW1.121lifewatchUse of OSS in the Lifewatch biodiversity research projectdevroomJulien Radoux09:1500:10AW1.121qgis_landslideQGIS Tool for Landslide Hazard Assessmentdevroom<p>In Southern Kyrgyzstan, large areas are affected by high landslide activity, which regularly results in casualties and economic losses. There have been many efforts in the past and the present to analyze landslide activity in this large data-scarce region. Yet there is a need for creating a system capable of integrating all of the existing information and include the possibility for future updates. Due to the limited funds and multiple end users, minimization of costs and flexible accessibility are requirements for such a system opting for the use of open source software.</p>
<p>The presented tool has been developed as a QGIS plugin. That way, it is possible to take advantage of the core QGIS functionality and other plugins, e.g. the OpenLayers plugin. The plugin allows the user to access the data on landslides, their triggering and predisposing factors in an easy-to-use way. A typical workflow includes querying landslide and factor data for a certain time period and then assigning them to mapping units for further analysis. Besides data queries, the plugin offers tools for spatial analysis, e.g. finding the highest point of the landslide polygon as an approximation of the landslide main scarp, extension of the standard zonal statistics functionality for the derivation of landslide attributes, pixel- or polygon-based calculation of earthquake influence, etc.</p>Darya Golovko
http://
09:2500:10AW1.121qgis_geopuntOpensource Desktop GIS at Regional and Local goverments in FlandersIntegrating Govermental webservices into QGISdevroom<p>A lightning talk about a plugin for QGIS, open source desktop GIS, that enable users at local governments in Flanders to view, save, analyse and create maps with webservices from the Flemish government. This allows them to use live data instead of downloading files from a webpage.
This includes Geocoding, Points of interest search, Traffic Obstruction data, Elevation Profile and Data search. <a href="https://docs.google.com/presentation/d/1dcfAcnEBkuzQVFLtp1mldvs8DL1G2RgTkX9TGPtMtJI/edit?usp=sharing">slides</a></p>Kay Warrie
The project description on the site of the Flemish government
on github
slides
09:4000:25AW1.121bridging_simulation_gisBridging the gap between simulation and GISdevroom<p>Polygonal meshes are the most common way of representing 2D geometries for simulation purposes. Integrating simulation to a GIS requires storing georeferenced meshes in a databases (or using standard SIG file formats), and being able to use simulation values interpolated over the elements as a map layer.</p>
<p>This presentation reviews what is the closest you can get with existing FOSS GIS solutions and what is needed to bridge the gap, both on the simulation side and on the GIS side.</p>
<p>We show the few lines that need to be added to the simulation code to read a mesh from the GIS and write the results to the GIS. We also present a prototype mesh layer for QGIS that has been implemented as a PluginLayer.</p>Hugo MercierVincent Mora
Presentation slides
FOSDEM 2015 Video
10:1000:20AW1.121grass_7GRASS GIS 7: Efficiently processing big geospatial datadevroom<p>You see beautiful maps every day, you use geospatial data every day but do you know what's behind processing all the big geospatial data? With the advent of open geospatial data in Europe new opportunities arise. In our presentation we show GRASS GIS (Geographic Resources Analysis Support System, http://grass.osgeo.org), a software suite for geospatial data management and analysis, image processing, graphics and map production, spatial modeling, and visualization. The software has been developed as FOSS for more than 30 years by a large community of developers and users.
After six years of development and a long beta release cycle the new stable GRASS GIS 7.0 release is imminent. GRASS GIS 7 is rich in functionality, it offers e.g. enhanced vector network analysis, voxel processing, support for massive time series data management, an animation tool for raster and vector map time series, a graphical image classification tool, and a "map swiper" for interactive maps comparison. The software is portable among most operating systems including GNU/Linux, Mac OSX, FreeBSD, AIX, SUN Solaris, other Unix based, and MS-Windows.</p>
<p>GRASS GIS 7 offers a new Python API (PyGRASS) for rapid development of workflows. For working teams, it supports shared data management on networks. It can be used as a geoprocessing backend for Web Processing Service (OGC WPS). For statistics, it comes with an interface to R statistics.</p>
<p>In our research context, we use GRASS GIS extensively for massive geospatial data analysis on a high-performance computing system (HPC). In our presentation, we illustrate workflows and results using "EuroLST" temperature dataset (http://gis.cri.fmach.it/eurolst/) as an example of data in the multi-terabyte range.</p>Markus Neteler
GRASS GIS Website
EuroLST (MODIS data)
GRASS GIS 7.0.0 RC1 Announcement
FOSDEM 2015 Video
10:3000:15AW1.121grass_apiGRASS Development APIsLifting the fog on the different ways to develop for GRASSdevroom<p>GRASS offers different APIs that allows interested developers to contribute. From the core C-API to the very lightweight Python scripting library, each plays a different role and their coexistence can cause some confusion. This lightning talk aims at clarifying the role of each of these APIs.</p><p>GRASS is originally a C project. However, there has always been command line scripting and some of these scripts have been integrated into the core distribution. With the upcoming GRASS 7, Python has been chosen to replace bash as the main scripting environnement, based on a lightweight scripting library leveraging the modular character of GRASS. At the same time, the need was felt by some to dispose of a more low-level access to GRASS functionality in Python. This has led to the development of pygrass, based on ctypes, which provides as more complete, more pythonic, object-oriented approach to GRASS script programming.</p>
<p>This talk will briefly introduce the different APIs and explain different use-cases and user-types for each of them.</p>Moritz Lennert
GRASS GIS project homepage
GRASS GIS Programmer's Manual (C-API)
GRASS GIS Python library
GRASS GIS APIs
FOSDEM 2015 Video
10:5000:25AW1.121openstandards_biggeodataOpen Standards for Big Geo Datadevroom<p>In Geo service terminology, coverages represent spatio-temporally varying phenomena, such as sensor, image, simulation, and statistics data; incidentally, these typically are prime Big Data contributors in practice. The OGC unified coverage model encompasses regular and irregular grids, point clouds, and general meshes. As opposed to the (abstract) coverage model of ISO 19123, the (concrete) OGC coverage and service model establishes verifiable interoperability while still grounding on ISO 19123. The OGC Web Coverage Service (WCS) comprises a modular suite for accessing large coverage assets. WCS Core provides simple data subsetting whereas extensions add optional service facets up to ad-hoc filtering and processing.</p>
<p>By separating coverage data and service model, any service - such as WMS, WFS, SOS and WPS - can provide and consume coverages in addition to WCS. Generally, the WCS suite is appreciated by implementers due to its clear structuring and concise conformance testing, down to pixel/voxel level. Many WCS implementations are available today, such as rasdaman which has proven efficient on 130+ TB datacubes.</p>
<p>In our talk, we present the OGC coverage data and service model with an emphasis on practical aspects. Presentation will make use of available services allowing participants to recapitulate many of the facets addressed.</p>Peter Baumann
FOSDEM 2015 Video
11:2000:25AW1.121scottyScotty, I need a data in three minutes! (Or we're all dead!!)Just the right data at just the right timedevroom<p>Technology change has created an inflection point for geodata. Mobile devices, social media, retail transactions, and more generate a tremendous amount of data. The volume, variety, and velocity of data is ever increasing. What do we do about it?</p><p>Technology change has created an inflection point for geodata. Mobile devices, social media, retail transactions, and more generate a tremendous amount of data. The volume, variety, and velocity of data is increasing. New technologies are being developed to handle the huge amounts of data. The problem is more complex than simply having a big relational database. This talk will present an overview of open source geospatial technologies which enable big geodata on the server and little geodata on devices and other clients to make it useful with the right context at the right time. More than technology for technology's sake, use it to do something meaningful.</p>Andrew Ross
FOSDEM 2015 Video
11:5000:25AW1.121geotrellis_sparkDistributed tile processing with GeoTrellis and Sparkdevroom<p>GeoTrellis is a geospatial Scala library and framework for doing high performance geospatial processing in a distributed environment. This past year the developers of GeoTrellis have created extensions to the Apache Spark cluster computing platform to ingest and process raster data stored in Accumulo and HDFS. Spark and GeoTrellis can be used to process and serve raster data through web services to create TMS tile layers that can be used on web maps. The framework can work with both spatial-only tiles, as well as spatial-temporal tiles such as climate model data.</p><p>In this talk I'll describe the process of using GeoTrellis to ingest raster data into Accumulo, and give examples of how we can manipulate that data using spark. I will go into the architecture of the GeoTrellis core library, and how it leverages the powerful type system of Scala to make geospatial coding a lot easier. I will go into the architecture that has allowed us to geospatially enable the Apache Spark clustering engine, the difficulties we faced while working with the 3 libraries, and how we overcame those challenges. I will demonstrate working with both spatial-only and spatio-temporal raster data using the framework on an AWS cluster with Spark and Accumulo.</p>Rob Emanuele
The slides for a previous version of the talk I did for a Philadelphia geospatial conference.
FOSDEM 2015 Video
12:1500:10AW1.121geotrellis_geotiffGeoTrellis and the GeoTiff File Formatdevroom<p>A short talk about GeoTrellis and the GeoTiff File Format. I was a Google Summer of Code student at GeoTrellis and implemented a GeoTiff reader for the project. I will present what GeoTrellis is, how I implemented the GeoTiff reader and talk a bit about the GeoTiff File Format and which compressions that are associated with it.</p>Johan Stenberg
FOSDEM 2015 Video
12:3000:10AW1.121habitatHabitat - a programmable personal geospatial datatoredevroom<p>Habitat is a proof of concept project to re-purpose Cucumber style tests to process data about your location. Implemented in Python using Celery, Behave and Flask.</p>Richard Pope
FOSDEM 2015 Video
12:4500:25AW1.121daybedDaybedspatial backend as a service !devroom<p>Daybed is a reusable Web API providing validation and storage as a service. Define your schemas, their fields and permissions using JSON, and you obtain a dedicated RESTful endpoint! It has spatial fields support, GeoJSON output and ElasticSearch indexing!</p><p>Usually, when a Web application requires a spatial backend for storage and validation, a custom API is developed and deployed (reinvent the wheel).</p>
<p>But with Daybed, persistence is a service. It's a minimalist and generic REST API, built with python, on top of the storage backend of your choice, like Redis, CouchDB or ElasticSearch. You can host it yourself or use the one we run at https://daybed.io!</p>
<p>In this talk, we will present why Daybed is the perfect component for rapid application building, and how it can be used for collecting and storing geospatial data. A quick overview of its authentication and permissions system, and you will figure out you can turn any mobile app or static Web page into a collaborative application with no effort!</p>
<p>We will also introduce daybed.js, our tiny JavaScript wrapper, to visualize data or build collaborative webmapping with only a few lines of code!</p>Mathieu Leplatre
Simple Leaflet example
ElasticSearch bbox search
Build your own map
Daybed form builder
Presentation slides
http://
FOSDEM 2015 Video
13:1500:25AW1.121geomajasTaking Web GIS beyond Google Maps with the Geomajas Client and Spatial Application ServerMapping stuff with Java, GWT and Javascriptdevroom<p>In this talk we walk you through the Geomajas web GIS framework. Main focus is on what it does today and where we see it heading in the future.
What is Geomajas and what can I do with it?
What are the main Geomajas projects and components?
Which libraries and tools are used?
How can I integrate it in existing applications and/or solutions?</p>
<p>A must-attend session for all those interested in advanced web mapping using Java / GWT / Javascript.</p>Frank MaesJan De Moerloose
FOSDEM 2015 Video
13:4500:25AW1.121glob3Mobile Map TechnologyDeveloping Mobile Multiplatform 3d mapsdevroom<p>The main capability of this library is the Multiplatform approach, it have the very same API in all environments thanks to coding translation.
Developing with Glob3 Mobile you can save time and resources when you face a mobile development having all advantages of native development (Performance, UI, Access to disk, sensors, etc) and the simplicity of an API thought for GIS developers.
During 2013-2014 G3M has been growing in capabilities and is now a solution to face the development of any map application on any device. In this presentation We will explain the architecture and the main capabilities of this library and we will show some examples and demos and use cases with the API working.
Glob3 Mobile has been developed thinking in the usability and the UI of mobile devices. Currently Glob3 Mobile is working in the next platforms: * iOS * Android * Google Glass * html5-webgl and it is planned to add others like Windows 8 or Java Desktop.</p><p>The main capability of this library is the Multiplatform approach, it have the very same API in all environments thanks to coding translation.
Developing with Glob3 Mobile you can save time and resources when you face a mobile development having all advantages of native development (Performance, UI, Access to disk, sensors, etc) and the simplicity of an API thought for GIS developers.
During 2013-2014 G3M has been growing in capabilities and is now a solution to face the development of any map application on any device. In this presentation We will explain the architecture and the main capabilities of this library and we will show some examples and demos and use cases with the API working.
Glob3 Mobile has been developed thinking in the usability and the UI of mobile devices. Currently Glob3 Mobile is working in the next platforms: * iOS * Android * Google Glass * html5-webgl and it is planned to add others like Windows 8 or Java Desktop.
Currently also g3m has been used as offline AR engine for wearable devices. The capabilities list is huge but the main are: * Raster data * Vectorial data * Point Clouds * 3D models (Buildings, cities, vehicles, ...) * 4D Data * Real Time * Simbology * Offline - Online -> Cache Handling * 3D- 2D - 2,5D views * Scenarios * Animations * Cameras * Tasks
During 2014 Glob3 Mobile will become part of Location Tech (Eclipse Foundation) and will change the name and license: Glob3 Mobile --> Mobile Map tools BSD -> EPL A different use cases of Mobile Map Tools. Vazz: vazz.tv/start Galileo: galileo.glob3mobile.com galileo.mobilemaptools.com Aero Glasses: glass.aero/</p>
<p>Mobile Map Tools is a library to build Native Mobile Map Apps. Visualize huge points cloud in a 3D environment is a hard task that could be face using a server-client approachment.</p>
<p>This library has the following capabilities:</p>
<p>Very big point cloud could be served using a streamed format<br/>
The points serverd save the shape of the cloud
Using LoD techniques and MMT you can see the point cloud in 3D on any mobile device or web page.
The point cloud must be pre-processed
The software developed to show this data is:</p>
<p>A tool to import the point cloud in it's different formats
A library to save this data in a Berkeley DB
A library to pre-process fastly this points
A server to give the appropiate points to the client app
A live demo will be done during the session.</p>
<p>Mobile Map Technology is a library developed by Glob3 Mobile Inc, and is under the Location Tech's umbrella.</p>Manuel de la Calle Alonso
http://www.glob3mobile.com
http://pointserver.xyz
https://github.com/glob3mobile
FOSDEM 2015 Video
14:1500:10AW1.121potreePotree - Rendering Large Point Clouds in Web Browsersdevroom<p>Introducing potree, an open source WebGL based point cloud renderer for large data sets.
By loading and rendering only visible regions up to a certain level of detail, hundreds of milions of points can be rendered in real time inside web browsers.</p>Markus Schütz
project page
source code
demo video
FOSDEM 2015 Video
14:3000:25AW1.121ol3jsOpenLayers 3: A unique web-mapping librarydevroom<p>OpenLayers 3 is the new version of the OpenLayers web-mapping library. We've rewritten the library from the ground up with the goal of offering a powerful, high-performance library leveraging the latest in web technologies such as Canvas and WebGL. This talk will present the latest advances of the library, focusing on aspects that make OpenLayers 3 stand out. OpenLayers 3, for example, uses techniques and algorithms that enable high-quality and high-performance vector rendering. Come learn about the optimizations and techniques OpenLayers 3 uses internally, and what makes OpenLayers 3 unique among its competitors.</p>Éric Lemoine
OpenLayers website
FOSDEM 2015 Video
14:5500:15AW1.121ol3js_cesiumOl3-Cesium : 3D for OpenLayers mapAn exciting library for automatically bringing 3D to your mapdevroom<p>Ol3-Cesium is an exciting web library bringing 3D to an OpenLayers3 map.
A Cesium virtual globe is automatically created from the map and displayed side-by-side for collaborative interaction or stacked for exclusive tasks.
The globe camera and the map view (centre, resolution, rotation) are bidirectionally synchronized: interacting on one updating the other.</p>
<p>Layers are synchronized from the map:
- ol3 raster layers show up on the globe and reuse cache when possible;
- ol3 vector layers render using the same style and may be positioned freely in 3D.
Additionally, specific data may be displayed on the globe, like terrain or vectors.</p>
<p>Vectors are re-projected on-the-fly during synchronisation.
Since one synchronizer may not fit all needs, the library exports core functions to allow advanced or custom use.</p>Guillaume Beraudo
Demo on project page
CampToCamp announcement
Source code
Blog on Cesium
FOSDEM 2015 Video
15:1500:25AW1.121overpassOverpass APIA service to query OpenStreetMap datadevroom<p>Using OpenStreetMap data almost always requires filtering for thematic extracts. Overpass API is a web service for this purpose, available at overpass-api.de. Its source code is licensed under AGPL.</p>
<p>The open data project OpenStreetMap aims at creating a geographic database of the entire world, i.e. collecting the data necessary to make any map of what is on the ground. Starting in 2004, it has now grown to more than a million registered mappers. In most places details are mapped including each footpath. In some places even streetlamps, trees, wastebaskets, and similar things are mapped.</p>
<p>Overpass API allows you to extract data by geographic search criteria, by subject, by structual properties or an arbitrary combination of them. In this way you can realize an always up-to-date data overlay on a slippy map, a desktop data browser, conveniently pull data from OpenStreetMap into QGIS, do quality assurance or a lot of other things.</p>
<p>In this talk I will present Overpass API by the above mentioned example use cases. Furthermore, I will give a short overview over the components and the query language. This gives you a starting point to integrate OpenStreetMap data into your application of choice.</p>Roland Olbricht
Documentation
Public instance
FOSDEM 2015 Video
15:4500:25AW1.121tempusTempus: a framework for multimodal trip planningdevroom<p>Open source engines for trip planning are growing in popularity. We are part of the movement by creating our own engine and a framework for the development of new algorithms.
Tempus focuses on planning trips that involve all possible transport modalities, mixing private and public modes as well as shared vehicles, and on requests with multiple objectives.
It relies on well-known open source components and standards like PostGIS, QGIS, WPS, boost graph and offers tools for importing routing data from various sources, including OpenStreetMap.
This presentation will illustrate the overall modular architecture of Tempus built around a C++ core and give some insights on how to use it either as a user or as a developer of planning algorithms.</p>Hugo Mercier
Github project repository
Presentation slides
FOSDEM 2015 Video
16:1500:25AW1.121douglas_peuckerDouglas-Peucker updatedor do you want to reduce your datadevroom<p>Douglas-Peucker from the early '70 delivers excellent quality, but requests to have a polyline from start to end before reduction can start. In this modified algorithm there is no need to store all points, or to wait until the end of the polyline happens.</p><p>For embedded system it is not practical to have to store all points of a polyline before being able to reduce the number of points. The modified algorithm describes a way to decide on the go which points are essentials (and need to be stored). With the Douglas_Peucker two criteria can be used : the maximum number of points to retain, or the maximum error tolerated. In the modified algorithm only the max error tolerated can be being. Because the algorithm cannot predict the future length of the polyline, it's not possible to apply the maximum number of points. Examples shown contains 2D and 3D cases, in comparison with the Douglas-Peucker algorithm. A brief description will introduce the same concept of the modified algorithm in time related measurements.</p>Stephane Winnepenninckx
FOSDEM 2015 Video
16:4500:10AW1.121picotcp_networksPicoTCP on Mobile Ad Hoc networksdevroom<p>In the growing world of the Internet of Things, gathering data from small devices is becoming more and more important. picoTCP is a dual licence open source networking stack specifically designed to target small embedded devices and facilitates a modular way to select support for different networking protocols. Recently a mesh networking solution was added to the stack, enabling support for MANETs as an additional solution for embedded networking problems. In the presentation we will point out the reasoning behind this solution, explain how to use it and show a real implementation example on a physical network.</p><p>Introduction:
In a world where even the smallest electronic devices have the ability to acquire huge amounts of data which is only relevant when it can be shared to other instances. The demand to make them interconnected is exponentially growing. While the on-board resources of these small and cheap sensor devices/nodes are growing, it has become possible to tackle such networking requirements. The possibilities of a network, consisting of such nodes, which is self configuring and highly adaptable in topology instantly become endless(see Mobile Ad Hoc Networks a.k.a. MANET). Because every node should act independent from one another and it's not mandatory for two nodes in the network to have direct Line Of Sight(LOS) connection, ad hoc wireless networks can't rely on a centralized gateway to configure and manage the network traffic. The traditional wireless networking/routing protocols are not able to comply to these needs, so another approach was required to be designed.</p>
<p>MANET routing Challenges:
The requirements of a simple MANET on sensor nodes is by itself quite complex due to their dynamic nature. Depending on the requirements of the application it can be useful to make network topology discovered proactive or reactive. In other words one could ask the question, does a node need to have the route to his destination available when transmitting a message or can it be obtained on the fly? This naturally creates a higher latency than when a route is proactively defined and stored. This would be the case in a table driven approach which regularly exchanges topology info. In contrast, it's obvious that reactive routing protocols will respond faster on topology changes than protocols that are relying on their legacy proactive routing tables. And then there is chance to flood the network! What if for every packet sent over the network, information about the topology has to be obtained as is the case with reactive routing protocols. This will intensively decrease the throughput of the mesh network.
So, a lot of open questions need to be answered in order to optimize mesh networking on sensor nodes. So the brains of routing protocol designers started grinding to concur these challenges! As a result several RFC's on routing protocols have been designed during the last years. Two examples worth mentioning are "Optimized Link State Routing"(OLSR) and "Ad hoc On-Demand Vector routing"(AODV). These are respectively proactive and reactive routing protocols.</p>
<p>MAC and PHY:
One should always keep in mind that in networking context the software solutions are constrained by the hardware they are targeting. There are several PHY and MAC layer possibilities of which the following two are frequently used in the mesh networking field. First we have the IEEE802.11 collection of standards which is also known as wifi, and mostly focused on high data rates. Second there is the IEEE802.15.4 standard which is the basis for Zigbee, 6LoWPAN, etc. The latter focuses more on low power devices. Depending on the needs of the application or the compliance required, the one can be preferred above the other.</p>
<p>Routing Protocol:
Because picoTCP already supports IPv4 (more info at www.picotcp.com), the step towards developing a mesh networking solution was obvious. So the next problem was to select the best fitting protocol to our current stack implementation and mesh networking goals. Since we take RFC compliance very serious which implies that for IPv4 all devices should be able to handle a minimal datagram size of 576 bytes, the best wireless standard for IPv4 will be the 802.11 standard(wifi). Since this standard is mostly focused on high data rates, the focus went to protocols that provide high throughput and low latency behavior. From all these restrictions we came to the OLSR protocol as best fitting solution.</p>
<p>OLSR or Optimized Link State Routing protocol is a proactive routing protocol that uses 4 types of OLSR messages to establish the link state routing tables for every node. Every OLSR supporting node will send "HELLO" messages to its neighbors to find his one hop neighbors and two hop neighbors from the responses. The router between a two hop neighbor, or multipoint relay(MPR), is to be selected by each node and added to his MPR-selector set. Only the nodes selected as MPR are responsible to send "Topology Control" (TC) messages that contain a set of links to at least all nodes in his MPR-selector set. Network flooding is optimized, because only MPRs are sending TC messages and they are using their MPRs to broadcast the towards the reset of the network, hence the Optimization in OLSR. The third type of messages are the "Multiple Interface Declaration" (MID) messages, used to transmit information about its interfaces if the node has more than one. The last message type, used in OLSR, are the "Host and Network Association" (HNA) messages, which enable the ability to inject external routing information into the MANET.</p>
<p>Slot:
This was a summary about how picoTCP supports mesh networking, and why picoTCP has preferred OLSR as mesh routing protocol. In the presentation we will go deeper into how to use picoTCP and the several ways we simulate mesh network behavior(including a custom created Geomesh simulator and the Contiki Cooja simulator). To finalize, the results of a real life implementation on the physical Wilab-t mesh network, located at Ghent University will also be explained.</p>Brecht Van Cauwenberghe
FOSDEM 2015 Video
10:0000:30AW1.124qucs_overviewQucs: overview, status and roadmapdevroom<p>This talk presents Qucs (Quite Universal Circuit Simulator) features, the current status of development and the project roadmap.</p>
<p>Qucs is an integrated circuit simulator. The graphical user interface (GUI) is used for schematic capture and visualization of simulation results. It can simulate the large-signal, small-signal and noise behavior of the circuit. The software aims to support all kinds of circuit simulation types such as DC, AC, transient, S-parameter, noise analysis, harmonic balance analysis. Digital simulation and circuit optimization are integrated into the GUI and powered by other open-source tools (Icarus-Verilog, freeHDL, ASCO). Besides the library of components it also includes tools for the design of active and passive filters, transmission lines, attenuators and matching circuits. Interfaces for Matlab/Octave and Python are also available.</p>
<p>The talk will provide an overview of the features and available tools along with a selection of examples. It will present the latest developments including: migration towards the latest Qt framework; new features related to the “turn-key” Verilog-A (ADMS) model compiler as well as support for other simulation engines (ngspice). The project goals are ambitious. This talk aims at presenting what Qucs can offer as well as tease the audience into thinking what is achievable with the open-source EDA tools available today.</p>Guilherme Brondani Torri
FOSDEM 2015 Video
10:3500:30AW1.124ngspiceThe NGSPICE circuit simulatorAn open platform for simulation and modellingdevroom<p>Ngspice project started in 1999 from the latest implementation of of Berkeley's SPICE3 release. In more than a decade of development it has fixed and upgraded it. Parallel execution of device code has been implemented to reduce simulation time for transient analysis. Two implementations are available: using OpenMP and CUDA. The KLU solver has been implemented to reduce simulation time of large circuits. Verilog-A models can be included at compile time using the ADMS model compiler. This presentation will show an overview on the simulator status focusing on the major improvements over the original SPICE3 code.</p>Paolo Nenzi
FOSDEM 2015 Video
11:1000:15AW1.124compact_spice_modelingFOSS CAD for Compact/SPICE Modelingdevroom<p>Compact/SPICE models of circuit elements (passive, active, MEMS, RF) are essential to enable advanced IC design using nanoscaled semiconductor technologies. Compact/SPICE models are also a communication means between the semiconductor foundries and the IC design teams to share and exchange all engineering and design information. To explore all related interactions, we are discussing selected FOSS CAD tools along complete technology/design tool chain from nanascaled technology processes; thru the compact modeling; to advanced IC transistor level design support. New technology and device development will be illustrated by application examples of the FOSS TCAD tools: Cogenda TCAD and DEVSIM. Compact modeling will be highlighted by review topics related to its parameter extraction and standardization of the experimental and measurement data exchange formats. Finally, we will present two FOSS CAD simulation and design tools: ngspice and Qucs. Application and use of these tools for advanced IC design (e.g. analog/RF IC applications) directly depends the quality of the compact models implementations in these tools as well as reliability of extracted models and generated libraries/PDKs. Discussing new model implementation into the FOSS CAD tools (ngspice and Qucs as well as others) we will also address an open question of the compact/SPICE model Verilog-A standardization. We hope that this presentation will be useful to all the researchers and engineers actively involved in the developing compact/SPICE models as well as designing the integrated circuits in particular at the transistor level and then trigger further discussion on the compact/SPICE model Verilog-A standardization and development supporting FOSS CAD tools.</p><p>FOSS CAD for Compact/SPICE Modeling
W.Grabinski and D.Tomaszewski</p>Wladek Grabinski
FOSS CAD Session at MOS-AK/Berkeley
BOOK: FOSS CAD for compact modeling
FOSDEM 2015 Video
11:3000:25AW1.124analog_sim_panelPanel Discussion on Analog Simulationdevroom<p>A panel discussion covering subjects related to analog circuit simulation tools. Future Verilog-A efforts will be covered. Panel members include all speakers from the analog simulation session immediately preceding the panel discussion.</p>Paolo NenziGuilherme Brondani TorriWladek GrabinskiFrancesco Lannutti12:0000:30AW1.124ghdlGHDL: a libre VHDL simulatordevroom<p>Short presentation of GHDL, followed by a discussion.</p>
<p>GHDL is a libre VHDL simulator. It compiles a design using the gcc or llvm backend. GHDL fully implements VHDL-87, VHDL-93, VHDL-02 and partially VHDL-08.</p>Tristan Gingold
FOSDEM 2015 Video
12:3500:15AW1.124icarus_vhdlAdding VHDL support to Icarus Verilogdevroom<p>Have you ever wondered how simulators perform their tasks? Are you
looking for a FOSS replacement for your proprietary simulator?</p>
<p>Icarus Verilog is a part of gEDA project. It is mostly known as a FOSS
hardware description language simulator, although its capabilities
reach beyond that. The name indicates it is a Verilog simulator, many
features of SystemVerilog are already implemented and VHDL makes its
way there.</p>
<p>If you want to hear about what else you can achieve with Icarus, how
its internal gears are running, or possible ways to extend its
functionality - feel invited.</p>Maciej Sumiński
Icarus Verilog official website
FOSDEM 2015 Video
12:5500:15AW1.124ohr_fpgaHigh-Level Open/Free FPGA development tools from OHR.From production grade HDL synthesis/simulation automation to graphical DSP and beyonddevroom<p>FPGA features and resources had dramatically increased in the last years. State-of-the-art devices are now too complex to be tackled by a single individual by using standard HDL tools.</p>
<p>The OHR community hosts and maintains a set of Free/Open high-level FPGA development tools that aims both to increase productivity and to empower resource and knowledge sharing.</p>
<p>This tutorial provides a short introduction & demo for two of the main HDL tools at OHR (HDLMake and Libre-FDATool) and finally introduces some of the hottest trends in high-level FPGA design tools.</p><p>This tutorial consist in three different blocks, one for each of the featured tools and a final one is left for conclusion and Q&A.</p>
<h1>Featured Tools:</h1>
<h2>HDLMake:</h2>
<p>Hdlmake generates multi-purpose makefiles for HDL projects management. It supports local and remote synthesis, simulation, fetching module dependencies from repositories, creating project for multiple FPGA toolchains... All of this can be done with a makefile command or with Hdlmake directly. It supports modularity, scalability, use of revision control systems and code reuse. Hdlmake is free, open and distributed under the GPL license.</p>
<h2>Libre-FDATool:</h2>
<p>Libre-FDATool is a Python package aimed at helping in the analysis and design of HDL filters from high-level specifications. This Free/Libre Open Source software supports both VHDL and Verilog code generation and relies on a collection of Free scientific and EDA tools for providing advanced features -- simulation, graphics, debugging, etc.</p>
<h1>Conclusions / Beyond HLS:</h1>
<ul>
<li>State-of-the-Art: new All-programmable SoCs, HLS (High-Level Synthesis) tools for FPGA, HW code accelerators...</li>
<li>Operating System and HDL as a whole. The gateware part of an hybrid CPU+FPGA system can be handled by the Operating System just as a standard dynamic library. Proof of concept: "meta-spec", Yocto Project support for OHR SPEC (Simple PCI Express FMC Carrier).</li>
</ul>
Javier D. Garcia-Lasheras
HDLMake wiki
Libre-FDATool wiki
Yocto Project support for SPEC
FOSDEM 2015 Video
13:1500:15AW1.124bambuSynthesizing gateware with GCCBambu: A Free Framework for the High-Level Synthesis of Complex Applicationsdevroom<p>Programmable devices such as FPGAs can potentially offer very significant computational power, but implementing efficient solutions on them can be a hard task. One
of the main obstacles is the usage of hardware description language (HDL), whose knowledge is usually a rare expertise.
To overcome or at least to mitigate this issue, High Level Synthesis (HLS) has been introduced: a (semi)-automatic design flow, potentially composed of several methodologies, that
starting from a high level representation of the specification to be implemented (e.g., from its C/C++ source code implementation) produces its hardware implementation.
This talk presents Bambu a free HLS tools based on GCC developed at Politecnico di Milano, that generated synthesizable HDL description starting from ANSI specifications.</p><p>Programmable devices such as FPGAs can potentially offer very significant computational power, but implementing efficient solutions on them can be a hard task. One
of the main obstacles is the usage of hardware description language (HDL), whose knowledge is usually a rare expertise.
To overcome or at least to mitigate this issue, High Level Synthesis (HLS) has been introduced: a (semi)-automatic design flow, potentially composed of several methodologies, that
starting from a high level representation of the specification to be implemented (e.g., from its C/C++ source code implementation) produces its hardware implementation.
This talk presents Bambu a free HLS tools based on GCC developed at Politecnico di Milano, that generated synthesizable HDL description starting from ANSI specifications.
In particular, Bambu receives as input a behavioral description of the algorithm, written in ANSI C language, and generates a Verilog description of the corresponding RTL implementation as output, along with a test-bench for the simulation and validation of the behavior. This HDL description is then compatible with commercial RTL synthesis tools.
Bambu has a compiler-based interface interacting with the GNU Compiler Collection (GCC) (version 4.5, 4.6, 4.7, 4.8 and 4.9 are currently supported) and builds the internal representation in Static Single Assignment form of the initial C code.
Floating point operations are supported through FloPoCo (http://flopoco.gforge.inria.fr/), a generator of arithmetic Floating-Point Cores or through directly synthesis of a softfloat based C description.
Bambu provides the automatic generation of synthesis and simulation scripts based on XML configuration. This feature allows the automatic characterization of the resource library, providing technology-aware details during the High-Level Synthesis. The tools for RTL-synthesis currently supported are: Xilinx ISE, Xilinx VIVADO, Altera Quartus and Lattice Diamond; and simulation tools: Mentor Modelsim, Xilinx ISIM, Xilinx XSIM, Verilog Icarus and Verilator.</p>Fabrizio Ferrandi
PandA project website
PandA project hosted at Open Hardware Repository
FOSDEM 2015 Video
13:3500:25AW1.124digital_design_panelPanel Discussion on Digital Designdevroom<p>A panel discussion on topics related to digital design and simulation.</p>Tristan GingoldFabrizio FerrandiMaciej SumińskiJavier D. Garcia-LasherasTomasz Wlostowski14:0500:30AW1.124geda_pcbAn introduction to the gEDA / PCB projectdevroom<p>An introduction to the gEDA and PCB projects, their background, history, current status and future plans.</p>
<p>Will likely include anecdotes from the point of view of myself, as a (now mostly inactive) core developer on both projects, and my thoughts on where open source EDA tools need to head in order to remain relevant in a world where "free", but closed commercial tools becoming ever more prevalent.</p><p>The aim of this talk would be to introduce the gEDA (and associated) projects, how its loosely structured suite of tools can fit together to form diverse EDA workflows, with some anecdotes from my point of view as both from a developer, and user of this software.</p>
<p>The design philosophy behind the suite will be presented, along with discussion on how its modular (or fragmented?), yet flexible design has in the past created problems for those seeking to improve our user-experience for those who desire a more integrated work-flow.</p>
<p>I will present a section on where I see the common challenges of open-source EDA, and where I see opportunities for collaboration to further common goals in this area.</p>
<p>There may be a live demonstration of the tools in action, although at this stage I have not planned exactly what form that might take.</p>Peter Clifton
FOSDEM 2015 Video
14:4000:30AW1.124kicadKiCad EDAWhere we've been, where we are, and where we hope to go.devroom<p>A brief look at the past, present, and future of the KiCad project. The discussion will be primarily on what near and long term future development is planned for the project as well as discussing the potential for collaboration with other EDA projects.</p>Wayne Stambaugh
FOSDEM 2015 Video
15:1500:15AW1.124one_click_bom1clickBOMA browser extension to quickly add electronic components to shopping cartsdevroom<p>1clickBOM is a browser extension that allows you to simple paste from spreadsheets or visit an online BOM and then quickly add those components to shopping carts. It takes the tedium out of shopping for electronic projects online without locking you into one vendor. This presentation is a short introduction to 1clickBOM and a discussion of the design decisions taken in making it.</p>Kaspar Emanuel
Project website
Slides
FOSDEM 2015 Video
15:3500:15AW1.124pcb_routingInteractive routing algorithms in modern PCB design toolsdevroom<p>Interactive (a.k.a. push and shove) routing is a key feature of advanced PCB design software, greatly reducing the time it takes to design and modify the board.
There is however no literature on the subject available. The presentation will focus on the internals of the router implemented by CERN for the Kicad PCB editor:
- efficient routing geometry storage and obstacle detection,
- shove & hug algorithm based on octagonal primitives and force propagation,
- optimization and trace smoothing techniques,
- length tuning and differential pair routing.</p>Tomasz Wlostowski
CERN Kicad project page
FOSDEM 2015 Video
15:5500:15AW1.124cad_3d3D modelling, CAD, and its relevance to PCB designdevroom<p>A talk on the utility of 3D modelling to PCB design, and a brief review of where open-source tools currently stand compared to commercial offerings. Having introduced the ideas, and why we may desire to add 3D functionality to our software tools, I will attempt to give a very brief introduction to solid modelling (3D CAD), and compare the requirements for rendering graphics vs. working with engineering models. I would aim to touch upon the subjects of BREP models (vs. surface models), and interchange formats such as STEP (AP203 / AP214), and their complexity.</p>Peter Clifton
FOSDEM 2015 Video
16:1500:15AW1.124edacoreedacore: Less work for everybodyCrowdsourced parameterized parts librarydevroom<p>Each EDA tool currently has its own parts library, even(!) the open source EDA packages. This lack of reuse is not very efficient, and certainly not state-of-the-art when compared to the collaboration and cooperation taking place in the source code.</p>
<p>Let's fix that - I would like to start the edacore project with the aim to fulfill the part library needs of not only open source EDA packages, but ideally all of the industry. Sounds ambitious? You bet. Maybe it'll actually work out in the end.</p><p>The purpose of this event is to quickly introduce the fairly simple project idea and then to gather collaborators who care about creating a universal parts library, flexible enough to work for almost every use case, and finally to do a bit of brainstorming around what the edacore data model must take into account.</p>
<p>At least one representative with a major semiconductor vendor has already expressed interest in populating edacore using their in-house data. I imagine that other vendors would also be interested. Anything that helps sell chips is good, and perhaps we can have dialogue such that providing information will be very easy for as many vendors as possible.</p>
<p>The project might turn out a total flop, but we will not know unless we try...</p>Peter Stuge
FOSDEM 2015 Video
16:3500:25AW1.124pcb_tools_panelPanel discussion on PCB design toolsdevroom<p>Panel discussion on PCB design tools.</p>Peter StugeKaspar EmanuelWayne StambaughPeter CliftonTomasz Wlostowski09:0000:15AW1.125sdrintroSDR Track: IntroductionWords of welcome, and a brief introduction of our schedule.devroom<p>Our opening talk for the SDR devroom.</p><p>To highlight our agenda and introduce the steering committee.</p>09:1501:00AW1.125gnuradioIntroduction to Using GNU Radiodevroom<p>GNU Radio is an expansive ecosystem of libraries, hardware interfaces, third-party applications, and community members of all types. With all of these parts, we know it's difficult to understand where to begin. In this lecture, I will provide an overview of the ecosystem and walk through a set of examples that use GNU Radio to explore the wireless space.</p><p>Given the huge range of capabilities, available tools, library of third-party applications, and size of the community, this lecture covers a basic introduction to GNU Radio. We will explore, through some historical context, the use of GNU Radio to build some simple applications. Although simple, a key to using GNU Radio is through exploration of the tools and available features, and so the introductory material is meant to overcome the basic difficulties of just getting to know what GNU Radio is and what it can do. With this knowledge that provides an exposure to the library, webpages, tools, and community, we think that other users can continue to explore the space of capabilities and applications for much more advanced features.</p>Tom Rondeau
FOSDEM 2015 Video
10:1500:15AW1.125sdr_rds_tmcFirst Steps in Receiving Digital Information with RDS/TMCdevroom<p>The Radio Data System (RDS) is a digital subcarrier on ordinary FM radio broadcasts that is used to convey a bunch of information including station name, time, alternate frequencies, and optionally traffic information with the Traffic Message Channel (TMC) protocol.
Given its ubiquity, narrow bandwidth demands, and frequency band, RDS might be a good first digital project for SDR newcomers, extending the 'Hello World' of SDR, i.e., the FM receiver.
RDS can be received with very cheap hardware like the RTL-SDR and simple antennas making the technology accessible for everybody.</p>
<p>In this talk, I will give a short introduction in RDS / TMC and present the current state of the GNU Radio RDS project.
Besides the receiving part, we will also have a brief look in the transmit side that allows you to create your own small radio station including RDS and TMC messages.
The information is hopefully just enough to whet your appetite and helps to get you started.</p>Bastian Bloessl
Receiver Demo
Blog Post about RDS Updates
HAK5 Episode covering RDS
Github Project Page
Wikipedia Page
FOSDEM 2015 Video
10:3000:30AW1.125iot_sdrInternet of #allthethingsUsing GNURadio Companion to Interact with an IEEE 802.15.4 Networkdevroom<p>The purpose of this talk is to demonstrate and explain how to use and modify GNURadio and GNU Radio Companion to interact with consumer devices on an IEEE 802.15.4 network. Accompanying the talk will be slides documenting the hardware, software, and network architectures for the demonstration, with specific attention to GNU Radio hacking and rapid prototyping of software to interface with most commercially available SDRs.</p><p>This was a big year for the Internet of Things. Both Apple and Google announced their venture into the Home Automation consumer market. Having reliable and extensible tools to interact with the IEEE 802.15.4 spectrum is incredibly important for developers and engineers of wireless products, as well as for security researchers.</p>
<p>Using off-the-shelf SDR equipment (e.g. the USRP B200 from Ettus Research), as well as off-the-shelf Home Automation hardware and software, developers can easily interact with an IEEE 802.15.4 network and do everything from pretending to be a light bulb to packet sniffing and network management.</p>
<p>This talk will go over some of the challenges encountered in designing such a node with the help of GNU Radio, GNU Radio Companion, and freely available 802.15.4 code.</p>Chris Friedt
FOSDEM 2015 Video
11:0000:30AW1.125so_sdr_much_dspRapid GNU Radio GPU Algorithm Prototyping from Pythonwith gr-theano, gr-channels, and friendsdevroom<p>Theano is an exciting relatively new open source library which was developed by the machine learning community to accelerate the training of Deep Neural networks and other mathematical algorithms built on scipy by generating compiled kernels for the CPU and the GPU using the CUDA compiler and simple python algorithm definitions. Since GNU Radio provides native python blocks which execute work functions directly on scipy-style input and output vectors joining these two technologies is a magical approach which allows for the extremely rapid definition of work block mathematical kernels, and the automated compilation and offload onto massively parallel graphics processing unit hardware. By using this approach we will demonstrate how some highly concurrent and computationally expensive algorithms can be implemented extremely concisely and executed efficiently using graphics processors to accelerate GNU Radio channel models and other blocks with minimal effort.
For more information on Theano see: http://www.iro.umontreal.ca/~lisa/pointeurs/theano_scipy2010.pdf and http://arxiv.org/pdf/1211.5590.pdf</p>Tim O’Shea
FOSDEM 2015 Video
11:3000:30AW1.125spectrumsharingSpectrum sharing applications with GNURadiodevroom<p>There are various cognitive radio models in literature which enable unlicensed users to exploit under-utilized licensed spectrum. This talk will explain the spectrum exploitation problem, some insight to the state of the art solutions keeping SDR implementations in mind. The presentation will also cover some of the practical interference learning schemes and how they can be used in these spectrum sharing scenarios.</p>Sreeraj Rajendran
FOSDEM 2015 Video
12:0000:30AW1.125sdr_arithmeticArithmetic based implementation of a quadrature FM DemodulatorSDR in GnuRadiodevroom<p>One of the key component in many GnuRadio projects is the quadrature frequency demodulator.
This functionality allows to calculate the real analog output of a frequency modulated signal from
the IQ-signal, which is mainly captured using HF hardware (e.g. dvb-t dongle, USRP, etc.) by a
carrier frequency (band pass domain) and transform it to the base band domain. The most known
implementations of the FM-demodulator are based on trigonometric functions. These functions
require a high computation effort. Some implementation of “tuned” trigonometric function, which
were downsized for FM-demodulation reduce the computation effort a little.
A new proposal of a so called arithmetic FM-Demodulator allows to avoid completely the usage of
any trigonometric function and speed up the computation process in many times.
In the presentation I will introduce mathematical background for the arithmetic FM-Demodulator,
show the differences and limitations to the current implementation in GnuRadio Version.
Further Philipp will present our result, we had achieved in our lab.</p>Denis Bederov
FOSDEM 2015 Video
12:3000:30AW1.125viterbiViterbi's little HelperCoprocessor strategies for Forward Error Correctiondevroom<p>Forward Error Correction (FEC) is a vital part of every communication scheme. Convolutional Error Codes can provide the protection of the data to drive the communication system close to the Shannon Limit. But due to the complexity of the decoders, it is challenging to implement these algorithms in software for use in software defined radios (SDR). Available coprocessors, such as graphic processor units (GPU) and single instruction multiple data architectures (SIMD) can dramatically enhance the throughput of such software based receivers. Strategies to start implementing Viterbi- and Maximum A Posteriori (MAP) Decoders on these coprocessors are presented in this talk. Potential tripping hazards are identified. The effects on the throughput of these algorithms are analyzed and shown.</p><p>Convolutional Codes have been known for a long time. Viterbi established his algorithm to decode convolutional encoded data in the year 1967 [1]. SDR has also been established since the late 90’s and early 00’s. But still the implementation of convolutional decoders, such as the Viterbi- or MAP-algorithm, in software has always been a problem. Both algorithms rely on a Hidden Markoff Model as the encoder is simply a Mealy Machine. So if one surveys every possible state transition caused by a bit stream, a trellis structure is created. For every encoded information bit you have to consider all possible transitions from one state to another [1][2]. This leads to a high complexity and implementations of these algorithms suffer from a heavy computational burden.</p>
<p>The Viterbi Algorithm tries to relax these conditions by applying a dynamic programming approach to the trellis structure [3]. In this approach only the strongest path survives to reduce the overhead generated by analyzing all possible paths through the trellis. Still the computational effort is very high.</p>
<p>Up until now the technology used in SDRs has not been able to handle the computational burden of these algorithms. Implementations generally have suffered from a low throughput that was not suitable for state of the art communication systems (i.e. 3GPPP LTE or WLAN). Therefor these systems still used fixed hardware chips, such as ASICs, to manage the high throughput that these systems require.</p>
<p>With the increasing clock rates of General Purpose Processors (GPP) and the higher density of units inside the architecture, implementing these algorithms is starting to become more feasible. Especially additional architectural features such as SIMD architectures and multiple processor cores on one chip have gained increasing importance when implementing digital signal processing algorithms in software [4].</p>
<p>Another interesting field is the use of coprocessors found in common computers. In most cases this is going to be a GPU. GPU vendors also provide libraries and software development kits (SDK) to use the GPU for general computations and signal processing [5]. This specialized processors and libraries can be efficiently used to accelerate algorithms that can be massively parallelized.</p>
<p>This talk will cover implementation constraints that occur when implementing FEC and DSP algorithms on SIMD processors and GPUs. It will highlight some of the tripping hazard that newcomers have to avoid when trying to make an efficient use of these coprocessors. Exemplary cases for both architectures are analyzed to show, how the proper use of these architectures enhances a software defined communication system.</p>
<p>REFERENCES
[1] A. Viterbi, “Error bounds for convolutional codes and an asymptotically
optimum decoding algorithm,” Information Theory, IEEE Transactions
on, vol. 13, no. 2, pp. 260–269, April 1967.</p>
<p>[2] L. Hanzo, T. H. Liew, and B. L. Yeap, Turbo Coding, Turbo Equalisation
and Space-Time Coding for Transmission over Wireless Channels.
Wiley, 2002.</p>
<p>[3] J. Forney, G.D., “The viterbi algorithm,” Proceedings of the IEEE,
vol. 61, no. 3, pp. 268–278, March 1973.</p>
<p>[4] U. Santoni and T. Long, Signal Processing on Intel Architecture:
Performance Analysis using Intel Performance Primitives,
[Online]. Available: http://www.intel.com/content/dam/doc/whitepaper/
signal-processing-on-intel-architecture.pdf, 2014.</p>
<p>[5]NVIDIA: OpenCL Programming Guide for the CUDA Architecture, 2009. Version 2.3.</p>Jan Kraemer
Github Account with relevant Code
FOSDEM 2015 Video
13:0000:45AW1.125rfnocfosphorRFNoC: Theory and PracticeRFNoC architecture overview and its application to RTSA display accelerationdevroom<p>RFNoC (RF Network-on-Chip) is a framework that allows easy and rapid development of FPGA signal processing systems, with the same FPGA and host code to be used across multiple devices and applications.</p>
<p>Its general architecture will be presented first and then the current implementation state of a practical RFNoC block designed to accelerate RTSA-like (fosphor) spectrum visualization will be described.</p>Sylvain MunautMatt Ettus
FOSDEM 2015 Video
13:4500:30AW1.125hamsdrTo The Moon And Back. Software Defined Radio and High Power transmissions.How to do cool things and stay legal.devroom<p>Today, GNURadio enthusiasts are in the same situation as radio electronics enthusiasts about 90 years ago: Many ideas sound very promising, but international regulations and national laws prohibit extended experimenting. Radio Amateurs such as Nobel Price winner Joe Taylor (K1JT) have demonstrated that digital signal processing allows moonbounce transmissions also to the private hacker, but also many more thrilling experiments such as airplane scatter and the active use of Amateur Radio satellites. Most, however, require a little more power than those 10 dBm produced by the USRP series. This talk shows how easy it is to make use of the definitions of international Amateur Radio regulations as part of the ITU ruleset and how to get a license according to national laws - and to experiment with GNURadio -and- with high power.</p><p>In this talk I will present the technology that is necessary to transmit to the moon and back. I will show how to use Joe Taylor's WSJT suite of protocols. Based on these applications I will explain what the ITU Radio Regulations article 25 defines about private experiments and how the RR25 is implemented in national laws. I will explain in detail which privileges a license holder enjoys and how these privileges will boost the possibilities of a GNURadio hacker.</p>Markus Heller
Joe Taylor's pages
Moonbounce at Arecibo
Belgian Amateur Radio law
German Amateur Radio law
FOSDEM 2015 Video
14:1500:30AW1.125rpisdrSome Results of experiments using Raspberry Pi as a transmitter for HFdevroom<p>The focus is layed on the results of experiments with a HF-Transmitter consisting of a pure Raspberry Pi. The Pi uses a digital coding and 4-FSK-Modulation for these experiments. There are also shown some measurement results and there are given some criteria about the quality of a RaspberryPi as a transmitter. Harmonics and mixer products are discussed and ideas, how to avoid them. It is compared with some simple experiments with GnuRadio on effects of digital interpolation and mixing.
Finally some results of short wave transmission with the output power of 10 mW in WSPR-mode is shown.</p>Michael Hartje
FOSDEM 2015 Video
14:4500:30AW1.125oaiInside OpenAirInterfacedevroom<p>We provide an overview of the OpenAirInterface.org (OAI) 3GPP LTE SDR MODEM and protocol stack for x86-based systems. We focus on the objectives, some of the history of the project and its primary technical aspects. We also provide information regarding the newly created Software Foundation around OAI to encourage open-source development for 5G radio systems in conjunction with the imminent standardization phase.</p><h2>OpenAirInterface today</h2>
<p>OpenAirInterface (OAI) currently provides a standard-compliant implementation under a GNU GPLv3 license of a subset of Release 10 LTE for terminal (UE), basestation (eNodeB), and core network (EPC - MME, HSS, SGw and PGw) on standard Linux-based computing equipment (Intel x86 PC architectures). It can be used in conjunction with standard RF laboratory equipment available in many labs (i.e. National Instruments/Ettus USRP and soon PXIe platforms) in addition to custom RF hardware provided by EURECOM to implement these functions to a sufficient degree to allow for real-time interoperation with commercial devices. Some industrial users have reported working OAI-based systems integrated with commercially-deployable remote radio-head equipment and have provided demonstrations at major industrial tradeshows (Mobile World Congress Asia 2014, Mobile World Congress Barcelona in 2013, IMIC 2013). The current major industrial users of OpenAirInterface for collaborative projects are Agilent, China Mobile, IBM, Alcatel-Lucent, Thales, National Instruments and Orange. The primary future objective is to provide an open-source reference implementation which follows the 3GPP standardization process starting from Rel-13 and the evolutionary path towards 5G and that is freely-available for experimentation on commodity laboratory equipment.</p>
<p>We detail some of the inner workings of OAI, in particular SIMD optimizations for real-operation and efficient numerical simulation of radio systems as well as information regarding tools used in the development of the protocol stack. We also provide some use cases of OAI experimental research as well as some the methodologies used for proof-of-concept design (simulation, testing and deployment).</p>
<h2>A bit on the need for open-source tools for 5G cellular evolution</h2>
<p>Open-source has made a very significant impact in the extremities of current networks, namely in the terminals due to the Android ecosystem and in cloud infrastructure due, in part, to the OpenStack ecosystem. The OpenAirInterface Software Foundation aims to provide a similar ecosystem for the core (EPC) and access-network (EUTRAN) of 3GPP cellular systems with the possibility of interoperating with closed-source equipment in either portion of the network. In addition to the huge economic success of the open-source model, the Foundation will be a tremendous tool used by both industry and academia. More importantly it will ensure a much-needed communication mechanism between the two in order to bring academia closer to complex real-world systems which are controlled by major industrial players in the wireless industry. In the context of the evolutionary path towards 5G, there is clearly the need for open-source tools to ensure a common R&D and prototyping framework for rapid proof-of-concept designs.</p>
<h2>About the Foundation</h2>
<p>The Foundation is a non-profit organization ("Fonds de Dotation") founded by EURECOM, a world-renowned research institute in telecommunications and creator of OAI. EURECOM has been encouraged by the European Commission to extend OpenAirInterface to help in the definition of 5G systems. To this end, the Foundation will help drive innovation in 5G by following the standard as it is being drafted and, through quick interaction with 3GPP, will leverage the crowdsourcing effect both from industrial and academic users. It strives to make OpenAirInterface become the de facto reference implementation for new 3GPP standards through its open-source policy starting from Release 13 LTE. The resulting development can be used in both publicly-funded collaborative projects as well as industry-driven initiatives aiming to demonstrate 5G features at the earliest possible stage. Moreover, the results can be replicated in several locations independently through the combination of open-source and commodity hardware. This then becomes a truly distributed experimental facility with a very large number of potential contributors.</p>Raymond Knopp
FOSDEM 2015 Video
15:1500:30AW1.125oss_lteOpen Source LTEEPCs and eNodeBs and UEs oh mydevroomPaul Sutton
FOSDEM 2015 Video
15:4500:30AW1.125iiosdrUsing the Linux IIO framework for SDRA hardware abstraction layerdevroom<p>This presentation will discuss the IIO framework in the context of Software-Defined-Radio and how it can be used as a generic and efficient transport of data to and from the hardware. It will start with a basic introduction to the IIO framework itself and than go on to discuss the SDR related bits in more detail. The presentation will cover the low-level bits and ideas of the API, the existing userspace applications and libraries up to the GNU Radio integration.</p><p>The Linux kernel Industrial IO (IIO) framework is responsible for handling sensors or converters of all kinds and variations. The framework acts as a hardware abstraction layer where kernel device drivers handle the low-level details of communicating with the hardware. A standard API is exposed from kernel- to userspace and generic requests made by userspace applications are translated into hardware specific requests by the framework and drivers. Having a standard API makes it possible for applications to discover the features of the connected hardware at runtime and to be written in a device independent way, which can greatly improves code re-usability.</p>
<p>This presentation will discuss the IIO framework in the context of Software-Defined-Radio and how it can be used as a generic and efficient transport of data to and from the hardware. It will start with a basic introduction to the IIO framework itself and than go on to discuss the SDR related bits in more detail. The presentation will cover the low-level bits and ideas of the API, the existing userspace applications and libraries up to the GNU Radio integration.</p>
<p>The presentation will conclude with a live demonstration that shows how the IIO framework can be used to efficiently stream data from a embedded FPGA SDR receiver board to GNU Radio running on a laptop for further processing.</p>
<p>The intention of the presentation is to make more people in the SDR community familiar with and knowledge about the IIO API in the hopes of further establishing IIO as a standard tool that can be used to separate hardware access from data processing. This should aid in being able to create generic hardware independent software.</p>Lars-Peter Clausen
Presentation Video Recording
FOSDEM 2015 Video
16:1500:30AW1.125xcorrThe power of cross-correlating: from GPS reception to passive RADAR using SDRdevroom<p>CDMA systems rely on encoding data streams radiated by multiple emitters on the same carrier frequency with (ideally) orthogonal codes. Recovering the signal from each emitter requires identifying the code assiociated with
each source, which hence also requires recovering the carrier to account for relative emitter/receiver motion (Doppler shift), thermal drift and oscillator bias. We demonstrate this concept with the reception of GPS signal -- a constellation of satellites orbiting 20000 km over the surface of the earth -- with 20 euro worth of equipment centered on a DVB-T receiver designed for receiving neighbouring television signals. We extend the concept to passive radar, in which a radiofrequency emitter (television, broadcast radio) signal reflected on a mobile target is used for identifying the velocity and position of the target. In this approach, no active source is needed: RADAR measurement is only a matter of correlating the direct and reflected signal, after identifying the Doppler induced frequency shift.</p>Jean-Michel Friedt
Slides of an internal presentation related to the considered topic
FOSDEM 2015 Video
09:0000:30AW1.126openingOpeningdevroom<p>Opening remarks for the Open Source Design devroom</p>Roy Scholten
Talk slides
09:3000:30AW1.126design_building_communityBuilding the Open Source Design communitydevroom<p>Design and good UX gets more and more important in open source projects. We need to work together, across projects, to deliver the best experience.</p>
<p>In the spirit of open source and sharing code, we should also share our design work. We need to gather, share ideas, exchange how we approach problems, what works and what doesn’t.</p><p>Some of the topics we should connect about and also build a body of knowledge for other projects:</p>
<ul>
<li>How to get started</li>
<li>Unique challenges in open source as designers</li>
<li>How to work together with developers</li>
<li>Building a design team</li>
<li>How to make it easy for others to get started</li>
<li>Resources: tools, blogs, websites, …</li>
</ul>
<p>And outreach we can do:</p>
<ul>
<li>Open Source conferences to attend and present at</li>
<li>Cross-invitations to conferences of other projects</li>
<li>Help projects which need design help</li>
<li>Work with universities to get students working on open source design</li>
</ul>
Jan-Christoph Borchardt
Talk slides
http://
10:1500:30AW1.126design_representativityThe Problem of RepresentativityChallenges of User Centred Work in FLOSS Projectsdevroom<p>Presenting challenges, experiences and a possible solution for problems we face in FLOSS, when we try to understand our users.</p><p>Usability or User Experience essentially is optimizing a software for users needs. To accomplish this, we need to know who the users are, what they think, do and want to achieve with our tool.</p>
<p>In Free Software projects this kind of work often is especially difficult. Our work can be distributed freely, so we do not know who or even how many people are using our product. And we usually do not have enough money to do market or customer research to fill this gaps. Finally, developers have become good to ward off anything that doesn't scratch their own itches. And without real user data, we often lack "objective" arguments to win developers to implement changes needed.</p>
<p>With this talk, I want to reflect on my experiences with user research and user driven design in different FLOSS projects, esp. KDE and LibreOffice. Based on this, I will present an idea, how tooling could possibly improve the situation. And, of course, I want your feedback on all of this!</p>Björn Balazs
Talk slides
11:0000:30AW1.126design_user_developer_chatUser-land and developer-land chatdevroom<p>Now more than ever, users clamor for software that respects their privacy and protects their security. Free software's natural advantage is that it's almost always the best option to safeguard users in a world where proprietary software so often betrays them. Users want options and we know developers want to provide them, so what are we missing?</p><p>When an alternative to a proprietary system becomes available, people don't seem to stick with it. Users arrive and things break, features that seem basic are missing, and the channels through which they might ask for help are hard to find or non-existent. They're wondering, "Who did you build this for? Why is it so annoying to use?" Meanwhile, developers put their time and energy into building technology to free their users and are left wondering, "Why aren't people just using this? It's not <em>really</em> that hard to figure out."</p>
<p>Two free software activists, one developer and one community liaison, take turns asking each other questions about their experiences and goals. All the questions about intent and process that you've been wondering about will finally be answered. At MediaGoblin, we've worked hard to keep the lines of communication between developers and users open from the beginning. This public conversation between MediaGoblin's technical founder and community liaison will replicate some of those conversations for the audience. Our back-and-forth interview will share what we have learned about how free software projects can get users to show up and, more importantly, stay.</p>Christopher Webber11:4500:30AW1.126design_accessibleAccessible Design in Open Sourcedevroom<p>Design is not simply skin deep, it interacts with deeper layers in software programs. And it is not just for people who point and click to use applications. It also affects people who cannot distinguish certain colours, who cannot use a mouse, who are confused by complex user interfaces, etc.
What can designers and developers in open source projects do to make their software more accessible? What do they need to know about people with disabilities? What tools are available to help them? What are example projects that have worked to improve accessibility?</p>Christophe Strobbe
Talk slides
12:3000:30AW1.126design_bootstrapping_user_experienceBootstrapping user experience design work in your open source projectdevroom<p>How to get started bringing user experience design practices into open source projects using Drupal as a case study.</p><p>If you want to grow the user base of your open source project, or even just want to make things simpler for your existing users, then one of the ways you can do that is by making your app easier to use. Topics that we'll discuss:</p>
<ul>
<li>Ways to make the case for the need of a good user experience</li>
<li>How to get started making good design part of your project</li>
<li>About the challenges of designing in open source</li>
<li>How to foster collaboration between designer and developer</li>
<li>What you can do to attract (more) designers to your project</li>
</ul>
<p>Since 2007 there has been a dedicated ux design team working on improving the usability and design of the Drupal content management system. Roy Scholten has been part of this effort since its beginning.</p>Roy Scholten13:1500:30AW1.126design_open_dataUI design for open datadevroom<p>Good design can increase the value of open data to the public and industry professionals. But what is open data and how can it be used? The focus of this talk is using design to aid the release of knowledge from within cultural institutions. I’ll be discussing the challenges of designing for complex UIs in general and how we can use narrative to inform and guide the user through abstract interactions.</p><p>How can design help us communicate data easily to users? Where does this stem from? What methods of design are easy for users to engage with? What should we be trying to achieve with these designs?</p>
<p>The cultural sector is a big adopter of open data and semantic web technologies. They have embraced the ideas and are weaving them into everything they do. So, who is doing what? What data sets are there available? And how have these been presented to the public.</p>
<p>Using case studies from the cultural sector, we will explore the practical challenges associated with complex UI designs. Looking at work-in-progress through to finished products we will discuss best practice, finding innovation, and the challenges of working with data sets.</p>Hollie Lubbock
Talk slides
14:0000:30AW1.126design_mobile_challengesThe challenges of open mobile designproductivity vs content consumption & vision vs design by commiteedevroom<p>Designing in the open has inherent difficulties as the danger of producing a camel always lurks. At the same time the status quo in mobile UI is consumption-oriented. These are the big challenges we face when working on Glacier UI for nemomobile and I believe they are worth talking about.</p>
<p>This talk starts with a brief introduction on ways to handle the risk of losing the vision and coherence of the design while still fostering participation, and how we are trying to do that on the nemomobile project. Being friendly and accepting proposals and at the same time keeping a grip on the focus of the design, in a project that lives exclusively on contributors' free time: compromises, solutions and ideals. A quick overview of the tools and workflow follows, and the rest of the presentation delves into the specifics of mobile OS interface design and how we try to evolve a mobile UI that enables productivity on a small screen as opposed to mere content consumption, with Glacier UI.</p>
<p>For more information on nemomobile and Glacier UI visit http://play.qwazix.com/grog/</p>Michael Demetriou
The official design blog of nemomobile
Talk slides
14:4500:30AW1.126design_libreofficeLibreOffice Design TeamWhat do we do, and how you can get involveddevroom<p>LibreOffice 4.4 has got many user interface improvements - come and hear what we have done to make it more usable & more beautiful, and how you can speed up the changes by getting involved!</p>Jan Holesovsky
Talk slides
15:3000:30AW1.126design_every_pixel_hurtsEvery pixel hurtsA quest for open UX designdevroom<p>Design is still a pretty closed process, so I started exploring ways of opening the design process, just as the coding process has been fully opened through collaboration tools, community building, pair acceptance and sharing knowledge. The design community does not have a strong collaboration history. But, since the appearance of the latest UX practices, there is an opportunity to fully open up the process, as UX is based on research and more graphic designers are moving into the UX field.</p>
<p>We already know there is a lack of UX practice in FOSS projects, so this talk is a further exploration on why such a gap exists, and a collection of ideas and tools that could (hopefully) empower both sides to put a bridge over it.</p><p>I will give an overview of some problems around implementing UX design on FOSS projects and a suggested roadmap for doing so.</p>
<p>I'll also tell my short but valuable experience contributing UX to Diaspora, the drawbacks and lessons learned in this process.</p>
<p>Last, I'm making a call for designers to join a broader community, I'm trying to build an ecosystem for open source UX, to foster designers, coders, and interested people all over the world, build tools for opening the design process and connect projects with ux teams worldwide.</p>Pablo Cúbico
Presentation slides
Ongoing work for Diaspora Foundation site.
16:1500:30AW1.126closingClosingdevroom<p>Closing remarks for the Open Source Design devroom</p>Bernard Tyers
FOSDEM 2015 Video
09:0000:15UA2.114 (Baudoux)mysql_welcomeWelcome to MySQL & Friends Devroomdevroom<p>Welcome to the MySQL & Friends Devroom</p>Frédéric Descamps09:1500:20UA2.114 (Baudoux)proxysqlProxySQL : High Availability and High Performance Proxy for MySQLdevroom<p>ProxySQL is a new proxy (currently under development) that aims to become the first open source proxy in the MySQL ecosystem able to provide HA and high performance with no changes in the application, using several built-in features and integration with clustering software.</p><p>ProxySQL is a new proxy (currently under development) that aims to become the first open source proxy in the MySQL ecosystem able to provide HA and high performance with no changes in the application, using several built-in features and integration with clustering software.
Features under development are:
- read/write split ;
- queries caching ;
- queries filtering and rewrite ;
- logging ;
- transparent reconnect ;
- connection pooling ;
- built-in key/value storage ;
- integration with clustering solution like MHA for planned and/or automatic failover;
- support for master-slave setups (MySQL replication) or multi-masters (NDB or Galera) .</p>René Cannaò09:4000:20UA2.114 (Baudoux)web_mapping_mysqlWeb mapping with MySQLAn introduction to MySQL GISdevroom<p>Web maps are everywhere these days, and there are a lot of frameworks
that can display a map. But you still have to provide the data
yourself. This talk teaches you how to use MySQL with its GIS
functions in the database back end for your maps.</p><p>MySQL GIS is getting a boost in 5.7 with InnoDB R-trees, new GIS
functions and more accurate results. This talk presents the new
functionality by leading the audience through a step by step guide to
making a simple web map service.</p>
<p>The target audience is MySQL users that want to learn the basics of
how to display their data in a map. Users that already know MySQL GIS
will learn about the new features in 5.7.</p>Norvald H. Ryeng10:0500:20UA2.114 (Baudoux)mysql_gtidUsing MySQL Global Transaction IDs in Productiondevroom<p>MySQL 5.6 introduced Global Transaction IDs to make the reconfiguration of replication straightforward. The key benefit is that you can instantly and reliably change your replication topology if a node goes down or if the current topology no longer fits your needs. But of course operating a GTID-based cluster brings new challenges: old habits no longer work, tools have changed, and new issues have appeared.</p><p>MySQL 5.6 introduced Global Transaction IDs to make the reconfiguration of replication straightforward. The key benefit is that you can instantly and reliably change your replication topology if a node goes down or if the current topology no longer fits your needs. But of course operating a GTID-based cluster brings new challenges: old habits no longer work, tools have changed, and new issues have appeared.</p>
<p>In this session, you will learn about using GTIDs in production, including:
- How to execute the daily DBA tasks related to GTID-based replication, such as monitoring replication status or recovering from replication errors
- The new options for high availability and the tools that can help you
- What can go wrong when using GTIDs</p>Stephane Combaudon10:3000:20UA2.114 (Baudoux)pseudo_gtidPseudo GTID and easy replication managementdevroom<p>Pseudo GTID and easy replication management</p>
<p>This session introduces a technique called “Pseudo GTID” which allows easy refactoring of replication topologies, and makes balanced, deeply nested topologies achievable, safe and productive.</p>
<p>Managing large replication topologies introduces difficult questions: do you place all your slaves directly under the master? Do you setup intermediate masters thus creating deep replication trees? How do you synchronize sibling slaves when their master dies? How do you recover replication of a slave if its intermediate master is gone?</p>
<p>MySQL’s Global Transaction ID (GTID) comes to solve the above. However GTID comes with its own limitations and not always or not easily applicable.</p>
<p>Pseudo GTID is a non intrusive solution that utilizes standard replication, and turns your existing replication topology into a GTID-like topology, allowing you to repoint slaves however you like.</p>
<p>We will quickly discuss the problems incurred by standard binary log file & position setup, and the limitations of GTID, Pseudo-GTID injection. We will present the algorithm and implementation for utilizing Pseudo GTID to freely repoint slaves.</p>Shlomi Noach
More about Pseudo GTID
orchestrator
10:5500:20UA2.114 (Baudoux)mysql_group_replicationZooming in on the New MySQL Group Replication Plugindevroom<p>MySQL Group Replication is a recent MySQL plugin that brings together
group communication techniques and database replication, providing
both a high availability and a multi-master update everywhere replication
solution.</p>
<p>At its core is a set of group communication primitives that act as the
building blocks to create reliable, consistent and dependable messaging
between the servers in the group. This allows the set of MySQL servers
to coordinate themselves and act as a consistent and replicated state
machine - in which transactions commit in the same order on every
server. As a consequence, the group itself is fault-tolerant, and so
is the service provided by the group - the MySQL database service.</p>
<p>In addition to HA, the plugin provides multi-master update everywhere
with row-level conflict detection. This builds on the fact that the
servers in the group have to agree on how to progress the replicated
state machine and so also check for conflicts.</p>
<p>Come and learn about the technical details of the exciting and popular
MySQL Group Replication plugin and discuss how this fits in the overall
picture of MySQL HA solutions.</p><p>MySQL Group Replication is a recent MySQL plugin that brings together
group communication techniques and database replication, providing
both a high availability and a multi-master update everywhere replication
solution.</p>
<p>At its core is a set of group communication primitives that act as the
building blocks to create reliable, consistent and dependable messaging
between the servers in the group. This allows the set of MySQL servers
to coordinate themselves and act as a consistent and replicated state
machine - in which transactions commit in the same order on every
server. As a consequence, the group itself is fault-tolerant, and so
is the service provided by the group - the MySQL database service.</p>
<p>In addition to HA, the plugin provides multi-master update everywhere
with row-level conflict detection. This builds on the fact that the
servers in the group have to agree on how to progress the replicated
state machine and so also check for conflicts.</p>
<p>Come and learn about the technical details of the exciting and popular
MySQL Group Replication plugin and discuss how this fits in the overall
picture of MySQL HA solutions.</p>Luis Soares11:2000:20UA2.114 (Baudoux)docker_and_mysqlDocker and MySQLFun and bad practicedevroom<p>15 minutes?
Be prepared to get a full 45 min. talk into 15 minutes! \o/</p>
<ul>
<li>What is Docker (Container Virtualization)</li>
<li>How to use Docker (new way to think infrastructure)</li>
<li>How to use Docker with MySQL.</li>
<li>Run Docker in production?</li>
<li>Why does Galera <em>not</em> fit into Docker.</li>
<li>Why Galera should fit into Docker.</li>
<li>Making Docker and Galera fit.</li>
</ul>
<p>Do you really expect a full description for a 15 minute talk?</p>
<p>erkan :)</p>Erkan Yanar11:4500:20UA2.114 (Baudoux)mysql_auth_plugUnderstanding & using authentication pluginsdevroom<p>In our ecosystem, we have the commercial MySQL Enterprise PAM/Active Directory plugins (which are not the focus of this talk). But we also have the PAM authentication plugin, two versions by Percona and MariaDB - find out what's different and how to use them including connecting against an LDAP service.</p>
<p>New in MariaDB 10.1 (and to be backported to 5.5, 10.0 too) will be the Kerberos authentication plugin that will also be able to work with MySQL/Percona Server.</p>
<p>Quickly learn how to integrate PAM and Kerberos plugins into your workflow.</p>Colin Charles12:1000:20UA2.114 (Baudoux)moving_to_nosqlMoving to the NoSQL side: MySQL JSON functionsdevroom<p>Data is everywhere. User comments, preferences, online games features, all that small chunks of information which clients need to communicate with its servers use JSON format now. This format can be read into an object using parser built-in in all modern clients. But what about server side? What about information which should be stored for future use? Do you still need to manually parse JSON data to be able to effectively search through? Do you still need to spend time retrieving documents, load parse library and process? Not anymore! In this session I will present set of functions which manipulate with data in JSON format inside MySQL server. These functions search, modify and validate JSON data for you.</p><p>JSON UDFs is a set of UDF functions which perform queries using JSON language. This MySQL Labs project available at http://labs.mysql.com/ Further information about JSON UDF functions exists on author's blog at https://blogs.oracle.com/svetasmirnova/tags/json</p>
<p>I presented first public version of functions last year. Since than 3 minor and 1 major releases of the functions were provided. I hardly worked on feature requests, sent by the users, implemented 4 new functions, accepted 1 contribution. In this session I will tell about the functions: what do they do, how to install them, will say few words about future plans.</p>Sveta Smirnova
Author's blog
MySQL Labs
First public version of functions
12:3500:20UA2.114 (Baudoux)undeleteUndelete rows from the binary loga hacking sessiondevroom<p>After the nice blog post of Scott Noyes, I decided to dig a bit more on the topic of undelete rows
from the binary log.</p>
<p>This is a more detailed 101 session that explain how to find all events to change and show how to
deal with that using easy python commands.</p>
<p>We will also see how to un-insert and un-update events.</p>
<p>See https://github.com/lefred/MyUndelete</p>
<p>It also covers different version of MySQL, from 5.5 to 5.6 and MariaDB.</p>Frédéric Descamps13:0000:20UA2.114 (Baudoux)multi_thread_replicationMulti-threaded replication in MySQL 5.6 and 5.7devroom<p>Replication is used everywhere with MySQL. But applying writes in a single thread is often a bottleneck: replicas have a hard time keeping up with the master that can execute writes in parallel. Enter MySQL 5.6 and you can use several threads to apply writes on replicas as long as you have several schemas. MySQL 5.7 goes even further: by introducing a logical clock and by changing the scheduling logic, you can apply writes in parallel in a single schema.</p>
<p>Come to this session to learn all you need to be comfortable with multi-threaded replication.</p><p>Replication is used everywhere with MySQL. But applying writes in a single thread is often a bottleneck: replicas have a hard time keeping up with the master that can execute writes in parallel. Enter MySQL 5.6 and you can use several threads to apply writes on replicas as long as you have several schemas. MySQL 5.7 goes even further: by introducing a logical clock and by changing the scheduling logic, you can apply writes in parallel in a single schema.</p>
<p>The result is of course a much better replication throughput, but this feature also raises a lot of questions:
- How does it work internally?
- Does it play well with GTIDs?
- How can you monitor replication status?
- How do you recover from a replication error?
- If you want to take a backup from a replica, how can you make sure you will get a consistent snapshot?</p>
<p>Come to this session to learn all you need to be comfortable with multi-threaded replication.</p>Stephane Combaudon13:2500:20UA2.114 (Baudoux)new_replication57The New MySQL Replication Features in MySQL 5.7 and Beyond devroom<p>MySQL replication is the foundation for both scalability and high
availability for many of the world’s busiest services, in particular,
those that operate at scale on the Web. In fact, some of the largest
and highest profile online applications trust their data to MySQL and
regard MySQL Replication as the key technology to ensure that data is
always available, even in the event of catastrophic disasters.</p>
<p>MySQL Replication strives to keep on meeting the ever tougher
requirements of online services so that it can be deployed together
with them in symbiotic harmony. In fact, in recent years we have
seen an exponential development in MySQL, in particular in
replication.</p>
<p>MySQL 5.6 was a major step forward, with fabulous replication
features, but the work continues and MySQL 5.7 is set to be another
ground breaking release. The next generation of replication features
are scattered over several technical areas, including: better
semi-synchronous replication; enhanced multi-threaded slave
performance; improved monitoring; online configuration changes;
options for fine tuning the replication stream performance; support
for more advanced topologies; developer friendly frameworks and much
more. This is just the tip of the iceberg. In fact, in the lab we
have more exciting news such as the MySQL Group Replication plugin,
a plugin that brings group communication techniques and database
replication together.</p>
<p>Seize the opportunity to learn about the new MySQL Replication
features' internals, the technical details and the roadmap. Come and
learn what is already there in MySQL 5.7 and what's still in the
making.</p><p>MySQL replication is the foundation for both scalability and high
availability for many of the world’s busiest services, in particular,
those that operate at scale on the Web. In fact, some of the largest
and highest profile online applications trust their data to MySQL and
regard MySQL Replication as the key technology to ensure that data is
always available, even in the event of catastrophic disasters.</p>
<p>MySQL Replication strives to keep on meeting the ever tougher
requirements of online services so that it can be deployed together
with them in symbiotic harmony. In fact, in recent years we have
seen an exponential development in MySQL, in particular in
replication.</p>
<p>MySQL 5.6 was a major step forward, with fabulous replication
features, but the work continues and MySQL 5.7 is set to be another
ground breaking release. The next generation of replication features
are scattered over several technical areas, including: better
semi-synchronous replication; enhanced multi-threaded slave
performance; improved monitoring; online configuration changes;
options for fine tuning the replication stream performance; support
for more advanced topologies; developer friendly frameworks and much
more. This is just the tip of the iceberg. In fact, in the lab we
have more exciting news such as the MySQL Group Replication plugin,
a plugin that brings group communication techniques and database
replication together.</p>
<p>Seize the opportunity to learn about the new MySQL Replication
features' internals, the technical details and the roadmap. Come and
learn what is already there in MySQL 5.7 and what's still in the
making.</p>Luis Soares13:5000:20UA2.114 (Baudoux)flexviewsMaterialized Views for MySQLUsing Flexviews for MySQLdevroom<p>Materialized Views store the results of a MySQL query in a table. When data in the database changes, Flexviews materialized views can be updated efficiently using the row change information that has been captured, instead of building the whole view again.</p><p>Materialized Views store the results of a MySQL query in a table. When data in the database changes, Flexviews materialized views can be updated efficiently using the row change information that has been captured, instead of building the whole view again. The row change information is captured using FlexCDC, a change data capture tool for MySQL. Since the contents of the view are stored in tables, indexes can be added to the views and they can be accessed in milliseconds instead of potentially minutes or hours to run the SQL statement that underlies the views.</p>
<p>Flexviews is part of Swanhart-Tools and includes both the change data capture utility, and a small SQL API for creating and maintaining the views.</p>
<p>This talk will introduce Flexviews, the SQL API and FlexCDC.</p>Justin Swanhart
FOSDEM 2015 Video
14:1500:20UA2.114 (Baudoux)mysql_charCharacter encoding: breaking and unbreaking your datadevroom<p>Character encoding configuration in MySQL has always been a bit confusing. With too many options to set, unclear relationships between them, and the default settings that make MySQL incompatible with most languages, it is a headache to many users, many of whom end up with broken data. This lecture will provide an overview of the character set support in MySQL, guidelines on how to use it correctly, and will demonstrate several methods of detecting and repairing mangled data.</p>Maciej Dobrzanski
FOSDEM 2015 Video
14:4000:20UA2.114 (Baudoux)mysql_gdbgdb tips and tricks for MySQL DBAsHow gdb can help you to solve MySQL problemsdevroom<p>From getting backtraces, SQL statements executed by threads at the moment of crash to changing some of the read only server variables on the fly... Sometimes gdb is your last resort, and few tricks from experts may help.</p><p>I'd like to show and discuss typical use cases of gdb for a production MySQL DBA. Some of them were already discussed in blog posts like the following:</p>
<p>http://www.percona.com/blog/2012/09/09/obtain-last-executed-statement-from-optimized-core-dump/
http://www.percona.com/blog/2013/11/11/how-to-extract-all-running-queries-including-the-last-executed-statement-from-a-core-file/
http://mysqlbugs.blogspot.com.au/2012/09/how-to-obtain-all-executing-queries.html
http://dom.as/2009/02/15/poor-mans-contention-profiling/
http://dom.as/2010/01/02/read-ahead/
http://dom.as/2009/07/30/evil-replication-management/
http://www.percona.com/blog/2010/03/23/too-many-connections-no-problem/
http://dom.as/2009/12/29/when-bad-things-happen/</p>
<p>and some are even well known as a separate tools, like pt-pmp. But quick review, real life use cases demonstration and discussion may help attendees to know the limitations, outcomes and benefits of attaching gdb to a (hopefully) live MySQL server as a last resort of solving some problems or getting additional useful information for further troubleshooting before restarting it.</p>Valerii Kravchuk
FOSDEM 2015 Video
15:0500:20UA2.114 (Baudoux)benchmark_r_gpplot2Visualizing benchmark data with R and gpplot2devroom<p>When I talk or write about benchmarking, a repeated question I get asked is how to make the graphs. For some of those graphs, check the links below.</p>
<p>https://archive.fosdem.org/2014/schedule/event/lepeterborosrulez/
http://www.percona.com/blog/2014/08/12/benchmarking-exflash-with-sysbench-fileio/</p>
<p>In this talk, I show how to make those graphs with R and ggplot2, and how to prepare the benchmarking data for that.</p>Peter Boros
FOSDEM 2015 Video
15:3000:20UA2.114 (Baudoux)capacity_metricsCapacity metrics in daily MySQL checksdevroom<p>How to ensure capacity for your MySQL servers? We will quickly walk through the potential issues which can affect database capacity and see how we can detect them on the early stages.</p>Vlad Fedorkov
FOSDEM 2015 Video
15:5500:20UA2.114 (Baudoux)pfs_troubleshootingPerformance Schema for MySQL Troubleshootingdevroom<p>Performance Schema in version 5.6, released in February, 2013, is really powerful tool which can help DBA to find why every trickiest issue started to occur. Version 5.7 introduces even more instruments and tables. And while all these give you great power, you can stuck choosing which instrument to use. In this session I will start from typical problems description, then guide you how to use Performance Schema to find out what causes the issue, what is the reason for wrong behavior and how information received can help you to solve particular problem.</p><p>With 552 instruments in version 5.6 and 797 in version 5.7 as well as with 52 vs 75 tables Performance Schema is really powerful tool which can help to find source of almost every problem your MySQL Server can run into. But at the same time it becomes not easy to find out which instrumentation and which table can help in each and every case. Traditionally Performance Schema sessions teach about what is in the tables. I will, in contrast, start from the issue, then show which instruments and tables can help to solve it.</p>Sveta Smirnova
Slides from similar seminar in Russia
FOSDEM 2015 Video
16:2000:20UA2.114 (Baudoux)mysql_nosqlMySQL & NoSQL - best of both worldsdevroom<p>There’s a lot of excitement around NoSQL Data Stores with the promise of simple access patterns, flexible schemas, scalability and High Availability. The downside comes in the form of losing ACID transactions, consistency, flexible queries and data integrity checks. What if you could have the best of both worlds? This session shows how MySQL Cluster provides simultaneous SQL and native NoSQL access to your data – whether a simple key-value API (Memcached), REST, JavaScript, Java or C++. You will hear how the MySQL Cluster architecture delivers in-memory real-time performance, 99.999% availability, on-line maintenance and linear, horizontal scalability through transparent auto-sharding.</p><p>There’s a lot of excitement around NoSQL Data Stores with the promise of simple access patterns, flexible schemas, scalability and High Availability. The downside comes in the form of losing ACID transactions, consistency, flexible queries and data integrity checks. What if you could have the best of both worlds? This session shows how MySQL Cluster provides simultaneous SQL and native NoSQL access to your data – whether a simple key-value API (Memcached), REST, JavaScript, Java or C++. You will hear how the MySQL Cluster architecture delivers in-memory real-time performance, 99.999% availability, on-line maintenance and linear, horizontal scalability through transparent auto-sharding.</p>
<p>Please note that this talk replaces one entitled "ENOMEM: Will databases ever stop asking for more memory" which was to have been given by Raghavendra Prabhu. Regrettably Raghu has withdrawn from the event on account of Visa appliance delay.</p>Andrew Morgan
FOSDEM 2015 Video
11:0001:45UB2.147lpi_3LPI Exam Session 3certification<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>LPI Team14:0001:45UB2.147lpi_4LPI Exam Session 4certification<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>LPI Team09:0000:25UD2.218Ahttp2_right_nowHTTP/2 right nowHow we got here, some basics, what Mozilla does and what's next!devroom<p>HTTP/2 is the new version of the web's most important and used protocol. Version 2 is due to be out very soon after FOSDEM and I want to inform the audience about what's going on with the protocol, why it matters to most web developers and users and not the last what its status is at the time of FOSDEM.</p>
<p>Daniel is employed by Mozilla and works in the httpbis group within IETF and works with several HTTP/2 implementations. He's perhaps most known as the maintainer and lead developer of curl and libcurl.</p>Daniel Stenberg
HTTP2 explained, Daniel's huge document on http2
09:3000:25UD2.218Afirefoxos_web_apisFirefox OS web API'sNew cool web apis and their impactdevroom<p>Webapi's are key to firefox app developement this talk will go through the new webapi available in release 2.0 and their impact on Firefox OS architecture. We will go deeper in Gecko and Gonk to see how new webapi can be added with new features in the Gonk/Gecko layer.</p>Loïc Cuguen
FOSDEM 2015 Video
10:0000:25UD2.218Ausing_firefox_to_debug_web_appsUsing Firefox to debug web apps on any deviceIntroducing the Firefox Developer Tools Adapterdevroom<p>Debugging mobile apps in a world of multiple platforms will always be a classic case of "write once, debug everywhere". A monoculture avoids this problem, but brings a boatload of others, so there is really no way around that. Once we come to terms with this fact however, we can start demanding more from the tools that we use to do said debugging. Do we really have to become proficient in a multitude of tools, one for each platform that we intend to deploy on? How often must we context-switch and app-switch in order to get things done?</p>
<p>The Firefox Developer Tools Adapter presents a unique approach to the aforementioned problem. In this talk we will dive into the design and implementation of the Adapter, explain why it is a valuable addition to the mobile developer's toolchest and discuss how it can be used to solve real-life problems.</p>Panagiotis Astithas
Docs on MDN
Source code
Slides
10:3000:25UD2.218Akeeping_secrets_with_javascriptKeeping secrets with JavaScriptAn Introduction to the WebCrypto APIdevroom<p>With the web slowly maturing as a platform the demand for cryptography in the browser has risen, especially in a post-Snowden era. Many of us have heard about the upcoming Web Cryptography API but at the time of writing there seem to be no good introductions available. We will take a look at the proposed W3C spec and its current state of implementation.</p>Tim Taubert
Video
Slides
FOSDEM 2015 Video
11:0000:25UD2.218Awhats_new_in_firefoxWhat's new in Firefox?devroom<p>Let's review together what happened with Firefox in 2014 and where we are headed in 2015.</p>Florian Quèze
FOSDEM 2015 Video
11:3000:25UD2.218Aparticipation_metrics_mozillaParticipation metrics at MozillaA story of systems and datadevroom<p>Community builders need data to measure growth, track volunteer contributions and measure success. Over the past year we have been pioneering the way we gather data about participation in Mozilla by defining contribution types, crafting pathways, building large scale systems, and publishing data. In this talk we will be giving the overview of the efforts so far and the way forward.</p>Pierros Papadeas
Systems and Data Working Group of Mozilla
Baloo - participation tracking system
Public dashboard of Mozilla contributors
FOSDEM 2015 Video
12:0000:25UD2.218Amaintaining_growing_technical_communityMaintaining & growing a technical communityMozilla Developer Networkdevroom<p>How do you support a diverse community, acknowledge many different voices and perspectives, be open and inclusive, and still get things done (especially when you can’t force anyone to do anything)? What motivates people to not only start contributing to a project but to continue to contribute? Why on earth would anyone, including developers, do work they are not paid for? In this session, I’ll share what I’ve learned (and keep learning) by working with, in, and for volunteer communities; including how to be more transparent, create opportunity, and broadly share ownership.</p><p>The Mozilla Developer Network is an open-source documentation wiki for web developers, which is written by really passionate, smart, and inspiring people. Most are not paid employees of Mozilla. All of them are helping make the web a better place by coding, writing, and reviewing articles.</p>
<p>How do you support a diverse community, acknowledge many different voices and perspectives, be open and inclusive, and still get things done (especially when you can’t force anyone to do anything)? What motivates people to not only start contributing to a project but to continue to contribute? Why on earth would anyone, including developers, do work they are not paid for? In this session, I’ll share what I’ve learned (and keep learning) by working with, in, and for volunteer communities; including how to be more transparent, create opportunity, and broadly share ownership.</p>Ali Spivak
FOSDEM 2015 Video
12:3000:25UD2.218Areaching_more_users_through_better_accessibilityReaching more users through better accessibilityUsing Firefox OS to test your apps for better accessibility and usability of your mobile web applicationdevroom<p>In this hands-on presentation, Marco will demonstrate how to use the screen reader built into Firefox OS and other tools to help create more usable, more accessible web applications. Such applications have a much better chance of reaching a broader audience. In addition, they will help developers to write more semantic and more maintainable code.</p><p>About 20% of the population world-wide have a disability. Disabilities include blindness or visual impairment, deaf or hard of hearing, people with motor impairments, people with dyslexia, and others. For years, there have been assistive technologies such as screen readers for the blind, magnifiers for visually impaired, subtitles or sign language captionings for videos, switches or other assistive devices for people with motor impairments, and many more to help those 20 % come onto the web and participate just as their non-disabled friends and family members do.</p>
<p>In addition, the demographic development suggests that by the year 2030, half the population in Europe, the U.S. and Canada will be age 60 and older. Those commonly called "silver surfers" will also benefit from bigger touch targets, better contrast and other usability techniques traditionally associated with accessibility, even when they do not have any disability themselves at all.</p>
<p>As mobile devices spread throughout the world, and Firefox OS sets new standards in affordability and availability in many countries that did not have access to smartphones before, it is more and more important that web applications offered on those devices are usable by the broadest range of users possible.</p>
<p>This presentation aims to provide some basic easy checks and testing techniques to help you as a developer of a mobile web application to apply good programming practices so your app can reach more users than you ever thought possible. Marco will show how you can use a Firefox OS device and Firefox itself to do these easy checks and take good techniques home to put to use straight away.</p>Marco Zehe
A brief introduction with videos to the Firefox OS screen reader
FOSDEM 2015 Video
13:0000:25UD2.218Aprivacy_features_firefox_androidPrivacy features for Firefox for AndroidSupporting privacy on the mobile web with built-in features and add-onsdevroom<p>Firefox for Android aims to give users control of their privacy on the mobile web. In addition to many built-in privacy features, Firefox also supports add-ons, which can give users even more privacy options. In this session, I'll talk about different privacy features that we've been adding to the browser, highlight a few privacy add-ons that are available, and demonstrate how easy it is to create new add-ons yourself.</p>Margaret Leibovic
FOSDEM 2015 Video
13:3000:25UD2.218Aspidermonkey_garbage_collection_updateSpiderMonkey garbage collection updatedevroom<p>An overview of the progress we've made in the last two years development on the SpiderMonkey GC implementing generational collection and starting work on compacting.</p><p>The rough outline of the talk will be:
Generational GC</p>
<pre><code>movitation: performance
the generational hypothesis
implementation details:
exact rooting
heap postbarriers
results
</code></pre>
<p> Compacting GC</p>
<pre><code>motivation: more free memory
implementation details
relocation and fixup
selecting arenas to relocate
results
</code></pre>
<p>Talk will be 20 minutes.</p>Jon Coppeard
FOSDEM 2015 Video
14:0000:25UD2.218Asuperturbocharging_firefoxos_app_developmentSuperturbocharging Firefox OS app development with node-firefoxdevroom<p>Did you know that every Gecko runtime can be debugged and controlled remotely using the Firefox DevTools remote protocol?</p>
<p>In this talk we'll look into the architecture of debuggable runtimes, how to speak protocol.js and how we're using it to build a series of node modules that together act like a WebIDE command line counterpart, but might also be incorporated into existing typical web development workflows using tools such as Gulp or Grunt. We'll also talk about the challenges that we've faced when taking this from a hack into a solid product, and some of the most promising features that this work makes possible: faster app development and filling the gaps on the Firefox OS Cordova/PhoneGap plugins.</p>Soledad Penadés
node-firefox in GitHub
FOSDEM 2015 Video
14:3000:50UD2.218Athe_future_of_javascriptThe Future of JavaScriptEcmaScript 6 and even moredevroom<p>EcmaScript 6 aka Harmony, the next version of the JavaScript language, is now feature frozen and the publication is expected around March 2015. Now is a good time to take a closer look at the new version. It brings new powerful features to the language, making it easier and nicer than ever to program with JavaScript. This includes (but isn't limited to) generators, destructuring patterns, function improvements, classes. The best thing is that you don't have to wait to try them. A lot of these new shiny language improvements are already present in Firefox. If we look a bit further down the path, preparation has already started for EcmaScript 7. The next big thing could be SIMD, Typed Objects ...</p>Benjamin BouvierHannes Verschore
FOSDEM 2015 Video
15:3000:25UD2.218Aservo_and_youServo (the parallel web browser) and YOU!A beginner's guide to contributing to Servodevroom<p>Servo is a Mozilla project with a small team and big ambitions! Learn how you can contribute to it using Rust, Python, and JavaScript, and watch a worked example of implementing a missing web technology in the browser of the future.</p>Josh Matthews
FOSDEM 2015 Video
16:0000:25UD2.218Afirefoxos_tricoderFirefox OS TricorderReading device sensor data in JavaScriptdevroom<p>The talk gives insight into how data sensors can be read from JavaScript so you can do your own apps using that data.</p>Robert Kaiser
FOSDEM 2015 Video
16:3000:25UD2.218Abuilding_html5_games_for_firefoxosBuilding open HTML5 games for Firefox OSHTML5 Game Development for the Firefox OS Mobile Platformdevroom<p>HTML5 is the future of mobile gaming because of the uniqueness of the technology - you don't need any plugins to run the games and you can play them on any device with the browser. Firefox OS is an open, mobile operating system built entirely with JavaScript - a perfect platform for HTML5 games. Join my talk if you want to learn how to build HTML5 games quickly and effectively, use the advantages of Firefox OS over the other platforms and promote, monetize and distribute your games in the wild.</p>Andrzej Mazur
My speaking experience
09:0000:10K.3.201introIntroductiondevroom<p>Introduction to Microkernels devroom</p>Vasily A. Sartakov09:1000:50K.3.201sel4seL4: Present and Futuredevroom<p>seL4, a member of the L4 family of microkernels, and the world’s highest-assured operating system kernel, has recently joined the FLOSS community. This talk will provide an overview of what seL4 is, what it can and cannot do, and where we see it heading in the future.</p><p>I will start of briefly summarising the concept of a microkernel, and the core principles which characterise the L4 microkernel family. I will then introduce the core concepts of seL4, and what distinguishes it functionally from other L4 kernels.</p>
<p>What makes seL4 really special is its formal verification. I will explain what this is, and what exactly we have proved about seL4, and discuss what this means in practice, especially as far as security, safety and reliability are concerned. I will also indicate where we are planning to take seL4, i.e. a high-level summary of our on-going research and development projects.</p>
<p>Having covered the technical aspects, I will discuss the development process of the seL4 ecosystem, both past and present. I will specifically discuss the licensing status of various bits of this ecosystem, and how it is likely to develop. In particular I will indicate suggest the best way for the community to contribute to this ecosystem, and help develop it to the benefit of us all.</p>
<p>NOTE: Lecture will be provided via Skype</p>Gernot Heiser
sel4
10:0001:00K.3.201toroA dedicated kernel named TOROdevroom<p>In systems with high-grade multiprocessing, we have identified two bottlenecks: in the accessing of the memory bus and in the shared resources. To deal with these issues, we propose a dedicated kernel named TORO that is optimized to run a single multi-threading application. TORO is demonstrating an innovative operating system by integrating at the same ring level both kernel and the user application server. In addition, the accessing to resources (e.g., Filesystem, Networking, Memory) is dedicated to specific processor. Then, only the CPU where is dedicated the resource is allowed to access to the instance
of the resource. As a result of this design, the kernel provides direct access to all resources without any overhead, and therefore maximizes
performance for the overall system. To sum-up the approach, in TORO, the threads of the user application server are distributed evenly on all CPUs and running independently in parallel. The memory model chosen is NUMA without pagination. During the initialization, the memory is divided proportionally for each processor installed on the system. When a thread needs memory, the memory allocator returns a free block of memory depending on which CPU the thread is running. In the same way, TORO can dedicate resources to specific processor, i.e., a FileSystem. This only CPU then can access to
this instance of FileSystem. The scheduler is based on the cooperative threading model, therefore due to this design, TORO can migrate threads
between CPUs and send messages between threads without using any lock instruction.</p><p>I am Matias Vara (http://www-sop.inria.fr/members/Matias.Vara_Larsen/), founder and main developer of TORO (http://sourceforge.net/projects/toro/, http://torokerneleng.blogspot.com/) since 2006. Currently, I am doing a PhD in Computer Science at INRIA, Nice, France.
FOSDEM is a very good place to discuss general purpose operating systems vs. dedicated operative systems. This discussion can be motivated by showing the characteristics of TORO by highlighting the main differences with a general purpose OS. The talk will take around 25 minutes.</p>Matias Vara
Main site of TORO project
TORO in sourceforge
Personal page of Matias Vara
11:0000:30K.3.201flkThe FLK projectSecurity by the language, no MMU, no processesdevroom<p>EIFFEL the language and SCOOP(*) allow the creation of a kernel without neither MMU nor processes but secured.</p>
<p>The removal of MMU and processes improves the switching time of contexts and minimize the memory cost of concurrency. The kernel provides unlimited concurrency and native synchronisation/acquiring of multiple resources.</p>
<p>The security is primarily given through EIFFEL's exports at the API level and is enforced by tightly coupling the kernel and the compiler. The low-level unsafe API are available only available to the kernel.</p>
<p>(*) SCOOP: Simple Concurrent Object-Oriented Programming</p><p>The common state of the art is focused on POSIX implementation: C programming, processes, threads, mutexes, etc... But this has some issues: one stack per thread with strong separation of processes made by the use of MMU.</p>
<p>By changing the language, this concepts are becoming obsoletes and the issues disappearing. But the security remains and even more is enforceable at an API level.</p>
<p>SCOOP, the Simple Concurrent Object-Oriented Programming, is expressing the concurrency inside the language (without need of IPC or IDL) by linking (sub)systems to abstract processors.</p>
<p>Each of the SCOOP abstract processor has its own isolated memory. The FLK (http://flhq.org) implementation ensures the isolation of the memory at the language level. This done, no MMU is no more needed. Yes, the memory is managed by the kernel, but using only one common addressing space, a flat model.</p>
<p>SCOOP provides the model of synchronizing multiple resources. This synchronisation is native and is made using Rhee's algorithm that can be distributed. Having this avoid any need of mutexes, semaphores.</p>
<p>Conversely, this model tends to multiply the count of abstract processor in a way that can not be implemented using threads because of their weight. But it allows to change the underlying mechanism. Abstract processors are not executed within a private context/stack but on the current execution context that crosses processors.</p>
<p>New security behaviours tends to include security at the API level. The coupling of the compiler with the kernel allow to enforce this behaviour at compile time, installation time and (if very paranoiac) at runtime.</p>José Bollo
Overview of SCOOP
Documentation on eiffel
Rhee algorithm multiple resource allocation
Site of the project
FOSDEM 2015 Video
11:3001:00K.3.201hurdAlong the GNU Hurd RPC wayA starting guide to contributing to the GNU Hurddevroom<p>It is not so obvious to newcomers to the Hurd project how to follow execution path from their application to actual behavior in the Hurd translators. This talk will guide them through the involved RPCs, thus providing a starting guide into the GNU Hurd architecture, and hopefully, to contributing fixes or new features!</p><p>With monolithic kernels, the path from application source code to actual implementation in the kernel is very simple: only the system call layer needs to be understood. In a multiserver system such as the GNU Hurd, this is not so simple, since one for a start has to understand which server one is actually talking to, and how RPCs work. Once this is cleared up, it becomes way easier to know where to contribute fixes and features!</p>
<p>This talk will thus take a few examples of typical application operations (opening and reading a file, opening and working with a socket) and go through the RPC path, to illustrate how translators are involved and where the eventual implementations actually reside.</p>
<p>It will also be an opportunity to give the latest news about the GNU/Hurd project.</p>Samuel Thibault
http://www.gnu.org/software/hurd/
http://www.debian.org/ports/hurd/
FOSDEM 2015 Video
12:3000:30K.3.201dinerNetworking (lunch)devroom<p>Networking at Lunch</p>13:0000:45K.3.201deadlockAutopsy of a multiserver deadlock in the HelenOS filesystem layerdevroom<p>A detailed walk through the analysis of a deadlock in the HelenOS filesystem layer involving IPC communication and spread across four server processes. The talk will focus on demonstrating how a problem like this can be root caused from within the same running HelenOS instance that was affected by it, relying solely on its own observability features.</p>Jakub Jermář
FOSDEM 2015 Video
13:4500:45K.3.201l4reFacing the Reality: What's new in the L4Re Operating Systemdevroom<p>L4Re is an operating system based on the L4Re microkernel. The development of the last 12 months has been driven by real-world requirements. Noteworthy features are power management capabilities and the ARM virtualization support.</p>
<p>In the first part of the talk we will give a brief overview of what's new in the L4Re OS followed by an update on the changes and improvements to the virtualization support we made over the last year.</p>Adam Lackorzynski
FOSDEM 2015 Video
14:3000:50K.3.201mmWhat Could Microkernels Learn from Monolithic Kernels (and Vice Versa)devroom<p>Some developers of both microkernel and monolithic operating systems view the design of their system as absolutely superior to the other design. This black-white thinking and "holy war" attitude, while understandable to a certain degree, makes it hard to to acknowledge that one size does not necessarily fit all. Rather than striving for an unreachable goal of creating the best operating system design for all possible use cases it is vital to understand and reflect the trade-offs of the use cases at hand. This talk focuses on a few features and properties of the current monolithic operating systems that could be an inspiration for the current microkernel operating systems and vice versa. The talk should also initiate a discussion about some "non-goals" of microkernel operating systems that are nevertheless sometimes presented as goals of microkernel operating systems, to the detriment of its own cause.</p>Martin Děcký
HelenOS web site
HelenOS development wiki
FOSDEM 2015 Video
15:3000:45K.3.201genodeIntroducing a radically componentized GUI architecturedevroom<p>Modern graphical user interfaces must be both extremely versatile and beautiful to be appealing for users. Current GUIs try to fulfil those requirements at the cost of extremely high complexity, which puts the privacy and security of the user at risk. The talk will introduce a new component-based GUI architecture that puts security in the front seat while aiming at highly customizable user experiences.</p><p>GUIs face the challenge to appeal to users with vastly different tastes. Visually, each user seems to have different preferences, which current-generation GUIs try to address with theming engines. But also conceptually, different groups of users prefer different concepts. For example, a window manager might support floating windows, tiled windows, tabbed windows, and virtual desktops. In order to be appealing to a large user base, it has to support as many of those concepts as possible. As another example, modern widget tool kits such as Qt5 try to accommodate all kinds of applications with a huge library of features. The richness of features, however, comes at a price, which is the overwhelming complexity of current-generation GUI systems. Large parts of the GUI are shared among graphical applications including both privacy-sensitive as well as potentially malicious programs. In the presence of malware, the complexity becomes a large attack surface. But how can this be avoided?</p>
<p>The talk will introduce a new architecture that applies microkernel construction principles to split the GUI into an arrangement of components such that the highly complex elements are stuffed away in sand boxes where they cannot do any harm. The security-critical parts are encapsulated into tiny components that do not even rely on a C runtime. Their ultra-low complexity and rigid interfaces mitigate the chance for attacks. At the same time, the architecture provides large degrees of freedom with respect to the virtual presentation and the window-layout management.</p>
<p>The key components and their relationship will be explained and demonstrated live during the talk.</p>Norman Feske
Genode OS Framework
FOSDEM 2015 Video
16:1500:20K.3.201ucloudCloud services on top of uKernel devroom<p>Despite the diversity of microkernel project, most of them are experimental and research. Some of them are positioned as embedded systems, some other as general purpose desktop system. We want to add in this diversity additional project. In contrast with most other, we are interested in network services for clouds. We want to build guest system based on microkernel for providing various network services like cluster file system, key-value store and web server.</p><p>This presentation will describe work-in-progress status of process development cloud services on top of microkernels. We will describe main idea, rationale and motivation, main architecture and early results. The talk will provide description and guidance of porting key-value store Redis on top of Genode, development levedb-based in memory KVS on top of L4Re, deployment and use of network services in virtual environment.</p>Vasily A. Sartakov09:0500:45K.3.401go_at_coreosGo at CoreOSThis session will discuss using Go to build products that make distributed computing as stress-free as installing a Linux distribution.devroom<p>At CoreOS, we chose to write everything in Go at a time when Python was the language of choice for Linux distributions. It had been almost 10 years since a new Linux distro was created. With the entrance of the cloud era, moving deeply into distributed computing based on Linux containers and multi-core machines, we needed a language that would allow our developers to iterate rapidly and create self-contained components that were not tangled in a web of software dependencies on the operating system. Go was the clear choice because it would enable us to build applications quickly and produce standalone binaries.</p>
<p>With thousands of hours of Go experience, this session will dive into the trenches on Go at CoreOS. It will explore four major projects written in Go: etcd, fleet, rocket and flannel. Attendees will learn tips and tricks for using Go for building and shipping products. Learn the ways Go enables CoreOS to build simple tools to solve a large variety of infrastructure automation tasks, and create high performance components for distributed systems.</p><p>This talk will cover some of the major projects written in Go at CoreOS, including etcd, fleet, rocket and flannel.
etcd is a highly-available key value store for shared configuration and service discovery, that can be used as a lock service (e.g. for leader election) or for distributed configuration. etcd uses the Go standard library extensively, and the session will detail how we used Go to make our raft implementation lightweight and easy to navigate.
Fleet is a distributed init system that extends systemd to the cluster level. The session will explore how fleet uses Go to provide both event-driven and reconcilation-based orchestration of units in a cluster.
Rocket is a new container runtime and the first implementation of the appc specification. Developing in Go allowed Rocket to go from concept to functional product in a rapid timeframe.
Finally, flannel is an etcd-backed overlay network fabric for Linux containers. Flannel leverages Go’s ability to seamlessly integrate with C code, to provide maximal performance in critical paths but retain the safety of higher level abstractions and ability to leverage existing Go libraries.</p>Jonathan Boulle
FOSDEM 2015 Video
09:5000:45K.3.401go_web_security_scannerFinding Bad Needles in Worldwide HaystacksExperience of using Go for a large-scale web security scannerdevroom<p>Over the last year, we have been using Go to improve the accuracy and quality of our web security scanning system that has become part of our Continuous Development pipeline and now checks all Yahoo websites and changes to them. We would like to present several components of the scanner and share some of our experiences, results, and lessons from using Go for web scanning at a large scale.</p><p>Go has caught our attention after the 1.0 release with the approachable learning curve, clean syntax, good HTTP library and built-in concurrency/syncronization primitives and overall a promise of a good match for our tasks. As a warm-up and initial study, we wrote a dead link scanner to plow through thousands of sites and find a number of "bad needles" (404s) - all while running on a single server. Encouraged, we proceeded with converting several parts of the security scanning system to Go.</p>
<p>We started with "webseclab" - set of tests for the scanner and framework to do experiments and proof of concepts/demos. It is similar in spirit to the recently released "firing range", webgoat or DVWA ("Damn Vulnerable Web Application") but thanks to the Go implementation may have special or even unique features.It is extremely easy to fire up (no dependencies and no Tomcat setup or such needed) which allows you to turn any random VM or host into a functional web security "lab". Also, switching between Go's text and html templates, we get "for free" - with just a few lines of extra code - a set of "fixed" tests where the injections are neutralized by proper output escaping which comes especially useful for training and communicating with developers. The webseclab is optimized for rapid addition of new tests and cases - we have been using it to "resurrect" already fixed issues reported through the BugBounty program and quickly convert HTTP dumps into realistic tests ready to be used for scanner improvement.</p>
<p>The next stage of the still ongoing conversion was rewrite of the analysis engine. We named it "contextdetect" as the task of defining the HTML context is crucial for that piece, and here Go has helped us to a break-through. Gone are painful and fragile layers of regexps and scripting logic that were used to simulate HTML parsing and context detection - but still lead to bouts of either false positives or false negatives. We use net/html HTML5 parser [1] to define the HTML context where the injection happens and evaluate it accordingly. We also use Robert Krimen's Javascript parser "otto" [1] to check whether an injection breaks the Javascript (likely bad) or not. Using real parsers allowed us to reduce the number of annoying false positives close to zero and make the life of the tool's users more pleasant - while still finding the real issues (as continously verified with the webseclab). We also implemented in Go a web services wrapper that distributes the work to a number of redundant scanning workers and used "go test" for functional smoke test of the scanner.</p>
<p>In the process of development in our CD environment, we had several challenges with the build process as the standard "go get" approach was off-limits for us and we have a strict requirement to mirror all the 3rd party code used for builds internally. Currently we are using the Android REPO tool to maintain description of the dependencies as well as specify the GOPATH-compatible workspace - we will discuss our considerations of the involved tradeoffs.</p>
<p>While not everyone may have to be as obsessed with defending against XSS and other badness as we are, we hope that our experience will be helpful and encouraging for others who need to do large-scale web or network verification, quality assurance, or investigations. Let's go make the web a better and safer place! :)</p>
<p>[1] https://godoc.org/golang.org/x/net/html
[2] https://godoc.org/github.com/robertkrimen/otto</p>Dmitry Savintsev
FOSDEM 2015 Video
10:3500:45K.3.401mongo_go Moving MongoDB components to GoWe love Go and this train is unstoppable!devroom<p>MongoDB is one of the most popular databases in the world to date and we love Go. As part of MongoDB package comes a set of tools and utilities that allow the user to perform several different tasks on MongoDB like exporting data, important, collecting stats etc. Part of the ecosystem around MongoDB is also MMS(MongoDB Management Service) which allows users to monitor, backup and automate their MongoDB deployments using a centralized SaaS service.
MMS agents are already Go applications and we are also migrating MongoDB tools to Go codebase, among other internal tools. This is potentially the largest distribution of Go applications to date in an opensource project!</p><p>This talk explains why we’ve undergone such code base change, our expectations and the actual benefits that we are already seeing due to this change:
better code base
better testability
better deployment / multiplatform (goodbye #IFDEF statements in C++ code base)
better performance
The talk is oriented to people looking to make a similar task of changing their current apps to Go, people looking to understand the pros and cons (mostly pros) of using Go for such set of utilities and agents and for people interested in understanding how to manage a Go code base distribution.</p>Norberto Leite
git repository of go mongodb tools
FOSDEM 2015 Video
11:3000:45K.3.401cockroachdb_goCockroachDBTowards an Open-Source Spannerdevroom<p>Many NoSQL databases come with a focus on performance, availability and scalability, sacrificing strong consistency guarantees along the way. In effect, this shifts the burden of providing consistency to the application, and often results in complex and error-prone application logic.
Just a few years ago, an intense effort by Google resulted in Spanner - a globally distributed, replicated datastore that puts transactions back where they belong: right into the heart of the database.</p>
<p>CockroachDB is a grass-roots effort to bring to the table the guarantees of Spanner (and more) in an open source scalable database that is easy to deploy and, despite the name, quite attractive to have around.
In the talk, I'll introduce you to the team behind CockroachDB and the current state of the art, briefly discuss consistency & Spanner and then dive into a tour of what's under the hood.</p>Tobias Schottdorf
FOSDEM 2015 Video
12:1500:45K.3.401http2_goHTTP/2 for GoOverview of HTTP/2 and the design of Go's support for itdevroom<p>Brad Fitzpatrick gives an overview of HTTP/2 (its design and advantages) and then discusses the design of Go's http2 package.</p>Brad Fitzpatrick
FOSDEM 2015 Video
13:0000:45K.3.401go_modern_enterpriseGo and the modern enterprisedevroom<p>Successful, tech-related, consumer-oriented companies with "hockey stick" growth -- companies like Twitter, Netflix, Spotify, and SoundCloud -- represent what might be called the "modern enterprise".</p>
<p>These organizations run microservice architectures which are continuously built and deployed, deeply instrumented, data-driven, and can fundamentally change from day to day. The open-source software stacks they use gain recognition, contributors, and momentum.</p>
<p>Go has many advantages in this kind of environment, and seems well-posed for becoming its <em>de facto</em> language. But we're definitely not there yet.</p>
<p>This talk is an experience report of Go in the "modern enterprise" of SoundCloud, and my opinion of what needs to happen with the language and ecosystem for it to gain real mindshare in that environment.</p>Peter Bourgon
FOSDEM 2015 Video
14:0000:45K.3.401blevebleve - text indexing for Godevroom<p>Nearly every application today has a search component. But delivering high quality search results requires a long list of text analysis and indexing techniques. With the bleve library, we bring advanced text indexing and search to your Go applications. In this talk we'll examine how the bleve library brings powerful text indexing and search capabilities to Go applications.</p><p>This talk will start with a brief introduction to text search concepts. We'll discuss the importance of choosing the right analyzer for your text. Then we'll look at examples that demonstrate how to index your existing data model. Finally we'll look at how you can integrate advanced features, like result highlighting and faceting, to complete the user experience.</p>
<p>Introduction to text search concepts (5 minutes)
Mapping a typical data model for search (10 minutes)
Executing searches including highlighting and faceting (15 minutes)</p>Marty Schoch
Bleve
FOSDEM 2015 Video
14:4500:45K.3.401state_of_goThe State of Godevroom<p>Andrew Gerrand takes a look at the Go project and community and gives an overview of where we're at in February 2015.</p>Andrew Gerrand
FOSDEM 2015 Video
15:3001:30K.3.401go_lightning_talksGo Lightning TalksThe Go community on Godevroom<p>Members of the Go community give short presentations of on various topics.</p>
<p>To sign up to give a lightning talk, visit the Go Devroom throughout the day.</p>Andrew Gerrand
FOSDEM 2015 Video
09:3000:25K.4.201cache2kCache2k, Java caching turbo chargeddevroom<p>The development of cache2k has two streams: It is a robust cache implementation and provides features we miss from other products, on the other hand it is a research area to try out new caching algorithms and implementations to achieve the best performing in-memory Java cache that is available today.</p>
<p>The talk will start with some real-world scenarios and challenges and how the cache can help, making it the pivotal point in an application to manage data resources and provide them on time. The second part of the talk will be about modern and adaptive caching algorithms and why you should not implement yet another "LRU cache" by yourself.</p>
<p>This talk should encourage to use more caching to speed up applications and, of course, to hack and improve existing caching products. There is still much to achieve!</p>Jens Wilke10:0000:25K.4.201zeroSustaining the zero assembler port in OpenJDK: An inside perspective of CPU specific issuesdevroom<p>OpenJDK comes with a zero assembler port called Zero. Back in 2009 when Zero was originally developed by Gary Benson, OpenJDK was available only on x86, x86_64 and SPARK. Despite recent JIT ports, such as the AArch64 and ppc/aix port, Zero still remains relevant for many Linux distributions. For example, at Red Hat we build and use the OpenJDK zero variant on PPC/PPC64 and s390/s390x. What's more it's a useful tool for getting new JIT ports built from source using free software.</p>
<p>This talk will give a brief summary what Zero is and how it works. It will cover some of the recently discovered issues with sustaining the Zero port, how we try to catch them early and it will explain our experience with pushing
fixes upstream. There will also be examples how this effort benefits the OpenJDK ecosystem as a whole.</p>Severin Gehwolf10:3000:25K.4.201icedtea_webIcedTea-Web goes offline and beyonddevroom<p>Future of java applets and javaws is dark. Chrome have already cut down NPAPI. Most of the banks moved from java to javascript for they internet banking. The javaws will suffer a lot by introducing jigsaw modules. What is remaining? The "physical applets" of course! Seriously - the "killing" feature of applets is that they do not work offline. But similarly to javaws - they can! IcedTea-Web is now removing this boundaries, and what more, it will also allow you to detach applet out from browser - by jnlp shortcut, or by lunching html page by javaws directly. Apart of this, ITW is now JDK independent and you can run those features on any OpenJDK, even on
Oracle or IBM JDKs.
And except serving you web application comfortably online, ITW allows you to lock this application - even "signed ones" in sandbox. And of course there is Jogamp project - the awt-less plugin - How I wish to see it merged upstream!-)
<strong><em> Long story short, more security and much much more freedom </em></strong></p>Jiri Vanek11:0000:50K.4.201life_in_the_trenchesLife in the trenchesdevroom<p>We've been working on OpenJDK for a long time now and we've gained a lot of experience working on the code itself and, perhaps more importantly, working with the Java team inside Oracle. This talk is about our experiences trying make one of the largest ever external contributions to OpenJDK, the AArch64 port.</p>
<p>I'll talk about how the OpenJDK contribution process works, and how it doesn't work, and how important it is to gain the trust of people inside Oracle's Java team. I'll discuss the strange asymmetry of being an external contributor to a project but not being able to know all of what is going on. I'll try my best to explain the baffling role of Projects and JEPs. I'll speculate about the future of OpenJDK and how it must change as more people outside Oracle contribute significant slabs of code, and how we must have more external patch reviewers.</p>
<p>Finally, I'll open up the floor for discussion. I'm sure we'll have a lot to talk about.</p>Andrew Haley12:0000:25K.4.201invoke_binderInvokeBinderLiteral Programming for Method Handlesdevroom<p>As one of the earliest adopters of Method Handles, I've had to build many of my own tools. InvokeBinder is one of them, providing a literal (or fluent) API for Method Handles that allows site-forward adaptation, name-based argument list manipulation, and many bonuses usually too complicated to write by hand. I'd like to demonstrate its features and enlist others to help me improve it.</p>Charles Nutter12:3000:50K.4.201shenandoahShenandoah - Project overviewdevroom<p>Garbage Collection pauses make it hard for Java applications to meet quality of service guarantees. No matter how fast your application processes requests, a 30 second GC pause is going to ruin any guarantees you might want to make.</p>
<p>Shenandoah is a new GC algorithm designed to address this issue. We take a simple approach that allows us to do more work while your Java program is running so we can substantially reduce the time the JVM is paused. Our goal is to be able to garbage collect 100gb+ heaps in under 10ms.</p>
<p>This talk will focus on the current status of the project, the goals we've met so far, and what we are hoping to achieve in the coming year. We might even share some performance numbers.</p>Roman KennkeChristine H Flood13:3000:25K.4.201trends_javaWhat Three Big Development Trends Mean for Javadevroom<p>As with the past few years, we'll start by examining via various statistical benchmarks where Java is today and how it is performing relative to its competition. We'll mine various communities use and discussion of Java to try and determine where Java ranks today versus its historical performance.</p>
<p>With that foundation set, we'll examine three important developer trends and the opportunities - or threats - they present to Java. From the convenience of cloud to the challenges of application lifecycles to the fatigue of fragmentation, we'll walk through the basics of the choices and challenges developers are facing today with an eye towards their implications for Java.</p>Steve O’Grady14:0000:25K.4.201beyond_java_nineBeyond Java 9devroom<p>Is there life after Java 9? Yes! This session will offer a highly-speculative sneak preview of advanced features currently in development for the Java language and virtual machine.</p>Mark Reinhold
FOSDEM 2015 Video
14:3000:25K.4.201jcp_state_of_the_unionJCP State of the Union & Progress Reportdevroom<p>The Java Community Process (JCP) program has made significant changes over the last several years in order to increase community participation in the development of Java Specification Requests (JSR) and to enable greater transparency for the community into the JSR expert groups. Reforms to the JCP through JCP.Next as well as through the Adopt-a-JSR programs have enabled this involvement from the community that is vital to the success of Java. The free and open source community now have greater opportunities for contributions and feedback . We will discuss the current state of the nation on these programs and ask for feedback and suggestions for greater participation moving forward through the ongoing JCP.Next effort, specifically JSR 364, Broadening JCP Membership and JSR 358, A major revision to the Java Community Process.</p>Heather VanCura15:0000:25K.4.201crowd_testingThe Wisdom Of Crowd Testing OpenJDKdevroom<p>In the beginning, there were bugs. In order to find them faster, before a JDK release, the OpenJDK Adoption Group began a quality outreach effort. Initially focused on JDK 8, the effort expanded to cover JDK 7 Updates, JDK 8 Updates and JDK 9 OpenJDK Projects. It now lists dozens of open source projects and communities that participate in testing early access builds of the JDK, report issues they find, and help get them resolved in time.</p>
<p>In this session, you'll learn what worked, and what didn't, and what you can do to join the OpenJDK crowd testing fun with your own open source project to help us find showstopper bugs before they can bite.</p>Dalibor TopićRory O’Donnell15:3000:25K.4.201adoption_group_qaOpenJDK Adoption Group Q&Adevroom<p>There's a ton of stuff going on in OpenJDK, projects, repositories, bug database, experiments. This is a lot of potential fun, but the entrance barrier for newcomers is extremely high, and it's easy to get lost and not enjoy the fun anymore. In order to help people wanting to contribute keep track of this intricate forest of development and find their way out, the Adoption Group was created (http://openjdk.java.net/groups/adoption/).</p>
<p>This session is an exchange between few of the hackers directly involved with the Adoption Group and the public. We will indeed discuss some of the projects we are currently involved with - like the planned global hack days for jsonp, jigsaw and tools that use jigsaw and http 2.0 with language interoperability - but above all we will answer questions the audience may have in relation to getting involved with OpenJDK, both from a technical perspective and a social one, so that next year you can sit together with us helping even more people to jump on the fun!</p>
<p>If you need help organising your next hackday, or you are completelylost tying to get started with OpenJDK, this is the session for you!</p>Mario TorreMartijn VerburgDalibor TopićDaniel BryantMani Sarkar16:0001:00K.4.201governing_boardMeet the Governing Boarddevroom<p>Meet the OpenJDK Governing Board, Q&A session</p>Mark ReinholdAndrew HaleyGeorges Saab10:0000:30K.4.401llvm_lldb_portPorting LLDB to a new Targetdevroom<p>At Mentor Embedded/CodeSourcery, we have recently ported LLDB to debug programs
for a very specialized processor. This port required a lot of customization in
LLDB. We introduced a new connection mechanism to the target and handled new
object file and symbols formats.</p>
<p>In this talk, I will describe our experience of porting LLDB. I will explain
how to make use of the Plugin architecture of LLDB to customize its behaviour.
Finally, I will discuss in details how to write the following plugins.</p>
<p>i) Process plugin to add a new way to connect to target</p>
<p>ii) ObjectFile plugin to handle a new object file format</p>Hafiz Abid Qadeer
FOSDEM 2015 Video
10:4000:40K.4.401llvm_aarch64LLVM's AArch64 support - history & status.devroom<p>AArch64 is ARM's 64-bit architecture. I'll present a short
history of how the AArch64 support in LLVM was implemented, a
summary of which general AArch64 features are well supported by
LLVM and a summary of which areas need more work.</p>Kristof Beyls
FOSDEM 2015 Video
11:2500:30K.4.401llvm_internal_asmExtending the internal assemblerHow to add a new CPU featuredevroom<p>Using LLVM on a new CPU or a new platform may require changes to the internal
assembler. A common use case is the support of new instructions for a new CPU.
In this talk I show how to add a complete new CPU feature, using the MIPS Octeon
variant as an example.</p><p>LLVM has an integrated assembler in the MC layer. If a CPU vendor adds new
instructions then it is necessary to extend the instruction description in order
to use the new instructions at least in inline assembly. It would be even better
if these instructions are also considered by the code generation. In this talk I
show how to add a new CPU feature, new instructions and instruction aliases. I
also demonstrate how the new instructions are selected by the code generation.
As example I use the Octeon instructions which I added to the MIPS backend for
the LLVM 3.5 release.</p>Kai Nacke
My homepage
FOSDEM 2015 Video
12:0000:30K.4.401llvm_movicompilemoviCompile: An LLVM based compiler for heterogeneous SIMD code generationdevroom<p>Numerous applications in communication and multimedia domains show significant data-level parallelism (DLP). The amount of
DLP varies between applications in the same domain or even within a single application. Most architectures support a single vector-,
SIMD-width which may not be optimal. This may cause performance and energy inefficiency. We propose the use of multiple
(heterogeneous) vector-widths to better serve applications with varying DLP. The SHAVE (Streaming Hybrid Architecture Vector
Engine) VLIW vector processor is an example of such an architecture. SHAVE is a unique VLIW processor
that provides hardware support for native 32-bit (short) and 128-bit (long) vector operations. Vector arithmetic unit (VAU) supports
128-bit vector arithmetic of 8/16/32 − bit integer and 16/32 − bit floating point types. Scalar arithmetic unit (SAU) supports 32-bit
vector arithmetic of 8/16 − bit integer and 16 − bit floating point types.</p>
<p>The moviCompile compiler is an LLVM based commercial compiler targeting code generation for SHAVE processor family.
The moviCompile compiler is capable of SIMD code generation for 128-bit (long) and 64-bit vector operations. This work focuses
on compiler backend support for 32-bit (short) vector operations. More specifically, this work aims to generate SIMD code for
short vector types (e.g. 4 x i8, 2 x i16, 2 x f16) that can be executed on 32-bit SAU next to the 128/64-bit SIMD code. As a
result, moviCompile is able to generate heterogeneous assembly code consisting of both short and long vector SIMD operations.</p>Erkan Diken
FOSDEM 2015 Video
12:4000:30K.4.401llvm_c2The C2 programming languageUsing Clang not like it's supposed to be used.devroom<p>C2 is a new programming language that been under development since 2011. It attempts to maintain the spirit of C, while considerable raising development speed. C2 also adds some greate features and tools to developers. This talk will zoom in on 'problems' in C, the solution chosen in C2 and the implementation on top of Clang/LLVM.</p><p>The C programming language has been around for a long time and is one of the main 'open-source' languages that is used today. The C2 project attempts to build on the success of C, while keeping the spirit of C intact. C2 doesn't change the abstraction level (like C++/Java/etc), but it does change the way code is structured . This will greatly accelerates development cycles and at the same time increase run-time speed as well. One major change is the removal of the use of #include's to access code in other files. The C2 language was first introduced at Fosdem '13.</p>Bas van den Berg
C2 Website
FOSDEM 2015 Video
13:2001:00K.4.401llvm_openmandrivaOpenMandriva's switch to clang as its default compilerOpenMandriva's experiences with switching the default compiler to clangdevroom<p>OpenMandriva Lx has switched its default compiler to clang.</p>
<p>This talk will be about our experiences with the switch, problems we've run into, and their solutions.</p><p>OpenMandriva Lx has switched its default compiler to clang.</p>
<p>This talk will be about our experiences with the switch, problems we've run into, and their solutions.</p>Bernhard Rosenkränzer
FOSDEM 2015 Video
14:3000:20K.4.401llvmmagiclandAdventures with LLVM in a magical land where pointers are not integersdevroom<p>Most modern processors have a very simple idea of a pointer: an integer containing an address in memory. This representation is used by all of the architectures that are officially supported by LLVM. In this talk, we'll take a look at what's needed for architecture where it isn't the case.</p><p>The CHERI processor (see Security track talk for more detail) provides a capability-oriented model for addressing memory. All virtual addresses are accessed via a memory capability, an unforgeable token of authority that can be stored in registers or memory and grants rights to a region of memory. We want to use memory capabilities as pointers and to do this have had to teach LLVM that (some) pointers are not integers.</p>
<p>Fortunately, LLVM IR is agnostic to pointer representation. Unfortunately, various parts of the code make this assumption. In this talk, we'll take a look at some of the changes that were required in the target-agnostic parts of LLVM to allow us to write a hardware-enforced memory-safe C compiler.</p>David Chisnall15:2000:20K.4.401llvm_cloneCode clone detection in LLVM compiler infrastructureLLVM: built-in scalable code clone detection based on semantic analysisdevroom<p>We have proposed LLVM based method of code clones detection. The method is used as built-in instrument for LLVM. It can analyze and compare source code quality. Semantic mistakes arising during software development process can be detected by the compiler in early stages. As well it can be used for automatic refactoring.</p><p>Two code fragments are called clones if they are identical by some similarity function. Code clones detection has number of applications. It can be used for semantic mistakes detection, automatic refactoring, code quality improvements and optimizations. There are several methods for code clones detection. Textual [1] and lexical [2] approaches are not capable to detect all clone types [3]. The Algorithms based on abstract syntax tree [4] and metrics [5] have low accuracy. The algorithms based on program dependence graph (PDG) [6] allow reaching high accuracy. But these algorithms have large computational complexity, which makes them unusable for real world projects analysis.
This paper describes scalable and accurate method of code clones detection, which allow analyze million lines of source code (written in C/C++). As well it describes architecture of the tool based on this method. The tool has two basic parts. The first part is designed as LLVM pass [7] and responsible for PDGs generation. The second part designed as LLVM tool [7], which analyzes PDGs to detect clones.
The method based on PDG and has some extra features, which makes it capable for large scale projects analysis. Dependence graphs are constructed at compile-time based on intermediate representation (bitcode) of LLVM [7] (first part). This approach has number of advantages compared with analogical methods [8]. Source code parses only once (during compilation). No need for extra analysis of dependencies between compilation modules. When all graphs are generated second part of tool split them to subgraphs. Then clone detection algorithm runs for pair of these subgraphs. Therefore it is important to split graphs so that every possible clone was located inside one subgraph. Existed methods split PDG to weakly connected components. Some of them split to subgraphs, which are intersected with each other in limited number of vertices [9]. Two algorithms were designed for graphs’ partitioning. Theses improve the number of detected clones. The first method divides PDG to relatively equal pieces. Second one splits PDG to subgraphs, where corresponding source code has sequential order. <br/>
Scalability was achieved by composition of two types of algorithms. The first type of algorithms tries to prove if two graphs do not have enough large isomorphic subgraphs. These algorithms have liner complexity. Up to 80% of PDGs are processed by them [9]. Other 20% are analyzed with approximate algorithms of maximal isomorphic subgraphs detection. They have high accuracy and computational complexity.
Target machine of testing was Intel Core i3 CPU 540 with 8 GB RAM. Mozilla Firefox (3.8 million lines of С/С++ code) – was analyzed in 8h, detected 98 clones, 7 of them were false positive (manual analysis). LLVM+CLANG (1.3 million lines of С/С++ code) – was analyzed in 6h, detected 51 clones, 2 of them were false. OpenSSL (280 000 lines of С/С++ code) – was analyzed in ~200 second, 107 clones are detected.</p>
<p>References
1.Ducasse S. [at al.] A language independent approach for detecting duplicated code // Software Maintenance. – 1999. – 109– 118p.
2.Kamiya T. [at al.] CCFinder : A multilinguistic token-based code clone detection system for large scale source code // Software Engineering. – 2002. – 654–670p.
3.Chanchal K. [at al.] Comparison and evaluation of code clone detection techniques and tools: A qualitative approach // Science of Computer Programming. – 2009. V. 74 . – 470– 495p.
4.Jiang L. [at al.] DECKARD : Scalable and accurate tree-based detection of code clones // Software Engineering. – 2007. – 96-105p.
5.Mayrand J. [at al.] Experiment on the automatic detection of function clones in a software system using metrics // Software Maintenance. – 1996. – 244– 253p.
6.Komondoor R. [at al.] Using slicing to identify duplication in source code // 8th International Symposium on Static Analysis. – 2001. – 40–56p.
7.www.llvm.org
8.M. Gabel, L. Jiang, Z. Su, Scalable detection of semantic clones, in: Proceedings of the 30th International Conference on Software Engineering, ICSE 2008,2008,pp.321–330
9.Baker B. [at al.] On finding duplication and near-duplication in large software systems // Reverse Engineering. – 1995. – 86–95p.</p>Sevak Sargsyan
FOSDEM 2015 Video
15:5001:00K.4.401llvm_pnaclLLVM on the WebUsing Portable Native Client to run Clang/LLVM in the Browserdevroom<p>Thanks to its featureful, portable, and modern codebase, Clang/LLVM is rapidly becoming the toolchain of choice for developers worldwide. Recently, its portability has allowed Clang/LLVM to be ported to run inside the Chrome web browser, by way of another LLVM derived technology called Portable Native Client. Working in tandem with several other browser based development tools, the path has been opened to full in-browser software development. This talk explores the unique challenges of porting Clang/LLVM to the browser.</p><p>Native Client (NaCl) is an open-source technology that allows native machine code to run securely sandboxed in the browser. Two layers of sandboxing, a static verification inner sandbox combined with Chrome’s outer process sandbox, ensure users can safely run untrusted applications. Portable Native Client builds on this foundation by providing a portable LLVM IR derived wire format which is seamlessly compiled and run on the fly. Support for venerable, cornerstone POSIX APIs—files, processes, sockets, terminal I/O— is then built on top of an I/O layer called PPAPI with security limitations that mirror the constraints of Javascript.</p>
<p>Come learn about: porting Clang/LLVM to Native Client, bridging the gap between POSIX and the Web, measuring performance, and connecting Clang/LLVM with other FOSS tools in our in-browser development environment, including editors, interpreters, and build tools. Watch a demonstration of in-browser C/C++ development to discover how the Web can dramatically increase the reach and impact of the LLVM project by frictionlessly putting its tools in the hands of developers and users everywhere.</p>Brad Nelson
NaCl Info
Talk focused on GCC based tools
FOSDEM 2015 Video
11:0000:50K.4.601d3d9_wineWine Development Updates, Performance and the D3D9 State Trackerdevroom<p>Wine has seen gradual improvements in its support for games and game performance over the year. This talk gives an overview over the past changes, upcoming work as well as the opportunities and problems of the Direct3D9 implementation in Mesa.</p>Stefan Dösinger
FOSDEM 2015 Video
12:0000:50K.4.601kms_atomicAtomic Mode-SettingWhat it is and how to convert your driverdevroom<p>Atomic mode-setting has been discussed and designed for literally years. Now it's finally there. Most of the prerequisites have been merged into the mainline kernel. The first drivers are being converted and the final versions of the user-space IOCTL are being drafted. With it come all sorts of new, exciting features. But there are also confusing aspects to it.</p>
<p>This talk will give a brief history of how kernel mode-setting (KMS) evolved, explain some of the shortcomings of the current KMS API and how atomic mode-setting will make everything better.</p>
<p>The focus of the talk will be on how to convert existing kernel drivers to support atomic mode-setting based on lessons learned from going through the conversion of the Tegra DRM driver.</p>Thierry Reding
FOSDEM 2015 Video
13:0000:50K.4.601d3d9Native D3D9 on MesaGallium Nine : the statusdevroom<p>While OpenGL can fit D3D9 translation, native support has several advantages.</p><p>After explaining several of the reasons a native D3D9 support in Mesa is desirable,
and doing some comparisons with wine conversion to OpenGL,
we'll focus on the status on Gallium Nine today :</p>
<p>What has been done ? What works ? What is remaining to be done ? What is the future of Gallium Nine ?</p>Axel Davy
FOSDEM 2015 Video
14:0000:50K.4.601tegraSupporting Nouveau on the Tegra K1 System-on-chipHow NVIDIA became a Nouveau contributordevroom<p>Although Tegra K1 uses the same Kepler architecture as NVIDIA desktop cards that Nouveau already supports, there are other challenges that need to be addressed before Nouveau can drive K1's graphic acceleration: the fact that the GPU does not reside on the PCI bus requires architectural changes in the Nouveau core. The absence of dedicated GPU memory directly interferes with the way Nouveau is used to do memory management and leads to potentially sub-optimal behavior. Also, in a system where all devices share the same system memory, PRIME support is mandatory to perform any useful work and the relevance of a driver-agnostic memory allocator becomes perceptible.</p>
<p>This talk will discuss these challenges, and in particular the consequences of using a unified memory architecture, in the hope of triggering discussions that will help improving the general support of GPU architectures for new mobile platforms.</p>Alexandre Courbot
Xwayland and ioquake3 running on Tegra K1 with Nouveau
Nouveau and Mesa rootfs for Jetson TK1
FOSDEM 2015 Video
15:0000:50K.4.601libinputReplacing Xorg input-drivers with libinputdevroom<p>This presentation will discuss the plans to move Xorg to use libinput too through an input driver called xf86-input-libinput, as well as the status of this move. xf86-input-libinput is scheduled to be the default Xorg input driver for Fedora 22.</p><p>Currently xorg uses a 1 driver per input device model, this makes it impossible to do things like middle button scrolling on the trackpoint on laptops where the trackpoint buttons are softbuttons on the touchpad. Besides this the xf86-input-synaptics driver was never really designed for multi-touch touchpads and this causes various issues.</p>
<p>For Wayland we've been working on a new improved input stack, which is to be shared by all compositors and lives inside libinput. This talk is about switching the xf86-input-* part of the Xorg input stack over to libinput by using a wrapper called xf86-input-libinput.</p>
<p>This talk will focus on the process and status of making this switch, can we make the switch without loosing any features, what updates are needed to the control-panel-applets of various desktop-environments to work with this new stack ?</p>Hans de Goede
FOSDEM 2015 Video
16:0000:50K.4.601tamilThe Tamil DriverEarly hacking on the Mali T-series GPUs.devroom<p>The Tamil driver is to the Mali T series GPUs what the lima driver is for the older Mali M200/400/450 GPUs.</p>
<p>Libv did the preliminary command stream REing work in September 2013, by creating a command stream tracer (capable of capture and replay) and by exposing the binary shader compiler. Over the 2014 end of year period, he then spent some time decyphering various renders, and he will hopefully be showing off the first few native renders at FOSDEM.</p>Luc Verhaegen
FOSDEM 2015 Video