<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
         xmlns="http://purl.org/rss/1.0/">




    



<channel rdf:about="http://www.asilax.fr/technoblog/techno-blog/RSS">
  <title>Asilax'blog</title>
  <link>http://www.asilax.fr</link>

  <description>
    
      Bienvenu sur le blog d'Asilax, bonne visite !
    
  </description>

  

  
            <syn:updatePeriod>daily</syn:updatePeriod>
            <syn:updateFrequency>1</syn:updateFrequency>
            <syn:updateBase>2008-07-21T10:11:57Z</syn:updateBase>
        

  <image rdf:resource="http://www.asilax.fr/logo.png"/>

  <items>
    <rdf:Seq>
      
        <rdf:li rdf:resource="http://www.asilax.fr/technoblog/blog/2012/site-web-plone-angers-loire-developpement"/>
      
      
        <rdf:li rdf:resource="http://www.asilax.fr/technoblog/blog/2011/zope-plone-zcxoracle-et-les-retours-chariots-windows"/>
      
      
        <rdf:li rdf:resource="http://www.asilax.fr/technoblog/blog/2010/plone-unified-installer-and-zcxoracleda"/>
      
      
        <rdf:li rdf:resource="http://www.asilax.fr/technoblog/blog/2010/plone-conferences-2010-a-bristol-genial"/>
      
      
        <rdf:li rdf:resource="http://www.asilax.fr/technoblog/blog/2010/import-error-so-undefined-symbol-pyunicodeucs4_asencodedstring-ucs"/>
      
      
        <rdf:li rdf:resource="http://www.asilax.fr/technoblog/blog/2010/Plone-4"/>
      
      
        <rdf:li rdf:resource="http://www.asilax.fr/technoblog/blog/2010/etat-des-lieux-des-publications-autour-de-plone"/>
      
      
        <rdf:li rdf:resource="http://www.asilax.fr/technoblog/blog/2010/how-to-install-oracle-10g-and-tora-on-gnu-linux-ubuntu-karmic-9.10"/>
      
      
        <rdf:li rdf:resource="http://www.asilax.fr/technoblog/blog/2010/zodb-filestorage-corruptedtransactionerror"/>
      
      
        <rdf:li rdf:resource="http://www.asilax.fr/technoblog/blog/2010/plone-3-clean-dashboard-programmatically-setup-a-custom-dashboard"/>
      
    </rdf:Seq>
  </items>

</channel>


  <item rdf:about="http://www.asilax.fr/technoblog/blog/2012/site-web-plone-angers-loire-developpement">
    <title>Un nouveau site Plone pour Angers Loire Développement</title>
    <link>http://www.asilax.fr/technoblog/blog/2012/site-web-plone-angers-loire-developpement</link>
    <description>L'agence de développement économique Angers Loire Développement vient de se doter d'un tout nouveau site web basé sur Plone.</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p><a class="external-link" href="http://www.angers-developpement.com">Angers Loire Développement</a> 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.</p>
<p>Entreprises et acteurs de l'économie angevine, n'hésitez à vous rendre sur le site pour communiquer sur votre actualité.&nbsp;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 !</p>
<p><a class="external-link" href="http://www.angers-developpement.com">http://www.angers-developpement.com</a></p>
<p>Après le développement du site de <a class="external-link" href="http://www.nantes-developpement.com/">Nantes&nbsp;Métropole&nbsp;Développement</a>, <a class="external-link" href="http://www.makina-corpus.com">Makina Corpus</a>&nbsp;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.).</p>
<p><strong>Plus d'information ? n'hésitez pas soit à me contacter via la page "contact", soit à contacter directement&nbsp;<a class="external-link" href="http://www.makina-corpus.com/">Makina Corpus</a>.</strong></p>
<p>Quelques captures d'écran:</p>
<p><img class="image-inline" src="../images/ald-capture-1.png/image_large" alt="Angers Loire Développement - Capture 1" /></p>
<p>&nbsp;</p>
<p><img class="image-inline" src="../images/ald-capture-2.png/image_large" alt="Angers Loire Développement - Capture 2" /></p>
<p>&nbsp;</p>
<p>&nbsp;<img class="image-inline" src="../images/ald-capture-3.png/image_large" alt="Angers Loire Développement - Capture 3" /></p>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Sylvain Boureliou</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Makina Corpus</dc:subject>
    
    
      <dc:subject>Plone</dc:subject>
    
    <dc:date>2012-01-26T15:05:00Z</dc:date>
    <dc:type>Article</dc:type>
  </item>


  <item rdf:about="http://www.asilax.fr/technoblog/blog/2011/zope-plone-zcxoracle-et-les-retours-chariots-windows">
    <title>Zope, Plone, ZcxOracleDA et les retours chariots Windows...</title>
    <link>http://www.asilax.fr/technoblog/blog/2011/zope-plone-zcxoracle-et-les-retours-chariots-windows</link>
    <description>Dans le cadre d'une application basée sur Plone et Oracle, de nombreuses fonctionnalités ne fonctionnaient plus du jour au lendemain, sans aucune raison particulière. L'exécution de certaines ZSQL Methods faisant appel à des procédures stockées dans Oracle étaient en erreur ORA-06550 ! Des heures de debug avec le client avant de trouver la solution...</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<h2>Les erreurs remontées par Oracle</h2>
<p><strong>DatabaseError: ORA-06550</strong>, 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.</p>
<p><strong>PLS-00103: Encountered the symbol "" when expecting one of the following</strong>, 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.</p>
<h2>La cause</h2>
<p>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 !</p>
<p>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 :</p>
<pre>BEGIN
    schema.package.procedure(
        param1,
        param2,
        param3);
END;</pre>
<h2>Un patch rapide au niveau du connecteur ZcxOracleDA</h2>
<p>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".</p>
<pre>qs = qs.replace("\r\n", "\n")</pre>
<p>Et voilà !</p>
<h2>La vrai correction</h2>
<p>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.</p>
<p>Ou encore mieux : passer à Linux/Unix !</p>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Sylvain Boureliou</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Makina Corpus</dc:subject>
    
    
      <dc:subject>Python</dc:subject>
    
    
      <dc:subject>Zope</dc:subject>
    
    
      <dc:subject>SQL</dc:subject>
    
    
      <dc:subject>Oracle</dc:subject>
    
    <dc:date>2011-05-05T14:33:01Z</dc:date>
    <dc:type>Article</dc:type>
  </item>


  <item rdf:about="http://www.asilax.fr/technoblog/blog/2010/plone-unified-installer-and-zcxoracleda">
    <title>Plone Unified Installer and ZcxOracleDA</title>
    <link>http://www.asilax.fr/technoblog/blog/2010/plone-unified-installer-and-zcxoracleda</link>
    <description>Trying to setup cx_Oracle and ZcxOracleDA on a Plone/Zope Zeo setup using the Unified Installer (Plone 3.3.5), I had the following error when starting a zeo client: "ImportError: libclntsh.so.10.1: cannot open shared object file: No such file or directory". Here is a solution.</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<h2><span id="result_box" class="short_text"><span style="color: rgb(0, 0, 0);"></span></span> Steps required</h2>
<ul><li>Oracle installation</li><li>cx_Oracle installation in the python used by Zope/Plone. Don't forget to test your connectivity with the Oracle database:<br />
<pre>$ cd &lt;zope-install&gt;
$ ./Python-2.4/bin/python
Python 2.4.6 [...]
&gt;&gt;&gt; import cx_Oracle
&gt;&gt;&gt; connection = cx_Oracle.connect('&lt;user-name&gt;/&lt;user-password&gt;@&lt;db-name&gt;')
&gt;&gt;&gt; cursor = connection.cursor()
&gt;&gt;&gt; cursor.execute("select count(*) from mytable").fetchall()
[(200805,)]

</pre>
</li><li>ZcxOracleDA untarred in the "products" directory</li></ul>
<h2>libclntsh.so.10.1: cannot open shared object file ???<br /></h2>
<pre>$ cd &lt;zope-install&gt;/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
</pre>
<p>The Zope instance is running with the effective user "plone", who apparently has no right to access Oracle libraries.</p>
<h2>The user "plone" needs access to the Oracle libraries<br /></h2>
<p>Add a home directory&nbsp; and a shell for "plone":</p>
<pre>$ sudo usermod -s /bin/bash -d /home/plone plone
$ sudo chown plone:plone /home/plone
$ sudo chmod 750 /home/plone
</pre>
<p>Add the user "plone" to a group that has access to the Oracle librairies, in my case "oinstall":</p>
<pre>$ sudo gpasswd -a plone oinstall
</pre>
<p>&nbsp;$ORACLE_HOME and $LD_LIBRARY_PATH must be exported from his .bashrc or ~/.bash_profile file:</p>
<pre>$ 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:
</pre>
<p><strong>&nbsp;<span id="result_box" class="short_text"><span style="color: rgb(0, 0, 0);">And voila!</span></span></strong></p>
<p>&nbsp;</p>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Sylvain Boureliou</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Oracle</dc:subject>
    
    
      <dc:subject>Zope</dc:subject>
    
    
      <dc:subject>Makina Corpus</dc:subject>
    
    
      <dc:subject>Plone</dc:subject>
    
    <dc:date>2010-12-02T14:55:33Z</dc:date>
    <dc:type>Article</dc:type>
  </item>


  <item rdf:about="http://www.asilax.fr/technoblog/blog/2010/plone-conferences-2010-a-bristol-genial">
    <title>Plone conférence 2010 à Bristol: génial !</title>
    <link>http://www.asilax.fr/technoblog/blog/2010/plone-conferences-2010-a-bristol-genial</link>
    <description>Les conférences Plone ont eu lieu cette année à Bristol en Angleterre, du 25 au 31 octobre. Avec deux jours de formation / mini-prints, trois jours de conférences puis un week end complet de sprint, cette semaine a été un véritable succès. Et Makina Corpus était présent en force !</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<h2>"Plone conférence Bristol 2010"</h2>
<p>Cet évènement annuel, organisé par la <a class="external-link" href="http://plone.org/foundation">Fondation Plone</a>,&nbsp; rassemble pendant une semaine des utilisateurs et des développeurs du CMS Plone. C'est l'occasion pour chacun de:</p>
<ul><li>Découvrir les nouveaux développements et fonctionnalités de Plone, le futur Plone 5.</li><li>Assister à des présentations données par les grands spécialistes ou encore les membres fondateurs de Plone.<br /></li><li>Échanger son expérience avec des utilisateurs et développeurs venant des quatre coins de la planète.<br /></li><li>Bénéficier de formations dispensées par les plus grands spécialistes.<br /></li><li>Mettre la main à la patte pendant les deux jours de "sprint".<br /></li><li>Et biensûr faire la fête!</li></ul>
<h2>Vivre ou revivre la conférence<br /></h2>
<p>Toutes les présentations et vidéos sont déjà disponibles et librement consultables sur Internet:</p>
<ul><li><a class="external-link" href="http://www.slideshare.net/tag/ploneconf2010">Les supports de présentation</a> sur SlideShare.</li><li><a class="external-link" href="http://ploneconf2010.blip.tv/posts">Les vidéos</a> sur Blip.tv.</li><li>Quelques photos <a class="external-link" href="http://www.flickr.com/photos/machinalis/sets/72157625140018807/">ici</a>&nbsp; et <a class="external-link" href="http://www.dropbox.com/gallery/354347/1/ploneconf2010?h=bc2d33#/">là</a>.&nbsp;
</li></ul>
<h2>La communauté francophone (France et Belgique) regroupée autour de Plone</h2>
<p><a class="external-link" href="http://plone.fr/news/les-francophones-a-la-plone-conf-de-bristol">Voir l'article sur Plone.fr pour en savoir plus.</a></p>
<h2>Ma participation <br /></h2>
<p><em>Jean-Michel François</em> a travaillé sur un système permettant de corréler des types de contenu Dexterity et Archetypes.</p>
<p>J'ai eu le plaisir de travailler sur plusieurs fronts:</p>
<ul><li> Portage de produits communautaires sur Plone 4&nbsp; (tels que <a class="external-link" href="http://plone.org/products/collective.dewplayer">collective.dewplayer</a>, <a class="external-link" href="http://plone.org/products/collective.portlet.contact">collective.portlet.contact</a>, ou encore <a class="external-link" href="http://plone.org/products/collective.z3cform.norobots">collective.z3cform.norobots</a>).</li><li>Bugfixes sur plone.directives et collective.amberjack afin d'améliorer le support de l'internationalisation.</li><li>Participation au travail réalisé par Jean-Michel François sur un système permettant de corréler des types de contenu Dexterity et Archetypes.</li></ul>
<p>J'ai eu le plaisir au cours des deux jours de sprint post-conférence d'intégrer l'équipe des <em>"core-developers"</em> de Plone. Un grand merci à <a class="external-link" href="http://www.makina-corpus.com">Makina Corpus</a>
pour m'avoir permis d'assister à cet évènement !</p>
<p>&nbsp;</p>
<p align="center"><img class="image-inline image-inline" src="../../../../images/logoconfplone2010.png/image_preview" alt="Logo des conférences Plone 2010" />&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center"><img class="image-inline" src="../../../../images/image.jpeg" alt="Plone conférence 2010 à Bristol" height="407" width="612" /></p>
<p align="center"><em>La fine équipe -</em> <em>Photo de Stefan Antonelli</em></p>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Sylvain Boureliou</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Ingénieur</dc:subject>
    
    
      <dc:subject>Plone</dc:subject>
    
    <dc:date>2010-11-07T23:30:00Z</dc:date>
    <dc:type>Article</dc:type>
  </item>


  <item rdf:about="http://www.asilax.fr/technoblog/blog/2010/import-error-so-undefined-symbol-pyunicodeucs4_asencodedstring-ucs">
    <title>ImportError: [...].so: undefined symbol: PyUnicodeUCS4_AsEncodedString</title>
    <link>http://www.asilax.fr/technoblog/blog/2010/import-error-so-undefined-symbol-pyunicodeucs4_asencodedstring-ucs</link>
    <description>Après avoir mis à jour ma distribution vers Ubuntu 10.04 j'ai dû recompiler manuellement un python 2.4 pour faire tourner mes projets Plone 3. Mais voilà en lançant mon instance, je me retrouve avec l'erreur suivante: "ImportError: [...].so: undefined symbol: PyUnicodeUCS4_AsEncodedString"...</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<h2>Solution: supprimer les eggs concernés et les recompiler<br /></h2>
<p>En effet il semble bien sur le UCS de mon nouveau python est différent de l'ancien.</p>
<p>Les eggs précompilés (contenant des fichiers *.so) doivent être supprimés puis ré-installés/compilés en relançant le buildout (par exemple).</p>
<p>Exemple de commande permettant de trouver les eggs concernés:</p>
<pre>find /home/&lt;your-user&gt;/.buildout/eggs/ -name '*.so' 
&nbsp;&nbsp;&nbsp; | sed -re "s:(.*/eggs/[^/]*).*:\1:g" 
&nbsp;&nbsp;&nbsp; | sort -u</pre>
<h2>Comment connaître le UCS utilisé ?</h2>
<pre>python -c "import sys; print(sys.maxunicode&lt;66000) and 'UCS2' or 'UCS4'"</pre>
<p>&nbsp;Qu'est-ce que <em>sys.maxunicode</em> ? Je cite: """<em>An integer giving the largest supported code point for a Unicode character. The value of this depends on the configuration option that specifies whether Unicode characters are stored as UCS-2 or UCS-4.</em>""" (cf. <a class="external-link" href="http://docs.python.org/py3k/library/sys.html#sys.maxunicode">http://docs.python.org/py3k/library/sys.html#sys.maxunicode</a>)</p>
<p>&nbsp;</p>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Sylvain Boureliou</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Python</dc:subject>
    
    
      <dc:subject>Zope</dc:subject>
    
    
      <dc:subject>Plone</dc:subject>
    
    <dc:date>2010-10-11T09:36:08Z</dc:date>
    <dc:type>Article</dc:type>
  </item>


  <item rdf:about="http://www.asilax.fr/technoblog/blog/2010/Plone-4">
    <title>Plone 4... enfin !</title>
    <link>http://www.asilax.fr/technoblog/blog/2010/Plone-4</link>
    <description>Plus rapide. Plus puissant. Plus fonctionnel. Voici la promesse de cette nouvelle mouture. Bienvenue à Plone 4.</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p>« Plone 4 est basé sur les fonctionnalités attendues et apportées par la communauté mondiale des développeurs et utilisateurs Plone » (Alexander Limi co-fondateur de Plone et User Experience Lead du projet Firefox). « Nos développeurs et utilisateurs voulaient de meilleures performances : Plone 4 est beaucoup plus rapide, nécessite moins de mémoire, et permet de servir efficacement de gros volumes de fichiers. Nous n'avons pas pour autant sacrifié ce que Plone faisait bien jusqu'ici. Plone 4 n'est pas juste plus puissant, il continue à améliorer Plone sur les domaines qui ont fait sa réputation : ergonomie, sécurité, facilité d'installation et de mise à jour, design par défaut impeccable. »<br /><br /><strong>Pour en savoir plus, et en français !, n'hésitez à vous rendre sur le portail <a class="external-link" href="http://plone.fr/news/plone-4-dans-les-bacs">plone.fr</a>.</strong><br /><br />Petit résumé des principales avancées apportées par Plone 4:</p>
<ul><li>Une amélioration significative des performances</li><li>Un nouveau thème</li><li>Améliorations de la recherche et de l'indexation</li><li>Tableaux de bords en fonction du groupe dans lequel appartient l'utilisateur</li><li>Amélioration majeure de la gestion des media et des fichiers volumineux</li><li>Nouvelle implémentation des dossiers, plus rapide.</li><li>Meilleure gestion des utilisateurs et des groupes</li><li>Framework de formulaires dynamiques basé sur JQuery Tools</li><li>Amélioration du design et du paramétrage par défaut</li><li>Mises à jour plus simples</li><li>Empreinte mémoire réduite</li><li>Modérnisation de l'infrastructure</li></ul>
<p><br />Quelques articles pour en savoir plus:<br />* <a class="external-link" href="http://plone.org/products/plone/features/">What's New in Plone 4</a><br />* <a class="external-link" href="http://www.cmswire.com/cms/web-cms/web-cms-plone-4-improves-performance-user-experience-008491.php">Web CMS Plone 4 Improves Performance, User Experience</a><br />* <a class="external-link" href="http://jstahl.org/archives/2010/09/01/5-things-that-rock-about-plone-4/">5 Things That Rock About Plone 4</a><br />* <a class="external-link" href="http://www.enfoldsystems.com/support/a-users-guide-to-plone.html">A User's Guide to Plone</a></p>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Sylvain Boureliou</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Python</dc:subject>
    
    
      <dc:subject>Zope</dc:subject>
    
    
      <dc:subject>OpenSource</dc:subject>
    
    
      <dc:subject>Plone</dc:subject>
    
    <dc:date>2010-09-06T20:42:56Z</dc:date>
    <dc:type>Article</dc:type>
  </item>


  <item rdf:about="http://www.asilax.fr/technoblog/blog/2010/etat-des-lieux-des-publications-autour-de-plone">
    <title>Etat des lieux des publications autour de Plone</title>
    <link>http://www.asilax.fr/technoblog/blog/2010/etat-des-lieux-des-publications-autour-de-plone</link>
    <description>Merci à Encolpe pour cet état de l'art des ouvrages disponibles pour ceux qui souhaitent apprendre à utiliser Plone et développer des applications web basées sur Plone.</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p>Tout est là: <a class="external-link" href="http://encolpe.wordpress.com/2010/08/12/que-lire-pour-faire-du-plone/">http://encolpe.wordpress.com/2010/08/12/que-lire-pour-faire-du-plone/</a></p>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Sylvain Boureliou</dc:creator>
    <dc:rights></dc:rights>
    <dc:date>2010-08-13T22:46:49Z</dc:date>
    <dc:type>Article</dc:type>
  </item>


  <item rdf:about="http://www.asilax.fr/technoblog/blog/2010/how-to-install-oracle-10g-and-tora-on-gnu-linux-ubuntu-karmic-9.10">
    <title>How to install Oracle 10g and Tora on GNU Linux Ubuntu Karmic 9.10</title>
    <link>http://www.asilax.fr/technoblog/blog/2010/how-to-install-oracle-10g-and-tora-on-gnu-linux-ubuntu-karmic-9.10</link>
    <description>Thanks to my collegue Gaël Pegliasco, I successfully installed Oracle 10g Full Edition on my Ubuntu Karmic 9.10 (64 bits). We will see now how to install Tora, an open-source multi-platform database management GUI that supports accessing most of the common database platforms in use, including Oracle.</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<h2>Installing Oracle 64 bits</h2>
<p>See this <a class="external-link" href="http://www.makina-corpus.org/blog/how-install-oracle-10g-full-64-bits-version-not-xe-and-tora-gnu-linux-ubuntu-karmic-910-64-bits">wonderfull howto</a> written by Gaël Pegliasco which explains how to install Oracle 10g 64 bits.</p>
<p>Now we assume your ORACLE_HOME is "<em>/opt/oracle/oracle/product/10.2.0/db_1</em>".</p>
<p><strong>IMPORTANT</strong>: your user must have access to the ORACLE_HOME files.</p>
<h2>Installing Tora</h2>
<h3>Install the prerequisites and development libraries</h3>
<pre>sudo apt-get install build-essential g++ gcc autoconf automake flex zlib1g-dev docbook-xsl
sudo apt-get install libqt3-mt-dev libqt3-compat-headers libqscintilla-dev
sudo apt-get install debhelper dpatch texinfo
sudo apt-get install libaio1</pre>
<h3>Dowload Tora from Sourceforge</h3>
<a class="external-link" href="http://sourceforge.net/projects/tora/files/">http://sourceforge.net/projects/tora/files/</a>
<pre>cd /to/tora/tarball
tar xf tora-2.1.2.tar.bz2
cd tora-2.1.2
mkdir INSTALL_DIR</pre>
<h3>Environment Variables</h3>
<pre>vi ~/.bashrc
+ # Oracle 10g Standard Edition
+ export ORACLE_HOME=/opt/oracle/oracle/product/10.2.0/db_1
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
+ export PATH=$PATH:$ORACLE_HOME/bin
+ export ORACLE_SID=orcl

source ~/.bashrc</pre>
<pre>sudo vi /etc/ld.so.conf.d/oracle.conf
+ /opt/oracle/oracle/product/10.2.0/db_1/lib

sudo ldconfig</pre>
<h3>Include path oddity<br /></h3>
<p>Thanks to <a class="external-link" href="http://www.pythian.com/news/4747/installing-tora-with-oracle-support-on-ubuntu-9-10-karmic-koala./">Brad Hudson</a> !</p>
<pre>sudo ln -s /opt/oracle/oracle/product/10.2.0/db_1/ ${ORACLE_HOME}/include</pre>
<h3>Building and installing TOra</h3>
<pre>./configure --exec-prefix=/home/sbo/Logiciels/tora/tora-2.1.2/INSTALL_DIR \
            --prefix=/home/sbo/Logiciels/tora/tora-2.1.2/INSTALL_DIR</pre>
<p>You should see in the logs:<em> "checking for oracle... yes"</em></p>
<pre>make
make install</pre>
<p>Then you can start Tora:</p>
<pre>./INSTALL_DIR/bin/tora</pre>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Sylvain Boureliou</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Oracle</dc:subject>
    
    
      <dc:subject>Makina Corpus</dc:subject>
    
    
      <dc:subject>Logiciel</dc:subject>
    
    
      <dc:subject>Linux</dc:subject>
    
    <dc:date>2010-06-29T16:48:11Z</dc:date>
    <dc:type>Article</dc:type>
  </item>


  <item rdf:about="http://www.asilax.fr/technoblog/blog/2010/zodb-filestorage-corruptedtransactionerror">
    <title>ZODB FileStorage CorruptedTransactionError</title>
    <link>http://www.asilax.fr/technoblog/blog/2010/zodb-filestorage-corruptedtransactionerror</link>
    <description>Comment remettre en état une ZODB corrompue avec le script fsrecover.py fournit directement dans le code de la ZODB.</description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<h2>Erreur rencontrée au démarrage de Zope</h2>
<p>Dans mon cas le serveur Zope ne voulait plus démarrer et l'erreur suivante s'affichait dans la console (mon projet tourne dans un buildout):</p>
<pre>[...]
&lt;buildout-directory&gt;/parts/zope2/lib/python/ZODB/FileStorage/FileStorage.py
", line 52, in panic
raise CorruptedTransactionError(message)
ZODB.FileStorage.FileStorage.CorruptedTransactionError: %s data record exceeds t
ransaction record at %s 
</pre>
<h2>Correction de la base de données corrompue avec fsrecover.py<br /></h2>
<p>Il faut utiliser pour cela l'interpréteur python du projet. Ce dernier doit avoir accès à l'ensemble des modules de zope2. J'utilise pour cela l'interpréteur python <em>zopepy</em> généré par le buildout via la "part" suivante dans le fichier de configuration buildout.cfg:</p>
<pre>[zopepy]
recipe = zc.recipe.egg
eggs = ${instance:eggs}
interpreter = zopepy
extra-paths = ${zope2:location}/lib/python
scripts = zopepy
</pre>
<p>&nbsp;Rétablissons à présent notre base de données:</p>
<pre>cd &lt;buildout-directory&gt;/var/filestorage
../../bin/zopepy ../../parts/zope2/lib/python/ZODB/fsrecover.py -v 1 Data.fs Data.fs.recover 
</pre>
<p>&nbsp;Il faut être patient, le script va scanner toutes les transactions de la base, des plus anciennes aux plus récentes.</p>
<p>Que fait le script "fsrecover.py" ? Tout est dans le code:<em> "Recover data from a FileStorage data file, skipping over damaged data.&nbsp; Any damaged data will be lost.&nbsp; This could lead to useless output if critical data is lost."</em>.</p>
<p>Il ne reste plus qu'à mettre en production la base <em>Data.fs.recover</em> et à redémarrer le serveur Zope:</p>
<pre>mkdir corrupted
mv Data.fs corrupted/
mv Data.fs.index corrupted/
mv Data.fs.tmp corrupted/

mv Data.fs.recover Data.fs
mv Data.fs.recover.index Data.fs.index
mv Data.fs.recover.tmp Data.fs.tmp

cd ../..
./bin/instance fg
</pre>
]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Sylvain Boureliou</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Makina Corpus</dc:subject>
    
    
      <dc:subject>Buildout</dc:subject>
    
    
      <dc:subject>Plone</dc:subject>
    
    <dc:date>2010-03-25T10:08:13Z</dc:date>
    <dc:type>Article</dc:type>
  </item>


  <item rdf:about="http://www.asilax.fr/technoblog/blog/2010/plone-3-clean-dashboard-programmatically-setup-a-custom-dashboard">
    <title>Plone 3 - Clean dashboard programmatically - Setup a custom dashboard</title>
    <link>http://www.asilax.fr/technoblog/blog/2010/plone-3-clean-dashboard-programmatically-setup-a-custom-dashboard</link>
    <description>Plone 3 offers a default dashboard for each user. The dashboard is composed by four columns which are portlet managers and the set of portlet assignments created by default are: news, events, recent items and review list. If you need to clean existing dashboards or setup a different default set of portlets for the user dashboard, you are on the good place! </description>
    <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<h2>Clean all existing dashboards</h2>
<pre>from zope.component import adapts, queryUtility
from plone.portlets.interfaces import IPortletManager
from plone.app.portlets.storage import UserPortletAssignmentMapping
from plone.portlets.constants import USER_CATEGORY

def cleanDashboardFor(userid):
    for name in ('plone.dashboard1', 'plone.dashboard2',
                 'plone.dashboard3', 'plone.dashboard4'):
        column = queryUtility(IPortletManager, name=name)
        if column is not None:
            category = column.get(USER_CATEGORY, None)
            if category is not None:
                manager = category.get(userid, None)
                if manager is not None:
                    # overrides the manager with an empty mapping
                    del category[userid]
                    category[userid] = \
                          UserPortletAssignmentMapping(manager=name,
                                                       category=USER_CATEGORY,
                                                       name=userid)

# Remove all portlets from the users's dashboards
for userid in plone.Members.objectIds():
    cleanDashboardFor(userid)</pre>

<h1 class="documentFirstHeading"><span id="parent-fieldname-title">Setup a custom dashboard
        </span></h1>
This <a class="external-link" href="http://plone.org/documentation/kb/setup-a-custom-dashboard/">how-to</a> by Ricardo Alves explains how to setup the default set of portlets for the user dashboard.]]></content:encoded>
    <dc:publisher>No publisher</dc:publisher>
    <dc:creator>Sylvain Boureliou</dc:creator>
    <dc:rights></dc:rights>
    
      <dc:subject>Makina Corpus</dc:subject>
    
    
      <dc:subject>Plone</dc:subject>
    
    <dc:date>2010-03-11T12:30:00Z</dc:date>
    <dc:type>Article</dc:type>
  </item>





</rdf:RDF>

