RSS
people

Eclipse 3.5 Galileo ha visto la luz

Realmente esta noticia iba a ser publicada el día de ayer, sinembargo dado a que me encuentro descansando y contrario a lo que muchos creerían, no he tenido el tiempo suficiente para dedicarme al blog (esto ya se ve reflejado en mi google reader +1000 xD), pero claro, esto no deja de ser importante ya que el lanzamiento del nuevo eclipse galileo es la noticia más importante de la comunidad java que usa y mantiene el IDE, personalmente tengo que decir que el plugin que más utilizo, google plugin for eclipse, aún no tiene su versión para este release, pero si quieres profundizar un poco sobre las novedades que trae galileo visita las notas del release>>

No Comments |

Error en GWT -libstdc++.so.5: cannot open shared object file

Hace poco decidí formatear mi equipo y reinstalar el sistema operativo, en mi caso ubuntu 9.04, sinembargo luego de reinstalar mis herramientas de desarrollo, al tratar de ejecutar mis aplicaciones Gwt en modo hosted, me he encontrado con que eclipse me reportaba el error:

** Unable to load Mozilla for hosted mode **
java.lang.UnsatisfiedLinkError: /home/sysdent/Desarrollo/eclipse/plugins/com.google.gwt.eclipse.sdkbundle.linux_1.6.4.v200904062334/gwt-linux-1.6.4/mozilla-1.7.12/libxpcom.so: libstdc++.so.5: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1778)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1674)
at java.lang.Runtime.load0(Runtime.java:770)
at java.lang.System.load(System.java:1005)
at com.google.gwt.dev.shell.moz.MozillaInstall.load(MozillaInstall.java:190)
at com.google.gwt.dev.BootStrapPlatform.initHostedMode(BootStrapPlatform.java:53)
at com.google.gwt.dev.HostedModeBase.<init>(HostedModeBase.java:362)
at com.google.gwt.dev.SwtHostedModeBase.<init>(SwtHostedModeBase.java:98)
at com.google.gwt.dev.HostedMode.<init>(HostedMode.java:271)
at com.google.gwt.dev.HostedMode.main(HostedMode.java:230)

Tengo que decir que al principio me desconcertó un poco el error pero buscando un poco en internet encontré el error, este se debe a que el modo hosted de gwt usa librerías nativas del sistema operativo y en mi caso no las tenía instaladas, sabiendo esto la solución fué bastante sencilla, basta con instalar la librería en mensión.

  1. Ve a Sistema -> Administración y abre allí el Gestor de paquetes synaptic.
  2. Busca el paquete libstdc, y ubica el llamado libstdc++5 y marcalo para instalar.
  3. Aplica los cambios para que el manejador de paquetes realice los cambios necesarios.

Listo, una vez hecho esto ya podrás ejecutar tus aplicaciones en modo hosted sin ningún problema.

No Comments |

Descargar las imagenes de gusanito.com

Quién no conoce el servicio de gusanito.com?, personalmente lo he usado muchas veces para enviar mis tarjetas de felicitación o saludo, sin embargo, me he enterado que el sitio tiene una sección de descargas y más explicitamente descarga de fondos de escritorio, los estuve revisando y son bastante bonitos, por lo que pensé que seguramente los quieras bajar, pero hacerlo uno a uno es un trabajo bastante dispendioso, así que usando mi clasesita de descarga de ficheros decidí hacer un programita en java, el cual se encargará de descargartelos de forma automática, y que al estar hecho en java lo puedes usar cualquiera que sea tu sistema operativo, basta con ejecutar el script correspondiente:

  • Para linux: run.sh
  • Para windows: run.bat

Requisitos:

Descargar el programa>>

Descargar el código fuente>>

2 Comments |

Descargar archivos usando java

No puedo negar que esta utilidad de descargar ficheros desde la web usando java la he tenido que usar muchas veces, ya sea por motivos laborales o simplemente para desarrollar aplicaciones por pura diversión, por ejemplo hace algún tiempo creé un programita para bajar las fotos de la revista Soho (por cierto se me ha olvidado subirlo), cuya naturaleza hace que sea imprecindible el poder bajar archivos desde java.

Como considero que muchos pueden llegar a necesitarlo en su momento, decidí colocar a disposición de todos la clase básica que siempre uso para descargar ficheros, ya sea de texto o binarios, la verdad es bastante sencilla (más de lo que te imaginas).

public void downloadFile(String remoteFile, String localFile) {
  BufferedInputStream in;
  try {
    URL url = new URL(remoteFile);
    in = new BufferedInputStream(url.openStream());
    FileOutputStream fos = new FileOutputStream(localFile);
    BufferedOutputStream bout = new BufferedOutputStream(fos, 1024);
    byte data[] = new byte[1024];
    int count = 0;
    while ((count = in.read(data, 0, 1024)) > 0) {
      bout.write(data, 0, count);
    }
    bout.close();
    in.close();
    System.out.println(remoteFile+" - Descargado correctamente.");
  } catch (MalformedURLException e) {
    e.printStackTrace();
  } catch (IOException e) {
    e.printStackTrace();
  }
}

Sin embargo también subido el proyecto para eclipse y lo puedes descargar aquí.

2 Comments |

El mal uso de Java en las universidades

Yo le añadiría al título “y en todo lado”. Paso a copiar en mi blog un interesante artículo publicado en etremaqueros que nos habla sobre los problemas por los cuales java ha ido adquiriendo una mala reputación.

Se que mucha gente se me tirara encima pero siento decir que Java me parece un lenguaje de maravilla para aprender orientación a objetos de forma sencilla pero ahí se acaba su ventaja, tomad el primer curso universitario de programación con Java y veréis lo fácil que os resulta, eso si, cuando lleguéis a arboles binarios preparaos para pasarlo realmente mal.

Hay dos cosas que no aguanto de Java, la primera de ellas es la falta visible de punteros y la segunda es la perdida completa de los structs respecto a C, en el caso de C++ un desarrollador puede usar una struct de C si quiere pero en Java no, en Java creas un método/función que sea un struct y… bueno, es que no puedes hacerlo.

Java esta siendo escogido en primero y segundo de carrera por muchas universidades para poder ahorrarse tiempo explicando, ya no te enseñan realmente como funciona una lista enlazada o un árbol, ya no se enseñan algoritmos sino que simplemente tiran de Java y sus librerías completamente prediseñadas para que hagas las prácticas, tiene su gracia que al final acabes superando las prácticas de la siguiente manera:

  1. Llegas a clase de prácticas, solo sabes sintaxis
  2. Pruebas y le das vueltas, no te sale nada y te sientes inutil
  3. Decides ir a la libreria general de Java y ves como funciona el tema y aprendes que lo que te han puesto en la práctica ya esta solucionado en la libreria general en forma de clase.
  4. Copias el contenido de los metodos y los personalizas.
  5. Tras ensayo y error ves que la práctica te funciona
Tras estos 5 pasos te das cuenta que no has aprendido nada, no sabes como funciona internamente ciertas cosas y tampoco aprendes algoritmos, es la informática para tontos que quieren implementar en ciertas universidades, quieren que seamos lo suficientemente inteligentes para codificar pero al mismo tiempo sigamos siendo lo suficientemente ignorantes como para no quitarles el sitio privilegiado.
El problema es la curva de aprendizaje, la mayoría de libros de programación para novatos en Java se quedan en los arrays y en los bucles, ahí no avanzan ni siguen adelante para dar la imagen de que Java es 1000 veces más accesible que C, hay un capitulo en C que es esencial que son los punteros y es el capitulo puente entre los conceptos básicos y los avanzados. Como Java no tiene punteros explicitos, y muchos libros y gente pasan de explicar que es un puntero y sobretodo para que sirve en los lenguajes de programación, pues cuando te encuentras con temas más avanzados, donde los punteros si que son esenciales para explicar y entender lo que estas haciendo, es cuando aparece el “usa la clase tal que te lo hace por la cara”.
Al final acabas por odiar a Java solamente por eso, es el nuevo Visual Basic, todo el mundo lo esta usando pero mal, en vez de aprovechar la potencia del lenguaje para crear los algoritmos desde 0 mucha gente prefiere no pensar y tirar de la libreria general de Java, muy poca gente prefiere pensar y hacer las cosas desde 0. Si esta actitud ya se enseña desde la Universidad entonces mal vamos.
No Comments |

GwtUml – Haz tus diagramas en el navegador

Hace algún tiempo escuche sobre yUml.me, a pesar que me pareció interesante, en su momento me abstuve de postear sobre él, ya que no le ví la suficiente utilidad más allá de tener tus diagramas online, y que tiene en contra el modo de crear tus diagramas, el cual se basa en digitar instrucciones de un seudo-lenguaje lo que lo hace un poco inusable, más cuando la gran mayoría somos amantes de los entornos gráfico y del arrastrar y soltar.

El día de hoy descubrí  GwtUml, el cual es un sitio que te permite crear tus diagramas UML de manera muy sencilla, casí funciona identico a un programa de escritorio tipo fujaba, y con la caracterísitca especial que puedes exportar tus diagramas a la url, con lo que puedes compartir tu diagrama con tus amigos, he realizado una sencilla prueba, y puedo decir que me ha convencido un poco más que yUml.

Como datos ténicos puedo decir que gwtUml está construido con Gwt (cosa que me gusta mucho), que está bajo licencia GLP (por consiguiente tienes acceso a los fuentes)y si te interesa te recomiendo que visites si wiki, donde puedes encontrar algo de info sobre el framework.

No Comments |

Mejorando tus interfaces de usuario

El día de hoy mientras leia el artículo  mejorando la usabilida de ubuntu de zootropo de mundogeek, decidí explorar un poco más por su sitio y me encontré con esta buena traducción sobre diseño de interfaces de usuario usables, el cual tengo que reconocer que es un poco extenso pero altamente recomendable, reconozco que algunos aspectos realmente los desconocía, por ejemplo, la razón del crecimiento del botón atrás en firefox 3.

El artículo cubre diversos temas como son:

  • El usuario no quiere usar tu aplicación, quiere hacer su trabajo.
  • La ley de Fitt.
  • Interferencias innecesarias.
  • Sácale el jugo a la computadora.
  • Haz que sea fácil distiguir los elementos y usarlos.

Diseño de interfaces de usuario usables>>

1 Comment |

Frases celebres – Gestión de proyectos

La verdad me he reido mucho con está frase que publica Raul en MundoGeek, se titula “Gestión de proyectos“, es de Frederick Brooks, y principalmente va en contra de aquel erroneo pensamiento que tienen algunos de que contratar más gente reduce considerablemente el tiempo de desarrollo de un producto.

Nueve personas no pueden producir un bebé en un mes.

En mi caso, mi experiencia me dice que introducir nuevo personal a un grupo de trabajo en lugar de mejorar su productividad realmente hace todo lo contrario, reducir un poco la productividad de tu equipo, por varias razones, la principal mis compañeros la han bautizado “La curva de aprendizaje”. Es importante resaltar que si este nuevo personal se introduce en etapas tempranas del proyecto lo más seguro es que alcancen el nivel de los demás miembros y en las fases medias y finales del mismo logren reducir el tiempo total, sinembargo la frase ataca aquellos proyectos que por algunas razones se han retrazado y en los últimos días deciden traer nuevas caras con miras de terminar algo que ya es pŕacicamente imposible.

Que opinan ustedes de que se puede reducir el tiempo de un proyecto introduciendo nuevo personal a mitad de la marcha?

gracias MundoGeek>>

2 Comments |

Error Nr. 2003 – No es posible conectar a mysql

Recientemente he tenido que instalar mysql en un servidor virtual para un trabajo que acabo de comenzar, hasta ahora siempre había instalado mysql en el servidor local por lo que no había tenido este tipo de problemas, sin embargo el día de hoy al intentar conectarme a mi serivdor de bases de datos usando el mysql-query-browser, el servidor me retornó el Error Nr. 2003.

La causa de este error es que mysql inicialmente viene configurado para aceptar conexiones unicamente desde localhost (127.0.0.1), esto por cuestiones de seguridad, como consecuencia de esto, al tratar de conectarnos desde otra maquina no podremos, para habilitar las conexiones desde equipos remotos deberemos modificar un poco la configuración de nuestro servidor, así:

  1. Edita el archivo ubicado en /etc/mysql/my.conf, ejemplo sudo vi /etc/mysql/my.conf
  2. Ubica la línea que dice bind-address=127.0.0.1 y agrega un # al inicio, deberá quedar así
    #bind-address=127.0.0.1
  3. Guarda los cambios en el archivo (si estás usando vi como en el ejemplo presiona la tecla Esc y posteriormente escribe :wq y presiona la tecla enter).
  4. Reinicia el servicio de mysql: sudo /etc/init.d/mysql restart
  5. Listo ya te puedes conectar desde cualquir máquina.

Espero que esta pequeña guía sea de utilidad para todos ustedes, cualquier problema no duden en comentar.

2 Comments |

Listado de plugins y ejemplos para JQuery

A pesar de ser un ‘Gwt-lologo’, confieso que me gusta bastante JQuery, por que es un librería liviana, fácil de aprender y con muchisima documentación en la red, una prueba de esto es JQueryList, un sitio donde prodrás encontrar una gran lista de plugines y ejemplos de uso de la librería, en el momento consta de 255 elementos pero prometen que el número crecerá en poco tiempo. Así que si eres amante de JQuery, este sitio puede ser de tu interés.

JQueryList>>

gracias a NoSoloCodigo>>

No Comments |