julio 31, 2008

¿Sabes lo que es un hashmap?

Para los programadores de Java este concepto tal vez no sea tan extraño pues el uso de hashmaps es común, pero para los programadores de Delphi puede sonarles a nuevo.
Un hashmap es una estructura de datos que permite crear un mapa en memoria para la rápida identificación de elementos a partir de un dato usado como llave. Puedes decir: ok si conozco muchas estructuras de datos que permiten hacer eso, ¿cual es la diferencia con los hashmaps?; bien, la principal es que los hashmaps son verdaderamente rápidos.
La librería JCL incluye varias clases para la implementación de diferentes tipos de hashmaps, aquí mostraré una de estas para poder encontrar una cadena a partir de el valor de otra:

Y una vez hecho esto, encontrar una aguja dentro de ese gran pajar se reduce a una simple instrucción:
ShowMessage (Map.GetValue ('Llave5670'));
En este caso hemos ejemplificado usando cadenas (que incluso usando hashmaps se gana mucha velocidad respecto a utilizar los clásicos derivados de TStrings, TStringList), pero las posibilidades se multiplican si te das cuenta de que puedes mapear grandes cantidades de objetos usando esta técnica. Estos pequeños grandes tips hacen la diferencia entre lo que puede parecer un lento cacharro, o un veloz jet a la hora de trabajar con cantidades de datos muy considerables.

julio 11, 2008

¿Y tu que tan Espartano eres?

No, no se trata de un concurso para ver quien grita mas fuerte "This is Spartaaa!",  Se trata de un estilo de programación de hecho. Me he enterado hace poco de este estilo, y como ven en el enlace tiene que ver con la austeridad en todos los sentidos.

Particularmente yo no soy tan espartano, me gusta anteponer la reutilización de código y la mantenibilidad por encima de la austeridad, por ejemplo siempre prefiero llamar a una variable: MediaAritmeticadelaMuestra, que simplemente M, lo mismo para las funciones y procedimientos. Aunque si dedico muy buena parte de mi tiempo de trabajo a optimizar y simplificar procesos ya hechos; no me preocupa demasiado el aprovechar hasta el más infimo bit de memoria; prefiero aprovechar las jerarquías de la VCL, y usar patrones de diseño a diestra y siniestra.

¿A cuantos aquí el estilo de programación se les parecería a esto si fuera uno de los 300?:

junio 29, 2008

Instalar Zeos 6.6.2 rc en Delphi 2007

Hay algunos detallitos para instalar este paquete de componentes particularmente en Delphi 2007 pero te comparto como puedes instalarlos sin problemas ajustando solo una línea de código.

En primera se debe abrir el archivo ZeosDbo.groupproj de la carpeta Delphi11 que se encuentra en la carpeta packages y compilar uno a uno los paquetes que aparecen en el Project Manager.

De estos, el paquete a instalar es el que se llama ZComponentDesign.dproj, pero al instalarlo así nada mas solo da el mensaje de que el paquete ha instalado pero no registra ningún componente, para corregir esto solo hay que editar el código fuente del paquete, esto es dar click con el botón derecho del ratón sobre este paquete y seleccionar la opción View Source desde el Project Manager, y agregar la siguiente línea de código justo antes del end. final:

contains
  ZComponentReg in '..\..\src\component\ZComponentReg.pas';

Una vez hecho esto es solo Guardar los cambios y volver a seleccionar Install y esta vez si estarán todos los componentes registrados.

junio 02, 2008

Fable 2 para finales de año

Me gustan los RPG's, (bueno, no tanto los de combates por turnos) existen 2 títulos que me han gustado bastante, el primero es el "Ocarina of Time" de la serie de Zelda (un clásico de clásicos), creación del gran Shigeru Miyamoto, y el segundo fué Fable The Lost Chapters de LionHead, creado por Peter Moulineaux.

Este último me gustó mucho por la ambientación y lo bien cuidado de ciertos detalles, como la excelente música, hasta donde llegó incluso el talento de el gran Danny Elfman.

Consecuentemente me encuentro entre los miles de fans que esperan el lanzamiento de la secuela Fable 2, que ya ha sido anunciado para el otoño de este año 2008. Para que vean mas o menos de que va el asunto vean este avance del juego:

  

¿¿Que tal?? ¿¿se ve bueno no??, hay muchos detalles muy interesantes , el señor Moulineaux es muy buen diseñador de video juegos y ha prometido una serie de características que destacarán a este juego de entre los demás de su tipo; una de estas muchas cosas que per-se ya es una gran mejora, es la utilización del motor físico de Havok, que es uno de los mejores y muy utilizado en otras recientes publicaciones de mucho éxito.

El encanto que ha caracterizado las creaciones de Peter Moulineaux es el involucramiento de las emociones y la moral del jugador en la trama de la historia, el poder jugar y llegar a sentirte bien o mal por haber tomado cierta decisión, la sensación de tristeza por la perdida de un compañero, o la humillación que otros personajes hacen al protagonista por la derrota sufrida y que terminan por tocar el animo mismo del que juega el rol. Esto amigos es un todo un arte y existen muchos libros y artículos que hablan al respecto, de hecho tengo un libro electrónico muy bueno, que aborda este tema desde diferentes perspectivas y es estupendo, si a alguien le interesa este tema le puedo enviar una copia, solo tiene que solicitarlo.

mayo 29, 2008

¿Porque Delphi 2007?

Cuando me preguntan si he cambiado a Delphi 2007 solo por seguir la moda geek o cuales son mis razones para haber dejado Delphi 6, les contesto:

Bueno!!... son tantas cosas, que es difícil enumerarlas en orden de importancia, pero para muestra unos cuantos ejemplos: