CASE: Escribiendo código más fácilmente

Las herramientas CASE (Computer Aided Software Engineering, Ingeniería del Software Asistida por Ordenador), son herramientas diseñadas para dar soporte al programador a través de una interfaz intuitiva y gráfica que le permita, mediante el posicionamiento de objetos gráficos concretos, relacionados entre sí siguiendo una nomenclatura específica, desarrollar la base de un programa automáticamente.

La programación siempre ha estado respaldada por el diseño de gráficos que, de un solo vistazo, den una imagen gráfica de lo que hace un programa, como se estructuran los datos que maneja, o cómo se organiza el código que se está escribiendo. Esto se hace mediante diagramas como los de flujo de datos, organigramas, entidad/relación, jackson, OMT y UML, entre otros.

Leer más =>>

La liebre y la tortuga

En este cuento voy a intentar explicar lo que significa programar rápido y lo que significa programar de forma ágil. La primera forma sería la que se considera comenzar lo antes posible, para terminar lo antes posible... pero ciertamente, sin planificación, dar palos de ciego a ciertos niveles de implementación, es más lento que planificar la estrategia de desarrollo a priori. Vamos a verlo con el cuento de...

Leer más =>>

Reia: Ruby sobre Erlang

Al igual que en Java se pueden ejecutar lenguajes scripting tales como Ruby (JRuby), Python (Jython), Groovy... es posible hacer esto mismo en otros lenguajes, como C y Erlang.

Leer más =>>

MVCC: Control de Concurrencia para Múltiples Versiones de PostgreSQL

El sistema de base de datos PostgreSQL integra un sistema de control de concurrencia para múltiples versiones, en principio. Esto no es más que un sistema que se encarga de mantener copias sobre los datos de forma paralela, para acelerar el sistema de escritura de datos a disco duro, haciendo un control de concurrencia entre las distintas versiones que se van escribiendo.

Leer más =>>

ETL: Extracción, Transformación y Carga

Este término, ETL, se acuña a la mayoría de transformaciones de datos que deben de realizar empresas para compatibilizar sus datos con los de sus proveedores y/o clientes.

Leer más =>>

Pruebas Unitarias

Después de haber estado adentrándome en TDD, muy poco a poco, he visto que el primer paso para hacer más fácil esta doctrina, son las pruebas unitarias.

Las pruebas unitarias son pruebas que se realizan sobre unidades aisladas de código, generalmente objetos, para asegurar que, con unos ciertos valores de entrada, siempre se reciben los mismos valores de salida, o los valores de salida que se esperan.

Leer más =>>

Scrum: 7 sprints y 3 proyectos después

Mi última entrada sobre Scrum, hablaba de la implementación del gráfico Burndown, de esto hace ya casi 3 meses, aunque realmente, comenzamos la andadura en algo antes.

En principio, tengo que tener presente que he estado usando algunas otras metodologías, como la Espiral de Boehm y Metrica-3, con lo que, he podido ver y sufrir en mis propias carnes, lo que significa e implica usar una metodología ágil, las ventajas que aporta y lo fáciles que tienden a ser, realmente.

Leer más =>>

CouchDB: REST y Base de datos documental

Tal y como comentaba en otro artículo anterior, el sistema REST permite un acceso a los datos basado en la mezcla entre localizaciones de elementos (URL) y verbos de HTTP para indicar lo que se desea hacer con ese elemento. Eso, agregando un almacén de datos que permita albergar elementos y otras características añadidas, nos dan como resultado CouchDB.

Leer más =>>

Debootstrap: Probar sin ensuciar

Desde hace tiempo, llevo usando esta herramienta para generar jaulas de modo que pueda probar nuevos sistemas, servidores y/o configuraciones, sin necesidad de desconfigurar mi sistema actual.

El sistema se basa en tener una copia exacta y nueva de un sistema operativo basado en Debian GNU/Linux, que se instala en un directorio específico de nuestro árbol de directorios. El comando que genera la jaula, que tiene el nombre de debootstrap, se encarga de realizar la instalación del sistema a partir del directorio solicitado y con las fuentes solicitadas, es decir, si queremos instalar un woody, sarge, etch, lenny... o un gutsy, hardy, ibex... pues solo tenemos que indicarlo, con la URL de donde conseguir los paquetes y listo.

Leer más =>>

PostgreSQL: Configuración de Acceso

Esto es algo que siempre me toca buscar en Internet, puesto que es algo que hago una vez cada tantos meses, y siempre se me olvida de cómo empezar, así que, para tener la chuleta a mano, he decidido escribir esta entrada que, además de servirme ahora, seguro que me servirá en el futuro para cuando configure más servidores de este tipo.

Leer más =>>

Mentalidad de Suficiencia

Citando a Kent Beck, de su libro Extreme Programming Explained:

En La Gente del Bosque y La Gente de la Montaña, el antropólogo Colin Turnbull dibuja el contraste de dos sociedades. En las montañas, los recursos eran escasos y la gente estaba siempre al borde de la hambruna. La cultura a la que evolucionaron era horrible. Las madres abandonaban a sus bebés, los entregaban a hordas de niños salvajes errantes en cuanto tenían opciones mínimas de sobrevivir. Violencia, brutalidad y traición estaban a la orden del día.

Leer más =>>

REST: Representational State Transfer

Después de haber usado durante unos años sistemas RPC para la compartición de la información, XML-RPC, SOAP y Elm; llego a REST, un concepto que mencionó primero un compañero de trabajo, Juanse, y después vi en profundidad en un curso de Ruby on Rails que se organizó en la empresa en la que trabajo (gracias Dani por ese curso tan completo).

Leer más =>>