El ejemplo del constructor

albanilHace ya algunos años lei por primera vez este texto. Quisiera poner la referencia del autor, pero no encontré quien lo pudo haber escrito,  así que si alguien me dice a quién darle el crédito, con gusto se lo daremos 🙂 Aparte de lo gracioso en sí mismo, ahora que lo leo años después, desafortunadamente es muy acertado. Digo desafortunadamente, porque tenemos que cambiar la manare de hacer proyectos de software. Urgentemente. Nuevas metodologías, nuevas herramientas, nuevos paradigmas. Actualmente el proceso de hacer software es más complicado de lo que, en mi humilde opinión, debería ser. ¿Qué piensan?

Read more El ejemplo del constructor

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.

Read more 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.

Read more 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. Read more 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!). 

Read more Prototype Pattern – Patron Prototipo — Patrones de diseño

Haces software, y quieres venderlo….aprende marketing!

 

marketing-strategy-win-new-clients1Si estás pensando en poner, o ya tienes, una empresa de software, tendrás que aprender un poco de marketing, mercadeo y todas esas otras ciencias ocultas que siempre viste de menos y consideras superfluas y no dignas de tu valioso y hermoso tiempo. Pero si quieres que tu empresa salga adelante, has de enamorarte (o al menos hacer que te gusta) del marketing. Read more Haces software, y quieres venderlo….aprende marketing!

Builder Pattern, Interfaces Fluidas– Patrones de diseño

lego

El builder pattern, o patrón de construcción, es uno más de los patrones creacionales de diseño. En términos generales un builder esconde los detalles de la creación de un objeto final que se llama producto. Hay varios métodos para lograr esto, y por ello hay varias “implementaciones” de este patrón que en nada coinciden , salvo en el nombre. El clásico, usado en el GoF es un poco más complejo del que vamos a ver ahora, pero no se asusten, ya tendremos la oportunidad de aprenderlo. En esta ocasión nos vamos a enfocar en un builder que se llaman interfaces fluídas (fluid interfaces). Read more Builder Pattern, Interfaces Fluidas– Patrones de diseño

Manifestación de los ricos, manifestación de los pobres.

En más de un espacio he observado ya la crítica sarcástica a las manifestaciones que han tenido lugar en la Plaza de la Constitución los últimos días. Con críticas viscerales sobre la “gente bien” que ha salido a las calles a clamar justicia, pidiendo un alto a la impunidad, intentando hacer “algo” por esta Guatemala que está harta de llorar sangre.

En los medios de comunicación se ha referido a estas manifestaciones como apoyo a los familiares y amigos del Lic. Rosenberg. Y NO ES CIERTO. Vi un par de cartulinas pintadas que rezaban “No soy familiar. No soy amigo. Soy Guatemala.” Y creo que este ha sido el espíritu de estas manifestaciones.

Han sido cuatro manifestaciones, y en las cuatro he tenido el ORGULLO de participar. ¿Por qué orgullo? Por el espíritu cívico que se ha respirado en dichas manifestaciones. Manifestaciones pacíficas, capaces de tragarse las confrontaciones de los manifestantes pro-Colom, confrontaciones evidentes: estos ojos las han visto. Aquellos que no me crean vayan el domingo. En todo momento se llama a evitar la violencia, a dejar limpio el lugar, a no utilizar insultos.

Me siento ORGULLOSO porque han sido manifestaciones civilizadas: nadie ha pintado paredes, roto vidrios de establecimientos. Aun sin policía no se ha cedido a conatos de bronca. He de decir que algunas personas trataron despectivamente a personas manifestando a favor del presidente, y sí, eso también me da asco y lo repudio de corazón.

Pero sobre todo me siento orgulloso porque nadie las “ha organizado”. Todas las manifestaciones comenzaron en redes sociales, específicamente en facebook. No se va a favor  de un partido político, no se busca ensalzar a alguien, no se discrimina credo religioso, color, creencias, nivel socioeconómico, nada. Simplemente son un grupo de guatemaltecos que que piden justicia, que piden paz. Que piden poder caminar en las calles sin miedo a ser asaltados o muertos ¿Manifestación de los ricos? Hey, yo al menos no soy rico, y muchas de las personas que he visto en las manifestaciones definitivamente no rebosan en quetzales. A muchos nos ha costado horas de trabajo que hemos de reponer en la noche. Sí, claro, muchos de los manifestantes tienen mucho dinero, pero ¿el ser dinero les quita el derecho a manifestar?

Cada uno de los que fueron, o al menos la inmensa mayoría, estaban ahí porque nos dio la gana. Nos dio la gana apoyar una manifestación espontánea que pide un cese a la impunidad en Guatemala. Claro, me solidarizo con familiares y amigos de Rosenberg, y admiro mucho su coraje, pero yo no he ido a manifestar por eso.

Yo he ido a manifestar pidiendo un alto a la violencia insoportable que vive ese país. Esa violencia que cobra más de 15 vidas diarias en promedio, esa violencia que en menos de dos años ha cobrado más de 6 mil vidas de personas con familia. Seres humanos que sienten, que sueñan, que trabajan, que son padres, madres, hijos, esposos. Gente. Voy a protestar porque ya estoy harto de ver que los impuestos que se pagan no sirven para nada, y porque me ofende que siendo así los quieran aumentar. Alego que el gobierno, que ha de encargarse de mi seguridad y de la suya, tenga el sarcasmo de decir que le sobran 250 millones de quetzales a la policía, policía en la que yo confía nadie.

El gobierno nos dice que estamos haciendo un proyecto de desestabilización. Al menos yo en ningún lado he visto eso. Queremos que Colom salga? Sí, pero no porque sea Colom. A mí no me cae bien mi presidente, ni su ideología política, pero comprendo que esto es una democracia y que si elegimos (eligieron, no voté por él, jaja) mal nos tenemos que aguantar. Pero si está incriminado en un crimen si EXIJO que sea sometido a investigación. Si sale inocente, respetaré eso. No es alegar por alegar, es manifestar nuestro enojo a la falta de justicia en Guatemala.

Los invito a todos para juntarnos el domingo en la Plaza Italia (frente a la muni) a manifestar nuestro enojo con la ineptitud del gobierno actual. Vamos a decir un “basta, estoy harto!” para que los que están en el poder entiendan que ya no nos quedaremos callados, que ya no podrán estar viéndonos la cara como hemos hecho hasta ahora. A decirles que entiendan que somos sus jefes y les exigimos. Vamos, no a una manifestación de ricos o pobres, vamos a una manifestación de chapines que amamos este hermoso, pero moribundo país.  Ánimo Guatemala….aún no es demasiado tarde.

Singleton Pattern — Patrones de diseño

singletonEstamos abordando ahora un tercer patrón creacional, o de creación. El Singleton Pattern, a diferencia de los dos que ya hemos visto y los que veremos, no se encarga de la creación de objetos en sí, sino que se enfoca en la restricción en la creación de un objeto. Este patrón es ampliamente utilizado por muchos frameworks, y también es uno de los más fáciles de aprender y utilizar. 

Read more Singleton Pattern — Patrones de diseño