martes, diciembre 01, 2009

Con ubuntu 9.4

En realidad desde que me compre "Esta notebook Dell" he tenido como sistema operativo por defecto ubunto 8.10. Digo "esta" por que mi antigua Dell me duro solo dos días gracias a unos entusiastas chicos que saltaron una ventana con un par de 38s en mano, y que deben haber cambiado una máquina de unos $usd 2000 por unos $500 argentinos. Pero en fin... lo mío no es el mercado negro de la computadoras. Ojala que estés conectada a una linda wifi amiga mía.
Con respecto a ubuntu, la verdad que el soft libre me ha traído un poco más de alergias que de tristezas. Alegrías a la hora de programar, por la instalación de servidores, casi plug and play, además de algunas otras buenas aplicaciones que existen dando vuelta por ahí en la compuosfera. Tristezas, por algunas cuestiones de configuración del hardware e instalación de aplicaciones que en win son del tipo "siguiente-siguiente-terminar", en el caso de linux representaba una batalla sangrienta de 2 o 3 noches completas contra las hordas de Atila el Huno y Breno el galo, juntos
El otro día al tener que realizar una teleconferencia con un amigo que se encuentra en españa por skype, descubrí que mi micrófono incorporado no estaba funcionando, por lo que me decidí a buscar los drivers que pudieran realizar el milagro de hacerme funcionar el tan preciado micrófono. El remedio fue peor que la enfermedad y el "nuevo driver" me termino por desconfigurar algunas otras cosas. Resultado del experimento fallido: Año nuevo SO operativo nuevo... bienvenido Ubunto 9.4!!! Ojala... el no tener que reiniciar, tus hermosos pears, tus servidores, y tu parches de seguridad me auguren un muy buen año!!! Driver pasado, pisado y olvidado!

domingo, octubre 11, 2009

Degree

Gracias a todos mis amigos que me acompañaron en este proceso. Me llegaron un montón de saludos, incluso de aquellos que hace mucho tiempo que no veía o escuchaba algo de ellos. Gracias a todo mi mundo. Sip uno más, a otra cosa mariposa.
Ariel Diaz Molina, Licenciado en Informatica

martes, septiembre 22, 2009

Agradecimientos de mi Tesis

Para esas dos almas, una allá y la otra acá. Cuyo valor e infinito amor me obsequiaron el mayor de los dones; el poder pensar en libertad. La posibilidad cazar sueños, solo mirando al cielo.

Para ella, y ella que lo soportaron todo.

viernes, agosto 07, 2009

Programacion - Buenas Practicas - Nombres

Bien, vi por ahí un comentario sobre términos en ingles. La verdad es que a mi también se me dá mucho lo de poner los términos en ingles. En cuanto al idioma a utilizar, tanto en el código, como en los modelos, es mi opinión que principalmente debemos tener en cuenta el publico al que va dirigido. Es decir que si mi equipo de desarrollo esta compuesto básicamente por personas que hablan español debemos proponernos utilizar nombres o notaciones en español, ya que algunos podran hablar ingles, pero la mayoria hablara español, se entiende?. El utilizar el ingles, tiene su razón cuando el cliente es de habla inglesa y nuestro código es de su propiedad (tercerización), o los "stakeholders" (no tiene una traducción directa al español, pero es algo así como los interesados, gente que pone la plata, etc) son de habla inglesa.
En cuanto al código, algunas buenas practicas no dicen nada del lenguaje pero sugieren (En lo que recuerdo.no?) para:

-Constantes: nombres descriptivos, completamente escritos en mayúsculas remplazando los espacios es blanco con guiones bajos.

- Variables: nombres descriptivos de la misma. En java, se utiliza la notación "camelCase" donde se escribe todo junto y cada palabra comienza con una mayúscula menos la primera. Y no se suelen utilizar prefijos. En el caso de php se utiliza las notación que incluye guiones bajos (no recuerdo bien el nombre, es un poquito complicado). Ejem nombre_variable. Además de ello, y a diferencia de java, se suelen utilizar prefijos. Por ejem: obj_nombre_variable para hacer referencia a que la varible es un objeto.

-Metodos: similares a las variables, pero no se utilizan prefijos tanto para php como para java. su nombre se forma con la estructura verbo + objeto. Ejemplo publicarNoticia (java) o publicar_noticia (php). A excepcion de los metodos de acceso a los atributos o propiedades que si o si deben tener la estructura getPropiedad(), setPropiedad(TipoPropiedad propiedad), isPropiedad().

- Clases: Nombres camelCase en singular y que comiencen en mayuscula, para java y PHP5, C++, etc. En php4- se pueden escribir con minúscula.

-Interfaces: los nombres se deben escribir camelCase con la primera palabra en mayúscula y ser adjetivos (PHP5,java). Por ejemplo, publicable, votable, etc.

-Paquetes: (php5, java). Los nombres se escriben en minúscula separando las palabras por puntos. y su estructura es de la forma siguiente: dominio.alreves.[empresa/equipo/proyecto].nombrepaquete. Por ejemplo Si es para el sitio www.mipagina.com y trabajamos en la empresa arosoft podría ser com.mipagina.arosoft.utilidades

Por ultimo Los nombres, según la capa de arquitectura en la cual se ubique, es otro tema, a desarrollar después. Pero podría adelantar que si es una clase que formará parte de una capa de servicios en un presenter de un MVP o algo asi, es decir una capa intermedia en la codificación, podría tener por nombre un gerundio. Por ejemplo: Publicando y cada metodo que implemente un caso de uso tener el mismo nombre que en la ficha de caso de uso escrito en camelCase, para facilitar el seguimiento y las pruebas funcionales del mismo.


Saludos, nuevamente espero que despierte algunas ideas.

Una guerra que está cambiando su rumbo

Por fin esta guerra que comenzó en tiempos mas allá de mi conciencia parecería tornar su rumbo. Por primera vez en la vida, creo que la universidad no la ganará. Pájaros negros circundan sus posibilidades.
Que aquello que empecé cuando todavía mi cara angulaba, está llegando a su fin. Ya no se trata de los deseos de realización de una madre, ni el alma penante de un padre que vela por la felicidad y el futuro de su hijo. No se trata de una promesa. No se trata del respeto que infunde la palabra que precederá a mi nombre, ni de un papel impreso con un cero de más. No se trata de las presiones que abuelos, familiares, amigos, allegados, etc, ejercen sobre mi persona al rededor de una mesa.
Se trata de una guerra que ni el mismisimo Pirro hubiera estado dispuesto a librar. A donde quedaron en el camino, un gran afecto, un hijo no nacido, un padre no acompañado, un sueño no cumplido, una carrera abandonada. Soldados que se contaron como lágrimas, sueños, noches en vela, compañeros de camino; han quedado a trás por sostener una bandera.

Pero la guerra está llegando a su fin! Está cambiando su rumbo.

Solo resta la madre de todas las batallas, aquella que definiría todo. El todo o la nada. Y estoy más preparado que nunca, la experiencia me ha nutrido, he bebido de sus tetas hasta quedar rechoncho, mi armadura brilla tanto bajo el sol como bajo la luna, mi espada corta y bloquea por igual y mi caballo atraviesa tempestades.
Que te queda a ti?
Solo tus harapos teñidos de vergüenzas, tus magulladuras, tus puños que tantas veces supieron rechinar contra mis huesos, que quebraron mi intestino, hoy hacen huellas en el suelo junto a tus rodillas. Te has quedado sola en tu castillo, pues uno a uno tus ejércitos han caído.
Si he de festejar el dia que sucumbas?
No, amiga mia, no, enemiga mia. Te guardo el derecho al respeto. Ese respeto que se guarda a aquellas cosas que esculpen tu alma a base de la educación más espartana y sádica. Pero la vida se encargo de que ambos ocupásemos dos bandos diferentes en este desierto donde no hay nada que ganar y mucho he perdido. No será la montaña lo que ha de pagar, será la lucha por ella . Con el tiempo y solo con el tiempo, beberé en tu nombre, reiré con nostalgia de las grandes batallas y recordaré sacrificios. Pero tu día, será un día más en mi vida, y ese ha sido tu mérito.
Puedes sonreír, pero la irónica se transformará en sordónica, pues tu era ha terminado y ahora comienza la mía.

jueves, junio 11, 2009

UML Relaciones, Asociacion, Compocicion, Agregacion II



Aclaración


He tratado de explicar, muy generalmente, cual es la diferencia entre asociación, composición, y agregación, pero creo haber pecado de los mismo que criticaba a los post que leía. No he sido los suficientemente claro, además se me ha solicitado que explique un poco mas.. je.
Debo de destacar que cada modelo diseñado no es prescriptivo, ni intenta ser absoluto hay otras formas de diseñarlo, o por lo menos a mi se me ocurren otras además de estas.
Pero creo que la pricipal, duda viene por lado de la Composición y la Agregación. Cabe destacar, que la composición, surge como un refinamiento de la Agregación, en la búsqueda de implementar la buena practica de programación de hacer a las clases mas "coercitivas", es decir de asignarle responsabilidades.

Explicación del Modelo Representado


Asociacion: Es la relación que existe entre la clase Persona y la Clase Foto, es decir que que existe una variable de instancia (o atributo) en la clase Persona del tipo Foto. Solo un obeto, el cual se setea a partir del método setFoto(), como variable de instancia a la cual se le crea un setter. Este puede ser instanciado (new Foto()) en cualquier otra parte del código.
Agregación: Es la relación que existe entre la clase Persona y la clase Lugar atravez del atributo "lugaresFrecuentes", que es una colección (array, colection, vector, etc) de objetos Lugar. Y que además, la clase Persona cuenta con un método "agregarLugaresFrecuentes(Lugar lugar)" Mediante el cual se agregan un solo objeto del tipo Lugar a la colección "lugaresFrecuentes". Estos objetos, que son pasados como parámetros a dicho metodo, son instanciados fuera de la clase Persona. No debe confundirse con el método setLugaresFrecuentes(Lugar[] lugaresFrecuentes), que tiene solo por ser un propiedad.
Composición: Es la relación que existe entre la clase Persona y la clase Perfil a travez de la propiedad "perfiles" que es una coleccion del tipo Perfil. Además, de ser una relación estructural, es meramente semántica, ya que lo que pretende es darnos la idea de la responsabilidad que tiene la clase Persona sobre el ciclo de vida del objeto de la clase Perfil. Es por ello que también en el ejemplo grafique una Dependencia (esta no se grafica generalmente, con la composición basta. Pero UML sirve para comunicarnos.)
Es idéntica a la agregación pero con la diferencia que la clase Persona se hace responsable de la creacion del objeto Perfil. Es decir que la instancia (new Perfil()) se crea dentro del método agregarPerfil(), y despues de ello, dicho objeto se guarda en la colección "perfiles". El modelo nos esta diciendo, que en ninguna otra parte del código deberíamos escribir un new Perfil() . Ya que coloquialmente, el perfil (sea este psicologico, personal, etc) de una persona solo existe a partir de la persona, muerta la persona el perfil no sirve de nada, y solo a partir de la existencia de la misma se puede crear uno, por lo que este metodo de creacion debe de ser un metodo de instancia.

Es todo una cuestión, de lo que la persona que escribió el modelo (y teniendo en cuenta que la misma sepa utilizar UML, nos quiso transmitir), si existe la duda, hay que preguntarle que quiso decir con lo que graficó.
Espero haber limpiado algunas dudas
Saludos
Ariel Diaz Molina.

lunes, enero 26, 2009

jueves, enero 22, 2009

La isla

Y las aguas del sur se juntaron con las que viajaban desde el norte. Y los vientos que soplaban fríos, silbaron canciones con los que traían calor. Tanto bailaban entre si, y tanta pasión había en aquel tango, que los cielos se agitaban y las nubes se hacían espirales. Nada había de parecido, era casi imposible, solo se dieron las condiciones para una tormenta perfecta.

Allí nació lo nuestro. En aquella exótica isla de lana y resortes. Allí comíamos, dormíamos, saltábamos. Allí vivíamos emociones, nos amábamos por las mañanas, discutíamos por las tardes y sudábamos por las noches. Realmente amé aquellos tiempos, especialmente cuando los primeros rayos de sol se colaban por las rendijas de la ventana para iluminar los paisajes de una geografía de piel y aromas. Rara vez, abandonábamos la isla para adentrarnos en la frialdad de los mosaicos, cumpliendo misiones a la heladera en busca de provisiones que aseguren frescas horas de energía que tanto las necesitábamos por aquellos tiempos. Galopamos sobre prados de 180 hilos, torsabamos nuestras carnes bajo cascadas de bronce cuando el calor agobiaba. Dormíamos profundamente formando las agujas del reloj a las diez y diez, cuando las confesiones acababan y el aire se recuperaba. Hablábamos del pasado, dibujábamos el futuro con ojos en brillo, pero básicamente vivíamos el presente. El día a día era nuestro sustento. Reíamos y corríamos libres de vergüenzas y tejidos como si el tiempo no persiguiese y las obligaciones perdieran su nombre, la gente nos vio amarnos, y los mortales envidiaron aquella inmortalidad.

Así nos devolvimos la fe, así nos perdonamos nuestros pecados. En aquella isla sobre el suelo pero cerca del cielo y lejos de la gente, encontramos nuestra paz.