Archive for the 'java' Category

July 25th 2008

Aptana un IDE para el desarrollo de web.

Apatana es un nuevo entorno de desarrollo especializado, donde podrás programar diferentes lenguajes como php, ruby, JavaScript, etc. También podrás utilizarlo como editor de sintaxis SQL, lo mas útil de esta herramienta es que se especializa en programación de aplicaciones dinámicas web, utilizando Ajax he inclusive puedes utilizar el framework de Ruby on Rails, es una excelente opción sin duda alguna.

Este IDE supera por mucho a otros como NetBeans, esta opción la podemos trabajar en los sistemas operativos Windows y Linux, es muy sencilla de instalar, en Windows solo hay que ejecutar el .exe y darle el clásico siguiente … siguiente… siguiente.

Para Linux puedes descargarte el .tar.gz y descomprimirlo, después solo hay que darle doble click al ejecutable llamado Apatana, y listo ya estarás en el ambiente de trabajo de Apatana, podrás bajarte después plugins para trabajar con diferentes lenguajes y framework.

Espero les guste este magnifico IDE, hasta la próxima.

Para siempre me parece mucho tiempo.

1 Comment »

May 19th 2008

Abrir aplicaciones con Java

El día de hoy vamos a ver como abrir una aplicación en Java, para eso tenemos que crear un objeto de la clase Process, esta clase representan el proceso del sistema que se crea cuando se utiliza el sistema en tiempo de ejecución para ejecutar comandos del sistema. El paquete java.lang implementa la clase Process y llamamos al método estático getRuntime () que devuelve el objeto de tiempo de ejecución asociado con el uso concurrente con Java que es método de la clase Runtime. El exec(comando) ejecuta el comando dado en el parámetro.

Código de ejemplo.

  1. public class AbrirAplicacionEnJava {
  2.  
  3. public static void main(String[] args) {
  4. try
  5. {
  6.  
  7. Process pro = Runtime.getRuntime().exec ("rundll32 SHELL32.DLL,ShellExec_RunDLL"+"c:\\Dev-Cpp\\devcpp.exe");
  8.  
  9. }
  10. catch (Exception e)
  11. {
  12. System.out.print("Error");
  13.  
  14. }
  15. }
  16.  
  17. }

Este ejemplo funciona para Windows si lo queremos hacer en Linux solo se cambiaría en el comando dado.

Espero les guste, sugerencias o dudas favor de comentarlas.

Para siempre…me parece mucho tiempo.

No Comments yet »

May 19th 2008

String o StringBuffer?

Muchas veces al programar considero muchas cuestiones, como lo es la rapidez, la eficacia del código, y la estabilidad.

En una de esas veces, al intentar programar la lectura de un archivo de texto con java, utilice la clase String para almacenar los caracteres al estilo cadena+=nuevacadena. El archivo era muy pequeño, por lo que la lectura del mismo se hacia a una velocidad considerable, así que incremente la cantidad de información para ver que tan rápido podía concatenar las cadenas.

Mi sorpresa fue grande, pues a considerar que la primer prueba con el archivo pequeño fue tan rápida que no imagine que al incrementar la información la operación pudiera complicarse y hacerse mas tardía.

Intente hacer otra cosa, sin embargo, opte por otra opción que es utilizar StringBuffer, así que hice pruebas para comparar velocidades entre String y StringBuffer.

Para ello, primero diseñe un programa que midiera el tiempo de ejecución, así que debía medir el tiempo antes de iniciar la operación y una vez terminada medirlo de nuevo en una nueva variable para después restarle el primer tiempo medido.

El código de medición quedará así.

main.java

  1. public class main {
  2.  
  3.     public static void main(String args[]){
  4.         double tini = System.currentTimeMillis();
  5.  
  6.             //operaciones o procesos
  7.  
  8.         double ttotal = System.currentTimeMillis() - tini;
  9.         System.out.println("Tiempo de ejecución: " + ttotal/1000 + " seg");
  10.     }
  11. }

En la linea donde esta el comentario "//operaciones o procesos" vamos a poner el proceso que queremos medir, así que me propuse a hacer otra clase que contuviera dos métodos, uno llamado MString(int n) para la clase String y otro llamado MStringBuffer(int n) para la clase StringBuffer. Ambos reciben un valor para n del tipo entero que contendrá el numero e concatenaciones que queremos hacer.

concatenacion.java

  1. public class concatenacion {
  2.  
  3.     public concatenacion(){
  4.  
  5.     }
  6.  
  7.     public void MString(int n){
  8.         String temp = new String("");
  9.         for(int k=0;k<n;k++)
  10.             temp+="1";
  11.     }
  12.     public void MStringBuffer(int n){
  13.         StringBuffer temp = new StringBuffer();
  14.         for(int k=0;k<n;k++)
  15.             temp.append("1");
  16.     }
  17. }

Ambos métodos MString y MStringBuffer son parecidos, ambos con un for de 0 a n, pero podemos darnos cuenta que la concatenación de String la realizamos de la forma temp+="1" y la de StringBuffer de la forma temp.append("1");

La clase main la modifique de esta manera para que me diera el tiempo para ambos procesos.

main.java

  1. public class main {
  2.  
  3.     public static void main(String args[]){
  4.         double tini;
  5.         double ttotal;
  6.         concatenacion temp;
  7.         int n=100;
  8.  
  9.         tini = System.currentTimeMillis();
  10.  
  11.             temp = new concatenacion();
  12.             temp.MString(n);
  13.  
  14.         ttotal = System.currentTimeMillis() - tini;
  15.         System.out.println("Tiempo de ejecución para String: " + ttotal/1000 + " seg");
  16.  
  17.         tini = System.currentTimeMillis();
  18.  
  19.             temp = new concatenacion();
  20.             temp.MStringBuffer(n);
  21.  
  22.         ttotal = System.currentTimeMillis() - tini;
  23.         System.out.println("Tiempo de ejecución para StringBuffer: " + ttotal/1000 + " seg");
  24.     }
  25. }

Donde n tendrá el numero de concatenaciones que haremos de "1", y en primera instancia le puse el valor de 100 para ver al diferencia.

Pruebas

Al correr main.java con n=100
Tiempo de ejecución para String: 0.0010 seg
Tiempo de ejecución para MString: 0.0 seg

Aquí la diferencia es mínima, nada notable, ahora hagamos una prueba mas.

Al correr main.java con n=10000
Tiempo de ejecución para String: 0.299 seg
Tiempo de ejecución para MString: 0.0020 seg

Aquí ya podemos ver una diferencia mas notable, pero que tal con la siguiente prueba.

Al correr main.java con n=100000
Tiempo de ejecución para String: 42.117 seg
Tiempo de ejecución para StringBuffer: 0.01 seg

Claramente vemos la diferencia de los tiempos.

Conclusión: para este tipo de cuestiones de concatenación de información (cadenas) muy grande, es preferible usar StringBuffer.

by: lesthack

3 Comments »

May 17th 2008

Hacer un PDF en Java

Vamos el día de hoy a explicar como crear un archivo PDF en Java, editar y darle formato al PDF para darle una presentación magnifica para nuestros trabajos.

Para realizar el archivo tenemos que ver primero la librería que nos ayudara a crear el PDF, en este caso usaremos iText, esta biblioteca nos permite crear y manipular archivos PDF, RTF y HTML en Java, y es una librería Open Source. La descargaremos desde aquí.

Ahora nos apoyaremos desde NetBeans 6.0, ahí añadiremos la librería solo vamos al proyecto, librerías y añadir jar.

Explicare brevemente el código necesario para crear y editar el PDF.

  1. /**importar los paquetes necesario*/
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import com.lowagie.text.Document;
  5. import com.lowagie.text.DocumentException;
  6. import com.lowagie.text.Paragraph;
  7. import com.lowagie.text.pdf.PdfWriter;</span>
  8.  
  9. public class ArchivoPDF {
  10.  
  11. public static void main(String[] args) {
  12.  
  13. // 1. Se crea un objeto documento de la clase Document.
  14. Document documento= new Document();
  15.  
  16. try {
  17.  
  18. //2.Creamos el archivo PDF.
  19. PdfWriter.getInstance(documento, new FileOutputStream("archivo.pdf"));
  20.  
  21. //3. Abrimos el archivo PDF para poder editarlo.
  22. documento.open();
  23.  
  24. //4. Añadimos al objeto documento un párrafo.
  25. documento.add(new Paragraph("Hola mundo este es mi primer PDF"));
  26.  
  27. //5. Le añadimos el tamaño de la pagina.
  28. documento.setPageSize(PageSize.A3);
  29.  
  30. //6.Le damos una nueva pagina.
  31. documento.newPage();
  32. documento.add(new Paragraph("Este es una nueva pagina"));
  33. documento.setPageSize(PageSize.LETTER);
  34.  
  35. }
  36. catch(DocumentException de) {
  37. System.err.println(de.getMessage());
  38. }
  39. catch(IOException ioe) {
  40. System.err.println(ioe.getMessage());
  41. }
  42. // 6.Cerramos el documento.
  43. documento.close();
  44. }
  45. }

Espero que les guste el post, alguna duda comentala por favor.

Para siempre... me parece mucho tiempo.

2 Comments »

May 17th 2008

Programa en Java y OpenGL

Hoy voy a mostrar como puede trabajar Java y OpenGL juntos, esto gracias a la biblioteca de JOGL (Java OpenGL) para aprovechar los máximos recursos que ofrecen el lenguaje Java y el API de OpenGL. Utilizando un IDE en este caso usaremos NetBeans 6.1, aunque también Eclipse tiene esta posibilidad pero por ahora me enfocare con el primer IDE.

Vamos primero a descargar un paquete que necesita NetBeans para descargar automáticamente los plugins necesarios para que funcione correctamente, este paquete lo descargaremos aquí.

El archivo es net-java-nboglpack-updatecenter.nbm, ahora unas ves abierto NetBeans damos en Tools > Plugins y estaremos aquí.

Damos click en Add plugins y buscamos el archivo que descargamos, ahora nos aparecerá la opción de NetBeans OpenGL Pack Update Center, lo seleccionamos.

Ahora en la pestaña de Settings nos verificamos que este seleccionado también la misma opción, luego damos click en la pestaña de Available Plugins nos aparece las opciones siguientes, después solo damos en el botón install.

Para verificar que este funcionando abrimos un New Project y seleccionamos OpenGL > Demos y un proyecto ya realizado.

Y eso es todo, puedes empezar tus programas en Java utilizando la biblioteca JOGL para acceder a OpenGL.

Links importantes:

www. es.wikipedia.org

www.jogl.dev.java.net

Espero les guste, favor de hacer sus comentarios para mejorar estos post.

Para siempre...me parece mucho tiempo.

2 Comments »

May 12th 2008

java capcioso 2

Para aquellos que les gusto pensar en el java capcioso, les tengo otro mas.

  1. if(i!=i)
  2.     System.out.println("Acertaste");
  3. else
  4.     System.out.println("Nones, eso no es");

De nuevo la pregunta, ¿Que valor debo darle a i para que la condición se cumpla?

contest terminado.

Pues bien, para los que no supieron la respuesta, aquí va.

Debido a que la condición era i != i el único valor distinto de si mismo es aquel llamado NaN, es decir, Not a Number.

  • Double i = Double.NaN; //aqui le indicamos que i será del tipo NaN
  • Double i = 0.0/0.0; //el resultado no será un valor valido, por lo tanto será NaN

Felicidades a quienes lo hallan resuelto.

by: lesthack

2 Comments »

May 10th 2008

java capcioso

Esta pregunta ya es vieja y sin embargo, me gustaría recordarla. Se trata de un simple código java como el siguiente.

  1. if(i==i+1)
  2.     System.out.println("Acertaste");
  3. else
  4.     System.out.println("Nones, eso no es");

Ahora, la pregunta es ¿Que valor le tenemos que dar a i para cumplir la condición?

Contest Terminado.

Bien, aquí las respuestas:

  • Double i = Double.POSITIVE_INFINITY
  • Double i = Double.NEGATIVE_INFINITY
  • Double i = 0.1e50
  • Double i = 0.1/0.0

Bien por los que lo resolvieron !!

by: lesthack

10 Comments »

Next »