Planet Libre-entreprise

October 02, 2017

Easter-eggs

Easter-eggs au Paris Open Source Summit 2017 les 6 et 7 décembre

Venez nous rencontrer les mercredi 6 et jeudi 7 décembre 2017 au POSS, stand B14-B16, en face du Village Associatif.

Jours et horaires d'ouverture :

  • Mercredi 6 Décembre 2017 : 8h30 - 19h
  • Jeudi 7 Décembre 2017 : 9h - 18h

Lieu :
DOCK PULLMANN - 87 avenue des magasins généraux à Aubervilliers
(à 100 mètres de la Porte de la Chapelle).

by Anne Dillard at October 02, 2017 03:00 PM

September 01, 2014

Easter-eggs

Les labels PME ? 3 bonnes raisons de s'y intéresser - Bpifrance

Article publié le 1 septembre 2014 sur le site de bpifrance

Export, innovation, environnement… Les labels destinés aux PME se multiplient. À quoi servent-ils ? Sont-ils vraiment utiles ? À condition de bien choisir, la réponse est oui : un label peut apporter des avantages décisifs.

Trouver le label qui correspond vraiment au profil et à l'activité de son entreprise n'est pas simple. Les labels se multiplient et il est conseillé de bien valider sa démarche avant de se lancer. Le temps passé doit se justifier par des retours concrets. Surtout, rester dans le champ des labels officiels est plus que recommandé.

Pourtant, décrocher un label peut apporter de multiples avantages, que ce soit pour décrocher des financements, conquérir des nouveaux clients ou asseoir sa légitimité. Trois bonnes raisons de s'intéresser à une démarche de labellisation !

1. Décrocher des financements

« Notre premier objectif en demandant la labellisation « Économie sociale et solidaire » était de faciliter les démarches administratives pour l'obtention de prêts ou de subventions » explique Pierre-Yves Dillard, fondateur d'Easter Eggs, une SSII parisienne. Cette entreprise du Numérique Libre a opté pour un actionnariat constitué par les salariés, qui perçoivent tous le même salaire et élisent chaque année leurs dirigeants. Ce qui, précisément la rendait éligible au label ESS.
Accéder à des soutiens financiers est souvent la première motivation des PME qui tentent l'aventure d'un label. Cet aspect est par exemple inclus dans le label French Tech, qui sera accordé aux territoires innovants : les start-up sélectionnées de ces régions labellisées accéderont à des soutiens financiers et des accompagnements.

2.Développer ses réseaux et conquérir de nouveaux clients

Cultiver son réseau est aussi une finalité importante pour les PME candidates à la labellisation. « Intégrer des listings et être contacté par des entreprises sensibles à ce type de label. C'est ainsi que nous avons commencé à travailler avec de nouveaux clients, ce qui nous a positionné dans ce milieu professionnel », précise Yves Dillard. Dans le cas d'Easter Eggs, la reconnaissance de son statut « d'entreprise sociale et solidaire » lui a permis de cultiver son réseau.
Dans un autre domaine, le label RGE (Reconnu Garant de l'Environnement) est devenu tout récemment un avantage commercial officiel : un particulier qui voudra bénéficier des prêts à taux zéro et crédits d'impôts devra obligatoirement faire appel à une entreprise du bâtiment labellisée.

3.Intégrer une communauté d'entreprises

Au-delà des aspects commerciaux, le label a permis à Easter Eggs de rejoindre « une communauté de sens » estime son fondateur. Ce sentiment d'appartenance à une communauté fondée autour de la qualité, de la responsabilité sociale ou encore du respect de l'environnement a un impact important sur les salariés et sur tous les partenaires de l'entreprise, publics ou privés. Il valide l'image de compétence et de sérieux de l'entreprise.

Pierre-Yves Dillard, estime pour sa part que les labels doivent prouver leur valeur en appliquant des « critères de sélection stricts, assortis de contrôles systématiques, proche d'une démarche de certification. » Avec un bémol : la certification est une démarche plus coûteuse pour les PME, qui se justifie surtout pour des domaines très spécialisés. Plus généraliste, le label est aussi plus accessible. Ce qui ne l'empêche pas, s'il est bien choisi, d'apporter une longueur d'avance !

Lire l'article sur le site de la bpi france

September 01, 2014 01:59 PM

June 17, 2014

Easter-eggs

Ticketing avec Request Tracker "RT"

Suivi d'actions et gestion d'incidents

Request Tracker est un logiciel libre édité par la société « Best Pratical Solutions » sous licence GPL. RT est le logiciel libre de référence pour les helpdesk en matière de gestion d'incidents. Il est utilisé par de nombreuses entreprises ou organisations parmi lesquelles : la NASA, Merrill Lynch, Freshmeat, Free Telecom,... (voir la liste)

Fonctionnalités par défaut

Request Tracker
  • déclarer un incident ;
  • assigner un responsable en charge de répondre ;
  • organiser et suivre le processus de réponse ;
  • les actions peuvent se faire via l'interface web ou bien via l'envoi d'un mail ;
  • historique complet des actions et de toutes les modifications entreprises ;
  • décompte du temps consacré ;
  • moteur de recherche / extraction des informations / affichage sous forme de graphiques ;
  • moteur d'états ;
  • interface multi-utilisateurs et traduction en de nombreuses langues ;
  • support de nombreux types de bases de données relationnelles (MySQL, Oracle, PostgreSQL, etc...).

Personnalisation

La plus grande force du logiciel est sa capacité de personnalisation :

  • champs personnalisables (« Custom Fields »), il s'agit d'attribuer des champs de différents types à un événement ;
  • scripts (« Scrips »), il s'agit d'un système de macros déclenchées en fonction d'un événement ;
  • une multitude d'options de configuration ;
  • une architecture modulaire.

Déroulement d'un intégration RT par Easter-eggs

Rédaction d'un cahier des charges

Un ingénieur Easter-eggs étudie vos besoins afin de déterminer :

  • la pertinence de l'utilisation de RT ;
  • la faisabilité d'un déploiement dans votre système d'information ;
  • la configuration spécifique de l'outil ;
  • les éventuels développements d'intégration.

Rédaction des spécifications fonctionnelles et techniques

Sur la base du cahier des charges, l'ensemble des configurations et des développements est décrit et validé par le client.

Une fois ces deux phases passées, Easter-eggs déploie l'outil et procéde à la recette fonctionnelle de l'application sur la base du cahier des spécifications fonctionnelles.

Support et assistance

Easter-eggs assure ensuite le suivi de la solution mise en place via un contrat spécifique adapté et dimensionné à chaque instance déployée.

Hébergement et mode "Saas"

Easter-eggs peut vous proposer d'héberger votre plateforme RT, dimensionnée selon vos exigences en matière de disponibilité et de sécurité.

L'expertise RT chez Easter-eggs depuis plus de 10 ans

Easter-eggs utilise RT au quotidien depuis 2001. Nous l'avons intégré dans notre solution de gestion de support et assistance client.

Notre force est notre capacité à intégrer RT en le personnalisant à chaque client. Voici les dernières intégrations réalisées :

  • Easter-eggs a intégré RT pour une multinationale de 11000 personnes leader sur le marché de la sécurité électronique. L'outil est spécifiquement adapté au système d'information du client avec le développement nécessaire d'un protocole permettant à RT de communiquer avec l'outil de helpdesk de HP OpenView Service Desk. Ce projet est détaillé dans notre article Passerelle Request Tracker OpenView Service Desk.
  • Request Tracker a été déployé chez W-HA, la filiale de micro-paiement en ligne de Orange par Easter-eggs. Une fois encore, la solution a été adaptée exactement au besoin du client.
  • La solution RT a été mise en place au sein du Ministère de l'écologie, de l'énergie, du développement durable et de la mer (MEEDAT), conjointement avec la maîtrise d'ouvrage nationale des politiques supports et des systèmes d'information.
  • Dans le cadre d'un projet de mise à jour et d'évolution de la plate-forme RT de l'Union Financière de France, une mise à jour d'une version 3.8.0 vers la 3.8.4 a été réalisée. Les données ont été converties en UTF-8. La disponibilité du service a été renforcée par le déploiement d' un serveur de secours qui réplique les données de la base en temps réel.
  • RT a été déployé et adapté pour le service qualité d'une PME. Il s'agit d'un détournement complet de l'outil en solution métier. Un article plus complet sur ce projet est disponible ici.

Nos principales références RT

  • Agence Nationale de l'Amélioration de l'Habitat - ANAH
  • Aviva
  • Axione
  • Cinetic Industry - Fives Lilles
  • CEA - DAM
  • CETE Normandie-Centre
  • Compagnie Européenne de la Chaussure
  • Gemalto
  • Groupe Mauffrey Transport
  • Ministère de l'Ecologie, du Developpement Durable, des Transports et du Logement
  • Netsize
  • Oxalide
  • SICIM - Montreuil
  • Vivarte
  • Wanadoo HA

by Valéry Febvre at June 17, 2014 04:46 PM

Opendata et e-Administration

La volonté affichée des pouvoirs publics d'utiliser dans leur fonctionnement toujours plus de logiciels libres a naturellement conduit Easter-eggs a travailler avec les collectivités teritoriales et les services de l'Etat.

Nous comptons aujourdh'ui parmi nos clients plus de 300 communes ou EPCI, 5 départements, 4 ministères et les services du Premier Ministre.

En plus des projets de développements spécifiques et d'architecture système hébergées, Easter-eggs développe et infogère 2 plateformes de services dédiées aux collectivités territoriales et aux services de l'État :

Comarquage.fr

Les démarches et formalités en co-marquage de service-public.fr : des outils clé en main et personnalisables, à intégrer en quelques clics dans les sites internet des collectivités territoriales et des services de l'Etat.

Données-libres.fr

L'Open Data au coeur de votre territoire : un portail Opendata, en co-marquage de data.gouv.fr et la cartographie de l'hyperlocal, à intégrer en 3 clics sur un site web existant.

June 17, 2014 02:46 PM

Tarifs

Engagée dans une logique de transparence vis-à-vis de ses clients, Easter-eggs publie ses tarifs selon une nomenclature reprenant les différents types de contrats qu'elle propose : contrat forfaitaire, contrat en mode régie, contrat d'assistance et de support. Les catégories 1, 2 et 3 correspondent respectivement à des profils de programmeurs, d'analystes programmeurs et de chefs de projet/experts.

Forfait Prix de journée HT

Catégorie 1 Catégorie 2 Catégorie 3
Développement 750 € 850 € 950 €
Administration Système et Réseau 800 € 900 € 1 000 €
Suivi de projet, gestion de la planification 900 €
Audit, Conseil, Direction de projet 1 400 € 2 000 €
NB : Nous appliquons une remise commerciale de 10% pour tous les développements placés sous licence GPL.

Régie Prix de journée HT

Catégorie 1 Catégorie 2 Catégorie 3
Développement 700 € 800 € 900 €
Administration Système et Réseau 750 € 850 € 950 €
Suivi de projet, gestion de la planification 800 €
Audit, Conseil, Direction de mission 1 000 € 1 500 €

Support Prix HT

Intervention sur site 800 € / jour
Administration distante 150 € / heure

by Valéry Febvre at June 17, 2014 12:29 PM

June 16, 2014

Easter-eggs

Hébergement et infogérance

Les briques de l'infogérance

Depuis le 1er septembre 2012, Easter-eggs a repris la société Nuxee, spécialiste de l'hébergement à valeur ajoutée. Ce rapprochement nous a permis d'intégrer de nouvelles compétences, mais aussi de nouvelles infrastructures et de nouvelles solutions à notre organisation.

Nous proposons des réponses complètes et ajustées à chaque problématique de nos clients, avec un niveau de qualité de service et d'expertise élevé qui font la réputation d'Easter-eggs.

Notre maîtrise des différentes technologies de virtualisation et nos compétences fortes, tant en développement spécifique qu'en administration système et réseaux nous permettent de dialoguer efficacement avec les différents interlocuteurs de votre projet.

Nous sommes présents dans les 2 datacenters Equinix PA2 et PA3 (Paris Saint-Denis).

Easter-eggs est membre du RIPE NCC.

En tant que LIR (Local Internet Registries N° AS 199571) nous sommes autonomes pour le routage et la distribution des adresses IP.

Le réseau, compatible IPV6, est entièrement opéré par les équipes techniques en 24/7/365.

L'infogérance selon Easter-eggs

Un contrat sur mesure

Chaque offre résulte d'une combinaison de services adaptés au contexte et aux enjeux d'un projet client.


Supervision

La supervision est toujours assurée 24/7. Cela permet de connaître en temps réel l'état du réseau, des matériels, des services et des applications.
Les alertes de supervision peuvent être gérées par le client ou par nos équipes. L'important est d'avoir défini les rôles et périmètres d'action de chacun : qui déclenche l'intervention ? Qui intervient ? Les interventions ont-elles lieu 24/7 ? Sont-elles comprises dans un forfait ou facturées au temps passé ?, etc.

Mise à jour de sécurité

C'est un élément essentiel de l'administration d'un système GNU/Linux.
Ces mises à jour doivent être confiées à des experts du système, seuls juges de l'urgence à les appliquer. C'est pourquoi nous estimons que cette tâche relève de notre responsabilité.
Cette prestation peut être gérée forfaitairement ou par tickets.

Métrologie

L'analyse des données (flux, charges, etc.) permet d'anticiper des pannes matérielles, des évolutions à programmer ou des comportements non-prévus ou inadaptés de la plateforme ou des utilisateurs.
Les données de métrologie sont accessibles à nos clients en temps réel via notre extranet sécurisé. Le contrat d'infogérance peut prévoir une analyse systématique des données de métrologie avec un rapport régulier et les préconisations qui en découleraient.


Maintien en conditions opérationnelles - MCO

C'est pour nous une notion essentielle qui résume tout notre engagement, car nous garantissons le fonctionnement des services hébergés en production. Nous intervenons dans un cadre forfaitaire en cas de dégradation des conditions opérationnelles de la plateforme.
Cet engagement de notre part sur un MCO implique que nous soyons seuls habilités à nous connecter en tant qu'administrateur (root) sur le serveur en production.

Engagement de rétablissement de service (GTR)

Si les prestataires mettent le plus souvent en avant la garantie sur leurs délais d'intervention (GTI), l'enjeu pour nos clients est bien la garantie du temps de rétablissement. C'est le corollaire du maintien en conditions opérationnelles et il doit une fois de plus être adapté aux enjeux du client, qui doit évaluer les conséquences de l'indisponibilité de ses services et définir en concertation avec nous la GTR souhaitée.
Easter-eggs intervient 24/7 avec des GTI à partir de 30mn H0 et 1h HNO et des GTR à partir de 1h HO et 2h HNO. [1]

Pénalités financières en cas de dépassement

La mise en place d'une GTR courte aura des conséquences sur le coût mensuel de l'infogérance. En contrepartie, le non-respect de la GTR par le prestataire doit être compensé par l'application de pénalités de retard significatives pouvant aller jusqu'au remboursement d'une année due au titre de l'infogérance.


Sauvegarde

La sauvegarde n'est pas une option de l'infogérance mais la garantie d'une reprise d'activité rapide en cas de problème majeur. C'est aussi au quotidien une sécurité pour les utilisateurs, afin de se prémunir de la perte de fichiers ou de courriels. Il convient d'adapter le volume nécessaire et la politique de sauvegarde en fonction des besoins du client.

Présentation de l'infra Easter-eggs

Les datacenters Equinix

Sécurité

Le datacenter utilise un ensemble d'équipements, de techniques et de procédures de sécurité pour contrôler, surveiller et enregistrer l'accès aux installations. La procédure d'accès sécurisée ISO9001:2008 doit être suivie par le personnel d'Equinix et les visiteurs.

Corridor Easter-eggs chez Equinix

Corridor Easter-eggs chez Equinix

  • Sécurité 24x7x365 sur site ;
  • Gardien en H24 ;
  • Système de caméras périmétriques ;
  • Système d'accès par carte magnétique (accès logged et timestamp) et empreinte biométrique ;
  • Confrontation à un fichier photographique pour chaque personne entrant sur site ;
  • 4 contrôles successifs avant d'entrer dans le datacenter ;
  • Toutes les portes, y compris celles des cages, sont sécurisées par des lecteurs palmaires ;
  • Murs extérieurs pare-balles ;
  • Eclairage à détecteurs de mouvement.

Refroidissement

Le système de refroidissement du datacenter fait lui aussi preuve d'une attention particulière. Les infrastructures d'Easter-eggs sont hébergées dans des "Cold Corridor".

  • Production de froid à eau glacé ;
  • 4 groupes de 1,1 KW centralisés en N+1 situé sur le toit du bâtiment ;
  • Production de froid centralisé avec redondance N+1 ;
  • Huit pompes d'eau condensée (N+2) ;
  • Huit tours de refroidissement ;
  • Six pompes primaires à eau refroidie et débit variable (N+2).

Courant

Le datacenter d'Equinix est conçu avec des systèmes d'alimentation électrique qui disposent de redondance intégrée et systèmes d'alimentation électrique sans interruption (UPS).

  • Double arrivée EDF/1+1 ;
  • Groupe électrogène redondé (N+1) ;
  • 8 groupes électrogènes de 2MVA centralisés en N+2 ;
  • Plusieurs onduleurs de 500KVA répartis sur 3 chaînes 1 situés dans des locaux différents.

Support

En complément de ces installations, Easter-eggs peut faire appel à un support technique sur site disponible 24x7x365.

Une architecture multi-sites et multi-opérateurs

Site Equinix PA2 : opérateur Neo Telecoms (AS 8218)

Neo Telecoms est le second opérateur IP international d'origine française et le premier opérateur IPv6 Français en terme de connectivité Internet.
Le réseau, compatible IPV6, est entièrement opéré par les équipes techniques en 24/7/365. Neo Telecom est raccordé aux principaux points d'échange du marché en France et en Europe ainsi que sur les côtes Ouest et Est des États-unis.

Voir le réseau en temps réel

Voir le réseau en temps réel

Le réseau repose sur des équipements Juniper gamme MX/Terabit avec une capacité de plusieurs centaines de gigabit/s.

Site Equinix PA3 : opérateur Ielo (AS 29075)

Ielo bénéficie de plus de 10 ans d'expérience dans le domaine de l'externalisation et de la gestion d'infrastructures internet.
IELO dispose d'équipements et de connectivités dans les principaux points de présence Français et dans les points d'échange Français et Européens.
L'ensemble du réseau s'articule autour d'équipements Foundry et Brocade. Chacun des sites dispose d'équipements disposant d'au moins deux modules de management et de deux modules de commutation.
Le réseau de IELO repose essentiellement sur deux boucles ethernet (parisienne et nationale) raccordées sur deux sites distincts (Redbus Courbevoie et TeleHouse 2 Voltaire).

Principales références en infogérance et hébergement

Administration et secteur public

  • Adoma,
  • Agence du Numérique,
  • Ministère de la Justice,
  • Ministère de la Santé,
  • Ministère du développement durable,
  • Mairie de Paris,
  • Service du Premier Ministre,
  • Le département du Nord
  • Ville de Choisy-le-Roi,
  • Ville de Joinville-le-Pont,
  • Comarquage.fr : 500 collectivités adhérentes

Économie solidaire

  • Enercoop,
  • Coopaname,
  • FSGT,
  • HAPPY DEV,

Secteur Privé

  • Dalloz Formation,
  • Eparco,
  • ENEA consulting,
  • E-Paye,
  • Laforêt Franchise,
  • Paraweb,
  • Relatia,
  • SVP,
  • Lexbase,
  • Conféderation Nationale des Syndicats Dentaires,

Éducation et recherche

  • Collège des ingénieurs,
  • IRIS,
  • La Femis,
  • Observatoire Européen de l'Audiovisuel,
  • Onisep

[1] Rappelons qu'une GTR courte doit être en cohérence avec l'architecture couverte. Easter-eggs engagera sa responsabilité sur des délais courts si par ailleurs la plateforme cible présente des garanties en matière de redondance, aussi bien matérielle que logicielle.

by Valéry Febvre at June 16, 2014 10:14 AM

March 28, 2014

Easter-eggs

La démarche RSE d'Easter-eggs - 03/2014

Retrouvez l'interview de Pierre-Yves Dillard sur la démarche RSE (responsabilité sociétale des entreprises) d'Easter-eggs, réalisée par le pôle Systematic en cliquant ici

Réalisé par Systematic, dans le cadre du programme Ambition PME, dédié aux PME innovantes, voici un portrait d'Easter-eggs, entreprise sociale et solidaire :

by Valéry Febvre at March 28, 2014 05:28 PM

December 10, 2013

Easter-eggs

Métanol, le portail Open Data développé par Easter-eggs, lauréat du concours lancé par Etalab

Easter-eggs a vu son portail Open Data Métanol récompensé par le Prix Spécial du jury dans la catégorie "Territoires", lors du dernier concours Dataconnexions organisé par Etalab.

Métanol facilite la démarche des collectivités et services de l'État qui s'engagent dans l'ouverture et le partage des données publiques, et favorise la rencontre des ces données avec leurs communautés. La solution rediffuse en effet en temps réel, par l'intermédiaire d'un widget intégré au site d'une collectivité ou d'un partenaire, un extrait ciblé des données de data.gouv.fr relatives à un territoire ou à une thématique.

L'accès à Métanol se fait très simplement via une inscription en ligne sur la plateforme de services aux collectivités Données-libres.fr.

La plateforme de services aux collectivités et ministères Données-libres.fr est développée par Easter-eggs, société de service en logiciel libre depuis 1997, labellisée Entreprise de l'Economie Solidaire depuis mai 2013.

Lire l'article complet sur etalab.gouv.fr

by Valéry Febvre at December 10, 2013 09:34 PM

Les lauréats du 4e concours Dataconnexions sont... [JDN-04/12/13]

Etalab vient de récompenser huit projets innovants d'open data pour la 4e édition de son concours Dataconnexions.

Organisé pour la 4e fois, le concours dataconnexions organisé par Etalab récompense des projets innovants open data tirant partie de données publiques, qu'il s'agisse d'applications, de nouveaux services ou d'outils de visualisation. Son but : stimuler l'innovation économique et social au bénéfice de l'intérêt général. Voici les huit lauréats :

  • Catégorie Grand Public : Open Food Facts

Open Food Facts est une base de données permettant de décrypter les étiquettes de produits alimentaires et de comparer leur composition entre eux.

  • Catégorie Utilité Publique : Open Meteo Forecast

Développé par l'Open Meteo Foundation, l'association fait tourner son propre modèle météo libre pour fournir des prévisions en Europe.

  • Catégorie Professionnel : Le-veilleur.fr

Le-veilleur.fr est un moteur de recherche qui cherche à rendre visibles les commandes publiques au maximum d'entreprises

  • Catégorie Service de Proximité : Calendeev

Calendeev est un agenda de sorties personnalisé en fonction de ses préférences culturelles et sportives.

  • Prix spécial Evasion : Guido & Vamos a la Playa

Guido compte proposer une application mobile, qui, grâce à la géolocalisation, commentera les trajets sur autoroute en donnant des informations touristiques.

Vamos a la Playa propose aux usagers des plages de communiquer entre eux sur la météo, les activités, la qualité de l'eau, la fréquentation, l'accessibilité...

  • Prix spécial Territoires : Métanol & CuteGIS

Métanol permet aux collectivités et services de l'Etat de communiquer auprès de leurs communautés sur les données qu'ils mettent à leur service.

CuteGIS propose de publier facilement des données sous forme cartographique, de les partager et de les personnaliser.

Lire l'article complet sur le JDN

by Valéry Febvre at December 10, 2013 05:23 PM

Les Dataconnexions saluent le mariage du crowdsourcing et de l'open data [Le Monde.fr - 05/12/13]

La finale du concours Dataconnexions, organisé par la mission Etalab, s'est déroulée hier soir. 8 lauréats ont été récompensés. Parmi eux, deux sont dotés d'une véritable dimension collaborative.

Dans le cadre d'une politique engagée d'ouverture des données publiques, le gouvernement, via la mission Etalab, a organisé pour la 4ème année consécutive le concours Dataconnexions.

Ouvert à tous, le dispositif récompense les meilleures réutilisations de données publiques. L'objectif est donc de développer des applications ou des projets de datavisualisation utiles, innovants ou ludiques qui permettent de faciliter les usages quotidiens ou l'accès à l'information.

La cérémonie de clôture de cette quatrième édition s'est déroulée hier et a récompensé une série de projets, dans les catégories suivantes : grand public, professionnels, service de proximité, évasion, territoire et utilité publique.

[...]

Les plateformes cuteGIS et Métanol sont les deux lauréats de la catégorie "Territoire". La première entend mettre en relation les fournisseurs et utilisateurs de données géographiques. La seconde se présente comme une plateforme de diffusion et de mise en forme des données à destination des collectivités territoriales.

Lire l'article complet sur Le Monde.fr

by Valéry Febvre at December 10, 2013 05:20 PM

Quatrième édition de Dataconnexions : un accès aux données plus facile [01Net - 04/12/13]

Organisés trois fois par an depuis 2012, les concours dataconnexions distinguent des structures ayant développées des applications en réutilisant des données publiques. Quatre lauréats de la quatrième édition du Concours Dataconnexions fournissent des services utilisables par les entreprises ou aux les collectivités locales. Il s'agit dans la plupart des cas de faciliter l'accès aux données sans nécessairement les retraiter. Même quand les données publiques sont accessibles en ligne, elles sont parfois difficilement exploitables ou détectables. Le-veilleur.fr, Métanol fournissent ainsi des services qui aident à faire le tri dans des informations déjà publiées et CuteGIS aide à rendre accessibles les données géographiques issues de SIG (Système d'information géographique).

[...]

Métanol : une porte d'entrée vers data.gouv.fr

Le portail Données-Libres.fr du projet Métanol facilite l'accès aux données publiques du site data.gouv.fr. Les collectivités peuvent trier les données concernant leur territoire ou certaines thématiques. Ces données sont ensuite affichées sur leur site web grâce à un Widget fourni par Easter-eggs la société de service à l'origine du portail. Le code source du projet est disponible sous licence libre.

Métanol de Données-Libres.fr : rendu du portail sur le territoire de Rennes Métropole.

Lire l'article complet de Marie Jung sur 01Net.

by Valéry Febvre at December 10, 2013 05:16 PM

June 13, 2013

Easter-eggs

Support système

Support GNU/Linux

Nous proposons notre service de support et maintenance sur des logiciels ou des architectures, développés ou installés et configurés par nos soins. Nous pouvons également être à même de fournir ce service sur des logicielsou des architectures que nous n'avons pas installés et configurés, après avoir réalisé un audit.

Facilité d'accès au service
Vous nous posez vos questions par email et par téléphone.

Réponses rapides et appropriées
Nous vous répondons dans les 4 heures en adaptant le mode d'intervention à votre problématique :

  • par email ;
  • en intervenant directement à distance ;
  • sur site ( inter sur site j+1 en région parisienne uniquement, j+3 pour la France entière ).

Maîtrise des coûts
Nous déterminons ensemble vos besoins et définissons votre compte d'heures pour l'année. Les heures non-consommées seront reportées sur l'année suivante

Fonctionnement
Chaque intervention est enregistrée dans notre logiciel de gestion de ticket « Eeadmin ». Les interventions sont décomptées à l'échelle du ¼ d'heure. L'ensemble de l'opération effectuée y est décrite. L'historique de votre compte est accessible à tout moment via un extranet sécurisé.

Equipes
Nos équipes d'intervention sont constituées de spécialistes qui chaque jour, dans des contextes variés, mettent en oeuvre les technologies et les outils sur lesquels vous cherchez des réponses.

Mise à jour de sécurité

Nous proposons un contrat de mise à jour sécurité. Nos équipes assurent la mise à jour systématique en cas de détection de failles de sécurité sur des logiciels installés et configurés par leurs soins. Nous pouvons être à même d'assurer ce service sur des installations et des configurations logicielles que nous n'avons pas mises en place, après un audit préalable.

Nous maintenons quotidiennement plus de 450 serveurs - 95 % de nos interventions sont réalisées par accès distant.

by Pierre-Yves Dillard at June 13, 2013 04:28 PM

May 22, 2013

Easter-eggs

Easter-eggs, entreprise solidaire !

Nous nous sommes toujours développés sur un mode social et solidaire, qui est devenu sérieusement à la mode, puisqu'il existe désormais un agrément Entreprise solidaire, délivré par le Préfet.

Nous avons sollicité cet agrément et ne sommes pas peu fiers de nous l'être vu accordé !

Les critères retenus ont été :
- la détention à 100% du capital par les salariés ;
- le salaire égal pour tous les salariés ;
- l'élection du gérant parmi les salariés proposée chaque année ;
- l'animation du réseau Libre-entreprise, visant à promouvoir notre modèle économique auprès d'autres structures du secteur du logiciel libre.

La décision d'agrément est consultable ici

by Anne Dillard at May 22, 2013 12:00 PM

October 04, 2012

Easter-eggs

Easter-Eggs acquiert l'hébergeur Nuxee

Dans le cadre de son développement, Easter-Eggs a fait l'acquisition depuis le 1er septembre 2012 de la SARL Nuxee, spécialiste de l'hébergement à valeur ajoutée.

Cette acquisition a pour but de répondre aux problématiques d'hébergement et d'infogérance de plus en plus fréquemment évoquées par les clients et les prospects d'Easter-Eggs.

Afin d'étoffer ses équipes, Easter-Eggs a recruté 2 des 3 co-fondateurs de la SARL Nuxee, Félix Defrance et Adrien Frémont, respectivement directeur technique et directeur commercial.

Easter-Eggs bénéficie désormais d'infrastructures techniques sur 2 sites distincts, à savoir, Paris (Equinix PA2) et Marseille Landier (Ielo), ainsi que d'un nouveau transitaire, Néo Télécom.

Easter-Eggs est maintenant également membre du RIPE NCC, en tant que LIR ( Local Internet Registry ), donc autonome dans l'adressage Ip.

Ce rachat s'inscrit dans la logique de l'action et du développement d'Easter-Eggs, permettant ainsi de maitriser des projets depuis la définition des besoins client jusqu'au suivi quotidien de la solution intégrée ou développée, en production.

October 04, 2012 10:11 AM

October 03, 2012

Easter-eggs

Hébergement

Sommaire

Depuis le 1er septembre, Easter-Eggs a intégré la société Nuxee, spécialiste de l'hébergement à valeur ajoutée. Ce rapprochement nous a permis d'intégrer de nouvelles compétences, mais aussi de nouvelles infrastructures, et donc de nouvelles solutions.

Nous somme ainsi à même de proposer des réponses complètes aux problématiques clients, toujours en offrant un niveau de qualité de service et d'expertise élevé.

Easter-Eggs propose désormais des solutions d'hébergement sur mesure, tant sur les solutions dédiées (physique ou virtuel) que mutualisées.

Notre maîtrise des différentes technologies de pointe et nos compétences fortes en développement, audit, système et réseaux vous garantissent des solutions pérennes et évolutives.

Easter-eggs est désormais présent dans les datacenters Equinix PA2 et PA3 (Paris Saint-Denis). Membre du RIPE NCC en tant que LIR (Local Internet Registry) Easter-eggs dispose de son propre bloc d'adresses IpV4.

Equinix

Sécurité

Le datacenter utilise un ensemble d'équipements, de techniques et procédures de sécurité pour contrôler, surveiller et enregistrer l'accès à l'installation. La procédure d'accès sécurisée ISO9001:2008 doit être suivie par le personnel d'Equinix et les visiteurs.

- Sécurité 24x7x365 sur site ;
- Gardien en H24 ;
- Système de caméras périmétriques ;
- Système d'accès par carte magnétique (accès logged et timestamp) et empreinte biométrique ;
- Confrontation à un fichier photographique pour chaque personne entrant sur site ;
- 4 contrôles successifs avant d'entrer dans le datacenter ;
- Toutes les portes, y compris celles des cages, sont sécurisées par des lecteurs palmaires ;
- Murs extérieurs pare-balles ;
- Eclairage à détecteurs de mouvement.

Refroidissement

Le système de refroidissement du datacenter fait lui aussi preuve d'une attention particulière. Les infrastructures d'Easter-Eggs sont hébergées dans des "Cold Corridor".

- Production de froid à eau glacé ;
- 4 groupes de 1,1 KW centralisés en N+1 situé sur le toit du bâtiment ;
- Production de froid centralisé avec redondance N+1 ;
- Huit pompes d'eau condensée (N+2) ;
- Huit tours de refroidissement ;
- Six pompes primaires à eau refroidie et débit variable (N+2).

Courant

Le datacenter d'Equinix est conçu avec des systèmes d'alimentation électrique qui disposent de redondance intégrée et systèmes d'alimentation électrique sans interruption (UPS).

- Double arrivée EDF/1+1 ;
- Groupe électrogène redondé (N+1) ;
- 8 groupes électrogènes de 2MVA centralisés en N+2 ;
- Plusieurs onduleurs de 500KVA répartis sur 3 chaînes 1 situés dans des locaux différents.

Support

En complément de ces installations, Easter Eggs peut faire appel à un support technique sur site disponible 24x7x365.

Ielo

Le réseau de IELO repose essentiellement sur deux boucles ethernet (parisienne et nationale) raccordées sur deux sites distincts (Redbus Courbevoie et TeleHouse 2 Voltaire).

L'ensemble du réseau s'articule autour d'équipements Foundry de la gamme MLX. Chacun des sites dispose d'au moins un équipement de type MLX disposant chacun de deux modules de management ainsi que de deux modules de commutation.

IELO est inter-connecté avec les transitaires OpenTransit, GlobalCrossing, Neotelecoms, Cogent (préfixes clients cogent USA/Europe uniquement) IELO est présent sur les plaques d'échanges SFINX, FreeIX, Panap, Pouix, Lyonix.

October 03, 2012 10:08 AM

December 16, 2011

Easter-eggs

Plate-forme régionale de co-marquage en Bretagne

La direction de l'information légale et administrative (DILA) et le Syndicat mixte e-mégalis Bretagne ont signé une convention pour que les collectivités membres du syndicat puissent rediffuser, sur leur site Internet, les contenus de service-public.fr, le site officiel de l'administration française, et de vie-publique.fr, le portail d'information publique pour le citoyen.

Cette convention contribue à simplifier l'accès de l'usager à ses droits et démarches et à rendre plus accessibles les institutions et les politiques publiques.

C'est la solution libre développée par Easter-eggs, Comarquage.fr qui a été choisie pour ce déploiement régional.

Ce nouveau service d'e-administration est proposé par e-mégalis depuis octobre 2011.

A ce jour, la Communauté d'agglomération Rennes Métropole a déployé le service sur tous les sites des communes membres, comme par exemple sur le site de Cesson-Sévigné

December 16, 2011 04:30 PM

Plate-forme régionale de comarquage en Bretagne

La direction de l'information légale et administrative (DILA) et le Syndicat mixte e-mégalis Bretagne ont signé une convention pour que les collectivités membres du syndicat puissent rediffuser, sur leur site Internet, les contenus de service-public.fr, le site officiel de l'administration française, et de vie-publique.fr, le portail d'information publique pour le citoyen.

Cette convention contribue à simplifier l'accès de l'usager à ses droits et démarches et à rendre plus accessibles les institutions et les politiques publiques.

C'est la solution libre développée par Easter-eggs, Comarquage.fr qui a été choisie pour ce déploiement régional.

Ce nouveau service d'e-administration est proposé par e-mégalis depuis octobre 2011.

A ce jour, la Communauté d'agglomération Rennes Métropole a déployé le service sur tous les sites des communes membres, comme par exemple sur le site de Cesson-Sévigné

by Anne Dillard at December 16, 2011 04:00 PM

Plate-forme régionale de comarquage pour la Bretagne

La direction de l'information légale et administrative (DILA) et le Syndicat mixte e-mégalis Bretagne ont signé une convention pour que les collectivités membres du syndicat puissent rediffuser, sur leur site Internet, les contenus de service-public.fr, le site officiel de l'administration française, et de vie-publique.fr, le portail d'information publique pour le citoyen.

Cette convention contribue à simplifier l'accès de l'usager à ses droits et démarches et à rendre plus accessibles les institutions et les politiques publiques.

C'est la solution libre développée par Easter-eggs, Comarquage.fr qui a été choisie pour ce déploiement régional.

Ce nouveau service d'e-administration est proposé par e-mégalis depuis octobre 2011.

A ce jour, la Communauté d'agglomération Rennes Métropole a déployé le service sur tous les sites des communes membres, comme par exemple sur le site de Cesson-Sévigné

by Anne Dillard at December 16, 2011 03:55 PM

June 22, 2011

Easter-eggs

3e édition du Congrès annuel de l'ADULLACT

Les 23 et 24 juin prochains se tiendra la troisième édition du Congrès annuel de l'ADULLACT qui se déroulera au sein de l'Institut des Sciences et du Management de Montpellier.

Easter-eggs vous accueillera sur son stand pour vous présenter sa solution de co-marquage de Service-public.fr, Comarquage.fr, incluant la version mobile des guides des droits et démarches et l'annuaire citoyen géolocalisé.

Toutes les informations pratiques sont à retrouver sur le site du Congrès de l'Adullact.

June 22, 2011 03:35 PM

April 19, 2011

Easter-eggs

Un annuaire pour une justice plus proche

Source : Article publié le 07/04/2011 sur le site de 20minutes.fr :

Un annuaire pour une justice plus proche

ADMINISTRATION - La Chancellerie lance un annuaire enfin complet...

Il est souvent très difficile de se retrouver dans le dédale de la justice. Pour venir en aide aux citoyens effrayés par la complexité de la machine, la Chancellerie lance ce jeudi officiellement un nouveau service, « La Justice dans votre région ».

Un monde très complexe

Dans cet annuaire, 3.000 adresses du monde judiciaire : les différents tribunaux, les prisons, les conseils des prud'hommes, même les écoles de formation, etc. « Il y avait un réel besoin de clarification pour rapprocher la justice des citoyens », explique Bruno Badré, porte-parole de la Chancellerie. Une initiative que comprennent les associations de justiciables.

« Sur les 600 personnes qui nous ont contacté depuis trois ans, il y en a au moins 10 à 15% qui abandonnent les procédures, effrayées par la complexité », détaille Claude-André Michau, président de Droit, justice et consommation. Sur le site, déjà actif, les personnes peuvent, en tapant leur code postal, repérer les lieux de justice et notamment les permanences juridiques pas forcément facilement identifiables dans les villes. « II y a déjà au moins une requête par minute. Il y a une réelle demande », conclut Bruno Badré.

Matthieu Goar

Lire l'article en ligne

by Anne Dillard at April 19, 2011 03:57 PM

Un annuaire de 3 000 adresses en ligne pour trouver un lieu de justice ou d'accès au droit

Source : Article publié le 13.04.2011 sur service-public.fr de la DILA :

Le ministère de la justice et des libertés propose depuis le 7 avril 2011 un nouveau service en ligne pour trouver à partir du nom d'une commune (ou à partir d'un simple code postal), le lieu de justice ou d'accès au droit le plus proche de chez vous.

Tribunal compétent, association d'aide aux victimes, permanence d'information juridique : à partir du site www.justice.gouv.fr, l'espace "justice en région" regroupe près de 3 000 adresses pour vous accompagner dans vos démarches ou vous orienter vers le réseau judiciaire de proximité. A partir de cette base unique ayant intégré la nouvelle carte judiciaire, le moteur de recherche vous fournit une liste de résultats avec toutes les coordonnées nécessaires, les horaires d'ouverture et un certain nombre de renseignements complémentaires.

A noter également que le ministère de la justice et des libertés a lancé le 11 avril 2011 "MobiDroits", une application dédiée aux téléphones mobiles délivrant des informations de proximité et de première nécessité (géolocalisation des lieux de justice, numéros d'urgence...).

Lire l'article en ligne

April 19, 2011 03:52 PM

L'annuaire géolocalisé de la Justice développé par Easter-eggs

Dans le cadre de sa solution de co-marquage de service-public.fr, Easter-eggs a développé un annuaire géolocalisé de l'Administration.

Cet outil, mis à la disposition du Ministère de la Justice par Easter-eggs, a fait l'objet d'un lancement officiel le 7 avril dernier, lors de la présentation du nouveau service internet Justice en Région : afin d'épauler les citoyens dans leurs démarches, l'annuaire complet regroupe les 3.000 adresses du monde judiciaire à travers la France, en indiquant clairement les ressorts et compétences des organismes de justice pour chaque ville.

Voir l'annuaire Justice en Région en ligne.

Plus d'information en ligne sur :

by Anne Dillard at April 19, 2011 03:45 PM

December 02, 2010

Easter-eggs

Comarquage.fr sélectionnée par le Forum des Interconnectés 2010.

Easter-eggs a été sélectionnée par le jury du Forum annuel des Interconnectés dans le cadre de l'appel à entreprises innovantes du Réseau des Territoires Innovants.

Easter-eggs aura le plaisir de présenter Comarquage.fr, solution libre et innovante de co-marquage de service-public.fr édité par la DILA (Direction de l'information légale et administrative), devant un jury composé de DSI de collectivités.

Cette édition 2010 aura lieu les 13 et 14 décembre, au Centre des Congrès de Lyon. Elle offrira aux collectivités et entreprises l'occasion d'échanger sur leurs pratiques, découvrir de nouveaux outils et enrichir leurs réflexions stratégiques en matière de nouvelles technologies, notamment sur le développement des services en ligne à destination des citoyens ou sur les enjeux de la libération des données publiques.

December 02, 2010 02:29 PM

April 27, 2010

Easter-eggs

2e édition du Congrès annuel ADULLACT ­

Les 24 et 25 juin prochains se tiendra la seconde édition du Congrès annuel de l'ADULLACT qui se déroulera au sein de l'Institut des Sciences et du Management de Montpellier.

Easter-eggs vous accueillera sur son stand pour vous présenter sa solution de co-marquage de Service-public.fr, Comarquage.fr.

Toutes les informations pratiques sont à retrouver sur le site du Congrès de l'Adullact.

by Anne Dillard at April 27, 2010 04:01 PM

Adullact : le co-marquage de Service-public.fr

Brève publiée le 12/04/10 sur le site de l'Adullact

Le co-marquage de Service-public.fr sur les sites internet des collectivités

La Dila permet aux collectivités d'intégrer dans leur site internet les 3 guides des droits et démarches publiés sur www.service-public.fr, à destination des particuliers, des associations et des professionnels.

Easter-eggs, spécialiste GNU/Linux depuis 1997, a développé une solution libre de co-marquage, Comarquage.fr, qui est à ce jour la seule solution libre permettant le co-marquage de ces 3 guides, quel que soit le type de CMS utilisé par la collectivité.

Dotée d'une interface d'édition, elle permet aux agents d'enrichir l'information administrative avec des compléments locaux et de mutualiser toutes les informations locales partagées avec les collectivités d'un même territoire.

Les intérêts du co-marquage sont multiples :
- la navigation de l'internaute se fait au sein du site de la collectivité,
- les informations fournies sont toujours à jour,
- le contenu du site est enrichi sans intervention,
- le référencement du site est amélioré.
- les démarches sont localisées sur le territoire.

L'outil sert à la fois à l'internaute qui recherche une information locale sur une démarche précise et à la collectivité, qui peut l'utiliser comme une source d'information légale non opposable aux guichets d'accueil.

L'intégration des guides des droits et démarches est très simple, il s'agit de copier et coller quelques lignes de code dans le site internet de la collectivité.

Pour permettre de tester Comarquage.fr, un essai gratuit pendant 3 mois sans engagement est proposé aux collectivités.

Si la collectivité souhaite adopter la solution, un abonnement annuel lui sera demandé (d'un montant égal à racine carrée de 30 fois la population) en contrepartie de la fourniture du service et du support, quel que soit le nombre de composants choisis.

Pour plus d'information : Contacter Easter-eggs au 01 43 35 00 37 ou à l'adresse info@comarquage.fr

Voir en ligne : Comarquage.fr est un service clé en main de diffusion d'informations publiques pour les sites web des collectivités territoriales et des services de l'État.

April 27, 2010 03:07 PM

January 12, 2010

Easter-eggs

Répartition de charge

LVS est une solution puissante de répartition de charge et de clustering. Le cluster est complètement transparent pour l'utilisateur final, Il l'utilise comme si ce n'était qu'un seul serveur.

Un serveur frontal (le "load balancer") travaille au niveau de la couche IP en répartissant les connexions venant des différents clients vers les différents noeuds du cluster, en fonction d'une règle préalablement choisie (répartition équitable, aléatoire, etc).

lvs

Lorsqu'un noeud du cluster dysfonctionne (panne), il est automatiquement retiré du pool de répartition.

Le serveur frontal et les noeuds peuvent être directement connectés les uns aux autres via un LAN ou bien par des connexions distantes (WAN).

Le cluster peut fournir n'importe quel service basé sur IP, tels que du Web, mail, ftp, etc.

Il peut également être mis en place un système de haute disponibilité (fail-over) à l'aide de deux frontaux (load balancers) qui utiliseront le même cluster, paliant ainsi une panne du load-balancer.

by Pascal Brugier at January 12, 2010 05:02 PM

January 04, 2010

Easter-eggs

Dovecot : fonctionnalités IMAP avancées

Dovecot est un serveur IMAP et POP3 pour les systèmes d'exploitation de type Unix, distribué sous licence MIT et GPL-2.

Il a été conçu avec comme objectif premier la sécurité. Cependant, il offre aujourd'hui un nombre de fonctionnalités intéressantes, et que l'on ne trouve pas dans d'autres solutions.Il est un des serveurs IMAP les plus performants existants actuellement et offre :

- Gestion des permissions (ACLs) et des boîtes partagés et publiques (économie d'espace) ;
- Gestion des quotas ;
- Gestion de plusieurs sources d'authentification
- Optimisé pour les grosses infrastructures.


Standard

Dovecot est un des serveurs implémentant le mieux le standard IMAP. Ceci lui confère une compatibilité avec n'importe quel type de client, du lecteur de mail au téléphone mobile.

Sieve

Le MDA de Dovecot permet d'utiliser le standard Sieve (RFC5228) pour filtrer les e-mails. Cette approche permet la centralisations des filtres et leur application systématique quelque soit le moyen de consultation (client lourd ou webmail).

Indexation

Dovecot utilise les formats standard de boîtes mails Maildir ou mbox, mais ajoute un index maintenu de manière transparente. Lors de l'ouverture d'une boîte, l'index peut-être mis-à-jour si besoin. Ainsi le temps de chargement d'une boîte de plusieurs milliers de mails est toujours rapide. De plus les index sont optimisés par rapport aux besoins réels du client.

Dovecot (et ses index) sont totalement compatibles avec NFS, ce qui permet de l'utiliser sur du stockage partagés et par conséquent au sein d'un cluster à grande dimension.

Boîtes partagées et publiques

Dovecot permet le partage de boîte entres utilisateurs, et au sein d'une même entité. Il évite ainsi la duplication de message et les redirections entre utilisateurs (vacances, départ, etc).

Fonctionnalités

Dovecot fournit de nombreuses autres possibilités comme :
- Gestion des ACL ;
- Gestion des quotas ;
- Authentification sur différents backend : LDAP, SQL, … ;
- Lazy expunge : les utilisateurs qui ont tendance à supprimer des milliers de mails peuvent ralentir le système. Cette fonctionnalités déplace simplement les mails à supprimer dans un répertoire précis, pour que la suppression puisse se faire quand le système est moins chargé (e.g. la nuit) ;
- Suppression automatique des mails de la corbeille : si l'utilisateur a dépassé son quota, suppression automatique d'anciens mails de la corbeille ;
- Lecture automatique de boîtes mails compressées.

Extensible

De plus, Dovecot est facilement extensible via un système de greffons. Certaines fonctionnalités décrites précédemment sont d'ailleurs implémentés sous forme de greffon.

by Julien Danjou at January 04, 2010 09:20 AM

October 19, 2009

Easter-eggs

Optimisation des applications X11 avec XCB

XCB (X protocol C-language Binding) est un remplaçant de Xlib pour l'écriture d'applications ou de toolkits graphiques.

XCB a été conçu pour pallier différents problèmes liés à Xlib, comme :

- Réduction de la taille : Xlib n'est pas adaptée aux petits systèmes ;
- Réduction de la latence : Xlib est totalement synchrone ;
- Accès direct au protocole : Xlib cache beaucoup d'aspects du protocole en ajoutant plusieurs couches d'abstraction ou d'optimisation. Cela rend difficile l'envoi de requêtes X précises ;
- Support du multi-threading : bien que Xlib puisse le faire, il est bien plus difficile d'y arriver sans se tromper ;
- Ajout simplifié d'extensions : il est possible d'étendre Xlib, mais il est bien plus facile de le faire via XCB.

La bibliothèque XCB est conçue de manière à générer automatiquement son code directement en C à partir de fichiers de description du protocole X. Ces fichiers décrivent toutes les requêtes et évènements liés au protocole X en XML.

Ainsi il est très facile de rajouter le support d'une extension du protocole avec simplement une description de celui-ci en XML.

Il est également simple de générer du code dans un autre langage, comme xpyb, l'équivalent de XCB pour Python.

De plus, XCB utilise le protocole X de la même façon que Xlib. Certaines applications Xlib fonctionnent de la même façon depuis plus de 10 ans, ce qui garantit une grande pérennité au code écrit avec XCB.

Réduction de la latence

En utilisant l'approche synchrone de Xlib, une application se voit contrainte d'attendre la réponse du serveur X pour effectuer un traitement.

Par exemple, si l'application veut savoir quelle fenêtre a le focus, elle doit envoyer une requête GetInputFocus au serveur. Avec Xlib, cela se fait ainsi :

Window focused_window;
int revert_to;

/* On fait des choses */
do_many_stuff();

/* On envoit la requête au serveur X, et on attend la réponse */
XGetInputFocus(display, &focused_window, &revert_to);

/* On fait à nouveau des choses */
do_many_stuff_again(focused_window);

La fonction XGetInputFocus envoie une requête au serveur X (via le réseau, ou une socket locale), qui doit la traiter, puis renvoie la réponse. La fonction XGetInputFocus peut alors retourner la valeur au programme appelant.

En cas de latence importante du serveur X, cela peut devenir une source de ralentissement conséquente pour l'application.

En XCB, cela peut se traduire ainsi, en asynchrone :

/* On envoit la requête au serveur X */
xcb_get_input_focus_cookie_t focus_req = xcb_get_input_focus_unchecked(connection);

/* En attendant la réponse, on fait des choses */
do_many_stuff();

/* On récupère la réponse du serveur X */
xcb_get_input_focus_reply_t *focus_reply = xcb_get_input_focus_reply(connection, focus_req, NULL);

/* On fait à nouveau des choses */
do_many_stuff_again(focus_reply->focused_window);

Bien que le code soit légèrement plus verbeux, XCB permet de cacher la latence du serveur X en effectuant d'autres traitement pendant la réception de la réponse. Il faut donc envoyer la requête le plus tôt possible, et récupérer la réponse le plus tard possible, en faisant tout ce qu'il est possible de faire entre les deux pour minimiser l'effet de la latence sur le programme.

Ainsi, lors de l'envoi de plusieurs dizaines de requêtes en parallèle, il est possible de diminuer la durée d'exécution de certaines parties d'une application d'un facteur très important.

Utilisation

XCB a de plus en plus de cas d'utilisation, et une liste a été dressée ici.

Le plus important étant que les dernières versions de Xlib sont maintenant basées sur XCB pour la couche transport.

by Julien Danjou at October 19, 2009 02:37 PM

Intégration d'un langage de programmation dans une application avec Lua

Lua est un langage de programmation libre, réflexif, impératif et fonctionnel créé en 1993 à l'Université Rio de Janeiro au Brésil.

Lua est écrit en C ANSI, ce qui lui confère une grande portabilité, des systèmes les plus courants (GNU/Linux, Windows, …) jusqu'au monde de l'embarqué.

Lua est également énormément utilisé dans le monde des jeux video, pour sa portabilité et sa facilité d'intégration avec un programme existant.

Il est utilisé par des projets comme le célèbre jeu World of Warcraft de Blizzard Entertainment ou encore SimCity 4. Il a également été porté sur la console portable Sony PSP et est utilisé pour la programmation de jeux Nintendo DS.

Il est également utilisé par le gestionnaire de fenêtre awesome.

Intégration comme système de configuration

La plupart des logiciels utilisent un système de configuration à base de fichier plat, c'est à dire un système de clé/valeur, éventuellement structuré, pour configurer leurs différents paramètres.

Prenons un exemple, et étudions le cas d'un système de filtrage d'e-mail. Il est très facile de mettre en place une système de clé/valeur structuré pour filtrer un e-mail. En utilisant le format YAML cela donne quelque chose comme :

filtre1:
- Subject: SPAM
target: spam-box/
filtre2:
- To: myadress@mymail.org
From: paul@mymail.com
target: mails-from-paul/

Malheureusement, l'utilisation d'un tel système atteint ses limitations très rapidement.

Imaginons qu'un utilisateur veuille effectuer des actions non listées, comme remplacer le mot « dromadaire » par le mot « fougère ». Cela devient possible si le logiciel fournit une telle directive dans sa configuration, mais le nombre de directives prévues est forcément limité. On peut remarquer que l'ensemble de ces filtres est très facilement définissable comme un jeu de fonctions du type "function(message) return message, maildir".

function filtre1(message)
if message.subject:match("SPAM") then
return message, "spam-box"
end
end

Puisque le message est également retourné par la fonction de filtrage, il est très simple de le manipuler, et par exemple d'en modifier le contenu, et ce sans rajouter toutes les possibilités et les types de modification au logiciel de filtrage lui-même, ce qui est impossible à obtenir avec YAML.

function filtre1(message)
-- Replace words
message.content:gsub("dromadaire", "fougère")
if message.subject:match("SPAM") then
return message, "spam-box"
end
end

De la même façon, imaginons qu'un utilisateur veuille changer la configuration du logiciel de manière évènementielle, c'est-à-dire lorsqu'un évènement E se produit. En l'état actuel cela lui est totalement impossible, à moins que le logiciel prenne en charge une directive de configuration pour cet évènement.

En reprenant notre exemple ci-dessus, imaginons que l'utilisateur veuille numéroter chaque message, en rajoutant au début du sujet un identifiant numérique.

Le logiciel peut très bien rajouter une directive supplémentaire pour prendre en charge cette fonctionnalité, et modifier le format de son fichier de configuration.

Cependant, en utilisant Lua comme langage de programmation dédié à la configuration, il est très facile pour l'utilisateur de rajouter cette fonctionnalité :

message_number = 0

function on_message_delivery(message)
message_number = message_number + 1
end

function filter1(message)
message.subject = message_number .. message.subject
return message
end

Le développeur de notre logiciel de filtrage doit uniquement implémenter un système de signaux (ou de « hooks »). Dans l'exemple ci-dessus, la fonction "on_message_delivery" sera automatiquement appelée à chaque remise d'un e-mail dans une boîte mail. En reproduisant ce mécanisme pour tous les évènements produits par le logiciel, l'utilisateur sera en mesure de personnaliser son comportement directement depuis le fichier de configuration.

Intégration comme API de programmation

La définition d'une API de programmation en Lua se fait également de façon très simple. Plusieurs systèmes ont déjà utilisé Lua comme langage d'abstraction de plus haut niveau pour développer une application de manière beaucoup plus rapide et concise qu'avec un langage compilé tel que le C.

Le cas typique est celui de programmation d'IHM. Au lieu d'écrire une IHM fixe, il est possible de fournir une API simplifiée de création de widgets et de leur configuration. Cela laisse l'utilisateur libre de définir une IHM et de programmer son comportement de manière dynamique.

Facilité d'intégration

L'intégration de Lua à un outil existant est simple, voire triviale ! La bibliothèque C Lua utilise un système de pile pour interagir avec l'application, rendant son utilisation simple.

/** Définition d'une structure de donnée
* contenant des coordonnées et la taille d'un objet
*/
struct
{
int x, y, width, height;
} geometry;

/** Pousse sur la pile Lua une table contenant des clés x, y, width
* et height avec les valeurs correspondants.
* @param L La pile Lua.
* @param g La geometry de l'objet.
*/
void
lua_pushgeometry(lua_State *L, struct geometry g)
{
/* Creation d'une table vide qui sera sur le haut de la pile */
lua_newtable(L);
/* Ajout de la valeur de 'x' sur le haut de la pile (au dessus de la table */
lua_pushnumber(L, g.x);
/* Attribution de la valeur g.x tout juste poussé sur la table à la clé 'x' dans la table.
* -2 correspond à l'avant dernier élement (là ou se trouve la table) et "x" au nom de la clé.
* La valeur attribué est celle du haut de la pile (g.x).
* lua_setfield retire la valeur g.x de la pile. */
lua_setfield(L, -2, "x");
/* Ajout de la valeur de 'y' */
lua_pushnumber(L, g.y);
/* table[y] = g.y */
lua_setfield(L, -2, "y");

}

Conclusion

Lua est un langage extrêmement rapide de par son implémentation, et reste très proche du C. Il permet de fournir très facilement une API de configuration et/ou de programmation à l'utilisateur ou au développeur, et permet de prototyper une application aisément.

La taille du code source (17 KSLOC) et du binaire (100 K) lui permet d'être très facilement intégré dans un système embarqué où les contraintes de taille et de temps d'exécution ne permettent pas d'utiliser un langage plus évolué comme Python.

by Julien Danjou at October 19, 2009 01:46 PM

May 25, 2009

Easter-eggs

Comarquage.fr pour les collectivités

Comarquage.fr est une solution clé en main, offre libre de services publics en ligne pour les collectivités territoriales et les services de l'État, qui propose notamment deux services inédits de comarquage pour les professionnels et les associations.

L'offre est constituée de composants indépendants immédiatement intégrables sur le site des collectivités et compatibles avec toutes les technologies web existantes.

  • Service-Public « Particuliers », pour diffuser l'ensemble de l'information administrative, locale et nationale à destination des citoyens, issue du site http://www.service-public.fr (1)
  • Service-Public « Professionnels », pour diffuser l'ensemble de l'information administrative, locale et nationale à destination des PME, commerçants, agriculteurs et professions libérales, issue du site http://pme.service-public.fr (1)
  • Service-Public « Associations », pour diffuser l'ensemble de l'information administrative, locale et nationale à destination des associations, issue du site http://www.service-public.fr.
  • Service-Public « Un changement dans ma vie », accès rapide aux démarches administratives en fonction des événements de la vie (J'attends un enfant, Je déménage, Je prépare ma retraite, j'organise ma succession,...).
  • Annuaire de l'administration locale et nationale, qui fournit les coordonnées des différents services indiqués dans les fiches des droits et des démarches de la Documentation Française.
Si vous souhaitez immédiatement intégrer ces services sur le site internet de votre collectivité, rendez-vous sur l'interface d'inscription de Comarquage.fr. Vous disposerez d'une période d'essai gratuite de trois mois qui vous permettra d'apprécier la qualité du service fourni.

Personnalisation et partage des informations

Une interface de gestion permet aux agents des collectivités de personnaliser les composants et de mutualiser les informations avec les administrations d'un même territoire :

  • Masquage ou ajout d' informations de comarquage.
  • Extension de l'annuaire à tous types de recherches (recherches localisées sur les médecins, les gardes d'enfants, les activités sportives...).

A qui s'adressent ces outils ?

- Aux collectivités territoriales et aux services de l'État, disposant d'un site ou d'un portail Internet :

  • les conseils généraux ;
  • les conseils régionaux ;
  • les communes et les inter-communalités ;
  • les chambres des métiers ;
  • les chambres de Commerce ;
  • les chambres d'Agriculture ;
  • les Préfectures ;
  • ...

- Aux intégrateurs et aux prestataires de services informatiques qui travaillent avec les collectivités ou les services de l'État.

Les tarifs 2010

Tarifs collectivités territoriales et services de l'État

L'adhésion au service est proposée sur la base d'un tarif unique annuel par site pondéré par la taille de la population du territoire visé.

Exemples de tarifs pour l'année 2010 :

Nb d'habitantsCoût annuel en euros HT
30095,00
500122,00
1000173,00
3000 300,00
5000387,00
10 000548,00
20 000775,00
50 0001 225,00
75 0001 500,00
125 0001 936,00
250 0002 739,00
500 0003 873,00
750 0004 743,00
1 000 0005 447,00
1 500 0006 708,00
2 000 0007 746,00
11 600 00018 655,00

Technologie et mise en oeuvre

« Comarquage.fr » est une solution de type service Web (SaaS - Software as a Service), distribuée depuis la plateforme d'hébergement Easter-eggs qui garantit le suivi, la mise à jour et la disponibilité des services à ses adhérents :

  • Intégration rapide : chaque composant est fourni sous la forme d'un gadget OpenSocial intégrable rapidement et de façon non-intrusive dans un site existant.
  • Compatibilité : la solution est compatible avec toutes les sites web existants.
  • Apparence : des CSS par défaut sont proposées pour une mise en ligne instantanée du service.
  • Référencement : le référencement des fiches du guide des droits et démarches et de l'annuaire dans les moteurs de recherche est optimisé pour une recherche intuitive du type « quoi ? : un service, ou ? : une ville ».
  • Accessibilité : la solution est développée selon les recommandations du Référentiel Général d'Accessibilité des Administrations (RGAA), version 2.2

    Une solution libre

    « Comarquage.fr » est une solution exclusivement fondée sur des logiciels libres et des technologies standards :

  • Elle est notamment interopérable avec les nouveaux outils de réseaux sociaux web 2.0
  • Cela facilite la réutilisation et la mutualisation des données
  • La collectivité peut envisager un hébergement local et une exploitation indépendante des services.

Logiciels utilisés :

  • Cosmetic est un logiciel de conversion en HTML des fichiers XML Coperia produits par la Documentation française dans le cadre du comarquage avec Service-Public.fr. Cosmetic est un logiciel libre sous licence GNU Affero General Public License version 3 ou supérieure. Plus d'informations à l'adresse http://wiki.infos-pratiques.org/wiki/Cosmetic
  • Metanol est un moteur de recherche d'adresses locales parmi différents annuaires publics. Metanol permet notamment d'accéder aux adresses et horaires d'ouvertures des différents organismes publics, administrations, établissements, équipements, etc, présents ou compétents pour chaque commune, département, région, etc. Metanol est un logiciel libre sous licence GNU Affero General Public License version 3 ou supérieure. Les données produites par Metanol sont sous licence GNU Free Documentation License version 1.3 ou supérieure. Plus d'informations à l'adresse http://wiki.infos-pratiques.org/wiki/Metanol
  • Territoria est à la fois une base de données hiérarchique des territoires, construite à partir de différentes sources publiques et un ensemble d'outils permettant de mettre à jour, exporter et manipuler cette base de données. Territoria est un logiciel libre sous licence GNU Affero General Public License version 3 ou supérieure. La base de données Territoria est sous licence GNU Free Documentation License version 1.3 ou supérieure. Plus d'informations à l'adresse http://wiki.infos-pratiques.org/wiki/Territoria

Héberger sa propre plateforme en local ?

Easter-eggs propose aux administrations qui le souhaitent un accompagnement « à la carte » pour le déploiement d'une plate-forme de services publics en ligne à l'échelle de la collectivité ou du territoire. Nous vous proposons dans cette optique :

  • Un accompagnement dans la mise en oeuvre et la personnalisation du service hébergé sur vos propres serveurs.
  • De la formation à destination de vos équipes et une assistance dans la phase d'exploitation avec une offre de support adaptée.

(1) Service-public.fr et pme.service-public.fr sont édités par la Documentation Française.

. Comarquage.fr est compatible avec la version 2 de Service-Public.fr.

by Pierre-yves Dillard at May 25, 2009 04:07 PM

March 11, 2009

Easter-eggs

Git

Présentation de l'outil Git

Git est un outil de gestion de versions décentralisé, développé initialement par Linus Torvalds. Utilisé pour le développement du noyau Linux, diffusé sous la licence libre GPL v2, ce système est maintenant utilisé par de nombreux autres projets libres : X.Org, freedesktop.org, GNOME, Perl, Wine, Vlc, etc.

Git possède toutes les fonctionnalités caractéristiques, et les avantages, d'un tel outil :

  • pas d'entrepôt central : toutes les copies de travail contiennent l'ensemble des données du projet, ce qui sécurise le projet contre les pertes de données ;
  • toutes les opérations standards (commits, visualisation d'historique, retour en arrière) sont rapides car réalisées sans accès au réseau ;
  • possibilité de travailler entièrement off-line, et de commiter sans publication des modifications ;
  • gestion des historiques, des branches, et fusions de branches.

Mais Git a des nombreux atouts qui le distingue de ses concurrents. En premier lieu sa performance. Git est généralement bien plus rapide que ses principaux concurrents [1].

Les dépôts Git utilisent moins de place que les dépôts des autres systèmes de gestion de versions décentralisés [2]. Plus étonnant, un dépôt Git peut prendre moins de place qu'une copie de travail SVN, bien qu'il contienne l'intégralité de toutes les révisions du projet, ce qui n'est pas de la copie de travail SVN [3].

Les autres atouts de Git sont ses fonctionnalités avancées telles que :

  • les commits interactifs : la possibilité de choisir, dans chaque fichier modifié, quelle ligne intégrera le commit ;
  • les cherry-pick : la possibilité de déplacer des patchs dans l'historique ou d'une branche à l'autre ;
  • git-stash pour stocker provisoirement les modifications en cours, par exemple pour corriger un bug qui vient d'être signalé ;
  • les patchs signés ;
  • git-bisect qui permet de retrouver dans l'historique d'un projet le commit qui a introduit un bug.

Enfin la grande force de Git est la facilité avec laquelle il permet de manipuler les branches. Créer des branches, passer de l'une à l'autre, les fusionner, les effacer, ne les publier que si nécessaire, toutes ces opérations sont extrêmement simples et rapides à effectuer.

Cela permet d'utiliser de nouveaux processus de développement et d'intégration logiciel par exemple basés sur le principe d'une branche par sujet (topic branch).

Heureusement pour ses concurrents, Git a aussi des faiblesses :

  • il ne permet pas la récupération partielle d'un dépôt, ce qui est pénalisant pour des projets avec des fichiers binaires de grande taille ;
  • git n'existe qu'en anglais ;
  • le programme git-svn, qui permet d'utiliser Git au dessus d'un dépôt Subversion, est peu performant sous Windows [4].

Les prestations d'Easter-eggs

Les prestations d'Easter-eggs autour du logiciel Git sont de trois natures :

Tout d'abord Easter-eggs se propose d'aider à l'intégration de Git dans le SI du client. Cette prestation comprend l'installation d'un serveur central, la migration des données du précédent logiciel (CVS, Subversion ou tout autre système de gestion de version). Certaines entreprises souhaitent continuer à maintenir l'ancien dépôt centralisé en parallèle de l'utilisation de Git. Il est alors possible de mettre en place une synchronisation avec un dépôt Git.

Easter-eggs peut aussi assurer des formations à Git :

  • Introduction à Git et aux systèmes décentralisés de gestion de version ;
  • Utilisation avancée de Git : il s'agit de former aux fonctionnalités avancées dont certaines sont citées ci-dessus ;
  • Bonnes pratiques avec Git : les fonctionnalités offertes par Git impliquent une autre manière de gérer un projet, de créer des patchs, des branches, etc. Ce module présentera ces bonnes pratiques.

Enfin Easter-eggs peut assurer des prestations de conseil autour de Git. Certains outils intégrés à Git, comme git-bisect, nécessitent une expertise et un accompagnement pour leur mise en œuvre.


[1] voir ici, ici ou .

[2] voir ici ou .

[3] Voir ici.

[4] L'amélioration de git-svn sous windows est un projet proposé au Google Summer of Code 2009

by Michaël Parienti at March 11, 2009 10:49 AM

March 06, 2009

Easter-eggs

Système et Réseau

Easter-eggs intègre et déploie des solutions serveurs à base de logiciels libres depuis 1997. Notre expertise s'est progressivement développée au fil des années et de nos projets clients. Nos domaines de compétences couvrent aujourd'hui un très large spectre en matière de solutions serveurs GNU/Linux. De l'audit de vos systèmes à l'optimisation des performances, du conseil en architecture à l'assistance au déploiement, Easter-eggs met son expérience à votre service.

Internet - Intranet - Extranet

Serveur Web
Messagerie
Annuaire LDAP centralisé et base de données
Serveurs de fichiers, d'impressions
Serveur de Fax
Téléphonie (VOIP)

Infrastructure réseau

Passerelles et routeurs Internet/wifi
Serveur de sauvegarde
Haute-disponibilité, équilibrage de charge
Serveurs virtuels

Sécurité

Pare-feu, réseaux privés virtuels
Supervision
Serveurs Proxy et reverse Proxy

by Emmanuel Lacour, Pierre-yves Dillard at March 06, 2009 02:41 PM

Système et Réseau

Easter-eggs intègre et déploie des solutions serveurs à base de logiciels libres depuis 1997. Notre expertise s'est progressivement développée au fil des années et de nos projets clients. Nos domaines de compétences couvrent aujourd'hui un très large spectre en matière de solutions serveurs GNU/Linux. De l'audit de vos systèmes à l'optimisation des performances, du conseil en architecture à l'assistance au déploiement, Easter-eggs met son expérience à votre service.

Internet - Intranet - Extranet

Serveur Web
Messagerie
Annuaire LDAP centralisé et base de données
Serveurs de fichiers, d'impressions
Serveur de Fax
Téléphonie (VOIP)

Infrastructure réseau

Passerelles et routeurs Internet/wifi
Serveur de sauvegarde
Haute-disponibilité, équilibrage de charge
Serveurs virtuels

Sécurité

Pare-feu, réseaux privés virtuels
Supervision
Serveurs Proxy et reverse Proxy

by Emmanuel Lacour, Pierre-yves Dillard at March 06, 2009 02:41 PM

Développement spécifique

Particulièrement adaptés au développement applicatif, les logiciels libres fournissent des outils de développement robustes, sécurisés et ouverts, permettant de développer tout type d'applications.

De la définition du cahier des charges au développement et jusqu'à l'intégration dans votre système d'information, nous vous accompagnons tout au long de votre projet.

Actuellement la majorité des développements ont lieu dans un environnement Web. Easter-eggs maîtrise dans ce domaine deux technologies en particulier. Le choix entre ces deux environnements est alors dicté par les contraintes du client.

Environnement PHP

Depuis sa version 5, PHP a acquis des fonctionnalités qui le rapprochent de Java et de .NET, tout en gardant sa souplesse d'origine.

Très présent dans le monde des applications Web riches, il est aussi de plus en plus utilisé pour les applications stratégiques de l'entreprise.

Il n'est plus question aujourd'hui de réaliser un projet en PHP sans utiliser un framework qui balise les développements. Pour des raisons de souplesse, de fonctionnalité et de documentation, notre choix de framework PHP s'est porté sur Symfony.

Environnement Python

Python est un langage de programmation interprété orienté objet, puissant et pratique. Easter-eggs l'utilise depuis dix ans pour des projets internes et pour des projets non Web.

Aujourd'hui il existe des outils qui permettent d'utiliser aussi ce langage pour des projets Web.

La préférence d'Easter-eggs va au framework Pylons, pour sa très grande légèreté et sa modularité issue de l'utilisation du standard WSGI. Nous utilisons Pylons avec l'outil de mapping objet-relationnel SQLAlchemy et le moteur de template Mako.

MySQL et PostgreSQL

Les bases de données relationnelles (MySQL) ou relationnelles/objets (PostgreSQL) sous licence libre possèdent aujourd'hui toutes les fonctionnalités et les performances autrefois réservées aux SGBD propriétaires. Le choix de l'une ou de l'autre se fait en fonction du projet et des besoins du client.

Richesse des interface Web

Le langage Javascript remis au goût du jour par la méthode Ajax permet aujourd'hui, avec une utilisation contrôlée, d'enrichir le client Web en offrant plus d'ergonomie à l'utilisateur. L'utilisation de librairies comme MooTools ou Jquery facilite et accélère le travail des développeurs en prenant en charge, par exemple, la comptabilité Cross-Browser.

Méthodologie

Les meilleures technologies ne donnent rien sans méthodes de développement et de suivi adaptées. Nos développements s'appuient sur des méthodes agiles que nous adaptons à la taille du projet et/ou à la culture du client. Pour chacune de nos réalisations nous mettons en place des outils de suivi (Trac ou Redmine), des canaux de communication dédiés avec le client (mailings listes), et bien sûr un outil de gestion de versions, Git.

by Michaël Parienti, Pierre-yves Dillard at March 06, 2009 02:33 PM

February 27, 2009

Easter-eggs

Retour sur l'optimisation des performances d'une base de données PostgreSQL

La base de données PostgreSQL du projet MAVISE fournit les données de base sur l'ensemble du marché audiovisuel accessible dans l'Union européenne. Elle a été développée par Easter-eggs en collaboration avec l'Observatoire Européen de l'Audiovisuel, pour le compte de la direction générale de la communication de la Commission européenne. Nous allons décrire dans cet article les différentes méthodes que nous avons mises en place pour optimiser les performances de cette application.

Problématique

La base de données contient un grand nombre d'informations :

  • la description du paysage audiovisuel de 30 pays ;
  • des fiches sur 5 000 chaînes de télévision ;
  • des fiches sur 4 000 entreprises ;
  • des fiches sur 8 000 programmes de télévision ;

L'ensemble de ces données ne sont pas accessibles au grand public.

D'un point de vue technique, la base de données PostgreSQL contient :

  • 115 tables ;
  • 100 vues ;
  • 220 Mo de données.

Cela donne une petite idée de la taille de l'application.

La complexité de l'application, la quantité de données disponibles et leur affichage ont soulevé certaines problématiques pour gérer les transferts entre le client et le serveur Web et les requêtes complexes.

Optimisation de la base de données

Pour l'optimisation de la base de données, il faut être vigilant sur les points suivants :

- L'ORM (DB_DataObject dans notre cas) ne doit faire aucune opération de jointure . Il utilise toujours une vue dédiée pour chaque fonctionnalité ;
- Chaque vue ne calcule que les champs qui sont nécessaires à l'affichage ;
- Le plan d'exécution de chaque vue est optimisé à l'aide d'index. Pour trouver quels sont les index à créer, il faut utiliser l'instruction EXPLAIN ANALYSE , comme décrit sur le wiki de Postgres : Using EXPLAIN.

Le travail principal consiste donc à exécuter toutes les vues de l'application pour optimiser les plans d'exécution à l'aide d'index. Pour mieux comprendre la sortie de l'instruction EXPLAIN ANALYSE, nous utilisons l'outil suivant : explain-analyze.info.

Pour savoir quelles sont les optimisations les plus pertinentes, il est intéressant d'analyser les logs du serveur PostgreSQL à l'aide du logiciel Practical Query Analysis.

Il faut aussi “tuner” la configuration du serveur de base de données pour utiliser le maximum de la mémoire disponible sur le serveur.

Javascript

Nous avons utilisé le framework Javascript Mootools, le contrôleur de tableau dhtmlxGrid et l'éditeur de contenu TinyMCE.

Dans chaque page de l'application, il faut veiller à ne charger que les fichiers nécessaires. En effet, ces outils, bien que très pratiques, sont très volumineux et augmentent la taille des pages dans des proportions importantes.

Dans certains cas, nous avons dépassé plus de 640 Ko de code Javascript dans une page !

Les solutions que nous avons mises en place pour réduire la taille de ces fichiers :

  • La compression Gzip, avec laquelle nous avons malheureusement rencontré des problèmes très importants avec Internet Explorer ;
  • Nous avons ensuite opté pour YUI Compressor qui fonctionne bien mieux .

Systèmes de Cache

L'application dispose de nombreux systèmes de cache :

  • Le système de cache du gestionaire de template Smarty ;
  • Notre propre système de cache pour le contenu des tableaux, réalisé à l'aide du module Pear Cache_Lite ;
  • L'API de XCache, pour certains calculs et XCache pour les opcodes PHP ;
  • Le système de cache d'Apache Cocoon pour le système d'impression ;
  • La cache du navigateur des utilisateurs. Il est possible de bien contrôler le contenu du navigateur des clients à l'aide du module mod_expires d'Apache.

Réduction de la taille des pages

Nous avons travaillé pour réduire au maximum la taille des échanges entre le navigateur web et le serveur. Pour cela nous avons utilisé la compression Gzip sur :

  • Le contenu des tableaux ;
  • Les pages produites par le système de template ;

Celle-ci est réalisée par le gestionnaire de tampon de PHP, à l'aide de la fonction ob_gzhandler .

Outils utilisés

L'optimisation d'une application est toujours empirique, il est nécessaire d'avoir de bons outils pour observer les effets des modifications. Pour cela nous avons utilisé :

Liens utiles pour l'optimisation des performances d'une application Web

Pour finir, voici quelques liens très intéressants sur l'optimisation d'une application Web :

by Christophe Nowicki at February 27, 2009 09:34 AM

Système d'impression PDF « RESTful » pour le Web

Le monde du Web et celui de l'impression ont décidément du mal à se rencontrer. La prise en charge de l'impression est bien souvent très problématique dans le cadre d'un projet Web.

Dans la plupart des cas, il est possible de s'en sortir en utilisant les possibilités offertes par les feuilles de style CSS, mais le rendu final du document n'est pas garanti : les différents navigateurs interprètent la feuille de style selon leur humeur et cela ne fonctionne pas dans le cas de documents complexes.

Dans ce cas, l'unique solution est de produire un document au format PDF, unique garantie pour une impression de qualité. Je vais donc décrire dans cet article la solution que nous avons mise en place dans le cadre du projet MAVISE.

Historique

La base de données MAVISE fournit les données sur l'ensemble des chaînes de télévision accessibles dans l'Union européenne. Elle a été développée par Easter-eggs en collaboration avec l'Observatoire européen de l'audiovisuel (OEA) pour le compte de la Direction Générale de le Communication de la Commission Européenne.

Dans la première phase du projet, nous avons développé un système d'impression avec des feuilles de style. Ce système ne donnait pas entièrement satisfaction au client.

En effet, les pages du projet étant très complexes, le résultat de l'impression produite par les différents navigateurs était très aléatoire (coupure en plein milieu d'un tableau, impression sur plusieurs pages et sauts de pages inexpliqués).

Le résultat n'était pas professionnel et il était difficile pour le client de produire un rapport papier avec les contenus de la base. Nous avons donc proposé de mettre en place un export PDF pour l'ensemble des éléments de l'application.

Choix techniques

Le travail pour produire des documents PDF consiste dans la plupart des cas à dessiner, à l'aide de différentes API, le contenu du document (texte, tableaux, graphiques et mise en page).

Les outils utilisés habituellement sont :

Il s'agit d'un travail long et fastidieux, qui consiste à fournir une suite d'instructions pour former le document.

Cette technique montre vite ses limites :

  • les demandes de modification de mise en page du document produit sont lourdes et nécessitent beaucoup de temps ;
  • le code pour produire le document est difficilement rationalisable ;
  • elle ne convient pas à des documents de grande taille.

Dans le modèle MVC, qu'utilisent la plupart des applications Web, nous utilisons un système de template pour l'affichage (la vue).

Alors à quoi bon « coder » à nouveau la présentation des documents PDF ?

Nous avons donc proposé au client de bâtir le système d'impression des documents PDF sur un système de template.

Ce système repose sur le langage de programmation XSL-FO, les projets Apache FOP et Apache Cocoon.

Architecture du système d'impression

1. Lorsque l'utilisateur clique sur le lien PDF, il est redirigé vers Apache Cocoon ;
2. Cocoon récupère l'ensemble des informations directement sur le site Web via l'API REST ;
3. Il agrège les informations dans un document XML ;
4. Ce document est transformé en FO à l'aide d'une feuille de style XSLT ;
5. Le document est produit par Apache FOP ;
6. L'utilisateur obtient le document final.

L'interface entre le Site Web et Apache Cocoon

L'architecture du système d'impression repose sur le fait que l'ensemble des variables manipulées par notre application est accessible à l'aide d'URL REST.

En effet, il est possible d'afficher le contenu des différentes variables manipulées par l'application à l'aide d'adresses URL spécifiques. Voici un exemple de sortie :





1
FR
France
t
4+

...

Il est donc possible de récupérer l'ensemble des informations du site à l'aide du protocole REST.

Nous avons aussi de très nombreux tableaux dans l'application. Pour les récupérer, nous utilisons le format XML natif du contrôleur de tableaux dhtmlxGrid. Voici un exemple de sortie : fichier XML pour dhtmlxGrid.

Agrégation des données dans un seul fichier

Pour récupérer l'ensemble des données du site dans un fichier XML, la directive « include » offerte par Cocoon a été utilisée :

$ cat /var/lib/tomcat5/webapps/cocoon/mavise/program/program.xml




...

Cette directive dit à Cocoon, d'inclure le contenu qui se trouve à l'url cocoon :/webui_program, défini dans le fichier sitemap.xmap :





Transformation XSLT

Pour transformer les données contenues dans ce fichier, nous avons créé notre propre feuille de style XSLT, pour produire un document FO. Cette feuille de style prend en compte la mise en forme des différentes données du site.

Grâce à ce système, l'ensemble de la mise en forme est centralisé dans un seul fichier.

Il est également possible d'ajouter du contenu statique dans le PDF à l'aide de balises dédiées, comme par exemple une balise copyright, qui sera transformée en un texte statique dans tous les documents PDF.

Le pipeline pour les documents PDF

Voici le pipeline final pour produire des documents PDF :











Le point intéressant à noter dans ce pipeline est l'encodage des arguments passés via l'URL pour le document PDF. En effet, les URL pour produire les PDF sont formés de la manière suivante :

http://mavise.obs.coe.int/cocoon/ma...

L'URL contient le nom du module et l'identifiant de la chaîne. Il est ainsi possible de passer d'autres arguments au système d'impression (comme par exemple changer l'orientation du document).

Performances

Au niveau des performances du système d'impression, nous n'avons pas une charge très importante sur la génération des documents PDF. Mais la production des documents est une tâche complexe et nécessite donc de manière générale beaucoup de ressources.

Une chose intéressante à noter : la génération des documents PDF est plus rapide que l'affichage dans un navigateur ! Cela est lié au fait que les échanges de données se font en local sur le serveur, il y a donc moins de bande passante utilisée que dans le cas de l'affichage de cette même page par le navigateur.

Les petits désagréments du format PDF

Nous avons rencontré des difficultés avec la gestion des polices UTF-8. En effet, comme la base contient des données sur des chaînes de télévision et des entreprises Turques, nous avons eu besoin d'embarquer une police UTF-8 à l'intérieur du document.

Et visiblement cela pose des problèmes à certains lecteurs.

Quelques liens utiles

Voici quelques liens utiles qui nous ont aidé dans la réalisation de ce système d'impression :

by Christophe Nowicki at February 27, 2009 09:34 AM

January 30, 2009

Easter-eggs

Solutions Linux 2009 à Paris Expo Porte de Versailles

Depuis 10 ans, Easter-eggs participe chaque année au salon Linux Expo, devenu Solutions Linux. L'édition 2009 aura lieu à Paris Expo, porte de Versailles, du 31 mars au 2 avril.

Nous serons heureux de pouvoir échanger avec vous durant ces 3 jours sur le stand du réseau Libre-entreprise, réseau de sociétés expertes en informatique libre créé en 2002 (stand D16, à proximité du village associatif).

Informations pratiques

- Jours et horaires d'ouverture

  • Mardi 31 mars : 9h00-18h00
  • Mercredi 1er avril : 9h00-20h00
  • Jeudi 2 avril : 9h00-18h00

- Lieu

Paris Expo - Porte de Versailles, hall 2.2

- Accès

Métro : Ligne 12, station Porte de Versailles, Bus : Lignes 39, 80 ou T3 arrêt Porte de Versailles - Palais des Expositions

by Anne Dillard at January 30, 2009 03:16 PM

December 10, 2008

Easter-eggs

Lancement de MAVISE

Le 9 avril 2008, la Commission européenne (DG Communication) et l'Observatoire européen de l'audiovisuel lanceront, dans le cadre du MIP-TV, la version publique d'une nouvelle base de données TV, MAVISE, qui a pour vocation de fournir les données de base sur l'ensemble des chaînes de télévision accessibles dans l'Union européenne et les deux pays candidats (Croatie et Turquie). La base sera accessible gratuitement à partir du 9 avril 2008 à l'adresse http://mavise.obs.coe.int et sera également accessible via le site Europa, le portail du service Audiovisuel de la Commission.

Un nouvel outil pour les professionnels

« La Commission européenne avait besoin d'un outil lui permettant de comprendre l'univers télévisuel dans toute sa complexité », déclare Thierry Vissol, Conseiller à la DG Communication de la Commission européenne. « L'Observatoire européen de l'audiovisuel a développé pour nous une base qui tient compte de cette complexité. La version publique de la base MAVISE telle que nous la présentons aujourd'hui ne contient qu'une partie des informations collectées par l'Observatoire. Pour des questions de droit de propriété intellectuelle, il n'était pas possible de mettre gratuitement à la disposition du public les informations relatives aux audiences et à la situation financière des entreprises ».

« Le projet MAVISE, qui s'étend sur une période de cinq ans, fournit à l'Observatoire la possibilité de renforcer sa compétence et ses services dans le domaine de la télévision » explique Wolfgang Closs, Directeur exécutif de l'Observatoire européen de l'audiovisuel. « Il s'agit avant tout d'un projet s'inscrivant dans un contrat de service pour la Commission européenne, mais nous sommes heureux qu'il débouche également sur un service complémentaire, dont nous espérons qu'il sera utile aux professionnels et même au grand public ».

« MAVISE contient déjà les principales informations concernant plus de 2 500 sociétés, plus de 2 700 chaînes de télévision et les listes de programmation de plus d'une centaine de distributeurs », explique André Lange, responsable de département à l'Observatoire. « L'objectif est, d'ici la fin de l'année, de recenser les quelque 6 000 à 7 000 chaînes existant en Europe. Dans son état actuel, la base est loin d'être complète, mais les chaînes les plus significatives en termes d'audience et les principales chaînes thématiques sont déjà incluses et la base peut déjà rendre de grands services ».

Parmi les fournisseurs de données pour la base MAVISE on compte Eurodata TV Worldwide, le Bureau van Dijk Electronic Publishing et Lyngemark. La base a été développée par la société Easter-eggs. L'assistance à maîtrise d'ouvrage a été assurée par Altran.

Le contenu de la base

Pour chaque pays, la base MAVISE contient :

- une description générale du paysage télévisuel et un répertoire des sources d'information,
- l'identification des instances accordant des licences aux chaînes de télévision ou établissant des registres des chaînes existantes,
- des données de base sur la population, le nombre de foyers TV et le taux d'équipement en télévision numérique,
- la liste des chaînes établies dans le pays,
- la liste des chaînes reçues dans le pays,
- et la liste des opérateurs (diffuseurs, fournisseurs de bouquets) et des entreprises de diffusion technique (diffusion terrestre analogique ou numérique, câblo-opérateurs, opérateurs satellites, fournisseurs de services IPTV ou de télévision vers les mobiles).

Pour chaque entreprise de diffusion, la base contient :

- les coordonnées,
- l'adresse du site,
- l'identification du groupe de communication auquel appartient l'entreprise
- et la liste des chaînes diffusées.

Pour chaque chaîne de télévision sont proposés :

- l'identification de l'entreprise éditrice,
- le concept et le genre de la chaîne,
- le type de public visé,
- les pays visés par la chaîne,
- le nombre d'heures diffusées,
- les modalités d'accès (gratuit, payant),
- l'existence éventuelle de version haute définition,
- les différentes versions linguistiques existantes,
- l'existence éventuelle de services pour les personnes handicapées,
- l'existence éventuelle de services de webcasting et de service de rattrapage (catch-up),
- les sites de la chaîne (site général, régie publicitaire,…),
- pour les télévisions locales et régionales, la région visée,
- le type de licence et, lorsque disponible, la date de début et de fin de la licence,
- dans chaque pays où la chaîne est diffusée, l'identification des principaux distributeurs techniques proposant la chaîne (opérateurs de réseaux analogiques et numériques terrestres, câblopérateurs, opérateurs IPTV, opérateurs de service de télévision vers les mobiles), l'identification du ou des satellites sur lesquels la chaîne est diffusée,
- les bouquets de chaîne dans lesquels la chaîne est reprise
- et la pénétration technique (nombre de foyers TV susceptibles de recevoir la chaîne).

Pour les opérateurs de bouquets de chaînes et les principaux distributeurs, la base détaille également la liste des chaînes diffusées.

La base est dotée d'outils de recherche avancée, permettant par exemple d'identifier les chaînes d'un genre donné dans un pays donné ou les chaînes visant des catégories spécifiques de la population.

Lire le communiqué de presse sur le site de l'Observatoire européen de l'audiovisuel

December 10, 2008 09:07 AM

December 08, 2008

Easter-eggs

Contributions

Présentation des projets et des logiciels libres auxquels nous participons, que cela soit sur notre temps libre ou dans le cadre de projets clients.

La totalité du code source et des exécutables des projets et logiciels listés ci-dessous sont sous licences libres, disponibles sur simple téléchargement en suivant les liens indiqués.

PROJETS

Les projets sont listés par ordre alphabétique.


Projet Debian

Debian logo URL : http://www.debian.org

Contributions de Julien Danjou, Debian developer since 2002 and Stable Release Manage since 2006
URL : http://qa.debian.org/developer.php?login=acid

Contributions de Emmanuel Lacour
URL : http://qa.debian.org/developer.php?login=elacour@home-dn.net

Contributions de Cyril Lacoux
URL : http://qa.debian.org/developer.php?login=clacoux@easter-eggs.com


Projet Freedesktop

Freedesktop logo URL : http://www.freedesktop.org

freedesktop.org is open source / open discussion software projects working on interoperability and shared technology for X Window System desktops. The most famous X desktops are GNOME and KDE, but developers working on any Linux/UNIX GUI technology are welcome to participate.

XCB XCB logo URL : http://xcb.freedesktop.org

Description : A replacement for Xlib featuring a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility.
Contribution de Julien Danjou


Projet OpenMoko

Openmoko logo URL : http://wiki.openmoko.org/wiki/Main_Page/fr

Description : Openmoko™ est un projet destiné à fournir des téléphones portables dotés d'une couche matérielle et logicielle libre.

Neon

Description : C'est un visualisateur d'images pour les appareils mobiles. Il est a été spécialement concu pour les téléphones libre Openmoko. Son interface se veut simple, rapide et facile à utiliser. Il est écrit en Python/Edje et est placé sous licence GNU General Public License (GPL).
URL : http://neon.projects.openmoko.org/
Contribution de Valéry Febvre


Projet Request Tracker

URL : http://bestpractical.com/rt/

RT-Extension-MandatorySubject

Description : This Request Tracker Extension enforces users to fill the subject when creating a ticket via the web interface.
URL : http://git.home-dn.net/
Contribution de Emmanuel Lacour

RT-Extension-SearchResults-XLS

Description : This RT Extension allow users to download search results in Microsoft Excel binary format.
URL : http://git.home-dn.net/
Contribution de Emmanuel Lacour

RT-Extension-ToggleSuperUser

Description : This RT Extension allow users with SuperUser right to quickly enable/disable this right with a simple link at the top of each page
URL : http://git.home-dn.net/
Contribution de Emmanuel Lacour


Projet VHFFS

VHFFS logo URL : http://www.vhffs.org

VHFFS is a massive virtual hosting platform for free software.
Contributions de Julien Danjou


Projet Webmin

Webmin logo URL : http://www.webmin.com

wbmclamav

Description : wbmclamav est un module webmin pour gérer Clam Antivirus.
Language : Perl
URL : http://wbmclamav.labs.libre-entreprise.org/
Contribution de Emmanuel Saracco

wbmtranslator

Description : wbmtranslator est un assistant de traduction pour les modules webmin/usermin.
Langage : Perl
URL : http://wbmtranslator.labs.libre-entreprise.org/
Contribution de Emmanuel Saracco

wbmtrustees

Description : Un module webmin pour gérer les droits Linux Trustees.
Langage : Perl
URL : http://wbmtrustees.labs.libre-entreprise.org/
Contribution de Emmanuel Saracco


LOGICIELS

Les logiciels sont listés par ordre alaphabétique.


aPAz

Description : aPAz est un masque anonyme PHP très léger. Il s'agit d'une application de type "Dépose-moi n'importe où, navigue partout". Vous pouvez l'utiliser sur n'importe quel serveur Web qui autorise les sockets en PHP.
Langage : PHP
URL :http://apaz.labs.libre-entreprise.org/
Contribution de Emmanuel Saracco


awesome

awesome logo Description :Frame-work Lua based window manager.
Langage : C, Lua
URL :http://awesome.naquadah.org
Contribution de Julien Danjou


Cosmetic

Description : Cosmetic est un logiciel de conversion en HTML des fichiers XML Coperia produits par la Documentation française dans le cadre du comarquage avec Service-Public.fr.
Langage : Python
URL : http://wiki.infos-pratiques.org/wiki/Cosmetic
Contribution de Emmanuel Raviart


ddnsedit

Description : Let you edit dynamic dns zones like standard zones with your favorite editor
Langage :
URL : http://git.home-dn.net/
Contribution de Emmanuel Lacour


Eyes Of Lynx

Description : Eyes of Lynx est une application Web qui vous permet de partager, d'examiner et de gérer vos albums photos. Elle est écrite en PHP/Javascript et est placée sous licence GNU Affero General Public License (AGPL). Eyes Of Lynx est conçu pour être rapide, intuitif et très puissant. Ses fonctionnalités clé sont une interface originale et innovante, des fonctions de zoom et de rotation, un carrousel, une vignette de navigation, ...
Langage : PHP
URL : http://people.easter-eggs.org/ valos/dokuwiki/doku.php?id=fr:projects:eyes_of_lynx
Contribution de Valéry Febvre


gospy-applet

Description : Une applet de surveillance des pages Web et des serveurs
Langage : C
URL : http://gospy-applet.labs.libre-entreprise.org/
Contribution de Emmanuel Saracco


gURLChecker

Description : Un vérificateur graphique de liens (bookmarks, sites web)personnalisable pour GNOME.
Langage : C
URL : http://gurlchecker.labs.libre-entreprise.org/
Contribution de Emmanuel Saracco


JAMin

Description : Développement d'une interface de masterisation pour JACK audio dans le cadre du projet Jamin.
Langage : C
URL : http://jamin.sourceforge.net/en/about.html
Contribution de Emmanuel Saracco


LdapSaisie

Description : LdapSaisie est une application Web, développée en PHP et Javascript, dédiée à l'administration d'un annuaire LDAP dont le schéma est maîtrisé
Langage : PHP
URL :http://ldapsaisie.labs.libre-entreprise.org/
Contribution de Benjamin Renard


MaCollec

Description : MaCollec est une application Web qui vous aide à gérer vos collections (livres, DVD, CD audio). Elle est écrite en PHP/Javascript et utilise la technologie AJAX pour produire une interface jolie et agréable.Les informations des articles (y compris les couvertures) sont récupérées sur la bibliothèques en ligne Amazon.
Langage : PHP
URL : http://macollec.labs.libre-entreprise.org/?lang=fr_FR
Contribution de Valéry Febvre


mod_defensible

Description : Apache 2 module to block spammers using DNSBL servers.
Langage : C
URL : http://julien.danjou.info/mod_defensible/
Contribution de Julien Danjou


perfect_maildir

Description : "Simple but Perfect" mbox to Maildir converter
Langage :
URL : http://git.home-dn.net/
Contribution de Emmanuel Lacour


phpRemoteShell

Description : phpRemoteShell est une application Web tout-en-un pour la gestion d'accès distant à un serveur. Elle contient un gestionnaire de fichier complet, l'exécution de commandes ou de code PHP/SQL/LDAP sur le serveur, une gestion de la crontab, ainsi qu'une gestion de zombies. Elle peut également se loger elle-même dans des fichiers existants sur le serveur et s'auto-déployer lors de leur exécution. Dans le cas ou elle a été préalablement chiffrée, elle peut s'auto-déchiffrer à la volée.
Langage : PHP
URL : http://phpremoteshell.labs.libre-entreprise.org/
Contribution de Emmanuel Saracco


pyautoradio

Description : This a pygtk/glade application wich ease the use of silly devices like mp3 autoradios. It convert ogg files to mp3 and write album's files on the right order on your usb keys.
Langage : Python
URL : https://labs.libre-entreprise.org/projects/pyautoradio/
Contribution de Cyril Kluska


PyXMLSec

Description :PyXMLSec est un binding Python pour la bibliothèque XML Security Library (http://www.aleksey.com/xmlsec/).
Langage : C, Python
URL : http://pyxmlsec.labs.libre-entreprise.org/
Contribution de Valéry Febvre


rebuildd

Description :Multi-threaded persistent Python daemon to rebuild Debian packages.
Langage : Python
URL : http://julien.danjou.info/rebuildd/
Contribution de Julien Danjou


smtpt

Description : Send virus_signature / spam_signature / normal messages to a named host with named sender/recipients and optionnal message size or smtp auth.
Langage :
URL : http://git.home-dn.net/
Contribution de Emmanuel Lacour


sslexpire

Description : This tool provides remote check for ssl certificate expiration date.
Langage :
URL : http://git.home-dn.net/
Contribution de Emmanuel Lacour


sysrqd

Description : Daemon intended to manage Linux SysRq over network.
Langage : C
URL : http://julien.danjou.info/sysrqd/
Contribution de Julien Danjou


telak

Description : X11 application displaying local or remote image on root window.
Langage : C
URL : http://julien.danjou.info/telak/
Contribution de Julien Danjou


WebDhcpDns

Description : A Php/MySQL based Web application to manage a DHCP server and update a DNS server with LDAP and MySQL authentification.
Langage : PHP
URL : http://labs.libre-entreprise.org/projects/webdhcpdns/
Contribution de Emmanuel Saracco


wmDrawer

Description : wmDrawer est une DockApp WindowMaker qui fournit un tiroir (une barre de boutons retractable) pour lancer des applications. Elle peut être utilisée avec tous les gestionnaires de fenêtres fournissant un support de DockApp comme WindowMaker, Blackbox, Fluxbox, Openbox, ...
Langage : C
URL : http://people.easter-eggs.org/ valos/wmdrawer/
Contribution de Valéry Febvre

by Pierre-yves Dillard at December 08, 2008 02:16 PM

June 30, 2008

Easter-eggs

Recherche approximative avec Double Métaphone et distance de Levenshtein

Présentation

La recherche approximative, ou Fuzzy search en anglais, concerne les recherches textuelles pour lesquelles une orthographe inexacte est permise.

Il existe des outils d'indexation et de recherche de données de type Apache Lucene [1], mais le besoin du client reste centré sur la recherche approximative donc nous développons une solution sur mesure.

Cet article présente une manière simple et élégante d'implémenter cette recherche approximative.

Fonctionnalités

Cet article utilise un exemple d'utilisation tiré du projet E-Nota [2] de notre client Médiamétrie [3].

Ce site est accessible aux utilisateurs abonnés au service.

Le site web E-Nota affiche, entre autres, des informations sur des programmes télévisés stockés en base de données. L'utilisateur accède aux fiches des programmes à l'aide d'un moteur de recherche.

Les titres des programmes étant stockés en anglais ainsi que dans leur langue d'origine, l'utilisateur se trompe fréquemment dans l'orthographe. Le moteur de recherche doit être capable de trouver les bons titres de programmes, même si l'orthographe n'est pas la bonne, et cela de la façon la plus permissive possible.

Par exemple, si l'utilisateur saisit « Desesperate housevifs » (mauvaise orthographe), le moteur de recherche lui suggère « Desperate Housewives » comme alternative.

Dans un premier temps, les programmes sont recherchés selon l'orthographe exacte demandée par l'utilisateur. Si aucun résultat n'est trouvé, l'algorithme de recherche approximative est utilisé afin d'élargir le champ des résultats possibles.

Voici le diagramme de navigation du moteur de recherche :

Codage phonétique

Présentation

La recherche approximative est résolue en utilisant le codage phonétique des titres des programmes.

Le titre de chaque programme est codé par une chaîne de caractères appelée clé phonétique.

La taille de la base de données est trop grande (environ 10000 programmes) pour calculer à la volée les clés phonétiques des titres : elles sont stockées dans une colonne de la table des programmes.

Il existe plusieurs algorithmes de calcul pour obtenir ces clés phonétiques. Nous présentons le Soundex et le Double métaphone.

Distance de Levenshtein

La distance de Levenshtein est un algorithme qui mesure la similarité entre deux chaînes de caractères.

Cet algorithme est utilisé dans la suite de l'article. Il retourne le nombre de modifications à effectuer pour passer d'une chaîne à l'autre.

Les modifications sont l'ajout, la suppression ou la modification d'un caractère.

Soundex

L'algorithme du Soundex retourne une clé phonétique constituée d'une lettre et de quatre chiffres en fonction d'une chaîne de caractères fournie en entrée.

La première lettre est la première de la chaîne de caractères à coder. Les trois chiffres correspondent aux trois premières consonnes de la chaîne.

Cet algorithme historique est souvent utilisé mais n'est pas le plus efficace.

Par exemple, les chaînes « strictly », « Strictly come dancing » et « Strict in dancing » ont le même code : S362. Cela induit un manque de précision et donc du bruit dans les résultats de la recherche.

Pour effectuer la recherche, il faut :

  1. trier tous les programmes en fonction de la distance de Levenshtein entre le codage du titre et le codage de la chaîne recherchée
  2. sélectionner les X premiers programmes
  3. trier de nouveau les résultats en fonction de la distance de Levenshtein entre le titre du programme et la chaîne recherchée
  4. afficher les Y premiers programmes sous forme de suggestions de recherche

X et Y sont des constantes. Les valeurs Y = 10 et X = Y + 30 sont des valeurs intéressantes. Il est nécessaire de paraméter X plus grand que Y pour diminuer le bruit dans les résultats de la recherche.

Malgré cela, les résultats présentés ne sont pas assez pertinents en raison du bruit engendré par l'algorithme. Le fait que l'algorithme du Soundex se limite aux trois premières consonnes est trop limitant. Il nous faut donc un autre algorithme qui offre un codage phonétique plus représentatif de la chaîne à coder.

Double métaphone

Dérivé de l'algorithme Métaphone, il est appelé « double » car il propose un codage principal et un alternatif pour une même chaîne donnée en entrée. Cela permet plus de souplesse quand aux différentes prononciations qui peuvent exister en fonction des pays. Cependant nous n'utiliserons que le codage principal.

L'algorithme du double métaphone simplifie à l'extrême la chaîne donnée en entrée en lui retirant ses voyelles et en ramenant les consonnes similaires à une consonne de référence.

Par exemple, le titre « Desperate housewives » a pour codage « TSPRTSFS », la mauvaise orthographe « Desesperate housevif » est codée « TSSPRTSFF » et le mot « desperate » est codé « TSPRT ». Cela permet plus de finesse par rapport à l'algorithme du Soundex.

Les codages phonétiques étant différents, il est nécessaire de les comparer en utilisant non pas l'égalité stricte mais la distance de Levenshtein.

La méthode de recherche devient :

  1. sélectionner tous les programmes dont la distance de Levenshtein entre le codage du titre et le codage de la chaîne recherchée est inférieure à L
  2. trier ces programmes en fonction de la distance de Levenshtein entre les titres eux-mêmes et la chaîne recherchée
  3. afficher les X premiers programmes sous forme de suggestions de recherche

Les valeurs L = 2 et X = 10 sont des valeurs intéressantes.

Cette fois-ci, il est possible de sélectionner directement dès la deuxième étape un nombre restreint de programmes à afficher. Cela engendre un gain en performances et en pertinence des résultats.

Pour pousser au maximum l'exemple, la recherche « strictli kum tenzy » renvoie bien « Strictly come dancing » et la recherche « desesperat ouzvif » renvoie bien « Desperate Housewives ».

Implantation

Nous utilisons PHP version 5.2.0-8+etch11 et PostgreSQL version 8.1.11-0etch1 sous Debian Etch (stable).

La table « programs » stocke les programmes. Elle contient une colonne pour le titre et une colonne pour le codage double metaphone du titre.

> SELECT * FROM programs ;
title title_double_metaphone
Desperate housewives TSPRTSFS
Strictly come dancing STRKTLKMTNSNK
Lost LST

L'utilisateur saisit la chaîne recherchée dans un formulaire d'une page HTML. La variable s'appelle $search_text.

Le calcul de la clé phonétique double métaphone utilise la fonction PHP double_metaphone() non disponible en standard. Elle est fournie par l'extension PECL doublemetaphone [4].

De plus nous avons besoin d'installer la fonction « levenshtein » pour PostgreSQL :

root# apt-get install postgresql-contrib-8.1
user$ psql my_database  /usr/share/postgresql/8.1/contrib/fuzzystrmatch.sql
La procédure de recherche encode la chaîne à rechercher :
$search_text_dm = double_metaphone($search_text) ;
$search_text_dm = $search_text_dm[0] ;
La fonction double_metaphone renvoie un tableau à deux éléments : le codage principal et alternatif. Nous n'utilisons que le codage principal.

Puis recherche les programmes grâce à la requête SQL suivante :

SELECT DISTINCT title, LEVENSHTEIN(LOWER($search_text), LOWER(title)) AS distance
FROM programs
WHERE LEVENSHTEIN($search_text_dm, title_double_metaphone)  2
ORDER BY distance
LIMIT 10 ;

Évolutions possibles

Il existe encore une limitation : le codage en double métaphone est effectué sur le titre du programme en entier en non pas mot par mot. Si l'utilisateur saisit une partie du titre mal orthographiée, les résultats ne seront pas assez pertinents.

Par exemple, s'il saisit « housevif » au lieu de « housewives », les résultats retournés seront des programmes dont le titre commence par « house », « as », « heist », etc. tandis que l'utilisateur s'attendait à « Desperate housewives ».

Pour résoudre ce problème, on pourrait coder séparément les mots en double métaphone dans une table à part. Dans ce cas, une table d'indirection serait utilisée pour effectuer la recherche.

Puis l'algorithme de recherche travaillerait mot par mot.

Il est envisageable de porter cette méthode de recherche approximative comme plugin pour un framework web. Le framework Symfony [5] propose déjà un plugin pour Apache Lucene, un moteur de recherche générique.

Conclusion

Les résultats obtenus sont très satisfaisants car la tolérance aux erreurs est grande et les résultats pertinents.


[1] Apache Lucene, http://lucene.apache.org

[2] New On The Air, http://www.e-nota.com

[3] Médiamétrie, http://www.mediametrie.fr

[4] Extension PECL doublemetaphone, http://pecl.php.net/package/doublem...

[5] Framework Symfony http://www.symfony-project.org

by Christophe Benz at June 30, 2008 03:04 PM

June 26, 2008

Easter-eggs

Validation d'un fichier CSV à l'aide d'un schéma XML

Le format de fichier CSV présente certains avantages :

  • il est facilement manipulable pour les utilisateurs à l'aide d'un tableur comme Calc, Gnumeric ou bien Excel ;
  • il permet d'écrire rapidement et facilement des routines d'import / export ;
  • il permet d'échanger les données entre des bases et des systèmes hétérogènes.

Mais ce format de fichier ne dispose pas d'un système de validation. Dans la plupart des cas ce sont les routines d'import / export qui prennent en charge la validation des données et de leur mise en forme.

Ce travail est pénible, répétitif et ennuyeux mais nécessaire si vous ne voulez pas qu'un fichier mal formaté ne corrompe les données de votre base.

L'objectif de cet article est de proposer une solution simple permettant la validation d'un fichier CSV en utilisant les fonctionnalités offertes par les schémas XML.

Les exemples fournis sont écrits à l'aide du langage de programmation PHP5.

Transformation CSV vers XML

Votre fichier doit contenir sur la 1re ligne, le nom de chaque colonne :

“CHANNEL” ;”COMPANY” ;”BVD_ID_Groupe_1″ ;”BVD_ID_Groupe_2″ ;”GENRE” ;”URL” ;”OTHER_URL” ;”COMPETENT_AUTHORITY”
“Canal+ Film 1″ ;”C MORE ENTERTAINMENT AB” ;”NL33268595″ ;”DE8330261794″ ;”CIN” ;”http://www.canalplus.se” ;”http:..., http://www.prosiebensat1.de/” ;”...
“Canal+ Film 2″ ;”C MORE ENTERTAINMENT AB” ;”NL33268595″ ;”DE8330261794″ ;”CIN” ;”http://www.canalplus.se” ;”http:..., http://www.prosiebensat1.de/” ;”...
“Canal+ Film 2 Sport Weekend” ;”C MORE ENTERTAINMENT AB” ;”NL33268595″ ;”DE8330261794″ ;”CIN” ;”http://www.canalplus.se” ;”http:..., http://www.prosiebensat1.de/” ;”...
“Canal+ Film 3″ ;”C MORE ENTERTAINMENT AB” ;”NL33268595″ ;”DE8330261794″ ;”CIN” ;”http://www.canalplus.se” ;”http:..., http://www.prosiebensat1.de/” ;”...
“Canal+ Film HD” ;”C MORE ENTERTAINMENT AB” ;”NL33268595″ ;”DE8330261794″ ;”CIN” ;”http://www.canalplus.se” ;”http:..., http://www.prosiebensat1.de/” ;”...

Pour transformer le fichier CSV en XML, il suffit de lire le fichier CSV avec la fonction fgetcsv et mettre les données dans des balises XML : csv_to_xml.php

Un fichier CSV converti en XML ressemble à cela : channel.xml

Validation du fichier XML

Il ne reste plus qu'à écrire le schéma permettant de valider le fichier XML :

channel.xsd

Vous pouvez tester vos schéma en ligne de commande en utilisant la commande xmllint issue du paquet libxml2-utils Debian :

$ xmllint —noout —schema channel.xsd channel.xml channel.xml validates

Validation en PHP

Une fois que votre schéma est correct et permet de valider le contenu du fichier XML, il faut l'intégrer directement dans votre application : validate.php

Conclusion

Cette méthode apporte les avantages suivants :

  • Les règles de validation sont décrites directement via le schéma et celui-ci dispose de nombreuses fonctionnalités tels les types de bases, les expression rationnelles, les séquences, etc.
  • Les messages d'erreur sont compréhensibles pour l'utilisateur même s'il faut parfois les traduire (en convertissant les numéros de lignes et certaines notions) ;
  • La simplicité.

Cette technique a été mise en oeuvre dans le cadre du projet MAVISE pour valider plus d'une vingtaine de formats de fichiers différents.

by Christophe Nowicki at June 26, 2008 09:13 AM