Derniers billets de blog
La vérité sur le chiffrage en SSLL
Un troll bien sympatique de mon collègue Eric Bréhault !
===============================================
Reprise du cache Google, le lien n'était plus disponible
===============================================
La vérité sur le chiffrage en SSLL
Les Sociétés de Services en Logiciels Libres semblent établir des devis de la même façon que les sociétés de services classiques, mais la vérité est légèrement différente.
En règle générale, quand vous demandez à une société de services en Logiciels Libres de vous chiffrer un développement logiciel, vous obtenez quelque chose dans ce genre:
Montant | |
---|---|
Intégration graphique | 5 000 euros |
Déploiement du serveur et des composants logiciels | 2 500 euros |
Développement de la fonctionnalité spécifique 1 | 12 000 euros |
Développement de la fonctionnalité spécifique 2 | 7 000 euros |
Paramétrage et connectivité avec le SI | 6 500 euros |
Gestion de projet | 2 500 euros |
C'est ainsi que nous faisons car cela est crédible, et cela ressemble beaucoup à ce qu'une SSII classique vous aurait proposé. C'est donc une excellente façon d'éviter de rentrer dans des explications qui pourraient être fastidieuses à un moment où on n'a pas envie d'en donner.
Mais pourtant, si nos chiffrages aboutissent bien au montant total que nous vous soumettons, le détail du calcul n'est pas reflété par le tableau des coûts tel que celui qui figure ci-dessus.
Nous sommes des gens simples. Nous aimons coder.
Il faut tout d'abord comprendre que nous sommes des gens simples. Nous aimons coder. Coder ne nous coûte pas car c'est notre plaisir. D'ailleurs, nous codons gratuitement une bonne partie de notre temps (dans le cadre de nos contributions open sources). Le reste de notre travail, en revanche, nous coûte.
Voici donc ma grille de chiffrage :
Montant | |
---|---|
Codage | 0 euros |
Déploiement | + 0 si serveur Linux avec accès SSH et compte sudoer, sinon + 10 000 euros |
Le client a rédigé un cahier des charges | 1 000 euros x nombre de pages |
Le client a un planning | + 2 000 euros par dates imposées |
Le client veut mettre en place un comité de pilotage | + 10 000 euros |
Des AMOA sont impliqués | + (500 euros x nb de pages du cahier des charges x nb d'AMOA) |
La réponse doit suivre le code des marchés publics ou doit passer par un service achats | + 10 000 euros |
Il faut produire et suivre un Plan d'Assurance Qualité | + 15 000 euros |
Le client demande à modifier la solution open source sur laquelle on s'appuie d'une manière contraire à la philosophie de cette solution. | + 1 000 000 euros en pièces de 20 centimes emballées par paquets de 1, 1, 2, 3, 5, 8, etc. jusqu'à 2178309 conformément à la suite de Fibonacci (toute erreur entraîne évidemment des pénalités) |
C'est facile et ça marche ! Exemples :
- Cahier des charges de 10 pages avec une date de livraison : 12 000 euros
- Cahier des charges de 120 pages, PAQ, service achat, 7 dates dans le planning : 159 000 euros
collective.pfg.norobots: a PloneFormGen captcha based on questions and answers
Overview
collective.pfg.norobots is a PloneFormGen field using collective.z3cform.norobots.
collective.z3cform.norobots provides a "human" captcha widget based on a list of question/answer(s).
This captcha can be used :
- as a plone.app.discussion (Plone Discussions) captcha plugin
- as a z3c form field
- as a PloneFormGen field with collective.pfg.norobots
Requirements
- Plone 4.2.1.1 & PloneFormGen 1.7.2 & collective.z3cform.norobots 1.4.2
- Plone 4.1.6 & PloneFormGen 1.7.2 & collective.z3cform.norobots 1.4.2
Screenshot

Installation
Getting the module
[instance] ... eggs = Plone ... collective.pfg.norobots
install_requires=[ ... 'collective.pfg.norobots', ],
Enabling the module
Quickly test ?
easy_install virtualenv cd collective.pfg.norobots virtualenv . source bin/activate (collective.pfg.norobots) easy_install zc.buildout !!! check the buildout config file ``test-plone-base.cfg`` before running !!! (collective.pfg.norobots) ln -s test-plone-4.2.x.cfg buildout.cfg (collective.pfg.norobots) python bootstrap.py (collective.pfg.norobots) bin/buildout [...] be patient... [...] (collective.pfg.norobots) ./bin/instance fg
(collective.pfg.norobots) ./bin/test -s collective.pfg.norobots
(collective.pfg.norobots) bin/coverage (collective.pfg.norobots) bin/report And open with a browser htmlcov/index.html
Credits
- Sylvain Boureliou [sylvainb] - GitHub - Website
- Planet Makina Corpus - Makina Corpus
Source code
How to contribute and submit a patch ?
plonetheme.drupal : Get all the power of Drupal for Plone ;)
Overview
Strongly inspired by the Drupal theme Bartik (default theme in Drupal 7), this theme may help sell Plone to PHP guys ;)
To be installed before any demonstration to an audience of Drupal followers ;) !
Do you want to learn more about Plone versus Drupal ? Install this theme and visit http://<your-plone-site>/@@plone-versus-drupal
Requirements
Tested with Plone 4.1.4 (http://plone.org/products/plone)
plone.app.theming (please configure your buildout corresponding to plone.app.theming installation)
Screenshot
Installation
Getting the theme
Add plonetheme.drupal to your plone.recipe.zope2instance buildout section's eggs parameter e.g.:
[instance] eggs = Plone ... plonetheme.drupal
Or, you can add it as a dependency on your own product setup.py:
install_requires=[ ... 'plonetheme.drupal', ],
Enabling the theme
Install the theme from the Add-ons control panel. That's it!
Quickly test ?
Download plonetheme.drupal and use virtualenv and buildout to test the theme:
easy_install virtualenv cd plonetheme.drupal virtualenv . source bin/activate (plonetheme.drupal) easy_install zc.buildout (plonetheme.drupal) bin/buildout [...] be patient... [...] (plonetheme.drupal) ./bin/instance fg Go to http://localhost:8080, add a new Plone Site and install plonetheme.drupal
Launch tests:
(plonetheme.drupal) ./bin/test -s plonetheme.drupal
Credits
Sylvain Boureliou [sylvainb]
Un nouveau site Plone pour Angers Loire Développement
Angers Loire Développement est l’agence de développement économique de la communauté d’agglomération d’Angers (Angers Loire Métropole). Elle propose des services opérationnels pour accompagner les entreprises dans leurs phases de création, d'implantation et de développement sur le territoire.
Entreprises et acteurs de l'économie angevine, n'hésitez à vous rendre sur le site pour communiquer sur votre actualité. Angers Loire Développement donne la possibilité aux entreprises locales de communiquer sur www.angers-developpement.com. Actualités commerciales, nouveaux produits, résultats, événements, les entreprises angevines ont désormais une nouvelle tribune !
http://www.angers-developpement.com
Après le développement du site de Nantes Métropole Développement, Makina Corpus améliore avec ce nouveau projet son expertise dans la conception de portail web à destination des agences de développement économique, incluant des outils rédactionnels simples et efficaces, ainsi que de nombreux services à forte valeur ajoutée (média, newsletter, connexion à des annuaires CiviCRM ou SugarCRM, GED, espaces collaboratifs, ouverture à la contribution externe, intégration au SI, etc.).
Plus d'information ? n'hésitez pas soit à me contacter via la page "contact", soit à contacter directement Makina Corpus.
Quelques captures d'écran:
Zope, Plone, ZcxOracleDA et les retours chariots Windows...
Les erreurs remontées par Oracle
DatabaseError: ORA-06550, ce qui signifie qu'il y a une erreur de compilation côté Oracle, or d'après de nombreuses vérifications, tous les packages, triggers, etc. sont bien compilés dans la base de données.
PLS-00103: Encountered the symbol "" when expecting one of the following, ce qui signifie qu'il y a une erreur de syntaxe PL/SQL quelque part, mais où ? laquelle ? Tout semble bon et l'exécution des requêtes incriminées via SQL+ ou l'onglet "Test" du connecteur ZcxOracle fonctionnent très bien.
La cause
Après de nombreux tests et debugs, un post de blog m'a mis sur la bonne piste : Oracle semble s'en sortir assez mal si le code d'une requête SQL contient des retours chariots Windows CRLF !
Et il s'avère que c'est le cas, mais pas pour toutes les requêtes, uniquement celles qui font appel à une procédure stockée, exemple de contenu d'une ZSQL Method :
BEGIN schema.package.procedure( param1, param2, param3); END;
Un patch rapide au niveau du connecteur ZcxOracleDA
Dans la méthode "query" de ZcxOracleDA/db.py, filtrer la requête SQL en remplaçant les caractères "CRLF" par leur équivalent Unix "LF".
qs = qs.replace("\r\n", "\n")
Et voilà !
La vrai correction
Si vous travaillez sous Windows, configurer votre éditeur de sorte qu'il n'utilise pas de caractères CRLF mais uniquement les caractères Unix LF.
Ou encore mieux : passer à Linux/Unix !
Plone Unified Installer and ZcxOracleDA
Steps required
- Oracle installation
- cx_Oracle installation in the python used by Zope/Plone. Don't forget to test your connectivity with the Oracle database:
$ cd <zope-install> $ ./Python-2.4/bin/python Python 2.4.6 [...] >>> import cx_Oracle >>> connection = cx_Oracle.connect('<user-name>/<user-password>@<db-name>') >>> cursor = connection.cursor() >>> cursor.execute("select count(*) from mytable").fetchall() [(200805,)]
- ZcxOracleDA untarred in the "products" directory
libclntsh.so.10.1: cannot open shared object file ???
$ cd <zope-install>/zeocluster $ ./bin/client1 fg 2010-12-02 14:55:33 INFO ZServer HTTP server started at Thu Dec 2 14:55:33 2010 Hostname: 0.0.0.0 Port: 8080 2010-12-02 14:55:33 INFO Zope Set effective user to "plone" [...] File "build/bdist.linux-x86_64/egg/cx_Oracle.py", line 6, in __bootstrap__ ImportError: libclntsh.so.10.1: cannot open shared object file: \ No such file or directory
The Zope instance is running with the effective user "plone", who apparently has no right to access Oracle libraries.
The user "plone" needs access to the Oracle libraries
Add a home directory and a shell for "plone":
$ sudo usermod -s /bin/bash -d /home/plone plone $ sudo chown plone:plone /home/plone $ sudo chmod 750 /home/plone
Add the user "plone" to a group that has access to the Oracle librairies, in my case "oinstall":
$ sudo gpasswd -a plone oinstall
$ORACLE_HOME and $LD_LIBRARY_PATH must be exported from his .bashrc or ~/.bash_profile file:
$ sudo su - plone (plone)$ cd ~ (plone)$ vim .bashrc export ORACLE_HOME=/opt/oracle/oracle/product/10.2.0/db_1 export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH (plone)$ ln -s ~/.bashrc ~/.bash_profile (plone)$ sqlplus SQL*Plus: Release 10.2.0.1.0 - Production on Thu Dec 2 15:46:00 2010 Copyright (c) 1982, 2005, Oracle. All rights reserved. Enter user-name:
And voila!