FreshRSS

🔒
❌ À propos de FreshRSS
Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

VS Look – Pour personnaliser les couleurs de votre Visual Studio Code

23 juillet 2022 à 09:00
Par : Korben

Je sais qu’en général, les développeurs aiment bien personnaliser des trucs… Genre en mettant des autocollants sur leur laptop, sur leur voiture, sur leur torse glabre et leur ventre de bière, ou encore sur leurs enfants.

Si c’est votre cas, que vous avez beaucoup de temps devant vous, il existe une extension pour Visual Studio Code qui permet de modifier la couleur de TOUS les éléments de VS Code.

Pour l’installer, rendez-vous sur la marketplace ici puis choisissez VS Look comme thème par défaut. Ensuite, via l’outil de lancement de commande, cherchez VSLook:Edit.

Basiquement, l’outil est un peu pénible à prendre en main, car il existe de très nombreux paramètres à changer, mais les développeurs de ce plugin ont réalisé une doc pour vous guider.

Les avantages merveilleux du CI / CD pour les dev

21 juillet 2022 à 09:00
Par : Korben

— Article en partenariat avec Talent.io —

Aujourd’hui les amis, nous allons parler d’un sujet très cher au Devops : Le CI/CD !

Pour ceux qui auraient zappé ces 10 dernières années, le CI/CD est une méthode de développement qui permet de publier des mises à jour de votre code à tout moment sans impacter ce qui est en production. C’est donc parfait lorsqu’on a besoin de mettre en place des cycles de développement plus rapide avec des modifications de code quotidiennes.

En ce qui concerne la signification, CI veut dire « Intégration Continue » et CD, « Déploiement Continu ». C’est très demandé dans les entreprises actuelles et en tant que développeur ou devops, c’est un sujet que vous devez connaître surtout si vous avez prévu de changer de travail pour quelque chose qui vous correspond plus.

Si vous souhaitez être plus proche de chez vous voire en télétravail, avoir un meilleur salaire ou tout simplement travailler sur des projets plus intéressants, je vous invite à vous créer un compte sur la plateforme talent.io. Ça se fait en quelques clics et vous recevrez ensuite des offres de la part d’entreprises qui correspondent à vos critères et qui affichent le salaire d’entrée de jeu ! talent.io c’est LE moyen le plus simple et le plus rapide de trouver votre prochain job tech. Les inscrits trouvent leur emploi en 20 jours en moyenne.

L’intégration Continue

Ce qu’on appelle Intégration Continue (CI) consiste pour les développeurs à tout simplement fusionner avec la branche master, l’ensemble de leurs modifications et cela autant de fois qu’ils le souhaitent

Ainsi, une équipe de développeurs peut travailler simultanément sur le même projet. Le fait d’intégrer une équipe de développeur dans un processus CI/CD permet de s’assurer que le code est testé, correctement formaté et compatible avec l’existant avant de le déployer.

Chacune de ces fusions de code va alors déclencher automatiquement une séquence qui « construire » (build) et tester le code. Ainsi, à chaque ouverture d’une pull request ou à chaque modification du code, le serveur git envoie une notification au serveur d’intégration continue. Ce dernier va alors cloner le dépôt, effectuer les checkouts nécessaires sur la branche source pour enfin la fusionner avec la branche master. Puis le script de build est alors lancé. Cette étape permet ainsi de valider que le code est sûr et respecte les bonnes pratiques, mais également d’automatiser le chargement des dépendances, l’installation des outils nécessaires à l’application et bien sûr la compilation si besoin.

Exemple de script dans l’éditeur de pipeline de Gitlab

La phase de build

Cette phase de build vérifie que l’application, selon le code qui a été commité, peut se qualifier pour les tests ultérieurs.

Cela consiste à « construire » l’application. Avec des langages compilés, ça signifie obtenir un binaire opérationnel alors que sur les langages interprétés, cela consiste à valider la présence des dépendances et des outils nécessaires pour construire l’application. L’objectif ici est d’avoir quelque chose qu’on puisse lancer et tester. Cela peut donc être un binaire, un programme d’install, une image docker, un site web…etc.

La phase de test

La seconde étape consiste à analyser le code sous différents aspects à l’aide d’outils de tests automatisés. C’est une étape qui lorsqu’elle est faite manuellement, est boudée par les développeurs qui la trouvent chronophage et ennuyeuse. On pourrait bien sûr déléguer les tests à d’autres personnes, mais cela déconnecte les développeurs de l’ensemble du projet sans parler du fait que les testeurs vont passer leur temps à les déranger.

Les étapes de validation

Ainsi durant cette phase de test, le linting qui consiste à vérifier le code pour détecter les erreurs programmatiques et stylistiques. Cela permet de s’assurer une certaine homogénéité dans le code.

La qualité du code et de ses fonctions est également évaluée et de nombreuses mesures comme le nombre de lignes, la documentation ou la complexité du code sont prises en compte pour déterminer les endroits dans le projet où le code peut être amélioré.

La sécurité du code est également prise en compte à l’aide d’outils d’analyses qui partent à la recherche des risques de vulnérabilités dans le code lui-même et ses dépendances.

L’accès aux logs

Tout cela se fait durant un laps de temps assez rapide (moins d’une dizaine de minutes) selon les ressources machines disponibles et une fois que la séquence est terminée avec succès, cela signifie que la Pull Request est autorisée et on peut alors passer à la phase de déploiement.

Évidemment, si la séquence est stoppée à cause d’une erreur, la fusion du code est stoppée et un rapport est généré pour permettre aux développeurs de résoudre rapidement le souci. Le CI permet ainsi de travailler par petites itérations et les bugs peuvent ainsi être corrigés plus rapidement.

Vient ensuite une phase « release » qui consiste à packager l’application pour son déploiement ou sa distribution en y intégrant le code de l’application, les scripts d’installation, les dépendances et autres bibliothèques, la documentation, les métadonnées et bien sûr la licence.

Cette version packagée de l’application est alors disponible pour être distribuée ou publiée sur le serveur et servir de point de départ à une configuration des éléments tiers comme la base de données. Si on s’arrêtait à cette étape, on parlerait alors de « livraison continue » (Continuous Delivery), c’est à dire s’assurer que le code est en permanence déployable.

Mais avec le déploiement continu, comme avec talent.io, on va un peu plus loin. D’ailleurs pensez bien lorsque vous renseignerez votre profil talent.io à vous démarquer en faisant ressortir vos points forts comme la maîtrise des concepts CI/CD et vos éléments différenciant pour que les entreprises qui recrutent s’arrêtent sur votre profil.

Le déploiement continu

La phase CD (Déploiement Continue) permet de déployer cette release sur le serveur de destination soit directement après chaque pull request, soit en respectant un calendrier de mise en prod ou sur action humaine uniquement. Ainsi, chaque changement qui arriver à passer toutes les étapes de validation (CI) peut alors finir en production, et cela sans aucune intervention humaine.

C’est donc un excellent moyen d’accélérer la mise en production des nouveautés et permet aux développeurs de se concentrer sur l’écriture de code plutôt que d’organiser des journées de mises en production après des mois de travail à l’aveugle.

Lorsque vous aurez trouvé l’entreprise de vos rêves grâce à talent.io, je compte sur vous pour mettre du CI/CD en place afin de soulager votre équipe ou vous même.

Les outils

Pour faire du CI/CD, il existe des dizaines de solutions commerciales dont voici les plus connues et utilisées :

  • Jenkins est super populaire, car totalement libre et gratuit et permet de décrire des pipelines de construction avec le langage Groovy. Il offre ainsi plus de flexibilité, mais demande un peu plus de compétences techniques.
  • GitHub Actions, cet outil de CI/CD proposé sur le site GitHub et son équivalent pour les entreprises, permet de construire ses pipelines à l’aide d’une configuration YAML.
  • Gitlab CI/CD est semblable à Github Actions. Il est capable de pointer de manière assez spécifique vers les tests qui ont échoué, ce qui permet un debug plus rapide.
  • Enfin, Travis CI totalement dans le cloud permet de monter ses routines CI/CD sans aucune configuration complexe. Et comme il est compatible gratuitement avec Github, Bitbucket ou encore Gitlab, vous pouvez également l’utiliser pour vos projets open source ouvert.

Conclusion

Vous l’aurez compris, il y a de nombreux avantages à mettre en place une procédure CI / CD. En procédant par petites étapes, et en multipliant le nombre d’itérations, on réduit ainsi la probabilité d’erreur et la quantité de travail nécessaire à l’intégration des changements dans l’application. Au contraire, travailler dans de longues boucles de rétroaction est beaucoup plus risqué pour le projet et le temps de travail est plus difficile à estimer.

Le fait d’automatiser toutes ces étapes d’intégration soulage fortement les développeurs des tâches répétitives et permet d’éviter bon nombre d’erreurs humaines à l’aide des tests automatisés effectués à chaque livraison de code. Cela se fait d’ailleurs en toute transparence avec un accès rapide aux logs et il devient très simple de comprendre d’où provient l’erreur.

Il y a donc une meilleure productivité de la part des développeurs, des releases plus fréquentes et une augmentation de la qualité et de la sécurité de ce qui est produit grâce à la standardisation des tests.

Si vous ne l’avez pas encore mis en place dans votre entreprise, je vous recommande vivement d’essayer l’approche CI/CD. Cela vous soulagera sur bien des aspects, notamment en ce qui concerne les tests et l’ensemble des tâches rébarbatives et vous pourrez enchaîner les déploiements dans la joie.

Pensez également à vous créer un profil gratuitement sur la plateforme talent.io, que ce soit pour trouver votre nouvel emploi ou simplement rester à l’écoute du marché. Déjà plus 6 000 développeurs, devops et autres profils tech ont été recrutés grâce à talent.io, alors pour quoi ne pas tenter ?

Comment envoyer des emails avec du JavaScript ?

4 juillet 2022 à 09:00
Par : Korben

Si vous avez déjà envoyé un email à partir d’une application web, vous savez que ce n’est pas forcément très naturel et que vous devez installer en plus des outils comme sendmail…etc.

Le projet libre SMTPJS propose de contourner ce problème en envoyant directement vos emails via SMTP à l’aide d’un simple script JavaScript insérable dans vos pages web et bien sûr de récupérer des callbacks pour savoir si les messages ont été correctement transmis.

Gain de temps et accessible aux débutants.

Pour cela, intégrez ce code dans le header de votre page :

<script src="https://smtpjs.com/v3/smtp.js"></script>

Puis envoyez un email comme ceci :

Email.send({
    Host : "smtp.yourisp.com",
    Username : "username",
    Password : "password",
    To : '[email protected]',
    From : "[email protected]",
    Subject : "This is the subject",
    Body : "And this is the body"
}).then(
  message => alert(message)
);

Vous devrez évidemment disposer d’accès SMTP accessibles. Et cela ne vous aura pas échappé, si le code est mis dans une page web, on verra le mot de passe que vous utilisez pour le SMTP, ce qui n’est pas cool du tout.

C’est pourquoi SmtpJS passe par le service ElasticMail qui propose un token d’authentification permettant d’exploiter le script sans pour autant dévoiler un couple login/password. Ce qui donnerait ceci par exemple :

Email.send({
    SecureToken : "C973D7AD-F097-4B95-91F4-40ABC5567812",
    To : '[email protected]',
    From : "[email protected]",
    Subject : "This is the subject",
    Body : "And this is the body",
	Attachments : [
	{
		name : "smtpjs.png",
		path : "https://networkprogramming.files.wordpress.com/2017/11/smtpjs.png"
	}]
}).then(
  message => alert(message)
);

Cela ne conviendra pas à tous les besoins évidemment, mais dans certains cas, c’est quand même beaucoup plus simple d’envoyer du mail avec SMTP JS.

Tetris OS – Mieux que Windows, macOS et Linux réunis

27 mai 2022 à 09:00
Par : Korben

Si vous ne savez pas quel système d’exploitation installer et que vous hésitez entre un Windows pour les jeux, un macOS pour la productivité ou un Linux pour la bidouille de l’extrême, j’ai de ce qu’il vous faut !

Voici le système d’exploitation de vos rêves : Tetris OS !

Il s’agit d’un OS qui ne fait que le jeu Tetris en version 32 bits. Le bootloader est entièrement configurable, le son utilise un driver soundblaster 16 bits, et les graphismes tournent au régime de 60 FPS sur une résolution de 320×200 pixels.

Pour l’installer, vous devrez récupérer les sources avec un

git clone https://github.com/lucianoforks/tetris-os.git

Puis faire un make comme ceci :

make iso

Si vous rencontrez des erreurs lors de la compilation, vérifiez bien que vous avez bien les bons toolchains. Sous macOS, j’ai du installer ceci :

brew install i386-elf-binutils i386-elf-gcc

Vous obtiendrez alors un fichier boot.iso que vous pourrez démarrer avec qemu comme ceci :

qemu-system-i386 -drive format=raw,file=boot.iso -d cpu_reset -monitor stdio -device sb16 -audiodev coreaudio,id=coreaudio,out.frequency=48000,out.channels=2,out.format=s32

Du code Python dans vos pages HTML

26 mai 2022 à 09:00
Par : Korben

Si vous êtes développeur et que vous aimez mettre du Python partout, dans vos poches, dans vos slips, sur vos tartines le matin, alors pourquoi ne pas en mettre également dans vos pages HTML ?

Et cela est maintenant possible grâce à ce PyScript, un bout de js + css à intégrer à votre code qui vous permettra de créer des applications Python directement au coeur de votre code HTML.

Pour ce faire, copiez ceci dans votre page :

<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script> 

Ensuite, il ne vous reste plus qu’à pondre du Python dans une balise <py-script> comme ceci :

<py-script>print("hello les petits fous")</py-script>

Voici un exemple avec le calcul de Pi pour 3 décimales après la virgule :

<html>
<head>
    <meta charset="UTF-8">
    <title>pytest</title>
    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</head>
<body>
       <py-script>
def wallis(n):
    pi = 2
    for i in range(1,n):
        pi *= 4 * i ** 2 / (4 * i ** 2 - 1)
    return pi

pi = wallis(100000)
s = f"π est approximativement {pi:.3f}"
print(s)
        </py-script>
</body>
</html>

Bon, je ne vous cache pas que c’est long niveau processing et je ne pense pas que ce sera vraiment utilisable pour de l’application web grand public. Mais c’est rigolo. On peut même utiliser des packages et autres modules, faire des interfaces, et même récupérer des valeurs dans les pages HTML avec la fonction pyscript.write comme ceci :

<html>
<head>
    <meta charset="UTF-8">
    <title>pytest</title>
    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</head>
<body>
<h1 id="pi">xxx</h1>
       <py-script>
def wallis(n):
    pi = 2
    for i in range(1,n):
        pi *= 4 * i ** 2 / (4 * i ** 2 - 1)
    return pi

pi = wallis(100000)
s = f"π est approximativement {pi:.3f}"
pyscript.write('pi', s)
        </py-script>
</body>
</html>

Si cela vous intéresse, vous trouverez tout sur le site de PyScript.

Envie d’ajouter une GUI à votre code Python ?

7 mai 2022 à 09:00
Par : Korben

Si vous faites des scripts en Python, mais que vous n’avez toujours pas franchi le pas des interfaces utilisateurs, voici un moyen simple de le faire.

Basée sur la célèbre lib Tkinter qui permet de faire des GUI, la lib Guizero permet aux débutants de concevoir facilement leurs interfaces graphiques en Python.

Une fois installé à l’aide de :

pip3 install guizero

Il est ensuite assez simple de dessiner vos interfaces graphiques en y intégrant tous les widgets nécessaires. Cela va du bouton à cocher à la liste en passant par l’import d’image ou le champ de saisie.

Du classique, mais du facile à implémenter. Par exemple, un petit Hello World ressemblerait à ça :

Allez jeter un oeil à la doc. Vous verrez que c’est super easy et ça vous permettra à vos utilisateurs d’avoir des interactions plus simples avec vos outils en ligne de commande, sans pour autant y passer trop de temps.

À découvrir ici.

❌