FOSDEM 2020 - Ada Developer Room - Sat 1 Feb 2020 - Brussels

Started by Dirk Craeynest December 22, 2019

                 Ada-Belgium is pleased to announce its

                 10th Ada Developer Room at FOSDEM 2020
 Ada at the Free and Open source Software Developers' European Meeting

                      on Saturday 1 February 2020

   Universit� Libre de Bruxelles (ULB), Solbosch Campus, Room AW1.125
     Avenue Franklin D. Roosevelt Laan 50, B-1050 Brussels, Belgium

                Organized in cooperation with Ada-Europe


*** General Information

FOSDEM, the Free and Open source Software Developers' European Meeting,
is a free and non-commercial two-day weekend event organized early
each year in Brussels, Belgium.  It is highly developer-oriented and
brings together 8000+ participants from all over the world.

The goal is to provide open source developers and communities a
place to meet with other developers and projects, to be informed
about the latest developments in the open source world, to attend
interesting talks and presentations on various topics by open source
project leaders and committers, and to promote the development and
the benefits of open source solutions.

The 2020 edition takes place on Saturday 1 and Sunday 2 February.
It is free to attend and no registration is necessary.

In this edition, Ada-Belgium organizes once more a series of
presentations related to the Ada Programming Language and Free or
Open Software in a s.c. Developer Room.  The "Ada DevRoom" at FOSDEM
2020 is held on the first day of the event, Saturday 1 February 2020.

This year FOSDEM has a total of 13 Ada-related presentations by 12
authors from 8 countries!  A mini-poster about the Ada DevRoom [1],
as well as a one-page Call for Participation for the Ada DevRoom [2]
is available; they can be used to help announce the event, and to
give an idea about its scope.


*** Ada Programming Language and Technology

Ada is a general-purpose programming language originally designed
for safety- and mission-critical software engineering.  It is used
extensively in air traffic control, rail transportation, aerospace,
nuclear, financial services, medical devices, etc.  It is also
perfectly suited for open source development.

Awareness of safety and security issues in software systems is
ever increasing.  Multi-core platforms are now abundant.  These are
some of the reasons that the Ada programming language and technology
attracts more and more attention, among others due to Ada's support for
programming by contract and for multi-core targets.  The latest Ada
language definition was updated early 2016.  Work on new features is
ongoing, such as improved support for fine-grained parallelism, and
will result in a new Ada standard scheduled for 2021.  Ada-related
technology such as SPARK provides a solution for the safety and
security aspects stated above.  More and more tools are available,
many are open source, including for small and recent platforms.
Interest in Ada keeps further increasing, also in the open source
community, and many exciting projects have been started.

The Ada DevRoom aims to present the facilities offered by the
Ada language (such as for object-oriented, multicore, or embedded
programming) as well as some of the many exciting tools and projects
using Ada.  FOSDEM is an ideal fit for an Ada Developer Room.  On the
one hand, it gives the general open source community an opportunity
to see what is happening in the Ada community and how Ada technology
can help to produce reliable and efficient open source software.
On the other hand, it gives open source Ada projects an opportunity to
present themselves, get feedback and ideas, and attract participants
to their project and collaboration between projects.

*** Video/Volunteers

This year as well, audio/video equipment and network facilities
are provided by the FOSDEM organizers, to enable recording and live
streaming all DevRoom presentations.  Volunteers "man" that equipment
during the day.  After postprocessing the recordings, links to them are
made available via the "More information" entry for each presentation.

Additional volunteers to help with various logistic issues during
the day are needed as well, such as monitoring room overflow and
refusing entry when the room is too full, defragmenting the room in
between presentations, helping speakers with microphone adjustments,
monitoring the timeslots and warning speakers when they have to start
or when they risk running out of time, as well as various practical
issues that need to be handled ASAP when they occur.

If you'd like to help, please get in touch (see below).

*** Ada Developer Room Presentations (room: AW1.125, 76 seats)

The presentations in the Ada DevRoom start after the opening FOSDEM
keynotes.  The program runs from 10:30 to 19:00.

10:00-10:30 - Arrival & Informal Discussions

  Feel free to arrive early, to start the day with some informal
  discussions while the set-up of the DevRoom is finished.

10:30-10:35 - Welcome to the Ada DevRoom
              by Dirk Craeynest - Ada-Belgium

  Welcome to the Ada Developer Room at FOSDEM 2020, which is organized
  by Ada-Belgium in cooperation with Ada-Europe.  Ada-Belgium and
  Ada-Europe are non-profit organizations set up to promote the
  use of the Ada programming language and related technology,
  and to disseminate knowledge and experience into academia,
  research and industry in Belgium and Europe, resp. Ada-Europe has
  member-organizations, such as Ada-Belgium, in various countries,
  and direct members in many other countries.

10:35-11:20 - An Introduction to Ada for Beginning and Experienced
              Programmers - by Jean-Pierre Rosen - Adalog, France

  An overview of the main features of the Ada language, with special
  emphasis on those features that make it especially attractive for
  free software development.  Ada is a feature-rich language, but what
  really makes Ada stand-out is that the features are nicely integrated
  towards serving the goals of software engineering.  If you prefer
  to spend your time on designing elegant solutions rather than on
  low-level debugging, if you think that software should not fail,
  if you like to build programs from readily available components
  that you can trust, you should really consider Ada!

11:30-11:50 - HAC: the Compiler which will Never Become Big
              by Gautier de Montmollin - Ada-Switzerland

  In the Ada world, we are surrounded by impressive and professional
  tools that can handle large and complex projects.  Did you ever
  dream of a tiny, incomplete but compatible system to play with?
  Are you too impatient, for developing small pieces of code, for
  long compile-bind-link-run cycles?  Are you a beginner intimidated
  by project files and sophisticated tools?  Then HAC (the HAC Ada
  Compiler, or the Hello-world Ada Compiler) is for you.  HAC is a
  revival of the SmallAda project, which supported the "Pascal subset"
  plus tasking.

12:00-12:50 - Tracking Performance of a Big Application from Dev to Ops
              by Philippe Waroquiers - Eurocontrol, Belgium

  This talk describes how performance aspects of a big Air Traffic
  Flow Management mission critical application are tracked from
  development to operations.  Tracking performance is needed when new
  functionality is added, to balance the additional services versus
  the resource increase needed.  Measuring and tracking performance is
  also critical to ensure a new release can cope with the current or
  expected load.  We will discuss various aspects such as which tools
  and techniques are used for performance tracking and measurements,
  what are the traps and pitfalls encountered for these activities.
  The application in question is using Ada, but most of the items
  discussed are not particularly Ada related.

13:00-13:20 - Cappulada: What we've Learned
              by Johannes Kliemann - Componolit, Germany

  Last year I presented Cappulada, a C++ binding generator for Ada
  that intended to overcome the shortcomings of existing solutions and
  to provide usable bindings even for complex C++ code.  This year I
  want to show our conclusions on why automatic bindings between C++
  and Ada are hard (if not impossible) and where existing solutions
  (including our own) fail.

13:30-13:50 - Programming ROS2 Robots with RCLAda - by Alejandro
              R. Mosteo - Centro Universitario de la Defensa, Spain

  The Robot Operating System (ROS) is one of the chief frameworks
  for service robotics research and development.  The next iteration
  of this framework, ROS2, aims to improve critical shortcomings of
  its predecessor like deterministic memory allocation and real-time
  characteristics.  RCLAda is a binding to the ROS2 framework that
  enables the programming of ROS2 nodes in pure Ada with seamless
  integration into the ROS2 workflow.

14:00-14:50 - Live Demo of Ada's Distribution Features
              by Jean-Pierre Rosen - Adalog, France

  Ada incorporates in its standard a model for distributed execution.
  It is an abstract model that does not depend on a particular kind
  of network or any other communication mean, and that preserves
  full typing control across partitions.  This presentation briefly
  exposes the principles of Ada's distribution model, then shows
  the possibilities with life demos across different machines and
  operating systems.

15:00-15:20 - Writing Shared Memory Parallel Programs in Ada - by
              Jan Verschelde - University of Illinois at Chicago, USA

  Multitasked Newton's Method for Power Series Tasks in Ada are
  effective to speed up computations on multicore processors.
  In writing parallel programs we determine the granularity of the
  parallelism with respect to the memory management.  We have to decide
  on the size of each job, the mapping of the jobs to the tasks,
  and on the location of the input and output data for each job.
  A multitasked Newton's method will show the effectiveness of Ada
  to speed up the computation of power series.  This application
  belongs to the free and open source package PHCpack, a package to
  solve polynomial systems by polynomial homotopy continuation.

15:30-15:50 - Spunky: a Genode Kernel in Ada/SPARK
              by Martin Stein - Genode Labs, Germany

  The Genode OS framework is an open-source tool kit for building
  highly secure component-based operating systems scaling from
  embedded devices to dynamic desktop systems.  It runs on a variety
  of microkernels like SeL4, NOVA, and Fiasco OC as well as on Linux
  and the Muen SK.  But the project also features its own microkernel
  named "base-hw" written in C++ like most of the Genode framework.
  Spunky is a pet project of mine.  Simply put it's an approach to
  re-implement the design of the "base-hw" kernel first in Ada and
  later in SPARK with the ultimate goal to prove its correctness.
  It is also an opportunity to learn how Genode can benefit from
  Ada and SPARK in general and promote the use of safety-oriented
  languages in the project.

16:00-16:50 - Alire: Ada Has a Package Manager - by Alejandro R. Mosteo
              - Centro Universitario de la Defensa, Spain, Pierre-Marie
              de Rodat and Fabien Chouteau - AdaCore, France

  Alire (Ada LIbrary REpository) is a package manager project for the
  Ada/SPARK community.  The goal of a package manager is to facilitate
  collaboration within the community and to lower the barrier of entry
  for beginners.  In this talk we will present the Alire project,
  what it can do for you and how you can contribute and give more
  visibility to your Ada/SPARK projects.  We will also provide a
  tutorial to show how to use Alire to create a library and then
  publish it for others to use.

17:00-17:20 - Protect Sensitive Data with Ada Keystore
              by Stephane Carrez - Twinlife, France

  Storing passwords and secret configuration is a challenge for
  an application.  Ada Keystore is a library that stores arbitrary
  content by encrypting them in secure keystore (AES-256, HMAC-256).
  The talk presents the project and shows how to use the Ada Keystore
  library to get or store secret information in a secure manner.
  The presentation explains how the Ada features such as types,
  protected types, tasks, pre/post conditions have helped during the
  development of this project.

17:30-17:50 - EUgen: a European Project Proposal Generator
              by Riccardo Bernardini - University of Udine, Italy

  Whoever wrote a research project proposal knows how much unnerving
  it can be.  The actual project description (made of work packages,
  tasks, deliverable items, ...) has lots of redundancies and
  cross-references that makes its coherency as frail as a house
  of cards.  For example, if the duration of a task is changed most
  probably you'll need to update the effort in person-months of the
  task and of the including work package; you must update the start
  date of depending tasks and the deliver date of any deliverable
  items; most probably also the WP efforts and length need update too;
  not to mention the need of updating all the summary tables (summary
  of efforts, deliverable, ..) and the GANTT too.  Any small changes is
  likely to start a ripple of updates and the probability of forgetting
  something and getting an incoherent project description is large.
  Given the harsh competition in project funding, if your project is
  incoherent the probability of getting funded is nil.

  One day I got sick of this state of affair and I wrote my own project
  generator: 10k lines of Ada code that reads a non-redundant project
  description from a simple-format text file and produces a set of
  files ready to be imported in the proposal, GANNT chart included.
  The user can specify dependences between different items (e.g.,
  this deliverable is produced at the end of this task, this milestone
  is reached when this deliverable is available, this task must begin
  after this other task...) and the program automatically computes all
  the dates.  Both input parser and output processors are implemented
  using a plugin structure that makes it easy to write new parsers to
  read different formats or new output processors to produce output in
  different formats.  Currently a parser for a simple ad-hoc format
  and an output processor that produces LaTeX files are provided; a
  new processor based on the template expander *protypo* is currently
  being implemented.  Did I eat my own dog food?  Well, yes, I did.
  I used it to write a proposal (still under evaluation) and it served
  me well.

18:00-18:20 - On Rapid Application Development in Ada
              by Tomasz Maluszycki - Poland

  In the Ada world we typically write mission critical software that
  just has to work, but in a way one could argue that a lot more
  software is mission critical than is usually admitted.  What does
  it take to actually perform rapid application development in any
  language?  Can we do it in Ada and why would we do so?  A quick
  look into some language features that can be [ab]used for enabling
  quick development of 'just a prototype' - which, as practice shows
  is often deployed into production, usually without proper quality
  controls and predictable outcome.

18:30-18:50 - Ada-TOML: a TOML Parser for Ada
by Pierre-Marie de Rodat AdaCore, France

  The world of generic structured data formats is full of contenders:
  the mighty XML, the swift JSON, the awesome YAML, ...  Alas, there
  is no silver bullet: XML is very verbose, JSON is not convenient
  for humans to write, YAML is known to be hard to parse, and so on.
  TOML is yet another format whose goal is to be a good configuration
  language: obvious semantics, convenient to write and easy to
  parse in general-purpose programming languages.  In this talk,
  I'll shortly describe the TOML format and show a few use cases in
  the real world.  I'll then present the ada-toml library itself:
  its high-level architecture and examples.

18:50-19:00 - Informal Discussions & Closing

  Informal discussion on ideas and proposals for future events.

*** More information on Ada Developer Room

Speakers bios, pointers to relevant information, links to corresponding
FOSDEM pages, etc., are available on the Ada-Belgium site at

We invite you to attend some or all of the presentations: they will
be given in English.  Everybody interested can attend FOSDEM 2020;
no registration is necessary.

We hope to see many of you there!

Dirk Craeynest, FOSDEM Ada DevRoom coordinator (for Ada-Belgium/Ada-Europe/SIGAda/WG9)