27 noviembre 2010

Diaspora

Just signed up to Diaspora .... http://joindiaspora.com

Well, actually, to the email list of Diaspora.
Anyway, it is funny, they do not support Internet Explorer, only "modern browsers" are supported ;-)

11 noviembre 2010

¡¡¡ Soy candidato a Castellano-Manchego por el mundo !!!

Hola Mariano!

Muchas gracias por escribirnos. Nos encantará ir a grabarte y conocer todo aquello contigo. Cuando puedas envíame un email con tus teléfonos contacto y contándome cosas sobre tu vida allí, lo que te apetezca: de dónde eres de Castilla La Mancha exactamente, tu edad, a qué te dedicas allí, qué diferencias has encontrado al vivir fuera de España..., lo que se te ocurra.

Ah, y si conoces más castellano-manchegos por allá no dejes de pasarnos su datos; cuántos más seais, antes iremos para allá.

Bienvenido y gracias de nuevo.

Un abrazo fuerte.

Rosa

"Castellano-manchegos por el mundo"

10 noviembre 2010

Receta: cómo usar software libre para promocionar el conocimiento abierto

Paso a paso:
  • Se descarga, instala y configura el software de Ushahidi, se requiere Apache, PHP y MySQL - texturas de Ushahidi.
    Es importante evitar que el RSS feed de los eventos registrados repose. Para ello, sin dejar de remover, se envía cada evento a la cuenta de twitter, a la página de Facebook, se sube como PDF a slideshare, se anuncia como shout en Foursquare, que aparezca como nuevo post en la página de Linkedin y se crea como evento en XING. Ah, se reserva un poco para el agregador de noticias que cocinaremos luego.
  • Se descarga, instala y configura el software de Elgg, se requieren, de nuevo, Apache, PHP y MySQL, los tres otra vez, es como salpimentar, van siempre.
    Se crean grupos y páginas según se necesiten, una para cada país (España y Sudamerica) y páginas para temas varios: frasecitas de Richard Stallman, anuncios de nuevos plugins instalados, open government … y se espeeeeera a que los comensales lo rellenen de contenido aportando sabores novedosos.
  • Para dar a los followers algo más que eventos, se genera, a modo de aperitivo, un agregador de noticias relacionadas con el software libre y el conocimiento abierto en general.
    Para ello se seleccionan blogs con contenido fiable, frecuente, pero no spam. (aquí se explica en detalle cómo). Ojo, no se puede dejar solo, unas veces hay demasiadas noticas y otras veces hay demasiado pocas, hay que vigilar la parrilla.
  • Se crea un wiki de acompañamiento, para publicar nuestro propio trabajo, el código que hemos desarrollado, explicar cosas …
Se remueve todo, se hace un post corto, pero intenso y se deja cocer.

Mientras cuece, se piensa en como monetizar este trabajo … los adSense instalados no dan ni para cubrir el hosting … ¿y si ofrecemos este mismo servicio a otras asociaciones? Alguien que necesite registrar y publicar incidencias geolocalizadas y reportadas por mucha gente (crowdsourcing), quizá la Cruz Roja o Médicos sin Fronteras.


Bueno, quien sabe en qué quedará este cocido maragato con bratwurst.

05 noviembre 2010

¿Para qué sirve Ushahidi?


Así, en una sola frase: “Ushahidi es un software (libre) desarrollado para registrar y publicar incidencias geolocalizadas reportadas por un grupo numeroso de personas.

Se ha usado en situaciones de emergencia cuando la información debe fluir de manera rápida, flexible y de primera mano, por ejemplo, en el terremoto de Haití, en las inundaciones de Pakistán, en Etiopía (en donde estoy contento de haber podido echar una mano) y nosotros los usamos en www.calendariolibre.com para registrar eventos relacionados con el software libre.

El mecanismo de reporte es muy flexible y permite que las incidencias se reporten por email, por twitter, identi.ca, por la web y por SMS. Para evitar spam, se requiere un paso de aprobación y verificación de la información reportada.

Las incidencias aprobadas. se representan en un mapa en la página principal y se pueden filtrar por categorías, por fecha y por lugar.

También se genera un RSS feed con todas las incidencias, con el que, si el objetivo es publicar y promover las incidencias, se puede utilizar para enviar a redes sociales tales como twitter, identi.ca, facebook, slideshare, XING, linkedin, blogs …

Si un usuario está interesado en las incidencias de un área en concreto, puede definir alertas y recibirá un email por cada nueva incidencia que ocurra en la zona que hayas definido.

Qué le falta a Ushahidi?
Le falta una comunidad de desarrollo dinámica que desarrolle add-ons de manera frecuente, que esté involucrada en los foros y que responda a los webmaster rápidamente. Pero bueno, seamos positivos, eso vendrá con el tiempo y cuando el uso de la plataforma crezca.

Así que venga, todos a usar Ushahidi.

21 octubre 2010

Como montar un agregador de noticias

Con toda la humildad del mundo, voy a contar aquí cómo he montado un agregador temático de noticias. Más que con el ánimo de enseñar, con el de compartir.
>> Servicios:
  He utilizado dlvr.it para gestionar los feeds, tanto entrantes como salientes. Tiene un interfaz muy fácil de manejar, es bastante fiable, es gratuito y no tiene ningún límite significativo en su funcionalidad, en definitiva, un magnífico producto.
  He utilizado tumblr.com como contenedor de los posts y, aunque no lo había usado antes, ya veis que mi blog están en blooger, me parece otro producto muy muy bueno.
  He utilizado bit.ly como acortador de URLs, que me dar estadísticas de uso casi en tiempo real, con informes de la última hora, últimas semana y últimos tres meses. Si no quieres, dlvr.it tiene su propio acortador de URLs.
>> Cómo seleccionar la fuentes:
He utilizado varios métodos, uno ha sido mirar las fuentes de otros agregadores similares, en mi caso, sigo de cerca a www.softwarelibre.net que hace un trabajo magnífico que me ayuda mucho, también chequeo memeame.net, genbeta.com y, por supuesto, news.google.es.
Tengo todos los blogs mencionados en mi RSS reader (Google reader) y las reviso unas 4 o 5 veces diarias, cuando veo una noticia que me interesa, voy al original, veo los posts anteriores y, si me encajan, añado la fuente al agregador.
También hago búsqueda dentro de tumblr y si me gusta el post, le hago reblog, pero si me gusta el blog entero, pues lo añado también.
Con news.google.es hago busqueda de los términos relevantes de este tema "software libre", "gobierno abierto", "linux", "firefox", etc.
>> Cómo agregar los feeds:
Utilizando dlvr.it, cómo he comentado antes, es sencillo revisar cada cierto tiempo cada unos de los feeds y enviarlos al blog agregador. Para indentificar fácilmente la procedencia, he puesto una etiqueta entre corchetes al final de cada post. Por ejemplo: [amedioentender] del blog amedioentender.blogspot.com.
Todos los posts quedan acumulados en el blog de tumblr que, como permite fácilmente cambiar la URL de algo asi como "misuperblog.tumblr.com" a "blog.midominio.com", pues queda bastante presentable.
   Con esto ya tendríamos el blog con las fuentes agregadas, pero, además hay que darle visibilidad y enviarlo a las redes sociales.
>> Cómo distribuir los posts
De nuevo, dlvr.it sirve como herramienta para distribuir los posts. Eso si, lo he configurado para que lea un sólo post por hora y no inundar a los seguidores de twitter o facebook con muchos post a unas horas y que no se queden aburridos a otras horas.
>> Configuración actual:
- Nuestras fuentes:
http://noticias.calendariolibre.com/fuentes
http://www.e-simon.info
http://conocimientolibre.wordpress.com
http://amedioentender.blogspot.com
http://www.somoslibres.org
http://culturalibremunicipal.blogspot.com
http://traduccionymundolibre.com
http://www.whitehouse.gov/open/blog
http://arduino.cc/blog/
http://antipastohw.blogspot.com/
http://www.downloadsquad.com/category/open-source
http://www.solar.org.ar
http://guai.internautas.org/
http://web.cenatic.es/web/
http://www.tecnologiaslibres.com/
http://www.linux-sur.org
http://www.visualiza.info
http://softlibre.barrapunto.com
http://ceslcam.com
http://www.linex.org
http://www.calendariolibre.com/elgg/pg/pages/view/368/frases-de-richard-stallman?view=rss
- Nuestras redes sociales:
Twitter: http://twitter.com/eventosabiertos
Facebook: http://www.facebook.com/pages/Calendario-Hispano-de-Eventos-Abiertos/260294840623?ref=ts
Identi.ca: http://identi.ca/eventosabiertos
Foursquare: http://foursquare.com/user/3531374
- Los resultados de noticias.calendariolibre.com:
empezamos el 10 de Octubre y hoy, día 21, estamos en torno a unos 100 clicks diarios, con twitter como primer referente, seguido de Facebook.
También vemos clicks directos desde el blog, de gente que se ha añadido el blog agregador como fuente RSS a su lector de feeds. En suma, resultados prometedores, de momento.


Pero no se nos debe olvidar que "solo" somos un agregador y que éste será tan bueno como las fuentes que agregamos.

16 octubre 2010

PHP code to get timezone from latitude and longitude

It is as simple as taking your latitude and longitude from your location and calling geonames.org webservice using the code below

Enjoy.

Update: sorry, "<" was not replaced by "& lt;" and neither did ">" by "& gt;"
$latitude = .....
$longitude = .....
$geonames_call ="http://ws.geonames.org/timezone?lat=" . $latitude . "&lng=" . $longitude;
$output = file_get_contents( $geonames_call );
preg_match("/<timezoneId>(.*?)<\/timezoneId>/ims", $output, $matches);
$timezone = $matches[1];
echo "Timezone = ", $timezone, "<br/>
";

PHP code for reverse geocoding

"Geocoding is the process of converting addresses (like "1600 Amphitheatre Parkway, Mountain View, CA") into geographic coordinates (like latitude 37.423021 and longitude -122.083739), which you can use to place markers or position the map. The Google Geocoding API provides a direct way to access a geocoder via an HTTP request. Additionally, the service allows you to perform the converse operation (turning coordinates into addresses); this process is known as "reverse geocoding." "
from http://code.google.com/apis/maps/documentation/geocoding/


Below you can find the PHP code (written by myself) to get the different properties of an address, given the latitude and longitude


Enjoy.

Update: sorry, "<" was not replaced by "& lt;" and neither did ">" by "& gt;"

//
// get latitude and longitude
//
$latitude = ..........
$longitude = .........


//
// XML schema and options for api calls
// are described in http://code.google.com/apis/maps/documentation/geocoding/
//
$mapapis_call ="http://maps.googleapis.com/maps/api/geocode/xml?latlng=" . $latitude . "," . $longitude . "&sensor=false";


$output = file_get_contents( $mapapis_call ); 


// Status of the call
preg_match("/<status>(.*?)<\/status>/ims",$output, $matches);


// Formatted address 
preg_match("/<formatted_address>(.*?)<\/formatted_address>/ims",$output, $matches);
$address = $matches[1];


// Address components with all information of the address
preg_match_all( "/<address_component>(.*?)<\/address_component>/ims", $output, $components, PREG_SPLIT_NO_EMPTY );


// For every component
foreach( $components as $component )
{
//  Loop for each address component
//
foreach( $component as $element )
{
preg_match( "/<type>(.*?)<\/type>/ims", $element, $matches );
$type = $matches[1];

preg_match( "/<long_name>(.*?)<\/long_name>/ims", $element, $matches );
$long_name = $matches[1];

preg_match( "/<short_name>(.*?)<\/short_name>/ims", $element, $matches );
$short_name = $matches[1];

switch( $type )
{
case "locality":
$ciudad = $long_name;
break;
case "country":
$country = $short_name;
break;
case "postal_code":
$postal_code = $long_name;
break;
}
}
}


............