] > Blog entries (Logilab.org)

Blog entries

OpenData à Nantes: agrégateur des événements culturels

2011/12/12 by Arthur Lutz

Jeudi 8 décembre 2011 nous avons participé à la réunion de travail sur l'ouverture des données événementielles.

Problématique des licences

Un premier problème est que la licence proposée par LiberTIC est la CreativeCommons CC-BY, alors que les producteurs de données n'ont souvent pas les droits sur toutes les données qu'ils diffusent (par exemple la photo d'illustration d'un concert). Ils auront donc du mal à les publier en totalité sous licence CC-BY. Espérons que la licence Creative Commons rentre dans les habitudes et que cela ne va pas trop freiner le projet.

Aujourd'hui, l'utilisation ressemble à du Fair Use: on tolère la ré-utilisation de contenus protégés par le droit d'auteur car cela sert la diffusion de l'information.

Nous nous sommes demandé s'il est possible de mélanger deux licences dans un flux de données ou s'il faut faire deux flux séparés mais liés.

https://creativecommons.org/images/license-layers.png

Problématique d'utilisation

Un deuxième problème est que les réutilisateurs ne seront pas intéréssés si les données sont trop pauvres et qu'elles n'incluent pas d'image ou de vidéo. Il faut donc trouver un socle commun qui satisfasse les producteurs et les réutilisateurs.

Import ou gros formulaires qui tâchent ?

Vu la complexité du modèle de données qui a émergé des discussions (beaucoup de cas particuliers), il a été proposé de fournir un formulaire de saisie d'un événement. A notre avis, la saisie "manuelle" doit rester un cas exceptionnel (un acteur culturel n'ayant pas de site pour publier par exemple), au risque de n'être pour les producteurs qu'un enième site à renseigner lors de la publication de son agenda.

Un exemple de bonnes pratiques est le très populaire GoodRelations qui offre un formulaire pour qu'un utilisateur qui n'a pas intégré le format à sa boutique en ligne puisse facilement générer son fichier et l'héberger chez lui, favorisant ainsi un modèle décentralisé calqué sur celui des moteurs de recherche.

Formats

Il nous semble donc important de se concentrer sur les formats standards qui pourraient être importés et exportés par la plateforme.

En voici une liste non exhaustive:

Lectures supplémentaires

Cherchant à combiner des vocabulaires existants (afin de ne pas réinventer un format qui devra être traduit dans un autre vocabulaire pour être réutilisable) nous sommes tombés sur les articles suivants :

http://cdn1.iconfinder.com/data/icons/transformers/network-connections.png http://cdn1.iconfinder.com/data/icons/transformers/Internet-Explorer.png http://cdn1.iconfinder.com/data/icons/transformers/entire-network.png

Conclusion

Il nous paraît important de ne pas se tromper dans les orientations choisies:

  • utiliser des formats standards et combiner l'utilisation de namespaces existants plutôt que d'inventer un nouveau format
  • proposer plusieurs formats d'export pour différentes utilisations (json, ical, etc) quitte à ne pas inclure tout le contenu disponible si le format ne s'y prête pas
  • ne pas créer une API de plus et choisir de privilégier les standards du web sémantique en publiant du RDF et si possible en fournissant un accès SPARQL
  • préférer la publication distribuée des données par leurs producteurs et leur agrégation par la plate-forme plutôt que d'attendre des producteurs qu'ils remplissent un formulaire de plus.

Nous attendons avec impatience la suite des travaux. Selon LiberTIC la plateforme sera developpée en logiciel libre avec des outils collaboratifs pour piloter le projet.

CubicWeb est une plateforme disponible en logiciel libre qui a déjà fait ses preuves et a été conçue pour développer des applications du type de l'aggrégateur décrit ci-dessus: import et export des données sous différents formats, utilisation des technologies standards du web sémantique. Nous espérons que ceux qui auront à réaliser l'agrégateur choisiront CubicWeb comme base technique pour ce projet.


Rencontre Open Data à Nantes: Enjeux et opportunités pour le secteur culturel

2011/11/17 by Arthur Lutz

Nous étions présents à l'évenement organisé par Stereolux et Libertic consacré à l'OpenData dans le domaine de la culture à Nantes. Voici un court compte rendu des points que nous avons retenus de ces présentations.

Présentation générale de l'OpenData par Libertic

Il existe sur la toile assez d'articles sur l'Opendata pour qu'il ne nous semble pas nécessaire d'en donner une description, mais nous tenons à souligner que l'OpenData n'est pas simplement une mise à disposition des informations. Pour que des données puissent être qualifiées d'ouvertes, il faut qu'elles respectent une dizaine de principes parmi lesquels l'accessiblité, l'exploitabilité (données brutes), et la la réutilisablitié (licence).

https://libertic.files.wordpress.com/2010/02/logo-libertic.png?w=300&h=180

Claire Gallon a cité plusieurs exemples d'OpenData dans le domaine culturel :

  • la mise à disposition de données sur la fréquentation d'un musée permet de développer un service qui donnera la meilleure heure pour visiter ce musée. Voir When Should I visit Tate Modern
  • Marseille-Provence 2013 (capitale culturelle européenne) ouvre ses données et attend que les acteurs écrivent des applications (mobiles notamment).

Un idée importante est que le service public doit s'adresser au plus grand nombre et ne peut pas consacrer ses ressources à la mise en place de services de niche. La mise à disposition des données permet à des tiers d'occuper ces niches.

En conclusion, Claire Gallon insiste sur la nécessité d'inclure la gestion de la communauté dans les démarches d'ouverture des données. La prochaine priorité des acteurs de l'OpenData sera la coproduction, à la fois pour l'écriture des applications et pour l'amélioration des données.

Présentation du projet data.bnf.fr par Romain Wenz

http://data.bnf.fr/data/logo-bnf.gif http://data.bnf.fr/data/logo-data.gif

Romain Wenz de la Bibliothèque nationale de France a présenté http://data.bnf.fr sous l'angle de l'ouverture : l'ouverture à un public différent, l'ouverture à un mode de recherche différent (on cherche sur internet avant d'aller en bibliothèque) et l'ouverture sur les reseaux sociaux où le public partage des références à des contenus qu'il apprécie (twitter, facebook, etc.). Cette ouverture passe forcément par un web indexable, où l'on peut communiquer facilement une URL d'un contenu (exit les portails de recherche avec des sessions et variable http). Si un site n'est pas indexable, son contenu pourra être trouvé en s'y connectant directement, mais celui-ci restera dans le web "invisible" ou "profond".

Romain Wenz a insisté sur l'Importance des technologies utilisées : d'un coté les strandards ouverts et formalisés par le W3C, notamment en terme de web sémantique (RDF, RDFa, opengraph, schema.org, etc.) et de l'autre l'utilité de s'appuyer sur du logiciel libre. Dans le cas de http://data.bnf.fr il s'agit de CubicWeb.

Présentation des collaborations entre Wikimedia France et des institutions publiques à Toulouse

https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Commons-logo-en.svg/75px-Commons-logo-en.svg.png

La transition entre la BnF et Wikimedia est facile : Wikisource (bibliothèque de livres libres de droits) a signé un partenariat avec Gallica qui lui a fourni des numérisations de livres tombés dans le domaine public.

Wikimedia France a présenté deux projets réussis en coproduction avec des institutions Toulousaines :

  • le projet Phoebus a donné accès aux archives du Muséum de Toulouse à des bénévoles
  • la communauté Wikimedia Commons a participé à l'enrichissement des metadonnées du fond consacré au photographe Eugène Trutat.

Présentation OpenData par la mairie de Nantes Métropole

http://nantes.fr/webdav/site/nantesfr/shared/fileadmin/images/Puces/autrespuces/logo64_queue.png

Frédéric Vasse a briévement présenté la démarche de la Ville de Nantes en matière d'OpenData. Le lancement de la plateforme aura lieu lundi prochain à la Cantine Numérique de Nantes. Selon lui, l'objectif de Nantes est de réussir la coproduction avec les acteurs du territoire.

Conclusion et ouverture sur un projet concret d'OpenData pour les acteurs culturels

Libertic a conclu en proposant aux acteurs culturels un projet d'aggrégateur d'informations sur les événements culturels à Nantes. Nous espérons pouvoir vous donner prochainement plus d'informations sur ce projet.

Autre compte rendu (prises de notes) : http://www.scribd.com/doc/72810587/Opendata-Culture


Pourquoi il faudrait faire du Javascript coté serveur

2010/10/20 by Arthur Lutz

Description de la présentation sur le site de Paris Web 2010: ici.

Quentin Adam voudrait que l'on fasse plus de javascript coté serveur. Un des principaux avantages du javascript server side est que il n'est pas nécessaire de traduire ces structures de données entre plusieurs languages de programmation.

http://www.bewebmaster.com/bewebmaster/icons/JavaScript.png http://a3.twimg.com/profile_images/90410047/clouds2_normal.jpg

Une des limites à cette adoption est que les moteurs de javascripts ne font pas de DOM (ca c'est le boulot du navigateur), du coup pas de jquery, mootools ou dojo (high level javascript)>. Par conséquent les développeurs javascript vont avoir des difficultés pour coder en server side. Certaines librairies sont en train de prendre en compte cet environnement limité.

Quand on fait du javascript coté serveur, on peut considérer les requêtes comme des websockets, ce qui va être avantageux en terme de performances (par exemple lorsque le serveur reçoit deux requêtes identiques, quand la réponse est prête on renvoie deux fois la même chose).

Voici quelques outils que Quentin Adam recommande ou mentionne :

  • Ape - Ajax Push Engine - http://www.ape-project.org Mettre du javascript dans un module apache. Coté client on a du mootols pour faire du développement.
  • Node.js http://www.nodejs.org très adopté par la communauté ruby. Node.js es apparu au moment de l'émergence de v8. Par contre celui-ci n'est pas très stable, la documentation n'est pas très complète, mais il y a beaucoup de "recettes" sur le web.
  • CommonJS http://www.commonjs.org/ est une librairie qui a l'avantage d'être en cours de standardisation.
  • Jaxer http://jaxer.org/ est une sorte de firefox embarqué dans un module apache, ce qui est un peu trop lourd mais son existence mérite d'être mentionnée.

À Logilab, pour le développement de CubicWeb, nous penchons plutôt pour les développements des mécanismes asyncrones dans Twisted, mais cette présentation a le mérite de mettre en avant que d'utiliser javascript ne concerne pas uniquement les tweaks dans le navigateur.

http://twistedmatrix.com/trac/chrome/common/trac_banner.png

MiniDebConf Paris 2010

2010/09/09 by Arthur Lutz
http://france.debian.net/debian-france.png

Debian France organise le 30 et 31 octobre prochain une minidebconf à Paris. Le wiki de la conférence est en train de s'étoffer, et pour le moment c'est là qu'il faut s'inscrire. À Logilab nous sommes utilisateurs et contributeurs de Debian, c'est donc naturellement que nous allons essayer d'aller participer à cette conférence. Alexandre Fayolle, développeur Debian ira assister (entre autres) à la présentation de Carl Chenet sur l'état de Python dans Debian.


HOWTO install lodgeit pastebin under Debian/Ubuntu

2010/06/24 by Arthur Lutz

Lodge it is a simple open source pastebin... and it's written in Python!

The installation under debian/ubuntu goes as follows:

sudo apt-get update
sudo apt-get -uVf install python-imaging python-sqlalchemy python-jinja2 python-pybabel python-werkzeug python-simplejson
cd local
hg clone http://dev.pocoo.org/hg/lodgeit-main
cd lodgeit-main
vim manage.py

For debian squeeze you have to downgrade python-werkzeug, so get the old version of python-werkzeug from snapshot.debian.org at http://snapshot.debian.org/package/python-werkzeug/0.5.1-1/

wget http://snapshot.debian.org/archive/debian/20090808T041155Z/pool/main/p/python-werkzeug/python-werkzeug_0.5.1-1_all.deb

Modify the dburi and the SECRET_KEY. And launch application:

python manage.py runserver

Then off you go configure your apache or lighthttpd.

An easy (and dirty) way of running it at startup is to add the following command to the www-data crontab

@reboot cd /tmp/; nohup /usr/bin/python /usr/local/lodgeit-main/manage.py runserver &

This should of course be done in an init script.

http://rn0.ru/static/help/advanced_features.png

Hopefully we'll find some time to package this nice webapp for debian/ubuntu.


Une mise en place de l’eXtreme Programming - ce que j'en retiens

2010/05/20 by Arthur Lutz
http://rubyonrails.org/images/rails.png

Je suis allé à la présentation de "Une mise en place de l’eXtreme Programming" présenté par Karine Sabatier dans le cadre d'Agile Nantes. On y a parlé plutôt Ruby on Rails que python, mais surtout de méthodes agiles et XP.

Voici quelques points que j'ai retenu de cette présentation tout à fait pragmatique d'une mise en pratique des principes XP :

  • Le principe de "Convention over configuration" : préférer la convention (notamment pour la programmation) plutôt que la contrainte par la configuration. Dans Ruby On Rails, les conventions sont très fortes, pour faire une application on ne peut pas s'éloigner du modèle MVC : les modèles sont dans "model", les views sont dans "views" etc... À ce sujet, la conférencière a fait référence à deux types de designs que je ne connaissait pas : le DDD Domain-driven Design et Behavior Driven Development.
  • Utilisation de métaphores : trouver un langage commun avec le client mais aussi avec les utilisateurs
  • Application de déploiement ruby on rails : Capistrano, bien qu'à Logilab nous privilégions le déploiement par paquets et dépôts debian, en python on pourra jeter un coup d'œil à Fabric.
http://retrospectiva.org/extensions/overview/images/product_backlog.png?1265550417
  • Leur projet XP utilisait le logiciel de gestion de projet Retrospectiva. Celui-ci ressemble sur bien des points à JPL (Jeux de Planification Logiciel) disponible sur le framework CubicWeb (http://www.cubicweb.org). Coté intégration continue : CruiseControl , en python nous privilégions apycot.
  • Ce projet a essayé l'utilisation de Selenium pour ces tests web. Le constat est le même que chez Logilab : la première fois que ca marche c'est utile et apporte une grande satisfaction, dans un deuxième temps ca reste très difficile à maintenir. Nous regardons à présent plutôt du coté de Windmill qui a été intégré à la version 3.9 de cubicweb.
  • Une mention a été fait d'une société fonctionnement uniquement en mode agile Pyxis.

Enable and disable encrypted swap - Ubuntu

2010/05/18 by Arthur Lutz
http://ubuntu-party.org/wp-content/themes/ubuntu-party/scripts/timthumb.php?src=//wp-content/uploads/2010/04/evl-pochette21.png&w=210&h=192&zc=1&q=100

With the release of Ubuntu Lucid Lynx, the use of an encrypted /home is becoming a pretty common and simple to setup thing. This is good news for privacy reasons obviously. The next step which a lot of users are reluctant to accomplish is the use of an encrypted swap. One of the most obvious reasons is that in most cases it breaks the suspend and hibernate functions.

Here is a little HOWTO on how to switch from normal swap to encrypted swap and back. That way, when you need a secure laptop (trip to a conference, or situtation with risk of theft) you can active it, and then deactivate it when you're at home for example.

Turn it on

That is pretty simple

sudo ecryptfs-setup-swap

Turn it off

https://launchpadlibrarian.net/17699584/ecryptfs_64.png

The idea is to turn off swap, remove the ecryptfs layer, reformat your partition with normal swap and enable it. We use sda5 as an example for the swap partition, please use your own (fdisk -l will tell you which swap partition you are using - or in /etc/crypttab)

sudo swapoff -a
sudo cryptsetup remove /dev/mapper/cryptswap1
sudo vim /etc/crypttab
*remove the /dev/sda5 line*
sudo /sbin/mkswap /dev/sda5
sudo swapon /dev/sda5
sudo vim /etc/fstab
*replace /dev/mapper/cryptswap1 with /dev/sda5*

If this is is useful, you can probably stick it in a script to turn on and off... maybe we could get an ecryptfs-unsetup-swap into ecryptfs.


Sprint CubicWeb chez Logilab - annonce de dernière minute

2010/04/29 by Arthur Lutz

Logilab est en ce moment en train d'acceuillir un sprint autour de la plateforme CubicWeb. L'objectif principal de ce sprint de 5 jours est d'améliorer l'usage de javascript et des css dans CubicWeb :

http://www.logilab.org/image/28586?vid=download http://codesnip.net/wp-content/uploads/javascript.png
  • avoir une API javascript propre, testée et documentée
  • pouvoir facilement changer le style d'une application cubicweb
  • gestion de bundle pour javascript et CSS
  • une documentation sur les standards d'écriture des fichiers JS et CSS pour cubicweb

Ce sprint aura lieu du jeudi 29 avril 2010 au 5 mai 2010 (weekend exlus - les bureaux seront fermés). Vous êtes les bienvenus pour contribuer, filer un coup de main, faire du pair programming... ou simplement rencontrer des développeurs cubicweb. Vous pouvez même venir une après-midi ou une seule journée. Pour ceux avec des portables, il y aura du réseau disponible pour être connecté.

Adresse : 104 Boulevard Auguste-Blanqui, Paris. Sonnez à "Logilab".

Métro : St Jacques or Corvisart (Glacière est la station la plus proche mais sera fermée à partir de lundi)

Contact : http://www.logilab.fr/contact

Dates : du 29/04/2010 au 30/04/2010 et du 03/05/2010 au 05/05/2010


L'intégration continue présenté par Agiles Nantes

2010/03/18 by Arthur Lutz

Hier, Logilab était à nouveau présent aux rencontres organisées par Agiles Nantes, il s'agissait d'une présentation très fournie sur l'intégration continue (présenté par la société Netapsys). Malheureusement, la principale technologie utilisée était Java dont nous ne sommes pas des grands fans, préférant python. Néanmoins cela donne une bonne idée des possibilités qu'offrent les outils autour du développement java, notamment en terme d'intégration continue (voir Maven, Hudson, Sonar, etc.).

http://hudson-ci.org/images/butler.png

On retrouve donc un certain nombre de similarités avec le monde python, notamment avec Artifactory qui reproduit en partie les fonctionnalités de pypi avec easy_install ou buildout ou apt-cacher-ng dans son coté proxy. A Logilab, nous privilégions l'utilisation de paquets debian pour distribuer nos logiciels, ce qui permet, notamment, de ne pas réinventer la roue pour chaque langage de programmation.

Voici quelques une des notions avancées lors de la présentation qui nous semblent intéressantes sur l'intégration continue :

  • celle-ci permet de mettre en place des environnements de test mis à disposition du client tout le long du projet.
  • cette notion de prototype utilisable en continu doit être présente le plus tôt possible dans un projet.
  • idéalement, un serveur de déploiement/intégration doit être quasiment à l'identique de l'environnement client (utilisation de machines virtuelles)
  • l'intégration continue est souvent plus utilisées par les développeurs et les chefs de projets que par les clients. Mettre en place des rapports utiles au client requiert un soin particulier
  • pour une émulation collective, certaines notations des développeurs sont possible. Par exemple un plugin Hudson donne un point par build réussi, un point par test ajouté, moins dix points pour un build cassé.
  • la visualisation des données peut motiver les développeurs, l'outil Sonar semble être très complet et propose des visualisation assez léchées. A noter, des graphes sur la complexité du code, par classe, par méthode etc. Voir aussi la visualisation de l'arbre des dépendances des librairies avec Radiator.
http://sonar.codehaus.org/wp-content/themes/sonar/images/dashboard.png

J'y ai mentionné apycot et buildbot qui sont tous les deux des outils plutôt orientés python (mais pas seulement).

Pour conclure, tout ça m'a fait penser au concept plus poussé de "Continuous Delivery - BlueGreenDelivery" développé par Martin Fowler, une lecture recommandée pour ceux qui ont déjà pris le pas de l'intégration continue.

http://www.martinfowler.com/bliki/images/blueGreenDeployment/blue_green_deployments.png

Now publishing blog entries under creative commons

2010/03/15 by Arthur Lutz

Logilab is proud to announce that the blog entries published on the blogs of http://www.logilab.org and http://www.cubicweb.org are now licensed under a Creative Commons Attribution-Share Alike 2.0 License (check out the footer).

http://creativecommons.org/images/deed/seal.png

We often use creative commons licensed photographs to illustrate this blog, and felt that being developers of open source software it was quite logical that some of our content should be published under a similar license. Some of the documentation that we release also uses this license, for example the "Building Salome" documentation. This license footer has been integrated to the cubicweb-blog package that is used to publish our sites (as part of cubicweb-forge).


On a fait un tour au Coding Dojo à Nantes

2010/02/18 by Arthur Lutz

L'association de promotion des méthodes Agiles sur Nantes et sa région [1] organisait hier soir un "Coding Dojo". C'est une session de codage en public avec des créneaux de 15 minutes par codeur (explication sur codingdojo.org). Le focus de la session était le TDD (Test Driven Developpement).

http://farm3.static.flickr.com/2509/3947717979_34e5a68d3d_m.jpg

Annonce de l'événement sur leur site : http://www.agilenantes.org/2010/01/25/coding-dojo-mercredi-17-fevrier-2010/

Photo par yepyep sous licence creative commons


We're happy to host the mercurial Sprint

2010/02/02 by Arthur Lutz
http://farm1.static.flickr.com/183/419945378_4ead41a76d_m.jpg

We're very happy to be hosting the next mercurial sprint in our brand new offices in central Paris. It is quite an honor to be chosen when the other contender was Google.

So a bunch of mercurial developers are heading out to our offices this coming Friday to sprint for three days on mercurial. We use mercurial a lot here over at Logilab and we also contribute a tool to visualize and manipulate a mercurial repository : hgview.

To check out the things that we will be working on with the mercurial crew, check out the program of the sprint on their wiki.

What is a sprint? "A sprint (sometimes called a Code Jam or hack-a-thon) is a short time period (three to five days) during which software developers work on a particular chunk of functionality. "The whole idea is to have a focused group of people make progress by the end of the week," explains Jeff Whatcott" [source]. For geographically distributed open source communities, it is also a way of physically meeting and working in the same room for a period of time.

Sprinting is a practice that we encourage at Logilab, with CubicWeb we organize as often as possible open sprints, which is an opportunity for users and developers to come and code with us. We even use the sprint format for some internal stuff.

photo by Sebastian Mary under creative commons licence.


New supported repositories for Debian and Ubuntu

2010/01/21 by Arthur Lutz

For the release of hgview 1.2.0 in our Karmic Ubuntu repository, we would like to announce that we are now going to generate packages for the following distributions :

  • Debian Lenny (because it's stable)
  • Debian Sid (because it's the dev branch)
  • Ubuntu Hardy (because it has Long Term Support)
  • Ubuntu Karmic (because it's the current stable)
  • Ubuntu Lucid (because it's the next stable) - no repo yet, but soon...
http://img.generation-nt.com/ubuntulogo_0080000000420571.png

The old packages in the previously supported architectures are still accessible (etch, jaunty, intrepid), but new versions will not be generated for these repositories. Packages will be coming in as versions get released, if before that you need a package, give us a shout and we'll see what we can do.

For instructions on how to use the repositories for Ubuntu or Debian, go to the following page : http://www.logilab.org/card/LogilabDebianRepository


You can now register on our sites

2009/09/03 by Arthur Lutz

With the new version of CubicWeb deployed on our "public" sites, we would like to welcome a new (much awaited) functionality : you can now register directly on our websites. Getting an account with give you access to a bunch of functionalities :

http://farm1.static.flickr.com/53/148921611_eadce4f5f5_m.jpg
  • registering to a project's activity with get you automated email reports of what is happening on that project
  • you can directly add tickets on projects instead of talking about it on the mailing lists
  • you can bookmark content
  • tag stuff
  • and much more...

This is also a way of testing out the CubicWeb framework (in this case the forge cube) which you can take home and host yourself (debian recommended). Just click on the "register" link on the top right, or here.

Photo by wa7son under creative commons.


IPMI plugin for Munin python code published

2009/06/17 by Arthur Lutz
http://www.logilab.org/image/9368?vid=download

As you might have noticed we quite like munin. We use it quite a bit to monitor how our servers and services are doing. One of the things we like about munin is obviously that the plugins can be written in python (and perl, bash and ruby).

On a few recent servers we started playing with IPMI to sensor the temperature, watts, fan's rpms etc. So we went out looking for a munin plugin for that. We found Peter Palfrader's ruby plugins. There was one small glitch though, we came across a simple bug : the "ipmitool -I open sensor" can be real long to execute on certain machines, so configuring the plugin was a bit painful and running it too. Changing the ruby code was a bit tricky since we don't really know ruby... so we did a quick rewrite of the plugin in python... with a few optimizations.

It's not really complete but works for us, and might be useful to you, so we're publishing the hg repo. You can get the tgz or browse the source.


Nous allons à PyConFr 2009

2009/05/25 by Arthur Lutz

Le 30 et 31 mai prochain (samedi et dimanche prochain) nous allons être présents à PyConFr édition 2009, nous sommes partenaire de l'évènement et allons y parler de CubicWeb. Pour être plus précis, Nicolas Chauvat y présentera "CubicWeb pour publier DBpedia et OpenLibrary". Il avait déjà évoqué ces sujets sur ce site : Fetching book descriptions and covers et DBpedia 3.2 released.

Si vous comptez y aller, n'hésitez pas à venir nous dire bonjour.

http://pycon.fr/images/logo_pyconfr_small.png

Almost reached 1000 tickets

2009/05/13 by Arthur Lutz

Logilab.org has almost reached a thousand tickets on the Logilab's open source projects. To be exact there are 940 tickets right now. What kind of tickets are they ?

Here is a quick graph of the state of the tickets in our tracker :

http://chart.apis.google.com/chart?cht=p&chs=400x200&chd=e:Dc..Iw9EXV&chtt=Logilab.org+tickets+by+state&chl=deprecated%20:%2020|open%20:%20373|rejected%20:%2051|resolved%20:%20358|validated%20:%20136

Graphing is neat. Maybe soon we'll get this kind of feature automatically in the CubicWeb forge, see this ticket.


Venez nous rendre visite à Solution Linux 2009

2009/03/31 by Arthur Lutz
http://www.solutionslinux.fr/images/index_07.jpg

Nous sommes dès ce matin, pendant 3 jours, présents au salon Solutions Linux 2009 au stand du pôle de compétition System@tic dont nous faisons parti. C'est le stand B4/B8, assez prêt de l'entrée sur la gauche (détails).

Nous allons présenter CubicWeb à plusieurs reprises sur le stand, ainsi que lors des conférences sur le Web2 ce mardi 31 mars de 14h à 17h30 :

  • Adrien présentera "Simile Widgets, des composants de haut niveau pour IHM web"
  • Sylvain présentera "Cubic 3.0 - une plateforme pour les applications web sémantique"

pour plus de détails consultez le programme.


Belier - le ssh par hops

2009/02/17 by Arthur Lutz

On vient de découvrir belier qui permet de se connecter facilement à des machines auquelles on doit accéder par des machines ssh intermédiaires. Ca peut s'avérer utile. En plus, c'est en python. En plus, il a fait des paquets debian... et en plus il mentionne pylint. Du coup il mérite mention ici.

http://www.ohmytux.com/belier/images/schema_belier.png

Debian Lenny release date - almost there ?

2009/02/09 by Arthur Lutz
http://www.debian.org/logos/openlogo-nd-50.png

Being big fans of debian, we are impatiently awaiting the new stable release of the distribution : lenny. Finding it pretty difficult to find information about when they were expecting to release it, I asked a colleague if he knew. He's a debian developer so I though he might have the info. And he did : according to the debian.devel mailing list we should be having the release for the 14th of February 2009. In other words : in 5 days!

http://thread.gmane.org/gmane.linux.debian.devel.announce/1318

There's a few geeky emails on the release date if you have time to read the threads.

http://www.sinologic.net/wp-content/uploads/2008/08/lenny_debian.jpg

Apycot big version change

2009/01/26 by Arthur Lutz

The version convention that we use is pretty straight forward and standard : it's composed of 3 numbers separated by dots. What are the rules to incrementing each on of these numbers ?

  • The last number is a incremented when bugs are corrected
  • The middle number is incremented when stories (functionalities) are implemented to the software
  • The first number is incremented when we have a major change of technology

Well... if you've been paying attention, apycot just turned 1.0.0, the major change of technology is that it is now integrated to CubicWeb (instead of just generating html files). So for a project in your forge, you describe the apycot configuration for it, and the tests for quality assurance are launched on a regular basis. We're still in the process of stabilizing it (latest right now it 1.0.5), but it already runs on the CubicWeb projects, see the screenshot below :

http://www.logilab.org/image/7682?vid=download

You should also know that now apycot has two components : the apycotbot which runs the tests and an cubicweb-apycot which displays the results in cubicweb (download cubicweb-apycot-1.0.5.tar.gz and apycotbot-1.0.5.tar.gz).


We're now publishing for Ubuntu aswell

2009/01/26 by Arthur Lutz
http://www.ubuntu.com/themes/ubuntu07/images/ubuntulogo.png

We've always been big fans of debian here at Logilab. So publishing debian packages for our open source software has always been a priority.

We're now a bit involved with Ubuntu, work with it on some client projects, have a few Ubuntu machines lying around, and we like it too. So we've decided to publish our packages for Ubuntu as well as for debian.

In the 0.12.1 version of logilab-devtools we introduced publishing of Ubuntu packages with lgp (Logilab Packaging) - see ticket. Since then, you can add the following Ubuntu source to your Ubuntu system

deb http://ftp.logilab.org/dists hardy/

For now, only hardy is up and running, give us a shout if you want something else!


We're open for a chat

2008/11/25 by Arthur Lutz

We have a public forum that is accessible both using XMPP (jabber) or IRC.

Jabber / XMPP

http://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Jabber-bulb.svg/40px-Jabber-bulb.svg.png

Our jabber server is jabber.logilab.org.

If you don't have a jabber account, create one on a server such as jabber.org (here is a list of free jabber services) or use our web based client.

Once you have a jabber account, come and join us at xmpp://public@conference.jabber.logilab.org

If you do not know what jabber is, read the wikipedia page about jabber

IRC / International Relay Chat

Connect to irc://irc.freenode.net and join #pylint

If you do not know what irc is, read the wikipedia page about irc.


Semantic Roundup - infos glanées au NextMediaCamp

2008/11/12 by Arthur Lutz
http://barcamp.org/f/NMC.PNG

Par manque de temps voici les infos en brut glanées jeudi soir dernier au NextMediaBarCamp :

Un BarCamp c'est assez rigolo, un peu trop de jeune cadres dynamiques en cravate à mon goût, mais bon. Parmi les trois mini-conférences auxquelles j'ai participé, il y avait une sur le web sémantique. Animée en partie par Fabrice Epelboin qui écrit pour la version française de ReadWriteWeb, j'ai appris des choses. Pour résumer ce que j'y ai compris : le web sémantique il y a deux approches :

  1. soit on pompe le contenu existant et on le transforme en contenu lisible par les machines avec des algorithmes de la mort, comme opencalais le fait (top-down)
  2. soit on écrit nous même en web sémantique avec des microformats ensuite les machines liront de plus en plus le web (bottom-up)
http://microformats.org/wordpress/wp-content/themes/microformats/img/logo.gif

Dans le deuxième cas la difficulté est de faciliter la tache des rédacteurs du web pour qu'ils puissent facilement publier du contenu en web sémantique. Pour cela ces outils sont mentionnés : Zemanta, Glue (de la société AdaptiveBlue).

Tout ça m'a fait penser au fait que si CubicWeb publie déjà en microformats, il lui manque une interface d'édition à la hauteur des enjeux. Par exemple lorsque l'on tape un article et que l'application a les coordonnées d'une personne metionnée, il fait automagiquement une relation à cet élément. A creuser...

Sinon sur les autres confs et le futur des médias, selon les personnes présentes, c'est assez glauque : des medias publicitaires, custom-made pour le bonheur de l'individu, où l'on met des sous dans les agrégateurs de contenu plutôt sur des journalistes de terrain. Pour ceux que ça intéresse, j'ai aussi découvert lors de ce BarCamp un petit film "rigolo" qui traite ce sujet préoccupant.


Using branches in mercurial

2008/10/14 by Arthur Lutz
http://www.logilab.org/image/4873?vid=download&small=true

The more we use mercurial to manage our code repositories, the more we enjoy its extended functionalities. Lately we've been playing and using branches which end up being very useful. We also use hgview instead of the built-in "hg view" command. And its latest release supports the branches functionality, you can filter out the branch you want to look at. Update your installation (apt-get upgrade ?) to enjoy this new functionality... or download it.

http://www.selenic.com/hg-logo/logo-droplets-50.png

We're going to Europython'08

2008/07/02 by Arthur Lutz
http://europython.org/euro/img/europython.png

Hey,

We've decided to go to Europython this year. We're obviously going to give a talk about the exciting things we're doing with LAX and GoogleAppEngine. We're on wednesday at midday in the alfa room, check out the schedule here. Since we think it's important that these events take place, we're also chipping in and sponsoring the event.

We hope to see you there. Drop us a note if you want to meet up.


Munin Plugins for Zope

2008/07/01 by Arthur Lutz
http://munin.projects.linpro.no/static/munin.png

Here at Logilab we find Munin pretty useful. We monitor a lots of machines and a lot of services with it, and it usually gives us pretty useful indicators over time that guide us through to optimizations.

One of the reasons we adopted this technology is it's modular approach with the plugin architecture. And when we realized we could write plugins in python, we knew we'd like it. After years of using it, we're now actually writing plugins for it. Optimizing zope and zeo servers is not an easy task so we're developping plugins to be able to see the difference between before and after changing things.

You check out the project here, and download it from the ftp.


apycot 0.12.1 released

2008/06/24 by Arthur Lutz

After one month of internship at logilab, I'm pleased to announce the 0.12.1 release of apycot.

for more information read the apycot 0.12.1 release note

You can also check the new sample configuration.

Pierre-Yves David


SciLab passe en logiciel libre

2008/06/16 by Arthur Lutz
http://www.scilab.org/images/homepage/scilab_logo.png

Bienvenue à SciLab version 5.0 dans le monde du logiciel libre. SciLab 5.0, plateforme open source de calcul scientifique sous licence CeCill, est une alternative crédible et maintenant reconnue comme telle à Matlab. Pour assurer le développement pérenne de Scilab, le consortium Scilab rejoint DIGITEO, parc de recherche d'envergure mondiale dans le domaine des sciences et technologies de l'information en Île-de-France.


First version of LAX Book

2008/06/16 by Arthur Lutz

Previous documentation was merged into a LAX Book now featuring step-by-step screenshots to get up and running faster.

http://lax.logilab.org/lax-book

Don't we all like screenshots...

http://lax.logilab.org/images/lax-book.08-schema.en.png

Update: LAX is now included in the CubicWeb semantic web framework.


Nouvelle version de LAX - Logilab Appengine eXtension

2008/06/09 by Arthur Lutz
http://code.google.com/appengine/images/appengine_lowres.jpg

La version 0.3.0 de LAX est sortie aujourd'hui voir : http://lax.logilab.org/

Il suffit de 10 petites minutes pour avoir une application qui tourne, suivez le guide :

Mise à jour: LAX est maintenant inclus dans CubicWeb.


LAX - Logilab Appengine eXtension is a full-featured web application framework running on AppEngine

2008/06/09 by Arthur Lutz
http://code.google.com/appengine/images/appengine_lowres.jpg

LAX version 0.3.0 was released today, see http://lax.logilab.org/

Get a new application running in ten minutes with the install guide and the tutorial:

Enjoy!

Update: LAX is now included in the CubicWeb semantic web framework.


New apycot release

2008/06/02 by Arthur Lutz
http://www.logilab.org/image/4878?vid=download&small=true

After almost 2 years of inactivity, here is a new release of apycot the "Automated Pythonic Code Tester". We use it everyday to maintain our software quality, and we hope this tool can help you as well.

Admittedly it's not trivial to setup, but once it's running you'll be able to count on it. We're working on getting it to work "out-of-the-box"...

Here's what's in the ChangeLog :

2008-05-19 -- 0.11.0
  • updated documentation
  • new pylintrc option for the pyhton_lint checker.
  • Added code to disabled checker with missing required option with the proper ERROR statut
  • removed the catalog option of the xml_valid checker this feature can now be handle with the XML_CATALOG_FILE environement variable (see libxml2 doc for details)
  • moved xml tool from python-xml to lxml
  • new 'hourly' mode for running tests
  • new 'test_activity_report' report
  • pylint checker support new disable_msg and show_categories options (show_categories default to Error and Fatal categories to avoid reports polution)
  • activity option "days" has been renamed to "time" and correspond to a number of day in daily mode but to a number of hour in hourly mode
  • fixed debian_lint and debian_piuparts to actually do something...
  • fixed docutils checker for recent docutils versions
  • dropped python 2.2/2.3 compat (to run apycot itself)
  • added output redirectors to the debian preprocessor to avoid parsing errors
  • can use regular expressions in <pp>_match_* options

Flying to Google I/O

2008/05/27 by Arthur Lutz
http://code.google.com/images/io_logo_sm.gifhttp://code.google.com/appengine/images/appengine_lowres.jpg

Three of us from Logilab are going to San Francisco to listen, share and discuss at Google I/O.

It's a two day developer gathering in San Francisco, with various talks about google technologies : http://code.google.com/events/io/

We're hoping to show and talk about LAX (http://lax.logilab.org) which uses Google AppEngine


Profiter pleinement des CPUs avec Zope/Zeo/Debian

2008/05/27 by Arthur Lutz

Voici vite fait comment on profite du quad-core bi-proc multicoeurs avec zope/zeo/pound ... le tout en commandes debian.

Inspiré de : http://plone.org/documentation/how-to/simple-zope-clustering-with-squid-and-pound

http://plone.org/documentation/tutorial/introduction-to-the-zodb/zeo%20diagram.png
  • apt-get -uVf install plone-site pound

  • dzhandle -z 2.10 make-zeoinstance sgel_zeo

  • dzhandle -z 2.10 make-instance sgel2 --zeo-server=localhost:8100 -m all

  • dzhandle -z 2.10 make-instance sgel3 --zeo-server=localhost:8100 -m all

  • dzhandle -z 2.10 make-instance sgel1 --zeo-server=localhost:8100 -m all

  • dzhandle -z 2.10 make-instance sgel4 --zeo-server=localhost:8100 -m all

  • modifiez les ports de chaque instance (par exemple 9673, 9674, 9675, 9676)

  • vim ~/zope/instances/sgel*/etc/zope.conf

  • dzhandle add-product sgel1 CMFPlone

  • dzhandle add-product sgel2 CMFPlone

  • dzhandle add-product sgel3 CMFPlone

  • dzhandle add-product sgel4 CMFPlone

  • dzhandle zeoctl sgel_zeo start

  • dzhandle zopectl sgel1 start

  • dzhandle zopectl sgel2 start

  • dzhandle zopectl sgel3 start

  • dzhandle zopectl sgel4 start

  • vim /etc/pound/pound.cfg pour remplacer

    BackEnd
            Address 127.0.0.1
            Port    8080
    End
    

    par

    Service
            BackEnd
                    Address 127.0.0.1
                    Port    9673
            End
            BackEnd
                    Address 127.0.0.1
                    Port    9674
            End
            BackEnd
                    Address 127.0.0.1
                    Port    9675
            End
            BackEnd
                    Address 127.0.0.1
                    Port    9676
            End
    End
    
  • /etc/init.d/pound restart

  • tapez sur http://localhost:8080

  • ajoutez un site plone

pour tester, lancez htop pour voir l'activité et regardez la différence entre :

  • apt-get -uVf install apache2-utils
  • /usr/sbin/ab -n 100 -c 100 localhost:8080/plone

et

  • /usr/sbin/ab -n 100 -c 100 localhost:9673/plone

nice!


Reinteract: un outil intéressant pour faire du numpy/scipy

2008/05/27 by Arthur Lutz

Il existe un outil, Reinteract, qui permet d'avoir une sorte de d'éditeur/shell Python, où l'on peut aisément modifier et réinterpreter une ligne de code.

Sachant qu'il sait aussi afficher des plots, etc, il est possible de s'en servir avantageusement pour faire des sessions Matlab-like.

Je pense donc que c'est un outil à présenter à nos chers apprenants qui sont intéressés par le couple python/numpy comme substitut à Matlab ©®.

Ex:

http://fishsoup.net/software/reinteract/reinteract-demo.png

écrit par David Douard


Petit raccourci pratique avec ion3

2008/05/27 by Arthur Lutz

Un petit raccourci pratique pour ion3, qui permet, sur la combinaison de touches de son choix, de prendre le texte actuellement sélectionné (surligné) dans sa session X11, et, en fonction de son contenu :

  • d'ouvrir un onglet Firefox avec l'url sélectionnée,
  • d'ouvrir un xpdf si c'est une URL de fichier PDF,
  • lancer OpenOffice.org si c'est un fichier OOo,
  • ouvrir le fichier dans emacs si c'est un .py, .po, etc.
  • etc.

Pour cela, il faut le script magique ci-dessous, et configurer ion pour appeler ce script sur la bonne combinaison de touches. Par ex. ajouter dans votre ~/.ion3/cfg_ion.lua les lignes

defbindings("WMPlex.toplevel", {
  bdoc("Automagically view the selected string"),
  kpress(META.."F7",
         "ioncore.exec_on(_, '/home/user/bin/view')"),
})

Ici, j'ai mappé "Meta+F7", et le script est /home/user/bin/view

#!/usr/bin/env python

from mimetypes import guess_type
import sys
from os.path import abspath
from os import system, popen

import re
RGX = re.compile

EMACS = 'emacsclient --no-wait %(uri)s'
EMACS_WITH_LINE = 'emacsclient --no-wait +%(lineno)s %(uri)s'
FIREFOX = 'firefox -remote "openURL(%(uri)s, new-tab)"'
WGET = 'cd /home/adim/tmp && wget %(uri)s & '

commands = [
    ('text/html', FIREFOX),
    ('application/xml', EMACS),
    ('text', EMACS),
    ('image', 'display %(uri)s &'),
    ('application/pdf', 'xpdf %(uri)s &'),
    ('application/postcript', 'gv %(uri)s &'),
    ('application/vnd.sun.xml', 'ooffice %(uri)s &'), # matches writer, impress, etc.
    ('application/vnd.oasis.opendocument', 'ooffice %(uri)s &'),
    ('application/msword', 'ooffice %(uri)s &'),
    ('application/vnd.ms-', 'ooffice %(uri)s &'),
    ]

patterns = [
    (RGX(r'https?://.*?(zip|gz|pdf|ods|doc|odt|ppt|sxw|sxi)$'), WGET),
    (RGX(r'.*(?P<uri>https?://[^ ()]*)( .*)?'), FIREFOX),
    (RGX('.*?\.conf$'), EMACS),
    (RGX('.*?\.po$'), EMACS),
    (RGX('.*?\.xslt$'), EMACS),
    (RGX('.*?\.pot$'), EMACS),
    (RGX(r'\s*F?i?l?e? ?"?(?P<uri>.*?\.py)", line (?P<lineno>\d+)[a-zA-Z_:-]*'), EMACS_WITH_LINE),
    (RGX('.*?(readme|changelog|depends|manifest|makefile)(\.in|\.gz|\.bz2)?$', re.I), EMACS),
    # others might come here ...
    ]

def find_command(selection):
    for rgx, cmd in patterns:
        m = rgx.match(selection)
        if m:
            args = m.groupdict() or {'uri' : selection}
            return cmd, args
    mimetype, encoding = guess_type(selection)
    # XXX: encodings like zip, or gz could be handled
    if mimetype is not None:
        selection = abspath(selection)
        for registered_type, cmd in commands:
            if mimetype.startswith(registered_type):
                return cmd, {'uri' : selection}
    raise ValueError('nothing matched')

if len(sys.argv)>1:
    selected = ' '.join(sys.argv[1:])
else:
    selected = popen('xclip -o').read()

if selected:
    try:
        cmd, args = find_command(selected)
    except ValueError:
        # system('wmiijabber error viewing %s' % ' '.join(sys.argv[1:]))
        # XXX print a message in wmii status bar ?
        pass
    else:
        #print "yooo =>", repr(cmd), repr(args)
        system(cmd % args)

Pour que cela fonctionne, il ne faut pas oublier d'installer xclip (sous debian, apt-get install xclip).

-- écrit par David Douard sur un script de Adrien diMascio


Petites astuces de vim

2008/05/27 by Arthur Lutz

J'ai découvert vim-addons (qui est apparu dans debian récement) et ce petit outil permet de faire d'etendre les fonctionnalités de vim assez facilement. Voici une utilisation parmi tant d'autres :

mode gnupg

pour installer le mode gnupg faites

vim-addons install gnupg

Ensuite vim pourra ouvrir directement des fichiers encryptés et les réncrypter lorsque vous sauvez. Donc simplement

vim mot-de-passe-envoyé-par-client.gpg

Voilà, le tour est joué.

J'avoue que je reste avec emacs pour le code, mais ce genre de petit raccourcis est bien pratique.


LAX - Logilab Google AppEngin Sprint at Pycon-FR

2008/05/20 by Arthur Lutz

Here are a few pictures from the sprint we organized at Pycon-FR

We got a few people to install Google AppEngine and LAX on their machines, and explained the concepts at hand to a bunch of other people.

http://www.logilab.org/image/5002?vid=download

http://www.logilab.org/image/5003?vid=download

http://www.logilab.org/image/5005?vid=download

Update: LAX is now included in the CubicWeb semantic web framework.


HOWTO quickly get lax running on linux

2008/05/19 by Arthur Lutz

This is how easy it is to get lax to run on your linux machine :

hg clone http://www.logilab.org/hg/lax/
wget http://googleappengine.googlecode.com/files/google_appengine_1.0.2.zip
unzip google_appengine_1.0.2.zip
./google_appengine/dev_appserver.py lax/skel/

Point your favorite browser to http://localhost:8080/

UPDATE: LAX is now included in the CubicWeb semantic web framework.