<body>

Sitios web relacionados: PingBlog | Fotos

martes, julio 08, 2008

¡KodeGeek.com está de vuelta!

De nuevo las cosas básicas funcionan. Aún me falta migrar a Bocaproyectos.com, poco a poco.


Buscar en otros sitios:

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

Etiquetas: ,

domingo, julio 06, 2008

Migrando Kodegeek.com a otro proveedor de hospedaje

A quienes leen este blog :)

La semana que viene este Blog va a estar abajo, debido a que voy a migrar a otro proveedor de servicios el cual es más barato y tiene mejores beneficios. Si bien el dicho de "más vale diablo por viejo que por diablo" también aplica el de "camarón que se duerme se lo lleva la corriente".

Así que cuando ocurra paciencia. Trataré de que sea lo más rápido posible.

José,

Buscar en otros sitios:

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

Etiquetas: , ,

sábado, junio 28, 2008

Generando gráficos de temperatura en Swing

Sentilla Swing temperature display - Time Series
Ahora usted puede saber la temperatura de la sala de mi casa :)


Bueno, seguí jugando con Sentilla Perk y Swing; Esta vez terminé de acomodar al cliente gráfico que muestra los datos en una tabla, al mismo tiempo que genera gráficos de temperatura capturados por cada sensor (código fuente aquí).

Aún tengo un par de problemas:
  • No he calibrado los sensores, uno de ellos siempre mide en el rango de las 20 grados Celcius mientras que el otro está en los 30.
  • JFreeChart me tiene confundido con la gráfica, tengo un problema extraño de refrescamiento de pantalla.
Sentilla Swing temperature display - raw data in table
No es perfecto, pero los resultados son interesantes


Sin embargo no me tomó mucho tiempo montar esto, y cada vez se pone más divertido. Voy a preguntar a otros desarrolladores más expertos en el foro de Sentilla a ver que tal :)


Buscar en otros sitios:

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

Etiquetas: , , , ,

miércoles, junio 11, 2008

Midiendo la temperatura con Sentilla: Un cliente gráfico

Bueno, no tengo mucho tiempo para escribir estos días (la semana ha estado muy movida en el área de finanzas), así que les traigo una pequeña pieza de código en la cual capturo la temperatura de los sensores de Sentilla (sí, código viejo) para ponerla de inmediato en un cliente escrito en Swing, el cual utiliza un TableModel el cual dispara las actualizaciones usando un Thread que corre en paralelo.

Sin embargo la noticia principal es que este blog se va de vacaciones, por dos meses. Así es, se me ha presentado una oportunidad para la cual tengo que enfocar todos mis esfuerzos si quiero salga bien.

Si, cero Facebook, cero Google reader con mis RSS, cero blog, cero distracciones. Como dicen por acá "do or die" :)

Así que no se desesperen, comenten mucho y escriban correos (yo les prometo responder) y sobre todo, no se preocupen por el blog, este no va a desaparecer ;)

Se despide por los momentos,

- José, "KodeGeek"

Buscar en otros sitios:

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

Etiquetas: , , ,

viernes, junio 06, 2008

Aprendiendo a programar Sockets con Java: TCP/IP Sockets in Java

El libro "TCP/IP Sockets in Java Practical Guide For Programmers", de Menneth L. Calvert y Michael J. Donahoo es compacto, con buenos ejemplos y sobre todo va al grano. Comparado con otros libros que solamente se pasean por al API de Java (y se enfocan en HTTP y RMI) este se va por lo básico y bien.

Si tiene el dinero, de verdad que vale tenerlo en la biblioteca de su casa. Muy útil.

Buscar en otros sitios:

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

Etiquetas: , , ,

Sentilla tiene soporte para OSX y Linux Ubuntu

Ya sacaron el beta. Del foro oficial de Sentilla:


NEW! Sentilla Work (Beta) for Mac and Linux

Downloads of the Beta release of Sentilla Work for both Mac OS X and Ubuntu Linux are now available for current Perk customers at the following URLs:

  • Sentilla Work (Beta) for Linux
  • Sentilla Work (Beta) for Mac OS X

Go to the URL for your OS of choice and login as

XXXXXX

and use the password

ZZZZZZZZ

After you download the release to your computer and expand the files, refer to the Release Notes included with the builds for installation instructions (page 10) and important notices. You do not need to reinstall mote firmware for this release; your current Perk firmware will work on both the Mac OS X and Linux platforms.

Note that you cannot install firmware with the Mac OS X release.
Christine at Sentilla
Los instalaré en algún momento el fin de semana, vamos a ver que tal se porta.

Buscar en otros sitios:

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

Etiquetas: , , , ,

martes, junio 03, 2008

Cerrando el RSS de Globovision, no vale la pena contentar a sus usuarios

Bueno,

Así que después de tener errores una y otra vez y de comprobar que mi aplicación aún funcionaba desde otros servidores, y que mi proveedor de hospedaje no me estaba bloqueando (después de lidiar con ellos durante 3 días ya que se me ocurrió la brillante idea de hospedar el blog con una cuenta sin acceso directo al shell) me decidí a contactarlos directamente y preguntar que pasaba:

Saludos cordiales,

Desde hace tiempo que disfruto de su sitio web y sus noticias, sin embargo noté que su sitio web no ofrece el formato RSS (el cual permite suscripción a sus titulares cada vez que hay actualización) y por ello escribí un programa el cual muestra el contenido del mismo en ese formato:

http://kodegeek.com/2009/03/rss-de-globovision-est-roto-ii-java-al.shtml

Sin embargo desde el día de ayer dicho programa está siendo bloqueado en su sitio web y me pregunto si es posible que el acceso a la página pueda ser re-establecido o si alguien puede trabajar conmigo para verificar que es lo que está mal.

Muchas gracias de antemano.

José Vicente Núñez Zuleta, Kodegeek.com
Desgraciadamente nunca obtuve respuesta. Así, ¿que puede hacerse en estos casos?

La solución técnica es fácil saltarse este tipo de restricciones (usando 'proxies' con http y re-escribiendo el 'user agent' del código cada vez que me conecto), así que ni corto ni perezoso le agregué esa funcionalidad a mi programa:

/usr/java/jdk1.5.0_01/bin/java -DproxySet=true -DproxyHost=XXX.ZZZ.YYY -DproxyPort=8080 -DUser-Agent "Kodegeek1.0/Es Hora de que escriban un RSS" -classpath /home/kodeg2/jars/RSS-1.0.jar:/home/kodeg2/jars/jdom.jar:/home/kodeg2/jars/rome-0.9.jar:. com.kodegeek.blog.rss.GlobovisionHtml2Rss /home/kodeg2/public_html/rss/globovision.rss
Además de ponerle esta nueva línea de código:
URLConnection connection = globovisionURL.openConnection();
connection.setRequestProperty("User-Agent", System.getProperty("User-Agent", USER_AGENT));
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));


Probé todo esto en 10 minutos. Básicamente ahora me conecto desde diferentes direcciones IP simulando diferentes navegadores. No es perfecto y aún puede ser bloqueado, sin embargo estos cambios van a requerir que ellos hagan más cambios, lo cual me lleva al siguiente punto:

¿No es más fácil programar un RSS en Globovisión para luego dárselo a sus usuarios que bloquear mi programa (a estas alturas sólo puedo asumir eso)?

Sin embargo no vale la pena el esfuerzo, al menos de mi parte. Es decir, si en vez de mejorar el producto lo que quieren hacer es alienar a sus usuarios entonces simplemente se leen las noticias en otro sitio y listo, sin más complicaciones (el Universal.com ofrece noticias de Venezuela con RSS desde hace años. Bueno, ellos fueron los pioneros en Venezuela así que no soprende mucho).

Así que a mis queridos lectores por ahora no pienso seguir ofreciendo el RSS de Globovision. Si piensan que mi programa es útil entonces envienles un correo electronico, pidiéndoles que desbloqueen a KodeGeek o mejor aún que implementen un RSS (¿habrán escuchado de web 2.0?)

En fin, los dejo con algunas memorias las cuales me recordaron lo divertido que fué trabajar en esto. Yo por ahora tengo otras ideas las cuales les quiero mostrar en el blog, ninguna de ellas asociadas a los riesgos de web scrapping :D

Buscar en otros sitios:

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

Etiquetas: , , , , ,

lunes, mayo 26, 2008

KodeGeek @ Sentilla Blog

Wow, the Sentilla folks noticed my video on YouTube with the mote and they wrote a nice summary about it.

I promise to write more posts in English on the near future :)

Other links of interest:

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

Etiquetas: , ,

sábado, mayo 24, 2008

Extendiendo el alcance de Sentilla: Escribiendo un cliente y servidor TCP/IP

Bueno, juego un poquito más con Sentilla. Como ustedes recordaran de un articulo anterior, yo ya tenia un pequeño hola mundo corriendo en la máquina que tiene el Gateway de Sentilla y los sensores, el principal problema es que el "Gateway" (la parte que va conectada a al puerto USB) solamente funciona bajo Windows (prometen que Linux y OSX saldran pronto), así que me senté a escribir un cliente y servidor con UDP.

El articulo completo está en el blog de la Cara Oscura del Desarollo de Software.

Espero les guste, ya les traeré otros juguetes en próximos artículos.

Buscar en otros sitios:

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

Etiquetas: , , , , ,

domingo, mayo 18, 2008

Como medir temperatura desde Java, usando Perk

Running the client app to listen to the motes from Eclipse
El código de captura es bien sencillo


¿Recuerdan como les prometí que iba a jugar con Sentilla Perk? Hoy comencé con una sencilla aplicación la cual mide la temperatura usando los dos sensores (llamados "Motes") para luego transmitirla a la laptop la cual tiene instalado el "Gateway" que habla el protocolo CC420 en el puerto USB.



Después de leer los ejemplos, la guia de programador y el API me conseguí que es muy fácil recolectar datos con los sensores. El código que hace la captura es el siguiente (este código es instalado desde la máquina que corre el servidor Perk en todos los motes):
     Sender sender = SenderDriver.create("local");
short count = 0;
TempMessage datamsg = new TempMessage();
datamsg.moteId = id;
while(true) {
count++;
leds.toggle(count);
// Play with the leds

datamsg.count = count;
datamsg.temperature = tempSensor.read();
// Read the temperature

sender.send(datamsg);
Thread.sleep(WAIT_TIME);
}

Y en la Laptop en donde estoy corriendo el servidor me limito a capturar la información enviada por los sensores para mostrarla por pantalla (código):

 
client = new HostClient();
client.connect();
Receiver receiver =
ReceiverDriver
.create(TempMessage.class);
while(true) {
receiver.setReceive().submit().block(500);
if (receiver.isDone()) {
TempMessage msg = receiver.getData();
log.log(Level.INFO, String.format(
"Mote ID: %d, Count: %d, Temperature: %fC\n",
msg.moteId,
msg.count,
msg.temperature.doubleValue(CELSIUS)));
}
}
Sencillo hasta ahora, ¿no es así?

Pienso hacer una interfaz para poder mostrar esta información en Internet, esten pendientes. Por ahora los dejo con un video en el que se ve como corre el cliente que recibe los datos de los sensores:



Buscar en otros sitios:

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

Etiquetas: , , , ,

domingo, mayo 11, 2008

Mi experiencia de JavaOne

_MG_4034.JPG
JavaOne 2008

Hola a todos los que leen este blog; Debo decir que las vacaciones que tomé con la familia en San Francisco fueron simplemente brutales y que de ellas solamente un día fué dedicado a Java One (después de todo la intención era relajarnos y conocer sitios como Napa Valley, Monterey Acuarium y por supuesto la ciudad).

Pero como este es un blog dedicado a cosas Geek solamente les hablaré de JavaOne 2008 (el cual se celebró en el Moscone Center) por los momentos, amigos y familia pueden meterse en Flickr y disfrutar del resto.

James Gosling, father of Java
Tuve la suerte de tropezarme con James Gosling mientras iba hacia el Intercontinental Hotel


OK ... JavaOne, fué una experiencia increíble. No solamente se está cara a cara con personalidades reconocidas en la industria sino que además la cantidad de información que hay que absorber es inmensa debido a lo variado de los tópicos que allí se trataron.

Community One talks at JavaOne
Desarrolladores de todo el mundo se sentaron a hackear mientras escuchaban tópicos de las principales charlas


Yo en particular me concentré en 3 presentaciones intensivas del Java University:
  • JavaFx
  • Filthy Rich Clients
  • NetBeans.

JavaOne JavaFX presentation
La presentación de JavaFX fué increiblemente práctica


JavaFX

El instructor de este curso fué nada más y nada menos que James L. Weaver, autor del libro JavaFX script y del Blog JavaFXpert.com. El curso trató de explicar lo que es JavaFX (un API encima de Java SE la cual te permite combinar Swing con Java 2D de manera fácil ya que todo es declarativo). Lo mejor es que se puede separar perfectamente la lógica de negocios mientras un grupo de diseñadores talentosos se encargan de hacer el "front end".

JavaFX es Flash en esteroides en pocas palabras y quizas la cura para Ajax :) ; Sin embargo ha tenido varias limitaciones en su adopción debido a lo ladilla que es instalar Java SE en una máquina (sobre todo si no se tienen permisos de administrador) y la falta de herramientas como Flash las cuales les permiten a programadores aficionados crear aplicaciones.

Esas limitaciones estan desapareciendo ya que las versiones que vienen de Java SE van a ser modulares (solamente van a descargar los módulos requeridos por el script JavaFX) y en JavaOne se anunciaron varias herramientas las cuales van a soportar JavaFX al estilo de Flash (todo esto para Junio de este año).

En cuanto a la presentación, debo quitarme el sobrero ante el autor del curso; No hubo ni una sola presentación en PowerPoint sino todo fue CODIGO el cual fué explicado paso por paso. También el autor tuvo la amabilidad de responder preguntas durante toda la mañana; Yo le pregunté sobre internacionalización y uso de Threads dentro de JavaFX y aunque no tenia ejemplos listos este se las ingenio para mostrarme código que resolvía los problemas, ¡todo sobre la marcha!

Si usted hace aplicaciones para Internet, aplicaciones para dispositivos mobiles entonces JavaFX es el futuro (Si, es OpenSource también).

JavaOne Filthy Rich Clients presentation
Filthy Rich Clients: Super densa e interesante

Filthy Rich Clients:

Si, el material de los mismos autores del libro. La presentación estuvo a cargo de Mick McLaughlin, un desarrollador con más de 10 años de experiencia en creación de interfaces gráficas en C++ y ahora en Java.

La única forma de describir esta presentación es decir que fué densa (mucho código, muchas explicaciones y mucho más código) e impresionante (las cosas que se pueden hacer con Java2D y Swing es impresionante). No mucha gente aguantó hasta el final pero valió la pena, esta es una de las areas que vale la pena explorar no sólo para que las aplicaciones se vean sexy sino también para que se desempeñen bien.

Netbeans presentation Java University
NetBeans fué las sorpresa de la noche

NetBeans:

Esta presentación fué de "ñapa" ya que la asistencia era libre y empezaba a las 6:00 PM. Yo me metí porque me interesaba ver que tanto había progresado NetBeans comparado con Eclipse (en mi trabajo utilizamos Eclipse ya que se desempeña muy bien). La demostración fué muy interesante y la facilidad con la que se hacen aplicaciones web y de escritorio utilizando los "wizard" es impactante. Lo otro es que NetBeans ahora corre rápido, no es la tortuga que era Forte varios años atrás.

Otras cosas interesantes de esta presentación:
  • David Botterill (el webmaster de netbeans.org) habló de las limitaciones que existen en NetBeans a la hora de escribir aplicaciones web (usando Java Faces), mientras que
  • Alguien preguntó: ¿Como hace dinero Sun dando gratis el editor? La respuesta fué "igual que hace Oracle o IBM: Dandole soporte al middleware y servidores de aplicaciones mientras los usuarios utilizan el editor".
  • Me gané el libro "100 NetBeans IDE Tips and Tricks", escrito por Ruth Kusterer, por andar de preguntón :)
De verdad valió la pena esta charla.



En resumen, hubo de todo en JavaOne este año. Tengo unas cuantas sorpresas más las cuales iré soltando en este blog (particularmente una relacionada con "Pervasive Computing"). Si tienen preguntas sobre el evento o impresiones sobre el mismo, no duden en comentar en el blog, son más que bienvenidos.

Para aquellos que esten interesados, los invito a visitar el grupo en Flickr "Venezuela OpenSource" en el cual están estas y otras fotos más sobre el evento.


Buscar en otros sitios:

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

Etiquetas: , , , , , ,

miércoles, diciembre 19, 2007

Estoy en Caracas desdel Diciembre 19

Si alguien de los que vive en Caracas y lee este blog se anima, entonces avisen y nos encontramos para tomarnos unas cervezas heladas.

Envien un correo a josevnz "arroba" kodegeek "punto" com :D o dejen un comentario con detalles de contacto en el blog (yo borraré el comentario, todos están moderados).

Saludos.

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

Etiquetas: ,

lunes, agosto 13, 2007

¿Quiere colaborar con el motor de búsqueda de KodeGeek?

Es sencillo. Solamente tiene que visitar la página personalizada del buscador y hacer click donde dice. Si su blog es de tecnología y es actualizado periódicamente, entonces con gusto lo agregaré como un contribuidor del buscador.

Blogalaxia.com:google reader, google personalized search, buscador, kodegeek
Technorati.com:google reader, google personalized search, buscador, kodegeek

Etiquetas: , , ,