<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mi espacio &#187; plugin</title>
	<atom:link href="http://www.manuelrecena.com/blog/archives/tag/plugin/feed" rel="self" type="application/rss+xml" />
	<link>http://www.manuelrecena.com/blog</link>
	<description>Donde escribo sobre cosas que forman parte de mi vida profesional</description>
	<lastBuildDate>Sun, 05 Feb 2012 21:20:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Por qué no hemos vendido ninguna licencia de Sonar PDF Report Plugin</title>
		<link>http://www.manuelrecena.com/blog/archives/952</link>
		<comments>http://www.manuelrecena.com/blog/archives/952#comments</comments>
		<pubDate>Sat, 18 Sep 2010 10:49:33 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Conocimiento libre]]></category>
		<category><![CDATA[Opiniones y reflexiones]]></category>
		<category><![CDATA[klicap]]></category>
		<category><![CDATA[licencia]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[producto]]></category>
		<category><![CDATA[sonar]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=952</guid>
		<description><![CDATA[Sí, esta es la cruda realidad. Durante los últimos meses hemos estado trabajando en nuevas versiones para resolver incidencias que han ido surgiendo y en incluir nuevas funcionalidades. Sonar PDF Report Plugin es un producto que distribuimos con licencia dual. Por un lado tenemos la versión open source liberada con licencia LGPLv3 e incluida en [...]]]></description>
			<content:encoded><![CDATA[<p>Sí, esta es la cruda realidad. Durante los últimos meses <a title="Información sobre klicap" href="http://blog.klicap.es/about" target="_blank">hemos</a> estado trabajando en nuevas versiones para resolver incidencias que han ido surgiendo y en incluir nuevas funcionalidades. Sonar PDF Report Plugin es un producto que distribuimos con licencia dual. Por un lado tenemos la <a title="Información sobre la versión open source" href="http://docs.codehaus.org/display/SONAR/Sonar+PDF+Plugin" target="_blank">versión open source</a> liberada con licencia LGPLv3 e incluida en el <a title="Catálogo de plugins de Sonar" href="http://docs.codehaus.org/display/SONAR/Sonar+Plugin+Library/" target="_blank">catálogo de plugins</a> de Sonar. Y por otro lado tenemos una <a title="Información sobre la versión comercial de Sonar PDF Report Plugin" href="http://blog.klicap.es/products/sonarpdfreportplugin" target="_blank">versión comercial</a> que incluye soporte y funcionalidades no liberadas. El coste de la versión comercial es de 130 euros anuales y se puede obtener una licencia de forma sencilla a través de PayPal. También proporcionamos una licencia de evaluación de 14 días para que antes de comprar tengan la opción de analizar y evaluar las funcionalidades <em>extra</em>.</p>
<p>Los motivos que hicieron que trabajásemos en una versión comercial fueron muchos pero si tenemos que destacar algunos:</p>
<ol>
<li>Adquirir experiencia con cierto tipo de documentos legales (Términos y acuerdos de uso). Nos resultó complicado encontrar abogados en Sevilla con experiencia de verdad en nuestro sector.</li>
<li>Enfrentarnos al proceso de vender. Hasta optar por paypal pasaron semanas evaluando alternativas (tiendas online, un simple formulario, instalarnos software, carrito de la compra en nuestro wordpress, etc).</li>
<li>Hacer algo para estar más cerca de uno de nuestros objetivos anuales, tener un cliente extranjero.</li>
<li>En una <a title="Referencia a una entrada de este blog donde se habla de la encuesta" href="http://blog.klicap.es/archives/157" target="_blank">encuesta publicada por SonarSource</a>, nuestro plugin se encontraba en el octavo puesto de 24 entre los más usados.</li>
<li>Y como no, obtener algún de ingreso que nos ayudase algo, aunque fuera a pagar nuestra conexión de datos.</li>
</ol>
<p>Desconozco los motivos de que aun no hayamos vendido ninguna licencia, pero algunas ideas rondan por mi cabeza:</p>
<ol>
<li>El objetivo del plugin (generar un artefacto documental con las métricas de Sonar) no es lo suficientemente necesario como para que una empresa gaste 130 euros anuales.</li>
<li>El proceso de compra no es cómodo y para temas fiscales no proporciona la información suficiente.</li>
<li>Existiendo la versión open source que no implica costes directos (sí indirectos porque alguien tiene que instalarlo y actualizarlo cuando se publiquen nuevas versiones) y cubre el objetivo fundamental del plugin, ¿por qué pagar?</li>
<li>Relacionado con el punto anterior, la <em>distancia</em> entre la versión open source y comercial no es suficiente para decidirse en la compra.</li>
<li>Teniendo en cuenta que el plugin puede ser demandado por personal técnico de empresas privadas e instituciones públicas, ¿Qué trámites necesitan realizar internamente para que sus departamentos de compras les gestionen la compra? En klicap para comprar algo sólo necesitamos estudiar su necesidad y ver si económicamente nos lo podemos permitir, cuestiones que podemos resolver inmediatamente. En medianas y grandes empresas, para reservar un dominio de internet que tiene un coste anual de 5 euros (aprox.) puede pasar semanas (esto lo he vivido). Y si hablamos de las instituciones públicas la situación se complica por su densa burocracia. A veces pienso que en estos escenarios resulta que comprar un dominio de internet está al mismo nivel que adquirir una licencia de base de datos Oracle.</li>
</ol>
<p>He aquí algunas reflexiones que espero puedan ser completadas o criticas por quienes leéis este espacio.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/952/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>cmislib, cliente CMIS en python</title>
		<link>http://www.manuelrecena.com/blog/archives/922</link>
		<comments>http://www.manuelrecena.com/blog/archives/922#comments</comments>
		<pubDate>Sun, 23 May 2010 19:15:51 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[alfresco]]></category>
		<category><![CDATA[cmis]]></category>
		<category><![CDATA[nuxeo]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=922</guid>
		<description><![CDATA[A finales de agosto del año pasado comencé un nuevo proyecto, un plugin para Trac que permitiese su integración con Alfresco. Desde entonces mucho ha llovido, especialmente este año. Cuando comencé no encontré ninguna librería que facilitase el trabajo con el Restful API que proporciona Alfresco y comencé un pequeño cliente para este proyecto. Más [...]]]></description>
			<content:encoded><![CDATA[<p>A <a title="Referencia a una entrada de este blog" href="http://www.manuelrecena.com/blog/archives/803" target="_blank">finales de agosto</a> del año pasado comencé un nuevo <a title="Sitio web del proyecto" href="http://clinker.klicap.es/projects/alfrescointegration" target="_blank">proyecto</a>, un plugin para Trac que permitiese su integración con Alfresco. Desde entonces mucho ha llovido, especialmente este año. Cuando comencé no encontré ninguna librería que facilitase el trabajo con el <a title="Información sobre Restful API de Alfresco" href="http://wiki.alfresco.com/wiki/Alfresco_REST_API" target="_blank">Restful API que proporciona Alfresco</a> y comencé un pequeño cliente para este proyecto. Más adelante pensé que si el cliente maduraba, quizás me convendría liberarlo de forma independiente al plugin para que otros pudieran evolucionarlo y mejorarlo. Yo sólo quería implementar los métodos más básicos.</p>
<p>Los momentos de <a title="Referencia a la wikipedia" href="http://es.wikipedia.org/wiki/Stand_by" target="_blank">standby</a> son realmente malos para cualquier proyecto, pero lo son especialmente para proyectos en los que sólo hay una persona y su planificación no se extiende más allá de tres meses para la primera versión. Con el nacimiento de <a title="Información sobre klicap" href="http://blog.klicap.es/about">klicap</a>, decidimos impulsar este plugin y <a title="Timeline del proyecto" href="http://clinker.klicap.es/projects/alfrescointegration/timeline" target="_blank">en ello estamos</a>. Antes de retomarlo, analicé el trabajo realizado y me cuestioné algunas decisiones previas. Durante esos días, descubrí <a title="Sitio web de la librería" href="http://code.google.com/p/cmislib" target="_blank">cmislib</a>. Según he pedido comprobar, su primer commit tiene fecha de mediados de diciembre de 2009. Su autor es <a title="Blog de Jeff Potts" href="http://ecmarchitect.com">Jeff Potts</a>, presidente y CEO en <a title="Sitio web de Metaversant Group, Inc." href="http://www.metaversant.com" target="_blank">Metaversant Group, Inc.</a>, donde parece que es el único empleado. Esta librería, escrita en python, forma parte del proyecto (en incubación) <a title="Sitio web del proyecto Apache Chemistry" href="http://incubator.apache.org/chemistry" target="_blank">Apache Chemistry</a>. Éste último tiene como objetivo proporcionar librerías cliente para trabajar con soluciones que implementen la especificación <a title="Información sobre la especificación" href="http://docs.oasis-open.org/cmis/CMIS/v1.0/cmis-spec-v1.0.html" target="_blank">CMIS</a>. La librería no está completa, aun quedan funcionalidades por implementar, pero desde luego su última versión 0.3 publicada es estable y cubre gran parte de la especificación. Teniendo en cuenta que la versión 1.0 de la especificación de CMIS tiene fecha 1 de mayo de 2010, sólo me queda agradecer el excelente trabajo de Jeff.</p>
<p>Esto se traduce en que he dejado de implementar mi propio cliente, y he comenzado a usar esta librería. Esto hace incluso que me planté el nombre del plugin, porque ahora podemos integrar Trac con Alfresco, Nuxeo y otros ECM que implementen CMIS. Desde <a title="klicap en twitter" href="http://twitter.com/klicap" target="_blank">@klicap</a> haremos lo posible por colaborar en este proyecto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/922/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desarrollando plugins de Trac</title>
		<link>http://www.manuelrecena.com/blog/archives/781</link>
		<comments>http://www.manuelrecena.com/blog/archives/781#comments</comments>
		<pubDate>Wed, 19 Aug 2009 10:52:22 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=781</guid>
		<description><![CDATA[El otro día comencé a configurar el entorno de desarrollo local. Se me olvidó comentar que para desarrollar plugins de Trac la mejor opción es ejecutarlo en modo standalone. El porqué viene justificado por uno de los pros de este modo: Automatic reloading: For development, Tracd can be used in auto_reload mode, which will automatically [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Referencia a una entrada de este blog" href="http://www.manuelrecena.com/blog/archives/773" target="_blank">El otro día</a> comencé a configurar el entorno de desarrollo local. Se me olvidó comentar que para desarrollar plugins de Trac la mejor opción es ejecutarlo en <strong>modo standalone</strong>. El porqué viene justificado por uno de los pros de este modo:</p>
<blockquote><p>Automatic reloading: For development, Tracd can be used in auto_reload mode, which will automatically restart the server whenever you make a change to the code (in Trac itself or in a plugin).</p></blockquote>
<p>Toda la <a title="Documentación sobre Trac en modo standalone" href="http://trac.edgewall.org/wiki/TracStandalone" target="_blank">configuración</a> está perfectamente explicada en el sitio web de Trac. En mi caso me he creado un pequeño script (start_trac.sh):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">tracd <span style="color: #660033;">-p</span> <span style="color: #000000;">8000</span> <span style="color: #660033;">--basic-auth</span>=AlfrescoTracIntegration,<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>recena<span style="color: #000000; font-weight: bold;">/</span>Documentos<span style="color: #000000; font-weight: bold;">/</span>trac-users.conf,<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>recena<span style="color: #000000; font-weight: bold;">/</span>Documentos<span style="color: #000000; font-weight: bold;">/</span>trac-projects<span style="color: #000000; font-weight: bold;">/</span>AlfrescoTracIntegration <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>recena<span style="color: #000000; font-weight: bold;">/</span>Documentos<span style="color: #000000; font-weight: bold;">/</span>trac-projects<span style="color: #000000; font-weight: bold;">/</span>AlfrescoTracIntegration</pre></div></div>

<p>Si por el contrario lo que queremos es ejecutarlo desde Eclipse, también podemos encontrar las correspondientes <a title="Referencia a la documentación del sitio web de Trac" href="http://trac.edgewall.org/wiki/TracDev/DevelopmentWithEclipseAndPyDev#InstallingandconfiguringEclipse" target="_blank">instrucciones</a>. La intención era haber publicado esta pequeña entrada el pasado jueves, 13 de agosto. Pero he estado sin acceso a Internet desde entonces. Algunas notas que a mi me están viniendo muy bien para comenzar a desarrollar un plugin de Trac sin tener experiencia en Python:</p>
<ol>
<li>Configurar un <em>buen</em> entorno de desarrollo local que nos permita trabajar cómodamente y como no, depurar.</li>
<li>Conocer las características del lenguaje de programación. Me he leído &#8220;<a title="Sitio web oficial del libro" href="http://mundogeek.net/tutorial-python/" target="_blank"><strong>Python para todos</strong></a>&#8220;, y sólo agradecer a Raúl González Duque el excelente trabajo realizado.</li>
<li>Guías:
<ol>
<li><a title="Referencia al sitio web de Python" href="http://www.python.org/dev/peps/pep-0008" target="_blank">Style Guide for Python Code</a></li>
<li><a title="Rerencia al sitio web de Python" href="http://www.python.org/dev/peps/pep-0257/" target="_blank">Docstring Conventions</a></li>
</ol>
</li>
<li>Estudiar <a title="Comunidad de Trac donde se publican plugins y macros" href="http://trac-hacks.org" target="_blank">otros plugins</a></li>
<li>Instalar <a title="Sitio web del plugin" href="http://trac-hacks.org/wiki/TracDeveloperPlugin" target="_blank">TracDeveloper</a>, un plugin de Trac muy útil para desarrollar.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/781/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>buildnumber-maven-plugin</title>
		<link>http://www.manuelrecena.com/blog/archives/665</link>
		<comments>http://www.manuelrecena.com/blog/archives/665#comments</comments>
		<pubDate>Sun, 07 Jun 2009 15:14:38 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[buildnumber]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=665</guid>
		<description><![CDATA[Configuré este plugin hace algunas semana en un proyecto y me encontré con un pequeño inconveniente que me hizo perder unas horas. Hoy me disponía a configurarlo en Opina y me he encontrado con otro inconveniente. Para que no se me olvide, y por si a alguien le sirve, dejo por aquí la configuración que [...]]]></description>
			<content:encoded><![CDATA[<p>Configuré <a title="Referencia al plugin" href="http://mojo.codehaus.org/buildnumber-maven-plugin/usage.html" target="_blank">este plugin</a> hace algunas semana en un proyecto y me encontré <a title="Referencia a un hilo de la lista ecosistemas software" href="http://groups.google.com/group/ecosistemas-software/browse_thread/thread/c9728a476ab7059b" target="_blank">con un pequeño inconveniente</a> que me hizo perder unas horas. Hoy me disponía a configurarlo en Opina y me he encontrado con otro inconveniente. Para que no se me olvide, y por si a alguien le sirve, dejo por aquí la configuración que estoy usando:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plugin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.codehaus.mojo<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>buildnumber-maven-plugin<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.0-beta-3<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;executions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;execution<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;phase<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>process-sources<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/phase<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;goals<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;goal<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>create<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/goal<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/goals<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/execution<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/executions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;docheck<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/docheck<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;doupdate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>false<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/doupdate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/configuration<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plugin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Para es funcione debemos tener correctamente configurado el repositorio SCM:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;scm<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;connection<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>scm:svn:http://svn.ebabel.info/repos/opina/branches/1.x<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/connection<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;developerconnection<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>scm:svn:http://svn.ebabel.info/repos/opina/branches/1.x<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/developerconnection<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://trac.ebabel.info/projects/opina/browser<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/scm<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Que no se os olvide la entrada developerConnection, sino, no funcionará.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/665/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

