Y si hablamos de...
… jBilbo rulez
Febrero 26th, 2004 - [Enlace local]
Aunque a veces lo tenemos un poco dejado (sobre todo su sitio web), aquí en Bilbao nos hemos juntado unos pocos javeros de jH y tenemos una especie de secta llamada jBilbo. Nos juntamos de vez en cuando, y charlamos de cualquier cosa.
Como tengo mi flamante 6600, aproveché para hacer unas fotos, y aquí, por ejemplo, vemos a Lasterra y a Aitor demostrando la cohesión del rioja y la caña del API de Java.
Pulsa sobre la imagen para ampliarla
O en esta vemos al mismo Lasterra y a Roberto probando la consistencia del pintxo de champiñon a la plancha y la croqueta de gambas de nuestro sitio web.
Pulsa sobre la imagen para ampliarla
Y la cosa promete seguir acalorándose, pues hemos descubierto una interesante oferta de botella de cosechero + 8 pintxos servidor + SO que ha llamado nuestro interés y estamos diispuestos a invertir en ello.
Pulsa sobre la imagen para ampliarla
» Leer más, comentarios, etc...
Tratamiento de imagenes con Java
Febrero 24th, 2004 - [Enlace local]
Estos últimos días han sido frenéticos. Después de los exámenes no pude descansar porque tuve que acabar “La Práctica”. Y lo digo así, entre comillas y en mayúsculas porque sin duda ha sido la práctica a la que más tiempo he dedicado en mis muchos (demasiados) años de estudiante. La terminé a última hora, como siempre, y aunque ahora uno se queda mucho más descansado, lo cierto es que la práctica también fue divertida y me sirvió para introducirme en un mundillo que hasta ahora desconocía: el tratamiento de imágenes con java. Así que a continuación va una lista de librerías y programas que o bien he utilizado o bien he encontrado en mi tarea de documentación para hacer el trabajo.
La primera cita es ineludiblemente con las librerías “oficiales” de java:
- Java 2D: Extiende las posibilidades de AWT y permite trabajar entre otras cosas con lineas, texto, imagenes, formas, etc, permitiendo operaciones como la rotación, el escalado, etc. Siempre, como su nombre indica, trabajando en dos dimensiones
- Java 3D:Para trabajar con objetos en tres dimensiones. No la he utilizado.
- Java Advanced Imaging (JAI): Proporciona un conjunto de interfaces para el tratamiento avanzado de imágenes, incluyendo distintas operaciones de procesamiento. Se puede decir que es la “madre del cordero” ya que el resto de librerías y aplicaciones se basan en este API. Es el que he utilizado en la práctica y su forma de trabajar es curiosa: funciona como un grafo, primero se obtienen las imagenes y despues se relacionan entre si por medio de las operaciones. Finalmente se evalúa el grafo y obtenemos la imagen resultado. Las operaciones de procesado que ofrece se dividen en varias categorías: Operadores de Punto, de Area, Geométricos, de cuantización de color, de archivo, de frecuencia, estadísticos, de extracción de bordes y misceláneos
También están las librerías que ofrecen alguna funcionalidad extra o los programas de procesado de imágenes hechos en java (utilizando en su mayoría JAI):
- Java Vision Toolkit: es un proyecto muy interesante pero al que he encontrado alguna deficiencia. Algunas de las operaciones que efectuaba tardaban demasiado tiempo en comparación con otros programas, lo sufiente como para pensar que la programación de algunas partes no es correcta. Ofrece además de una librería para desarrollar, una aplicación gráfica destinada a usuarios finales.
- ImageJ: una de las grandes sorpresas. Un programa para el tratamiento de imágenes que ofrece una buena velocidad (presumen de ser el programa de procesado de imágenes hecho en java “puro” más rapido) y un buen número de operaciones, que además puede ser ampliado mediante plug-ins desarrollados por terceros. Y parece que este programa ha tenido éxito porque el número de plug-ins disponibles es considerable (aquí hay un buen puñado). Este programa lo utilicé debido a su rapidez para ir viendo sobre la marcha como iban a quedar algunas operaciones y para situar sobre la imagen determinados pixeles según sus coordenadas.
- Java Imaging and Graphics Library (JIGL): es una librería que pretende combinar la potencia necesaria para la investigación, con la simplicidad necesaria para la educación.
- ImageApp: es una aplicación GUI que permite operar de la misma manera que JAI, es decir, construyendo un grafo de imágenes/operaciones, pero de manera gráfica. Es un proyecto a tener en cuenta pero cuya pega es que de momento no implementa demasiadas operaciones, aunque entre sus planes está incluir todas las operaciones definidas en JAI.
- NeatVision: otra de las grandes sorpresas que he encontrado. Se trata de un software de gran calidad para el procesado de imágenes, destinado sobre todo al usuario final. Opera de la misma manera que el anterior, es decir, el usuario va creando gráficamente en su entorno de trabajo un grafo que representa las operaciones que se van a efectuar con las imágenes. La diferencia es que NeatVision sí implementa un gran número de operaciones. Yo lo utilicé de la misma manera que ImageJ pero cuando tenía que probar una combinación de varias operaciones, ya que el método de arrastrar/soltar operaciones, y conectar estas operaciones entre sí me permitió realizar pruebas con combinaciones muy rápidamente.
Y hasta aquí mi pequeño recorrido por el mundo del procesado de imágenes con Java, aunque se me ha olvidado decir que todo el software anterior es libre (bueno, todo menos las librerias de Sun, ejem, ejem) y por eso es de destacar mas aún la gran calidad de productos como ImageJ y NeatVision. Espero que le sirva a alguien.
» Leer más, comentarios, etc...
Y si hablamos de...
… portales
Febrero 23rd, 2004 - [Enlace local]
Alguno ya saben que, una de las cosas que intentó ser Cáñamo en un principio, es una implementación del JSR168, el famoso API de portlets. Bueno, del 168 o de lo que se pensaba que iba a ser el 168, porque allá por Julio 2002 no se habían tomado aún demasiadas decisiones.
También tengo que reconocer que estuve considerando basar jH en Jetspeed, pero el pésimo estado que presentaba por aquel entonces, y su escasa modularidad, me hicieron dejarlo de lado y tirar por otro camino.
Pues bien, esa modularidad vuelve y vuelve de nuevo. Entiendo la partes buenas que tiene el JSR168 (portabilidad, interoperabilidad, etc.), no soy tonto, pero realmente, para hacer un sitio completo, y no un mero portal de consumo pasivo de noticias, no lo acabo de coger. Todo en un fichero de configuración de miles de líneas, falta de temas tan interesantes como listeners, clases que tienden a realizar TODO. Hay ciertas manias, promulgadas además por ciertas empresas, que vamos, no acabo de entender.
» Leer más, comentarios, etc...
código escrito
Longitudes de campo adecuadas
Febrero 15th, 2004 - [Enlace local]
Al crear una tabla nueva para un programa que maneja bases de datos, hay que tomar una decisión en mi opinión bastante importante y a la que no se le suele dedicar la suficiente atención: ¿cuál es la longitud adecuada...