PHPTour 2017 : TaguaVM

Au cours du PHPTour 2017, Ivan Enderlin nous a présenté un projet sur lequel il travaille en collaboration avec Julien Bianchi et Sébastien Houzé depuis février 2016 : TaguaVM, une machine virtuelle expérimentale pour le PHP.

Quoi de mieux que ses propres mots pour présenter l'outil :

L'objectif du projet Tagua VM est de fournir une VM PHP qui garantie un haut niveau de sûreté et de qualité en supprimant des larges classes de vulnérabilités, grâce à des outils appropriés comme Rust et LLVM.
Rust est un langage remarquable qui apporte des garanties fortes à propos de la sûreté de la mémoire. C'est aussi un langage très rapide qui rivalise avec C.
LLVM est une infrastructure de compilateur célèbre qui apporte de la modernité, des algorithmes à la pointe, des performances, une suite d'outils pour développeur etc.
Ce projet va résoudre trois problèmes en une fois :

    1. Fournir un niveau haut niveau de sûreté et de qualité en supprimant des larges classes de vulnérabilité, et ainsi éviter des coûts de bugs dramatiques ;
    2. Fournir de la modernité, une nouvelle expérience développeur et des algorithmes à la pointe de la recherche, donc des performances ;
    3. Fournir un ensemble de bibliothèques qui vont composer la VM et qui pourront être réutilisées en dehors du projet (comme le parseur, les analyseurs, les extensions etc.).

PHPTour 2017 : Les objets calisthéniques en PHP

Lors du PHP Tour, j'ai suivi le talk de MAXENCE POUTORD sur le thème "MAKE YOUR CODE GREAT AGAIN WITH THE OBJECT CALISTHENICS".

Cette philosophie de développement tient en 9 règles simples initialement rédigées en anglais que sont :

  • Règle 1 : N'avoir qu'un seul niveau d'indentation par méthode
  • Règle 2 : Ne pas utiliser de else
  • Règle 3 : Encapsuler tous les types primitifs et string
  • Règle 4 : Un seul point / une seule flèche par ligne
  • Règle 5 : Ne pas utiliser d’abréviation
  • Règle 6 : Garder des entités petites
  • Règle 7 : Ne pas créer de classe avec plus de deux variables instanciées
  • Règle 8 : Utiliser des classes de collection
  • Règle 9 : Ne pas créer de getter/setter aux propriétés

Transfer.sh, le partage de fichier en ligne de commande

Les moyens pour partager des fichiers en ligne ne manquent pas, mais je n'en connaissais pas qui pouvait s'utiliser simplement en ligne de commande.
En fouillant un peu sur github, je suis tombé sur transfer.sh.

Son utilisation la plus simple (en ligne de commande) se fait ainsi :
12:55 abourgouin@ankhmorpork ~/Téléchargements $ curl --upload-file blog.txt https://transfer.sh/blog.txt
https://transfer.sh/NYbiq/blog.txt

Le fichier uploadé (10Gb max) sera de base disponible pendant 14 jours. Il est toutefois possible d'ajouter quelques restrictions grâce à des options pour que le fichier soit disponible sur une période de temps plus courte ou ne soit pas téléchargé plus de fois qu'indiqué lors de l'upload...
Attention toutefois à ce que vous uploadez, vous en restez responsable.

Pour plus d'informations, n'hésitez pas à aller sur le github du projet !
Vous pourrez même le forker pour vous déployer votre propre transfer.sh à travers un conteneur docker.

Transfer.sh est aussi disponible en version web avec du drag&drop.

ShellCheck outil d’analyse pour vos scripts shell

Qu'est-ce que ShellCheck ?

ShellCheck est un outil d'analyse de scripts shell assez puissant dans la lignée de Lint qui devrait se trouver dans la boîte à outil de tout devops Unix.

Cet utilitaire vous permettra d'identifier de manière statique (sans exécuter le code) un bon nombre de petits défauts dans vos scripts shells qui, sur votre utilisation courante, fonctionnent peut-être comme un charme mais qui mis dans les mains d'autres personnes provoqueront des erreurs pour le moins embêtantes.

Par exemple, imaginez que pour une raison X ou Y, la variable suivante n'est pas renseignée...

rm -rf "$PATH_TO_FOLDER/"*

C'est une erreur triviale mais qui peut coûter très cher; bien d'autres sont listées par Koalaman, l'auteur du script.

Parcourir l'article

GitKraken, une GUI viable pour Git ?

logoGitKraken

Les premiers pas dans Git peuvent être parfois hésitants et quelques fois rebutants.
Un nouveau vocabulaire, de nouvelles commandes à apprendre, des workflows à appréhender afin de pouvoir participer sur un projet.

Aujourd'hui, il n'est plus indispensable d'avoir passé quelques heures à comprendre Git afin de pouvoir commencer à l'utiliser, et même à l'utiliser au quotidien.

Le 25 Novembre 2015, Axosoft a mis en ligne une interface graphique (gratuite mais non opensource) dédiée à Git. Cette application, disponible sur les principaux systèmes d'exploitation, permet de réaliser les diverses actions proposées par git-cli; merging, pushing, branching, rebasing, partial file staging... Allons voir plus en détails de quoi il en retourne.