Sobre ese error de la cláusula Group By en SQL

Una de las cosas buenas de escribir es que cuando uno se motiva a hacerlo sobre un tema que no conoce, le toca aprender y entenderlo para poder explicarlo con propiedad o desde una nueva óptica.

Este tema que vengo a compartir no lo entiendo ni un poquito. Llevo mis buenos años trabajando haciendo software pero el error:

ERROR: column “MY_TABLE.MY_COLUMN” must appear in the GROUP BY clause
or be used in an aggregate function

Nunca lo he entendido de tal forma que sepa qué está pasando (y eventualmente prevenga que ocurra) cuando escribo consultas SQL.

Puede que me equivoque en lo que explique pero haré el intento de entenderlo y explicarlo lo mejor que pueda. ¡Empecemos!

Leer más “Sobre ese error de la cláusula Group By en SQL”

Los 10 Mandamientos del Programador Sin Ego

Las fuentes donde los leí indican que se origina en el libro “The Pyschology of Computer Programming” escrito por Jerry Weingber. Son unos principios bien interesantes y que se enfocan en lo humano más que en lo que producimos como desarrolladores de software: código.

Veamos.

Leer más “Los 10 Mandamientos del Programador Sin Ego”

BKT en Producción: Code Deploy

Este artículo continua con la serie BKT en Producción.

La variedad de servicios de AWS es enorme. Desde el primer día que vi el tablero inicial de AWS hasta hoy, su oferta de servicios no me deja de asombrar. Hay gran variedad en oferta y funcionalidad. De una u otra forma cubren muchos aspectos del ciclo de vida del desarrollo de software.

Code Deploy es un servicio de AWS que conocí por azares del destino. Estaba investigando cómo hacer un despliegue con Jenkins y encontré una integración entre ambos. Si bien AWS también tiene su servicio tipo Jenkins, solo opté por Code Deploy por que ya entendía un poco sobre la herramienta open source.

Leer más “BKT en Producción: Code Deploy”

BKT en Producción: Auto Scaling en AWS

Uno de los puntos clave de todo servicio que funcione en Internet es contar con la capacidad para atender las peticiones de miles de usuarios al tiempo.

En este aspecto se dan dos temas: soporte a concurrencia y escalabilidad. En muchos casos la concurrencia está limitada por el lenguaje de programación que se use. La escalabilidad termina siendo un tema de arquitectura general del software.

Siendo bastante breve, para escalar se necesita poder incrementar el poder de los servidores donde se hospeda el programa. Sea incrementando la RAM, capacidad de disco duro, ancho de banda, cantidad de máquinas o distribución de los servidores en el mundo entero.

SEGUIR LEYENDO

Cómo Hospedar Aplicaciones Estáticas en Heroku

Creo que Heroku debería patrocinarme ya que he escrito en varias ocasiones sobre este servicio y ¿cómo no hacerlo? Es un buen servicio con una buena oferta.

En esta ocasión voy a compartir cómo montar una aplicación estática en un dyno de Heroku. Si bien en ocasiones podemos valernos de servicios como GitHub Pages, Netlify o Vercel, Heroku no deja de ser una buena alternativa.

Vale destacar que mandar aplicaciones estáticas a Heroku puede ser más complicado que en los otros servicios mencionados aunque no está de más tener opciones.

Leer más “Cómo Hospedar Aplicaciones Estáticas en Heroku”

Pasen a Intrati

Recuerdo, por allá en el 2013, mi jefe de ese entonces me pidió averiguará cómo hacer una aplicación para compartir vídeo usando un navegador. Me dio la palabra clave WebRTC. Busqué, leí y probé pero la tecnología aún estaba inmadura. Muchos años después WebRTC es la base de muchas empresas y servicios a nivel mundial.

continuar leyendo

Mandar a Producción un Viernes, ¿Sí o No?

Tema complejo. A muchos asusta. A muchos otros no. Yo opino que sí se debe mandar a producción un viernes pero siempre que haya garantías de que los despliegues estén soportados por una buena suite de pruebas, un proceso de despliegue seguro y una posible reversión confiable.

continuar leyendo

Migré de Svelte a EmberJS y Fue Para Bien

El año pasado empecé un proyecto en el que aprendí sobre la API de Vídeo de Twilio y a usar una nueva librería JavaScript llamada Svelte. Sin embargo, por diferentes situaciones y problemas necesitaba cambiar Svelte por otro framework o librería.

Creí que me iba a estancar y el proyecto no lo podría seguir pero al final sí fue posible, en poco tiempo y sin quedarme calvo. En este artículo contaré al respecto de este proceso migratorio de Svelte a EmberJS.

continua leyendo

Cómo Mandar Cambios a Heroku de una Rama Distinta a master

Cuando se trabaja con Heroku mandar cambios es bastante sencillo. Generalmente, consiste en ejecutar un comando de terminal:

$ git push heroku master

En todo caso, como Git promueve el uso de ramas cada que trabajamos en algo nuevo o cuando se quiere probar una idea, termina siendo contradictorio unir cambios en la rama master que no son fiables o definitivos.

SEGUIR LEYENDO

Cómo Reiniciar Base de Datos PostgreSQL en Heroku

Cuando se trabaja en aplicaciones Ruby on Rails es muy frecuente ir agregando campos a las tablas o nuevas tablas cada tanto tiempo en las etapas iniciales de los proyectos.

A medida que se llega a un punto estable o con muchas características implementadas, se reduce la cantidad de migraciones a generar.

También ocurre que al estar en etapas tempranas nos sentimos con mayor libertad de destruir la base de datos para facilitar el añadir nuevos campos o porque hay mucha información inservible que complica correr migraciones nuevas.

SEGUIR LEYENDO