Categories
Programming

sourcehut – la forge du hacker

sourcehut est un nouveau projet initié par Drew DeVault (notamment connu pour sway). Il s’agit d’une forge composée de différents outils connectés. sourcehut est sous licence GNU Affero General Public License. Principalement programmé en Python (avec le micro-framework Flask). L’interface Web n’utilise pas JavaScript et n’en est pas moins agréable à usiter sur différents types d’écrans.

De prime abord le service peu paraître déroutant et austère. sourcehut est composé de mini-services interconnectés (git.sr.ht pour Git, hg.sr.ht pour Mercurial, todo.sr.ht pour gérer les tickets ou issues, man.sr.ht pour la documentation, builds.sr.ht pour l’intégration continue, lists.sr.ht pour gérer des mailing lists, etc.).

La documentation de sourcehut utilise sourcehut comme par exemple pour Git ou paste. Et les annonces à propos des évolutions régulières de la plateforme se font ici via le service de mailing lists. Bref c’est déjà vraiment très complet et super efficace. sourcehut repose sur un paradigme bien différent de GitHub ou de GitLab.

Pour moi c’est vraiment la forge du hacker. De par son pragmatisme, sa souplesse et le fait qu’elle repose sur des technologies ouvertes. Mais je reviendrai là-dessus plus tard. Attention, sourcehut n’est pas pour le développeur qui compte ces followers ou stars de ces projets. Et ne me faites pas dire ce que je n’ai pas dit. Je pense qu’un aspect un peu plus social pourrait aussi y être intégré. Mais de façon plus saine et pragmatique. Peut être simplement avec un mini-service de communication synchrone (contrairement aux emails) inter-équipe.

Une différence majeure entre sourcehut et GitHub réside dans l’usage de Git. Particulièrement le processus de contribution à des projets. Tout le monde connaît bien les pull requests. Et bien avec sourcehut c’est beaucoup plus simple. Vous travaillez localement sur votre branche de votre propre dépôt (ou fork) et vous pouvez contribuer (en upstream) simplement en envoyant un patch par email. Oui je vous entend, mais lisez la suite avant de réagir comme ça. Des milliers de contributeurs de Linux et d’autres gros projets travaillent de cette manière encore aujourd’hui. En fait Git a été conçu pour travailler de cette manière. Envoyer des patchs par email en 2019 peut paraître old school, mais pour avoir essayé je peux vous dire que c’est vraiment simple et même plus rapide que de passer par une interface Web. Dans mon cas j’ai utilisé cette extension Git qui permet d’envoyer un set de commits en upstream par email. Et une fois l’extension bien configurée, il suffit par exemple de taper git send-email HEAD~2. Qui en quelques sortes est l’équivalent d’une pull request sur GitHub. Ensuite le mainteneur peut appliquer le patch. Aussi l’avantage de l’email pour contribuer à des projets est que vous utilisez des technologies open source. Vous pouvez ainsi utiliser des clients comme Thunderbird ou KMail. Ou directement SMTP si vous utilisez le module Git send-email. Et comme on peut le voir, il est naturellement possible de discuter sur un patch soumis avant qu’une contribution soit acceptée. Comme une discussion sur GitHub. Sauf que ces discussions je peux les suivre depuis KMail et y prendre part sans ouvrir mon navigateur Web. Alors certes, j’aime beaucoup ce navigateur Web qui est Firefox. Mais ces derniers temps il est beaucoup utilisé pour interagir avec des services propriétaires. Et je trouve ceci assez ironique. Le fait qu’une bonne veille application de bureau permette finalement de communiquer en utilisant des standards, dans le cadre de contributions à des projets open source. Bon, c’est un autre sujet…

Pour finir ce que je trouve assez rigolo avec le service sourcehut (sr.ht), c’est la page pricing. C’est exactement mon esprit. Je n’ai jamais dépensé un cent pour GitHub ou GitLab alors que je contribue déjà financièrement à sourcehut. Pour l’instant à hauteur de 50 euros par an. Et si nécessaire je n’hésiterai pas à donner plus.

Categories
Programming Python

pipenv

Stegano utilise maintenant pipenv, le nouvellement recommandé (à prendre avec des pincettes) outil Python de packaging.

Si vous n’utilisez pas encore pipenv, je vous conseil de lire cette documentation. Et pourquoi pas ce petit billet.

Et si vous êtes un peu perdu avec les outils de packaging Python, j’ai commencé ce petit historique.

Categories
Programming

Une nouvelle fonctionnalité pour Newspipe

Newspipe propose une nouvelle fonctionnalité: la gestion de marque-pages. J’utilise depuis des années l’excellent service Pinboard pour gérer mes marque-pages. Aujourd’hui je ne prétends surtout pas le remplacer, mais je pense que cette fonctionnalité a bien sa place dans Newspipe.

Comme vous pouvez le constater sur la capture ci-dessous, tous les marque-pages que je conserve depuis des années sur Pinboard sont maintenant sur Newspipe. Il est en effet possible d’importer un fichier d’export JSON de Pinboard. Pratiquement toutes les données sont récupérées (je me suis inspiré de ce schéma de données).

Newspipe - bookmarks

Un bookmarklet est également disponible afin de rapidement marquer une page Web.

Il sera également bientôt possible de marquer une page Web provenant d’un article récupéré via un flux RSS/ATOM. Cette fonctionnalité fera un peu doublon avec le fait d’ajouter un article aux favoris. Mais la gestion des marque-pages va au-delà de la gestion des flux RSS/ATOM.

Categories
Programming Security

Stegano 0.7

Une nouvelle version de Stegano vient de pointer son nez. La principale nouveauté est le support d’unicode. Donc la possibilité de cacher des caractères avec un encodage UTF-8 (8 bits ou plus). Voici un exemple avec un encodage UTF-32 LE. Cela me donne envie de tester avec une option pour utiliser UTF-32 BE.

La seconde nouveauté, un peu moins importante, est l’introduction des type hints. J’y travail depuis quelques temps. Ce n’est qu’un début. Vous pouvez voir ce que ça donne ici.

Categories
Programming

Déploiement de Newspipe

J’ai récemment fait quelques efforts pour faciliter le déploiement de Newspipe. Vous pouvez utiliser le bouton disponible à cette page pour le déploiement sur Heroku. C’est la méthode la plus facile. Pour les personnes qui ne souhaitent pas utiliser Heroku, l’installation via Vagrant est également simple. Pour le moment, l’instance principale n’accepte plus la création de nouveaux comptes (je paye…). Cette page fournit plus de détails à propos du déploiement.

Python 3.6 sera utilisé par défaut sur une installation Heroku ou Vagrant. Cette version de Python est aussi conseillée pour «l’installation manuelle». Une nouvelle page permet de vérifier la version de Python utilisée.

Categories
Programming Python Steganography

Décret à propos de Python et Stéganô

Trump's decree on Python
Trump’s decree on Python

$ sudo pip3.5 install --upgrade Stegano
$ wget https://blog.cedricbonhomme.org/wp-content/uploads/2017/02/Trump_decree_on_Python.png
$ lsb-set reveal -i Trump_decree_on_Python.png -g eratosthenes

Plus sérieusement, quelques améliorations (et corrections) pour Stéganô sont disponibles. Bien que je ne parle pas tellement de ce projet ici, le changelog est à jour.

Categories
Programming

Newspipe 7.1.3

Newspipe 7.1.3 est disponible. Cette nouvelle version regroupe des modifications plutôt intéressantes.

Le crawler par défaut a été amélioré à différents niveaux. Il prend maintenant en compte un intervalle de rafraîchissement pour chaque flux. Du coup, je n’ai pas encore avancé sur le nouveau crawler alternatif.

Voici un exemple de profil public d’un utilisateur. Cette page liste les flux publics suivis par l’utilisateur en question. Les flux privés ne sont pas visibles (en général il y a un token privé dans l’adresse).

Voici un exemple de page pour un flux public d’un utilisateur.

La capture d’écran ci-dessous montre l’interface d’édition de flux.

newspipe_713_feed_edition

Cette page est souvent utilisée juste après l’ajout d’un nouveau flux. La page principale permet aussi de modifier les données d’un flux.

newspipe_713_main_page

Si vous voulez tester, c’est par ici.

Categories
Programming

The Semantic Web

Ontologies and other formal definitions of data are useful, but in our experience, even simplified things like Dublin Core are rarely encountered in the wild.

Good Enough Practices in Scientific Computing.

Categories
Programming Uncategorized

Signal – introduction des messages qui s’autodétruisent

Signal est décidément mon application préférée pour l’envoie de messages cours. La dernière mise à jour à introduit l’envoie de messages qui s’autodétruisent. Ceci me fait penser au flash SMS et aux silent SMS. Les silent SMS sont utilisés par la police.

Cette application est vraiment géniale, car elle conserve un minimum de données (et méta-données) sur vos conversations. Je vous renvoie à cet article très intéressant.

Bref, merci Open Whisper Systems ! Le seul point négatif, pour moi, et que j’utilise couramment cette application avec une seule personne. Rejoignez-nous!

Categories
Programming

Newspipe

pyAggr3g470r, JARR et maintenant Newspipe!

Promis, c’est le dernier changement de nom du projet. Pourquoi ce nouveau changement? Pour différentes raisons. Premièrement, cela fait maintenant quelque temps que je veux utiliser un nom de domaine qui m’appartient (de préférence en .io ou .org). Ceci me permet surtout de ne plus utiliser mon adresse email personnelle pour les notifications (ça fait aussi un peu plus «pro»). Malheureusement jarr.org coûte beaucoup trop chère (plus de 2000 euros lorsque je m’étais renseigné). Seconde raison, j’avais envie pour ce projet d’un nom qui ne contienne pas l’acronyme «RSS». Troisième raison, je voulais avoir un nom différent par rapport au fork principal de JARR. Le nom revient naturellement à ce fork comme c’était une idée du mainteneur. Les deux projets vont pouvoir évoluer de leur côté sans ambiguïté. C’est la combinaison de ces raisons qui fait que j’ai voulu changer de nom. À la limite si le nom de domaine avait été abordable, je n’aurai pas changé.

Voici donc la nouvelle adresse: https://www.newspipe.org. Cette instance est plus réactive et la base de données pourra stocker bien plus d’information. J’ai même utilisé un certificat Let’s Encrypt afin de satisfaire le plus grand nombre. En général je préfère CAcert.
Bref, n’hésitez pas à tester!

Sinon, j’ai récemment revu le déploiement via Vagrant. Évidemment, vous pouvez aussi simplement installer Newspipe sur votre système avec le script install.sh qui fonctionne maintenant plutôt bien (./install.sh sqlite ou ./install.sh postgresql).

Si vous voulez des informations sur ce qui a changé, c’est ici. Le projet devient un chouia plus sociale avec cette page (à activer dans votre profil). Il sera aussi bientôt possible de s’abonner aux nouvelles (non privées) d’un utilisateur.
Dans un second temps, j’aimerai avoir un nouveau crawler qui pourra être distribué. L’actuel est simplement exécuté avec une règle cron.

Juste pour terminer: Gandi + Heroku + Let’s Encrypt = ❤ Après avoir acquis le nom de domaine, tout peut se faire en quelques minutes via la ligne de commande.

P.S.: n’oubliez pas d’activer 2FA sur votre compte Gandi.