1453
Commentaire:
|
13696
|
Texte supprimé. | Texte ajouté. |
Ligne 7: | Ligne 7: |
Adresse électronique : <<MailTo(naereen@crans.org)>> ## Vous pouvez encore mieux masquer votre adresse électronique en y ajoutant des lettres ou des mots en majuscules précédés et suivis d'une espace. ... ---- CatégoriePagePersonnelle Page non encore réalisée ici. Une copie de mes pages perso sont disponibles sur l'espace du Cr@ns : <<perso.crans.org/besson/>>. |
{{http://perso.crans.org/besson/elfe-menu.JPG}} Adresse électronique : <<MailTo(naereen@crans.org)>>. <<TableOfContents>> * « Eh les enfants, vous voulez voir un noob ? Là, venez, regardez… Il met son adresse en clair sur le Web, vous voyez ? Oui, c'est ça un noob. » -- WikiElvith <<DateTime(2012-11-25T16:15:48Z)>> Officiellement, je suis Lilian Besson. Naereen, c'est pour les intimes :). Quelques une de mes pages perso sont disponibles sur l'espace du Cr@ns : http://perso.crans.org/besson/. |
Ligne 21: | Ligne 18: |
Sinon, je mange au RU assez souvent; mais vous ne verrez à la KFet hors de mes permanences Cr@ns (voir [[PermanenceCrans]]). Et au cas où, je suis au bâtiment B, numéro 216 ! |
=== Cr@ns === Je suis aussi de plus en plus au local du Cr@ns du 2B. Parfois même seul puisque j'en ai une clé ! J'assiste à certains séminaires le mardi soir, et depuis peu à certains "internounous" du jeudi soir. J'étais installeur et respo' '''effet kikoo''' à l'[[InstallParty/Novembre2012|install party]] du 24 Novembre. Et je réponds souvent aux mails des adhérents en détresse sur *respbats*. Sinon, je mange au RU assez souvent; mais vous ne me verrez peu à la KFet hors de mes permanences Cr@ns (voir [[PermanencesCrans]]). === Téléphone ... maison ? === Et au cas où, je suis au bâtiment B, numéro 216 ! On peut aussi me joindre au numéro suivant : 100101011101001100111101100001_2. Pour ceux qui préfèrent une belle décomposition : 11*179*439*727 ! Pour ceux qui ne lisent ni les décomposition en nombres premiers, ni le binaire, callto:+336.28.41.22.57 fonctionne mieux. === Wifi ? === Depuis peu (le 20/11), j'accueille une borne wifi dans ma chambre . Elle répond au doux nom de ''delling'', et permet d'arroser en wifi les adhérents du second étage du B, partie nord/ouest. Elle fait aussi office de ''switch'', me permettant d'avoir deux machines fixes en mêmes temps dans ma chambre ('''"hehehe !"'''). Enfin, quand elle marche ... (ce n'est pas encore ça !) |
Ligne 28: | Ligne 43: |
Voir [[LilianBesson]], <<www.dptinfo.ens-cachan.fr/~lbesson/>>. J'héberge mes nouveaux projets de programmation et d'"ordinateurique" sur un site réalisé avec l'outil ""GoogleSite"" <<sites.google.com/site/naereencorp/>>. Vous pouvez aussi me trouver sur Facebook : <<www.facebook.com/naereencorp.lbesson>>, ma page me sert aussi de blog où je poste de très régulier petits billets ! --- Que mille-et-un pétales de lotus fleurisse sous tes pas, ô noble navigateur du web. |
Voir ici http://www.dptinfo.ens-cachan.fr/~lbesson/. Et, non, on ne nous force pas avoir une page perso au département d'informatique. J'héberge mes nouveaux projets de programmation et d'*ordinateurique* sur un site réalisé avec l'outil !GoogleSite http://sites.google.com/site/naereencorp/. Vous pouvez aussi me trouver sur Facebook : http://www.facebook.com/naereencorp.lbesson, ma page me sert aussi de blog où je poste de très régulier petits billets ! Et enfin, quand je ne me sers pas de mon pc, mon Mac héberge une copie de mes pages persos http://naereen-corp.crans.org:93[NUMERO_DU_JOUR_*_2]/ ou http://naereen-corp.crans.org/. Je n'ai pas encore mis en place de serveur Apache, seulement un petit bidouillage en Python. Mais ça marche ! ---- == Mes études == Je suis normalien, inscrit au département de maths. En 2011/2012, j'ai suivi le double cursus pour les deux licences de mathématiques et d'informatique. Et je récidive en 2012/2013 pour les deux M1 ! ---- == Mes occupations == Quand je ne suis pas en cours, en permanence cr@ns, en train de manger / manger / dormir (si ça m'arrive), je m'occupe comme je peux : * un peu de jeux vidéos ([[Skyrim]] et [[Pokémon]]), * musique et humour (fan sempiternel du Donjon de Naheulbeuk), * programmation (allez faire un tour sur mon site GoogleSite) en OCaml, Python, Bash principalement, * ordinateurique (c'est à l'informatique ce que le tunning est à la conduite). === Sujets informatiques === Je suis particulièrement intéressé par les sujets informatiques suivants : * coloration syntaxique. A propos, jetez un oeil ici : http://perso.crans.org/besson/NanoSyntax, * simulation numérique (voir mon travail de stage de maths http://perso.crans.org/besson/publis/rapport_stage.pdf), * automatisation et aide à la programmation (méta-programmation) (voir mon projet MOcaml par exemple), * applications en consoles, logiciels simples en OCaml et Python (Naereen Browser, MOcamlViewFile, ou encore RenommeALL : de petits outils pour s'entraîner à pratiquer), * maîtrise d'outils en lignes de consoles et enrobage dans des scripts Bash (voir mes nombreux scripts gedit, mes scripts Nautilus, mon bashrc/bash_aliases etc...). === Services et réalisations === Si vous avez besoin d'aide pour quelque chose qui concerne de pas trop loin un des sujets précédents, n'hésitez pas à me demander. Exemple de réalisation cette année : * modification d'un bashrc pour intégrer le code de retour de la commande précédente si elle a échouée, * création d'un __daemon__ de notification pour mon mini pc sous Angstrom, afin d'informer correctement de l'état de la batterie (https://sites.google.com/site/naereencorp/liste-des-projets/angstrom), * création d'un script Bash pour automatiser la génération d'une documentation pour un projet Python (en utilisant PyDoc) (ici : https://sites.google.com/site/naereencorp/liste-des-projets/makepydoc) * création d'un petit clone de __rlwrap__ en Python, pour mon mini pc sous Angstrom pour lequel je n'arrive pas à cross-compiler (si tu as déjà entendu parler de ça, écris moi :/) ici : (https://sites.google.com/site/naereencorp/liste-des-projets/pyrlwrap/), * modification de fichiers définissant les syntaxes des langages que j'utilise (OCaml, Python, CUDA) pour la coloration syntaxique : sous GNU Nano, gedit ou Gobby 0.5 avec GTK-SourceView, Jota Text Editor (sur Android), * développement de plusieurs modules utilitaires en Python : *ANSIColors*, Matrix, PyRlwrap, PyZenity par exemple. ANSIColors permet d'utiliser les séquences d'échappements ANSI pour afficher du texte avec de la couleur dans un terminal ! Exemple : {{{#!highlight python from ANSIColors import printc, sprint printc("Voici du texte, écrit normalement.<red>ca c'est rouge !<default><Black>et ça sur un fond noir !<Default><green><Blue>maintenant, c'est vert clair sur un fond bleu<none><default><Default>") }}} * maîtrise de Sphinx et Doxygen, générateurs de documentation. Enrobage avec d'autres scripts de ma conception (update__date__.sh et makePyDoc.sh). == Applications Android == Parce que mettre ces informations sur une page wiki, c'est mieux que dans un mail random. Mais il faudrait créer une page wiki à part entière, et je ne sais pas faire. Voici quelques applications pour Android qui pourraient être utiles à un cableur. Pour les autres qui n'utilisent pas Android, voir ? (page à créer). === Le Wifi === Se connecter en wifi, c'est bien. Avoir des informations détaillées, c'est mieux. Les applis suivantes sont conçues pour ça, et sont performantes (pas de virus, légères et non bogguées, mises à jour fréquemment) : * Wifi Analyzer : permet de transformer le téléphone en analyseur wifi assez précis. Plein de fonctionnalités, permet de voir les canaux (et donc, les fréquences utilisées par les réseaux), les MACs et la qualité de la connexion avec toutes les bornes à portée. Sur le '''Google Play''', elle nécessite l'installation d'une librairie annexe. Voir : [[https://play.google.com/store/apps/details?id=com.farproc.wifi.analyzer&hl=fr|Wifi Analyzer]], et [[https://play.google.com/store/apps/details?id=com.farproc.wifi.connecter&feature=more_from_developer|Wifi Connector library]]. * Network Info II : permet d'obtenir des informations précises sur le réseau utilisés par son téléphone. Pas seulement pour le wifi, mais aussi pour le bluetooth, le 3G/H/Edge, le réseau téléphonique (GSM). Donne notamment des infos détaillés sur la borne émettant le réseau auquel on est connecté (permet de voir si c'est une nouvelle ou une ancienne borne), de voir aussi la MAC, et aussi ... la localisation de la borne ou de l'émetteur 3G ! Très pratique ! Sur le '''Google Play''', voir [[https://play.google.com/store/apps/details?id=aws.apps.networkInfoIi&hl=fr|Network Info II]]. === Le SSH === Parce qu'une fois connecté en wifi (ou en 3G chez Free qui laisse tout les ports ouverts), il est possible d'atteindre zamok, il faut pouvoir utiliser ce lien pour s'y connecter en SSH (et cabler avec son téléphone :D !). * ConnectBot : un client SSH simple, mais performant. Se décline en trois versions, chacune ayant leurs adeptes. La version originale s'appelle juste ''ConnectBot'', la version la plus populaire est ''Irssi ConnectBot'', qui gère mieux les redirections et l'identification par clé; et une autre version est ''Vx ConnectBot'', qui semble mieux gérer le clavier bluetooth (au dire de Pika). Sur le '''Google Play''', voir [[https://play.google.com/store/apps/details?id=org.woltage.irssiconnectbot|Irssi ConnectBot]]. === Le clavier === Pour les gens n'ayant pas un clavier matériel, utiliser un client SSH sans avoir certaines touches sur le clavier tactile de base peut être pénible. Un bon clavier complet est : * [[https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard|Hacker Keyboard]]. === Python === Pour les curieux ou les fanatiques, il est désormais possible d'installer Python, ainsi que d'autres langages de scripts (Perl, Javascript, Lua etc) sur Android ! Le projet s'appelle '''SL4A''' pour Scripting Layer For Android. Et la cerise sur le gateau, c'est que ces langages permettent d'accéder à une petite partie des fonctionnalités de son téléphone. Donc, oui, vous pourrez envoyer un texto en trois lignes de Python ou faire de la synthèse vocale avec : {{{#!highlight python droid = android.Android() droid.tts("I speak therefor I am !") }}} La projet est ici : [[http://code.google.com/p/android-scripting/|SL4A, sur Google CODE]], et la page dédiée à Python est là : [[http://code.google.com/p/python-for-android/|Python For Android, sur Google CODE]]. === Le Root === En attendant d'avoir l'autorisation d'en parler, je ne le fais pas ^^. === OCaml === Moins intéressant que pour Python, mais intéressant quand même, OCaml 3.12.0 a été porté sur Android par Romain Vernoux (info11, ENS de Cachan), et est disponible sous la forme d'une appli pour Android 2.1+ : [[https://play.google.com/store/apps/details?id=fr.vernoux.ocaml|OCaml Toplevel for Android]]. En attendant une mise à jour, ou une nouvelle appli (que je voudrais faire, mais manque de temps), celle ci ne donne pas accès au téléphone. Comme le justifie son auteur : "Ca devrait suffir pour faire vos courses ou implémenter un algorithme de décomposition en nombre premiers en direct en cours de math pour sauver votre camarade au tableau qui galère.". ---- == Citation du jour / de la semaine : == "Allez, mais faites péter de la poulette là !! Qu'on finisses pas la soirée comme des pédales !" -- Général byzantin. "Heu .. " -- Le Roi Arthur '''Kaamelott'''. ---- == Couleurs ANSI en Python == Je viens de découvrir la possibilité d'intégrer du code et de le colorer dans le wiki. Et comme c'est beau, je m'en sers ! {{{#!highlight python __author__='Lilian BESSON (lilian.besson@ens-cachan.fr)' # Automatically update with update__date__.sh, a Naereen Corp. (c) bash script. __version__=0.4 __date__='dimanche 18 novembre 2012, at 22h:50m:00s' # Automatically update with update__date__.sh, a Naereen Corp. (c) bash script. #1############### # Usual Modules # import os # If false, the module do exactly NOTHING ANSISupported=(os.getenv('TERM') in ['xterm', 'screen', 'linux', 'xterm256']) # Colors bold black="\033[01;30m" red="\033[01;31m" green="\033[01;32m" yellow="\033[01;33m" blue="\033[01;34m" magenta="\033[01;35m" cyan="\033[01;36m" white="\033[01;37m" # Many more on https://sites.google.com/site/naereencorp/tools/ansi-colors def tocolor(string): """tocolor(string) -> string Convert a string to a color. [string] have to be in [colorList] to be recognized. Default value if [string] is not one of the color name is "" the empty string.""" res="none" exec('res=%s' % string) if string in colorList: return res else: return "" def sprint(chainWithBalises, left='<', right='>', verbose=False): """ sprint(chainWithBalises, left='<', right='>', verbose=False) -> string Parse a string containing color balises, when color is one of the previous define name, and then return it, with color balises changed to concrete ANSI color codes. Balises are delimited by [left] and [right]. By default, it's Pango style whit '>' and '<', but you can change theme. Example: ======== >>> print sprint("<blue>this is blue.<white>And <this> is white.<red>Now this is red because I am <angry> !<green><white>") """ ls = chainWithBalises.split(left) if verbose: print "\tls", ls lls = list() for s2 in ls: if verbose: print "\ts2", s2 inte=s2.split(right) if verbose: print "\tinte", inte if inte[0] in colorList: inte[0]=tocolor(inte[0]) else: if len(inte)>1: inte[0]=left+inte[0]+right if verbose: print "\tinte", inte lls.append(inte) if verbose: print "\t", lls res="" for i in range(len(lls)): for j in range(len(lls[i])): res+=lls[i][j] return res def printc(chainWithBalises): """ printc(chainWithBalises) -> () A shortcut to print sprint(chainWithBalises) : analyse balises, and print the result.""" print sprint(chainWithBalises) }}} ---- CatégoriePagePersonnelle CatégoriePagePublique |
(Wiki) Naereen
Adresse électronique : naereen@crans.org.
Sommaire
« Eh les enfants, vous voulez voir un noob ? Là, venez, regardez… Il met son adresse en clair sur le Web, vous voyez ? Oui, c'est ça un noob. » -- WikiElvith 2012-11-25 18:15:48 Officiellement, je suis Lilian Besson. Naereen, c'est pour les intimes :).
Quelques une de mes pages perso sont disponibles sur l'espace du Cr@ns : http://perso.crans.org/besson/.
Me trouver sur le campus
Je suis souvent en cours, au Cournot (troisième étage C305 / 309), au premier étage dans mon (ex)bureau au LRC, ou en salle 411. Et depuis peu, à Chevaleret pour les cours d'info.
Cr@ns
Je suis aussi de plus en plus au local du Cr@ns du 2B.
- Parfois même seul puisque j'en ai une clé !
J'assiste à certains séminaires le mardi soir, et depuis peu à certains "internounous" du jeudi soir. J'étais installeur et respo' effet kikoo à l'install party du 24 Novembre.
Et je réponds souvent aux mails des adhérents en détresse sur *respbats*.
Sinon, je mange au RU assez souvent; mais vous ne me verrez peu à la KFet hors de mes permanences Cr@ns (voir PermanencesCrans).
Téléphone ... maison ?
Et au cas où, je suis au bâtiment B, numéro 216 !
On peut aussi me joindre au numéro suivant : 100101011101001100111101100001_2. Pour ceux qui préfèrent une belle décomposition : 11*179*439*727 ! Pour ceux qui ne lisent ni les décomposition en nombres premiers, ni le binaire, callto:+336.28.41.22.57 fonctionne mieux.
Wifi ?
Depuis peu (le 20/11), j'accueille une borne wifi dans ma chambre . Elle répond au doux nom de delling, et permet d'arroser en wifi les adhérents du second étage du B, partie nord/ouest. Elle fait aussi office de switch, me permettant d'avoir deux machines fixes en mêmes temps dans ma chambre ("hehehe !").
- Enfin, quand elle marche ... (ce n'est pas encore ça !)
Me trouver ailleurs sur le net
Voir ici http://www.dptinfo.ens-cachan.fr/~lbesson/. Et, non, on ne nous force pas avoir une page perso au département d'informatique.
J'héberge mes nouveaux projets de programmation et d'*ordinateurique* sur un site réalisé avec l'outil GoogleSite http://sites.google.com/site/naereencorp/.
Vous pouvez aussi me trouver sur Facebook : http://www.facebook.com/naereencorp.lbesson, ma page me sert aussi de blog où je poste de très régulier petits billets !
Et enfin, quand je ne me sers pas de mon pc, mon Mac héberge une copie de mes pages persos http://naereen-corp.crans.org:93[NUMERO_DU_JOUR_*_2]/ ou http://naereen-corp.crans.org/. Je n'ai pas encore mis en place de serveur Apache, seulement un petit bidouillage en Python. Mais ça marche !
Mes études
Je suis normalien, inscrit au département de maths. En 2011/2012, j'ai suivi le double cursus pour les deux licences de mathématiques et d'informatique.
- Et je récidive en 2012/2013 pour les deux M1 !
Mes occupations
Quand je ne suis pas en cours, en permanence cr@ns, en train de manger / manger / dormir (si ça m'arrive), je m'occupe comme je peux :
- musique et humour (fan sempiternel du Donjon de Naheulbeuk),
programmation (allez faire un tour sur mon site GoogleSite) en OCaml, Python, Bash principalement,
- ordinateurique (c'est à l'informatique ce que le tunning est à la conduite).
Sujets informatiques
Je suis particulièrement intéressé par les sujets informatiques suivants :
coloration syntaxique. A propos, jetez un oeil ici : http://perso.crans.org/besson/NanoSyntax,
simulation numérique (voir mon travail de stage de maths http://perso.crans.org/besson/publis/rapport_stage.pdf),
- automatisation et aide à la programmation (méta-programmation) (voir mon projet MOcaml par exemple),
- applications en consoles, logiciels simples en OCaml et Python (Naereen Browser, MOcamlViewFile, ou encore RenommeALL : de petits outils pour s'entraîner à pratiquer),
- maîtrise d'outils en lignes de consoles et enrobage dans des scripts Bash (voir mes nombreux scripts gedit, mes scripts Nautilus, mon bashrc/bash_aliases etc...).
Services et réalisations
Si vous avez besoin d'aide pour quelque chose qui concerne de pas trop loin un des sujets précédents, n'hésitez pas à me demander. Exemple de réalisation cette année :
- modification d'un bashrc pour intégrer le code de retour de la commande précédente si elle a échouée,
création d'un daemon de notification pour mon mini pc sous Angstrom, afin d'informer correctement de l'état de la batterie (https://sites.google.com/site/naereencorp/liste-des-projets/angstrom),
création d'un script Bash pour automatiser la génération d'une documentation pour un projet Python (en utilisant PyDoc) (ici : https://sites.google.com/site/naereencorp/liste-des-projets/makepydoc)
création d'un petit clone de rlwrap en Python, pour mon mini pc sous Angstrom pour lequel je n'arrive pas à cross-compiler (si tu as déjà entendu parler de ça, écris moi :/) ici : (https://sites.google.com/site/naereencorp/liste-des-projets/pyrlwrap/),
modification de fichiers définissant les syntaxes des langages que j'utilise (OCaml, Python, CUDA) pour la coloration syntaxique : sous GNU Nano, gedit ou Gobby 0.5 avec GTK-SourceView, Jota Text Editor (sur Android),
développement de plusieurs modules utilitaires en Python : *ANSIColors*, Matrix, PyRlwrap, PyZenity par exemple.
- ANSIColors permet d'utiliser les séquences d'échappements ANSI pour afficher du texte avec de la couleur dans un terminal ! Exemple :
- ANSIColors permet d'utiliser les séquences d'échappements ANSI pour afficher du texte avec de la couleur dans un terminal ! Exemple :
maîtrise de Sphinx et Doxygen, générateurs de documentation. Enrobage avec d'autres scripts de ma conception (updatedate.sh et makePyDoc.sh).
Applications Android
Parce que mettre ces informations sur une page wiki, c'est mieux que dans un mail random. Mais il faudrait créer une page wiki à part entière, et je ne sais pas faire.
Voici quelques applications pour Android qui pourraient être utiles à un cableur. Pour les autres qui n'utilisent pas Android, voir ? (page à créer).
Le Wifi
Se connecter en wifi, c'est bien. Avoir des informations détaillées, c'est mieux. Les applis suivantes sont conçues pour ça, et sont performantes (pas de virus, légères et non bogguées, mises à jour fréquemment) :
Wifi Analyzer : permet de transformer le téléphone en analyseur wifi assez précis. Plein de fonctionnalités, permet de voir les canaux (et donc, les fréquences utilisées par les réseaux), les MACs et la qualité de la connexion avec toutes les bornes à portée. Sur le Google Play, elle nécessite l'installation d'une librairie annexe. Voir : Wifi Analyzer, et Wifi Connector library.
Network Info II : permet d'obtenir des informations précises sur le réseau utilisés par son téléphone. Pas seulement pour le wifi, mais aussi pour le bluetooth, le 3G/H/Edge, le réseau téléphonique (GSM). Donne notamment des infos détaillés sur la borne émettant le réseau auquel on est connecté (permet de voir si c'est une nouvelle ou une ancienne borne), de voir aussi la MAC, et aussi ... la localisation de la borne ou de l'émetteur 3G ! Très pratique ! Sur le Google Play, voir Network Info II.
Le SSH
Parce qu'une fois connecté en wifi (ou en 3G chez Free qui laisse tout les ports ouverts), il est possible d'atteindre zamok, il faut pouvoir utiliser ce lien pour s'y connecter en SSH (et cabler avec son téléphone !).
ConnectBot : un client SSH simple, mais performant. Se décline en trois versions, chacune ayant leurs adeptes. La version originale s'appelle juste ConnectBot, la version la plus populaire est Irssi ConnectBot, qui gère mieux les redirections et l'identification par clé; et une autre version est Vx ConnectBot, qui semble mieux gérer le clavier bluetooth (au dire de Pika). Sur le Google Play, voir Irssi ConnectBot.
Le clavier
Pour les gens n'ayant pas un clavier matériel, utiliser un client SSH sans avoir certaines touches sur le clavier tactile de base peut être pénible. Un bon clavier complet est :
Python
Pour les curieux ou les fanatiques, il est désormais possible d'installer Python, ainsi que d'autres langages de scripts (Perl, Javascript, Lua etc) sur Android ! Le projet s'appelle SL4A pour Scripting Layer For Android. Et la cerise sur le gateau, c'est que ces langages permettent d'accéder à une petite partie des fonctionnalités de son téléphone. Donc, oui, vous pourrez envoyer un texto en trois lignes de Python ou faire de la synthèse vocale avec :
La projet est ici : SL4A, sur Google CODE, et la page dédiée à Python est là : Python For Android, sur Google CODE.
Le Root
En attendant d'avoir l'autorisation d'en parler, je ne le fais pas .
OCaml
Moins intéressant que pour Python, mais intéressant quand même, OCaml 3.12.0 a été porté sur Android par Romain Vernoux (info11, ENS de Cachan), et est disponible sous la forme d'une appli pour Android 2.1+ : OCaml Toplevel for Android. En attendant une mise à jour, ou une nouvelle appli (que je voudrais faire, mais manque de temps), celle ci ne donne pas accès au téléphone.
Comme le justifie son auteur : "Ca devrait suffir pour faire vos courses ou implémenter un algorithme de décomposition en nombre premiers en direct en cours de math pour sauver votre camarade au tableau qui galère.".
Citation du jour / de la semaine :
"Allez, mais faites péter de la poulette là !! Qu'on finisses pas la soirée comme des pédales !" -- Général byzantin.
"Heu .. " -- Le Roi Arthur
Kaamelott.
Couleurs ANSI en Python
Je viens de découvrir la possibilité d'intégrer du code et de le colorer dans le wiki. Et comme c'est beau, je m'en sers !
1
2 __author__='Lilian BESSON (lilian.besson@ens-cachan.fr)' # Automatically update with update__date__.sh, a Naereen Corp. (c) bash script.
3 __version__=0.4
4 __date__='dimanche 18 novembre 2012, at 22h:50m:00s' # Automatically update with update__date__.sh, a Naereen Corp. (c) bash script.
5
6 #1###############
7 # Usual Modules #
8 import os
9
10 # If false, the module do exactly NOTHING
11 ANSISupported=(os.getenv('TERM') in ['xterm', 'screen', 'linux', 'xterm256'])
12
13 # Colors bold
14 black="\033[01;30m"
15 red="\033[01;31m"
16 green="\033[01;32m"
17 yellow="\033[01;33m"
18 blue="\033[01;34m"
19 magenta="\033[01;35m"
20 cyan="\033[01;36m"
21 white="\033[01;37m"
22 # Many more on https://sites.google.com/site/naereencorp/tools/ansi-colors
23
24 def tocolor(string):
25 """tocolor(string) -> string
26 Convert a string to a color.
27 [string] have to be in [colorList] to be recognized.
28 Default value if [string] is not one of the color name is "" the empty string."""
29 res="none"
30 exec('res=%s' % string)
31 if string in colorList: return res
32 else: return ""
33
34 def sprint(chainWithBalises, left='<', right='>', verbose=False):
35 """ sprint(chainWithBalises, left='<', right='>', verbose=False) -> string
36 Parse a string containing color balises, when color is one of the previous define name,
37 and then return it, with color balises changed to concrete ANSI color codes.
38
39 Balises are delimited by [left] and [right].
40 By default, it's Pango style whit '>' and '<', but you can change theme.
41
42 Example:
43 ========
44 >>> print sprint("<blue>this is blue.<white>And <this> is white.<red>Now this is red because I am <angry> !<green><white>")
45 """
46 ls = chainWithBalises.split(left)
47 if verbose: print "\tls", ls
48 lls = list()
49 for s2 in ls:
50 if verbose: print "\ts2", s2
51 inte=s2.split(right)
52 if verbose: print "\tinte", inte
53 if inte[0] in colorList: inte[0]=tocolor(inte[0])
54 else:
55 if len(inte)>1: inte[0]=left+inte[0]+right
56 if verbose: print "\tinte", inte
57 lls.append(inte)
58 if verbose: print "\t", lls
59 res=""
60 for i in range(len(lls)):
61 for j in range(len(lls[i])):
62 res+=lls[i][j]
63 return res
64
65 def printc(chainWithBalises):
66 """ printc(chainWithBalises) -> ()
67 A shortcut to print sprint(chainWithBalises) : analyse balises, and print the result."""
68 print sprint(chainWithBalises)