Le problème avec GNU/Linux, c'est que la distribution linux a typiquement un peu d'autres trucs que juste les soft GNU. Dans le désordre, on a l'init (sysv, systemd), udev, Xorg (ça, c'est vraiment pas un projet GNU avec une licence pareille)…
Du coup, je trouverait ça logique de l'appeler GNU/Xorg/Linux (l'init étant tellement proche du noyau linux qu'il peut y être assimilé).
comme je l'ai dit plus haut un serveur intermédiaire a de nombreux avantages et je pense qu'à l'heure actuelle c'est préférable.
Pour ma part, je vois un inconvénient principal : on devient dépendant du serveur qui maintient notre JID. Que ce soit le nôtre ou pas. Typiquement, j'ai un compte sur jabber.fr, que je n'utilise plus, parce que les certificats SSL n'ont pas été renouvelés. La migration vers un autre serveur est trop coûteuse pour que j'en voit l'intérêt.
Comparé a IRC, peu importe le serveur sur lequel je me connecte, ça marche toujours aussi bien. Alors certes, IRC n'offre pas le même service, mais finalement ça me convient mieux.
Un système « distribué » comme compris ici (que j'appelle plutôt « entièrement pair à pair » pour éviter les confusions), ne se passe pas de serveur, c'est juste que le serveur est placé au niveau du client, ou en d'autres terme c'est le client qui fait le boulot.
Tout a fait, et ça peut aussi poser des problèmes sur les nœuds a la périphérie du réseau comme les appareils mobiles qui n'ont pas forcément la bande passante ou la batterie nécessaire.
Par contre, malgré cela, il faut tout de même tendre vers du distribué dans le sens ou chaque nœud fait partie intégrante du réseau. Dans le cas de synthing, on a le choix de ne pas avoir de serveur (et donc une dispo des données moins importante) ou monter (ou louer) un serveur pour avoir une dispo plus importante. Le choix est possible et est fait en toute connaissance de cause.
Tiens d'ailleurs XMPP est un cas particulier : c'est un réseau décentralisé « hybride », c'est à dire qu'il y a des serveurs intermédiaires mais il est capable de faire du P2P (j'ai un article à publier sur Jingle à ce sujet). On est aussi plusieurs à envisager à terme d'en faire un réseau entièrement pair à pair en regroupant serveur et client (optionnellement), ça ne se fera peut-être jamais, mais c'est techniquement possible (on peut déjà se passer de serveur en local).
Je serais curieuse de savoir comment ça serait possible. J'imagine déjà plusieurs problèmes :
comment gérer l'identité si il n'y a plus de serveur. Le JID avec un nom d'utilisateur, un @ et un nom de domaine ne semble plus adapté.
comment passer les NAT sans serveur ? Des projets P2P depuis le début ont déjà résolu ce problème.
comment gérer la mobilité : le changement d'adresse IP ?
Et je suppose que le résultat ne serait pas compatible avec le réseau XMPP fédéré actuel. A la limite, c'est pas si gênant, mais peut on encore appeler ça du XMPP ?
Pour ma part, je partage cette problématique depuis un moment. Passer de quelque chose de décentralisé a quelque chose de complètement distribué, et c'est ce qui me fait abandonner progressivement XMPP/Jabber.
Je vous partage ici quelques autres solutions :
Tox pour la messagerie (pas d'expérience)
cjdns pour du routage IPv6, et ça marche vraiment bien
Sinon, :>>fichier. mais comme dit précédemment, cela a l'inconvénient d'être une syntaxe du shell et pas une commande système. (ne fonctionne pas facilement avec sudo par exemple)
Pour ma part, je viens tout juste de mettre en place un gestionnaire de mot de passe sur ma machine qui va sans doute me permettre d'avoir des mots de passe un peu plus sécurisés. J'utilise pass pour cela. Il stocke les mots de passe en chiffré via une clef GPG. Pour partager ces mots de passe entre mes différents ordinateurs, je mets le tout sur une clef USB, avec la clef GPG que j'utilise exclusivement pour mes mots de passe.
Et je ne vais certainement pas mettre le tout sur Internet. Pas une seule seconde.
Après, si tu préfères passer par le réseau, tu fais un joli scp :)
Au final, tu voudrais tirer les gens au sort pour qu'ils défendent chacun leur intérêt personnel, avec comme sous-entendu qu'actuellement c'est le cas mais comme, sociologiquement, les élus se ressemblent, ils ne défendent pas les intérêts de beaucoup de personnes. J'ai bien résumé ? Mais le problème, c'est qu'un élu n'a pas à défendre ses propres intérêts, il doit agir au nom de l'intérêt général. Et l'intérêt général n'est pas la somme des intérêts individuels.
C'est une approche bien simpliste.
Deux choses :
soit les personnes a qui on donne du pouvoir (par l'élection ou le tirage au sort, peu importe) ne sont pas capable de différencier leur intérêt personnel de l'intérêt général. Et dans ce cas, il est effectivement mieux que ceux qui ont le pouvoir soient représentatifs
soit ces personnes sont capable d'agir pour le bien commun, et le fait que l'assemblée soit tirée au sort, donc plus représentative, lui donnera un avantage pour comprendre les problèmes du peuple et trouver des solutions pertinentes.
Dans la pratique, chacun se situe un peu des deux cotés. Personne n'est complètement impartial (pourquoi un juge se récuse-t-il donc lorsqu'une affaire le touche de trop près ?). Mais les personnes fondamentalement égoïstes et incapable d'agir même un peu pour le bien commun sont rares.
Dans tous les cas, une assemblée par tirage au sort a un avantage par rapport a une assemblée d'élus telle qu'on le conçoit actuellement.
Ce sont des régimes républicains et libéraux quant aux droits du citoyens mais pas des démocraties.
Le terme de "démocratie" a d'ailleurs évolué dans le temps. Par exemple, pendant la révolution française, le terme république était bien plus prisé. Les révolutionnaires se défendaient de vouloir créer une démocratie, ce qui était pour eux une abjection.
Si on met en place un système de délagation, pas forcément.
Il faut de toute façon que les citoyens aient la possibilité de censurer une loi qui ne leur convient pas. Un bon nombre d'abus récents auraient été évités de cette manière. (Qui est pour la création d'un état d'urgence permanent ?)
Sauf que de ce que j'ai compris, c'est pas la clef GPG du domaine, mais de l'expéditeur.
On s'autohéberge comme on veut, il faut juste se faire signer par la toile de confiance pour que mon destinataire ait bien confiance que c'est moi, et que je ne lui envoie pas de spam.
Personne ne défendant le tirage au sort ne l'envisage pour désigner des preneurs de décisions. Les personnes tirées au sort remplissent un rôle d'utilité publique bien cadré. Ils devraient remplacer nos hauts fonctionnaires.
Par exemple, ils pourraient rédiger des lois, mais pas les voter.
Ils peuvent a la limite remplir certaines fonctions de l'exécutif, mais des fonctions non critiques et fortement encadrées par la loi.
Pour nous représenter a l'étranger ou diriger nos armées, c'est peut être plus l'élection qui serait adaptée. Mais il aurait assez peu de pouvoir face au peuple, il aurait juste la possibilité d'agir dans le cadre des mandats de l'assemblée populaire, et aurait la possibilité de se voir destituer a tout moment si il agit mal. En fin de mandat, il faudrait juger si il a bien rempli sa mission et si il a fauté, le punir en conséquence.
Pas forcément. Si le FN arrive au pouvoir, ce ne sera peut être pas avec une majorité écrasante de 75% des voix. Mais peut être avec une toute petite majorité (dépendant du mode de scrutin. Et pour continuer a avoir de l'influence après, si ils retombent minoritaires, ils ont tout de même intérêt a proposer la proportionnelle.
La question principale est la suivante : est-ce qu'il est le seul développeur de Nodetad++. Dans ce cas, je ne vois pas de problème a cette déclaration, qui au final n'engage que lui car il est le seul développeur.
Si au contraire il y a plusieurs développeurs, je peux comprendre que certains y voient un problème.
Après, je ne suis pas du tout d'accord avec sa déclaration, mais je considère qu'il a le doit de s'exprimer, y compris au nom de Notepad++ si cela ne pose pas de problème aux autres contributeurs.
Car bon, laisser ces pays sans État, en proie à une guerre complexe dont civile ce n'est pas la meilleure chose à faire ni pour eux (la preuve avec la fuite des syriens de chez eux), ni pour nous (crise des migrants et terrorisme).
L'état Syrien est toujours présent. Ils ont perdu une majorité de leur territoire aux mains de d'ISIS mais c'est beaucoup de désert. La majorité de la population reste du coté Syrien et malgré les troubles, ils ont une vie relativement stable.
C'est sûr que les attentats de Paris, pour eux, c'est un peu plus fréquent. Mais c'est faux de dire que c'est un pays sans état.
Ce que je regrette avec cette histoire, c'est qu'on réduit l'écologie au CO2. C'est très limitatif. A mon sens, les émissions de CO2 sont un problème écologique mineur comparé a :
l'érosion des sols
les pesticides
le nucléaire
tous les autres polluants (particules, plastiques, chimiques, …)
les infrastructures
la pêche
la densité trop importante des populations dans les villes (qui est un facteur de tout le reste)
…
Si tu cherches juste a limiter le CO2, tu va remplacer ton poêle a bois avec un convecteur électrique ? Il faut tout de même garder un peu de bon sens…
Donc, si tu cherches a avoir un effet dans tes actions, c'est important de définir ce que tu cherches a accomplir. Choisir les objectifs. Ensuite, seulement, les actions pourront avoir du sens.
Les monocultures sont causées par la mécanisation de l'agriculture. Cultiver au tracteur est très rentable en terme de surface cultivé par cultivateur, mais très peu rentable en terme de production au m². La culture a la main est la plus rentable dans ce cas car tu peux mélanger les espèces végétales. et gagner en productivité au m².
Sur le même principe, j'ai créé doc l'autre jour pour répondre un peu au même besoin.
L'idée était de pouvoir détecter les fichiers dupliqués et copier des arborescence de répertoire entre mon stockage amovible et mon disque sur mon ordinateur sans créer de doublons ou supprimer des fichiers uniques.
L'usage est similaire, mais le hash du fichier est stocké dans des attributs étendus (il faut que le système de fichiers les supporte). On commence avec un doc commit pour générer le hash de tous les fichiers. Un doc status affichera les fichiers modifiés (non hashés ou ceux ayant une date de modification plus récente que le hash). doc check vérifiera le hash de chaque fichier, et doc cp permet de copier une arborescence source vers une arborescence destination.
C'est écrit en Go, et si vous avez l'environnement de dev configuré, l'installation est aussi simple que go install github.com/mildred/doc.
Les usages ne sont pas tout a fait les mêmes, mais je profite de cette dépêche pour en parler un peu.
Il s'utilise aussi très bien pour gérer des virtual hosts lorsque'on souhaite mixer différents serveurs web derrière (par exemple si tous les services a répartir n'utilisent pas tous Apache, Nginx ou votre serveur favori, ou si vous utilisez des containers Docker qui exposent uniquement un port 80).
Il peut aussi permettre d'ajouter la couche TLS a une connexion HTTP non sécurisée.
[^] # Re: RMS a raison
Posté par Mildred (site web personnel) . En réponse au journal Où est le "vrai Linux"?. Évalué à 1.
Le problème avec GNU/Linux, c'est que la distribution linux a typiquement un peu d'autres trucs que juste les soft GNU. Dans le désordre, on a l'init (sysv, systemd), udev, Xorg (ça, c'est vraiment pas un projet GNU avec une licence pareille)…
Du coup, je trouverait ça logique de l'appeler GNU/Xorg/Linux (l'init étant tellement proche du noyau linux qu'il peut y être assimilé).
[^] # Re: Même problématique
Posté par Mildred (site web personnel) . En réponse au journal Partage: de ownCloud (décentralisé) à Syncthing (distribué). Évalué à 2.
C'est principalement un intérêt personnel, après cela n'empêche pas mes collègues de s'intéresser a ce genre de choses également.
[^] # Re: Ne pas jeter le bébé avec l'eau du bain
Posté par Mildred (site web personnel) . En réponse au journal Partage: de ownCloud (décentralisé) à Syncthing (distribué). Évalué à 2.
Pour ma part, je vois un inconvénient principal : on devient dépendant du serveur qui maintient notre JID. Que ce soit le nôtre ou pas. Typiquement, j'ai un compte sur jabber.fr, que je n'utilise plus, parce que les certificats SSL n'ont pas été renouvelés. La migration vers un autre serveur est trop coûteuse pour que j'en voit l'intérêt.
Comparé a IRC, peu importe le serveur sur lequel je me connecte, ça marche toujours aussi bien. Alors certes, IRC n'offre pas le même service, mais finalement ça me convient mieux.
[^] # Re: Ne pas jeter le bébé avec l'eau du bain
Posté par Mildred (site web personnel) . En réponse au journal Partage: de ownCloud (décentralisé) à Syncthing (distribué). Évalué à 2.
Tout a fait, et ça peut aussi poser des problèmes sur les nœuds a la périphérie du réseau comme les appareils mobiles qui n'ont pas forcément la bande passante ou la batterie nécessaire.
Par contre, malgré cela, il faut tout de même tendre vers du distribué dans le sens ou chaque nœud fait partie intégrante du réseau. Dans le cas de synthing, on a le choix de ne pas avoir de serveur (et donc une dispo des données moins importante) ou monter (ou louer) un serveur pour avoir une dispo plus importante. Le choix est possible et est fait en toute connaissance de cause.
[^] # Re: Ne pas jeter le bébé avec l'eau du bain
Posté par Mildred (site web personnel) . En réponse au journal Partage: de ownCloud (décentralisé) à Syncthing (distribué). Évalué à 1.
Je serais curieuse de savoir comment ça serait possible. J'imagine déjà plusieurs problèmes :
@
et un nom de domaine ne semble plus adapté.Et je suppose que le résultat ne serait pas compatible avec le réseau XMPP fédéré actuel. A la limite, c'est pas si gênant, mais peut on encore appeler ça du XMPP ?
# Même problématique
Posté par Mildred (site web personnel) . En réponse au journal Partage: de ownCloud (décentralisé) à Syncthing (distribué). Évalué à 2.
Pour ma part, je partage cette problématique depuis un moment. Passer de quelque chose de décentralisé a quelque chose de complètement distribué, et c'est ce qui me fait abandonner progressivement XMPP/Jabber.
Je vous partage ici quelques autres solutions :
[^] # Re: shell touch
Posté par Mildred (site web personnel) . En réponse au journal La sortie de `ls` vient de changer. Évalué à 4.
Sinon,
:>>fichier
. mais comme dit précédemment, cela a l'inconvénient d'être une syntaxe du shell et pas une commande système. (ne fonctionne pas facilement avecsudo
par exemple)# Dans une clef USB
Posté par Mildred (site web personnel) . En réponse au journal Où mettre son archive de mots de passe ?. Évalué à 1.
Pour ma part, je viens tout juste de mettre en place un gestionnaire de mot de passe sur ma machine qui va sans doute me permettre d'avoir des mots de passe un peu plus sécurisés. J'utilise pass pour cela. Il stocke les mots de passe en chiffré via une clef GPG. Pour partager ces mots de passe entre mes différents ordinateurs, je mets le tout sur une clef USB, avec la clef GPG que j'utilise exclusivement pour mes mots de passe.
Et je ne vais certainement pas mettre le tout sur Internet. Pas une seule seconde.
Après, si tu préfères passer par le réseau, tu fais un joli scp :)
# Contre DNSSEC
Posté par Mildred (site web personnel) . En réponse au journal L'avenir de la sécurité de nos sites oueb : DNSSEC / HPKP / DANE TLSA / CSP. Évalué à -3.
http://sockpuppet.org/blog/2015/01/15/against-dnssec/
[^] # Re: Le tirage au sort
Posté par Mildred (site web personnel) . En réponse au journal De la démocratie et des systèmes de vote. Évalué à 2.
<troll mode=on>
C'est bien trop dangereux, on risquerait de donner du pouvoir a des gens qu'on aime pas trop (le FN ces derniers temps)
[^] # Re: Le tirage au sort
Posté par Mildred (site web personnel) . En réponse au journal De la démocratie et des systèmes de vote. Évalué à 2.
C'est une approche bien simpliste.
Deux choses :
soit les personnes a qui on donne du pouvoir (par l'élection ou le tirage au sort, peu importe) ne sont pas capable de différencier leur intérêt personnel de l'intérêt général. Et dans ce cas, il est effectivement mieux que ceux qui ont le pouvoir soient représentatifs
soit ces personnes sont capable d'agir pour le bien commun, et le fait que l'assemblée soit tirée au sort, donc plus représentative, lui donnera un avantage pour comprendre les problèmes du peuple et trouver des solutions pertinentes.
Dans la pratique, chacun se situe un peu des deux cotés. Personne n'est complètement impartial (pourquoi un juge se récuse-t-il donc lorsqu'une affaire le touche de trop près ?). Mais les personnes fondamentalement égoïstes et incapable d'agir même un peu pour le bien commun sont rares.
Dans tous les cas, une assemblée par tirage au sort a un avantage par rapport a une assemblée d'élus telle qu'on le conçoit actuellement.
[^] # Re: Le tirage au sort
Posté par Mildred (site web personnel) . En réponse au journal De la démocratie et des systèmes de vote. Évalué à 0.
Le terme de "démocratie" a d'ailleurs évolué dans le temps. Par exemple, pendant la révolution française, le terme république était bien plus prisé. Les révolutionnaires se défendaient de vouloir créer une démocratie, ce qui était pour eux une abjection.
[^] # Re: Le tirage au sort
Posté par Mildred (site web personnel) . En réponse au journal De la démocratie et des systèmes de vote. Évalué à 0.
Si on met en place un système de délagation, pas forcément.
Il faut de toute façon que les citoyens aient la possibilité de censurer une loi qui ne leur convient pas. Un bon nombre d'abus récents auraient été évités de cette manière. (Qui est pour la création d'un état d'urgence permanent ?)
[^] # Re: spam et signature
Posté par Mildred (site web personnel) . En réponse au journal Antispam, une solution. Évalué à 1.
Sauf que de ce que j'ai compris, c'est pas la clef GPG du domaine, mais de l'expéditeur.
On s'autohéberge comme on veut, il faut juste se faire signer par la toile de confiance pour que mon destinataire ait bien confiance que c'est moi, et que je ne lui envoie pas de spam.
[^] # Re: Le tirage au sort
Posté par Mildred (site web personnel) . En réponse au journal De la démocratie et des systèmes de vote. Évalué à 2.
Personne ne défendant le tirage au sort ne l'envisage pour désigner des preneurs de décisions. Les personnes tirées au sort remplissent un rôle d'utilité publique bien cadré. Ils devraient remplacer nos hauts fonctionnaires.
Par exemple, ils pourraient rédiger des lois, mais pas les voter.
Ils peuvent a la limite remplir certaines fonctions de l'exécutif, mais des fonctions non critiques et fortement encadrées par la loi.
Pour nous représenter a l'étranger ou diriger nos armées, c'est peut être plus l'élection qui serait adaptée. Mais il aurait assez peu de pouvoir face au peuple, il aurait juste la possibilité d'agir dans le cadre des mandats de l'assemblée populaire, et aurait la possibilité de se voir destituer a tout moment si il agit mal. En fin de mandat, il faudrait juger si il a bien rempli sa mission et si il a fauté, le punir en conséquence.
[^] # Re: Le tirage au sort
Posté par Mildred (site web personnel) . En réponse au journal De la démocratie et des systèmes de vote. Évalué à 3.
Ou alors, les professionnels font partie du système et gardent leurs intérêts propres.
Dans tous les cas, le peuple qui vote les lois peut refuser une loi qui n'est pas rédigée correctement.
[^] # Re: Retwitté
Posté par Mildred (site web personnel) . En réponse au journal Notepad++ et FN ; ou quand un développeur parle d'autre chose que de développement. Évalué à 1.
Pas forcément. Si le FN arrive au pouvoir, ce ne sera peut être pas avec une majorité écrasante de 75% des voix. Mais peut être avec une toute petite majorité (dépendant du mode de scrutin. Et pour continuer a avoir de l'influence après, si ils retombent minoritaires, ils ont tout de même intérêt a proposer la proportionnelle.
[^] # Re: bof
Posté par Mildred (site web personnel) . En réponse au journal Notepad++ et FN ; ou quand un développeur parle d'autre chose que de développement. Évalué à 2.
La question principale est la suivante : est-ce qu'il est le seul développeur de Nodetad++. Dans ce cas, je ne vois pas de problème a cette déclaration, qui au final n'engage que lui car il est le seul développeur.
Si au contraire il y a plusieurs développeurs, je peux comprendre que certains y voient un problème.
Après, je ne suis pas du tout d'accord avec sa déclaration, mais je considère qu'il a le doit de s'exprimer, y compris au nom de Notepad++ si cela ne pose pas de problème aux autres contributeurs.
[^] # Re: J'ai hésité
Posté par Mildred (site web personnel) . En réponse au journal Paris sous les balles. Évalué à 4.
L'état Syrien est toujours présent. Ils ont perdu une majorité de leur territoire aux mains de d'ISIS mais c'est beaucoup de désert. La majorité de la population reste du coté Syrien et malgré les troubles, ils ont une vie relativement stable.
C'est sûr que les attentats de Paris, pour eux, c'est un peu plus fréquent. Mais c'est faux de dire que c'est un pays sans état.
[^] # Re: Sur le CO2, un ordre de grandeur
Posté par Mildred (site web personnel) . En réponse au journal [HS] Faites chauffer la planète, notre moteur a froid.. Évalué à 0.
Ce que je regrette avec cette histoire, c'est qu'on réduit l'écologie au CO2. C'est très limitatif. A mon sens, les émissions de CO2 sont un problème écologique mineur comparé a :
Si tu cherches juste a limiter le CO2, tu va remplacer ton poêle a bois avec un convecteur électrique ? Il faut tout de même garder un peu de bon sens…
Donc, si tu cherches a avoir un effet dans tes actions, c'est important de définir ce que tu cherches a accomplir. Choisir les objectifs. Ensuite, seulement, les actions pourront avoir du sens.
[^] # Re: œufs !
Posté par Mildred (site web personnel) . En réponse au journal [HS] Faites chauffer la planète, notre moteur a froid.. Évalué à 2.
Les monocultures sont causées par la mécanisation de l'agriculture. Cultiver au tracteur est très rentable en terme de surface cultivé par cultivateur, mais très peu rentable en terme de production au m². La culture a la main est la plus rentable dans ce cas car tu peux mélanger les espèces végétales. et gagner en productivité au m².
[^] # Re: pas user friendly mais...
Posté par Mildred (site web personnel) . En réponse au journal Parlons XMPP - épisode 9 - copie de fichiers et Jingle. Évalué à 2.
Si: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/uuencode.html
Mais uuencode permet aussi de faire du base64 :)
[^] # Re: Un peu sur le même principe
Posté par Mildred (site web personnel) . En réponse à la dépêche Fim 1.1.0. Évalué à 3.
Il faut peut être faire un
go get -u PACKAGE
et ungo build PACKAGE
avant de faire ungo install PACKAGE
(README mis a jour).# Un peu sur le même principe
Posté par Mildred (site web personnel) . En réponse à la dépêche Fim 1.1.0. Évalué à 4.
Sur le même principe, j'ai créé doc l'autre jour pour répondre un peu au même besoin.
L'idée était de pouvoir détecter les fichiers dupliqués et copier des arborescence de répertoire entre mon stockage amovible et mon disque sur mon ordinateur sans créer de doublons ou supprimer des fichiers uniques.
L'usage est similaire, mais le hash du fichier est stocké dans des attributs étendus (il faut que le système de fichiers les supporte). On commence avec un
doc commit
pour générer le hash de tous les fichiers. Undoc status
affichera les fichiers modifiés (non hashés ou ceux ayant une date de modification plus récente que le hash).doc check
vérifiera le hash de chaque fichier, etdoc cp
permet de copier une arborescence source vers une arborescence destination.C'est écrit en Go, et si vous avez l'environnement de dev configuré, l'installation est aussi simple que
go install github.com/mildred/doc
.Les usages ne sont pas tout a fait les mêmes, mais je profite de cette dépêche pour en parler un peu.
# Virtual Host
Posté par Mildred (site web personnel) . En réponse à la dépêche Haproxy 1.6. Évalué à 8.
Il s'utilise aussi très bien pour gérer des virtual hosts lorsque'on souhaite mixer différents serveurs web derrière (par exemple si tous les services a répartir n'utilisent pas tous Apache, Nginx ou votre serveur favori, ou si vous utilisez des containers Docker qui exposent uniquement un port 80).
Il peut aussi permettre d'ajouter la couche TLS a une connexion HTTP non sécurisée.
Par exemple: https://gitlab.com/mildred593/docker-haproxy