|
Blog entriesJeudi 8 décembre 2011 nous avons participé à la réunion de travail sur l'ouverture des données événementielles.
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.
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.
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.
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.
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).
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.
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.
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.
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
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.
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.
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.
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.
Hopefully we'll find some time to package this nice webapp for
debian/ubuntu.
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.
- 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.
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.
That is pretty simple
sudo ecryptfs-setup-swap
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.
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 :
- 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
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.).
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.
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.
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).
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).
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.
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...
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
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 :
- 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.
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.
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 :
Graphing is neat. Maybe soon we'll get this kind of feature automatically in the CubicWeb forge, see this ticket.
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.
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.
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.
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 :
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'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 have a public forum that is accessible both using XMPP (jabber) or IRC.
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 :
- 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)
- 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)
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.
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.
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.
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.
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.
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...
Update: LAX is now included in the CubicWeb semantic web framework.
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 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.
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
  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 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
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!
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:
écrit par David Douard
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
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 :
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.
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.



Update: LAX is now included in the CubicWeb semantic web framework. 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.
|