dimanche 19 août 2012

IDE pour Python 3

Pour pouvoir développer en Python 3, il y a plein d'IDEs.

Il y a IDLE (super basique), PyDev avec Eclipse (200Mo à télécharger), etc...

Et il y a PyScripter. Super léger (6Mo), pas aussi complet que PyDev, mais en tout cas plus complet qu'IDLE : complétion de code, debugger, permet de gérer des "projets", interfaçage avec CVS/SVN, pydoc, etc...

lundi 14 novembre 2011

Définir un proxy dans son AVD

Lorsque l'on travaille sur un PC passant par un proxy (pour accéder au web) et que l'on souhaite utiliser cette connexion au web dans son Android Virtual Device (l’émulateur Android), il faut indiquer les paramètres du proxy :

Dans l'émulateur, aller dans le menu Settings > Wireless & networks > Mobile networks > Access Point Names > TelKila :
 
Et renseigner les champs :
Proxy
Port
Username
Password

mardi 4 octobre 2011

*args and **kwargs en Python

Ils servent pour appeler des fonctions avec un nombre variable de paramètres.


*args est utilisé pour passer des paramètres simples
**kwargs est utilisé pour passer des paramètres keyworded (clef/valeur)

Source:
http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/

mercredi 21 septembre 2011

Linux : USER/EUSER/etc tronqué avec ps

Lorsque je fais :

ps -o user
USER
myusername
myusername
... 

Mais lorsque je fais :

ps -o user -o args
USER     COMMAND
46       ps -o user -o args
46       -bash
..

Donc il vaut mieux travailler avec l'UID qu'avec le username, car il risque d'être tronqué si > 8 caractères.

Source : http://www.linuxquestions.org/questions/linux-newbie-8/ps-aux-displays-users-as-uids-instead-of-username-645456/

mardi 23 août 2011

Acronymes américains

  • AFAIK: As Far As I Know
  • ASAP: As Soon As possible
  • BRB: Be Right Back
  • BTW: By The Way
  • BYOB: Bring Your Own Beer/Booze (dans une soirée, chacun apporte ce qu'il compte boire)
  • FYI: For Your Information
  • IMHO: In My Humble Opinion
  • IOU: I Owe You (donner un IOU veut dire que l'on doit quelque chose à quelqu'un)
  • NSFW: Not Safe For Work (à éviter de regarder au travail, souvent synonyme de contenu "osé")
  • OBO: Or Best Offer (vu dans petites annonces)
  • OMG: Oh My God!
  • RSVP: Repondez S'il Vous Plait (utilisé lorsqu'on est invité pour dire si l'on vient ou non)
  • SOL: Sh*t Out of Luck (to be SOL: être dans la mouise parce qu'on ne peux plus compter sur la chance)
  • TBC: To Be Confirmed
  • TBD: To Be Determined
  • TGIF: Thank God It's Friday
  • TMI: Too Much Information (se dit lorsque quelqu'un donne un peu trop de détails personnels)
  • WTF: What The F***
Source : http://www.bienvenueaboston.org/wikigroup.php?id=17

lundi 11 juillet 2011

Créer des diagrammes


Possibilité de sauvegarder en local (XML, SVG, PNG) et de re-ouvrir (si sauvegardé précédemment en XML). Peut ouvrir les fichiers VDX (Visio).

vendredi 8 juillet 2011

Mettre en place plusieurs applications sous CherryPy

Avec CherryPy 3.X, il est possible d'associer plusieurs applications à un seul site. Nous allons voir comment mettre en place 3 applications basiques (ayant chacune son propre fichier de configuration) et les associer à une instance CherryPy (ayant lui aussi son propre fichier de configuration).

Les instructions que je donne ci-dessous se basent sur un environnement Windows. Mais très peu de choses varient pour Linux (ce qui changent, c'est la façon d'installer Python et CherryPy ainsi que les répertoires de Python et CherryPy).

1 - Installation de Python et CherryPy
  • installer Python 3.X : l'installer dans C:\Python3X
  • installer CherryPy 3.X : il s'installe dans C:\Python3X\Lib\site-packages\cherrypy

2 - Création d'une application
  • dans le répertoire de CherryPy, créer le répertoire app1
  • dans ce répertoire , créer les fichiers :
__init__.py

<fichier vide
>

appli1.conf (le contenu de ce fichier n'est qu'un exemple)

[Databases]

driver: "postgres"
host: "localhost"
port: 5432

appli1.py 

import cherrypy
class App1:    
   def index(self):        
      return "Hello world from app1 !"    
   index.exposed = True 

3 - Création d'une deuxième application

répéter les manips indiquées dans le chapitre "Creation d'une application", en remplacant "1" par "2" ("appli1.py"->"appli2.py" , "class App1"->"class App2", etc)


4 - Création d'une troisième application
 
répéter les manips indiquées dans le chapitre "Creation d'une application", en remplacant "1" par "3" ("appli1.py"->"appli3.py" , "class App1"->"class App3", etc)


5 - Création du script de démarrage du site
 
à la racine de CherryPy (dans notre cas il s'agit de C:\Python3X\Lib\site-packages\cherrypy), créer le fichier :
startup.py 

import cherrypy
import appli1.appli1
import appli2.appli2
import appli3.appli3

def initApp( path, confFileName=None, app=None):    
   appliConf = os.path.join(os.path.dirname(__file__), confFileName)    
   cherrypy.tree.mount(app, path, config=appliConf)

if __name__ == '__main__':    
   import os.path       
   #initialisation du fichier de configuration du site :    
   globalconf = os.path.join(os.path.dirname(__file__), 'global.conf')    
   cherrypy.config.update(globalconf)
   #initialisation des fichiers de configuration des appli1, 2 et 3 :    
   initApp('/1', 'appli1/appli1.conf',appli1.appli1.App1());    
   initApp('/2', 'appli2/appli2.conf',appli2.appli2.App2());    
   initApp('/3', 'appli3/appli3.conf',appli3.appli3.App3());        
   cherrypy.engine.start()    
   cherrypy.engine.block()


6 - Création du fichier de configuration du site
 
à la racine de cherrypy (dans notre cas il s'agit de C:\Python3X\Lib\site-packages\cherrypy), créer le fichier :
global.conf 
[global]server.socket_host = "127.0.0.1"
server.socket_port = 8088server.thread_pool = 10

7 - Lancement de CherryPy

  • taper la commande : python startup.py

  • lancer un navigateur et aller à : http://127.0.0.1:8088/1/
    =>"Hello world from app1 !" s'affiche :o)

  • lancer un navigateur et aller à : http://127.0.0.1:8088/2/
    =>"Hello world from app2 !" s'affiche :o)

  • lancer un navigateur et aller à : http://127.0.0.1:8088/3/
    =>"Hello world from app3 !" s'affiche :o)

 

Categories