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)

Bueno regresé después de tanto tiempo sin de verdad actualizar la página, pero la universidad me tenia full y me quitaba todo el tiempo para la página. Bueno por ahora decidí­ cambiar todo el contenido de la pagina a php para que me permita hacer grandes actualizaciones de manera rápida.

Y gracias a esto me dí­ cuenta que al migrar todas las paginas de HTML a PHP y utilizando CSS he reducido aproximadamente un 40% y 80% a cada archivo html. Lo cual aparte de que me permite modificar por ejemplo el menú principal de arriba en todas las paginas al mismo tiempo, me ahorra un 40% ó 80% de espacio en Disco y de ancho de banda.

Tal vez le parezca como tardí­o que haya hecho esto a estas alturas pero siempre me habí­a dado pereza, por lo que invito a todos los webmaster que sigan usando el HTML antiguo y sin CSS a que migren sus páginas a contenido dinámico y con CSS para que observen las ventajas del mismo.

Pues si, ya es oficial que Sun liberó Java bajo GPL y FELIZ CUMPLEAí‘OS 16 a la WWW.

¡Guao! hoy me entero por medio de Slashdot y Barrapunto que al parecer Sun Microsystem usará la licencia GPL (la misma que tiene Linux) al momento de liberar Java el próximo año. Es una sorpresa para muchos (aunque todaví­a no es oficial) ya que la mayorí­a de las personas pensábamos que la licencia con la que iban a liberar Java iba a ser una libre pero con ciertas restricciones pero al ser GPL principalmente (y el cambio que creo que mas veremos) nos dará la libertad/obligación de publicar las mejoras o proyectos derivados hechos a la misma, por lo que no será raro ver en unos años ver muchas máquinas virtuales distintas hechas por diferentes organizaciones y causando lo que para mi es lo malo de este asunto: Incompatibilidad o Destandarización de Java.

Si liberan Java bajo GPL, en mi opinión deberí­a Sun controlar o tratar de mantener un estándar de Java para todos los proyectos que se deriven del mismo, evitando que llegue a pasar que si programo algo no vaya a funcionar correctamente en todas las JVM que existan (sin tener que configurar algo), así­ como pasa con los navegadores libres, distribuciones, etc. (Claro puede sonar como dictatorial e ir con los principios de software libre) pero pienso que es lo mejor; otro problema que puede suceder es que las compañí­as que han creado trabajos o han desarrollados ciertas cosas en Java (entiéndase cosas incluidas en JRE, JSE, JME) deberí­an liberar estas cosas y causar disgustos para las mismas.

Existen rumores acerca de lo que Sun planea hacer es 2 modelos comerciales de Java, uno libre licenciado bajo GPL para la comunidad y otro con fin comercial dirigido a nivel Empresarial (Ya que de JEE no se ha dicho nada) así­ como lo hace Redhat, SuSe, MySql, que ofrecen versiones de sus productos tanto para la comunidad como para empresas. Lo cual harí­a «feliz» tanto al mercado empresarial como la comunidad y hacer Sun ganando mas dinero y ampliando su mercado.

Por ejemplo en Venezuela, Sun querí­a entrar al mercado del software gubernamental pero como sabemos por el decreto 3390 (que dice que todo el software gubernamental debe ser libre) no se podí­a usar la tecnologí­a Java muchas tareas ya que su máquina virtual era privada e iba en contra del decreto. Otro ejemplo es que he leí­do es de que muchas empresas no les agrada Java porque no tienen acceso a la JVM y no pueden saber que hace en realidad, si tiene backdoors, si tiene algo que no les guste, funcionalidades escondidas, entre otras cosas. Supongo que estas cosas les habrá pasado en muchas partes del mundo, haciendo que pierdan mercado que ellos pueden entrar, por lo que es razones como estas han hecho que liberen a Java.

Tocará esperar al otro año a ver si esto se hace realidad y el impactó que tendrá en el mundo de la informática.

P.D: Agredecirí­a sus opiniones, discusiones del tema y correcciones.

Este es la famosa versión del juego Frogger programado en JAVA por mi. Lo hice porque en este semestre de la universidad yo era el preparador (Estudiante que trabaja en la universidad explicando el contenido de cierta materia de la carrera) de la materia Programación I de informática en la UNET. Y pues en el último parcial a los muchachos de esa materia les pidieron realizar un Frogger en Java, por lo que tuve que hacerlo primero para luego explicarlo.

El mismo esta hecho para correr perfectamente en cualquier S.O. que soporte Java, trae sonidos, fue hecho con multihilos, y espero que les guste y den comentarios.

Interfaz de JFrogger

Descarga:
http://skatox.com/descargas/JFrogger2k6.zip

¡¡El código fuente está bajo GPL para que lo disfruten aun mas!!

Jad es un buen programa que encontré por la red, el cual busqué para recuperar un juego (Frogger) que habí­a programado y borrado accidentalmente los códigos fuentes. (JAMAS PERMITAN ESO, Es algo muy ignorante, bobo, imperdonable perder los «sources» de un programa que estemos haciendo)

Jad es un decompilador de Java, es decir, un programa que traduce los un archivo .class a código de lenguaje Java. Se puede utilizar para recuperar el código fuente de .class que hicimos y perdimos los sources (cosa que no deberí­a suceder nunca), obtener el source de otros programas y aprender como funcionan algunas librerí­as, etc.

Uno de los usos interesantes que le dí­ fue el de crear una aplicación, compilarla y luego obtener los códigos fuentes de la misma, así­ se puede estudiar mejor el lenguaje, compilador, y el código que se genera. Esto me ayudó a resolver una duda que tení­a (si es elemental, no la sabí­a):

Por ejemplo, yo suelo importar todo un paquete de clases aunque utilice una sola (en este caso usaré por decir sólo la clase Frame):

import java.awt.*;
Frame objeto........

Mi duda era que si el .class que se generaba importaba todas las clases pertenecientes a awt, pero me di cuenta que al generar el .class y luego decompilarlo obtendrí­a en esa lí­nea sólo:

import java.awt.Frame; // Entonces es chevere porque puedo seguir con mi costumbre XD
Frame objeto........

Pero este programa no es perfecto del todo, lamentablemente no me recupera los comentarios que tengan las fuentes (es casi que obvio que no las recupere), al igual que aquellos métodos ó atributos que se definen al momento de instanciar/llamar al constructor de un objeto y estos no se encuentran definido en la clase que pertenece el objeto. ejemplo:

Object perro = new Object(){
int edad;
String nombre;     };

Me darí­a como resultado por el JAD:

Object perro = new Object();  < --- Se pierden los atributos que definen en el momento.

En fin, es buen decompilador que se los recomiendo. Está disponible para x86 con Win 9x/NT/XP,2000; Linux, Mac Os X, BeOS, Solaris 7 y para PowerPC esta disponible para Mac Os X, para Sparc con Solaris ó Linux, entre otros.

Download: http://java.decompiler.free.fr/