Le TwiBlog

The one with Twidi

Aller au contenu | Aller au menu | Aller à la recherche

mardi 3 juin 2008

Javascript et IE : création de boutons radio en javascript

Il y a deux ans et demi j'avais déjà soulevé un problème lors de la création d'éléments de formulaire en javascript sous internet explorer.

Je viens aujourd'hui d'en trouver un autre, auquel j'ai trouvé une solution, en anglais, que je précise ici (je ne précise que la solution qui marche partout)

Le problème est le suivant : quand on créé un bouton radio dans internet explorer, en javascript, via document.createElement('input')........ le bouton est bien créé mais on ne peut le cocher.

La solution, la seule, l'unique, est... de ne pas utiliser le dom pour cela, malheureusement. Il faut le créer en html :

<input type="radio" name="truc" id="bidule" value="chose" />

La solution qui semble le mieux fonctionner dans les différents navigateurs est, sans faire de test de navigateur :

elementParent.innerHTML += '<input type="radio" name="truc" id="bidule" value="chose" />'

C'est moche, mais c'est tout ce qui marche.

Autre point, il ne faut pas, pour IE, spécifier ici l'état "checked" car si un radio du même groupe (même attribut "name") est déjà coché, on se retrouvera avec deux boutons radio cochés...

Il faut, une fois nos inserts terminés, faire par exemple :

document.getElementById(input_id).checked = true

mercredi 20 février 2008

Ignorer automatiquement certaines extensions dans subversion (.pyc de python, .*.swp de vim...)

A chaque svn status il n'est pas rare de voir un certains nombres de fichiers "temporaires" qui ne nous intéressent pas, et que nous aimerions bien voir disparaître définitivement.

Alors il existe bien sur la commande svn propset svn:ignore "*.pyc" le_rep mais il faut non seulement le faire pour chaque projet, mais en plus pour chaque répertoire.

Une solution plus simple, et globale, consiste à dire à svn de toujours ignorer les fichiers qui ne nous intéressent pas, ce dans notre fichier de configuration $HOME/.subversion/config (dans la section miscellany) :

global-ignores = *.pyc .*.swp

mardi 18 décembre 2007

J'aime le PHP

Voilà pourquoi j'adore (qui a dit que j'étais ironique ?) le php.

Voici trois fonctions pour connaître l'état d'une variable :

  • is_null (bon là, ok)
  • isset (absence d'underscore)
  • empty (sur ce coup là on a même pas le is)

Sans cohérence. Euh je voulais dire : Sans commentaire.

lundi 26 novembre 2007

sys_alive 1.5.2 : correction d'un bug bloquant

Dans la version précédente de sys_alive, avec le système forçant de manière brutale la fin d'un démon qui ne voulait pas s'arrêter, j'ai rendu l'arrêt de mysql terriblement mauvais pour lui-même.

En effet il lui fallait alors un bon paquet de minutes avant de redémarrer, devant reconstruire je ne sais plus quel fichier dont il avait besoin.

J'ai donc rajouté un bloc dans la configuration (demons_brute_stop) qui permet de spécifier pour quels démons on utilise cette fonctionnalité, et combien de tentatives auront lieu au maximum.

J'en ai profité pour rajouter une ligne dans le bloc des process à ne pas tuer si trop long (process_to_keep) :

'sys_alive', # on ne kill pas sys_alive

Voilà tout.

jeudi 22 novembre 2007

Passage en version 1.5.1 de sys_alive : mode demon amélioré

Très peu de temps après la version 1.5, sys_alive passe en version 1.5.1

Pas de gros changements dans cette version, juste quelques petits remaniements dans le fonctionnement du mode démon pour que sys_alive puisse être utilisé dans les scripts de démarrage de linux (sous debian, ubuntu... : /etc/init.d/sys_alive.pl et /etc/rcX.d/Ssys_alive.pl via update-rc.d)

Je renseignerai prochainement le wiki du trac associé à sys_alive pour expliquer tout ça plus en détail, sachez juste qu'en mode demon, sys_alive se lance avec comme paramètre start ou stop.

PS : le téléchargement se passe sur http://scripts.twidi.com

mercredi 21 novembre 2007

sys_alive passe en version 1.5 : fonctionnement mode demon, et mise en place de trac

sys_alive passe en version 1.5 (téléchargeable sur http://scripts.twidi.com)

Au menu des nouveautés :

  • fonctionnement possible en mode démon à la place du mode cron
  • force l'arrêt de certains démons qui n'auraient pas été stoppés correctement via l'appel de la commande en conf
  • mise en place de trac (sys_alive étant géré via svn depuis la version 1.2.8)

A propos du mode démon

sys_alive tournait jusque là en cron toutes les minutes (ou autre selon votre paramétrage). Ce qui induisait, chaque minute, un process cron et un process perl...

Finalement, un sys_alive qui tourne en démon a plusieurs avantages :

  • moins de process, donc moins de charge induite (notamment en cas de forte charge du serveur, j'ai déjà vu une bonne vingtaine de cron et de perl+sys_alive tourner)
  • paramétrage du délai plus fin (par défaut à 60 secondes, peut être changé en conf)

La contrepartie c'est que maintenant sys_alive a besoin de deux modules perl : Proc::Daemon et File::Pid (disponibles tous les deux via cpan)

Au niveau de la configuration, un bloc a été rajouté :

 %mode_demon = (
   'actif'    => 1,                            # 0 pour fonctionnement classique en cron, 1 pour fonctionnement en demon
   'pid_file' => '/var/run/sys_alive.pid',     # emplacement du fichier pid (
   'wait'     => 60,                           # délai (en secondes) d'attente entre deux analyses
 );

PS : ce mode démon m'a donné plein d'idées pour une version 2 ;)

jeudi 8 novembre 2007

SliTaz GNU/Linux : mini distribution linux (25mo) francophone type live CD (ou clé USB) incluant Firefox

Lu sur DLFP :

SliTaz GNU/Linux est une mini distribution francophone d'environ 25 Mo, distribuée sous forme de LiveCD, elle fonctionne entièrement en mémoire vive (RAM), ce qui permet d'avoir un système rapide avec des applications réactives ...

Plus d'infos sur le lien ci-dessus ou directement sur le site (en français) de SliTaz

Editez vos mind-map sur le site Mindmeister... hors ligne

Comme nous le révèle Ajaxian, le site MindMeister, mon outil d'édition en ligne de mind-map préféré, permet maintenant l'édition hors-ligne des maps, via l'utilisation de Google Gears

Il faut pour cela penser à activer un switch avant de passer offline pour lancer la synchronisation locale de la map, et vice-versa lors du retour online. Ce n'est malheureusement pas automatique.

Cette option n'est accessible qu'aux utilisateurs payant (et bien sur pendant la période d'essai)

Plus de détail sur la page officielle

lundi 5 novembre 2007

Choisir son outil de Mind-mapping, la suite

Il y a deux mois, je listais sur ce blog quelques outils de mind-mapping.

Le blog Mashable vient de sortir une liste de 30 outils dédiés au mind-mapping, en ligne ou non, groupés selon leur coût.

Bien qu'il manque pour moi mon préféré (hors-ligne), FreeMind, cette liste peut avoir une certaine utilité.

mardi 30 octobre 2007

Google notebook et flux RSS

J'utilise depuis (très) peu Google Notebook mais pour avoir une liste toujours à portée de main, il me manquait un flux RSS de mes notes.

En effet, voici un outil google qui, bien que permettant le partage de bloc-notes, ne propose pas de flux RSS.

Enfin... ça c'est sans chercher.

Il suffit en fait de rendre un bloc-note publique (bloc-note / options de partage / publier sur une page publique / oui / enregistrer), suite à quoi une page publique est générée, page pourvue d'un flux RSS !

Alors c'est certain, les notes en questions sont publiques, cependant l'adresse n'est pas du tout intuitive, mais facilement trouvable pour quelqu'un qui aurait déjà eu un accès publique à un de vos bloc-notes. Mais en attendant, c'est utile. En attendant.

Google, si tu nous entends...

jeudi 11 octobre 2007

Connexion au réseau local en wifi via un modem-routeur Hitachi-Tecom chez Club-Internet

Connexion au réseau local en wifi via un modem-routeur Hitachi-Tecom chez Club-Internet

Dit comme ça, cela paraît simple. Et bien figurez-vous que non. Après quelques heures de recherche à ne pas comprendre pourquoi ma platine Kiss en ethernet ne voyait pas mon serveur kissdx sur mon portable en wifi, j'ai fini par trouver. J'ai remonté le fil bien difficilement (jusqu'à aller me connecter en root sur le routeur en question ! **), fait de nombreux tests et de nombreuses recherches sur internet avant de tomber sur celle, précise, qui me pu me fournir les résultats attendus pour résoudre le problème.

Symptome : un pc branché en wifi, accède sans soucis à internet, mais pas au réseau local : ça ping, mais la connexion ne passe sur aucun port. Solution : passer le routeur en mode wifi "802.11b only"... Si si...

Détail :

  1. se rendre sur l'interface d'admin http://192.168.1.1
  2. ouvrir l'onglet "Réseau sans fil" ("Wireless" en anglais)
  3. aller sur la ligne "Mode 54g" ("54g mode" en anglais)
  4. choisir "802.11b only"
  5. appliquer les changements

Et oui, c'est tout...

Testé sur une Hitachi TECOM-AH4222 mais d'après mes lectures, fonctionne aussi sur les AH4021


** connexion en root : telnet 192.168.1.1

  • login : root
  • mot de passe : clubadmin

(tapez ? pour la liste des commandes, mais d'autres commandes sont disponibles, comme "iptables")

dimanche 2 septembre 2007

Récupérer la liste des modules perls à installer

Réinstallant une machine, j'ai eu besoin de connaître tous les modules perl à réinstaller.

Quelques find, grep et sed suffisent :

find ./ \( -name '*.pm' -or -name '*.pl' -or -name '*.cgi' \) -exec grep -io '\(^\|\s\|;\)use\s\(\w\+::\)*\w\+' {} \; | grep -v 'use \(Exporter\|Carp\|constant\|lib\|vars\|base\|POSIX\|strict\)$' | sed "s/^[[:space:]]*use[[:space:]]*//i" | sort | uniq

De là vous faut retirer vos propres modules.

samedi 1 septembre 2007

Online mind-mapping

Fervent utilisateur de Freemind (actuellement en version 0.9 beta), logiciel de mind-mapping (cartes heuristiques) multi plateformes (en java), je recherchais une solution en ligne, compatible avec ce logiciel, et permettant la collaboration à plusieurs.

J'ai trouvé ces trois principaux outils :

J'ai opté pour le dernier pour les raisons suivantes

  • import/export vers freemind dans la version de base (Mindomo ne fait que l'import, et pour MindMeister, il faut prendre la version payante pour avoir l'export)
  • gestion des révisions (peut-être les autres le font mais c'est pas clair)
  • application pleine page sans publicité

Oui le fait que cela soit entièrement gratuit a énormément joué en ma faveur. Pour l'instant je n'en aurais qu'une utilisation légère qui ne justifie pas, pour moi, un paiement. A voir plus tard. Car Mind42 a un défaut : il ne fonctionne pas, contrairement aux deux autres, avec les mêmes raccourcis claviers que Freemind pour l'ajout de noeud frères et enfants... Et je trouve ça dommage (tab et shift-tab au lieu de ins et enter)

Edit : j'ai joué un peu avec les trois :

  • Mind42 est le plus sommaire d'entre tous, la partie "collaboration" est vraiment minime et ne me plait pas trop.
  • MindMeister est sympa mais très limité au niveau de la personnalisation des neouds.
  • Mindomo, le seul en flash, est clairement le plus poussé mais malheureusement il ne propose pas d'historiques des modifications, proposés par les deux autres. Pas non plus d'export vers Freemind. Quant à la collaboration, il manque une liste d' "amis" comme il y a dans la version "team" de MindMeister. Dommage car pour le reste c'est le meilleur sans aucune hésitation.

Nouvel Edit : finalement j'opte pour mindmeister, car la personnalisation des noeuds est pour moi moins importante que la collaboration très bien gérée pour celui-là.

mardi 24 juillet 2007

Une idée, un projet.

J'ouvre aujourd'hui un nouveau blog dédié à mon gros projet en cours. Il raconte le cheminement de la naissance de l'idée à la réalisation du projet qui en découle(ra).

Tout se passe sur http://idee.twidi.com

dimanche 8 juillet 2007

Marquer des mails comme lus avec procmail

(Attention ce billet ne concerne que les mails stockés dans des boîtes de type Maildir et non pas Mailbox)

A partir du moment où on a une règle de fitrage dans son fichier .procmailrc qui gère les spams, on peut vouloir que les mails déplacés par cette règle dans le dossier .Junk/ soient mraqués comme non lus.

Imaginons que votre règle soit actuellement :

:0
* ^X-Spam-Flag:.*yes
.Junk/

Le déplacement de mail se fait alors dans .Junk/new/

L'idée est de remplacer ce déplacement par un déplacement .Junk/cur/, mais celà n'est pas suffisant pour que le mail soit marqué comme lu. Il faut également rajouter le flag ":2,S" (:2 par défaut (voir explication sur Wikipedia et S pour "Seen").
Pour celà, on récupère le nom du fichier (en se basant sur $LASTFOLDER qui contient le chemin complet du mail en cours de traitement), et on effectue le déplacement/renommage en même temps.

Dans le cas où on veut effectuer ce marquage pour plusieurs règles, il peut être intéressant de factoriser.

On va donc mettre dans un fichier externe (par exemple ~/.procmailrc.moveandmarkasread) la règle "déplacer et marquer comme lu" :

:0c
$foldername

:0
* LASTFOLDER ?? /\/^/+$
{ tail=$MATCH }

TRAP="mv $LASTFOLDER $foldername/cur/$tail:2,S"

HOST

Pour plus de facilité, on va déclarer en haut de notre fichier .procmailrc une variable pour le chemin de ce fichier (on considère que $HOME est déjà défini)

MOVEANDMARKASREAD=$HOME/.procmailrc.moveandmarkasread

Comme on aura pu le voir dans le fichier en question, il faut définir une variable foldername qui contient votre dossier dans lequel le message devrait être déplacé. Dans notre exemple il s'agit de .Junk/ (ne pas oublier le / final !)

On va ensuite inclure ce fichier externe pour appliquer la règle, grâce à la commande INCLUDERC

Cela donne au final la règle suivante (qui remplace celle d'origine) :

:0
* ^X-Spam-Flag:.*yes
{
  foldername=.Junk/
  INCLUDERC=$MOVEANDMARKASREAD
}