ACTUALIZACIÓN: Acabo de descubrir que Pete Warden es uno de los chicos que han levantado el escándalo del iPhone Tracker 😉
Ayer me encontré sin querer con una de esas joyas que genera el software libre: OpenHeatMap de Pete Warden.
Pete Warden es un auténtico crack. No solo por lo fácil que hace publicar datos, solo tenéis que ver los vídeos en los que cuenta como funciona OpenHeatMap para descubrir que además no se puede ser más abierto y humilde como persona.
La idea de OpenHeatMap es que creas un csv o una hoja de cálculo en google con la información que quieres representar geolocalizada, configuras como quieres el mapa y ya está. Pete ha creado un par de vídeos para explicarlo:
Este que es general para todo el mundo:
Y este otro más dirigido a periodistas:
Puede que exista una forma igual de sencilla para hacerlo con google maps, pero ¿quien no está hasta las narices de Google?
Además usa Openstreetmaps que desde siempre me han caído mucho mejor y están en la linea que tiene futuro: información abierta y libre para todo el mundo.
En modo server va como la seda pero para incluirlo en tu proyecto, en mi caso en el bazar garum, he tenido que pelearme un poco. Estos son los pasos que he realizado:
* Meter lo includes necesarios:
OpenHeatMap requiere jquery y esto ya lo tengo incluido en Bazar.
<%= javascript_include_tag(«jquery.openheatmap.js») %>
Me lo he bajado en local que no es cuestión de que Pete pague de más a Amazon por el almacenamiento.
* LLamar a OpenHeatMap
Esto es todo lo que se necesita:
<div id=»mapa-paises-container»></div>
<script type=’text/javascript’>
$(document).ready(function(){
// tamaño del mapa y tipo de render.
// no prefiero flash, pero html5 canvas no termina de ir bien todavía
$(‘#mapa-paises-container’).insertOpenHeatMap({
width: 800, height: 500, prefer: ‘flash’
});
});
function onMapCreated() {
var map = $.getOpenHeatMap();
csv = ‘<%= Pais.paisestocsv -%>’;
map.loadWaysFromFile(‘http://static.openheatmap.com/world_countries.osm’);
map.loadValuesFromCSVString(csv);
map.setSetting(‘gradient_value_min’, 0);
map.setSetting(‘gradient_value_max’, 10);
map.setColorGradient([‘#ffbdf7a0’, ‘#ffff0000’]);
}
</script>
El método de rails que me devuelve las empresas que hay en cada país es muy sencillo:
def self.paisestocsv
csv = "country_code,value\\n"
max = Pais.count_by_sql("select max(total_empresas_mercado) from paises")
for pais in Pais.where ('total_empresas_mercado > 0')
csv += "#{pais.cod3},#{(pais.total_empresas_mercado*10)/max}\\n"
end
return csv
end
Como veis simplemente selecciono los países que tienen empresas y monto un string en formato CSV que luego uso en los scripts de OpenHeatMap. Con el código iso de país de 2 dígitos no funciona o no lo he conseguido yo. Pero echando mano de geonames lo he incluido en la tabla de países. En el modo servidor si subes un CSV con códigos de 2 dígitos funciona perfectamente. Si alguien se anima a corregirlo, seguro que Pete se alegra mucho.
He normalizado los valores del número de empresas para siempre devuelva valores entre 0 y 10 para poder ajustar mejor los gradientes pero no estoy seguro de que haga falta realmente.
El resultado ya integrado con Bazar Garum se puede ver en la página de datos de Bazar. En un par de semanas tendremos los nuevos bazares en funcionamiento y poco a poco se ira llenando el mapa.
]]>
abril 22, 2011
Integrando OpenHeatMap en el Bazar Garum
abril 16, 2011
Hack: Como saber si Jazztel te está tomando el pelo con tu conexión adsl
Osmius, descubrí pachube y con un script en ruby es super fácil monitorizar la línea.
Los pasos son:
(1) Te creas una cuenta en pachube.
(2) Te creas un script en ruby o en lo que quieras como este:
require 'rubygems'
require 'mechanize'
require 'logger'
require 'json'
agent = Mechanize.new
agent.user_agent = 'Individueller User-Agent'
agent.user_agent_alias = 'Linux Mozilla'
agent.open_timeout = 3
agent.read_timeout = 4
agent.keep_alive = false
# agent.log = Logger.new(STDOUT)
agent.auth('admin', 'secreta')
url = 'http://192.168.1.1/info.html'
page = agent.get url
up = 0
down = 0
page.search('td').each do |td|
if up == 1
up = td.content
end
if td.content.match('Upstream')
up = 1
end
if down == 1
down = td.content
end
if td.content.match('Downstream')
down = 1
end
end
puts up
puts down
# mandamos la info a pachube
begin
http = Net::HTTP.new('api.pachube.com', 80)
http.start do |http|
req = Net::HTTP::Put.new("/v2/feeds/23385.csv", {'X-PachubeApiKey' => 'tu-api-del-feed'})
req.body = "0, #{up}\r\n1,#{down}\r\n"
resp = http.request(req)
puts resp.body
end
puts "Submitted to Pachube"
rescue
puts "Problem submitting results to Pachube"
puts $!
end
3) Lo metes en el cron:
*/10 * * * * /opt/local/bin/ruby /Users/juantomas/router.rb >> /tmp/router.log
4) En mi caso se va rellenado un gráfico como este:
5) Si tienes una cuenta en osmius, como pachube te exporta los datos en xml, json y csv lo puedes integrar con toda clase de alarmas y gráficos mucho mejores que con pachube 😉
El script es para el router comtrend que distribuye jazztel pero es muy fácil modificarlo para que obtenga los valores de otros routers.
]]>
abril 5, 2011
iPhly: Convierte tu iPhone en una emisora de RC
[caption id="" align="alignnone" width="275" caption="iPhly convierte tu iPhone en una emisora de RC"][/caption] iPhly es un ejemplo de como llevar al límite siendo creativo un dispositivo, en este caso un iPhone convertido en emisora de RC y aprovechar el hardware de un smartphone controlar un avión o un quadcopter. El proyecto iPhly está en Kickstarter y por supuesto no he podido resistirme a la tentación de financiarlo. iPhly es open hardware y free software. ¿Alguien se anima a portarlo a Android? Si no interesa el mundo de los dispositivos por RC o los UAV el hack que ha hecho Ari Krupnik es super sencillo y se puede usar para otro tipo de proyectos. Básicamente es usar la salida de audio del iPhone para hacer interfaces externos 😉 ACTUALIZACIÓN: El proyecto ya está casi financiado!!! ]]>
Fiesta de lanzamiento de Firefox 4 en Madrid
El próximo jueves 14 de abril a las 19:30h tendrá lugar el evento en el hotel Tryp Ambassador y al que asistirá el secretario general de Mozilla en Europa, Pascal Chevrel. Madrid, 4 abril de 2011 – Mozilla, a través de su comunidad en España, Mozilla Hispano, celebrará la reciente publicación del navegador web Firefox 4 para escritorio y dispositivos móviles, organizando un evento al que asistirán destacados colaboradores del proyecto, entre ellos Pascal Chevrel, secretario general de Mozilla en Europa. Tras sendas publicaciones de Firefox 4 para escritorio y para dispositivos móviles, las distintas comunidades de Mozilla alrededor del mundo se disponen a celebrar el éxito y acogida de la nueva versión de su navegador. La Comunidad de Mozilla Hispano participa también en esta gran celebración y ha organizado distintas fiestas en los diferentes países en los que colabora con Mozilla (España, Argentina, México o Colombia, entre otros). El próximo jueves 14 de abril es el turno de España y el evento será en Madrid, en el hotel Tryp Ambassador (Cuesta de Santo Domingo, 5) a las 19:30 y al que asistirá el secretario general de Mozilla en Europa, Pascal Chevrel. Para asistir al evento se ha habilitado una página de inscripción online, abierta hasta el día 13 de abril: eventos.mozilla-hispano.org/fx4madrid. La inscripción está abierta a todo el mundo, la única limitación es el aforo de la sala. Para más información:
- Página del evento
- Comunidad Mozilla Hispano
- Contacto organización de evento: eventos arroba mozilla-hispano.org
enero 31, 2011
Proyecto Bazar: Distribuido
enero 4, 2011
Estado del proyecto Garum Fundatio
Garum Fundatio Como ya sabéis casi todos los que me leéis, estoy trabajando en algunos proyectos muy interesantes de la Garum Fundatio. Esta fundación esta impulsada por Jose Ignacio Goirigolzarri y os recomiendo leer su blog para comprender la evolución del proyecto y el mito del garum. No puedo dejar de reconocer que desde la primera vez que le conocí en la presentación del libro «El capitalismo que viene» de Juan Urrutia, no ha dejado de sorprenderme. Día Garum El próximo día 16 de febrero presentaremos en Bilbao la Garum Fundatio. Un evento que además tendrá algunos invitados muy especiales. Os incluyo alguna referencia aunque la información es mucho más precisa y estará más actualizada en la página del Día Garum. Douglas Rushkoff (autor de Ciberia y Program or be Programmed) Michael Widenius (fundador y desarrollador principal de la versión original de MySQL) Rudy Rucker (matemático, programador, escritor, pintor y experto en robótica) Yuval Cohen (fundador de StageOne Ventures) Arturo Torres (Vicerrector del Instituto Tecnológico de Monterrey y Director de la División de Emprendimiento y Desarrollo Empresarial en el Campus Monterrey). Una jornada para reservar en la agenda. Para confirmar la asistencia enviar un correo a: info (arroba) garumfundatio.org Proyecto Bazar En este post no voy a entrar en detalle por que en entre otras cosas podéis leerlo en la página del proyecto bazar y además ya podéis echar un vistazo al código en el github de la fundación garum. Solo algunas pinceladas:
- Es un marketplace disruptivo. Lease sencillo y nada que ver con los tradicionales.
- Tiene una arquitectura distribuida. ¿puede algún proyecto nuevo no ser distribuido?
- Es modular. ¿Echas algo de menos? Lo puedes implementar sin problemas.
- Es abierto en todos los sentidos: software libre y no es un corralito privado estilo fakebook.
- Muy pronto tendremos un bazar para que podáis ver los progresos en tiempo real.
- Estará listo, versión beta con aspiración a RC, para el 16 de febrero.
noviembre 23, 2010
Uniccos: regalos originales y únicos
regalo y no se le ocurre nada o simplemente quiere comprarse algo original y no lo encuentra. A partir de ahora esto va a ser mucho más sencillo con Uniccos. Uniccos es un marketplace que reúne las mejores creaciones de cada vez más artesanos y artistas. Acaban de salir y cada día tienen nuevos productos. Así que recuerda este nombre: Uniccos cuando tengas que hacer un regalo o quieras darte un capricho. Enhorabuena a Elisa Reyna, Sara Mesonero y Ruben Anguera por este proyecto!!!!]]>
noviembre 16, 2010
Proyecto Bazar de la Garum Fundatio
proyecto bazar en github, desde julio estoy involucrado en el diseño de este proyecto de la Garum Fundatio. La idea es crear una herramienta, bazar, para agilizar las relaciones entre empresas. Y hay algunas cosas que me gustaría contaros sobre el proyecto. La primera es su naturaleza distribuida. Hay bastantes aproximaciones a como agilizar y potenciar las relaciones entre empresas pero todas son centralizadas en un servicio. Esto desde nuestro punto de vista hace que se pierda uno de los pontenciales más interesantes de Internet: las redes distribuidas. Por esta razón desde el principio hemos diseñado el proyecto bazar para que su arquitectura sea distribuida y cada uno de los servidores establezca relaciones con el resto de servidores. Esto nos da varias ventajas: robustez, gestión distribuida, crecimiento sin limitaciones a priori. En cuanto a la tecnología nos hemos decantado por usar rails3. La razón principal es por que en el proyecto bazar la funcionalidad se define en módulos y necesitábamos crear un tejido que nos permitiera incluir nuevos módulos, propios o de terceros, facilmente. Rails3 era el tejido perfecto. Para la implementación de los módulos la nueva implementación de engines es lo más adecuado. Enlaces con información del proyecto: Página oficial del proyecto bazar en Github. Garum Fundatio. Objetivos del proyecto bazar. Algunos artículos sobre el espíritu de Garum.]]>
septiembre 25, 2010
Tutoriales de Rails3
Manual desde cero y haciendo una aplicación de blog completa En Inglés pero muy didáctico y desvela casi todos los trucos para hacer una aplicación en rails. Incluido como usar github o heroku. Tutoriales de ruby y rails. No va nada mal seguir este manual que empieza de cero con ruby porque si no se hace difícil entender como funciona la «mágia» de rails. Como hacer que funcionen los plurales para las tablas en español. Me gusta poner los nombres en español para aplicaciones en esta lengua. Ojo la forma de hacerlo correctamente viene en el primer comentario!!! Como usar el módulo authlogic en rails3 En español y paso a paso. La única pega es que usa haml pero esto no es un handicap ni mucho menos. Usando JQuery con rails3 ( y de paso eliminando prototype) Muy bueno y perfectamente integrado en la nueva versión. Y esto es todo por hoy pero seguiré publicando más enlaces.]]>
agosto 18, 2010
Como sobrevivir al modem usb de movistar si tienes linux
VTE MF110 pero con un poco de cariño vale para cualquier modem usb. Lo primero que hice es conseguir que no se montase como CD. Este dispositivo usb es dual se puede montar como CD o como modem. Como este problema es conocido desde hace mucho tiempo se creo un programa para cambiar «fácil» de modo: usb_modeswitch En casi todas las versiones modernas viene instalado. Basicamente busca si hay un dispositivo usb montando como CD y te pone re-monta como modem. Hay que tocar el fichero /etc/usb_modeswitch-conf para incluir el VTE MF110 que son estas lineas: # ZTE MF110 # # by thejavo ################################################## ###### DefaultVendor= 0x19d2 DefaultProduct= 0x0083 TargetVendor= 0x19d2 TargetProduct= 0x0124 ;MessageEndpoint=0x1 MessageContent=»55534243b8fe6681000000000000061b000000020000000000000000000000″ Si ahora hacéis un lsusb veréis que esta en modo «0x0083» Si ejecutáis usb_modeswitch os los pondrá en modo modem. Para que cada vez que arranque o se inserte se ponga en modo modem incluir esto en el fichero /etc/udev/rules.d/usb_mod.rules y meterle esta linea: SUBSYSTEM==»usb», SYSFS{idProduct}==»0124″, SYSFS{idVendor}==»19d2″, RUN+=»/usr/sbin/usb_modeswitch» Con esto me lo reconoció y esas cosas pero no se lanzó ningun wizard ni nada y no hay nada que odie más configurar un vmdial y/o ppp. Peroooo encontré sakis3G que es lo mejor que he visto desde hace mucho tiempo y que incluso no hubiera sido necesario los pasos anteriores probablemente. Te bajas este script y si no eres capaz de conectarte en 30 segundos es que no sabes copiar y pegar y cambiar el PIN ;-P para conectarte solo tienes que poner: ./sakis3g USBINTERFACE=»4″ reconnect SIM_PIN=»0000″ APN=»movistar.es« Que no tenéis usb_modeswitch sakis3g te lo compila y lo instala en tu ordenador. Que queréis crear un icono en el desktop te lo crea añadiendo la opción desktop. Vamos que darle un vistazo porque hay muchas más opciones y funciona para casi cualquier fabricante de modem usb y/o operador 😉 Todo un hallazgo y modem usb funcionando en linux. Por cierto el responsable del proyecto es Sakis un desarrollador griego que se merece todos mis respetos. No tenía un enlace para donaciones y me ha faltado tiempo para pedirle que se lo cree. Hay pocas cosas que me den más placer que reconocer el trabajo de la gente como sakis con una donación. Desde que existe paypal y siempre que tengo algo de saldo lo distribuyo cada vez que visito y/o uso un proyecto. El enlace de sakis es http://www.sakis3g.org/#donate . Sakis nunca pensó que lo debería poner porque lo hacía para ayudar a la gente. A muchos de nosotros nos gusta reforzar ese trabajo de esta forma y que luego se convierta en cervezas o lo que le de la gana 😉 Actualización: Si tienes ubuntu, fedora o opensuse puedes encontrar el escritorio movistar en este respositorio oficial: