Alan Chavez

April 9, 2013

algunas personas me han contactado a través edl formulario de contacto, esta es una breve actualizacion para informarles que no me llega el e-mail a donde responderles, por lo que si no he respondido sus preguntas a través de e-mail ha sido por esa razón.

Si pueden volverme a enviar un e-mail a: alan@alanchavez.com con gusto se los respondo!

MVC está muerto. Es tiempo de darle paso a una alternativa: MOVE

Este artículo fue originalmente escrito por Conrad Irwin, y es una traducción al español del mismo.

MVC (Model-View-Controller) es una idea fenomenal. Tienes modelos, que son basicamente pequeños estados de tu aplicación auto-contenidos en una clase (máquina de estados, como se explica en este post: Programación de Videojuegos en AS3), tienes vistas que son pequeños pedazos de interfaces de usuario auto contenidas, y tienes controladores que son pequeños pedazos auto-contenidos de….

Que …?

Continue reading

Si no te gustan las matemáticas, busca otro trabajo.

Quizá voy a despertar mucha polémica con este pequeño artículo, pero expresa completamente mi visión acerca de la programación y el desarrollo de software.

Recientemente, un amigo se estaba quejando de que en su entrevista de trabajo le pusieron a resolver un problema matemático. Al final no lo contrataron, porque no supo como resolverlo y vino enojado conmigo a quejarse y hablar mal de la compañía usando argumentos como:

“Si quisiera resolver problemas matemáticos, hubiera estudiado matematicas”
“Ni siquiera me preguntaron en que lenguajes sabía programar”
“Yo no estudié matemáticas, yo soy programador”

Has escuchado a programadores hablar asi? Yo si, muchas veces, mas de las que ma gustaría aceptar.

Mi pregunta es…
Porque estudiaron programación si no les gustan las matematicas?

Toda la ciencia detrás de la programación envuelve matemáticas discretas. Los compiladores, las maquinas de turing, los automatas deterministas y no deterministas, optimización de código, redes, aprendizaje de máquinas, inteligencia artificial, etc…

Porque considero que las matematicas son importantes en un programador?

Las matemáticas te enseñan a pensar estructuradamente y en orden. Te enseñan a llevar un proceso: un inicio y un final. Un buen programador antes de empezar a escribir una linea de código hace lo siguiente:

  • Diseña un algoritmo
  • Analiza el flujo del programa
  • Escribe ciclos invariantes
  • Identifica cuellos de botella y problemas que pueden surgir en el futuro
  • Escribe toda la especificación de un programa

Finalmente que todo eso está planeado y analizado, es entonces cuando se pone a escribir un prototipo del programa.

Para concluir este breve articulo les recomiendo que si no les gustan las matemáticas vayanse buscando otro trabajo, olvídense de trabajos en Google, Amazon, Microsoft o en cualquier compañía grande que trabaje con profesionales. Si eres programador y no te gustan las matemáticas, dedícate a otra cosa porque en este campo no tienes futuro.

Dejen un comentario si estan o no de acuerdo conmigo.
Saludos

Conectar Flash (AS3) con bases de datos MySQL usando PHP (HD)

“Cómo conectar Flash con MySQL usando PHP?” Es una pregunta muy recurrente en foros de discusión y comunidades de Flash. La respuesta es bastante sencilla, sin embargo, LA GRAN MAYORÍA de tutoriales en la web, lo EXPLICAN MAL!!

En este tutorial, te enseño como conectar MySQL, con Flash, PHP y XML de la manera correcta.

Sigue leyendo para descargar los archivos del tutorial, y ver la versión de texto del tutorial.
Continue reading

Como usar shell_exec() en PHP de manera segura.

Recientemente tuve la necesidad de escribir un Script en PHP que ejecutara comandos en el sistema. La manera rapida de hacerlo, es a traves de la funcion shell_exec que PHP provee. Sin embargo, siempre hay que recorder una regla de oro de programacion.

NO CONFIES EN EL USUARIO

Especialmente cuando los argumentos de la funcion, son introducidos por un usuario, y eso nos deriva a otras reglas de programacion segura, por ejemplo, siempre hay que “limpiar” la informacion que viene del usuario. En otras palabras, siempre hay que verificar que la informacion que los usuarios nos proveen, sea exactamente la que estamos esperando, especialmente si esta información será utilizada para ejecutar comandos del sistema.

La configuracion de Apache (o cualquier otro web deamon), PHP.ini o del sistema operativo quedan fuera del ambito de este articulo, ya que en la mayoria de las ocasiones, los servidores webs tienen la funcion shell_exec deshabilitada. En cambio, este artículo se centra especificamente en la sanitización y validación de la información con PHP, utilizando expresiones regulares.

Continue reading

Extension para Getters y Setters Automaticos en Flash CS5+

En los ultimos dias que he estado dandole los ultimos toques a mi libreria de Inteligencia Artificial, que se encuentra proxima a ser publicada, he estado escribiendo demasiados getters y setters para la encapsulacion de codigo.
Por lo tanto, en lugar de perder el tiempo escribiendo tanto getter y setter, decidi escribir una extension que lo haciera por mi, En esta entrada te explico como descargarla, instalarla y utilizarla!!
Continue reading

Implementación de Singletons en AS3

En algunas ocasiones, es util garantizar que un objeto será instanciado solamente una vez y es al mismo tiempo globalmente accesible. Este tipo de diseño es conocido como Singleton, y éste artículo explica como implementar correctamente un Singleton en Actionscript 3.0 (AS3)

Continue reading

Pathfinding con obstaculos en AS3 (A* con heuristica euclidiana, manhattan y diagonal)

El nucleo de cualquier videojuego con agentes inteligentes es la capacidad de dichos agentes de encontrar la ruta mas corta de un punto A, a un punto B. La literatura maneja diferentes algoritmos para encontrar la ruta mas corta entre dos nodos. En este tutorial vamos a implementar el algoritmo A* con tres diferentes heurísticas; euclidiana, manhattan y diagonal.

Continue reading