octubre 20, 2009

Holly shit, soy un nerd!

Ahora que no tenía mucho que hacer, bagabundeando por ahí llegué a esta encuesta que evalua que tan Nerd eres; y santos héroes del fobaproa Batman!! saqué 94% !!!

Ya tenia yo conciencia de tener cierto nivel de frikismo, ¿pero tanto??, si llega a ser preocupante. Esta calificación me pone como un kaiosama de los nerds.

Ahora que en una introspectiva exhaustiva, debo confesar que si soy fan de algunas series de anime, he coleccionado algunos comics alguna vez en mi vida, me gustan mucho los juegos de video, paso muchas horas al día pegado a la computadora, soy super fan del universo de star wars (no asi de star trek), y tengo varias figuras de acción de superheroes en la casa, puedo pasarme toda una tarde viendo documentales en el animal planet, y en el toilet hay una pila de libros de diferentes temáticas que van desde algoritmos genéticos hasta de modelos estocásticos. Solo puedo alegar en mi defensa que nada de esto me enajena y que en realidad prefiero mil veces pasar una buena noche bohemia con vino y guitarras que una noche de halo multiplayer online. Aunque, si lleva su buena tajada de razón la susodicha encuesta.

Por cierto, ¿conocen ya la nueva forma de jugar piedra, papel o tijera al estilo nerd?, en la serie "The big bang theory" proponen que se agreguen 2 elementos nuevos al juego, de modo que el juego quedaría en "piedra, papel, tijeras, lagarto, spock", y las reglas pues son muy simples:

  • Las tijeras cortan el papel
  • El papel cubre a la piedra
  • La piedra aplasta al lagarto
  • El lagarto envenena a Spock
  • Spock destroza las tijeras
  • Las tijeras decapitan al lagarto
  • El lagarto se come el papel
  • El papel refuta a Spock
  • Spock vaporiza la piedra
  • y, como siempre ha sido... La piedra aplasta las tijeras
un diagrama lo ejemplifica mejor:


Esto con el fin de minimizar el riesgo de empates en el juego... claro que es preferente que esta versión se juegue en el idioma klingon, sino, pues es igual pero pierde parte del encanto =:-)

Que tengan una larga y prospera vida...

octubre 04, 2009

Esquema de colores para PsPad


PsPad es un editor de texto gratuito para programadores que por lo menos para mi se ha convertido en herramenta indispensable para el trabajo día a día.

Ahora les quiero compartir un esquema de colores que he hecho para este editor, los colores están inspirados en el de el editor para mac TextMate.

El esquema se puede descargar de aquí, espero lo disfruten tanto como yo =:-)

You can download it here, enjoy =:-)

junio 20, 2009

¿es que se acabó el encanto?

Hace ya mucho tiempo que no publico algo en este blog acerca de la programación con Delphi y Firebird; tal vez algunos se pregunten si es que me he desencantado de su magia y he abandonado el sendero de la luz; pero no, no es así de hecho todos los dias trabajo con Delphi y Firebird, dandole mantenimiento a algunos programas que se han comercializado.

Algo de trabajo me ha dado migrar algunas bases de datos desde Firebird 1.5 a Firebird 2.1, pero la verdad es que el cambio ha valido la pena y con creces, las nuevas características de la versión 2.1 son invaluables, y transportan a los servidores a un nuevo nivel. Y los clientes felices, ¿como sabes que un cliente es feliz? porque no te llama para quejarse... es muy raro que llamen para aplaudir un acierto, pero si hay algún problema puedes estar seguro que llamará :)

No he probado la versión de Delphi 2009 así que poco puedo decir al respecto, la verdad creo que en mi caso pasará un rato para que llegue a dedicarle algo de tiempo a esta versión, pues algunas de las librerías que uso en mis proyectos, o no hay versión compatible con las nuevas reglas Unicode, o me sale en un billete actualizarlas solo para tener esta funcionalidad, lo cual no creo necesitar todavía. Tal vez mas adelante pero por ahora no está en mis planes.

Por lo pronto otros paisajes han llamado mi atención, el desarrollo web me sonrió y me mostró un cúmulo de posibilidades que antes no me eran ajenas pero que ahora puedo ver más claramente. Y es aquí donde he volcado mis atenciones en los últimos meses, he aprendido mucho en este aspecto, y es que el desarrollo de este tipo de aplicaciones es algo muy especial y en donde la cantidad de conceptos que debe uno manejar ha crecido exponencialmente en los últimos años; pero también he podido apreciar que el impacto social que se puede conseguir con esta clase de aplicaciones es bastante grande. Ya iré contando mis andanzas en el desarrollo web en futuros posts, y cual es mi nueva perspectiva de la web y el futuro de las aplicaciones en las nubes.

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?: