jump to navigation

La historia no oficial sobre los Applets de Java Septiembre 2, 2010

Publicado por lineadecodigo en : Lecturas , Hasta ahora 1 comentario

Si estás al tanto de los últimos rifi rafes entre Google y Oracle por un "quítame allá esas patentes" te será interesante la lectura del artículo The unofficial history of Java applets (en inglés).

En el artículo, Yakov Fain, valora cuál será la estrategia de Java con respecto al futuro de las plataformas RIA, añadiendo una comparación de lo que le pasó a Sun Microsystems cuando se enfrentó legalmente a Microsoft y como le pasó factura en su evolución (principalmente en los Applets) y lo que le puede pasar ahora a Oracle que se quiere enfrentar con Google por unas patentes y la plataforma Android.

Además comenta sobre ¿Por qué Oracle quiere volver a la etiqueta APPLET?

¿Los temas legales pasarán nuevamente factura a la plataforma Java? ¿Saldrá perjudicada en la pelea por el pastel de las plataformas RIA?

Leer The unofficial history of Java applets (en inglés)

|- Foro sobre Java Applets

Conocer el tipo de una variable en VBScript Septiembre 2, 2010

Publicado por lineadecodigo en : VBScript , Hasta ahora 1 comentario

Las variables en VBScript no tienen un tipo por defecto, si no que pasan a ser de un tipo en el momento en el cuál las asignamos un valor.

Así, si tenemos el código

  1. dim x

x será de tipo "sin inicializar". Si ahora le asignamos un valor, por ejemplo una cadena de texto:

  1. x = "Hola Mundo"

x pasará a ser del tipo cadena.

Si queremos saber el tipo de una variable en VBScript podemos apoyarnos en la función VarType, a la cual le pasamos la variable como parámetro.

  1. x = "Hola Mundo"
  2. document.write("La variable es de tipo " & VarType(x))

La función VarType devolverá un valor entero que representará un tipo de variable. Los valores enteros corresponden a lo siguiente:

Así, que si queremos mostrar por pantalla el tipo de la variable y no su código, podemos utilizar una estructura del tipo case de la siguiente forma:

  1.  
  2. select case VarType(variable)
  3. case 0
  4. document.write("sin inicializar")
  5. case 1
  6. document.write("null")
  7. case 2
  8. document.write("integer")
  9. case 3
  10. document.write("long")
  11. case 4
  12. document.write("single")
  13. case 5
  14. document.write("double")
  15. case 6
  16. document.write("currency")
  17. case 7
  18. document.write("date")
  19. case 8
  20. document.write("string")
  21. case 9
  22. document.write("object")
  23. case 10
  24. document.write("error")
  25. case 11
  26. document.write("boolean")
  27. case 12
  28. document.write("variant")
  29. case 13
  30. document.write("dataobject")
  31. case 17
  32. document.write("byte")
  33. case 8192
  34. document.write("array")
  35. case else
  36. document.write ("no contemplada")
  37. end select
  38.  
|- Visualizar el ejemplo
|- Descargar el código
|- Reportar error en el código
|- Foro sobre VBScript

La W3C crea el Web Performance Working Group Septiembre 1, 2010

Publicado por lineadecodigo en : Noticias Web , Hasta ahora 1 comentario

La W3C ha decidido crear el grupo Web Performance Working Group con el fin de estandarizar la forma de medir el rendimiento de los agentes de usuario.

Esto viene derivado del creciente desarrollo de aplicaciones más sofisticadas, con funcionalidades RIA y APIs de diferente índole. Con el fin de poder establecer una serie de métodos que faciliten el análisis del rendimiento.

Este nuevo grupo estará alineado con las tecnologías que rodean la W3C como HTML, SVG, CSS, WebApps,...

Leer la noticia en W3C...

|- Foro sobre Markup

Crear un objeto en Javascript Septiembre 1, 2010

Publicado por lineadecodigo en : JavaScript , Añadir un comenario

Aunque Javascript no es un lenguaje orientado a objetos, por lo menos en sus versiones 1.x, podemos crear objetos y gestionar nuestro código mediantes estos mismos.

Como recordatorio de la programación orientada a objetos, hay que tener en cuenta que la clase es la definición y los objetos son las instancias individuales de la clase, con valores determinados

En Javascript las clases se crean utilizando las funciones. Es por ello que, si queremos crear una clase, lo único que tenemos que hacer es crear una función.

Por ejemplo, si queremos crear la clase Persona que contenga los atributos nombre, apellidos y edad lo haremos de la siguiente forma:

  1. function persona(nombre,apellido,edad){
  2. this.nombre = nombre;
  3. this.apellido = apellido;
  4. this.edad = edad;
  5. }

Los atributos que crearemos dentro de la clase se referencian mediante this. Lo que hacemos es asignarlos los valores que se le pasan a la función.

Para instanciar un objeto de una clase utilizaremos la sentencia new. Así si queremos instanciar un objeto de la clase Persona tendremos la siguiente línea de código:

  1. var persona1 = new Persona("Victor","Cuervo",32);

Ahora lo que haremos será utilizar la información que hay dentro del objeto. Así, si queremos acceder a una propiedad utilizaremos la estructura:

  1. objeto.propiedad

Para sacar un mensaje con el nombre de una Persona tendremos el siguiente código:

  1. alert(persona1.nombre);

Como podemos ver crear una clase e instanciar un objeto de la misma en Javascript se hace de una forma rápida y sencilla.

|- Visualizar el ejemplo
|- Descargar el código
|- Reportar error en el código
|- Foro sobre Javascript

Vaciar el contenido de un fichero mediante borrado y creación Agosto 1, 2010

Publicado por lineadecodigo en : Java , 2 comentarios

Si ayer veíamos como Vaciar el contenido de un fichero con Java. Hoy vamos a proponer otra alternativa a lo explicado en dicho artículo.

En este caso el procedimiento para vaciar el contenido de un fichero con Java será el de borrar el fichero y volverlo a crear. Un procedimiento mucho más brusco que el anterior. ;-)

Hay que tener especial cuidado ya que en ciertos entornos podemos manipular el contenido de un fichero, si bien no tenemos capacidades de borrado y creación de los mismos. Es por ello que este código no valdría. De igual manera es brusco, ya que el proceso podría realizar solo uno de los dos pasos -el borrado- y dejar incosistente el sistema. Es por ello que seguimos recomendando lo explicado en Vaciar el contenido de un fichero con Java.

Si bien, vamos con ello... Con la clase File obtenemos una instancia del fichero que queremos manipular

  1. String sFichero = "fichero1.txt";
  2. File f = new File(sFichero);

Ahora solo tenemos que enviar los dos comandos: el de borrado mediante el método .delete() y el de creación mediante el método .createNewFile()

  1. f.delete();
  2. try {
  3. f.createNewFile();
  4. } catch (IOException ioe) {
  5. ioe.printStackTrace();
  6. }

Cuando lanzamos el método .createNewFile() hay que tener cuidado ya que se puede elevar la excepción IOException.

Ya hemos visto que con unas pocas líneas podemos vaciar el contenido de un fichero mediante borrado y creación.

|- Descargar el código
|- Reportar error en el código
|- Foro sobre Java IO

Vaciar el contenido de un fichero con Java Julio 31, 2010

Publicado por lineadecodigo en : Java , Hasta ahora 1 comentario

Nos llegaba una pregunta vía comentarios sobre como vaciar el contenido de un fichero con Java. Y nos pusimos manos a la obra.

El procedimiento es muy sencillo. Lo primero que tenemos que hacer es abrir un stream de escritura sobre el fichero. Para ello necesitaremos de un FileWriter y un BufferedWriter.

  1. BufferedWriter bw = new BufferedWriter(new FileWriter(sFichero));

Una vez que tenemos el stream sobre el BufferedWriter lo que vamos a hacer es escribir una línea vacía. Para ello utilizamos el método .write().

  1. bw.write("");

Así lo que conseguimos es machacar todo el contenido que pudiese existir en el fichero. Vaciándolo de su contenido actual. Ahora, no hay que olvidarnos de cerrar nuestro fichero. Esto lo hacemos mediante el método .close() del BufferedWriter.

  1. bw.close();

Y ya hemos conseguido vaciar el contenido de un fichero con Java.

Ojo, hay que tener cuidado de que el fichero exista o se nos generará una excepción FileNotFoundException o IOException.

|- Descargar el código
|- Reportar error en el código
|- Foro sobre Java IO

Comparar el contenido de dos ficheros con Java Julio 30, 2010

Publicado por lineadecodigo en : Java , 3 comentarios

En este ejemplo vamos a ver como podemos comparar el contenido de dos ficheros de texto con Java y comprobar si el contenido es el mismo o es diferente.

Lo primero será crear una clase del tipo FileReader. Esta clase nos va a ayudar a acceder al contenido de los ficheros, conjuntamente con un BufferedReader. De esta forma crear un stream de un fichero a un BufferedReaderr lo podemos hacer con el siguiente código:

  1. FileReader fr1 = new FileReader("fichero1.txt");

Como tenemos dos ficheros, repetimos la misma sentencia para el segundo fichero:

  1. FileReader fr1 = new FileReader("fichero1.txt");
  2. FileReader fr2 = new FileReader("fichero2.txt");
  3.  

Ahora que tenemos un BufferedReader será sencillo ir leyendo el contenido del fichero, ya que solo tendremos que ir lanzando el método readLine() hasta que lleguemos al final de los ficheros.

Así recorreremos los ficheros mientras lo leído no sea null, ya que significará que hemos llegado al final del fichero, o bien que asumamos que los ficheros siguen siendo iguales, lo cual controlaremos mediante una variable de bandera que denominaremos iguales.

De esta manera el bucle para recorrer los ficheros será de la siguiente forma:

  1. sCadena1 = bf1.readLine();
  2. sCadena2 = bf2.readLine();
  3.  
  4. while ((sCadena1!=null) && (sCadena2!=null) && iguales) {...}

Dentro del bucle compararemos las líneas almacenadas en las cadenas. Si las líneas son iguales asumiremos que los ficheros siguen siendo iguales, leeremos e iteraremos otra vez.

Si las líneas no son iguales significa que el contenido es diferente. En ese caso cambiaremos el valor de la variable iguales a "false" para provocar una salida del bucle.

El código quedará de la siguiente manera:

  1. sCadena1 = bf1.readLine();
  2. sCadena2 = bf2.readLine();
  3.  
  4. while ((sCadena1!=null) && (sCadena2!=null) && iguales) {
  5.  
  6. if (!sCadena1.equals(sCadena2))
  7. iguales = false;
  8.  
  9. sCadena1 = bf1.readLine();
  10. sCadena2 = bf2.readLine();
  11. }

Una vez hemos salido del bucle sabremos que los ficheros son iguales si la variable iguales sigue siendo true y si hemos llegado al final de la lectura de los dos ficheros, es decir, que las variables de lectura contengan un valor null. Así tendremos el siguiente código:

  1. if ((iguales) && (sCadena1==null) && (sCadena2==null))
  2. System.out.println("Los ficheros son iguales");
  3. else
  4. System.out.println("Los ficheros son diferentes");

En todo este código tenemos que tener cuidado ya que podemos tener excepciones FileNotFoundException, si los fichero a leer no existen o IOException si tenemos problemas en la lectura de los mismos. Es por ello que todo el código irá dentro de su estructura try-catch.

|- Descargar el código
|- Reportar error en el código
|- Foro sobre Java IO

Sumar matrices en Java Julio 28, 2010

Publicado por lineadecodigo en : Java , Hasta ahora 1 comentario

Seguimos con los ejemplos de matrices, ahora que ya hemos visto como crear una matriz con Java. En este caso vamos a realizar la suma de dos matrices.

Para llevar a cabo el ejemplo hemos definido un método Java que nos permite sumar las matrices. La signatura de dicho método será la siguiente:

  1. public static int[][] sumarmatrices (int[][] m1,int[][] m2) throws Exception {...}

Como podemos ver el método Java recibe dos matrices y devuelve una, que será el resultado de la misma. Por otro lado puede generar una Exception. Este caso será cuando las dimensiones de las matrices sean diferentes. Ya que cuando las dimensiones de las matrices son diferentes, estas no se pueden sumar.

Así la comprobación de las dimensiones de las matrices las haremos apoyándonos en la propiedad length:

  1. if ((m1.length == m2.length) && (m1[0].length==m2[0].length)){...}

En el caso de no coincidir los tamaños, es cuando elevamos la Exception.

  1. if ((m1.length == m2.length) && (m1[0].length==m2[0].length)){
  2. ...
  3. } else
  4. throw new Exception();}

En caso afirmativo procederemos a sumar los elementos de las matrices. Hay que recordar que la suma de las matrices es la suma de todos sus elementos posición a posición. Por lo tanto la suma es sencilla. Solo tenemos que recorrer todos los elementos y dejar el resultado en la matriz destino.

Así, lo primero es crear una matriz resultado de las mismas dimensiones:

  1. int[][] suma = new int[m1.length][m1[0].length];

Para recorrer los elementos nos apoyamos en un bucle for y, nuevamente, en la propiedad length.

  1. for (int x=0; x < m1.length; x++) {
  2. for (int y=0; y < m1[x].length; y++) {
  3. suma[x][y]=m1[x][y]+m2[x][y];
  4. }
  5. }

Ahora solo nos quedará devolver la matriz con el resultado de la suma.

  1. return suma;

Invocar el método es sencillo. Solo hay que tener en cuenta que puede soltar una Exception y por lo tanto lo deberemos de invocar desde un método try-catch

  1. int [][] matriz1 = {{2,4,4},{6,6,9}};
  2. int [][] matriz2 = {{2,4,4},{6,6,9}};
  3. int [][] matriz = new int[3][3];
  4.  
  5. try {
  6. matriz = sumarmatrices(matriz1,matriz2);
  7. pintarmatriz(matriz);
  8. } catch(Exception e){
  9. System.out.println("Matrices de diferente dimensión");
  10. }
|- Descargar el código
|- Reportar error en el código
|- Foro sobre Java

Crear una matriz en Java Julio 9, 2010

Publicado por lineadecodigo en : Java , 4 comentarios

Una matriz matemática es una tabla bidimensional de números. Las matrices pueden sumarse, multiplicarse,... Y suelen ser utilizadas para describir sistemas de ecuaciones lineales. Leer más sobre matrices en Wikipedia.

Si queremos representar una matriz en Java hay que crear un array bidimensional. Por ejemplo para declarar una matriz de 3x3 haríamos lo siguiente:

  1. int matriz[][] = new int[3][3];

Ahora procedemos a cargar la matriz con valores:

  1. matriz[0][0] = 2;
  2. matriz[0][1] = 4;
  3. matriz[0][2] = 4;
  4. matriz[1][0] = 6;
  5. matriz[1][1] = 6;
  6. matriz[1][2] = 9;
  7. matriz[2][0] = 8;
  8. matriz[2][1] = 10;
  9. matriz[2][2] = 12;

Hay que recordar que los elementos empiezan a numerarse por 0. Así la esquina superior izquierda de la matriz será el elemento [0][0] y la esquina inferior derecha será el [2][2].

Podemos crear e instanciar la matriz en una única línea:

  1. int [][] matriz = {{2,4,4},{6,6,9},{8,10,12}};

De igual manera, si nos apoyamos en el método .lenght del array podremos listar el contenido de la matriz

  1. for (int x=0; x < matriz.length; x++) {
  2. for (int y=0; y < matriz[x].length; y++) {
  3. System.out.println (matriz[x][y]);
  4. }
  5. }
|- Descargar el código
|- Reportar error en el código
|- Foro sobre Java

Netbeans 6.9 Junio 16, 2010

Publicado por lineadecodigo en : Noticias Web , 2 comentarios

Netbeans ya tiene una nueva versión de su IDE, Netbeans 6.9

Dentro de las mejoras que nos proporciona Netbeans 6.9 encontramos:

Se mejora el soporte de los frameworks:

Netbeans está disponible para plataformas Windows, Mac, Linux y Solaris.

Descárgate la nueva versión Netbeans 6.9

Vía: Java Hispano

|- Foro sobre Netbeans