dév. Web

Développement, programmation de sites Web
Mots-clés

Formation ENVOL 2014 : Tests et validation de logiciels

Malgré la situation difficile et pour le moment incertaine de PLUME, la formation permanente de la DR5 du CNRS, DevLOG, la DSI et des laboratoires du CNRS, avec le soutien par l'INRA, VetAgro-Sup et Inria, proposent une nouvelle édition de la formation ENVOL sur le thème "Méthodes de test et validation des logiciels" qui avait encore été initiée sous l'égide de PLUME.

Cette quatrième édition est la suite de celles qui ont été organisées :

  • en 2008 portant sur la valorisation de ces développements,
  • en 2010 amenant une vision plus concrète des outils et pratiques de développement et
  • dernièrement en 2012/2013 sur les aspects coopératifs du développement pour le logiciel libre.

Cette formation ENVOL 2014 aura lieu du 18 au 21 novembre 2014 à la Londe les Maures dans le Var.

Toutes les informations pratiques, ainsi que le contenu du programme sont en ligne.

L'inscription se fait sur formulaire électronique et est ouverte à tous les agents CNRS et INRA ainsi que ceux d'autres organismes qui s'intéressent aux spécificités de l'environnement enseignement supérieur et recherche (ESR).

Mots-clés

Journée commune aux réseaux RAISIN et CEPAGE - 14 novembre 2013 - Pessac

Les réseaux locaux Cépage et Raisin organisent une journée d'échange le 14/11/2013 à Pessac (33). Matinée réservée aux membres de Cépage et Raisin et après-midi dédiée à des présentations (Firebug et débogage natif des navigateurs, Joan Luc Laborda, introduction aux outils de gestions de code SVN et GIT, Damien Martin-Guillerez et futures actions).

Mots-clés

Création du groupe de développeurs du Languedoc-Roussillon DEV@LR

Suite aux JDEV2013, la création d'un réseau régional de développeurs en Languedoc-Roussillon a été lancée : DEV@LR. Pour plus d'information, s'inscrire à la liste dev_lr [at] services [dot] cnrs [dot] fr (en envoyant un mail à sympa [at] services [dot] cnrs [dot] fr
avec comme sujet "subscribe dev_lr [at] services [dot] cnrs [dot] fr").

Une demi-journée de présentation et formation sera organisée début 2014. D'ici là, le questionnaire https://intranet.lirmm.fr/limesurvey/index.php?sid... est disponible pour les personnes intéressées.

Mots-clés

ANF "Evolution des technologies de l’Internet" - 2 au 4 décembre 2013 - Paris

Une ANF intitulée "Évolution des technologies de l’Internet" est organisée (par la délégation régionale du CNRS Île de France Ouest et Nord) du lundi 2 au mercredi 4 décembre 2013 à Paris autour de Javascript, HTML 5 et CSS 3.

Pour en savoir plus : https://aresu.dsi.cnrs.fr/spip.php?article194
Pour se pré-inscrire (possible jusqu'au 6 novembre 2013) : https://sondage.projet-plume.org/index.php/332889/...

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 03/09/13
  • Correction mineure : 03/09/13
Mots-clés

tabwebexp : tableur web de saisie d'expériences multi-utilisateurs

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Système : UNIX-like, Windows, MacOS X
  • Version actuelle : 1 - 2012
  • Licence(s) : choix en cours, contacter l'auteur
  • Etat : utilisé en interne
  • Support : maintenu, sans développement en cours
  • Concepteur(s) : Gérard Henry
  • Contact concepteur(s) : www.latp.univ-mrs.fr/~henry
  • Laboratoire(s), service(s)... : LATP

 

Fonctionnalités générales du logiciel

Cette application est destinée à stocker les données d'une expérience. Par rapport à un simple tableur, elle permet de réunir simplement les saisies faites par plusieurs expérimentateurs, et de garder un historique des saisies. Cette caractéristique est essentielle dans le post-traitement. Les données à saisir sont variées et en grande quantité.

Pendant le post-traitement, il est important de différencier les mesures de chaque expérimentateur. Cet aspect multi-utilisateurs a conduit au choix d'une application web, et à la mise en œuvre d'une base de données.

Les fonctionnalités sont :

  • authentification et gestion de session par utilisateur
  • saisie pour tous les sujets par jour ou pour tous les jours par sujet
  • extraction des données selon certains critères (par utilisateur, pour tous les utilisateurs, les plus récentes)
  • plusieurs formats d'exportation (txt, csv, monolix)
  • graphiques avec choix des courbes par sujet, expérimentateur, site, ...

L'installation de cette application nécessite un serveur web et le module python. Le développement s'appuie sur le framework Django.

Contexte d’utilisation du logiciel

L'application est en cours d'utilisation depuis le printemps 2012, par des pharmaciens et des mathématiciens, et dans le projet ANR Memorex.

L'application est déployée sur un serveur d'applications de mon laboratoire, le LATP.

JDEV2013 : Journées nationales sur le DEVeloppement logiciel dans la Recherche et l'Enseignement Supérieur, Septembre 2013, Palaiseau

Fiche ressource Article, événement, site web...
  • Création ou MAJ importante : 26/08/13
  • Correction mineure : 05/09/13
Mots-clés

JDEV2013 : Journées nationales sur le DEVeloppement logiciel dans la Recherche et l'Enseignement Supérieur, Septembre 2013, Palaiseau

JDEV 2013

Lieu JDEV2013

Cette 2° édition des JDEV aura lieu les 4-5-6 septembre 2013 à l’Ecole polytechnique (Palaiseau 91).

Programme JDEV2013

Le programme de cette édition des JDEV est divisée en 8 thèmes :

Planning JDEV2013

Le planning détaillé est disponible sur le site des JDEV2013.

Webcast JDEV2013

Un webcast des plénières et des présentations est disponible ici.

PLUME aux JDEV2013

Un stand PLUME et divers responsables thématiques de PLUME seront présents durant ces journées : n'hésitez pas à venir nous rencontrer et à échanger !

Fiche logiciel validé
  • Création ou MAJ importante : 05/08/13
  • Correction mineure : 04/06/19
  • Rédacteur de la fiche : Vladimir Daric - Institut de Génétique et Microbiologie (UMR 8621) (CNRS, Université Paris Sud)
  • Relecteur(s) : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))
    Fernando Niño (Legos)
  • Contributions importantes : Une relecture "externe" a été faite par R. Le Gac (CPPM), et prise en charge par Dirk Hoffmann.
  • Responsable thématique : Damien Ferney (Laboratoire de mathématiques - Clermont-Ferrand)
Mots-clés

Django : framework de développement web en python

Description
Fonctionnalités générales

Django est un framework de développement d'applications web. Il est conçu selon le modèle MVC et dans le respect de la philosophie DRY.

ORM (Object-relational mapper)

Django fournit un ORM (mapping objet-relationnel). Le modèle de données dans Django se présente comme une classe Python. Une fois celui-ci définie, l'ORM génère une interface d'accès aux données (API) en Python très complète.

Il est également possible de continuer d'écrire les requêtes en SQL.

Interface d'administration de données

Une application d'administration de données est fournie avec le framework. Celle-ci génère automatiquement l'interface HTML, très personnalisable, pour administrer les données.

URLs élégantes

Facile à utiliser, le mappeur d'urls (contrôleur) n'impose aucune contrainte. L’écriture d’applications REST devient un jeu d'enfant.

Templates

Un langage de templates intuitif et extensible permet de bien séparer la présentation du traitement et des données.

Système de cache

Pour des sites à fort trafic, Django offre plusieurs stratégies de cache. Pour cela vous pouvez choisir d'utiliser la mémoire vive, la base de données ou le système de fichier. Pour ne citer que ces deux solutions, Django peut facilement être couplé avec Squid ou memcached.

Internationalisation (i18n) & Localisation (l10n)

Django intègre les outils nécessaires permettant l'internationalisation des applications mais également la localisation de dates et nombres.

authentification

Django fournit son propre système d'identification et d'authentification. Celui-ci gère également des groupes. Il est possible de coupler celui-ci, à l'aide de plugins, avec LDAP, Kerberos ou Apache (et Shibboleth).

L'ensemble de permissions existantes peut aisément être étendu pour correspondre à vos besoins.

Autres fonctionnalités

Introspection de la base de données

Django peut analyser la structure de la base de données et générer le modèle.

Serveur web de développement

Le serveur web fourni permet de démarrer le développement très rapidement. Aucune configuration additionnelle n'est nécessaire.

Django apps

De très nombreux plugins sont disponibles sur PyPI.

Interopérabilité

Sont nativement supportés :

Et via des adaptateurs non officiels :

  • Sybase SQL Anywhere
  • IBM DB2
  • Microsoft SQL Server 2005
  • Firebird
  • ODBC
Contexte d'utilisation dans mon laboratoire/service

Dans le cadre de développement d'applications web, nous utilisons beaucoup Django avec le plugin Django admin site. Celui-ci permet une grande personnalisation et nous donne la possibilité de fournir des interfaces de gestion de données très rapidement.

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

Django n'est pas un CMS ni un serveur d'application.

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

La méthode conseillée est d'utiliser easy_install ou pip donc la distribution du PyPI (aka the CheeseShop).

Django est également présent dans la plupart de distributions Linux sous forme de package.

Généralement les mises à jour sont d'abord disponibles sur PyPI.

Plates-formes

Linux, OSX, Windows

Logiciels connexes
Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement
Références d'utilisateurs institutionnels

Liste complète de sites utilisant Django

Parmi lesquels :

  • Criminocorpus, UMR 8560 Centre A. Koyré, Ministère de la Justice (Direction de l’administration pénitentiaire), Sciences Po (Centre d’histoire), Université Paris 5 Descartes (Service historique de la Bibliothèque inter-universitaire de médecine de Paris), Archives nationales d’Outre-Mer
  • Dezède, laboratoires CÉRÉdI (EA 3229, université de Rouen), GRHIS (EA 3831, université de Rouen) et IRCL (UMR 5186, CNRS)
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)

Securité

Les applications web sont des cibles privilégiés pour les attaques informatiques. Django offre une sécurité accrue par rapport à d'autres solutions de ce type. La protection contre attaques les plus courantes est prise en charge par le framework : Cross site scripting (XSS), Cross site request forgery (CSRF), injection SQL, Clickjacking.

Un chapitre dans le documentation Django est consacré à la secutité.

Les alertes de sécurité sont annoncées sur cette liste.

Astuce

Il est préférable d'installer Django dans un environnement virtuel créé à l'aide de virtualenv. De cette manière Django dispose de son propre interpréteur Python. Il est alors possible de contrôler les versions de toutes les librairies dont votre application a besoin, de manière dissociée de celles du système hôte.

SourceSup : plate-forme pour l'hégergement de projets logiciels

Fiche ressource Article, événement, site web...
  • Création ou MAJ importante : 24/07/13
  • Correction mineure : 24/07/13
Mots-clés

SourceSup : plate-forme pour l'hégergement de projets logiciels

Cette fiche est une nouvelle version de la fiche archivée suivante.

  • SourceSup est une plate-forme web de gestion de projet, destinée aux établissements d'enseignement supérieur (universités, écoles d'ingénieurs, ...) et aux organismes de recherche français. Un projet hébergé par SourceSup peut être diffusé publiquement ou bien être privé, il dépend d'un établissement, mais des utilisateurs d'autres établissements peuvent y contribuer. SourceSup est un service inclus dans la fédération éducation supérieure - recherche.
  • Les outils proposés sont :

    • Hébergement et gestion collaborative de sources par Subversion, git.
    • Serveur d'intégration continue Jenkins.
    • Serveur d'analyse de code Sonar.
    • Listes de diffusion.
    • Forums de discussion.
    • Outil de rapport de bogues, de demande de fonctionnalité, de gestion de patch, gestion de tâches.
    • Gestion de documentation, gestion de sondages, hébergement de pages web.
  • Le service SourceSup est gratuit et ouvert à tous les membres de l'éducation supérieure et la recherche.
  • Le service SourceSup est fédéré, toute personne ayant un compte dans la fédération d'identité nationale de l'éducation supérieure - recherche peut y accéder. Des comptes CRU peuvent aussi être utilisés dans des cas particulier.

OpenSearch : spécification pour standardiser les fonctions de recherche en ligne

Fiche ressource Article, événement, site web...
  • Création ou MAJ importante : 21/05/13
  • Correction mineure : 21/05/13
Mots-clés

OpenSearch : spécification pour standardiser les fonctions de recherche en ligne

  • http://www.opensearch.org
  • Type de ressource : résumé
  • Date de publication du document ou de l'événement : 2005
  • Auteur(s) ou responsable(s) : A9 (filiale d'Amazon.com)

Description courte :

OpenSearch est une spécification qui offre des services de recherche sur un site Internet et ce, indépendamment de la technologie du moteur de recherche utilisé par ce site. L'objectif est de proposer un standard pour la recherche et la publication sur Internet.

Avec cette technologie, il est ainsi possible d'agréger et d'afficher les résultats de plusieurs sites de recherche différents. On peut par exemple effectuer la même requête sur une base de données documentaire, un dictionnaire en ligne et un wiki, et afficher les résultats sur une même page.

Il est également possible de rajouter son moteur de recherche sur n'importe quel client de recherche qui contient un agrégateur OpenSearch (dans lequel on peut configurer son fichier de description OpenSearch). L'un des exemples d'utilisation les plus connus de cette technologie est l'intégration de listes de sites de recherche dans les navigateurs web (champ de recherche situé à droite de la barre d'URL sur Firefox et Internet Explorer).

Documents de standardisation : La dernière spécification se trouve ici : OpenSearch 1.1 (Draft 5)

Description détaillée :

OpenSearch ne remplace pas un moteur de recherche mais propose donc une surcouche afin d'uniformiser les formats de publication. En ce sens, on peut apparenter cette technologie à un « service web » pour la recherche sur Internet.

Techniquement, OpenSearch utilise XML et les flux de syndication (RSS ou Atom).

Pour pouvoir offrir tous les composants nécessaires à la recherche standardisée sur Internet, la spécification OpenSearch est composée de quatre formats complémentaires :

  • OpenSearch description document

    C'est un fichier XML qui identifie et décrit le moteur de recherche. En plus de l'adresse du namespace de la spécification «http://a9.com/-/spec/opensearch/1.1/», ce fichier doit contenir au moins les 3 balises obligatoires suivantes : ShortName pour le nom du service, Description pour sa description et Url qui contient l'adresse du site de recherche.

  • OpenSearch URL template syntax

    Ce format contient différents paramètres qui permettent de décrire la syntaxe de recherche utilisée par le moteur de recherche. Il précise notamment les règles de grammaire de l'attribut template de la balise Url utilisée dans le document de description précédent.

  • Opensearch Query element

    Ce format permet de configurer des requêtes spécifiques par un client de recherche. Il est composé d'un ensemble d'attributs de la balise Query. On peut par exemple proposer un exemple de requête qui peut être effectuée sur le moteur de recherche ou encore afficher des résultats avec des mots proches de celui utilisé par la requête (mais contenant une faute d'orthographe par exemple).

  • OpenSearch response elements

    C'est le format de présentation des résultats de recherche. Les formats possibles nativement sont RSS 2.0 et Atom 1.0. D'autres formats de publication sont possibles comme HTML/XHTML.

En plus de ces formats, il existe plusieurs extensions, parmi lesquelles :

  • Referrer

    Permet de fournir des informations sur la source effectuant la recherche, comme par exemple le logiciel client utilisé

  • Relevance

    Permet d'indiquer le score de chaque résultat d'une recherche donnée

  • Suggestion

    Permet l’auto-complétion de mots dans le champ de recherche.

Pour l'utilisation de chacune de ces extensions, il faudra ajouter l'adresse du namespace XML de la spécification dans le fichier de description.D'autres extensions sont encore à l'état de draft mais offriront des possibilités intéressantes, notamment :

  • Geo extension

    Propose de fournir un mécanisme standard pour effectuer des recherches sur des données géographiques, comme des coordonnées ou des noms d'endroits.

  • Mobile extension

    Propose un mécanisme standard pour adapter les recherches de type OpenSearch aux terminaux mobiles, notamment dans l'affichage des résultats.

Utilisations recommandées :

Tout site utilisant OpenSearch peut être directement intégré au navigateur en utilisant la zone de recherche adaptée.

OpenSearch peut également être utilisé sur des applications hébergeant des moteurs de recherche et fournissant des services en ligne. Cela peut rendre l'application plus générique et permet d'accepter des requêtes à partir d'autres applications. Un exemple d'application en milieu scientifique est le logiciel SITools2 qui intègre nativement un champ de recherche OpenSearch. D'autre part, de nombreux CMS ou wiki implémentent opensearch soit de manière native soit grâce à un plugin: par exemple WordPress, SPIP,Drupal, PLONE, GetNetwork, DokuWiki, MediaWiki

OpenSearch est également très utilisé pour les recherches sur les sites bibliographiques car contenant de multiples bases de données provenant de sources différentes (voir par exemple le site de la revue internationale Nature : http://www.nature.com/opensearch).

Exemple de mise en œuvre :

Pour pouvoir configurer un service OpenSearch sur un moteur de recherche, il faut effectuer les trois étapes suivantes :

  • Configurer le moteur de recherche pour proposer en option une réponse au format RSS ou Atom (cela permettra d'utiliser les paramètres du format OpenSearch response elements)

  • Créer un fichier de description au format OpenSearch description document

    Le fichier minimum doit être de la forme :

    <?xml version="1.0" encoding="UTF-8"?>
    <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
      <ShortName>${name}</ShortName>
      <Description>${name}</Description>
      <Url type="application/html" template="${url}/suggest?q={searchTerms}">
      </Url>
    </OpenSearchDescription>

    Où ${name} est le nom du site et ${url} l’adresse du site.

  • Publier le fichier précédent en ajoutant un lien dans le header de la page d'accueil du site de recherche.

    Si par exemple le fichier s'appelle opensearch.xml :

    <link rel="search" type="application/opensearchdescription+xml" title="${name}" href="${url}/opensearch.xml">

Une étape supplémentaire peut être d'envoyer ce fichier de description à l'un des annuaires de moteurs de recherche supportant OpenSearch pour faire connaître le service de recherche.

Il existe en outre de nombreuses bibliothèques qui implémentent les services OpenSearch. Une liste détaillée se trouve ici :
http://www.opensearch.org/Community/OpenSearch_sof...

 

Mots-clés

3ème journée LoOPS autour d'Eclipse - 23 mai 2013 - Orsay

Le jeudi 23 mai prochain aura lieu au LAL à Orsay la troisième journée du réseau LoOPS, dont le thème principal est l'utilisation d'Eclipse : http://reseau-loops.github.io/journee_2013_05.html

L'inscription est gratuite mais obligatoire : http://indico2.lal.in2p3.fr/indico/confRegistratio...

Syndiquer le contenu