<?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>Servicios y Soluciones de Negocio, Sistemas de Información, Desarrollo Web, Marketing Online &#187; Programacion</title>
	<atom:link href="http://www.esviable.es/category/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.esviable.es</link>
	<description>Servicios y Soluciones de Negocio, Sistemas de Información, Desarrollo Web, Marketing Online</description>
	<lastBuildDate>Sat, 22 May 2010 04:28:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Nueva versión de Xataface 1.2.4</title>
		<link>http://www.esviable.es/2010/05/22/nueva-version-de-xataface-1-2-4/</link>
		<comments>http://www.esviable.es/2010/05/22/nueva-version-de-xataface-1-2-4/#comments</comments>
		<pubDate>Sat, 22 May 2010 04:28:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Php]]></category>
		<category><![CDATA[backend]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[xataface]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=310</guid>
		<description><![CDATA[Ya podéis descargar la última versión de xataface, interesante framework para gestión de bases de datos, basado en php, mysql y smarty.
Me gustaría conocer cuales son las nuevas features de esta release, pero en la web del autor solo aparece este comentario:
&#8220;It has been a while since the last release of Xataface so I have [...]]]></description>
			<content:encoded><![CDATA[<p>Ya podéis descargar la última versión de xataface, interesante framework para gestión de bases de datos, basado en php, mysql y smarty.</p>
<p>Me gustaría conocer cuales son las nuevas features de esta release, pero en la web del autor solo aparece este comentario:<br />
&#8220;It has been a while since the last release of Xataface so I have released a bug fix release that includes all of the small changes that have accumulated over the past several months. This version includes better support for PHP 5.3 and fixes a lot of the small bugs and annoyances that have been pointed out in the forum.</p>
<p>There shouldn&#8217;t be any problem upgrading from 1.2.x as there aren&#8217;t any major changes here. Just stability improvements for the most part.&#8221;</p>
<p>Aprovechando el post, para todo aquel que tenga curiosidad por el funcionamiento de esta herramienta, describiré la instalación rapidamente:</p>
<ul>
<li>Descargamos la última release desde <a href="http://sourceforge.net/projects/dataface/files/">sourceforge</a></li>
<li>Damos permisos de escritura al directorio dataface/Dataface/templates_c para almacenar las plantillas compiladas</li>
<li>Verificamos que la instalación es correcta vía url http://tudominio.com/path/to/dataface/dataface_info.php</li>
<li>Ahora relacionamos la base de datos con xataface (es el momento de crear tu base de datos si no lo has hecho todavía)</li>
<li>Ejecuta el binario makesite que se encuentra en el directorio dataface:<br />
	       Uso: makesite: ./makesite app_path user:password@hostname/db_name dataface_url<br />
donde<br />
app_path -&gt; Ruta absoluta o relativa al directorio donde se encuentra la aplicación<br />
user -&gt; Usuario de mysql<br />
password -&gt; Password de mysql<br />
hostname -&gt; Nombre del host donde está la base de datos.<br />
db_name -&gt; Nombre de la base de datos.<br />
dataface_url -&gt; Url donde has instalado xataface</li>
</ul>
<p>Por ejemplo:</p>
<pre class="cpp">makesite ../Crm root:password@localhost/Crm /dataface
</pre>
<li>Ejecutando este comando crearíamos un sitio en .. /Crm (es decir, Crm como el directorio padre)<br />
La base de datos utilizada para este sitio está ubicado en localhost, y el nombre de la base de datos es Crm.</li>
<li>A continuación con este comando:
<pre class="cpp">./makesite ../Crm \root@localhost/Crm \http://localhost/tu_directorio/dataface
</pre>
</li>
<li>Crearemos nuestra aplicación en el directorio Crm que será accesible desde el navegador</li>
<p>¿Facil verdad?<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F05%2F22%2Fnueva-version-de-xataface-1-2-4%2F&amp;linkname=Nueva%20versi%C3%B3n%20de%20Xataface%201.2.4"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/05/22/nueva-version-de-xataface-1-2-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Proveedores y Subcontratación de Servicios</title>
		<link>http://www.esviable.es/2010/05/02/proveedores-y-subcontratacion-de-servicios/</link>
		<comments>http://www.esviable.es/2010/05/02/proveedores-y-subcontratacion-de-servicios/#comments</comments>
		<pubDate>Sun, 02 May 2010 17:09:05 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Outsorcing]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Proyectos y Viabilidad]]></category>
		<category><![CDATA[Recursos Humanos]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[emprendedores]]></category>
		<category><![CDATA[Proveedores]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[roi]]></category>
		<category><![CDATA[Startups]]></category>
		<category><![CDATA[Subcontratación de Servicios]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=302</guid>
		<description><![CDATA[Hola a tod@s

Hace tiempo que quería compartir mi perspectiva sobre el mercado de proveedores y la subcontratación de servicios.


Desde hace años, gracias a mi inconformidad y espíritu emprendedor, puedo decir que poseo ya unos cuantos años de experiencia en el mercado del desarrollo de aplicaciones web (php -symfony, cakephp-, ruby -rails-, asp)  y en la [...]]]></description>
			<content:encoded><![CDATA[<address>Hola a tod@s</address>
<address></address>
<address>Hace tiempo que quería compartir mi perspectiva sobre el mercado de proveedores y la subcontratación de servicios.</address>
<p></p>
<address></address>
<p>Desde hace años, gracias a mi inconformidad y espíritu emprendedor, puedo decir que poseo ya unos cuantos años de experiencia en el mercado del desarrollo de aplicaciones web (php -symfony, cakephp-, ruby -rails-, asp)  y en la prestación de servicios de outsorcing desempeñando tareas tanto de gestión de recursos humanos, gestión de proyectos, consultoria y programación en entornos que abarcan desde .Net, C# hasta Oracle/Pro*C/PlSql pasando por C,C++, Win32Api, etc</p>
<p>Todos estos entornos en los que he tenido la oportunidad de trabajar me han permitido tener una visión bastante amplia del mercado actual en lo que a desarrollo de software se refiere.</p>
<p>No ha sido un procedimiento fácil, como se suele decir, hay que estar en el momento oportuno y además de poder dar el perfil lo más importante es mantenerlo, crecer con tus clientes y cubrir sus necesidades en la medida de lo posible.</p>
<p>Como todo emprendedor sin financiación externa, me he dedicado a crear y desarrollar ideas de negocio mientras realizaba servicios de outsorcing y desarrollo que me permitiesen financiar mi actividad.</p>
<p><img title="More..." src="http://www.esviable.es/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /><span id="more-302"></span>Mi servicio orientado al cliente  está basado en el asesoramiento y creación de negocio sobre lo que se denomina web 2.0, innovación en servicios web y en resumen, hacer lo imposible por dar el mejor servicio a mis clientes aunque no haya podido convencerles de que su planteamiento no era el más idóneo en algunas ocasiones, algo que siempre me ha traído de cabeza como consultor y asesor tecnológico.</p>
<p>Después de esta pequeña introducción y siendo fieles al título de este post,  lo que he aprendido y quiero compartir con todos aquellos que quieran emprender sus negocios, startups en Internet, etc., a la hora de escoger un proveedor SON estas impresiones que bien pueden ser directrices básicas:</p>
<ul>
<li>Un proveedor debe ser capaz de llevar a cabo tus ideas, tu concepto de negocio, lo primero y más importante es que tengas la certeza de que si no es más inteligente que tú (algo que te puede llegar a frustrar)  garantice  fuera de análisis y diagramas conceptuales por contrato firmado  (para cubrirte las espaldas), que comprende tus objetivos y de que es capaz de llevar el proyecto a cabo.</li>
<li>Una vez que tu proveedor demuestra tener la capacidad conceptual, debe garantizar que es capaz de asumir los costes de desarrollo que conlleva el proyecto sin que estos tengan un impacto negativo en el desarrollo de tu idea.</li>
<li>Algo muy habitual hoy en día son los freelances y pequeños estudios que financian su día a día con los adelantos que obtienen de proyectos y que luego no realizan o demoran en el tiempo de forma indeterminada hasta que te devuelven el dinero, te dejan con el proyecto a medias, etc.</li>
</ul>
<p>Evidentemente para comenzar a trabajar en un proyecto tanto empresa como freelance quieren tener un avance.</p>
<ul>
<li>Se debe desconfiar si no se está en posesión de un contrato firmado ya que sin él, no existe un vínculo comercial que garantice la prestación del servicio y esto se puede volver en contra del cliente en determinados momentos.
<ul>
<li>Si un proveedor te da un presupuesto sin conocer todos los requisitos del proyecto, es decir:
<ul>
<li>Sin pedirte que contrastes la información que hayas facilitado con sus dudas.</li>
<li>Si solo le facilitas una descripción abierta y ya te da tarifa.</li>
<li>Si solo le das una referencia de otro negocio y te da un precio cerrado.</li>
<li>Simplemente, no facilita una confirmación del trabajo a realizar contrastando los objetivos</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>No debes valorar su oferta económica por buena que sea, ya que solo está demostrando inexperiencia en la falta de definición en lo que se denomina ámbito del proyecto, o por el contrario, su planteamiento es justificarse en la falta de definición del proyecto para poder escudarse en caso de no querer llevarlo a cabo al 100%, lo que supone directamente un alto riesgo para el  proyecto.</p>
<p>Evidentemente si has desarrollado además del plan de negocio, un plan de marketing apoyado en el soporte de la Web, tu provisión  de ingresos puede verse inclinada a la baja con el correspondiente prejuicio que esto conlleva para tu financiación.</p>
<p>Básicamente, el concepto es que lo barato sale caro, se ha de valorar la experiencia y contrastarla.<br />
Puedes encontrar amateurs baratos con ganas de hacerse valer, profesionales que no dan a basto pero cogen más proyectos sin dar garantías &#8230;<br />
Cuando publicas una oferta de empleo con el objetivo de llevar a cabo tu proyecto debes exigir y deben demostrar:</p>
<ul>
<li>Profesionalmente:
<ul>
<li>Cumplir los tiempos definidos en el plan de proyecto</li>
</ul>
<ul>
<li>Seguimiento semanal de tareas</li>
</ul>
<ul>
<li>Dedicación total de los recursos destinados al proyecto</li>
</ul>
<ul>
<li>Confidencialidad</li>
</ul>
<ul>
<li>Garantía</li>
</ul>
</li>
<li>Técnicamente:
<ul>
<li>Accesibilidad</li>
</ul>
<ul>
<li>Usabilidad</li>
</ul>
<ul>
<li>Rendimiento</li>
</ul>
</li>
</ul>
<p>Reconozco que este pequeño artículo es solo la punta del iceberg, se podría profundizar mucho más en estos y otros aspectos&#8230;</p>
<p>Por lo que os invito a completar con vuestros comentarios este post <img src='http://www.esviable.es/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F05%2F02%2Fproveedores-y-subcontratacion-de-servicios%2F&amp;linkname=Proveedores%20y%20Subcontrataci%C3%B3n%20de%20Servicios"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/05/02/proveedores-y-subcontratacion-de-servicios/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Media Player basado en html5 y jQuery (Open Source)</title>
		<link>http://www.esviable.es/2010/04/26/media-player-basado-en-html5-y-jquery-open-source/</link>
		<comments>http://www.esviable.es/2010/04/26/media-player-basado-en-html5-y-jquery-open-source/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 17:46:21 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[player]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=286</guid>
		<description><![CDATA[OsmPlayer se define como una alternativa al uso de players flash en tus webs a través de una herramienta basada en jQuery y html5.
Las principales características que podemos encontrar en este producto son las siguientes:

Se trata de un proyecto open source
Está escrito bajo el framework jQuery y utiliza el standar html5
Utiliza el sistema de temas [...]]]></description>
			<content:encoded><![CDATA[<p>OsmPlayer se define como una alternativa al uso de players flash en tus webs a través de una herramienta basada en jQuery y html5.</p>
<p>Las principales características que podemos encontrar en este producto son las siguientes:</p>
<ul>
<li>Se trata de un proyecto open source</li>
<li>Está escrito bajo el framework jQuery y utiliza el standar html5</li>
<li>Utiliza el sistema de temas ThemeRoller</li>
<li>Tiene soporte para listas</li>
<li>Dispone de comunicación entre players</li>
<li>Ofrece una sencilla integración con Vimeo y YouTube</li>
<li>Dispone de fallback Flash para los medios de comunicación no estándar</li>
</ul>
<p><span id="more-286"></span>No encuentro el momento para implementarlo en el próximo proyecto en el que sea viable o hacer unas pruebas de rendimiento.</p>
<p>Podéis descargarlo en http://github.com/mediafront/osmplayer/archives/v0.8<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F04%2F26%2Fmedia-player-basado-en-html5-y-jquery-open-source%2F&amp;linkname=Media%20Player%20basado%20en%20html5%20y%20jQuery%20%28Open%20Source%29"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/04/26/media-player-basado-en-html5-y-jquery-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabajando con Xataface &#8211; Gestores de Contenidos</title>
		<link>http://www.esviable.es/2010/04/11/trabajando-con-xataface-gestores-de-contenidos/</link>
		<comments>http://www.esviable.es/2010/04/11/trabajando-con-xataface-gestores-de-contenidos/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 04:07:03 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Web Php]]></category>
		<category><![CDATA[backend]]></category>
		<category><![CDATA[gestores de contenidos]]></category>
		<category><![CDATA[smarty]]></category>
		<category><![CDATA[xataface]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=259</guid>
		<description><![CDATA[Introducción
A la hora de realizar una aplicación web con su gestor de contenidos, normalmente contamos con las opciones de usar un framework de desarrollo que nos ayude en la generación del backend, como pueden ser:

Symfony
CakePHP
CodeIgniter
etc

Utilizar un cms en el que integrar el frontend con una parametrización del backend utilizando:

WordPress
Joomla
Modx
Drupal
etc

Y también podemos utilizar Xataface, un potente [...]]]></description>
			<content:encoded><![CDATA[<p><code><strong>Introducción</strong></code><br />
<code>A la hora de realizar una aplicación web con su gestor de contenidos, normalmente contamos con las opciones de usar un framework de desarrollo que nos ayude en la generación del backend, como pueden ser:</code></p>
<ul>
<li><span style="font-family: monospace;">Symfony</span></li>
<li><span style="font-family: monospace;">CakePHP</span></li>
<li><span style="font-family: monospace;">CodeIgniter</span></li>
<li><span style="font-family: monospace;">etc</span></li>
</ul>
<p><span style="font-family: monospace;">Utilizar un cms en el que integrar el frontend con una parametrización del backend utilizando:</span></p>
<ul>
<li><span style="font-family: monospace;">WordPress</span></li>
<li><span style="font-family: monospace;">Joomla</span></li>
<li><span style="font-family: monospace;">Modx</span></li>
<li><span style="font-family: monospace;">Drupal</span></li>
<li><span style="font-family: monospace;">etc</span></li>
</ul>
<p><code>Y también podemos utilizar Xataface, un potente sistema de gestión de de bases de datos.</code><br />
<code>Siguiendo unos pequeños pasos podemos generar un backend que nos va a permitir realizar todas las operaciones básicas (altas, bajas y modificaciones) sobre nuestra base de datos.</code><br />
<code><span id="more-259"></span>Hace unos años conocí el producto pero no lo tomé como una opción a tener en cuenta a la hora de realizar un backend para una Web.</code><br />
<span style="font-family: monospace;">Uno de mis clientes me lo propuso como opción para realizar la administración de los contenidos de su web hace unos meses y después de estudiarlo comprobé que era una solución viable.</span><br />
<span style="font-family: monospace;">Para empezar a trabajar tan solo debemos editar el fichero de configuración general, conf.ini y empezar a customizar:</span><br />
<span style="font-family: monospace;">En conf.ini</span><br />
<span style="font-family: monospace;">[_database]</span><br />
<code> host=localhost<br />
name=mydb<br />
user=me<br />
password=mypass</code></p>
<p><code> </code></p>
<p><code>[_tables]<br />
; Listamos las tablas que serán accesibles vía menú<br />
usuario=NombreTablaUsuarios<br />
news=NombreTableContenidos</code><br />
<code>Con estos datos ya nos mostrará un backend con un ABM completo</code><br />
<span style="font-family: monospace;"><strong>Características</strong></span><br />
<span style="font-family: monospace;"><br />
Con tan sólo 4 líneas de código PHP, podremos disponer de una aplicación web que permita la gestión de tu base de datos.<br />
Ofrece una intuitiva interfaz de usuario &#8211; la aplicación por defecto es consistente y fácil de usar.<br />
Hay un menú &#8220;tablas&#8221;, para seleccionar una tabla y cada tabla tiene accesos de menu a &#8220;detalles&#8221;, &#8220;lista&#8221;, y &#8220;encontrar&#8221;.<br />
Ofrece potentes opciones de configuración &#8211; Puedes configurar los detalles de la aplicación (como tipos widget) usando archivos de configuración.<br />
Extensible &#8211; Puedes modificar tu aplicación según tus necesidades utilizando los archivos de configuración y las clases PHP &#8220;delegated&#8221;.<br />
Triggers &#8211; Puedes agregar una función que se llame después se inserta un registro desde PHP.<br />
Permisos &#8211; Dispone de un potente sistema de permisos.<br />
Autenticación &#8211; Integrada y de facil puesta en funcionamiento, gestiona login y cierre de sesión.<br />
Relaciones &#8211; Indicando a Xataface cómo están relacionadas las tablas entre sí obtendrás una mayor funcionalidad lógica para la gestión de los datos.<br />
Customizable &#8211; Xataface utiliza el motor de plantillas Smarty como base y lo amplía con algunas nuevas características tales como plantillas extensibles y apoyo temático.<br />
Modular &#8211; Dispone de varios módulos que permiten extender las características de Xataface y una API simple para escribir sus propios módulos.</span></p>
<p><strong>Edición</strong><br />
Generación automatica de Formularios permitiendo agregar nuevos registros y editar los registros existentes.<br />
Widgets &#8211; Dispone de soporte, incluyendo widgets para campos de texto, áreas de texto, casillas de verificación, listas de selección, editores de html, redes,<br />
carga de archivos, y mucho más.<br />
Permite personalizar formularios &#8211; utilizando archivos de configuración y las clases &#8220;delegated&#8221;.<br />
Personalizable &#8211; Permite mostrar diferentes vistas a usuarios en función de sus permisos y preferencias.<br />
Añadir registros relacionados &#8211; Insertar registros y seguimiento automático de sus relaciones con otras tablas.<br />
Data Grid Editable- Administra tus datos como una hoja de cálculo utilizando el módulo de DataGrid.<br />
Copiar &#8211; Copia conjuntos de registros.<br />
Actualización conjunto encontrado &#8211; Actualización de múltiples registros con un click.<br />
Subir archivos &#8211; Soporte para subida de archivos, ya sea en un campo BLOB o en el sistema de archivos.<br />
Eliminar &#8211; Permite borrar un registro  o eliminar el conjunto de registros encontrado actual.<br />
<span style="font-family: monospace;"><br />
<strong>Búsqueda</strong><br />
Buscar de Forma automática &#8211; Busca en todos los campos de todas las tablas<br />
Búsquedas por rango &#8211; Búsqueda de registros que coincidan con los valores de un rango determinado (por ejemplo, encontrar todas las personas entre las edades de 20 y 30).<br />
Búsqueda exactas &#8211; Búsqueda de coincidencias exactas.<br />
Partial Matching &#8211; Búsqueda por campos que contienen una frase de palabras clave.<br />
Búsqueda en varios campos &#8211; Siempre hay un campo de búsqueda simple y accesible que busca en todos los campos de la tabla actual.<br />
Por ejemplo una búsqueda de &#8220;Tom&#8221; que coincide con algún registro de la tabla actual que contiene la palabra &#8220;Tom&#8221; en cualquiera de sus columnas.<br />
Registro relacionado Proveedores &#8211; Encuentra registros que contienen los registros relacionados que coinciden con un término de búsqueda.<br />
(Por ejemplo, encontrar personas que recibieron una &#8220;A&#8221; en un curso particular).<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Exportar datos</strong><br />
RSS &#8211; Soporte para RSS 1.0, 2.0 y Atom de cualquier conjunto encontrado.<br />
XML &#8211; Exportar cualquier conjunto encontrado como XML para que los datos se puedan intercambiar con otros productos (por ejemplo, las suites de edición electrónica).<br />
CSV &#8211; Exportar cualquier conjunto encontrado a CSV (valores separados por comas de valor) para abrir en una aplicación de hoja de cálculo como Excel.<br />
JSON &#8211; Exportar cualquier conjunto encontrado a JSON. Esta característica hace Xataface una buena opción para servir a la próxima generación de aplicaciones Web 2.0 AJAX.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Internacionalización I18N</strong><br />
Proporciona los archivos de idioma para la traducción de todas las cadenas y las etiquetas en la aplicación.<br />
Traducción de datos dinámicos &#8211; Xataface permite internacionalizar sus datos de bases de datos existentes sin tener que cambiar la estructura de su base de datos.<br />
Plantillas &#8211; Incluye una traducción () Smarty etiqueta para plantillas para traducir fácilmente plantillas de texto.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Importando datos</strong><br />
Filtro de importación API &#8211; Utilizando clases &#8220;delegated&#8221;, es fácil definir un filtro de importación para importar cualquier tipo de datos en la base de datos.<br />
Vista previa del usuario &#8211; El usuario puede ver los datos importados antes de confirmar que quiere importar.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Historico</strong><br />
Historico Opcional &#8211; Si habilitas el histórico de movimientos, todos los cambios realizados sobre los datos se registran.<br />
Deshacer / Rehacer &#8211; Permite volver fácilmente a una versión anterior de un registro.<br />
Ver Diffs &#8211; Ver las diferencias y cambios entre las versiones de archivos, similar a un wiki.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>El almacenamiento en caché</strong><br />
memoria caché de salida &#8211; Soporta memoria caché de salida de las páginas para mejorar el rendimiento. La caché se actualiza automáticamente cada vez que se realizan cambios en las tablas que se utilizan para generar una página.<br />
Apoyo de APC &#8211; Si está instalado APC (Cache PHP alternativa) , Xataface automáticamente la utilizará para almacenar la información de configuración de caché de la tabla. Esto tiende a aumentar el rendimiento en un 20%.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Seguridad</strong><br />
Los permisos están perfectamente delimitados &#8211; Permite definir permisos sobre toda la aplicación, a nivel de tabla, de registro, o por campo.<br />
permisos basada en roles &#8211; Permite la definición de roles (conjuntos de permisos que se pueden asignar a los usuarios).<br />
Permisos en modo extensible &#8211; Podemos definir nuestros propios permisos y roles, ampliando las funciones existentes para nuestra aplicación.<br />
Basadp en la Autenticación &#8211; Es fácil de configurar el inicio de sesión / cierre de sesión para la aplicación.<br />
Cifrado de contraseñas &#8211; Es compatible con la mayoría de los cifrados contraseña estándar, como MD5, SHA1, y la contraseña de MySQL.<br />
Autenticación extensible &#8211; Facil creación de plugins de autenticación en caso de que se quiera implementar una autenticación personalizada.<br />
LDAP &#8211; módulo de autenticación LDAP disponible.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Relaciones</strong><br />
Potentes Relaciones con los Modelos &#8211; Es fácil definir las relaciones entre las tablas usando archivos de configuración. Sintaxis simple y resultados de gran alcance.<br />
Añadir un nuevo registro relacionado &#8211; Crear un nuevo registro y agregarlo a la relación de un registro de los padres, al mismo tiempo.<br />
(Por ejemplo, crear un nuevo registro &#8220;curso&#8221; y agregarlo a la lista de un profesor de los cursos impartidos).<br />
Añadir el registro existente a sus relacionados &#8211; Permite añadir un registro existente a la relación de un registro de los padres.<br />
(Por ejemplo, añada el récord del campo a la lista existente de un profesor de los cursos impartidos).<br />
Eliminar registro relacionado &#8211; Quitar un registro de una relación.<br />
(Por ejemplo, eliminar un récord del campo de la lista de un profesor de los cursos impartidos).<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>API</strong><br />
Xataface incluye una potente API que permite trabajar más eficientemente con la base de datos.<br />
Objetos de datos &#8211; Proporciona una API sencilla para trabajar con los registros de base de datos. Buscar, cargar, guardar, editar y eliminar registros compatibles.<br />
<strong><br />
</strong></span><br />
<span style="font-family: monospace;"><strong>Plantillas</strong><br />
Template &#8211; Xataface utiliza el motor de plantillas Smarty como base.<br />
Herencia de Plantillas &#8211; Se pueden crear plantillas que heredan de otras plantillas y reemplazar el contenido especificado en &#8220;slots&#8221; de la plantilla original.<br />
Esto aumenta drásticamente la reutilización de las plantillas y la productividad de desarrollo.<br />
Asistencia en Cascada &#8211; Todo el sistema de plantillas se almacenan en el directorio de plantillas Dataface.<br />
La aplicación puede tener su propio directorio de plantillas donde se pueden colocar plantillas para anular un sistema de plantillas.<br />
Todas las partes del sistema se puede reemplazar sin modificar el template original con plantillas propias.<br />
</span><br />
<span style="font-family: monospace;">Todo esto, además de otras características que podéis encontrar en la web del proyecto<br />
Una vez superada la curva de aprendizaje, podéis desarrollar potentes backends con pocas horas de trabajo</span><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F04%2F11%2Ftrabajando-con-xataface-gestores-de-contenidos%2F&amp;linkname=Trabajando%20con%20Xataface%20%26%238211%3B%20Gestores%20de%20Contenidos"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/04/11/trabajando-con-xataface-gestores-de-contenidos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Reemplazando texto con Cufon</title>
		<link>http://www.esviable.es/2010/04/11/reemplazar-texto-con-cufon/</link>
		<comments>http://www.esviable.es/2010/04/11/reemplazar-texto-con-cufon/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 02:33:38 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[cufon]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[sifr]]></category>
		<category><![CDATA[vml]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=256</guid>
		<description><![CDATA[Cufón es una librería javascript que permite reemplazar el tipo de letra (fuente) que por defecto usan los navegadores.
Caso práctico:
Probablemente la característica CSS más requerida por los diseñadores es la posibilidad de personalizar las fuentes de los sitios web. Actualmente la única forma real de hacer esto es confiar en Flash, ya sea construyendo todo el sitio con [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://github.com/sorccu/cufon/tree/master" target="_blank">Cufón</a> es una librería javascript que permite reemplazar el tipo de letra (fuente) que por defecto usan los navegadores.</p>
<p>Caso práctico:</p>
<p>Probablemente la característica CSS más requerida por los diseñadores es la posibilidad de <strong>personalizar las fuentes</strong> de los sitios web. Actualmente la única forma real de hacer esto es confiar en Flash, ya sea construyendo todo el sitio con este programa o <strong>utilizando el script sIFR</strong>.<span id="more-256"></span></p>
<p>Cufon es una interface web que reemplazar a sIFR, evitando tener que utilizar software de propietario y optando, en su lugar, por <strong>canvas/VML</strong> para lograr la misma meta.</p>
<p>Técnicamente, Cufón es una interface web que crea una fuente SVG partiendo de la fuente de tu tipografía utilizando un renderizador JavaScript.</p>
<p>Podéis ver un ejemplo de cufon trabajando en uno de los últimos proyectos que he realizado con esta libreria:  <a href="www.wordlab.es">www.wordlab.es</a></p>
<p>Ventajas de Cufón</p>
<ul>
<li><strong>No se necesita ningún plugin:</strong> Todo lo necesario para utilizar Cufón ya está disponible por defecto en el navegador de tus visitantes. Esto se debe a que en lugar de requerir Flash, Cufón se basa en JavaScript.</li>
<li><strong>Compatibilidad:</strong> Funciona en IE6, 7, 8 Firefox y Safari 3.</li>
<li><strong>Es fácil de utilizar:</strong> Se necesita escasa o directamente ninguna configuración.</li>
<li><strong>Es verdaderamente rápido:</strong> Carga casi instantáneamente sin tener que soportar el “parpadeo” que usualmente se experimenta con sIFR.</li>
</ul>
<p>Ahora las cuestiones que tendremos que juzgar –con nuestro criterio personal–, son las que en su momento se analizarían sobre sIFR:</p>
<p><strong>Accesibilidad: </strong></p>
<p><strong><span style="font-weight: normal;">Cufon de cara al posicionamiento (seo) de nuestros contenidos, es totalmente válido interprentando nuestros textos como xhtml válido</span></strong></p>
<p><strong>Usabilidad: </strong></p>
<p><strong></strong>Una vez cargadas las librerías solo tendremos que declarar la función javascript que on body load realice la conversión con unas líneas de código.</p>
<p>Reemplazando con cufon h1 y h2 de nuestra página cargada</p>
<p>[script type="text/javascript"]<br />
Cufon.replace(&#8216;h1&#8242;);<br />
Cufon.replace(&#8216;h2&#8242;);<br />
[/script]</p>
<p><strong>Performance:</strong></p>
<p>Cufon es una herramienta javascript que sobrecarga en cierta medida el frontend. En función de la capacidad de nuestro servidor, puede ser muy útil para convertir menus, titulares, contenidos destacados, pero en función del volumen de los contenidos que tenga una web puede ralentizar su carga por lo que es aconsejable realizar unas pruebas de rendimiento previamente.</p>
<p><strong>Conclusiones:</strong></p>
<p>De cara al diseñador: permite ser fiel al diseño original, mantener su creatividad sin tener que ajustarse a los patrones de fuentes predefinidas que soportan nuestros equipos.</p>
<p>De cara al programador: permite una fácil integración de fuentes evitando tener que usar sIFR, freefonts, etc</p>
<p>De cara al usuario: establece la comunicación que deseamos para nuestra aplicación sin tener que contar con fuentes auxiliares, siendo fieles al diseño y a la imagen que se quiere transmitir<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F04%2F11%2Freemplazar-texto-con-cufon%2F&amp;linkname=Reemplazando%20texto%20con%20Cufon"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/04/11/reemplazar-texto-con-cufon/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ejecutar Procedimientos Almacenados con Symfony y Doctrine</title>
		<link>http://www.esviable.es/2010/04/08/ejecutar-procedimientos-almacenados-con-symfony-y-doctrine/</link>
		<comments>http://www.esviable.es/2010/04/08/ejecutar-procedimientos-almacenados-con-symfony-y-doctrine/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 21:16:38 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Web Php]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[procedimiento almacenado]]></category>
		<category><![CDATA[procedure]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=235</guid>
		<description><![CDATA[En muchos proyectos que parten de cero, se pueden utilizar alternativas al uso de procedures.
Pero en ocasiones, nos encontramos con modelos de datos en producción que son usados por aplicaciones cliente servidor, web que no podemos modificar lo que nos lleva a utilizar los recursos disponibles y adaptarnos lo mejor posible a la arquitectura y [...]]]></description>
			<content:encoded><![CDATA[<p>En muchos proyectos que parten de cero, se pueden utilizar alternativas al uso de procedures.<br />
Pero en ocasiones, nos encontramos con modelos de datos en producción que son usados por aplicaciones cliente servidor, web que no podemos modificar lo que nos lleva a utilizar los recursos disponibles y adaptarnos lo mejor posible a la arquitectura y estructura que tiene el cliente.</p>
<p>Una sencilla forma de ejecutar un procedimiento almacenado con symfony y orm doctrine sería esta:</p>
<pre name='code' class="php">
    $name_proc = 'Nombre_Procedimiento';
    $dsn = 'mssql:dbname=DatabaseName;host=Servidor';
    $user = 'guest';
    $password = '';

    try{
	    $dbh = new PDO($dsn, $user, $password);
	    $conn=Doctrine_Manager::getInstance()-&gt;getCurrentConnection() ;
	    $conn-&gt;prepare($name_proc);
            $q= $conn-&gt;fetchAll($name_proc,array(10));
     }
     catch (PDOException $e){
         throw new sfDatabaseException(sprintf('PDOException was thrown when trying to manipulate session data. Message: %s', $e-&gt;getMessage()));
      }
</pre>
<p>Este ejemplo ejecuta un procedimiento almacenado sobre Sql Server, con cambiar el dsn se podría ejecutar en MySql 5+</p>
<p>Espero que haya sido útil <img src='http://www.esviable.es/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F04%2F08%2Fejecutar-procedimientos-almacenados-con-symfony-y-doctrine%2F&amp;linkname=Ejecutar%20Procedimientos%20Almacenados%20con%20Symfony%20y%20Doctrine"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/04/08/ejecutar-procedimientos-almacenados-con-symfony-y-doctrine/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Howto Build a Perfect Cube / Construir un cubo perfecto &#8211; python</title>
		<link>http://www.esviable.es/2010/03/19/howto-build-a-perfect-cube-construir-un-cubo-perfecto-python/</link>
		<comments>http://www.esviable.es/2010/03/19/howto-build-a-perfect-cube-construir-un-cubo-perfecto-python/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 02:19:44 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[Programacion]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=217</guid>
		<description><![CDATA[Hola compañer@s
Estaba dándole vueltas a como construir un cubo perfecto en python y bueno, partiendo de la teoria:
y=x^3
calculo su inversa:
x=y^3
log x = log y^3
3*log y = log x
log y = log x^(1/3)
y= x^(1/3)
Esta es mi versión simplificada que comparto con vosotr@s:

# -*- coding: utf-8 -*-

def validate_cube(value):
   base = int(round(value**(1.0/3), 0))
   return [...]]]></description>
			<content:encoded><![CDATA[<p>Hola compañer@s</p>
<p>Estaba dándole vueltas a como construir un cubo perfecto en python y bueno, partiendo de la teoria:<br />
y=x^3<br />
calculo su inversa:<br />
x=y^3<br />
log x = log y^3<br />
3*log y = log x<br />
log y = log x^(1/3)<br />
y= x^(1/3)</p>
<p>Esta es mi versión simplificada que comparto con vosotr@s:</p>
<pre name="code" class="python">
# -*- coding: utf-8 -*-

def validate_cube(value):
   base = int(round(value**(1.0/3), 0))
   return (base**3 == value, base)

if __name__ == '__main__':
   ok, base = validate_cube(input('Número a calcular si es cubo perfecto: '))
   if (ok):
       print 'Perfect cube of:', base
   else:
       print 'Not perfect cube'
</pre>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F03%2F19%2Fhowto-build-a-perfect-cube-construir-un-cubo-perfecto-python%2F&amp;linkname=Howto%20Build%20a%20Perfect%20Cube%20%2F%20Construir%20un%20cubo%20perfecto%20%26%238211%3B%20python"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/03/19/howto-build-a-perfect-cube-construir-un-cubo-perfecto-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Envío de email con sendmail y golang</title>
		<link>http://www.esviable.es/2010/03/16/envio-de-email-con-sendmail-y-golang/</link>
		<comments>http://www.esviable.es/2010/03/16/envio-de-email-con-sendmail-y-golang/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 07:01:14 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[Go Language]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[golang]]></category>
		<category><![CDATA[sendmail]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=213</guid>
		<description><![CDATA[Con este pequeña utilidad se podrá realizar el envío de emails mediante golang y sendmail

import (
  "os"
  "exec"
  "fmt"
  "io"
)

func SendEmail() {
  argv := []string {"sendmail","-t"}

  cmd, err := exec.LookPath(argv[0])
  if err != nil {
    fatal("exec %s: %s", argv[0], err)
  }
  r,w,err := [...]]]></description>
			<content:encoded><![CDATA[<p>Con este pequeña utilidad se podrá realizar el envío de emails mediante golang y sendmail</p>
<pre name="code" class="cpp">
import (
  "os"
  "exec"
  "fmt"
  "io"
)

func SendEmail() {
  argv := []string {"sendmail","-t"}

  cmd, err := exec.LookPath(argv[0])
  if err != nil {
    fatal("exec %s: %s", argv[0], err)
  }
  r,w,err := os.Pipe()
  if err !=nil {
    fatal("%v",err)
  }
  pid, err := os.ForkExec(cmd,argv,os.Environ(), "", []*os.File{r, os.Stdout, os.Stderr})
  if err != nil {
    fatal("%s", err)
  }
  input,err := os.Open("myEmail.txt", os.O_RDONLY, 0666)
  _, err = io.Copy(w, input)
  if err != nil {
    fatal("%v",err)
  }
  w.Close()
  os.Wait(pid, 0)
}

// Control de errores
func fatal(msg string, args ...interface{}) {
    fmt.Fprintf(os.Stderr, msg+"\n", args)
    os.Exit(2)
}
</pre>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F03%2F16%2Fenvio-de-email-con-sendmail-y-golang%2F&amp;linkname=Env%C3%ADo%20de%20email%20con%20sendmail%20y%20golang"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/03/16/envio-de-email-con-sendmail-y-golang/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CouchDB Api para Go Language</title>
		<link>http://www.esviable.es/2010/03/08/couchdb-api-para-go-language/</link>
		<comments>http://www.esviable.es/2010/03/08/couchdb-api-para-go-language/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 19:34:19 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[Go Language]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[nosql]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=184</guid>
		<description><![CDATA[Peter Bourgon, ha desarrollado una API para Go Language que nos permite trabajar con CouchDB.
Para los que no conozcan CouchDB, podemos resumirlo como &#8220;una base de datos documental sin &#8216;esquema&#8217;, consultable al estilo MapReduce, accesible por REST y con una funcionalidad de replicación integrada&#8221;.
Primeros Pasos:
//Primero creamos un objeto database para acceder a nuestra bd:
db, err := couch.NewDatabase("127.0.0.1", [...]]]></description>
			<content:encoded><![CDATA[<p>Peter Bourgon, ha desarrollado una API para Go Language que nos permite trabajar con CouchDB.</p>
<p>Para los que no conozcan CouchDB, podemos resumirlo como &#8220;una base de datos documental sin &#8216;esquema&#8217;, consultable al estilo <a href="http://es.wikipedia.org/wiki/MapReduce">MapReduce</a>, accesible por <a href="http://www.alexpuig.es/desarrollo-apis-utilizando-rest-392765">REST</a> y con una funcionalidad de replicación integrada&#8221;.</p>
<h3>Primeros Pasos:</h3>
<pre name="code" class="cpp">//Primero creamos un objeto database para acceder a nuestra bd:
db, err := couch.NewDatabase("127.0.0.1", "5984", "databasename")</pre>
<div><img title="More..." src="http://www.esviable.es/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /><span id="more-184"></span></div>
<pre name="code" class="cpp">//El documento CouchDb es representado por esta estructura Go Languaje:

type Record struct {
Type     string
Count    uint64
Elements []string
MyMap    map[string]string
}
//Métodos principales:
//- Insertar documentos
r := Record{...}
id, rev, err := db.Insert(r)
//- Recuperarlos por ID
r := new(Record)
rev, err := db.Retrieve(id, r)
//- Editar
func (p Database) Edit(d interface{}) (string, os.Error)
- Borrar
func (p Database) Delete(id, rev string) os.Error
// - Consulta por ID
func (p Database) QueryByView(view, key string) []string</pre>
<p>Podéis acceder al código desde <a href="http://code.google.com/p/couch-go/">http://code.google.com/p/couch-go/</a></p>
<p>Si tenéis mercurial instalado podéis hacer una copia del repositorio: hg clone https://couch-go.googlecode.com/hg/ couch-go</p>
<p>A disfrutar!<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F03%2F08%2Fcouchdb-api-para-go-language%2F&amp;linkname=CouchDB%20Api%20para%20Go%20Language"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/03/08/couchdb-api-para-go-language/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Memory Profiling Go Languaje</title>
		<link>http://www.esviable.es/2010/02/27/memory-profiling-go-languaje/</link>
		<comments>http://www.esviable.es/2010/02/27/memory-profiling-go-languaje/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 08:46:11 +0000</pubDate>
		<dc:creator>Efren</dc:creator>
				<category><![CDATA[Go Language]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://www.esviable.es/?p=178</guid>
		<description><![CDATA[If you are trying to debug a memory leak in your Go application, and need a way to determine which type is taking the most memory I.E a sorted list of (object type, total instances, total memory).
Runtime.MemStats doesn&#8217;t give details about the type, and goprof doesn&#8217;t seem to do memory profiling.
At this moment, the currente [...]]]></description>
			<content:encoded><![CDATA[<p>If you are trying to debug a memory leak in your Go application, and need a way to determine which type is taking the most memory I.E a sorted list of (object type, total instances, total memory).<br />
Runtime.MemStats doesn&#8217;t give details about the type, and goprof doesn&#8217;t seem to do memory profiling.</p>
<p>At this moment, the currente memory allocator only keeps track of whether or not the type can<br />
contain a pointer<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.esviable.es%2F2010%2F02%2F27%2Fmemory-profiling-go-languaje%2F&amp;linkname=Memory%20Profiling%20Go%20Languaje"><img src="http://www.esviable.es/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esviable.es/2010/02/27/memory-profiling-go-languaje/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
