Null Pointer Exception

Un weblog perpetrado por Jose Luis Mondelo

Google
Web weblogs.javahispano.org

Main | Next month (nov 2003) »
20031028 martes octubre 28, 2003

I Congreso javaHispano: espectacular

Después de pasar todo el fin de semana en la cama por culpa de una gripe que también me impidió asistir a las sesiones que se celebraron el jueves por la tarde, por fin puedo comentar mis impresiones sobre el tan esperado congreso.

Bien, lo primero es confirmar lo esperado: el congreso ha sido un auténtico éxito, y las claves de este éxito han sido: la brillante organización, la calidad y diversidad de las ponencias seleccionadas, el lugar de celebración, la asistencia de público, ...

La única pega (si es que puede encontrarse alguna) es que debido a lo ajetreado del programa apenas hubo tiempo para actos "extraoficiales", así eché en falta más tiempo para poder charlar con la gente y conocernos un poquito. Aún así tuve la oportunidad de conocer en persona a Al, Martín, Aitor y demás miembros de javaHispano, también tuve el placer de saludar a Pedro Jorge y a muchas personas más, pero me gustaría tener más tiempo para hablar con la gente, no todos los días se tiene a mano a tanto experto !! Creo que para futuras ediciones sería bueno organizar una comida o cena de confraternización.

En cuanto a las charlas, como ya he dicho, me parecieron de altísimo nivel, superando incluso las expectativas creadas. El día y medio que asistí al congreso disfruté y lo que es más importante, realmente aprendí muchas cosas. Para los que no habéis podido asistir, os haré mi pequeña crónica del evento, intentando resaltar las ponencias que a mí me resultaron más importantes. Ahí van las primeras:

Presentación y Bienvenida

Con Abraham Otero como maestro de ceremonias (lo hizo a la perfección durante todo el congreso), Al nos recibió  y nos dió una breve (brevísima) presentación del congreso. Así recalcó  el deseo de formar una comunidad en torno al mundo java y de ámbito hispanoamericano, de impulsar los vínculos entre el mundo empresarial y el universario y dedicar especial atención a los desarrollos Open Source.

Mecanismos de serialización en J2ME

Lo que más me gusta de este tipo de actos, es que al final asistes a alguna charla sobre algún tema que en principio no te llama la atención y al final te das cuenta de que es un tema interesante. Eso me pasó en esta ponencia. J2ME no es un ámbito de interés prioritario para mí en estos momentos, sin embargo fue muy interesante asistir a esta charla en la que Guillermo Díez Andino, de la Universidad Carlos III, narraba los problemas encontrados en el proceso de serialización en la plataforma móvil y cómo solucionaron dichos problemas.

Movilidad con seguridad

Me esperaba más de esta ponencia de José Manuel Estrada (Sun Microsystems). Me pareció un refrito de la charla que dió en la javaExpo, y al final no entró en el tema que supuestamente iba a tratar. De seguridad sólo mencionó de pasada el proyecto Liberty, pero dejó los detalles para la charla que posteriormente daría Al. Así que solo habló de movilidad, para contar cosas que ya se saben más o menos: el panorama actual de java en dispositivos móviles y las tendencias en el sector que distintos analistas predicen para el futuro.

Refactorización

Jesús Pérez y Jorge Ferrer, de Agile-Spain nos hicieron una introducción a la refactorización, y su utilización dentro de las metodologías ágiles de desarrollo. Así expusieron las principales ventajas de esta práctica, sobre todo la de obtener un código de mayor calidad. También hablaron de los inconvenientes, de la premisa tan extendida "si funciona no lo toques", y de que es un hecho que la refactorización es una ventaja principalmente para el que tenga que mantener el código, pero el cliente puede no ver ninguna ventaja en esta práctica, ya que él solo verá la funcionalidad del sistema (que es la misma con o sin refactorización). Esta fué una de las charlas más interesantes (para mí) y de las más instructivas.

Bueno, eso es todo por hoy, en sucesivos posts iré desgranando el resto de las ponencias y mi opinión sobre las mismas.

(2003-10-28 10:20:06.0) Permalink Comentarios [0]

20031021 martes octubre 21, 2003

nos vemos mañana

... y pasado, en el I Congreso javaHispano. Allí estaré desde primera hora de la mañana hasta que me echen ;-)

El congreso promete ser todo un éxito, con unas ponencias muy interesantes (a la vez que variadas), unos ponentes de gran nivel, una organización competente, y sobre todo ambiente de buen rollo (flower power que dicen ahora en un conocido programa de televisión).

Además será la ocasión de conocer en persona a mucha gente con la que sólo he tratado a través de mail o de comentarios en blogs.

Por si no os habéis dado cuenta, soy el tio que sale en la foto de arriba a la izquierda, así que espero que si me véis podamos charlar un poco y echarnos unas risas (y unas cañas si es necesario). Así que nada, hasta mañana !!

(2003-10-21 10:37:25.0) Permalink Comentarios [2]

20031014 martes octubre 14, 2003

Java rulez !!

No, no voy a hablar de las bondades de java como lenguaje de programación, algo que además ya sabrás si estás leyendo esto (tampoco voy a soltar nada del estilo .net sucks!). Este post está motivado por la reciente aparición en The ServerSide de un artículo denominado Jess and the javax.rules api en el que se introduce, como su propio nombre indica, el api javax.rules, definido en el JSR 94 y el motor de reglas para java JESS.

El articulo, algo breve, comienza con una breve introducción sobre la programación basada en reglas, sobre el motor open source (que no libre) Jess y sobre el Java Rule Engine Api (JSR 94). Este api nos permitirá escribir aplicaciones que sean independientes del motor de reglas que utilicemos, algo parecido a lo que hace JDBC, que permite escribir aplicaciones que no dependan de la base de datos utilizada. Eso si, como se explica en el artículo, si decidimos cambiar de motor de reglas posiblemente tengamos que modificar las reglas utilizadas, las cuales son independientes a su vez de nuestra aplicación. El texo también se acompaña de unos ejemplos para trabajar con este api.

Al leer el artículo me vino a la cabeza de inmediato el post que Aitor puso en su anterior blog. Si alguien todavía no tiene claro en qué consiste un motor de reglas es el momento adecuado para echar un vistazo a la pequeña presentación que Aitor incluyó en su post. Comentar que me resultó llamativo la diferente terminología que se utiliza para referirse a este campo. Mientras en el entorno empresarial se refieren a reglas de negocio lo cierto es que estamos ante una de las formas mas potentes a la vez que sencillas de representación del conocimiento en inteligencia artificial. De hecho los sistemas expertos basados en reglas constituyeron uno de los primeros éxitos (también comerciales) de la I.A. Si a este sencillo sistema de representación le añadimos un sencillo método de inferencia como el encadenamiento de reglas (hacia adelante o hacia atrás) y un sencillo método para tratar la incertidumbre como los factores de certeza o la lógica difusa, obtenemos una poderosa herramienta para construir sistemas expertos con una pericia igual o superior a la de los expertos humanos que queremos imitar (médicos, ingenieros, economístas, etc).

Personalmente mi experiencia en el campo de las reglas se limita a pequeñas prácticas universitarias realizadas con software específico como Nexpert y GoldWorks o con lenguajes de programación como Lisp y Prolog (donde las reglas son algo intrínseco al lenguaje) pero con Java nunca he hecho nada y ahora me ha entrado el gusanillo ...

Para empezar en el blog Manageability aparece un listado de motores de reglas escritos en java donde aparecen entre otros Drools, OfBiz Rule Engine, Mandarax, etc. Un detalle importante es que casi todos los motores de reglas utilizan el lenguaje RuleML (Rule Mark-up Language) basado en XML para definir las reglas, excepto Drools, "que no lo estima prioritario". Esto parece un poco contradictario, ya que la especificación JSR-94 asume la existencia de un esfuerzo paralelo para la especificación de un lenguaje abierto de reglas basado en XML y se refiere explícitamente al proyecto RuleML y Drools en su documentación anuncian que pretenden cumplir la JSR 94 en un futuro cercano.

En fin, ya tenemos lectura y entretenimiento para los próximos días...

(2003-10-14 22:13:41.0) Permalink Comentarios [2]

20031010 viernes octubre 10, 2003

Conseguido !!

Me acabo de enterar de la última nota que me faltaba y ...

Lo he conseguido !!! Después de mucho trabajo y esfuerzo ya soy Ingeniero Técnico en Informática de Sistemas.

Los que me conocéis más de cerca sabéis que me ha costado mucho esfuerzo acabar la carrera. Desde el principio he compatibilizado los estudios con unos turnos de trabajo infernales (y con mi vida familiar) y eso ha hecho que mi progreso haya sido lento, pero seguro ;-)

Así que este post es para dar las gracias a toda la gente que me ha ayudado

GRACIAS

  1. A Verónica, por tener la paciencia para aguantarme en época de exámenes, por esas vacaciones empleadas en estudiar, esos fines de semana en casa para poder terminar alguna práctica, por entenderme y comprender el mundo en el que vivo.
  2. A mi familia y amigos, por su apoyo y comprensión ( y por esas conversaciones de los sábados a las cinco de la mañana sobre java o inteligencia artificial)
  3. A mis compañeros de trabajo en Benavente, Quirós y Madrid, por su apoyo incondicional y por facilitarme el poder asistir a tutorías y exámenes
  4. A mis compañeros de la UNED, a los cuales no conozco en persona, y sin embargo algunos nicks son como de la familia. Por hacer mas llevaderos los estudios, por ese ambiente de compañerismo creado en los foros de news y en la lista ml-uned. Sin duda lo mejor de esta Universidad
  5. A los profesores, tutores y personal administrativo de la UNED de los centros asociados en los que he estado matriculado: Zamora, Gijón y Las Rozas, por el trato recibido, siempre amable y demostrando una gran profesionalidad
  6. A toda la gente que no he citado pero que de una forma u otra ha puesto su granito de arena.

En fin, que este fin de semana además me voy a Oviedo, así que habrá que celebrarlo !! (creo que este post me va a costar dinero)

Pero no creáis que la pesadilla ha terminado !! La semana que viene me matriculo del segundo ciclo ...

(2003-10-10 19:27:35.0) Permalink Comentarios [9]

20031001 miércoles octubre 01, 2003

JMF: Obteniendo la lista de dispositivos

He recibido varios correos en relación a la aplicación captura que puse en el post "Jugando con JMF y con la webcam" de gente que me decía que el código no le funcionaba, y la razón era que había metido "a pelo" la cadena para capturar directamente desde mi webcam, concretamente esta cadena era  "vfw:FUNC@M/SPYC@M 100:0". Aunque dentro del código había comentado como hacer para averiguar en cada caso que dispositivos hay instalados, reconozco que la solución no es elegante y ya que estoy en faena, pues decidí retocar dicho código para incluir la funcionalidad de que el programa muestre los dispositivos y el usuario seleccione desde cual desea capturar imágenes (obviamente solo funcionará al escoger la cadena que representa a la webcam).

Ya he actualizado el código que hay en el post, y básicamente la novedad es la inclusión de un método llamado seleccion() que muestra un marco con un grupo de botones que representan a cada dispositivo encontrado. Una vez que el usuario selecciona un dispositivo, comienza la aplicación de captura.

Además del código para dibujar el frame, los botones, etc (aviso: swing no es mi fuerte), la parte que busca los dispositivos es ésta:

 // el metodo getDeviceList nos devolvera un vector con los dispositivos
Vector listaDispositivos = null;

//buscamos los dispositivos instalados
listaDispositivos = CaptureDeviceManager.getDeviceList();

// recorremos el vector con un iterator
Iterator it = listaDispositivos.iterator();
while (it.hasNext()){
    CaptureDeviceInfo cdi = (CaptureDeviceInfo)it.next();
    // en cdi tenemos la cadena que representa a cada dispositivo
    // añadimos un boton con cada dispositivo encontrado
    panelRB.add(new JRadioButton(cdi.getName()));
}

En el ActionListener creado para manejar los eventos producidos por los botones es donde capturo la selección del usuario:

 dispositivo = evt.getActionCommand();

Luego obtengo la información del dispositivo pasando esta cadena

 CaptureDeviceInfo dev = CaptureDeviceManager.getDevice(dispositivo);

Y continúo con los demas pasos para obtener la imagen del dispositivo de captura.

Espero que esta modificación sirva de ayuda, yo mientras tanto sigo "sumergiéndome" en JMF (poco a poco), a ver si aprendo "algo". Desde luego las posibilidades que ofrece este framework son enormes ...

(2003-10-01 19:51:04.0) Permalink Comentarios [12]


Las visitas de hoy a la página: 123