juantomas Hacking the planet

22 abril, 2011

Integrando OpenHeatMap en el Bazar Garum

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.

 

 

 

 

 

 

 

 

 

 

 

16 abril, 2011

Hack: Como saber si Jazztel te está tomando el pelo con tu conexión adsl

Filed under: Acción & Reacción,Casos de Exito,Hacks,procrastination,Proyectos,rmd — Etiquetas: , , — juantomas @ 3:48 pm

Tengo contratada una ADSL de 20 Mb con Jazztel. La primera vez que la use estaba bastante contento aparentemente me daba más de 12Mb de bajada. Pero la alegría me duró poco nunca ha dado los 20Mb ni en los mejores momentos.

La cuestión es que Jazztel te cobra 20 Mb incluso si te da menos y no te lo rebaja si no te da menos de 6Mb. Obviamente no hay ninguna forma sencilla de demostrarles que lo habitual son 4Mb de bajada y que ya sea por la distancia a la centralita o por que el router es una patata, casi siempre está por debajo de los 6Mb.

He probado a resetear el modem cuando está a 4MB, pero lo normal es que temporalmente suba a 9,5MB y luego vaya cayendo hasta 4MB.

Con un pequeño hack y algo de paciencia se puede obtener información suficiente para que te bajen el precio de la ADSL a lo que verdad te están dando y esperar a que ONO u otro proveedor te ofrezcan, y de verdad te lo puedan dar, fibra óptica.

Gracias a mi amigo José Luis Marina de 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:

 

createViz(23385,1,500,150,»FF0066″);

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.

 

 

5 abril, 2011

iPhly: Convierte tu iPhone en una emisora de RC

iPhly convierte tu iPhone en una emisora de RC

iPhly convierte tu iPhone en una emisora de RC

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

Filed under: Casos de Exito,Eventos,Hacks,Proyectos — Etiquetas: , , — juantomas @ 9:30 am

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:

 

4 abril, 2011

Streaming en Directo del Día Garum

Filed under: Hacks — juantomas @ 7:03 am

ACTUALIZACIÓN: Ya están colgados los vídeos del día Garum. Los enlaces son las intervenciones son:

Día Garum Europa 2011: Jose Ignacio Goirigolzarri

Día Garum Europa 2011: Vinton Cerf

Día Garum Europa 2011: Douglas Rushkoff

Día Garum Europa 2011: Michel Widenius

Día Garum Europa 2011: Yuval Cohen y Gerardo Tobías

Día Garum Europa 2011: Rudy Rucker

Powered by WordPress