Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Mot-clefs : Programmation

Latex création d'un glossaire

Jonathan Mercier

Bonjour cher lecteur,

Je suis un utilisateur courant de latex pour la création de document pdf. Récemment j'ai eu le besoin de mettre un glossaire dans mon document. Je souhaite faire part de mon expérience et des problèmes rencontrés dans l'espérance de vous faire gagner un précieux temps.

Moteur de recherche

Première chose que j'ai faite c'est de rechercher comment créer un glossaire avec latex, il existe différent package pour cela, dont :

Péripétie

La littérature du web décrit glossary comme un paquet "périmé" soit, je ne m'attarde pas dessus et je passe à makeglos. Je recherche la documentation les exemples sur le web ... frustré par le peut de documentation je me dis allons bon va pour le package glossaries.

Glossaries

je récupère via le CTAN le package, lit le fichier INSTALL et procède à l'installation.

Récupération des sources

$ su -
# wget http://mirror.ctan.org/macros/latex/contrib/glossaries.zip
# unzip glossaries.zip

Création des dossiers

 
# mkdir /usr/share/texmf/tex/latex/glossaries
# mkdir /usr/share/texmf/doc/latex/glossaries
# mkdir /usr/share/texmf/tex/latex/glossaries/base/
# mkdir /usr/share/texmf/tex/latex/glossaries/styles
# mkdir /usr/share/texmf/doc/latex/glossaries/samples

Installation des fichier *.tex

# install glossariesbegin.tex  /usr/share/texmf/tex/latex/glossaries/
# install glossaries-user.tex  /usr/share/texmf/tex/latex/glossaries/
# install glossary2glossaries.tex  /usr/share/texmf/tex/latex/glossaries/
# install mfirstuc-manual.tex /usr/share/texmf/tex/latex/glossaries/

Installation des styles de base

# install glossaries-babel.sty  /usr/share/texmf/tex/latex/glossaries/base/
# install glossaries-compatible-207.sty /usr/share/texmf/tex/latex/glossaries/base/
# install glossaries-polyglossia.sty /usr/share/texmf/tex/latex/glossaries/base/
# install glossaries.sty /usr/share/texmf/tex/latex/glossaries/base/
# install mfirstuc.sty /usr/share/texmf/tex/latex/glossaries/base/

Installation dans expl

# install glossaries-accsupp.sty /usr/share/texmf/tex/latex/glossaries/expl/

Installation des fichiers *.dict

# cp *.dict /usr/share/texmf/tex/latex/glossaries/dict/

Installation de la documentation

# cp samples/*.tex /usr/share/texmf/doc/latex/glossaries/samples

mise à jour pour la recherche de package

# texhash

Suppression du dossier téléchargé

# rm -fr glossaries glossaries.zip

Je teste avec l'exemple minimal ...

# latex sample/minimalgls

La compilation échoue il manque le package xfor et etoolbox!

xfor

Installation rapide

# wget http://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/xfor/xfor.sty -O /usr/share/texmf/tex/latex/xfor/xfor.sty
# mkdir -p /usr/share/texmf/tex/latex/xfor/
# wget http://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/xfor/xfor.sty -O /usr/share/texmf/tex/latex/xfor/xfor.sty
# texhash 

etoolbox

Installation

# wget http://www.ctan.org/tex-archive/install/macros/latex/contrib/etoolbox.tds.zip
# unzip etoolbox.tds.zip -d etoolbox
# mv etoolbox/doc/* /usr/share/texmf/doc/
# mv etoolbox/tex/latex/* /usr/share/texmf/tex/latex/
# texhash 
# rm -fr etoolbox.tds.zip -d etoolbox

Dernier essai

Je teste avec l'exemple minimal ...
# cd /usr/share/texmf/doc/latex/glossaries/sample/
# latex minimalgls

ça marche! Tout content j'essaye dans mon document la compilation échoue car "AtBeginEnvironment" est déjà définie! Je souhaite en avoir le coeur net, ni une ni deux je vérifie:

# find /usr/share/texmf/tex/latex/ -type f | xargs grep AtBeginEnvironment
/usr/share/texmf/tex/latex/etoolbox/etoolbox.sty:\newrobustcmd{\AtBeginEnvironment}[1]{%
/usr/share/texmf/tex/latex/etoolbox/etoolbox.sty:     '\string\AtBeginEnvironment' will not work\@gobble}}
/usr/share/texmf/tex/latex/caption/caption3.sty:\providecommand*\AtBeginEnvironment[1]{%
/usr/share/texmf/tex/latex/caption/caption3.sty:\@onlypreamble\AtBeginEnvironment
/usr/share/texmf/tex/latex/caption/caption.sty:  \AtBeginEnvironment{#2}{\caption@letfloattype{#2}{#1}}}

Eh oui! en effet le package caption utilise également le même nom! Par conséquent on ne peut pas utiliser caption et etoolbox en même temps (donc glossaries!)

Pour finir

Je suis revenu au bon vieux package glossary. Le package glossary est livré avec TexLive donc rien à faire. Dans un fichier glossaire.tex je mets les définitions


  1. \storeglosentry{def1}{%
  2. name={def1},%
  3. description={...}%
  4. }
  5. \storeglosentry{def2}{%
  6. name={def2},%
  7. description={...}%
  8. }
  9. ...

Et mon document "mondocument.tex" ressemble à:


  1. \usepackage{glossary}
  2. \makeglossary
  3. \input{glossaire}
  4. \begin{document}
  5. \maketitle
  6. \tableofcontents
  7. \thispagestyle{empty}
  8. \newpage\pagenumbering{arabic}
  9. \thispagestyle{fancy}
  10. \addcontentsline{toc}{chapter}{Glossaire}
  11. \printglossary
  12. \input{chap/chapter2}
  13. \input{chap/chapter3}
  14. \input{chap/chapter4}
  15. \end{document}

Pour référencer une définition, il suffit d'utiliser \gls{monlabel} à chaque fois que l'on rencontre une référence dans notre texte.

La compilation seffectue de la manière suivante (la première compilation échoue c'est normal):

$ pdflatex --file-line-error-style mondocument.tex
$ makeindex mondocument.glo -s mondocument.ist -t mondocument.glg -o mondocument.gls
$ pdflatex --file-line-error-style mondocument.tex

Bref le package glossary fonctionne très bien et conviendras à la plupart des utilisateurs.

Liens externes:

Signé: bioinfornatics, Jonathan MERCIER

Latex création d'un glossaire

Jonathan Mercier

Bonjour cher lecteur,

Je suis un utilisateur courant de latex pour la création de document pdf. Récemment j'ai eu le besoin de mettre un glossaire dans mon document. Je souhaite faire part de mon expérience et des problèmes rencontrés dans l'espérance de vous faire gagner un précieux temps.

Moteur de recherche

Première chose que j'ai faite c'est de rechercher comment créer un glossaire avec latex, il existe différent package pour cela, dont :

Péripétie

La littérature du web décrit glossary comme un paquet "périmé" soit, je ne m'attarde pas dessus et je passe à makeglos. Je recherche la documentation les exemples sur le web ... frustré par le peu de documentation je me dis allons bon va pour le package glossaries.

Glossaries

je récupère via le CTAN le package, lis le fichier INSTALL et procède à l'installation.

Récupération des sources

$ su -
# wget http://mirror.ctan.org/macros/latex/contrib/glossaries.zip
# unzip glossaries.zip

Création des dossiers

 
# mkdir /usr/share/texmf/tex/latex/glossaries
# mkdir /usr/share/texmf/doc/latex/glossaries
# mkdir /usr/share/texmf/tex/latex/glossaries/base/
# mkdir /usr/share/texmf/tex/latex/glossaries/styles
# mkdir /usr/share/texmf/doc/latex/glossaries/samples

Installation des fichier *.tex

# install glossariesbegin.tex  /usr/share/texmf/tex/latex/glossaries/
# install glossaries-user.tex  /usr/share/texmf/tex/latex/glossaries/
# install glossary2glossaries.tex  /usr/share/texmf/tex/latex/glossaries/
# install mfirstuc-manual.tex /usr/share/texmf/tex/latex/glossaries/

Installation des styles de base

# install glossaries-babel.sty  /usr/share/texmf/tex/latex/glossaries/base/
# install glossaries-compatible-207.sty /usr/share/texmf/tex/latex/glossaries/base/
# install glossaries-polyglossia.sty /usr/share/texmf/tex/latex/glossaries/base/
# install glossaries.sty /usr/share/texmf/tex/latex/glossaries/base/
# install mfirstuc.sty /usr/share/texmf/tex/latex/glossaries/base/

Installation dans expl

# install glossaries-accsupp.sty /usr/share/texmf/tex/latex/glossaries/expl/

Installation des fichiers *.dict

# cp *.dict /usr/share/texmf/tex/latex/glossaries/dict/

Installation de la documentation

# cp samples/*.tex /usr/share/texmf/doc/latex/glossaries/samples

mise à jour pour la recherche de package

# texhash

Suppression du dossier téléchargé

# rm -fr glossaries glossaries.zip

Je teste avec l'exemple minimal ...

# latex sample/minimalgls

La compilation échoue il manque le package xfor et etoolbox!

xfor

Installation rapide

# wget http://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/xfor/xfor.sty -O /usr/share/texmf/tex/latex/xfor/xfor.sty
# mkdir -p /usr/share/texmf/tex/latex/xfor/
# wget http://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/xfor/xfor.sty -O /usr/share/texmf/tex/latex/xfor/xfor.sty
# texhash 

etoolbox

Installation

# wget http://www.ctan.org/tex-archive/install/macros/latex/contrib/etoolbox.tds.zip
# unzip etoolbox.tds.zip -d etoolbox
# mv etoolbox/doc/* /usr/share/texmf/doc/
# mv etoolbox/tex/latex/* /usr/share/texmf/tex/latex/
# texhash 
# rm -fr etoolbox.tds.zip -d etoolbox

Dernier essai

Je teste avec l'exemple minimal ...
# cd /usr/share/texmf/doc/latex/glossaries/sample/
# latex minimalgls

ça marche! Tout content j'essaye dans mon document la compilation échoue car "AtBeginEnvironment" est déjà définie! Je souhaite en avoir le coeur net, ni une ni deux je vérifie:

# find /usr/share/texmf/tex/latex/ -type f | xargs grep AtBeginEnvironment
/usr/share/texmf/tex/latex/etoolbox/etoolbox.sty:\newrobustcmd{\AtBeginEnvironment}[1]{%
/usr/share/texmf/tex/latex/etoolbox/etoolbox.sty:     '\string\AtBeginEnvironment' will not work\@gobble}}
/usr/share/texmf/tex/latex/caption/caption3.sty:\providecommand*\AtBeginEnvironment[1]{%
/usr/share/texmf/tex/latex/caption/caption3.sty:\@onlypreamble\AtBeginEnvironment
/usr/share/texmf/tex/latex/caption/caption.sty:  \AtBeginEnvironment{#2}{\caption@letfloattype{#2}{#1}}}

Eh oui! en effet le package caption utilise également le même nom! Par conséquent on ne peut pas utiliser caption et etoolbox en même temps (donc glossaries!)

Pour finir

Je suis revenu au bon vieux package glossary. Le package glossary est livré avec TexLive donc rien à faire. Dans un fichier glossaire.tex je mets les définitions


  1. \storeglosentry{def1}{%
  2. name={def1},%
  3. description={...}%
  4. }
  5. \storeglosentry{def2}{%
  6. name={def2},%
  7. description={...}%
  8. }
  9. ...

Et mon document "mondocument.tex" ressemble à:


  1. \usepackage{glossary}
  2. \makeglossary
  3. \input{glossaire}
  4. \begin{document}
  5. \maketitle
  6. \tableofcontents
  7. \thispagestyle{empty}
  8. \newpage\pagenumbering{arabic}
  9. \thispagestyle{fancy}
  10. \addcontentsline{toc}{chapter}{Glossaire}
  11. \printglossary
  12. \input{chap/chapter2}
  13. \input{chap/chapter3}
  14. \input{chap/chapter4}
  15. \end{document}

Pour référencer une définition, il suffit d'utiliser \gls{monlabel} à chaque fois que l'on rencontre une référence dans notre texte.

La compilation seffectue de la manière suivante (la première compilation échoue c'est normal):

$ pdflatex --file-line-error-style mondocument.tex
$ makeindex mondocument.glo -s mondocument.ist -t mondocument.glg -o mondocument.gls
$ pdflatex --file-line-error-style mondocument.tex

Bref le package glossary fonctionne très bien et conviendra à la plupart des utilisateurs.

Liens externes:

Signé: bioinfornatics, Jonathan MERCIER

Quelques règles de programmation

Jonathan Mercier

Bonjour cher lecteur,

Savoir programmé est une chose aisé au prix de quelques jour de travail, en revanche savoir bien programmé c'est autres choses! Il m'arrive régulièrement de trouvé du code ne respectant pas certaines règles primaire de programmation. Le constat est simple ça fonctionne, certes! Mais quand on ouvre le capot pour réparer la plomberies, il est nécessaire de s'armer de patience! Le programmeur à écrit du code "quick and dirty" pour des raisons de rapidité ou de méconnaissance des règles primaires. Écrire du code "quick and dirty" est valable seulement pour du code "jetable" (peu de réutilisation), dans tous les autres cas le programmeur doit prendre ce temps nécessaire afin d'organiser son code est ceci c'est primordiale!

Quelques règles:

  1. Tu n'utiliseras pas les variables globales
  2. Tu n'écris pas une classe sans attributs
  3. Tu n'utilisera pas l'héritage multiple
  4. * Pas d'héritage en diamant ( le pire! )
  5. Tout ne dois pas être objet
  6. Les classes doivent avoir une cohésion fortes et un couplage faible

Dans le cas de python précisément:

  1. Tu utiliseras pas les variables préfixé et suffixé de __ , à l'exception exclusive de:
  2. # construction et initialisation : new init
  3. # les surcharges d' opérateurs qui sont les signes comme : + - = * / .... mais aussi

Par exemple tu n'utilisera pas enter et exit mais plutôt les context manager

La liste risque d'évoluer au fur et mesure du code que je rencontre :-)" class="smiley

Quelques règles de programmation

Jonathan Mercier

Bonjour cher lecteur,

Savoir programmer est une chose aisée au prix de quelques jours de travail, en revanche savoir bien programmer c'est autre chose! Il m'arrive régulièrement de trouver du code ne respectant pas certaines règles primaires de programmation. Le constat est simple ça fonctionne, certes! Mais quand on ouvre le capot pour réparer la plomberie, il est nécessaire de s'armer de patience! Le programmeur a écrit du code "quick and dirty" pour des raisons de rapidité ou de méconnaissance des règles primaires. Écrire du code "quick and dirty" est valable seulement pour du code "jetable" (peu de réutilisation), dans tous les autres cas le programmeur doit prendre ce temps nécessaire afin d'organiser son code et ceci c'est primordial!

Quelques règles

  1. Tu n'utiliseras pas les variables globales
  2. Tu n'écris pas une classe sans attributs
  3. Tu n'utiliseras pas l'héritage multiple [1]
    • Pas d'héritage en diamant ( le pire! ) [2]
  4. Tout ne dois pas être objet
  5. Les classes doivent avoir une cohésion forte et un couplage faible[3] [4]

Dans le cas de python précisément

  1. Tu n'utiliseras pas les variables préfixées et suffixées de __ , à l'exception exclusive de:
    1. construction et initialisation : __new__ __init__
    2. les surcharges d' opérateurs qui sont les signes comme : + - = * / .... mais aussi [ ]

Par exemple tu n'utiliseras pas __enter__ et __exit__ mais plutôt les context manager

Pour finir, simplifier au maximum un problème afin de proposer un code simple et clair. Au fur et à mesure les briques s'empileront ;-)" class="smiley . Ne faites pas dans lexcentricité!

La liste risque d'évoluer au fur et à mesure du code que je rencontre :-)" class="smiley

A bientôt

Remerciement à tom pour la relecture.

Signé: bioinfornatics, Jonathan MERCIER

Un petit script d'installation/mise à jour pour flashplayer

Mehdi Bahri

Je l'avoue, j'utilise Adobe flashplayer. Oui je sais j'ai honte, je devrais utiliser swfdec ou gnash mais depuis que la version alpha du plugin 64bits fonctionne plutôt bien, j'ai succombé à la tentation de profiter des sites avec du contenu flash 10 :)" class="smiley

Comme tout geek qui se respecte, j'ai mon côté fainéant qui me pousse à par exemple, faire confiance à un gestionnaire de paquets pour la mise à jour des logiciels installés sur mon ordinateur, sauf que cette version alpha n'est pas empaquetée :(" class="smiley Alors plutôt que de passer voir régulièrement sur le site d'Adobe pour voir si une nouvelle version est sortie, la télécharger, installer manuellement le tout après avoir supprimé l'ancien plugin j'ai ouvert mon terminal, lancé Vim et Firefox pointé sur la doc officielle Python et codé un petit programme qui s'occupe des taches suivantes :

  • Vérifie si le plugin est déjà installé et le supprime (ou vous demande de supprimer le rpm)
  • Détermine automatiquement depuis la page d'Adobe le lien de téléchargement de la dernière version du plugin
  • Télécharge l'archive
  • L'extrait
  • Installe le nouveau plugin pour Mozilla Firefox

Par contre il n'est pas capable de vous dire si vous avez déjà la dernière version, le but étant juste de le lancer une fois tous les deux mois pour mettre à jour le truc :D

Par ailleurs : pensez à désinstaller le plugin swfdec ou gnash avant de tester Flashplayer 64bits ils risqueraient d'entrer en conflit.

Télécharger le script

Dépendances : Rien qui ne soit pas dans la lib standart de Python ou sur un système Fedora normal.

Un petit script d'installation/mise à jour pour flashplayer

Mehdi Bahri

Je l'avoue, j'utilise Adobe flashplayer. Oui je sais j'ai honte, je devrais utiliser swfdec ou gnash mais depuis que la version alpha du plugin 64bits fonctionne plutôt bien, j'ai succombé à la tentation de profiter des sites avec du contenu flash 10 :)" class="smiley

Comme tout geek qui se respecte, j'ai mon côté fainéant qui me pousse à par exemple, faire confiance à un gestionnaire de paquets pour la mise à jour des logiciels installés sur mon ordinateur, sauf que cette version alpha n'est pas empaquetée :(" class="smiley Alors plutôt que de passer voir régulièrement sur le site d'Adobe pour voir si une nouvelle version est sortie, la télécharger, installer manuellement le tout après avoir supprimé l'ancien plugin j'ai ouvert mon terminal, lancé Vim et Firefox pointé sur la doc officielle Python et codé un petit programme qui s'occupe des taches suivantes :

  • Vérifie si le plugin est déjà installé et le supprime (ou vous demande de supprimer le rpm)
  • Détermine automatiquement depuis la page d'Adobe le lien de téléchargement de la dernière version du plugin
  • Télécharge l'archive
  • L'extrait
  • Installe le nouveau plugin pour Mozilla Firefox

Par contre il n'est pas capable de vous dire si vous avez déjà la dernière version, le but étant juste de le lancer une fois tous les deux mois pour mettre à jour le truc :D

Par ailleurs : pensez à désinstaller le plugin swfdec ou gnash avant de tester Flashplayer 64bits ils risqueraient d'entrer en conflit.

Télécharger le script

Dépendances : Rien qui ne soit pas dans la lib standart de Python ou sur un système Fedora normal.

MacSwitcher Bash Script

Sébastien Natroll fr J'ai écris un petit script bash inutile que j'ai nommé MacSwitcher. Il permet de changer l'adresse MAC d'une interface réseau. (eth0, wlan0, etc.) Je sais que pour faire ce travail, il y a MacChanger, qui est même plus efficace, mais j'ai écrit ça juste pour le plaisir. :)" class="smiley
Ci-dessous le script. (à lancer en root)

en I've written a tiny useless bash script that I names MacSwitcher. It permits to change the MAC address of a network interface. I know that to do this job, there is MacChanger, more efficient, but I've written it just for pleasure. Below, the script. (to execute with root)
#!/bin/bash
# Script écrit par Sébastien R.
# Toute modification autorisée.

# MacSwitcher Script Bash for GNU/Linux.


#-------------- Fonction change_mac ------------------
function change_mac()
{
ifconfig $address down
ifconfig $address hw ether $mac
ret=$?
ifconfig $address up
}
#-----------------------------------------


echo """_____________________________

MacSwitcher Script Bash
_____________________________

"""

echo -n "Entrez l'adresse MAC : "
read mac

echo -n "Entrez l'interface : "
read address

# Execution de la fonction
change_mac

#Condition : si le retour de commande est de 1...

if [[ "$ret" == 1 ]]
then
echo "Erreur ! Reportez-vous au retour de commande"
else
echo "OK ! L'adresse Mac de l'interface réseau $address a été changée."
fi

MacSwitcher Bash Script

Sébastien Natroll fr J'ai écris un petit script bash inutile que j'ai nommé MacSwitcher. Il permet de changer l'adresse MAC d'une interface réseau. (eth0, wlan0, etc.) Je sais que pour faire ce travail, il y a MacChanger, qui est même plus efficace, mais j'ai écrit ça juste pour le plaisir. :)" class="smiley
Ci-dessous le script. (à lancer en root)

en I've written a tiny useless bash script that I names MacSwitcher. It permits to change the MAC address of a network interface. I know that to do this job, there is MacChanger, more efficient, but I've written it just for pleasure. Below, the script. (to execute with root)
#!/bin/bash
# Script écrit par Sébastien R.
# Toute modification autorisée.

# MacSwitcher Script Bash for GNU/Linux.


#-------------- Fonction change_mac ------------------
function change_mac()
{
ifconfig $address down
ifconfig $address hw ether $mac
ret=$?
ifconfig $address up
}
#-----------------------------------------


echo """_____________________________

MacSwitcher Script Bash
_____________________________

"""

echo -n "Entrez l'adresse MAC : "
read mac

echo -n "Entrez l'interface : "
read address

# Execution de la fonction
change_mac

#Condition : si le retour de commande est de 1...

if [[ "$ret" == 1 ]]
then
echo "Erreur ! Reportez-vous au retour de commande"
else
echo "OK ! L'adresse Mac de l'interface réseau $address a été changée."
fi

Semaines A/B v0.2 PHP/Bash

Sébastien Natroll

fr Voici la version que j'ai nommée v0.2 de mes scripts Semaines A/B. Il propose maintenant l'affichage de la semaine du lendemain (pratique pour la fin de la semaine ^^" class="smiley ).


Le script en Bash, pour systèmes Unix-like.

#!/bin/bash
# Semaines A/B v0.2.
# Script écrit par Sebastien R.
# Toute modification est autorisée.

x=$(date +%d) # Rentre dans "x" la date au format jour+mois.
xi=$(date +%b) # Pareil avec "xi".
y=$(cat ~/semainea | grep $x$xi) # Rentre dans "y" le grep de la commande.

if [[ "$y" == "$x$xi" ]] # Si "y" est identique à "x"...

then
echo Aujourd\'hui nous sommes en semaine A
else
echo Aujourd\'hui nous sommes en semaine B
fi

x=$(expr $x + 1) # On incrémente la variable "x" de 1.
yi=$(cat ~/semainea | grep $x$xi) # On "re-grep" de nouveau.

if [[ "$yi" == "$x$xi" || "$yi" == 0* ]] # Condition : Si "$yi" est égal à "$x$xi" ou si "$yi" commence par 0.

then
echo Demain nous serons en semaine A
else
echo Demain nous serons en semaine B
fi

Script en PHP
<?php
# Semaines A/B v0.2
# Script écrit par Sebastien R.
# Toute modification est autorisée.

$jour = date("d"); // On rentre la fonction date("d") dans la variable "$jour"
$mois = date("m"); // Idem pour le mois

$semainea = array ("26/01", "27/01", "28/01", "29/01", "30/01", "23/02", "24/01", "23/02", "24/02", "25/02", "26/02", "27/02", "09/03", "9/03", "10/03", "11/03", "12/03", "13/03", "23/03", "24/03", "25/03", "26/03", "27/03", "20/04", "21/04", "22/04", "23/04", "24/04", "4/05", "04/05", "5/05", "05/05", "6/05", "06/05", "7/05", "07/05", "18/05", "19/05", "20/05", "21/05", "22/05", "2/06", "02/06", "3/06", "03/06", "4/06", "04/06", "5/06", "05/06", "15/06","16/06", "17/06", "18/06", "29/06", "30/06", "1/07", "01/07", "2/07", "02/07"); // Tableau des journées de Semaine A.

if (in_array("$jour/$mois", $semainea)) // Si la date du jour est présente dans le tableau...

{
echo "Aujourd'hui nous sommes le $jour/$mois<br />";
echo "Semaine A<br /><br />";
}

else // Sinon...

{
echo "Aujourd'hui nous sommes le $jour/$mois<br />";
echo "Semaine B"<br /><br />;
}

$jour++; // On incrémente "$jour" de 1.

if (in_array("$jour/$mois", $semainea)) // Nouvelle condition

{
echo "Demain nous serons le $jour/$mois<br />";
echo "Semaine A";
}

else

{
echo "Demain nous serons le $jour/$mois"<br />;
echo "Semaine B";
}
?>


en Here's the version that I named v0.2 of my scripts Weeks A/B. Now it purposes the display of tomorrow's week. (practical for week-end, when the week changes. ^^" class="smiley ).
Above : Bash script for Unix-like systems and PHP Script.

Script PHP pour Semaine A/B

Sébastien Natroll

fr Vous pouvez trouver ci-dessus un petit script PHP qui affiche les semaines A et B (pour mon lycée donc). Ce script complète donc mon script Bash pour systèmes Unix-like.

enYou can find below a tiny PHP script that displays A and B weeks (for my school). This script completes my Bash script for Unix-like systems.


# Script écrit par Sebastien R.
# Toute modification est autorisée..

$jour = date("d"); // On rentre la fonction date("d") dans la variable $jour.
$mois = date("m"); // Idem pour le mois
$semainea = array ("26/01", "27/01", "28/01", "29/01", "30/01", "23/02", "24/01", "23/02", "24/02", "25/02", "26/02", "27/02", "09/03", "10/03", "11/03", "12/03", "13/03", "23/03", "24/03", "25/03", "26/03", "27/03", "20/04", "21/04", "22/04", "23/04", "24/04", "04/05", "05/05", "06/05", "07/05", "18/05", "19/05", "20/05", "21/05", "22/05", "02/06", "03/06", "04/06", "05/06", "15/06","16/06", "17/06", "18/06", "29/06", "30/06", "01/07", "02/07"); // Tableau des journées de Semaine A.

if (in_array("$jour/$mois", $semainea)) // Si la date est présente dans le tableau...
{
echo "Aujourd'hui nous sommes le $jour/$mois
";
echo "Nous sommes en Semaine A";
}
else // Sinon...
{
echo "Aujourd'hui nous sommes le $jour/$mois";
echo "Nous sommes en Semaine B";
}
?>

Sortie de Python 2.6

Mehdi Bahri

C'est il y a trois jours jour pour jour qu'a été publiée cette nouvelle et probablement dernière version majeure de la branche 2 du langage de développement Python. Avec Python 3 (Python 3000) prévu pour dans environ 1 mois, cette nouvelle release s'inscrit dans une démarche de transition vers le nouveau langage que sera Python 3000.

Et oui, plus qu'une version 3, c'est un à nouveau Python que l'on va avoir droit, apportant son lot de nouveautés, d'améliorations, de changements, de modules et fonctions retirées etc... Alors autant se préparer dès maintenant en corrigeant les erreurs qui pourraient rendre les applications Python 2.x non fonctionnelles avec Python 3000.

La sortie de l'interprêteur CPython et de Python en version 2.6 nous permet de nous y mettre doucement, d'abord l'option -3 qui permet d'indiquer en avertissements à l'éxécution les problèmes de compatibilités (map -> functools.map par exemple) et aussi en supprimant de la bibliothèque standart des modules dépréciés avec la 2.5 et en dépréciant certains modules tels md5 et sha1 remplacés depuis un temps par la hashlib. L'utilitaire 2to3 s'ajoute pour convertir les programmes Python 2 en 3 pour peu qu'ils soient exempts d'erreurs ou de mauvaises pratiques de la part du codeur, ce qui parfois n'est pas évident.

Enfin une nouvelle instruction nommée with simplifiera l'écriture de code de gestion d'erreurs (les try except else finally) exemple la.

Pour ce qui est de la documentation, je ne vais pas m'étendre beaucoup sur le sujet, cependant il est à remarquer que cette dernière n'utilise plus LaTeX mais Sphinx comme le témoigne le pied de page de la doc :

© Copyright 1990-2008, Python Software Foundation. Last updated on Oct 04, 2008. Created using Sphinx 0.5.

Pour ce qui est de l'intégration de cette version dans la Fedora 9 ou 10 je n'ai pour l'instant aucune information dessus mais j'écrirai un billet lorsque j'en aurai (ou pas).

Bon Pythonnage !