0xfg a écrit 28 commentaires

  • [^] # Re: httpd

    Posté par  (site web personnel) . En réponse à la dépêche OpenBSD 5.6. Évalué à 4.

    Cool :)

    Dommage qu'il n'y a pas beaucoup d'hébergeurs web/vps qui proposent OpenBSD. Apparemment OVH propose FreeBSD sur ses serveurs dédiés mais pas d'OpenBSD.

    Pourtant OpenBSD semble être un bon candidat pour du hosting web, c'est simple à administrer, stable, sécuriser par défaut et bien documenter. Peut-être un peu moins performant que du Linux mais bon pour la plus part des usages ça doit bien faire l'affaire.

  • # httpd

    Posté par  (site web personnel) . En réponse à la dépêche OpenBSD 5.6. Évalué à 4.

    Je viens de découvrir l'existence de httpd, leurs serveur web minimaliste, la configuration est simple et lisible dans le même style que OpenSmtpd et tout le reste.

    Est-ce que quelque-un à un retour d'expérience là-dessus ?

    Vu qu'il supporte FastCGI, peut-on faire tourner PHP correctement avec httpd ?

  • [^] # Re: Un troll juste pour moi :)

    Posté par  (site web personnel) . En réponse au journal S’il vous plaît... architecture-moi un Kanboard !. Évalué à 1.

    Les données de départ sont bien stockées dans une base de données classique. C'est juste que le service possède les données dénormalisées en mémoire, un maximum de chose est précalculé à l'avance. Si le service crash on s'en fou, le reste du système est conçu pour gérer cela automatiquement sans perte de données…

  • [^] # Re: Un troll juste pour moi :)

    Posté par  (site web personnel) . En réponse au journal S’il vous plaît... architecture-moi un Kanboard !. Évalué à 5.

    Et t'as pas envie d'en parler ? T'utilises Revel, Gorilla, c'est interfacé avec une DB et un ORM, avec un reverse proxy ou en direct.

    Ce projet en Go n'est pas une application web mais un "service" parmi d'autres (architecture SOA). On utilise aucun framework ou ORM et ça reçoit le trafic directement derrière un load-balancer cisco qui coûte les yeux de la tête.

    Il y a énormément de business logic à l'intérieur de ce service, en fait pour être plus précis c'est un Ad-Network avec un système de real-time bidding auction, ça fait à la fois du CPC et du CPM.

    Avec ce genre de trafic, ton principal bottleneck va être les I/O sur le network et le disque. Si tu veux avoir un nombre raisonnable de serveurs, tu ne peux donc pas aller lire/écrire directement dans une base de données et ce même en utilisant un pool de connexions car celui-ci va être atteints en quelques secondes et ainsi ralentir les autres goroutines qui attendent d'avoir une connection disponible. Sans pool, tu va très vite arriver à limite du nombre maximum de file descriptors même si tu personnalise cette valeur… bref je passe les détails…

    La solution que l'on a adoptée est de tout faire en mémoire et d'avoir un démon le plus indépendant possible. Le service récupère ou reçoit les données qui vont bien à interval régulier. Une fois que tu a tweaker ton kernel aux petits oignons pour gérer autant de connexions TCP, ça roule comme sur des roulettes.

    Pour info, l'ancien système tournait avec 30 serveurs PHP avec du hardware bien costaud et un cluster memcached, la plateforme ne scalait plus, en période de pointe le load average de certains serveur montaient à plus de 100 et le response time côté client pouvait dépasser la seconde. Le même système fonctionne aujourd'hui sur seulement 10 serveurs et la load est même pas à 1 ou 2 avec un response time de 4ms à 100ms, tout ça parce que l'on a éliminé un par un chacun des bottlenecks, surtout le fait de tout faire en mémoire on a plus de problème de IO. A la fin, on se retrouve avec une architecture vraiment simple car on a plus de cluster memcached/redis/mysql mais un simple démon sans dépendances.

    On aurait pu faire la même chose en Java ou C++, mais en sachant que Go à été conçu exactement pour ce genre de problématique…

  • # Un troll juste pour moi :)

    Posté par  (site web personnel) . En réponse au journal S’il vous plaît... architecture-moi un Kanboard !. Évalué à 7.

    J'ai vraiment de la chance d'avoir un troll en mon honneur :)

    Le truc qu'il faut voir aussi c'est que j'essaie de réduire au maximum les dépendances externes, non seulement cela simplifie l'installation mais aussi la maintenance sur le long terme.

    Exemple :

    Je n'utilise pas jQuery pour ne pas me retrouver dans 3 ans avec un truc du style "le plugin X marche uniquement avec la version Y de jQuery donc on upgrade pas jQuery mais il y a une faille de sécurité dans la version Y", conséquence : dès le départ je supporte uniquement certains navigateurs web modernes ce qui fait que je peux utiliser du "vanilla javascript" qui utilise les API standards et normalisées.

    Certes, il ne faut pas réinventer la roue non plus mais faire des choix.

    Utiliser les dernières technologies ou projets à la mode c'est bien pour s'amuser ou quand on travail pour une startup kikoo lol 2.0 qui va vivre 6 mois. Mais dans la vrai vie, on doit faire des choix on fonction du contexte/contraintes.

    Dans ma vie professionnelle je passe mes journées à faire du Golang, du Python, du PHP et des shell-scripts.

    • J'utilise Go pour une plateforme qui doit gérer 1 milliard de requêtes HTTP par jour avec des milliers de connections concurrentes, le tout sur un nombre raisonnable de serveurs. Golang fait parfaitement la job et tourne sans problème.
    • J'utilise Python pour générer des rapports ou des stats.
    • J'utilise PHP pour faire des interfaces de management, des dashboards, des outils web internes.

    La difficulté est peut-être de choisir le bon outil pour faire la job demandée. Et surtout de penser à la maintenance sur le long terme, tests unitaires/fonctionnels, dette technique, etc… on en revient au même, tout dépend du contexte et de l'objectif à atteindre.

    Sur ce, je vous laisse troller :)

  • [^] # Re: retours

    Posté par  (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 2.

    L'erreur PHP a été corrigé dans la branche master du dépôt Git.

    Sinon pour répondre à la deuxième question, Kanboard n'est pas un logiciel de gestion de projet pour faire du Scrum, pour cela il y a déjà des outils qui le font très bien comme Jira (ok c'est pas libre). A la base, j'avais juste besoin d'un board avec des tâches de différentes couleurs.

    Pour les tâches réalisées, je vais ajouter la possibilité d'afficher un historique et un système de recherche. Pour le moment, une tâche clôturée n'est plus affichée sur le board.

    Pour la priorité, actuellement je trie simplement par ordre de priorité les tâches dans la colonne qui va bien avec la souris.

  • [^] # Re: retours

    Posté par  (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 3.

    Pour la partie sécurité, cela vient du parser Markdown que j'utilisais (Parsedown), je pensais qu'il filtrait le HTML par défaut mais non. Du coup, j'ai changé de parser Markdown et maintenant les tags HTML sont ignorés.

    Le correctif est disponible dans la branche master sur le dépôt Git.

    Cependant, tu notera que j'utilise certains headers HTTP pour améliorer la sécurité (Content-Security-Policy, X-XSS-Protection, X-Content-Type-Options: nosniff, X-Frame-Options:DENY…..) donc ça limite quand même les dégâts en cas de faille de sécurité.

    Et sinon, pour réorganiser les colonnes, il faudrait que j'améliore cela pour pouvoir modifier l'ordre de celles-ci.

  • [^] # Re: Site de démo

    Posté par  (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 4.

    Je viens de merger ta pull-request, c'est vraiment super, un simple vagrant up et c'est terminé :)

  • [^] # Re: Version PHP

    Posté par  (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 1.

    Cool, je savais pas que Debian faisait ce genre de patch entre les versions de PHP.

    Du coup j'ai changé la condition dans la branche master, maintenant c'est 5.3.3 minimum. J'ai pas de version de PHP aussi vieille sous la main pour tester mais ça devrait fonctionner.

  • [^] # Re: Serveur PHP embarqué

    Posté par  (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 8.

    Si tu parles du serveur HTTP embarqué à PHP depuis la version 5.4, la réponse est oui. C'est d'ailleurs ma plate-forme de développement, je me casse pas la tête à installer un Apache ou Nginx en local. PHP en ligne de commande suffit.

    cd /path/to/kanboard
    php -S 127.0.0.1:8000
    

    Et dans ton navigateur web : http://127.0.0.1:8000/

  • [^] # Re: Enfin une alternative aux solutions Java

    Posté par  (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 10.

    Merci pour le feedback.

    Au départ j'avais hésité à le faire en Python ou en Golang mais finalement je l'ai fais en PHP pour que se soit vraiment simple à installer partout. Quitte à faire un logiciel libre pour soit même autant qu'il serve aux autres également…

  • [^] # Re: scrum board.

    Posté par  (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 1.

    • Pour la limite d'encours c'est prévu dans ma todo list, le projet est jeune, juste un peu de patience et ça va arriver.
    • Pour PHP, c'est pas aussi horrible que ça, je sais que le langage à mauvaise réputation mais si tu regarde le code source c'est pas si pourri que ça. Le code reste simple, il n'y a pas de plat de spaghetti, c'est surement pas parfait mais il y a largement pire. L'avantage de PHP ici, c'est pour l'installation, un copier/coller et c'est terminé, et ça doit fonctionner probablement sur la majorité des hébergeurs web…

    J'aurais pu faire exactement la même chose en Python avec Flask, au final ça aurait pas changer grand chose, juste l'installation qui serait un peu plus compliqué. J'aurais pu le faire en Golang et tu aurais juste un démon à lancer…

  • [^] # Re: Version PHP

    Posté par  (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 7.

    La raison est que je stock les mots de passe avec la fonction password_hash() de PHP 5.5 (http://php.net/password) qui est la méthode recommandée actuellement.

    Cependant cette fonction n'est pas disponible pour les versions antérieurs à PHP 5.5, alors j'utilise une librairie en pure PHP qui assure une compatibilité des fonctions password_* pour les anciennes versions de PHP. Et donc cette librairie (https://github.com/ircmaxell/password_compat) demande au minimum PHP >= 5.3.7 pour fonctionner correctement.

    Dans la pratique, il est probable que cela fonctionne quand même, pour tester il suffit de commenter la condition dans le fichier check_setup.php. Pour plus d'informations se référer à https://github.com/ircmaxell/password_compat#requirements.

  • [^] # Re: Caldav

    Posté par  (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 3.

    J'ai pas encore pris le temps de regarder comment fonctionne CalDav mais je prends en note l'idée.

  • [^] # Re: Site de démo

    Posté par  (site web personnel) . En réponse à la dépêche Kanboard, un logiciel libre pour gérer ses projets avec la méthode Kanban. Évalué à 10.

    Tu as entièrement raison, je vais mettre un version de démo en ligne, ça sera plus simple pour tout le monde. Je ferais ça un peu plus tard dans la semaine.

  • # OpenSMTPd est vraiment génial pour un serveur perso

    Posté par  (site web personnel) . En réponse à la dépêche OpenSMTPD : Premiers Pas. Évalué à 4.

    Si jamais vous cherchez à héberger vos mails perso sur un petit serveur, c'est vraiment l'idéal.

    J'utilise OpenSmtpd sur un VPS depuis 1 an et ça tourne sans aucun problème.

    On peut le compiler à la main sous une Debian et la config fait même pas 10 lignes.

  • # Utilisation en production ?

    Posté par  (site web personnel) . En réponse à la dépêche Et si la meilleure des cartes RAID était libre ?. Évalué à 6.

    Est-ce qu'il y a des gens qui utilise ZFS en prod sur des systèmes critiques ? Est-ce que l'on peut considérer ZFS suffisamment stable et mature ?

    Au passage, l'article est super bien écrit !

  • # Broken by design ?

    Posté par  (site web personnel) . En réponse au journal Debian rejoint les utilisateurs de Systemd. Évalué à -3.

    Je suis le seul à penser que systemd est peu trop overkill pour être utilisé en tant que PID 1 ? Plus c'est simple, plus il y a de chances que se soit fiable, non ? Si je me trompe pas, il suffit que le pid 1 plante pour avoir un kernel panic ?

    Le philosophie Unix c'était pas "Faites des programmes qui font qu'une seule chose mais bien"…

    Un petit lien intéressant pour la route : http://ewontfix.com/14/

    Bon bah, il est temps de passer sous FreeBSD maintenant :)

  • [^] # Re: Merci Nicolas

    Posté par  (site web personnel) . En réponse au journal Le développeur de Poche menacé par la société Read It Later. Évalué à 2.

    Je suis le dev de Miniflux et le raccourci vers Poche ou Shaarli est prévu :) Ça sortira dans la version 1.2, un jour…

  • # Autres solutions libres made in France

    Posté par  (site web personnel) . En réponse à la dépêche Flux RSS / Atom et logiciels libres. Évalué à 1.

    Tant qu'a faire voici une liste de lecteurs RSS fabriqués à la main en France :

  • # Pourquoi faire simple quand on peut faire compliqué

    Posté par  (site web personnel) . En réponse à la dépêche Tempête dans les nuages : OpenStack et le bazar des API. Évalué à 6.

    En regardant le schéma, la première chose que je suis me suis dite est "Wahoo, c'est une usine à gaz ce truc"…

    Il y a vraiment des gens qui utilise ça en production ?

    Moi qui croyais que les systèmes les plus fiables étaient les plus simples.

  • # Migration de Ubuntu vers Debian prévue ?

    Posté par  (site web personnel) . En réponse à la dépêche Compte-rendu de l'intervention mercredi 17 avril. Évalué à 5.

    Vue les problèmes rencontrés avec Ubuntu Server, avez-vous planifiés une migration vers Debian ?

  • # Clone de OSX ?

    Posté par  (site web personnel) . En réponse à la dépêche Cairo-Dock en version 3.2 : les nouveautés. Évalué à 4.

    Le but du projet c'est de faire un clone du dock de OSX ? ou bien il y a plein de trucs en plus ?

    En tout cas ça l'air pas mal…

  • [^] # Re: et vous avez quoi contre Liferea ou Akregator?

    Posté par  (site web personnel) . En réponse à la dépêche Miniflux, un lecteur de flux RSS minimaliste. Évalué à 1.

    J'ai absolument rien contre les applis desktop. C'est simplement que pour mon usage je préfère une version web. Comme ca je peux lire mes flux depuis plusieurs machines avec différents OS (au travail sous Linux, à la maison sous OSX ou depuis n'importe où sans rien synchroniser…).

  • [^] # Re: Mot de passe admin vide

    Posté par  (site web personnel) . En réponse à la dépêche Miniflux, un lecteur de flux RSS minimaliste. Évalué à 1.

    En fait c'est un bug avec PHP < 5.3.7. Je n'ai pas encore pu reproduire le bug car je n'ai pas de vieille version de PHP sous la main.

    Cependant, j'ai fait un quick and dirty fix à l'aveugle sans tester dans la branche master.

    Pour plus d'informations, ce bug est suivi ici : https://github.com/fguillot/miniflux/issues/2