UNIX-like

Logiciels (logiciels libres en majorité) qui fonctionnent sur des systèmes dérivés d'Unix (Linux...) ou ressources (liées aux logiciels) spécifiquement pour ces systèmes
Fiche logiciel validé
  • Création ou MAJ importante : 03/05/13
  • Correction mineure : 03/05/13
  • Rédacteur de la fiche : Pascale Nalon - Bibliothèque de Mines ParisTech (Ecole Nationale Supérieure des Mines de Paris)
  • Relecteur(s) : Dominique Girod (IPNL)
  • Responsable thématique : Raphaël Tournoy (Centre pour la Communication Scientifique Directe)
Mots-clés
Pour aller plus loin
  • Mots-clés principaux : SIGB

Koha : gestion d'un catalogue de bibliothèque et des fichiers lecteurs/prêts (SIGB)

Description
Fonctionnalités générales

Koha est un SIGB (Système Intégré de Gestion de Bibliothèque).

Il comprend les modules suivants :

  • Acquisitions
  • Catalogage et "bulletinage"
  • Circulation (prêt/retour/transfert)
  • Lecteurs
  • Gestion des Autorités
  • Opac : possibilité de fonctions de commentaire, de tags, nuages de sujets..., consultation du compte lecteur, réservations en ligne, suggestions...

Il permet également :

  • Le paramétrage système de l’application par l’administrateur à partir de l’interface professionnelle (sites, grilles de catalogage, types de documents, règles de prêt, catégories de lecteurs, …)
  • La gestion d’un catalogue multi-sites
  • La gestion des habilitations
Autres fonctionnalités
  • Aide en ligne
  • Bilans et statistiques
  • Listes
  • Paniers de notices
  • Édition de Nouvelles
Interopérabilité
  • Récupération de notices Z3950
  • Récupération de paniers Unimarc (via FTP ou autre)
  • Annuaire LDAP
  • Export des notices ISO2709
  • Export des bilans format OpenOffice
Contexte d'utilisation dans mon laboratoire/service

Utilisé en production depuis octobre 2005, dans le cadre de la gestion de la bibliothèque centrale de l'ENSMP (Ecole Nationale Supérieure des Mines de Paris, Fontainebleau), et depuis 2006 pour les centres de documentation (Evry/Sophia/Fontainebleau).
Une vingtaine de personnes utilisent quotidiennement toutes les fonctionnalités, sauf les acquisitions.
Ce progiciel a été choisi par le chef de service, pour des raisons à la fois techniques, fonctionnelles et économiques.

Limitations, difficultés, fonctionnalités importantes non couvertes

Les principales fonctionnalités d'un SIGB sont bien couvertes.
L'installation de l'application, nécessitant la mise en place de modules Perl, peut se révéler assez délicate pour des non-connaisseurs.
La version 3 intègre un installateur facilitant cette opération.
A noter la présence du moteur de recherche Zebra.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Ce logiciel métier n'est intégré dans aucune distribution pour l'instant, un développeur travaille sur un package Debian.
Les modules Perl nécessaire à Koha sont maintenant dans la distribution Linux Debian.

Plates-formes

Plate-forme technique :

Koha est un outil reposant sur des outils sous licence libre uniquement et une plate-forme 100% web.

Outils serveur :

  • Système d'exploitation serveur : Linux, OpenBSD, FreeBSD, MacOS X, autres Unix (certains utilisent Windows)
  • Serveur Web : Apache ou IIS
  • Langage de développement : Perl , Java
  • Base de données : MySQL (version 4.1 ou supérieure), PostgreSQL

Postes clients :

Koha nécessite un navigateur Internet récent, Firefox est conseillé mais pas obligatoire pour l'OPAC (Online Public Access Catalog - présentation « grand public » d'un catalogue de bibliothèque informatisé), Koha fonctionne sous Internet Explorer.
Certaines vérifications de cohérence dans la saisie des données sont faites sur le poste client, le Javascript doit donc être activé.
L'interface publique (OPAC) est conforme à la norme XHTML1.0 : l'outil est donc compatible avec les navigateurs alternatifs.
En particulier, l'OPAC peut être utilisé par les personnes ayant un handicap (navigateur braille, synthèse vocale, navigateur texte...).

Logiciels connexes

Zebra : moteur d'indexation et de recherche

Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement
  • Projet collaboratif
  • Prestataires autour du logiciel
  • Communautés d'utilisateurs actives (anglophone et francophone)
  • Associations (KohaLa en France, Kudos aux États-Unis)

Eléments de pérennité
Références d'utilisateurs institutionnels
  • Liste des utilisateurs dans le monde : http://wiki.koha-community.org/wiki/Koha_Users_Wor...

  • Ecole Nationale Supérieure des Mines de Paris.

  • Koha est par ailleurs utilisé à l'IN2P3 comme Système Intégré de Gestion de Bibliothèque des bibliothèques des unités de l'institut.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Contributions

Voir cette page.

Fiche logiciel validé
  • Création ou MAJ importante : 26/03/12
  • Correction mineure : 02/03/14
Mots-clés

OpenVPN : connexion sécurisée de PC à distance

Description
Fonctionnalités générales

openVPN est utilisé pour permettre à des PC clients distants de se connecter à un réseau d'entreprise (laboratoire, université ...) de manière sécurisé. Basiquement le serveur openVPN alloue aux PC distants une adresse IP provenant du réseau d'entreprise et établi une liaison chiffrée basée sur SSL. openVPN établi donc un réseau virtuel sécurisé ("VPN") entre le PC client et le serveur.

openVPN est donc utile lorsqu'un utilisateur sur un réseau distant veut accéder à un serveur dans la zone interne du réseau de son entreprise, laboratoire ou université...

Prenons pour exemple, l’architecture réseau d'un laboratoire ou d'une université découpée en deux zones :
* une « zone semi-ouverte », accessible de l’Internet
* une « zone interne » hébergeant les serveurs internes

Ces deux premières zones sont séparées par un routeur assurant la sécurité entre elles. Une troisième zone, nommée « zone VPN », est créée pour les machines distantes. Elle regroupe une plage d’adresses qui sera utilisée par le serveur OpenVPN pour celles-ci.

Le processus général est le suivant :
1. L’utilisateur démarre le client openVPN et se connecte au serveur OpenVPN se trouvant dans la zone semi-ouverte via Internet.
2. A l’ouverture de la liaison, le serveur openVPN :
a. Affecte des adresses IP aux extrémités du tunnel entre le serveur et la machine cliente dans la zone VPN du réseau du laboratoire.
b. Envoie des commandes qui seront exécutées sur la machine cliente en particulier pour créer une interface réseau et modifier sa table de routage.
c. Une fois le tunnel établi, toutes les connexions entre le poste client et la zone interne du réseau du site passeront par le tunnel.

Les datagrammes provenant de la machine cliente à destination du réseau du site auront une adresse source contenue dans la plage d’adresses de la « zone VPN ».

Autres fonctionnalités

Le logiciel devient serveur ou client selon le paramétrage que l'on fait dans un fichier de configuration.

openVPN offre la possibilité de :

  • créer un tunnel utilisant les protocoles UDP ou TCP
  • configurer un ensemble de serveurs VPN en utilisant une ou plusieurs machines pouvant gérer des milliers de connexions provenant des clients VPN
  • utiliser toutes les fonctionnalités de chiffrement, d'authentification et de certification provenant de la bibliothèque OpenSSL ( cf fiche PLUME http://www.projet-plume.org/fr/fiche/openssl ) afin de protéger votre réseau privé à travers Internet
  • utiliser les algorithmes de chiffrement, la taille de la clé, ou HMAC digest (pour le contrôle d'intégrité des datagrammes), supportés par la bibliothèque OpenSSL
  • pour le chiffrement, possibilité de choisir entre une clé de cryptage conventionnelle ou sur un certificat avec une infrastructure à gestion des clés publiques
  • utiliser des clés statiques pré-partagées ou TLS dynamique basée sur l'échange de clés
  • créer des tunnels à travers des réseaux publics dont les extrémités sont dynamiques (DHCP par exemple)
  • créer des tunnels dans des réseaux à travers du NAT
  • créer des ponts ethernet virtuels sécurisé
  • utiliser une interface utilisateur graphique (GUI) disponible sous Windows ou Mac OS X.
Interopérabilité

Seul un client OpenVPN peut interagir avec le serveur OpenVPN. Un seul logiciel peut être utilisé comme Client ou Serveur, cela dépend de la configuration. Il n'est pas non plus possible d'interagir avec d'autres logiciels VPN ou IPsec.
Par contre les certificats utilisés (dans le cas de choix de cette solution pour le chiffrement) sont standards.

Contexte d'utilisation dans mon laboratoire/service

L'UREC met à disposition deux serveurs OpenVPN pour les connexions à distance de ses membres : un utilisant le TCP l'autre utilisant l'UDP, ceci pour palier aux différentes politiques de filtrage dans laquelle se trouve le client. Par exemple, le protocole UDP est de plus en plus rejeté par les pare feux en entrée des réseaux de campus ou de laboratoires, ce qui rend l'utilisation d'openVPN impossible.

Limitations, difficultés, fonctionnalités importantes non couvertes

Pour palier à des problèmes de compatibilité avec le client Windows et le driver TAP-Win32, openVPN utilise 4 adresses IP pour établir une liaison avec un PC client : l'adresse de réseau, l'adresse de broadcast, l'adresse de routage et l'adresse du PC.
En pratique chaque établissement de liaison VPN consomme 4 adresses et une classe "C" peut être très vite entièrement consommée... Pour pallier cet inconvénient, on alloue souvent des adresses d'une classe "privée" (192.168.20.0/24 par exemple) et on met en place de la translation d'adresses "NAT3 au niveau du serveur VPN grâce à des iptables.

Environnement du logiciel
Plates-formes

Linux, Windows 2000/XP et supérieur, OpenBSD, FreeBSD, NetBSD, Mac OS X et Solaris

Environnement de développement
Eléments de pérennité

OpenVPN est basé sur SSL et utilise les librairies OpenSSL et les pilotes TUN/TAP.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur

Un article intéressant, https://aresu.dsi.cnrs.fr/spip.php?article189, sur 2 exemples d'utilisation d'openVPN :
accéder à son réseau local depuis l’extérieur,
accéder à l’extérieur (internet) depuis un réseau inconnu.

Divers (astuces, actualités, sécurité)

La clé statique partagée permet d'éviter des attaques de type DoS et est très simple à mettre en œuvre (http://openvpn.net/static.html )

Le site web annonce pour bientôt :
* "client installers"
* outil de configuration
* forum pour les utilisateurs

Interface graphique sous Windows :
Si vous souhaitez utiliser OpenVPN avec une Interface Graphique sous Windows, voici le lien du site qui propose un soft contenant OpenVPN + GUI :
http://openvpn.se/
Et la page directe de téléchargement :
http://openvpn.se/download.html

Il existe également une interface graphique sous Mac OS X (Tunnelblick) :
http://code.google.com/p/tunnelblick/
Pour accéder directement à la page de téléchargement :
http://code.google.com/p/tunnelblick/downloads/list

Fiche logiciel validé
  • Création ou MAJ importante : 12/08/11
  • Correction mineure : 12/08/11
Mots-clés
Pour aller plus loin

VTK : The Visualization ToolKit, visualisation de gros volumes de données 2D ou 3D

  • Site web
  • Système : UNIX-like, Windows, MacOS X
  • Téléchargement
  • Version évaluée : 5.4.2
  • Langue(s) de l'interface : anglais
  • Licence : BSD

    Copyright Notice VTK has a generous open-source copyright modelled after the BSD license. Yes, you can use VTK in commercial products. The complete text of the copyright follows.
    Copyright (c) 1993-2005 Ken Martin, Will Schroeder, Bill Lorensen
    All rights reserved.

Description
Fonctionnalités générales

La librairie VTK est une puissante bibliothèque graphique permettant de visualiser de gros volumes de données 2D ou 3D. Très fréquemment utilisée dans de nombreux domaines (physique, chimie, médecine, mathématiques...), elle bénéficie d'une évolutivité très importante et de développeurs très réactifs. VTK est une librairie écrite en C++ dont le rendu des images utilise OpenGL ( http://www.opengl.org/ ), elle peut être utilisée soit directement via les langages C++, Python, TcL ou Java, soit indirectement via des interfaces graphiques telles que Paraview (écrite en TcL) ou Mayavi (écrite en Python).

Autres fonctionnalités

Librairie multiplateformes : Unix, MAC OS X et Windows.
Utilisable sur une architecture parallèle.
Gestion du niveau de détail des images produites.
Possibilité de suivre un calcul en temps réel grâce à une visualisation en directe des résultats.

Interopérabilité

On peut nativement utiliser la librairie VTK via les langages interprétés suivants : Tcl-Tk, Python ou Java.
Plusieurs types de fichiers de données sont supportés (AVS, EnSight,...). VTK possède également ses propres fichiers d'entrée/sortie : soit dans un format "traditionnel", soit dans un format utilisant des balises XML (à préférer).

Contexte d'utilisation dans mon laboratoire/service

Visualisation des maillages et de ce que l'on calcule dessus (Mathématiques, Physique, Mécanique des Fluides, Géophysique, ...).
Visualisation de molécules (Biologie Moléculaire, Chimie) ou visualisation de résultats issus de méthodes particulaires (Mécanique des Fluides).
Visualisation d'images médicales (Médecine).

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Mandriva par exemple mais il est généralement préférable de compiler la librairie manuellement (nécessite l'utilitaire cmake), les distributions Debian et Ubuntu récentes.
MacOs : package fink ou darwinports

Plates-formes

Unix, MAC OSX et Windows

Logiciels connexes

Paraview : interface graphique écrite en TcL ( http://www.projet-plume.org/fr/fiche/parallel-visu... ).
Mayavi : interface graphique écrite en Python ( https://svn.enthought.com/enthought/wiki/MayaVi ).
VisIt : http://www.projet-plume.org/fr/fiche/visit-visuali...

Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement

Kitware, Inc.

Eléments de pérennité

C'est la librairie graphique la plus utilisée actuellement. Très large communauté d'utilisateurs et de développeurs.

Références d'utilisateurs institutionnels

Laboratoire de Mathématiques de l'Université Paris-Sud
Ecole Centrale de Paris (MAS)
Librairie disponible dans de nombreux centres de calcul : IDRIS, CRIHAN,...

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

Une liste de diffusion très active : http://public.kitware.com/mailman/listinfo/vtkusers

Documentation utilisateur

Une documentation html et de très nombreux exemples de codes : http://www.vtk.org/doc/nightly/html/
Deux livres :
The Visualization Toolkit An Object-Oriented Approach To 3D Graphics, 4th Edition, Will Schroeder, Ken Martin, Bill Lorensen, ISBN 1-930934-19-X, Kitware, Inc. publishers.
The Visualization Toolkit User's Guide Kitware, Inc., ISBN 1-930934-18-1, Kitware, Inc publishers.
Un petit cours avec exemples et TP pour démarrer : http://www.math.u-psud.fr/~faure/

Contributions
Fiche logiciel validé
  • Création ou MAJ importante : 13/08/13
  • Correction mineure : 13/08/13
Mots-clés

Thunderbird : client messagerie, lecture news et fils RSS

Description
Fonctionnalités générales
  • Messagerie POP ou IMAP (ainsi que leurs versions sécurisées)
  • SMTP (ainsi que SMTPS)
  • Carnet d'adresses
  • Accès Fils RSS
  • Accès Newsgroup
  • Messagerie instantanée Jabber (XMPP)
Autres fonctionnalités
  • Gestion de plusieurs comptes de messagerie
  • Recherche rapide de mots dans tous les messages
  • Vérification orthographique lors de la saisie des messages (dictionnaire français disponible)
  • Anti-SPAM (junk mail) automatique possible
  • Anti-hameçonnage (courriers frauduleux)
  • Gestion des certificats électroniques pour signature et chiffrement par magasin
  • Visualisation des quotas IMAP (nécessite le add-on "display Quota")
  • Mode IMAP hors ligne disponible
  • Gestion des extensions simple
  • Mise à jour automatique de la version du logiciel
  • Affichage par onglet depuis la version 3.x
  • Indexation des messages pour une recherche plus rapide
Interopérabilité
  • Importation possible des boites mail au format Outlook, Eudora ou Communicator 4.x
  • Importation possible de carnet d'adresses Outlook, Eudora ou texte
  • Importation des paramètres d'Eudora ou d'Outlook
  • Exportation du carnet d'adresse au format LDIF
  • Connexion à des annuaires LDAP pour le carnet d'adresse, collectif ou personnel
  • Connecteur disponible pour faire du MAPI (propriétaire Microsoft), connecteur SOGo pour le protocole cardDav (cartes de visite)
Contexte d'utilisation dans mon laboratoire/service

Utilisé quotidiennement comme outil de messagerie

Limitations, difficultés, fonctionnalités importantes non couvertes

Ralentissements et pertes de données possibles avec de grosses boites mails locales (POP3)

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

RedHat, CentOS, Fedora, Ubuntu, ArchLinux, Debian (appelé sous cette distribution icedove), ...

Plates-formes

Windows, GNU/Linux, MacOS X

Logiciels connexes

De nombreuses extensions sont disponibles : https://addons.mozilla.org/fr/thunderbird/. Celles-ci ont été recommandées par les utilisateurs PLUME :

  • Nostalgy : ajoute des raccourcis clavier pour changer de dossier, déplacer ou copier des messages d'un dossier à un autre, ...
  • Signature Switch : raccourcis claviers pour changer la signature en bas d'un message
  • Lightning : gestionnaire d'agenda et tâches, équivalent à SunBird mais en module pour Thunderbird
  • Mozbackup : pour exporter/importer rapidement les profils Mozilla

On peut rechercher les extensions directement via l'outil de gestion des extensions de Thunderbird

Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement

Le projet Thunderbird est développé par la fondation Mozilla

Eléments de pérennité

Projet très structuré, communauté très large et très active

Références d'utilisateurs institutionnels

Logiciel extrêmement répandu en particulier dans la communauté enseignement supérieur et recherche

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur

FAQ et autres informations de version : http://www.mozilla.org/en-US/thunderbird/17.0.3/re...

Divers (astuces, actualités, sécurité)
  • Si une ancienne version de Thunderbird est présente sur votre système, elle sera écrasée par la nouvelle. Rien ne sera perdu, il est probable que quelques extensions ne soient pas fonctionnelles : les éventuelles incompatibilités lors d'un changement de version de Thunderbird sont données au démarrage de Thunderbird.
  • La mise à jour automatique ne fonctionne pas en cas d'utilisation d'un proxy authentifié.
  • Les dictionnaires sont sous forme d'extension : https://addons.mozilla.org/fr/thunderbird/browse/t...
  • Il existe une version portable : http://portableapps.com/apps/internet/thunderbird_...
  • L'utilisation possible des certificats électroniques pour chiffrer des messages permet de dialoguer dans un canal sécurisé avec un correspondant mais aussi de stocker des messages et éventuellement des fichiers sous forme chiffrés dans les boites aux lettres.
  • Il est possible de restaurer un message ou un compte effacé : http://macrobugs.dyndns.org/macrobugs/folders/rowi...
  • Dans sa version 3, Thunderbird impose que les extensions et leurs mises à jour soient sécurisées (utilisation de HTTPS pour le téléchargement ou signature électronique).
  • Il existe une version dite ESR pour Extended Support Release (tout comme pour Firefox d'ailleurs) : cette version est très intéressante car elle a un cycle de mise à jour beaucoup plus stable, voir le planning des releases ici.
Contributions

Contribution financière ou participation au développement : http://www.mozilla-europe.org/fr/contribute/

Fiche logiciel validé
  • Création ou MAJ importante : 11/07/13
  • Correction mineure : 11/07/13
Mots-clés
Fiche en recherche de relecteurs
Cette fiche est en recherche de relecteurs. Si vous êtes intéressé(e)s, contactez-nous !

GDL : langage interactif (alternative libre à IDL)

Description
Fonctionnalités générales

GDL est un clone libre d'IDL, logiciel propriétaire largement utilisé en astronomie et dans d'autres domaines (géophysique, télédétection, médecine). Il s'agit d'un langage interprété à la syntaxe simple, typé dynamiquement, permettant d'écrire des fonctions complexes. Par rapport aux langages compilés classiques, il présente l'avantage de laisser la main sur les données à tout moment dans l'interpréteur de commande (CLI) et de les afficher aisément.

Pour les calculs, ce langage interprété fait appel à des bibliothèques écrites en C et C++, ce qui n'est pas pénalisant niveau temps de calcul lorsque l'on sait s'en servir ! (cf. le paragraphe Astuces ci-dessous). Ce langage sait gérer des objets à plusieurs dimensions (vecteurs, images, cubes, ...) et des structures. À travers des commandes concises, il permet un affichage simple de courbes, surfaces et images, avec une grande richesse de paramétrage. C'est un langage idéal pour écrire des prototypes et des pipelines complexes, tester des idées de traitement sur des données, ...

Cf les définitions sur Wikipedia :

Autres fonctionnalités

GDL a une interface avec python, des routines écrites en python peuvent être appelées depuis GDL. Réciproquement, on peut appeler des codes en syntaxe GDL depuis python (nous avons eu très peu de retours sur ces usages).

Interopérabilité

De nombreux tests de régression sont faits de routine par rapport aux formats. Il ne faut pas hésiter à remonter les problèmes, notamment pour les très gros fichiers (> 4Go) et les petits/grands indiens.

  • Tout format ASCII (dont CSV lisible par tout tableur) en entrée et en sortie
  • Le format FITS est écrit et lu (via Astron ; format fréquent en astronomie)
  • Le format XDR est écrit et lu (via une bibliothèque externe, à la licence empêchant son intégration dans GDL)
  • Le format netCDF est réputé parfaitement supporté
  • Le format HDF est partiellement supporté (dans la pratique, assez largement)
  • Le format PDS est assez largement supporté
  • Le format HEALPix est supporté
  • Certains formats binaires, avec des aléas sous certaines plates-formes (de plus en plus rare)
  • Existence de bibliothèques pour d'autres formats (images, formats métier...).
Contexte d'utilisation dans mon laboratoire/service

Plusieurs personnes, chercheurs, ITA et étudiants (master et thèse), utilisent GDL de manière régulière ou sporadique à l'Observatoire de Paris/Meudon. Je (AC) suis en contact avec des utilisateurs au CEA, dans des laboratoires du Max-Planck, à la Nasa, dans des universités américaines, anglaises, en Inde, en Pologne, au Vénézuéla ... GDL est utilisée au ESC (Japon). Les nouveaux venus qui ne connaissent pas IDL sont plutôt satisfaits car la syntaxe est simple, les performances raisonnables, la stabilité aussi. Depuis 2009, des articles à "referee" sont explicitement basés sur des calculs avec GDL, après inter-validation avec IDL.

Les utilisateurs avertis d'IDL sont plus gênés car :

  • ils ne retrouvent pas certaines de leurs fonctions et procédures intrinsèques préférées d'IDL, même si le taux de couverture a significativement augmenté (cf http://aramis.obspm.fr/~coulais/IDL_et_GDL/Matrice...),
  • ils connaissent un grand nombre de mots-clefs dont certains ne sont pas encore disponibles dans GDL (les développeurs de GDL ne sachant parfois même pas que tel ou tel mot-clef historique et non documenté d'IDL --car décrété obsolescent-- existait !),
  • ils espèrent utiliser des codes IDL directement sans toucher au code source mais se heurtent à des difficultés en cascade, le plus souvent à cause de mots-clés manquants.
Limitations, difficultés, fonctionnalités importantes non couvertes
  • Nous dépendons de la qualité de logiciels extérieurs, notamment PLplot, GDL, FFTw, Eigen3, IM ou GM. Certains sont parfois mal packagés pour certaines cibles, ou connaissent des régressions temporaires. Notre suite de test permet de tester et nos problèmes et parfois des problèmes externes, notamment pour IM.
  • Les Widgets d'IDL ne sont pas que très partiellement implémentées : toute aide sera la bienvenue.
  • Certains formats sont mal relus, en particulier des fichiers binaires écrits avec IDL sur certaines plates-formes en voie d'obsolescence (e.g. VMS). Tout retour sur ces problèmes permettrait de voir si des solutions méritent d'être développées. Il ne suffit plus de dire que "ça ne marche pas", nous avons besoin de retour concret (version GDL, OS et dépendances (ldd), fichiers et code de test) pour traquer les dernières déficiences. La plupart des cas soumis ont été rapidement résolus.
  • La plupart des fonctions graphiques (plot, contour, surface, TV, ...) sont disponibles, mais certaines limitations existent (certains mots-clés manquent, absence de polices spéciales pour les titres, ...). Ceci est basé sur la bibliothèque Plplot, globalement satisfaisante dans GDL par rapport à la rapidité d'affichage dans IDL (sauf sous Debian où un écart significatif persiste (parfois +50%), les écarts sont désormais négligeables (environ 10%). À noter que le support de l'affichage des NaN et +-Inf a été inclus dans GDL depuis la 0.9pre4.
  • Depuis rc4, la sortie Postscript n'est plus limitée au N&B, mais il reste des problèmes dans le positionnement et la qualité des sorties Postscript.
  1. Certains programmes fonctionnant en IDL ne tournent pas immédiatement sous GDL. On peut distinguer plusieurs cas :
    • (1) une fonctionnalité intrinsèque manquante dans GDL
    • (2) une bibliothèque externe manquante
    • (3) des bogues dans GDL ou
    • (4) des problèmes de syntaxe du côté de GDL.

Dans le cas 1, il faudra voir s'il existe un moyen simple de contourner le problème, ou d'implémenter le code manquant (en *.pro ou en C++, cf cas Bessel). Sinon, faire une demande aux développeurs. Dans le cas 2, bien vérifier ce qui est dans les chemins. On a eu des retours de personnes n'ayant pas compris comment ajouter Astron ou Mpfit dans le chemin des bibliothèques vues par GDL. Oui, l'installation complète de GDL avec Save/Restore, la cartographie, FFTw et ImageMagick (pour les entrées-sorties dans divers formats graphiques) peut être longue ! Dans les cas (3) et (4), un rapport de bogue sera bénéfique à tout le monde, car la version actuelle est plutôt bien stabilisée pour l'usage quotidien des principaux utilisateurs connus et des développeurs.

  • On peut utiliser le flag !GDL (DEFSYSV, '!gdl', exist=flag) pour tester si on est en IDL ou en GDL, ce qui permet de contourner aisément les éventuels problèmes restants en traitant les 2 cas (cf cet usage dans testsuite/test_besel.pro dans le CVS).
  • Certaines versions ou évolutions de bibliothèques externes (readline, plplot, GSL, FFTw, ...) peuvent poser problème (à la compilation ou durant l'usage de GDL). Ainsi, les dernières versions de PLplot (5.6.x et 5.8) semblent poser problème avec GDL 0.9 pre 4/5/6. La version historique 5.5.3 disponible pré-packagée sous Debian ne pose pas de problème... Sous OSX, la readline fournie par Apple, ancienne et limitée, doit impérativement être mise à jour pour compiler GDL (ce qui est désormais disponible nativement en OSX 10.6.x).
  • ImageMagick (IM), utilisée pour la lecture et l'écriture des formats d'images (JPG, PNG ...) est de qualité inégale. GraphicsMagick, un fork moins ambitieux, s'est révélé plus stable.
Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Univers Linux

  • Depuis trois ans environ des contacts ont été pris avec les packageurs pour plusieurs distributions majeures (Debian, Ubuntu, Fedora, Gentoo ...). Les nouvelles versions de GDL sont ainsi généralement re-packagées sous de brefs délais, pour la version courante des OS mentionnés. GDL 0.9.3 est ainsi largement disponible packagée ;-) [à noter que sous Debian ou Ubuntu, il est relativement facile d'extraire les sources depuis les paquets, de faire des modifications (e.g. mise à jour via le CVS) puis de recompiler http://www.cyberciti.biz/faq/rebuilding-ubuntu-debian-linux-binary-package/]
  • Une version RPM (versions pré-compilées) un peu datée existe dans les dépôts standards de CentOS
  • Il existe des RPM pour Fedora, plutôt à jour, car des efforts sont faits côté Fedora pour coller aux avancées significatives du CVS (demande institutionnelle)
  • Il existe des paquets (versions pré-compilées .DEB) dans Ubuntu, versions 0.9.2.
    Des paquets basés sur la version CVS actuelle sont disponibles
  • Il existe des paquets pas trop anciens pour Debian

Univers OSX

  • la version MacPort est généralement très proche de la version CVS
  • Depuis GDL 0.9pre5, GDL est disponible via Fink sous Mac OSX mais ces versions ne collent pas toujours aux avancées
  • Il existe d'autres versions pré-compilées pour Mac OSX, pour PPC, x86 et x86_64, mais il faut bien s'assurer de l'adéquation avec son propre système et si la version est suffisamment récente (la version sur http://hpc.sourceforge.net/ est désormais vraiment ancienne !)
  • Cependant, au-delà des versions pré-compilées, il est recommandé de privilégier les dernières versions compilées par soi-même, et même la version CVS pour les utilisateurs avancés d'IDL. Pour OSX, un tutoriel est régulièrement mis à jour

L'équipe de développement teste régulièrement le CVS avec la suite de tests sur une quinzaine de configurations (variations autour de OSX, CentOS, Fedora, Mandriva, Debian, Ubuntu, OpenSolaris ...). Si vous avez des problèmes de compilation avec le "configure" ou son alternative "cmake", il ne faut pas hésiter à nous contacter.

Sur de nombreuses distributions, la plupart des dépendances et leur versions __devel__ (readline, GSL, python, plplot, FFTw) sont déjà pré-compilées (.rpm ou .deb)

Plates-formes
  • Linux (Fedora, CentOS, Mandriva, Mageia, Debian, Ubuntu) en x86 (32 bits) et x86_64 (64 bits)
  • Mac OSX avec processeurs PPC, x86 et x86_64
  • Aurait été compilé sous SunOS, réputé disponible sous OpenSolaris
  • Très délicat à compiler sous Tru64
  • N'a pas pour projet d'être utilisable en natif sous les OS Microsoft, cependant il est possible d'y compiler GDL grâce au projet CoLinux, comme expliqué ici. Un port a été inclus dans le CVS mi-2013.

    Il y a une demande forte pour GDL sous Mac OSX, et régulièrement du retour sous Linux. Très peu de retour des autres Unix, qui semblent désormais être en phase d'obsolescence accélérée (fin de vie des machines, pas de renouvellement, basculement à Linux pour les serveurs, et à Linux et Mac OS pour les portables).

Logiciels connexes

Principales bibliothèques dont dépend GDL. On n'indiquera pas ici les modules métier (netcdf/hdf/hdf5) :

  • [obligatoire] gcc (pour la compilation. Sous Mac OSX, il faut gcc >= 4.0.1)
  • [obligatoire] plplot (bibliothèque pour affichage des courbes, contours, surfaces et images). Pour des raisons d'évolution internes à plplot, nous envisageons d'exiger bientôt plplot >= 5.9.1.
  • [obligatoire] GSL (>= 1.7) (GDL utilise la GSL pour plusieurs fonctions mathématiques spéciales (Bessel, Beta, ...), les matrices et les solveurs d'équations)
  • [optionnel, fortement recommandé] readline (cette bibliothèque permet de gérer le clavier, la mémoire des commandes, les allers et retours sur la ligne courante (crtl-a/crtl-e ...) et la complétion de certaines commandes, chemins et noms de fichiers (bluffant par rapport à IDL))
  • [optionnel, fortement recommandé] Eigen3, bibliothèque de calcul vectoriel et matriciel, utilisant au mieux les subtilités internes des processeurs (SSE) et les multi-cœurs.
  • [optionnel, fortement recommandé] FFTw (l'usage de cette bibliothèque de référence pour les FFT permet de gagner un facteur 2 par rapport à l'implémentation des FFT dans la GSL ; la FFT sur des grands tableaux est plus rapide dans GDL avec FFTw que dans IDL)
  • [optionnel, recommandé] GraphicsMagick ou ImageMagick (IM) (permet d'importer et d'exporter dans différents formats d'image). Il se trouve que la qualité des versions IM est très variable, par ex. la version 6.6.9.7-5ubuntu3.1 donne des résultats faux sur 4 des 6 de nos images test.
  • [optionnel, facultatif] python (permet d'utiliser des programmes python dans GDL). Attention, nous avons parfois des soucis avec les évolutions et la localisation des versions Python. Aide bienvenue.
  • [optionnel, facultatif] libproj4 (cartographie terrestre)
  • [optionnel, facultatif] wxWidgets pour les Widgets.
Autres logiciels aux fonctionnalités équivalentes

Logiciels libres (sous licence GPL)

Propriétaires

  • IDL, logiciel propriétaire et cher
  • Matlab, dans une certaine mesure
Environnement de développement
Type de structure associée au développement

Arborescence CVS : http://gnudatalanguage.cvs.sourceforge.net/gnudata...
Une dizaine de développeurs dispersés ont les privilèges pour modifier tout ou partie du CVS.

Lorsque nous recevons du code ou des patchs utiles, sous licence GPL ou compatible (aucun code dérivé des NumRecip ne peut être accepté), avec si possible des cas de tests, nous l'intégrons dans le CVS. Ces dons de code peuvent être réalisés directement auprès des auteurs, ou via le tracker sur SourceForge.

Plusieurs personnes ont pris en charge le portage de bibliothèques en syntaxe IDL vers GDL (e.g.: Astron, FITS, MPfit, HEALPix, iCosmo, PDS, ...). Ce genre d'activité peut être très instructive pour un stagiaire encadré par un utilisateur d'une telle bibliothèque et le code reversé bénéfique à tous.

Eléments de pérennité
  • Logiciel libre dont le code source est disponible et qui utilise des bibliothèques solides et largement répandues (GCC, Readline, GSL, FFTw, Plplot, ImageMagick, ...)
  • Début de création d'une communauté
  • Projet hébergé chez http://sourceforge.net/
Références d'utilisateurs institutionnels
  • Dans mon environnement proche des enseignants de l'UFE et des collègues de l'Observatoire de Paris/Meudon. Plusieurs TPs numériques Bac+4 et +5 ont été tenus avec succès sous GDL par plusieurs enseignants ces deux dernières années.
  • Des personnes à la NASA, au CEA, au Max Planck, à l'Earth Simulator Center, dans des laboratoires français et étrangers.
  • Des articles scientifiques dans des revues à comité de lecture contiennent des calculs faits par GDL (pour certains, un travail préparatoire de comparaison et validation avec IDL a été fait).
  • Des calculs lourds (HPC, 400 cœurs, monté carlo pour calcul de lobes pour la mission Planck HFI) ont été faits en GDL après de larges comparaisons (précision, performance) avec IDL.
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)

  • Garantie : comme la plupart des logiciels, ce logiciel vient sans aucune garantie, et ceci a d'autant plus de sens qu'il s'agit de calcul numérique où des bugs internes peuvent ne pas apparaître immédiatement : pensez à la testabilité de vos codes et n'hésitez pas à douter du logiciel. J'ai trouvé plusieurs déficiences dans IDL (souvent anecdotiques mais réelles (cf aussi le célèbre print, BESELI([1], [1,1,1]), la décimation dans INTERPOLATE() (pas de calcul interne en Double), les problèmes de retour par valeur dans CHOLDC ...)) en faisant des tests pour GDL.
  • La version CVS est une copie de l'état du développement public du logiciel. Elle contient les dernières corrections et améliorations, même si elle a pour but de devenir la base de la prochaine version figée, elle peut contenir des erreurs, des régressions, des ajouts peu testés ou seulement sur une plate-forme (avec les petites nuances entre les différentes distributions linux d'un côté et des versions Mac OS de l'autre, sans parler des bibliothèques connexes, cela prend vite son sens de version en cours de développement !)
    • Même si une version majeure, la 0.9.3, vient de sortir, il ne faut pas négliger l'intérêt des corrections et ajouts dans le CVS (l'usage d'Eigen3 n’apparaît que dans le CVS !)
    • Certains bugs ou déficiences connus (e.g. espaces et caractères spéciaux dans les chemins et noms de fichiers, connaître la mémoire allouée sous Linux 64b) peuvent ne pas avoir de solutions simples.
    • Lors de compilations de versions CVS, bien penser à conserver en parallèle des versions N-1 ou N-2 en cas de régression, ce qui arrive sporadiquement. Typiquement, le CVS apporte souvent des corrections demandées par des utilisateurs mais pas toujours testées assez largement ! (même si nous tentons d'intégrer autant de tests pertinents que possible dans la suite de tests)
  • Compatible avec les bibliothèques Astron, Mpfit, CMSV, Wavelet ...
  • Bien configurer les variables GDL_PATH et GDL_STARTUP (même si IDL_PATH et IDL_STARTUP peuvent être utilisées). Un petit script dans la racine du CVS (quick_start_GDL.sh) est là pour montrer aux débutants comment ajouter des chemins dans ces variables
  • Efficacité du calcul et écriture du code
    • On entend souvent dire que IDL ou GDL vont être lents parce qu'ils sont des langages interprétés. (On parle là des temps d'exécution, et non du temps d'écriture du code, car il est désormais évident que ce sont des langages permettant d'écrire très rapidement des petits codes ou du code concis). C'est bien souvent faux, car les fonctions intrinsèques sont en fait écrites en C ou en C++ et le temps d'interprétation est marginal devant le temps de calcul (si on parle de calcul. Par exemple, la FFT, l'inversion de matrices, le produit matriciel ...). La grande difficulté est de convaincre les nouveaux venus qui connaissent déjà des langages classiques (Fortran 77, C, Basic, Pascal, Java, ...) à penser "sans boucle" et sans indices en IDL/GDL. Pour obtenir du code efficace, il faut laisser le langage gérer lui-même les boucles (en C++) et utiliser la syntaxe orientée objet. Pour le produit matriciel, on n'écrit pas la boucle du produit, on utilise l'opérateur adéquat (# ou ## selon les cas). Pour additionner deux vecteurs ou deux cubes de même taille, il suffit de faire A+B, on ne parcourt pas les tableaux. De même avec les autres opérations élémentaires (*, /, -, ^2). D'autres opérateurs comme WHERE, SHIFT, SORT, "<" et ">" ... ont une approche identique. Dès le moment où on commence à envisager une boucle "for" probablement coûteuse en temps CPU, il convient de chercher à éviter de l'écrire en utilisant les opérateurs et les fonctions intrinsèques, parfois en découpant les opérations en quelques étapes élémentaires. Ceci fait généralement du code concis, et, s'il est bien conçu, plus général (doit pouvoir gérer le cas quelles que soient les dimensions des objets d'entrée).
    • Pour information, d'après plusieurs tests (cf dans répertoire testsuite/ test_plot_benchmark), aussi bien en calcul pur qu'en affichage, GDL et IDL se tiennent à mieux que 20%, sauf situation exceptionnelle (merci de remonter les cas) ou système particulier (sous Debian, des écarts plus importants ont été relevés). Un gros travail a été fait sur les multi-cœurs pour GDL 0.9.2 (openmp) et GDL est fréquemment plus rapide qu'IDL 7 et 8 sur 8 et 16 cœurs sur un jeu de tests de calculs lourds.
    • Par ailleurs, lorsque le code est convenablement écrit des deux côtés, IDL et Matlab sont comparables en temps de calcul (test sur des FFT); donc GDL aussi ...
  • Nouveautés :
    Voir le fichier http://gnudatalanguage.cvs.sourceforge.net/viewvc/...

    • depuis la version 0.9rc4 : notamment progrès sur les fonctions autour des strings, et famille FILE_*, DIALOG_PICKFILE
    • depuis la version 0.9rc3 : NEWTON et BROYDEN, fonctions de Besel pour les ordres non entiers, de nombreuses subtilités sur les formats ASCII à la C et à la Fortran
    • depuis la version 0.9rc2 les Splines, filtrage médian 1D/2D avec fenêtre
    • depuis la version 0.9rc1, ont été rajoutées les fonctionnalités importantes suivantes : RK4, CURSOR, VOIGT, SKIP_LUN
    • depuis la version 0.9pre4 les NaN et Inf sont gérés dans les graphiques (PLOT, ...)
    • dans le CVS (après 0.9.3), un usage large de Eigen3 est fait, avec des performances très intéressantes, non seulement sur les opérations matricielles coûteuses, mais aussi sur certaines opérations élémentaires, car des subtilités des CPU sont utilisés.
Contributions
  • Ne pas hésiter à reporter les problèmes (et les succès), si possible via le tracker SourceForge. Ce sont les demandes des utilisateurs qui guident les développements, les utilisateurs connus et réguliers semblent satisfaits de l'état actuel du logiciel !
  • Signaler les (éventuels) bugs, si possible avec un petit exemple auto-suffisant en se basant sur les dernières versions (0.9.3 ou, mieux, CVS) : http://sourceforge.net/tracker/?group_id=97659 [indiquer la plate-forme, les versions de l'OS, des bibliothèques actives (par exemple la sortie de "ldd gdl") est un plus].
  • Pour les utilisateurs de longue date d'IDL, merci de reporter les éventuels problèmes, les mots-clés manquants, les différences éventuelles de comportement... (pour des raisons historiques, certains mots-clef qui ont disparu de la documentation IDL actuelle sont toujours disponibles, et des vieux codes peuvent les utiliser : nous devons donc les gérer aussi)
  • GDL est réputé se comporter correctement sur les procédures et fonctions de la bibliothèque Astron largement utilisée en astronomie, ainsi, tout retour de problème sera bienvenu. Certains procédures récemment introduites dans IDL sont souvent utilisées par Astron: nous évitons ces problèmes en indiquant à Astron que GDL se comporte comme un vieil IDL.
  • Faire des essais (compilation, tests) sur des plates-formes exotiques ou nouvelles (fut un temps, les nouveaux Mac à processeur Intel ont posé problème pour la version actuelle d'une bibliothèque externe mais nécessaire (Plplot)).
  • Il est relativement aisé d'ajouter en C++ des fonctionnalités intrinsèques simples, en se basant sur du code C++ GDL existant et du code externe (par. ex. la GSL). Ainsi le code (quoique incomplet par rapport à IDL) des 4 fonctions de Bessel en C++ a été ajouté après une après-midi de travail par un non-spécialiste.
  • Ne pas hésiter à soumettre une version corrigée de code en syntaxe GDL (fichiers de l'arborescence src/pro/) ou un bout de code utile (si sous licence GPL).
  • Ne pas hésiter à demander le statut de tel ou tel point. Du code non publié existe (caractères mathématiques dans les titres des "plot", ...)
Fiche logiciel validé
  • Création ou MAJ importante : 20/10/13
  • Correction mineure : 04/06/19
Mots-clés

Mozilla Firefox : navigateur Internet

Description
Fonctionnalités générales
  • Navigateur Internet multiplateforme
  • Lecteur de flux RSS basique via les "bookmarks"
  • Debugger de page web
Autres fonctionnalités

Ces fonctionnalités sont accessibles dans la version de base :

  • Greffons (plugins) pour étendre les possibilités du logiciel (cf champ "Logiciels connexes" ci-dessous).
  • Gestion des onglets.
  • Anti-phishing (contrôle contre les fraudeurs pour obtenir des renseignements personnels).
  • Gestionnaire de téléchargement.
  • Correcteur orthographique intégré.
  • Barre de menu "intelligente" avec complétion automatique.
  • Gestion des flux RSS.
  • Diverses fonctions d'analyse et console javascript avec visualisation 3D des éléments XML d'une page web.
  • Gestionnaire des préférences et paramètres par défaut : c'est une caractéristique des applications de Mozilla qui répertorie les paramètres de l'application (connu sous le nom préférences) qui sont lues à partir du profil des fichiers prefs.js et user.js. et de défaut de l'application.
  • Synchronisation des marque-pages, historique de navigation, préférences, mots de passe, formulaires pré-remplis, et les 25 derniers onglets ouverts à travers différents ordinateurs.
  • Installation d'add-on en un seul click.
Interopérabilité

Conforme aux normes du World Wide Web Consortium (HTML, XHTML, JavaScript/ECMAScript, SVG, HTML5, CSS3, etc.)

Contexte d'utilisation dans mon laboratoire/service
  • Utilisé quotidiennement comme navigateur par les auteurs de cette fiche ainsi que par de très nombreux utilisateurs des laboratoires et universités (entre autres).
  • Mise au point des feuilles de style "en direct" par utilisation de l'extension Firebug ou directement par une extension intégrée.
  • Développement web.
Limitations, difficultés, fonctionnalités importantes non couvertes
  • Il peut être déconcertant pour le grand débutant de devoir ajouter des greffons pour obtenir certaines fonctionnalités devenues au fil du temps assez indispensables. La quantité de greffons, et le côté gadget de beaucoup d'entre eux, peut décourager ou encourager son usage en fonction du profil de l'utilisateur.
  • L'installation à la main du navigateur est une opération lourde pour l'utilisateur. Cependant l'intégration du choix du navigateur dans Windows va faciliter cette installation et améliorer la visibilité de Firefox.
  • Mozilla adopte la même stratégie que sur mobile, en se reposant sur des composants logiciels tiers.

    Exemple : Firefox décode les vidéos H.264 en HTML5 (codec propriétaire et payant pour lire des vidéos Youtube, Vimeo ou Dailymotion) en s’appuyant sur des composants installés sur l'ordinateur d'installation.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

La plupart des distributions GNU/Linux intègrent Mozilla Firefox par défaut, cependant les distributions qui ne l'intègrent pas le proposent dans les paquets officiels.

La fondation Mozilla propose des versions ESR (Extended Support Release) qui ne bénéficieront que des mises à jour de sécurité pendant 10 mois (ce qui facilite le support d'applications sur une durée donnée, par exemple l'application CNRS SIRHUS).

Plates-formes
  • Windows
  • Mac OS X
  • GNU/Linux
  • Unix (diverses plates-formes, avec parfois du retard en version)
Logiciels connexes

Modules pour étendre les possibilités du logiciel :

Voici des modules les plus utilisés :

  • NoScript : extension permettant de contrôler finement l'exécution de code JavaScript. Augmente la sécurité en protégeant des attaques de type XSS.
  • Adblock Plus : anti publicités.
  • Web Developer.
  • Firebug : debbuger pour développeur.
  • LinkChecker : vérifie la validité des liens d'une page.

Version portable sur une clé USB, Framakey.

Autres logiciels aux fonctionnalités équivalentes

Une liste est disponible ici : http://fr.wikipedia.org/wiki/Navigateur_Web

Environnement de développement
Type de structure associée au développement

Fondation Mozilla

Eléments de pérennité

La fondation Mozilla a des ressources propres désormais non négligeables, obtenues pour partie par des contrats, et pour une autre par des accords commerciaux (la page par défaut est le moteur de recherche Google par exemple).

Références d'utilisateurs institutionnels
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur

Liste des raccourcis clavier : http://mozinet.free.fr/moz/firebird/raccfirebird.html
Un support par des bénévoles est disponible ici : http://support.mozilla.com/fr/kb/poser-une-question

Divers (astuces, actualités, sécurité)

- Une lecture de la liste des raccourcis clavier permet de gagner en productivité : http://mozinet.free.fr/moz/firebird/raccfirebird.html
- Reprise des sessions en cas d'erreur avec reprise des téléchargements en cours.
- Il existe une fonction de mise à jour automatique non seulement pour le navigateur lui-même mais aussi pour les modules complémentaires
- Évidemment, il existe de nombreux thèmes
- Un usage de certains modules (Addblock, flashblock) permet d'éliminer la plupart des publicités en ligne.
- Il est possible de synchroniser ses mots de passes et marque-pages entre tous ses postes grâce à Firefox Sync.
- Il y a un historique des onglets permettant de rouvrir des onglets fermés par erreur.
- Intègre en standard un champ permettant de lancer directement des recherches sur différents moteurs (https://addons.mozilla.org/en-US/firefox/search-to...).
- Il est possible d'utiliser les versions en avant première, d'un seul clic.

Mozilla initie le projet « Cookie Clearinghouse » pour limiter la publicité par une meilleure gestion des cookies.

Contributions
Fiche logiciel validé
  • Création ou MAJ importante : 04/01/12
  • Correction mineure : 27/11/12
Mots-clés
Pour aller plus loin
  • Fiches logiciel PLUME connexes : Emacs, Vim

jEdit : éditeur de texte multiplateforme et multilangage de programmation

Description
Fonctionnalités générales

jEdit permet d'éditer des fichiers textes, et est très commode pour faire de la programmation, quelque soit le langage utilisé (même xml/html).
Il existe un très grand nombre de modes d'édition : pour un fichier donné le mode est sélectionné automatiquement à partir de l'extension.
jEdit dispose de la coloration syntaxique et de l'indentation automatique (les deux étant configurables).
Il est possible d'éditer plusieurs textes simultanément, soit dans plusieurs fenêtres, soit dans plusieurs zones de la fenêtre.
L'ergonomie du logiciel est excellente, le système de menus relativement standard, permet à l'utilisateur novice de démarrer dans de bonnes conditions.
On peut imprimer à partir de jEdit (soit l'intégralité du texte, soit la sélection uniquement).
Le chercher-remplacer est assez bien développé, il offre les possibilités suivantes :

  • Recherche vers l'avant/arrière, en ignorant ou pas la casse, utilisation d'expressions régulières
  • Recherche dans le buffer seul ou dans tous les buffers ouverts
  • Possibilité de rappeler les dernières opérations de recherche-remplacement
Autres fonctionnalités

Multiplateforme:
Ecrit en java, jEdit s'installe partout, le fonctionnement est rigoureusement identique sur toutes les plateformes (j'ai testé gnu/linux et microsoft windows).

Plugins
Il existe de très nombreux plugins permettant d'étendre les fonctionnalités, très simples à installer. Un système de gestion des dépendances provoque l'installation automatique de certains plugins lorsque c'est nécessaire.
Parmi ceux-ci, les plugins suivants me semblent intéressants :

  • Sessions, permet d'ouvrir ou fermer un ensemble de fichiers en une seule commande (notion de "projet" dans d'autres logiciels)
  • JDiffPlugin permet de comparer deux buffers ouverts. Bien pratique, mais pas aussi puissant que la fonctionnalité équivalente d'emacs ou qu'un outil comme tkdiff
  • JTidyPlugin très utile pour éditer des fichiers html : un système de complétion automatique des balises facilite grandement l'édition de ces fichiers, en particulier on voit immédiatement quelles sont les balises ouvertes.
  • Code2HTML permet de lire un buffer ouvert, par exemple en C ou en perl, et génère du code html permettant d'afficher le programme en html avec les colorations syntaxiques.
  • BufferTabs crée des onglets, permettant de passer aisément d'un buffer ouvert à l'autre.
  • FTP permet d'ouvrir des fichiers sur une machine distante en utilisant les protocoles ftp ou sftp. Pour peu que la connexion soit de bonne qualité, on travaille exactement comme si on était en local ou sur un volume nfs.
  • Il existe aussi tout un ensemble de plugins facilitant le traitement des fichiers xml (validateur, manipulation xslt, requêtes xQuery, etc.), plugins accessibles à l'url http://plugins.jedit.org/list.php?category=4.

Pour installer un plugin, il suffit d'ouvrir le plugin manager, de cliquer sur l'onglet "install" et de cocher le plugin à installer. Celui-ci est automatiquement téléchargé et installé. Certains plugins demandent à ce que jEdit soit redémarré, mais d'autres plugins sont immédiatement opérationnels. Il existe une option permettant d'installer tous les plugins d'un coup, mais je ne la recommande pas : en effet, ils sont très nombreux et parfois redondants... et pas tous utiles !

Il est très facile d’écrire des macros pour jEdit et d'automatiser ainsi des tâches complexes sur de gros volumes de fichiers. On peut pour cela utiliser la fonction d’enregistrement de tâches.

Interopérabilité

Tout fichier texte peut être édité avec ce logiciel.

Contexte d'utilisation dans mon laboratoire/service

J'utilise jEdit quotidiennement toute la journée pour mon travail de développement (c++, html, perl, javascript,..). J'ai conçu plusieurs sites web en utilisant jEdit avec son plugin html.
Son installation est très simple sur tous les environnements. Enfin, signalons que je ne l'ai (presque) jamais vu planter...

Pour les utilisateurs de systèmes multiples, JEdit peut s'avérer une excellente passerelle pour l'édition de fichiers depuis plusieurs systèmes (linux - windows par exemple). Un exemple est l'utilisation de JEdit comme Editeur LaTeX, qui permet aux utilisateurs de travailler avec leur environnement TeX sous linux (latex) comme sous windows (miktex).

Limitations, difficultés, fonctionnalités importantes non couvertes
  • On ne peut pas ouvrir une page en lecture seule
  • Quelques soucis d'indentation en mode perl (mais jEdit n'est pas le seul dans ce cas...)
  • En mode html, l'indentation n'est pas automatique : il faut indenter à la main, ensuite les lignes suivantes s'alignent automatiquement. Cela n'est pas aussi sympathique qu'en mode programmation (perl, C, etc.)
  • Il n'est pas possible de déboguer à l'intérieur de jEdit, comme on le fait par exemple avec emacs.
Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

jEdit est intégré au moins chez Debian et ubuntu. Si votre distribution ne vous le propose pas, sachez que son installation est très simple, et peut se faire de plusieurs manières : Installateur java, Installateur windows ou paquet mac OS X, etc.

Des paquets natifs permettent une installation simplifiée sur gentoo, freeBSD, Debian/ubuntu. Sur ces deux dernières distributions, il suffit de copier-coller la ligne qui va bien dans le fichier sources.list, et hop jEdit est intégré au système.

La version "stable" est la 4.4 et nécessite java 1.6.

Plates-formes

Toutes les plateformes qui ont java (unix-like, Windows, mac OS, VMS...)
Attention, il faut installer le jdk de Sun, en version 1.5 de préférence (et obligatoirement pour utiliser jedit 4.3).

Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement

Démarré au départ par un développeur solitaire, Slava Pestov, jEdit est développé aujourd'hui par une équipe de développeurs internationale.

Eléments de pérennité

Le développement se fait "lentement, mais sûrement". La version "stable" actuelle date de 2004, mais il y a plusieurs releases mineures par an sur la version de développement (que je n'ai pas testée).

Références d'utilisateurs institutionnels
  • On peut citer le LSIS (Laboratoire des Sciences de l' Information et des Systèmes - Marseille) pour par exemple travailler avec des documents LaTeX depuis windows sans avoir de problème d'encodage.
  • A l'ENS LSH, jEdit est utilisé notamment au sein de l'Unité numérique de la Direction de la Recherche, d'une part pour des opérations de nettoyage/formattage de gros corpus de textes, qui sont effectuées via des macros écrites dans jEdit, et d'autre part comme éditeur de code : java, php, html, css, etc. Les plugins "XML/HTML" disponibles sur le site de jEdit en font également un éditeur XML très utile.
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)

Lorsque vous démarrez, n'hésitez pas à aller voir les options. Il y a deux séries d'options à modifier : les options globales (éventuellement liées au mode de fichier édité), et les options liées à un seul buffer. Les options globales suivantes m'ont paru intéressantes :

  • copier-coller : par défaut, le bouton du milieu de la souris n'est pas actif. On peut changer ce comportement, de manière à ce que ce bouton permette le "coller" à la X11
  • Indentation, tabulation : les valeurs par défaut sont le plus souvent de 8, ce qui est à mon avis trop pour un programme un peu complexe. Il est possible de passer cette valeur à 2 ou 4
  • Soft Tabs : si l'on coche cette option, les caractères tab sont remplacés par des espaces, ce qui conduit à des fichiers plus gros, mais assure une meilleure portabilité de la mise en page d'un éditeur à l'autre (ou en cas d'impression)
  • UTF8 vs ISO-8859-15 : On peut fixer le jeu de caractères dans lequel on désire travailler pour les nouveaux fichiers. (section encodings). Si votre fichier ne correspond pas au jeu de caractères, jedit essaiera de le détecter automatiquement. Mais ce n'est pas toujours possible. Dans ce cas, vous pouvez cliquer sur Reload with encoding pour relire le fichier avec un autre codage de caractères. Par défaut, jEdit vous proposera une énorme (et donc pas du tout pratique) liste d'encodages. Vous pouvez, toujours grâce à l'option Encodings, limiter cette liste aux encodages dont vous avez besoin en pratique (UTF8 et ISO-8859-15 le plus souvent) (merci à Aurélien qui m'a suggéré cette astuce).
Contributions

Il est possible de contribuer à divers titres aux développement/extensions de jEdit : http://www.jedit.org/index.php?page=devel#help

Fiche logiciel validé
  • Création ou MAJ importante : 10/04/10
  • Correction mineure : 13/01/11
Mots-clés
Pour aller plus loin
  • Fiches logiciel PLUME connexes : ,

phpMyResa : réservation de ressources (salles...)

Une fiche Dév Ens Sup est en relation avec cette fiche, consultez-la pour plus d'informations :
Description
Fonctionnalités générales

Gestion de la réservation de ressources (salles de réunion, salles de cours, véhicules, matériel multimédia…)

Autres fonctionnalités

Les demandes de réservation sont validées par le gestionnaire du type de ressource qui est prévenu par mail. Un mot de passe associé à la réservation permet au propriétaire d'effectuer des modifications ou d'annuler.
L'intégration d'un calendrier au format iCal est proposée.

Interopérabilité

Webservices au format SOAP en cours de développement. Utilisation prévue avec INDICO ( http://indico.cern.ch ) et le système de gestion de vidéoconférences RMS ( http://rms.in2p3.fr )

Environnement du logiciel
Plates-formes

Toute plate-forme Web (Linux, Mac, Windows)
Nécessite l'installation d'un serveur web, de PHP et d'une base de données mysql (postgresql et oracle sont aussi supportées)

Autres logiciels aux fonctionnalités équivalentes

Une liste est disponible sur le site : http://www.ecdeveloppement.net/grr.htm
sinon :
- mrbs : http://mrbs.sourceforge.net/
- grr : http://grr.mutualibre.org/ (Gestion et Réservation de Ressources), issu initialement de mrbs

Environnement de développement
Type de structure associée au développement

EPST : CNRS-IN2P3

Eléments de pérennité

Utilisation dans la majorité des laboratoires de l’IN2P3. Evolution permanente du logiciel.

Références d'utilisateurs institutionnels

995 téléchargements : IN2P3, CNRS, Education Nationale, rectorats, lycées, mairies, associations diverses, …
Des téléchargements depuis l'étranger sont maintenant visibles

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

phpmyresa-l [at] in2p3 [dot] fr (en français)

Documentation utilisateur

Dans chaque installation il existe un lien ‘Aide ?’ et un lien ‘Tutorial’ – en anglais et en français

Divers (astuces, actualités, sécurité)

Il faut se créer un compte pour pouvoir télécharger le logiciel.
La version 4.0 intègre une procédure d'installation et de mise à jour, ainsi qu'une interface de configuration.

Contributions

Logiciel en PHP, le code est fourni, donc possibilité de contributions

Fiche logiciel validé
  • Création ou MAJ importante : 28/05/13
  • Correction mineure : 10/06/13
Mots-clés

R : analyse statistique et réalisation de graphiques

Description
Fonctionnalités générales

R est à la fois un langage de programmation et un logiciel pour l'analyse statistique et la réalisation de graphiques.

  • R permet de gérer et stocker des données.
  • R est un langage interprété qui permet les embranchements et les boucles.
  • Il existe de nombreux modules (packages) contenant des fonctions statistiques prédéfinies, comme les modèles linéaires et linéaires généralisés, les modèles de régression non-linéaire, l'analyse de séries temporelles, les tests de classification paramétriques et non-paramétriques, les méthodes de groupement et de lissage, les statistiques spatiales, les valeurs extêmes...
  • Les résultats obtenus par les calculs statistiques sont stockables, exportables et réutilisables dans des fonctions.
  • On peut exporter les graphiques sous divers formats (image ou forme vectorielle).
Autres fonctionnalités
  • La plupart des routines R sont écrites en R.
  • Les routines écrites pour S plus (logiciel équivalent commercial) sont généralement valables en R.
Interopérabilité
  • De nombreux packages de R sont directement issus d'autres logiciels ou langages (WinEdt, Perl, Tlc/Tk, Python, Winbugs...)
  • Le projet Bioconductor (http://www.bioconductor.org/) propose de nombreux packages dédiés à l'analyse de données biologiques.
  • R peut être utilisé depuis SAGE
Limitations, difficultés, fonctionnalités importantes non couvertes
  • Messages d'erreur parfois obscurs...
  • Gourmand en mémoire
Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Distributions linux

Plates-formes
  • GNU/Linux
  • Mac OS X
  • Windows 95 et versions suivantes.
    Aide en anglais, interface graphique sur Windows en français et en anglais.
Logiciels connexes
Autres logiciels aux fonctionnalités équivalentes
  • S plus, logiciel commercial.
  • SAS, logiciel commercial.
  • ROOT.
Environnement de développement
Eléments de pérennité
  • Largement utilisé, existence depuis 1997.
  • Les conférences annuelles depuis 2006.
  • R-journal.

R a été validé par la Food Drug Administration (fin 2008). Il peut donc être utilisé dans le cadre des études cliniques visant la mise sur le marche de nouveaux médicaments. SAS n'est donc plus le seul logiciel officiellement valide.

Le dossier de certification est disponible ( http://www.r-project.org/doc/R-FDA.pdf ).

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)

Portail Web (exécuter R depuis internet) http://www.math.montana.edu/Rweb/

Contributions

Il est possible de réaliser et de soumettre ses propres packages.

Fiche logiciel validé
  • Création ou MAJ importante : 13/01/11
  • Correction mineure : 31/01/12
Mots-clés

JUnit : Développement de tests unitaires Java

Description
Fonctionnalités générales

JUnit est un framework de tests unitaires pour le langage Java créé par Kent Beck et Erich Gamma. Les tests unitaires permettent de vérifier si le comportement de chaque méthode de chaque classe Java est bien celui désiré en fonction des entrées que l'on soumet (jeux de test/scénario).

JUnit fournit donc un cadre de développement et d'exécution pour ce type de tests.

JUnit est particulièrement adapté aux développeurs souhaitant faire du développement dirigé par les tests (Tests Driven Development) dont la particularité majeure est de développer le test unitaire avant le code lui-même. On décrit donc, par l'écriture d'un test unitaire, le comportement attendu d'une classe et ce n'est qu'à partir de ce moment que l'on commence à écrire le code de cette classe de façon à ce qu'elle passe le test. Si les tests sont correctement écrits et complets, on s'assure donc de développer des classes sans erreurs et répondant exactement à nos besoins.
JUnit est également un outil particulièrement utile pour réaliser des tests de non-régressions du fait qu'il permet d'avoir des tests automatisés et rejouables. En ré-exécutant les suites de tests après une correction, une modification ou une évolution du code, on peut s'assurer qu'il n'y a pas eu d'effets de bords sur le comportement du logiciel qui était déjà codé.
Enfin, on peut noter que la mise en place de tests unitaires permet d'améliorer les conditions de "transmissibilité" d'un code du développeur/auteur vers un autre développeur, en sécurisant les interventions d'un novice dans le code : cette démarche participe à un apport organisationnel, libérant, dans une certaine mesure, le développeur/auteur des tâches de maintenance.

Autres fonctionnalités

Il existe des tâches Ant permettant d'exécuter les tests et d'écrire les résultats dans des fichiers XML pour générer des rapports HTML présentant les résultats des tests.
Il existe aussi un plugin Maven pour générer ce type de rapports.

Interopérabilité

JUnit a été porté dans d'autre langage :
Ada (AUnit)
C# (NUnit)
C++ (CPPUnit)
Fortran (fUnit)
Delphi (DUnit)
Free Pascal (FPCUnit)
JavaScript (JSUnit)
Objective-C (OCUnit)
Perl (Test::Class and Test::Unit)
PHP (PHPUnit)
Python (PyUnit)
R (RUnit)
Haskell (HUnit)

Contexte d'utilisation dans mon laboratoire/service

Nous utilisons JUnit à travers le plugin Eclipse pour l'écriture de tests pour des applications Java (Web ou non) majoritairement pour des classes déjà existantes (très peu de développement dirigé par les tests).

Limitations, difficultés, fonctionnalités importantes non couvertes

L'utilisation de tests unitaires est un énorme atout pour le développement de logiciels de meilleure qualité. Cependant, l'utilisation de ce type d'outil ne garantit en aucun cas que le logiciel est complètement testé et qu'aucun bug n'est présent. En particulier, JUnit ne permet pas de réaliser :

  • Les tests d'intégration
  • Les tests fonctionnels
  • Les tests de couverture de code
  • Les tests de montée en charge

Il ne permet pas non plus de séparer les jeux de données des tests eux-mêmes.

D'autres outils (libres et commerciaux) existent sur le marché pour ce type de test.

L'écriture et l'exécution des tests unitaires lors d'un développement, que les tests soient écrits avant ou après le codage des classes, représente une charge de travail non-négligeable. Il y a encore souvent débat pour savoir si le temps passé à développer les tests unitaires est réellement justifié par un nombre suffisamment important de bugs détectés par ce moyen.
Cependant, on sait que plus les bugs sont détectés tardivement, plus ils sont difficiles et coûteux à corriger. Les tests unitaires présentent l'avantage indéniable de permettre une détection anticipée des bugs, donc une correction plus précoce, et par conséquent un gain sur le coût de la correction. Donc, si on s'interroge sur le rapport entre le temps passé à corriger des bugs tardivement dans un projet et le temps passé à les corriger quand ils sont détectés très tôt, on peut dire que les tests unitaires donnent de bons résultats (sans tenir compte de leurs nombreux autres avantages...).

La mise en œuvre précoce de tests unitaires est particulièrement bien adaptée à une approche "Test Driven Development". Pour les autres approches, l'utilisation des tests unitaires devrait se faire par rapport au besoin identifié : par exemple partage de code, sécurisation d'un changement important de code, clôture d'une phase du projet, .....

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Nativement, JUnit fournit 3 programmes d'exécution des tests (TestRunner) : un en ligne de commande et 2 à partir d'une interface graphique (AWT et Swing). Cependant, la majorité des IDE Java intègrent cet outil par l'intermédiaire de plugins : Eclipse, Netbeans, IntelliJ IDEA, JBuilder,...

Plates-formes

Machines virtuelles Java

Logiciels connexes

Il existe des frameworks de tests unitaires pour bien d'autres langages dont certains sont des portages de JUnit. D'une façon générale, on parle de la famille des frameworks de tests unitaires sous le nom de xUnit :

Dans le cadre de développement de tests unitaires en Java, on peut associer JUnit à des outils de créations de bouchons ou simulacres d'objets (mock objects). Ce type d'objet permet de simuler des objets complexes dont on a besoin pour exécuter certains tests ou des objets non encore implémentés.

Il est bien souvent utile de savoir si les tests unitaires sont exhaustifs c'est à dire si toutes les méthodes sont bien testées et même si chaque ligne de code est bien exécutée au moins une fois lors de l'exécution des tests, si tous les chemins possibles sont bien parcourus. C'est ce qu'on appelle la couverture des tests. Des outils existent pour vérifier la couverture des tests JUnit :

Il existe également des outils permettant de générer automatiquement les tests unitaires d'une classe et par extension, de tout un projet :

Autres logiciels aux fonctionnalités équivalentes

En ce qui concerne les tests unitaires au sens strict du terme dans le monde Java, JUnit a peu d'équivalents.

  • TestNG qui possède aussi des plugins d'intégration aux principaux IDE

Les autres outils relatifs aux tests sont généralement des extensions de JUnit ou ciblent d'autres types de tests dont voici une liste non-exhaustive :

  • WebTest : Open Source, pour applications Web, basé sur JUnit, centré sur la séparation entre les jeux de données et les tests.
  • Watij : Open Source, pour applications Web.
  • JWebUnit : Open Source, pour applications Web.
  • JXUnit : Open Source, centré sur la séparation entre les jeux de données et les tests.
  • JTestCase : Open Source, centré sur la séparation entre les jeux de données et les tests.
  • JFunc : Open Source, extension de JUnit pour les tests fonctionnels.
  • The Grinder : Open Source, orienté sur les tests de montée en charge.
  • JUnitEE : Open Source, fournit notamment une solution pour exécuter les tests JUnit dans une application J2EE.
  • Actiwate : Gratuit, pour les applications Web.
  • StrutsTestCase : Open Source, pour tester les actions des applications Web basées sur Struts.
  • JSFUnit : Open Source, tests des applications basées sur les JSF (Java Server Faces)
  • Cactus : Open Source, basé sur JUnit, pour les tests des applications J2EE.
  • ITP : Open Source, pour les applications Web.
  • WebInject : Open Source, pour les interfaces accessibles par HTTP (pages Web, Web Services).
  • JSystem : Open Source, tests système et fonctionnels.
  • Mauve : Open Source, tests sur les librairies Java.
  • JUnitPP : Open Source. Étend JUnit en proposant le chargement des jeux de données à partir de fichier properties.
  • JUnitPerf : Open Source, permet de mesurer le temps d'exécution des tests et de simuler plusieurs utilisateurs simultanés.
  • IValidator : Open Source, orienté sur les tests d'intégration dont les cas de tests sont décrit en XML.
  • Fitnesse : Open Source. Englobe un serveur Web, un wiki et un framework d'écriture de tests.
  • JTest : Commercial.
  • Tento : Commercial.
  • GJTester : Commercial.
Environnement de développement
Eléments de pérennité

Ce projet a été fondé par des leaders dans le domaine du génie logiciel Kent Beck (eXtreme Programming) et Erich Gamma (Design Pattern).
JUnit est LA référence pour les tests unitaires dans le monde Java depuis déjà plusieurs années. Une nouvelle version complétée et améliorée est produite environ tous les ans: le site junit.org est maintenu par une équipe de la société ObjectMentor, et les nouvelles versions sont produites par une équipe de 7 développeurs parmi lesquels on retrouve E. Gamma

Références d'utilisateurs institutionnels

Le CNAM, l'ENSICA, l'ENSEEIHT, l'INSA assurent une formation à JUnit dans leurs cursus.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

Il existe un groupe de discussion Yahoo autour de JUnit : http://tech.groups.yahoo.com/group/junit
et une liste consacrée aux annonces autour des modifications/évolutions de JUnit : https://lists.sourceforge.net/lists/listinfo/junit...

Documentation utilisateur

http://junit.sourceforge.net/#Documentation
Il existe beaucoup d'excellents tutoriaux sur la toile pour débuter avec JUnit : http://gfx.developpez.com/tutoriel/java/junit/

Divers (astuces, actualités, sécurité)

Depuis la version 4.0, l'écriture de tests et de suites de tests est simplifiée grâce aux annotations introduites par Java 5.
Dernière version (4.8.2) sortie en avril 2010.

Vous trouverez la description des patrons de conception (Design Pattern) de Junit ici.

Contributions

Il est possible de contribuer au niveau des développements : http://sourceforge.net/project/memberlist.php?grou...
Il est possible également de contribuer en proposant de nouveaux outils, articles, expériences, .. : http://www.junit.org/contribute

Syndiquer le contenu