<?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>Developing Frogtek</title>
	<atom:link href="http://developing.frogtek.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://developing.frogtek.org</link>
	<description>El blog del Departamento de Tecnología</description>
	<lastBuildDate>Wed, 18 Jan 2012 08:23:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Developing Frogtek Reloaded</title>
		<link>http://developing.frogtek.org/2012/01/18/developing-frogtek-reloaded/</link>
		<comments>http://developing.frogtek.org/2012/01/18/developing-frogtek-reloaded/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 08:23:59 +0000</pubDate>
		<dc:creator>Javier Martínez</dc:creator>
				<category><![CDATA[miscelánea]]></category>

		<guid isPermaLink="false">http://developing.frogtek.org/?p=1615</guid>
		<description><![CDATA[Llevábamos unos meses sufriendo problemas de latencia en este blog, por lo que decidimos investigar el problema. Después de darle muchas vueltas, decidimos alojar el blog en un host dedicado. Por ello, los visitantes asiduos habréis notado una mejora sustancial &#8230; <a href="http://developing.frogtek.org/2012/01/18/developing-frogtek-reloaded/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Llevábamos unos meses sufriendo problemas de latencia en este blog, por lo que decidimos investigar el problema. Después de darle muchas vueltas, decidimos alojar el blog en un host dedicado.</p>
<p>Por ello, los visitantes asiduos habréis notado una mejora sustancial en la velocidad de carga de la web <img src='http://developing.frogtek.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>¡Ah! También podéis notar esta mejora en nuestra web comercial: <a href="http://frogtek.org/">frogtek.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://developing.frogtek.org/2012/01/18/developing-frogtek-reloaded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BDD en Google App Engine con Lettuce y Splinter (I)</title>
		<link>http://developing.frogtek.org/2012/01/17/bdd-en-google-app-engine-con-lettuce-y-splinter-i/</link>
		<comments>http://developing.frogtek.org/2012/01/17/bdd-en-google-app-engine-con-lettuce-y-splinter-i/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 09:14:16 +0000</pubDate>
		<dc:creator>Alberto Gualis</dc:creator>
				<category><![CDATA[gae]]></category>
		<category><![CDATA[google app engine]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://developing.frogtek.org/?p=1568</guid>
		<description><![CDATA[Hemos de reconocerlo: tenemos mucho que aprender en lo que se refiere a programación de pruebas automáticas en la web. Hace ya bastante tiempo que veníamos usando Selenium , primero grabando las pruebas con su IDE, más tarde programándolas con &#8230; <a href="http://developing.frogtek.org/2012/01/17/bdd-en-google-app-engine-con-lettuce-y-splinter-i/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hemos de reconocerlo: tenemos mucho que aprender en lo que se refiere a programación de pruebas automáticas en la web. Hace ya bastante tiempo que veníamos usando <a title="Selenium" href="http://seleniumhq.org/" target="_blank">Selenium</a> , primero grabando las pruebas con su <a title="IDE" href="http://seleniumhq.org/projects/ide/" target="_blank">IDE</a>, más tarde programándolas con <a title="WebDriver" href="http://seleniumhq.org/docs/03_webdriver.html" target="_blank">Web Driver</a>. Pero los tests resultantes eran frágiles y aburridos de programar, por lo que sentíamos bastante envidia de los developers <strong>Ruby</strong> con su flamante <strong>Cucumber</strong> y sus elegantes tests <a title="BDD" href="http://en.wikipedia.org/wiki/Behavior_Driven_Development" target="_blank">BDD</a>.</p>
<p>Decidimos remediarlo y Julio se puso con la instalación de  <a title="Cucumber" href="http://cukes.info/" target="_blank">Cucumber</a> + <a title="Capybara" href="https://github.com/jnicklas/capybara" target="_blank">Capybara</a> en el servidor, creando un test de demo y animándonos a montar el entorno en nuestras máquinas para comenzar a darle poquito a poco. Teníamos que aprender <strong>Ruby</strong> y conocer cómo funcionan sus versiones y conceptos nuevos como <strong>RubyGems</strong>, por lo que la cosa iba a ser divertida pero no rápida y por ello se nos ocurrió darle una oportunidad a una herramienta que nos sonaba de oídas: <a title="Lettuce" href="http://packages.python.org/lettuce/tutorial/simple.html" target="_blank">Lettuce</a>, combinándola con otra herramienta bastante nueva: <a title="Slpinter" href="http://splinter.cobrateam.info/" target="_blank">Splinter</a>, de manera que, en lugar de pepinos y capibaras:<br />
<img class="alignleft" title="Pepino" src="http://www.edgeent.com/v2/edge_public/img_ilustrativas_noticias_blog/muchachada/Nui_Pepino_Turno.png" alt="Siempre es verano con el pepino en la mano" width="108" height="222" /></p>
<p><img class="alignleft" title="plus" src="http://www.worldsgreatesttoys.com/images/blog/080807/plus.gif" alt="" width="197" height="181" /></p>
<p><img class="alignnone" title="Capybara" src="/wp-content/uploads/2012/01/capybara_02.jpg" alt="" width="200" height="200" /></p>
<p>tendremos lechugas y poder mutante. ¡Cowabunga!</p>
<p><a href="http://joyfulchoices.com/wp-images/lettuce.gif"><img class="alignleft" title="Lechuga" src="/wp-content/uploads/2012/01/lettuce.gif" alt="" width="132" height="113" /><img class="alignleft" title="plus" src="http://www.worldsgreatesttoys.com/images/blog/080807/plus.gif" alt="" width="197" height="181" /></a></p>
<p><img class="alignnone" title="Splinter" src="/wp-content/uploads/2012/01/splinter.gif" alt="" width="140" height="202" /></p>
<p><strong>Lettuce</strong> permite definir test de aceptación automáticos para proyectos <strong>Python</strong>, y <strong>Splinter</strong> proporciona un API sencilla y potente para implementar los pasos de los tests usando diferentes <strong>webDrivers</strong>.</p>
<p>De momento parece que aún falta que ambos proyectos mejoren un poco ya que son relativamente recientes. En el caso de <strong>Splinter</strong>, si no llega a darnos todo el potencial que necesitamos, siempre podemos sustituirlo por <a href="http://twill.idyll.org/python-api.html" target="_blank">twill</a>, <a href="http://seleniumhq.org/docs/appendix_installing_python_driver_client.html" target="_blank">selenium</a>, <a href="http://code.google.com/p/selenium/wiki/PythonBindings?redir=1" target="_blank">webdriver</a> o <a href="http://www.getwindmill.com/" target="_blank">windmill</a>.</p>
<p>¿Por qué usar estas herramientas quizás no tan maduras como sus homólogas del mundo <strong>Ruby</strong>? Una razón discutible &#8211; aprender un nuevo lenguaje siempre es divertido y enriquecedor &#8211; es que no nos obliga a aprender <strong>Ruby</strong> y nos permite definir los pasos en <strong>Python</strong> con el que estamos mucho más cómodos. Pero la ventaja principal es que tenemos una librería <strong>Python</strong> usada en nuestros tests de integración para crear diferentes escenarios de test en <strong>GAE</strong> y esta solución nos permite aprovechar todo su potencial instantáneamente. Bueno, eso si conseguimos instalar correctamente todo lo necesario para rular estas herramientas con <strong>GAE</strong>.</p>
<p>En <strong>Frogtek</strong> ninguno tenemos experiencia con <strong>Django</strong> más allá de su integración con <strong>Google App Engine</strong>, por lo que seguramente nos falte algo de familiaridad con ciertos conceptos que no aplican dentro de la plataforma de <strong>Google</strong>. Es quizás por esto por lo que nos encontramos con bastantes problemas de instalación y configuración que nos gustaría compartir con todos aquí. Eso será en el próximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://developing.frogtek.org/2012/01/17/bdd-en-google-app-engine-con-lettuce-y-splinter-i/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Visualizar el servidor de integración continua</title>
		<link>http://developing.frogtek.org/2012/01/10/visualizar-el-servidor-de-integracion-continua/</link>
		<comments>http://developing.frogtek.org/2012/01/10/visualizar-el-servidor-de-integracion-continua/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 04:00:14 +0000</pubDate>
		<dc:creator>Julio García</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[eficiencia]]></category>
		<category><![CDATA[herramientas]]></category>
		<category><![CDATA[integración continua]]></category>
		<category><![CDATA[jenkins]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://developing.frogtek.org/?p=1563</guid>
		<description><![CDATA[Os presento la última &#8220;frikada&#8221; que hemos añadido a nuestra colección de gadgets de oficina. Con el viejo servidor, actualmente en desuso, una pantalla vieja y el plugin de Jenkins  eXtreme Feedback Panel Plugin. Hemos montado un visualizador del estado de &#8230; <a href="http://developing.frogtek.org/2012/01/10/visualizar-el-servidor-de-integracion-continua/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://developing.frogtek.org/wp-content/uploads/2012/01/IMG_20120105_172731.jpg"><img class="alignright  wp-image-1565" title="Monitor de monitorización" src="http://developing.frogtek.org/wp-content/uploads/2012/01/IMG_20120105_172731.jpg" alt="Monitor de monitorización" width="360" height="601" /></a>Os presento la última &#8220;<em>frikada</em>&#8221; que hemos añadido a nuestra colección de gadgets de oficina.</p>
<p>Con el viejo servidor, actualmente en desuso, una pantalla vieja y el plugin de <strong>Jenkins</strong>  <a href="https://wiki.jenkins-ci.org/display/JENKINS/eXtreme+Feedback+Panel+Plugin">eXtreme Feedback Panel Plugin</a>. Hemos montado un visualizador del estado de nuestro servidor de integración continua (<a href="https://en.wikipedia.org/wiki/Jenkins" target="_blank">Jenkins</a>).</p>
<p>El objetivo esta claro. Conseguir estar enterados en todo momento de la salud de nuestras construcciones. Ya no vale eso de &#8220;no vi el email&#8221;.</p>
<p>Además informa del culpable de la rotura si la hay. Y muestra el número de tests añadidos en la última construcción, entre otras virguerías.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://developing.frogtek.org/2012/01/10/visualizar-el-servidor-de-integracion-continua/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Katas diarias</title>
		<link>http://developing.frogtek.org/2011/12/20/katas-diarias/</link>
		<comments>http://developing.frogtek.org/2011/12/20/katas-diarias/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 10:40:23 +0000</pubDate>
		<dc:creator>Jose Cortés</dc:creator>
				<category><![CDATA[programación]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[code kata]]></category>
		<category><![CDATA[código]]></category>

		<guid isPermaLink="false">http://developing.frogtek.org/?p=1550</guid>
		<description><![CDATA[Hace unas semanas se nos ocurrió retomar el tema de las Katas, y digo retomar porque hace un tiempo nos dio por hacer Katas una vez a la semana. Esta vez fue diferente, en vez de hacerlo con tanto tiempo &#8230; <a href="http://developing.frogtek.org/2011/12/20/katas-diarias/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hace unas semanas se nos ocurrió retomar el tema de las Katas, y digo retomar porque hace un tiempo nos dio por hacer Katas una vez a la semana. Esta vez fue diferente, en vez de hacerlo con tanto tiempo de diferencia, nos planteamos hacerlas <strong>diariamente</strong>. En eso consiste la Kata, ¿no? en practicar, practicar y practicar.</p>
<p>Así pues, empezamos Julio, Pedro y yo con Katas diarias (más adelante se uniría Javier Martínez a la fiesta). Cada uno de nosotros se propuso un objetivo concreto con dichas Katas:</p>
<p>* Julio pretende <strong>mejorar su rapidez de desarrollo en Eclipse</strong>, aprendiendo teclas rápidas y trucos del IDE</p>
<p>* Pedro se propuso <strong>aprender emacs</strong> y mejorar su programación en este entorno (¡¡y vaya si lo está haciendo!! Ayer me enseñó unas cosas espectaculares, pero creo que eso se merece otro post)</p>
<p>* Yo, por otro lado, me propuse <strong>aprender Vim</strong>.</p>
<p>Y todos haríamos la Kata en un lenguaje diferente al que estamos habituados, en este caso, Python.</p>
<p>Cada semana elegíamos una Kata del repositorio de <a href="http://12meses12katas.com/">12meses12katas</a> y durante esa semana trabajábamos durante 25 minutos en esa Kata. Una vez pasado el tiempo, mostrábamos a los compañeros el código realizado y lo comentábamos entre todos. Al día siguiente empezaríamos de nuevo, desde cero.</p>
<p>Hace poco, cambiamos las reglas del juego. Ahora, lo que pretendíamos hacer es escoger una Kata y hacerla durante un mes. La primera semana la haríamos normalmente pero el resto de las semanas y hasta que acabase el mes nos pondríamos limitaciones, para explorar otras formas de resolver el problema y cambiar la forma de pensar. Se nos ocurrieron cosas como:</p>
<p>* Hacer la Kata solo con objetos, nada de primitivos. Encapsulamiento máximo</p>
<p>* Hacer la Kata en modo spaghetti-code. Nada de refactors</p>
<p>(Llevamos poco tiempo haciendo esto, así que solo se nos han ocurrido estas restricciones).</p>
<p>No puedo hablar por mis compañeros, pero creo que en general es una muy buena práctica. No solo mejoras en rapidez a la hora de desarrollar en un lenguaje en concreto si no que además, en nuestro caso, estamos aprendiendo otras herramientas de trabajo. 25 minutos al día, cada día. Es poco tiempo y aporta mucho.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://developing.frogtek.org/2011/12/20/katas-diarias/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Resumen del Global Day of Code Retreat en Aragón</title>
		<link>http://developing.frogtek.org/2011/12/05/resumen-del-global-day-of-code-retreat-en-aragon/</link>
		<comments>http://developing.frogtek.org/2011/12/05/resumen-del-global-day-of-code-retreat-en-aragon/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 11:56:40 +0000</pubDate>
		<dc:creator>Guillermo Caudevilla</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[miscelánea]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[code retreat]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[frogtek]]></category>
		<category><![CDATA[walqa]]></category>

		<guid isPermaLink="false">http://developing.frogtek.org/?p=1538</guid>
		<description><![CDATA[El resumen es sencillo: lo pasamos muy bien. Es toda una satisfacción ver como la gente responde ante eventos de estas características, y se puede juntar a 3o personas con ganas de aprender un sábado entero. Sebastián fue el maestro &#8230; <a href="http://developing.frogtek.org/2011/12/05/resumen-del-global-day-of-code-retreat-en-aragon/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>El resumen es sencillo: lo pasamos <strong>muy bien</strong>.</p>
<p>Es toda una <strong>satisfacción</strong> ver como la gente responde ante eventos de estas características, y se puede juntar a 3o personas con ganas de aprender un <strong>sábado entero</strong>. Sebastián fue el maestro de ceremonias perfecto, proponiendo distintos <strong>retos</strong> cada vez más <strong>complejos</strong> e <strong>imaginativos</strong>. Creo que el que más gustó fue lo de hacer ping-pong programming en silencio.</p>
<p>También fue divertido contar con las dos programadoras <strong>más jóvenes</strong> de todas las localizaciones de este Global Day of Code Retreat y ver cómo alternan los pomodoros con el <strong>juego de la goma</strong>.</p>
<p><a href="http://developing.frogtek.org/wp-content/uploads/2011/12/IMG_20111203_111704.jpg"><img class="aligncenter size-full wp-image-1539" title="IMG_20111203_111704" src="http://developing.frogtek.org/wp-content/uploads/2011/12/IMG_20111203_111704.jpg" alt="" /></a></p>
<p>Os dejo un par de fotos del evento.</p>
<p><img class="aligncenter size-full wp-image-1540" title="IMG_20111203_105604" src="http://developing.frogtek.org/wp-content/uploads/2011/12/IMG_20111203_105604.jpg" alt="" /><img class="aligncenter size-full wp-image-1542" title="IMG_20111203_180545" src="http://developing.frogtek.org/wp-content/uploads/2011/12/IMG_20111203_180545.jpg" alt="" /></p>
<p>Hasta la próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://developing.frogtek.org/2011/12/05/resumen-del-global-day-of-code-retreat-en-aragon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Art-attack en Frogtek</title>
		<link>http://developing.frogtek.org/2011/11/21/art-attack-en-frogtek/</link>
		<comments>http://developing.frogtek.org/2011/11/21/art-attack-en-frogtek/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 12:54:06 +0000</pubDate>
		<dc:creator>Guillermo Caudevilla</dc:creator>
				<category><![CDATA[humor]]></category>
		<category><![CDATA[frogtek]]></category>
		<category><![CDATA[post-it]]></category>
		<category><![CDATA[walqa]]></category>

		<guid isPermaLink="false">http://developing.frogtek.org/?p=1528</guid>
		<description><![CDATA[Un rato, unos cuantos cientos de post-its, mucha ilusión y algo de frikismo. El resultado:]]></description>
			<content:encoded><![CDATA[<p>Un rato, unos cuantos cientos de <strong>post-its</strong>, mucha ilusión y algo de <strong>frikismo</strong>.</p>
<p>El resultado:</p>
<p><a href="http://developing.frogtek.org/wp-content/uploads/2011/11/IMG_20111119_142144.jpg"><img class="aligncenter size-large wp-image-1529" title="IMG_20111119_142144" src="http://developing.frogtek.org/wp-content/uploads/2011/11/IMG_20111119_142144-1024x768.jpg" alt="" width="640" height="480" /></a></p>
<p><a href="http://developing.frogtek.org/wp-content/uploads/2011/11/IMG_20111119_141951.jpg"><img class="aligncenter size-large wp-image-1531" title="IMG_20111119_141951" src="http://developing.frogtek.org/wp-content/uploads/2011/11/IMG_20111119_141951-1024x768.jpg" alt="" width="640" height="480" /></a><a href="http://developing.frogtek.org/wp-content/uploads/2011/11/IMG_20111119_142850.jpg"><img class="aligncenter size-large wp-image-1530" title="IMG_20111119_142850" src="http://developing.frogtek.org/wp-content/uploads/2011/11/IMG_20111119_142850-1024x767.jpg" alt="" width="640" height="479" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://developing.frogtek.org/2011/11/21/art-attack-en-frogtek/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Aprendiendo a usar el NDK (Parte I)</title>
		<link>http://developing.frogtek.org/2011/11/16/aprendiendo-ndk-frogtek/</link>
		<comments>http://developing.frogtek.org/2011/11/16/aprendiendo-ndk-frogtek/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 13:38:06 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[ndk]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[hello world]]></category>
		<category><![CDATA[nativo]]></category>

		<guid isPermaLink="false">http://developing.frogtek.org/?p=1508</guid>
		<description><![CDATA[En Frogtek, últimamente, hemos estado usando la NDK para poder dar a nuestro querido tiendatek una funcionalidad muy especial. Queremos compartir con vosotros toda nuestra aventura y para eso vamos a comenzar desde lo más básico (NDK Hello World), terminando &#8230; <a href="http://developing.frogtek.org/2011/11/16/aprendiendo-ndk-frogtek/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En Frogtek, últimamente, hemos estado usando la <strong>NDK</strong> para poder dar a nuestro querido <strong>tiendatek</strong> una funcionalidad muy <strong>especial</strong>.<br />
Queremos <strong>compartir</strong> con vosotros toda nuestra <strong>aventura</strong> y para eso vamos a comenzar desde lo más básico (<strong>NDK Hello World</strong>), terminando con algo realmente <strong>mágico</strong> (que no <em>majico</em>) y <strong>anfibio</strong>.</p>
<p>La ndk es un conjunto de herramientas que nos permite construir librerías compartidas para poder llamar desde Java a código nativo.<br />
Las instrucciones nativas se ejecutan sin pasar por la máquina virtual. Por eso, una de las razones por las cuales se escribe código en la ndk es el <strong>rendimiento</strong>.<br />
En nuestro caso la elección de la ndk viene dada por la necesidad de cargar librerías que no podemos utilizar directamente en Java. Realmente podemos programar una aplicación 100% nativa. Es decir: incluyendo actividades codificadas completamente en C.</p>
<p>Para realizar esta tarea, la gente de Google usa <a href="http://es.wikipedia.org/wiki/Java_Native_Interface">JNI (Java Native Interface)</a>. <strong>JNI</strong> es una interfaz que nos permite hacer llamadas a código escrito en C desde Java mediante un sencillo sistema de nombrado de los métodos.<br />
Eso sí: debemos tener cuidado con la <strong>gestión de memoria que hace JNI</strong>; pero de ello hablaremos en próximos posts.</p>
<p>Vayamos al grano. Debemos descargar el conjunto de herramientas que provee Android desde <a href="http://developer.android.com/sdk/ndk/index.html">aquí</a>. Después, debemos seguir estas instrucciones:</p>
<p><span class="Apple-style-span" style="font-size: 16px; color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 24px;">Creamos un proyecto Android normal, creando un layout básico con un botón (el que hará la llamada al código nativo). </span></p>
<p><span class="Apple-style-span" style="font-size: 16px; color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 24px;">En la carpeta raíz del proyecto creamos una carpeta llamada jni, que incluirá dos ficheros llamados Android.mk (el makefile, con la A en mayúscula). Este fichero contiene las instrucciones para construir el código nativo.</span></p>
<pre>LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE:= ndksample
LOCAL_SRC_FILES:= ndksample.c

include $(BUILD_SHARED_LIBRARY)</pre>
<p><span class="Apple-style-span" style="font-size: 16px; color: #444444; font-family: Georgia, 'Bitstream Charter', serif; line-height: 24px;">Seguidamente, crear otro fichero que nosotros hemos llamado ndksample.c (fichero que contendrá las funciones nativas). </span></p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;string.h&gt;</span>
<span style="color: #339933;">#include &lt;jni.h&gt;</span>
&nbsp;
jstring Java_org_frogtek_ndksample_Main_getStringFromNDK<span style="color: #009900;">&#40;</span>JNIEnv<span style="color: #339933;">*</span> env<span style="color: #339933;">,</span> jobject this<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">*</span>env<span style="color: #009900;">&#41;</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>NewStringUTF<span style="color: #009900;">&#40;</span>env<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Croak!!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Ahora hay que compilar dicho fichero c para construir la librería que será cargada desde Java. Para ellos se utiliza la herramienta <em>nkd-build </em>que está en la carpeta de la ndk que anteriormente descargamos, ejecutando este comando:</p>
<p><strong>./ndk-buil -C /ruta/a/nuestro/proyecto</strong></p>
<p>Ha de ser la ruta raíz del proyecto. Este comando terminará con una linea similar a</p>
<p><strong>libndksample.so =&gt; libs/armeabi/libndksample.so</strong></p>
<p>Esto quiere decir que todo ha ido bien y que nos ha generado la librería, copiándola al sitio correcto dentro de nuestro proyecto. Si hacemos un refresh en Eclipse observaremos la presencia de dicho fichero.</p>
<p>Una vez que tenemos la librería compilada y generada, podemos llamarla desde Java. Para este cometido, lo primero que tenemos que hacer es cargar dicha librería usando el siguiente método de la clase System:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">static</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">System</span>.<span style="color: #006633;">loadLibrary</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ndksample&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Esta llamada hay que hacerla de manera estática, dentro de la clase que hará uso de la función o funciones de C. Nótese que el nombre que ponemos ha de ser el que hemos puesto en LOCAL_MODULE en el Android.mk</p>
<p>También tenemos que definir el método nativo para poder llamarlo desde Java. Lo haremos de la siguiente manera:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"> <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">native</span> <span style="color: #003399;">String</span> getStringFromNDK<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Tenemos que notar que dicho método ha de corresponder con la firma del que definimos en el código c, y no solo eso, también ha de coincidir el paquete y la clase que contienen esta llamada con la que hemos escrito en la firma del método de c.</p>
<p>Ahora solo nos queda llamarlo para poder ver que todo funciona:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"> Toast.<span style="color: #006633;">makeText</span><span style="color: #009900;">&#40;</span>Main.<span style="color: #000000; font-weight: bold;">this</span>, getStringFromNDK<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, Toast.<span style="color: #006633;">LENGTH_LONG</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Esto ha sido todo para nuestro primer post de una serie en la que hablaremos sobre la NDK. <strong>Y recordad, pequeños developers: lo nativo mola. Podéis descargar el proyecto desde <a href="http://developing.frogtek.org/wp-content/uploads/2011/11/frogtekNDKSample.zip">aquí</a>.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://developing.frogtek.org/2011/11/16/aprendiendo-ndk-frogtek/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Teaser de Sebastián Hermida para el Code Retreat</title>
		<link>http://developing.frogtek.org/2011/11/14/teaser-de-sebastian-hermida-para-el-code-retreat/</link>
		<comments>http://developing.frogtek.org/2011/11/14/teaser-de-sebastian-hermida-para-el-code-retreat/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 14:25:51 +0000</pubDate>
		<dc:creator>Guillermo Caudevilla</dc:creator>
				<category><![CDATA[miscelánea]]></category>

		<guid isPermaLink="false">http://developing.frogtek.org/?p=1502</guid>
		<description><![CDATA[Sin palabras. Por si alguien tenía alguna duda,  lo pasaremos bien. Teaser para el Global Code Retreat de Aragon 2011 from Sebastian Hermida on Vimeo.]]></description>
			<content:encoded><![CDATA[<p>Sin <strong>palabras</strong>. <img src='http://developing.frogtek.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Por si alguien tenía alguna duda,  lo <strong>pasaremos bien</strong>.</p>
<p><object width="400" height="225" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=32079994&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /><embed width="400" height="225" type="application/x-shockwave-flash" src="http://vimeo.com/moogaloop.swf?clip_id=32079994&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" allowfullscreen="true" allowscriptaccess="always" /></object></p>
<p><a href="http://vimeo.com/32079994">Teaser para el Global Code Retreat de Aragon 2011</a> from <a href="http://vimeo.com/user6312830">Sebastian Hermida</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://developing.frogtek.org/2011/11/14/teaser-de-sebastian-hermida-para-el-code-retreat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>El cambio comienza contigo</title>
		<link>http://developing.frogtek.org/2011/11/14/el-cambio-comienza-contigo/</link>
		<comments>http://developing.frogtek.org/2011/11/14/el-cambio-comienza-contigo/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 03:43:27 +0000</pubDate>
		<dc:creator>Julio García</dc:creator>
				<category><![CDATA[miscelánea]]></category>

		<guid isPermaLink="false">http://developing.frogtek.org/?p=1495</guid>
		<description><![CDATA[Henrik Kniberg autor de &#8220;Scrum and XP from the Trenches&#8221; publicó hace poco la presentación que realizó en el Tokyo Scrum Gathering. Me ha gustado mucho poder leerla y eso que son sólo slides, me habría encantado verla. Puede que &#8230; <a href="http://developing.frogtek.org/2011/11/14/el-cambio-comienza-contigo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Henrik Kniberg autor de &#8220;<a href="http://www.infoq.com/minibooks/scrum-xp-from-the-trenches;jsessionid=10518886012380A3EA64A9ED067221D6" rel="permalink">Scrum and XP from the Trenches</a>&#8221; publicó hace poco<a href="http://dl.dropbox.com/u/1018963/projects/2011-10-19%20Japan%20Scrum%20Gathering/Change.pdf" target="_blank"> la presentación</a> que realizó en el <a href="http://www.scrumgatheringtokyo.org/sgt2011/index.php?id=7">Tokyo Scrum Gathering</a>. Me ha gustado mucho poder leerla y eso que son sólo slides, me habría encantado verla.</p>
<p><img class="aligncenter" title="El cambio comienza contigo" src="http://blog.crisp.se/wp-content/uploads/2011/11/Screen-Shot-2011-11-07-at-13.00.441.png" alt="El cambio comienza contigo" width="596" height="420" /></p>
<p>Puede que no cuente nada nuevo, como suele pasar como estas cosas, pero me ha gustado  ver como él mismo aplica sus ideas a su familia y a su vida. ¡Y le funciona! Podéis verlo en la parte final de la presentación.</p>
<p>Tendré que hacerle caso y comenzar a cambiar <img src='http://developing.frogtek.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://developing.frogtek.org/2011/11/14/el-cambio-comienza-contigo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scalabble: hot desking en Zaragoza</title>
		<link>http://developing.frogtek.org/2011/11/10/scalabble-hot-desking-en-zaragoza/</link>
		<comments>http://developing.frogtek.org/2011/11/10/scalabble-hot-desking-en-zaragoza/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 09:19:26 +0000</pubDate>
		<dc:creator>Javier Martínez</dc:creator>
				<category><![CDATA[miscelánea]]></category>
		<category><![CDATA[coworking]]></category>
		<category><![CDATA[hot desking]]></category>
		<category><![CDATA[hub]]></category>
		<category><![CDATA[scalabble]]></category>

		<guid isPermaLink="false">http://developing.frogtek.org/?p=1490</guid>
		<description><![CDATA[Desde hace unos meses, el equipo de Frogtek está asistiendo un día a la semana a las instalaciones de Scalabble, un local de &#8220;coworking&#8221; para practicar &#8220;hot desking&#8221;. &#8230; ¿No ha quedado claro, verdad? La traducción al cristiano es la &#8230; <a href="http://developing.frogtek.org/2011/11/10/scalabble-hot-desking-en-zaragoza/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Desde hace unos meses, el equipo de Frogtek está asistiendo un día a la semana a las instalaciones de <a href="http://www.scalabble.com/">Scalabble</a>, un local de &#8220;coworking&#8221; para practicar &#8220;hot desking&#8221;. </p>
<p>&#8230;<br />
¿No ha quedado claro, verdad? La traducción al cristiano es la siguiente: es un lugar donde gente de distintas empresas puede asistir a trabajar. Algo así como una oficina global, donde poder compartir ideas y promover iniciativas. Podemos llegar con nuestros portátiles, enchufarlos y conectarnos a la wifi existente, ¡y a trabajar! </p>
<p>Pero no solo eso, Scalabble también es un lugar donde poder presentar tu proyecto y potenciar tu empresa a través de distintas iniciativas. </p>
<p>Nosotros, además, no solo hemos utilizado las instalaciones para trabajar, sino que además hemos podido disfrutar (e impartir) charlas y talleres técnicos con gente de los círculos tecnológicos de Aragón.</p>
<p>Hace un año, desde Frogtek reclamábamos un <em>hub</em> de empresas para la zona de Zaragoza. Pues bien, ya lo tenemos aquí <img src='http://developing.frogtek.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://developing.frogtek.org/2011/11/10/scalabble-hot-desking-en-zaragoza/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
