RowSorter, "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException

Les tengo una pregunta a todos los gurus de Java: ¿Cual es el problema con JTable y el uso de RowSorter?

Más detalles aquí, gracias de antemano a quien tenga la respuesta (yo corpartire mi descubrimientos).

Buscar en otros sitios:

Blogalaxia:, ,
Technorati:, ,
To2blogs:, ,
Del.icio.us:, ,

Ardunio + España = Squidbee

Bueno, ¿qué más se puede pedir cuando se hace una combinación de hardware y software abierto, con sabor Español?

Hola,
he visto en tu blog kodegeek que te interesan las redes sensoriales y
por este post
http://kodegeek.com/2008/05/ms-java-y-hardware-arduino.shtml, que
buscabas alternativas open source. Me gustaría que le echases un ojo a
SquidBee (www.squidbee.org) el cual es un proyecto de software y
hardware libre basado en arduino que hemos hecho. Fue pensado con fines
docentes e investigadores, lo cual se nota (no sólo en su bajo precio)
sino en las listas de correo squidbee_news y squidbee_hacking, el propio
wiki de squidbee en contínuo crecimiento (el último tutorial muestra
cómo poder hacer desde 0 tu propio SquidBee:
http://www.libelium.com/squidbee/index.php?title=Projects. En este link,
existen otros tutoriales relacionados con el mote:
http://www.sensor-networks.org.

Por cierto, el diseño que aparece en Making Things Talk de ArduinoXbee
es nuestro ;-).

Espero que la información te sirva. Un saludo y enhorabuena por el blog,


Alicia Asín Pérez
Tlf: +34 976 54 74 92
http://www.libelium.com

Vaya, realmente en Europa y Norteamerica el Arduino está volando alto. Pero y para los que vivimos fuera de Europa, ¿como hacemos?:

Nosotros estamos en España y los kits pueden adquirirse en http://www.libelium.com/tienda/catalog/index.php?cPath=22. La opción más económica es comprar un SquidBee from scratch y soldárselo uno mismo. Hay un tutorial de cómo hacer esto en www.sensor-networks.org. Por otra parte, hay una opción de envío muy económica por correo postal, tarda un poquito más en llegar pero es barato.

Así que la imaginación es el límite. Por cierto, en al página web tienen un modelo para ponerle un GPS, la cabeza me quedó dando vueltas de sólo pensar las cosas que se pueden hacer 😀

Buscar en otros sitios:

Blogalaxia:, , ,
Technorati:, , ,
To2blogs:, , ,
Del.icio.us:, , ,

Trucos UNIX: Depurando protocolos a mano: ¿Qué usar?

Hace ya un mes comencé a trabajar en un proyecto nuevo para la compañía en la cual trabajo, el cual consiste en crear una aplicación en donde los analistas de mercado reciben transacciones de los corredores de bolsa. Dado que el número de nombres que la compañía maneja en esta categoría ha crecido de manera substancial, hay que automatizar el proceso.

La bolsa de valores con la cual hacemos las transacciones tiene una especificación del protocolo, escrita originalmente en C, usando “Structs” y sockets con UDP/TCP. La aplicación requiere (por razones demasiados numerosas para explicar aquí) que el código sea escrito en Java.

¿Todo bien verdad? Bueno, lo más difícil fué implementar todo el protocolo (pese a que nosotros requeríamos solamente una pequeña parte). Además como ustedes se imaginan, los bancos de inversiones están fortificados detrás de varios niveles de protección como “Firewalls”, “IDS” y demás y la conectividad entre nuestro entorno de desarrollo y en nuestro caso la bolsa de valores no fué bien configurada.

Para rematar, no tenia manera de usar tcpdump en la máquina en donde corria el servidor (convertirse en root usando SUDO es un proceso laaargo y burocrático) así que mis opciones eran esperar ayuda del grupo de redes, o mientras tanto depurar yo mi protocolo.

Las especificaciones del protocolo requieren que inicialmente nos conectemos usando UDP, para luego usar TCP, lo cual hace inefectivo el truco de conectarse al puerto de la máquina usando telnet (sólo trabaja con TCP el cual es orientado a conexión) . Otro detalle es que el saludo inicial es una conexión pasiva (la bolsa de valores enviaba un broadcast cada 30 segundos).

¿Qué hacer?

Bueno, Linux de nuevo salva el día con su ejercito de herramientas gratuitas. En eso caso utilicé NetCat (nc) y dado que el protocolo era ASCII pude ver con claridad que al menos ellos estaban enviando sus paquetes y que nosotros estabamos filtrando información. En mi caso escribí algo como esto:

auyan:~ josevnz$ nc -n -v -v -v -u -p 12345 -s 127.0.0.1 -l
listening on [127.0.0.1] 12345 …

¡Super fácil!. Con esta información me ahorré tiempo y resolvimos el problema en cuestión de minutos en vez de horas…

Así que ya sabe, la próxima vez que necesite enviar o recibir paquetes arbitrarios en TCP o UDP dele un vistazo a NetCat 🙂

Buscar en otros sitios:

Blogalaxia:, , , ,
Technorati:, , , ,
To2blogs:, , , ,
Del.icio.us:, , , ,

¡Resulta que ahora Java es socialista!

Bueno, hay ciertos temas que uno da por acabados (si, el enlace a mi articulo es del 2005), sobre todo cuando hay evidencias de sobra que indican que debería ser así, y sin embargo estos vuelven a aparecer. En este caso es el empeño de Satanizar al lenguaje (el cual ahora es Open Source y cuenta con una distribución completamente funcional en Fedora Core, llamada IceTea). El anuncio me llegó por el grupo de Yahoo SoftwareVen:

Como parte del trabajo de estudios de las tecnologías libres el Centro
Nacional de Desarrollo e Investigación en Tecnologías Libres –
CENDITEL [0] ha publicado un documento titulado “Pertinencia de la
tecnología Java por y para el Estado Venezolano” [1].

El mismo esta a disposición para el análisis y discusión sobre la
temática, sean bienvenidos a participar y compartir ideas en el foro
de discusión de CENDITEL [2] en la temática destinada para esto
llamada “Publicado documento tecnología Java” [3].

[0] http://www.cenditel.gob.ve/FundacionCenditel
[1] http://www.cenditel.gob.ve/files/u1/PertinenciaJavaVenezuela.pdf
[2] http://www.cenditel.gob.ve/foros/
[3] http://www.cenditel.gob.ve/foros/viewtopic.php?p=28#28

Atentamente

T.S.U. Leonardo Caballero
E-Mail: leonardocaballero at gmail.com, lcaballero at linuxmail.org

Debo comenzar diciendo que me fastidia de sobre manera el fanatismo de los programadores. No sólo Leonardo Caballero se empeña en pintar a Sun como la corporación que se va a encarga de quitarle a Venezuela su autonomía tecnológica sino que además ignora (a estas alturas) la existencia de implementaciones completamente funcionales como IceTea y Classpath en Linux.

Este trabajo insiste en mezclar nacionalismo, tendencias politicias como el socialismo pero sin llegar a proponer alternativas ya que sólo se limita a nombrar ciertos proyectos de software libre como Linux, Ruby, Subversion entre otros. Incluso se atreve a catalogar al lenguaje como mediocre en diseño:

El tema se planteó recientemente en la lista de discusión de SOLVE, y allí José Luis Rey (2008) argumentó que el lenguaje de programación Java “es un lenguaje
mediocre, que no permite implementar técnicas de programación, que todo programador debería conocer y dominar. Lo peor es que ahora estoy seguro de que eso es así por imposición”. Señala que aunque el diseñador de Scheme fue contratado en la concepción de Java, en el resultado final se eliminaron todas las capacidades poco convencionales como la herencia múltiple, para evitar que el lenguaje fuera demasiado avanzado. Así, Java la mediocridad de java no es casual sino intencionada5. Además, el lenguaje Java cuenta con un sistema de tipo de datos estático y simplista que no permite el manejo de características más
avanzadas como metaprogramación o programación funcional.

El pasaje está genial. Ignora completamente el hecho de que Java fué diseñado para simplificar el desarrollo de aplicaciones y que es una mejora sustancial sobre su predecesor, C++. Por ejemplo:

  • Java es un lenguaje mediocre: Seguro, soporte de un API completo como Swing para el desarrollo de interfaces gráficas (más completo que TK y más fácil de usar que Motiff), soporte de Threads, Networking y Garbage Collection dentro del mismo lenguaje. Ah, y que puede correr en cualquier dispositivo ya que todos los sistemas operativos importantes tienen una máquina virtual de Java. Si se refiere a que ciertas caracteristicas sintacticas del lenguaje no están allí (como Schema) es un asunto diferente. ¿Porqué caer en los excesos? La comparación no es objetiva, y eso es malo.
  • Datos de tipo estático: Creo que estos dos han pasado demasiado tiempo escribiendo scripts. Yo en particular me siento comodo sabiendo de antemano de que tipo de datos son mis variables y que el compilador me pueda decir que hay asignaciones equivocadas. Si quiero utilizar scripts con su sintaxis relajada, entonces tengo BeanShell (Java pero con sintaxis más relajada, sin declaración de variables), JRuby, Jython, etc. Si, mis “scripting languajes” corriendo sobre una máquina virtual conocida y probada 🙂
  • Herencia múltiple: ¿Usted realmente la necesita? Con un diseño cuidadoso y el uso de Interfaces se consigue lo mismo. Herencia múltiple no es mala (de hecho es muy útil) pero cuando se usa hay que ser cuidadoso, sabiendo que es lo que se quiere al final. También ignora el hecho de que utilizar herencia todo el tiempo para extender código es malo y que existen otros patrones de diseño que favorecen más la estabilidad del código en contra de cambios de la clase padre como la agregación (por ejemplo, el patrón de diseño Decorator).
  • No soporta programación funcional: Java no es un lenguaje de programación funcional, sin embargo hay implementaciones de lenguajes funcionales que corren sobre la máquina virtual de Java como Scala. En particular es irritante como los detractores de Java se empeñan es decir que “one size fits all” (un sólo tamaño para todo) cuando deberian ser más pragmaticos diciendo que hay herramientas para cada problema.

Si usted alguna vez ha desarrollado código del lado del servidor o cliente usando Java, se encontrará agradecido que el lenguaje tenga un manejo elegante de Threads, Networking (con varios protocolos), y sobre todo el manejo de memoria automático usando Garbage Collection.

Todo el mundo sabe que Java no es perfecto y la escogencia del lenguaje a la hora de resolver un problema sigue dependiendo de la tarea, presupuesto y nivel de experticia de quienes van a desarrollar la solución. También en las Universidades deberian seguirse enseñando no uno sino varios lenguajes de programación, entre ellos C y C++ (pueden decir lo que quieran de esos dos lenguajes pero Linux, manejadores de dispositivos y muchas otras cosas aún están escritas en esos lenguajes).

¿Pero que tiene que ver eso con la “muestra independencia tecnológica”? Si usted lee con cuidado el articulo, se dará cuenta que el escrito es un arroz con mango de tecnología, sazonada con politica. Nada le prohibe a Venezuela desarrollar su propio lenguaje de programación, e incluso su propia implementación del lenguaje Java, como hizo la gente de Kafee:

Kaffe is a clean room implementation of the Java virtual machine, plus the associated class libraries needed to provide a Java runtime environment. The Kaffe virtual machine is free software, licensed under the terms of the GNU General Public License.

El nuevo OpenJDK o Kafee no cuentan con ninguna restricción de exportación, ya que están protegidos por la licencia GPL. Entonces, ¿que es lo que detiene a Venezuela en el desarrollo de una máquina virtual o lenguaje de programación?

Esa es la pregunta incomoda que ninguna de estas personas quiere responder.

No importa si usted decide no utilizar Java. Pero al menos hagalo por las razones correctas, entre ellas porque no es la mejor herramienta para el problema que quiere resolver, no porque se lo dijeron en la escuela y usted se tomó el “cool aid” sin pensarlo dos veces.

Buscar en otros sitios:

Blogalaxia:, , , , ,
Technorati:, , , , ,
To2blogs:, , , , ,
Del.icio.us:, , , , ,

Pervasive computing with Sentilla Perk

Perk from Sentilla
No es Sun Spot, es Perk Sentilla (mire lo pequeño que es comparado con mi pluma)

Para quienes visitan este blog, quizas recuerden que yo tenia tiempo salivando por un Sun Spot; El problema: el precio, $700+ por el pecho.

No tengo tanto dinero como para gastarlo en uno de estos juguetes, sin embargo la gente de Sentilla sacó una versión un poco más limitada (pero con interés comercial) llamada Perk, la cual costo solamente $199 en JavaOne.

Asi que si, decidí jugar un poco con Perk 🙂

Mi única queja personal del Perk es que el software de desarrollo solamente se instala bajo Windows y solamente soportan Eclipse (no tan malo, ya que yo lo se usar bien).

Aún no he empezado, pero ya corrí por algunos de los ejemplos y tengo varias ideas de lo que quiero hacer.

¡Dominación mundial! 🙂

Buscar en otros sitios:

Blogalaxia:, , ,
Technorati:, , ,
To2blogs:, , ,
Del.icio.us:, , ,

El lunes empieza JavaOne

Nos vemos en JavaOne. Una vez que me registre voy a estar por acá:

-Java University Course Location (9:00 am to 9:00 pm):
InterContinental Hotel
888 Howard Street (between 4th and 5th Streets)
San Francisco, CA 94103

Si por casualidad alguno de ustedes lee estoy y va a estar cerca, quizas nos podamos encontrar. No creo que me ponga a reportar nada del evento de una vez (después de todo también son mis vacaciones) pero si colocaré fotos en Flickr y algunas notas sobre el evento.

Buscar en otros sitios:

Blogalaxia:, , ,
Technorati:, , ,
To2blogs:, , ,
Del.icio.us:, , ,

Voy para JavaOne

Si, la familia y yo nos vamos de vacaciones por una semana. De esa semana me estoy tomando un día completo para asistir a la mega conferencia JavaOne, este año a celebrarse en San Francisco, California.

JavaOne, señores, una de las conferencias más esperadas de este año. Sólo se me ocurre la de Apple en magnitud (también en San Francisco pero en el mes de Junio).

Lo siento, aún RailsConf no genera tanto ruido como JavaOne 🙂

Voy en plan de estudiante, voy a aprender. Si bien no puedo darme el lujo de asistir toda la semana al menos pienso ir el Lunes para escuchar los anuncios de nuevas cosas además de recibir entrenamiento en JavaFX y Filthy Rich Clients in Swing

H-A-R-D-C-O-R-E!

Como dije antes no voy en calidad de reportero / blogger. No me gusta, no tengo tiempo, voy en plan de relajarme. No voy a tener tiempo para hacer networking (al menos que haga milagros en un sólo día) pero en cambio voy a pasar el resto del tiempo con mi familia, haciendo un millón de cosas.

Ahh San Francisco, que mejor manera de conocerte 🙂


Buscar en otros sitios:

Blogalaxia:, ,
Technorati:, ,
To2blogs:, ,
Del.icio.us:, ,

SUN adquiere a MySQL for 1 billon de Dolares

Sun metió de meter tremendo batazo al anunciar que van a adquirir a MySQL por 1 billonmillardo de dolares. No solamente le da una presencia a Sun en el mundo de las bases de datos increible, sino que ademas piense en las posibilidades de integración con los siguientes productos:

No hace falta comentar mucho, excepto que es la movida del año. Vamos a ver que tanto sube el stock de SUN después de este anuncio.

NOTA: Gracias a Juan quien notó el pelón de escala.

Blogalaxia:, ,
Technorati:, ,
To2blogs:, ,
Del.icio.us:, ,

Los 4 fantasticos: Isla de la Muerte

fantastic 4 isla de la muerte
La Isla de la muerte y los 4 fantasticos

No es noticia nueva, pero desde finales de Diciembre pasado estaba por comprarme el último comic de los 4 Fantasticos: Isla de la Muerte.

¿Qué tiene de especial? Bueno, en particular “The Thing” (la Mole, Ben) decide tomarse unas vacaciones en la isla de Puerto Rico y es allí en donde comienza la lucha con el famoso Chupacabras. Pero el cuento no queda allí, ya que Marvel (además de darle al lector un recorrido turistico por la isla en esta edición) decidió sacar 2 tipos de tiraje, uno en Ingles (como siempre) y el otro completamente en Español.

fantastic 4 isla de la muerte
Llamame pa’trás (call me back): Edición Boricua

Por lo visto los lectores hispanos lectores de comics representan una demografía importante en los Estados Unidos, ya que no se trata de una edición internacional sino domestica la cual fué lanzada en varios idiomas.

win dancer super heroe venezolana
Sofia (Wind Dancer), super heroe Venezolana

¿y que hay con los super heroes latinos en el universo de Marvel? Bueno, Venezuela tiene su representación con Wind Dancer (Sofia), quien en su última aparición (ya hace varios meses) resultó gravemente herida mientras ayudaba a sus compañeros super heroes a pelear contra el Zodiaco sin sus poderes (esto producto de los eventos ocurridos en House Of M, con la Bruja Escarlata).

sofia herida en the Initiative
No todo sale bien para Sofia en su última aventura

Todo un fume 🙂

Así que bueno, tenemos Chupacabras y Merengue por un buen rato, con sabor a super heroe. Y eso suena bien

Blogalaxia:, , , , , , ,
Technorati:, , , , , , ,
To2blogs:, , , , , , ,
Del.icio.us:, , , , , , ,

Conversion de Bs. a Bs.F. en Java (II)

BsF
No resisti la tentación de envenenar el programita (n pasaban nada bueno en televisión 🙂 )

Ya mis vacaciones llegaron a su fin; Voy a emplear el último dia en algo que no tenga que ver con la computadora (es increible como pasan de rápido 2 semanas).

En fin, de vuelta a la realidad 🙂

Me puse a jugar un poco con el pedacito de código que convierte de Bs. a Bs.F. desde Java y lo converti en un programa con interfaz gráfica el cual te puedes correr desde tu navegador, o si lo prefieres desde la linea de comandos así:

javaws http://kodegeek.com/java/Bsf.jnlp

Me di cuenta de un error cuando procesas números en formato distinto al idioma Ingles el cual solucione usando DecimalFormat el cual si soporta Locale. También removi un cambio global de Locale el cual no era necesario.

Como siempre el código está disponible en Source Forge, se aceptan sugerencias para mejorarlo.

Actualización: Llegamos al apartamento a las 2:00 AM, de vuelta a Norwalk 🙂

Blogalaxia:, , ,
Technorati:, , ,
To2blogs:, , ,
Del.icio.us:, , ,