Posts Tagged ‘Fosdem’

Back from the Fosdem


As usual Fosdem was crowdy. On Saturday, I decided to not try to enter in the container Devroom (whose queue was insane), and went instead to the Legal Devroom. This year, they decided to change their organisation and to have debates between people defending contrary positions (should licenses reflect ethical aspects, are the 4 freedoms too old, …)

Legal Devroom at Fosdem 2020

Unfortunately, as they didn’t manage to have people really having different opinions on the topics, it sounded a bit artificial sometimes, and didn’t really allow to enter more deeply in the subject, as a more classical roundtable would have allowed. 4 debates were probably too much, and having 1 or 2 (with real oponents, but respecting each other) and 2 or 3 round tables would probably be a better balance. Anyway, was even fun sometimes (can you believe that from a large set of lawyers ;-)) I passed the day in that room, where you could seat without issue and have good content.

One of the debates was around Bill of Material (BoM) vs source code delivery. And I really thought they didn’t go into enough details. Because it’s very difficult to reproduce software. And while BoM is hard to automate, and mostly useful for corporations that want to reduce risks (what they think BTW), providing the source, isn’t sufficient either. First as the GPL rightly points out, it’s not enough. You also need to provide the receipes to build the software. A Makefile e.g. helps a lot building the code the correct way. But what about the docs, the design schemas, the versions of the tools needed to build (or tested successfully contrary to others , gcc v5 vs 8 vs 10 ?), the precise versions of the dependencies (where doing npm install e.g. defeats tracking IMO) as you can only ensure that your software is working on a very specific environment (and reproduceable builds are linked to that). So clearly neither providing the sources + build files is sufficient, neither the BoM as it rarely provides all the required details, and would be a nightmare to reproduce, which creates an interesting challenge that shouldn’t be minimized when the produced software runs in a train, plane, or medical equipment of course. Which can lead you to re-read the excellent trusting the trust !

What they should also do is invite more european lawyers, as they are underrepresented, and some topics – author’s right vs copyright, EU law vs US law are not well enough taken in account IMHO. Contacting the ones behind EOLE would be a good start.

La Grande Place de Bruxelles, lieu des agapes nocturnes 😉

The evening is of course what most fosdemers like, because it’s time to meet again with friends you don’t see that often and enjoy beer (for the ones who like that !) and for me rather carbonade, wafles and more over chocolate 😉 As often, it was great to have dinner with Anne and Erwan (Kernel Receipes managers among other stuffs) and some of their friends. It always makes insightful discussions.

On Sunday, I decided to walk around and explore booths (I was needing some stickers for a new laptop !) which is a nice pretext to meet more relatives or make new ones ! Of course, each time I try to discuss with my fellow grenoblers (Vates, Algoo), or the french mafia, which lead me this year to … an HPE booth 🙂

LinuxBoot on a HPE ProLiant server DL 360 Gen10+ Beta

As Jean-Marie Verdun is back at HPE, he is also helping us with initiatives around LinuxBoot on our ProLiant servers (as shown on the left), and OpenBMC as well (while the one brought was still running the iLO Firmware as shown here on the right). It’s the first time it was ever demonstrated outside of a Lab, so big kudos to the team, and I’m sure lots of customers waiting for this will be very eager to ask for a test unit 😉

As usual Fosdem was crowdy. On Sunday, one way to test that is to go to the Janson auditorium, where keynotes happen. And when Jon Maddog is on stage, you can’t find a seat in it !!

Keynote of Jon Maddog Hall

It’s the first time I come without being a speaker, and that’s a bit more comfortable, as you don’t have to prepare material and deliver it, but as I am missing sharing info with others, I’ll try again next year to propose content, and I should have new one available for the audience. Stay tuned.

Happy 20th birthday to Fosdem, the greatest FLOSS event !

Attending Fosdem 2020


Well, after trying to speak again at FOSDEM 2020, and despite not being retained as a speaker, I’ll anyway attend this year’s FOSDEM as this is one of the best FLOSS Events on the planet and because that’s where you can meet with so many luminaries. And the food is also very good in Brussels, so I can’t wait for the 2 dinners I’ll pass with friends over there 😉 (ok, lunches are generally sandwishes based !)

Can’t say for once, meet you there, as it’s pretty difficult to find someone with so many devrooms or booths (maybe you’ll find me at the tracim one, as there is no Mageia one) at the same time, but that’s also why we like it.

And as I’m going on my own, without company support, you may find me more in the python room (to continue to learn on it) or stuff like CI/CD, containers, … or more probably talking with people 😉

Fosdem: always impressed

Université Libre de Bruxelles hosting Fosdem under the snow on saturday

While I’m coming back from Fosdem, A big Kudos to all the volunteers and the team in charge. It’s the largest and greatest FLOSS event WW. I’m always impressed by what a dedicated community can achieve. It was the most crowdy edition I’ve been able to attend. Some rooms were very difficult to enter in, with long queues in front of the door. So in order to attend the sessions you were interested in, you had to enter if possible 2 or 3 sessions in advance to be sure to have a seat for your preferred session ! What a success 😉 Drawback is it makes it difficult to change track, more over changing building as you’re sure to have to wait for the next session in that case.

Small part of the queues at lunch time at Fosdem

The logisitic is incredible, timing respected for the 700 sessions delivered with live videos taken, and when you are speaking you receive a mail less than 30 minutes after the end of your talk to ive you the link to review it ! Really awsome. The only drawback was the lack of VGA support on their recording system: only HDMI was available. By luck my laptop had also a Display Port output so adapters were available so you could project. However, some speakers had issues with that setup, such as during the upt session where no vide cold be used at all. The speaker, Cyril Roelandt, made the full presentation without slides, explaining event the architecture diagram in both a very professional way and with a marvelous sense of humour. As he said we will long remeber his talk. But also for the idea and the tool he is working on. We had a quick hacking session afterwards and that was very insightful.

On saturday, the sessions I found interesting were on LibreOffice, the one on server side solution for generating ODF reports (much more interesting if you understand chinese for sure, and no I don’t 🙂 and the other one on relaunching the ODF adoption TC at OASIS, where my proposal of useing the term Advocacy instead of Marketing was well received (public sector organizations are much less keen to participate to a “Marketing” TC, but much more to an “Advocacy” one). Michael Meeks was as brilliant as always in his covering of LibreOffice Online.

Another initiative of interest was the presentation of the LibreHosters, even if they have less hosters WW currently than the CHATONS in France, while aiming at the same goal, neutral and transparent hosting using FLOSS.

I attended the Eventyay presntation to see whether they were supporting multi-site events sur as our FLOSSCon, but it seems they don’t do better than the OSEM we use. I stayed in the room and followed the sessions on OCP and Skulls, but the more interesting one for me was the following on bmclib. The engineers at have published under the Apache v2.0 license their internal work on BMC abstraction through an API. For someone like me interested by Redfish it was a must attend session 😉 And the discussion outside the room which followed was as well.

I had a nice dinner with some members of the french FLOSS community I had not seen for a long time and that’s one of the reason for me to attend Fosdem.

I had a very short night after that as I proposed to the distribution room to take an empty slot due to the illness of a speaker and to use a proposal I had made and that had not been retained to fill the gap, which was accepted. Of course, it was the first session in the morning, while I also had the last of the day 😉 So slides and demo to verify at night and here you go after 4 hours of sleep you’re back to the event 😉

So I talked about Packaging for Mageia Linux with Docker containers, which I could demonstrate in front of a nearly full room (50+ people) at that time in the morning, after the previous night ! Waoh ! What a level of commitment from the audience, I was really surprised. I stayed then in the distribution dev room to follow a similar presentation around Linux distributions, lifecycles, and containers which was in fact around the new Fedora modularity principle. The grub presentation following was too cryptic for me, as I don’t follow closely the project so too many elusive sentence were given so I could reall yunderstand the new devs made. But I had a seat for the upt talk mentionned upper 😉

I then moved after the upt hacking session and lunch to the Hardware enablement devroom to be ready for my formerly only official session of the event. It was dedicated to Redfish: the new standard for a Software Defined Infrastructure and I was surprised again so that so many people preferred to be there rather than drinking a beer.

I didn’t had time to see the kenote of J.M. Hall as I had to catch my train afterwards. So again big kudos to all the people involved in that event, who make them the FLOSS reference and surely an inspiration for our own FLOSSCon 😉

Slides are already available and videos should be soon as well. See you hopefully next year there !

Meet at Fosdem 2019 !


It’s that period of the year again where we start preparing for Fosdem ! Even if preparing for FLOSSCon at the same time !! And this year, this will be my first Open Source Event since my illness last year. I tried to attend the Paris Open Source Summit 2018, but I made my travel request too late to be accepted internally, so I missed it (easy excuse to refuse, but my fault indeed). This time I made it early enough, but didn’t get support. I must confess this is disappointing, and it has been a long time since I missed an event due to that. But I’ll go anyway, paying myself the travel and hotel in Brussels, and of course, as a consequence, there will be no HPE logo on my slides.

Too bad as I’ll be speaking about Redfish, the new standard for a Software Defined Infrastructure, which is a topic important for HPE and our SDI approach. I’ll then pass more time covering python-redfish on which I’ve been able to restart the work recently.

I’m afraid it’s a tendency in large corporations, not dedicated to FLOSS as it also happened at Intel for another speaker. The risk that corporations take is that their voice is less heard in our communities and also that they’re much less trusted, and thus their speakers not chosen in the future, especially for such community oriented events.

Anyway, I’ll be there, and will meet also the Mageia community gathering over there and enjoy the many conferences of course.

Fosdem is here again !


In addition to next week event participation for HPE in Cannes, I’ll be at Fosdem the coming week-end in Brussels. And I’m so happy to be able to be there again, as it has been since 2012 that i’ve not participated.

This time, it’s not MondoRescue or related. But the presentation that was selected is part of the Distributions dev room. The title is “Building Linux distribution packages with Docker”. I’ve been using Docker to help in building packages since a long time now, and latest version is now supporting it pretty well to help me package my upstream projects. But I want to cover a different aspect.

Docker has brought an ease of use without comparison with VMs typically to build native upstream distribution packages. Where before it was needed to
launch a complete environment, copy the sources into it, invoke the build tools to create the packages and then copy them back to the host, Docker has made all these steps much easier and straight forward, allowing for more rapid package production and automation.

This presentation will show a detailed use case for building packages for both Mageia and Fedora with their respective bm or koji tools encapsulated in Docker containers. It should help any upstream packager adopt a similar approach to make his packaging task a breathe.

Will be there Saturday the 30th of January (my 20′ talk is at 11:30 in K.4.201) and I’ll stay till Sunday early afternoon. Feel free again to catch me and discuss. When not in my talk, I’ll be in other sessions and also around the Mageia Booth.

And come in mass as this is one of the best FLOSS event WW. Really !

Mageia 4 on time for Fosdem but …


Anne has announced that Mageia 4 is now available just on time for Fosdem !

But I won’t be at Fosdem this year again (I’m attending an HP event instead)

And while there are good reasons for Mageia to be my distribution of choice, I won’t update my laptop this week, as I’m presenting during this HP event, and want to stay on the safe side. And for my home computer, well, I generally do it after my laptop 😉

But anyway, great job done by the Mageia team and lots of good apps in this new version, including OpenStack and UEFI ! Enjoy and try it. It’s really worth it !

Fosdem 2011 Report – Day 2


Second day at Fosdem. This year, I decided to go and visit the perl community, as I’m more and more coding in perl, and would like to learn more about news, additional modules, and meet more perl hackers !

Gabor SzaboUsing Perl6 today
No real 6.0 announce. Already published and improving. Gabir gave lots of info on perl5/perl6 differences:

  • hash element prepended with % (including pointers)
  • array element prepended with @ (including pointers)
  • Expressions in {} are interpreted and executed
  • Variable may be typed
  • Chaining conditions 23 <= $age <= 42 (avoids and)
  • Junction if $age == 2|3|4 (avoids or)
  • Easier access to array elements (including in pairs, …) with missing parts managed – matrix type of computation
  • New ‘Z’ operator which allows array combination
  • lazyness allow infinity to exist: doesn’t generate the full list anymore from scratch. my @x = 1..Inf exists !
  • functions parameters number are checked, type as well. So we can now pass multiple arrays in functions without attribution issue. It also manages optional params.
  • Types can be defined by the user. Constraints can be put on params.
  • Operators can also be combined (Z and ~ – concat) on arrays e.g. (Notion of meta operator, hyper operator, user created operator)
  • Perl 6 manages classes methods (public, private)
  • Regex also have evolved a lot – Grammars can also be defined (based on regex) and inherited as well.

One quote I really liked: “Perl6 is fully buzzword compatible”.
A very intresting presentation on perl’s future, well present in fact, even if I’ve not tested it up to now. Looks promising but a huge change.

Damien Krotkine (Curses::Toolkit)

Damien advertized the French perl event (French Perl Worskhop 2011) in Paris, Perl Dancer community, his book, Perl Moderne. As it was also warmly recommended by Dominique Dumont (author of Config::Model), I bought it, and even had the author’s signature on it !! I started it in the train back from Brussels, and indeed it’s a good one, focussing on specific topics, (so not a bible), but very nice to read, and informative. Of course, as you guessed with the name, it’s in french 😉

Damien then talked briefly about Curses::Toolkit, as all these advertizing took a bit too much time IMO. He covered:

  • Curses::Toolkit curses binding for perl inspired by GTK
  • Why Curses::Toolki ? Existing Curses is too low level, Curses:UI buggy and inflexible; Curses::Widget
  • Curses::Toolkit real toolkit with widgets and events, OO, kbd, mouse, timer events driven, using POE.
  • Curses::Toolkit uses themes and is very easy to customize

Damien then concluded by making an impressive demo of modern caracter based interface

Mark Overmeer (Perl Data Structures)

Excellent talk by Marc who covered in 1 hour as many topics as he had on his list, without exhausting it !

He underlined:

  • the importance of scalars in perl. Used for everything. Consumes 28 bytes each (because they can store multiple values (dual var/$!)
  • False values in perl: undef, 0, 0.0, “”, “0” (the most dangerous). die "no fn" unless $fn is a mistake as filename “0” is false even if it exists. Recommends using length instead. $x = $temperature || 20 is also a mistake if temperature is 0. Recent perl provides operator // for that for undefined
  • An array is a copy of a list of params (he insisted on difference between list and array)
  • Context is the specificity of perl. An expression can not be understood without its context in perl. There is a void context. An array in scalar context provides its length. There is list context (@a = 3; works). Good way to loop on arrays foreach my $x (@a) { print $x; }. $x[3] is a promise of a scalar.
  • Array affectatation: @x[1, 3, -1] = 6..8. Also valid is (getpwnal $x)[3,-1] (gives uid/shell). getpwnam in list context gives the 10 elements. In scalar gives the uid (you only know by reading the man page).
  • In hashes, you can delete elements with delete $a{b} . $a{b} = undef is different. if exists $a{b} gives true with undef. if defined $a{b} gives false.
  • Array knows the order, hash doesn’t and is 20 times less performant. $h{time} is a hash but $h{(time)} calls the time function and get result as a key. @h{'x','y','z'} = 1..3 works (again promise of an array) and creates a hash initialized.
  • Tip my %str2errno = reverse %errno2str (list context). Another tip: @h{keys %y} = values %y;

Dense and useful session.

I took a pause and came back half an hour later, time to say helllo to Bdale, and some Mageia friends.

Stefan Hornburg (Template::Zoom)

I had more problems finding that talk interesting. I may not be the right audience, but also the monocord sound of the voice wasn’t helping. Stefan explained that:

  • Base is separation of Web design and programming
  • Some templates do not respect this (Template::Toolkit, HTML::Zoom)
  • T::Z provides static HTML file and spec file
  • Use Interchange (FLOSS e-commerce server) and ITL language
  • Config can be done with XML or Config::Scoped

Examples were given.

SawyerX (Moose: Postmodern metaclass-based object system for perl5)

After the previous talk, it was refreshing to see the enthusiasm that SawyerX deployed to convince us how Moose was wonderful. And I must confess that even if I’m not a big fan of Object Oriented approach (showing my age here !), I was ready to try after that talk. Exceelent one IMO.

First he advocated Then he went on explaining that objects in perl 5 is a blessed hashref (bless {}, __PACKAGE__; (name space of the package), that the new method is manual, self is the invocant and he underlined problems with std Object in perl. And hows that half code is really needed.

He went on with Moose.
define an object in Moose is as simple as:

package ...
use Moose

has name => (
is => 'rw', # or ro
isa => 'Str', # Attributes have type constraints Str, Int, ArrayRef, Regexp, HashRef[Str] + inheritance + own types
# there are setter/getter methods

inheritance is as simple as:
extends 'ParentClass'; (may have multiples)

Roles are behaviours (not a class of its own) is as simple as:
with 'a_role'; (may have multiples)

Hooks are ways to change the behaviour from inside Moose:

before leaving => sub {
my $self = shift;
after leaving => sub {
my $self = shift;
around login => sub {
my $orig = shift;
my $self = shift;
$self->ecurity_check and $self->$orig(@_); # runs the login method only when security check is ok

Some attributes:

default => 3,
default => sub { {} }, # but rather use builder
required => 1, # it's required
lazy => 1, # Only do the action as late as possible, especially for infinite loops
builder => 'build_it' # Moose doesn't know it so you have to code
sub build_it {
my $self = shift;
clearer => 'clear_it', # Moose knows it so you have to code, it clears the value as it never existed,
# but do not go back to default
predicate => 'has_it' # it checks that an attribute value exists (including undef) - doesn't create anything
lazy_build => 1 # same as lazy =>1 + lots

The final quote said: “Moose produces beautiful, clean and stable code and is here to stay“.

Additional modules:
MooseX:: SimpleConfig automatic creation of structure from config file
Catalyst is now based on Moose. Perf penalty is minimal especially for long running apps.

Incredible talk. Worth having no lunch for hearing it.

Then I attended an unplanned session, not on the paper program:

Alex BalhatchetWriting readable and maintainable perl

That talk covered some good tips and tricks on how to write perl code that is just here to stay as well !
Generic advises:

  • use strict is mandatory (avoids typos)
  • use warnings
  • use autodie # make open() and others die on error
  • use feature ‘say’;
  • Advertise CPAN (90000 – mostly well documented) makes code more readable/maintainable. Problem of choice (use testers report, rating date). Task::Kensho gives good recommendations.

Best practices:

  • code in paragraphs
  • throw exceptions (rather than error codes) with die (catch them with eval, or now try/catch
  • use builtins (use readline($fh), warn instead of print STDERR, glob instead of
  • use Scalar::Util List::Util LIst::MoreUtils (comes with most perl) brings min, max, last, first, …
  • Be consistent with existing code base (inconsistent is worse than unreadable)
  • Make sure there are tests, and good tests.
  • Perl::Critic (and perlcritic) does static analysis (referes the whole Perl Best Practices book !!)
  • Perl::Tidy (and perltidy) makes code more readable.

The presentation is available at

Gabor SzaboPadre
Gabor came back on scene to present Padre, IDE in perl5 for perl. Focus on beginers or occasional users.
I was interested for my son to whom I teach some perl now, and who would be a perfect candidate to use that tool (/me being a vi/vim/gvim user since 24 years, and not ready to change ;-))
He underlined that use diagnostics improves error msgs. He mde a demo of multiple Padre features. ALt-/ shows the contextual menu (for keyboard people !). Variable replacement based on content (differentiate $x from $x[0] and $x{“foo’} and replaces the right one.

Paulo CastroPackaging Perl and it’s deps

Paulo explained his problem: delivering a version of perl with all its modules (400+) for its applications.
He showed multiple possibilities and the one finaly retained, which consists of having a single package including perl and all the CPAN modules built for that version, using a local mirror to build it.
He also mentioned pmtool for inventory, CPAN::Site module and the CPAN Distroprefs features orientation.

Even if interesting, as a packager myself, I still find odd to use that approach, instead of using the packaging format of the underlying Linux distribution to perform this. Even for 400+ packages. In fact for that type of work, I’d myself pick and chose the Linux distribution having the most perl packages already done, and provide the rest myself. Debian or Mandriva/Mageia could be a good start in that perspective.

It was then time to pack everything and go to the train station and back to Grenoble. The 4 and half hours in the train were used to clean up my perl code in, as that series of presentations gave me lots of ideas and energy to do it !!

i look forward participating next year, and hopefully, doing submissions earlier as a speaker again.