Tuesday, October 21 2008
By Guillaume Donars on Tuesday, October 21 2008, 20:43 - General
Le blog is back, j'ai profité de la fin de mon hébergement gratuit pour le déplacer et de lui redonner un chtite jeunesse en migrant sous Dotclear 2. Reste les url des images à réparer ainsi qu'un relookage perso de la tapisserie.
De nombreux billets en perspective avec le périple qui s'annonce :)
no trackback
Wednesday, December 26 2007
By Guillaume Donars on Wednesday, December 26 2007, 22:37 - Coding
Je m'amuse depuis peu sur ma Debian Testing avec la librairie GWT, le bonheur de faire du web par le java :p
Pour lancer le debugger par le mode console avec la commande du type MyApplication-shell, j'obtenais une erreur qui m'empêchait de lancer le navigateur intégré pour tester mon appli:
** Unable to load Mozilla for hosted mode **
java.lang.UnsatisfiedLinkError: /home/xxx/mozilla-1.7.12/libxpcom.so: Can't load IA 32-bit .so on a IA 32-bit platform
On peut résoudre ce désagrément en réinstallant la lib stdc++ en version 5:
apt-get install libstdc++5
Tout devrait rentrer dans l'ordre :)
no trackback
Saturday, November 24 2007
By Guillaume Donars on Saturday, November 24 2007, 12:14 - Coding
Petit dépoussiérage du blog pour vous présenter un profiler, ou outil de test de performance pour des applications Java: Profiler4j.
Très simple d'installation, vous pourrez paramétrer des règles de filtrage de packages et ainsi surveiller des classes précises et leur fonctions dans votre programme.
Les graphiques générés permettent de rapidement détecter les méthodes gourmandes en temps et en mémoire. Bref que du bon !
Le site: profiler4j.sourceforge.net
no trackback
Saturday, May 26 2007
By Guillaume Donars on Saturday, May 26 2007, 14:31 - General
Je vous présente l'association humanitaire fondée par mon oncle et ma tante afin d'aider les enfants du Cambodge. La fondation leur offre des soins médicaux de première nécessité ainsi qu'une scolarité normale.
Un grand bravo à tous les acteurs de ce projet pour leur inlassable dévouement envers les plus défavorisés.
Le site Web: Fondation Good Fun pour le Cambodge.
N'hésitez-pas à les soutenir !
no trackback
Friday, April 13 2007
By Guillaume Donars on Friday, April 13 2007, 22:01 - WRT54G

Dans un de mes précédents billets, j'expliquais comment installer un client DynDns sur le routeur WRT54G ayant le firmware Openwrt WhiteRussian (cf: openWRT: Installer un client dyndns ).
J'ai changé de FAI (le câble) et me voilà avec un modem qui n'utilise plus le protocole pppoe pour la communication routeur/modem, mais fait office de serveur DHCP afin d'attribuer l'adresse Ip public à l'interface WAN du WRT54G. J'ai donc désactivé le pppoe sur le WAN pour passer en DHCP. Bilan des courses, mon routeur n'arrivait plus à communiquer avec dyndns.org suite à une option dans le fichier ip-up (les détails dans le lien vers le tuto au dessus) précisant l'interface. En DHCP ppp0 n'existe plus, il faut préciser directement l'interface du WAN, pour ma version de routeur j'ai ceci:
/usr/sbin/ez-ipupdate -S dyndns -u USER:PASSWORD -h DOMAINE.dyndns.org -i vlan1
Pour vérifier quelle est votre interface WAN, consultez le tableau sur le wiki OpenWrt: OpenWrtDocs/Configuration et adaptez votre fichier.
:)
Edit: Petit soucis pour cette astuce, le script ip-up n'est plus exécuté car on n'est plus en pppoe. Il faudrait qu'il soit lancé lors de la demande de bail pour l'ip. En attendant je lance le script toute les 12h avec cron. A suivre.
no trackback
Thursday, January 25 2007
By Guillaume Donars on Thursday, January 25 2007, 21:51 - Coding

Si vous utilisez le bouton cancel pour annuler un formulaire et que vous avez par exemple dans le fichier struts-config.xml:
<action input="/loginForm.jsp"
name="NewStrutsActionForm"
path="/login"
scope="request"
type="com.myapp.struts.NewStrutsAction">
<forward name="success" path="/loginSuccess.jsp"/>
<forward name="cancel" path="/loginCancel.jsp"/>
</action>
Vous avez peut-être obtenu en cliquant sur ce bouton une erreur:
Exception: org.apache.struts.action.InvalidCancelException
La cause est qu'à partir de la version 1.2.9 de Struts, pour des raisons de sécurité une propriété à été ajoutée: cancellable qui est à false par défaut et n'autorise donc pas l'annulation d'un formulaire.
Pour y remédier il faut donc mettre cette propriété à true comme ci-dessous:
<action input="/loginForm.jsp"
name="NewStrutsActionForm"
path="/login"
scope="request"
type="com.myapp.struts.NewStrutsAction">
<forward name="success" path="/loginSuccess.jsp"/>
<set-property property="cancellable" value="true"/>
<forward name="cancel" path="/loginCancel.jsp"/>
</action>
no trackback
Thursday, January 4 2007
By Guillaume Donars on Thursday, January 4 2007, 12:46 - linux
Pour donner le droit d'extinction ou de redémarrage de l'ordinateur à un utilisateur, la façon la plus simple (et qu'il faut donc utiliser !) est d'ajouter ce user dans le groupe shutdown.
Par exemple pour rajouter notre célèbre toto, tapez cette commande en Super utilisateur ou en Root:
adduser toto shutdown
:)
no trackback
Monday, December 25 2006
By Guillaume Donars on Monday, December 25 2006, 23:17 - linux
On voit sur beaucoup de sites que pour lancer un programme au démarrage sous Xfce, il faut ajouter un fichier script qui démarrera l'application dans le répertoire ~/.config/autostart. Néanmoins il existe un utilitaire graphique: xfce4-autostart-editor qui vous permet facilement d'ajouter une application à exécuter à l'ouverture de votre session.
Vous obtiendrez un fichier .desktop dans le répertoire ~/.config/autostart.
Si vous souhaitez que votre application démarre quelle que soit la session, copiez le fichier .desktop dans le répertoire /etc/xdg/autostart
:)
no trackback
Sunday, December 3 2006
By Guillaume Donars on Sunday, December 3 2006, 19:51 - General
Allez hop, les commentaires sont de nouveau disponibles, je vais tester un nouveau filtre de spams: spamclear.
Merci à son auteur et à Pthichat pour l'info ;)
no trackback
Thursday, November 23 2006
By Guillaume Donars on Thursday, November 23 2006, 19:50 - Coding
Petit pense bète sur ce concept très pratique, mais qui peut parfois s'oublier très facilement. Pour ceux qui ne connaissent pas, il s'agit de gérer une zone partagée entre différents processus, pour notre cas, il y en a 2, un lecteur et un rédacteur. Le mutex permet de protéger cette zone critique afin que le lecteur ne lise pas la donnée en même temps que le rédacteur y écrive une information. Nous avons également besoin de savoir quand est-ce que le rédacteur a modifié la donnée protégée, on utilise pour cela le concept du rendez-vous.
Comme convention:
- P(x) signifie que nous prenons le mutex, ici cette fonction sera bloquante (on ne progresse pas tant qu'on n'a pas reçu le mutex).
- V(x) signifie que nous relâchons le mutex.
Nous aurons besoin de 2 mutex: m1 et m2, ils sont tout les 2 initialisés à l'état "pris".
Processus 1: Le rédacteur
Ecriture dans la zone critique
V(m1)
P(m2)
V(m1)
P(m2)
Processus 2: Le lecteur
P(m1)
V(m2)
Lecture dans la zone critique
P(m1)
V(m2)
Voilà, ce n'était pas plus compliqué que ça ;)
no trackback