Documentar Software no es tan Difícil

Muchísimos chistes se han contado sobre lo poco o nulo que suele ser la documentación en proyectos de software. Si bien la documentación de librerías populares muestra la gran dedicación que le ponen el equipo de mantenedores, cuando miramos al software dentro de las empresas en las que trabajamos es cuando padecemos de la carencia de una documentación decente.

Que falte documentación puede ocurrir por diversas causas, desde falta de tiempo, negligencia, desinterés o desmotivación (porque caduca muy rápido) hasta desconocimiento de cómo hacerlo o incluso qué documentar.

Continuar leyendo «Documentar Software no es tan Difícil»

Voto Electrónico: ¿Sí o No?

Respuesta corta: no.

A continuación, los fundamentos.

Siendo Jurado Electoral

He sido jurado electoral en Colombia en varias ocasiones. Generalmente, son tres eventos por los cuales hay votaciones: elecciones presidenciales, elecciones de congreso y elecciones de alcaldes, gobernadores y ediles.

Unas más «pesadas» que otras en términos de la afluencia de gente que asiste a votar, en ocasiones ocurren en lugares donde no hay fluido eléctrico, agua en los baños, poca ventilación, etc.

Continuar leyendo «Voto Electrónico: ¿Sí o No?»

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!

Continuar leyendo «Sobre ese error de la cláusula Group By en SQL»

Sobre las entrevistas y Preguntas de Ruby y de Rails

En este artículo quiero plasmar algunos pensamientos de entrevistas para desarrolladores web y algunos enlaces a sitios donde hay una buena colección de preguntas para prepararse enfocadas en Ruby y Ruby on Rails.

Sobre las entrevistas para desarrolladores

Entrevistas de trabajo. Temidas por unos, buscadas por otros. En cualquier profesión son un momento difícil para cualquier persona porque casi nunca se sabe los criterios por los cuales te aceptarán o rechazarán en una vacante de trabajo.

A nosotros los desarrolladores de software en ocasiones nos toca pasar por entrevistas que parecen diseñadas por robots para entrevistar robots. Procesos larguísimos, poca empatía, falta de consideración, preguntas sin sentido, tareas muy extensas y al final, en muchas ocasiones, no hay respuesta de vuelta de la empresa contratante.

Continuar leyendo «Sobre las entrevistas y Preguntas de Ruby y de Rails»

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.

Continuar leyendo «Los 10 Mandamientos del Programador Sin Ego»

Usa GitHub Más Fácil con Hub

GitHub es el servicio de hospedaje de código más popular hoy en día. Su interfaz, su listado de características y hasta su precio lo vuelven en una herramienta que poco hay que pensar para usarla a nivel personal o empresarial.

La interfaz de GitHub comparada con la de Bitbucket o Gitlab es muy amena, sencilla y en ocasiones fácil de usar. En todo caso, tener que dar clic por aquí y clic por allá para lograr algo, resulta cansino cuando hay formas más sencillas posibles.

Continuar leyendo «Usa GitHub Más Fácil con Hub»

Sugerencias para un Buen Desempeño como Desarrollador de Software Profesional

Todos empezamos sin saber muchas cosas cuando llegamos a nuestro primero empleo. De lo que sea. De niño solía trabajar en mis vacaciones del colegio. Fuera esto con mi papá como ayudante o donde un vecino que tenía una empresa de estampados.

Generalmente, siempre me explicaban cómo hacer las cosas que me encargaban y procuraba hacerlas siempre de la mejor manera. Cuando no sabía preguntaba y cuando tenía problemas los mencionaba.

Luego, cuando empecé a trabajar como programador se repetía un poco lo mismo. Se me pedía hacer algo, se daban instrucciones e indicaciones de por donde empezar y luego cuando me ponía manos a la obra procuraba informar, hacerlo bien, mencionar problemas, etc.

Continuar leyendo «Sugerencias para un Buen Desempeño como Desarrollador de Software Profesional»

BKT en Producción: Scripts Durante el Despliegue

Continuando con la serie BKT en Producción, en este artículo vengo a compartir los scripts de despliegue que se usaban para mandar la aplicación a los entornos en la nube.

Estos son una versión ya mejorada pasada por varios proyectos pero que mantiene la esencia y la base de las primeras versiones.

Mencionaba en un artículo pasado la herramienta Code Deploy. Cuando se configura dicho servicio, hay que instalar un archivo llamado appspec.yml en la raíz del proyecto. En dicho archivo se indican los scripts que se ejecutaran durante el ciclo de vida del despliegue.

Continuar leyendo «BKT en Producción: Scripts Durante el Despliegue»

Comunidades para Desarrolladores de Software

Hay muchas formas de aprender en el mundo del software. Sea leyendo libros, viendo vídeos, practicando «a lo mero macho» o una combinación. Aunque un poco menos formal pero muy habitual, otra forma de aprender es leyendo artículos o historias que comparten otros colegas de otras partes.

¿Cuántos no hemos aprendido a hacer algo gracias a un blog post de un desconocido en España o USA? Yo aprendí mucho leyendo de otras personas y aún lo hago hoy en día. Internet nos da esta posibilidad y las comunidades en línea lo multiplican. Por eso quiero compartir algunas comunidades en las cuales participo activamente y aprendo cosas nuevas o reafirmo mis conocimientos.

Veamos.

Continuar leyendo «Comunidades para Desarrolladores de Software»

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.

Continuar leyendo «BKT en Producción: Code Deploy»