Catégorie : développement

Tout ce qui concerne le développement en général, que ce soit des choses générales, ou des choses bien précises. Cela va de la gestion de projet à la recherche du fonctionnement de pointeurs en C.

Enfin des guides de packaging sur python.org

On peut chercher partout sur le Web, ça part toujours un peu dans tous les sens et beaucoup ont des solutions différentes.
C’est un peu comme les outils pour gérer le travail en équipe… ou la mise en production de Django : plein de solutions, et aucun n’est officiellement supportée.

Eh bien maintenant, c’est un petit pas pour Python, un grand pour les développeurs !
Il existe maintenant des guides de packaging sur python.org.

Cliquez ici pour tout savoir sur le packaging officiel dans Python :

Python Packaging User Guide

Python : liste : voir si tous les éléments sont identiques

Encore une petite idée prise ici : Astuces Python en anglais

>>> lst = ['a', 'a', 'a']

>>> len(set(lst)) == 1
True

>>> all(x == lst[0] for x in lst)
True

>>> lst.count(lst[0]) == len(lst)
True

Dans l’ordre, du plus « Pythonique » au moins « Pythonique »… mais paradoxalement, du moins efficace au plus efficace.
Utiliser count() est le plus rapide.

Mint et Ubuntu : une vitesse de clavier bien plus rapide que Windows

La vitesse de répétition du clavier est liée non pas au hardware (comme je l’ai cru pendant des années), mais au software, donc au système d’exploitation.

Mon ami Windows (« ami »… vous sentez l’ironie ?), qui est fait principalement pour les personnes qui pensent (à tort) qu’on est plus rapide avec une souris qu’avec un clavier, propose un délai avant de répéter les touches très long, même au minimum, et une vitesse de répétition plutôt lente, pour des personnes comme moi qui aiment aller vite.

Mon vrai ami Linux, lui, permet d’aller extrêmement vite, et c’est génial. Bon ok, il permet d’aller si vite qu’on peut faire des petites blagounettes à son camarade de classe. Alors Ubuntu a eu l’idée complètement débile (et je reste poli) de copier Windows et de limiter la vitesse de répétition, et le délai, à des temps très longs, qui se rapprochent de ceux de Windows.

Pourquoi brider tout cela ? Quel est l’intérêt de limiter sa voiture à 50km/h si elle peut aller à 200km/h (et que les autoroutes ne sont pas limitées !).

La solution : après avoir demandé ici sur stackoverflow, voici la réponse, je vous la mets en français : ouvrez un terminal et copiez-collez ce code :

Si vous êtes sur Linux en général

gsettings set org.gnome.settings-daemon.peripherals.keyboard repeat-interval 20

gsettings set org.gnome.settings-daemon.peripherals.keyboard delay 140

Si vous êtes sur Mint ou sur Ubuntu, autre solution

gsettings set org.cinnamon.settings-daemon.peripherals.keyboard repeat-interval 20

gsettings set org.cinnamon.settings-daemon.peripherals.keyboard delay 140

Et voilà. C’est le genre de choses, quand j’ai fini de coder toute la journée, et que je reviens sur Windows pour jouer un peu, qui fait que si je dois faire autre chose que jouer, je me mets à détester Windows et rebooter rien que pour écrire mes mails (au final je reste sur Mint parce que je ne vais pas re-rebooter pour rejouer…).

1 – QMK firmware – clavier AZERTY – Update

Pour tous ceux qui veulent le récupérer et le compiler, cela se passe par .

Attention ce qui suit est une explication du temps que j’ai perdu, mais j’essaie de rester honnête : il y a deux gros « firmwares » que l’on peut mettre dans les claviers de geek : le firmware QMK et le firmware kiibohd. Les deux personnes qui bossent dessus sont hyper fortes et connaissent les claviers et les drivers sur le bout des doigts. De mon point de vue je ne conseille que le premier (dont j’ai mis les sources en téléchargement juste au dessus), car le kiibohd n’est que sources de problèmes.

Celui qui a fait de grosses sources, travaillé énormément dessus et qui a le plus de connaissances est Jacob Alexander (alias haata), et vous trouverez toutes ses sources ici. Seul gros problème : même s’il est plein de bonne volonté, son code est difficilement lisible et le comportement même du clavier est totalement incohérent par rapport à ce que je recherchais. Je ne conseille pas du tout de récupérer et d’utiliser ce code pour ces raisons :

  • si vous voulez afficher une image totalement différente sur votre LCD par rapport à la couche, c’est impossible : il affiche uniquement un chiffre par rapport à la couche en cours (et si on vient d’une couche à une autre, par exemple de la 3 à la 2, alors vous verrez 2 chiffres)
  • si vous voulez facilement programmer des macros, vous allez galérer à mort, je n’y suis pas arrivé
  • si vous voulez compiler facilement sous Windows, c’est la même chose, et la seule réponse c’est : utilisez une machine virtuelle Linux et compilez là. Super !

Bref, que des points bloquants, même si un seul était résolu, les autres m’empêcheraient de faire ce que je veux avec mon Infinity Ergodox, donc : go for QMK !.

Infinity ergodox

Après avoir acheté deux fois l’Infinity Ergodox (oui le premier avait des défaut de LED, celle de droite était défectueuse… je l’ai gardé car je ne l’aurais jamais revu si je l’avais renvoyé), j’ai récupéré toutes les sources et j’ai tout fait pour les recompiler.

Bref, il fonctionne :


Infinity Ergodox


Infinity Ergodox


Infinity Ergodox

Je mets en disponibilité mes sources pour la configuration complète d’un clavier AZERTY tel que je l’ai expliqué dans la page de configuration du clavier, avec quelques modifications qui me conviennent mieux..

PostgreSQL – Mémo – cheatsheet

PostGreSQL hints / aide

Premiers pas

– Première connexion
– Création de base
N’oubliez pas les ";" à la fin des ordres SQL !
(Pris ici)
sudo su
# su - postgres
postgres $ psql
psql (9.x.x)
Type "help" for help.
postgres=#
postgres=# create database interro;
CREATE DATABASE
postgres-#
postgres=# grant all privileges on database interro to interro;
GRANT
postgres=#
Commentaires fermés sur PostgreSQL – Mémo – cheatsheet Publié dans Mots-clé ,

Dang Bader : dbader.org

Si vous souhaitez vous moderniser dans le monde Python et apprendre plein de petites astuces, je vous conseille de vous inscrire ici sur https://dbader.org/.

Voici quelques petites news que je résume et que je traduis en français :

Supprimer temporairement une exception

Il est possible de supprimer temporairement une exception en utilisant contextlib.suppress().

Exemple concret :
import contextlib
with contextlib.suppress(FileNotFoundError):
    os.remove('monfichier.tmp')

Voici l’équivalent du bon try/except des familles :

try:
    os.remove('monfichier.tmp')
except FileNotFoundError:
    pass

Méthodes de classe vs méthodes statiques

Le code parle de lui-même :

class MaClasse:
    def methode_normale(self):
        return 'instance method called', self

    @classmethod
    def methode_de_classe(cls):
        return 'class method called', cls

    @staticmethod
    def methode_statique():
        return 'static method called'

# Appels sur une instance :
# tout fonctionne :
>>> obj = MaClasse()
>>> obj.methode_normale()
('instance method called', )
>>> obj.methode_de_classe()
('class method called', )
>>> obj.staticmethod()
'static method called'

# Appels directs : voyez le résultat :
>>> MaClasse.methode_de_classe()
('class method called', )
>>> MaClasse.methode_statique()
'static method called'
>>> MaClasse.methode_normale()
TypeError:
    "unbound method methode_normale() must be called with MaClasse"
    "instance as first argument (got nothing instead)"

Désassembler un binaire Python

>>> def greet(name):
...     return 'Salut, ' + name + ' !'

>>> greet('Olivier')
'Salut, Olivier !'

>>> import dis
>>> dis.dis(greet)
2   0 LOAD_CONST     1 ('Salut, ')
    2 LOAD_FAST      0 (name)
    4 BINARY_ADD
    6 LOAD_CONST     2 ('!')
    8 BINARY_ADD
   10 RETURN_VALUE

PyCharm cheatsheet

Vim

Live templates

Settings > Editor > Live template Créer son live template, exemple :
if/else/endif ->
{% if $IF$ %}
{% else %}
$END$
{% endif %}
Commentaires fermés sur PyCharm cheatsheet Publié dans

100 livres Python pour tout le monde !

Pour toutes les personnes qui croient qu’on passe des jours entiers à écrire des bouquins pour les donner, changez d’endroit : oui ils sont payants… et c’est normal.

Bref, pour tous ceux qui veulent apprendre et payer pour avoir les meilleurs livres, écrits par les meilleurs, dans le domaine qui vous intéresse, vous avez tout ici : pythonbooks.org.

Sam Agnew bidouille le bon vieux Zelda à la PyCon 2017

Je vous laisse découvrir qui est Sam Agnew, mais dans la vidéo :

  • il fait un peu de LUA pour hacker et analyser le code de Zelda ;
  • il met en place le fait de discuter entre twitter et le code qui écrit en direct dans Zelda ;
  • cela écrit en direct dans Zelda pendant qu’on joue !

Enorme. Et en plus vous verrez du code sur comment lire les notifications twitter en quelques lignes de Python