sábado, diciembre 06, 2008

Reinicio

Bueno vamos a darle un poco de vida otra vez a este blog y es que como sabran ahora que me han podido costear un smartphone en la empresa pues puedo aprovecharlo al maximo jeje aunque no muy provechosamente bueno los dejo este solo es un post de prueba para ver como se comporta desde la funcion mail to blogger

sábado, junio 21, 2008

Hoy

Me he puezto a penzar que ha zido de mi vida eztoz ultimoz añoz aun no cumplo loz 21 y ya voy a tener auto propio.. viejito.. pero auto propio... pero realmente ziempre me he zentido la zombra de alguien... hay mucha maz gente... que podria derrotarme tan facil... o al menoz ezo creo...

Conoci hace un tiempo a un tal Plata... ez una perzona muy brillante... lo reconozco.. dejo la ezcuela para continuar zu educacion... y ahora zabe maz que algunoz que ze dicen ingenieroz... jaja pero no tiene titulo ni nada por el eztilo... contraztante... pero ez cierto... ziempre me he zentido que eztoy un pazo antez de el... o al menoz ezo creia..

El Rayaz (mi jefe) dice.. que zi noz la pazamoz viendo a la competencia... vamoz a ver mil razonez por laz cualez rendirnoz... pero zi noz concentramoz en nozotroz mizmoz.. podremoz zalir adelante... e incluzo zobrepazar a la competencia... tal vez Plata tenga 3 añoz maz de experiencia que yo... pero en ezte año que hui de la ezcuela... he dezarrollado ziztemaz de mizion critica... conectado con laz principalez telefonicaz del paiz... y el legendario ziztema interbancario.. no ze que haya hecho el... quiza cozaz mejore.. o peorez.. pero yo ziento que voy por buen camino... realmente mi meta ya no ez alcanzarlo... a eze tipo de perzonaz puedez aprenderle mucho... pero... eze no ez el chizte.. el conocimiento aprendido por uno mizmo... vale mucho maz... que el conocimiento obtenido por un maeztro... yo no tengo maeztroz... no digo que no haga falta un mentor... hace falta... ziempre lo hara... pero prefiero conzeguir mi propio eztilo y no la copia de alguien maz...

martes, junio 03, 2008

Los errores raros de Hibernate


Hace algun tiempo.... cuando mi disco duro era joven.. y sus dominios no llegaban a cubrir mas de 10GB... descubri Hibernate... gracias al maestro Suly... les dire... que es uno de los mas grandes guerreros que haya visto...

Hibernate era un ataque que hacia que cualquier hechizo se volviera persistente... es decir.. no teniamos que conjurarlo una y otra vez... con que una sola vez lo hicieramos bastaba...

------------------------------------------------------------------

Jaja hace mucho que no escribia algo asi...

Bueno Hibernate tiene varios errores medio raros... uno de los cuales es que puede faltar uno o varios jar.. hay que estar atentos a los que nos dicen los Logs... un

  1. Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory


puede significar que nos falta el archivo log4j.jar que viene dentro de las librerias de hibernate... o puede hacer algo mas complejo.. en su caso nos falta las lineas

  1. org.slf4j.LoggerFactory importación;
  2. import org.slf4j.Logger; org.slf4j.Logger importación;
  3. ..
  4. private Logger log = LoggerFactory. getLogger (Application. class ); privado Logger log = LoggerFactory. getLogger (Application. clase);
  5. ..

En donde invocan al persistenceManager, a parte de esto.... podemos encontrar el timeout de MySQL... que cuando la conexion persistente esta inactiva por mas de 8 horas MySQL cierra la conexion.... para eso en la entrada anterior en el area de cofiguracion de hibernate incluimos las lineas de un tal c3po.... que nos ayuda a corregir este problema...

Espero que esto te haya ayudado... y si lo resolviste de otra manera..o aun no puedes.. me gustaria.. que me lo comentaras... adios

miércoles, mayo 28, 2008

Error en Netbeans con WebServices



Los Web Services son una herramienta fundamental en el desarrollo de aplicaciones SOA, pues le da a terceros la posibilidad de llamar a alguna parte de nuestro sistema.

En Netbeans es facil crear un nuevo WebService... sin embargo, a raiz de la actualizacion de un modulo... no estan funcionando bien, al menos a mi, no me generaba el archivo jaxws-build.xml ni me lo incluia en el build.xml.

Bueno lo que tuve que hacer fue escribir estos archivos a mano.... pero como la neta no se nada de ANT... ( debo de empezar a meterme a Eclipse..) pues me base en otros archivos que ya tenia... asi que su archivo debe quedar de la siguiente manera

jaxws-build.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns:xalan="http://xml.apache.org/xslt"
  3. xmlns:webproject2="http://www.netbeans.org/ns/web-project/2"
  4. xmlns:jaxws="http://www.netbeans.org/ns/jax-ws/1">
  5. <target name="wsgen-init" depends="init, -do-compile">
  6. <mkdir dir="${build.generated.dir}/wsgen/service"/>
  7. <mkdir dir="${build.generated.dir}/wsgen/service/resources/"/>
  8. <mkdir dir="${build.generated.dir}/wsgen/binaries"/>
  9. <mkdir dir="${build.classes.dir}"/>
  10. <taskdef name="wsgen" classname="com.sun.tools.ws.ant.WsGen">
  11. <classpath
  12. path="${java.home}/../lib/tools.jar:${build.classes.dir}:${j2ee.platform.wsgen.classpath}:${javac.classpath}"/>
  13. </taskdef>
  14. </target>
  15. <target name="wsgen-nombreDelWebService" depends="wsgen-init">
  16. <wsgen fork="true" xendorsed="true"
  17. sourcedestdir="${build.generated.dir}/wsgen/service"
  18. resourcedestdir="${build.generated.dir}/wsgen/service/resources/"
  19. destdir="${build.generated.dir}/wsgen/binaries" keep="true" genwsdl="true"
  20. sei="com.core.web">
  21. <classpath
  22. path="${java.home}/../lib/tools.jar:${build.classes.dir}:${j2ee.platform.wsgen.classpath}:${javac.classpath}"/>
  23. <jvmarg value="-Djava.endorsed.dirs=${jaxws.endorsed.dir}"/>
  24. </wsgen>
  25. </target>
  26. <target name="wsgen-service-compile" depends="wsgen-nombreDelWebService">
  27. <webproject2:javac srcdir="${build.generated.dir}/wsgen/service"
  28. classpath="${j2ee.platform.wsimport.classpath}:${javac.classpath}"
  29. destdir="${build.classes.dir}"/>
  30. </target>
  31. </project>

Luego tenemos que poner este otro codigo en el archivo build.xml, escribo las lineas de arriba y de abajo como referencia, va casi cuando inicia el documento

  1. <project ...
  2. <import file="jaxws-build.xml"/>
  3. <import file="ant-deploy.xml"/>


Esto va en compilation section, en mi caso solo decia -post-compile y no dependia de wsgen-service-compile

  1. <target depends="wsgen-service-compile" name="-post-compile">
  2. <!-- Empty placeholder for easier customization. -->
  3. <!-- You can override this target in the ../build.xml file. -->
  4. </target>


Espero que le haya servido a alguien, por que realmente esto me atraso unos dias...

lunes, mayo 19, 2008

JSF + Hibernate + JPA + Netbeans + ZK (Configuracion)

Bueno ya despues de mucho... publicare la primera parte completa del minitutorial de como integrar todas las tecnologias antes mencionadas.... primero vamos a ver la configuracion.... y despues explicare el funcionamiento de cada uno...

Bueno primero crearemos las librerias de NetBeans nos vamos a Tools-> Libraries y seleccionamos New, escribimos Hibernate JPA, y seleccionamos Add JAR/Folder, ahora buscamos todos los JAR ok? dije JAR!!!! no folders... que les pedi en la parte pasada del tutorial... ahora bien... hacemos lo mismo para ZK y ZK JSF, solo queremos los JAR que estan dentro de la carpeta libs para ZK y ZK JSF.

Bueno.. creemos una base de datos sencilla con dos tablas... tiene MySQL cierto??, si no busquen como instalarlo para su propia distribucion de linux... por que tienen linux verdad??? jejeje bueno.. como sea... instalen MySQL... para este tutorial... no entrare en detalles de como lo instalamos... y asumire que son expertos en la materia... despues posteare algo sobre MySQL...

entramos a MySQL, y crearemos una pequeña base de datos de escuelas...

Para crear una base de datos
CREATE DATABASE escuela;

Para crear las tablas
CREATE TABLE instituto (id_inst int primary key auto_increment, nombre varchar(20), direccion varchar(20)) ENGINE=InnoDB;
CREATE TABLE profesor (id_prof int primary key auto_increment, nombre varchar(20),id_inst int) ENGINE=InnoDB;

Para crear la relacion
Todo es una sola linea..
ALTER TABLE profesor
ADD CONSTRAINT profesor_instituto
FOREIGN KEY (id_inst)
REFERENCES instituto (id_inst)
ON DELETE RESTRICT
ON UPDATE CASCADE;


Ahora nos vamos a File->New Proyect y seleccionamos Web | Web Application, le ponemos escuela al proyecto, seleccionamos tomcat como servidor y seleccionamos JavaServer Faces.




En source proyects creamos un nuevo paquete y le llamamos DataBase, hacemos clic derecho seleccionamos New y despues DataBase, despues seleccionamos New Other para elegir Persistence | Entity Classes from Database, en DataSource seleccionamos New DataSource, ahi seleccionamos DataBase Connection-> new database connection, nos aparecera un dialogo para conectarnos con MySQL seleccionamos MySQL connector, el driver nos vale...pero en DataBase URL escribimos jdbc:mysql://127.0.0.1/escuela, pongan 127.0.0.1 por que luego en unas distros no funciona el localhost por que traen una configuracion rara... y no me voy a poner a decir como quitarselas ahorita.. jeje







Debe aparecernos que la conexion fue existosa.. si no... algo escribiste mal.. o no tienes levantado mysql... /etc/init.d/mysql start lo levanta.. :D

Seleccionamos las dos clases que antes hemos creado... Instituto aparecera de manera rara por que fue incluida ya que hay una clave foranea hacia ella.

Ahora hay que crear una unidad persistente, seleccionamos CREATE PERSISTENCE UNIT, nos creare una unidad persistente solo falta seleccionar Hibernate como nuestro manejador,


De todos modos les dejo mi persistence.xml


<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

<persistence-unit name="tiempoairePU" type="RESOURCE_LOCAL">

<provider>org.hibernate.ejb.HibernatePersistence</provider>

<properties>

<property name="hibernate.connection.username" value="usuario">

<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver">

<property name="hibernate.connection.password" value="password">

<property name="hibernate.connection.url" value="jdbc:mysql://127.0.0.1/escuela">

<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect">

<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider">

<property name="hibernate.c3p0.acquire_increment" value="3">

<property name="hibernate.c3p0.idle_test_period" value="14400">

<property name="hibernate.c3p0.timeout" value="25200">

<property name="hibernate.c3p0.max_size" value="15">

<property name="hibernate.c3p0.min_size" value="3">

<property name="hibernate.c3p0.max_statements" value="0">

<property name="hibernate.c3p0.preferredTestQuery" value="select 1;">

</property>

</property>

</property>



Automaticamente tenemos nuestras clases mapeadas... si nos marca error tenemos que entrar a las propiedades del proyecto, clic derecho Properties, Libraries Add Library y seleccionamos HibernateJPA la libreria que antes creamos, junto con ZK y ZK JSF.

AUTONUMERICO HIBERNATE

Aqui hay un error con la generacion de NetBeans puesto que como usamos autonumerico... necesitamos agregar unas lineas para que nos respeten el autonumerico, si todo salio bien deberia estar en Instituto .java despues de la linea @Id debemos escribir @GeneratedValue, y debemos importar javax.persistence.GeneratedValue; en Instituo y Profesor, ahora no tenemos problemas...

Bien ahora configuramos NetBeans para usar ZK en Configuration Files nos vamos a Web.xml y escrimos estas lineas en el apartado donde veas los listener




<listener>

<description>Para limpiar la basura de las sesiones</description>

<display-name>ZK Session Cleaner</display-name>

<listener-class>org.zkoss.zk.ui.http.HttpSessionListener</listener-class></listener>



Y en donde veas las tags de servlet escribe estas.. (de preferencia antes de las de JSF)


<servlet>

<description>ZK cargador para pagimas ZUML</description>

<servlet-name>zkLoader</servlet-name>

<servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class>

<init-param>

<param-name>update-uri</param-name>

<param-value>/zkau</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet>

<description>Engine para la actualizacion asincrona</description>

<servlet-name>auEngine</servlet-name>

<servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>zkLoader</servlet-name>

<url-pattern>*.zul</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>zkLoader</servlet-name>

<url-pattern>*.zhtml</url-pattern>

</servlet-mapping>


Ahora ya estamos listos para usar ZK, tenemos que entrar en nuestro archivo WelcomeJSF.jsp

Agregamos nuestra TAG


<%@taglib prefix="z" uri="http://www.zkoss.org/jsf/zul" %>


esto nos permite usar ZK en JSF... y va donde van todas las demas tags casi hasta el principio

<z:page>

<z:window title="Hola" border="normal">

Hola

</z:window>

</z:page>




Bueno ya esta funcionando despues veremos acerca del binding

viernes, mayo 16, 2008

Hola

Bueno pues ya le voy a dedica un poco mas de tiempo a esto... pues me he topado con muchos problemas a la hora de aprender.. no hay muchos tutoriales buenos... y menos en español... a eso sumenle... que luego ya no los vuelvo a encontrar y no me acuerdo.. asi que hare una referencia rapida de lo que vaya encontrando.. ok?... por cierto... Netbeans y ZK... hacen una maravilla.. jeje.. nada mas que los dos son demasiado lentos... hay que aumentar la memoria RAM del servidor y la maquina de desarrollo para que funcionen bien...

miércoles, marzo 05, 2008

JSF + Hibernate + JPA + Netbeans + ZK

Hoy hablare de como integrar todas estas tecnologias, ya que no encontre nada al respecto...:( solo encontre partes de todo... asi que decidi integrarlas en este minitutorial

Ver video

Primero hablaremos sobre las tecnologias..

JSF, es un framework de java para desarrollar tipo MVC, modelo, vista controlador, donde separamos la logica de negocios del interfaz grafico, puede usarse este o Struts, yo me acomodo mas con JSF ya que utiliza un modelo tipo Swing... y llevo un rato ya desarrollando con Swing

Hibernate es un motor de persistencia que nos mapea la base de datos en esquema orientado a objetos, es decir.. en vez de usar las conexiones JDBC, a parte reliza una conexion a la base de datos persistente por lo que aumenta el rendimiento de la misma

JPA (Java Persistent API) creo?... es un estandard para usar un motor de persistencia... hace mas rapido el desarrollo que con hibernate puro... por que hibernate necesita configuraciones en XML... y el JPA no...

NetBeans es un IDE monstruoso.. gasta casi 512 GB de ram para funcionar... pero tiene varios asistentes que nos haran el desarrollo mas rapido..

ZK es un framework de AJAX ya he hablado antes de el... nos hara la interfaz mas rica... y con mas funciones... que si solo usaramos JSF

Primero dire que necesitamos y en la siguiente entrada... les dire como configurarlo...

http://www.hibernate.org/6.html

Bajamos el CORE y el ENTITY MANAGER y de ellos necesitamos... asi que pongalos en otra carpeta..

Del Hibernate EntityManager:
o hibernate-entitymanager.jar
o lib/hibernate-annotations.jar
o lib/hibernate-commons-annotations.jar
o lib/jboss-archive-browsing.jar
o lib/jta.jar
Del Hibernate Core
o hibernate3.jar
o lib/antlr-2.7.6.jar
o lib/asm-attrs.jar
o lib/asm.jar
o lib/c3p0-0.9.1.jar
o lib/cglib-2.1.3.jar
o lib/commons-collections-2.1.1.jar
o lib/commons-logging-1.0.4.jar
o lib/concurrent-1.3.2.jar
o lib/dom4j-1.6.1.jar
o lib/ehcache-1.2.3.jar
o lib/javassist.jar
o lib/log4j-1.2.11.jar
Bajamos ZK
http://prdownloads.sourceforge.net/zk1/zk-bin-3.0.3.tar.gz?download
Bajamos las librerias de ZK para JSF
http://downloads.sourceforge.net/zk1/zk-JSFComps-bin-2.0.0.zip

Netbeans ya tiene integrado el JSF y JPA asi que ya con esto.. tenemos todo listo para empezar a configurar..pero eso sera... en la otra entrada

jueves, febrero 21, 2008

XML contrataca!!

Bueno... para recordar... hace tiempo tuve un problema pasando un XML
por post... y leyendo la respuesta tambien por Post... bien.. ahora
explicare que hize...



Primero dire que java tiene dos
Decodificadores de XML el DocumentBuilder y el SAXParser... aqui solo
hablare de el primero... a mi parecer es mas facil de usar...



Primero imaginemos que recibiremos un XML asi

<gente>

   
<persona nombre="Danyel">


   
    <materia nombre="BD"/>


   
    <materia nombre="SO"/>


   
</persona>


</gente>



Lo primero creo el XML a mano... como no es muy complejo en mi caso..
no hizo falta utilizar los codificadores de java..



String xml = ""



Llamo a la funcion



builder =
javax.xml.parsers.DocumentBuilderFactory.newInstance();


doc =
builder.newDocumentBuilder();


d= doc.parse(xmlPOSTIS(s));



Despues lo mando a la URL



public org.xml.sax.InputSource
xmlPOSTIS(String s) {


   
org.xml.sax.InputSource is;


   
//Se conecta


   
try {


   
    java.net.URL url = new
java.net.URL("https://paginasegura.com");


   
    java.net.HttpURLConnection
httpurl = (java.net.HttpURLConnection)url.openConnection();


   
    //Abre las entradas y las salidas


   
    httpurl.setDoInput(true);


   
    httpurl.setDoOutput(true);


   
    java.io.DataOutputStream out =
new java.io.DataOutputStream(httpurl.getOutputStream());


   
    //Escribe en el stream de salida
un docuemtno XML


   
    for (int i=0;i<s.length();i++) {


   
       
out.write(s.charAt(i));


   
    }


   
    //Convierte el InputSream de
entrada en un Parser


   
    is = new
org.xml.sax.InputSource(httpurl.getInputStream());


   
    return is;


   
}catch(Exception e) {


   
    System.out.println(e.getMessage());


   
    return null;


    }

}



Ahora ya obteniendo el inputSource ya procedo a decodificarlo de la
siguiente manera



java.util.LinkedList cat = new
java.util.LinkedList();


//Son todos los elementos con el
tag error es decir


org.w3c.dom.NodeList lista =
d.getElementsByTagName("persona");


for (int
i=0;i<lista.getLength();i++) {

    String aux =
lista.item(i).getAttributes().getNamedItem("category").getNodeValue();

    for (int j = 0; j <
lista.item(i).getChildNodes().getLength(); j++) {

       
lista.item(i).getChildNodes().item(j);

    }

}


Bueno espero que le haya servido a mas de uno... si tienes cualquier duda o comentario pregunta!! :D

miércoles, enero 30, 2008

Gentoo en Aspire 4520




Bien pues despues de ahorrar un dinero.. me he comprado una laptop una Acer Aspire... realmente me latio por que tiene AMD Turion 64 bits, una tarjeta NVidia y 1GB de RAM... ahh.. la tarjeta es dedicada... jeje ademas.. el diseño esta muy bueno...

Pero en fin... despues de respaldar Windows Vista.. en discos... me di cuenta que los discos no funcionaban... jeje.. asi que al final... jalaron por obra del espiritu santo.. pero en fin... reparticionando con el todo poderoso Hirens.. baje Gentoo AMD64 Minimal.. (todo un disco para 54MB) lo meti... resete mi maquina.. y hasta ahi todo bien... los primeros pasos sin problemas.. reparticiono.. con fdisk... bajo el stage3... y ohhh sorpresa la maquina no detecto el ethernet.. entonces bajo todo en una memoria y lo copio... me tarde un ratote... despues... añado las variables USE... CFLAGS... y todo eso que va en el make.. genero el kernel... instalo el grub... reinicio.. y.... no entra a Gentoo... ahh es un disco SATA... pues solo me falta doscsi... al fin que compile todos los drivers de SATA en el kernel... pero... aun asi no funciona... :S demonios... que ocurre?? compilo un kernel viejo... 2.6.16 y funciona!!! pero este Kernel no trae mi driver del Ethernet.. que por cierto se llama forcedeth bueno... ya valio... despues de compilar el kernel.. muchas... muchas veces... me doy por vencido...veo que el 25 de enero salio el kernel 2.6.24.. lo compilo.. creyendo que funcionara... y ohhhhh lo detecta... aunque con otro driver... por que deberia ser el sata_nv pero al fin fue sata_hci.. creo?

El inalambrico... es Atheros... y como me imagine... no funciona con madwifi.. asi que hize el parche con ndiswrapper.. con el driver de XP de 64 bits... y a veces jala.. y a veces no... aun no se por que... ya solo espero por la proxima version de madwifi... jeje

Las bocinas... tampoco vienen ni en el portage.... ni en el kernel... para activarlas.. desactive el soporte para ALSA en el kernel.. y baje de la pagina de Realteck el driver snd_hda_intel , tuve que compilarlo a mano... pero estuvo bien... costo trabajo por que no desactive el soporte en el kernel y me causaba conflicto... pero al fin funciono... los graficos funcionaron a la primera con nvidia-drivers.. el de la camara web es el generico uvcvideo y... ya.. creo que eso fue todo.... tengo dos firefox.. uno de 64 y otro de 32... mmmm y el compiz funciona perfecto... jeje bueno.. espero que esto le haya servido a alguien en su cruzada

lunes, enero 14, 2008

EL hechizo ZK



Bueno... ya dominamos el bluetooth de la blackberry y de la maquina con J2SE gracias a la magia de Avetana... falta... lo de la circuiteria... y el serial de java.. lo que realmente es lo interesante del asunto.. pero en fin... tendra que ser despues... ahora estamos apurados con un trabajo tenemos que entregar un proyecto... segun confidencial... el 30 de enero.. jeje.. y aun faltan 3 modulos por probar... pero tengo fe en que se lograra... en fin... me toca contribuir al mundo y esta vez lo hare hablando del Framework ZK de Java...

Este framework... ocupa el motor de reenderizado de Geeko en base a componentes Xul... para crear paginas web con tecnologia Ajax, bueno... esa madre de Ajax son una union de una serie de tecnologías para recargar partes de las paginas en lugar de las paginas completas.. esto... hace a una pagina mas atractiva.. pero también... consume mas recursos del lado del cliente como del servidor... doble filo... pero en fin... a la batalla!!!

Podemos descargar las librerias de ZK de SourceForge...

Y despues las copiamos en las librerias de nuestro servidor Web como Tomcat... si mas no recuerdo las librerias de Tomcat se llaman simplemente lib... y estan en el directorio base de tomcat..

Ahora bien... si quieren ahorrar tiempos... podemos usar el todopoderoso NetBeans... creamos unas nuevas librerias... en Tools ->Libraries y ahi añadimos todos los Jar que encontremoe en las librerias de ZK... ya con eso... podemos crear nuestro primer archivo index.zul... en.. File->New File, despues seleccionas Other... empty file.. y lo renombras como index.zul... hay podemos escribir nuestro primer script... Les dejo un tutorial lleno de Scripts por si alguien quiere practicar..

La magia de ZK

viernes, enero 04, 2008

Retomando

Bueno hace como un mes que no escribo nada.. y es que... he estado algo ocupando desarrollando una pagina con Ajax.... obvio no desde cero... sino con el framework de ZK por si le quieren echar una miradita... despues les contare sobre ello... realmente es interesante todo esto del Web 2.0

En fin... estoy volviendo a retomar un antiguo proyecto que tenia en el cual deseo crear todo un sistema hogareño inteligente... y el primer paso para esto es crear un sistema de luces controlado por el celular.. pero para esto necesitaba...

Aprender sobre la tecnologia Bluetooth
Aprender sobre J2ME y el Bluetooth
Aprender sobre J2SE y el Bluetooth
Aprender sobre los puertos seriales de java

La circuiteria es otro asunto... que ya esta mas que tratado... solo falta afinar ajustes en el software... y es que... habia cosas que no quedaban muy bien... jeje como el J2SE con Bluetooth pero gracias a un compañero de batalla... espero que quede solucionado para este mes... ya les contare sobre como van las cosas despues