A personal podcast app

A personal podcast app

I listen to around twenty podcasts each month. Music, videogames, politics, radio shows, I have an eclectic library.

Currently, my listening app is Spotify. Why? A centralized location for files, offline downloading and it keeps a track of what is played and where to restart between devices.

One major drawback is the inability to add podcasts from another source than their catalog. At least one french radio, RTL, did not add their feed to the catalog as they want to be paid (article in french).

Moreover, I'm fully dependant on Spotify goodwill to keep my feeds, it implies my politics ones, mainly, may disappear without any notice.

So I'm thinking to develop my own dedicated podcast listening app. It would be a "simple" webapp, django based, for feeds management and preview associated with a mobile app, Android at first, for listening, offline and/or online.

The idea is not to offer another service which would have to be monetized someday but something anyone could deploy on their own server as long as they have docker deployed on their server.

If you're interested and want to help, leave a comment below or drop me a line at bonjour[chez]pygillier.me. When I'll really start to develop, I'll let you know.

Cover image by unsplash-logo Juja Han

Amazon Linux container on molecule

At Claranet, our clients come with their own requirements, even on clouds like AWS. And, due to my previous experience at The Food Assembly I now have the habit to test my code, always. It includes Ansible with its testing framework called Molecule.

For one client, I had to deliver a complete playbook with several roles covering a quite complex setup. It included several systemd services and had to be run on Amazon Linux EC2 instances.

As this distro is loosely based on redhat, afaik, I began to test on CentOS containers with systemd enabled. It was working but I wasn't quite confident as it wasn't the very same OS as Amazon Linux.

Luckily, AWS provides Docker images for this distro. I could then use them and be more confident in my code at one exception: systemd.

Out of box, these images don't include systemd binaries. Moreover, they follow the release cycle of their VM counterpart by being updated regularly. As my client let the updater run on their EC2 instances, I couldn't build a derivate image with systemd.

Fortunately, Molecule helped me achieve having a "rolling" systemd image for tests. Version 2.0 of molecule changed its inner settings and exposed one interesting file : molecule/default/Dockerfile.j2. As its name implies, this file is used by molecule in the create part to build a usable image for testing by inheriting from provided one, in my case amazonlinux:latest and, by modifying this file, I could install systemd on it.

Here is the content of the file:

# Molecule managed

{% if item.registry is defined %}
FROM {{ item.registry.url }}/{{ item.image }}
{% else %}
FROM {{ item.image }}
{% endif %}

{% if item.env is defined %}
{% for var, value in item.env.items() %}
{% if value %}
ENV {{ var }} {{ value }}
{% endif %}
{% endfor %}
{% endif %}

RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates iproute2 && apt-get clean; \
    elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python sudo python-devel python*-dnf bash iproute && dnf clean all; \
    elif [ $(command -v yum) ]; then yum makecache fast && yum install -y **systemd** python sudo yum-plugin-ovl bash iproute && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \
    elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml iproute2 && zypper clean -a; \
    elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; \
    elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates iproute2 && xbps-remove -O; fi

Then, I had to make sure my container was correctly started using systemd by editing the platform section of file molecule/default/molecule.yml:

platforms:
  - name: amazonlinux-2018
    image: amazonlinux:latest
    command: /usr/lib/systemd/systemd
    tmpfs:
      - /run
      - /tmp
    volumes:
      - /sys/fs/cgroup:/sys/fs/cgroup:ro

And voilà I have a fully usable Amazon Linux docker image with systemd enabled.

Salut Nantes !

Encore quelques jours et je me retrouverai angevin travaillant à Nantes. Même si je suis content de découvrir mes nouveaux collègues nantais, je suis partant pour discuter devops/aws/Paris-Web autour d'une bière avec d'autres personnes dans le domaine.

Donc, si cela vous tente, n'hésitez pas à me contacter ici via les commentaires, via Twitter, voire LinkedIn si vous voulez faire formel, pour qu'on s'organise !

NB: Ce n'est pas réservé à Nantes, habitant à Angers : même combat !

C'est parti !

C'est parti !

Dans ce billet, je vous décrivais le démarrage de ma recherche d'un nouveau travail au mois de mars. Nous sommes en juillet, je suis dans une nouvelle société depuis juin et notre déménagement a lieu ce vendredi. Quel changement !

Cela fera peut-être prétentieux mais suite à ce billet, je ne m'attendais pas à recevoir autant d'offres qualifiées, entendre des offres ne venant pas de robots scannant les CV à la recherche de mots clefs comme cela a déjà été le cas et surtout autant d'offres intéressantes.

Il faut croire qu'après ces trois années passées dans le monde merveilleux des startups, j'ai encore pris de la bouteille et du recul sur mon métier. Cependant, je reconnais avoir bénéficié en diable de l'expérience acquise à LRQDO pour trouver un nouveau travail et réussir ce genre de concours

Cela fait maintenant un mois que je suis en poste chez Claranet, les cartons sont quasiment prêts pour partir dans la nouvelle ville, Geronimo !

Cover photo by Aleksandr Barsukov on Unsplash

Une nouvelle aventure

Une nouvelle aventure

Sans rentrer dans les détails personnels, j'ai le projet de quitter Paris avec la petite famille d'ici fin août. Je pensais pouvoir le faire tout en restant dans ma société (vive le télétravail en 2019) mais cela ne se fera pas.

Je suis donc de retour dans le grand bal des recherches d'emploi mais avec une particularité majeure cette fois : partant dans la belle ville de Angers, je recherche soit un poste en remote (mais pas à 100% car je me connais et serai incapable d'être un ours dans ma caverne) soit un poste basé à Angers ou Nantes.

Bien que j'ai moi-même du mal à suivre toutes les prises de contact, honte à moi, je vous invite, si vous désirez me proposer quelque chose à me contacter via mon profil LinkedIn de préférence au mail.

Mon CV est disponible à cette adresse.

D'avance merci à celles et ceux qui feraient passer le message.

Un soir dans la rue

Déjà en 2002, je m'étais fait la réflexion : il n'y a pas de meilleur moment pour se balader dans Paris que pendant un match de l'équipe de France, surtout en phase finale d'une compétition .

Voyez le tableau, il fait beau et chaud, le soleil est encore haut dans le ciel et les rues sont quasiment vides. Quasiment car toutes les terrasses sont prises d'assaut et les quelques passants flânent.

Regarder le match ? Quel besoin ? Le simple fait d'être à portée d'un bar, et il y en a quelques uns mine de rien à Paris, suffit pour savoir si un but a été marqué et par qui.

Et pendant ce temps, les rues sont vides, les restaurants sans foot sont calmes, même les fast-food sont désertés. Une ambiance de 23h mais à 20h.

Le bonheur.

Allez les bleus !

Liste chaînée #5

Je continue sur ma lancée de ces derniers mois avec les deux sujets importants du moment : ma nouvelle capacité de data engineer et toujours ma certification à passer sur AWS.

  • Ma lecture de chevet du moment : Applying DevOps to Data Science. Une série d'articles sur l'état de l'intégration entre les pratiques DevOps et les spécificités de la Data Science. Pour y être confronté quasi quotidiennement, je lis religieusement tout nouvel article.
  • Cataloguer ses data : c'est toujours bien de générer beaucoup de data dans tous les sens et dans tous les formats. Encore faut-il savoir ce qui est disponible et imaginer quoi en faire.
  • Un rappel toujours utile sur les diverses visualisations et leurs usages respectifs.
  • Chalice, le microframework python qu'il vous faut pour faire du webservice simplement sur AWS Lambda.
  • Quelques réflexions sur Vue.js qui expliquent, entre autres, certains partis pris du framework.
  • Le meilleur comparateur d'instances EC2 que j'ai pu trouver pour le moment. Je suis preneur de mieux si vous connaissez.

Re:start

Re:start

Adieu sites dynamiques en PHP et autres technologies joyeuses, place au statique et à tout ce que cela implique de configuration et de restrictions.

C'est assez paradoxal de revenir à un mode de publication tel que je le pratiquais il y a presque vingt ans sur Le Village et où chaque page était quasiment écrite à la main après être passé par la bonne moitié des CMS en PHP.

C'est tout aussi paradoxal de revenir à un mode de publication statique alors que dans mon quotidien de DevOps/SRE, quasiment tout ce que j'écris est dynamique et déclenche un nombre conséquent de scripts.

Mais j'y vois un avantage certain. Je redeviens totalement maître de mes contenus, pour preuve, j'écris en markdown sous Visual Studio Code sans peur aucune de devoir un jour convertir mes textes dans un autre format.

Je ne cache pas que pour cela j'ai dû passer par l'étape du convertisseur à partir de mon dernier outil de publication, mais cela m'a permis de repasser sur la grande majorité de mes textes et de corriger le nombre conséquent de fautes en tout genre que j'avais laissé traîner.

Il reste encore pas mal de coups de peinture à mettre, de boulons et d'écrous à visser. Je changerai probablement de thème encore une ou deux fois mais je me sens bien cette fois et j'espère que cela vous plaira autant qu'à moi.

[Paris Web 2016] Rejoignez-nous !

Ces derniers mois ont été intenses et j'espère pouvoir vous en parler très bientôt plus en détail...

Je peux cependant vous parler de ce qui s'est passé à Paris Web entre temps !

Et comme toujours, nous sommes en recherche de partenaires pour nous aider à organiser les conférences. Si vous ou votre société êtes intéressé, n'hésitez pas à télécharger notre dossier de partenariat en français ou en anglais et à nous contacter !

"Let's encryt", oui mais intelligemment

Je passerai sur la philosophie de Let's Encrypt pour aller au vif du sujet : la facilité d'installation d'un certificat SSL valide.

Ecran de configuration LE sur
PleskEn un unique écran, j'ai pu générer le certificat LE pour mon domaine et celui-ci a été autoconfiguré dans Nginx. Et même si cela est caché par le proxy Plesk, cela ne fait qu'exécuter le client LE et mettre à jour la configuration du serveur web.

Quoi de plus simple pour un site web simple ? Même avec un service en Beta- test et je pense une v1.0 du proxy Plesk, j'ai la capacité de fournir un service au travers d'un canal sécurisé. Cela est plus que suffisant pour la grande majorité des sites internet.

A cette époque ou les lois attentant à la vie privée sont légion, augmenter la sécurité d'un site internet est toujours bon à prendre; même si cela se fait de la manière la plus simple.

Cependant, je reste convaincu que cela doit se faire intelligemment. Comme on ne sécurise pas une banque comme sa maison, utiliser LE à toutes les sauces ne fera pas de miracles bien au contraire.

Des techniques de sécurité comme HSTS ou le Key Pinning sont difficiles à mettre en oeuvre avec un certificat dont la durée de vie est de seulement 90 jours. Si vous avez besoin de ce type de fonctionnalité, et si vous vendez un produit ou un service, mieux vaut acheter un certificat avec Extended Validation. C'est bien plus cher, mais cela vous offre un certain nombre de garanties en tant que fournisseur et vos utilisateurs sont rassurés quant à votre sérieux.

De plus, la différence d'affichage entre un certificat EV et un certificat "normal" dans un navigateur aide à mettre l'utilisateur final en confiance : nous avons tous du à un moment ou un autre écrire une page de FAQ pour indiquer à l'utilisateur comment bien vérifier qu'il était sur le bon site.

A cette heure, LE ne délivre que des certificats à destination de sites web. Ainsi, vouloir tirer des certificats de Code Signing ou pis des certificats client n'est pas faisable et j'espère que cela ne le sera jamais.

*[LE]: Let's Encrypt