Dennis Ritchie ha muerto :(

Octubre empezó con una mala semana para la gente de la informática, el pasado 12 de octubre muere el famoso programador Dennis Ritchie, otra de las personas que admiraba (si entran en la pagina de mi semi-auto-biografía en el blog pueden observarlo en la lista de mis héroes informáticos) por su gran trabajo que cambió la humanidad.

Steve Jobs fue alguien con gran visión hacia el futuro de la tecnología pero quienes lo hacían realidad era sus empleados, sin embargo, Dennis Ritchie fue alguien que hizo realidad la tecnología, su trabajos mas importantes fue crear el “Lenguaje C” y el sistema operativo “UNIX”. Ambas tecnologías son usadas ampliamente, de hecho, cuando navegas en Internet estas usando una tecnología derivada de su trabajo, si estas usando programas o teléfonos inteligentes estas usando software derivado de sus creaciones.

Actualmente estoy dando clases de Computación I en la Universidad del Táchira y el pensum incluye enseñar lenguaje C, recuerdo en la primera clase al hablar un poco sobre él y la historia de lenguaje C, dije que fué creado hace 40 años y  un estudiante me preguntó: Si es algo tan viejo y para la tecnología eso es prehistorico, ¿Por qué se sigue usando? Lo que se me ocurrió responderle fue: porque es poderoso y simple.

Realmente luego de tanto tiempo programar es C es algo muy útil, produce software poderoso, disponible para cualquier plataforma y con buena documentación. Por ello la mayoría de sistemas operativos están programados en este lenguaje, es fácil de comprender la sintaxis, crea programas eficientes, está disponible para todo tipo de arquitectura:  teléfono celular, consolas de videojuegos, computadoras, etc. Respecto a UNIX, su diseño es excelente por su sencillez, casi todos los sistemas operativos lo utilizan y/o descienden de el: Linux, los telefonos con Android, Bada, WebOs, el sistema operativo de las Mac (MacOs) y de los iPhones (iOS). Casi el 70% de los servidores de Internet usan sistemas operativos con arquitectura UNIX.

Así que si usas tecnología digital hoy en día, es muy probable que estes usando tecnología influenciada por el trabajo de Dennis Ritchie, desde tu reproductor musical hasta la computadora, desde que te conectas a Internet o utilizas un reproductor blu-ray, entre otros. Gracias a este hombre le debemos gran parte del avance de hoy en día, pero su trabajo solo era comprendido por la gente del área y no por las personas “comunes”.

Para finalizar quiero compartirles mi frase favorita de él y la canción de programar en C:

“UNIX es básicamente un sistema operativo muy sencillo, pero hace falta ser un genio para entender su simplicidad”.

Dennis Ritchie.

Facebook libera su propio entorno de ejecución para PHP

Hoy salió a la luz una noticia importante para todos aquellos desarrolladores de PHP, pues Facebook acaba de mostrar su entorno de ejecución de PHP con el fin de optimizar hasta un 50% o más (dependiendo de los casos) la ejecución de scripts en este lenguaje. Tal vez le parezca un poco de optimización pero cuando eres una empresa grande como Facebook que cuenta con 50000 servidores aproximadamente y sirve a 300000000 de usuarios, un 50% mas de rendimiento por el mismo hardware, es bastaste.

Lo que hizo esta gente es crear un traductor de PHP a C++, donde luego se compila a lenguaje de máquina utilizando G++ (el compilador GNU de C++), permitiendo “migrar” aplicaciones PHP a lenguaje de máquina y ejecutarse con mayor velocidad, obviamente se pierde las voluntades del lenguaje dinámico e interpretado  junto a la eliminacion de algunos comandos que no se pueden adaptar a C++, como el caso de eval() que evalúa código PHP en tiempo de ejecución, el uso de $$ y otras funciones mas.

En el screencast del lanzamiento su creador comentó que este proyecto no busca sustuir el entorno de ejecución de PHP ni hacer que la gente compile todo a C++, sino que en ambientes de alta demanda, utilizar PHP con servidores web tradicionales en el momento de desarrollo y luego cuando se esté listo para producción compilarlo en C++ y obtener mayor rendimiento.

Cabe destacar que HipHop PHP también es un servidor web para servir estas páginas generadas y que se esta trabajando en un interprete para PHP, sin embargo es muy temprano para dar opiniones ya que apenas hoy se hizo el anuncio y liberación del codigo en Github , esperemos a ver que ofrece el futuro del proyecto de código abierto.

Mas informacion: https://developers.facebook.com/blog/post/2010/02/02/hiphop-for-php–move-fast/

Código fuente de Skate or Dice

Hace dí­as publiqué  sobre un programa que hice para el PSP acerca del fabuloso juego de azar Skate or Dice, la respuesta fue buena para ser mi primera aplicación y pues debido a la solicitud por parte de muchas personas aquí­ les publico el código fuente, para que con ello puedan entender como se programa para la PSP y así­ mejorar este programa (si lo hacen publí­quenlo) o realizar nuevos.

En el comprimido podrán encontrar el programa con formato para Visual C++ 2008 Express , el cual, debe estar configurado para utilizar el PSPSDK para Windows y así­ poder compilar la aplicación. Si son usuarios de linux, pueden instalar el PSPSDK y el toolchain y compilarlo con GCC o cualquier IDE que utilice este compilador (ejem, Netbeans, Eclipse, etc).

Código fuente de Skate or Dice

Bueno espero recibir comentarios o ayudas.

Programa para resolver Sudokus

Sudokus, querí­a que fuese rápido, portable a otro sistema operartivo (pero como queria que fuese rápido no podí­a usar Java) y fácil de programar. Por lo que programé un programa que resuelve Sudokus utilizando las librerí­as de Gtkmm, ya que la misma funciona bajo Linux y Windows (no probé mac), tiene buena documentación, fácil de aprender y esta hecha con C++ (me gusta mas que C). El programa logra resolver los Sudokus pero tarda tiempo en resolverlos dependiendo de la dificultad (algunos son instantáneos), y el único problema que he visto, es que con los que son muuuy difí­ciles se tarda un buen rato y consume todo el procesador. Si lo compilan con optimizaciones para el procesador que poseen actualmente, notaran gran mejora en la velocidad, por lo que se los recomiendo (los binarios que distribuyo no estan optimizados para un procesador especifico).

GUI del Sudoku

Se los doy bajo licencia GPL y me gustarí­a que me contactaran si encuentran una forma de mejorar el algoritmo, corrección de un error, o algo por estilo. Si no, me pueden enviar el código/parche para mejorar el programa.

Espero que les guste y no abusen de él, está comprobado que resolver Sudokus ayuda a mejorar la memoria, capacidad de pensamiento y velocidad del mismo. Pues con este programa pretendo a ayudarlos mas no a utilizarlo como sustituto total de tu cerebro para la resolución del Sudoku.

En el archivo de descarga (usuarios de Windows abrirlo con 7z ó Winrar si tienen la licencia) encontrarán los binarios / ejecutables, archivos de ayuda para compilación, fuentes, archivo del programa para que en windows lo abran con Dev-Cpp, el archivo para que en linux abran el proyecto con Anjuta, archivo Glade para el GUI, y el header con las funciones para resolver el Sudoku.

Para descargarlo:
Descargar el programa y sus fuentes
Y para ejecutarlo en Windows, necesita tener las librerí­as Gtkmm para correrlo:
Gtkmmruntime.2.10 (1.4 mb)