“Coderetreat week” Lacarrismos del 9 al 15 de dic

Esta semana ha sido movidita con los eventos de MongoDB, Neo4j y Coderetreat como colocón final.  Respecto a temas de programación sigo prácticamente continuando la faena de la semana pasada:

– programación de los componentes comunes con un intento de TDD: componente auditoría.

– utilización de los patrones delegare, factory method, facade.

– formación presencial de tuxedo (I know… ).

 Y alguno de los temas de salseo

Miercoles con MongoDB y Neo4j

Me gustaron muchísimo las charlas.

MongoDB fue impartida por @nleite. El contenido de la charla fue muy buena: habló de NoSQL, ejemplos de consultas básicas, el gestor de alta disponibilidad, las distintas posibilidades de integración como java o ruby, y sus ventajas como son la rapidez, integración y escalabilidad.

MongoDB está bastante de moda y la verdad que es muy tentadora: open source, gran comunidad y muchas ventajas. ¿contras?

Hice try mongoDB y es bastante interesante para trastear 🙂

Alberto Perdomo (@albertoperdomo) fue el encargado de hablarnos de Neo4j. Nada más ni nada menos que había venido desde las Palmas para hablarnos de la tecnología. La verdad que poco sabía de las bases de datos orientadas a grafos salvo que existían.

Neo4j es open source y es un gestor de base de datos orientada a grafos implementada en java (ver la definición de la wikipedia). Con lo que me quedé es la potencia que tiene en búsquedas joins como puede ser buscar los amigos de los amigos o sugerir amigos a través de gustos, etc. ¿te suena? Bien pues twitter, Facebook, Linkedin, tienen sus propias bases de datos orientada a grafos cuyo resultado es consultas rápidas contra otros gestores relacionales.

Francamente me pareció muy interesante para dar solución a este tipo de consultas. De hecho, creo que es la solución más efectiva. Respecto a Neo4j, todo el probar.

Como buen evento no faltaron las cervezas, y ojo! patrocinadas con picoteo inclusive. Vamos, un lujo. Aunque más lujo fue la compañía!

Toda la información del evento y organizadores aquí. Entre ellos especial mención a @JavaHispano y @MadridJUG.

Alberto Perdomo. Charla Neo4j
Alberto Perdomo. Charla Neo4j

Jueves en la presentación de Eleven Path

Estuve en un par de charlas dentro del evento de presentación de los nuevos productos de Eleven Path en Distrito T. Muy marketiano, era de esperar, así que abandoné el barco (el evento era desde las 16.00 hasta las 20.30…. ). La charla de @ChemaAlonso le dio ese toque de humor, también era de esperar. Presentaron todos los productos en la línea en la que se mueven. Seguridad.

Creo que lo más interesante que me pasó el encontrarme a Luis Peralta de Tuenti.

Sábado con CodeRetreat

Gran experiencia en el CodeRetreat Madrid. Echa un vistazo si no sabes que es CodeRetreat. Hicimos 5 iteraciones con diferentes restricciones, haciendo pairprogramming y cambiando de parejas tras cada iteración. Programábamos el juego de la vida. Una vez pasada la iteración…. delete your code!! El objetivo no era terminar el juego sino hacer las cosas BIEN. 

¿Por qué juntarse para programar un sábado? Porque se aprende muchísimo. Sobre todo si el evento es facilitado por Rafael LuqueFernando París y Juanma. Ellos guiaban, daban consejos, contaban su experiencia y de verdad así se aprende muchísimo, más que en cursos, más que en tu trabajo.

La experiencia fue buenísima conociendo a gente muy interesante. Especial mención

@jacegu: por la clase de ruby y TDD del bueno.

@andrewsBrun: por las clases de objetive-c, la forma de abordar la solución y la paciencia enorme.

También destacar el aprendizaje de nuevas técnicas (TDD de verdad xDD), trasteando con otros lenguajes  y haciendo hangout con Zaragoza, Barcelona y Cáceres.

Ya sólo comentar que el trato que tuvimos fue de 10. Desayunos, almuerzos, comidas patrocinadas por BBVA, entradas.com y Osoco. Madre! Mil gracias a los organizadores!!

Coderetreat Madrid
Coderetreat Madrid

Fin de la cita

La verdad que ha sido una semana muy interesante.¿Sabéis que es también interesante? Que aún no tenga wifi en el piso!! Aggggggggg

Con esto y un bizcocho que paséis una feliz semana.

A ser felices y comer perdices!

Anuncios

Resumen del XI Betabeers Zaragoza

Último Betabeers del año, sí señor. Tras mucho esfuerzo,  ilusión y empeño por la comunidad, finalizamos una temporada de alegrías, buenos momentos, experiencias y muchos, muchos amigos.

Mirando al pasado:

  • 9 eventos
  • 9 post eventos
  • 3 locales diferentes
  • + 25 ponentes
  • + 250 asistentes en todo el año
  • + 650 cervezas consumidas en los eventos
  • + datos en los post eventos que mejor no revelar.

Sin ponerme más sentimental, aquí vamos con lo que pasó en el evento que se celebró el pasado 29 de Noviembre en Zaragoza Activa.

El evento

Toda la información/descripción del evento en la página de betabeers.

Datos

  • 2 experiencias de productos
  • 1 charla taller
  • 6 ponentes
  • 1 fotógrafo
  • 1 productor de vídeo
  • 4 colaboradores
  • 2 organizadores

Agradecimientos a Dani Latorre por inaugurar el evento.

Experiencias de proyectos

Fidelizoo

Producto para el pequeño comercio para fidelizar a los clientes. Actualmente es un producto que está en beta en comercios de Zaragoza y que está teniendo bastante aceptación. Esperemos que lancen más allá.

Existen apps para Android y Iphone. Entre la tecnología utilizada Node J.S  y Redis.

Muy interesante y el proyecto y el equipo (Nacho Vilalta , Raúl Novoa y Antonio Murillo). Creo que han hecho un gran esfuerzo en sacar un buen producto. Ahora sería importante una ardua tarea de Marketing.

FidelizooFidelizoo

Bichomania

Facebook / Twitter / Google + / Instagram

Los hermanos Jimeno (Silvio Jimeno y Pablo Jimeno) presentaron bichomania. Fríamente bichomania es una tienda online para venta de productos para animales. No obstante el proyecto nace de un amor desde siempre por los animales, que empezó en una tienda física, y ha terminado creando una comunidad de amantes por los animales en blogs, eventos y ofreciendo productos para ellos.

BichomaniaBichomania

Pablo Jimeno presentó la tecnología empleada y algunas fases del producto. Comentó los cambios experimentados en la web de cara a las experiencias de los usuarios y alguna funcionalidad destacada como el chat.

De lo que me llevo es la forma que han hecho para crear una comunidad fiel a su web. Gran parte lo han conseguido por sus blogs y patrocinando/organizando eventos. No es una estrategia nueva,  admiro la fórmula dificil para conseguirlo. Y yo creo que viene porque les gusta mucho lo que están haciendo.

Taller

Ricardo J. Rodriguez

Gran fichaje. Gran gran fichaje. A mí me enamoró, me cautivó y me hizo reír como una enana.

Buffer overflows. ¿Qué son? Si me equivoco en la definición me corregís. Buffer overflow es cuando  sobre-cargas la memoria tras haber asignado un espacio específico para ello. La sobre-cargar la memoria hay consecuencias como movimiento de punteros, eliminación de datos, etc, de tal forma que consigues que la ejecución apunte a una zona de memoria distinta a la esperada, que llegue a ejecutar una acción o un programa, o que por casualidad enigmática se borre el disco duro.

La presentación fue como revivir las clases de arquitectura de computadores con sus pilas y sus punteros, pero tenía un componente muy potente, nos hizo 3 demos en la que conseguía haciendo buffer overflow, abrir una calculadora. Como decía Ricardo, si te abren una calculadora te pueden abrir cualquier cosa.

La charla fue muy amena y graciosa. Así que tengo que dar mi más sinceras enhorabuenas por hacernos pasar un rato buenísimo.

Ricardo J. RodríguezRicardo J. Rodríguez

El post evento

Continuamos las cervezas en el Sugar, una cafetería cercana y proseguimos cenando en el Portón, un bar que solemos acudir y que nos donaron OJO! 20 euros para el equipo Cachirulo Valley Movember.

Retrospectiva

Disfruté mucho del evento.

Me alegré mucho de la presencia de universitarios, un colectivo que es bastante difícil de encontrar, pero los que vienen, son completos apasionados de la materia.

También conocí a nuevas personas (cuyos datos no tengo ahora, pero que los conseguiré).  Lo nombro porque me comentaron pensaban Betabeers era más social y para hacer networking. Mal! eso es que lo estamos haciendo mal.  Queremos que los diferentes perfiles se conozcan para que en un futuro hagan proyectos conjuntos y hay que tomar cartas en el asunto. Sigo opinando que las dinámicas de grupo que hacíamos eran muy positivas, así que se retomarán

Respecto a los tiempos de las experiencias de proyectos se alargaron mucho por no saber controlarlo bien. La ponencia que tenía más tiempo dedicado la tuvo que abortar misión, ya sin decir que no hubo tiempo para las cervezas: robamos tiempo de cierre a Zaragoza Activa (GRACIAS). Lo califico de desastre.

El tiempo dedicado por presentación se informa a los ponentes. A mí me da completo apuro decir que paren: porque se lo curran, el contenido es muy bueno, etc, etc. De hecho, siempre aviso más tarde de lo normal que tienen 3 min más.

El mayor problema surge en que se quita tiempo a otras personas. Los tiempos se estiman generosos para que todo el mundo esté contento, pero la verdad que no estamos dando con la fórmula buena. En Madrid ponen una alarma en el móvil  que es tajante (eso me parece demasiado…).

Dejando los lloriqueos: es toda una alegría llegar un viernes a Zaragoza y encontrarte a todos tus amigos en Betabeers Zaragoza (ojo que algunos faltabais!). La gente que hace Betabeers Zaragoza (asistentes, ponentes, colaboradores) son MUY GRANDES.  

No me puedo olvidar de dar las gracias en especial a Pablo Lázaro con Producciones Rumiantes por hacer un vídeo para la comunidad y de Sergio Otegui por hacernos las fotos (aquí puedes ver todas las fotos del evento). Por su puesto de David Francos, que sin él sería imposible montarlo 🙂

Agradecimientos a Cervezas Ambar por sus ricas y frescas cervezas.

“Ya tengo casa” Lacarrismos 25 nov 9 dic

Sí, no miréis la última vez que publiqué Lacarrismos porque fue hace unas cuantas semanas. Intento hacer el post el domingo y publicarlo el lunes,  pero se convierte en un fail bastante común. Al menos sé que esto tiene una parte positiva en mí, porque me mantiene activa, compartiendo conocimientos u experiencias y lo mejor, acordándome de lo aprendido. Así que animo a que os apuntéis al carro de contar vuestras semanas.

Voy a intentar contar un poco las cosas que he ido haciendo, aunque ya adelanto que no es muy interesante:

  • Creación de una pequeña parte del control de auditoría de base de datos.
  • Refactoring: Refactorizar código con ayuda de las estadísticas de código de la  herramienta sonar. Sonar notifica los errores críticos, mayores, etc que encuentra en el léxico/estructura/construcción del código. Notifica la complejidad ciclomática mayor de 10, problemas en nomenclatura, código comentado, redundante, etc.
  • Aprendizaje de Tuxedo Oracle: mundo horrible y fatal y obsoleto. Sirve para comunicar servicios del OSB (Oracle Service Bus). Debe ser eficaz y rápido funcionando, pero un dolor para construir y mantenerlo. El problema que veo a simple vista son la cantidad de pequeños problemas que hacen falta para crear un proceso completo.
Respecto a temas de salseo:

Visita a Tuenti:

Juan Riaza, más majo que las pesetas, nos organizó una visita a las instalaciones de Tuenti. Luis Peralta fue el maestro de ceremonias. Nos mostró todas las áreas, nos presentó a amigos, y no faltaron las cervezas durante y después de la visita (Así SÍ).

El sitio me pareció una pasada. Al menos la sala de ocio era tan grande como la de trabajo. Con futbolín, videoconsolas y buffet para comer. Respecto al área de trabajo, aunque muchos habían abandonado el nido, se inspiraba buen royo. Cada uno tenía su “hábitat” en su mesa y pizarras, pizarras con ideas, explicaciones y caras sonrientes por todos lados.

Gracias por la visita!

tuenti

PyconES:

No, no fui a la PyconES. Y sí, me arrepiento bastante. No fui por filtrar un poco, python? pero si no tengo ni idea? Bien pues creo que hubiera sido interesante por captar la visión de todo lo que se puede hacer y algún día, ponerse manos a la obra. Además, el precio era más que asequible (35 euros).

Aquí hago una mención porque aunque no fui a la conferencia, fui a la fiesta que organizaron. El grupo machete coders patrocinaba las cervezas y me acogieron muy ricamente. Estuve hablando con ellos y sobre sus proyectos. Ojo! que buscan programador todo terreno! Conocí a un crack que trabaja con ellos Álvaro. Suerte en la búsqueda 😉

BZyGkcQIgAEuOE_

Personalmente, me lo pasé genial. Desvirtualicé, me encontré  y conocí  a un montón de gente. Gran ilusión de ver a mi primo David Arcos que daba una charla, también al comando de Aragón (Carlos de Zentyal, Nestor Salceda y Jaime), y a los que estábamos en la visita a tuenti Juan Riaza, Luis Peralta, Borja Reinares, Alex Gonzalez, etc etc. Vamos, que fue una gran noche en la que no faltaron las risas.

Betabeers Zaragoza:

A las 14.15, salía en coche hacia Zaragoza, a las 15.00 se estropeaba el coche y a las 17.55 cogía un ave desde Guadalajara para llegar al Betabeers Zaragoza justo 15 min después de empezar. Dani Latorre, hizo los honores de presentar.

Era un betabeers especial, el último del año, y la verdad que yo estaba muy ilusionada. Era un momento para mirar hacia atrás: 9 Betabeers organizados durante el año, más de 27 ponentes, 233 asistentes registrados en la comunidad de Aragón y más de 650 cervezas consumidas durante los eventos.

Del evento tengo que publicar un post como acostumbro a hacer. Estuvieron Fidelizoo, Bichomania y Ricardo J Rodriguez. Tengo que destacar la charla que hizo Ricardo de BufferOverflow. Qué pasada, quiero decir, qué pasada. La charla iba básicamente en cómo te pueden hacer pupa en el ordenador utilizado buffer overflow. Por ejemplo, volver tan loca tu memoria del pc que se te borre todo. ¿Qué te parece? Además tenía una gracia el mozo para contar las cosas… impresionante!

También fue especial porque cada vez colabora más gente en el evento. Ponentes, asistentes, audivisuales, etc. Quiero destacar al productor Pablo Lázaro por montarnos un video. Pablo Lázaro está dentro del equipo de Producciones Rumiantes y es el mismo que nos hizo el corto en el festival de Obuxo. A mi me parece un lujo!

El evento y la noche se nos dio bien. Muchas caras conocidas en el evento y otras como Rafa Ramos que ya tenía ganas de ver 🙂 En mi situación se juntaba que tenía ganas locas de encontrarme a todos.

Betabeers Zaragoza
Betabeers Zaragoza

Betabeers Madrid:

Apoyo moral y psicológico a la organización de Madrid en el evento y en  la realización de un vídeo. Morenos y morenas, ya estoy viendo las risas que van a caer a mi costa porque a lo mejor salgo hablando.

Postureo Lacarrista
Postureo Lacarrista

Respecto al evento el formato de su edición era un FailShow y fue muy muy muy interesante. Entre las conclusiones o frases más escuchadas:

  • ¨No me arrepiento de la experiencia”
  • “He aprendido muchísimo¨
  • “Cuesta ver que tu proyecto le ha llegado el fin”
  • “Es importante tener un buen producto para mantener la fidelidad del público”.

Rafa García se dejó caer por el evento 🙂

Fin de la cita

A modo personal, ya tengo casa en Madrid. Todos los que habéis estado mirando una casa para mudados sabéis la connotación de alivio, satisfacción y tranquilidad que es ya tener a un sitio que se ajuste a lo que buscas.

Ciertamente no es muy agradable estar todas las tardes viendo pisos, quedar para hablar de pisos y pisos, pisos, pisos. La mudanza ya está hecha así que tengo una tranquilidad en estos momentos absoluta. Me falta un pequeño y grato detalle… INTERNEEEET.

De esta forma, ya no tengo excusa. Ahora sí que sí, voy a disfrutar de la experiencia. Próxima parada el miércoles en @MadridJUG “Doble Sesión NoSQL: Neo4j y MongoDB de la mano de expertos”. 

Apagado o fuera de cobertura

Dentro de unas horas, cumpliré 3 días sin número de teléfono. Eso significa: ni sim ni datos. Es una experiencia cuanto menos curiosa. No me importaba un carajo que me hubieran robado el móvil (si me conocéis, ya sabéis como era mi móvil), ni la información (en septiembre hice backup) me importaba el hecho de que estaba incomunicada y lo peor, no sabía hasta cuando.

Día 0: Quería cancelar el número ya: necesito un móvil. Quiero llamar a casa ya: necesito un móvil.

Día 1: quería despertador: necesitaba un móvil. quería buscar una comisaría: necesitaba un móvil. quería avisar que llevaba 2 horas en comisaría: necesitaba un móvil.

Relax, Laura, relax.

Alex Andreu, ante una llamada de socorro por facebook me facilitó un móvil en perfecto estado. Mil gracias Alex, ya tenía despertador.

Día 2: dificultades por titularidad al hacer un duplicado.

Por un día más… no pasa nada.

Día 3, HOY: Sigo sin número.

Es increíble la dependencia que tenemos del móvil. Antes vivíamos sin ello, ¿qué nos ha pasado? Ahora si quedas con alguien  y no está, le mandas un whatsapps esquizofrénicamente; estás buscando una calle de alrededor y buscas las indicaciones sin cruzar palabra con nadie; no sabes que hacer y te pones a escribir a la gente; estás con tus amigos en un bar y nos ponemos a mirar todos el móvil. ¡Qué narices! Literalmente: no soltamos el móvil ni para cagar.

Lo peor es que por mucho que diga aquí buenos propósitos, sé que lo primero que haga será instalar whatsapp. Ciertamente, me planteo quitármelo. Pero aunque no quiera verlo es parte de nuestra sociedad. Tanto mis amigos como mi familia como yo no paramos de subir contenidos, quedadas, etc. Y cuando digo quedadas, no sólo me refiero a quedadas esporádicas me refiero a organizar una cena de navidad, una fiesta de cumpleaños etc etc. Sí, esos grupos dolorosos que ves 165 mensajes sin leer y lógicamente, no te enteras de nada.

No puedo decir sólo pestes porque whatsapp es útil y mucho como sistema de mensajería. Es simplemente, que no me gusta la forma en la que terminamos dependiendo de una aplicación y la forma en la que la sociedad está cambiando para adaptarse a una aplicación (organización, planes, trabajo) y no al revés.

Sinceramente, no sé ni cómo terminar este post. No tengo consejos que dar porque ni para mí tengo. Sólo quiero sembrar la pregunta: ¿qué pasaría si estás 3 días con el número de teléfono bloqueado? ¿Sin Whatsapp? ¿Cómo lo llevarías? 

Lacarrismos del 11 al 15 de Noviembre

Esta semana:

  • Curso Objective-C: Curso de codeschool “Try Objective-C”. Pendiente de escribir un post con aquellas peculiaridades que había pasado por alto en mi aprendizaje. Muy recomendable para iniciación y asentar conceptos.
  • Curso “Try Git”: Curso de codeschool “Try Git”. Iniciación básica de Git. Está interesante porque introduce los archivos staged, unstaged, untracked, delete (en el challenge 4), la rama stash, forzar borrado, etc.
  • Arquitectura SOA: Más aprendizaje del diseño de arquitectura orientada a servicios (el post que escribí sobre SOA).
  • Arduino con AgileGirls: Workshop con las chicas de agile girls. Gran experiencia, gran aprendizaje.

Amaia nos hizo una introducción de Arduino, nos trajo material para trastear y nos ayudó en nuestra tarea de liarla parda con las placas.

Laura Morillo fue mi compañera de travesuras. Creo que ha sido el mejor workshop que he asistido (y he participado en muchos).  Las trasparencias están aquí.

Por su puesto no me puedo olvidar de agradecer a Carmen por su bienvenida y esa pedazo camiseta de Tetuan Valley que me obsequió!

BZDYGNeIAAAlmj8
Agile Girls in Tetuan Valley
  • Betabeers Zaragoza: Finalizado el proceso de selección de ponentes para Noviembre. Este mes ha sido una tarea ardua, pero por fin ya tenemos los detalles, sólo falta publicarlos. Será el último Betabeers del año. Será EPIC. Check  the event here.
  • Betabeers core: Ayudar en automatizar los procesos de los organizadores con plantillas (sponsors, ponentes, tareas de organización, chuleta, etc). 
  • Remote: Estoy leyendo el libro Remote de 37signals impulsado por la comunidad Agile Aragón. El próximo 27 de Noviembre se hay una convocatoria para comentarlo. Sigue la lista del agile aragón para enterarte!

Tras poco divagar, he llegado a una conclusión. Este blog (sin fines comerciales, por eso es un wordpress.com) se ha quedado pequeño.  He decido espabilar con www.lauralacarra.com y para ello quiero hacerlo aprendiendo: aprender html5, css3 y javascript para realizar una portada molona + unirlo con un blog para seguir dando mal.

¿Por qué lo cuento?

  1. Para que me pueda la presión social y así darle caña de una vez.
  2. Para que me deis vuestra opinión, consejos, tutoriales, etc. (sí, podéis trolear con WordPress, pero tener en cuenta que quiero migrar los post que tengo aquí).

Que paséis una feliz y preciosa semana.

A ser felices y comer perdices!

“Soy becaria” Lacarrismos del 2 al 10 de Noviembre

Lógicamente, amigos, conocidos, se interesan por mi nuevo trabajo. Personalmente,  lo agradezco mucho.

Cuando dices que has empezado en Telefónica experimentas dos tipos de reacciones.

  • Opción 1: “Guau, Telefónica, qué suerte, qué bien, enhorabuena”.
  • Opción 2: “Uff, dentro de un mes me cuentas”.

Seguro que pronto habéis identificado la frase de la madre y la frase de los que están en el mundo real. Yo no quiero ver ni una cosa ni otra. Lo que veo es una gran empresa en pleno cambio, que dentro es como si tuvieras mil empresas pequeñas y que cada uno se las apaña para sacar su faena.

Las cosas están cambiando mucho en la empresa y para bien. Nuevas metodologías, reestructuración, trasparencia a los clientes e internalizar a los operadores en España, entre muchas cosas. Respecto al proyecto en el que estoy metida poco puedo comentar de qué es ni cómo ni porqué pero me está gustando el enfoque de arquitectura, herramientas que utilizan y tecnología. Por su puesto discrepo en algunos aspectos  pero tengo constancia que están realizando pruebas con todas las tecnologías para tomar la mejor decisión.

Volviendo al asunto del blog. WAT. Becaria? Pues sí, soy becaria. Lo digo a voces y bien orgullosa. He de decir que prefiero decir que he sido elegida junto con 150 personas entre más de 6.200 solicitudes. Al menos es más esperanzador

Quería entrar en Telefónica España. Conocía los proyectos en los que estaban metidos, las condiciones como empleado de la empresa, las nuevas políticas y creo que es la mejor empresa para trabajar. Existen recursos y tiempo para trastear alternativas y soluciones, escuchar propuestas y ya sin olvidar que todos los privilegios que tienen los trabajadores. Eso debería ser de ejemplo para todas las empresas.

Y sí, soy becaria y como gran becaria existe una buena parte de formación. Aquí os dejo dos nuevos post:

  • Introducción a la arquitectura web” en la que explico qué es y cómo funciona para que desde tu navegador veas una página web. Un tutorial introduciendo conceptos básicos web.

Cuando lees algo crees haberlo entendido, pero prueba a escribirlo o explicarlo. Ahí es cuando te enteras que te has enterado ni de la mitad

Cerrando el chiringuito

Las cosas nunca se saben hasta que uno está dentro. Si son buenas las experiencias que cuentan, ¿por qué no intentarlo? ¿por qué no invertir?

De normal todos somos bastante cómodos. Tenemos miedo a fracasar, a invertir nuestro dinero. No obstante es necesario probar,  experimentar nuevas cosas y equivocarse. Si no te gusta habrás ganado una experiencia. ¿Buena o mala?  Al menos no te habrás quedado con la duda de no haberlo intentado.

Y lo siguiente. Si tienes la suerte de elegir en esta vida y has tomado la decisión, no te arrepientas. Sigue firme y confiado con tus argumentos iniciales aunque no todo el mundo te entienda o te comprenda. Lo que ahora siembres puede ser una buena cosecha en el futuro.

A ser felices y comer perdices!

Feliz semana!

Introducción a una solución SOA

En este tutorial se introduce al mundo SOA y alguna de las muchas soluciones que se puede implementar.

Empezaremos introduciendo alguno de los conceptos que siempre se repiten SOA, BPM, BPEL, ESB y trataremos de explicar diferenicas y soluciones de los mismos. Terminamos introduciendo un ejemplo genérico para comprender cómo interactuan las tecnologías propuestas.

Debe tener conocimientos de Arquitectura Web (es recomendable el siguiente artítulo) y mucha imaginación 🙂

¿Qué es SOA?

Service Oriented Architecture es un diseño de arquitectura como lo es un diseño  SaaS  (software as a service). Es una forma de estructurar aplicaciones distribuídas de cara a una mayor reutilización de las funciones basándose en la orientación a servicios.

Con SOA se pretende que tengas tus funciones (generalmente) en un web service y que esas funciones  sean llamadas desde tus aplicaciones distribuídas geográficamente.  Además de desacoplar, una gran ventaja es la independencia del lenguaje en el que estén implementados los componentes.

SOA puede tener diferentes soluciones. Cada solución conlleva unas metodologías (BPM), tecnologías (BPMS, ESB) o herramientas específicas (Oracle SOA Suit como solución de PBMS, OSB como solución de ESB, etc) . Vamos a explicar alguno de los conceptos junto algunas soluciones que ofrece el mercado.

En primer lugar observe el siguiente diagrama para comprender la distribución de los componentes se que se van a explicar a continuación:

Solución de arquitectura SOA
Solución de arquitectura SOA

Como “aplicación 1” podemos imaginarnos una aplicación web para los usuarios que administran a los clientes, “aplicación 2” la aplicación web que utilizan los clientes, etc.

Como “servicio1”, “servicio2” podemos imaginarnos que es una función alojada en un web service. En caso de desconocer qué es un web service recomendio la lectura del siguiente artículo. También podemos encontrarnos otro tipo de servicios (como el de correo, impresoras, etc).

Como “negocio” y “procesos” se pretende diferenciar niveles dentro de un modelo.  A continuación completaremos esta definición.

El BUS será el encargado de ofrecer la tecnología para comunicar aplicaciones y servicios.

¿Con qué modelar y procesar los negocios y procesos?

¿Qué es BPM?

Business Process Model es una metodología basada en mejorar la eficiencia y el desempeño de una organización mediante la identificación de procesos de negocio. Por BPM también se conocen todas las herramientas o tecnologías que envuelve la metodología para su análisis, diseño, ejecución, monitorización y control de los procesos.

La diferencia principal con otros modelos es que contempla la interacción humana e integración de aplicaciones. Es decir, como proceso podemos encontrarnos “introducir comentario” operación del usuario como “imprimir factura” operación del sistema.

BPM también se conoce como una disciplina de administración de cara a que las organizaciones cambien el pensamiento centrado en los procesos y que reduzcan su dependencia de estructuras tradicionales de territorio y funcionalidad. Una buena solución BPM debe poder ejecutar un proceso modelado por el área de negocio sin que TI tenga que programar una sola línea de código.

Algunos de los componentes de un BPM son un motor de orquestación, herramientas de análisis, Business Intelligence, motores de reglas, repositorios, simulación, optimización e integración como otros sistemas legados.

Ejemplos de BPMS (sistemas que implementan BPM) son Oracle SOA Suit, IBM BPM, BEA AqueaLogic BPMS)

Un proceso de negocio puede ser abrir contacto, comprobar stock, etc.

¿Qué es BPEL?

BPEL (Business Process Execution Lenguaje) es un estándar del lenguaje utilizado para especificar acciones en los procesos de negocio.  Otro estandar más conocido es UML. Un modelo BPEL es similar a una máquina de estados.

Un modelo BPM puede utilizar BPEL como lenguaje para definir los procesos de un negocio.

¿Qué BUS utilizar?

¿Qué es ESB y OSB? ¿Diferencias?

ESB consiste en un combinado de arquitectura del software que proporciona servicios para arquitecturas complejas a través de un bus. Ofrece la tecnología para orquestar sistemas distribuídos, mezclar tecnologías, etc.e

Oracle Service Bus es la solución de SOA Suit Oracle para conectar, mediar y administrar las interacciones entre servicios heterogéneos, aplicaciones y múltiples instalacias de Enterprice service Bus.

OSB es una solución propia de ESB. OSB está formado de otros ESB ya que la solución de Oracle se puede comunicar con otros sistemas que utilicen ESB.

Alguna de las características que destancan estos buses: más rápido y productivo. También ofrecen un transporte nativo para aplicaciones empaquetadas y una serie de elementos que garantizan la seguridad en la red.

¿Con qué comunicar la capa de un servicio con otros servicios, bases de datos y aplicaciones?

¿Qué es EJB? ¿Qué es Tuxedo? ¿Diferencias?

EJB (Enterprice Java Bean) es un API para el estándar de construcción de aplicaciones de negocio basadas en JEE. Lo que permite es proporcionar un modelo de componentes al lado del servidor que  controla las transacciones, persistencia, seguridad, comunicación junto con CORBA, eventos mediante JMS, etc.  Ojo! no hay que confundirse con Java Bean que hace de contenedor de objetos pero no pueden utilizarse en invocación remota.

Tuxedo (Transaction for Unix , Extended by Distributed Operations) es una plataforma middleware que se utiliza para gestionar procesos transaccionales de procesos distribuídos en entornos de programación distribuída (definición de la Wikipedia) .  EJB y Tuxedo ofrecen la misma solución con diferente arquitectura.  EJB es un API (conjunto funciones y procedimientos que ofrece una biblioteca para ser usado por otro software como capa de abstracción),  mientras que Tuxedo es un middleware (plataforma de middleware para comunicarse con otras aplicaciones, software, redes, servicios).

Conexión entre Tuxedo/EJB con WDSL

No existe conexión. Tuxedo o EJB se encarga de llevar las transacciones o llamadas al modelo en el lado del servidor mientras que WDSL se utiliza para modelar el proceso de negocio. WDSL tiene su conexión con el lenguaje BPEL que es el que define los procesos del negocio que se está desarrollando.

Por ejemplo, una vez definido el leguaje del flujo de negocio (comprobar si hay strock, si -> facturar , no -> fin) un proceso BPEL se expone al resto como si de un servicio web se tratara y debe tener su propio descriptor WSDL. Tendremos tantos WSDL como procesos BPEL se definan.

Para tener una visión más detallada véase el siguiente artículo de Adictos al trabajo.

Ejemplo genérico

Existe una empresa muy bonita y muy hermosa en la que deciden  rediseñar la arquitectura de forma que reutilicen muchas funciones en diferentes aplicaciones que disponen distribuídas. Para desacoplar esto lo que se hace es diseñar una arquitectura SOA en la que las funciones pasan a estar en los servicios web para llamarla desde cualquier aplicación.  Estos servicios los alojan en diferentes web service  y con un lenguaje distinto de programación.

Un equipo de negocio que describe detalladamente el proceso negocio de una actividad a modo narrativo.

Un equipo de arquitectura recibe las descripciones y transforma que para un proceso en concreto, necesita los siguientes servicios:

  •  Abrir un contacto
  • Generar factura
  • Enviar factura

¿Cómo implementamos todo esto? Tendremos que nutrirnos de muchas herramientas y tecnologías orientadas a SOA para dar una solución.

En el siguiente diagrama vemos la estructura de nuestra arquitectura final. En la parte de arriba están las aplicaciones, en medio el bus que conecta y realiza el flujo de información y abajo los servidos web que contienen los servicios que necesitaremos para realizar un negocio de una aplicación.

Esquema SOA
Esquema de solución SOA

Centrándonos en la aplicación. ¿Qué haremos? Definiremos mediante una máquina de estados los servicios que hemos dicho que nuestra aplicación necesita siguiendo el model BPM y el lenguaje BPEL. Herramientas como Netbeans con OpenESB permiten crear módulos BPEL que contienen definidos los procesos mediante estados. Otra herramienta es JDeveloper de Oracle también nos permiten generar diagramas BPEL.

Los diagramas BPEL se traduce por la propia herramienta en un fichero WDSL. Este fichero WDSL contendrá la lógica de llamadas al estilo “llama al web service A que contiene el servicio “Abrir factura”.  Para ejecutar estos procesos nos valdremos de herramientas como el BPEL Process Manager que utiliza Oracle.

Desde la aplicación al servidor viajaran por el bus, más en contreto un ESB que contiene lógica más compleja para poder comunicar servicios de diferentes lenguajes.

Los servicios se tendrán que nutrir de la base de datos. Cuando nosotros llamamos a “Abrir contacto” necesitaremos obtenerlo de la base de datos.  Para ello existen más tecnologías. EJB es un API para el desarrollo de aplicaciones en java JEE. Lo que hace para el programador es abstraer los problemas de persistencia, transacciones, etc. Este API se alimenta de más soluciones como CORBA, JMS, etc. Es una capa próxima al servidor para abstraer la lógica y comunicar servicios, aplicaciones y bus.

¿Proximos pasos?

  • Profundizar en modelos BPM y lenguaje BPEL.
  • Implementar el ejemplo como el que muestra el siguiente post.

Bibliografía:

Se agradece comunicar comentarios, opiniones, consejos y erratas.

Si te parece interesante compartir es vivir.

Introducción a la arquitectura web

En este mini-tutorial se explica toda la infraestructura que hace falta  para que desde un fichero html puedas ver el resultado en un navegador web.

Una web está formada por texto, imágenes, información almacenada en bases de datos, etc.

Un programador genera ficheros desde herramientas de programación. En este turorial se responde a cómo y con qué infraestructura se necesita para su visualización.

Introducción a la arquitectura web

Para que el usuario quiera ver una página web debe hacer uso de un  navegador. Este navegador lanza peticiones HTTP  que por debajo tiene TCP y de la misma forma accederá al servidor.

Arquitectura web
Arquitectura web

¿Cómo funcionan las peticiones HTTP?

¿Qué es HTTP 1.0?

Cuando lanzas una petición por HTTP mandamos un paquete de información y nos devuelve otro paquete de información.

Los métodos de petición más extendidos son GET y POST.

La petición GET es a través de URL mientras que la petición POST es encapsulada por HTTP.

¿Qué es el protocolo HTTP 1.1? ¿En qué se diferencia con HTTP 1.0?

La gran diferencia de HTTP 1.0 y HTTP 1.1 es que con esta última versión se puede hacer peticiones a otros servidores que escapen a nuestra configuración de Apache. Por ejemplo si en nuestra página web tenemos una foto sacada de otra página web, la petición GET sabe a qué servidor hacer la petición y redirigirla.

El paquete HTTP nos puede devolver un error. Los más comunes que veremos son 404 (Page not fount) y 301. El sitio ha sido redireccionado.

En el mismo enlace de la wikipedia aparece el listado completo de códigos que nos puede devolver HTTP.

¿Qué es un servidor web?

¡Ojo! Servidor web no es lo mismo que servicio web. (web service). Veamos las diferencias.

Un Servicio web o web service es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar información entre aplicaciones. Un ejemplo: si yo quiero saber el tiempo que hace en Zaragoza, me puedo valer de un Web Service de otro programador para obtener dicha información.  En este post lo explican muy bien.

Un servidor web o servidor HTTP es un programa informático que procesa una petición en el lado del servidor.  El código que recibe el cliente es compilado y ejecutado en un navegador web. Por ejemplo un Servidor web Apache.

Si se está liando más es necesario  dar un paso a atrás en comprender qué es un Servidor.  Un servidor es un nodo que ofrece servicios para otros clientes en una red. Ejemplo de servidores: servidor web, servidor de bases de datos, servidor de fax, servidor de correo, etc.

¿Qué hace un servidor HTTP Apache?

Si montamos la arquitectura servidor HTTP Apache esta formado por módulos que yo activo o desactivo como puede ser el módulo php, rewrite, etc (véase todos los módulos aquí) y por una configuración para que sepa qué hacer con cada tipo de fichero. Por ejemplo, si Apache recibe una petición hola.phg -> es un nime/types y sé que tengo que devolver el .png con la imagen.

Mime type es un protocolo para saber interpretar un objeto o un archivo de una forma o de otra.

Un ejemplo de módulo: en Apache podemos configurar mod_rewrite. Es un módulo que sirve para personalizar nuestras URL de peticiones. Para saber más aquí hay una guía básica.  Aquí puedes saber si lo tienes activado o no.

¿Qué es mod_rewrite?

Por ejemplo que si todas nuestras peticiones vienen GET /hola/mundo podemos crear un patrón de redirección para que lo interprete como esta petición GET/ index.php?/hola/mundo

¿Para qué sirve mod_rewrite?

De esta forma evitamos que si alguien pone en nuestra web index.php?/hola/mundo no acceda a nuestro contenido de forma arbitraria.

Ejemplo genérico

Ahora. Tenemos nuestra página web. ¿Qué pasa cuando lanzamos la petición www.google.com?

Le pediremos a apache que interprete nuestro PHP y nos servirá por separado los mime types text/html, image/pneg, text/javascript.

De hecho. Siguiendo la imagen de debuger de Firebug podemos diferenciar las peticiones HTML, CSS, JS, XHR, Imágenes, etc que está pidiendo al servidor para que me las muestre en mi local.

En la siguiente imagen vemos cómo lanza la petición para obtener el logo de google.

También estamos descargando ficheros javascript porque javascript se ejecuta en nuestro navegador. Y en un momento determinado de nuestra navegación de la página web, se ejecutará.

¿Qué necesita nuestro navegador?

Nuestro navegador por tanto necesitará al menos:

El servidor web también nos devuelve una estructura DOM. La podemos observar también desde el debuger.

¿Pero qué es DOM?

Es una estructura que se acaba de actualizar con tu petición. Obtiene todos los elementos identificados y estructurados en forma de árbol.

¿Para qué sirve un DOM?

¿Qué utilidad podemos sacarle al DOM? Poder acceder a cualquier elemento de esta estructura en un momento asíncrono. Si por ejemplo pulsamos un botón y queremos que ese botón cambie de color, no hace falta refrescar toda la página. Podemos acceder al botón por medio del identificador y cambiar sus propiedades del HTML y así no hace falta refrescar toda la página.

¿Cómo modifico un elemento del DOM?

Por medio de Javascript .

Siguiendo con el ejemplo de cambiar las propiedades de un botón sin tener que refrescar el código, podemos llamar una función de nuestro javascript que nos hemos traído desde el servidor web  y cambiar las propiedades.


<script type="text/javascript">// <![CDATA[
function bgChange(bg)
{
document.body.style.background=bg;
}
// ]]>

<h2>Change background color</h2>
Mouse over the squares!
<table style="width: 300; height: 100;">
<tbody>
<tr>
<td style="background-color: khaki;" onmouseover="bgChange(this.style.backgroundColor)" onmouseout="bgChange('transparent')"></td>
<td style="background-color: palegreen;" onmouseover="bgChange(this.style.backgroundColor)" onmouseout="bgChange('transparent')"></td>
<td style="background-color: silver;" onmouseover="bgChange(this.style.backgroundColor)" onmouseout="bgChange('transparent')"></td>
</tr>
</tbody>
</table>

Complicando las cosas.

¿Qué pasa si queremos obtener los datos del usuario?

Los datos del usuario están en una base de datos. Es decir, estos datos están en servidor y los queremos traer hasta nuestro navegador.

Por medio de AJAX obtendremos los datos del servidor.

Si esta vez queremos que el botón al pulsarlo nos traiga un listado de países, es necesario AJAX.

AJAX es una técnica no un lenguaje. Extraigo la definición de la wikipedia:

“AJAX, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones

Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se solicitan al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página. JavaScript es el lenguaje interpretado (scripting language) en el que normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier caso, no es necesario que el contenido asíncrono esté formateado en XML.

Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas operativos y navegadores dado que está basado en estándares abiertos como JavaScript y Document Object Model (DOM).” Wikipedia.

Con Ajax también modificados el contenido del DOM sin actualizar la página




<script type="text/javascript">// <![CDATA[
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
}
// ]]></script></pre>
<div id="myDiv">
<h2>Let AJAX change this text</h2>
</div>
<pre>
<button onclick="loadXMLDoc()" type="button">Change Content</button>


De esta forma desde nuestra página web, lanzamos una función ajax donde le indicamos a que módulo, función y parámetros pasarle para que nos devuelva nuestro listado de la base de datos. Accederá a la función. Pero, ¿qué tiene que devolver para que me entienda AJAX? puede devolver HTML o un JSON.

¿Cómo obtener la información que me devuelve AJAX?

¿Qué es JSON?

JSON es un objeto que puedo enviar para interpretarlo en diferentes partes de mi página.

En php lo creamos así.

$obj = new StdClass();
$obj->rowsTotal    = $total;
$obj->data = $users;
$this->JSON($obj);

¿Para qué sirve un JSON?

Para comunicar información. Por ejemplo. Cuando invocamos a AJAX nos puede devolver un JSON. Es información estructurada que garantizamos que nuestro destinatorio nos entienda.

Siguiendo con el ejemplo de obtener el listado de paises vamos a ver un ejemplo con javascript que contemplan AJAX para objener los datos y JSON para comunicarlos a donde quiera.

// Función que a partir de un tipo de configuración. Llama al controlador para obtener los datos de esa configuración que ha cambiado. Devuelve el JSON con los cambios del html


$.fn.loadCountryOrganizations = function(){
$("#parent_country_organization_id").attr("disabled","disabled");
$("#parent_country_organization_id").html("
Cargando...
");
$.getJSON(
urlLoadCountryOrganizations,
{
country_configuration_id: $("#country_configuration_id").val()

},

function(data){

var sHTML = "";

$.each(data, function(idx, value){

sHTML += "
"+value+"
";
});
$("#parent_country_organization_id").html(sHTML);
          $("#parent_country_organization_id").removeAttr("disabled");
}
);
}

Vemos que hemos obtenido el objeto JSON con getJSON.

La sintaxis es

$(selector).getJSON(url,data,success(data,status,xhr)).

Ejemplo genérico del flujo

En el siguiente diagrama podemos hacernos una idea del flujo del intercambio de información que tiene nuestra arquitectura web usando un navegador, un servidor web, Javascript, PHP y AJAX.
Arquitectura web basada en PHP, JavaScript & AJAX.
Arquitectura web basada en PHP, JavaScript & AJAX. Imagen obtenida del siguiente post.

¿Proximos pasos?

  • Modelo MVC.
  • Profundizar en JavaScript, AJAX, JQuery, JSON.

Bibliografía:

Se agradece comunicar comentarios, opiniones, consejos y erratas.

Si te parece interesante compartir es vivir.

“Madrileando”: Lacarrismos del 28 Oct al 3 Nov

Segunda semana en los Madriles y no ha podido ser mejor: la parada de Luis (luis), Aitor y Xavi en su última etapa de carretera y manta. Esta vez, junto con el maestro Gerardo, he asistido al mejor cursillo de todos los que me han brindado desde que los conozco: “Madrid for dummies”. Entre alguno de los fascículos del cursillo estaban bares, zonas para vivir y formas de desvivir.

Aquí dejo una delicia de foto de drink team.

Captura de pantalla 2013-10-31 a la(s) 14.05.56

En el puente he aprovechado para ir a Zaragoza y la verdad que da una ilusión enorme volver a casa con la familia y volver con los amigos.

¿Y esta semana? Aquí dejo alguno de los conocimientos aprendidos.

¿Qué es la arquitectura SOA?

SOA (Service Oriented Architecture). Es  un de diseño de arquitectura para el desarrollo de sistemas desacoplados.

Los sistemas estan formados por procesos de negocio que pueden ser reutilizados por otros sistemas.  Los objetivos de esta arquitectura son desacoplar la lógica de negocio, reutilizar los procesos por otros sistema independientemente del lenguaje que esté impleantado y  crear un back-end común de rápido acceso independientemente de la localización que se consulte.

Algunos links interesantes son:

  • SOA in the Real World: post muy muy bueno que explica muy bien qué  y qué no es. También explica alguna similitudes con CORBA, implementaciones con y sin Web Service, etc.
  • SOA en la Wikipedia: Explica los conceptos básicos y terminología en castellano. Está muy incompleta y conduce a error.
  • SOA for dummies book: empecé a leer este libro pero sin duda hay que empezar con el primer post. Este libro lo recomiendo porque aparecen ejemplos de casos de uso en empresas.

 ¿Qué es TUXEDO?

Tuxedo Oracle es una herramienta para comunicar los servicios de una arquitectura SOA desarrollada en SOA Suite de Oracle. La forma de comunicarlo es en base a transacciones de forma que si ocurre un error en un servicio no realice cambios en el resto de servicios que comunica. El lenguaje en el que se implementa es C/C++.

Todo que contenga la palabra Oracle me genera un horrible y terrible escalofrío. No he trasteado aún con esta herramienta. Pero es cuestión de tiempo que os cuente mi experiencia.

¿Qué es Web Logic?

Es el equivalente de Tomcat para Oracle.

Cursillo de Node JS.

He retomado el cursillo de Node JS cuyos videos está haciendo una jollica de la programación y de nuestra tierra: Ivan Loire. Estoy contenta porque en una línea he levantado un servidor http y un servidor TCP.

No obstante sigo sin ver todo el potencial de Node. Tendré que continuar para averiguarlo.

Por qué no hacer un proyecto con nomenclatura en castellano.

Aunque parezca mentira. Aún hay empresas que se plantean hacer sus proyectos en un íntegro castellano. Aquí van las primeras justificaciones que se me ocurren ante tal barbarie atroz. ¿Me ayudáis a definir más?

  1. Existen palabras en inglés que siempre estarán en tu proyecto: “set”, “get”, etc. son palabras que se auto-generan en las propiedades de los objetos y que va a hacer que tu íntegro castellano pase a ser un “spanglish”.
  2. Programadores están acostumbrados a realizar proyectos en inglés y pueden generar un “spanglish”.
  3. Código legible por otras empresas/paises/programadores: no cerrar puertas a integrar el código en otros países/programadores, etc.
  4. Los nombres de los procedimientos o clases por lo general serán más cortos y legibles.
  5. Si todas las guías de formatos y nomenclaturas pone de hacerlo en inglés (por algo será).

Bueno morenos  y morenas, esta vez no tengo palabras filosóficas así que me remito a decir: “a ser felices y comer perdices”.

Feliz semana!

“Quienes somos y a dónde vamos” Lacarrismos del 21 al 27

Ya he empezado mi actividad en la nueva empresa y no puedo estar más contenta de la equipo, el momento en el que entro y el proyecto en el que he aterrizado.

Poco y nada puedo contar de las actividades que haga dentro de la compañía. Lo que sí que puedo decir y bien orgullosa es que estoy dentro del “departamento de desarrollo de servicios y sistemas” dentro del área de “sistemas de línea fija”. Espero poder confirmar la semana que viene cuales van a ser mis funciones.

Mi motivación nace:

  • Formar parte de un gran equipo de desarrollo.
  • Desarrollar un proyecto nuevo (sin código heredado).
  • Participar activamente con mis conocimientos y experiencia.
  • Aprender nuevas tecnologías, técnicas y metodologías.
  • Pertenecer a una gran empresa con una apuesta de futuro para los empleados.
  • El cambio que está experimentado la empresa hacia las metodologías ágiles.

Muchos pensaréis, “dentro de un año me cuentas”. Pues sí, dentro de un año o menos os contaré. Hasta entonces, espero seguir compartiendo conocimientos, errores y soluciones como lo he ido haciendo hasta ahora sin concretar en los aspectos del trabajo. Como en todos los centros  hay cosas buenas y cosas a mejorar.  Aquí nos dan la oportunidad de dar un nuevo punto de vista que  que voy a aprovechar al máximo.

Aquí dejo una fotillo de “mi primer día de trabajo”.

Telefónica España, Ronda de la Comunicación,  Madrid.
Telefónica España, Ronda de la Comunicación, Madrid.

BetabeersMAD

Asistí por primera vez al Betabeers Madrid que ya van ni más ni menos que por la XXXIII edición.

Los tres mosqueteros Miquel, Pablo y Santiago, dirigían el festín: dos presentaciones de proyectos orientados a la formación (uSpeak y Tutellus) y charla de GIT de Israel Alcazar.

uSpeak es una app para Iphone en el que jugando aprendes idiomas mientras que Tutellus es una plataforma en la que los profesores suben sus video tutoriales para aquellos interesados. A destacar que Tutellus ha conseguido colaboración con las universidades para que los alumnos puedan obtener créditos de libre elección (si yo hubiera tenido estas cosas tan molonas… )

La charla de Israel Alcazar me encantó. Como gran “fan boy” de GIT observé que no conocía ni la mitad de esta herramienta.  Me quedo con estas palabras que nunca había utilizado (ya, no me déis collejasstash, rebase, reset. Espero detenerme a repasar los apuntes que tomé.

Codemotion

El fin de semana pasado acudí al Codemotion. Una forma de definir este congreso es un evento popular que reúne a unos 1500 programadores en charlas de front-end, back-end, cloud, metodologías y buenas prácticas, arquitectura, etc durante 2 días.

Para el precio de la entrada, 25 euros, puedo afirmar que estoy muy satisfecha con la organización, las charlas y el evento en general. Había algunas charlas más próximas al tema comercial y vender productos y otras muy muy interesantes basadas en las experiencias de personas que molan mucho.

Me gustaría destacar la charla de que comentó sobre el producto Otogami. No había ni dios que propusiera otra tecnología más novedosa sin él  justificar porqué utilizaba sus herramientas y de manera más efectiva porque ya las conocía. De hecho, gracias a su charla, al tener noticias de que iba a programar con Java EE lo he tomado con optimismo (true story).

También asistí a una charla de cloud, más que nada para enterarme del mundillo en sí, de google sobre REALTIME API  para usar el mismo API que utilizan el google drive, la charla de gimenete sobre aspectos a tener en cuenta con nodejs, etc, la charla de metadata de Javier Ramirez, etc.

Codemotion 2013
Codemotion 2013

Y después de las charlas, me quedo con la gente: las charlas de pasillo y la quedada improvisada de la noche. ¿Para cuándo es la próxima?

Codemotion 2013
Codemotion 2013

Y para concluir

¿Quienes somos? ¿A dónde vamos? Tu decides qué eres, qué quieres ser y hacia donde ir.  Si no lo tienes claro, tu propia forma de ser o de actuar te lleva hacia tus gustos e intereses. No hace falta saber ya a qué quieres hacer: prueba, equivócate, sal de tu área de confort, muévete, currátelo. No te quedes atascado, no te conformes con algo que no te gustaLo que no hagas ahora no lo harás nunca.