Mañana tenemos la charla de los miércoles en nuestras oficinas de ASPgems.

Esta semana te queremos invitar a nuestra charla de los miércoles: “Un día en la vida de un CIO” aspgems. Con Rubén Muñoz, CIO de Gnesis.

La vida del CIO ha cambiado mucho y ahora es un elemento crucial en los comités de dirección de las grandes empresas como responsable, no sólo de los sistemas de información de una compañía, sino que también participa en la definición de la estrategia.

Como siempre en las oficinas de ASPgems, a las 13:00 horas, si quieres venir apúntate en comunicacion@aspgems.

Y si te interesan nuestras charlas no dudes en apuntarte a nuestra newsletter 😉

Social Share Counters

Comments (1)

The Internet’s Own Boy: The Story of Aaron Swartz

Si todavía no has visto: “The Internet’s Own Boy: The Story of Aaron Swartz” deberías.

Si la has visto, difundela

Social Share Counters

Comments

Hoy toca la V edición del MeetUp de Machine Learning

En esta edición contaremos con José Manuel Navarro Gonzalez, es Ingeniero de Telecomunicación por la Universidad Miguel Hernández de Elche y, actualmente, doctorando en el Departamento de Ingeniería de Sistemas Telemáticos de la Universidad Politécnica de Madrid e investigador en el Center for Open Middleware, un centro tecnológico mixto entre el Banco Santander, Produban, Isban y la Universidad Politécnica de Madrid.

Su campo de investigación es la mejora de la gestión de sistemas distribuidos mediante la aplicación de Machine Learning. Ha participado en diversos proyectos de investigación, desde la compresión de imagen a la bioingeniería, siempre desde la perspectiva del Machine Learning aplicado. Usa en su día a día y sus intereses de investigación son una confluencia entre el Internet of Things y el Machine Learning que permitan la interconexión de todo lo que nos rodea y los beneficios que se pueden extraer de analizar los datos generados por ello.

El comunicado y oficial y los enlaces a la inscripción están en nuestra sección de big data de aspgems.

 

Social Share Counters

Comments

Scalatra para impacientes: Como montar un proxy de Elastic Search en 3 minutos

Un proxy puede ser un buen ejemplo de microservicio para construir con Scalatra. Un proxy es un servicio que normalmente recoge peticiones y las traslada a otro servicio. Si hay respuesta de este servicio se la devuelve al que empezó la llamada.

Habitualmente además se añaden algunas cosas que el servicio original no implementa como pueden ser: validación de usuarios, estadísticas de uso, agregación de información, simplificación de interfaces, tareas de servicio, capa de administración, etc.

En nuestro caso vamos a implementar un proxy contra Elastic Search con Scalatra en menos de 3 minutos ;-P

Eso si con algunos requisitos:

* Deberías tener instalado Scala. Si no lo tienes aquí tienes un mini tutorial de como instalar scala estilo shotgun.

* Si ya tienes instalado Scalatra todavía lo haremos en menos tiempo. Si no este manual de como instalar Scalatra para impacientes   te ayudará a hacerlo en un par de minutos.

Y ahora llega la mejor parte, tenemos dos opciones:

a) hacerlo de cero. Buscar toda la documentación de Scalatra, Interface REST de Elastic Search, etc, etc.

b) Clonar este proyecto de github, configurarlo y aprender como con unas cuantas lineas de Scalatra montamos un proxy de Elastic Search y los configuramos a nuestra medida y necesidades.

Por supuesto vamos a escoger la opción B que nos mete en el partido en 3 minutos.

1) clonar el proyecto de ejemplo de proxy para Elastic Search usando Scalatra:

git clone https://github.com/nfb-onf/nfbsearch-scalatra.git

2) Configurar el URI de conexión a tu Servidor de elastic Search (linea 35)

$ cd NFBSearch-Scalatra
$ vi src/main/scala/ca/nfb/NFBSearchServlet.scala

3) hacer un build del proyecto y lanzarlo.
$ ./sbt
> container:start
> browse

Lo que más me gusta de usar Scalatra es lo sencillo que es implementar una acción:

  get("/search") {                                                     
    contentType = formats("json")                                      
    val q:String = params("q")                                         
    val httpClient = new HttpClient                                    
    val response: Response = httpClient.get(new URL("http://localhost:9200/nfb_films/films/_search?q=" + q))          
    response.body.asString                                             
  }                     

Incluso alguien con poca experiencia con Scala/Scalatra sería capaz de leer y modificar este código.

Es puro código suscinto sin ningún tipo de ceremonia, lo explica muy bien Javier Lafora, nuestro CTO en ASPGems en su post sobre por que usamos ruby y rails en ASPGems como tecnología web y tiene muchos puntos en común con “Por que usamos Scala para hacer Big Data en ASPGems” (este todavía no está escrito!!! 😉 )

“Scala is Love”

Agradecer a los usuarios de la cuenta de github “nfb-onf” que me ha ahorrado un par de horas del plan A con su maravillosa y gratuita contribución a la comunidad. Muchas Gracias!!! os debo unas cervezas!!

Social Share Counters

Comments

Mañana miércoles día 4 tenemos el IV Meetup de Machine Learning

En esta ocasión nos visita Carlos Gil Bellosta y nos hablará sobre:  “Factorización no negativa de matrices” (Una aplicación a los motores de recomendación)”

Os dejo el enlace a la página del meetup machine learning Spain (¿todavía no te has apuntado? a que esperas!!!) y la convocatoria oficial:

Llegamos al IV meetup y en éste podemos celebrar que ya somos 400 en el grupo. Parece que “data science” sigue de moda y nuestro grupo continúa creciendo.

Estamos cerrando los últimos flecos del meetup para la próxima semana. En principio será el día 4 a las 19.00h, aunque estad atentos al grupo por si hay algún cambio. Tendremos a un ponente de lujo que seguro que todos conocéis, Carlos Gil Bellosta*: “Ex-eBay, ex-BBVA, ex-everis, ex-Barclays, exmatemático, ex casi todo. No obstante, estadístico diletante, entusiasta de R y bloguero en los ratos libres de los días de hacer”.

Dará una charla sobre “Factorización no negativa de matrices” (Una aplicación a los motores de recomendación). Os recomiendo que no os la perdáis.

Después de la charla haremos networking como siempre, con unas cervezas de por medio. Esperamos que os guste. ¡Nos vemos el miércoles!

Saludos.

Social Share Counters

Comments

Scalatra para impacientes: como crear tu primer proyecto

En el post anterior os conté como instalar algunos requisitos previos para poder usar scalatra. Ahora vamos a crear un primer proyecto.

Usaremos giter8 para crear la estructura inicial del proyecto. Vamos a utilizar SBT pero también se podría hacer con maven y le guste usar esta herramienta de compilación.

Para ello vamos a ejecutar:

g8 scalatra/scalatra-sbt 

nos hará las siguientes preguntas:

$ g8 scalatra/scalatra-sbt 
organization [com.example]:
package [com.example.app]:
name [My Scalatra Web App]:
servlet_name [MyScalatraServlet]:
scala_version [2.9.2]:
version [0.1.0-SNAPSHOT]:

Donde:

organization:  nombre del dominio del que publica al reves, si no tienes la gente acostumbra a usar: com.github.username

package: A Paquete al que se asigna todo el código que se va a generar. La Scala Style Guide  recomienda que tu organización tenga todo su código bajo mismo namespace.

name:  El nombre de tu proyecto. giter8 creará un directorio con este nombre y dentro estará toda la estructura.

servlet_name: El nombre de la clase Servlet podría ser BlogServlet o Blog.

scala_version: Que versión de Scala vas a utilizar.

version: La versión de tu proyecto.

Ahora es el momento de construir tu primer proyecto:

$ cd 
$ chmod u+x sbt
$ ./sbt

sbt se encargará de bajarse todo lo que necesite tu máquina para que funcione scalatra y sus dependencias. La primera vez es posible que tarde unos minutos.

Una vez generado el proyecto y para probar que funciona:

$ ./sbt
> container:start

Ahora puedes probarlo en este enlace http://localhost:8080

Los tutoriales de Scalatra son muy buenos. Te recomiendo que les des un vistazo. Tienen ejemplos de cada caso de uso: como subir ficheros, JSON, Akka, etc.

El siguiente post de esta serie será montar un proxy de Elastic Search usando Scalatra.

Bonus de Post:

Si inicializas un proyecto de Scalatra con estas opciones en una ventana aparte:

$ ./sbt
> container:start
> ~ ;copy-resources;aux-compile

Cada vez que modifiques el código, se compilará automáticamente y recargará la nueva versión si accedes a la url 😉

 

Social Share Counters

Comments

Scalatra para impacientes: Como instalarlo

Hace unos años descubrí  Sinatra. El 95% de los proyectos que hacía era con Ruby on Rails. Había veces que simplemente tenía que implementar un API REST y aunque se podía hacer con Rails, tenía la sensación que estaba matando moscas a cañonazos.

Entonces le eché un vistazo a Sinatra y descubrí que viniendo de Rails y Ruby, era la herramienta perfecta para hacer cosas como un API o un pequeño interface e incluso cosas más complejas pero sin llegar a toda la potencia y complejidad de Rails.

Como sabéis ahora hago muchas más cosas con Scala y con Apache Spark pero sigo teniendo la necesidad de resolver la misma clase de problemas que no necesitan un framework como Play (el Ruby on . La mejor solución desde mi punto de vista es Scalatra.

Scalatra es un clon de sinatra escrito en Scala con todas las ventajas del lenguaje (OO, Funcional, reactivo, actores, etc).

Como instalamos scalatra:

Requisitos: 

* Necesitas tener el JDK 

Si haces esto puedes comprobar si ya lo tienes instalado y que versión tienes.

$ java -version
java version "1.7.0_10"
OpenJDK Runtime Environment (IcedTea6 1.11.1) build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b094, mixed mode)

 

$ javac -version
javac 1.7.0_10

 

Si no lo tienes instalado o es una versión menor que la 1.7, recomiendo que instales el java 7 siguiendo las instrucciones de esta página.
* Instalate giter8 

Giter8 es una utilidad para generar proyectos de scala. Básicamente usa las plantillas para proyectos que ha creado la comunidad. Más adelante lo utilizaremos para generar la estructura de nuestro primer proyecto con Scalatra.

Para instalarlo primero instalamos conscript:

 

curl https://raw.githubusercontent.com/n8han/conscript/master/setup.sh | sh

 

Esto te creará un directorio bin en tu directorio home: ~/bin

En este directorio instalará el programa, para incluirlo en tu PATH de ejecución añade al .bash_profile o .bashrc estas dos lineas:

PATH=$PATH:~/bin
export PATH

y luego ejecuta esto para que te actualice tu entorno.

source ~/.bash_profile # (Mac)
source ~/.bashrc       # (Linux)

Ahora vamos a usar conscript para instalar giter8. Conscript se encargará de bajarse además todas las dependencias que necesita giter8.

 

cs n8han/giter8

Con esto ya tienes lo que necesitas para generar tu primer proyecto con Scalatra.

Vía: página oficial de escalatra. 

 

Social Share Counters

Comments

Scala para Impacientes: Como instalar Scala

Hace mucho tiempo que dejo de ser una noticia que me gusta el lenguaje Scala. Que se ha haya convertido en el lenguaje estrella de la vanguardia de Big Data va a ser la clave del éxito en proyectos como Apache Spark. Pero vamos a ver Scala implicado en todos los proyectos importantes (Kafka, Akka, etc  😉

Esta seríe de posts va a ser estilo shotgun. Esto es una especie de disclaimer: voy a contar como hacer las cosas y a añadir algunos enlaces por si necesitas más ayuda.

Vamos al lio en unos cuantos pasos:

a) Bájate la última versión oficial de Scala. 

Esta es la página oficial de descargas de Scala. 

Tienes varias opciones bajarte el tgz o usar la herramienta typesafe activator que es un IDE para gestionar esto y algunas cosas más. Yo me siempre me bajo el tgz.

El tgz una vez que lo descomprimes con tar xvfz te dejará un directorio con todo lo que necesitas de scala. Muévelo donde más te guste según tus preferencias.

Además en la página de downloads están los IDEs basado en eclipse, netbeans, etc. Yo sigo siendo de VIM, lo llevo usando 30 años seguidos (no he sido capaz de salir ;-P)

b) Mete en tu .profile o .bashrc o lo que use los PATHS

Las variables que necesitas son:

SCALA_HOME=/usr/local/share/scala             # Si has movido el directorio de scala a este directorio

PATH=$PATH:$SCALA_HOME/bin

Ya está!!!

Hay más opciones para instalar scala si usas Linux o Mac OSX como instalar por paquetes, pero yo prefiero hacerlo desde el sitio original y con la última versión 😉

Siguientes pasos:

Sigue la guía oficial de primeros pasos con scala 😉

Mi recomendación: scala tiene shell/consola, pruebala te resultará imprescindible.

 

 

 

 

 

Social Share Counters

Comments

Hacer proyectos con Spark y Scala tiene premio

Recuerdo que justo hace un año asistí a una charla de introducción al proyecto Apache Spark. Mucho de lo que allí contaron no era más que la primera información de un Spark que se había “graduado” en noviembre del 2013.  También recuerdo perfectamente el comentario final del ponente: “Spark va a ser la bomba”

Aquella frase se me quedó marcada a fuego y confirmaba que no era el único que veía clara la oportunidad y posibilidades de Spark.

Ahora un año después AUTELSI ha premiado la innovación del proyecto de Telefónica MSS-Saqqara  y una parte importante del funcionamiento y prestaciones del producto se lo debemos a Spark. Para ser justos la combinación Spark y el lenguaje Scala es definitivamente ganadora e innovadora. Todas las virtudes de Scala han sido fundamentales para poder influir y concebir Spark y me voy a permitir una pequeña licencia: “Nunca se hubiera podido crear algo como Spark con Java”.

La otra parte con la que me siento premiado, realmente premiado, es con el equipo que son los que realmente han conseguido que lo difícil pareciera fácil, los que desde el principio estuvieron dispuestos a salir de su zona de confort para apostar por una tecnología que al final no solo funciona perfectamente si no que además tiene premio.

 

Social Share Counters

Comments

Taniwa presenta Mememtum

Este jueves día 19 de febrero a las 20:00, Jose Luis Marina de taniwa presentará el proyecto Mememtum. Lo harán en MVCafé.

Mememtum es un detector temprano de los casos de parkinson. No hay como un vídeo para entenderlo mejor:

Social Share Counters

Comments

« Previous entries