13 tips pour Python
Une série de 6 articles présentant les outils à mettre en place pour le dev Python en 2020. Au programme:
- pyenv et Poetry pour la version python et les dépendances
- click pour la cli
- requests pour les calls HTTP
- pytest, coverage et nox pour les tests units
- black, flake8 et pre-commit pour le code linting
- mypy pour le static typing (pas utilisé encore)
- sphinx et readthedocs pour la doc
- github actions pour le ci/cd
Beaucoup de bonnes pratiques et de plugins flake8 pour automatiser un max de checks...
La série d'article est aussi accompagnée d'un repo qui met tout en pratique: https://github.com/cjolowicz/hypermodern-python
Si Spotify se retrouve bloqué en plein écran sous linux, éditer le fichier ~/.config/spotify/prefs
ou (~/snap/spotify/current/.config/spotify/prefs
) et supprimer les lignes app.window.position.height
et app.window.position.width
.
Quelques tips pour debugger du code python avec print()
, notamment:
- Debug variables with f-strings and
=
:print(f"{myvar=}")
- Use
locals()
to debug all local variables:print(locals())
- Use
vars()
to debug all of an object’s attributes:print(vars(myobject))
Un script shell interactif pour créer facilement une VM VirtualBox MacOS.
Lors du provisioning d'une image Packer Ubuntu, l'installation de packages échoue parfois avec l'erreur Package 'XXX' has no installation candidate
car le setup cloud-init n'est pas terminé.
La doc Packer recommande d'ajouter la step suivante:
{
"type": "shell",
"inline": [
"while [ ! -f /var/lib/cloud/instance/boot-finished ]; do echo 'Waiting for cloud-init...'; sleep 1; done"
]
}
Il est aussi possible d'utiliser /usr/bin/cloud-init status --wait
(hashicorp/packer#2639).
Un tuto très complet pour apprendre à interagir avec des APIs externes en Python.
Un site qui permet de connaître le pourcentage de PRs mergées pour un repo GitHub donné.
La quasi totalité des livres dont vous êtes le héros disponible en PDF!
When deleting a namespace is stuck in Terminating
state, you can find all resources in this namespace with kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get -n $your-ns-to-delete
To write bash one-liner functions, don't forget to add a semi-column at the end of the commands:
$ grep_file() { grep "$@" file; }
Les calendriers partagés Google Calendar ne sont pas synchronisés par défaut sur MacOS/IOS. Pour y accéder, il faut sélectionner explicitement les calendriers ici: https://www.google.com/calendar/syncselect
Une description détaillée des nouveautés de Python 3.9
asdf est un gestionnaire de version universel qui peut remplacer pyenv, rbenv, rvm, sdkman pour gérer les versions de python, ruby, java et bien d'autres languages, mais aussi les versions d'outils comme terrafrom, packer, kubectl...
Pratique pour compresser les PDF lorsqu'on doit envoyer des documents par mail aux administrations mais que celles-ci ont des limites à 10Mb
To save storage space, you can compress a PDF in Preview.
Note: When compressed, the PDF may be of lower quality than the original.
In the Preview app on your Mac, open the PDF, then choose File > Export.
Click the Quartz Filter pop-up menu, then choose Reduce File Size.
Un super tuto pour déployer et utiliser Elasticsearch, Kibana et Metricbeat sur Kubernetes à l'aide des Helm charts Elastic officiels.
Attention, contrairement a ce qui était mentionné à l'origine dans cet article, les Helm charts Elastic be sont pas encore officiellement supporté avec Helm v3. L'utilisation de Helm v2 est donc recommandée.
This article provides a summary of the object storage services of the three biggest cloud providers: AWS, Azure and GCP.
Une bonne explication des différences entre les Helm charts et les opérateurs Kubernetes.
Quelques conseils pour faire des reviews constructives:
- Rephrase your objection as a question
- Avoid hyperbole
- Keep snide comments to yourself
- Engage positively
- Remember that not everybody’s experience is identical to yours
- Don’t diminish the complexity of something that’s not obvious
- Be respectful
- Manage expectations (and your time)
- Say please
- Start a conversation