CodeURJC participa en el proyecto LERNIM: Una web para la enseñanza de idiomas mediante videoconferencia

Los miembros de CodeURJC siempre estamos buscando nuevos retos en los que podamos desarrollar nuestro potencial y colaborar con otras instituciones y empresas. En este post os queremos presentar el proyecto LERNIM, que comenzó a principios de 2017.

El nombre oficial del proyecto es LERNIM: Plataforma ATAWAD para el Aprendizaje de Idiomas Mediante Tecnologías Interactivas Avanzadas de Comunicación Multimedia (RTC-2016-4674-7). El proyecto tiene como objetivo:

“Crear, demostrar y validar LERNIM: una plataforma tecnológica de nube (cloud) que, mediante el uso de tecnologías de comunicación multimedia de última generación, haga posible la prestación de servicios de tele-enseñanza de idiomas adaptados a los mecanismos de interacción social de la WWW y permita experimentar nuevos modelos de tele-enseñanza inmersivos a través de nuevos dispositivos, de mecanismos de realidad aumentada e interacción gestual, y de mecanismos automáticos de evaluación mejora del aprendizaje.”

Selection_143.png

Para llevar a cabo este proyecto, CodeURJC colabora con dos empresas. Una de ellas es Newoxland SL es una PYME con actividad principal en el negocio de la enseñanza de Inglés desde 2003 y en continuo desarrollo e innovación. Tiene como principal foco de actividad la enseñanza de inglés y ahora especialmente a través de Internet. Esta actividad se lleva a cabo a través de la plataforma comercial, Oxbridge: una solución para el tele-aprendizaje a medida del inglés.

Resultado de imagen de oxbridge logo

La otra empresa con la que colaboramos en el proyecto es Tikal Technologies SL, más conocida por su marca comercial NaevaTec. Esta empresa fue creada en el año 2010 por profesionales procedentes del sector de las infraestructuras de telecomunicación y del desarrollo de software para comunicaciones. Las líneas de negocio principales de Naevatec se focalizan en la creación de soluciones y servicios para sistemas de mensajería multimedia y comunicación multimedia para Internet y redes móviles, contando con numerosos clientes en el ámbito de los operadores de telecomunicación. Naevatec es una empresa con la que CodeURJC tiene una larga tradición de colaboraciones, especialmente en los últimos años, en los que hemos colaborado para el desarrollo de Kurento, el servidor multimedia open source recientemente adquirido por Twilio.

NAEVATEC

Las responsabilidades de nuestro equipo en el proyecto consisten fundamentalmente mejorar la plataforma Kurento para facilitar la implementación de soluciones de teleenseñanza y soportar nuevos modelos de comunicación (como la realidad virtual y la realidad aumentada). Para conseguir este objetivo estamos desarrollando OpenVidu, un software basado en Kurento que ofrece un modelo de desarrollo mucho más sencillo y fácil de usar. Así los los desarrolladores puedan incluir funcionalidades de videoconferencia en sus propias aplicaciones web sin complicaciones.

Resultado de imagen de kurento logo

Este proyecto tiene una duración de tres años (01/01/17 a 31/12/19) y está siendo financiado por el Ministerio de Economía, Industria y Competitividad a través de la Agencia Estatal de Investigación y el Fondo Europeo de Desarrollo Regional FEDER con el objetivo de “Promover el desarrollo tecnológico, la innovación y una investigación de calidad“.

Selection_142.png

Anuncios

Charla presentación de ElasTest

Si me sigues en twitter te habrás enterado de que he estado unos días en Berlín trabajando en el proyecto ElasTest. Quizás te estés preguntando, qué es eso de ElasTest? Por el nombre que tiene, a lo mejor intuyes que tiene algo que ver con Elastic Testing o Cloud testing. Si quieres saber qué es, puedes echar un vistazo al post de presentación del proyecto, pero yo te hago un resumen rápido.

elastest_logo_grey_vertical_1082x682

ElasTest es una plataforma open source para testing end to end, especialmente focalizada en aplicaciones distribuidas complejas (web, dispositivos móviles, internet de las cosas, aplicaciones nativas cloud).

Si te parece interesante, el próximo Miércoles 24 de Mayo a las 19:00 daré una charla sobre ElasTest en el campus de Móstoles de la Universidad Rey Juan Carlos. La sala está todavía por decidir. Actualizaré el post cuando lo sepa.

Si sigues leyendo es que te ha picado la curiosidad, así que te voy a explicar en un poco más de detalle qué funcionalidades ofrece ElasTest y qué aporta al ecosistema de herramientas de testing. Una de sus características diferenciales es que ofrece servicios de soporte al testing integrados, que habitualmente se encuentran en diferentes herramientas comerciales y sin integración entre ellas. Algunos de estos servicios son:

  • Navegadores web y emuladores de dispositivos móviles controlados con selenium, con visualización durante la ejecución de los tests y grabación.
  • Emulación de dispositivos IoT.
  • Análisis de la calidad del vídeo y audio (QoE) en aplicaciones web con video en tiempo real con WebRTC
  • Gestión integral de los logs y métricas generadas durante la ejecución del test: navegador web, servidor web, base de datos, peticiones http, etc. Con sincronización con las grabaciones de los navegadores web.
  • Instrumentación de los elementos del test y del sistema a probar para simular diferentes condiciones de red, fallos en los nodos del sistema distribuido, etc.
  • Generación automática de tests de seguridad de servicios web o REST.

Otra de las funcionalidades relevantes de ElasTest es que permite ejecutar baterías de tests con diferentes condiciones o entornos y comparar de forma automatizada los resultados obtenidos. Es lo que llamamos orquestación de tests. Por ejemplo, se puede diseñar un test compuesto que ejecute el mismo test de carga, con diferentes números de usuarios y diferentes estrategias de escalabilidad para determinar cuál es la más adecuada en coste, calidad de servicio, etc.

Pero, cómo se usa ElasTest? Es una aplicación de escritorio como JMeter? Es un plugin de un IDE? Es una herramienta por línea de comandos como Maven? Es una aplicación web como Jenkins? En realidad es todo eso a la vez ;). ElasTest se puede instalar en el portátil del desarrollador como una herramienta de escritorio. También se puede integrar con los IDEs para ejecutar los tests desde ahí. Se puede controlar desde la línea de comandos y también se puede instalar como una aplicación web, junto con el entorno de integración continua. Además, no tendrás que reimplementar tus tests para aprovecharte de las ventajas de ElasTest. Puedes ejecutar tus tests JUnit de Java, o Jasmine y Karma de JavaScript, o cualquier otro test implementado en cualquier otro lenguaje. ElasTest ofrece una API REST para que puedas usar sus servicios desde de forma remota desde tus tests de siempre.

En la siguiente imagen puedes ver ElasTest vía web, mostrando los logs de ejecución de un test y el navegador web que está controlando.

ElasTest Proof of Concept

ElasTest es un servicio elástico que se aprovecha de los recursos de computación disponibles en la plataforma en la que se despliega o en una plataforma externa. ElasTest puede ejecutar sus tests en Docker Swarm, Kubernetes, OpenStack y AWS. De esta forma, si para ejecutar un test de carga son necesarios muchos recursos de computación, los podrá obtener directamente de la plataforma.

Tiene buena pinta verdad? Sólo hay un pequeño “problemilla“… ElasTest todavía no está implementado 😉 pero estamos trabajando duro para que lo esté cuanto antes. ElasTest está siendo desarrollado por varias empresas, universidades y centros de investigación de toda europa liderado por nosotros, el equipo de CodeURJC. El desarrollo se enmarca en un proyecto está financiado por la Comisión Europea y tiene una duración de 3 años (desde Enero del 2017 hasta Diciembre del 2019). Todo el desarrollo se está realizando en abierto en GitHub y en esta lista de correo. Iremos publicando todas las novedades en Twitter y el Blog.

Si te interesa el proyecto y quieres colaborar de alguna forma avisa por Twitter, pon un issue en GitHub o participa en la lista. Esperamos poder tener pronto un primer prototipo con el que puedas empezar a jugar y darnos feedback. Nuestro objetivo es que ElasTest sea una herramienta realmente útil que facilite el desarrollo y ejecución de tests y que mejore la calidad del software que usamos día a día.

Si te pica el gusanillo y tienes pensando venir, deja un comentario y pon tu cuenta de twitter y así te tenemos fichado.

Nos vemos el Miércoles 24 de Mayo, no te lo pierdas.

 

Investigador post-doctoral en CodeURJC

Como comentábamos el otro día, en CodeURJC estamos involucrados en diversos proyectos de investigación relacionados con el testing de software, la transmisión de vídeo, computación en la nube, etc.

La Comunidad de Madrid nos acaba de conceder una ayuda para la contratación de un investigador post-doctoral durante 2 años. Estamos buscando candidatos que pudieran estar interesados en colaborar con nosotros en los proyectos y progresar en su carrera como investigadores.

¿Qué ofrecemos? 

La posibilidad de trabajar en un equipo formado por desarrolladores software e investigadores ilusionados con su trabajo, con ganas de elaborar publicaciones de impacto, comprometidos con el software libre y apasionados del desarrollo software.

Ofrecemos un contrato de 2 años de duración, del 1 de Abril de 2017 al 31 de Marzo de 2019.

El sueldo está por determinar porque la ayuda de la Comunidad de Madrid es bastante baja y queremos complementar ese salario con otras fuentes de financiación. Si te interesa el puesto, ponte en contacto con nosotros y te daremos más detalles.

El trabajo se realizaría en el Campus de Móstoles de la URJC, con horario flexible y con la posibilidad de teletrabajo un día por semana.

¿Qué requisitos tiene el puesto?

Como la ayuda para la contratación viene de la Comunidad de Madrid y de la Comisión Europea, nos ponen bastantes restricciones de los candidatos. En concreto:

  • Que esté empadronado en la Comunidad de Madrid desde Agosto del 2016.
  • Que tenga menos de 30 años el día 1 de Abril.
  • Que el día 31 de Marzo esté inscrito como demandante de empleo (en el paro). Aunque haya dejado de trabajar justo el día anterior.
  • Que sea doctor.

Si tienes interés en el puesto de trabajo y cumples con los requisitos, por favor ponte en contacto conmigo enviándome un correo a micael.gallego [at] urjc.es.

Si no estás interesado, pero conoces a alguien que crees que lo pueda estar, por favor transmítele esta la información. Gracias 😉

Buscamos un desarrollador/a junior

Como en la última entrada, de nuevo estamos buscando a un/a desarrollador/a software que se venga a jugar con nosotros a CodeURJC. Tenemos de plazo hasta el 2 de Febrero!! para encontrar candidato.

Las prisas por encontrar candidato se deben a que el contrato está subvencionado por una ayuda pública, y nos ha puesto esa restricción. Así que si estás interesado, date prisa!!

¿Qué buscamos?

Buscamos un/a desarrollador/a junior, que tenga terminada la carrera (Título de Graduado, Licenciado, Ingeniero o Ingeniero Técnico). Preferimos que la carrera sea de informática o telecomunicación, pero si tienes pasión por aprender y te gusta la programación, nos da igual la carrera que tengas.

No se requiere ningún tipo de experiencia previa, aunque se valorará positivamente soltura con el lenguaje de programación Java o JavaScript. Lo que si que queremos es que tenga pasión por aprender, que le guste la profesión, que sea curioso, que se pregunte el por qué de las cosas, que no esté obsesionado con una única tecnología y no le importe descubrir cosas nuevas.

¿Qué ofrecemos?

Ofrecemos un sueldo de 19.500€ brutos al año. El contrato tiene una duración de 2 años y empieza el 1 de Marzo.

El candidato estará integrado en el equipo de desarrollo de CodeURJC. Dependiendo de sus habilidades y su soltura con las tecnologías, se pondrá directamente a programar o pasará un periodo inicial de aprendizaje.

Tenemos varios proyectos en marcha, con diferentes tecnologías y diferentes objetivos:

  • Aplicaciones de ayuda a los desarrolladores / tester: Dentro del proyecto ElasTest, del que hablaremos en detalle en otro post, tenemos que desarrollar diversas herramientas para ayudar a los desarrolladores a escribir tests de integración de sus aplicaciones web, aplicaciones móviles, de Internet de las cosas, etc. Entre estas aplicaciones, tenemos que implementar:
    • Plugin de Jenkins: Vamos a desarrollar un plugin del sistema de integración continua Jenkins. Todavía tenemos que definir muchas cosas, pero para el front usaremos algo de JavaScript (Angular 2 o React) y para el backend implementaremos en Java.
    • Librería de gestión de browsers con diferentes versiones: Esta herramienta está basada en Selenium y Docker.
    • Herramienta de gestión de logs: Esta herramienta tiene un interfaz gráfico Angular 2 y está basada en ElasticSearch.
    • Otras más: El proyecto todavía está abierto y posiblemente tengamos que hacer muchas más cosas.
  • Aplicaciones de videoconferencia basadas en Kurento: En CodeURJC estamos manteniendo el proyecto Kurento.org. Tenemos que desarrollar varias aplicaciones de ejemplo, corregir algunos bugs, incluir nueva funcionalidad ,etc… Echa un vistazo al proyecto para que veas qué pinta tiene.

Como puedes ver, hay muchas cosas que hacer y con diversas tecnologías. Principalmente vamos a usar Java y Spring en el backend y Angular 2 con TypeScript en el frontend, aunque es posible que nos toque usar plain JavaScript en algunos proyectos.

 

¿Qué requisitos existen?

Como el contrato está financiado por una ayuda pública (de la Comisión Europea concretamente), es necesario cumplir una serie de requisitos:

  • Tener un Título de Graduado, Licenciado, Ingeniero o Ingeniero Técnico.
  • Tener más de 16 años y menos de 30 en la fecha de la firma del contrato.
  • Estar empadronados en cualquier localidad de la Comunidad de Madrid a 31/08/2016.
  • Estar inscrito en el Fichero del Sistema Nacional de garantía Juvenil en la fecha de presentación de la solicitud y en el momento de la firma del contrato. Para estar inscrito en este fichero, sólo tienes que darte de alta como demandante de empleo o renovar tu solicitud.

Si estás interesado en el puesto y cumples los requisitos presenta tu solicitud de forma oficial aquí. Tienes de plazo hasta el 2 de Febrero, así que date prisa. Si te falta algún papel, echa la solicitud de todas formas, ya lo solucionaremos en caso de que seas seleccionado.

Después de haber echado la solicitud, o si tienes cualquier duda, escribeme por mail a micael.gallego [at] urjc.es.

Aunque no te interese la oferta, si la puedes difundir te lo agradecería.

 

Un saludo

Buscamos compañero “nativo” para el equipo de Kurento

En CodeURJC las cosas han cambiado mucho en los últimos meses. Como ya os contamos hace unos meses, el equipo de CodeURJC ha estado bastante involucrados en el desarrollo de Kurento, la plataforma abierta de desarrollo de aplicaciones de vídeo para la web basada en WebRTC. La mayor parte del equipo que creó Kurento ahora forma parte de Twilio, pero desde CodeURJC tenemos el compromiso de  seguir manteniendo y evolucionando Kurento.

Como os decía, Kurento es una plataforma abierta y software libre para el desarrollo de aplicaciones que gestionan vídeo en directo. Con Kurento se pueden implementar aplicaciones web o aplicaciones nativas en móviles, tablet o escritorio, todo ello gracias al estándar WebRTC. Además, la arquitectura modular de Kurento permite no sólo controlar quién puede ver qué fuente de vídeo, sino también procesar el vídeo en sí con técnicas de visión artificial usando OpenCV. Aquí tienes una presentación sobre qué es Kurento y también la grabación en vídeo.

Kurento Media Server capabilities

Los miembros del equipo original de Kurento que seguimos involucrados en el proyecto somos Micael Gallego (yo mismo), Patxi Gortázar y Boni García. Yo me encargo, junto con Boni, de los clientes de Kurento en Java y JavaScript, los tutoriales, aplicaciones de ejemplo e infraestructura de testing. Para ello usamos las tecnologías Java, JavaScript, Selenium, SpringBoot, JUnit, Maven, Jenkins, etc. Patxi Gortázar gestiona toda la infraestructura de CI: Jenkins, Docker, OpenStack, Bash, Archiva, Git, Gerrit… Como puedes ver, usamos bastantes tecnologías en el proyecto.

Connection of Kurento Clients (Java and JavaScript) to Kuento Media Server

Estamos buscando algún compañero de batallas que quiera acompañarnos en el mantenimiento y la evolución de Kurento. Concretamente, alguien que se encargue del corazón de Kurento, el Kurento Media Server. El servidor de media de Kurento está implementado en C/C++. Los clientes controlan lo que puede hacer con usando JSON-RPC y WebSockets, aunque luego el media viaja con WebRTC, RTP o HTTP. Para procesar el media utiliza GStreamer y algunas librerías adicionales para WebRTC. Está diseñado para ejecutarse en linux, concretamente en Ubuntu 14.04 o 16.04 y se distribuye como paquete debian o como imagen docker.

Resultado de imagen de gstreamer logoResumiendo, si tienes experiencia con C/C++ en sistemas linux y te gustaría trabajar con vídeo en tiempo real, eres el candidato perfecto para el puesto. Si tienes experiencia con transmisión de vídeo/audio, o incluso si has usado ya GStreamer y OpenCV, pues mucho mejor, pero lo importante es que tengas ganas de aprender y ponerte las pilasen estos temas. Además, recuerda que Kurento es una plataforma software libre con una gran comunidad detrás. Esto es ideal para los desarrolladores a los que nos gusta hablar de nuestro trabajo y enseñar todo lo que hacemos sin tener que pedir “permiso” y tener que evitar hablar de cosas confidenciales.

¿Qué te ofrecemos?

Aquí viene la información “técnica” del puesto de trabajo. El suelo dependerá de la experiencia previa que hayas tenido en C/C++, linux, GStreamer, transmisión de media, etc…, pero nos movemos en un margen entre 35.000€ y 42.000€.

El contrato laboral está asociado a un proyecto de investigación financiado por la Unión Europea. Este proyecto dura desde Marzo de 2017 hasta Diciembre de 2019. Nuestra idea es que estemos trabajando juntos todo el tiempo que sea posible. Y si nos conceden nuevos proyectos más allá del 2019, seguiríamos contando contigo. Es decir, ofrecemos un contrato anual de Marzo de 2017 hasta Febrero de 2018, pero con el compromiso de prorrogar ese contrato hasta Diciembre de 2019.

Resultado de imagen de campus mostoles urjc imagenes

Respecto al lugar de trabajo, nos gustaría que estuvieras con nosotros en el Campus de Móstoles de la Universidad Rey Juan Carlos (situación en Google Maps). Está bien comunicado para llegar en coche o en transporte público. Los horarios son flexibles y mientras asumas una carga de trabajo de unas 40 horas a la semana no nos importa la hora a la que llegas y a la que te vas cada día. En ese sentido, creemos en una conciliación laboral/familiar real. También somos proclives al teletrabajo uno o dos días por semana. No obstante, somos conscientes de que hay mucho talento fuera de Madrid y que obligar a que vengas a trabajar a Móstoles puede ser una limitación muy importante a la hora de interesarte por este trabajo. Así que estamos dispuestos a que trabajes en remoto completamente. Si tuvieras experiencia trabajando en remoto mucho mejor, porque nosotros no tenemos y tendríamos que hacer un esfuerzo en la coordinación, pero bueno, si tu perfil encaja a la perfección en lo que estamos buscando, merece la pena hacer el esfuerzo.

El resto del equipo CodeURJC

CodeURJC está creciendo mucho en los últimos meses. Estamos realizando colaboraciones con empresas y además nos han concedido el proyecto ElasTest, con financiación pública europea y el proyecto Lernim, con financiación pública nacional. Entre unas cosas y otras en el equipo seremos unas 8 personas, con perfiles muy diferentes: DevOps, Javeros, JavaScripters, senior, juniors. Aunque cada persona tenga un rol dentro del equipo y trabaje en proyectos diferentes, nuestro objetivo es que todos podamos compartir nuestros conocimientos e inquietudes en el desarrollo software. Queremos realizar actividades que nos enriquezcan a todos como un club de lectura, charlas, tiempo para proyectos open source… No nos vamos a aburrir.

Si te convence y quieres saber más de la oferta de trabajo, ponte en contacto conmigo en el mail micael.gallego@gmail.com y hablamos…

Mi experiencia en Codemotion 2016

Soy Mica. Os voy a contar mi experiencia en la conferencia/evento Codemotion 2016 que se ha celebrado esta semana en Madrid. Creo que han asistido unas 2000 personas, con unos 130 ponentes, 8 tracks de charlas en paralelo y otros 4 más de talleres. Vamos, que  no había tiempo de aburrirse. No he podido ir a todas las sesiones que me hubiese gustado, no he podido llegar a primera hora ninguno de los dos días y además el sábado me tuve que ir justo después de comer. Ya, lo sé, estas oportunidades habría que aprovecharlas al máximo, pero la conciliación laboral / familiar es lo que tiene 😉

Este año he dado una charla, lo que tiene algunas ventajas: no tenemos que pagar entrada y el jueves nos invitaron a un cóctel a todos los ponentes. Ideal para intercambiar impresiones con los colegas que también se han animado a contar sus experiencias a toda la comunidad.

Bueno, vayamos al grano, aquí os dejo mis reflexiones sobre el evento:

Logística

El evento me ha parecido bastante bien, sobre todo considerando que ha habido 2000 asistentes. En alguna ocasión me he perdido buscando el aula del taller o de un track concreto al que quería asistir, pero eso se debe más a mi despiste que a la falta de información. Respecto a la comida y los cafés… no puedo decir no fuera “mejorable”, pero en cierta medida es comprensible. Dar de comer a 2000 personas en hora y media en un formato “networking friendly” es muy complicado. Por ejemplo, el formato de las cajas de “picnic” me ha parecido más cómodo que el cóctel de la CAS del año pasado. La gente podía salir a la calle, subir a las gradas del polideportivo o quedarse de pie por las mesas. Lo que si eché en falta eran los cafés después de las comidas. Creo que a Bonilla le pasó lo mismo en la Tarugo Conf, la gente se quedó sin café.

La comunidad

Esto es lo que más me gusta de estos eventos, el contacto con los colegas de la profesión, o camaradas del metal, como popularizó David Bonilla. Nos pasamos el día hablando por las redes sociales con gente con la que no hemos podido tener una conversación en persona. Estos eventos son la oportunidad ideal de desvirtualizar a los followers y a los followees. Y por supuesto también nos permite retomar contacto con colegas que nos vemos en estos “saraos”. Este post es una buena oportunidad para recordar todas las conversaciones (aunque hayan sido fugaces) que he tenido en el Codemotion.

En la cena de ponentes estuve hablando con Javier Vélez (@javiervelezreye), recordando y continuando algunas de las trifulcas que tenemos por Twitter en relación con Angular 2 y los componentes Web. También pude saludar a Jerónimo López (@jerolba), un eterno javero como yo. Que luego me presentó a Felix López (@flopezluis) de ShuttleCloud, al que pude desvirtualizar por fin y conocer en persona. Su charla sobre protocolos de “chismorreo” tenía muy buena pinta, pero era a la misma hora que la mía, así que no pude ir. Lo mismo me pasó con Jesús Espejo (@jespejo89), un camarada del metal que conocí en el TechFest al que pusieron su charla a la misma vez que la mía y que tengo pendiente ver en vídeo. Pude también conversar con David Bonilla (@david_bonilla), pero estaba un poco fastidiado por un problema dental. También estuve charlando con Adolfo Sanz (@asanzdiego) y Jorge Arévalo (@jorgeas80), coordinadores de Hackathon Lovers, sobre nuestros gustos comunes en temas docentes, Spring Boot, Angular 2 y TypeScript. También estuve charlando con Javier Abadía (@javierabadia), al que conocí defendiendo a JavaScript en el combate de Node.js vs Java. Javier me estuvo contando qué tal les va en su aventura con StyleSage, su startup relacionada con el data science, el crawling y la moda. Y cuando llegó Juanma Serrano (@juanshac), ex-compañero de la Universidad y CEO de Habla Computing, acabamos hablando de programación funcional. Pude saludar a Alba Roza (@Alba_Roza), que siempre está en todos los eventos para inmortalizar nuestras locuras frikis con el resto del equipo de AutentiaMedia. Ya he perdido la cuenta de las veces que me ha grabado. La primera fue la de JavaScript para Javeros en el MadridJUG hace 2 años y medio y la última fue el sábado, para hacer un resumen de mi charla sobre TypeScript. Hacen una labor impagable por la comunidad. También pude saludar a Joaquín Engelmo (@kinisoftware), nunca había hablado antes con él, aunque le sigo desde hace varios años por las redes sociales, desde que fui a una charla suya en el Codemotion 2013. Siempre da un poco de corte empezar a hablar con alguien al que sigues desde hace tiempo y que posiblemente él ni sepa que existes 😉 También pude saludar fugazmente a Alex González (@agonzalezro), me hubiese gustado hablar más con él porque su trabajo con contenedores en JobAndTalent me parece muy interesante, pero le perdí la pista en la cena y no le volví a ver en toda la conferencia. Un poco más tarde llegaron los maestros Carlos Blé (@carlosble) y Modesto San Juan (@msanjuan) y estuvimos intercambiando impresiones sobre la formación técnica, en la etapa universitaria y durante el resto de la vida profesional. Como siempre unas charlas muy interesantes.

Pero cuando tuve la oportunidad de conversar con más gente fue en la conferencia el viernes y el sábado. Pasé un buen rato con Jose Turégano (@jturegano) y sus compañeros de Panel Sistemas, comentando la jugada mientras estábamos en una sesión sobre docker. Tuve interesantes charlas sobre arquitectura software, microservicios y Angular 2 con Jose Moreno (@jomoespe) y Javier Beneito (@jbbarquero). A las que luego se unió David Parra (@dparracatalan). Estuve hablando de todo un poco, incluyendo Java, Spring y los IDEs en la nube con Álvaro Amor (@aamormo) y Alberto Paz (@jalbertopaz), como hicimos en la CAS del año pasado. Me volví a encontrar con Raúl Ávila (@_Raul_Avila), uno de nuestros compatriotas que trabaja en Pivotal, la empresa que mantiene Spring Framework. Me estuvo contando lo que mola trabajar en una empresa tan potente como esa. También charlé un par de minutos con Alfredo Casado (@AlfredoCasado), al que me encontré con Modesto San Juan en el hall. Todavía me acuerdo de la época en la que coincidí en la universidad con Alfredo y de su Proyecto de Fin de Carrera sobre componentes gráficos. Aunque fue de forma más fugaz y me hubiese gustado haber estado más tiempo charlando, pude desvirtualizar a Juan Lladó (@jllado) y a Daniel López (@greeneyed_dlj), javeros convencidos como yo. También saludé a Francisco Javier Sanz (@fco_javier_sanz), habitual del MadridJUG. Me gustó ver a Israel Gutiérrez (@gootyfer), aunque le vi justo cuando me marchaba y no pude hablar mucho con él. Desvirtualicé a Joan Leon (@nucliweb) training Manager de , me gustó mucho cómo están consiguiendo visibilizar esta empresa que desarrolla tantos servicios en Internet y que era tan desconocida hasta hace bien poco. Kudos por Joan por el trabajo que está haciendo. Me quedé con mal sabor de boca porque no pude ir a ninguna de las charlas de Iván López (@ilopmar), el maestro de Groovy, pero al menos le pude saludar y he podido ver las slides de su charla de docker, muy buena pinta.

Como ves pude hablar con muchos compañeros de la comunidad, pero me hubiese gustado haber hablado todavía con más. Vi que estuvo por allí Israel Alcánzar (@ialcazar), pero no pude saludarle. También vi a lo lejos Sergio Saugar (@ssaugar), ex-compañero de batallas de la URJC. Con Jose Dongil (@jdonsan) había quedado hasta por twitter para poder desvirtualizarnos, pero no hubo forma. Al menos le convencí de que probara TypeScript 😉 En la próxima nos vemos. También lo intenté con Antonio de la Torre (@adelatorrefoss), pero no hubo forma. Recuerdo cuando charlamos un rato en el SaveInformaticOS que organizó Jose Manuel Beas.

También me hubiese gustado poder hablar con gente de la comunidad a la que sigo habitualmente, pero con la que tampoco interactúo mucho por las redes (tampoco es cuestión de ser pesado). Pero no he tenido la oportunidad de hacerlo. A ver si en los próximos saraos puedo sigo desvirtualizando a colegas.

Las charlas y talleres

Pues la verdad es que había muchas charlas muy interesantes, pero entre que llegué un poco tarde, me tuve que ir pronto el sábado y me quedé charlando con compañeros más de la cuenta, me he ido con la sensación de haberme perdido bastante. Una suerte que se hayan grabado tantas charlas y que ya estén disponibles en YouTube. Ya tengo deberes 😉

El viernes estuve en la charla de Joaquín Engelmo sobre programación defensiva y sistemas resilientes en el mundo real. Me gustó mucho ver la experiencia personal que emanaba de sus anécdotas. Desde luego es lo que más nos gusta de las charlas, conocer las historias reales más allá de los tutoriales. Luego estuve en la charla de Docker de Jose Armesto. Muy buenos consejos de la mano de la experiencia, como el proyecto de etiquetas estándar y la correcta gestión de la construcción de imágenes. Y bueno, lo de usar un contenedor por VM me sorprendió bastante, pero claro, en producción hay que tener mucho cuidado así que mejor hacer las cosas de forma paulatina.

Por la tarde estuve en el taller de Javier Abadía sobre la librería d3.js. Si vas a usar esta librería, te recomiendo que busques un buen tutorial, porque la librería no es sencilla. Gracias a Javier por guiar tan bien el taller y hacer que sea fácil lo difícil 😉 Aunque no pude ir, luego estuve viendo la charla de Juan Manuel Serrano sobre programación funcional. Me gustó su enfoque, justo como el mío, pierde el miedo a una tecnología / técnica, elimina los prejuicios que tengas y dale una oportunidad. Él nos quiso convencer de que las mónadas son sólo una API para implementar programas imperativos en programación funcional, aunque claro, la sintaxis de los lenguajes y la “jerga” superchunga de los amantes de las lambdas no ayudan a que la curva de aprendizaje sea suave. A ver si sacamos tiempo y le damos una oportunidad.

Luego fui a la charla de Pan para hoy y pan para mañana con Kubernetes de Pablo Moncada. Experiencias con docker en producción. Muy interesante. Otro detalle para la mochila: las bases de datos gestionadas por el proveedor cloud, nada de operarlas en docker (y hacen bien).

El Sábado llegué un poco tarde a la charla de Git nivel Samurai de Sergio Gómez. Algunas cosas interesantes, como el “–assume-unchanged” para evitar que un commit accidentalmente incluya algunos ficheros que modificas en local, pero que tampoco quieres ignorar. Luego estuve en la de Javier VélezPatrones de Diseño para Aplicaciones Basadas en Componentes Web. La charla estuvo muy trabajada, se nota que Javi le dedica mucho tiempo a prepararse las charlas. Y nos contó una propuesta para el desarrollo declarativo basado en HTML y componentes. Algunos asistentes hubiesen preferido una charla menos densa, sin entrar en tanto detalle y que se quede más en el mensaje principal. Aunque luego otros pedían más ejemplos y más debate. Está claro que nunca llueve a gusto de todos. En cualquier caso, Javi no defrauda y su rigurosidad expositiva es digna de agradecer. Después me fui a la charla de One click release: ft. Travis, Spinnaker & co de Toni López. Nos contó cómo han implantado Continuous Delivery en  partiendo de un enfoque totalmente manual. La charla estuvo bien, pero creo que se quedó bastante corta. Creo que la parte de “lo mal que lo han hecho hasta ahora” se podía haber reducido y haber ampliado la descripción de Spinnaker, por ejemplo.

Y lamentablemente me tuve que ir al medio día, así que me pedí una parte de la Codemotion.

Mi charla

Yo también di una charla en el Codemotion. La charla era sobre TypeScript, un superconjunto de JavaScript que está pensado para que las herramientas de desarrollo te puedan ayudar durante el desarrollo, evitando que cometas errores. En realidad, TypeScript es un lenguaje un poco peculiar porque es un JavaScript pero con tipado estático, y eso crea muchas ampollas en los desarrolladores JavaScript, porque creen que de esa forma su código será igual que Java. Lo bueno de este tema es que se presta a trolear a los javeros y a los javascripters, así que pensé en la charla en tono de humor. De ahí su título: TypeScript: Un lenguaje aburrido para programadores torpes y tristes.

Cuando llegué a la charla había cuatro gatos, no los conté, pero seguramente hubiera menos de 40 personas. Aunque había 8 tracks en paralelo y 4 talleres… fue, con diferencia, la charla con menos gente a la que yo asistí en todo el Codemotion. Pero es normal, a quién c**o le importa eso de TypeScript. Seguro que a los frikis de siempre. Además, había charlas mucho más interesantes a la misma vez que la mía.

Lo bueno es que nos echamos unas risas. Hubo muy buen feedback y parece que gustó el tono de humor. Además, más allá de eso, parece que hice cambiar el concepto que muchos de los asistentes tenían de TypeScript, que era mi objetivo principal. Yo me siento muy cómodo programando en este nuevo lenguaje. Creo que tiene mucho futuro porque va a acercar al mundo de desarrollo frontend a muchos desarrolladores con skills de backend en lenguajes estáticos como Java o C#, y eso es bueno para todos.

Aunque bueno… lo mejor es que decidas por ti mismo si quieres probar TypeScript o no. Aquí te dejo la charla. Espero que te guste.

 

 

 

 

 

 

 

 

 

Twilio compra Kurento!

Kurento WebRTC media server team joins Twilio

Quizás el título no te diga nada, quizás no sepas ni qué es Twilio ni qué es Kurento, pero en CodeUrjc estamos muy contentos con la noticia. Twilio es una empresa de Silicon Valley que ofrece servicios de comunicación en la nube. Desde comunicaciones de voz por VozIP y envío de SMSs, hasta el procesamiento distribuido de eventos. Algunos de los clientes más importantes de Twilio son Uber y Whatsapp. Kurento es un servidor de media WebRTC software libre desarrollado en la Universidad Rey Juan Carlos y en la empresa española Naevatec. Permite incluir videollamadas en grupo en una página web, incluyendo visión artificial, grabación, etc.

¿Y por qué esta adquisición es tan importante para CodeUrjc? Pues porque los co-directores de CodeUrjc, Mica y Patxi (nosotros), llevamos varios años participando en el desarrollo de Kurento. Como te puedes imaginar, Kurento es un proyecto complejo, que usa múltiples tecnologías: C, C++, GStreamer, CMake, Java, Maven, JavaScript, Bower, NPM, Node, Ubuntu, deb, Chrome, Firefox, Jenkins, JUnit, Selenium, Docker y muchas más. Y Patxi y yo hemos estado en todo el meollo, desde el diseño de las APIs, desarrollo de aplicaciones de ejemplo, documentación, testing, sistema de integración continua, gestión de proyectos Maven, publicación de releases, y un largo etcétera.

Pues eso, Kurento, nuestra criatura, nuestro pequeño juguete, se hace mayor y se va de casa y se integrará en los servicios que ofrece Twilio, una de las mayores empresas de comunicación as a service del mundo. Pero los que uséis la versión software libre no tendréis de qué preocuparos. Seguirá estando disponible. Twilio, la URJC y Naevatec seguirán manteniendo este proyecto en abierto para que cualquiera lo pueda usar.

Desde este post queremos dar las gracias a todo el equipo que ha hecho posible Kurento. A Luis y Javier, los jefes. A Jose, Miguel, Santi y David, los “mediaserveros”, a Iván, el Java Architect, a Boni, nuestro “testing guy”, a Raúl, con sus fantásticas herramientas y a Radu, nuestro último fichaje. También nos han ayudado otros compañeros más en algún punto del proyecto, gracias a todos! Además de las gracias, también queremos desearles muy buena suerte a todos porque se incorporan a la plantilla de Twilio, que abrirá una nueva oficina en Madrid.

Nosotros, Patxi y Mica, nos quedaremos en la universidad, manteniendo el proyecto open source Kurento y con nuevos retos en el horizonte. Ya os contaremos qué estamos preparando, pero ahora es el momento de Kurento y del equipo que lo ha hecho posible.

Buen trabajo compañeros, y buena suerte en la nueva aventura!

Aquí tienes más información de la compra, en todos sitios: