Chatbot - Habla con el navegador

Hace unos meses google lanzó un juego para aprender inglés llamado spell up, la verdad es que me decepcionó bastante ya que se trata de deletrear palabras que van apareciendo en pantalla sin más.

Recientemente descubrí la librería javascript annyang.js para dar reconocimiento de voz a webs, he pensado que sería interesante crear un chat de voz con preguntas y respuestas predefinidas típicas de una conversación y usar la API de google translator para que puedas hablar en inglés con el navegador.

Para quién no conozca la API del traductor de google básicamente nos permite transformar un pequeño texto en un archivo de sonido dónde se puede escuchar a un “robot” leer el texto, por ejemplo:

Hello (inglés)
Hola (español)

Definimos el idioma de la voz con el parametro GET “tl”, por ejemplo “en” corresponde a inglés.

Las frases y preguntas predefinidas con las que puedes decir al navegador son:

hello
what is your name?
where are you from?
how old are you?
how are you?
what day is today?
what time is it?
who is your creator?
who will die next in the game of thrones?
can you sing me “rolling in the deep”?
shut up -or- stop
can you show me a photo of a “dog”?
who is “madonna”?
do you recommend me to watch the movie “bratz”?
good bye

Para que funcione es importante que des permisos para acceder al micrófono, si no dices la frase exacta o si fallas en la pronunciación no funcionará por lo que tendrás que esforzarte un poco ;)

DEMO

¡Espero que os guste esta frikada!

Crear guías de viaje con varias APIs (flickr, wikipedia, google maps, foursquare, openweathermap)

Normalmente las APIs nos permiten extraer la información estructurada de una web sin HTML, los formatos más comunes son JSON y XML.

Para crear la siguiente guía de viaje de Paris, he usado las siguientes APIs:

- Fotos: Flickr
- Información: Wikipedia
- Mapas: Google static maps
- Sitios de interés: Foursquare (Filtrar sitios por categorías)
- Tiempo: OpenWeatherMap

Para generar un PDF a partir del HTML he usado la clase PHP HTML2PDF, espero que os sea interesante el resultado:

Comprar por Internet mediante comandos de voz

Para seguir aprendiendo día a día, estoy pensando y desarrollando una serie de experimentos para hacer más fácil la vida de la gente.

Para el primer experimento estaba pensando como usar annyang.js una librería javascript que permite añadir reconocimiento de voz a una web mediante la API de Audio de HTML5.

Imaginando cosas que podrían ser útiles, he pensado que personas con algún tipo de discapacidad física les puede resulta imposible hacer una compra por Internet.

Por lo que he creado una extensión de chrome que permita realizar tres tipos de comandos de voz:

- Hacer búsquedas “buscar zumo de naranja”
- Seleccionar productos “comprar 1”
- Ir al carro de la compra “terminar”

Comentarios

Sé que faltan más pasos para completar la compra como rellenar los datos de envío y realizar el pago, al final esto se trata de una prueba de concepto para ver si es posible hacer esta integración de un sitio ya existente.

La demo por el momento sólo funciona con la tienda ulabox tal y como indica el fichero manifest.json pero se podría explotar para más tiendas, sólo habría que configurar los selectores en jquery y las urls para realizar las acciones.

El código de la extensión de chrome lo he subido en github.

Mi experiencia en la carrera Spartan Race Madrid 2014

El pasado sábado 31 de Mayo participé en la primera edición de Spartan Race Madrid que se celebró en Rivas Vaciamadrid (al lado de Mordor, cerca de Arganda del rey), me enteré de la carrera gracias a Victor Falcón que lo publicó en facebook.

Para quién no conozca de que va la Spartan Race, consiste en una carrera de obstáculos, os dejo un vídeo de Pitufollow que también participó en la carrera.

Existen tres niveles de dificultad en la Spartan Race:

image

¿Por qué me decidí a participar?

Soy fan de los concursos televisivos que ponen al límite a los participantes como humor amarillo y wipeout, vi que la carrera era lo más parecido que podía hacer y me apunté sin pensarlo.

Anteriormente había hecho alguna carrera, pero los 5km eran mi límite físico y mental, poca gente lo sabe pero sufro de asma, para quién no lo sepa la enfermedad es como fumar e intentar correr, a los pocos metros te ahogas.

Creo que es importante en la vida afrontar retos para salir de tu zona de confort, conocer tus limitaciones personales y hacer de vez en cuando alguna locura que de chispa a la vida, así que me apunté en la categoría Super de 13km con 21 obstáculos.

Preparación

Sabía que tenía que entrenar antes de hacer la carrera si quería terminarla como mínimo, así que empecé a hacer 10km varios días a la semana, intenté hacerlo todos los días pero al cuarto día tuve que hacer un parón por dolores de espalda, luego moderé el ejercicio entre uno o dos días a la semana.

image

Admito que no me gusta perder, pero dado a mis limitaciones físicas sabía que no iba llegar primero a la meta, al final lo más importante en este tipo de competiciones es la experiencia, el orgullo de poder decir que has terminado la carrera, pasarlo bien y por lo menos no quedar último xD.

Mejor en compañía

Se lo comenté a los compañeros de betabeers y a todos los amigos vía twitter y facebook para que participaran a la prueba, al final se animaron Alex Andreu y Pablo Rodriguez, quería mirar de formar un equipo de 5 personas que es el mínimo para participar como equipo en la Spartan Race, pero al final por problemas físicos no pudo venir Alex y quedamos sólo Pablo y yo ante el peligro.

image

image

La verdad es que me sorprendió mucho Pablo, al ser programador como yo, no pensaba que tuviera tanto aguante físico, personalmente sentí en mis carnes la diferencia entre correr en una cinta estática a hacer una carrera con desniveles, cuestas, caminos con piedras donde tienes que vigilar donde pisas si no quieres torcerte el pie, etc.

No me da vergüenza en admitir que Pablo tuvo que parar en varias ocasiones para esperarme, en algunas pruebas como subir muros yo salía más aireado de la situación, pero como equipo llegamos juntos hasta el final :)

Lo mejor de la carrera

1- Ambiente: tanto de los participantes, como de los asistentes y voluntarios, nos animábamos ente todos y había muy buen rollo antes, durante y después de la carrera.

2- Organización: Pese a que hubo algún problema que comentaré después, creo que estuvo bien organizado, llegué a menos de 20 minutos antes de empezar, cuando tenía que llegar una hora antes, pero aún y así me dio tiempo a recoger el dorsal, chip, etc. y dejar la mochila en el guardarropa.

3- Obstáculos: algunos dicen que eran fáciles pero reconozco que algunos me costaron de superar más que nada porqué las manos me resbalaban con el barro.

4- Localización: me pareció un buen circuito para hacer la carrera, había momentos que te encontrabas en un descampado a subir una pequeña montaña, luego te perdías en medio de un bosque y terminas en un auditorio al aire libre.

5- Agua: Había varios puntos durante la carrera donde podías beber agua, se agradece sobre todo si te pasa como a mi, que guardé la mochila sin darle un último trago a la botella y empecé a correr con la boca seca xD.

Lo peor de la carrera

1- Duchas: el 100% de los participantes estamos de acuerdo en este punto, de alguna forma nos sentimos engañados de que prometan duchas, luego te encuentras pocas mangueras para la cantidad de participantes y con agua fría, luego encima que te pegue el viento de cara, no recuerdo haber tenido nunca los pezones tan duros xD.

2- Recompensa/Precio: Cuando te gastas más de 60 euros para participar esperas tener algo más que un plátano, un gel y un powerade al terminar la carrera.

3- Contrato: Para poder participar tienes que firmar un contrato un tanto radical, en el que aparte de ceder los derechos de imagen, también citan que no puedes denunciar a la organización en ningún caso como puede ser fallecer durante la carrera.

Consejos para quienes quieran participar en la Spartan Race

1- Atarse bien las zapatillas, en uno de los charcos de barro me quedé sin una y lo que me costó encontrarla, casi me doy por vencido!

2- No ir con el torso descubierto, lleva una camiseta, no te salvará de todos los arañazos pero no te harás tantos.

3- Entrena en caminos con desniveles por el monte, la Spartan Race no es un camino llano de rosas, la cinta estática del gimnasio es tu enemigo.

4- No hace falta que te mates haciendo crossfit pero tienes que tener algo de fuerza en los brazos, una de las pruebas consistía en subir y bajar unas escaleras con un saco de 20kg.

5- No olvides pasarlo bien al final se trata de eso ;)

Dicho todo esto… ¿Repetiría la experiencia?

¡Por supuesto! de cabeza que me tiro :D

Objetivo Trifecta

La trifecta consiste en una medalla que reconoce que has completado los tres niveles de Spartan Race: Sprint, Super y Beast en un mismo año.

Spartan Race es una competición que se celebra mundialmente por lo que posiblemente para conseguir la Trifecta tenga que salir fuera de España en alguna ciudad de europa para poder completar los tres niveles.

Dicen que es posible que en Octubre hagan una carrera en Barcelona y me gustaría apuntarme. Si alguien más se apunta que deje un comentario :)

image

Agradecimientos

A Pablo Rodriguez por ponerle cojones, a Sandra Tadeo y Luis Ramirez por dejarme dormir en su casa el día anterior para no tener que madrugar para ir a Rivas, a Maria Scheifler por invitarnos a su cumpleaños después de la carrera, por supuesto a toda la organización, participantes y voluntarios de la Spartan Race por hacer uno de los mejores días de mi vida, a todos ell@s ¡Muchas gracias!

Mi resumen en Betabeers - Mayo 2014

Aquí os dejo mi resumen de lo que ido haciendo en Betabeers durante el mes de mayo, podéis volver a ver el resumen de abril.

Hay dos puntos flojos en la web de betabeers con respecto a los usuarios:
1- Poca retención.
2- No todos rellenan su perfil.

imageContenido relacionado

Queremos que los usuarios visiten la mayor cantidad de páginas posibles en cada visita, por eso pienso que es importante ofrecerle información relacionada a lo que ve y a medida que sea posible segmentada a su localidad.

Con respecto el mes pasado hemos conseguido subir el tiempo de media de sesión al 9,26% respecto junio quedando en 1:54 en mayo.

image

Rediseño editar perfil

Para la página de editar perfil he sacado varias ideas de runkeeper como el menú lateral con las opciones e iconos para identificarlas más rápido.

Por otra parte he puesto una guía para animar a los usuarios a completar su perfil en betabeers.

image

Compartir contenidos

Anteriormente había desarrollado un plugin para jquery para compartir contenidos llamado sharebox que usábamos en la web, éste mostraba un botón con un menú desplegable para compartir, el problema que al no ser muy visible poca gente compartía contenidos.

Lo que he hecho es un nuevo menú que aparece sólo al hacer scroll cuando navegas desde un pc (ya que en el móvil es más fácil compartir contenidos desde el navegador) con los botones de compartir que tienen por defecto las redes sociales para evitar confusiones.

image

Fuera submenus de la cabecera, bienvenido footer

Un consejo que me dijo Diego Jiménez fue el de quitar los submenus de la cabecera, que todas las secciones deberían ser accesibles desde la web.

Por ejemplo dentro de eventos podéis ver un filtro a la izquierda que lleva a: conferencias, hackathons, cursos y grupos locales.

Como alguna de las secciones no eran accesibles en la web decidí poner un footer, parece que hay bastantes usuarios que lo usan.

image

Y más…

Al final estas son las funcionalidades más destacadas, por otra parte hay un agujero negro del tiempo dedicado a darle vida al foro, creando y respondiendo temas, enviar facturas a empresas que publican ofertas de empleo, resolver dudas de usuarios y empresas via email/freshdesk, etc.

Open Data en España: buena intención, mala organización

Hoy he tenido curiosidad por saber donde sacan la información las apps con puntos de recarga para vehículos eléctricos en España.

En primer lugar he entrado en datos.gob.es, he hecho la búsqueda puntos de recarga y he encontrado varios resultados pero sólo con cobertura geográfica en Castilla y León.

Al no tener éxito he buscado en google y después de ver varios resultados he ido a parar en la web de Movele de IDAE Instituto para la Diversificación y el Ahorro de Energía.

En esta última finalmente he encontrado un mapa y un listado con puntos de recarga a nivel nacional, pero me he encontrado varias sorpresas:

1- El mapa y el buscador no funcionan, por lo menos en chrome, safari, firefox…

2- A simple vista parece no hay opción para exportar los datos en formato CSV, XML o JSON.

3- Dicen que hay 761 puntos de recarga pero en el listado sólo aparecen 330.

Al ver un mapa con un buscador me he imaginado que habría alguna API, así que he buscado en los ficheros javascript de la web y he encontrado una llamada a un XML (a simple vista parece vacío, tienes que ir a ver código fuente).

Gracias al XML he podido crear la siguiente visualización para ver de un vistazo donde se encuentra la mayor parte de puntos de recarga para vehículos eléctricos en España.

image

Aunque todavía no entiendo como es que el mapa de electromaps tiene más puntos en España que el oficial que ofrece Movele.

¿En que me baso para decir que hay mala organización?

1- Pese a que hay un portal que “intenta” unificar todo datos.gob.es, falta mucha información y no esta bien ordenada.

2- Hay demasiados sub-portales:
http://datos.madrid.es/
http://www.emtmadrid.es/movilidad20/opendata.aspx
http://www.ign.es/ign/main/index.do
http://www.movele.es/
etc.

3- Los datos deberían ser accesibles como mínimo en formato CSV y JSON.

Aunque parece que las cosas van a paso de tortuga, por lo menos veo buena intención, sólo tienen que saber canalizar los esfuerzos.

Visualización de Wifis públicas en la comunidad de Madrid

Hace poco Microsoft y Madrid Emprende lanzaron Conectando Madrid una iniciativa dirigida a trabajadores, ciudadanos y turistas para que puedan encontrar redes Wifi públicas en la comunidad de Madrid.

En su web tienen un mapa con los sitios dónde hay wifi, pero no queda del todo claro dónde hay más redes, pensé que sería interesante hacer un mapa de calor (heat map) para verlo de un vistazo sin achinar los ojos.

image

¡Manos a la obra!

1- En primer lugar toca obtener los datos en bruto, para ello Conectando Madrid tiene una API pública que permite ver un listado de todas las redes Wifi de la comunidad de Madrid en formato JSON.

2- Después toca limpiar estos datos para crear un CSV con el siguiente formato:
nombre del local;latitud;longitud
nombre del local;latitud;longitud
nombre del local;latitud;longitud

Para ello he usado un pequeño script en PHP para sacar la información básica.

3- Para visualizar los datos en un mapa he usado el servicio cartoDB que permite de forma muy fácil importar datos y representarlos en un mapa.

Para usar cartoDB tienes que registrarte, crear una tabla, importar un fichero con los datos y si todo esta bien debería mostrar una tabla con los datos.

En esta tabla tenemos que indicar que la segunda y la tercera columna corresponden a la latitud y longitud de cada local, para ello pulsamos en el desplegable de la cabecera de la segunda columna y lo indicamos en “Georeference”.

4- Ahora toca ir al modo “Map view” para personalizar el tipo de mapa, colores, zoom, texto que quieres que aparezca al pulsar sobre un punto, etc.

5- Para poder compartir el mapa con otras personas, tienes que crear una visualización en cartodb con los datos de la tabla que acabas de crear, una vez creada verás una interfaz parecida a la anterior pero en esta podrás ver arriba a la derecha un botón para compartir “Share”.

Nota

Seguramente falten muchas Wifis públicas ya que es una base de datos abierta donde cada local puede dar de alta su Wifi, pero me pareció la fuente de información más rápida para sacar los datos.

Mi resumen en Betabeers - Abril 2014

Aquí os dejo mi resumen de lo que ido haciendo en Betabeers durante el mes de abril, podéis volver a ver el resumen de marzo.

image

Nuevo foro

Pese a que lo he lanzado a principios de mayo, llevo trabajando en esto desde abril :)

Queremos convertir betabeers en el punto de encuentro de programadores para ponerse al día, no sólo offline con los eventos sino también online con el nuevo foro.

Como punto de referencia partimos con la idea de hackernews un portal donde la gente envía, vota y comenta noticias, pero en betabeers queremos mejorar el concepto con dos características importantes:

1- mini-comunidades con moderadores
He contactado con varios cracks en sus areas para que abran debates, compartan enlaces y resuelvan dudas siempre que puedan.

2- Portada personalizada
Queremos que los usuarios puedan filtrar los temas que realmente les interesen y no estén obligados a ver enlaces o discusiones irrelevantes.

image

image

image

Kodefu

Participé en el hackathon Hackforgood con la idea de Kodefu, una plataforma online para enseñar a programar desde cero haciendo cosas que luego pueden servir para la vida real, como por ejemplo maquetar un curriculum con HTML y CSS.

Aquí puedes leer más sobre mi experiencia en el hackathon.

image

image

Alertas mejoradas

Las alertas por email que te recuerdan que hoy un betabeers, ahora tienen más información como: hora, lugar, asistentes, posibilidad de descargar la entrada Passbook o liberar tu plaza si finalmente no puedes asistir.

image

Notas de prensa

Para los organizadores de betabeers hice un pequeño generador de notas de prensa, para que puedan exportar un texto de lo que es betabeers con la información del evento, todo en un pdf para que lo puedan enviar a editores de medios de comunicación.

image

Compré una cámara GoPro para grabar los Betabeers Madrid

image

Aquí podéis encontrar un resumen de la edición 42 de Betabeers Madrid con los vídeos, slides de la charla y las presentaciones.

Más cosas

Aparte de crear funcionalidades en betabeers también hay trabajo creando contenidos, arreglar bugs, dando soporte a usuarios y empresas, enviando facturas a clientes, recuperar el contacto con empresas que no terminan de publicar ofertas de empleo, etc.

La pesadilla de todo organizador de eventos: los asistentes fantasma

Esta mañana he leído la reflexión de Israel Alcazar sobre la falta de asistencia de los meetups.

Las personas que organizamos eventos, dedicamos varios días y horas de nuestras vidas de forma totalmente altruista a organizar un evento, poniendo un aforo máximo impuesto por la sala, al final nos encontramos que entre el 40-50% de los asistentes confirmados faltan a los eventos dejando sin plaza a quién si está interesado en venir.

Personalmente cuando pasan estas cosas, a veces pienso que es normal y NO debería ser así, la gente tiene que ser más responsable y respetuosa con quién organiza eventos sobretodo cuando son gratuitos.

Es un problema que también sufrimos desde betabeers y en el que estamos intentando poner medidas para evitar que gente se quede sin plaza por culpa de los “asistentes fantasma”.

Posibles soluciones

1- Un botón rojo de “no voy a poder ir” para liberar tu plaza, cuando te apuntes a un evento y te enviemos una alerta por email el mismo día o anterior al evento.

2- Dar preferencia para que se puedan apuntar siempre los que asisten de forma regular.

3- Tener un ranking con la gente de los asistentes más fieles y premiarles por su fidelidad.

4- Castigar a las personas que se han apuntado y no han venido en más de tres ocasiones seguidas.

5- Poner el evento de pago aunque sea 1€.

¿Cómo validar a la gente que asiste a los eventos?

No queda otra que hacerlo físicamente, tenemos tres soluciones:

1- Passbook: Cada usuario tiene una entrada que se puede descargar en su móvil y el organizador del evento es el único que tiene privilegios para escanear el QR y validar al asistente.

2- NFC: Para los asistentes más fieles puedan validar su asistencia con algún lector sin que haya una persona expresamente para validarlos.

3- Lista de asistentes: En betabeers tenemos la opción de validar a la gente manualmente por si no han sabido descargar su entrada.

Conclusión

Todas estas medidas me parecen una pérdida de tiempo importante que puede suponer entre 15-30 minutos antes de empezar el evento, pero no dudaremos en aplicarlas si vemos que el ratio de asistentes baja del 50% y deja sin plaza injustamente a quién desea venir a aprender y conocer gente.

Problema con el teclado del macbook pro, Apple 0 vs Miquel 1

Hace poco se estropearon las teclas E y D de mi macbook pro de 3 años, básicamente al pulsarlas se despegaban del teclado.

Solución 1 - Chapuzas a domicilio

Mi solución temporal fue coger la tecla E del macbook blanco que tenía estropeado y encajarla en el macbook pro, el problema es que el mecanismo de encaje es distinto y tuve que poner la tecla E en posición horizontal.

Así estuve medio año hasta que salto la tecla D y allí la chapuza de poner una tecla del macbook blanco no funcionaba, la tecla saltaba de todas formas.

Solución 2 - Apple Store

Fui a Apple Store de Parque Sur en Leganés a que me dieran una solución, la única opción que me dieron fue pasar por caja, me pedían 150 euros por cambiar toda la parte del teclado y parte de la carcasa, más 2 días sin poder usarlo, a mi sinceramente me parece un robo cuando sólo son dos teclas que me fallan, así que dije que no y me fue resignado.

Solución 3 - Amazon

Me recomendaron por twitter que buscará un recambio en amazon, encontré varios teclados, el problema que encontré es que no tenían tecla Ñ y aunque el precio era inferior a 50$, la instalación era una movida ya que toca desmontar el ordenador, sacar el disco duro, etc.

Solución 4 - ebay

Busqué en ebay y encontré una tienda llamada piezasdeportatiles dónde venden recambios de teclas de macbook pro por 4,90€ cada una.

Si os encontráis con el mismo problema y os sirve de referencia, mi macbook pro es de principios del 2011 y el tipo de tecla es B.

image

Conclusión

Poco a poco me estoy desencantando de los productos de apple y de su ecosistema, ya cambié un iphone por un nexus y el siguiente portátil dudo que sea un macbook.

image