September 26, 2019

Correlated subqueries

Llevo un par de meses viendo como la mayoría de esfuerzos en el proyecto en el que estoy se centran en evitar los joins en las distintas capas de análisis. Aprovechando las capacidades de spark se busca tener las estructuras muy desnormalizadas y se había “endemoniado” al join considerarlo perjudicial. Tanto es así que llevo un par de días peleando con una pieza de código que me ha sorprendido. Partiendo de una tabla de hechos que agrupa datos para un periodo a hasta b, se quiere que se “colapsen” los datos de hace 14 días. Será mejor con un ejemplo: Read more

February 5, 2019

Datos I - Introducción al Datawarehousing

En los últimos meses mi trabajo ha pivotado del mundo de la web al mundo de los datos. He entrado a participar en un proyecto de Data Warehouse y he acabado muy contento en él. Hace unos días mi cambio se oficializó completamente y ahora me he dado cuenta de que no solo tengo un mundo técnico ante mí, sino que además necesito consolidar algunas bases teóricas. Investigando la bibliografía, me han recomendado en Reddit: The Data Warehouse Toolkit, The Complete Guide to Dimensional Modeling 2nd Edition. Y el libro parece encajar perfectamente en el conocimiento que busco. Aun así, como todo, por necesidad, intentaré resumir en unas cuantas entradas el conocimiento que se puede obtener de este libro. El cual recomiendo encarecidamente. Read more

December 17, 2017

Angular Series III - Dynamic components

Antes de terminar repasando el tema de templating, quiero hacer un inciso. Existen ciertos casos donde el templating es insuficiente y lo que necesitamos es simplemente escoger dinámicamente que componente vamos a renderizar. Esto está documentado en la documentación de angular bajo el nombre de Dynamic Components. ¿Cómo funcionan estos dynamics components? Explicado mal y pronto, la idea es: Escoger un elemento de la vista que actue de contenedor e inyectar el componente debe ir ahí. Read more

November 18, 2017

Angular Series II - Templating

Continuando con el artículo del otro día sobre proyección de contenido aquí pretendo mostrar otra forma de pasar contenido: las templates. ¿Qué es una template? Es un pedazo de html envuelto entre entre etiquetas ng-template tal que así: <ng-template> <div class=”as-template”> I won’t be rendered </div> </ng-template> Si esto lo ponemos en un componente, tal como en el siguiente ejemplo en el navegador aparecerá: NADA. ¿Por qué? Porque las plantillas de angular no se renderizan al ser evaluadas. Se renderizan donde una directiva les indique. Read more

November 6, 2017

Experimentando con Redux

Con el objetivo de mejorar el simulador SIMDE me decidí a probar un sistema de gestión de estados y concentrar el funcionamiento de la aplicación. ¿El motivo? Era la única forma sensata que tenía de poder gestionar la UI cuando entrara la máquina VLIW sin que todo fuera un caos. Para ello he recurrido a mi aplicación favorita: Chuck Norris client app. (Ya la he hecho en AngularJS y Angular previamente). Como boilerplate he utilizado el template de visual studio, ya que quería tener compatibilidad con typescript. Read more

October 8, 2017

Un breve sumario

El mes de septiembre ha sido un poco caótico, pero ya creo que me he adaptado a la rutina. Por lo pronto he empezado con el blog, ahora el auto despliegue va mucho mejor, estoy utilizando CircleCI en vez de Wecker. Por otra parte, el diseño del blog se ha separado por mucho del tema original, y no contento con esto he mejorado el desarrollo del tema permitiendo el uso de Sass. Read more

October 8, 2017

SOLID Principles

SRP: Single Responsability Principle Una pieza de software debería tener una única razón para cambiar. Si una clase tiene más de una “responsabilidad” (razón de cambio), un cambio en algún requisito podría ser muy difícil de modelar. Ya que al cumplir con esta responsabilidad podríamos estar incumpliendo otras. Esto hace que el diseño sea realmente frágil y esté acoplado: es decir, se va a romper de formas inesperadas. Es importante ver que esta regla aunque es general no implica que tengamos que desgranar siempre todas las clases. Por ejemplo si una de mis clases se gestiona en base a una lógica establecida en la constitución española, no creo que esa lógica vaya a cambiar, con lo cual no es una razón de cambio y no pasa nada porque esté ahí. Read more

August 14, 2017

Angular series I - Proyección de contenido (Content projection)

Cuando creé este blog tenía bastante claro que uno de los objetivos principales era que me sirviera de utilidad para interiorizar lo que voy aprendiendo. Y aunque he escrito ciertas cosas útiles para mi día a día no estoy registrando ni una centésima parte de la información que mi mente ha ido procesando estos meses. Así que voy a dedicarme a escribir un artículo semanal sobre un tema con el que llevo ya casi un año: Angular. Read more

2017-2024 Adrián Abreu powered by Hugo and Kiss Theme