Invictus

Invictus

William Ernest Henley

Out of the night that covers me,
Black as the Pit from pole to pole,
I thank whatever gods may be
For my unconquerable soul.

In the fell clutch of circumstance
I have not winced nor cried aloud.
Under the bludgeonings of chance
My head is bloody, but unbowed.

Beyond this place of wrath and tears
Looms but the Horror of the shade,
And yet the menace of the years
Finds, and shall find, me unafraid.

It matters not how strait the gate,
How charged with punishments the scroll.
I am the master of my fate:
I am the captain of my soul.

_________________________________________________________

Más allá de la noche que me cubre
negra como el abismo insondable,
doy gracias a los dioses que pudieran existir
por mi alma invicta.

En las azarosas garras de las circunstancias
nunca me he lamentado ni he pestañeado.
Sometido a los golpes del destino
mi cabeza está ensangrentada, pero erguida.

Más allá de este lugar de cólera y lágrimas
donde yace el Horror de la Sombra,
la amenaza de los años
me encuentra, y me econtrará, sin miedo.

No importa cuán estrecho sea el portal,
cuán cargada de castigos la sentencia,
soy el amo de mi destino:
soy el capitán de mi alma.

NTR: No Te Repitas (DRY: Don’t Repeat Yourself)

funny_hatchetHace algunos años ya me topé con el libro “Pragmatic Programmer”  de Andrew Hunt y David Thomas. Aconsejo a todos los que tengan la oportunidad que adquieran el libro y le den una buena leída. Muestra de manera clara muchas verdades que conocemos, pero que realmente pocas veces aplicamos. Algún día escribiré un post del libro. Pero hoy quiero enfocarme en el DRY Principle. A este principio se le conoce también como “single point of thruth” o “punto único de verdad”.

El principio establece que, en un entorno informático, la información no debe repetirse. Es decir, el conocimiento almacenado en un programa informático debe mantenerse en un, y sólo en un, lugar. De primas a primeras, el principio parece evidente, pero cuando investigamos algunas piezas de código, incluso las nuestras, nos damos cuenta que constantemente violamos el principio.

Leer más NTR: No Te Repitas (DRY: Don’t Repeat Yourself)

Patrones estructurales (structural patterns)

spiderVimos ya los patrones creacionales más importantes. No son todos, en el futuro veremos más, pero son los más usados y los más importantes. Ahora comenzamos con una nueva fase: Los patrones estructurales. Los patrones estructurales (structural patterns) podrían llamarse patrones de relaciones, o algo parecido, porque su principal función es facilitar y mejorar las relaciones entre objetos.

En el mundo de objetos, la creación de instancias es muy importante, pero tan importante como la creación, es la manera en la que instancias de objetos se comunican entre sí. Un diseño estandarizado y bien pensado puede facilitar mucho las cosas durante el desarrollo de un sistema grande. En ocasiones nos ponemos a realizar nuestras soluciones a la medida, pero generalmente estas solucionen decaen en construcciones extrañas que serán difíciles de entender para futuros desarrolladores, e incluso para nosotros mismos una vez que dejemos de ver el código.

Leer más Patrones estructurales (structural patterns)

Empresas que hacen software a la medida Vs. empresas que desarrollan productos

forkLa necesidad de software en el mundo es tan amplia, y de una gama de ambientes tan amplia, que una empresa de software tiene muchas posibilidades al momento de decidir su giro de negocio. Aunque en muchas ocasiones la flexibilidad será la clave para que la empresa crezca, invariablemente llegará un momento en el que la empresa debe tomar la decisión sobre el tipo de empresa que será. Independientemente del nicho de mercado que la empresa decida atacar, hay una decisión que marcará el futuro de la empresa y su manera de trabajo. Y esta bifurcación en el camino tiene dos caras: desarrollar software a la medida, o desarrollar un producto de software bien definido. Leer más Empresas que hacen software a la medida Vs. empresas que desarrollan productos

Prototype Pattern – Patron Prototipo — Patrones de diseño

cloningYa casi terminando con los patrones creacionales, vamos a hablar hoy sobre el prototype pattern, o patrón prototipo. Como los demás patrones creacionales, este patrón sustituirá para el cliente la palabra clave new por otra forma de crear objetos. En este caso específico la creación se hará sobre objetos que son complicados de crear, que para evitar usar new  serán clonados a partir de una instancia ya existente. Afortunadamente crear objetos no crea ningún tipo de reparo moral, porque este patrón de eso se trata: de clonar, de pasar el ADN de un objeto a otro.  Es decir cada instancia del objeto se obtendrá a partir de un prototipo (sí, de ahí el nombre del patrón!). 

Leer más Prototype Pattern – Patron Prototipo — Patrones de diseño