filyb.info

mardi 10 juillet 2007

Agenda numérique : Mozilla Calendar et PHP iCalendar

Ça fait un moment que l'on entend parler d'agendas ou de calendriers partagés, notamment avec l'apparition de Google Agenda (ou Google Calendar). Le principe est simple : vous maintenez votre agenda personnel, avec vos rendez-vous, vos disponibilités ; cet agenda permet – en utilisant plusieurs protocoles dont l'e-mail – de fixer des rendez-vous avec d'autres utilisateurs d'agendas numériques ; vous rendez public votre agenda (ce qui ne veut pas dire que tout est public : vous pouvez définir certains évènement comme confidentiels, la seule informations publique sera que vous n'êtes pas disponible à ce moment-là) ; vous vous abonnez à / consultez sur le web d'autres agendas publics, pour voir les disponibilités d'une personne donnée, où les évènements concernant un sujet.

Le fait que l'agenda soit public implique qu'il soit disponible via un serveur Internet. Deux possibilités : ou votre agenda est hébergé sur un serveur dont vous pouvez maîtriser le contenu, l'accès, le fonctionnement (ce qui est – plus ou moins – le cas avec un hébergement qui vous appartient, et en y installant des logiciels que vous contrôlez, à savoir que vous installez et configurez vous et dont le code source est ouvert), ou vous utilisez une plate-forme qui se charge de la partie technique pour vous. Cette second possibilité a l'inconvénient que vous ne contrôlez pas ce qui est fait de vos données. Mais quelle importance – me direz-vous – puisque ces données sont destinées à être publiques ? Justement, pas toutes. Je doute que vous ayez envie de publier tous les détails de votre vie sur Internet. Votre agenda, comme je l'ai dit plus haut, peut contenir des évènements confidentiels ou privés, et qui dont la teneur ne sera pas publique. Mais l'éventuel prestataire auquel vous allez confier vos données y aura accès.

C'est pourquoi, alors que l'envie subite de mettre en place une solution d'agenda m'a pris ce soir, j'ai décidé de tirer un trait sur Google Agenda et consorts. Ayant tout de même un compte Gmail, j'ai activé l'agenda, car je connais un certain nombre de personnes qui l'utilisent, et je voulais m'assurer d'une compatibilité la plus complète avec ce service.

Restait à choisir les solutions logicielles. J'ai préféré choisir d'avoir un client logiciel pour l'édition d'agenda et une application serveur qui se contente de mettre à disposition sur le web l'agenda (et éventuellement servir pour centraliser l'agenda et permettre l'édition depuis plusieurs clients). En matière d'agendas, le standard est le format ouvert iCalendar. J'ai donc choisi des solutions implémentant ce format. Voici les logiciels sur lesquels mon choix s'est porté :

Mozilla Calendar ‑ Lightning

Le projet Mozilla Calendar vis à créer un logiciel de gestion d'agendas libre et multi-plateforme. Ce logiciel est disponible sous deux formes, Mozilla Sunbird, une application unique, et Mozilla Lightning, une extension pour Mozilla Thunderbird. Utilisant ce dernier logiciel, j'ai choisi Lightning.

Attention : ces logiciels, en version 0.5 au moment où j'écris ces lignes, ne sont pas considérés comme stables.

Lightning propose une interface classique d'agenda, ni trop surchargée, ni trop légère. La création d'évènements s'effectue par simple cliqué-glissé, les possibilités de détailler, classer et organiser les évènements sont assez nombreuses. De plus, on peut ajouter les adresses e-mail des participants à un évènement et leur envoyer une invitation. À ce titre, l'intégration dans Mozilla Thunderbird est très bonne, puisque les mails contenant des invitations sont automatiquement détectés – tels les mails chiffrés ou signés avec Enigmail – et un bandeau propose d'ajouter l'évènement en question dans son propre agenda (ce que ne propose pas Gmail, pourtant associé à Google Agenda).

Capture d'écran du bandeau d'invitation.

Cependant, cette version est encore en développement, et elle possède encore quelques défauts de jeunesses. Il arrive que les évènements ne soient plus affichés, et qu'un redémarrage du logiciel soit nécessaire. Je regrette aussi que lors de la modification d'un évènement, les participants dont les adresses mail ont été entrées n'en soit pas automatiquement averti – ce qui est le cas dans Google Agenda, par exemple. Mais le plus génant – à mon avis – est que les agendas distants ne soient pas accessibles hors-ligne (du moins Lightning est complètement bugué sur ce point). Un cache comme Thunderbird le fait pour l'IMAP serait formidable !

À noter, pour ceux qui désirent utiliser Lightning avec Google Agenda, qu'il existe une extension pour cela : Provider for Google Calendar.

PHP iCalendar

PHP iCalendar est un logiciel libre qui permet de gérer et d'afficher un agenda iCalendar sur votre espace web. Il ne permet pas d'éditer les agendas, ne possède pas d'AJAX et n'est donc pas un équivalent à Google Agenda. Il doit s'utiliser en complément d'un client logiciel, tel que Mozilla Calendar.

Cependant, PHP iCalendar permet d'afficher un ou plusieurs agendas de façon agréable, d'effectuer des recherches, d'obtenir un résumé prêt à imprimer, de s'abonner à des fils de syndication, de restreindre l'accès à certains agenda à des utilisateurs authentifier, et bien sûr d'héberger votre agenda.

J'ai installé PHP iCalendar sur mon serveur web. Vous pouvez dors et déjà consulter mon agenda partagé. Cependant l'installation n'a pas été aussi facile que la documentation le décrit, aussi vais-je détailler les étapes que j'ai parcouru.

Faire fonctionner Mozilla Lightning et PHP iCalendar ensemble

Après avoir installé Mozilla Lightning et PHP iCalendar (en suivant la documentation, et notamment la page sur la configuration), si l'on suit les instructions de la méthode publish.php avec les compléments disponibles sur la page consacré à MacOS X (et qui sont indépendants du système d'exploitation, on se retrouve avec un problème d'authentification. Pour indication, la méthode publish.php permet d'éviter de passer par WebDAV ou par un accès FTP pour synchroniser votre agenda.

Voici donc la méthode pour faire fonctionner PHP iCalendar en passant par le fichier publish.php pour la synchronisation de l'agenda :

  1. Le fichier publish.php doit se trouver dans le dossier où seront stockés vos agendas (fichiers *.ics). J'ai choisi de garder le dossier par défaut, calendars.
  2. Vérifiez (via votre client FTP/SSH) que ce dossier est bien accessible en écriture pour les scripts PHP.
  3. Activez l'option publication du style WebDAV (par opposition au vrai WebDAV) dans votre fichier config.inc.php :

    $phpicalendar_publishing = '1';

    (Les étapes suivantes sont adaptées du post de dyfrin sur le forum de PHP iCalendar.)

  4. Créez dans le dossier des agendas un fichier .htpasswd.
  5. Utilisez un des nombreux générateurs de fichiers .htpasswd. Entrez-y un nom d'utilisateur et un mot de passe, et copiez la ligne fournie dans le fichier .htpasswd que vous venez de créer.
  6. Créez un fichier .htaccess toujours dans le même dossier. Placez-y le contenu suivant :
    <Files publish.php>
    
    AuthUserFile /chemin/absolu/du/fichier/.htpasswd
    AuthGroupFile /dev/null
    AuthName CalendarPublish
    AuthType Basic
    
    <limit PUT>
    require valid-user
    </Limit>
    
    <limit GET>
    require valid-user
    </Limit>
    
    </Files>
    

    Cela va restreindre l'accès au fichier publish.php aux utilisateurs définis dans .htaccess. (Attention, je ne suis pas un guru des .htaccess, d'aucuns me corrigeront peut-être.)

  7. Ouvrez Lightning. Ouvrez Fichier > Nouveau > Agenda. Choisissez un agenda disponible sur le réseau, au format iCalendar.
  8. Entrez une adresse de la forme : http://example.com/phpicalendar/calendars/publish.php/mon_agenda.ics

    mon_agenda.ics est le nom de votre futur agenda public.

  9. Validez, entrez quelques évènements, et admirez le résultat.

Pour finir...

Vous pouvez désormais utiliser votre agenda tel un utilisateur de Google Agenda, mais libre. Si un utilisateur de Google Agenda souhaite ajouter votre agenda dans son interface, il lui suffit de récupérer l'adresse de votre fichier *.ics (un clique-droit sur le lien télécharger de PHP iCalendar, par exemple). Ensuite, il a la possibilité d'ajouter cette adresse en tant qu'agenda.

Et de même, vous pouvez ajouter dans Lightning des agendas de Google Agenda, via Fichier > Nouveau > Agenda. L'adresse a y coller est celle obtenue, dans Google Agenda, en allant dans les détails d'un agenda, et en copiant l'adresse disponible sur le bouton iCal. En fouillant le moteur de recherche d'agenda, on peut même trouver des agendas intéressants... à ajouter dans Lightning. Deux exemples (avec l'adresse iCal, pour ceux qui n'ont pas de compte chez Google) :

C'est tout pour aujourd'hui ! Je vais aller ajouter un évènement dormir à mon agenda...

vendredi 22 septembre 2006

Notification d'emails pour les utilisateurs de Mozilla Thunderbird, Gnome et d'un ASUS Z92J

Bon, d'accord, ce billet ne s'adresse pas à grand monde... S'il vous est utile, dites-le dans les commentaires, que j'ai l'impression de ne pas l'avoir écrit pour rien (d'un autre côté, mes stats vont très bien, merci pour elles, donc je peux me permettre d'écrire des billets plus pour ma pomme en cas de reformattage que pour the reste of the world).

Donc imaginons que vous utilisez Mozilla Thunderbird sous Linux, avec Gnome (ça marchera aussi sous un autre bureau, mais en utilisant les notification de Gnome, et non celles de, par exemple, KDE), et un ASUS Z92J (peut-être que ça marche aussi avec un autre portable ASUS, je n'en sais rien). Ce que vous voulez : à l'arrivée d'un mail, qu'un petit son vous prévienne, qu'un message affiche le sujet et l'expéditeur du mail, et qu'enfin (très important), la diode correspondante de l'ordinateur s'allume.

Le problème de cette diode est que j'ai bien trouvé des notificateurs d'arrivée des messages, mais aucun pour l'évènement plus de messages non lu pour éteindre la diode. J'ai donc décidé de laisser la diode allumée une minute, avec une temporisation.

Après la théorie, la technique :

  1. Installez l'extension pour Mozilla Thunderbird permettant les notifications : Yamb (dont j'avais déjà parlé).
  2. Installez notify-send, la commande pour lancer des notifications Gnome. Elle correspond au paquet libnotify-bin sous Ubuntu.
  3. Téléchargez le script suivant :

    #!/bin/sh
     
    #############################################################################
    # Mail notification for thunderbird and yamb, using the gnome notifier system
    #############################################################################
     
    subject="$1"
    sender="$2"
    recipients="$3"
    size="$4"
    folder="$5"
    accountType="$6" #(movemail, pop3, imap, nntp, rss)
    accountName="$7"
    body="$8"
    
    # Show notify (using notify-send)
    notify-send "Courriel de $sender" $subject
    
    # Play sound (vous pouvez utiliser un autre son)
    aplay "/usr/share/sounds/pop.wav"
    
    # Switch on the ASUS led for one minute (60 second)
    echo 1 > /proc/acpi/asus/mled
    # Vous pouvez changer la durée d'affichage de la DEL en secondes :
    sleep 60
    echo 0 > /proc/acpi/asus/mled
    

    Vous pouvez, par exemple, utiliser la commande wget http://filyb.info/prog/sh/mail-notify

  4. Copiez ce script dans votre path, par exemple sudo cp mail-notify /usr/bin
  5. Rendez-le exécutable : sudo chmod a+x /usr/bin/mail-notify
  6. Dans Mozilla Thunderbird, rendez-vous dans les préférences de Yamb, et entrez le chemin du script, ici /usr/bin/mail-notify (Vous pouvez aussi en profiter pour désactiver la seconde comme interval pour ne passurcharger votre server mail.)
  7. Appréciez.

Voilà, si vous avez des idées d'améliorations, n'hésitez pas !

samedi 14 janvier 2006

Notification d'arrivée des messages pour Mozilla Thunderbird

Sous certains systèmes, notamment Linux/KDE, Mozilla Thunderbird, quand il est ouvert, ne prévient pas de l'arrivée de nouveaux mails, si ce n'est par un petit bip.

Heureusement, il existe une extension pour Mozilla Thunderbird 1.5, qui permet de lancer un programme de notification. Cette extension se nomme Yamb, et vous pouvez la télécharger en version 0.6.6 en bas de la page téléchargements. Une fois l'extension téléchargée, ouvrez Mozilla Thunderbird 1.5, allez dans le menu outils > extension, puis cliquez sur ajouter. Une fenêtre vous permettra de sélectionner l'extension que vous avez téléchargé.

Une fois l'extension téléchargée, il vous faut trouver un programme de notification, c'est-à-dire un programme qui affichera un message à l'écran pour vous prévenir de l'arrivée d'un mail. Vous pouvez en trouver plusieurs sur la page Exemples de notifieurs. J'ai personnellement choisit le notifieur de KDE, dont j'ai changé les textes pour le franciser. Pour que Mozilla Thunderbird utilise le notifieur que vous avez choisit, vous devez entrer sa commande dans les préférence de l'extension Yamb.

(Note : pour intégrer encore plus votre messagerie préférée, vous pouvez la lancer au démarrage de votre ordinateur, et la faire s'iconnifier dans le System Tray (petits icônes près de l'horloge). Ainsi vous serez prévenus à tout moment de l'arrivée d'un e-mail, sans avoir une fenêtre gênante sur vos/votre bureau(x). Pour cela, utilisez l'extension Minimize to Tray sous Windows, ou le super-programme-qui-minimise-tout sous Linux : KDocker.)

jeudi 25 août 2005

FramaKey

En visite sur l'incontournable Framasoft, j'ai découvert un projets qu'ils ont initié : la FramaKey.

Dans la lignée des Portable Firefox, Portable Thunderbird et Portable OpenOffice.org, voici la FramaKey, à savoir une collection de logiciels Libres directement utilisables depuis votre clef USB sous Windows, accesibles depuis une agréable interface explicative.

Tous ces logiciels sont fournis dans un paquetage qui prendra 200Mo sur votre clef USB, ou un paquetage lite qui ne prendra que 80Mo.

Voici la liste des logiciels :

  • OpenOffice.org 2.0beta, remplacé par Abiword 2.2.8 dans la version lite
  • Mozilla Firefox 1.06
  • Mozilla Thunderbird 1.06
  • Coolplayer 1.215
  • VideoLan Client 0.8.2
  • Scite 1.64

Le tout, bien évidement, en français. Vous pourez désormais garder avec vous en permanence vos logiciels préférés, avec vos paramètres, sans changer la configuration de l'ordinateur hôte. Mieux encore, si quelqu'un se plaint de virus, de spam, de pub, de bugs : PAF, la clef USB. Vous n'avez qu'à copier le dossier du programme correspondant (voir de tous les programmes), de créer le racourcis idoine, et vous avez fait quelques heureux de plus sur Terre (l'utilisateur, vous, et encore d'autres qui sont content à chaque fois qu'un nouvel utilisateur adopte un logiciel Libre).

Niveau performances, le site recommande l'usage d'une chaîne USB 2 (clef USB 2 + port USB 2), mais je l'ai test avec une chaîne USB 1.1, sans problème (l'extraction du fichier sur la clef est un peu longue, mais l'utilisation est tout à fait correcte).

Vous pouvez télécharger la FramaKey, la FramaKey Lite, ou les logiciels sous forme de paquetages séparés sur la page de téléchargement. A noter qu'une fonction Clef sur mesure est à venir.

Maintenant, il ne manque plus qu'un petit kernel Linux, et la solution sera complète... Mais ça, c'est du côté de Knoppix.

jeudi 21 juillet 2005

En vrac

  • Encore des nouveautés pour Mozilla : Mozilla Thunderbird 1.0.6 est disponible en français ! Je lie frenchmozilla, puisqu'il semble que Mozilla Europe n'a pas encore mit à jour sa page.
  • Et une faille de sécurité importante dans Greasemonkey. Cette extension pour Mozilla Firefox permet d'exécuter des scripts qui modifient le comportement de certaines pages web. Or, il semblerait que certains sites pourraient exploiter cela pour avoir accès au disque dur de l'ordinateur. Une version bridée de Greasemonkey à été publiée, en attendant qu'une version complète résolve ce problème. Cette extension avait déjà fait couler beaucoup d'encre (de pixels) à cause du pouvoir qu'elle donnait à des scripts externes (c'est pour ça je ne l'ai jamais essayée ;-) ). Plus de détails sur mozillaZine.
  • Et une dernière nouvelle sur Mozilla : selon Génération NT, un changement de numérotation aurait lieu dans les versions de Firefox. Il faut s'accrocher pour y comprendre quelque chose, et mon interprétation personnelle est la suivante : DeerPark alpha 1 et 2 seraient non pas des pré-versions de Mozilla Firefox 1.1, mais de Mozilla Firefox 1.5, et Mozilla Firefox 1.5 bêta serait en fait Mozilla Firefox 1.4...
  • Changement de domaine : l'emblématique Richard Mattew Stallman appelle à ne pas acheter les livres de Harry Potter 6, en réponse à la déscision juridique canandienne interdisant aux canadiens de lire ce livre avant sa sortie officielle. Stallman argue que c'est une atteinte aux libertés fondamentales. L'appel de RMS. Je suis entièrement d'accord avec lui, mais vais-je résister ??
  • Je me suis inscrit hier à Audioscrobbler. Ce site permet de vous créer un profil suivant les musiques que vous écoutez, et de créer un réseau de "voisins" qui écoutent le même genre de musique que vous, de vous faire des suggestions de musique qui pourraient vous plaire... Comment ça marche ? Vous vous inscrivez, vous téléchargez un plugin pour votre lecteur (ou vous utilisez comme moi amaroK qui a un plugin intégré), vous renseignez votre plugin de votre login et de votre mot de passe, et c'est tout... Voici mon profil, qui n'affiche pour l'instant rien d'interressant, puisqu'il faut tout de même écouter un nombre conséquent de musiques pour qu'il puisse faire ses statistiques.
  • J'ai aussi été voir récement le film La guerre des Mondes, qui est pas trop mal, plutôt dans le genre du bouquin et du précédent film (d'après mes souvenirs). Mais si vous avez un film à aller voir, c'est Charlie et la chocolatrie !
  • Et encore une dernière chose, puisque ce matin j'ai fait un peu d'évangélisme pro-jabber, (certains se reconnaitrons), je conseille à tout ceux qui utilisent une messagerie instantanée, et qui détestent le mauvais fonctionnement de MSNm, ou qui voient d'un mauvais oeil les annonces selon lesquelles MSNm sera payant pour sa version8, ou tout simple qui préfèrent la libertée (gnou), d'utiliser le protocole Jabber, avec le serveur APNIC (ou l'un de ces serveurs), et un client sympa comme Kopete pour Linux/KDE, ou l'un de ceux-ci (Psi en particulier) pour d'autres plate-formes/environnements. Et vous pourrez tout de même garder vos contacts MSNm (et Yahoo!, ICQ...) grâce aux "passerelles" qui permettent de comuniquer avec un autre réseau ! (Cela dépend du serveur, c'est en partie pour cela que je recommande les serveurs APNIC)

- page 1 de 2