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.

Dotclear 2.5

Remi Collet

Ça y est ! La dernière version de Dotclear est installée.

Migration en douceur, aucun problème. Comme d'habitude, j'ai simplement appliqué le patch. Non, je n'utilise pas la fonction intégrée de MAJ qui nécessite des réglages à l'encontre des règles de sécurité. . Mon thème fonctionne parfaitement.... Lire Dotclear 2.5

php-5.4.13

Remi Collet

Les RPM de PHP 5.4.13 sont disponibles pour Fedora et pour Enterprise Linux dans le dépôt remi. Cette version corrige 2 failles de sécurité.

Utilisez YUM pour les installer : yum --enablerepo=remi update php-\* Ces versions seront aussi prochainement des mises à jour officielles pour : Fedora 18 Fedora 17 Pour toute question ou demande d'aide, merci d'utiliser les Forums.... Lire php-5.4.13

Avril 2013

Premier Samedi Date : samedi 6 avril 2013 Horaires : de 14h00 à 18h00 Lieu : Carrefour Numérique, Cité des Sciences et de lIndustrie, Paris Pour une nouvelle installation ou pour des ajustements de votre distribution GNU/Linux Fedora, Mageia ou Ubuntu, venez nous retrouver le samedi 6 avril 2013 au Carrefour Numérique de la Cité des Sciences [...]

Pool de thread avec limite de parallélisation

Patrice Ferlet

Je travaillais cette semaine sur un script python qui récupérait des centaines de milliers de données depuis un serveur. Pour gagner en temps de calcul, j'ai décidé de faire des threads. Limitant la taille de mes tâches parallèles à un nombre spécifique, le script bloquait... car j'utilisais des fonctions threadées qui lançaient récursivement d'autres threads. Sauf que la Queue que j'utilisais pour faire le pool se bloquait si trop de threads se lançaient en même temps attendant indéfiniment que quelqu'un veuille bien lire la Queue... J'ai alors trouvé ma solution, et je la partage avec vous. Je vous explique le problème, je vous montre un exemple, et ensuite on voit la solution.

J'ai cherché un peu partout sur le net, et je n'ai pas trouvé de solution à mon problème. Ainsi, pour vous montrer ce qui coince, je vous ai préparé un exemple de script très simple. Le script suivant lance 5 Threads qui eux même vont en créer... Pour limiter le nombre de tâche parallèles je passe par une classe assez connue (depuis python recipes) qui utilise la classe Queue avec une limite de taille.

Chaque fois qu'on ajoute une tâche dans la classe, la Queue est remplie... les workers vont alors lire en boucle dans cette dernière pour lancer la tâche et les arguments stoqués. Tant que la Queue est remplie, il faut attendre que quelqu'un la lise... sinon l'appel à "put" reste bloqué.

Voici la classe de base que j'ai utilisée (et modifié):

# -*- encoding: utf-8 -*-
# file threadingpoolbad.py
 
import logging
from threading import Thread
from Queue import Queue
 
class ThreadPool:
 
    class _ThreadQueue(Thread):
 
        def __init__(self, pool, *args, **kwargs):
            """ Get tasks queue then launch thread """
            super(ThreadPool._ThreadQueue, self).__init__(*args, **kwargs)
            self.tasks = pool.tasks
            self.daemon = True
            self.start()
 
        def run(self):
            """ Read tasks from limited size queue, then launch task """
            while True:
                # read bloking Queue ..
                task,args = self.tasks.get(True)
                try:
                    task(*args)
                except Exception, e:
                    logging.exception(e)
                    print "Error"
                finally:
                    self.tasks.task_done()
 
    def __init__(self, num=10):
        """ Create a limited pool with "num" threads """
        self.tasks = Queue(num)
 
        for _ in range(num):
            self._ThreadQueue(self)
 
    def add_task(self, target, args):
        """ Write in unlimited size queue which will be
        read in "run" method of a thread
        Block if tasks Queue is full !
        """
        self.tasks.put((target, args))
 
    def wait_completion(self):
        """ Wait for tasks to be completed """
        self.tasks.join()

Voilà comment utiliser cette classe:

import time
from threadingpoolbad import ThreadPool
 
def test(pool, num=0):
    num += 1
    print "num is %d" % num
    if num < 5:
        pool.add_task(target=test, args=(q, num))
        time.sleep(0.5)
 
#create a pool of 2 threads, launch test function
pool = ThreadPool(2)
pool.add_task(target=test, args=(pool,))

Jusqu'ici tout va bien... mais admettons que j'ajoute 5 ou 6 appels à add_task:

# ...
#create a pool of 2 threads, launch test function
pool = ThreadPool(2)
pool.add_task(target=test, args=(pool,))
pool.add_task(target=test, args=(pool,))
pool.add_task(target=test, args=(pool,))
pool.add_task(target=test, args=(pool,))
pool.add_task(target=test, args=(pool,))

Si vous lancez le test... ça coince. Pour arrêter le script faites CTRL+Z puis "kill %%".

Tout le souci se trouve entre deux méthodes:

  • add_tasks qui tente d'écrire dans une queue, l'appel à "put" bloque si la Queue "tasks" est pleine
  • dans "run" on libère un espace au moment où la fonction "task" est terminée

Or, dans notre exemple, la fonction "test" ne libère pas la queue de suite, car elle écrit dans la Queue via add_task... mais comme d'autres threads sont aussi en cours, la Queue est pleine et aucun espace n'est libre. On se retrouve en attente indéfinie...

Pour la plupart des scripts, vous n'allez pas vous retrouver dans cette situation, mais voilà... pour moi c'est arrivé.

Comment corriger le souci ? revoir l'algo ? c'est dommage... tout ce qui nous manque c'est de pouvoir écire dans la Queue sans limite, mais limiter quand même le nombre de threads.

La classe Queue peut tout à fait ne pas bloquer, et avoir une taille indéfinie. Si on lui passe un entier en argument de constructeur elle se limite à bloquer sa taille max à ce nombre. Mais si on ne lui donne pas de paramètres, ou "0" ou un nombre négatif, alors sa taille est illimitée.

Or, je veux tout de même limiter le nombre de process simultanés. Tout ce dont j'ai besoin c'est de ne pas bloquer l'insert de tâches... vous me suivez ?

C'est alors très simple ! il suffit de gérer tout ça avec 2 Queue:

  • une qui n'est pas limitée, elle gardera toutes les taches à lancer, quelque soit le nombre
  • une qui va limiter le nombre de thread, celle-ci sera limité à nombre qui correspond au nombre de threads. C'est quasiement le même fonctionnement que la classe de threadingpoolbad.py

On y va:

# -*- encoding: utf-8 -*-
#file threadingpool.py
import logging
from threading import Thread
from Queue import Queue
 
 
class ThreadPool:
 
    class _ThreadQueue(Thread):
 
        def __init__(self, pool, *args, **kwargs):
            """ Get task and pool Queue. Then launch thread.
            """
            super(ThreadPool._ThreadQueue, self).__init__(*args, **kwargs)
            self.pool = pool.pool
            self.tasks = pool.tasks
            self.daemon = True
            self.start()
 
        def run(self):
            """ Run unlimited while Queues are not joined """
            while True:
                # reinsert the nonblocking queue 
                # in blocking queue, that should block
                # if "tasks" queue is full
                self.tasks.put(self.pool.get(True))
 
                #and read this queue...
                task,args = self.tasks.get(True)
                try:
                    task(*args)
                except Exception, e:
                    logging.exception(e)
                finally:
                    self.tasks.task_done()
                    self.pool.task_done()
 
 
    def __init__(self, num=10):
        """ Create the thread queue with "num" thread in parallel"""
        self.tasks = Queue(num)
        self.pool = Queue()
 
        for _ in range(num):
            self._ThreadQueue(self)
 
    def add_task(self, target, args):
        """ Write in unlimited size queue which will be
        read in "run" method of a thread
        That should not block !
        """
        self.pool.put((target, args))
 
 
    def wait_completion(self):
        """ Wait for the all threads to be completed """
        self.pool.join()
        self.tasks.join()

Vous voyez ici les deux queues, "tasks" et "pool". La première est limitée, l'autre non.

Et cette fois ci, ça marche: j'ai bien deux threads qui tournent mais je ne bloque plus lors de l'appel à "add_task":

import time
from threadingpool import ThreadPool
 
def test(pool, num=0):
    num += 1
    print "num is %d" % num
    if num < 5:
        pool.add_task(target=test, args=(q, num))
        time.sleep(0.5)
 
#create a pool of 2 threads, launch test function
pool = ThreadPool(2)
pool.add_task(target=test, args=(pool,))
pool.add_task(target=test, args=(pool,))
pool.add_task(target=test, args=(pool,))
pool.add_task(target=test, args=(pool,))
pool.add_task(target=test, args=(pool,))
pool.add_task(target=test, args=(pool,))
#...

Et voilà ! Désormais, mes 120 000 tâches que j'ai à lancer ne se bloquent plus, elles se placent en file l'attente et j'ai bien un nombre limité de tâches en parallèle.

Je ne vous montre pas mon script d'import, mais croyez moi, la récursion (bien contrôlée) est énorme, et avoir résolut mon problème a été un soulagement énorme.

Mars 2013

Premier Samedi Date : samedi 2 mars 2013 Horaires : de 14h00 à 18h00 Lieu : Carrefour Numérique, Cité des Sciences et de lIndustrie, Paris Pour une nouvelle installation ou pour des ajustements de votre distribution GNU/Linux Fedora, Mageia ou Ubuntu, venez nous retrouver le samedi 2 mars 2013 au Carrefour Numérique de la Cité des Sciences [...]

Compte rendu de l'Assemblée Générale de Borsalinux-fr du 16 février

Association Borsalinux-Fr

Le samedi 18 février 2013 a eu lieu l'Assemblée Générale de l'association Borsalinux-fr au café des 3 arts à Paris.

Les 11 membres présents ont approuvé le bilan moral et financier de l'année 2012.

Par la suite, un 4e Conseil d'administration a été voté et est composé de :

-Emmanuel Seyman (eseyman) - Président

-Pierre-Yves Chibon (pingou) - Vice-président

-Nicolas Chauvet (kwizart) - Trésorier

-Pablo Martin-Gomez (bouska) - Trésorier-adjoint

-Charles-Antoine Couret (Renault) - Secrétaire

-Kévin Raymond (shaiton) - Secrétaire-adjoint

-Guillaume Kulakowski (llaumgui)

Ce conseil a un mandat de 2 ans.

Nous tenons à souligner l'extrême longévité de llaugmi au sein de l'association, étant le seul membre fondateur restant et qui est bien entendu un des piliers de l'association et des contributeurs francophones à Fedora via le maintient du site fedora-fr.org à jour.

Cet assemblée a également été l'occasion de discuter sur les moyens pour obtenir de nouveaux adhérents à l'association mais également pour avoir plus de contributeurs au projet Fedora en lui même. Si vous souhaitez soutenir le projet Fedora et Borsalinux-fr, nous vous rappelons que vous pouvez librement contribuer au projet et adhérer à l'association. À d'autres occasions durant les deux années à venir la communication sera tournée en ce sens pour susciter des vocations, les contributions étant avant tout l'œuvre de personnes passionnées et bénévoles.

Nous en avons profité aussi pour revenir sur la réussite du FUDCon EMEA dernier à Paris et sur l'année à venir notamment sur les financements de l'association qui sont stables. Le FUDCon a été l'occasion d'obtenir du matériel supplémentaire pour les évènements où Borsaliux-fr sera présent comme un kakemono et une nappe.

Et l'association poursuivra toujours son but de soutenir l'action des ambassadeurs francophones de Fedora lors d'évènements en lien avec le projet ou le Logiciel Libre en général.

Firefox 19

Remi Collet

Les RPM de la nouvelle version du navigateur de la Mozilla Foundation sont disponibles dans le dépôt remi pour Fedora 15, 16 et Enterprise Linux 6 (RHEL, CentOS, ...).

A lire : Mozilla Firefox Release Notes (notes de version, en anglais) Installation : yum --enablerepo=remi update firefoxCe paquet utilise désormais xulrunner-last, qui s'installe à côté de celui par défaut. Remarque : ce RPM est très proche de celui de firefox 19 présent dans fedora 17/18. Les RPM sont disponibles pour Fedora 14 (x86_64), 15... Lire Firefox 19

php-5.4.12

Remi Collet

Les RPM de PHP 5.4.12 sont disponibles pour Fedora et pour Enterprise Linux dans le dépôt remi.

Lire l'annonce de version : PHP 5.4.12 and PHP 5.3.22 released! Utilisez YUM pour les installer : yum --enablerepo=remi update php-\* Ces versions seront aussi prochainement des mises à jour officielles pour : Fedora 18 Fedora 17 Pour toute question ou demande d'aide, merci d'utiliser les Forums. Comme annoncé, plus de PHP 5.3... Lire php-5.4.12

Venez à la Journée de l'Informatique Libre ce samedi 23 mars à Toulon !

Charles-Antoine Couret

Ce samedi 23 mars 2013, se tiendra la Journée de l'Informatique Libre pour sa troisième édition. Cette fois encore, elle sera à la Maison des Technologies à Toulon, dans le bâtiment de l'école d'ingénieurs ISEN Toulon et de La Cantine de Toulon qui nous prêteront les locaux. Cet évènement est planifié de 9h à 17h.

Programme

La journée sera l'occasion pour la communauté locale de tenir des conférences sur les sujets de l'informatique libre. Pour cela les thèmes principaux sont : la culture libre, l'OpenData, les Logiciels Libres et tous les mouvements associés. Des ateliers sont proposés à côté ; cela donnera un côté plus pratique à la libéralisation de l'informatique pour l'utilisateur, avec l'apprentissage du maniement d'un logiciel libre par exemple.

Plus précisément, le programme abordera les points suivants :

  • Introduction aux Logiciels Libres de Véronique Fritière
  • Les formats ouverts de Thierry Stoer
  • Les licences libres comme un acte de résistance de Laurent Paoletti
  • Comment devenir éditeur de logiciel libre quand on est une entreprise ? de Hybird
  • Creative Commons de Guillaume Perocheau
  • LaTeX de Thierry Stoer
  • OpenERP de Jean-Marc Le Goff
  • OpenPGP de Jean-Jacques Brucker
  • CaspWiki de Guy Lebègue
  • Inkscape de Véronique Fritière

Durant la journée, il y aura une install-party. Elle est destinée à apprendre aux visiteurs à installer des logiciels libres sur les ordinateurs qu'ils apportent ou de les dépanner sur des problèmes du quotidien par rapport à leurs utilisations. L'objectif est de favoriser l'adoption des logiciels libres avec l'aide de la communauté toulonnaise et de son expérience.

À côté de cela, il y aura la possibilité de réaliser des ateliers et mesures pour OpenStreetMap pour apprendre à contribuer à ce projet de cartographie. Il y a également la possibilité de venir pour signer vos clés numériques PGP !

Informations complémentaires

Si vous souhaitez obtenir plus d'information sur cette journée, son déroulement ou le plan d'accès, merci de visiter le site officiel de la JIL 2013.

Cette journée est organisée par les associations le Club de l'ISEN sur les Logiciels Libres avec la participation notable de Linux-Azur, ToulonuX et Gullivar. Cet évènement est parmi les plus importants de la région sur ces thèmes et reste l'occasion de resserrer les liens de la communauté régionale.

Nous remercions également le soutien financiers ou logistiques des entreprises suivantes : TVT, Hybird, Editions Diamons et Eyrolles.

Nouveau Conseil d'Administration pour Borsalinux-Fr

Guillaume Kulakowski

Je viens de rempiler pour un 4ème mandat (consécutif) au sein du conseil d'administration de l'association Borsalinux-Fr : l'association française de loi 1901 constituée de bénévoles et dédiée à la promotion de la distribution Fedora et des logiciels libres dans tous les pays francophones.

Lassemblée générale qui a eu lieu Samedi dernier a permis d'élire un nouveau CA ainsi qu'un nouveau bureau :

  • Emmanuel Seyman (eseyman) - Président
  • Pierre-Yves Chibon (pingou) - Vice-Président
  • Nicolas Chauvet (kwizart) - Trésorier
  • Pablo Martin-Gomez (bouska) - Trésorier adjoint
  • Charles-Antoine Couret (renault) - Secrétaire
  • Kévin Raymond (shaiton) - Secrétaire adjoint
  • Guillaume Kulakowski (llaumgui)

Il est cependant a déplorer que le nombre dadhérents baisse et que je suis l'un des 2 derniers membres fondateurs... Alors il n'est pas trop tard pour adhérer :

Adhérer à Borsalinux-Fr

Coloriser la sortie d'un programme

Patrice Ferlet

Développant sur Google Appengine en ce moment, en python, j'utilise les logs à foison. Ces logs sont pratique et ont un niveau d'information (WARNING, INFO, ERROR...). Mais la lisibilité n'est pas forcément adaptée, car en effet les logs sont simplement des lignes de texte. C'est alors qu'une idée m'a frappée (sans gravité, j'ai pas eut mal): et si je colorisai la sortie. Ma méthode fonctionne pour à peu près tous les programmes que vous utilisez dans un terminal, et peut être adaptée à pas mal de situations

L'idée est simple, il suffit de rediriger les sorties du programme dans un descripteur qui va modifier la sortie. Avant tout, laissez moi vous expliquer comment coloriser du texte dans un terminal (si vous ne savez pas comment), puis comment utiliser `sed` avec la subtilité. Enfin, on va passer par une commande `exec` qui va opérer notre transformation.

Premier point, les couleurs dans un terminal.

Bash (ou d'autres shell) permet de coloriser une chaine de caractères. Le principe étant de donner un caractère spécial, puis un code couleur, puis la chaine.

Ainsi, pour coloriser en rouge, en entre la séquence "\033[31m" puis la chaine. Il faut juste comprendre cela:

  • \033 => caractère qui prévient qu'on va changer de couleur, de poids de fonte...
  • [ => on va donner une couleur
  • 33 => code couleur du rouge
  • m => terminé

Cette séquence retourne un caractère spécial c'est important de bien le comprendre, car en réalité toute la subtilité de ce que nous allons faire repose sur ce principe. Ce caractère est invisible, il est interprété par le terminal pour changer la couleur.

Cela ne suffit pas, il faudra que le terminal sache gérer les caractères échapés, je parle du "\033". La commande "echo" sait bien le faire:

echo -e "\033[31mEt hop une couleur"

Le souci, c'est que là votre console passe en rouge... et ne revient pas au mode "normal". Pour cela, on utilise la couleur "0"

echo -e "\033[0mOn revient à la normale"

Pour faire plus simple, on peut directement activer la couleur, entrer la chaine, puis revenir à la normale:

echo -e "\033[31mHoulla une erreur en rouge\033[0m"

Les couleurs qu'on va utiliser:

  • 31 rouge => pour les erreurs
  • 33 orange => pour les warnings
  • 34 bleu => pour les infos

Bien, passons à `sed`. Cet outil permet de faire des opération sur du texte assez facilement en utilisant une syntaxe proche du perl. Ainsi, la commande "s" de sed permet de "substituer" du texte, comprennez "le remplacer"

Dans une commande sed "s", le caractère "&" correspond à la chaine trouvée. Ainsi, pour remplacer "WARNING" en "toto-WARNING-fin" on fera:

echo "WARNING there is an error" | sed 's/WARNING/toto-&-fin/'
#affiche: toto-WARNING-fin there is an error

Bon, vous avez compris, il faut remplacer maintenant "WARNING" en "\033[33mWARNING\033[0m". Sauf que voilà, sed ne sait pas utiliser le mode "échappé". Cela n'est rien, on va récupérer le caractère que retourne "echo -e" pour le placer dans la chaine de remplacement. Voilà un exemple:

NORMAL=$(echo -e "\033[0m")
ORANGE=$(echo -e "\033[33m")

echo "WARNING there is an error" | sed "s/WARNING/$ORANGE&$NORMAL/"

Simple en fait, relisez bien vous allez comprendre.

Bien, reste à faire ça pour toutes les lignes de sortie d'un programme. Reprenons notre exemple avec GAE, j'ai des message "WARNING, INFO et ERROR".

Le souci, c'est que la sortie est "en continue", mais on va utiliser une commande qui va gérer une redirection de flux: exec

Si vous ne le savez pas, un shell utilise des descripteurs connus: 1 = sortie standard, 2 = sortie d'erreur. Si je redirige une sortie dans un de ces flux, il sera traité de différente manières.

Pour rediriger dans un flux, on utilise la séquence "N>&M" où N est le flux d'entrée, et M le flux où on redirige. Ainsi:

#on redirige la sortie normale dans le flux d'erreur
echo "pouet pouet" 1>&2 
#1 est utilisé par défaut, donc cela fait la même chose:
echo "pouet pouet" >&2 

#Par exemple
echo "pouet pouet"  2>fichier_erreur 1>fichier_normal 1>&2
#ici, le fichier_normal ne contien rien, par contre fichier_erreur 
#contient pouet pouet

OK, même si cela reste obscure pour certains, ne paniquez pas... suivez juste le reste de mon article.

"exec" peut ouvrir un descripteur, simplement en lançant "exec 3> ..." On aura alors un nouveau flux portant le numéro 3.

Donc:

exec 3>fichier
echo "pouet pouet" >&3

ici, on redirige le flux 3 dans un fichier, donc en écrivant dans le flux, on écrit dans un fichier...

Autre subtilité des shells: ">(une commande)" (surtout pas d'espace après le >) la commande entre parenthèse est considéré comme un fichier

Ainsi:

exec 3> >(sed 's/toto/pouet/g')
echo "j'ai pas toto mais j'aime truc" >&3
echo "toto toto :)" >&3

Vous comprennez ce qu'il se passe: tout ce que j'écris dans le "descripteur 3" passe dans la commande "sed..." Ha... on y arrive !

NORMAL=$(echo -e "\033[0m")
ORANGE=$(echo -e "\033[33m")
RED=$(echo -e "\033[31m")
BLUE=$(echo -e "\033[34m")

exec 3> >(sed "s/WARNING/$ORANGE&$NORMAL/g,   s/ERROR/$RED&$NORMAL/g, s/INFO/$BLUE&$NORMAL/g" )

ma_commande >&3

Et voilà ! Toute mes sorties de "ma_commande" passerons dans le flux "3" et on verra un remplacement de mot par ce même mot en couleur.

Si "ma_commande" utilise les flux de sortie d'erreur, vous pouvez carrément faire:

ma_commande 2>&1 1>&3

Alors, ici, on utilise des couleurs, mais vous pouvez utiliser cette technique pour mettre des balises XML, mettre le texte en minscule, ou rediriger dans d'autre descripteurs... en gros la méthode est ouverte à pas mal de variantes.

Voilà pour aujourd'hui !

New board for Borsalinux-fr

Pierre-Yves Chibon

Borsalinux-fr (the french NPO dedicated to promote Fedora in the french speaking countries) held its annual general assembly this afternoon.

During this assembly we reviewed the activity of the NPO last year as well as the state of its account.

All in all, 2012 was a reasonnbly good year, the usual activities were held all went fine and there was the success of the FUDCon in Paris as a highlight. From a financial point of view, things are pretty stable, the budget looses a bit a money overall in 2012 but that's due to some reimbursement that happened in 2013 (and thus out of the overview).

Finally, there was the election of the new board, elected for two years. The board for 2013, 2014 is therefore:

  • Emmanuel Seyman (eseyman) - President
  • Pierre-Yves Chibon (pingou) - Vice-Président
  • Nicolas Chauvet (kwizart) - Treasurer
  • Pablo Martin-Gomez (bouska) - Vice-treasurer
  • Charles-Antoine Couret (renault) - Secretary
  • Kévin Raymond (shaiton) - Vice-secretary
  • Guillaume Kulakowski (llaumgui)


I think this is a nice board for the coming two years and I already look forward to work with all you guys.

php-ZendOptimizerPlus-7.0.0

Remi Collet

La societe Zend (The PHP Company) vient de libérer son cache d'opcode, Zend Optimizer+ est donc dès maintenant disponible dans le dépôt remi pour Fedora et Enterprise Linux (RHEL, CentOS, ...)

On peut dire qu'il s'agit d'une excellente nouvelle. Ce cache pourrait intégrer PHP dès sa version 5.5 et remplacer APC qui serait abandonné ou maintenu uniquement pour le cache des données utilisateurs. Pour l'installer yum remove php-pecl-apc php-xcache php-eacceleratoryum --enablerepo=remi install php-ZendOptimizerPlusservice httpd restartIl... Lire php-ZendOptimizerPlus-7.0.0

Etickets4Hikashop : version 1.0.3, compatible avec Joomla 2.5 & 3.0 !

Thomas Bouffon

ETickets4Hikashop est maintenant compatible avec Joomla 2.5 et 3.0.

Vous pouvez télécharger ou installer ce plugin avec l'Url suivante : http://thomasbouffon.fr/images/data/etickets4hikashop/etickets4hikashop-1.0.3.zip (à cause de son poids, il vaut mieux installer directement depuis l'URL)

Tous les retours sont bienvenus !

Etickets4Hikashop : version 1.0.3, compatible avec Joomla 2.5 & 3.0 !

Thomas Bouffon

ETickets4Hikashop est maintenant compatible avec Joomla 2.5 et 3.0.

Vous pouvez télécharger ou installer ce plugin avec l'Url suivante : http://thomasbouffon.fr/images/data/etickets4hikashop/etickets4hikashop-1.0.3.zip (à cause de son poids, il vaut mieux installer directement depuis l'URL)

Tous les retours sont bienvenus !

Etickets4Hikashop : version 1.0.3, compatible avec Joomla 2.5 & 3.0 !

Thomas Bouffon

ETickets4Hikashop est maintenant compatible avec Joomla 2.5 et 3.0.

Vous pouvez télécharger ou installer ce plugin avec l'Url suivante : http://thomasbouffon.fr/images/data/etickets4hikashop/etickets4hikashop-1.0.3.zip (à cause de son poids, il vaut mieux installer directement depuis l'URL)

Tous les retours sont bienvenus !

mysql-5.5.30

Remi Collet

Les RPM de MySQL Community Server 5.5.30 GA sont disponibles dans le dépôt remi pour fedora et pour Enterprise Linux (RHEL, CentOS, ...).

A lire : Introduction to MySQL 5.5 Changes in MySQL 5.5.30 MySQL 5.5 Reference Manual Cette construction utilise un fichier spec proche de celui de Rawhide. ATTENTION : avant la mise à jour, une sauvegarde de vos bases de données est très vivement conseillée (un vidage avec mysqldump par exemple).    L'installation la plus simple... Lire mysql-5.5.30

Etickets4Hikashop : sortie de la version 1.0.2

Thomas Bouffon

ETickets4Hikashop, the e-ticket extension for Hikashop has been updated to V1.0.2.

It fixes a conflict with the invoice plugin for Hikashop, and adds a datepicker for the event date. The changelog is available on my gitorious repository.

To install it, copy the link http://www.thomasbouffon.fr/joomla/images/data/etickets4hikashop/etickets4hikashop-1.0.2.zip ito the "install from URL" box in the extensions management page.

Etickets4Hikashop : sortie de la version 1.0.2

Thomas Bouffon

La version 1.0.2 de ETickets4Hikashop, l'extension de billeterie electronique pour Hikashop est sortie.

Elle corrige un conflit avec le plugin de factures pdf, et ajoute un sélecteur de dates pour la date de l'évenement. Le changelog est disponible sur mon dépot gitorious.

Pour l'installer, copiez le lien  http://www.thomasbouffon.fr/joomla/images/data/etickets4hikashop/etickets4hikashop-1.0.2.zip dans le champ "installer depuis une URL" dans la page de gestion des extensions de Joomla.

Etickets4Hikashop : sortie de la version 1.0.2

Thomas Bouffon

La version 1.0.2 de ETickets4Hikashop, l'extension de billeterie electronique pour Hikashop est sortie.

Elle corrige un conflit avec le plugin de factures pdf, et ajoute un sélecteur de dates pour la date de l'évenement. Le changelog est disponible sur mon dépot gitorious.

Pour l'installer, copiez le lien  http://www.thomasbouffon.fr/joomla/images/data/etickets4hikashop/etickets4hikashop-1.0.2.zip dans le champ "installer depuis une URL" dans la page de gestion des extensions de Joomla.

Page générée le 20 mai 2013 à 03:09