<?xml version="1.0" encoding="UTF-8"?>
<rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Javi Sanromán</title>
	
	<link>http://jsanroman.net</link>
	<description>Web and iOS developer. Freelance Software Developer.</description>
	<lastBuildDate>Fri, 10 May 2013 19:34:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/jsanroman" /><feedburner:info uri="jsanroman" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Farmapo (pet-project)</title>
		<link>http://feedproxy.google.com/~r/jsanroman/~3/5JIbWZjBxzA/</link>
		<comments>http://jsanroman.net/2013/05/farmapo-pet-project/#comments</comments>
		<pubDate>Fri, 10 May 2013 19:20:45 +0000</pubDate>
		<dc:creator>jsanroman</dc:creator>
				<category><![CDATA[opendata]]></category>
		<category><![CDATA[Proyectos]]></category>

		<guid isPermaLink="false">http://jsanroman.net/?p=1033</guid>
		<description><![CDATA[Estas últimas semanas he ocupado parte de mi escaso tiempo libre en desarrollar Farmapo. Farmapo es una app para iOS con la que podrás consultar las farmacias de la provincia de Pontevedra más cercanas a la posición en la que &#8230; <a href="http://jsanroman.net/2013/05/farmapo-pet-project/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Estas últimas semanas he ocupado parte de mi escaso tiempo libre en desarrollar <a href="http://farmapo.jsanroman.net">Farmapo</a>.</p>
<p><a href="https://itunes.apple.com/es/app/farmapo/id632704870">Farmapo</a> es una app para iOS con la que podrás consultar las farmacias de la provincia de Pontevedra más cercanas a la posición en la que te encuentres, con todas sus guardias del día actual y otros datos de interés (teléfono, email, etc).</p>
<p>Todos los desarrollos en los que había trabajado con iOS habían sido para terceros, la publicación siempre quedaba de mano de estos. Mi principal objetivo personal con Farmapo no era otro que conocer todo el proceso de publicación de una app, tener un conocimiento más global de todo el entorno, y seguir aprendiendo tanto con rails como con iOS.</p>
<p>Los datos de Farmapo los obtenemos del cofpo.org, así que tampoco podemos garantizar que estos sean completamente fiables, son los que ellos ofrecen. Y no, no hay ws ni nada parecido.</p>
<p>Además, he vuelto a trabajar con <a href="https://twitter.com/angelespariente">Ángeles</a> y <a href="https://twitter.com/adolfomaragoto">Adolfo</a>, de <a href="http://a2laboratoriodeideas.com">a2laboratoriodeideas.com</a>, ya hacía mucho que no compartíamos proyecto y era una gran oportunidad que queríamos aprovechar. Ellos se han encargado de todo el diseño tanto de la app como de la <a href="http://farmapo.jsanroman.net">landing</a> ¿a que ha quedado chula?. ¡Gracias!.</p>
<p>¿Y ahora que?, pues bueno, como proyecto personal su recorrido y expectativas son mínimas, si a alguien le resulta de utilidad ya las habremos superado con creces.</p>
<p>¿Y que más?, pues nada, podemos seguir aprendiendo, y como no hay mejor forma de aprender que acompañado, ya he liado a <a href="https://twitter.com/michogar">Micho</a> para desarrollar mano a mano la versión android. Eso sí, sin exigencias, que es un pet-project, bueno no, un pet-project-colaborativo <img src='http://jsanroman.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<div style="margin-bottom:520px;">
<img src="http://jsanroman.net/wp-content/uploads/2013/05/screenshot1.jpg" alt="screenshot farmapo" style="float:left;margin-right:5px;" /><img src="http://jsanroman.net/wp-content/uploads/2013/05/screenshot2.jpg" alt="screenshot farmapo" style="float:left;margin-right:5px;" /><img src="http://jsanroman.net/wp-content/uploads/2013/05/screenshot3.jpg" alt="screenshot farmapo" style="float:left;"/>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jsanroman.net/2013/05/farmapo-pet-project/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://jsanroman.net/2013/05/farmapo-pet-project/</feedburner:origLink></item>
		<item>
		<title>Retrospectiva 2012</title>
		<link>http://feedproxy.google.com/~r/jsanroman/~3/NRkWTPmuHKc/</link>
		<comments>http://jsanroman.net/2013/01/retrospectiva-2012/#comments</comments>
		<pubDate>Wed, 02 Jan 2013 14:53:46 +0000</pubDate>
		<dc:creator>jsanroman</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://jsanroman.net/?p=984</guid>
		<description><![CDATA[Veo a mi alrededor y como no, he de decir que 2012 ha sido un buen año para mi, aún sin haber cumplido la mayoría de los objetivos que me había propuesto, ha sido un buen año. Mucho trabajo y &#8230; <a href="http://jsanroman.net/2013/01/retrospectiva-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Veo a mi alrededor y como no, he de decir que 2012 ha sido un buen año para mi, aún sin haber cumplido la mayoría de los objetivos que me había propuesto, ha sido un buen año.</p>
<p>Mucho trabajo y nuevos proyectos han ido cambiando el rumbo que tenía previsto y embarcándome en una dinámica de la que solo he podido salir al final, pero hemos salido y queremos nuevos retos:</p>
<ul>
<li>He cerrado 3 proyectos de ecommerce, 2 de ellos con un nivel de exigencia enorme y de los que he aprendido muchísimo: <a href="http://knitbrary.com/store">knitbrary.com/store</a>, <a href="http://purificaciongarcia.com">purificaciongarcia.com</a>, <a href="http://a-tomica.com">a-tomica.com</a>.</li>
<li>He liberado un sencillo plugin para magento, <a href="https://github.com/jsanroman/Jsa_storelocation">Jsa_storelocation</a>, con el que gestionar y mostrar puntos de venta físicos en un mapa de google. Más allá de su sencillez me ha servido para ir adentrádome poco a poco en la compleja arquitectura magento y para hacer las cosas bien en esta plataforma.</li>
<li>He continuado con el mantenimiento y desarrollo de nuevas funcionalidades de 2 importantes proyectos en php, secretos <img src='http://jsanroman.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</li>
<li>Hemos desarrollado nuevas funcionalidades y mejoras varias en <a href="http://mitwiz.com">mitwiz.com</a>, aunque absolutamente insuficientes, este es uno de mis grandes debes de 2012.</li>
<li>He comenzado a colaborar con <a href="http://adianteapps.com">adianteapps</a> tanto en la app servidor como en los clientes iOS.</li>
<li>Conforme ha avanzado el año he recibido cada vez más propuestas de colaboración en proyectos interesantes, pero también con cada vez menos o ningún recurso, y alguna que otra ida de olla. Supongo que la situación actual es propicia para esto.</li>
<li>He conocido a más gente interesante que ningún otro año, y he empezado a asistir a algún evento con regularidad.</li>
<li>A un nivel más personal he suspendido en casi todo lo que me proponía: hacer más deporte, organizar mejor mi tiempo, mejorar mi nivel de inglés, escribir más en este blog.</li>
</ul>
<p>Algunas de las cosas que me gustaría conseguir este 2013:</p>
<ul>
<li>Adentrarme mucho más en el mundo móvil. Esta última semana del año he estado de semivacaciones y he avanzado en un petproject que pronto podré publicar.</li>
<li>Debería ser el año de mitwiz móvil.</li>
<li>Me gustaría empezar a hacer algo sencillo para android, conocer mínimamente la plataforma.</li>
<li>Reescribir y reenfocar <a href="http://comoestaelpanorama.com">comoestaelpanorama.com</a>, lo tengo entre ceja y ceja desde hace tiempo.</li>
<li>Tomarme todas las vacaciones que no he podido este año.</li>
<li>Empezar clases de inglés intensivas.</li>
<li>Todavía por planificar pero es muy posible que una pequeña estancia fuera de España, creo que <a href="https://twitter.com/isacostas">@isacostas</a> me dará el empujón definitivo.</li>
<li>Y en todo lo que tengo pendiente aunque suene a topicazo de año nuevo: más deporte (+btt pls), más tiempo para hacer las cosas que más me gustan, más enseñar y vender mejor mi trabajo (también escribir aquí claro).</li>
</ul>
<p>Pues eso, seguro que este año nos esperan retos la mar de interesantes <img src='http://jsanroman.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , ¡a por el!</p>
]]></content:encoded>
			<wfw:commentRss>http://jsanroman.net/2013/01/retrospectiva-2012/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://jsanroman.net/2013/01/retrospectiva-2012/</feedburner:origLink></item>
		<item>
		<title>Panel de estadísticas (analytics api, gattica, google charts)</title>
		<link>http://feedproxy.google.com/~r/jsanroman/~3/fowXoxbMN_E/</link>
		<comments>http://jsanroman.net/2012/12/panel-de-estadisticas-analytics-api-gattica-google-charts/#comments</comments>
		<pubDate>Sun, 09 Dec 2012 10:53:03 +0000</pubDate>
		<dc:creator>jsanroman</dc:creator>
				<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://jsanroman.net/?p=948</guid>
		<description><![CDATA[Estoy colaborando en un proyecto en el que necesitamos mostrar las estadísticas de las app&#8217;s móviles de nuestros clientes. Claro que usamos google analytics, pero para hacerle la consulta más sencilla a nuestros usuarios hemos decidido añadir un panel de &#8230; <a href="http://jsanroman.net/2012/12/panel-de-estadisticas-analytics-api-gattica-google-charts/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Estoy colaborando en un proyecto en el que necesitamos mostrar las estadísticas de las app&#8217;s móviles de nuestros clientes. Claro que usamos google analytics, pero para hacerle la consulta más sencilla a nuestros usuarios hemos decidido añadir un panel de estadísticas al mismo gestor que usan para configurar su app.</p>
<p>La plataforma en servidor es rails con la colección de gemas correspondientes.</p>
<p>Para integrarnos con analytics usaremos <a href="https://github.com/chrisle/gattica">gattica</a>, muy sencillota.</p>
<p>Para mostrar estos datos en sus respectivos gráficos usaremos <a href="https://google-developers.appspot.com/chart/">google charts</a>.</p>
<p>Todo muy facilito, aunque en ocasiones sea necesario manejar mínimamente los datos que devuelve analytics para mostrarlos en charts.</p>
<p>Pero, algo que sí me ha llamado la atención por ser ambas herramientas de google (charts y analytics):</p>
<ul>
<li>Cuando pides datos por país (país es una dimensión) a analytics, este <strong>devuelve sus nombres de país</strong>.</li>
<li>Cuando filtras datos por país (país es un filter) a analytics, este <strong>necesita como filtro el nombre del país</strong>.</li>
<li>Pero para el gráfico <a href="https://google-developers.appspot.com/chart/interactive/docs/gallery/geochart">GeoChart</a> de regiones de un país, <strong>charts necesita que ese filtro país sea el código ISO del país</strong>.</li>
<li>Para llegar al nivel de región desde el nivel de país atendemos al evento regionClick, el cual como parámetros solo recibe el código ISO del país, por lo que no tendremos el nombre para decirle a analytics que nos devuelva las estadísticas para este país.</li>
</ul>
<p>Al final damos un pequeño rodeo, y además del evento &#8220;regionClick&#8221; habitual, usamos el evento &#8220;select&#8221; que se activará cada vez que pulsemos en un país del mapa, un poco de código para intentar clarificar el asunto:</p>
<pre class="code">
# Primero se ejecuta este evento del que obtenemos el código ISO del país seleccionado
google.visualization.events.addListener(geochart, 'regionClick', (e) ->
  isoCountrySelect = e.region
)

# A continuación se ejecuta este otro evento desde el que obtenemos el nombre del país seleccionado
google.visualization.events.addListener(geochart, 'select', (e)->
  console.log(e)
  selection = geochart.getSelection()
    if selection.length == 1
      selectedRow = selection[0].row
      selectedCountry = data.getValue(selectedRow, 0)
      # Llamamos a drawRegionsMap para dibujar el mapa de regiones con las estadísticas
      drawRegionsMap(selectedCountry, isoCountrySelect)
)

drawRegionsMap = (country, countryIso) ->
  # Añadimos el nombre de país al campo del formulario que pedirá los datos de analytics al servidor
  $('#country').val(country);
  # Creamos la tabla que almacena los datos para charts
  data = new google.visualization.DataTable()
  data.addColumn('string', 'City')
  data.addColumn('number', 'Access')

  options =
    region: countryIso
    displayMode: 'markers'

  geochart = new google.visualization.GeoChart(document.getElementById('geochart'))

  $.ajax
    async: true
    type: 'GET'
    url: $('#form_filter_stats').data('stats_for_regions_action')+'.json'
    data: $('#form_filter_stats').serialize()
    success: (r) ->
      for stat in r
        data.addRow([stat.city, stat.visits])

      geochart.draw(data, options)
</pre>
<p>Y aquí parte del resultado, aunque no podais toquetear <img src='http://jsanroman.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> :</p>
<p><img src="http://jsanroman.net/wp-content/uploads/2012/stats.png" alt="stats" /></p>
]]></content:encoded>
			<wfw:commentRss>http://jsanroman.net/2012/12/panel-de-estadisticas-analytics-api-gattica-google-charts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://jsanroman.net/2012/12/panel-de-estadisticas-analytics-api-gattica-google-charts/</feedburner:origLink></item>
		<item>
		<title>Compartir mysql con dropbox</title>
		<link>http://feedproxy.google.com/~r/jsanroman/~3/7uhYqyOjzoA/</link>
		<comments>http://jsanroman.net/2012/02/compartir-mysql-con-dropbox/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 11:10:42 +0000</pubDate>
		<dc:creator>jsanroman</dc:creator>
				<category><![CDATA[bd]]></category>

		<guid isPermaLink="false">http://jsanroman.net/?p=816</guid>
		<description><![CDATA[Hace bastante tiempo que además de tener mis proyectos versionados en bitbucket, muchos de ellos están sincronizados con dropbox. Esto me permite trabajar en cualquiera de los 2 equipos que utilizo habitualmente. Pero desde que trabajo de esta forma tengo &#8230; <a href="http://jsanroman.net/2012/02/compartir-mysql-con-dropbox/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hace bastante tiempo que además de tener mis proyectos versionados en bitbucket, muchos de ellos están sincronizados con dropbox. Esto me permite trabajar en cualquiera de los 2 equipos que utilizo habitualmente.<br />
Pero desde que trabajo de esta forma tengo la necesidad de compartir bbdd, mysql en la mayoría de los casos. La solución hasta este momento ha sido la típica con mysqldump e import, completamente inoperativa. Desde entonces busco la mejor forma de sincronizar las bbdd&#8217;s entre los 2 equipos, solo entre esos 2 equipos, solo en desarrollo.</p>
<h2>Servidor externo mysql</h2>
<p>Aunque es una opción, intento mantener la infraestructura de desarrollo mínima (por esto utilizo bitbucket y dropbox). Un servidor en mi red local no es viable, muchas veces necesito trabajar fuera de la oficina, y abrir puertos tampoco me lo planteo. Un servidor fuera de mi red local sería demasiado lento para desarrollo.</p>
<h2>Automatizar export/import de .sql</h2>
<p>Otra de las opciones que se me pasaron por la cabeza, desarrollar una serie de scripts que automáticamente exportaran bbdd&#8217;s a .sql cada X tiempo/evento y se almacenaran en dropbox, otros scripts detectarían que los .sql fueron modificados y los importarían. Parece demasiado jaleo todo, y sobre todo demasiado tiempo perdido :S.</p>
<h2>Almacenar ficheros nativos de determinadas bbdd mysql en dropbox</h2>
<p>Apuntando con un enlace simbolico. Por ejemplo:</p>
<blockquote><p>ln -s /opt/local/var/db/mysql5/dbtest /dropbox/var/mysql/dbtest</p></blockquote>
<p>Esto funcionaría perfecto para el motor <a href="http://es.wikipedia.org/wiki/MyISAM">MyISAM</a> ya que todos los datos que usa cada bbdd se almacenan en esos ficheros MYD, MYI, frm. Pero con innodb no es tan sencillo. En mysql hay <a href="http://dev.mysql.com/doc/refman/5.0/es/innodb-configuration.html">bastante información sobre este motor</a>:</p>
<ul>
<li>Lo primero sería utilizar el parámetro <em>innodb_file_per_table</em> en my.cnf para que innodb genere un .idb con la estructura de cada tabla en lugar de almacenarlo todo en el fichero ibdata1.</li>
<li>Configurar el parámetro <em>innodb_data_home_dir</em> para que almacene el fichero <em>ibdata1</em> en dropbox y este sea compartido por ambos servidores mysql.</li>
<li>Configurar el parámetro <em>innodb_log_group_home_dir</em> para que almacene los ficheros de log de innodb en mysql y también sean compartidos.</li>
</ul>
<p>Con esto, y apuntando las bbdd&#8217;s que necesitemos sincronizar a dropbox, en principio sería suficiente. Pero dentro del jaleo que supone todo esto y los posibles problemas que puede traer, hay uno que me ha llevado a tomar otra decisión. Y es que yo creo links simbólicos para apuntar solo ciertas bbdd&#8217;s que necesito sincronizar, no todas, pero ibdata1 y los logs siguen almacenando información de cada bbdd que utilice el motor innodb dentro del servidor mysql. Y puedo tener otras bbdd&#8217;s diferentes entre ambos servidores y que no necesito compartir, creo que produciría un autentico caos y no tardaría en corromper el espacio de tablas.</p>
<h2>2 configuraciones independientes de mysql, una en local otra en dropbox</h2>
<p>Así que finalmente esta es mi solución ya en modo pruebas desde hace una semana: <strong>2 configuraciones diferentes</strong>, que yo uso con 2 ficheros my.cnf diferentes, los cuales renombro cada vez que necesito cambiar de entorno:</p>
<ul>
<li><em>my.cnf.local</em>: Con esta configuración mis bbdd&#8217;s se almacenan en local (no están sincronizadas), todo igual que hasta ahora.</li>
<li><em>my.cnf.dropbox</em>: En esta otra configuración lo que hago es cambiar la variable datadir para almacenar todos los ficheros que genera mysql en dropbox y por lo tanto sí que están permanentemente sincronizadas.</li>
</ul>
<p>La pega de compartir el datadir entre 2 servidores mysql es que solo uno de ellos puede estar iniciado a la vez, pero en definitiva, esto es el antipatrón servidor. Si resulta ser operativo, seguiremos puliendo.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsanroman.net/2012/02/compartir-mysql-con-dropbox/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://jsanroman.net/2012/02/compartir-mysql-con-dropbox/</feedburner:origLink></item>
		<item>
		<title>Resumen 2011 y objetivos para 2012</title>
		<link>http://feedproxy.google.com/~r/jsanroman/~3/B--ep-1mUnw/</link>
		<comments>http://jsanroman.net/2011/12/resumen-2011-y-objetivos-para-2012/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 17:14:52 +0000</pubDate>
		<dc:creator>jsanroman</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://jsanroman.net/?p=791</guid>
		<description><![CDATA[Este es el primer año que hago este ejercicio. Vista atrás y adelante para salir de la voragine diaria, coger algo de perspectiva y marcarse nuevos retos. Quizás en otro post comente más a fondo mis experiencias en el primer &#8230; <a href="http://jsanroman.net/2011/12/resumen-2011-y-objetivos-para-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Este es el primer año que hago este ejercicio. Vista atrás y adelante para salir de la voragine diaria, coger algo de perspectiva y marcarse nuevos retos. Quizás en otro post comente más a fondo mis experiencias en el primer año de freelance.</p>
<p><strong>Repaso general a este 2011:</strong></p>
<ul>
<li>Ha sido el año de mi salida de zara.com y el comienzo aventurero como freelance. Y sigo, así no ha ido mal del todo.</li>
<li>Mi primer proyecto más o menos serio con iOS para adianteventures. Es un gustazo aprender de otros en nuevos proyectos.</li>
<li><a href="http://www.mitwiz.com">Mitwiz</a> sale de beta privada y publicamos (y seguimos publicando) una <a href="http://blog.mitwiz.com/tagged/novedades">saca de nuevas mejoras</a>.</li>
<li>Bastantes contactos con potenciales clientes. Creo que he conseguido identificar los proyectos marronazo total, ahora me falta identificar los proyectos molones <img src='http://jsanroman.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Ningún problema con clientes, aunque muchas tomas de contacto que no fructifican. Creo que he tenido demasiada cautela, pero sigamos así.</li>
<li>Participamos en abredatos con <a href="http://www.comoestaelpanorama.com">comoestaelpanorama.com</a>, quedamos en 4º posición y la experiencia no ha podido ser mejor, pena no haber podido asistir a Madrid a la entrega de premios.</li>
<li>Desastre total en cuanto a deporte: ni gym ni he conseguido realizar ningún otro deporte con mínima regularidad.</li>
</ul>
<p><strong>Y ahora lo bueno, objetivos para el 2012:</strong>
<ul>
<li>Comenzar a vender mitwiz. Sin duda una prioridad, y mucho trabajo por delante.</li>
<li>Continuar mejorando mis hábitos como freelance: horarios, paseos/distracciones, automatizar tareas rutinarias, y en general aprovechar mejor mi tiempo, trabajar menos vaya.</li>
<li>Continuar descubriendo rails. Conseguir mínimo 2 nuevos proyectos en rails, 1 está al caer, me falta otro así que ya sabeis <img src='http://jsanroman.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</li>
<li>Conseguir de una vez hacer TDD o algo que se le parezca. Al menos conseguir crear buenos tests y datos de prueba.</li>
<li>Cerrar con éxito mis 2 primeros proyectos de ecommerce como freelance, sin duda el reto para los próximos 6 meses.</li>
<li>Escribir más en este blog. Cada vez escribo menos y es que cada vez tengo menos tiempo.</li>
<li>Volver a participar en ¿abredatos 2012?.</li>
<li>Ser más activo en alguna de las comunidades que me interesan: rails, agilismo, opendata, ios.</li>
<li>Mejorar mi inglés, esta ya va tocando <img src='http://jsanroman.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</li>
<li>Volver a hacer deporte, gym y algún otro deporte con regularidad, btt seguro <img src='http://jsanroman.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</li>
</ul>
<p>Creo que estoy siendo demasiado optimista pero si no lo soy ahora ¿cuando?.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsanroman.net/2011/12/resumen-2011-y-objetivos-para-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://jsanroman.net/2011/12/resumen-2011-y-objetivos-para-2012/</feedburner:origLink></item>
		<item>
		<title>Mitwiz abre sus puertas</title>
		<link>http://feedproxy.google.com/~r/jsanroman/~3/5RAQUoEadEQ/</link>
		<comments>http://jsanroman.net/2011/11/mitwiz-abre-sus-puertas/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 14:16:10 +0000</pubDate>
		<dc:creator>jsanroman</dc:creator>
				<category><![CDATA[Proyectos]]></category>

		<guid isPermaLink="false">http://jsanroman.net/?p=745</guid>
		<description><![CDATA[Ya todos los usuarios registrados os habéis enterado a través del mail que enviamos hace unos cuantos días. Y muchos otros a través de las redes, el boca a boca, y nuestra insistencia personal a los mas allegados (esperamos que &#8230; <a href="http://jsanroman.net/2011/11/mitwiz-abre-sus-puertas/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ya todos los usuarios registrados os habéis enterado a través del <a href="http://us2.campaign-archive1.com/?u=8b765317685f3f169712fd20a&#038;id=4133088e74&#038;e=ecb627b6b0">mail que enviamos hace unos cuantos días</a>. Y muchos otros a través de las redes, el boca a boca, y nuestra insistencia personal a los mas allegados (esperamos que sin llegar a la pesadez <img src='http://jsanroman.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) para que probéis y nos reporteis sensaciones. Y eso, que solo me faltaba a mi, desde este mi humilde blog, decir eso de:</p>
<div style="text-align:center;">
<blockquote><p><strong><br />
<a href="http://blog.mitwiz.com/post/11366748306/fin-de-la-beta-privada-mitwiz-abre-para-todos-los" style="color:#DE4401;">¡Mitwiz está abierto de par en par!</a></strong></p></blockquote>
<p><img src="http://jsanroman.net/wp-content/uploads/2011/11/abre_mitwiz.png" alt="" title="Mitwiz" class="aligncenter size-medium wp-image-775" />
</div>
<p>A estas alturas no os voy a contar que es mitwiz. Para esto podeis echarle un vistazo al <a href="http://blog.mitwiz.com">blog</a> y al propio <a href="http://www.mitwiz.com">mitwiz</a>, debería quedar bastante clara la cosa, sino es así tenemos un problema no planteado hasta el momento <a href="mailto:info@mitwiz.com">¡ponte en contacto por favor!</a>.</p>
<p>De nuevo, esto no ha hecho mas que empezar. El camino por recorrer sigue siendo infinito, nos mantendremos firmes, creemos en el proyecto. Nos esperan un montón de <a href="http://blog.mitwiz.com/tagged/novedades">nuevas funcionalidades</a>, otros soportes, +integración con herramientas externas, mejoras en usabilidad, contenido, aspecto &#8230; y &#8230; alguna que otra sorpresa ya mismo ¡estad atentos!.</p>
<p>Nosotros seguimos actualizando semana a semana mejorandolo todo, y además mientras, nos divertimos de lo lindo <img src='http://jsanroman.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://jsanroman.net/2011/11/mitwiz-abre-sus-puertas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://jsanroman.net/2011/11/mitwiz-abre-sus-puertas/</feedburner:origLink></item>
		<item>
		<title>Probando geoplugin.net desde ruby</title>
		<link>http://feedproxy.google.com/~r/jsanroman/~3/6RX2MUslXZk/</link>
		<comments>http://jsanroman.net/2011/07/probando-geoplugin-net-desde-ruby/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 11:24:16 +0000</pubDate>
		<dc:creator>jsanroman</dc:creator>
				<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jsanroman.net/?p=732</guid>
		<description><![CDATA[Ayer en un rato libre y tonto, estuve trasteando con ruby y el servicio de geolocalización por ip http://www.geoplugin.net. A la petición http://www.geoplugin.net/php.gp?ip=91.61.81.221 tenemos una respuesta del tipo: a:14:{s:14:"geoplugin_city";s:8:"Chemnitz";s:16:"geoplugin_region";s:6:"Saxony";s:18:"geoplugin_areaCode";s:1:"0";s:17:"geoplugin_dmaCode";s:1:"0";s:21:"geoplugin_countryCode";s:2:"DE";s:21:"geoplugin_countryName";s:7:"Germany";s:23:"geoplugin_continentCode";s:2:"EU";s:18:"geoplugin_latitude";s:15:"50.833301544189";s:19:"geoplugin_longitude";s:15:"12.916700363159";s:20:"geoplugin_regionCode";s:2:"13";s:20:"geoplugin_regionName";s:6:"Saxony";s:22:"geoplugin_currencyCode";s:3:"EUR";s:24:"geoplugin_currencySymbol";s:7:"&#8364;";s:27:"geoplugin_currencyConverter";d:0.68893261679999995283907310295035131275653839111328125;} Un objeto serializado al modo php. Depués de probar la gema &#8230; <a href="http://jsanroman.net/2011/07/probando-geoplugin-net-desde-ruby/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ayer en un rato libre y tonto, estuve trasteando con ruby y el servicio de geolocalización por ip <a href="http://www.geoplugin.net">http://www.geoplugin.net</a>. A la petición http://www.geoplugin.net/php.gp?ip=91.61.81.221 tenemos una respuesta del tipo:</p>
<pre class="code">
a:14:{s:14:"geoplugin_city";s:8:"Chemnitz";s:16:"geoplugin_region";s:6:"Saxony";s:18:"geoplugin_areaCode";s:1:"0";s:17:"geoplugin_dmaCode";s:1:"0";s:21:"geoplugin_countryCode";s:2:"DE";s:21:"geoplugin_countryName";s:7:"Germany";s:23:"geoplugin_continentCode";s:2:"EU";s:18:"geoplugin_latitude";s:15:"50.833301544189";s:19:"geoplugin_longitude";s:15:"12.916700363159";s:20:"geoplugin_regionCode";s:2:"13";s:20:"geoplugin_regionName";s:6:"Saxony";s:22:"geoplugin_currencyCode";s:3:"EUR";s:24:"geoplugin_currencySymbol";s:7:"&#8364;";s:27:"geoplugin_currencyConverter";d:0.68893261679999995283907310295035131275653839111328125;}
</pre>
<p>Un objeto serializado al modo php. Depués de probar la <a href="https://github.com/flori/json">gema json</a> y otros medios de <a href="http://www.skorks.com/2010/04/serializing-and-deserializing-objects-with-ruby/">serialización/deserialización</a>  de objetos ruby sin éxito, me encuentro con la gema <a href="http://www.aagh.net/files/ruby/php-serialize/doc/">php-serialize</a> que hace justo lo que necesito.</p>
<pre class="code">
      require 'php_serialize'
      geo_request = Net::HTTP.get_response(URI.parse("http://www.geoplugin.net/php.gp?ip="+request.remote_ip)).body
      geo_request=PHP.unserialize(ip)
      puts geo_request['geoplugin_latitude']
      puts geo_request['geoplugin_longitude']
</pre>
<p>Seguro que existen otras formas más eficientes de hacer lo mismo, pero por el momento me ha servido.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsanroman.net/2011/07/probando-geoplugin-net-desde-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://jsanroman.net/2011/07/probando-geoplugin-net-desde-ruby/</feedburner:origLink></item>
		<item>
		<title>Eliminando un commit local en mercurial</title>
		<link>http://feedproxy.google.com/~r/jsanroman/~3/Lr188OeVIDc/</link>
		<comments>http://jsanroman.net/2011/07/eliminando-un-commit-local-en-mercurial/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 10:42:41 +0000</pubDate>
		<dc:creator>jsanroman</dc:creator>
				<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[utilidades]]></category>

		<guid isPermaLink="false">http://jsanroman.net/?p=714</guid>
		<description><![CDATA[Desde hace un tiempo estoy usando bitbucket.org para mis proyectos, ¡y bien contento que estoy!. Ayer gracias a un commit en falso encontré este fantástico manual hg. Eliminar un commit de mercurial es tan sencillo como: hg strip revision_a_eliminar Pero &#8230; <a href="http://jsanroman.net/2011/07/eliminando-un-commit-local-en-mercurial/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Desde hace un tiempo estoy usando <a href="https://bitbucket.org/">bitbucket.org</a> para mis proyectos, ¡y bien contento que estoy!. Ayer gracias a un commit en falso encontré este <a href="http://hgbook.red-bean.com/read/mercurial-queues-reference.html#id446269">fantástico manual hg</a>. Eliminar un commit de mercurial es tan sencillo como:</p>
<pre class="code">
hg strip revision_a_eliminar
</pre>
<p>Pero para ejecutar este comando necesitamos activar la extension mq de mercurial. En mi caso, osx, solo he necesitado añadir al fichero .hgrc:</p>
<pre class="code">
[extensions]
mq=
</pre>
]]></content:encoded>
			<wfw:commentRss>http://jsanroman.net/2011/07/eliminando-un-commit-local-en-mercurial/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://jsanroman.net/2011/07/eliminando-un-commit-local-en-mercurial/</feedburner:origLink></item>
		<item>
		<title>Participamos en el abredatos 2011, !¿Como está el panorama?¡</title>
		<link>http://feedproxy.google.com/~r/jsanroman/~3/ny8BmjGbKK4/</link>
		<comments>http://jsanroman.net/2011/05/participamos-en-el-abredatos-2011-%c2%bfcomo-esta-el-panorama%c2%a1/#comments</comments>
		<pubDate>Tue, 10 May 2011 16:54:03 +0000</pubDate>
		<dc:creator>jsanroman</dc:creator>
				<category><![CDATA[opendata]]></category>
		<category><![CDATA[Proyectos]]></category>

		<guid isPermaLink="false">http://www.jsanroman.net/?p=632</guid>
		<description><![CDATA[Este fin de semana hemos participado en abredatos 2011 con ¡¿comoestaelpanorama?¡. Mis compañero-cracks de aventura, Paula, Javi, Damián, con los que en su momento tuve el gustazo de trabajar/estudiar, pero con los que hacía mucho mucho tiempo que no colaboraba. &#8230; <a href="http://jsanroman.net/2011/05/participamos-en-el-abredatos-2011-%c2%bfcomo-esta-el-panorama%c2%a1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img style="float:right;" title="abredatos logo" src="http://www.abredatos.es/wp-content/themes/abredatos/images/layout/logo_2011.png" alt="" width="177" height="158" /></p>
<p>Este fin de semana hemos participado en <a title="abredatos" href="http://www.abredatos.es/">abredatos 2011</a> con <a title="¿Como está el panorama?" href="http://comoestaelpanorama.com/">¡¿comoestaelpanorama?¡</a>.</p>
<p>Mis compañero-cracks de aventura, <a href="http://twitter.com/#!/paf82">Paula</a>, <a href="http://twitter.com/#!/aliencanibal">Javi</a>, <a href="http://twitter.com/#!/nimrud">Damián</a>, con los que en su momento tuve el gustazo de trabajar/estudiar, pero con los que hacía mucho mucho tiempo que no colaboraba. Ha sido tooodo un placer volver a compartir code, proyecto y grata experiencia con ellos.</p>
<p><strong>Abredatos:</strong></p>
<p>Abredatos es un concurso (este año es la segunda edición), organizado por <a title="Pro Bono Público" href="http://blog.probp.org/">Pro Bono Público</a>, para darle un poco de bombo al movimiento <a title="opendata" href="http://es.wikipedia.org/wiki/Datos_abiertos">opendata</a> en España. Intentar que la sociedad sepa que es y porqué se necesita el opendata, y que a la administración pública le llegue un poquito de ruído, y poco a poco (así es como funcionan estas cosas) estas ideas vayan calando. El <a title="Bases abredatos" href="http://www.abredatos.es/bases/">concurso consiste en</a> el desarrollo de una aplicación en nada menos que 48h!, y que consulte al menos una fuente de datos pública. Al finalizar el concurso (el domingo a las 00:00), todo proyecto debía tener un repositorio público con los fuentes, y su proyecto accesible para todo el mundo.</p>
<p><strong>Nuestra participación:</strong></p>
<p>Una primera toma de contacto allá por el 3 de abril, y un par de semanas después estabamos los 4 personajes comprometidos para participar (<a title="Equipo 62 abredatos 2011" href="http://live.abredatos.es/teams/62">somos el equipo 62!</a>), Javi y Paula desde Londres, Damián desde Vigo, y <a href="http://twitter.com/#!/javisanroman">aquí un servidor</a> desde Gondomar (<a title="Gondomar" href="http://maps.google.es/maps?f=q&amp;source=s_q&amp;hl=es&amp;geocode=&amp;q=gondomar&amp;aq=&amp;sll=40.396764,-3.713379&amp;sspn=12.391454,28.54248&amp;ie=UTF8&amp;hq=&amp;hnear=Gondomar,+Pontevedra,+Galicia&amp;t=h&amp;z=13&amp;iwloc=A">vamos a ponerlo en el mapa</a>).</p>
<p>Las siguientes fueron unas semanas de reflexiones e idas de olla sobre que podíamos hacer, que queriamos hacer, y si podíamos hacerlo (es realmente difícil con los datos disponibles hoy en día). La idea del empleo siempre estuvo presente por la importancia que tiene ahora, pero no conseguiamos encontrar nada realizable en 48h, nos faltaban muuchos datos (ya, por eso existe el concurso y para eso participamos, para que cambie el panorama).</p>
<p>Además de la idea del empleo surgieron otras: apps para geolocalizar información variada, y siempre por la zona de Vigo-Pontevedra (farmacias, bibliotecas, ptos wifi, buses,&#8230;), apps que ofreciera de una forma mas accesible contrataciones/licitaciones de la Xunta de Galicia, e incluso surgió la idea de un juego en el que elegir un par de congresistas, muy curioso pues finalmente el <a href="http://live.abredatos.es/teams/49">equipo 48</a> desarrollo <a href="http://www.congresoabierto.com/">un proyecto muy parecido</a>, ¡y con un resultado fantástico!.</p>
<p><strong>Técnicamente:</strong></p>
<p>Después de plantear rails (sabeis que siento devoción por este entorno), Damián y yo llegamos a la conclusión de que ninguno tenía la experiencia suficiente como para llevar a cabo un desarrollo tan intenso, y enfrentarnos con éxito veloz a esos problemas que siempre acabas encontrando (sabemos como funciona esto, ley murphy etc etc). Así que nos decidimos por php y en este caso codeigniter, no somos los+cool pero ha cumplido a la perfección <img src='http://jsanroman.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> . Además usamos <a title="jquery" href="http://jquery.com/">jquery</a>, <a title="google maps" href="http://code.google.com/intl/es/apis/maps/">google maps api</a>, <a title="php-excell-reader" href="http://code.google.com/p/php-excel-reader/">php-excell-reader</a>, <a title="Web Fonts" href="http://www.google.com/webfonts">google web fonts</a>, <a title="Google Charts" href="http://chart.apis.google.com">google charts</a>, google geocode.</p>
<p>Las fuentes que usamos para el proyecto han sido: <a title="Estadísticas empleo redtrabaja" href="https://www.redtrabaja.es/es/redtrabaja/static/Redirect.do?page=statsMunicipios">estadísticas de empleo de redtrabaja</a>, <a href="http://www.ine.es/pob_xls/pobmun10.xls">estadísticas de población del ine</a>, y la api de <a title="opcionempleo" href="http://www.opcionempleo.com/">opcionempleo</a>.</p>
<p>Para versionar usamos git, alojando el código en github, <a title="código fuente comoestaelpanorama" href="https://github.com/jsanroman/comoestaelpanorama">podeís consultar los fuentes aqui</a>.</p>
<p><strong>El desarrollo:</strong></p>
<p>El desarrollo durante el fin de semana tuvo varias fases de optimismo/pesimismo desmedido, en este sentido ya es complicado encontrar el equilibrio en un proyecto internet, ¡cuanto mas en un proyecto internet de 48h!, y cuanto mas en un proyecto internet de 48h y cada cual en un lugar diferente.</p>
<p>Durante el fin de semana, como no, el parseo de datos fué lo que mas complicó todo el desarrollo. Hasta el sabado de madrugada no teníamos todavía datos reales, y las funcionalidades implementadas trabajaban contra datos de pruebas, ¡muuucha incertidumbre!. Con el primer parseo serio teníamos datos incongruentes, en España había mas de 8M de parados, la cosa está mal pero no para tanto <img src='http://jsanroman.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Estabamos sumando las ultimas filas de los xls con el sumatorio, lo cual duplicaba todos los datos, ¡llegamos a pensar que habíamos interpretado mal la fuente de datos!, todo se vivía de una forma muy intensa y eran las casi las 5 de la mañana después de dormir 4h escasas la madrugada del viernes. Finalmente detectamos el error y el domingo por la mañana realizamos otro parseo con éxito.</p>
<p>Una vez datos parseados, teníamos ccaa/provincias/municipios y datos estadísticos asociados, nos quedaba un problema por solucionar, geolocalizar cada uno de los 8113 municipios de nuestra bbdd. La opción mas sencilla era google y <a href="http://maps.google.com/maps/api/geocode/json?address=Vigo,ES">su servicio geocode</a>, pero a las 600-1000 peticiones eramos baneados. Los vecinos, un par de modems 3g y en el entorno de producción nuestras soluciones, así poco a poco fuímos geolocalizando de 1000 en 1000 +-.</p>
<p>Las últimas horas del domingo fueron para algunos detalles, necesitamos pantalla &#8220;<a href="http://comoestaelpanorama.com//c/sobre">sobre el proyecto</a>&#8220;, estadísticas en portada, ¿de donde quitamos los datos?, etc. <a title="¿Como está el panorama?" href="http://comoestaelpanorama.com">Finalmente esto es lo que ha dado de sí</a>, sabemos que tiene cosas por pulir pero amiguetes, han sido 48h.</p>
<p><strong>La experiencia:</strong></p>
<p>La experiencia ha sido muy enriquecedora. Volver a trabajar con mis compis, saber que puedes dar de ti en tan poco tiempo, como organizar o mejor dicho desorganizar un proyecto así en tan poco tiempo, ver a cada momento como avanzaban los demás equipos, tomar tantas decisiones y en tan poco tiempo para poder llegar a tener algo, y la repercusión final.</p>
<p>Como apunte y que defiendo desde hace ya tiempo, comentar que el teletrabajo funciona y muy bien (he aquí la prueba), pero a mi no me convence, por lo que la próxima vez que participe en algo así intentaré, al menos con la parte más técnica, hacerlo de forma presencial, se pasa mucho mejor <img src='http://jsanroman.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  y se transmite mas conocimiento.</p>
<p>Para rematar, felicitar desde este mi humilde espacio a <a title="equipos abredatos 2011" href="http://live.abredatos.es/teams">todos los equipos que han participado</a>, en serio, las trabas para desarrollarlos son enormes, y los proyectos son de una calidad excelente.</p>
]]></content:encoded>
			<wfw:commentRss>http://jsanroman.net/2011/05/participamos-en-el-abredatos-2011-%c2%bfcomo-esta-el-panorama%c2%a1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://jsanroman.net/2011/05/participamos-en-el-abredatos-2011-%c2%bfcomo-esta-el-panorama%c2%a1/</feedburner:origLink></item>
		<item>
		<title>ruby1.9 y rails3 con rvm y passenger</title>
		<link>http://feedproxy.google.com/~r/jsanroman/~3/zxS1-8IyY0M/</link>
		<comments>http://jsanroman.net/2011/04/ruby19-y-rails3-con-rvm-y-passenger/#comments</comments>
		<pubDate>Fri, 22 Apr 2011 16:04:44 +0000</pubDate>
		<dc:creator>jsanroman</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[Sistemas]]></category>

		<guid isPermaLink="false">http://www.jsanroman.net/?p=612</guid>
		<description><![CDATA[Comentaba que uno de los caminos por los que me gustaría seguir es rails (ya veremos si lo consigo compaginar), así que en mi servidor de proyectos necesito servir rails además php. Quiero usar rails 3 y ruby 1.9 (de &#8230; <a href="http://jsanroman.net/2011/04/ruby19-y-rails3-con-rvm-y-passenger/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Comentaba que uno de los caminos por los que me gustaría seguir es rails (ya veremos si lo consigo compaginar), así que en mi servidor de proyectos necesito servir rails además php.</p>
<p>Quiero usar rails 3 y ruby 1.9 (de empezar, con lo último), parece que versiones demasiado nuevas para las últimas estables de la mayoría de distribuciones linux. Así que después de investigar un poco me encuentro con <a href="http://rvm.beginrescueend.com/">rvm</a> (ruby version manager, de este ya me había hablado @tothemario, un gestor de instalaciones ruby) y <a href="http://www.modrails.com">passenger</a> (un proyecto para servir rails a través de apache o nginx).</p>
<p>A través <a href="http://www.fangiotophia.com/journal/2010/8/31/random-act-of-stupidity-6-debian-rails-3-setup-guide.html">de este artículo</a> conseguí instalar rvm, no sin antes resolver varias dependencias:</p>
<pre class="code">
sudo apt-get install zlib1g zlib1g-dev zlibc build-essential
</pre>
<p>Como nota mental, recordar añadir la siguiente linea al final del fichero .bashrc</p>
<pre class="code">
[[ -s "/home/user/.rvm/scripts/rvm" ]] &#038;&#038; source "/home/user/.rvm/scripts/rvm"  # This loads RVM into a shell session.
</pre>
<p>Y ya podemos instalar la versión de ruby que necesitemos con <em>rvm install &#8220;version&#8221;</em> y cambiar de versión con <em>rvm use &#8220;version&#8221;</em>, realmente sencillo.</p>
<p>Rvm y las versiones de ruby instaladas se encuentran en <em>$HOME/.rvm</em> en caso de instalarse como usuario o en <em>/usr/local/rvm</em> en caso de una instalación con root.</p>
<p>A continuación toca la instalación de passenger:</p>
<pre class="code">
gem install passenger
passenger-install-apache2-module
</pre>
<p><em>passenger-install-apache2-module</em> nos guiará durante la instalación, nos pedirá que instalemos determinadas dependencias que no cumplimos, de todas las que propone la que nos puede dar problemas es: <em>apt-get install libopenssl-ruby</em>.</p>
<p>Como hemos instalado ruby a través de rvm, este no se entera del soporte openssl que passenger propone instalar mediante apt, así que instalamos openssl con rvm, y reinstalamos la versión de ruby necesaria:</p>
<pre class="code">
rvm package install openssl
rvm remove 1.9.2
rvm install 1.9.2 -C --with-openssl-dir=$HOME/.rvm/usr
</pre>
<p>Tras añadir las lineas respectivas a apache2.conf, ya tenemos rails3 funcionando en apache:</p>
<pre class="code">
LoadModule passenger_module $HOME/.rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/ext/apache2/mod_passenger.so
PassengerRoot $HOME/.rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5
PassengerRuby $HOME/.rvm/wrappers/ruby-1.9.2-p180/ruby
</pre>
<p>Finalmente intenté descargarme un proyecto privado desde github via http, para probar el entorno, pero la versión de git que tenía instalada (1.5) parece que da problemas con esta autenticación, así que buscando información actualizamos a la 1.7:</p>
<p>Añadimos el fuente de los backports al sources.list</p>
<pre class="code">
deb http://backports.debian.org/debian-backports lenny-backports main contrib non-free
</pre>
<p>Y actualizamos la versión de git a la 1.7</p>
<pre class="code">
apt-get update
apt-get -t lenny-backports install git
</pre>
<p>Fuentes:</p>
<p><a href="http://beginrescueend.com/packages/openssl/">http://www.fangiotophia.com/journal/2010/8/31/random-act-of-stupidity-6-debian-rails-3-setup-guide.html</a><br />
<a href="http://beginrescueend.com/packages/openssl/"> http://beginrescueend.com/packages/openssl/</a><br />
<a href="http://rvm.beginrescueend.com/"> http://rvm.beginrescueend.com/</a><br />
<a href="http://serverfault.com/questions/157383/why-does-the-debian-lenny-git-package-not-install-git"> http://serverfault.com/questions/157383/why-does-the-debian-lenny-git-package-not-install-git</a><br />
<a href="http://www.modrails.com/documentation/Users%20guide%20Apache.html"> http://www.modrails.com/documentation/Users%20guide%20Apache.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jsanroman.net/2011/04/ruby19-y-rails3-con-rvm-y-passenger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://jsanroman.net/2011/04/ruby19-y-rails3-con-rvm-y-passenger/</feedburner:origLink></item>
	</channel>
</rss>
