Subscribe: Planète GNOME-FR
Added By: Feedage Forager Feedage Grade C rated
Language: French
code  darcs record  darcs  des  git  gnome  gst  les  lot  new  part  pour  record  software  time  ubuntu  usb  work 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Planète GNOME-FR

Planète GNOME-FR

Planète GNOME-FR -


Bastien Nocera: More Bluetooth (and gaming) features

Fri, 15 Dec 2017 15:57:52 +0000

In the midst of post-release bug fixing, we've also added a fair number of new features to our stack. As usual, new features span a number of different components, so integrators will have to be careful picking up all the components when, well, integrating.

PS3 clones joypads support

Do you have a PlayStation 3 joypad that feels just a little bit "off"? You can't find the Sony logo anywhere on it? The figures on the face buttons look like barbed wire? And if it were a YouTube video, it would say "No copyright intended"?

Bingo. When plugged in via USB, those devices advertise themselves as SHANWAN or Gasia, and implement the bare minimum to work when plugged into a PlayStation 3 console. But as a Linux computer would behave slightly differently, we need to fix a couple of things.

The first fix was simple, but necessary to be able to do any work: disable the rumble motor that starts as soon as you plug the pad through USB.

Once that's done, we could work around the fact that the device isn't Bluetooth compliant, and hard-code the HID service it's supposed to offer.

Bluetooth LE Battery reporting

Bluetooth Low Energy is the new-fangled (7-year old) protocol for low throughput devices, from a single coin-cell powered sensor, to input devices. What's great is that there's finally a standardised way for devices to export their battery statuses. I've added support for this in BlueZ, which UPower then picks up for desktop integration goodness.

There are a number of Bluetooth LE joypads available for pickup, including a few that should be firmware upgradeable. Look for "Bluetooth 4" as well as "Bluetooth LE" when doing your holiday shopping.

gnome-bluetooth work

Finally, this is the boring part. Benjamin and I reworked code that's internal to gnome-bluetooth, as used in the Settings panel as well as the Shell, to make it use modern facilities like GDBusObjectManager. The overall effect of this is, less code, less brittle and more reactive when Bluetooth adapters come and go, such as when using airplane mode.

Apart from the kernel patch mentioned above (you'll know if you need it :), those features have been integrated in UPower 0.99.7 and in the upcoming BlueZ 5.48. And they will of course be available in Fedora, both in rawhide and as updates to Fedora 27 as soon as the releases have been done and built.


Bastien Nocera: UTC and Anywhere on Earth support

Wed, 06 Dec 2017 16:06:08 +0000

A quick post to tell you that we finally added UTC support to Clocks' and the Shell's World Clocks section. And if you're into it, there's also Anywhere on Earth support.

You will need to have git master versions of libgweather (our cities and timezones database), and gnome-clocks. This feature will land in GNOME 3.28.

Many thanks to Giovanni for coming up with an API he was happy with after I attempted a couple of iterations on one. Enjoy!

Update: As expected, a bug crept in. Thanks to Colin Guthrie for spotting the error in the "Anywhere on Earth" timezone. See this section for the fun we have to deal with.

Pascal Terjan: When faster WiFi means unusable connection

Mon, 04 Dec 2017 11:14:05 +0000

I recently moved home and got FTTC with PlusNet, the speed is good when measuring (almost the advertised 80Mb/20Mb) but the connection was unusable due to TCP connections hanging every few minutes (very annoying with ssh but screen helps, worse when using a website for a payment and needing to retry and trust you will only be charged once).

Yesterday I decided to sit down and investigate. Router has logs which were quite helpful. A lot of things like OUT: BLOCK [9] Packet invalid in connection (Invalid tcp flags for current tcp state: TCP []:54426-​>[]:443 on ppp3)

This followed the laptop being seen moving from interface ath10 to interface ath00 and it was moving back and forth quite often.

Looking at the logs on one of the laptops those switches looked like wlan0: disconnect from AP b8:d9:4d:41:76:fb for new auth to b8:d9:4d:41:76:fa

What happened is that default settings on PlusNet router is to have “identical” 2.4GHz and 5GHz networks so the devices believe they are the same network and switch between AP, but they are actually different and the connection tracking gets reset each time such switch happens.

Disabling the 5GHz network made my connection usable, I could probably just change its settings to make it separate.

Dave Neary: FOSDEM 2018 – SDN/NFV DevRoom Call for Content

Wed, 01 Nov 2017 16:03:02 +0000

The SDN & NFV DevRoom is back this year for FOSDEM, and the call for content is open until November 16th. Submissions are welcome now!

Here’s the full announcement:

We are pleased to announce the Call for Participation in the FOSDEM 2018 Software Defined Networking and Network Functions Virtualization DevRoom!

Important dates:

  • Nov 16: Deadline for submissions
  • Dec 1: Speakers notified of acceptance
  • Dec 5: Schedule published

This year, as it has for the past two years, the DevRoom topics will cover two distinct fields:

  • Software Defined Networking (SDN), covering virtual switching, open source SDN controllers, virtual routing
  • Network Functions Virtualization (NFV), covering open source network functions, NFV management and orchestration tools, and topics related to the creation of an open source NFV platform

We are now inviting proposals for talks about Free/Libre/Open Source Software on the topics of SDN and NFV. This is an exciting and growing field, and FOSDEM gives an opportunity to reach a unique audience of very knowledgeable and highly technical free and open source software activists.

This year, the DevRoom will focus on the emergence of cloud native Virtual Network Functions, and the management and performance requirements of those applications, in addition to our traditional focus on high performance packet processing.

A representative, but not exhaustive, list of the projects and topics we would like to see on the schedule are:

  • Low-level networking and switching: IOvisor, eBPF, XDP, DPDK,, Open vSwitch, OpenDataplane, Free Range Routing, …
  • SDN controllers and overlay networking: OpenStack Neutron, Calico, OpenDaylight, ONOS, Plumgrid, OVN, OpenContrail, Midonet, …
  • NFV Management and Orchestration: ONAP, ManageIQ, Juju, OpenBaton, Tacker, OSM, network management,, …
  • NFV related features: Service Assurance, enforcement of Quality of Service, Service Function Chaining, fault management, dataplane acceleration, security, …

Talks should be aimed at a technical audience, but should not assume that attendees are already familiar with your project or how it solves a general problem. Talk proposals can be very specific solutions to a problem, or can be higher level project overviews for lesser known projects.

Please include the following information when submitting a proposal:

  • Your name
  • The title of your talk (please be descriptive, as titles will be listed with around 250 from other projects)
  • Short abstract of one or two paragraphs
  • Short bio (with photo)

The deadline for submissions is November 16th 2017. FOSDEM will be held on the weekend of February 3-4, 2018 and the SDN/NFV DevRoom will take place on Saturday, February 3, 2017. Please use the FOSDEM submission website to submit your proposals (you do not need to create a new Pentabarf account if you already have one from past years). You can also join the devroom’s mailing list, which is the official communication channel for the DevRoom.

The Networking DevRoom 2018 Organization Team

Okki: Sortie de GNOME 3.26

Thu, 14 Sep 2017 17:21:48 +0000

Ça y est. Le tout nouveau GNOME 3.26 est disponible. allowfullscreen="allowfullscreen" frameborder="0" height="371" src="" width="660"> Et cette fois-ci, le bureau lui-même a droit à quelques nouveautés bienvenues. Dans la vue d’ensemble des activités, la taille des vignettes des fenêtres a été augmentée, ce qui rend leur sélection plus facile. Et lors d’une recherche, la mise en page a été retravaillée pour pouvoir afficher plus de résultats, tout en étant plus lisibles. Il est également possible d’effectuer des recherches sur les actions du système (déconnexion, redémarrage, mise hors tension, verrouillage de l’écran…). Lors de la minimisation ou de la maximisation d’une fenêtre, de nouvelles animations font leur apparition. Et lorsque aucune fenêtre n’est maximisée, la barre supérieure devient désormais transparente, donnant l’impression d’un bureau plus grand. Autre nouveauté importante, l’interface des Paramètres a été complètement remaniée et affiche désormais un panneau latéral pour pouvoir naviguer entre les différents modules. Les paramètres concernant le réseau et l’affichage ont également été retravaillés. Le nouveau Centre de contrôle Le reste des applications n’est pas en reste. Fichiers peut désormais rechercher dans le contenu même de vos documents (fichiers texte, PDF, LibreOffice ou MS Office…). Les onglets fermés peuvent être restaurés à l’aide du raccourci clavier Ctrl + Shift + T. Les archives peuvent être décompressées sur des serveurs distants. Le navigateur Web peut désormais synchroniser vos signets, mots de passe, historique de navigation… au travers du service Firefox Sync. Synchronisation qui fonctionne tout aussi bien entre les deux navigateurs que sont Web et Firefox. Fin 2017, GNOME découvre enfin les émojis en couleur Et bonne nouvelle, ces derniers pourront désormais être insérés bien plus facilement dans vos messages et documents, à l’aide d’un sélecteur graphique. Certaines applications, comme le client IRC Polari, en tirent d’ores et déjà parti. Les émojis sont désormais en couleur Machines peut désormais partager des dossiers entre l’hôte et l’invité. On peut enfin ajouter des événements récurrents dans l’agenda. To Do prend désormais en charge le service Todoist. Le Visionneur de documents prend désormais en charge les documents Adobe Illustrator et CBR… Et bien évidemment, en plus des principales nouveautés, nous avons droit à de nombreuses petites améliorations bienvenues un peu partout, ainsi que d’innombrables corrections de bugs. Mais je ne vais pas refaire les notes de version, qui n’ont malheureusement pas encore été traduites en français, mais que je vous invite tout de même à parcourir. Vous pouvez également jeter un œil au billet de blog de Georges Basile Stavracas Neto, qui donne quelques infos supplémentaires, tout en proposant diverses vidéos mettant en avant certaines nouveautés. Cette nouvelle version est donc un très bon cru, mais qui comporte tout de même son lot de déceptions. Certaines fonctionnalités particulièrement attendues, comme la juxtaposition de quatre fenêtres ou la mise à l’échelle fractionnée nécessaire à la bonne prise en charge des écrans HiDPI n’étaient malheureusement pas prêtes à temps et seront donc repoussées à la prochaine version, prévue pour le mois de mars 2018.[...]

Okki: Sortie de Gradio 6.0

Wed, 13 Sep 2017 16:13:03 +0000

(image) Gradio 6.0

Pour rappel, Gradio vous permet de découvrir et d’écouter des radios en ligne.

Au niveau des nouveautés, nous noterons :

  • la possibilité de regrouper nos stations en collections
  • la possibilité de pouvoir trier nos stations selon différents critères (nom, langue, pays, votes…)
  • l’ajout d’une recherche étendue (la petite flèche pointant vers le bas, à droite de la boîte de recherche) permettant de sélectionner un pays ou une langue
  • la possibilité d’ajouter de nouvelles stations ou d’éditer les informations de stations déjà existantes (la base de données étant en ligne, chaque ajout ou modification est visible par l’ensemble des utilisateurs)
  • la bibliothèque peut désormais être exportée et importée
  • une barre latérale proposant un certain nombre d’informations sur chaque station peut désormais être affichée
  • un nouveau système de sélection fait son apparition
  • l’état de la connexion est désormais affiché dans la barre d’outils
  • l’application se reconnecte automatiquement après une déconnexion et elle consomme beaucoup moins de mémoire

Par contre, les années ont beau passer, il n’existe malheureusement toujours aucune traduction en français.

Frédéric Péters: Radio Esperanzah! 2017

Wed, 09 Aug 2017 07:06:30 +0000

Le mois d'août, depuis plus de dix ans, c'est souvent l'occasion de deux billets, un billet sur le GUADEC, rencontre annuelle du projet GNOME, cette année à Manchester, et un autre sur radio Esperanzah!, la radio du festival du même nom.

Certaines années, les agendas se calent parfaitement et ça fait deux semaines intenses, d'autres ça s'est mal mis et j'ai du choisir, cette année ça aurait pu se caler, tout juste, mais étant donnée ma participation déclinante dans GNOME, je suis resté sur le continent pour être en grande forme au festival.

Ne pas arriver épuisé et avoir réduit la voilure pendant l'année, ne plus assurer la captation des concerts, mais surtout être entouré d'une super équipe technique (Leslie, Susie, Pascal, Dimitri, Sylvain), ça a fait de cette édition quelque chose de neuf et très agréable, à en redemander.


Radiophoniquement, c'était aussi l'occasion d'organiser l'antenne différemment en inventant des blocs thématiques, bien sûr ce n'était pas parfait mais c'était ici aussi du neuf qui a pas mal revigoré le groupe. Il y a quantité de podcasts souvenir sur le site de la radio, d'autres à venir encore selon ce qu'on arrive à produire.

Et puis c'était des concerts, des nuits blanches, de l'antenne à pas d'heure, une perf d'AN5, une interview pour Radio World International pas vue venir, des éclats de rire à en mourir.

Pascal Terjan: Success

Fri, 07 Jul 2017 14:24:18 +0000

In November 2012 I started running an irregular rebuild of all Mageia packages on x86_64, discarding the built packages, to just detect build breakages.

At first it was running a few times a month, now once a week, except before releases where I run it twice a week.

For the first attempt, on 2012-11-28, we had 10949 packages and 1104 failed to build (10%), by the time of the second attempt 3 weeks later we were down to 6.7% of build failures.

Since then, the distribution has been growing and this has helped detecting packages that needs to be fixed early, really helping for the mass rebuild of each release.

  • Mageia 3 was released on 2013-05-01 with 133 failures out of 11008 (1.2%), most of them being random failures due to the use of make -jN.
  • Mageia 4 was released on 2014-02-01 with 24 failures out of 11739 (0.2%)
  • Mageia 5 was released on 2015-06-20 with 42 failures out of 12455 (0.2%)
  • Mageia 6 is going to be released on 2017-07-XX with 0 failures out of 13650 (0%)!


For those interested in the technical details, I am using iurt (the same as we use on Mageia build system) to rebuild everything, creating a new chroot for each package.

I build 16 packages at once, with -j4, on a virtual machine having 32 cores and 200G ram which I use as tmpfs for the builds.

A full rebuild takes about 20 hours.

Frédéric Crozat: Synology PhotoStation password vulnerability

Tue, 13 Jun 2017 14:36:09 +0000

On Synology NAS, synophoto_dsm_user executable, part of PhotoStation package, was leaking NAS user password on the command line.

Using a simple shell loop to run "ps ax | grep synophoto_dsm_user", it was possible to get user and password credentials for user on the NAS who had PhotoStation enabled with their DSM credentials.

Fortunately, by default, shell access on the NAS is not available (by ssh or telnet), it has to be enabled by the admin.

Still, it is a bad practise to pass credentials to process using command line, which can be intercepted.

PhotoStation version 6.7.1-3419 or earlier is vulnerable. I've contacted Synology and they should release a security fix really shortly, as well as a CVE for it.

Update (June 13, 2017): Synology has released a CVE and the vulnerability is fixed in PhotoStation 6.7.2-3429 or later. Remember to update this package on your NAS !

Dave Neary: Of humans and feelings

Mon, 24 Apr 2017 15:55:32 +0000

It was a Wednesday morning. I just connected to email, to realise that something was wrong with the developer web site. People had been having issues accessing content, and they were upset. What started with “what’s wrong with Trac?” quickly escalated to “this is just one more symptom of how The Company doesn’t care about us community members”.

As I investigated the problem, I realised something horrible. It was all my fault.

I had made a settings change in the Trac instance the night before – attempting to impose some reason and structure in ACLs that had grown organically over time – and had accidentally removed a group, containing a number of community members not working for The Company, from having the access they had.

Oh, crap.

After the panic and cold sweats died down, I felt myself getting angry. These were people who knew me, who I had worked alongside for months, and yet the first reaction for at least a few of them was not to assume this was an honest mistake. It was to go straight to conspiracy theory. This was conscious, deliberate, and nefarious. We may not understand why it was done, but it’s obviously bad, and reflects the disdain of The Company.

Had I not done enough to earn people’s trust?

So I fixed the problem, and walked away. “Don’t respond in anger”, I told myself. I got a cup of coffee, talked about it with someone else, and came back 5 minutes later.

“Look at it from their side”, I said – before I started working with The Company, there had been a strained relationship with the community. Yes, they knew Dave Neary wouldn’t screw them over, but they had no way of knowing that it was Dave Neary’s mistake. I stopped taking it personally. There is deep-seated mistrust, and that takes time to heal, I said to myself.

Yet, how to respond on the mailing list thread? “We apologise for the oversight, blah blah blah” would be interpreted as “of course they fixed it, after they were caught”. But did I really want to put myself out there and admit I had made what was a pretty rookie mistake? Wouldn’t that undermine my credibility?

In the end, I bit the bullet. “I did some long-overdue maintenance on our Trac ACLs yesterday, they’re much cleaner and easier to maintain now that we’ve moved to more clearly defined roles. Unfortunately, I did not test the changes well enough before pushing them live, and I temporarily removed access from all non-The Company employees. It’s fixed now. I messed up, and I am sorry. I will be more careful in the future.” All first person – no hiding behind the corporate identity, no “we stand together”, no sugar-coating.

What happened next surprised me. The most vocal critic in the thread responded immediately to apologise, and to thank me for the transparency and honesty. Within half an hour, a number of people were praising me and The Company for our handling of the incident. The air went out of the outrage balloon, and a potential disaster became a growth opportunity – yes, the people running the community infrastructure are human too, and there is no conspiracy. The Man was not out to get us.

I no longer work for The Company, and the team has scattered to the winds. But I never forgot those cold sweats, that feeling of vulnerability, and the elation that followed the community reaction to a heartfelt mea culpa.

Part of the OSS Communities series – difficult conversations. Contribute your stories and tag them on Twitter with #osscommunities to be included.

Frédéric Crozat: Hackweek projet: Let's Encrypt DNS-01 validation for with Gandi LiveDNS

Mon, 27 Feb 2017 17:04:17 +0000

Last week was SUSE Hackweek and one of my projects was to get Let's Encrypt configured and working on my NAS.

Let's Encrypt is a project aimed at providing SSL certificates for free, in an automated way.

I wanted to get a SSL certificate for my Synology NAS. Synology now supports natively Let's Encrypt but only if the NAS accepts incoming HTTP / HTTPS connections (which is not always what you want).

Fortunately, the protocol used by Let's Encrypt to validate a hostname (and generate a certificate), Automatic Certificate Management Environment (ACME) has a alternative validation path, DNS-01, based on DNS.

DNS-01 requires access to your DNS server, so you can add a validation token used by Let's Encrypt server, to ensure you own the domain name you are requesting a certificate for.

There is a lot of ACME implementations, but very few supports DNS-01 validation with my DNS provider (

I ended-up using, fully written in shell script and tried to plug Gandi DNS support in it.

After some tests, I discovered Gandi current DNS service is not allowing fast changing DNS zone informations (which is somehow a requirement for DNS-01 validation). Fortunately, Gandi is now providing a new LiveDNS server, available in beta, with a RESTful HTTP API.

I was able to get it working quite rapidly with curl, and once the prototype was working, I've cleaned everything and created a pull request for integrating the support in

Now, my NAS has its own Let's Encrypt certificate and will update it every 90 days automatically. Getting and installing a certificate for another server (running openSUSE Leap) only took me 5 minutes.

This was a pretty productive hackweek !

Luis Menina: FOSDEM 2017

Wed, 01 Feb 2017 17:49:00 +0000

Février arrive, et le FOSDEM aussi ! L'occasion de revoir des amis, boire des bières et manger des carbonnades flamandes. Tiens, justement une recette qui aurait toute sa place dans GNOME Recipes. Cette nouvelle application aura d'ailleurs une petite conférence de présentation (20min). N'hésitez pas non plus à passer au stand GNOME poser vos questions ou faire un coucou, ou prendre des stickers ;)

Frédéric Péters: GUADEC 2016, Karlsruhe

Sat, 03 Sep 2016 13:50:11 +0000

Our annual gathering of GNOMies took place in sunny Karslruhe earlier this month and as usual it was great to meet again, and this year again GUADEC was the perfect reminder of the "GNOME is people" spirit.


Nice thing this year was that almost everyone was staying in the same place, or close; this favoured social gatherings even more than in the previous years. This was also helped by the organized events, every evenings, from barbecue to picnic, from local student-run bar to beer garden (thanks Centricular), and more.

And during the days? Interesting talks of course, like the one offered by Rosanna about how the foundation runs (and how crazy is the US bank system), or the Builder update by Christian, and team meetings.


Release team meeting by the pool

Thanks again to the GNOME foundation for supporting travels and accomodations for lots of persons (including me), and to the organizing committee, you made one great GUADEC.


Olivier Crête: Hello world!

Thu, 04 Aug 2016 03:25:48 +0000

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

Luis Menina: Karlsruhe, here we go !

Mon, 25 Jul 2016 20:01:00 +0000

Because I'm missing my GNOME friends, and because GUADEC is the best conference in the world :)


Guillaume Desmottes: GStreamer leaks tracer

Mon, 20 Jun 2016 10:03:00 +0000

Here at Collabora we are pretty interested at improving QA tools in GStreamer. Thibault is for example doing a great job on gst-validate ensuring that a lot of code paths are regularly tested using real life scenarios. Last year I added Valgrind support to gst-validate allowing us to automatically detect memory leaks in test scenarios. My goal was to integrate this as part of GStreamer's automatic QA to prevent memory leak regressions. While this can sometimes be a good approach to track leaks it has a few downsides: Valgrind can be very CPU and/or memory consuming which can be a problem with longer scenarios or on limited hardware such as embedded devices. As a result running the full tests suite with valgrind can take ages. Valgrind checks for any potential memory leak which can lead to a lot of false positives or leaks in low level system libraries on which we have few control. We usually work around this problem using suppression files but they are generally very fragile and depend a lot on the system/distribution which has been used for testing. I tried to solve these issues by trying a new approach using GstTracer. Tracers are a new mechanism introduced in GStreamer 1.8 allowing tools to hook into GStreamer internals and collect data. So I started by adding tracer hooks when GstObject and GstMiniObject are created and destroyed. Then I implemented a new tracer tracking the lifetime of (mini)objects and listing those which are still alive when the application is exiting. This worked pretty well but I needed a way to discard objects which are intentionally leaked (false positives). To do so I introduced a new (mini)object flag allowing us to mark such objects. I'm pretty happy with the result, while proof testing this tool I found and fixed dozens of leaks into Gstreamer (core, plugins and tests). Some of those fixes have already reached the 1.8.2 release. It's also very easy to use and doesn't require any external tool unlike Valgrind (which can be tricky to integrate on some platforms). To use it you just have to load the leaks tracer with your application and enable tracer logs: GST_TRACERS="leaks" GST_DEBUG="GST_TRACER:7" gst-launch-1.0 videotestsrc num-buffers=10 ! fakesink You can also filter out the types of GstObject or GstMiniObject tracked to reduce memory consumption: GST_TRACERS="leaks(GstEvent,GstMessage)" GST_DEBUG="GST_TRACER:7" gst-launch-1.0 videotestsrc num-buffers=10 ! fakesink This tracer has recently be merged into GStreamer core and will be part of the 1.9.1 release. As future enhancements I implemented live tracking and checkpointing support using signals like I already did in gobject-list a while ago. I'd also like to be able to display the creation stack trace of leaked objects to easily spot the leaked instances. Finally, I opened a bug to discuss the integration of the tracer with the QA system.[...]

Olivier Crête: GStreamer Spring Hackfest 2016

Wed, 25 May 2016 20:43:08 +0000

After missing the last few GStreamer hackfests I finally managed to attend this time. It was held in Thessaloniki, Greece’s second largest city. The city is located by the sea side and the entire hackfest and related activities were either directly by the sea or just a couple blocks away.

Collabora was very well represented, with Nicolas, Mathieu, Lubosz also attending.

Nicolas concentrated his efforts on making kmssink and v4l2dec work together to provide zero-copy decoding and display on a Exynos 4 board without a compositor or other form of display manager. Expect a blog post soon  explaining how to make this all fit together.

Lubosz showed off his VR kit. He implemented a viewer for planar point clouds acquired from a Kinect. He’s working on a set of GStreamer plugins to play back spherical videos. He’s also promised to blog about all this soon!

Mathieu started the hackfest by investigating the intricacies of Albanian customs, then arrived on the second day in Thessaloniki and hacked on hotdoc, his new fancy documentation generation tool. He’ll also be posting a blog about it, however in the meantime you can read more about it here.

As for myself, I took the opportunity to fix a couple GStreamer bugs that really annoyed me. First, I looked into bug #766422: why glvideomixer and compositor didn’t work with RTSP sources. Then I tried to add a ->set_caps() virtual function to GstAggregator, but it turns out I first needed to delay all serialized events to the output thread to get predictable outcomes and that was trickier than expected. Finally, I got distracted by a bee and decided to start porting the contents of to Markdown and updating it to the GStreamer 1.0 API so we can finally retire the old website.

I’d also like to thank Sebastian and Vivia for organising the hackfest and for making us all feel welcomed!


Didier Roche: ubuntu booth and conferences at jdll 2016

Sun, 03 Apr 2016 10:17:36 +0000

The "Journée Du Logiciel Libre" are a very nice event in Lyon (France) over a full week-end where the public is invited to come, talk and assist conferences around free software.

Of course, the Ubuntu-fr team is present and have a nice booth here.


I'm also present and give a talk about snappy Ubuntu Core against a full attendance room!


Followed by an hour workshop more focused on developers. A lot of discussions and interesting interactions here! (image)

That was a blast, thanks to everyone who attended! I'm still around tomorrow, do not hesitate to stop at the Ubuntu booth and have a chat!

Didier Roche: Ubuntu Make 16.03 features Eclipse JEE, Intellij EAP, Kotlin and a bunch of fixes!

Wed, 30 Mar 2016 09:00:00 +0000

I'm really delighted to announce a new Ubuntu Make release, scoring 16.03, bringing updates for a bunch of frameworks while introducing new support!


I'm also really proud as this new release features three new awesome contributors: Tankypon, adding the Superpowers game editor framework, Eakkapat Pattarathamrong, adding more tests for Visual Studio Code, and Almeida, doing some great updates to the portuguese translations!

The returning awesome work from Galileo Sartor an Omer Sheikh got us new Eclipse JEE installation support, IntelliJ IDEA EAP and Kotlin compiler. In addition to those new features, we have a lot fixes for Unity3D, Android-NDK, Clang, Visual Studio Code and Intellij-based IDEs as the server counter-part changed. The usual polish and a bunch of additional smaller incremental improvements joined the party as well! If you are interested into the nifty details, you can head over the change log.

If you can't wait to try it, grab this latest version direcly through its ppa for the 14.04 LTS, 15.10 ubuntu and xenial releases. This release wouldn't have been possible without our awesome contributors community, thanks to them again!

Our issue tracker is full of ideas and opportunities, and pull requests remain opened for any issues or suggestions! If you want to be the next featured contributor and want to give an hand, you can refer to this post with useful links!

Dodji Seketeli: abipkgdiff

Fri, 05 Feb 2016 10:03:00 +0000

I just wrote an article about How to review ABI changes in RPM and Debian packages. Check it out :-)

Guillaume Mazoyer: Juniper vSRX on Proxmox VE

Sun, 09 Aug 2015 15:35:05 +0000

Juniper provides a JUNOS, based on the one used by the SRX series, than can be used in a virtual machine. That product is great for Juniper users that want to play with their favorite network OS and also for people who would like to discover the JUNOS world. Juniper is providing images for VMware and KVM based hypervisors. As Proxmox VE user you know that it uses KVM to get things done. So, having Firefly Perimeter working on Proxmox VE should be doable without much troubles. But here are the steps to get things working. Downloading vSRX (Firefly Perimeter) To setup vSRX on Proxmox VE we need to download the JVA file provided by Juniper. This file is an archive containing the KVM VM definition and the QCOW2 disk of the VM. Preparing the VM We then need to create a VM with the following characteristics (see also the end of this article): OS: Other OS types (other) CD/DVD: Do not use any media Hard Disk: VIRTIO0 or IDE0, size of 2 GB, QCOW2 format CPU: at least 2 sockets and 1 core, type KVM64 (default on latest versions of Proxmox VE) Memory: 1024 MB are recommended (but 2048 MB should be better) Network: maximum of 10 interfaces, use VIRTIO or Intel E1000 as model for interfaces Using the vSRX Disk Now that the VM definition has been created, we need to use the disk provided in the JVA file. For that we first need to extract it. # bash junos-vsrx-12.1X47-D10.4-domestic.jva -x The disk will be available in the directory that has been created. We justneed to copy the disk to replace the one used by the VM (replace VMID by the ID of your VM). # cp junos-vsrx-12.1X47-D10.4-domestic.img /var/lib/vz/images/VMID/vm-VMID-1.qcow2 With this, the VM is now bootable and JUNOS will load properly, we will not be able to use it though. For that we need to find a way to send the serial output to the Proxmox VE's noVNC console. Getting the serial output in the Proxmox VE console First we need to find where our VM definition is stored. Usually it is under /etc/pve/nodes/NODENAME/qemu-server/VMID.conf (replace NODENAME and VMID with your owns). But we can use a command like the following: # find / -name 'VMID.conf' Then we can edit the VM definition file: # vim /etc/pve/nodes/NODENAME/qemu-server/VMID.conf And we have to add the following line in the configuration: args: -serial tcp:localhost:6000,server,nowait And eventually, we need to change the VM display to use Cirrus Logic GD 5446 (cirrus) via the Proxmox VE web interface or just by adding vga: cirrus in the VM definition. The End We can now just start the VM, the output will be displayed in the Proxmox VE's console. Enjoy using JUNOS with virtual machines. Edit (2015-06-17): After some tests I was glad to see that both disk and network interfaces can use the VIRTIO drivers. I would recommend to use this type of drivers since it is supposed to improve the scheduling on the hypervisor level.[...]

Vincent Untz: SUSE Ruling the Stack in Vancouver

Mon, 25 May 2015 22:58:00 +0000

Last week during the the OpenStack Summit in Vancouver, Intel organized a Rule the Stack contest. That's the third one, after Atlanta a year ago and Paris six months ago. In case you missed earlier episodes, SUSE won the two previous contests with Dirk being pretty fast in Atlanta and Adam completing the HA challenge so we could keep the crown. So of course, we had to try again! For this contest, the rules came with a list of penalties and bonuses which made it easier for people to participate. And indeed, there were quite a number of participants with the schedule for booking slots being nearly full. While deploying Kilo was a goal, you could go with older releases getting a 10 minutes penalty per release (so +10 minutes for Juno, +20 minutes for Icehouse, and so on). In a similar way, the organizers wanted to see some upgrade and encouraged that with a bonus that could significantly impact the results (-40 minutes) — nobody tried that, though. And guess what? SUSE kept the crown again. But we also went ahead with a new challenge: outperforming everyone else not just once, but twice, with two totally different methods. For the super-fast approach, Dirk built again an appliance that has everything pre-installed and that configures the software on boot. This is actually not too difficult thanks to the amazing Kiwi tool and all the knowledge we have accumulated through the years at SUSE about building appliances, and also the small scripts we use for the CI of our OpenStack packages. Still, it required some work to adapt the setup to the contest and also to make sure that our Kilo packages (that were brand new and without much testing) were fully working. The clock result was 9 minutes and 6 seconds, resulting in a negative time of minus 10 minutes and 54 seconds (yes, the text in the picture is wrong) after the bonuses. Pretty impressive. But we also wanted to show that our product would fare well, so Adam and I started looking at this. We knew it couldn't be faster than the way Dirk picked, and from the start, we targetted the second position. For this approach, there was not much to do since this was similar to what he did in Paris, and there was work to update our SUSE OpenStack Cloud Admin appliance recently. Our first attempt failed miserably due to a nasty bug (which was actually caused by some unicode character in the ID of the USB stick we were using to install the OS... we fixed that bug later in the night). The second attempt went smoother and was actually much faster than we had anticipated: SUSE OpenStack Cloud deployed everything in 23 minutes and 17 seconds, which resulted in a final time of 10 minutes and 17 seconds after bonuses/penalties. And this was with a 10 minutes penalty due to the use of Juno (as well as a couple of minutes lost debugging some setup issue that was just mispreparation on our side). A key contributor to this result is our use of Crowbar, which we've kept improving over time, and that really makes it easy and fast to deploy OpenStack. Wall-clock time for SUSE OpenStack Cloud These two results wouldn't have been possible without the help of Tom and Ralf, but also without the whole SUSE OpenStack Cloud team that works on a daily basis on our product to improve it and to adapt it to the needs of our customers. We really have an awesome team (and btw, we're hiring)! For reference, three other contestants succeeded in deploying OpenStack, with the fastest of them ending at 58 minutes after bonuses/penaltie[...]

Vincent Untz: Deploying Docker for OpenStack with Crowbar

Tue, 12 May 2015 08:41:00 +0000

A couple of months ago, I was meeting colleagues of mine working on Docker and discussing about how much effort it would be to add support for it to SUSE OpenStack Cloud. It's been something that had been requested for a long time by quite a number of people and we never really had time to look into it. To find out how difficult it would be, I started looking at it on the evening; the README confirmed it shouldn't be too hard. But of course, we use Crowbar as our deployment framework, and the manual way of setting it up is not really something we'd want to recommend. Now would it be "not too hard" or just "easy"? There was only way to know that... And guess what happened next?

It took a couple of hours (and two patches) to get this working, including the time for packaging the missing dependencies and for testing. That's one of the nice things we benefit from using Crowbar: adding new features like this is relatively straight-forward, and so we can enable people to deploy a full cloud with all of these nice small features, without requiring them to learn about all the technologies and how to deploy them. Of course this was just a first pass (using the Juno code, btw).

Fast-forward a bit, and we decided to integrate this work. Since it was not a simple proof of concept anymore, we went ahead with some more serious testing. This resulted in us backporting patches for the Juno branch, but also making Nova behave a bit better since it wasn't aware of Docker as an hypervisor. This last point is a major problem if people want to use Docker as well as KVM, Xen, VMware or Hyper-V — the multi-hypervisor support is something that really matters to us, and this issue was actually the first one that got reported to us ;-) To validate all our work, we of course asked tempest to help us and the results are pretty good (we still have some failures, but they're related to missing features like volume support).

All in all, the integration went really smoothly :-)

Oh, I forgot to mention: there's also a docker plugin for heat. It's now available with our heat packages now in the Build Service as openstack-heat-plugin-heat_docker (Kilo, Juno); I haven't played with it yet, but this post should be a good start for anyone who's curious about this plugin.

Damien Sandras: Be IP is hiring!

Wed, 15 Apr 2015 09:58:06 +0000

In case some readers of this blog would be interested in working with Open Source software and VoIP technologies, Be IP ( is hiring a developer. Please see for the job description. You can contact me directly.

Dodji Seketeli: GNU Cauldron 2015

Wed, 08 Apr 2015 09:48:00 +0000

This year the GNU Cauldron Conference is going to be held in Prague, Czech Republic, from August 7 to 9, 2015.

The GNU Cauldron Conference is a gathering of users and hackers of the GNU toolchain ecosystem.

Meaning that if you are interested in projects remotely related to the GNU C library, GNU Compiler Collection, the GNU Debugger or any toolchain runtime related project that has ties with the GNU system you are welcome!

If you are a Free Software project that is using the GNU Toolchain, would like your voice to be heard, hang out with other users and hackers of that space you are even more than welcome! If yo have crazy ideas you'd like to discuss over a nice beverage of your choice, please join!

You just have to send a nice note to saying that you are coming, and that would act as a registration. The number of seats is limited, so please do not drag your feet too much :-)

And if you want present a talk, well, there is a call for paper under way. You just have to sent your abstract to The exact call for paper can be read here.

So see you there, gals'n guys!

Guillaume Desmottes: Tracking the reference count of a GstMiniObject using gdb

Mon, 30 Mar 2015 17:56:00 +0000

As part of my work at Collabora, I'm currently adding Valgrind support to the awesome gst-validate tool. The ultimate goal is to run our hundreds of GStreamer tests inside Valgrind as part of the existing QA infrastructure to automatically track memory related regressions (invalid reads, leaks, etc). Most of the gst-validate changes have already landed and can be very easily used by passing the --valgrind argument to gst-validate-launcher. I'm now focusing on making sure most of our existing tests are passing with Valgrind which means doing quite a lot of memory leaks debugging (everyone love doing those right?). A lot of GStreamer types are based on GstMiniObject instead of the usual GObject. It makes a lot of sense from a performance pov but can make tracking ref count issues harder as we can't rely on tools such as RefDbg or gobject-list. I was tracking one GstMiniObject leak today and was looking for a way to get a trace each time its reference is modified. We can use GST_DEBUG="GST_REFCOUNTING:9" to get logs each time the object is reffed/unreffed but I was actually interested in the full stack trace. With to the help of the French gang (kudos to Dodji, Bastien and Christophe!) I managed to do so using this good old gdb. First thing is to break when the object you want to track is created, you can either do this by using in gdb b mysource:line or just add a G_BREAKPOINT() in your source code. Start your app with gdb as usual then uses: set logging on set pagination off The ouput can be pretty long so this will ensure that logs are saved to a file (gdb.txt by default) and that gdb won't bother you asking for confirmation before printing ouput. Now start your app (run) and once it has paused use the following command: watch -location ((GstMiniObject*)caps)->refcount caps is the name of the instance of the object I want to track, as defined in the scope where I installed my breakpoint; update it to match yours. This command adds a watchpoint on the refcount of the object, that means gdb will now stop each time its value is modified. The -location option ensures that gdb watches the memory associated with the expression, not using it would limit us to the local scope of the variable. Now we want to display a backtrace each time gdb pauses when this watchpoint is hit. This is done using commands: commands bt continue end All the gdb instructions between commands and end will be automatically executed each time gdb pauses because of the watchpoint we just defined. In our case we first want to display a stack trace (bt) and then continue the execution of the program. We are now all set, we just have to ask gdb to resume the normal execution of the program we are debugging: continue This should generate a gdb.txt log file containing something like: Old value = 1 New value = 2 gst_mini_object_ref (mini_object=0x7ffff001c8f0) at gstminiobject.c:362 362 return mini_object; #0 0x00007ffff6f384ed in gst_mini_object_ref (mini_object=0x7ffff001c8f0) at gstminiobject.c:362 #1 0x00007ffff6f38b00 in gst_mini_object_replace (olddata=0x7ffff67f0c58, newdata=0x7ffff001c8f0) at gstminiobject.c:501 #2 0x00007ffff72573ed in gst_caps_replace (old_caps=0x7ffff67f0c58, new_caps=0x7ffff001c8f0) at ../../../gst/gstcaps.h:312 #3 0x00007ffff72578fa in helper_find_suggest (data=0x7ffff67f0c30, probability=GST_TYPE_FIND_MAXIMUM, caps=0x7ffff001[...]

Guillaume Mazoyer: Samsung 840 EVO Performance fix

Thu, 29 Jan 2015 19:41:55 +0000

Several weeks ago Samsung has released a fix for the 840 series of their SSDs that had performance issues on long time stored data. While the fix procedure is quite simple to apply on Windows, when you use your SSD on a GNU/Linux powered system it can be quite tricky. So to fix your SSD you will need a bootable USB key with the Samsung binaries. Moreover the Samsung documentation is not really well written and can lead to confusion. So here are the steps to fix dear GNU/Linux users' SSDs. Some preps Firstly, prepare a USB key (at least 512 MB, just to be sure) and download FreeDOS. Creating the bootable USB key Once FreeDOS is on your computer, plug the USB key in and find the device to interact with it. You can generally find the device using the dmesg command. This will output something like this: [1017607.068095] usb 2-1: new high-speed USB device number 110 using ehci-pci [1017607.278127] usb 2-1: New USB device found, idVendor=1b1c, idProduct=1ab1 [1017607.278135] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [1017607.278140] usb 2-1: Product: Voyager [1017607.278145] usb 2-1: Manufacturer: Corsair [1017607.278150] usb 2-1: SerialNumber: AA00000000000634 [1017607.278936] usb-storage 2-1:1.0: USB Mass Storage device detected [1017607.279084] scsi12 : usb-storage 2-1:1.0 [1017608.389828] scsi 12:0:0:0: Direct-Access Corsair Voyager 1100 PQ: 0 ANSI: 0 CCS [1017608.390448] sd 12:0:0:0: Attached scsi generic sg2 type 0 [1017608.391272] sd 12:0:0:0: [sdb] 15663104 512-byte logical blocks: (8.01 GB/7.46 GiB) [1017608.392259] sd 12:0:0:0: [sdb] Write Protect is off [1017608.392266] sd 12:0:0:0: [sdb] Mode Sense: 43 00 00 00 [1017608.394784] sd 12:0:0:0: [sdb] No Caching mode page found [1017608.394792] sd 12:0:0:0: [sdb] Assuming drive cache: write through [1017608.402247]  sdb: sdb1 [1017608.405637] sd 12:0:0:0: [sdb] Attached SCSI removable disk In this case you want to use the /dev/sdb dive as seen in the log. Now you can just write the FreeDOS image on the USB disk. The image is compressed so you'll need to decompress it before. $ bunzip2 FreeDOS-1.1-memstick-2-256M.img.bz2 $ dd if=FreeDOS-1.1-memstick-2-256MB.img of=/dev/sdb bs=512k Copying the Samsung binaries Download the Samsung binaries. Mount the USB key and unzip those binaries at the USB key root. In this way you will be able to use them from FreeDOS later. # mount /dev/sdb1 /mnt # unzip # mv 840Perf/* /mnt # umount /mnt # eject /dev/sdb The fix Plug the USB key in your machine and reboot the host. Do what is necessary to boot on the USB key. Choose the option 4 of FreeDOS "Load FreeDOS without driver". Once FreeDOS is running just run the PERF.EXE file and the Samsung tool will start. Enter the index in front of the SSD you want to upgrade and fix. The utility will take care of everything (firmware upgrade and fix). Note that the pass to fix the SSD can take some time. Once the tool has finished to fix your SSD just reboot the host by typing reboot in FreeDOS. Do not forget to unplug the USB key to avoid booting from it later. Enjoy your brand new fixed SSD![...]

Damien Sandras: Ekiga 5 – Progress Report

Sun, 25 Jan 2015 17:01:23 +0000

Current Status Ekiga 5 has progressed a lot lately. OpenHUB is reportin a High Activity for the project. The main reason behind this is that I am again dedicating much of my spare time to the project. Unfortunately, we are again facing a lack of contributions. Most probably (among others) because the project has been […]

Baptiste Mille-Mathias: GNOME Trademark and Groupon

Wed, 12 Nov 2014 07:22:16 +0000

If you regularly read the minutes of the GNOME Foundation you noticed since few months there is a dispute about the use of the GNOME trademark by Groupon. The company has released a point of sale tablet under the name GNOME despite the trademark being registered by the GNOME Foundation. So long story short, Groupon […]

The post GNOME Trademark and Groupon appeared first on Nothing Fancy.

Baptiste Mille-Mathias: Some introduction seems to be necessary

Mon, 31 Mar 2014 10:32:26 +0000

It appears my blog is currently is reaching some places like and so I think some introduction may be necessary. My name is Baptiste Mille-Mathias, I’m French, I’m living in south of France, near Cannes with my partner Célia and my son Joshua and my daughter Soline. During work days I’m System/Application Administrator […]

The post Some introduction seems to be necessary appeared first on Nothing Fancy.

Christophe Fergeau: SPICE on OSX, take 2

Mon, 25 Mar 2013 09:48:40 +0000

A while back, I made a Vinagre build for OSX. However, reproducing this build needed lots of manual tweaking, the build was not working on newer OSX versions, and in the mean time, the recommended SPICE client became remote-viewer. In short, this work was obsolete.

I've recently looked again at this, but this time with the goal of documenting the build process, and making the build as easy as possible to reproduce. This is once again based off gtk-osx, with an additional moduleset containing the SPICE modules, and a script to download/install most of what is needed. I've also switched to building remote-viewer instead of vinagre

This time, I've documented all of this work, but all you should have to do to build remote-viewer for OSX is to run a script, copy a configuration file to the right place, and then run a usual jhbuild build. Read the documentation for more detailed information about how to do an OSX build.

I've uploaded a binary built using these instructions, but it's lacking some features (USB redirection comes to mind), and it's slow, etc, etc, so .... patches welcome! ;) Feel free to contact me if you are interested in making OSX builds and need help getting started, have build issues, ...

Christophe Fergeau: FOSDEM 2013 Crossdesktop devroom Call for talks

Tue, 11 Dec 2012 10:33:28 +0000

The Call for talks for the Crossdesktop devroom at FOSDEM 2013 is getting to its end this Friday. Don't wait and submit your talk proposal about your favourite part of GNOME now!

Proposals should be sent to the crossdesktop devroom mailing list (you don't have to subscribe).

Daniel Veillard: 29 Nov 2012

Thu, 29 Nov 2012 11:14:52 +0000

Wandering in embedded land: part 2, Arduino turned remote controlNow with the Midea AC remote control being mostly deciphered, the next step is to emulate the remote, with an arduino since it's the system I use for that embedded greenhouse control. While waiting for my mail ordered IR LED (I didn't want to solder off one from my existing AC controllers), I started doing a bit of code and looking at the integration problems.The hardware sideOne of the challenge is that the Arduino system is already heavy packed, basically I use all the digital Input/Output except 5 (and 0 and 1 which are hooked to the serial support), and 2 of the 6 analog inputs, as the card already drives 2 SHT1x temp/humidity sensors, 2 light sensors, an home made 8 way relay board, and a small LCD display, there isn't much room left physically or in memory for more wires or code ! Fortunately driving a LED requires minimal resources, the schematic is trivial:I actually used a 220 Ohms resistance since I didn't had a 100 Ohms one, the only effect is how far the signal may be received, really not a problem in my case. Also I initially hooked it on pin 5 which shouldn't had been a problem, and that's the free slot I have available on the ArduinoThe software sideMy thinking was: well I just need to recreate the same set of light patterns to emulate the remote control and that's done, sounds fairly simple and I started coding royines which would switch the led on or off for 1T, 3T and 4T durations. Thus the core of the code was like: void emit_midea_start(void) { ir_down(T_8); ir_up(T_8); } void emit_midea_end(void) { ir_down(T_1); ir_up(T_8); } void emit_midea_byte(byte b) { int i; byte cur = b; for (i = 0;i < 8;i++) { ir_down(T_1); if (cur & 1) ir_up(T_3); else ir_up(T_1); cur >>= 1; } cur = ~b; for (i = 0;i < 8;i++) { ir_down(T_1); if (cur & 1) ir_up(T_3); else ir_up(T_1); cur >>= 1; } } where ir_up() and ir_down() were respectively activating or deactivating the pin 5 set as OUTPUT for the given duration defined as macros.Playing with 2 arduinos simultaneouslyOf course to test my code the simplest was to set up the new module on another arduino positioned in front of the Arduino with the IR receptor and running the same code as used for decoding the protocol.The nice thing is that you can hook up the arduinos on 2 different USB cables connected to the same machine, they will report as ttyUSB0 and ttyUSB1 and once you have looked at the serial output you can find which is which. The only cumbersome part is having to select the serial port to the other one when you want to switch box either to monitor the output or to upload a new ersion of the code, so far things are rather easy.Except it just didn't worked !!!Not the arduino, I actually replaced the IR LED by a normal one from time to time to verify it was firing for a fraction of a second when emitting the sequence, no the problem was that the IR receiver was detecting transitions but none of the expected duration, or order, nothing I could real[...]

Daniel Veillard: 26 Nov 2012

Mon, 26 Nov 2012 10:58:54 +0000

Wandering in embedded land: part 1, Midea 美的 aircon protocolI have been a user of Arduino's for a few years now, I use them to control my greenhouse (I grow orchids). This mean collecting data for various parameters (temperature, hygrometry, light) and actionning a collection of devices in reaction (fan, misting pump, fogging machine, a heater). The control part is actually done by an NSLU2 which also collects the data, export them as graph on the internet and allows me to manually jump in and take action if needed even if I'm far away using an ssh connection.This setup has been working well for me for a few years but since our move to China I have had an airon installed in the greenhouse like in other parts of the home. And that's where I have a problem, this AC of brand Midea (very common home appliance brand in China) can only be controlled though a remote control. And until now that meant I had no way to automtate heating or cooling, which is perfectly unreasonnable :-)After some googling the most useful reference I found about those is the Tom's Site page on building a remote adapter for those. It explained most parts of the protocol but not all of them, basically he stopped at the core of the interface but didn't went into details, for example didn't explained the commands encoding. The 3 things I really need are:Start cooling to a given temperatureStart heating to a given temperatureStop the ACI don't really need full fan speed control, low speed is quite sufficient for the greenhouse.Restarting the Arduino developmentI hadn't touched the Arduino development environment for the last few years, and I remember it being a bit painful to set up at the time. With Fedora 17, things have changed, a simpleyum install arduinoand launching the arduino tool worked the first time, actually it asked me the permission to tweak groups to allow me as the current user to talk through the USB serial line to the Arduino. Once done, and logging in again everything worked perfectly, congratulation to the packagers, well done ! The only sowtware annoyance is that is often take a dozen seconds between the time an arduino is connnected or powered and when it appears in the ttyUSB? serial ports options in the UI, but that's probably not arduino's fault.The arduino environment didn't really change in all those years, the two notable exception is the very long list of different boards supoorted now, and the fact that arduino code files are renamed from .pde to .ino !Learning about the data emitted The first thing needed was to double check the result from Tom with our own hardware, then learn about the protocol to be able to construct the commands above. To do this I hooked a IR receptor to the Arduino on digital pin 3, the graphic below show the logic, it's very simple:Then I loaded a modified (for IRpin 3) version of Walter Anderson's IRanalyzer.pde onto the Arduino and started firing the aircon remote control at the receiver and looked at the result: total garbage ! Whatever the key pressed the output had no structure and actually looked as random as input without any key being pressed :-\It took me a couple of hours of tweaking to find out that the[...]

Stéphane Raimbault: Tip for python-mode with Emacs

Sun, 19 Feb 2012 22:24:23 +0000

If you expect 'Alt + d' wil only remove the first part 'foo_' of 'foo_bar' with the great python-mode, you can make this change to python-mode.el:

- (modify-syntax-entry ?\_ "w" py-mode-syntax-table)
+ (modify-syntax-entry ?\_ "_" py-mode-syntax-table)

Thank you Ivan.

Update with python-mode v6.0.4, add this line to python-mode-syntax-table (line 153):

(modify-syntax-entry ?\_ "_" table)

Gaël Chamoulaud: 27 Jan 2012

Fri, 27 Jan 2012 10:28:56 +0000


My last FOSDEM participation was in 2004, and I always keep in mind many good moments with my French and Belgian GNOME's Friends !


So I'm totally excited to meet them again in 2012 ... :)


Stéphane Maniaci: Outreach in GNOME

Tue, 15 Nov 2011 23:13:26 +0000

The GNOME Montréal Summit was held a month ago now, and not only was it lots of fun, but also a very productive time. Marina held a session about the outreach in GNOME, and we spent time discussing different ways to improve welcoming and attracting people in GNOME. Let me share some of the points we raised, supplemented by my own personnal opinions, that do not reflect those of my employer, when I’ll have a job. A warm welcome There has been a lot of nice work done structuring and cleaning up GNOME Love page. We now have a list of people newcomers can contact if they are interested in a particular project. Feel free to add your name and project to the list, the more entry points we get, the better for them! I tend to think there is still a bit too much content on the GNOME Love page, maybe we could use more pretty diagrams (platform overview, ways to get involved) to keep the excitement growing and to reduce the amount of text we have right now (GUI tutorials, books about GNOME,  tips & tricks). Feedback appreciated! Start small We tend to think of contributions as patches and a certain amount of code added in a project. Howeverit’s not easy at all for newcomers to just pop in and work on a patch, especially in GNOME where most software follows strict rules (as in coding style, GObject API style, etc.). And since GNOME maintains (again, for the most part) a very high quality in its code backed by many hackers, whether they’re part of a company or independent contributors, it makes the landing of a patch even tougher. Which is why we should encourage everyone who wants to get involved to work on small tasks, would it be fixing a string typo, rewording or marking plural forms for translation. Working on manageable changes ensures that the patches are completed and landing these patches builds confidence to work on bigger patches. Having your name in the commit log is a great reward, that encourages sticking around and digging for more. Advertise early, advertise often If we want to get loads of people coming toward GNOME, we should definitely talk more and spread the word about the GNOME Outreach Program for Women (GOPW) and the Google Summer of Code (GSoC) earlier. Google doesn’t announce the program very far in advance and approved organizations are only published three weeks before the application deadline, but we should encourage students to get involved in GNOME early and keep an eye out for such announcements. Having a list of mentors who can help newcomers anytime throughout the year and having that list included on the Google Summer of Code wiki page of organizations that provide year-round informal mentorship should help attract students to GNOME. On our side, we could definitely gather ideas and promote the programs earlier. Don’t have exact dates in head, but our KDE fellows promote the Summer of Code early March if not before. Not only will that help better spreading the word, but students might get involved earlier, and get to know the tools/community before the actual program. Communication is key to success We have to g[...]

Stéphane Raimbault: Feedback on GNOME 3.0

Sun, 09 Oct 2011 21:16:11 +0000

After 5 months with GNOME 3.0, I'm really happy with the experience. At the end of work day,
my mind is no more exhausted of windows placement fighting and application finding.

GNOME 3.0 is really stable, except with the Open Source driver on my Radeon 5870 (4 crashes in 2 months).

I really like the behavior of dual-head where the secondary screen has only one virtual screen.
For me, there are just 3 annoying points:

  • Ctrl + Del to remove a file in Nautilus, may be it's a Fedora settings but this change is just @!# I've already a Trash to undo my mistakes (
  • Alt key to shutdown, no I don't want to waste energy for days and my PC boots quickly.
  • only vertical virtual screens, I found a bit painful to move down two screens when the screen is reachable with one move with a 2x2 layout but I understand this layout doesn't fit well with the GNOME 3 design.

To have a good experience with GNOME 3, I use:

  • Windows key + type to launch everything
  • Ctrl + Shift + Alt + arrows to move the application between the virtual screen
  • Ctrl + click in the launcher when I really want a new instance (the default behavior is perfect)
  • snap à la Windows 7 is great
  • Alt + Tab then the arrow keys to select an app

Don't forget to read or the Help (System key + 'Help').

It's not specific to GNOME 3 but you can change the volume when your mouse is over the applet (don't click, think hover) and a mouse scroll.
With GTK+, do you know you can reach the end of scrolled area with a left click on the arrow and a specific position by middle click?

I'm impressed by the new features of GNOME 3.2 and I'm waiting for Fedora 17 to enjoy it!

Lucas Nussbaum: Going to RMLL (LSM) and Debconf!

Mon, 04 Jul 2011 18:05:40 +0000

Next week, I’ll head to Strasbourg for Rencontres Mondiales du Logiciel Libre 2011. On monday morning, I’ll be giving my Debian Packaging Tutorial for the second time. Let’s hope it goes well and I can recruit some future DDs!

Then, at the end of July, I’ll attend Debconf again. Unfortunately, I won’t be able to participate in Debcamp this year, but I look forward to a full week of talks and exciting discussions. There, I’ll be chairing two sessions about Ruby in Debian and Quality Assurance.

Vivien Malerba: Recent Libgda evolutions

Thu, 17 Feb 2011 20:11:19 +0000

It’s been a long time since I blogged about Libgda (and for the matter since I blogged at all!). Here is a quick outline on what has been going on regarding Libgda for the past few months:

  • Libgda’s latest version is now 4.2.4
  • many bugs have been corrected and it’s now very stable
  • the documentation is now faily exhaustive and includes a lot of examples
  • a GTK3 branch is maintained, it contains all the modifications to make Libgda work in the GTK3 environment
  • the GdaBrowser and GdaSql tools have had a lot of work and are now both mature and stable
  • using the NSIS tool, I’ve made available a new Windows installer for the GdaBrowser and associated tools, available at It’s only available in English and French, please test it and report any error.

In the next months, I’ll work on polishing even more the GdaBrowser tool which I use on a daily basis (and of course correct bugs).

Ali Sabil: Follow me on Twitter

Sun, 21 Mar 2010 09:31:10 +0000


(image) (image)

Julien Puydt: Webkit fun, maths and an ebook reader

Tue, 16 Mar 2010 20:20:54 +0000

I have been toying with webkit lately, and even managed to do some pretty things with it. As a consequence, I haven’t worked that much on ekiga, but perhaps some of my experiments will turn into something interesting there. I have an experimental branch with a less than fifty lines patch… I’m still trying to find a way to do more with less code : I want to do as little GObject-inheritance as possible!

That little programming was done while studying class field theory, which is pretty nice on the high-level principles and somewhat awful on the more technical aspects. I also read again some old articles on modular forms, but I can’t say that was “studying” : since it was one of the main objects of my Ph.D, that came back pretty smoothly…

I found a few minutes to enter a brick-and-mortar shop and have a look at the ebook readers on display. There was only *one* of them : the sony PRS-600. I was pretty unimpressed : the display was too dark (because it was a touch screen?), but that wasn’t the worse deal breaker. I inserted an SD card where I had put a sample of the type of documents I read : they showed up as a flat list (pain #1), and not all of them (no djvu) (pain #2) and finally, one of them showed up too small… and ended up fully unreadable when I tried to zoom (pain #3). I guess that settles the question I had on whether my next techno-tool would be a netbook or an ebook reader… That probably means I’ll look more seriously into fixing the last bug I reported on evince (internal bookmarks in documents).

Laurent Richard: Renouveau dans ma vie professionnelle

Wed, 24 Feb 2010 23:56:34 +0000

Bonjour à tous,

je vous délaisse depuis quelques temps. Est-ce le temps qui fait cela, une période dans ma vie ou simplement autre chose, je n'en ai pas la moindre idée.

Je tenais juste à vous annoncer que je vais quitter mon employeur actuel qui est un Agence Gouvernementale pour chercher de l'expérience dans le secteur privé. En effet, je suis de plus en plus déçu par l'Administration.

Depuis quelques années, comme vous le savez, je me passionne pour la sécurité de l'Information. Ceci ajouté à une formation en Management de la Sécurité de l'Information, j'ai l'ambition de faire valoir mes expériences auprès d'un employeur (à définir) qui pourrait me permettre de les améliorer tout en lui faisant bénéficier de mes compétences.

Si vous avez de bonnes adresses, je suis preneur évidemment. ^^

Vivien Malerba: New Libgda releases

Sat, 16 Jan 2010 18:01:47 +0000

With the beginning of the year comes new releases of Libgda:

  • version 4.0.6 which contains corrections for the stable branch
  • version 4.1.4, a beta version for the upcoming 4.2 version

The 4.1.4′s API is now considered stable and except for minor corrections should not be modified anymore.

This new version also includes a new database adaptator (provider) to connect to databases through a web server (which of course needs to be configured for that purpose) as illustrated by the followin diagram:


The database being accessed by the web server can be any type supported by the PEAR::MDB2 module.

The GdaBrowser application now supports defining presentation preferences for each table’s column, which are used when data from a table’s column need to be displayed:
The UI extension now supports improved custom layout, described through a simple XML syntax, as shown in the following screenshot of the gdaui-demo-4.0 program:


For more information, please visit the web site.

Johann Prieur: Attending XMPP Summit and FOSDEM, 5th-8th of February in Brussels

Fri, 08 Jan 2010 11:55:56 +0000

(image) For the third year in a row, I’ll be flying to Brussels, Belgium next month to attend the XMPP Summit/FOSDEM combo. I didn’t look through the FOSDEM schedule yet but when it comes to XMPP, I’m looking forward to some discussions on Jingle Nodes and Publish-Subscribe. I’ve been working more and more with XMPP in the past months, especially hacking on ejabberd, and attending is a good motivation to get some of my Jingle Nodes related code shaped up on time. See you there!

(image) (image)

Laurent Richard: Rappel - Définition du Hacker

Wed, 30 Dec 2009 20:25:57 +0000

Le hacker est un passionné d'informatique, souvent très doué, dont les seuls objectifs sont de "bricoler" programmes et matériels (software et hardware) afin d'obtenir des résultats de qualité pour lui-même, pour l'évolution des technologies et pour la reconnaissance de ses pairs.

Les conventions de hackers sont des rassemblements où ces férus d'informatique se rencontrent, discutent et comparent leurs travaux.

Depuis de nombreuses années, la tendance est de confondre à tort le hacker avec le cracker, dont les buts ne sont pas toujours légaux.

Or, on ne le répétera jamais assez, les objectifs du hacker sont louables et contribuent de manière active aux progrès informatiques et aux outils que nous utilisons quotidiennement.

Julien Puydt: Attracted to FLT

Thu, 05 Nov 2009 12:44:51 +0000

I have been a little stuck for some weeks : a new year started (no, that post hasn’t been stuck since january — scholar year start in september) and I have students to tend to. As I have the habit to say : good students bring work because you have to push them high, and bad students bring work because you have to push them from low! Either way, it has been keeping me pretty busy.

Still, I found the time to read some more maths, but got lost on something quite unrelated to my main objective : I just read about number theory and the ideas behind the proof of Fermat’s Last Theorem (Taylor and Wiles’ theorem now). That was supposed to be my second target! Oh, well, I’ll just try to hit my first target now (Deligne’s proof of the Weil conjectures). And then go back to FLT for a new and deeper reading.

I only played a little with ekiga’s code — mostly removing dead code. Not much : low motivation.

Johann Prieur: gwt-strophe 0.1.0 released

Thu, 15 Oct 2009 22:06:40 +0000

I just released the first version of gwt-strophe, GWT bindings for the Strophe XMPP library. Nothing much to say else than it is pretty young, with all that can imply. The project is hosted at

(image) (image)

Lucas Nussbaum: Slides from RMLL (and much more)

Sat, 11 Jul 2009 09:11:53 +0000

So, I’m back from the Rencontres Mondiales du Logiciel Libre, which took place in Nantes this year. It was great to see all those people from the french Free Software community again, and I look forward to seeing them again next year in Bordeaux (too bad the Toulouse bid wasn’t chosen). The Debian booth, mainly organized by Xavier Oswald and Aurélien Couderc, with help from Raphaël, Roland and others (but not me!), got a lot of visits, and Debian’s popularity is high in the community (probably because RMLL is mostly for über-geeks, and Debian’s market share is still very high in this sub-community). I spent quite a lot of time with the Ubuntu-FR crew, which I hadn’t met before. They do an awesome work on getting new people to use Linux (providing great docs and support), and do very well (much better than in the past) at giving a good global picture of the Free Software world (Linux != Ubuntu, other projects do exist and play a very large role in Ubuntu’s success, etc). It’s great to see Free Software’s promotion in France being in such good hands. (Full disclosure: I got a free mug (recycled plastic) with my Ubuntu-FR T-shirt, which might affect my judgement). I gave two talks, on two topics I wanted to talk about for some time. First one was about the interactions between users, distributions and upstream projects, with a focus on Ubuntu’s development model and relationships with Debian and upstream projects. Second one was about voting methods, and Condorcet in particular. If you attended one of those talks, feedback (good or bad) is welcomed (either in comments or by mail). Slides are also available (in french): L’écosystème du Libre: interactions entre projets amonts, distributions et utilisateurs – l’exemple de Debian et Ubuntu Méthodes de vote: Comment consulter un groupe de personnes sans fausser le résultat ? On a more general note, I still don’t understand why the “Mondiales” in RMLL’s title isn’t being dropped or replaced by “Francophones“. Seeing the organization congratulate themselves because 30% of the talks were in english was quite funny, since in most cases, the english part of the talk was “Is there someone not understanding french? no? OK, let’s go on in french.“, and all the announcements were made in french only. Seriously, RMLL is a great (probably the best) french-speaking community event. But it’s not FOSDEM: different goals, different people. Instead of trying (and failing) to make it an international event, it would be much better to focus on making it a better french-speaking event, for example by getting more french-speaking developers to come and talk (you see at least 5 times more french-speaking developers in FOSDEM than in RMLL). [...]

Ali Sabil: fatal: protocol error: expected sha/ref

Thu, 26 Feb 2009 10:40:58 +0000

Dear Lennart,

You should probably know that typing the correct URL would work better for cloning a bzr branch (yes a branch, not a repository).

This is what I get when I try to feed git a random invalid URL:

$ git clone git://
Initialized empty Git repository in /home/asabil/Desktop/idontexist/.git/
fatal: protocol error: expected sha/ref, got ‘

No matching repositories found.


Now is probably the time to stop this non constructive “my DVCS is better than yours”, and focus on writing code and fixing bugs.

(image) (image)

Gaël Chamoulaud: 19 Nov 2008

Wed, 19 Nov 2008 14:13:11 +0000

WOW ... Four fucking years without blogging in my advogado's page. I needed times to put my head and my body in the right place. Four years of doubt, sadness and Happiness as well. So since a few days, I decided to blog again.

It's all for the moment :)

Xavier Claessens: Looking for a job

Tue, 22 Jul 2008 08:29:28 +0000

On September I finish my studies of computer science, so I start to search a job. I really enjoyed my current job at Collabora maintaining Empathy, I learned lots of things about the Free Software world and I would like to keep working on free software related projects if possible. My CV is available online here.

Do you guys know any company around the free software and GNOME looking for new employees? You can contact me by email to

Raphaël Slinckx: Enterprise Social Search slideshow

Tue, 22 Apr 2008 12:21:14 +0000

Enterprise Social Search is a way to search, manage, and share information within a company. Who can help you find relevant information and nothing but relevant information? Your colleagues, of course

Today we are launching at Whatever (the company I work for) a marketing campaign for our upcoming product: Knowledge Plaza. Exciting times ahead!

Sébastien Bacher: Ubuntu stable updates

Mon, 28 Jan 2008 23:12:13 +0000

There was some blog entries this week about GNOME stable updates on Ubuntu. There is no reason new bug fix versions could not be uploaded to stable out of the fact that the SRU rules require to check carrefully all the changes and doing this job on all the GNOME tarballs is quite some work, or the ubuntu desktop team is quite small and already overworked.

There is a list of packages which have a relaxed rules though, we have discussed adding GNOME to those since the stable serie usually has fixes worth having and not too many unstable changes (though the stable SVN code usually doesn’t get lot of testing) and decided than the stable updates which look reasonable should be uploaded to hardy-update.

There was also some concerns about gnome-games, 2.20.3 has been uploaded to gutsy-proposed today which should reduce the number of bugs sent to the GNOME bugzilla. The new dependencies on ggz has also been reviewed and 2.21 should be built soon in hardy.

Sébastien Bacher: GNOME and Ubuntu

Wed, 14 Nov 2007 13:09:04 +0000

The FOSSCamp and UDS week has been nice and a good occasion to talk to upstream and people from other distributions. We had desktop discussions about the new technologies landing in GNOME this cycle (the next Ubuntu will be a LTS so we need a balance between new features and stability), the desktop changes we want to do, and how Ubuntu contributes to GNOME.

Some random notes about the Ubuntu upstream contributions:

  • Vincent asked again for an easy way to browse the Ubuntu patches and Scott picked up the task, the result is available there
  • The new Canonical Desktop Team will focus on making the user experience better, most of the changes will likely be upstream material and discussed there, etc
  • Canonical has open Ubuntu Desktop Infrastructure Developer and Ubuntu Conceptual Interface Designer positions, if you want to do desktop work for a cool open source company you might be interested by those (image)

GNOME updates in gutsy and hardy

  • Selected GNOME 2.20.1 changes have been uploaded to gutsy-updates
  • The GNOME 2.21.2 packaging has started in hardy, some updates and lot of Debian merges are still on the TODO though
  • We have decided to use tags in patches to indicate the corresponding Ubuntu and upstream bugs so it’s easier to get the context of the change, technical details still need to be discussed though

Update: Scott pointed that you can use to access to the current nautilus version

Raphaël Slinckx: git commit / darcs record

Sat, 03 Nov 2007 16:43:49 +0000

I’ve been working wit git lately but I have also missed the darcs user interface. I honestly think the darcs user interface is the best I’ve ever seen, it’s such a joy to record/push/pull (when darcs doesn’t eat your cpu) I looked at git add --interactive because it had hunk-based commit, a pre-requisite for darcs record-style commit, but it has a terrible user interface, so i just copied the concept: running a git diff, filtering hunks, and then outputing the filtered diff through git apply --cached. It supports binary diffs, file additions and removal. It also asks for new files to be added even if this is not exactly how darcs behave but I always forget to add new files, so I added it. It will probably break on some extreme corner cases I haven’t been confronted to, but I gladly accept any patches Here’s a sample session of git-darcs-record script: $ git-darcs-record Add file: newfile.txt Shall I add this file? (1/1) [Ynda] : y Binary file changed: document.pdf Shall I record this change? (1/7) [Ynda] : y foobar.txt @@ -1,3 +1,5 @@ line1 line2 +line3 line4 +line5 Shall I record this change? (2/7) [Ynda] : y git-darcs-record @@ -1,17 +1,5 @@ #!/usr/bin/env python -# git-darcs-record, emulate "darcs record" interface on top of a git repository -# -# Usage: -# git-darcs-record first asks for any new file (previously -# untracked) to be added to the index. -# git-darcs-record then asks for each hunk to be recorded in -# the next commit. File deletion and binary blobs are supported -# git-darcs-record finally asks for a small commit message and -# executes the 'git commit' command with the newly created -# changeset in the index - - # Copyright (C) 2007 Raphaël Slinckx # # This program is free software; you can redistribute it and/or Shall I record this change? (3/7) [Ynda] : y git-darcs-record @@ -28,6 +16,19 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# git-darcs-record, emulate "darcs record" interface on top of a git repository +# +# Usage: +# git-darcs-record first asks for any new file (previously +# untracked) to be added to the index. +# git-darcs-record then asks for each hunk to be recorded in +# the next commit. File deletion and binary blobs are supported +# git-darcs-record finally asks for a small commit message and +# executes the 'git commit' command with the newly created +# changeset in the index + + + import re, pprint, sys, os BINARY = re.compile("GIT binary patch")[...]

Xavier Claessens: Un nouveau laptop, sans windows !

Mon, 22 Jan 2007 04:12:48 +0000

Voilà, j’y pensais depuis longtemps et c’est maintenant chose faite, je me suis acheté un tout nouveau ordinateur portable.

Je l’ai acheté sur le site français et me suis renseigné pour savoir si il était possible d’acheter les ordinateurs de leur catalogue sans logiciels (principalement sans windows). Je leur ai donc envoyé un email, et à ma grande surprise ils m’on répondu que c’était tout a fait possible, qu’il suffi de passer commande et d’envoyer ensuite un email pour demander de supprimer les logiciels de la commande. J’ai donc commandé mon laptop et ils m’ont remboursé de 20€ pour les logiciels, ce n’est pas énorme sur le prix d’un portable, mais symboliquement c’est déjà ça.

Toutes fois je me pose des questions, pourquoi cette offre n’est pas inscrite sur le site de LDLC ? En regardant sous mon tout nouveau portable je remarque une chose étrange, les restes d’un autocollant qu’on a enlevé, exactement à l’endroit où habituellement est collé la clef d’activation de winXP. Le remboursement de 20€ tout rond par LDLC me semble également étrange vue que LDLC n’est qu’un intermédiaire, pas un constructeur, et donc eux achètent les ordinateurs avec windows déjà installé. Bref tout ceci me pousse à croire que c’est LDLC qui perd les 20€ et je me demande dans quel but ?!? Pour faire plaisir aux clients libre-istes ? Pour éviter les procès pour vente liée ? Pour à leur tours se faire rembourser les licences que les clients n’ont pas voulu auprès du constructeur/Microsoft et éventuellement gagner plus que 20€ si les licences OEM valent plus que ça ? Bref ceci restera sans doutes toujours un mistère.

J’ai donc installé Ubuntu qui tourne plutôt bien. J’ai été même très impressionné par le network-manager qui me connecte automatiquement sur les réseaux wifi ou filaire selon la disponibilité et qui configure même un réseau zeroconf si il ne trouve pas de server dhcp, c’est très pratique pour transférer des données entre 2 ordinateurs, il suffi de brancher un cable ethernet (ça marche aussi par wifi mais j’ai pas encore testé) entre les 2 et hop tout le réseau est configuré automatiquement sans rien toucher, vraiment magique ! Windows peut aller se cacher, ubuntu est largement plus facile d’utilisation !

Joachim Noreiko: Documenting bugs

Wed, 20 Dec 2006 05:41:30 +0000

I hate having to write about bugs in the documentation. It feels like waving a big flag that says ‘Ok, we suck a bit’.

Today, it’s the way fonts are installed, or rather, they aren’t. The Fonts folder doesn’t show the new font, and the applications that are already running don’t see them.

So I’ve fixed the bug that was filed against the documentation. Now it’s up to someone else to fix the bugs in Gnome.

Joachim Noreiko: Choice and flexibility: bad for docs

Tue, 05 Dec 2006 08:08:14 +0000

Eye of Gnome comes with some nifty features like support for EXIF data in jpegs. But this depends on a library that isn’t a part of Gnome.

So what do I write in the user manual for EOG?

‘You can see EXIF data for an image, but you need to check the innards of your system first.’
‘You can maybe see EXIF data. I don’t know. Ask your distro.’
‘If you can’t see EXIF data, install the libexif library. I’m sorry, I can’t tell you how you can do that as I don’t know what sort of system you’re running Gnome on.’

The way GNU/Linux systems are put together is perhaps great for people who want unlimited ability to customize and choose. But it makes it very hard to write good documentation. In this sort of scenario, I would say it makes it impossible, and we’re left with a user manual that looks bad.

I’ve added this to the list of use cases for Project Mallard, but I don’t think it’ll be an easy one to solve.