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:

mayo 27, 2008

Delphi Latino BlogRoll

Seguramente muchos aquí conocen el sitio www.delphifeeds.com, un estupendo compendio de bitácoras acerca de Delphi y los productos de CodeGear, donde la comunidad angloparlante comparte muy interesantes artículos con el mundo.

A decir verdad en español también hay una buena cantidad de sitios de bitácoras que ofrecen estupendos artículos, y la cantidad de estas crece día con día; y la gran mayoría realmente merece que se le haga una reseña completa.

Por esta razón he incluido en mi Blog una sección de las llamadas BlogRoll, donde aparecen automáticamente los últimos artículos de las Bitácoras que leo sobre Delphi en Español, para que todos aquellos que me hacen el honor de visitarme puedan también visitar alguna de estas fabulosas páginas, y así potenciarlas. Y también esto es con el afán de incentivar a los brillantes autores a seguirnos deleitando con contenido de gran calidad como nos tienen acostumbrados.

Hasta el momento están incluidas en este BlogRoll bitácoras de renombrados programadores como: Ian Marteens, Nico Aragon, Al Gonzalez, Juan Antonio Castillo, Salvador Jover, Jose Castillo, Jhonny Suarez, y muchos, muchos mas.

Si tienes una página sobre Delphi con sindicación y deseas ser agregado a esta lista solo tienes que pedirlo y con gusto te agregamos. Así que si tienes algo que decirnos o enseñarnos, adelante! Seguro que entre todos podemos convertir el Embarcadero en un Majestuoso Puerto

mayo 26, 2008

¿Buscas un buen hosting gratuito que soporte PHP/MySQL?

Dale una oportunidad a http://www.000webhost.com/ es gratis, sin publicidad, servidor FTP, transferencia de hasta 100GB, con los servicios de un hosting profesional y un desempeño bastante aceptable.

Si el HTML no es tu fuerte, o no se te da muy bien el PHP, este sitio cuenta con un instalador automático de una gran variedad de sistemas manejadores de contenidos (CMS) como Joomla, Drupal, PHPNuke, etc; o si quieres montar tu propio foro puedes hacerlo con PHPBB con un solo click, o montar tu propio Blog o Tienda en línea, lo que se te ocurra.

Lo he estado probando y me ha parecido muy bueno, y ahora lo comparto con ustedes. Que lo disfruten y aprovechen al máximo!

Update:

Me han borrado mi cuenta de 000webhost sin decir agua va, y no tengo ni idea de porque haya sido, el caso es que se perdieron los sitios de prueba que tenía alojados ahí y no tengo modo de recuperar ni un solo bit de información. Lo bueno es que solo eran algunas cosillas de poca importancia que solo usaba para probar como funcionaban en linea, pero eso da una buena idea de que no se deben usar estos hostings gratuitos para cosas serias, sino que hay que tomarlos mas bien a la ligera.

Para mi hosteo en serio estoy usando el servicio del cloud de RackSpace, con este servicio te olvidas de cualquier inconveniente con la escalabilidad de tu página o servicio en linea, lo puedo recomendar porque me ha funcionado excelentemente bien con aplicaciones verdaderamente grandes, si te interesa te puedo ofrecer una opción para que el primer mes solo pagues la mitad, solo preguntame como, y te hago llegar un cupon de descuento especial.

mayo 14, 2008

Respaldos remotos con Firebird

IBExpert (un gratuito gerenciador de Bases de Datos de Firebird) al estar conectado a una base de datos remota y entrar en la pantalla de Servicios y seleccionar la opción "Backup Database" nos dice el mensaje: "Take into account: Backup Files will be created in the server side!"

Esto al querer seleccionar el nombre de archivo con el que queremos que haga el respaldo; pero, ¿que pasa si lo que yo quiero es que el respaldo lo haga en mi propia computadora, no en el servidor?

Bien, en ese caso lo que puedo hacer es usar la linea de comandos y escribir esto:

gbak -b -z SERVIDOR:BASEDEDATOS "C:\localbackup.fbk" -verbose -user SYSDBA -password masterkey

Eso nos genera el respaldo en la máquina cliente, sin mayor problema. Solo hay que acotar que se necesita que en la máquina cliente se encuentre instalado Firebird o en su caso el servicio de GBAK para que esta magia funcione.

mayo 07, 2008

XBOX MEDIA CENTER un estupendo programa gratis y Open Source para tu consola

Hace algunos meses, compré una vieja consola de XBOX de 20 gigas en disco duro (si, de las negras),esto con el afán XBOX MEDIA CENTER LOGOde poder jugar algunos viejos juegos que nunca tuve oportunidad de jugar en su momento; en realidad nunca había tenido una consola de vídeo juegos propia, pero esta vez quería sacarle jugo a la televisión de 53 pulgadas que acababa de comprar. Todo iba bien, hasta que me enteré que podía conectar ese XBOX a mi laptop vía FTP y transferirle archivos a su disco duro; pero lo mejor fue cuando conocí el programa XBOX MEDIA CENTER.

El XBOX MEDIA CENTERXBMC) convierte tu consola de vídeo juegos en  un completo centro de entretenimiento digital, de opciones muy variadas, es un reproductor multimedia completo, sus bondades son muchas, pero les enumeraré las que yo mas utilizo:

  • Puedo ver las fotografías que saco con mi cámara digital, a lo grande en mi televisión, puedes rotar en automático las fotos o hacer zoom en la visualización de la foto, todo de una manera muy práctica con los controles del mando de la XBOX. Y aqui podemos repasar una y otra vez las fotos de las vacaciones, o las salidas a algún lugar interesante.
  • Reproduce perfectamente archivos de audio de todos los formatos que conozco, incluso reconoce automáticamente los archivos CDG + MP3, lo que convierte a la consola en un fantástico Karaoke, así que ahora en la casa ¡todos los días hay fiesta!, y nos la pasamos bailando y cantando todo tipo de música, le he ido tomando gusto a todos los géneros musicales gracias a esta estupenda característica.
  • Con los videos no se queda atrás, tiene integrados una enorme cantidad de CODECS con lo que prácticamente cualquier video descargado de la red puede visualizarse sin problemas, (incluido el formato rmvb que está tomando mucho auge por su alta calidad y el alto factor de compresión que utiliza); además el XBMC carga automáticamente archivos de subtítulos para las películas, lo que permite ver muy cómodamente series, películas, documentales, o los videos graciosos de YouTube, así que también tengo un cine personal en la sala de mi casa.

Aparte de todo esto tiene soporte Zip/Rar, un interprete de scripts del lenguaje Python, visualizaciones de fondo impresionantes para la música, su propio servidor FTP, conexión en linea con YouTube y otros sistemas para ver los trailers de las nuevas películas... ufff, en fin que es un gran estuche de monerías y no me alcanza todo este post para enumerar todo lo bueno que tiene, pero en la página del proyecto se enteran mejor.

El programa lo pueden conseguir principalmente en redes P2P y en algunos trackers de BitTorrent, es absolutamente gratis y está disponible el código fuente, definitivamente votaré por este proyecto en las futuras encuestas de SourceForge.

Es increíble todo en lo que puede convertirse una vieja consola de menos de 100 dólares.

XBOX MEDIA CENTER EN LA PARED

abril 30, 2008

Ventana Virtual 3D con Delphi

¿Alguna vez pensaste en hacer una aplicación con Delphi a la que pudieras controlar de manera inalámbrica a distancia como la Wii o que la interfaz se ajustara automáticamente y en tiempo real a la posición de tu cuerpo con respecto a la pantalla?

El señor Paul van Dinther nos muestra que es bastante posible en el siguiente video usando Delphi y GLScene

This is a demonstration of a virtual window using OpenGL in GLScene (http://www.glscene.org) and Track IR (http://www.naturalpoint.com)

This technology is being developed by Dinther Product Design to be applied to a range of simulator systems we build. The idea is to allow drivers to lean in order to look around obstacles as we do in a car all the time to cover blind spots.

Cool... ¿no?,

Firebird SQL 2.1 ya está listo

La versión 2.1 del afamado motor de base de datos, se esperaba desde finales del año pasado, y por fin ha visto la luz; Juan Antonio Castillo en su bitácora nos habla de las novedades que presenta esta versión, que no son pocas. Hay muchas mejoras que en general han sido aplaudidas por la comunidad de desarrolladores.

Yo he probado solo la versión embedded  hasta ahora, y en primera instancia si se nota una ganancia en velocidad en la resolución de las consultas (con respecto a la versión 1.5 que es la que utilizo), las nuevas características añadidas al SQL del motor permiten hacer cosas espectaculares con una sola consulta; lo que aún no he probado por usar la versión embedded es el desempeño del nuevo protocolo de red; se prometía que las mejoras serían de un 50% aproximadamente, y hay que poner a prueba esa afirmación.

Si alguien ha hecho pruebas en este sentido sientase con libertad de compartirnos sus resultados.

abril 29, 2008

JediCodeFormat un "embellecedor" del código

Si, a todos nos gusta lo bonito; y pocas cosas dan tanto gusto como encontrarte código bien ordenadito e identado apropiadamente. Existen muchos embellecedores de código por ahí, algunos comerciales y otros libres; de entre todos yo prefiero el JediCodeFormat que pertenece al conjunto de maravillas del proyecto JEDI. ¿Porque?, simple, porque provee del código fuente y porque las opciones que maneja son las mejores que he visto, y deja el código chulo de bonito. Además puedes compilar el paquete con la librería RTLVCLOptimize y con las mejoras que esta unidad hace a las rutinas de tratamiento de cadenas, el proceso de formateo (de incluso un proyecto completo) es un tiro. Puedes configurar un botón en la barra de herramientas que automáticamente de formato a la unidad que estés editando en ese momento, y así hacerle el equivalente a un lifting facial instantáneo con un solo click.

Les comparto el archivo de configuración que yo utilizo, que me funciona perfectamente, y que hemos adoptado como un estándar de programación en mi departamento.

Y recuerden:

"Dios es real" (a menos que sea declarado integer o string). =:-)