Hi there 👋

Welcome to my slice of the internet.

  • I am a product designer and full‑stack developer living in France.
  • I design and build mobile & web applications.
  • Always ready to talk about your projects around a cup of coffee ☕
  • You can get in touch here

Keep secrets in python

Keeping Secrets Secret in Python Based on an article by originally published by Jason Goldberger but unfortunately the original is not online anymore so I have rewritten a short version, since this is something I have been looking for a while. Fernet has one classmethod called generate_key() and two instance methods encrypt(plaintext_binary) and decrypt(cipher_binary). Step 1 : Generate a key Generate a key and save it to the OS’s environment variables:...

November 14, 2021 · 1 min · YS

How to remove Traefik from K3S

When you install k3s it automatically come with Traefik installed. Traefik is great but if you need to work with an other ingress, you might want to remove it. Here is how: # Remove traefik helm chart resource sudo kubectl -n kube-system delete helmcharts.helm.cattle.io traefik # Stop the k3s service sudo service k3s stop # add option to add to ExecStart "--no-deploy traefik \" sudo echo '--no-deploy traefik \' >> /etc/systemd/system/k3s....

October 16, 2021 · 1 min · YS

Kubernetes Building Blocks

Kubernetes has multiple moving parts. Here is an short article aiming at mapping all this to create some clarity. Some Basic Vocabulary Nothing fancy but let’s get this out of the way. Nodes A node can be a physical machine or a virtual machine. Cluster A cluster is a group of nodes Container runtime Docker (or runC) Pod A pod is a group of containers - that together form a logical application....

October 15, 2021 · 3 min · YS

Golang pretty print

A quick snippet to get some nicer debug of json and other mapped values. //PrettyPrint print any interface func PrettyPrint(data interface{}) (err error) { indentedData, err := json.MarshalIndent(data, "", " ") if err == nil { fmt.Println(string(indentedData)) } return }

October 11, 2021 · 1 min · YS

A Web Of Solutions - October 2021

A refactored digest of my reading of the month. A short introduction to give a bit of context : I have been looking for a way to share on a regular basis some of my learnings. I tend to go through a pretty large amount of content as part of my work and in general. So here I will try to provide it as a structured digest. The goal is to provide an interesting selection of content both practical and conceptual to help advancing how to use tech to solve real problems....

October 10, 2021 · 3 min · YS

Startup financing - advices from a lawyer

Original Thread from Romeen Sheth Nothing pisses me off more than Lawyers ripping Founders off when putting investment docs together. The worst part is most Investors aren’t helpful - 85% push the bill to Founders. As an ex-lawyer, I saw all the inside tricks. Here's how to reduce your legal bill by 90%: — Romeen Sheth (@RomeenSheth) September 28, 2021 this was a twitter thread. Just saved it for convenience...

October 1, 2021 · 3 min · YS

Printer business

We have a bone to pick with the printer industry. Today, you can litteraly print anything… … as long as it is not on paper. You can 3D print your own laptop parts or even a 3D chocolate cake. But If you dare to print a black and white A4, then, it’s suddenly it’s super high tech… Ink Cartridges Are A Scam An ink cartridge cost about 1$ but is sold up to 100 time its original cost....

August 24, 2021 · 2 min · YS

Python and combinatory

Problem Find all the combination of two in a team Solution from itertools import combinations team = ["john", "joe", "bob", "al", "tony", "mark"] comb = combinations(team, 2) for i in list(comb): print(i) Result: ('john', 'joe') ('john', 'bob') ('john', 'al') ('john', 'tony') ('john', 'mark') ('joe', 'bob') ('joe', 'al') ('joe', 'tony') ('joe', 'mark') ('bob', 'al') ('bob', 'tony') ('bob', 'mark') ('al', 'tony') ('al', 'mark') ('tony', 'mark') Let’s up the game now we want to arrange the combinations results in a way that none of these guys are on call twice in a row...

August 22, 2021 · 2 min · YS

Weekly Review: Education Unboxed, Google Jupyter, and unrelated

Ok this is an experimental post. I realised I collect a lot of information during the week. I don’t have the time to make sense of it immediately, in a way that would be deep, and reasonate with the global zeigest… So, instead of pilling drafts on my drive, I decided to publish it as a weekly review of the stuff I collect. and will later, if time allow, get back to it....

August 16, 2021 · 3 min · YS

Setup a command line app in python

Goal Setup a basic command line package in python. Package Git: https://github.com/pallets/click/ Doc: https://click.palletsprojects.com/ Let’s get to it Create a virtual environnement. python -m venv my_env . my_env/bin/activate Then the setup.py file: (require setuptools) from setuptools import setup setup( name='myapp', version='1.0', py_modules=['myapp'], install_requires=[ 'Click', ], entry_points=""" [console_scripts] myapp=myapp:cli """, ) and the myapp.py def cli(): print("Launching the app") Then you can run : pip install --editable . and while you are in the venv you can run myapp and it will work....

August 10, 2021 · 1 min · YS

Using python to work with orgmode and gitlab - Part 1 - Onboarding Users

Since I moved to orgmode I have been trying to make this work with most of my environnment. Since I work with gitlab on a daily basis I thought I would start there first. Libraries Org Parse Git Repo: https://github.com/karlicoss/orgparse Docs : https://orgparse.readthedocs.io/ Org Format Git: https://github.com/novoid/orgformat Convert stuff : pypandoc Git : https://github.com/NicklasTegner/pypandoc Python for Gitlab Git Repo : https://github.com/python-gitlab/python-gitlab Doc : https://python-gitlab....

August 10, 2021 · 3 min · YS

The one thing you need to make your marketing work

Patience. Grit. Perseverance. Borderline Stubbornness. The number one reason people failed, especially when it comes to content marketing and organic reach, is a lack of patience and will try one more time. Statistics will be your first enemy The beauty of digital marketing is that it brings you statistics, and you know pretty much what’s happening with your content, which at the beginning, is not much. It is very tempting to let it go, drop the pace slowly, miss a few milestones until your plans to post daily on your blog are gone, or you let your twitter engagement running at an all time low....

July 14, 2021 · 2 min · YS

Golang - how to write to a spreadsheet

Golang - how to connect to google spreadsheet? Credentials You need to set up Google Credentials for your app. This part is a tad annoying. Mostly due to the UX of the Google Cloud Plateform. Let’s hope this will once be fixed. Since it may be changing, I suggest you check the docs on Google. At the time of writing of this short tutorial, we need to: Go to Google Cloud Console Create Project if needed....

June 28, 2021 · 3 min · YS

Broken Femur, Mutual Care, ROI

Margaret Mead was a controversial anthropologist from the 60’s in america. One thing not controversial though, and maybe that has made more famous recently than any of her research or publications - is the story of a short annecdote, which has become viral all over the internet. The story goes like this: “A student once asked anthropologist Margaret Mead, “What is the earliest sign of civilization?” The student expected her to say a clay pot, a grinding stone, or maybe a weapon....

October 23, 2020 · 3 min · YS

Rethinking Education – 3 talks to watch

If you are not familiar with these 3 speakers and their thesis about education, time to catch up! Entertaining and well-articulated, they will help you understand where the current education system migh be falling short. Ken Robinson is more focused on the what, Seth on the why and Sugata Mitra is looking for an alternative approach (hint: it involves the Internet). Ken Robinson: School kills creativity I am not sure how much Ken Robinson still need an introduction by now, but his was a reknown thinker on creativity and innovation....

October 10, 2020 · 2 min · Johann Savalle

Bullshit Jobs to Basic Income : Redesiging economic rewards

Bullshit Job : not what you think David Graeber has turned what would have happily stayed a colourful expression of our daily lives into an actual concept. In his book Bullshit Jobs - A Theory published fairly recently in 2018, he expands on the concept : A bullshit job is one that even the person doing it secretly believes need not, or should not, exist. That if the job, or even the whole industry, were to vanish, either it would make no difference to anyone, or the world might even be a slightly better place....

September 30, 2020 · 4 min · YS

Adapting Learning Systems To Today's World

Covid-19 has forced us into a reality where colocallity can only be virtual. While the press, inspired by the promises from some Silicon Valley giants, has tried to forecast how and when humanity would become a remote-first society, nobody came up with the creative scenario where a pandemic would be the trigger for global digital transformation. In this new reality, schools and universities need to adapat. Beyond the Zoom-Classroom experience....

September 29, 2020 · 4 min · YS

Rethinking education – 3 unconventional approaches

Education is hard. Creating a learning process where you transfer experience to one person to an other is no trivial task. If it was, learning would be more like this  But, since it is not, we will have to find other ways to go about it. Here are some interesting approaches, I have stumbled upon, which are really worth having a look at: Mike Fairclough - the badass The guy is headmaster of the West Rise School....

April 14, 2020 · 3 min · Johann Savalle

Medium-like online Editors

We need a better online editing experience Blog writing should be about writing and not about trying to figure out how your web text editor is working. One of the reason why Medium was so successful was the user experience of the editor. Editor JS https://editorjs.io/ Simple, straight forward, very light Interesting features with close to 20 plugins extending base functionalities. Headings Paragraph Tables Images Code snippets Lists Audio quote etc....

April 1, 2020 · 2 min · Johann Savalle

Content creation is key for growth

Content creation is key for growth To grow you need to create content. To grow as a business, as an individual, as a community. All is a function of how much content you manage to put out first. Writing is the first thing we learn in school - and somehow the cheapest way to create content. Yet it is also what look like the less approachable. Here is a few tips I hope you find useful to improve your content creation...

March 31, 2020 · 2 min · Johann Savalle