Cómo instalar una aplicación Django en OpenShift

OpenShift es la plataforma PaaS de Red Hat. Aunque este post trata sobre consejos y experiencia de instalar una app de Django, hay que decir que OpenShift está actualmente montado sobre Amazon Web Services y que utiliza el concepto de recurso (gear o cartucho).  Un «cartucho» puede ser una aplicación web, una base de datos MySql, una instancia de memcached, etc. La cuenta gratuita permite tener 3 cartuchos. La idea es que si tu solución necesita escalar, fácilmente se puede añadir nuevos cartuchos bajo demanda.

Aquí os presento algunos tips o problemas con los que me he encontrado:

  • Lo primero es instalar el toolkit de OpenShift, rhc. Se trata de un script Ruby con el que se puede crear aplicaciones, ver logs, acceder via SSH etc. Se instala con «gem install rhc». A mi me dio un error al instalar parte de la documentación pero funciona sin problemas.
  • La primera vez que se ejecuta rhc nos pedirá los credenciales de OpenShift (login/password) y permite crear y subir una clave pública de SSH para acceder sin tener que recordar clave alguna.
  • Para acceder vía SSH, ejecutamos «rhc ssh <app>«. Esto llama a SSH utilizando la clave pública. Como usuario, se utiliza un string-ID bastante largo. Al acceder nos situa en el «home» virtualizado: /var/lib/openshift/<UserID>. En ese directorio aparecen los componentes principales de tu aplicación. Para una aplicación Django son: app-root, git y python. La mayoria de los directorios son de sólo lectura. Solo en $HOME/app-root/data, $HOME/app-root/repo y algún que otro directorio podemos escribir.
  • Si necesitamos instalar algún componente Python, deberemos de ejecutar el script de Virtualenv. Esto se hace con «source $HOME//python/virtenv/bin/activate». Luego ya llamaos a «pip install <paquete>«.
  • En caso de tener que copiar algo vía SCP, deberemos tener cuidado de que el directorio destino tenga permiso de escritura. Esta seria una sintaxis válida «scp <fichero> <userID>@<app>-<cuenta>.rhcloud.com:/var/lib/openshift/<userID>/app-root/data«.
  • El entorno de OpenShift establece un número grande de variables de entorno que será de gran utilidad para configurar tu aplicación. Todas comienzan por «OPENSHIFT_». Por ejemplo OPENSHIFT_APP_DNS nos da el host,  OPENSHIFT_REPO_DIR el directorio donde se ubica el repositorio o OPENSHIFT_PYTHON_LOG_DIR donde se encuentran los logs de Apache.
  • El equivalente a «service httpd restart» es «ctl_app restart«. Lo utilizaremos cada vez que hagamos algún cambio en la aplicación.
  • La mejor forma de enlazar nuestra aplicación con wsgi es fijarnos en el ejemplo que viene. Apache ejecuta $HOME/app-root/repo/wsgi/application para cada request. Este script prepara el entorno de virtualenv e invoca al manejador wsgi de Django. Debemos ajustar los paths y nuestro «project.settings».
  • Lo más normal es que durante la instalación de nuestra app nos encontremos con errores tipo 500. Con «rhc tail», veremos los logs de Apache.
  • Los contenidos estáticos deben ir a $HOME/app-root/repo/wsgi/static, luego debemos configurar correctamente la variable STATIC_ROOT para que apunte al path correcto dentro de settings.py.
  • Si nuestra aplicación usa base de datos, se recomienda la ubicacion $HOME/app-root/data, ya que $HOME/app-root/repo se destina al repositorio de código.
  • Es posible tener una configuración especifica según el entorno de ejecución mirando las variables de entorno. En el ejemplo que viene por defecto, se crea una variable booleana ON_OPENSHIFT dentro settings.py que se usa para determinar la ubicación de la base de datos sqlite3.
  • Si queremos obtener la IP de aquellos que nos visitan, tenemos que usar el meta «HTTP_X_FORWARDED_FOR» en lugar «REMOTE_ADDR».
  • Por último, si queremos asociar un CNAME a nuestra app, usamos «rhc alias <app> <cname>» para crear dicho alias (imagino que añadirá un ServerAlias a la configuración de Apache).

Sin duda OpenShift es de las plataformas más económicas (o gratis) de hospedar un proyecto Django. Muy recomendable para aplicaciones inicialmente pequeñas o prototipos.

 

Resumen Betabeers Madrid – De websockets, juegos y rockstar!!!

Betabeers Madrid - Abril/13

Betabeers Madrid – Abril/13

Como cada mes, llegó Betabeers Madrid, el mejor evento de/para desarrolladores más importante de Madrid (y sino es el más importante…el premio al mejor buen rollo lo gana seguro). En esta ocasión se celebró en el nuevo espacio de Utotpic_US y se llenó! (si había 120 apuntados en el evento, creo que estábamos rondando la centena).

Resumen TL;DR

En esta edición, la charla fue sobre Websockets y corrió a cargo del maestro de ceromonias, Miquel Camps (@miquelcamps). Los proyectos que se presentaron fueron: Origo, Funddy, Otogami y SocialPoint. El momento estelar fue cuando Miquel, transformado en rockstar, hizo historia al usar nuestros smartphones como «LEDs psicodélicos». Dejó a las famosas pulseras de Coldplay a la altura del betún. Por último, hubo dos request-for-collaboration, uno para SaveInformaticOS y otro para MiParlamento.

Websockets

Miquel nos presentó el potencial que los websockets tienen a través de diversas aplicaciones: un sistema domótico, una cola para pedir copas en las discotecas, etc.

WebSocket forma parte de HTML5 y nace como solución «bien pensada» para relevar las soluciones ad-hocs como polling o long-ajax-request (que entre otras cosas, chupan bateria que da gusto).

Para la demostración uso en el backend Heroku, Node.js. y Socket.IO (que también tiene libreria JS para el frontend). Destacar la facilidad de programación gracias a la librería Socket.IO.

Origo

Formado por ex-tuentis, Origo recopila tus opiniones y les asigna un color: verde = mola, rojo = apesta. Se trata de un proyecto que está siendo acelerado en Wayra. Suplen la necesidad tipo: «¿Qué opinan mis colegas sobre la última de IronMan?». Innovan bastante en el frontend haciendo uso del <canvas> de HTML5. Toda su portada del home es un inmenso canvas que se actualiza on the fly según una reglas (está muy chulo). Para la presentación de las opiniones también utilizan <canvas>. Se declaran enemigos de Internet Explorer 🙂

Se unió al proyecto, Luis Santos de (la maltrecha) SpartanBits para desarrollar la versión mobile para iOS y Android.

Sobre la mecánica de funcionamiento y la generación de tracción, tengo que decir que no lo usuaria a día de hoy. El motivo es que soy muy vago. Dejar una opinión sobre algo en Origo requiere que vaya a la web, me logue y deje la opinión. Aunque tenga la UX más wonderful del mundo, para mi no es suficiente. Creo que las opiniones deberían de recogerlas de forma pasiva, bien mediante API, o bien mediante algo tan tonto como hacer un tweet así: «Me encanta la nueva de #IronMan3 #Ori+1».

Funddy

Se trata de otro proyecto formado por ex-tuentis y ex-youzees. Como ocurre con otros muchos proyectos,  Funddy surge de la necesidad de recolectar dinero para hacer algo. Un viaje, un amigo en apuros, un regalo en común, etc. Tiene un acabado muy fino y están bien integrados con PayPal. A destacar el gran video de presentación.

A nivel técnico, destacar el uso de symfony.

Otogami

La pareja del metal: David Bonilla (@david_bonilla) y Jerónimo López (@jerolba) presentaron su última creación: Otogami. La idea es clara: «ofrecer el mejor comparador de videojuegos que siempre te de el mejor precio«.
La plataforma tiene un diseño y una UX exquisita.

A nivel técnico destacar los propios frameworks creados por Jerónimo y un «sistema revolucionario para introducir los juegos a mano» 🙂
Su pasión por el producto queda patente con innovaciones como el Otoscore (un rating well-done para videojuegos).

Con un particular homenaje al «one more thing«, anunciaron un gran acuerdo con Hobby Consolas por el cual en la web de la revista decana de videojuegos, aparece un widget de Otogami con la info del juego, precio y opción de compra. ¡Enhorabuena!

Hay que agradecer también la transparencia a la hora de presentar cifras y su modelo de negocio basado en afiliación.

Doy fe de que dan el mejor precio, me ahorre bastante con la expansión de Starcraft II.

SocialPoint

Se trata de una plataforma de juegos sociales made-in-spain que ha conseguido encontrar inversores y más de una vez (ya llevan un par de rondas si no entendí mal). Situada en Barcelona desde 2008 (año en que se fundó), se trata de una de las pocas empresas que se empeñan en bajar el paro. Están buscando desarrolladores, diseñadores, etc.

Su CTO, Marc Canaleta, nos explicó toda su infraestructura. Lo que más me llamo la atención fue la reflexión sobre la poca efectividad de usar caches debido a la necesidad de estar escribiendo en la BBDD continuamente.

FlashRock

Sin duda el momento estelar de la «noche».
Se apagaron las luces y ya pensé que nos estaban echando. En realidad, se trataba de parte del espectáculo que Miquel estaba a punto de empezar.
Como última demo de los websockets, Miquel desarrolló una pequeña aplicación donde cada uno de los asistentes accedia a una URL con su smartphone y lo convertía en un siervo como si de un zombie-botnet se tratara.

Cuando todos los zombis-móviles estaban levantados al aire, le dió al play desde su Macbook y empezó a sonar Seven Nation Army (a.k.a «Loo looo looo lo»). Poco a poco, los móviles empezaron a mostrar colores psicodélicos al son de la música. Había nacido el sustituto de los mecheros al aire en los conciertos (al menos un competidor).
Como suele pasar con las experiencias interactivas, consiguió atacar los sentimientos y simplemente MOLÓ MUCHO 🙂

SaveInformaticOS

A raíz del infamous #debate10, donde se debatió sobre la calidad y existencia de informáticos de calidad, nace SaveInformaticOS como un open-space donde debatir y sacar ideas sobre la «crisis» que atraviesa el sector y como acercar posturas entre desarrolladores, emprendedores, consultoras, PYMEs, etc.

Se celebra el sábado 27 en la UPM.

MiParlamento

Esta iniciativa pretende ponerle caras a esos 350 diputados que se juegan nuestro futuro en el Congreso. Para lograrlo, MiParlamento hace uso de la gamificación y establece una analogía entre diputados y jugadores de fútbol. Su objetivo es sacar unos álbumes de cromos como los que Panini pero con los susodichos diputados.

El 1 de Mayo sacaran una campaña crowdfunding para obtener los fondos necesarios para su desarrollo (actualizaré con el enlace cuando este disponible)

A mi todo este tipo de iniciativas de transparencia y concienciación política me parecen geniales y necesarias. Sin duda apoyaré el crowdfunding 🙂

También necesitan de desarrolladores, diseñadores, o retweets con cariño. Si estáis interesados en participar, os podéis apuntar en su landing page (powered by epiclanding)

Esperemos encontrar en los kioskos y en la web este proyecto pronto.

Conclusiones

¿has llegado hasta aquí? Olé por ti! 🙂

  • Creo que ha sido unos de los mejores Betabeers respecto a la calidad de los proyectos presentados y al número de asistentes.
  • Muy interesante ver como Symfony2 se usa en varios de los proyectos presentados.
  • Algunas críticas contra MongoDB y Backbone.
  • Piques aparentes entre «aceleradoras» vs «bootstrap».
  • Nadie quiere a los potenciales usuario de Internet Explorer (salvo David Bonilla).
  • Primero desarrolla en Android.
  • ¿qué piensas tú?

Sugerencia

Creo que Betabeers es un evento cojonudo para presentar proyectos pero pienso que puede dar mucho más. Aunque hay turno para preguntas, creo que puede ser muy interesante para los proyectos que la audiencia pueda dar un feedback fácilmente sobre el proyecto. A mi se me ocurre algo así.

  • Web accesible mediante un QR que se muestra al empezar la presentación de cada proyecto
  • Los responsable del proyecto platean 3 preguntas sobre las que esperan un feedback númerico o tipo «mal, regualar, bueno»
  • Los asistentes hacen esa valoración durante la charla
  • Se presentan los resultados

¿Qué os parece? Creo que daría un buen feedback.

Enlaces

Red Hat Tour 13 Madrid

Red Hat Tour 2013 Madrid en el Santiago Bernabéu

Red Hat Tour 2013 Madrid en el Santiago Bernabéu

El pasado día 16 de Abril tuvo lugar el Red Hat Tour 13 en Madrid. En esta ocasión no se celebró en el típico hotel de turno, sino que se desarrolló en todo un monumento vivo de la Villa de Madrid, el estadio Santiago Bernabéu.

Este evento que se celebra cada año y medio aproximadamente tiene como título «Transform your IT«. En líneas generales viene a presentarnos lo último que los chicos de Red Hat  y sus patners (HP, Bull, Intel, Fujitsu, etc) están trabajando, sus apuestas de futuro inmediato y los casos de éxito.

El tema diagonal de todas las charlas fue el cloud computing. Siendo un poco más específico, los términos que más aparecieron en las distintas sesiones fueron «cloud abierta, cerrada e híbrida».

Yo soy de los que piensan que esto del «cloud» no es más que un producto de marketing asociado a dos viejos conocidos: red y virtualización.

Según Wikipedia, una nube privada no es más que una nube destinada a ser explotada por una organización. De todos los casos de nube privada que presentaron, el que más me llamo la atención fue el renderizado de películas 3D de DreamWorks. Antes de la nube, ellos tenían montado un IT propio que era muy caro de mantener y encima no daban a basto cuando querían producir una película (según dijeron tardarían 7.000 años para hacer el  renderizado en un solo PC de alta gama). Lo peor de esto es que cuando no había película que renderizar, el sistema estaba ocioso. Así fue como acudieron a los servicios de consultaría de Red Hat y apostaron por la nube para reducir drásticamente el precio y conseguir sacar las películas según la planificación.

Para Red Hat las ventajas de una nube open source son claras: escalabilidad, velocidad y no lock-in. En entornos cada vez más competitivos con menor presupuesto y mayor exigencia, poder lanzar una solución rápidamente, hacer que escale según la demanda para no desperdiciar ningún recurso y que puedas seleccionar qué proveedor te va dar solución para según qué subsistema sin problemas de dependencia se convierte en un «must«.

De los pocos productos hardware que se vieron, me llamo la atención el HP Moonshot. Se trata de un nuevo concepto de rack que puede albergar hasta 45 unidades de lo que denominan «cartuchos». Un cartucho puede ser una CPU, un disco SSD, un servidor NAS o incluso una FPGA. Para mi es el mejor «mapeo» de la nube en una nube física.

Respecto a las nuevas tecnologías open en las que Red Hat y sus patners están trabajando, destacaría OpenStack  («el sistema operativo de la nube»). El objetivo es estandarizar la gestión de nubes públicas, privadas e híbridas. Esto viene muy bien para la interoperatividad entre proveedores de cloud.

Un nuevo servicio que me gustó especialmente fue OpenShift (el nombre no es muy acertado, esperemos que funcione bien). Este servicio es un PaaS de Red Hat que te permite  alojar una aplicación en el cloud abierto de Red Hat. Es insultantemente rápido hacer un deployment de un aplicación alli. Me registré y con dos click tenia andando un WordPress a estrenar. Lo mejor de todo es que hay un plan gratuito, luego se puede tener un WordPress totalmente modificable pero como si estuviera alojado en WordPress.com. Una pasada.
El principal problema que le veo a OpenShit es que hoy en día corre sobre Amazon Web Services (IaaS). Además de esto, todavía no admite SSL para tu dominio (tiene un SSL wildcard para *.rhcloud.com)

Para (casi) terminar, decir que he echado en falta la ausencia de ARM como alternativa a la arquitectura x86 para servidores y que no me cabe duda que le quitara cuota de mercado. Ya existen proyectos amateurs de cluster y supercomputadores que tienen el tamaño de una tarjeta de crédito que usan ARM como CPU. También brillo por su ausencia el término «mobile», lo cual deja claro donde se posiciona Red Hat, dejando a distribuciones como Ubuntu que experimente en ese difícil terreno.

Por último, felicitar a Red Hat por el gran evento que ha organizado. El contenido de las charlas, el desempeño de los ponentes, el timing, la ubicación, etc estuvo muy a la altura.
¿dónde será el próximo Red Hat Tour 15? ¿Las Ventas? 🙂

El primer Hackathon DEV&BIZ, Betabeers & IE Business School

Betabeers Hackathon Dev&Biz

Betabeers Hackathon Dev&Biz

TL;DR: 1º Hackathon que une desarrolladores de software y de negocio. El tema fue «nuevas formas de vender videojuegos». No hubo ninguna idea «killer«. Experiencia muy  enriquecedora, mucho networking y sobre todo buen rollo y diversión.

El pasado 15 de Diciembre se celebró en el Área 31 de IE Business School, el primer hackathon que reunia Business y Software Developers.

Con algo de demora, el hackathon empezó sobre las 10 am.

El grupo canónico estaba formado por 3 desarrolladores y 3 business developers que tenian que desarrollar un proof-of-concept sobre el tema: «Nuevas formas de vender videojuegos»

Se presentaron muchas ideas y propuestas sobre la mesa, al final se desarrollaron unas 6 propuestas que describo a continuación:

  • UGame
    • La hipótesis de los chicos de UGame es que a todo el mundo le gustaría hacer su propio videojuego. Su propuesta consiste en que alguien crea un nivel y luego se lo manda a un amigo para que juegue y continue su desarrollo.
    • Modelo de negocio: Cuando se recibe un mini-juego, se presenta un breve anuncio antes de dar paso al juego.
  • 6-Games
    • Se presentan 6 juegos en modo «slide-run» donde tienes 30 segundos para jugar. Pasados esos 30 segundos, no te deja jugar más y puedes poner un rating al juego antes de pasar al siguiente. El objetivo es que puedas probar los juegos y decidir cúal comprar.
    • Modelo de negocio: Hay varias formas de explotarlo. Desde el punto de vista de cliente final, puede evaluar que juego le gusta más y comprarlo directamente, llevándose una comisión. Desde la posición de desarrollador, puede ver el feedback/valoración que recibe su juego y así tomar medidas. En principio no pagan por publicar juegos.
  • GamesLover
    • «¿Quieres un juego a buen precio? Pues ayuda en su promoción mediante su difusión en redes sociales». Esta es la idea. Cuanto más promoción hagas por un juego, mayor descuento obtendrás.
    • Modelo de negocio: Programa de afiliación, los juegos incluidos en este catálogo tiene mayores oportunidades de vender.
  • FinderGames
    • Facilita a los padres la búsqueda del juego correcto para su hijo. Mediante preguntas sencillas, pretende acertar con el juego correcto para los retoños.
    • Modelo de negocio: Afiliación y/o comisión por ventas de juegos.
  • Otogami App
    • Otogami.com es un web española creada por David Bonilla que permite encontrar juegos al mejor precio de mercado. Otogami App es la versión app de la web que  mejora la UX y añade nuevo canal para llegar al cliente con la facilidad de uso que posibilita los terminales móviles.
    • Modelo de negocio: Publicidad, programa de afilición o incluso venta de la app.
  • Gametify
    • Spotify de videojuegos. Se autodescribe solo. Pagas una cuota mensual y puedes acceder a un catálogo de videojuegos.
    • Modelo de negocio: Pago por subscripción.

Los ganadores del Hackathon fueron 6-Games. Su idea, demo y puesta en escena fue muy buena (…y no falló nada :). Ganaron un fantástico tablet de BQ Reader cada uno. ¡Enhorabuena!

Nosotros, @sdelamo y un servidor como Devs, y @hugocamper, Francisco Díaz y Víctor Fabre , desarrollamos el PoC de Otogami App. La verdad es que para ser una iOS App de 1-day quedó bastante bien. A nivel técnico nos permitio experimentar nuevas tecnologías como Django REST Framework o las nuevas funcionalidades de iOS6.  ¡Gracias chicos!

Conclusiones

Quiero expresar mis impresiones y conclusiones sobre el 1º Hackathon DEV+BIZ

  • Sobre el tema, creo que hubiera sido más interesante propuesta que ayudaran a la venta de videojuegos de gran tamaño que se venden en tiendas físicas. Creo que la venta de juegos casuales o móviles, no tienen tanta necesidad de reinvención como los modelos tradicionales de venta de empresas como GAME, FNAC, etc.
  • Los tiempos de exposición fueron muy largos e irregulares provocando que la audiencia desconectara pronto. ¡Hay que sumar el día entero de trabajo a la capacidad de atención!
  • Para la presentación de modelos negocio usaria el Business Canvas Model. Sólo eso. Seria una forma unificada que todo el mundo usaria y entenderia. Algo así se podría hacer para explicar la parte Dev.
  • Creo que se hecho en falta gente de la industria IP como SCEE, Microsoft, GAME o Nintendo.
  • También eché en falta game philosophers como mis amigos de ArsGames.
  • Curiosamente no escuche la palabrota «gamification» en toda la jornada.
  • La jodida WiFi volvió a dar problemas en las DEMOS. ¿Lo solucionaremos algún día? Es como dejar a un cirujano sin bisturí teniendo el corazón del paciente abierto.
  • Todas las ideas me gustaron, pero no vi ninguna idea killer que ayude a vender más juegos.
  • Como siempre, el buen rollo reinó y «me lo pase como un enano» 🙂

Quiero agradecer a los organizadores,  @miquelcamps, @akey (Dani Rojo), @MarkVillaCampa y cia. por el gran trabajo que hicieron.

A título personal, muchas gracias a esos patrocinadores, Fon, bq readers, EDIS, MailJet, Generacion X y Red Bull, que ayudan a que estos geniales eventos sean posibles aún teniendo los presupuestos de marketing tan ajustados.

Los datos sobre los proyectos presentados los he sacado de mi mala memoria. Si hay algo raro o incorrecto, pls, comentadlo y lo corrijo o añado.

Ahora toca recuperar fuerzas para el 4º Hackathon (esperemos que no caiga en tan mala fecha ni coincida con otro hackathon como el de BlackBerry).

Bye!

Recursos

Face Alt, a Face alternative SaaS to detect faces in pictures in Beta

On July 7th I received an email from Face.com  where they said that their API will be off in 30 days.

That sucks! 

The reason of my anger was that Face.com provides a great free SaaS to detect and recognize faces in pictures and I and thousands of developers around the world use their API to run our applications. «Face» was acquired by Facebook a month ago and it seems that Facebook now only have access to this API.

I saw then clear: I will create a new open source alternative service. We’ll call Face Alt (http://face-alt.org).

After a hard week of work during free time, the Face Alt Beta is now online!

The main features of Face Alt are:

  • It’s open source. The repository is in GitHub. It uses the great open source library OpenCV.
  • Initially only been implemented frontal face detection. We use the Haar Cascade classifier. We need to improve the detection ratio.
  • Face recognizer will be availble soon. Probably we will use cv::FaceRecognizer (included in OpenCV). This library implements the Fisherface algorithm. Developed by Philipp Wagner.
  • Detection of gender or face attributes will be added using Fisherface too (probably)
  • Detection of rotated faces is under study.
  • If you want collaborate with us, join us in our google group: face-alt.
  • API is restricted to 100 requests per day maximum
  • JavaScript API library available. Python, Ruby, Java,C#…coming soon!

If you want to enter in the beta program, sign-up here.

About the SaaS implementation, we use a AWS server instance configured with nginx connected via FastCGI with a native C++ face detector implementation.

Finally, say we are looking for collaborators, if you like this exciting field of computer vision, come with us!

See you 🙂

reeCoupon: App NFC de descuentos para grupos creada en el II Hackathon Betabeers

ReeCoupon App: The 1st NFC Group Discount App

ReeCoupon App: The 1st NFC Group Discount App

El pasado día 30 de Junio de 2012 se celebró el II Hackathon de Betabeers con software libre.

La tematica era: ocio y descuentos.

Los patners fueron Yunait (agrupador de cupones de descuentos) y MailJet (plataforma B2B para el envío de correo transaccional y/o marketing).

El reto era desarrollar en un día con herramientas de software libre una aplicación o web relacionada con el ocio y descuentos que usan las APIs de los patners.

Mi amigo Vaib y yo llevabamos la idea de una app que permitiera acceder a grandes descuentos siempre que se compartieran o buscaran a varios amigos para disfrutarla.

Ambos somos «evangelizadores» del NFC (Near Field Communication), así que por supuesto esta app debía de usar NFC.

Una de las principales ventajas de usar NFC es que permite dar visibilidad a cosas de Internet en el espacio físico.

Los grupos para el hackathon eran de 3 personas. Como nosotros eramos dos, decidimos contar nuestra idea y se unió Sergio (@sdelamo) al grupo (no pudimos hacer mejor fichaje, un auténtico crack de Groovy).

Después de una jornada desarrollando, sin pausa pero sin prisa, obtuvimos un proof-of-concept de: reeCoupon.

El elevator-pitch-app de reeCoupon es: App NFC de grandes descuentos para grupos. Los descuentos sólo son válidos si al menos van un número fijado mínimo de personas. Las promociones o cupones son capturadas inicialmente desde un smartposter o NFC-corner. Esto permite dotar de visibilidad física a cupones que son abstractos en Internet. Es como darle vida a «ceros y unos». Para captar más amigos a la promoción se puede pasar por email, código QR y,lo que es más interesante, usando Beam.

Hacer «beam» consiste en pasar cosas de un móvil a otro con sólo acercarlos.

NFC Beam

NFC Beam
Fuente: areandroid.com

Las principales ventajas de reeCoupon son:

  • Concepto sencillo (y fácilmente implementable en un PoC)
  • Visibilidad en el mundo físico a los famosos cupones
  • Alta viralidad. Es muy «cool» y social compartir los cupones usando la tecnología Beam.

La tecnología usada fue:

  • Groovy/Grails para el desarrollo del backend
  • PhoneGap y PhoneGap NFC plugin para el desarrollo del App
  • Google Drive, DropBox, … para la gestión y comunicación
Para la presentación de reeCoupon decidimos contar una historia que reflejara los problemas y las ventajas de la solución creada.
El resultado fue que ¡ganamos el segundo premio! (6 meses de suscripción bronce a mailJet) 🙂

Quisiera agradecer a Vaib (@taggito) y a Sergio (@sdelamo) por hacer muy buenas migas entre los tres y crear esta app, a Betabeers por organizar este tipo de eventos que pone en contacto a desarrolladores que suelen estar aislados en su día a día y que nos hace sentir más que una comunidad, una gran familia.

Agradecer también a los patners, Yunait, Mailjet y otros, por apoyar este tipo de iniciativas muy necesarias para la comunidad de desarrolladores y la industria TIC. Espero que se animen más 🙂

reeCoupon demo video coming soon. ¡Permaneced conectados!

Isobar Create London: nuestra primera app NFC, Pick&Drop

iPubs Team en Isobar Create London NFC

iPubs Team en Isobar Create London NFC

El penúltimo fin de semana de Marzo (24 y 25) tuvo lugar en Londres el 1º hackathon para el desarrollo de aplicaciones móviles que hacen uso de tecnología NFC en el viejo continente.

Anteriormente a Europa, se celebraron dos eventos en Estados Unidos (el primero en San Francisco y el segundo en Boston).

El evento fue organizado por Isobar (una agencia de comunicación moderna) en colaboración con una buena cartera de patners, destacando principalmente O2 (Telefónica UK). BlueVia, Google, Samsung, Kelloggs, Adidas, Kovio, etc.

La idea es sencilla, durante dos días y una noche te proporcionan la tecnología NFC, ayuda de expertos en la materia y un excelente catering para que equipos de hasta 5 profesionales (desarrolladores y/o diseñadores) creen una aplicación NFC que asombre al mundo.

El objetivo es claro, la tecnología NFC está ahí pero no se ha encontrado todavía un caso de uso que haga que las masas quieran ya un móvil con NFC. Los principales casos se que se conocen son: pagos, configurar el móvil según el contexto, cupones de descuento, intercambio de información entre terminales, etc. ¿Habrá que esperar a que Apple tome cartas en el asunto?

En las primeras horas del evento, recibimos charlas inspiradoras por parte de grandes profesionales de los respectivos patners. Así por ejemplo, habló el ingeniero jefe en NFC de Google, ingenieros de innovación de Proxama, el código ético de Diageo, etc.

Con las pilas de «innovación» cargadas nos pusimos manos a la obra. Ya teníamos la idea medio preparada y algunos diseños gráficos hechos.

Los criterios de evaluación iban buscando premiar aplicaciones que rompieran con lo visto hasta ahora, que establecieran relaciones marca-cliente, que ayudaran a retener la marca a los potenciales clientes y que tuvieran una clara explotación comercial.

Con estos requisitos la aplicación salió sola: «Pick&Drop«. Nuestra idea era crear un ecosistema de promociones representada por «chapitas» (badges). Es muy sencillo. Al tocar con tu móvil una tarjeta NFC «pick» obtienes la promoción. Cuando encuentras un punto «drop» puedes canjear dicha promoción.

Un ejemplo gráfico, en un revista ves un badge «pick» por una cerveza gratis. Pasas el móvil y lo capturas. Luego te acercas a tu bar o pub preferido, pasas el móvil otra vez y te ponen tu cerveza, ¿fácil no?

Esto se puede complicar para obtener premios mayores ya que hay promociones que requieren de más códigos. Ejemplo, si obtienes la chapita de la tónica y la chapita de la ginebra, puedes tomarte el gintonic perfecto. Con este mismo esquema se puede hacer un programa de fidelización del cliente, por cada 5 desayunos, 1 gratis.

Otro tipo de promoción que ideamos fueron las promociones para grupos. En este caso, el objetivo de la promoción es atraer a un grupo de amigos hacia una determinada marca, local, etc. Al pasar el móvil por una chapita de este tipo, verás qué amigos tuyos también lo tienen y podrás quedar con ellos para poder disfrutar de la promoción conjunta. Ejemplo, si vienes con dos amigos más a la pizzeria, os damos un pizza familiar gratis. Estas promociones se puede compartir a través de Facebook.

Volviendo al evento, el domingo a las 4pm se terminaba el hackathon y era el momento de presentar el «proof-of-concept» de la idea. Fuimos los primeros en exponer ya que teníamos que volver a casa pronto.

A pesar de que teníamos claro desde el principio que la presentación era clave, fue sin duda la peor presentación que he hecho en mi vida. Creo que nadie se entero de qué fue lo que hicimos. Hay que aprender de los errores para la próxima.

Los premios se dividían en 4 categorías:  retail (venta al por menor), entretenimiento y ocio, eventos deportivos y financiero.

Los ganadores de estas categorias fueron:

  • Retail: We’re Appy con «PillIt«, aplicación que permite llevar control sobre la medicación incluyendo un poco de gamification.
  • Entretenimiento y ocio: Blue Butterfly con «Tap-the-Wifi«, aplicación que permite configurar automaticante tu móvil para conectarte a lared wifi de bares, pubs, hoteles, etc. Ya existía una aplicación en Google Play que permite hacer esto y más cosas: NFC Task launcher
  • Eventos deportivos: Ying Yang con «Total Event«, aplicación para compartir información sobre jugadores durante un partido.
  • Financiero: New found comms con «Street Screen«, aplicación que permite hacer compras desde anuncios publicitarios.

Además de estos premios, habian otros 3 muy jugosos:

  • 10k £ para el desarrollo de la aplicación por parte de Proxama. El ganador volvió a ser «Tap-the-Wifi«. El jurado destacó su utilidad y sencillez.
  • Apoyo para el desarrollo de la aplicación por parte de BlueVía. El ganador fue Team Rollercoaster con una aplicación para reservar sitio en las colas de las atracciones de feria. Cuando tu turno se aproxima, te avisan.
  • Viaje con todos los gastos pagados a Blackberry World Conference en Orlando. El ganador fue London BBDG con «Tesco App«, aplicación que permite mejorar la experiencia de usuario de los compradores.

En líneas generales, parece que el jurado premió la sencillez. Felicidades a todos los ganadores.

Quiero agradecer a Isobar y a todos los patrocinadores por este gran evento que esperamos se replique por el resto de Europa. También añadir una crítica constructiva. La próxima vez que se convoque un evento, por favor, indicar la hora de finalización exacta. Nosotros tuvimos que cambiar la logística del viaje porque en un principio el evento terminaba antes de lo que al final fue. Una buena infraestructura Wi-Fi es muy recomendable (varias redes, baja potencia de emisión, canales ortogonales para que no existan interferencias,etc).

Agradecer también el apoyo que nos dió Andrés de BlueVia para integrar nuestra aplicación con su API.

El material NFC (tarjetas y lectores) que Taggito nos proporcionó fué también muy importante para prepararnos de cara al evento. Muchas gracias.

Ya estamos deseando acudir al próximo evento 🙂

Referencias:

Pantalla de inicio


Pick&Drop: splash screen

Captura de pantalla


Pick&Drop: Screen Capture

SSH: La navaja suiza del administrador de sistemas

Secure SHell (SSH) es un intérprete de ordenes remoto. Su principal uso es para la administración de sistemas remotos. Reemplaza al antiguo e inseguro «rlogin» mediante el uso de TLS (lo que añade cifrado de datos y evita el man-in-the-middle attack).

El uso habitual de SSH es:


ssh <usuario-remoto>@<host>

Si conecta con el equipo remoto, sólo nos basta introducir la contraseña y estaremos dentro.

Si sólo queremos ejecutar una orden o un script determinado, añadimos el comando al final. Un ejemplo habitual es reiniciar una máquina.


ssh root@server1.dominio.com reboot

Visto su uso habitual veamos otros ejemplos muy útiles para llevar mejor el día a día del administrador de sistemas.

Túnel proxy

Si no estamos muy seguros de que nuestra navegación web pase por un canal seguro (sin fisgones), podemos hacer un canal seguro entre nuestro equipo y nuestro servidor de confianza (si no teneis uno, podeis lanzar una micro-instancia de Amazon EC2, tendréis un buen proxy server por $0,02 por hora).

El tunel se establece así:


ssh  -D 8080 <user>@<host>

La opción -D 8080, indica que queremos hacer un túnel asociado al puerto local 8080. Sólo nos quedaría configurar nuestro navegador web para usar como proxy SOCKS el equipo «localhost» en el puerto 8080.

SSH con interfaz gráfica

Si no os sentís cómodos con la línea de comandos, o bien necesitáis correr una aplicación gráfica, SSH tambíen tiene una opción para ayudaros. Sólo necesitais estar ejecutando un servidor X Window (normalmente Xorg Server) en vuestra máquina y redireccionar el tráfico X11 hacia ella.


ssh  -Y <user>@<host>

El argumento «-Y» hará todo el trabajo de redirección por nosotros. Sólo nos queda ejecutar nuestra aplicación gráfica (Ej. netbeans).

Tunel proxy estático

Es una variante del túnel anterior pero con la particularidad de poder especificar el puerto de destino en el host remoto. Se ve mejor con un ejemplo.

Suponed que habéis desarrollado una aplicación servidor que recibe un mensaje y lo redistribuye vía Twitter a una cuenta especificada (vale cualquier otra aplicación imaginable). Esta aplicación escucha los mensajes en el puerto 1234.  Como ibais justo de tiempo (algo demasiado habitual) habéis optado por no usar TLS para cifrar la comunicación y utilizar en su lugar un canal SSH.

La solución es sencilla. El cliente tiene que asociar un puerto del equipo local al puerto de aplicación del servidor mediante la siguiente sintaxis.


ssh  -L <puerto-local>:<host-server>:1234 <user>:<remote-server>

Hay que especificar que <host-server> no tiene porqué ser igual a <remote-server>. Si tanto el equipo donde corre el servidor SSH como el que corre la aplicación servidor, son el mismo, la sintaxis sería:


ssh  -L <puerto-local>:localhost:1234 <user>:<remote-server>

Si no coinciden lo que ocurre es que habría una comunicación no segura entre <remote-server> y <host-server>.

Bueno, estas son algunas de las utilidades más importantes de SSH. Existen otras como «scp» (para copiar archivos) o «sftp» (ssh ftp).

Sólo deciros que si sois usuarios de Windows, podéis usar PuTTY.

Translate to:English
MenefanteMenéame TwitterTwitter