sábado, 25 de abril de 2009

CLDC y MIDP conociendo los Midlets - Manuales y Libros de J2ME

q tal:
Bueno aqui pongo a su disposición unos enlaces muy interesantes que particularmente me han ayudado mucho en este camino..y como parte para ahorrarles un poco el trabajo, ya que como les comentaba en el anterior post, es fundamental conocer estos conceptos para desarrollar nuestras aplicaciones con J2ME:

Enlaces:

http://leo.ugr.es/J2ME/INTRO/index2.htm
http://grasia.fdi.ucm.es/j2me/_J2METech/CLDC.html
http://grasia.fdi.ucm.es/j2me/_J2METech/MIDP.html
http://www.it.uc3m.es/celeste/docencia/j2me/tutoriales/ (recomendado)
http://www.it.uc3m.es/celeste/docencia/j2me/tutoriales/midp2_0/PracticaGame/
http://www.javahispano.org/contenidos/es/introduccrion_a_j2me/
http://www.vb-mundo.com/tutoriales/J2ME/56.html

Una parte de manuales que recopilé:
http://www.mediafire.com/download.php?kjfrfm2m4i3

Estos tres libritos que aunque estan en Inglés no impide admirarlos:


Link de descarga -->....http://www.mediafire.com/download.php?ylgmi0wrzgu


Link de descarga -->....http://www.mediafire.com/download.php?ynm2njwdmu5


Link de descarga -->....http://www.mediafire.com/download.php?nykh30emm5m

Programación para dispositivos Móviles con J2ME usando Wireless Toolkit y JCreator.........(Desarrollo)

ahora la practica:
Y es que pongo Jcreator como editor del codigo porque es el primer IDE que conocí para programacion en Java y con el cual me familiaricé por mucho tiempo, y es que en la actualidad muchos programadores usan editores mucho mas potentes como el NetBeans o Eclipse los cuales facilitan mucho la programación y son muy eficaces en el ahorro del tiempo para el desarrollo de Sistemas. NetBeans es el mas estable para programacion J2ME, la facilidad para crear interfaces es muy buena, actualmente es el IDE que uso para estas aplicaciones, ya que mi preferido JDeveloper tiene muchas dificultades para usar el plugin de J2ME.

las vivencias --> aqui!

Con respecto al IDE, siempre e dicho que lo mas importante es la capacidad que posee el programador para elaborar sus algoritmos y contar con el conocimiento de muchas clases y metodos para asi no depender de algun IDE. Partiendo desde un block de notas o un notepad++ se aprende mejor ya que buscaras los metodos y clases en tus libros y apuntes y te obligara a la investigacion y no un IDE que te autogenera todos las clases y metodos disponibles y al otro dia ya se te habra olvidado.
Estoy de acuerdo con la opinión de mi compañero Martin cuando dice que los IDE y las librerias disminuyen la creatividad del programador pero no se le quita su gran ayuda a la hora de desarrollar proyectos de forma más rápida.

Bueno ahi el tuto:

1.- Descarga e instala el Sun Wireless Toolkit 2.5.2_01 ..el enlalce-->aqui.
2.- La instalacion es sencilla..asi q abrimos la herramienta KToolbar desde la carpeta 'bin' del directorio de archivos q creó el programa.( por defecto en la carpeta c:\WTK2.5.2_01 ) o tb dsde el menu de Inicio:
Tendremos algo como esto que consituye la interfaz del programa:
Creamos un nuevo proyecto y nos pedira : el nombre del proyecto y el nombre del midlet ( nombre de la clase ejecutable) de preferencia deben tener el mismo nombre:
Automaticamente nos abrirá la ventana de propiedades del proyecto lo cual a mi parecer es la parte mas delicada y requiere tener conocimiento de los fundamentos de J2ME, pero se escapa del objetivo de este tuto que les comparto, el explicarles todos estos conceptos...ya que se extenderia demasiado, asi que les recomiendo leer sobre la configuracion CLDC y el perfil MIDP.. y seguir el tuto:

la mayoria de celulares modernos soportan CLDC 1.1 Y MIDP 2.0, para algun modelo en especial puede ser bueno que averigue la configuracion y perfil de su celular, los que e probado y soportan esta configuracion son por ejemplo un sonyEricsson k310,w200 , Nokia 3220,5200,5300 y algunos modelos de Samsung..Actualmente he conseguido un nokia 5200 y corren muy bien las aplicaciones...ahí algunas propiedades que se generan y pueden ser modificadas
En el proyecto se crea el siguiente sistema de carpetas:
src -> contiene los ficheros java que hagamos con JCreator
classes -> aqui se guardan los archivos compilados .class que genera el WTK
res -> se guardan archivos externos , como imagenes por ejemplo.
bin -> aqui se guardan los fecheros ejecutables, un fichero jad que contiene toda los detalles del midlet, y el jar que es el archivo que llevaremos a nuestro celular, en este hay un engorroso camino de creacion ... pero fue la unica manera que pude descubrir, asi que si alguien puede hacer algo mas sencillo mejor p. La carpeta del proyecto se crea por defecto en 'C:\Documents and Settings\luis182\j2mewtk\2.5.2\apps'Otro tema que se escapa a este tuto es la codificacion de las aplicaciones y la estructura de los midlets, pero eso seria bueno investigarlo.....o con unos ejemplos que suba al blog se pueden familiarizar. Ahi una toma programando en JCreator, Ahi muestro una toma de una de mis primeras aplicaciones que elaboré, sobre conversion de numeros binarios,octales,hexas que al final del tuto lo pondre para descarga.

Lo curioso es que solo usaremos el JCreator como editor mas no para compilar nuestras clases..ya que el que compilara el codigo es el WTK.. cuando ya lengamos nuestro codigo hecho lo compilamos con (boton 'build' en el WTK) y ahora el procedimiento engorroso del que les hablaba..y es que el problema fue que nunca vi una funcion en el WTK que me generara el jar automaticamente..asi que decidi crearlo con el JCreator y la explicacion esta dada en una entrada antigua de este blog.-->(http://luanunp.blogspot.com/2008/10/solucion-ejecutable-jar-con-jcreator.html), con la diferencia que ahora ya no le agreguen el Main-Class...Un dato importante es que en el jar hemos debido empaquetar las clases que compilo el WTK y se encuentran en la carpeta 'classes', despues de eso darle un nombre al jar..de hecho q el nombre del midlet , y llevarlo a la carpeta 'bin'
Ahora a editar el jar--> editamos el manifest al igual q en el tuto antes mencionado y editar el jad tambien..todo el contenido del jad lo pegamos en el manifest del jar y lo reeemplazamos...
Muy bien ahora tenemos que ver el tamaño del jar despues de la modificación para luego abrir las propiedades del proyecto en el WTK y cambiar el tamaño del jar..y listo..!!
Ahora podemos emular nuestra apliacion con el Emulador incorporado que trae el WTK..
De dos maneras
1.- Doble click sobre el fichero .jad
2.- Desde el WTK en 'Run'
Este es el resultado:
Para ejecutarlo sobre tu celular solo necesitas llevar el jar porque como vimos anteriormente , el manifest ya contiene toda la informacion que el jad tiene del jar.

El ejemplo --> aqui!!

Me estoy animando por poner un videito..jeje


dudas o sugerencias --> luisan_182@hotmail.com

Programación para dispositivos Móviles con J2ME usando Wireless Toolkit y JCreator...........(VIVENCIAS)

q tal:

Bueno por fin me reencuentro con mi blog, ya lo tenia abandonado desde hace un tiempo por la absorvente Universidad..Ya me encuentro terminando este octavo ciclo y me daré tiempo a postear mas articulos que tengo por ahi guardados.


las Vivencias con J2ME...

Hace ya casi dos años me acuerdo que un compañero de estudios me mostró unos manuales y software que habia encontrado en los laboratorios de mi Facultad, le di un vistazo y alcance a ver bastante codigo en lenguaje java y muchos gráficos de telefonos celulares. Me pareció bastante interesante y los lleve a casa para leerlos detenidamente. Pues se trataba de la Aquitectura J2ME, la cual es la especificacion de Java para dispositivos con capacidades reducidas de recursos, mas especificos con celulares, PDAS, palms, etc..

Seguí invetigando mas sobre el tema .. y me encontre con el programa que hace posible desarrolar estas maravillas y es uno elaborado por la misma SUN, llamado Wieless Toolkit que recuerdo haberlo encontrado en ese entoncs en la version 2.5, la mas actual hasta el momento es la 2.5.2_01, cabe resaltar que este software no es ningun IDE ni nada por el estilo, para programar se puede usar cualquier editor de texto, el software lo q hara es compilar tu codigo tomando las especificaciones dadas como la version del CLDC y el MIDP (sugiero una letura intensiva sobre estos dos terminos), entre otros parametros y este creará todos los archivos ejecutables necesarios para ver correr tus aplicaciones..

Pero la gran pregunta es -> Que es lo que J2ME me brinda para desarrollar aplicaciones y que aplicaciones y para qué pueden servir??
Pues la respuesta es simple ...muchas aplicaciones desde agendas, juegos,aplicaciones Bluetooth, podrias llevar muchas de tus aplicaciones que hiciste en java para escritorio, llevarlas a tu celular y disfrutar de la movilidad que este ofrece, y sobre todo las mas importante son las aplicaciones de conexion, podriamos tener un servidor que reciba peticiones desde el dispositivo celular y q la logica de negocio q este alberga nos de informacion q requerimos hacia el celular, la variedad es mucha, todo queda al ingenio del desarrollador.

De antemano puedo decir que entrar a este micromundo como le llaman muchos desarrolladores, es sinonimo de entrega e investigacion, programar midlets(asi como un applet es para el navegador, el midlet es al celular) para nuestros celulares es tarea facil pero requiere darle tiempo y espacio...en mi experiencia propia me ha costado ya algunos cursos en la Universidad ya que solia descuidarlos por sentarme en mi ordenador investigando y programando..Pero es algo de lo que no me arrepiento.

Empece a llevar algunas de mis apliaciones que habia desarrollado en los cursos de Programacion I y Programacion II a midlets.. y me fue muy bien aunque en el camino me encontré con muchos inconvenientes y errores que por falta de lectura a veces tardaba un poco en solucionar, pero como suelo decir -> "si no existen errores no habria razón de aprender y si estos no se muestran es porque ya tengo todo apendido"... He aqui donde se muestra el tiempo y detenimiento que le puedas dar al tema... Para desarrollar juegos podria decir que requiere mucho tiempo, ademas muchas empresas que se dedican a esto como gameloft desarrollan juegos excepcionales de calidad, asi que nuestras posibilidades de desarrollo están mas orientadas a otro tipo de aplicaciones entre ellas las mas interesantes son las de conexiones...

Lo Curioso:
y es que todo este tiempo que e programado midlets casi todo era probado solo en el emulador ya que solo me acompañaba un nokia antiguo que mas parecia Walkie Talkie jeje..y ps tenia que recurrir a los amigos para poder correr mis aplicaciones en sus celulares...aunq con miedo claro porque algunos no confiaban ...Bueno ahora ia tengo un Nokia 5200 al cual le corre todo de maravilla!!

a la práctica --> siguiente!
Bueno creo q esa ha sido una breve introduccion a esta interesante tecnologia...gracias por la atencion!!!

miércoles, 15 de octubre de 2008

Piratas Informaticos...( documental )

q tal:

Me encontre con este interesante y atractivo documental de la Discovery, esta muy bueno, Pues trata de tres grandes figuras que dejaron su nombre marcado en todo el mundo por sus hazañas con los ordenadores y las redes telefónicas, estas tres sagas son insuperables, primero la del capitan Crunch,luego la de Steve Wozniak (creador de Apple junto a Steve Jobs) y por ultimo Kevin Mitnick, Particularmente me quedo con Kevin Mitnick, he visto una pelicula y algunos documentales de su vida, pues este hombre es excepcional creo que si no fuera por la religión yo le daria a este man el titulo de Dios..

q lo disfruten!

Problema de imagenes en jar ( solucionado! )

q tal:
ps este problemita lo tenia hace mucho tiempo y no solo con las imagenes si no tambien a la hora de abrir cualquier archivo desde el mismo contexto del jar..
Bueno la cosa era sencilla..solo tienes q tener una URL de donde parte la ejecucion..en este caso sera desde el jar..

por ejm para algun componente swing como un Jlabel:

JLabel jLabel = new JLabel();
jLabel.setIcon(newImageIcon(getClass().getClassLoader().
getResource("img/esc1.jpg")));


ahora para trabajar con imagenes en el Canvas es recomendable hacerlo de este modo:

public BufferedImage loadImage(String nombre) {
URL url=null;

try {

url = getClass().getClassLoader().getResource(nombre);

return ImageIO.read(url);

} catch (Exception e) { System.out.println("No se pudo cargar la imagen " + nombre +" de "+url);

System.out.println("El error fue : "+e.getClass().getName()+" "+e.getMessage());

System.exit(0);

return null;

}

}


public void paint(Graphics g) {

BufferedImage img = loadImage("img/esc1.jpg");
g.drawImage(img, 40, 40,this);
}


Bueno a mi ia me funco...AQUI pueden ver un ejemplo ...( es un jnlp)..si no conocen de como funcionan estos archivos ..me avisan para hacer una entrada mas al blog..

viernes, 3 de octubre de 2008

solucion ejecutable jar con Jcreator

bueno si quieren bajarse este IDE en su ultima version(si mas no recuerdo va por la 4.50.010) dsde aqui lo pueden hacer..lo bueno es q es la version Pro ya registrada..para q ia no esten usando esos crack q son un desastre..

algunos compañeros me preguntaban como generar un jar ... (q funcione por cierto jeje) sin necesidad de rayarse en la consola con ese codigo para crearlo..bueno los IDE para java mas potentes como el netbeans, eclipse y el estupendo JDeveloper crean estos ejecutables automaticamente en tus proyectos..

y bueno con JCreator lo que hago es entrar a las Opciones>Tools..le doy al Boton "new".. aparece un menu y clickeas "Create jar File".. ahora ia esta activada la opcion de crear jar..si mas no recuerdo aparece en el menu contextual al lado de "Configure" esta "Tools"..ahi esta la opcion..

obviamente el jar se creara (por cierto sin nombre) en el directorio en el cual se encuentra tu actual fichero java en el editor..
ahora la nota es que funque el bendito jar xq asi como esta dara error...ia ps con tu winrar abres el jar..primero le borras todos los ficheros con extension .java xq el jar no los utiliza solo se quieren los .class, ademas lo mas importante es el archivo manifest.mf que se encuentra dentro de la carpeta META-INF.. sacamos ese archivo lo editamos..recomiendo el notepad++(lo maximo) veras algo como esto:

Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)

ia ps eso no nos sirve de mucho ia que para que el jar se ejecute necesita el nombre de la clase que posee el main...y lo escribes:

Manifest-Version: 1.0
Main-Class: Agenda
Created-By: 1.6.0 (Sun Microsystems Inc.)

lo guardas y lo reeemplazas por el antiguo archivo manifest.mf..
listo ese jar debe correr con seguridad xD....saludos!!

jueves, 2 de octubre de 2008

Conexion de Java con MySql

q tal:
Pues si eres de los que aman este magnifico lenguaje (Java)..asi como este humilde servidor..les dejo un alcance algo basico para conectar Java con una base de datos que en este caso es MySql..
Lo primero .....
Lo primero que necesitamos para conectarnos con una base de datos es un Driver (o Connector) con ella. Ese Driver es la clase que, de alguna forma, sabe cómo hablar con la base de datos. Desgraciadamente (bueno q se le va a hacer xD), Java no viene con todos los Drivers de todas las posibles bases de datos del mercado. Debemos ir a internet y obtener el Driver, normalmente en la página de nuestra base de datos.
Para el caso de Mysql lo puedes descargar aqui:
http://download.softagency.net/MySQL/Downloads/Connector-J/. (eligen la version mas reciente)
Nos bajamos elmysql-connector-java-5.0.5.zip, lo desempaquetamos en algún sitio y nos quedamos con el mysql-connector-java-5.0.5-bin.jar que viene dentro. En ese jar está la clase Driver que nos interesa.
Bueno luego lo que hice fue guardar el jar en la carpeta /jre/lib/ext. Si has hecho una instalación por defecto en Windows, estará en C:\Archivos de Programa\Java\jdk1.5.0_05\jre\lib\ext. Esta es la carpeta en la que java nos deja poner jar adicionales para que se encuentren por defecto..
segundo...Conectarnos con la base de datos(ahora si arto codigo)
con el IDE q mas te guste..en mi caso..uso JDeveloper..me va genial..lo recomiendo!
ojo..Debemos tener el servidor de MySQL arrancado
//importamos los paquetes necesarios:


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


//cargamos el driver en memoria de java:
Class.forName("org.gjt.mm.mysql.Driver");
// Establecemos la conexión con la base de datos.
Connection conexion = DriverManager.getConnection ("jdbc:mysql://nombre_servidor/base de datos","usuario", "clave");
si tu servidor de base datos se encuentra en tu ordenador .. en mi caso el nombre del servidor es localhost
// Preparar la consulta
Statement s = conexion.createStatement();
ResultSet rs = s.executeQuery ("select * from persona");
// Recorrer el resultado, mientras haya registros para leer, y escribimos el resultado en pantalla.
while (rs.next()) {
System.out.println (rs.getInt (1) + " " + rs.getString (2)+ " " + rs.getDate(3));
}
// Cerrar la conexion a la base de datos.
conexion.close();


el ejemplo puede quedar asi: ..(por supuesto, dentro de un try-catch.)

public class PruebaMySQL {
public PruebaMySQL() {
try{
Class.forName("org.gjt.mm.mysql.Driver");
Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/libreria","mysql","luantoc");
Statement s=conexion.createStatement();
ResultSet rs=s.executeQuery("select * from clientes");
while(rs.next()){
System.out.println(rs.getString(1)+" "+rs.getString(2));
}
conexion.close();
}
catch (Exception e) {;}
}

public static void main(String[] args) {
new PruebaMySQL();
}
}

...saludos..espero que les sirva esta info para sus proyectos..ya q Java es una gran alternativa a la hora de elaborar nuestras aplicaciones..