<?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>Negonation Blog &#187; Programación</title>
	<atom:link href="http://blog.negonation.com/es/category/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.negonation.com/es</link>
	<description>Justice is ripe for disruption</description>
	<lastBuildDate>Mon, 06 Feb 2012 17:27:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Ejemplo completo de integración de Tractis Identity con asp.net c#</title>
		<link>http://blog.negonation.com/es/ejemplo-completo-de-integracion-de-tractis-identity-con-asp-net-c/</link>
		<comments>http://blog.negonation.com/es/ejemplo-completo-de-integracion-de-tractis-identity-con-asp-net-c/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 13:56:47 +0000</pubDate>
		<dc:creator>Jose Luis Gordo Romero</dc:creator>
				<category><![CDATA[Anuncios]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tractis]]></category>
		<category><![CDATA[Tractis Identity]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/?p=3052</guid>
		<description><![CDATA[Nos complace anunciar el gran trabajo realizado por David Marzo: una demo completa de integración de las verificaciones de identidad de Tractis en asp.net c#. Desde aquí, ¡muchas gracias! por compartir el código con el resto de la comunidad y montar un sitio demo. Puedes probar el ejemplo en vivo y en directo en la [...]]]></description>
			<content:encoded><![CDATA[<p>Nos complace anunciar el gran trabajo realizado por <a href="http://www.dmarzo.com/2011/02/tractis-integracion-con-aspnet.html">David Marzo</a>: una demo completa de integración de <a href="http://blog.negonation.com/es/tractis-identity-verifica-la-identidad-real-de-tus-usuarios/">las verificaciones de identidad de Tractis</a> en asp.net c#. Desde aquí, ¡muchas gracias! por compartir el código con el resto de la comunidad y montar un sitio demo.</p>
<p>Puedes probar el ejemplo en vivo y en directo en la siguiente dirección:</p>
<ul>
<li><a href="http://extranet.solnatec.com/tractis/">http://extranet.solnatec.com/tractis/</a></li>
</ul>
<p>Y descargar el código fuente desde el proyecto de github:</p>
<ul>
<li><a href="https://github.com/dmarzo/Tractis_aspnet_demo">https://github.com/dmarzo/Tractis_aspnet_demo</a></li>
</ul>
<p>La <a href="https://www.tractis.com/help/?cat=141&amp;language=es">lista de Módulos de Autenticación Tractis</a> para distintos lenguajes, frameworks y CMS&#8217;s sigue creciendo. Nunca antes añadir autenticación con certificados electrónicos a tu sitio web fue tan sencillo</a>.</p>
<h3 id="s_el_siguiente_en_integrarte">Sé el próximo en integrarte</h3>
<p>Si decides integrar en algún proyecto las <a href="https://www.tractis.com/identity">verificaciones de identidad de Tractis</a> <a href="mailto:info@tractis.com">no dudéis en contárnoslo</a>. Nos encantará ver cómo lo habéis hecho <img src="http://blog.negonation.com/es/wp-includes/images/smilies/icon_smile.gif" alt=":)" /></p>
<h3>Adáptalo a tu lenguaje/framework/cms favorito</h3>
<p>Si tienes en mente crear nuevos plugins para Tractis Identity, ya sea para un lenguaje, un framework, un CMS o… lo que sea, <a href="https://www.tractis.com/help/?cat=233&amp;language=es">revisa la documentación disponible</a> y coméntanos tu idea. Intentaremos ayudarte en todo lo que podamos.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/ejemplo-completo-de-integracion-de-tractis-identity-con-asp-net-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tractis Identity: Autenticación con DNI-e en PHP</title>
		<link>http://blog.negonation.com/es/tractis-identity-autenticacion-con-dni-e-en-php/</link>
		<comments>http://blog.negonation.com/es/tractis-identity-autenticacion-con-dni-e-en-php/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 11:29:58 +0000</pubDate>
		<dc:creator>Jose Luis Gordo Romero</dc:creator>
				<category><![CDATA[Anuncios]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/?p=1358</guid>
		<description><![CDATA[Siguiendo con la serie de desarrollos de integraciones con Tractis Identity, hoy anunciamos una clase + ejemplo para la integración de sitios desarrollados con PHP. El por qué de desarrollar una clase genérica para el lenguaje de programación PHP, es para facilitar el trabajo a aquellas webs que no usan uno de los frameworks con [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.php.net/" target="_blank"><img class="size-full wp-image-1040 alignright right" title="PHP" src="http://blog.negonation.com/es/wp-content/uploads/2009/08/php-med-trans.png" alt="PHP" /></a>Siguiendo con la serie de <a href="http://blog.negonation.com/es/index.php?s=tractis+identity+plugin">desarrollos de integraciones con Tractis Identity</a>, hoy anunciamos una clase + ejemplo para la integración de sitios desarrollados con PHP.</p>
<p>El por qué de desarrollar una clase genérica para el <a href="http://www.php.net">lenguaje de programación PHP</a>, es para facilitar el trabajo a aquellas webs que no usan uno de los frameworks con plugins desarrollados (como <a href="https://www.tractis.com/help/?cat=238&amp;language=es">Rails</a> o <a href="https://www.tractis.com/help/?cat=237&amp;language=es">CakePHP</a>), y servir como base a futuros desarrollos de integraciones más complejas.</p>
<p>El código necesario para ofrecer autenticación en tu sitio web se reduce a unas pocas líneas de código:</p>
<ol>
<li>Creación del objeto tractis_identity</li>
<li>Generación del formulario</li>
<li>Comprobación de la validación</li>
</ol>
<pre class="brush: php;">
// tractis_identity contructor class (api_key, notification_callback, public_verification (true/false), image_button_url)
$tractis_identity = new tractis_identity (&quot;Your API KEY HERE&quot;, $notification_callback, &quot;false&quot;, &quot;/your/url/to/images/trac_but_bg_lrg_b_en.png&quot;);

// print auto-generated form
echo $tractis_identity-&gt;show_form();

// Check the auth
if ($user = $tractis_identity-&gt;check_auth()) {
   // Correct auth, User info from Tractis on $user array
   print_r($user);
} else {
   // Not tractis auth
}
</pre>
<p>Hemos liberado el código de esta librería para que podáis revisarlo y adaptarlo a lo que necesitéis. Tenéis toda la información sobre esta librería en la <a title="Ayuda para módulo PHP" href="https://www.tractis.com/help/?cat=244&amp;language=es">sección correspondiente</a> de la ayuda de Tractis. Desde allí podréis acceder también al repositorio <a title="Identity verifications plugin for php" href="http://github.com/tractis/tractis_identity_verifications_for_php/">donde lo hemos publicado</a>.</p>
<p>Pruébalo, te llevará 10 minutos realizar la integración en tu sitio y darle valor añadido ofreciendo autenticación con DNI-e (<a href="http://www.tractis.com/supported_certificates">y otros certificados</a>) con la máxima seguridad y completamente gratis.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/tractis-identity-autenticacion-con-dni-e-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tractis Identity: Autenticación con DNI-e en Java</title>
		<link>http://blog.negonation.com/es/tractis-identity-autenticacion-con-dni-e-en-java/</link>
		<comments>http://blog.negonation.com/es/tractis-identity-autenticacion-con-dni-e-en-java/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 07:58:56 +0000</pubDate>
		<dc:creator>David García</dc:creator>
				<category><![CDATA[Anuncios]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/?p=1266</guid>
		<description><![CDATA[Estamos muy contentos con la gran acogida que está recibiendo Tractis Identity. Tras los plugins de Drupal, Rails y CakePHP, hoy hacemos lo propio con Java. En el caso de Java estamos hablando de un lenguaje y no de un CMS (Drupal) o de un framework (Rails, CakePHP), así que hemos querido acotar la cosa [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://java.sun.com/" target="_blank"><img class="size-full wp-image-1040 alignright right" title="Java" src="http://blog.negonation.com/es/wp-content/uploads/2009/08/imagen-java-post.png" alt="Java" width="148" height="145" /></a>Estamos muy contentos con la gran acogida que está recibiendo Tractis Identity. Tras los plugins de Drupal, Rails y CakePHP, hoy hacemos lo propio con Java.</p>
<p>En el caso de Java estamos hablando de un lenguaje y no de un CMS (Drupal) o de un framework (Rails, CakePHP), así que hemos querido acotar la cosa a un escenario mas concreto. Para ello hemos creado una serie de taglibs para JSP que permitan integrar de manera sencilla los servicios de identidad en una plataforma web basada en J2EE.</p>
<p>De este modo la integración se simplifica al extremo quedando como única dificultad definir dentro de tu página de login</p>
<pre><code>&lt;%@ taglib uri="/taglib.tld"  prefix="tractis" %&gt;
&lt;html&gt;
Pon aquí tu código html....
 &lt;tractis:IdentityVerificationForm/&gt;
&lt;/html&gt;
</code></pre>
<p>y otra página a donde Tractis redirija el resultado de la verificación. Esta página solamente debe contener el código</p>
<pre><code>&lt;%@ taglib uri="/taglib.tld"  prefix="tractis" %&gt;
&lt;html&gt;
 Pon aquí tu código HTML...
 &lt;tractis:IdentityVerificationCheck/&gt;
&lt;/html&gt;
</code></pre>
<p>En este último caso este tag automáticamente efectúa las validaciones internas pertinentes contra Tractis y pone en sessión los atributos recuperados.<br />
A partir de ahí la cosa es tan simple como coger los atributos y usarlos.</p>
<pre><code>
&lt;%= session.getAttribute("tractis:attribute:name") %&gt; </code></pre>
<p>Hemos abierto el código de esta librería para que podáis usarlo y modificarlo para adaptarlo a lo que necesitéis. Tenéis toda la información sobre esta librería en la <a title="Ayuda para módulo Java" href="https://www.tractis.com/help/?cat=239&amp;language=es">sección correspondiente</a> de la ayuda de Tractis. Desde allí podréis acceder también al repositorio <a title="Identity verifications plugin for java" href="http://github.com/tractis/tractis_identity_verifications_for_java/">donde lo hemos publicado</a>.</p>
<p>Ya no hay excusas para ofrecer autenticación con DNI-e (<a href="http://www.tractis.com/supported_certificates">y otros certificados</a>) con la máxima seguridad y completamente gratis en vuestro sitio web.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/tractis-identity-autenticacion-con-dni-e-en-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tractis Identity: Integración con el componente Auth de CakePHP</title>
		<link>http://blog.negonation.com/es/tractis-identity-integracion-con-el-componente-auth-de-cakephp/</link>
		<comments>http://blog.negonation.com/es/tractis-identity-integracion-con-el-componente-auth-de-cakephp/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 16:18:02 +0000</pubDate>
		<dc:creator>David Blanco</dc:creator>
				<category><![CDATA[Anuncios]]></category>
		<category><![CDATA[Identidad]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/?p=1177</guid>
		<description><![CDATA[Javier Matíes no para. Tras desarrollar la integración de Tractis Identity con CakePHP, hoy mismo ha anunciado en su blog la integración de Tractis Identity con el componente Auth de Cake PHP. En otras palabras, ahora dispones de código específico para integrar Tractis Identity con el sistema de autenticación de usuarios en CakePHP. Aquí tenéis [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cakephp.org" target="_blank"><img class="alignright right size-full wp-image-1167" title="cake-logo" src="http://blog.negonation.com/es/wp-content/uploads/2009/08/cake-logo.png" alt="cake-logo" width="180" height="180" /></a><a href="http://www.javiermaties.com/" target="_blank">Javier Matíes</a> no para. Tras desarrollar la<a href="http://www.javiermaties.com/sipuedo/2009/07/30/integracion-de-tractis-identity-verifications-con-cakephp/" target="_blank"> integración de Tractis Identity con CakePHP</a>, hoy mismo ha anunciado en su blog la integración de <a href="http://www.javiermaties.com/sipuedo/2009/08/07/tractis-identity-verifications-con-el-componente-auth-de-cakephp/" target="_blank">Tractis Identity con el componente Auth de Cake PHP</a>. En otras palabras, ahora dispones de código específico para integrar Tractis Identity con el <a href="http://book.cakephp.org/es/view/172/Authentication" target="_blank">sistema de autenticación de usuarios en CakePHP</a>. Aquí tenéis un <a href="http://tractis.javiermaties.com/" target="_blank">ejemplo de uso</a> con el código en acción.</p>
<p>Mmmmm&#8230; Ahora, el pastel, aún más rico. ¡Gracias Javier!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/tractis-identity-integracion-con-el-componente-auth-de-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tractis Identity: Autenticación con DNI-e en CakePHP</title>
		<link>http://blog.negonation.com/es/tractis-identity-autenticacion-con-dni-e-en-cakephp/</link>
		<comments>http://blog.negonation.com/es/tractis-identity-autenticacion-con-dni-e-en-cakephp/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 06:00:57 +0000</pubDate>
		<dc:creator>David Blanco</dc:creator>
				<category><![CDATA[Anuncios]]></category>
		<category><![CDATA[Identidad]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/?p=1156</guid>
		<description><![CDATA[Solo 10 días después del lanzamiento de Tractis Identity, del plugin para Drupal y del plugin para Rails. Javier Matíes, freelance especializado en desarrollo web, ha creado un plugin para CakePHP, su framework favorito, y ha compartido el código con el resto de la comunidad. Desde aquí, ¡muchas gracias!. Javier también ha montado un ejemplo [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cakephp.org" target="_blank"><img class="alignright right size-full wp-image-1167" title="cake-logo" src="http://blog.negonation.com/es/wp-content/uploads/2009/08/cake-logo.png" alt="cake-logo" width="180" height="180" /></a>Solo 10 días después del lanzamiento de Tractis Identity, del plugin para Drupal y del plugin para Rails. <a href="http://www.javiermaties.com/">Javier Matíes</a>, freelance especializado en desarrollo web, ha creado un plugin para CakePHP, su framework favorito, y ha compartido <span style="text-decoration: underline;"><a href="http://www.javiermaties.com/sipuedo/2009/07/30/integracion-de-tractis-identity-verifications-con-cakephp/" target="_blank">el código</a></span> con el resto de la comunidad. Desde aquí, ¡muchas gracias!. Javier también ha montado un ejemplo de Tractis Identity funcionando con CakePHP en la dirección: <a href="http://wifi.planetalmeria.com/usuarios/tractis">http://wifi.planetalmeria.com/usuarios/tractis</a>.</p>
<p>Si no sabes de qué estamos hablando, <a href="http://www.tractis.com/identity"> Tractis Identity</a> es el nuevo servicio de Tractis que te permite verificar la identidad real de tus usuarios haciendo uso del <a href="http://www.tractis.com/accepted_certificates">DNI-e y otros certificados</a> y de forma completamente gratuita. Con Tractis Identity puedes crear &#8220;Verificaciones de Identidad&#8221; que luego puedes utilizar, tanto para ofrecer &#8220;Pasarelas de autenticación&#8221;, como para crear &#8220;Perfiles certificados&#8221; en tu página web donde tus usuarios puedan mostrar su identidad real.</p>
<p>Aunque ha pasado muy poquito tiempo desde el lanzamiento, ya puedes ver Tractis Identity en acción en varios sitios web. Échale un ojo a la Pasarelas de autenticación creadas sobre Drupal en el <a href="http://labs.ateneatech.com/tractis/" target="_blank">sitio web de Atenea Tech</a> y en la <a href="http://www.crisalia.com/intranetbeta/">intranet de Crisalia Servicios Financieros</a> y a los Perfiles certificados creados con Tractis Identity sobre Rails en <a href="http://blog.negonation.com/es/tratis-identity-plugin-rails-de-verificaciones-de-identidad/">Todosiniestros.com</a> y <a href="http://blog.negonation.com/es/sitios-de-anuncios-y-verificaciones-de-identidad-el-caso-practico-de-mercadelia/">Mercadelia</a>.</p>
<p>El plugin de CakePHP es el segundo plugin disponible para un framework de desarrollo (el primero fue Rails) y, también, el segundo plugin en ser creado por desarrolladores fuera de Tractis (el plugin de Drupal fue creado por <a href="http://ateneatech.com/" target="_blank">Atenea Tech</a>). Ojala vayan apareciendo muchos más y la gente los comparta. Así todos podremos disfrutar de las ventajas del DNIe en minutos, gratis y sin tener que reinventar la rueda. Si tienes en mente crear nuevos plugins para Tractis Identity, ya sea para un lenguaje, un framework, un CMS o&#8230; lo que sea, <a href="https://www.tractis.com/help/?cat=233&amp;language=es">revisa la documentación disponible</a> y coméntanos tu idea. Intentaremos ayudarte en todo lo que podamos.</p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/tractis-identity-autenticacion-con-dni-e-en-cakephp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Usando maven</title>
		<link>http://blog.negonation.com/es/usando-maven/</link>
		<comments>http://blog.negonation.com/es/usando-maven/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 16:24:54 +0000</pubDate>
		<dc:creator>David García</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tecnología]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/?p=562</guid>
		<description><![CDATA[Normalmente no suelo escribir sobre aspectos tecnológicos que no tengan que ver con la firma digital o con el servicio que Tractis presta. Hoy sin embargo me gustaría centrarme en una herramienta muy presente en mi día a día y que me esta haciendo la vida bastante mas fácil: maven. No daré ningún tutorial de [...]]]></description>
			<content:encoded><![CDATA[<p>Normalmente no suelo escribir sobre aspectos tecnológicos que no tengan que ver con la firma digital o con el servicio que Tractis presta.</p>
<p>Hoy sin embargo me gustaría centrarme en una herramienta muy presente en mi día a día y que me esta haciendo la vida bastante mas fácil: <a title="Maven" href="http://maven.apache.org/">maven</a>.</p>
<p>No daré ningún tutorial de como funciona la cosa, porque para eso ya hay muchísima documentación que lo explica bastante mejor de lo que yo lo haría. Explicaré como nos ayuda maven en la gestión de la configuración en nuestros proyectos.</p>
<h3>Un poco de introducción</h3>
<p>El principal problema con el que me encontraba a la hora de gestionar el gran numero de pequeños subsistemas Java que tenemos en el backend de Tractis es que gestionar el ciclo de vida de éstos requiere de muchas tareas repetitivas que pueden ser automatizadas y la inclusión de muchas librerías de terceros.</p>
<p>Para esta automatización usábamos Ant de Apache que nos ayudaba a la gestión de tareas repetitivas durante el desarrollo de nuestros proyectos.</p>
<p><a title="Apache Ant" href="http://ant.apache.org/">Ant</a> es muy bueno para automatizar tareas repetitivas pero la gestión de librerías externas no es todo lo potente que podría ser. La manera común de usar una librería en uno de nuestros proyectos era bajar la versión adecuada, ponerla en un directorio del proyecto e incluirla mediante el <em>classpath</em> en nuestra aplicación.</p>
<p>Esta manera de gestionar las librerías puede funcionar cuando tienes pocos proyectos o los proyectos tienen muy pocas librerías en común. Por el contrario, si cuando buscas una librería en todos tus proyectos obtienes 10 resultados: tienes un problema con la gestión de librerías; y más aun si te paras a ver las distintas versiones de la librería en cada uno de los proyectos.</p>
<p>Es por esto que Ant, pese a que puede ser una alternativa razonable si tienes pocos proyectos, se queda corto conforme vamos teniendo un número considerable de proyectos para gestionar.</p>
<h3>Maven al rescate</h3>
<p>Maven es una tecnología más que asentada y que se usa en la mayoría de proyectos Open Source Java, pero nunca esta de mas reconocer las enormes ventajas que su aplicación nos aporta.</p>
<p>Esta tecnología ayuda a gestionar el ciclo de vida de los proyectos.Para ello se definen las fases del proyecto (compilación, test, empaquetado, despliegue) en un fichero de meta-información llamado <a title="POM" href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html">POM</a> donde se recogen detalles de las tareas a realizar en cada fase. También se recogen detalles de la naturaleza del proyecto como por ejemplo sus dependencias respecto a librerías de terceros.</p>
<p>Maven permite la gestión automatizada de estas dependencias de librerías de un modo mas que notable. Simplemente es necesario incluir la referencia a la librería dentro del fichero POM así como la versión requerida y maven la bajará del repositorio por defecto (o de otro que se encuentre configurado dentro del POM) y la incluirá en el repositorio local.</p>
<p>Esto facilita la gestión de la configuración muchísimo ya que los proyectos no van engordando con librerías que se encuentran duplicadas a lo largo de nuestro sistema de control de versiones.</p>
<p>Además la gran mayoría de los proyectos Open Source o bien tienen sus librerías dentro del repositorio por defecto de maven o disponen de un repositorio propio.</p>
<h3>En resumen</h3>
<p>Yo en un principio pensaba que con mi ant ya me iba bien pero despues de probar maven te quedas con la misma sensación que tienes con <a title="rubygems" href="http://rubygems.org/">gem</a> en ruby o <a title="apt-get" href="http://www.debian.org/doc/manuals/apt-howto/">apt-get</a> en debian o ubuntu&#8230;¿Como he vivido tanto tiempo sin esto?!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/usando-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tractis estrena nueva sección de Ayuda</title>
		<link>http://blog.negonation.com/es/tractis-estrena-nueva-seccion-de-ayuda/</link>
		<comments>http://blog.negonation.com/es/tractis-estrena-nueva-seccion-de-ayuda/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 09:42:22 +0000</pubDate>
		<dc:creator>David Blanco</dc:creator>
				<category><![CDATA[Anuncios]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/?p=447</guid>
		<description><![CDATA[La semana pasada lanzamos &#8220;por lo bajinis&#8221; la nueva sección de Ayuda de Tractis. Un tour de la nueva Ayuda Visualmente, hemos hecho algunos cambios para que sea más fácil encontrar la Ayuda cuando la necesitas. Aparte del habitual enlace a pie de página, encontrarás otro en el menú principal. Además hemos aplicado a la [...]]]></description>
			<content:encoded><![CDATA[<p>La semana pasada lanzamos &#8220;por lo bajinis&#8221; la <a href="http://www.tractis.com/help">nueva sección de Ayuda de Tractis</a>.</p>
<p><a href="http://www.tractis.com/help"><img class="size-full wp-image-450" style="vertical-align: baseline;" title="Nueva sección de Ayuda de Tractis" src="http://blog.negonation.com/es/wp-content/uploads/2008/09/nueva_ayuda.gif" alt="Nueva sección de Ayuda de Tractis" width="460" height="283" /></a></p>
<h3>Un tour de la nueva Ayuda</h3>
<p>Visualmente, hemos hecho algunos cambios para que sea más fácil encontrar la Ayuda cuando la necesitas. Aparte del habitual enlace a pie de página, encontrarás otro en el menú principal. Además hemos aplicado a la sección de Ayuda una combinación de colores azules que la distinguen claramente del resto de la aplicación.</p>
<p>Externamente, la nueva sección de Ayuda sustituye a la antigua página-listado y supera muchas de sus limitaciones:</p>
<ul>
<li><strong>Una pregunta. Un enlace</strong>: Muchos nos habeis comentado que, para contratar online, primero hay que vencer el desconocimiento y las reticencias iniciales de la otra parte. En concreto queríais que fuese posible enviar a la otra parte enlaces con la <span style="text-decoration: underline;">información concreta</span> que le preocupa (p.ej: qué es la firma electrónica, qué validez legal tiene, qué  certificados electrónicos aceptamos, etc) y no toda la página-listado donde la otra parte se iba a marear con información sin saber muy bien que leer y que no. Pues bien, ahora ya es posible. Cada pregunta ya tiene su propia página y dirección web.</li>
<li><strong>Categorías y subcategorías</strong>: Además las preguntas están agrupadas por categorías y subcategorías, con lo que puedes hacer referencia a bloques de información más o menos extensos. Por ejemplo, desde la categoría &#8220;<a href="https://www.tractis.com/help/?cat=86&amp;language=es" target="_self">Información general sobre Tractis</a>&#8220;, pasando por la subcategoría &#8220;<a href="https://www.tractis.com/help/?cat=105&amp;language=es" target="_self">Seguridad tecnológica en Tractis</a>&#8220;, hasta llegar a algo tan concreto como &#8220;<a href="https://www.tractis.com/help/?p=202&amp;language=es" target="_self">Seguridad en la preservación de contratos</a>&#8220;.</li>
<li><strong>Ayuda para principiantes</strong>: Si eres nuevo en Tractis, puedes pulsar el botón &#8220;<a href="https://www.tractis.com/help/?transversal=Steps&amp;header=First%20steps" target="_blank">Primeros Pasos</a>&#8221; (claramente visible en la portada de la Ayuda) y accederas a un listado de artículos sencillos dirigidos especialmente a principiantes: <a href="https://www.tractis.com/help/?p=74&amp;language=es" target="_self">¿Qué es Tractis?</a>, <a href="https://www.tractis.com/help/?p=82&amp;language=es" target="_self">¿Cuanto cuesta?</a>, <a href="https://www.tractis.com/help/?p=381&amp;language=es" target="_self">¿Cómo puedo publicar una plantilla en la librería pública?</a>, etc.</li>
<li><strong>Solución de problemas</strong>: Si ya eres usuario de Tractis y surgen problemas, te atascas en algún momento del proceso de contratación o tienes problemas para firmar, puedes pulsar el botón &#8220;<a href="https://www.tractis.com/help/?transversal=Troubleshooting&amp;header=Troubleshooting" target="_self">Solucionador de problemas</a>&#8221; (también claramente visible en la portada de la Ayuda de Tractis) y accederás a un lista de preguntas con soluciones a los problemas más comunes.</li>
<li><strong>Navegacion y búsqueda</strong>: Si te pierdes consultando la Ayuda, podrás averiguar rápidamente donde te encuentras, mirando el &#8220;breadcrumb&#8221; (&#8220;rastro de migas&#8221;) que hay al inicio de cada página. Así podrás volver al inicio o a una categoría/subcategoría intermedia. De la misma forma, puedes utilizar la caja de búsqueda para encontrar todas las preguntas relacionadas con un tema.</li>
</ul>
<p>Internamente, la nueva sección de Ayuda utiliza, al igual que este blog, un WordPress personalizado con <a href="http://wordpress.org/extend/plugins/" target="_self">varios plugins</a>. WordPress nos proporciona múltiples funcionalidades y opciones para documentar Tractis: ordenación de categorías, traducción de la Ayuda a distintos idiomas, control de cambios, etc.</p>
<h3>Tenemos grandes planes para mejorar el soporte en Tractis</h3>
<p>Este lanzamiento marca punto de inflexión. Por un lado, es el fin de un ciclo de desarrollo en el que nos hemos dedicado a solucionar las 3 peticiones más demandadas por nuestros usuarios: <a href="http://blog.negonation.com/es/mejoras-en-la-configuracion-de-permisos/">Mejoras en la configuración de permisos</a>, <a href="http://blog.negonation.com/es/mejoras-en-la-edicion-de-contratos-migracion-a-wymeditor/">Mejoras en el editor de contratos</a> y Mejoras en la ayuda. Por otro lado, es el comienzo de una <strong>nueva etapa en la que vamos a dedicar la mayor parte de nuestros esfuerzos a <span style="text-decoration: underline;">ayudar a utilizar Tractis</span></strong>.</p>
<p>Aunque por el momento veais que la nueva Ayuda tiene poco contenido, este irá aumentando rápidamente durante los próximos semanas, con incorporaciones prácticamente diarias. Ahora mismo, hay un poco de todo, preguntas <a href="https://www.tractis.com/help/?p=588&amp;language=es" target="_self">breves</a> y otras <a href="https://www.tractis.com/help/?p=504&amp;language=es" target="_self">bastante largas</a>. Estamos migrando todas las preguntas de la antigua página-listado así como otras páginas separadas (certificados aceptados, Tractis Score, legislación internacional, documentación de la API&#8230;). El objetivo es que TODA la información esté accesible desde un ÚNICO sitio.</p>
<p>El siguiente paso será incorporar contenido y herramientas nuevas: muchas más preguntas y secciones, videotutoriales, ayuda contextual dentro de la aplicación, foros donde los usuarios puedan solucionar dudas o sugerir mejoras, casos de uso de Tractis, ejemplos de implementación, código y librerías gratuítas, apertura de la API, etc.</p>
<p>Tu feedback siempre es bienvenido pero ahora, en esta nueva etapa, es un momento especialmente bueno para darlo. Solo tienes que pulsar el botón de &#8220;Feedback&#8221; en la portada de la Ayuda y decirnos <a href="http://www.tractis.com/help" target="_self"><strong>qué información echas a faltar y cómo podemos ponertelo fácil</strong></a> para que puedas utilizar Tractis con tus clientes, proveedores, empleados y partners.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/tractis-estrena-nueva-seccion-de-ayuda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mejoras en la edición de contratos: Migración a WymEditor</title>
		<link>http://blog.negonation.com/es/mejoras-en-la-edicion-de-contratos-migracion-a-wymeditor/</link>
		<comments>http://blog.negonation.com/es/mejoras-en-la-edicion-de-contratos-migracion-a-wymeditor/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 09:00:37 +0000</pubDate>
		<dc:creator>David Blanco</dc:creator>
				<category><![CDATA[Anuncios]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/?p=436</guid>
		<description><![CDATA[Hoy estrenamos múltiples mejoras en la edición de contratos y un nuevo motor de edición de contratos basado en el código de WymEditor. WYSIWYG vs WYSIWYM Tractis permite editar contratos online, directamente en el navegador web y de forma colaborativa con el resto de participantes.  La edición de texto online es clave para alcanzar la [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy estrenamos múltiples mejoras en la edición de contratos y un nuevo motor de edición de contratos basado en el código de <a href="http://www.wymeditor.org/en/" target="_blank">WymEditor</a>.</p>
<h3>WYSIWYG vs WYSIWYM</h3>
<p>Tractis permite editar contratos online, directamente en el navegador web y de forma colaborativa con el resto de participantes.  La edición de texto online es clave para alcanzar <a href="http://news.bbc.co.uk/1/hi/technology/4132752.stm" target="_blank">la read/write web que imaginó Tim Berners-Lee</a>. Durante los últimos años se ha avanzado bastante pero sigue sin ser un tema resuelto en internet. La edición de contratos es una de las áreas, junto con la <a href="http://blog.negonation.com/es/mejoras-en-la-configuracion-de-permisos/" target="_self">configuración de permisos</a> y la Ayuda -seguimos en ello-, donde más emails y peticiones nos habeis envíado.</p>
<p>Un comentario recurrente suele ser &#8220;<em>El editor de Tractis no permite cambiar el estilo del texto (tipo de fuente, tamaño, etc)</em>&#8221; y &#8220;<em>¿Por qué no utilizais TinyMCE Editor o el &#8216;editor X&#8217;?</em>&#8220;. Nuestra respuesta es que ese tipo de funcionalidades y editores corresponden a un enfoque de edición de texto <a href="http://en.wikipedia.org/wiki/WYSIWYG" target="_blank">WYSIWYG</a> o &#8220;What You See Is What You Get&#8221; (lo que ves es lo que consigues) mientras que en Tractis apostamos por un enfoque de edición de texto <a href="http://en.wikipedia.org/wiki/WYSIWYM" target="_blank">WYSIWYM</a> o &#8220;What You See Is What You <strong>Mean</strong>&#8221; (lo que ves es lo que quieres decir).</p>
<p>Microsoft Word nos ha (mal)acostumbrado a los editores WYSIWYG, es decir, a que el aspecto del documento en pantalla tenga que ser prácticamente igual al del documento una vez impreso. El problema de este enfoque es que la mayoría <strong>empleamos más tiempo jugueteando con el tipo de letra o el indentado de un párrafo que en producir contenido de calidad</strong>. El resultado es una productividad nefasta y gente que sigue pensando en términos de &#8220;papel&#8221; en vez de en &#8220;web&#8221;. Por el contrario, un editor WYSIWYM se olvida de la apariencia y obliga al usuario a concentrarse en el contenido y su estructura (p.ej: &#8220;<em>Esto es un título 1</em>&#8220;, &#8220;<em>Esto es un título 2</em>&#8220;, &#8220;<em>Esto es un párrafo</em>&#8220;, etc).</p>
<p>No nos malinterpreteis: WYSIWYM no está reñido en absoluto con la creación de preciosos documentos donde se cuida hasta el último detalle visual. La apariencia de tus contratos es muy importante y proyecta una imagen positiva o negativa de tí a la otra parte. Solo decimos que la creación y negociación de un contrato no es el momento apropiado de preocuparse por el estilo.</p>
<p>Las principales ventajas de este enfoque WYSYWYM en Tractis son:</p>
<ol>
<li>Al evitar distracciones de estilos durante el proceso de creación de texto, logramos una forma más productiva y eficiente de crear y negociar contratos.</li>
<li>En el futuro, la <a href="http://en.wikipedia.org/wiki/Separation_of_presentation_and_content" target="_self">separación absoluta de presentación y contenido</a> nos permitirá ofrecer numerosas plantillas de estilos de diseño profesional que podrás aplicar a tus contratos. Podrás reutilizar plantillas de estilos de terceros en la <a href="https://www.tractis.com/templates/">librería pública de Tractis</a>, probar distintos estilos en tus contratos con un solo clic o actualizar tu documentación corporativa en segundos (piensa en como <a href="http://www.csszengarden.com/" target="_blank">CSS Zen Garden</a> aplica distintos estilos CSS al mismo contenido).</li>
</ol>
<h3>Nuestra apuesta actual: editor semántico y código abierto</h3>
<p>Existen <a href="http://geniisoft.com/showcase.nsf/WebEditors" target="_blank">mutitud de editores</a> y opciones a considerar, ¿WYSIWYG o WYSIWYM?, ¿gratuíto o de pago?, ¿desarrollo propio o de terceros?, ¿de código abierto o propietario?, ¿javascript o flash?&#8230; Desde el principio decidimos no utilizar editores de pago ni lenguajes de programación cerrados (flash). Un breve repaso a la historia de Tractis muestra que hemos probado casi todas las combinaciones restantes y experimentado las ventajas y desventajas de cada una. Esta es la cronología:</p>
<ol>
<li><strong>2006: </strong><strong>WYSIWYG </strong><strong>+ desarrollo propio </strong><strong>+ código propietario</strong>: Durante gran parte de la Beta de Tractis, utilizamos un editor WYSWYG desarrollado íntegramente por nosotros. Tuvimos multitud de problemas de compatibilidad entre navegadores y el editor se volvía lento e inestable con documentos grandes. Nunca liberamos el código.</li>
<li><strong>Sept 2006: </strong><strong>WYSIWYG </strong><strong>+ desarrollo de terceros + código abierto</strong>: <a href="http://blog.negonation.com/es/tractis-estrena-un-nuevo-motor-de-edicion-de-contratos/" target="_self">Cambiamos a Dojo Edito</a>r, un editor compatible con la mayoría de navegadores cuyo desarrollo estaba liderado por el equipo de <a href="http://www.jot.com/" target="_blank">Jotspot</a>, entre otros. Dojo es un gran editor pero, en Julio 2007, decidimos <a href="http://www.456bereastreet.com/archive/200612/forget_wysiwyg_editors_use_wysiwym_instead/" target="_blank">apostar por un enfoque WYSIWYM</a>.</li>
<li><strong>Julio 2007: WYSIWYM + desarrollo propio + código abierto</strong>: Desarrollamos internamente &#8220;Protomean&#8221;, un editor WYSIWYM sencillo y mantenible, basado en <a href="http://www.prototypejs.org/" target="_blank">Prototype</a> y que reaprovechaba las mejores ideas de varios editores. El desarrollo corrió a cargo de <a href="http://choangalvez.nom.es/" target="_self">Choan Gálvez</a>, colaborador de Negonation. Tras su puesta en producción, <a href="http://code.google.com/p/protomean/" target="_blank">liberamos el código</a>. Protomean ha resultado ser un gran editor (<a href="http://blog.negonation.com/es/4%c2%ba-edicion-de-los-premios-glider-jose-gordo-se-convierte-en-glider-hacker-por-segunda-vez/" target="_blank">Choan recibió un Premio Glider por él</a>) pero, concentrados como estamos con Tractis, nunca lo promocionamos debidamente y el mantenimiento del código, corrección de bugs y compatibilidad con Safari probó ser una tarea demasiado ardua para un proyecto de una sola empresa.</li>
<li><strong>Agosto 2008: WYSIWYM + desarrollo de terceros + código abierto</strong>: Hoy anunciamos la migración a <a href="http://www.wymeditor.org/en/" target="_blank">WymEditor</a> como motor de edición de contratos en Tractis. A pesar de su corta edad, WymEditor es el primer editor web WYSIWYM y <a href="http://www.useit.com/alertbox/wysiwyg.html" target="_blank">un paso en la dirección adecuada</a>. WymEditor está realmente bien estructurado y es altamente parametrizable. Hemos podido añadir todas las modificaciones que necesitabamos sin tener que cambiar ni una sola linea del codigo del editor. Además, incluye un parser de xhtml que se encarga de sanitizar el código mientras escribes. Todo esto se traduce en un editor más sólido (sobre todo en el manejo de las listas) y en compatibilidad con mayor número de navegadores (¡ya es posible editar contratos en Safari!).</li>
</ol>
<p>Si el pasado sirve para predecir el futuro, todo apunta que este no es el final del camino, solo una iteración más. Quedan algunos bugs menores por pulir y tenemos planeadas muchas mejoras más (más botones en la barra de edición para eliminar scrolls innecesarios, &#8220;Guardar&#8221; con ajax y sin recarga de página, Autosaving, permalinks a nivel de párrafos, etc).</p>
<p>Para terminar, queremos aprovechar para agradeceros todo el feedback que nos estais envíando para mejorar Tractis. Que no decaiga.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/mejoras-en-la-edicion-de-contratos-migracion-a-wymeditor/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mejoras en la configuración de permisos</title>
		<link>http://blog.negonation.com/es/mejoras-en-la-configuracion-de-permisos/</link>
		<comments>http://blog.negonation.com/es/mejoras-en-la-configuracion-de-permisos/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 13:11:07 +0000</pubDate>
		<dc:creator>David Blanco</dc:creator>
				<category><![CDATA[Anuncios]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/?p=425</guid>
		<description><![CDATA[Hoy anunciamos varias mejoras en la configuración de permisos en contratos, un área de Tractis que necesitaba una revisión urgente. Cada letra cuenta Junto con las contínuas peticiones para mejorar la sección de Ayuda (estamos en ello), la mejora en la configuración de permisos en contratos ha sido uno de los feedbacks más habituales que [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy anunciamos varias mejoras en la configuración de permisos en contratos, un área de Tractis que necesitaba una revisión urgente.</p>
<h3>Cada letra cuenta</h3>
<p>Junto con las contínuas peticiones para mejorar la sección de Ayuda (estamos en ello), la mejora en la configuración de permisos en contratos ha sido uno de los feedbacks más habituales que hemos recibido. Y con razón. El copy anterior de la configuración de permisos era francamente malo:</p>
<p>Primero preguntabamos &#8220;<em>¿Quien puede acceder este contrato?</em>&#8221; y el usuario podía elegir entre 2 opciones bastantes crípticas y radicales: &#8220;Solo yo&#8221; y &#8220;Todo el mundo en Tractis&#8221;.</p>
<ul>
<li>&#8220;<em>Solo yo</em>&#8221; era la opción a elegir si querías crear un contrato privado. Sin embargo, el copy no indicaba esto. Debería haber sido algo más descriptivo, algo como &#8220;<em>Solo yo y las personas a las que invite</em>&#8220;.</li>
<li>&#8220;<em>Todo el mundo en Tractis</em>&#8221; era la opción si querías crear un contrato público.</li>
</ul>
<p>Esto ya era bastante malo pero lo peor aún estaba por llegar. Cuando preguntabamos cosas como &#8220;<em>¿Quienes pueden ver los participantes?</em>&#8220;, &#8220;<em>¿Quienes pueden ver las versiones?</em>&#8221; y &#8220;¿<em>Quienes pueden ver los comentarios?</em>&#8220;, dabamos al usuario la posibilidad de elegir entre dos opciones:</p>
<ul>
<li>&#8220;<em>Nadie</em>&#8220;.</li>
<li>&#8220;<em>Todo el mundo</em>&#8220;.</li>
</ul>
<p>Con ambas respuestas nos referíamos a quienes, <span style="text-decoration: underline;">de entre los que podían acceder al contrato</span>, podían ver participantes, versiones y comentarios&#8230;  pero ¡No lo explicabamos!. De nuevo, el copy debería haber sido más descriptivo, por ejemplo: &#8220;<em>Nadie, de los que pueden acceder, pueden ver los comentarios</em>&#8221; o &#8220;<em>Todos los que pueden acceder pueden ver las versiones</em>&#8220;.</p>
<p>Cuando los usuarios se enfrentaban a la opción aterradora de que &#8220;Todo el mundo&#8221; pudiese ver sus versiones o que &#8220;Todo el mundo&#8221; pudiese escribir comentarios en sus contratos, sobra decir que muchos elegían la opción &#8220;Nadie&#8221;, lo que provocaba más problemas. El usuario accedía al contrato, no veía el botón de participantes (ni el de versiones ni el de comentarios) y nos escribían diciendo &#8220;Tractis es genial pero ¿cómo demonios invito participantes al contrato?&#8221;.</p>
<p>Mal copy en la aplicación &gt; Decisiones equivocadas &gt; Más frustración &gt; Más solicitudes de soporte &gt; Más trabajo.</p>
<h3>Desfaciendo el entuerto</h3>
<p>A partir de ahora, la configuración de permisos en Tractis es mucho más sencilla y potente.</p>
<p><img class="size-full wp-image-427" style="vertical-align: baseline;" title="La configuración de permisos en contratos ahora es más sencilla y potente" src="http://blog.negonation.com/es/wp-content/uploads/2008/07/tractis-contract-permissions-spanish.gif" alt="" width="460" height="315" /></p>
<p><strong>Sencilla</strong> porque ahora el copy indica claramente la información que se pide al usuario:</p>
<ul>
<li>¿Quien puede acceder al contrato?</li>
<li>¿Qué recursos pueden utilizar?</li>
</ul>
<p><strong>Potente</strong> porque ahora podrás configurar más recursos del contrato (Participantes, Comentarios, Versiones y Firmas) y contarás con más opciones de configuración:</p>
<ul>
<li>Nadie</li>
<li>Solo mi equipo</li>
<li>Todos los equipos</li>
<li>Todo el mundo (opción solo disponible para contratos públicos).</li>
</ul>
<p>Esta no es la versión final (con vuestra ayuda seguiremos mejorando esta y otras partes de Tractis) pero, sin duda, supone una mejora sustancial con respecto a la situación anterior.</p>
<p>A modo de reflexión final, si Tractis fuese una autopista, da miedo pensar cuanta gente habrá muerto en esta curva hasta el día de hoy. Un ejemplo perfecto de que, en una aplicación web, el <a href="http://www.slideshare.net/mulegirl/copy-is-interface" target="_blank">copy es interface</a> y <a href="http://gettingreal.37signals.com/ch09_Copywriting_is_Interface_Design.php" target="_blank">cada letra cuenta</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/mejoras-en-la-configuracion-de-permisos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mejoras en la exportación de contratos</title>
		<link>http://blog.negonation.com/es/mejoras-en-la-exportacion-de-contratos/</link>
		<comments>http://blog.negonation.com/es/mejoras-en-la-exportacion-de-contratos/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 07:00:00 +0000</pubDate>
		<dc:creator>David García</dc:creator>
				<category><![CDATA[Anuncios]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/?p=411</guid>
		<description><![CDATA[En Tractis todo el proceso de negociación y firma se realiza sobre contratos escritos en XHTML 1.0, un formato ideal para la manipulación y edición de documentos en entornos web. Sin embargo, mucha gente necesita disponer de sus contratos en una variedad de formatos (pdf, word, texto plano&#8230;) para impresión, distribución, back-up, generación de informes [...]]]></description>
			<content:encoded><![CDATA[<p>En Tractis todo el proceso de negociación y firma se realiza sobre contratos escritos en XHTML 1.0, un formato ideal para la manipulación y edición de documentos en entornos web. Sin embargo, mucha gente necesita disponer de sus contratos en una variedad de formatos (pdf, word, texto plano&#8230;) para impresión, distribución, back-up, generación de informes o, simplemente, porque prefieren editarlos en entornos offline. Tractis incorpora una funcionalidad de importación y exportación de documentos que permite convertir documentos desde una variedad de formatos a XHTML y viceversa, de XHTML a Word, OpenOffice, texto plano, pdf y html, entre otros.</p>
<p>Desde el <a href="http://blog.negonation.com/es/nueva-funcionalidad-en-tractis-importacion-y-exportacion-de-plantillas-y-contratos/">lanzamiento de la importación y exportación de plantillas y contratos</a> en Octubre 2007, hemos venido sufriendo problemas en la prestación de esta funcionalidad, desde exportaciones a pdf, word,&#8230; extremadamente lentas a  <a href="http://twitter.com/mantero/statuses/851862129" target="_blank">caídas del servicio</a>. Esta semana hemos añadido varias mejoras, tanto en software como en infraestructura, que confíamos mejorarán sensiblemente la calidez, rapidez y estabilidad de importaciones y exportaciones.</p>
<p>Este post explica el &#8220;Antes&#8221; y el &#8220;Ahora&#8221; de la importación y exportación de contratos en Tractis; todo ello aderezado con consejos, pistas y enlaces interesantes para aquellos que necesiten montar una funcionalidad similar.</p>
<h3>Antes</h3>
<p>La funcionalidad de importación y exportación no es algo sencillo de implementar ya que hay que lidiar con las particularidades de los distintos formatos y las transformaciones implicadas en estas conversiones no son algo a tomar a broma. Como se trataba de un proceso complejo optamos por examinar las herramientas disponibles en el mercado, tanto open source como de pago, y llegamos a la conclusión de que la herramienta que mejor se adaptaba a nuestras necesidades era OpenOffice.</p>
<p>Optamos por emplear OpenOffice 2.2 (que permite su uso en modo server para conversión sin usar su IGU) como servicio core de conversión y jod-converter como libreria de acceso al servicio para poder dar el servicio de conversión como un servicio web creando un nuevo componente dentro de nuestra arquitectura <a href="http://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios" target="_blank">SOA</a>.</p>
<p>El problema era que OpenOffice 2.2 en modo server es terriblemente inestable y presentaba una colección de bugs enormes en la conversión de documentos que hacian muy incomodo su uso. Todo ello nos obligó utilizar trucos poco elegantes pero necesarios para poder prestar el servicio.</p>
<p>Para evitar las caidas disponiamos de un complejo sistema de watchdogs que cada vez que la instancia de OpenOffice moría las resucitaba &#8230; pero eso no es vida . Y como la suerte del open source es que, si algo no te gusta lo puedes cambiar, optamos por liarnos la manta a la cabeza y tirar por el camino salvaje.</p>
<h3>Ahora</h3>
<p>La gente de OpenOffice ha liberado recientemente la versión 2.3, mucho más estable que la 2.2 en modo server pero no lo bastante como para dar un servicio en un entorno de producción con garantias suficientes. Así que aplicamos un axioma de mi cosecha: &#8220;<em>si tus trabajadores se mueren con frecuencia&#8230; ponlos en cluster</em>&#8221; <img src='http://blog.negonation.com/es/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>A partir de esta simple premisa desarrollamos una ampliación de JodConverter. Esta ampliación permite tener un conjunto de <em>n</em> trabajadores y un algoritmo de asignación de trabajo mediante un algoritmo de <em>round robin</em> que permite que si un trabajador cae otro ocupe su lugar inmediatamente, sin que se pierda ninguna transacción. Además el propio JodConverter gestiona el ciclo de vida de los trabajadores reiniciándolos si no responden o arrancándolos si su proceso muere. Esto evita la necesidad de disponer de un watchdog externo para garantizar la disponibilidad de trabajadores.</p>
<p>Disponer de herramientas como OpenOffice o JodConverter es un regalo y es justo contribuir nuestra ampliación sobre JodConverter con sus creadores por si les interesa usarla&#8230; a repartir buen karma <img src='http://blog.negonation.com/es/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  .</p>
<p>Resumiendo, a todos los que hayáis padecido el problema de tener que implementar un sistema de conversión de documentos, espero que este post y el código compartido os sirva de ayuda. A nuestros clientes, esto es un pasito más para mejorar la calidad de Tractis. <strong>Ahora exportamos mejor, más rápido y con un servicio mucho más estable</strong> (congrats al creador del feed).</p>
<p>Y sin más demora, aquí os dejamos unos links de regalo: <a title="Jod Converter as Web Service" href="http://www.artofsolving.com/node/15">JodConverter como servicio web</a>, <a title="Open Office en modo servidor" href="http://www.artofsolving.com/node/10">Open Office como servidor</a> y como <a title="Instalar OpenOffice 2.3 en Ubuntu" href="http://ubuntuforums.org/archive/index.php/t-553410.html">instalar OpenOffice 2.3 en Ubuntu Feisty</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/mejoras-en-la-exportacion-de-contratos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

