29 Apr 2016

feedPlanet Grep

Lionel Dricot: Freiner moins bien pour entretenir l’illusion de la sécurité ?

5237879183_bf2a500f2f_b

Si vous ne vous intéressez pas du tout au cyclisme, vous n'êtes peut-être pas au courant d'un débat qui fait rage actuellement au sein du peloton professionnel : doit-on autoriser les freins à disque sur les vélos de compétition ?

Peut-être que le cyclisme ne vous intéresse pas mais cette anecdote est intéressante à plus d'un titre car elle illustre très bien l'incapacité que nous avons à évaluer rationnellement un danger et l'importance que les médias émotionnels peuvent avoir sur des processus de décision politique.

Au final, elle nous démontre que nous ne recherchons pas la sécurité mais seulement une illusion de celle-ci.

Les freins à disque, kézako ?

Le but d'un frein est de ralentir voir de stopper un véhicule. La plupart du temps, cela se fait en transformant l'énergie cinétique en chaleur.

Sur la plupart des vélos jusqu'il y'a quelques années, un frein consistait en deux patins qui venaient pincer la jante. En frottant sur les patins, la jante ralentit tout en chauffant.

Screen Shot 2016-04-30 at 00.43.08

Un frein sur jante, par Bart Heird.

Sont ensuite apparus les freins à disque : le principe est exactement le même mais au lieu d'appliquer le patin sur la jante, on va l'appliquer sur un disque spécialement conçu pour cela fixé au centre de la roue.

15480841850_8572dd8964_z

Un frein à disque, par Jamis Bicycle Canada.

Les avantages sont multiples :

Le résultat est qu'un frein à disque fournit un freinage cohérent et constant quelle que soient les conditions météo, la vitesse et le revêtement. Un cycliste équipé de freins à disque dispose d'un contrôle sans commune mesure avec les freins sur jantes.

Le frein à disque en compétition

Les freins à disque ont donc conquis tous les domaines du cyclisme, en commençant par le VTT et le cyclocross. Tous ? Non, pas le cyclisme sur route.

Les raisons ? Tout d'abord, les freins à disque sont plus lourds et moins aérodynamiques, données particulièrement importantes dans cette discipline. Mais les professionnels ont aussi peur qu'un disque puisse causer de vilaines blessures en cas de chutes en peloton où les cyclistes s'empilent les uns sur les autres.

L'union internationale de cyclisme avait néanmoins décidé de les autoriser à titre provisoire afin de tester graduellement en 2015 puis 2016.

Tout semblait bien se passer jusqu'à ce que le cycliste Fran Ventoso se coupe au cours d'une chute sur la célèbre course Paris-Roubaix. Sa blessure est impressionnante et aurait, selon lui, été causée par un disque de frein. Le plus grand conditionnel est de rigueur car le coureur lui-même n'a pas vu qu'il s'agissait d'un disque et qu'aucun coureur équipé de freins à disque n'est tombé ou n'a reporté avoir été touché dans ce secteur.

Néanmoins, les photos de la blessure ont fait le tour du web et les témoignages comparant les disque à des lames de rasoir ou des trancheuses de boucherie ont rapidement fait le buzz.

La preuve est-elle donc faites que les freins à disque sont dangereux et qu'il faut les bannir ?

Analyser le danger

Comme toujours, l'être humain est prompt à se saisir des anecdotes qui lui conviennent afin de se convaincre. Mais si on analyse rationnellement le problème, on voit émerger une réalité toute différente.

Un vélo est, par nature, composée d'éléments pouvant être particulièrement dangereux : une chaîne, des roues dentées, des rayons de métal très fins sur des roues tournant à haute vitesse. Aucun de ces éléments n'a jamais été considéré comme un problème, ils font partie du cyclisme. Une vidéo sur Facebook semble démontrer que le frein à disque n'est pas particulièrement coupant . Tout au plus peut-on noter les risques de brûlures si on le touche juste après un très long freinage.

Durant la période de tests 2015-2016, le cyclisme de route professionnel a donc connu un et un seul accident impliquant (potentiellement) un frein à disque.

Au cours de la même période, les courses ont connues un nombre importants d'accidents majeurs impliquant des motos ou des voitures faisant partie de l'organisation de la course. Le plus cocasse est certainement celui de Greg Van Avermaet, alors en tête de course et qui sera propulsé dans le fossé par une moto de télévision. Le second de la course, Adam Yates, dépassera Van Avermaet sans le voir et passera la ligne d'arrivée persuadé d'être arrivé deuxième. Mais l'accident le plus dramatique reste la mort du coureur Antoine Demoitié, heurté à la tête par une moto de l'organisation après avoir fait une chute sans gravité.

Une course cycliste, de nos jours, est en effet une débauche de véhicules motorisés tentant de se frayer un passage entre les vélos. Avec des conséquences graves : il ne se passe plus un tour de France sans qu'au moins un coureur soit mis à terre par un véhicule.

Si la sécurité physique des coureurs était réellement un souci, l'utilisation de véhicules lors des courses cyclistes serait sévèrement revue. C'est d'ailleurs ce que demandent beaucoup de coureurs mais sans écho auprès de la fédération ni des médias. Après tout, les motos de la télévision sont la seule motivation des sponsors qui payent les salaires des coureurs…

Les enjeux du débats

Aujourd'hui, une seule blessure statistiquement anecdotique va potentiellement repousser de plusieurs années l'apparition des freins à disque au sein du peloton professionnel pour la simple raison que les photos sont impressionnantes.

Pourtant, il est évident que pour un cycliste isolé, les freins à disque améliorent grandement la sécurité. Ils sont également utilisés avec succès depuis des années au plus haut niveau en VTT et en cyclocross. Le cyclisme sur route est-il une exception ? Les gains évidents de sécurité d'un meilleur freinage ne compensent-ils pas le risque de se couper ?

N'ayant pas l'expérience de la course, je ne peux absolument pas juger.

Tout au plus puis-je remarquer que les coureurs cyclistes ont, pendant des années, lutté contre le port obligatoire du casque, pourtant élément de sécurité aujourd'hui indiscutable. L'opposition a été telle qu'il a été nécessaire d'établir une période de transition durant laquelle les cyclistes pouvaient se débarrasser de leur casque en arrivant sur la dernière montée d'une course.

Ne devrait-on pas également considérer l'exemple qu'ils donnent à une époque où la promotion du cyclisme face à la voiture devient un enjeu sociétal ?

Suite au buzz des photos particulièrement impressionnante de la blessure de Ventoso, j'ai entendu des particuliers refusant d'acheter un vélo de ballade avec freins à disque voire croyant que ceux-ci allaient désormais être interdit sur tous les vélos. Les organisateurs des courses amateurs amicales parlent aussi d'interdir les disques. Interdir une technologie qui pourrait potentiellement éviter des accidents ! Interdire des amateurs, utilisant majoritairement leur vélo dans le traffic quotidien, d'avoir des freins à disque s'ils veulent participer à des « sportives » mi-ballades, mi compétition amicales.

La résistance au changement

Vu sous cet angle, les implications et les enjeux de cette histoire sont bien plus importantes qu'une vilaine coupure. Mais cela illustre à quel point l'être humain est en permanence en train de lutter contre le changement, quelle que soit la forme qu'il puisse prendre.

Dans la narration des médias sociaux, la proposition suivant paraît logique : « Un cycliste professionnel dans une course très particulière se coupe et pense que sa blessure est due à des freins. Tous les vélos du monde devraient donc désormais utiliser des freins moins efficaces. »

Notre perception du danger est complètement tronquée par les médias (dans ce cas-ci une photo de blessure), par la narration (l'usage d'analogies avec des lames de rasoirs) et complètement irrationnelle (les motos et les voitures étant familières, elles n'apparaissent pas comme dangereuses, l'accident est un cas unique,etc).

Sous de fallacieux prétexte de risques supposés, nous refusons généralement de voir en face les risques que nous courrons déjà pour la simple raison que nous voulons nous complaire dans notre confortable immobilisme suranné. Nous exagérons les risques apportés par toute nouveauté. Et nous refusons les innovations qui pourraient nous apporter une réelle sécurité.

Finalement, l'être humain ne cherche absolument pas la sécurité. Il cherche l'illusion de celle-ci. Du coup, nos politiciens ne nous donne-t-ils pas exactement ce que nous cherchons ?

Le fait que les les vélos freineront désormais moins bien à cause d'une photo sanguinolente sur les réseaux sociaux n'est-elle pas une merveilleuse analogie, un extraordinaire résumé de toute la politique sécuritaire que nous mettons en place ces dernières décennies ?

Photo par photographer.

Merci d'avoir pris le temps de lire ce billet librement payant. Prenez la liberté de me soutenir avec quelques milliBitcoins: 12uAH27PhWepyzZ8kzY9rMAZzwpfsWSxXt, une poignée d'euros, en me suivant sur Tipeee, Twitter, Google+ et Facebook !

Ce texte est publié par Lionel Dricot sous la licence CC-By BE.

29 Apr 2016 10:54pm GMT

Philip Van Hoof: Putting an LRU in your code

For the ones who didn't find the LRU in Tracker's code (and for the ones who where lazy).

Let's say we will have instances of something called a Statement. Each of those instances is relatively big. But we can recreate them relatively cheap. We will have a huge amount of them. But at any time we only need a handful of them.

The ones that are most recently used are most likely to be needed again soon.

First you make a structure that will hold some administration of the LRU:

typedef struct {
        Statement *head;
        Statement *tail;
        unsigned int size;
        unsigned int max;
} StatementLru;

Then we make the user of a Statement (a view or a model)

class StatementUser
{
        StatementUser();
        void useStatement(KeyType key);
private:
        StatementLru stmt_lru;
        Map<KeyType, Statement*> stmts;
}

Then we will add to the private fields of the Statement class the members prev and next: We'll make a circular doubly linked list.

class Statement: QObject {
        Q_OBJECT
    ...
private:
        Statement *next;
        Statement *prev;
};

Next we initialize the LRU:

StatementUser::StatementUser() 
{
        stmt_lru.max = 500;
        stmt_lru.size = 0;            
}

Then we implement using the statements

void StatementUser::useStatement(KeyType key)
{
        Statement *stmt;

        if (!stmts.get (key, &stmt)) {

                stmt = stmt_factory.createStatement(key);

                /* use replace instead of insert to make sure we store the string that
             belongs to the right sqlite statement to ensure the lifetime of the
             string matches the statement */

                stmts.insert (key, stmt);

                /* So the ring looks a bit like this: *
           *                                    *
           *    .--tail  .--head                *
           *    |        |                      *
           *  [p-n] -> [p-n] -> [p-n] -> [p-n]  *
           *    ^                          |    *
           *    `- [n-p] <- [n-p] <--------'    */

                if (stmt_lru.size >= stmt_lru.max) {
                   Statement *new_head;

                  /* We reached max-size of the LRU stmt cache. Destroy current
                   * least recently used (stmt_lru.head) and fix the ring. For
                   * that we take out the current head, and close the ring.
                   * Then we assign head-&gt;next as new head. */

                        new_head = stmt_lru.head->next;
                        auto to_del = stmts.find (stmt_lru.head->stmt);
                        stmts.remove (to_del);
                        delete stmt_lru.head->stmt;
                        stmt_lru.size--;
                        stmt_lru.head = new_head;
                } else {
                        if (stmt_lru.size == 0) {
                                stmt_lru.head = stmt;
                                stmt_lru.tail = stmt;
                        }
                }

                /* Set the current stmt (which is always new here) as the new tail
           * (new most recent used). We insert current stmt between head and
           * current tail, and we set tail to current stmt. */

                stmt_lru.size++;
                stmt->next = stmt_lru.head;
                stmt_lru.head->prev = stmt;

                stmt_lru.tail->next = stmt;
                stmt->prev = stmt_lru.tail;
                stmt_lru.tail = stmt;

        } else {
                if (stmt == stmt_lru.head) {

                        /* Current stmt is least recently used, shift head and tail
                   * of the ring to efficiently make it most recently used. */

                        stmt_lru.head = stmt_lru.head->next;
                        stmt_lru.tail = stmt_lru.tail->next;
                } else if (stmt != stmt_lru.tail) {

                        /* Current statement isn't most recently used, make it most
                   * recently used now (less efficient way than above). */

                        /* Take stmt out of the list and close the ring */
                        stmt->prev->next = stmt->next;
                        stmt->next->prev = stmt->prev;

                        /* Put stmt as tail (most recent used) */
                        stmt->next = stmt_lru.head;
                        stmt_lru.head->prev = stmt;
                        stmt->prev = stmt_lru.tail;
                        stmt_lru.tail->next = stmt;
                        stmt_lru.tail = stmt;
                }

                /* if (stmt == tail), it's already the most recently used in the
           * ring, so in this case we do nothing of course */
        }

        /* Use stmt */

        return;
}

29 Apr 2016 9:30pm GMT

28 Apr 2016

feedPlanet Grep

Fabian Arrotin: IPv6 connectivity status within the CentOS.org infra

Recently, some people started to ask proper IPv6/AAAA record for some of our public mirror infrastructure, like mirror.centos.org, and also msync.centos.org

Reason is that a lot of people are now using IPv6 wherever possible and from a CentOS point of view, we should ensure that everybody can have content over (legacy) ipv4 and ipv6. Funny that I call ipv4 "legacy" as we still have to admit that it's still the default everywhere, even in 2016 with the available pools now exhausted.

While we had already some AAAA records for some of our public nodes (like www.centos.org as an example), I started to "chase" after proper and native ipv6 connectivity for our nodes. That's where I had to take contact with all our valuable sponsors. First thing to say is that we'd like to thank them all for their support for the CentOS Project over the years : it wouldn't have been possible to deliver multiple terrabytes of data per month without their sponsorship !

WRT ipv6 connectivity that's where the results of my quest where really different : while some DCs support ipv6 natively, and even answer you in 5 minutes when asking for a /64 subnet to be allocated , some other aren't still ipv6 ready : For the worst case the answer was "nothing ready and no plan for that" or for sometimes the received answer was something like "it's on the roadmap for 2018/2019").

The good news is that ~30% of our nodes behind msync.centos.org have now ipv6 connectivity, so the next step is now to test our various configurations (distributed by puppet) and then also our GeoIP redirection (done at the PowerDNS level for such records, for which we'll also then add proper AAAA record)

Hopefully we'll have that tested and then announced soon, and also for other public services that we're providing to you.

Stay tuned for more info about ipv6 deployment within centos.org !

28 Apr 2016 10:00pm GMT

Dries Buytaert: How is Drupal 8 doing?

The one big question I get asked over and over these days is: "How is Drupal 8 doing?". It's understandable. Drupal 8 is the first new version of Drupal in five years and represents a significant rethinking of Drupal.

So how is Drupal 8 doing? With less than half a year since Drupal 8 was released, I'm happy to answer: outstanding!

As of late March, Drupal.org counted over 60,000 Drupal 8 sites. Looking back at the first four months of Drupal 7, about 30,000 sites had been counted. In other words, Drupal 8 is being adopted twice as fast as Drupal 7 had been in its first four months following the release.

As we near the six-month mark since releasing Drupal 8, the question "How is Drupal 8 doing?" takes on more urgency for the Drupal community with a stake in its success. For the answer, I can turn to years of experience and say while the number of new Drupal projects typically slows down in the year leading up to the release of a new version; adoption of the newest version takes up to a full year before we see the number of new projects really take off.

Drupal 8 is the middle of an interesting point in its adoption cycle. This is the phase where customers are looking for budgets to pay for migrations. This is the time when people focus on learning Drupal 8 and its new features. This is when the modules that extend and enhance Drupal need to be ported to Drupal 8; and this is the time when Drupal shops and builders are deep in the three to six month sales cycle it takes to sell Drupal 8 projects. This is often a phase of uncertainty but all of this is happening now, and every day there is less and less uncertainty. Based on my past experience, I am confident that Drupal 8 will be adopted at "full-force" by the end of 2016.

A few weeks ago I launched the Drupal 2016 product survey to take pulse of the Drupal community. I plan to talk about the survey results in my DrupalCon keynote in New Orleans on May 10th but in light of this blog post I felt the results to one of the questions is worth sharing and commenting on sooner:

Survey drupal adoption

Over 1,800 people have answered that question so far. People were allowed to pick up to 3 answers for the single question from a list of answers. As you can see in the graph, the top two reasons people say they haven't upgraded to Drupal 8 yet are (1) the fact that they are waiting for contributed modules to become available and (2) they are still learning Drupal 8. The results from the survey confirm what we see every release of Drupal; it takes time for the ecosystem, both the technology and the people, to come along.

Fortunately, many of the most important modules, such as Rules, Pathauto, Metatag, Field Collection, Token, Panels, Services, and Workbench Moderation, have already been ported and tested for Drupal 8. Combined with the fact that many important modules, like Views and CKEditor, moved to core, I believe we are getting really close to being able to build most websites with Drupal 8.

The second reason people cited for not jumping onto Drupal 8 yet was that they are still learning Drupal 8. One of the great strengths of Drupal has long been the willingness of the community to share its knowledge and teach others how to work with Drupal. We need to stay committed to educating builders and developers who are new to Drupal 8, and DrupalCon New Orleans is an excellent opportunity to share expertise and learn about Drupal 8.

What is most exciting to me is that less than 3% answered that they plan to move off Drupal altogether, and therefore won't upgrade at all. Non-response bias aside, that is an incredible number as it means the vast majority of Drupal users plan to eventually upgrade.

Yes, Drupal 8 is a significant rethinking of Drupal from the version we all knew and loved for so long. It will take time for the Drupal community to understand Drupal's new design and capabilities and how to harness that power but I am confident Drupal 8 is the right technology at the right time, and the adoption numbers so far back that up. Expect Drupal 8 adoption to start accelerating.

28 Apr 2016 6:31pm GMT

Frank Goossens: Stephen Fry off the grid (but on Autoptimize)

Stephen Fry wrote an insightful critique about the what the web was and what it has become:

The real internet [as opposed to AOL] was that Wild West where anything went, shit in the streets and Bad Men abounding, no road-signs and no law, but ideas were freely exchanged, the view wasn't ruined by advertising billboards and every moment was very very exciting.

[…]

I and millions of other early 'netizens' as we embarrassingly called ourselves, joined an online world that seemed to offer an alternative human space, to welcome in a friendly way (the word netiquette was used) all kinds of people with all kinds of views. We were outside the world of power and control. Politicians, advertisers, broadcasters, media moguls, corporates and journalists had absolutely zero understanding of the net and zero belief that it mattered. So we felt like an alternative culture; we were outsiders.

Those very politicians, advertisers, media moguls, corporates and journalists who thought the internet a passing fad have moved in and grabbed the land. They have all the reach, scope, power and 'social bandwidth' there is. Everyone else is squeezed out - given little hutches, plastic megaphones and a pretence of autonomy and connectivity. No wonder so many have become so rude, resentful, threatening and unkind. […]

The radical alternative now must be to jack out of the matrix, to go off the grid. […]

I live in a world without Facebook, and now without Twitter. I manage to survive too without Kiki, Snapchat, Viber, Telegram, Signal and the rest of them. I haven't yet learned to cope without iMessage and SMS. I haven't yet turned my back on email and the Cloud. I haven't yet jacked out of the matrix and gone off the grid. Maybe I will pluck up the courage. After you …

While not off the grid yet, Stephen Fry blogs on WordPress and his blog uses my own little Autoptimize plugin. Let that be my proudest boast of the day. Sorry Stephen …

Possibly related twitterless twaddle:

28 Apr 2016 7:27am GMT

27 Apr 2016

feedPlanet Grep

Philip Van Hoof: Secretly reusing my own LRU code

Last week, I secretly reused my own LRU code in the model of the editor of a CNC machine (has truly huge files, needs a statement editor). I rewrote my own code, of course. It's Qt based, not GLib. Wouldn't work in original form anyway. But the same principle. Don't tell Jürg who helped me write that, back then.

Extra points and free beer for people who can find it in Tracker's code.

27 Apr 2016 10:55am GMT

26 Apr 2016

feedPlanet Grep

Mattias Geniar: Yum Update: DB_RUNRECOVERY Fatal error, run database recovery

The post Yum Update: DB_RUNRECOVERY Fatal error, run database recovery appeared first on ma.ttias.be.

If for some reason your server's disk I/O fails during a yum or RPM manipulation, you can see the following error whenever you run yum or rpc:

# yum update
...
rpmdb: page 18816: illegal page type or format
rpmdb: PANIC: Invalid argument
rpmdb: Packages: pgin failed for page 18816
error: db4 error(-30974) from dbcursor->c_get: DB_RUNRECOVERY: Fatal error, run database recovery
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30974) from dbcursor->c_close: DB_RUNRECOVERY: Fatal error, run database recovery
No Packages marked for Update
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30974) from db->close: DB_RUNRECOVERY: Fatal error, run database recovery
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30974) from db->close: DB_RUNRECOVERY: Fatal error, run database recovery
rpmdb: File handles still open at environment close
rpmdb: Open file handle: /var/lib/rpm/Packages
rpmdb: Open file handle: /var/lib/rpm/Name
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30974) from dbenv->close: DB_RUNRECOVERY: Fatal error, run database recovery

The fix is, thankfully, rather easy: remove the RPM database, rebuild it and let yum download all the mirror's file lists.

$ mv /var/lib/rpm/__db* /tmp/
$ rpm -rebuilddb
$ yum clean all

The commands above are safe to run. If for some reason this does not fix, you can get the files back from the /tmp path where they were moved.

The post Yum Update: DB_RUNRECOVERY Fatal error, run database recovery appeared first on ma.ttias.be.

Related posts:

  1. Rebuilding the yum RPM database Yum uses an internal database to keep track of the...
  2. Rebuilding your RPM package database: fixing RPM/yum problems If you're finding yourself stuck with yum updates and failing...
  3. Silly Yum Tricks: whatprovides, groups & repolist These are a few I've only learned recently. yum (what)provides...

26 Apr 2016 9:00pm GMT

Mattias Geniar: Nginx 1.10 brings HTTP/2 support to the stable releases

The post Nginx 1.10 brings HTTP/2 support to the stable releases appeared first on ma.ttias.be.

A very small update was sent to the nginx-announce mailing list today. And I do mean very small:

Changes with nginx 1.10.0 --- 26 Apr 2016

*) 1.10.x stable branch.

---
Maxim Dounin
http://nginx.org/
[nginx-announce] nginx-1.10.0

At first, you wouldn't think much of it.

However, this new release includes support for HTTP/2. That means from now on, HTTP/2 is available in the stable Nginx releases and you no longer need the "experimental" mainline releases.

$ nginx -V
nginx version: nginx/1.10.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: ... --with-http_v2_module

This is very good news for the adoption of HTTP/2! If you're running Nginx from their official repositories and you have SSL/TLS enabled, I suggest you go ahead and enable HTTP/2 right now.

If you're new to HTTP/2 and want to learn more about it, here are some resources I created:

Exciting news!

Update: Alan kindly reminded of the impending doom happening on May 15th when Chrome disables NPN support. In short: having the http2 option enabled won't help, as your OS will no longer be able to support HTTP/2.

The post Nginx 1.10 brings HTTP/2 support to the stable releases appeared first on ma.ttias.be.

Related posts:

  1. Enable Keepalive connections in Nginx Upstream proxy configurations A very common setup to see nowadays is to have...
  2. Nginx: password protect a directory Nginx is a very powerful webserver, often used as a...
  3. Chrome To Explicitly Mark HTTP Connections As Non-Secure So 2015 will be the year of HTTPs/SSL/TLS. Chromium, the...

26 Apr 2016 7:24pm GMT

Les Jeudis du Libre: Mons, le 19 mai : PostgreSQL et la streaming replication

Logo de PostgreSQLCe jeudi 19 mai 2016 à 19h se déroulera la 49ème séance montoise des Jeudis du Libre de Belgique.

Le sujet de cette séance : PostgreSQL et la streaming replication

Thématique : Base de données|sysadmin|communauté

Public : DBA|sysadmin|entreprises|étudiants

L'animateur conférencier : Stefan Fercot

Lieu de cette séance : HEPH Condorcet, Chemin du Champ de Mars, 15 - 7000 Mons - Auditorium 2 (G01) situé au rez de chaussée (cf. ce plan sur le site d'Openstreetmap; ATTENTION, l'entrée est peu visible de la voie principale, elle se trouve dans l'angle formé par un très grand parking).

La participation sera gratuite et ne nécessitera que votre inscription nominative, de préférence préalable, ou à l'entrée de la séance. Merci d'indiquer votre intention en vous inscrivant via la page http://jeudisdulibre.fikket.com/. La séance sera suivie d'un verre de l'amitié.

Les Jeudis du Libre à Mons bénéficient aussi du soutien de nos partenaires : CETIC, Normation, OpenSides, MeaWeb et Phonoid.

Si vous êtes intéressé(e) par ce cycle mensuel, n'hésitez pas à consulter l'agenda et à vous inscrire sur la liste de diffusion afin de recevoir systématiquement les annonces.

Pour rappel, les Jeudis du Libre se veulent des espaces d'échanges autour de thématiques des Logiciels Libres. Les rencontres montoises se déroulent chaque troisième jeudi du mois, et sont organisées dans des locaux et en collaboration avec des Hautes Écoles et Facultés Universitaires montoises impliquées dans les formations d'informaticiens (UMONS, HEH et Condorcet), et avec le concours de l'A.S.B.L. LoLiGrUB, active dans la promotion des logiciels libres.

Description : Dans le milieu hospitalier, Stefan Fercot et son équipe sont chargés de gérer au quotidien l'infrastructure serveurs hébergeant la solution développée par leur société. Ce dossier patient informatisé est un élément central pour les équipes soignantes de nombreuses institutions. Maintenir une application performante et hautement disponible est donc très important. C'est à cette fin qu'est utilisé PostgreSQL, fonctionnant sur serveurs CentOS/RedHat.

PostgreSQL est un moteur de base de données relationnelle open source utilisé à travers le monde dans de nombreux secteurs : hébergement web, hôpitaux, banques,… Parmi ses plus fervents utilisateurs, citons notamment Skype.

L'exposé ciblera les sujets suivants :

  • Installation
  • Brève explication du fonctionnement interne
  • Méthodes de sauvegarde (dumps, point-in-time recovery, streaming replication)
  • Streaming replication : retour d'expérience d'utilisation dans un environnement de type « cluster »
  • Quelques chiffres des volumétries gérées

26 Apr 2016 7:29am GMT

25 Apr 2016

feedPlanet Grep

Lionel Dricot: Enfoirés d’altruistes !

8488646629_59b959ea94_z

En éternel optimiste, je suis confiant dans le fait que l'immense majorité de l'humanité est bienveillante. Nous ne souhaitons que le bonheur pour nous-mêmes et les autres.

Mais alors, comment expliquer la multiplication des conflits, des guerres, des disputes et des violences ?

Ma réponse est toute simple : parce que nous ne sommes pas assez égoïstes et que nos différentes cultures nous poussent à "penser d'abord aux autres".

« Et alors ? » me diriez vous avec un air étonné en vous tapant la tempe de l'index. Contrairement à ce qu'on pourrait croire, avoir des bonnes intentions pour les autres ne fait que paver l'enfer, pour paraphraser le proverbe. La solution ? Soyons égoïstes et arrêtons un peu d'essayer de penser pour les autres !

Petit exemple introductif

Marie a offert une boîte de pralines à Jean. Ils viennent de la manger ensemble. Il n'en reste plus qu'une dans la boîte. Marie en a très envie. Mais elle veut avant tout faire plaisir à Jean.

- Tiens, prends la dernière !

Jean n'a pas du tout envie de la praline car il sait qu'elle est à l'alcool et il a horreur de ça. Cependant, il ne veut pas froisser Marie ni montrer que son refus est purement égoïste.

- Non, merci, je te la laisse.
- J'insiste, tu en as pris moins que moi !
- Vraiment, sans façon !
- Ce serait bête de la jeter !
- Bon, d'accord…

Moralité : Marie et Jean sont tous les deux frustrés mais sont persuadés de s'être frustrés pour le bien de l'autre. Ce qui a eu l'effet inverse !

Peut-on généraliser cet exemple ? Oui, je le pense !

Une hypocrite bienveillance

Le problème d'une société altruiste, c'est qu'il devient virtuellement impossible d'exprimer son propre désir, celui-ci étant perçu comme égoïste. Il devient également impossible de signifier à une personne bien intentionnée que son intention n'a pas eu l'effet escompté.

Il s'ensuit que les altruistes sont, par construction, forcés de vivre leurs propres plaisirs par procuration. Dans notre cas, c'est Marie forçant Jean à manger la praline qu'elle aurait bien voulu avoir.

La praline parait peut-être anecdotique mais remplaçons le chocolat par la morale et nous avons la source même des conflits et du fanatisme. Si un homme pense qu'il n'est pas sain que ses enfants soient exposés à de la pornographie, il va militer pour interdire la pornographie dans toutes la société afin de protéger tous les enfants ! Les opposants du mariage homosexuels militent pour, selon leur propre mot, le bien de tous et de la société. Ils sont donc essentiellement altruistes.

Exemple extrême : les extrémistes religieux ne cherchent jamais qu'à sauver les âmes égarées, quitte à les torturer et les tuer un petit peu en passant. Mais c'est pour leur bien.

L'inévitable frustration

Mais ces enfoirés d'altruistes font encore pire !

En effet, frustrés inconsciemment par le non-assouvissement de leurs désirs, ils en viennent à haïr les égoïstes qui n'ont rien demandé à personne.

Sans le savoir, ils exigent que tout le monde fasse le même sacrifice qu'eux. Ou, au minimum, ils veulent être reconnus pour leur sacrifice.

Certains vont jusqu'à affirmer tirer leur bonheur du bonheur des autres ! Cette rhétorique est paradoxale. Car si la phrase est vraie, alors l'altruiste est en fait profondément égoïste. Comme l'égoïsme n'est pas acceptable pour l'altruiste, il s'en suit que la proposition est hypocrite.

En résumé, les altruistes imposent leur vision du monde aux autres et ne supportent pas ceux qui s'occupent d'eux-mêmes.

Les conflits

Vous m'objecterez que si tout le monde était égoïste, il y aurait encore plus de conflits car, forcément, les envies sont parfois incompatibles.

Mais je pense le contraire. Car tout être humain normalement constitué est capable d'accepter une frustration si celle-ci est consciente et justifiée.
- J'ai envie de la dernière praline.
- Moi aussi.
- Tu en as mangé plus que moi.
- Effectivement, je te la laisse pour cette fois.

L'égoïsme améliore la communication, la transparence. De manière contre-intuitive, il est beaucoup plus facile de faire confiance à un égoïste : il ne cherche pas à nous faire plaisir, il suffit que ses intérêts soient alignés avec les nôtres. La frustration, elle, est verbalisée et rationalisée : « J'avais envie de la dernière praline mais il est juste que Marie aie pu la manger. »

L'égoïsme et la franchise entraîne donc une diminution des incompréhensions. Les conflits restants sont, au moins, clairement identifiés et négociables.

L'harmonie

Mais la véritable raison qui me fait abhorrer les altruistes est bien plus profonde.

Comment voulez-vous apporter de l'harmonie au monde si vous n'êtes pas en harmonie avec vous-mêmes ? Comment voulez-vous écouter les autres si vous n'êtes pas capable de vous écouter ? Comment satisfaire les envies de ceux que vous aimez si vous êtes vous même frustrés ?

L'altruisme est essentiellement morbide.

Vous voulez changer le monde ? Rendre les autres heureux ? Apporter du bonheur à vos proches ?

Charité bien ordonnée commence par soi-même ! Travaillez à être heureux, à votre propre bonheur et arrêtez de penser à la place des autres.

Photo par Lorenzoclick.

Merci d'avoir pris le temps de lire ce billet librement payant. Prenez la liberté de me soutenir avec quelques milliBitcoins: 12uAH27PhWepyzZ8kzY9rMAZzwpfsWSxXt, une poignée d'euros, en me suivant sur Tipeee, Twitter, Google+ et Facebook !

Ce texte est publié par Lionel Dricot sous la licence CC-By BE.

25 Apr 2016 6:54pm GMT

Dries Buytaert: Video: Can we save the open web?

In March, I did a presentation at SxSW that asked the audience a question I've been thinking about a lot lately: "Can we save the open web?".

The web is centralizing around a handful of large companies that control what we see, limit creative freedom, and capture a lot of information about us. I worry that we risk losing the serendipity, creativity and decentralization that made the open web great.


The open web closing

While there are no easy answers to this question, the presentation started a good discussion about the future of the open web, the role of algorithms in society, and how we might be able to take back control of our personal information.

I'm going to use my blog to continue the conversation about the open web, since it impacts the future of Drupal. I'm including the video and slides (PDF, 76 MB) of my SxSW presentation below, as well as an overview of what I discussed.

Here are the key ideas I discussed in my presentation, along with a few questions to discuss in the comments.

Idea 1: An FDA-like organization to provide oversight for algorithms. While an "FDA" in and of itself may not be the most ideal solution, algorithms are nearly everywhere in society and are beginning to impact life-or-death decisions. I gave the example of an algorithm for a self-driving car having to decide whether to save the driver or hit a pedestrian crossing the street. There are many other life-or-death examples of how unregulated technology could impact people in the future, and I believe this is an issue we need to begin thinking about now. What do you suggest we do to make the use of algorithms fair and trustworthy?

Idea 2: Open standards that will allow for information-sharing across sites and applications. Closed platforms like Facebook and Google are winning because they're able to deliver a superior user experience driven by massive amounts of data and compute power. For the vast majority of people, ease-of-use will trump most concerns around privacy and control. I believe we need to create a set of open standards that enable drastically better information-sharing and integration between websites and applications so independent websites can offer user experiences that meet or exceeds that of the large platforms. How can the Drupal community help solve this problem?

Idea 3: A personal information broker that allows people more control over their data. In the past, I've written about the idea for a personal information broker that will give people control over how, where and for how long their data is used, across every single interaction on the web. This is no small feat. An audience member asked an interesting question about who will build this personal information broker -- whether it will be a private company, a government, an NGO, or a non-profit organization? I'm not really sure I have the answer, but I am optimistic that we can figure that out. I wish I had the resources to build this myself as I believe this will be a critical building block for the web. What do you think is the best way forward?

Ultimately, we should be building the web that we want to use, and that we want our children to be using for decades to come. It's time to start to rethink the foundations, before it's too late. If we can move any of these ideas forward in a meaningful way, they will impact billions of people, and billions more in the future.

25 Apr 2016 6:50pm GMT

Frank Goossens: Is the web doomed?

Off course the web is not doomed, but despite the fact that web performance is immensely important (think impact on mobile experience, think impact on search engine ranking, think impact on conversion) the web keeps getting fatter, as witnessed by this graph from mobiforge;

web-page-size-revisited-revised

Yup; your average web page now has the same size as the Doom installer. From the original mobiforge article;

Recall that Doom is a multi-level first person shooter that ships with an advanced 3D rendering engine and multiple levels, each comprised of maps, sprites and sound effects. By comparison, 2016's web struggles to deliver a page of web content in the same size. If that doesn't give you pause you're missing something.

There's some interesting follow-up remarks & hopeful conclusions in the original article, but still, over 2 Megabyte for a web page? Seriously? Think about what that does that do to your bounce-rate, esp. knowing that Google Analytics systematically underestimates bounce rate on slow pages because people leave before even being seen by your favorite webstats solution?

So, you might want to reconsider if you really should:

Because on the web faster is always better and being slower will always cost you in the end, even if you might not (want to) know.

Possibly related twitterless twaddle:

25 Apr 2016 9:18am GMT

22 Apr 2016

feedPlanet Grep

Frank Goossens: So do you have the Imposter Syndrome?

Just read this on PPK's blog;

Have you ever felt that you have no talent whatever? […] Cherish [that] impostor syndrome. Don't trust people who don't have it.

If you want to know what happens in the […], you'll have to read his blogpost, but it is pretty insightful!

22 Apr 2016 4:42pm GMT

20 Apr 2016

feedPlanet Grep

Wim Leers: Drupal 8.1: BigPipe as an experimental module

Today, Drupal 8.1 has been released and it includes BigPipe as an experimental module.

Six months ago, on the day of the release of Drupal 8, the BigPipe contrib module was released.

So BigPipe was first prototyped in contrib, then moved into core as an experimental module.

Experimental module?

Quoting d.o/core/experimental:

Experimental modules allow core contributors to iterate quickly on functionality that may be supported in an upcoming minor release and receive feedback, without needing to conform to the rigorous requirements for production versions of Drupal core.

Experimental modules allow site builders and contributed project authors to test out functionality that might eventually be included as a stable part of Drupal core.

With your help (in other words: by testing), we can help BigPipe "graduate" as a stable module in Drupal 8.2. This is the sort of module that needs wider testing because it changes how pages are delivered, so before it can be considered stable, it must be tested in as many circumstances as possible, including the most exotic ones.

(If your site offers personalization to end users, you are encouraged to enable BigPipe and report issues. There is zero risk of data loss. And when the environment - i.e. web server or (reverse) proxy - doesn't support streaming, then BigPipe-delivered responses behave as if BigPipe was not installed. Nothing breaks, you just go back to the same perceived performance as before.)

About 500 sites are currently using the contrib module. With the release of Drupal 8.1, hopefully thousands of sites will test it.12

Please report any issues you encounter! Hopefully there won't be many. I'd be very grateful to hear about success stories too - feel free to share those as issues too!

Documentation

Of course, documentation is ready too:

What about the contrib module?

The BigPipe contrib module is still available for Drupal 8.0, and will remain available.

Going forward, I'll make sure to tag releases of the BigPipe contrib module matching Drupal 8.1 patch releases, if they contain BigPipe fixes/improvements. So, when Drupal 8.1.3 is released, BigPipe 1.3 for Drupal 8.0 will be released also. That makes it easy to keep things in sync.

Upgrading?

When you upgrade from Drupal 8.0 to Drupal 8.1, and you were using the BigPipe module on your 8.0 site, then follow the instructions in the 8.1.0 release notes:

If you previously installed the BigPipe contributed module, you must uninstall and remove it before upgrading from Drupal 8.0.x to 8.1.x.


  1. Note there is also the BigPipe demo module (d.o/project/big_pipe_demo), which makes it easy to simulate the impact of BigPipe on your particular site.

  2. There's also a live demo: http://bigpipe.demo.wimleers.com/

20 Apr 2016 11:09am GMT

Dries Buytaert: Applaud the Drupal maintainers

Today is another big day for Drupal as we just released Drupal 8.1.0. Drupal 8.1.0 is an important milestone as it is a departure from the Drupal 7 release schedule where we couldn't add significant new features until Drupal 8. Drupal 8.1.0 balances maintenance with innovation.

On my blog and in presentations, I often talk about the future of Drupal and where we need to innovate. I highlight important developments in the Drupal community, and push my own ideas to disrupt the status quo. People, myself included, like to talk about the shiny innovations, but it is crucial to understand that innovation is only a piece of how we grow Drupal's success. What can't be forgotten is the maintenance, the bug fixing, the work on Drupal.org and our test infrastructure, the documentation writing, the ongoing coordination and the processes that allow us to crank out stable releases.

We often recognize those who help Drupal innovate or introduce novel things, but today, I'd like us to praise those who maintain and improve what already exists and that was innovated years ago. So much of what makes Drupal successful is the "daily upkeep". The seemingly mundane and unglamorous effort that goes into maintaining Drupal has a tremendous impact on the daily life of hundreds of thousands of Drupal developers, millions of Drupal content managers, and billions of people that visit Drupal sites. Without that maintenance, there would be no stability, and without stability, no room for innovation.

20 Apr 2016 9:38am GMT

19 Apr 2016

feedPlanet Grep

Philip Van Hoof: Foempe mensen

Gewoon, Sien Eggers.

19 Apr 2016 9:19pm GMT