Digital Ocean

8 mai 2019

Un wrapper, Un provider et une Ferme de Rendus

Le Github Student Developer Pack offre de nombreux avantages, dont 50 euros de crédits chez Digital Ocean. Mais que puis-je en faire ? super simple : J'utilise SheepIt Render Farm, une ferme de rendus Blender, le fonctionnement est assez simple. On peu soumettre et projet blender pour en effectuer le rendu très rapidement, et plus on a de points, plus la priorité de notre projet est forte.

Comment gagner des point ? il faut faire travailler un à plusieurs ordianteurs en temps que Workers. 🖥

Mon objectif est d'atteindre l'un des challenges de SheepIt :  avoir le plus de workers connectés simultanément. Pour se faire je vais employer l'API de Digital Ocean pour en créer plusieurs simultanéments.

Par conséquent, je suis entrain de créer un Wrapper Python pour l'API v2 de DigitalOcean. 👌

Edit : ayant découvert que je suis limité à 3 IPs et 10 Droplets, l'objectif s'avère plus complexe que prévu.

Découverte de Pandas DataFrame pendant un orage à Versailles ⚡

AWS

5 mai 2019

sowdowdow.fr et simondormeau.fr sous Python 🎊🎊 🐍

Après des semaines à me battre avec les bugs, ça marche. Il en reste encore bon nombre, mais il vont finir par disparaître. Désormais, ce site tourne sous Gunicorn et mon CV sous CherryPy. Le tout est placé derrière Nginx évidemment ! Le tout n'a provoqué qu'une coupure éclaire de quelques minutes (la faute au redirection SSL).

J'ai (re-)découvert Systemd, qui permet de créer des daemon sous presque toutes les distributions Linux.

Malheureusement un abandon temporaire de Docker est nécessaire pour des raisons personnelles.

On notera également que je suis passé chez sosh Amazon Web Services qui offre une instance t2.micro gratuite et une instance de Base de Données gratuite aussi. 💵

J'ai aussi découvert Hugo, un outil permettant de créer un blog statique pouvant être déployer très rapidement et en continue via Gitlab. Toutefois le cadre d'utilisation reste assez limité, c'est ce pourquoi je ne prévois pas de l'utiliser.

Rapport de stage fini 🤜

Big Brother

27 avril 2019

Vos données personnelles ? Trop tard.

Il-y a environ un an, j'ai supprimé toutes mes données Google. Aujourd'hui, en tombant sur une vidéo de Devon Crawford, qui exporte près de 50Go de données personnelles, j'ai souhaité me plier au même exercice par curiosité. 53 Applications Google pour un total de 8Go. Pas mal en un an... Historique des achats, listes de courses, contacts, Playstore, Youtube, tout y est !

Au delà de l'aspect effrayant de cette découverte, j'ai également trouvé l'historique de mes positions. Et bien qu'il m'est semblé avoir désactivé celui-ci, ce n'est pas moins d'un demi mega-octet de Json et ~1600 positions qui m'appartiennent... ah. C'est pour cette raison que je prévois de réaliser une petite visualisation de celles-ci dès que j'en aurais le temps.

Si vous avez un peu de temps, je vous conseil d'essayer 😉 (pas la visualisation, l'export hein).

Sinon la refonte de sowdowdow.fr en Django s'avère extrêment efficace : 80% operationnelle en deux jours. Il reste encore à réaliser la partie blog, convertir la base de données, créer un image Docker et c'est parti mon kiki !

Paris => voiture rayé 😠

Docker

11 avril 2019
Le conteneur, le reverse proxy et le truand

Finalement, j'ai enfin atteint la première partie de mon objectif : mon CV est fonctionnel sur le micro-framework CherryPy. 🍒

En plus de cela j'en ai fait une image Docker, et peux donc déployer celui-ci super simplement en créant un conteneur en 10 secondes ! 🐳 J'ai créé un Reverse-proxy à l'aide de Nginx afin d'améliorer la sécurité et permettre du Load-Balancing (on ne sait jamais, dès fois qu'une avalanche d'utilisateurs arrive 😂).

Et pour conclure, je prévoit de recréer le site sowdowdow.fr en Django (la version 2.2 LTS vient de sortir \\o/) pour ensuite en faire un conteneur, et, finir par déployer le tout en production !

Pycharm = trop bien + trop cher 🤷‍♀️

CherryPy

18 mars 2019
Un micro-framework et de l’orchestration

Après un début de stage éprouvant, et grâce à cela, j'ai découvert un micro-framework python sympatique : CherryPy. 🐍

Celui-ci à plusieurs avantages : aucune dépendance (que des plugins), il est léger, performant, et il intègre un module WSGI prêt pour la production ! Mon souhait est donc de convertir ce site pour utiliser CherryPy !

J'ai également jeté un œil à Kubernetes, un service d'orchestration de conteneurs. Mais il faudrait déjà que je commence par maîtriser Docker pour potentiellement qu'il me soit un jour utile...

Paris, Vendredi, 16H --> 0 km/h 😥

Google et Stockage

13 février 2019
RabbitMQ et Firebase, aucun lien...

RabbitMQ est un message broker découvert en cours d'interconnexions, c'est un service qui permet de gérer des piles et des files de manière très pointue. Son implémentation est aisée, mais le premier contact fût rude. Nous l'avons vu en même temps que SignalR (une librairie ASP.NET pour faire du web temps-réel) et je me suis emmêlé les pinceaux entre les différents concepts. 😅

Enfin j'ai découvert l'utilisation de Firestore au travers d'un tutoriel de TheNetNinja. C'est un service de Firebase 🔥. Celui-ci est plutôt génial : une Base de données noSQL, auto-scalé, et dont l'utilisation se révèle ultra-simple et pour ne rien gâcher, gratuit !

Départ en stage 🚗

TDD

19 novembre 2018
Bonnes pratiques, TravisCI et Selenium

Le Test Driven Development, une pratique qui devrait-être apprise par tout développeur... Et pourtant je ne la découvre qu'à bac+3. Comment ça marche ? très simple :

  1. On écrit des test automatisés avant l'application pour vérifier que l'application marche bien
  2. On lance les tests, ils échouent, normal, l'application n'existe pas encore
  3. On écrit l'application jusqu'à valider les tests
  4. On recommence 🔁

Dans le cadre de notre projet web, nous devons employer cette méthode. Et quoi de mieux que de la corréler à TravisCI ? Un outil qui va automatiquement lancer les tests automatiquement à chaque commit (alias modification du code). J'ai donc rédigé mon premier .travis.yml, ce qui fût d'une facilité déconcertante.

Enfin, grâce à Mémo Python 2, j'ai découvert Selenium, un module python qui permet de contrôler des pages webs. Ainsi j'ai commencé à automatiser le jeu Candybox2 (ou faire un bot, à vous de voir).

Une nouvelle plante 🎍

Automation

11 novembre 2018
La flemme c'est bien

Vous l'avez certainement déjà entendu des dizaines de fois : les développeurs sont fainéants. Et bien c'est vrai :J'ai perdu énormément de temps à chaque déploiement de mes sites sowdowdow.fr et simondormeau.fr, et, ayant de nombreux soucis avec Webmin, j'ai décider d'automatiser. 🔥Exit Webmin et retour aux bases avec Apache2 que je maîtrise désormais de manière bien plus pointue. J'ai simplement créé un script shell (horreur dirons certains) qui initialise et paramètre entièrement n'importe-quel serveur. De cette manière j'ai la main sur mon serveur là où il me fallait avant des heures voire des jours pour trouver l'origine d'un bug.


Secundo j'écris du Python 🐍, à la maison comme au boulot j'adore, même si j'ai "la flemme"... Avec celui-ci je peux contrôler super simplement ma YeeLight 💡.

J'apprends actuellement à utiliser le framework Django. Une merveille selon moi : il est concis, simple à utiliser, dispose d'une interface d'administration prête à l'emploi super efficace et surtout il est agréable à utiliser ! Il me reste maintenant à chercher comment déployer celui-ci en production (mon site en Python ? 🤷‍♂️).

Kickflip succeeded 🤙

Serveur X et Buddy

5 août 2018
Linux à distance et Pipelines

Ayant dégoté un numéro de Linux Pratique, j'ai réussi une manip' assez simple mais tout à fait géniale : utiliser une machine à distance avec des processus graphiques 💻↔💻.

Pour ce faire, rien de plus simple que du SSH. En effet, avec l'option -X, on peut "exporter" l'affichage graphique d'un processus !

C'est un peu par hasard en lisant dev.to que j'ai découvert Buddy, c'est un outil qui permet d'automatiser la mise en production via des pipelines. Et c'est donc avec une joie non dissimulée que j'ai mis en place mon premier pipeline ! Adieu le webhook fait à la mano. 🤗

ChartJS, c'est sympa 📈, {P!} aussi.

Symfony

1 août 2018
Un framework sympa mais relou

J'ai commencé au début des vacances a rebaser entièrement le site sur Symfony 4, il va sans dire qu'il y a eu quelques difficultés.En effet bien que celui-ci soit censé simplifier et accélérer le développement, il ne va pas de même avec le déploiement. 💣


Étape 1: Comprendre le fonctionnement du framework et repenser toute l'architecture du site (en général on utilise un framework dès le départ, rebaser un site est une perte de temps considérable).

Étape 2: Restructurer la base de donnée car Symfony utilise Doctrine, une couche d'abstraction de la base de données.

Étape 3: Pleurer de joie devant un "Hello World"

Étape 4: Adapter le serveur et déployer.


Finalement c'est le déploiement qui s'avère le plus fastidieux (je plains les DevOps). En effet il m'a fallu des jours avant de réussir a comprendre comment débugger en production, remettre en place la configuration pour la base de données et traiter les erreurs.


Bref, aimez Symfony, mais trouvez-vous un DevOps. 😎

Si je me mettais a Python ? 🐍

Variables D'environnement

9 juillet 2018
Et une base de données externe, une !

J'ai eu l'idée il y a quelques temps de séparer le stockage des données du code. Mais avant d'y parvenir, j'ai dû migrer toutes les données vers un nouveau serveur de base de données.
Problème : l'encodage. Et oui vous qui pensiez que l'utf-8 est le meilleur encodage du monde, et bien c'est faux !
En effet si vous voulez profiter des émojis, et bien il faut passer à l'utf-8mb4 🤯.
J'ai aussi (enfin) réussi a utiliser les variables d’environnement. Celle-ci servent à ne pas mettre en dur dans le code les données sensibles, comme par exemple le mot de passe de la base de données... 😉

L'heure du régime est venue

Déploiement continu

2 juillet 2018
Une solution plus acceptable

Je me basais précédemment sur une solution assez précaire pour mon déploiement continu. Enfin du moins pseudo-continu, mais désormais ce n'est plus une tâche CRON qui ne s’exécute que toutes les minutes, mais bel et bien un vrai Webhook ! Cela signifie que chaque fois qu'un git push est réalisé, les serveurs Gitlab renvoient un callback vers mon serveur de production qui a son tour va récupérer la dernière version du dépôt git. Pour résumer : développement (pc) ➡️ versionnage (gitlab) ➡️ production (serveur) ➡️ mise à jour ✔️

So happy 🤗

Control Panel

30 juin 2018
Et si on changeais de panneau de contrôle ?

L’intérêt d'un panneau de contrôle (Control Panel) est d'accélérer et de simplifier grandement la mise en place d'un serveur web (ex. hébergement de site internet). Jusqu'à maintenant je me suis basé sur Vesta CP, un panneau de contrôle simple à utiliser. Toutefois ce panneau s'est révélé défaillant et manque de fonctionnalités. Celui-ci a enchainé les pannes, plus précisément sept en seulement un mois. Je le remplace donc aujourd'hui par Virtualmin, un panneau de contrôle bien plus complet et éprouvé. La transition n'est pas sans peine : il faut remettre absolument toute l'architecture en place. Mais cet exercice me plaît bien !

Next step : Symfony 👌

Fin de stage

23 juin 2018
Des vacances enfin !

J'ai enfin achevé mon stage de deux mois et demi. Durant celui-ci j'ai découvert beaucoup de choses, notamment : Les variables dynamiques en PHP (on utilise le contenu d'une variable pour donner un nom a une autre) Les Datatables, une extension de jQuery permettant de créer des tableaux triables très rapidement. Et plein de librairies Javascript ! En dehors de cela j'ai décelé un site vraiment sympathique et que je vous recommande : dev.to

I'm gonna skimboarding soon 🤩

Vue.js

6 mai 2018
Une rencontre fortuite

Je souhaitais apprendre à utiliser React.js, une librairie JS pour faire du développement Front. Mais finalement Vue est plus accessible, plus léger, et apparemment plus performant également ! Bref je suis tombé sur la vidéo de présentation un peu par hasard et j'ai accroché. Je prévois donc d'apprendre à l'utiliser sur mon temps libre.

Un vélo + une forêt === bonheur

Finally got it !

5 mai 2018
J'ai enfin trouvé le moyen de faire un système d'auto-pulling GitLab !

Et oui ! ça n'as pas été évident mais après plusieurs semaines de recherches j'ai trouvé une solution fonctionnelle. Il fallait utiliser un Personal Access Token en combinaison avec une tâche CRON qui exécute un pulling toutes les minutes et le tour est joué. Sinon, je vais commencer demain, à préparer une base web pour l'épreuve du même nom pour les 24H des IUTs édition 2018 !

Un wifi d'Orange sauvage apparaît

CSS Grids

1 mai 2018
La bénédiction, par Morten Rand-Hendriksen

Petit post rapide : j'ai découvert les CSS grids grâce a cette conférence (TROP BIEN), et je prévois de m'attaquer cet après-midi à la réalisation (en grids bien sûr) d'un CV basé sur le template que j'avais trouvé un beau jour...

Css tricks c'est chouette !

Variables dynamiques

28 avril 2018
Stage intensif, mais bientôt les 24h des IUT !

Hier j'ai découvert dans un code les variables dynamiques en PHP, bon alors je ne les ai pas encore utilisées mais ça à l'air bien sympa ! J'ai également (enfin) compris à quoi sert un "sel" (une pitite vidéo en english), et désormais ma base en utilise un, et j'ai envie de dire heureusement ! Sinon j'ai cherché toute la journée comment utiliser les git credentials, mais impossible de trouver...

Je veux un switch wifi *-*

Le grand retour

22 avril 2018
PHP, c'est la vie... tout comme JS, HTML, jQuery, le CSS...

Bon, vous l'aurez compris, je reviens d'entre les morts, mais c'est pour une bonne raison : j'ai appris énormément en un an. Je me suis donc fait une interface administrateur sur mon site qui héberge désormais un blog dynamique (car oui les précédent post étaient rédigés un par un dans un seul et même fichier HTML), une zone de commentaires (qui a été pourrie par mes potes dès qu'il en ont appris l'existence) dans laquelle vous pouvez me poser des questions, discuter où m'insulter. À vous de voir. Pour l'édition des post de mon blog, j'utilise un WYSIWYG qui s'appelle QuillJS. Et j'ai découvert aujourd'hui RegexOne, Que je vous conseille chaudement, surtout si vous n'aimez pas les expressions régulières. Là, vous allez les apprendre facilement ! Ah oui dernière chose : je suis en stage pour deux mois dans une startup... et c'est trop bien !

Chez Paytweak, tu transpire pas du cul !

Root Me

19 juin 2017
Rootme, une plateforme pour l'apprentissage du hack et de la sécurité.

J'ai aujourd'hui repris un peu d'activité en réussissant le challenge FTP - Authentification ! En dehors de cela le blog à maintenant une grille et un menu, éléments nécessaire pour ne pas se faire taper par les autres. le visuel du blog est également meilleur (à mon goût).

rien... ah si col-1-1

The CV

18 juin 2017
Pourquoi pas ?

En tombant sur les templates de W3schools je me suis dis pourquoi pas faire un WebCV ? Alors je l'ai fait. Il n'y a presque rien dedans pour le moment, j'en ai presque honte ! Sinon j'ai un peu améliorer le look du blog, c'est toujours ça de fait. Petite précision, dans mon premier post je parle d'un ordinateur ridicule, c'est en fait un Acer Aspire One de 2008.

première connexion mySQL réussie !

Javascript

17 juin 2017
Un nouveau langage !

J'expérimente actuellement un nouveau langage Web, le JavaScript, pour le moment il ne me sert pas à grand chose, à part pour envoyer des alertes ^^ MAIS je pense qu'il est nécessaire d'apprendre ce langage, qui, est mondialement (re)connu.

Une nouvelle coupe et des nouveaux bleus

Les formulaires

15 juin 2017
Continuez d'apprendre

J'ai aujourd'hui appris a transmettre des informations graçe aux formulaires HTML de page en page en PHP. J'ai également appris a protéger la transmission d'une faille XSS avec htmlspecialchars.

Soigner les chutes en skate

Mise en forme

14 juin 2017
Le blog commence a ressembler à quelque chose !

Je me demande si je ne devrais pas commencer à apprendre le PHP sérieusement afin de créer une interface graphique qui me permettrais de mettre en forme mes articles plus rapidement.

Prendre RDV chez le coiffeur

Hello World !

13 juin 2017
Je vais pouvoir commencer a développer sur ce petit ordinateur ridicule :)

D'ailleurs ceci sera mon premier article... commencer un blog ? j'y songe, et puis demain je verrais cette abominable page html et me dire que ce n'était peut-être pas la meilleure idée. Je pense à demain, il faudrais que je remette en état cette saleté de machine avant de commencer sérieusement à bosser avec.

Penser à prendre une souris et ranger un peu ma chambre