VTFFAAS – Projet Python

Cela commençait à faire quelques temps que je n’avais pas réellement codé car j’avais surtout tendance à faire du système ou du réseau. Du coup, pour les besoins d’une présentation dans le cadre du Laboratoire Web de mon école, je me suis penché sur les possibilités qu’offrait Python dans le développement Web.

J’ai commencé par regarder les possibilités qu’offrait python seul puis je suis passé à des micro-framework comme Bottle Py ou Flask. Je n’ai pas encore poussé les recherches jusqu’à Django qui supporte enfin la version 3 de Python.

J’ai donc voulu me faire un petit POC pour cette présentation et j’ai réfléchis à ce que je pouvais faire qui soit assez parlant. Il en est ressorti ceci : http://vtffaas.com/

Va Te Faire Foutre As A Service est une plateforme conçue pour permettre facilement de dire à quelqu’un d’aller de se faire foutre.

Le principe de cette plateforme est simple, différents messages sont pré-configurés et on peut les appeler en modifiant certaines variables directement depuis l’URL. Un raccourcisseur d’URL va bientôt être intégré sur la plateforme.

Mine de rien, même si l’utilité d’une telle plateforme est bien évidemment discutable, au niveau du panel d’options vues, elle est très intéressante. J’ai ainsi pu voir les redirections, la manière de traiter les fonctions Python en fonction des appels Web, les connexions à la base de données, les déploiements standalone comme au travers d’Apache, …

En tout cas, Python, bien qu’encore handicapé par le méli-mélo permanent qu’est l’existence de 2 versions non compatibles entre elles du langage, offre des possibilités et des temps de réponse parfaitement adaptés au Web.

Activer les numéros de ligne dans PyCharm

Python est réellement un langage fantastique mais je n’ai toujours pas trouvé d’IDE aussi performant que je le souhaiterais. Celui à l’heure actuel qui s’approche le plus de ce que je recherche dans un IDE est PyCharm. Celui ci n’affiche cependant pas de base les numéros de ligne dans les pages de code. Même si ceci n’est pas d’une utilité absolue, c’est un confort que j’apprécie et un point de repère efficace.

Il y a deux manières d’activer les numéros de ligne. La première manière n’active l’affichage que sur la page en cours. Pour cela, faire un clic droit dans la petite bande à gauche de la page de code, avant la colonne d’affichage, et sélectionner « Show Line Numbers« .

La deuxième solution est plus globale puisqu’elle active par défaut l’affichage des numéros de ligne. C’est celle ci que j’ai choisi pour ma part. Pour ceci, il faut aller dans Files -> Settings -> IDE Settings -> Editor -> Appearance et cocher l’option « Show Line Numbers »

La descriptions des différentes options disponibles de cette page peut être trouvé sur la page d’aide de JetBrains correspondante.

Conventions de nommage en Python

Python est un langage dont la force principale est d’obliger les développeurs à opter pour un code clair et indenté. Ainsi, je me suis demandé jusqu’où allaient leurs exigences et notamment avec les conventions de nommage. Celles ci, dont le respect est indispensable dans d’autres langages, s’avèrent volontairement inutiles en Python.

Ainsi, il n’y a pas de manière particulière dictée de nommer un paquet ou une variable. Python résume d’ailleurs sa philosophie en deux phrases :

Explicit is better than implicit.

et

Namespaces are one honking great idea — let’s do more of those!

Ces deux phrases sont tirées de The Zen of Python de Tim Peters (PEP 20). Ce sont d’ailleurs ces PEP (Python Enhancement Proposals) que les développeurs suivent pour structurer leurs codes. La PEP 8 dicte les règles s’appliquant aux variables et donne des exemples précis de chaque cas.

Le choix de faire sauter un certain nombre de conventions comme les « com.name.projectname.groupname.filename » est en partie dû au fait que les import Python permettent de faire :

import com.name.projectname.groupname.filename as shortfilename

et ainsi permettre un gain de place énorme en évitant nombre de répétitions inutiles.

Taille maximum d’un String

Dans la continuité des découverte faites avec Hook, une question qui s’était posée était la taille maximum que pouvait atteindre un String en Java, Par extension, j’ai cherché la réponse dans plusieurs langages.

Deux choses peuvent limiter la taille d’un String :

  • La taille de la pile attribuée (Heap Size) (Surtout lorsque l’on passe dans une machine virtuelle)
  • La taille maximum que peut prendre un tableau soit, en Java, Integer.MAX_VALUE. Ceci correspond à 2 147 483 647 caractères soit 2^31 -1 caractères ou la taille de stockage d’un int.

La gestion des String étant la même dans presque tous les langages, on peut considérer cette limite valide dans la majeur partie des cas.

Les détails viennent d’ici : http://blog.lecharpentier.org/2012/06/27/java.lang.string-limits/