<?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>davidalfonso.es &#187; Desarrollo de Software</title>
	<atom:link href="http://www.davidalfonso.es/desarrollo-software/feed" rel="self" type="application/rss+xml" />
	<link>http://www.davidalfonso.es</link>
	<description></description>
	<lastBuildDate>Mon, 02 Apr 2012 21:12:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Seminario Nokia: Qt Quick</title>
		<link>http://www.davidalfonso.es/desarrollo-software/seminario-nokia-qt-quick</link>
		<comments>http://www.davidalfonso.es/desarrollo-software/seminario-nokia-qt-quick#comments</comments>
		<pubDate>Fri, 15 Jul 2011 11:51:26 +0000</pubDate>
		<dc:creator>David Alfonso</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Eventos y Cursos]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://www.davidalfonso.es/?p=662</guid>
		<description><![CDATA[Este mes de junio asistí a un seminario organizado por Movilforum y Nokia, impartido por Ángel Rayo y Óscar Gutierrez, en torno a Qt Quick, una plataforma de desarrollo rápido de aplicaciones móviles basada en Qt. El evento tuvo lugar &#8230; <a href="http://www.davidalfonso.es/desarrollo-software/seminario-nokia-qt-quick">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="Torre Telefónica Barcelona by Telefonicafotos, on Flickr" href="http://www.flickr.com/photos/telefonicafotos/5764603037/"><img class="alignright" src="http://farm3.staticflickr.com/2548/5764603037_5307a42c1f_m.jpg" alt="Torre Telefónica Barcelona" width="146" height="240" /></a>Este mes de junio asistí a un seminario organizado por <a href="http://espana.movilforum.com/">Movilforum</a> y <a href="http://www.nokia.es/">Nokia</a>, impartido por <a href="http://www.linkedin.com/in/angelrayo">Ángel Rayo</a> y <a href="http://www.linkedin.com/in/oscargut">Óscar Gutierrez</a>, en torno a <a href="http://qt.nokia.com/qtquick/">Qt Quick</a>, una plataforma de desarrollo rápido de aplicaciones móviles basada en Qt. El evento tuvo lugar en la espléndida Torre de Telefónica de Barcelona, donde pudimos disfrutar de unas vistas excepcionales.</p>
<p>El curso tuvo dos partes: una técnica (la más extensa) y otra más informativa. Tanto Ángel como Óscar hicieron un gran trabajo, cada uno en su papel, pero siempre demostrando un vasto conocimiento de la materia. ¡Enhorabuena a los dos!</p>
<h2>Desarrollo de aplicaciones con Qt Quick</h2>
<p>En primer lugar, se hizo mucho hincapié en resaltar que el punto de entrada al desarrollo para móviles Nokia era <a href="http://developers.nokia.com">developers.nokia.com</a>, donde siempre había disponibles productos estables (las betas las ponen en otro sitio).</p>
<p>El seminario estuvo orientado a <strong>dispositivos móviles</strong>, aunque Qt Quick permite desarrollar aplicaciones para otras plataformas. Puesto que está basado en Qt, la formación consistió en un repaso de las principales características de éste, seguidas de una introducción práctica a Qt Quick.</p>
<p>En cuanto a <strong>Qt</strong>, nos hablaron del objeto base de todos los demás (QObject), señales y slots, eventos, propiedades, metadatos, gestión de la memoria (borrado en cascada), layouts para la UI, bases de datos,&#8230; para finalmente descubrirnos <strong>Qt Quick</strong>, basado en el lenguaje <strong>QML</strong> (una mezcla de CSS y Javascript) y que permite un desarrollo rápido de aplicaciones. Todo esto para simplificar el desarrollo y estrechar lazos entre diseñadores y programadores (se cambia C++ por QML, un lenguaje de más alto nivel, similar a ActionScript). Además, Qt Quick permite testear tus aplicaciones móviles en los emuladores que tiene incorporados, de forma que no es necesario disponer de los teléfonos físicamente.</p>
<p>Para terminar nos dieron un terminal Nokia muy bonito, en el que espero programar alguna aplicación próximamente. Tras el curso me quedé con ganas de hacer alguna cosilla. Aquí os dejo un vídeo de un juego hecho en 300 líneas de código, no está nada mal, ¿no?.</p>
<p><iframe src="http://www.youtube.com/embed/LTDJrMu24b8" frameborder="0" width="560" height="315"></iframe></p>
<h2>El futuro de Nokia, Symbian y Qt</h2>
<p>Está claro que tras el reciente acuerdo de Microsoft con Nokia para utilizar Windows Phone en sus terminales, el futuro de Qt resultaba bastante incierto.</p>
<p>Óscar trató de convencernos de que <strong>Nokia seguirá apostando por Qt/Symbian</strong> en lo que se conoce como <strong>&#8220;next billion&#8221;</strong>, es decir, el montón de dispositivos de baja capacidad que prevén vender en los próximos años en aquellos lugares donde la telefonía móvil todavía no está tan asentada. Pero claro, la realidad es que para la <strong>gama alta,</strong> la que podría competir con los iPhones y demás, <strong>la apuesta de Nokia es por Windows Phone</strong>.</p>
<p>El objetivo de Nokia quedó claro: crear un ecosistema de aplicaciones y desarrolladores que aumente el valor de sus terminales. Desde luego tienen una <a href="http://www.idc.com/about/viewpressrelease.jsp?containerId=prUK22729011&amp;sectionId=null&amp;elementId=null&amp;pageType=SYNOPSIS">amplia base de dispositivos vendidos</a>, aunque la diversidad de sistemas operativos puede ser un factor bastante negativo a la hora de captar adeptos.</p>
<p><strong>Update noviembre 2011:</strong> <a href="http://techcrunch.com/2011/10/26/nokia-aims-to-connect-the-next-billion-people-with-budget-friendly-asha-series/">Sobre Nokia y el tema del &#8220;next billion&#8221;</a> (¿esas pantallas no llevan Qt, no?).</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalfonso.es/desarrollo-software/seminario-nokia-qt-quick/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La industria del videojuego: Dirección y desarrollo de proyectos</title>
		<link>http://www.davidalfonso.es/desarrollo-software/la-industria-del-videojuego-direccion-y-desarrollo-de-proyectos</link>
		<comments>http://www.davidalfonso.es/desarrollo-software/la-industria-del-videojuego-direccion-y-desarrollo-de-proyectos#comments</comments>
		<pubDate>Wed, 20 Apr 2011 18:04:00 +0000</pubDate>
		<dc:creator>David Alfonso</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Eventos y Cursos]]></category>
		<category><![CDATA[cta]]></category>
		<category><![CDATA[curso]]></category>
		<category><![CDATA[procesos]]></category>
		<category><![CDATA[producción]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[videojuegos]]></category>

		<guid isPermaLink="false">http://www.davidalfonso.es/?p=517</guid>
		<description><![CDATA[El pasado marzo asistí a un curso organizado por el CTA (Centro de Tecnologías Avanzadas del INAEM) sobre el proceso productivo en la industria del videojuego, impartido por David Darnés, productor de Ubisoft, compañía líder a nivel mundial creadora de &#8230; <a href="http://www.davidalfonso.es/desarrollo-software/la-industria-del-videojuego-direccion-y-desarrollo-de-proyectos">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>El pasado marzo asistí a un curso organizado por el <a href="http://www.aragon.es/DepartamentosOrganismosPublicos/Organismos/InstitutoAragonesEmpleo/AreasTematicas/Formacion/CentroTecnologiasAvanzadas">CTA (Centro de Tecnologías Avanzadas del INAEM)</a> sobre el proceso productivo en la industria del videojuego, impartido por <strong>David Darnés</strong>, productor de <a href="http://www.ubisoftgroup.com">Ubisoft</a>, compañía líder a nivel mundial creadora de juegos como <a href="http://en.wikipedia.org/wiki/Assassin%27s_Creed">Assassin&#8217;s Creed</a> o <a href="http://en.wikipedia.org/wiki/Splinter_Cell">Splinter Cell</a>.</p>
<p>Sin duda, esta industria merece un estudio detallado, pues resulta chocante que en el 2010 tuviera el honor de <a href="http://www.elmundo.es/elmundo/2011/01/18/navegante/1295362472.html">crecer un 6%</a> a pesar de la &#8220;crisis mundial&#8221; de la que viven los medios y que utilizan los políticos para tomarnos el pelo, aunque ése es otro tema <img src='http://www.davidalfonso.es/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h1>Etapas del proceso productivo</h1>
<p>En primer lugar, veamos las etapas del proceso de producción de un videojuego:</p>
<ol>
<li><strong>Idea / Concepto</strong>: estudios preliminares del diseño y el mercado, se define el framework de trabajo (consola, tipo de jugador,&#8230;) y se presenta un &#8220;sumario ejecutivo&#8221; y algunas consideraciones de marketing. Finalmente tenemos un <a href="http://gram.eng.uci.edu/~ghubbard/mae189/binder.html">&#8220;Project Binder&#8221;</a> con una versión inicial de los documentos importantes.</li>
<li><strong>Preproducción</strong>: Es la etapa clave, con una duración aprox. de 5 meses y un gasto acumulado de 1/3 del presupuesto al finalizarla. La idea fundamental es <strong>prototipar</strong>. El objetivo es determinar si se sigue adelante con el juego. En ella se demuestra el potencial real del juego, ya que dará como resultado una versión 100% jugable y publicable llamada &#8220;fpp&#8221;. Esta versión deberá responder a las 3 C&#8217;s:</li>
<ul>
<li>&#8220;Character&#8221;: ¿Qué controlamos?</li>
<li>&#8220;Control&#8221;: ¿Cómo lo controlamos?</li>
<li>&#8220;Camera&#8221;: ¿Cómo lo ve el jugador?</li>
</ul>
<li><strong>Producción</strong>: En esta etapa se desarrolla el juego completo, partiendo de la &#8220;fpp&#8221;. Tiene una duración de unos 3 meses, durante los que se trabaja en una versión &#8220;alpha&#8221;, la cual tiene un 75% de los mapas jugables, la interfaz casi terminada y todo lo necesario para poder comenzar los tests mientras se termina el 25% restante del juego.</li>
<li><strong>Test</strong>: Cuando comienzan los tests, el objetivo es llegar a una versión &#8220;beta&#8221; que tenga el juego completo y muchos bugs ya corregidos. A partir de la &#8220;beta&#8221; se comenzará a optimizar y estabilizar la versión, pulir los últimos detalles del juego, etc. hasta obtener la versión &#8220;Master Candidate&#8221;, es decir, la versión candidata a ser máster (i.e. la definitiva, la que se distribuirá).</li>
<li><strong>Validación</strong> (opcional, sólo aplica al caso de consolas): Una vez se obtiene la &#8220;Master Candidate&#8221;, ésta se envía al fabricante oportuno (Nintendo, Sony, Microsoft, etc,) y tras unos 2 meses apróx. te devuelven lo que se conoce como versión &#8220;Gold Master&#8221;, la cual está ya lista para ser lanzada.</li>
</ol>
<h1>Características de la industria del videojuego</h1>
<ul>
<li>Se trabaja con las últimas tecnologías, ya que los consumidores demandan novedades periódicamente (hasta la fecha, cada 5 años se produce un cambio de generación en las consolas, con lo que ya va tocando&#8230;)</li>
<li>En los 3 primeros meses tras la salida al mercado de un videojuego se producen el 60% de sus ventas. Esto se debe a que suelen ser muy esperados, por lo que se aprovecha la venta compulsiva.</li>
<li>Los videojuegos están disponibles en <strong>plataformas</strong> cada vez más variadas: consolas (de sobremesa y portátiles), PCs, teléfonos móviles,&#8230; y los canales de distribución también están en proceso de cambio:<em> steam, app store, facebook,&#8230;</em><em></em></li>
<li>Es muy importante la <strong>Propiedad Intelectual</strong> (<a href="http://en.wikipedia.org/wiki/Intellectual_property">IP en inglés</a>), por lo que las productoras impulsan creaciones propias, aunque también adquieren licencias externas.</li>
<li>El actor más importante en la <em>cadena de valor</em> (si hablamos solo de consolas) son los<strong> fabricantes de consolas</strong> (actualmente los grandes son Nintendo, Microsoft y Sony), ya que definen el hardware sobre el que los <em>publishers </em>tendrán que trabajar. Los primeros llevan ventaja en todos los sentidos: conocen mejor la plataforma (i.e. potencialmente pueden hacer mejores videojuegos) y, además, cuando no son ellos los que crean el videjuego, los <em>publishers </em>han de pagarles royalties.</li>
</ul>
<h1>Otros temas tratados en el curso</h1>
<p>No sólo de la industria trató el curso, también se dedicó una buena parte del tiempo a aprender sobre temas relacionados y a hacer ejercicios prácticos.</p>
<p>Por ejemplo, el primer día jugamos a un juego en equipos en el que se trataba de construir la torre más alta en 30 minutos y con el siguiente material:<a href="http://www.davidalfonso.es/wp-content/uploads/2011/04/IMG_0599.jpg"><img class="alignright size-medium wp-image-553" title="Torre para el Marshmallow Challenge" src="http://www.davidalfonso.es/wp-content/uploads/2011/04/IMG_0599-225x300.jpg" alt="" width="225" height="300" /></a></p>
<ul>
<li>1 metro de cuerda.</li>
<li>1 metro de celo.</li>
<li>1 nube de algodón (marshmallow).</li>
<li>20 espaguetis.</li>
</ul>
<p>El ejercicio es muy interesante, te enseña a planificar, prototipar y rediseñar, trabajar en equipo,&#8230; diría que todo el curso mereció la pena por este ejercicio. Puedes ver una presentación sobre el reto del malvavisco (marshmallow) <a href="http://www.ted.com/talks/tom_wujec_build_a_tower.html">en la web de TED</a>.</p>
<p>&nbsp;</p>
<p>Por otro lado, también se dedicó un tiempo a explicar la <a href="http://es.wikipedia.org/wiki/Scrum">gestión de proyectos con Scrum</a>, donde se comentaron los siguientes conceptos:</p>
<ul>
<li><strong>Product backlog</strong>: Es una lista de alto nivel que se mantiene durante todo el proyecto. Contiene items que describen potenciales características de forma poco concreta, las cuales se priorizan en función de su valor de negocio.</li>
<li><strong>Sprint backlog</strong>: La lista de trabajo que deberá realizar el equipo en el siguiente sprint.</li>
<li><strong>Daily Scrum meetings</strong>: Qué has hecho, qué vas a hacer y tienes algún problema. No más de 15 minutos.</li>
<li>Tiempo de los sprints. Duración fija, de forma que sea más fácil predecir lo que va a darnos tiempo a realizar.</li>
<li>Framework de scrum: reglas, ceremonias y artefactos,</li>
<li>Tareas pequeñas, no más de 3 días, para que sea más fácil estimarlas correctamente.</li>
</ul>
<p>También hicimos una <strong>planificación</strong> grosso modo del desarrollo completo de un videojuego, sin tener en cuenta una metodología completa, simplemente para ver qué roles hacen falta en el equipo:</p>
<ul>
<li>Programmer (motores de físicas, luces, gráficos, colisiones, sonido. Efectos especiales, menús, hud, modos de juego, inteligencia artificial, cámaras, debug,&#8230;)</li>
<li>Level Designer</li>
<li>Game Designer</li>
<li>Sound Designer</li>
<li>Data Manager</li>
<li>3D &amp; 2D Artists (modelados de personajes, texturas y mapeados de texturas, objetos 3D,&#8230;)</li>
<li>Animator</li>
</ul>
<p>Esto es todo, si tenéis más curiosidad sobre el funcionamient de la industria, os recomiendo esta web<a href="http://sites.duke.edu/soc142-videogames/"> &#8220;The Video Game Industry | Resume Play&#8221; </a>(en inglés), donde se describe con más detalle todo el ecosistema.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalfonso.es/desarrollo-software/la-industria-del-videojuego-direccion-y-desarrollo-de-proyectos/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Cachirulo Talks sobre Agilismo</title>
		<link>http://www.davidalfonso.es/desarrollo-software/i-cachirulo-talks-sobre-agilismo</link>
		<comments>http://www.davidalfonso.es/desarrollo-software/i-cachirulo-talks-sobre-agilismo#comments</comments>
		<pubDate>Thu, 31 Mar 2011 12:04:08 +0000</pubDate>
		<dc:creator>David Alfonso</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Eventos y Cursos]]></category>
		<category><![CDATA[agilismo]]></category>
		<category><![CDATA[aragón]]></category>
		<category><![CDATA[cachirulo valley]]></category>
		<category><![CDATA[jose m. cristobal]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[sevenclick]]></category>
		<category><![CDATA[teresa oliver]]></category>

		<guid isPermaLink="false">http://www.davidalfonso.es/?p=505</guid>
		<description><![CDATA[El pasado jueves asistí a las primeras charlas organizadas por Cachirulo Valley, unos chicos muy majos que buscan que confluya el mundo técnico con el del negocio, haciéndose eco de todo lo que sucede en Aragón relativo a las TIC &#8230; <a href="http://www.davidalfonso.es/desarrollo-software/i-cachirulo-talks-sobre-agilismo">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://farm6.static.flickr.com/5213/5533894403_64e7330c70.jpg" alt="" width="236" height="336" />El pasado jueves asistí a las primeras charlas organizadas por <a href="http://cachirulovalley.com/">Cachirulo Valley</a>, unos chicos muy majos que buscan que confluya el mundo técnico con el del negocio, haciéndose <a href="http://cachirulovalley.com/category/events/">eco de todo lo que sucede en Aragón</a> relativo a las TIC y participando activamente mediante la organización de charlas y eventos. Para su blog, escribí <a href="http://cachirulovalley.com/2011/liberacion-y-taller-de-opendwp/">un post sobre el pabellón digital del agua</a>, ese sitio que tiene paredes de agua y que mola un montón <img src='http://www.davidalfonso.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>La primera charla fue impartida por <a href="http://twitter.com/#!/tolivern">Teresa Oliver</a>, no sé a qué se dedica, pero supongo que será algo así como &#8220;llevar el agilismo hasta el último rincón del planeta&#8221;. Puedes ver <a href="http://cachirulovalley.com/2011/video-del-i-cachirulo-talks-teresa-oliver-agile-para-humanos/">el vídeo completo aquí</a>. La idea era presentar en qué consiste el desarrollo ágil y vendérselo a la gente de nogocio (de la que por cierto había más bien poca). De lo que dijo me quedo con lo siguiente:</p>
<ul>
<li>El <a href="http://agilemanifesto.org/">agilismo</a> es una filosofía, una forma de pensar, no le gusta que se entienda como una metodología. Además, no está limitado al desarrollo de software (aunque en el 95% de los casos sigue siendo así).</li>
<li>Las &#8220;metodologías ágiles&#8221; no son para todo el mundo, hay equipos que trabajan mejor de otras formas, aunque ella cree que, en general, todo equipo se beneficiaría de seguir un proceso más abierto al cambio.</li>
<li>El 64% de las funcionalidades desarrolladas en el mundo nunca se utilizan.</li>
<li>Se centra en <a href="http://en.wikipedia.org/wiki/SCRUM">SCRUM</a>:
<ul>
<li>Apuestan por reconocer que los cambios ocurren y facilitar su tratamiento.</li>
<li>Se utilizan <em>sprints </em>compuestos de historias que vamos a implementar.</li>
</ul>
<ul>
<li>Los sprints tienen que durar de 2 a 3 semanas. La planificación se hace pensando qué cabe en este tiempo (time-boxing).</li>
<li>Al principio de cada sprint se priorizan las historias según la importancia que tienen para el cliente.</li>
<li>Las historias elegidas para el <em>sprint </em>han de estar terminadas al 100% cuando éste termina.</li>
<li>Tras cada sprint se entrega al cliente un producto funcional (cada vez más avanzada, pero real).</li>
</ul>
</li>
</ul>
<p>La segunda charla fue impartida por Jose M. Cristobal, CTO de <a href="http://www.sevenclick.com/">SevenClick</a>, empresa aragonesa dedicada al desarrollo de aplicaciones móviles. El <a href="http://cachirulovalley.com/2011/video-del-i-cachirulo-talks-jose-m-cristobal-5-lecciones-aprendidas-sobre-agile/">vídeo está disponible para visualización online</a>. Su charla estuvo orientada a comentar lo que habían aprendido al aplicar algunas técnicas de desarrollo ágil. Muchas cosas interesantes:</p>
<ul>
<li>Las <strong>reuniones diarias</strong> han de ser diarias, intentaron hacerlas martes y jueves pero no dio resultado. Está claro que las <em>standup </em>han de ser muy cortas y no tiene sentido que participen 15 personas, pues se pierde el ritmo.</li>
<li><strong>No estimar en horas</strong>
<ul>
<li>Comenta la <strong>Ley de Parkinson</strong>: &#8220;El trabajo se alarga hasta completar el tiempo planificado para su finalización&#8221;.</li>
<li>Las estimaciones en horas/días son personales y cada uno tendrá la suya, con lo que no hay forma de establecer un valor absoluto. Además, las horas pendientes son irreales, ya que puedan faltar tareas o ser erróneas.</li>
<li>Ellos utilizan <strong>estimación relativa</strong>, concretamente con <a href="http://en.wikipedia.org/wiki/Planning_poker">Planificación de Póker</a>.</li>
<li>Al cliente no le importan las tareas que hayas tenido que hacer para completar una funcionalidad, lo que le importa es que funcione y haga lo que él espera.</li>
</ul>
</li>
<li><strong>Termina lo que empieces</strong>
<ul>
<li>Tendencia a terminar prematuramente las tareas, sólo por acabar cuanto antes.</li>
<li>Lo que hacen es dejarse un buffer de colchón para pruebas y otras labores necesarias, pero que se tiene tendencia a no hacer por falta de tiempo.</li>
</ul>
</li>
<li><strong>Pregunta al Product Manager (Cliente)</strong>
<ul>
<li>NO interpretar, imaginar o suponer lo que quiere el cliente. Preguntarle.</li>
</ul>
</li>
<li><strong>Consejos</strong>
<ul>
<li>Scrum no sirve para todos. Si no encaja en tu equipo de desarrollo, es mejor usar otra metodología.</li>
<li>La agilidad no es una bala de plata. Hacen falta prácticas de ingeniería, no basta con sólo usar una metodología ágil.</li>
<li>La agilidad necesita compromiso por parte de todos los <em>stakeholders</em>.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalfonso.es/desarrollo-software/i-cachirulo-talks-sobre-agilismo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lenguaje de 2010: Matlab (Cómo aprenderlo)</title>
		<link>http://www.davidalfonso.es/desarrollo-software/lenguaje-de-2010-matlab-como-aprenderlo</link>
		<comments>http://www.davidalfonso.es/desarrollo-software/lenguaje-de-2010-matlab-como-aprenderlo#comments</comments>
		<pubDate>Fri, 18 Feb 2011 20:00:49 +0000</pubDate>
		<dc:creator>David Alfonso</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[máster ia]]></category>
		<category><![CDATA[matlab]]></category>

		<guid isPermaLink="false">http://www.davidalfonso.es/?p=393</guid>
		<description><![CDATA[Continuando con la serie de posts sobre Matlab, el lenguaje que aprendí y utilicé en 2010, voy a comentar las referencias que me han sido de mayor utilidad para iniciarme en el lenguaje, así como dónde encontrar las mejores referencias &#8230; <a href="http://www.davidalfonso.es/desarrollo-software/lenguaje-de-2010-matlab-como-aprenderlo">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Continuando con la <a href="http://www.davidalfonso.es/tag/matlab">serie de posts sobre Matlab</a>, el lenguaje que aprendí y utilicé en 2010, voy a comentar las referencias que me han sido de mayor utilidad para iniciarme en el lenguaje, así como dónde encontrar las mejores referencias y ejemplos.</p>
<h2>Tutoriales</h2>
<ul>
<li><a href="http://www.mathworks.es/access/helpdesk/help/pdf_doc/matlab/getstart.pdf">Getting Started with Matlab</a> (PDF, 2MB). Éste es sin duda el documento que hay que leer en primer lugar, es muy fácil de leer y te presenta las características más importantes del lenguaje. Además, sirve como pincelada de la potencia que tiene Matlab. Es gratuito y se puede descargar de Mathworks. Incluye las siguientes secciones:
<ol>
<li>Introducción.</li>
<li>Matrices y arrays.</li>
<li>Gráficos.</li>
<li>Programación.</li>
<li>Análisis de Datos.</li>
<li>Creación de Interfaces Gráficos de Usuario (sí, con Matlab puedes crear tu propia aplicación gráfica).</li>
<li>Herramientas del Escritorio y el Entorno de Desarrollo.</li>
<li>Interfaces externas.</li>
</ol>
</li>
</ul>
<ul>
<li><a href="http://www.maths.dundee.ac.uk/~ftp/na-reports/MatlabNotes.pdf ">An Introduction to Matlab</a> por David F. Griffiths (PDF, 1,6MB). Este documento es mitad referencia, mitad tutorial. Está bastante bien formateado y es fácil de leer. Si lo sigues paso a paso puede que te quedes con los conceptos fundamentales de Matlab, aunque quizás sea más útil como resumen rápido del lenguaje.</li>
</ul>
<ul>
<li><a href="http://www.scribd.com/doc/2071708/Introduction-to-Matlab">Introduction to Matlab</a> por Ela Pekalska (PDF, 500KB). Este documento se asemeja mucho al anterior, por lo que lo dejo aquí como otra opción posible, que cada cuál se quede con el que más le guste.</li>
</ul>
<h2>Referencias</h2>
<ul>
<li>La ayuda en línea de Matlab (i.e. la que aparece al pulsar F1 y que también está disponible <a href="http://www.mathworks.es/help/techdoc/">via web</a>) es sin duda la mejor referencia, ya que, junto con la descripción y definición de cada función, característica o toolbox, acompaña ejemplos muy ilustrativos de uso que ayudan a poner en contexto fácilmente cada punto.</li>
</ul>
<h2>Programas de ejemplo</h2>
<p>Sin duda, una vez que uno ha tomado contacto con un lenguaje o entorno de programación, la mejora forma de afianzar y ampliar conocimientos es estudiando código hecho por programadores con más experiencia. Existe gran cantidad de código de ejemplo en internet, aunque si tuviera que elegir un lugar, escogería <a href="http://www.mathworks.com/matlabcentral/">MATLAB Central</a>, la comunidad que Mathworks ha creado en torno a su propio producto. Además de programas de ejemplo, contiene foros, blogs, preguntas/respuestas y enlaces interesantes.</p>
<h2>Otros enlaces</h2>
<ul>
<li><a href="http://stackoverflow.com/questions/tagged/matlab?sort=votes&amp;pagesize=50">Preguntas más votadas sobre Matlab en stackoverflow</a>. Preguntas sobre Matlab de recomendada lectura.</li>
<li><a href="http://www.delicious.com/popular/matlab">Enlaces más populares sobre Matlab en delicious</a>. Como muy bien sabe <a href="http://www.disenaforum.com/">Valeri Jakobs</a>, esta herramienta puede ser muy potente a la hora de encontrar información de calidad (<a href="http://37signals.com/svn/posts/2777-what-happens-after-yahoo-acquires-you">a pesar de haber sido comprada por Yahoo</a>).</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalfonso.es/desarrollo-software/lenguaje-de-2010-matlab-como-aprenderlo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lenguaje de 2010: Matlab (Introducción)</title>
		<link>http://www.davidalfonso.es/desarrollo-software/lenguaje-de-2010-matlab-introduccion</link>
		<comments>http://www.davidalfonso.es/desarrollo-software/lenguaje-de-2010-matlab-introduccion#comments</comments>
		<pubDate>Sat, 05 Feb 2011 20:21:08 +0000</pubDate>
		<dc:creator>David Alfonso</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[máster ia]]></category>
		<category><![CDATA[matlab]]></category>
		<category><![CDATA[objetivos 2010]]></category>

		<guid isPermaLink="false">http://www.davidalfonso.es/?p=301</guid>
		<description><![CDATA[A raíz del comentario que me hizo Adolfo en su twitter sobre mis &#8220;productos&#8221; del 2010, estuve reflexionando sobre qué cosas hice el año pasado que pudieran encajar en el concepto de producto que comenta Seth Godin en su post &#8230; <a href="http://www.davidalfonso.es/desarrollo-software/lenguaje-de-2010-matlab-introduccion">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A raíz del <a href="http://twitter.com/#!/adolfo_gu/status/20716197414699008">comentario</a> que me hizo <a href="http://nuestrasalmas.wordpress.com/">Adolfo</a> en su twitter sobre mis &#8220;productos&#8221; del 2010, estuve reflexionando sobre qué cosas hice el año pasado que pudieran encajar en el concepto de producto que comenta <a href="http://sethgodin.typepad.com/seths_blog/2010/12/yearinreview.html">Seth Godin en su post</a> y, si entedemos como producto también el aprendizaje (i.e. el conocimiento), creo que el año pasado &#8220;lancé&#8221; bastantes cosas interesantes <img src='http://www.davidalfonso.es/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Por otro lado, si enlazamos lo anterior con la recomendación del libro <a href="http://www.codinghorror.com/blog/files/Pragmatic%20Quick%20Reference.htm">&#8220;The Pragmatic Programmer&#8221; </a>de aprender un lenguaje de programación al año, podría decirse que uno de mis productos del año pasado fue aprender a desarrollar con <a href="http://www.mathworks.es/products/matlab">Matlab</a> y hacerlo sobre un problema real: la <a href="http://vision.ai.uiuc.edu/mhyang/face-detection-survey.html">detección de caras</a>.</p>
<p>Matlab es un software de cálculo numérico comercial utilizado en universidades y empresas mundialmente. Se caracteriza por su facilidad y potencia para manejar matrices. Además, existe una gran variedad de librerías (<a href="http://www.mathworks.es/products/">toolboxes</a>) que permiten hacer casi cualquier cosa que pueda surgir en un entorno científico-técnico.</p>
<p>Para programar en Matlab se puede utilizar el IDE que tiene integrado (que es bastante potente y funciona muy, muy bien) o cualquier editor de texto. El lenguaje de programación de Matlab es <a href="http://es.wikipedia.org/wiki/Lenguaje_interpretado">interpretado</a> (aunque también puede compilarse) y de <a href="http://en.wikipedia.org/wiki/Fourth-generation_programming_language">cuarta generación</a>, i.e. diseñado con un propósito específico en mente (mis profesores de &#8220;Lenguajes de Programación&#8221; de Unizar, que ostentan el récord de menos palabras por hoja de apuntes, estarían orgullosos de mí).</p>
<p>En próximos posts de esta serie comentaré los recursos más útiles, ejemplos de lo que he hecho con Matlab y hasta publicaré algo de código libre <img src='http://www.davidalfonso.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalfonso.es/desarrollo-software/lenguaje-de-2010-matlab-introduccion/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vim y el teclado español</title>
		<link>http://www.davidalfonso.es/desarrollo-software/vim-y-el-teclado-espanol</link>
		<comments>http://www.davidalfonso.es/desarrollo-software/vim-y-el-teclado-espanol#comments</comments>
		<pubDate>Sat, 25 Sep 2010 17:08:47 +0000</pubDate>
		<dc:creator>David Alfonso</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Experiencia de Usuario]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.davidalfonso.es/?p=182</guid>
		<description><![CDATA[Si has aprendido a escribir a máquina/ordenador con un teclado español (con eñe), tengo que avisarte de que no vas a poder sacarle máximo potencial al editor de textos más famoso en entornos Unix: Vi(m). La razón es sencilla y &#8230; <a href="http://www.davidalfonso.es/desarrollo-software/vim-y-el-teclado-espanol">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Si has aprendido a escribir a máquina/ordenador con un teclado español (con eñe), tengo que avisarte de que no vas a poder sacarle máximo potencial al editor de textos más famoso en entornos Unix: <a href="http://www.vim.org/">Vi(m)</a>.</p>
<p>La razón es sencilla y basta echar un ojo a su <a href="http://vimdoc.sourceforge.net/htmldoc/usr_02.html#02.3">mítico tutorial</a> para descubir que el movimiento del cursor se realiza con los cuatro dedos de tu mano derecha situados sobre las teclas <strong>h j k l</strong>, es decir, donde los tendrías si fueras a escribir a máquina&#8230; con un teclado inglés <img src='http://www.davidalfonso.es/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: left;"><a href="http://www.davidalfonso.es/wp-content/uploads/2010/09/l_kbusbb2.jpg"><img class="aligncenter size-large wp-image-187" title="Teclado inglés" src="http://www.davidalfonso.es/wp-content/uploads/2010/09/l_kbusbb2-1024x410.jpg" alt="" width="614" height="246" /></a>Podemos ver a continuación cuál es la posición recomendada para mecanografiar usando un teclado QWERTY con EÑE:</p>
<p style="text-align: center;"><a href="http://es.wikipedia.org/wiki/Mecanograf%C3%ADa"><img class="aligncenter" src="http://upload.wikimedia.org/wikipedia/commons/d/d5/FingerHandPosSPA.gif" alt="" width="523" height="249" /></a></p>
<p style="text-align: left;">He estado buscando la forma de cambiar las teclas que se utilizan para movernos dentro de vim pero no he encontrado cómo cambiar el significado de las míticas teclas &#8220;hjkl&#8221;. De todas formas, sé que mucha gente utiliza vim y nunca les he oído quejarse, ¿quizá saben algo que yo no sé? ¿directamente pasan de la eñe? ¿sólo escriben en inglés?.</p>
<p style="text-align: left;"><strong>Actualización diciembre de 2011: </strong>Estos días ha vuelto a resurgir mi interés por usar vim como mi editor para programar, principalmente gracias a <a href="http://stevelosh.com/blog/2010/09/coming-home-to-vim">un post de Steve Losh</a> que merece la pena leer (si quieres saber más sobre vim y te estás planteando cambiar). Por otra parte, he buscado a <a href="http://stackoverflow.com/questions/4392705/programmers-vim-setup-for-finnish-swedish-or-other-non-us-keyboard-layout">otros que se han planteado la cuestión descrita en este post</a> y he visto que hay dos opciones mayoritarias: 1) Remapear el teclado, y 2) Cambiar el layout del teclado al americano cuando estás programando. Promete más la segunda opción.</p>
<p style="text-align: left;"><strong>Actualización abril 2012: </strong>Ha caído en mis un post sobre <a href="http://www.catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keys/">el origen del uso de las teclas h j k l en vi</a>. Es interesante <img src='http://www.davidalfonso.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalfonso.es/desarrollo-software/vim-y-el-teclado-espanol/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>El funcionariado y el mantenimiento del software</title>
		<link>http://www.davidalfonso.es/desarrollo-software/el-funcionariado-y-el-mantenimiento-del-software</link>
		<comments>http://www.davidalfonso.es/desarrollo-software/el-funcionariado-y-el-mantenimiento-del-software#comments</comments>
		<pubDate>Thu, 03 Jun 2010 14:36:09 +0000</pubDate>
		<dc:creator>David Alfonso</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[francia]]></category>
		<category><![CDATA[funcionariado]]></category>

		<guid isPermaLink="false">http://www.davidalfonso.es/?p=164</guid>
		<description><![CDATA[Alguien me dijo el otro día que en Francia para ser funcionario, primero tienes que haber trabajado al menos 4 años en la empresa privada. Me pareció una idea estupenda, ¿qué mejor forma de valorar lo que tienes, que haber &#8230; <a href="http://www.davidalfonso.es/desarrollo-software/el-funcionariado-y-el-mantenimiento-del-software">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Alguien me dijo el otro día que en Francia para ser funcionario, primero tienes que haber trabajado<strong> al menos 4 años</strong> en la empresa privada. Me pareció una idea estupenda, ¿qué mejor forma de valorar lo que tienes, que haber pasado por algo peor?.</p>
<p>De acuerdo, no siempre la empresa privada es peor que la pública, aunque podríamos decir, basándonos en información tan fiable como rumores y comentarios que, en general, resulta <strong>más tranquila y mejor remunerada</strong>; al menos aquí, en España.</p>
<p>Hoy estaba corrigiendo un problema de esos que tienen <em>historia</em>, es decir, que llevan ahí desde siempre&#8230; y he pensado que todo desarrollador de software <em>debería </em>pasar por un trabajo en el que tuviera que mantener aplicaciones realizadas por otros en épocas pasadas.</p>
<p>Igual que los funcionarios en Francia: antes de poder crear código nuevo (o arquitecturas nuevas o incluir una nueva librería o meterse en el berenjenal x), <strong>debería ser obligatorio dedicar unos años a mantener software de otros</strong> y sufrir en tus propias carnes las consecuencias de una mala decisión (o de muchas).</p>
<p>Y así, cuando por fin se tenga la <strong>responsabilidad de crear</strong>, se tomarán decisiones que faciliten la <em>escalabilidad</em>, <em>extensibilidad </em>y <em>mantenibilidad </em>del software.  ¿O quizás lo contrario, para así resultar imprescindible? Espero que no&#8230; por el bien de todos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalfonso.es/desarrollo-software/el-funcionariado-y-el-mantenimiento-del-software/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Aumentar la memoria disponible para los procesos en Windows XP</title>
		<link>http://www.davidalfonso.es/desarrollo-software/aumentar-la-memoria-disponible-para-los-procesos-en-windows-xp</link>
		<comments>http://www.davidalfonso.es/desarrollo-software/aumentar-la-memoria-disponible-para-los-procesos-en-windows-xp#comments</comments>
		<pubDate>Sat, 15 May 2010 16:23:17 +0000</pubDate>
		<dc:creator>David Alfonso</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[desarrollo windows]]></category>
		<category><![CDATA[memoria]]></category>
		<category><![CDATA[sistema]]></category>

		<guid isPermaLink="false">http://www.davidalfonso.es/?p=152</guid>
		<description><![CDATA[En Windows XP 32-Bits el límite de memoria virtual para un proceso son 2GB, pero sabemos que el máximo deberían ser 4GB (el máximo direccionable con 32 bits), así que ¿dónde están las otras 2GB? Pues se reservan para el &#8230; <a href="http://www.davidalfonso.es/desarrollo-software/aumentar-la-memoria-disponible-para-los-procesos-en-windows-xp">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En Windows XP 32-Bits el <strong>límite de memoria virtual</strong> para un proceso son <strong> 2GB</strong>, pero sabemos que el máximo deberían ser 4GB (el máximo direccionable con 32 bits), así que ¿dónde están las otras 2GB? Pues se reservan para el<strong> núcleo del sistema</strong>.</p>
<p>Si quieres saber qué pasa con otras versiones de windows o los detalles exactos, te recomiendo esta página: <a href="http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx">&#8220;Límites de Memoria para las distintas versiones de Windows&#8221;</a>.</p>
<p>Sin embargo, esta limitación impuesta por el sistema puede ser incómoda, al fin y al cabo, ¿por qué 2GB y no 2,5GB? ¿y si mi aplicación los necesita?</p>
<p>Microsoft ya cuenta con esto y es posible permitir que el espacio dedicado al  proceso sea <strong>mayor a 2GB</strong>. Tenemos que ser conscientes de que, puesto que  el límite de memoria virtual son 4GB, si se aumenta la memoria  reservada para el proceso de usuario, <strong>disminuirá </strong>la cantidad de memoria  reservada para el núcleo.</p>
<p>En el siguiente post de Mark Russinovich, <a href="http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx"> &#8220;Pushing the Limits of Windows: Virtual Memory&#8221;</a> y <a href="http://www.brianmadden.com/blogs/brianmadden/archive/2004/02/19/the-4gb-windows-memory-limit-what-does-it-really-mean.aspx">en éste otro de Brian Madden</a>, se explica muy bien la  situación (Mark es uno de los creadores de las herramientas <a href="http://technet.microsoft.com/es-es/sysinternals/default.aspx">Sysinternals</a> y autor del mítico libro <a href="http://www.google.es/search?q=Windows+Internals">Windows Internals</a>).</p>
<p>En resumen, para que un proceso pueda utilizar más de 2GB es necesario:</p>
<ul></ul>
<ol>
<li>Activar el flag <a href="http://msdn.microsoft.com/en-us/library/wz223b1z%28VS.80%29.aspx">Large Address Aware</a> en el binario (para ver si un ejecutable lo tiene activado ejecutar: dumpbin /headers fichero.exe). Este flag se puede activar al linkar tu binario o posteriormente con alguna herramienta que modifique las cabeceras.</li>
<li>Arrancar el sistema con el <a href="http://msdn.microsoft.com/en-us/library/ff556232.aspx">flag /3GB</a> que permite reservar a los procesos de usuario hasta 3GB (dejando una sola para las necesidades del núcleo del sistema).</li>
</ol>
<p>A disfrutarlo <img src='http://www.davidalfonso.es/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<ul></ul>
<ul></ul>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalfonso.es/desarrollo-software/aumentar-la-memoria-disponible-para-los-procesos-en-windows-xp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo usar la fuente que quieras en tu web</title>
		<link>http://www.davidalfonso.es/desarrollo-software/como-usar-la-fuente-que-quieras-en-tu-web</link>
		<comments>http://www.davidalfonso.es/desarrollo-software/como-usar-la-fuente-que-quieras-en-tu-web#comments</comments>
		<pubDate>Fri, 05 Feb 2010 15:29:46 +0000</pubDate>
		<dc:creator>David Alfonso</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[cufon]]></category>
		<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[scenic sanity]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.davidalfonso.es/?p=130</guid>
		<description><![CDATA[A raíz del tema de WordPress que utilizo en esta web (Scenic Sanity), he descubierto un nuevo invento que permite transformar tu fuente de toda la vida (y que sólo tienes tú en tu pc) en un fichero javascript que &#8230; <a href="http://www.davidalfonso.es/desarrollo-software/como-usar-la-fuente-que-quieras-en-tu-web">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A raíz del tema de WordPress que utilizo en esta web (Scenic Sanity), he descubierto un nuevo invento que permite transformar tu fuente de toda la vida (y que sólo tienes tú en tu pc) en un fichero javascript que podrás incluir en tu web. Es un milagro.</p>
<p>La idea de mezclar estas tecnologías ha sido del señor <a href="http://cufon.shoqolate.com/generate/">Cufón</a>. Con su ayuda podrás generar fuentes y descargarte el renderer para incluirlo en tu web. Si quieres ver cómo queda, échale un ojo al código fuente de esta página.</p>
<p>Si estás usando el tema Scenic Sanity y <strong>no te salen los acentos</strong>, tranquilo, todo tiene arreglo. Como yo ya me las he apañado para buscar la fuente y volver a generarla con los parámetros adecuados, ¿para qué lo vas a volver a hacer tú? Mejor <a href="http://www.davidalfonso.es/wp-content/themes/scenic-sanity/js/TitilliumText14L_300.font.js">déscargate mi fichero</a> y súbelo a tu web.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalfonso.es/desarrollo-software/como-usar-la-fuente-que-quieras-en-tu-web/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo usar la versión estática de la librería de logging de Google</title>
		<link>http://www.davidalfonso.es/desarrollo-software/como-usar-la-version-estatica-de-la-libreria-de-logging-de-google</link>
		<comments>http://www.davidalfonso.es/desarrollo-software/como-usar-la-version-estatica-de-la-libreria-de-logging-de-google#comments</comments>
		<pubDate>Sun, 13 Dec 2009 18:33:05 +0000</pubDate>
		<dc:creator>David Alfonso</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[librerías]]></category>
		<category><![CDATA[logging]]></category>

		<guid isPermaLink="false">http://www.davidalfonso.es/?p=116</guid>
		<description><![CDATA[Estoy probando la librería de logging de Google: glog. Esta gente siempre usando nombre pegadizos&#8230; He decidido usar la versión estática de la librería para no depender de una dll, ya que mi objetivo es generar un ejecutable sin en &#8230; <a href="http://www.davidalfonso.es/desarrollo-software/como-usar-la-version-estatica-de-la-libreria-de-logging-de-google">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Estoy probando la librería de logging de Google: <a href="http://code.google.com/p/google-glog/">glog</a>. Esta gente siempre usando nombre pegadizos&#8230;</p>
<p>He decidido usar la versión estática de la librería para <strong>no depender de una dll</strong>, ya que mi objetivo es generar un ejecutable sin en tiempo de ejecución  (más allá de los runtimes obligatorios).</p>
<p>Para compilar <strong>glog</strong> basta con abrir la <em>solution </em>correspondiente: <em>google-glog.sln</em>, seleccionar el proyecto estático y compilarlo (debug y release). Después se configura en nuestra aplicación el path de los includes (<em>google-glog\src\windows</em>) y de las librerías (<em>google-glog/Debug</em> o <em>google-glog/Release</em>, según corresponda).</p>
<p>Si intentas compilar ahora, verás el siguiente error de linkado:</p>
<pre>error LNK2001: unresolved external symbol "__declspec(dllimport)
  void __cdecl google::InitGoogleLogging(char const *)"
  (__imp_?InitGoogleLogging@google@@YAXPBD@Z)</pre>
<p>Para solucionarlo, hay que seguir el siguiente paso no documentado: <strong>Añadir la siguiente directiva de preprocesado</strong> a las propiedades de nuestro proyecto:</p>
<pre>GOOGLE_GLOG_DLL_DECL=</pre>
<p>Ahora sí, podemos empezar a usar la librería&#8230; vamos a ver qué tal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidalfonso.es/desarrollo-software/como-usar-la-version-estatica-de-la-libreria-de-logging-de-google/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

