Installation de Movim


Movim est l’un des projets plus si récents que ça voulant faire émerger les réseaux sociaux décentralisés. Sa particularité est d’utiliser un protocole ouvert, XMPP, pour l’échange de données.
Dans le cadre de l’initiation aux logiciels libres au sein de la Licence Pro Colibre, j’ai voulu, naïvement, installer Movim pour faire goûter aux étudiants une nouvelle sensation de liberté. C’est un peu trop complexe de prime abord. Nous allons nous limiter à installer movim seul, nous verrons pour le serveur BOSH plus tard.

Récupération de l’archive

Tout d’abord, il faut récupérer l’archive et l’installer à un endroit utilisable par apache2 :
wget https://launchpad.net/movim/0.8/0.8/+download/movim-0.8.zip
Vérifions l’intégrité de l’archive avec md5 :
wget https://launchpad.net/movim/0.8/0.8/+download/movim-0.8.zip/+md5
md5sum -c +md5
#movim-0.8.zip: Réussi
Vérifions l’auteur de l’archive avec gnupg :
wget https://launchpad.net/movim/0.8/0.8/+download/movim-0.8.zip.asc
gpg --verify movim-0.8.zip.asc
# gpg: Signature faite le mar. 05 août 2014 00:08:11 CEST avec la clef RSA d'identifiant 1D3810D9
# gpg: Impossible de vérifier la signature : clef publique introuvable
gpg --search-keys 1D3810D9
gpg --verify movim-0.8.zip.asc
C’est bien Timothée Jaussoin qui a signé l’archive.

Installation de Movim

cd Téléchargements
unzip movim-0.8.zip
sudo cp -r movim-0.8 /var/www/html/movim
sudo chown -R www-data:www-data /var/www/html/movim
sudo -H -s -u www-data
cd /var/www/html/movim
mv config/db.example.inc.php config/db.inc.php
editor config/db.inc.php
exit
Il faut maintenant éditer le fichier config/db.inc.php pour mettre les informations de connexion à la base MySQL.
Si vous n’avez pas encore créé votre base de données il faut le faire à la main avec un outil du type MySQL Workbench. N’oubliez pas de créer un utilisateur spécifique.
sudo apt-get install mysql-workbench mysql-server
Dans la foulée, installons les dépendances de movim :
sudo apt-get install php5 php5-curl php5-gd php5-mysql mysql-common mysql-client

Configuration de FPM et d’Apache2

Récupération des dépendances de PHP FPM :
sudo apt-get install libapache2-mod-fastcgi apache2-mpm-event apache2 php5-fpm
sudo a2enmod actions fastcgi alias
sudo service apache2 restart
Créer un fichier /etc/apache2/conf-available/php5-fpm.conf contenant la configuration ci-dessous :
<IfModule mod_fastcgi.c>
        AddHandler php5-fcgi .php
        Action php5-fcgi /php5-fcgi
        Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
        FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -idle-timeout 300 -pass-header Authorization
        <Directory /usr/lib/cgi-bin>
                Options ExecCGI FollowSymLinks
                SetHandler fastcgi-script
                Require all granted
        </Directory>
</IfModule>
Pour l’activer il faut passer par a2enconf
sudo a2enconf php5-fpm
sudo service apache2 restart

Configuration à rajouter à la fin du fichier /etc/php5/fpm/php-fpm.conf

[movim]
user = www-data
group = www-data
listen = 127.0.0.1:9001
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
 
pm = ondemand
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

request_terminate_timeout = 300
 
php_admin_value[open_basedir] = none
Puis redémarrer le service
sudo service php5-fpm restart

Configuration de Movim

Normalement, tout est intsallé. Il reste à configurer dans l’interface web :

http://localhost/movim/?q=admin

  • Passez le site en Français et avec la zone horaire de Pais.
  • Choisissez movim.eu comme serveur Bosh : http://movim.eu:5290/http-bind
  • Dans l’onglet des paramètres de la base de données, lancez la création des tables
  • Vérifiez votre configuration dans l’onglet suivant
Maintenant, il nous faut créer notre compte chez movim.eu en passant par notre nouvelle page d’accueil :

http://localhost/movim

Conclusion

Pas mal de petites choses n’étaient pas évidente dans la documentation actuelle. Par exemple un script de création de la base de données et d’un utilisateur associé facilitera la vie d’un installateur débutant (d’où l’utilisation de Workbench).
La prochaine étape est d’installer un serveur BOSH compatible avec toutes les fonctionnalités de Movim. Sûrement Metronome IM.
Update : Rajout de la gestion du timeout

Créer une carte vectorielle d’un lieu à partir d’OpenStreetMap


Depuis trois ans maintenant j’aide à organiser un événement en extérieur à Lyon. Notre problème récurrent est d’avoir des plans de bonnes qualités et de pouvoir les échanger dans des formats utilisables par tout le monde.  Nous avions utilisé OpenStreetMap pour créer un premier plan au format PNG il y a plusieurs années. Malheureusement, avec le temps et les multiples surcouches ce fichier était de plus en plus dégradé. Pas moyen de mettre la main sur un quelconque fichier vectoriel pour repartir sur un fichier propre.

Exporter des données depuis le site OpenStreetMap est plutôt simple :

http://www.openstreetmap.org/export#map=17/45.75817/4.84242

Dans mon cas j’ai sélectionné une zone comprise entre le pont Wilson et le pont de la Guillotière à Lyon. Vous obtenez un fichier map.osm près à l’emploi.

Restant que le format OSM n’est pas utilisable directement pour autre chose que de l’édition du plan. J’aimerai passer au format SVG qui est utilisable par Inkscape. Une rubrique est dédiée à ce sujet sur le site : Ways to create an SVG map from OpenStreetMap. Mais elle n’est pas à jour. Les méthodes décrites sont au mieux trop complexes, et pire plus valable.

Les méthodes les plus simples étaient liées au logiciel OSMARender qui n’est plus maintenu depuis un an. Là encore ce n’était pas très clair et il m’a fallu tâtonner un moment pour arriver à ce résultat :

svn co http://svn.openstreetmap.org/applications/rendering/osmarender
cd osmarender
cp ~/Downloads/map.osm stylesheets/data.osm
xsltproc -o ~/desktop/map.svg xslt/osmarender.xsl ./stylesheets/osm-map-features-z17.xml

Plan_vide_OSM

À partir de ce fichier map.svg vous pouvez travailler avec Inkscape pour nettoyer les précisions excédentaires et rajouter vos informations. Après quelques de travail cela permet d’avoir une version assez épurée.

WordPress n’acceptant pas les fichiers SVG je montre le résultat en PNG.

Les DRM dans Firefox, Mozilla s’incline et la Free Software Fondation tempête


Et si tout commençait par la fin ? Êtes-vous plutôt libristes ou opensource ? La cathédrale ou le bazar ? Apple, Microsoft ou Linux ?

C’est une question que je commence à entendre de plus en plus souvent. Cela fait bien marrer les contributeurs de BSD. Plus le temps passe, plus la FSF se radicalise en posant des jugements sur ce qui se passe sur internet. Ils se plaignent de tout se qui peux nuire à la liberté sans s’apercevoir qu’ils nous privent de la première des liberté : celle de choisir. J’ai le choix de croire en Dieu ou d’être athée. Avec le dispositif prévu par Mozilla, j’ai le choix de regarder une vidéo avec un DRM ou de refuser de la regarder.Si la FSF veut imposer la monoculture du logiciel libre, alors quelle différence avec les écosystèmes Apple et Microsoft ? Vivement un GNU/Hurd utilisable. Nous faudra-t-il renier Linux car il contient du code non GPLv3 ? Nous faudra-t-il passer à Mercurial (qui passera en GPLv3 pour l’occasion) parce que Git est trop proche du honnit Linux ? Faudra-t-il libérer tous les projets clients en GPLv3 avec la documentation en LaTeX ?

Liberté de partage, liberté d’étudier et liberté de choisir. S’il n’y a plus de discussion possible, je préfère ne plus être libriste. C’est une décision que j’ai prise il y a 10 ans en voyant la voie sans issue dans laquelle la FSF emmenait sa communauté. Je suis opensource.

Enhanced by Zemanta

How to setup your Plone core sprint


I promised to published this article last year but… well, no excuse. The topic is still hot as we work on in Arnhem in November 2013, 11 to 15 to finish it for Plone 5.

Here in Arnhem – Ploneconf 2012 Sprints – we are making a lot of sprint about a lot of different topics. As a newcomer in  sprint lead I did some mistakes.

  1. If you are working in the Plone core you must should a plip before the beginning of the sprint. It will be easier for other people  to follow your work some months later.
  2. For commiters, the main point is to check if you already give your contributor agreement back to the Plone Fundation. If you’re not there should be someone with blank agreements in your sprint to make things go easy.
  3. Once you know how many sprinters you have on your topic you must organize the area to be comfortable for all.
  4. Fing a way to show everybody the tasks that are on going and who is working on. My way is a whiteboard with post-its
  5. Prepare the technical parts before to start coding:
    • Identify all the packages you’re working on and create a remote branch for your plip. We were working at first on Products.CMFPlone, plone.app.content, plone.app.users, and after we also include plone.app.controlpanel in the list.
    • Don’t make a branch in buildout.coredev create a plips configuration file in the ‘plips‘ folder.Then run your buildout using this configuration file as master: bin/buildout -c plips/plip13260-cpy-removal.cfg
  6. Check if everybody have commit rights.
  7. If there’s a change in the plip configuration file notice it to everyone fast.
  8. Make regular internal reports to know who needs help or work :-)
  9. Write down what’s you’re doing on

For commiters, the main point is to check if you already give your contributor agreement back to the Plone Fundation.  If you’re not there should be someone with blank agreements in your sprint to make things go easy.
Commiters should also follow a process to make the pull going right:

  1. Have  fun
  2. After each plip configuration file update check if all plip eggs are well checkouted and if they are in the good branch
  3. When you start a task  create a local branch to avoiding conflicts before your merge
  4. Commit early, often
  5. Fetch and pull others commits before to merge
  6. Run tests without ‘-t
  7. Merge your work in the plip branch, not the master
  8. Test again before the push
  9. If you need help asks (I know, git is overcomplicated ;-) )
  10. Have fun! Did I say it before?
  11. Have  a follow up plan and stay in touch

Thanks to Eric Steele for the first setup, Liz as the proposer of the sprint topic, Maurits as the technical leader and for all people around there that were working on that sprint.

Release upgrade to KUbuntu 13.10 Saucy


This time I got all errors you can have.

Before the upgrade I need to disable manually partners repository in /etc/apt/source.list.

Keep in mind to disable etc-keeper if you’re using it and if you choose btrfs to disable compression.

During the upgrade I got an error with updating initramfs. It was caused by initramfs-tools-ubuntu-touch so it’s safer to remove ubuntu-touch and initramfs-tools-ubuntu-touch before the upgrade if you don’t need them.

After i got to problems with grub :

Just after the kernel boot this message was displayed ten seconds :Error: environment block too small. It means that the file /boot/grub/grubenv is stucked to 1000 bytes instead of 1024 bytes.

Solution :

rm /boot/grub/grubenv
dpkg-reconfigure grub-pc

So, the kernel hangout during Btrfs scanning:

Still no solution. The scanning works in safe mode. Bugs reported in lauchpad suggests it’s an errors introduced in the kernel 3.11.0-12 and we should downgrade to 3.11.0-11 that is not available in generic flavour. I tried the lowlatency flavour without success. I tried too with the 3 last mainline kernels without success (https://wiki.ubuntu.com/Kernel/MainlineBuilds and http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-rc3-saucy/).

Using the safe mode the Btrfs scanning is performing well but at the end of the boot, lightdm doesn’t start. It freezes and you cannot kill it using Ctrl+c. There’s no log. I tried gdm and it fails too. I configured kdm as main display manager and now I can log in.

Then I launch KDE4/Plasma and kwin doesn’t like wayland :

kwin: error while loading shared libraries: libwayland-eg1.so.1: no such file or directory

This time I found no clue to fix that. It’s not really a succes.

Unity still works… in kernel safe mode. But I don’t have the menu to logout (‘unity –reset-icons’ doesn’t change anything but loosing my customizations).

Since 1996 I never got such a mess for an upgrade.

Plant UML


Example UML State diagram.

Example UML State diagram. (Photo credit: Wikipedia)

You want to do UML to have beautiful images to add in your documentation? Then Plant UML is done for you!

You just have to write a plain text file and launch the interpreter and you will obtain a pretty diagram:

@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
@enduml

The pro

  • it’s easy to follow in your favorite DCVS
  • it’s easy to learn with a very good documentation
  • it’s working on all plateform and generate good images
  • you can customize a lot

Cons:

  • it becomes really usable if you use the graphical editor
  • Order of declaration is important for the display

http://plantuml.sourceforge.net/

http://sourceforge.net/projects/plantumlqeditor/

How to use curl to test a REST API with a beautiful JSON indentation


How to get indented JSON with curl output

You need to install simplejson Python module in your environment, or python-simplejson.

curl [options] url | python -msimplejson.tool

An example with github APIv3

curl -s -H "Content-Type: application/json" -X GET \
     "https://api.github.com/repos/collective/collective.ckeditor" \
     | python -msimplejson.tool

How to display response headers and API errors with the JSON indentation

This command line have two problems :

  1. You cannot display response HTTP headers because it breaks simplejson parsing
  2. If you have an error with a request and you don’t know how to debug it.

You need to add two more options to push header response and error message in stderr: -S and -D /dev/stderr. Now you can test your API with all informations in one command:

curl -s -S -D /dev/stderr -u user:password \
     -H "Content-Type: application/json" -X GET \
     "http://myapi/v1/test/"

From curl manual:

  • -s no progress bar; stats report or errors are dislayed
  • -S display errors if -s is enable
  • -D dump the header in a file; here stderr to make them not interfer with json indentation
  • -u user and password for Basic HTTP Authentication
  • -H add header in the outgoing request
  • -X HTTP Command to launch. If you’re using Basic HTTP Authentication you must use -X GET

If someone have tip to add pygment coloration in json and headers I will be glad to share the ownership of this article.

L’ALDIL, une association d’utilisateurs de logiciels libres


Cela sonne comme une évidence mais il est bon parfois de le rappeler.

En tant qu’association de promotion du Logiciel Libre ses membres sont amenés à pendre contacts avec des institutionnels et à participer à des tables rondes ou des rencontres impliquant des professionnels de différents secteurs. Dans ce contexte il nous est souvent demandé directement ou en marge une liste de contacts professionnels pour des formations, du conseil, des audits, ou d’autres prestations. Ces démarches sont plutôt de bons indicateurs de la bonne santé du Logiciel Libre et de la place de l’ALDIL dans l’écosystème local, mais généralement nous préférons botter en touche et nous demandons au requérant de faire un annonce publique. Je l’ai encore répété lors de la dernière réunion de l’Open ADIRA (la branche Open Source de l’Association pour le Développement de l’Informatique en Rhône-Alpes).

Dans notre zone d’activité c’est au nouvellement formé PLOSS-RA de tenir ce type d’annuaire. Pour l’instant, le site contient juste une liste de sociétés membres mais elle devrait rapidement s’enrichir et proposer un système de sélection par facette par rapport aux domaines de compétences et aux services fournis par chaque entreprise.

L’ALDIL est le partenaire idéal lorsqu’il s’agit de préparer des conférences ou des ateliers avec des utilisateurs avertis ou des développeurs. Elle peut aussi servir de relais aux initiatives tournant autour de la culture libre (musique, film, agriculture,…). Nos partenaires apprécient notre neutralité et nous comptons bien la garder.

2010 : liens de la semaine 6


Un seul lien cette semaine, l’article hedbomadaire que je co-écrit pour l’AFPY : Python WAW.
Je viens d’être élu président de l’Association Lyonnaise pour le Développement de l’Informatique  Libre (ALDIL) ce qui va m’obliger à réduire ma participation dans beaucoup d’autres choses, comme cette rubrique.
Ce blog va aussi continuer son ouverture sur le logiciel libre en général pour mieux correspondre à mes activités.

2010 : liens de la semaine 3


Cette rubrique hebdomadaire va bientôt changer. Pour éviter les doublons elle va être fusionné avec celle de Youenn Boussard sur le site de l’AFPY. Elle continuera sur le signe de l’ouverture avec des sujets moins centré sur Python ou avec des ressources plus techniques que celles de l’AFPY.

Heuristique

Les cartes heuristiques ou mindmapping sont au centre de recherche diverses et variées. Voici un article intéressant sur un débordement de cette technologie :

Carte heuristique et résolution de problème assistée par ordinateur, une révolution annoncée

Python

Tout d’abord une initiative amusante avec un site qui essaye de regrouper tous les logos utilisés autour de Python :

Python Logos Part II: Free Form

Une dédicace particulière pour le logo des lillois : PYthon LUnch LillE

Sinon, j’ai découvert ce petit éditeur live de reStructured Text écrit comme un service Python. Un projet à suivre et à aider :  reStructuredText editor

Zope

L’heure est au recensement des ressources avec le renommage de la partie Web du framework Zope 3 en Bluebream. cet article écrit par Baiju Muthukadan permet de faire la synthèse  sur l’état actuel :

BlueBream

Plone 4 aussi est annoncé dans les starting blocks avec la préparation de la première béta. Une nouvelle version implique souvent une migration. Maarten Kleen a écrit un article très intéressant sur la migration d’objets dont la classe de base a changé :

Trying zodbupdate

Enfin un article intéressant sur la résolution de la recherche des interfaces dans Zope 3 :

Zope Views: should have been « request, context »; not « context, request »

Plone

La huitième conférence annuel de Plone aura lieu en Europe, à Bristol, du25 au 31 octobre. À vos carnets :

Bristol 2010

Nettuts+

Un certain nombre de tutoriel que je présente viennent de ce site. Une grande partie de leur contenu est payant et les tutoriels mis en ligne sont souvent de très bonne qualité. Tout d’abord une video sur les outils en lignes permettant de tester le rendu de vos sites sur les navigateurs :

Quick Tip: Top 5 Ways to Browser-Test your Website

Un bon tutoriel sur l’utilisation des transformation XSL pour transformer des données XML enpage web :

Getting Started with XSL(T)

Suivre

Recevez les nouvelles publications par mail.

Rejoignez 309 autres abonnés