Ya está aquí Ubuntu 9.04
Algunos ya sabréis que el 23 de Abril se liberó la nueva versión de Ubuntu: 9.04 Jaunty Jackalope
Lo podemos conseguir desde aquí: http://www.ubuntu.com/getubuntu
Como siempre, podemos descargarlo desde un servidor de descarga o por torrent
Cambios en Ubuntu 9.04
Hay una serie de cambios en esta nueva versión de Ubuntu:
-El escritorio es Gnome 2.26, y el Kernel es el 2.6.28. Viene con Firefox 3 y OpenOffice 3
-Mejora en la velocidad del sistema. Podemos iniciar el Ubuntu en mucho menos tiempo que antes con esta nueva versión. Las aplicaciones también se abren con mayor velocidad.
-Compatibilidad con nuevas tarjetas gráficas gracias al X Server 1.6.
-Cambios visuales.
Tutorial de programacion orientada a objetos ( JAVA ) Parte 8

Control de excepciones con try catch.
try catch, nos permite controlar excepciones producidas en tiempo de ejecucion, pero qué son las excepciones?.
Las excepciones se producen en un determinado software informatico, cuando un software no esta bien planteado, eso quiere decir, qué si un determinado algoritmo intenta realizar una determinada accion qué nosotros queremos qué haga y la forma de implementarlo es incorrecta, tendremos excepciones en modo ejecucion.
Las execpiones tambien se producen, cuando un determinado software realiza una accion ilegal, supongamos qué nosotros tenemos un dialogo y nuestro programa espera una cadena con el nombre del fichero para ser procesado por el programa y leido seguidamente, si nosotros le damos a cancelar y no se controla la excepcion, es muy probable qué la aplicacion tire un error en tempo de ejecucion, es muy frecuente esto debido a qué las excepciones qué se producen en determinado algoritmo no son controladas, y por lo tanto se pueden producir cierres inesperados o directamente qué la aplicacion deje de funcionar correctamente, por eso es hiper necesario tener un bloque de codigo try catch, qué controle los errores de nuestros algoritmos, de no ser así nuestra aplicacion no sera del todo estable, y cuando el programa realize acciones ilegales el programa reventara a base de bien.
Como implementar un bloque try,catch?.
Los bloques try catch, son implementadas de una forma muy sencilla, supongamos qué vamos a procesar un archivo de texto en java y necesitamos controlar determinadas excepciones dentro de nuestro bloque de codigo, lo hariamos de la siguiente manera:
public void openFile(String f){
try{
FileInputStreamReader fis = new FileInputStreamReader(“archivo.txt”);
int length = ( int ) new File(f).length();
if ( length > 0 ) {
byte buffer_result[] = new byte[length];
if ( buffer_result.length > 0 ){
fis.read(buffer_result);
fis.close();
System.out.println(new String(buffer_result,”UTF8″));
}
}
}catch (IOException o){
o.printStackTrace();
}
}
Un ejemplo mucho mas interactivo:
try = evalua
catch = si se produce un error.
evalua {
//Sentencias de codigo a ejecutar, si no se produce ningun fallo.
}si se produce un error{
//Entonces muestra un error
}
Ejercicio:
1.Crear una sencilla aplicacion qué haga uso de try y catch.
Curso de programacion orientada a objetos ( JAVA ) parte 7

Java
Concepto de un vector
Un vector es una cola de datos qué almacena multiples datos en diferentes posiciones,para gestionar vectores o arrays en java utilizamos [] seguido del tipo de dato con el cual se creara la matriz en memora y los datos de un determinado tipo qué tienen qué ser el mismo qué en la declaracion del vector qué se almacenaran en dicho vector.
Una vez hemos llenado el vector con los datos qué queremos almacenar dentro de el, en java y en lenguajes like java existe una propiedad llamada length dentro del vector declarado, el cual si intentamos recorrer determinadas posiciones con la propiedad length, y seguidamente intentamos obtener los datos del vector de 0 asta el numero de posicion especificado en el vector, obtendriamos todos los elementos almacenados asignados desde las posiciones 0 asta la especificada en la declaracion del vector.
Siendo mas explicito, un vector es una cola qué se va caracterizando por numeros, y nosotros podemos ir asignando datos en diferentes espacios de memoria qué nos reserva el vector en cada determinada posicion, en este caso numero,lo cual quédaria de la siguiente manera:
int vector[] = {1,2,3,4,5};
int count = 0;
for ( count = 0; count < vector.length; count++){
System.out.println(“Recorrido:” + vector[count]);
}
Explicacion del codigo
entero(de 1 a 5) = {1,2,3,4,5}; //Almaceno los datos de 0 a 5 lo cual seria un vector de 5 posicionescontador es igual a 0
recorre( contador es igual a 0; entonces recorre de 0 asta las posiciones del vector; aumenta el valor de la variable hasta llegar asta la posicion correcta ){
imprimomensaje(vector[variable en el cual se incrementara el valor hasta llegar asta el final de la posicion]);
}
Ejercicios planteados
- 1.Crear un ejercicio qué haga uso de vectores, imprima 5 nombres secuencialment
Ejemplo de codigo:
class vector{
public static void main(String args[]){
String vector[] = {“hola”,”mundo”};
int count = 0;
for ( count = 0; count < vector.length; count++){
System.out.println(“Imprimido”);
System.out.println(vector[count]);
}
}
}
Curso de programacion orientada a objetos ( JAVA ) parte 6.

Bucles ( for,while ) .
En este capitulo del curso, entenderemos cual es el concepto de los bucles for y while, y mostraremos unos cuantos ejemplitos mas interactivos para entender mas o menos cual es el concepto de usar el bucle for y while.
El bucle for, tiene muchas utilidades, una de ellas es qué podemos recorrer las posiciones de un determinado vector, y obtener todos los datos qué se almacenan en una determinada posicion, pues el bucle for a partir de una posicion donde comenzara a recorrer los datos y una posicion de recorrido final comenzara a obtener los datos desde la posicion de inicio asta la posicion especificada, por ejemplo si nosotros especificamos en la posicion inicial 0 y en la posicion final 15, recorrera los datos de 0 a 15.
lo qué el resultado en modo ejecucion seria el siguiente:
0
1…
Un ejemplo interactivo de como usar el bucle for:
numero = 0;
recorre ( numero = 0; numero es menor a 5; entonces incrementa el valor asta 5){
imprime(numero qué se va a incrementar);
}
While tiene un funcionamiento parecido, pero es mucho mas sencillo de utilizar, while esta sobrecargado por un parametro y se evalua si la expresion dada se cumple, de ser así entonces el bucle while comienza a realizar la ejecucion de datos dentro de las llaves de apertura y cierre de while, de no cumplirse la condicion entonces while no ejecutara las sentencias qué estan dentro de las llaves de apertura y cierre de while
Otro ejemplo mas interactivo.
numero = 5;
mientras(numero sea igual a 5 entonces ejecuta lo qué hay dentro de while )
}
Ejemplos de codigo.
import java.io.*;
class prueba{
public static void main(String args[])throws IOException{
while ( true ){
BufferedReader readin;
readin = new BufferedReader(new InputStreamReader(System.in));
String result = readin.readLine();
int e = Integer.parseInt(result);
while ( e == 5 ) {
System.out.println(“Hola”);
}
}}
}
class ejercicio{
public static void main(String args[]){
int count = 0;
for ( count = 0; count < 5; count++){
System.out.println(“Incrementado:” + count);
}
}
}
Ejercicios planteados.
1.Desarollar un ejercicio que haga uso del bucle for y while, os podeis basar en los ejemplo expuestos en este apartado.
Curso de programacion orientada a objetos ( PARTE 5 ) java
Evaluacion de multiples expresiones (switch,case).
En este capitulo del curso, entenderemos el concepto de evaluar multiples expresiones con switch y case.
Para qué sirve switch y case os estareis preguntando?, switch es sobrecargado con una variable qué cotiene una serie de valores, qué nosotros iremos evaluando con case, y dentro de los bloques definidos qué contengan la etiqueta case se iran ejecutando determinadas instrucciones escritas dentro de los bloques sí la expresion evaluada es correcta, de no introducirse un valor especificado dentro de las definiciones de los bloques de codigo con case, entonces logicamente no se ejecutara nada, entonces procederemos a definir un bloque de codigo qué contenga una etiqueta “default:”, a partir de aquí el programa sabra qué si se introduze algun dato, qué no concuerde con lo evaluado, entonces se ejecutara lo qué hay dentro de default.
Un ejemplo mas interactivo seria algo así:
variable = leerVariable();
si ( variable no esta en blanco ){
evaluar(variable){
evalua 1:{
Entonces ejecuto lo qué hay dentro de case :1 sí se escribe 1.
}
}
}
Lo qué traducido el ejemplo a codigo nativo java, seria lo siguiente:
String leer = new BufferedReader(new InputStreamReader(System.in)).readLine();
if ( leer.toString() != “” ){
switch ( Integer.parseInt ( leer ) ){
case 1:{
System.out.println(“Has introducido 1″);
}break;
}
}
Ejercicios planteados:
- Desarollar un proyecto qué al pulsar un numero, nos imprima qué determinado numero se ha escrito
Codigo de ejemplo:
import java.io.*;
class hola{
public static void main(String args[]){
try{
String readLine = new BufferedReader(new InputStreamReader(System.in)).readLine();
if ( readLine.toString().equals ( “” ) ) { System.exit ( -1 ); }else{
switch ( Integer.parseInt ( readLine ) ) {
case 1:{
System.out.println(“Ejecutado 1″);
}break;
case 2:{
System.out.println(“Ejecutado 2″);
}break;
}
}
}catch (Exception o){
o.printStackTrace();
}
}
}
Curso de programacion orientada a objetos ( JAVA ) parte 4
Evaluacion de expressiones ( if,else ).
En este capitulo, aprenderemos el concepto de evaluar expresiones con if, else, pero primero de todo qué es una expresion?.
Expresion o condicion, es una variable qué deve de devolver un valor booleano, true o false, las condiciones son evaluadas explicitamente para saber sí por ejemplo, determinada serie de instrucciones de nuestro algoritmo se a ejecutado correctamente este seria el caso si devolveria true, si devolviera false, entonces quiere decir qué no se ha ejecutado correctamente, y por lo tanto se ejecutaria lo qué hay dentro de las llaves de apertura y cierre dentro del else.
Un ejemplo logico de lo qué estoy redactando es lo siguiente:
if ( siEstoDevuelveTrue ){
//Entonces ejecuto lo qué quiero qué ejecute si se cumple la condicion
}else{
//Si devuelve false, entonces lo qué se escriba dentro del else, se ejecutara.
}
Un ejemplo mas interactivo podria ser el siguiente:
import java.io.*;
class correcto{
static boolean correcto = true;
public static void main(String args[])throws IOException{
System.out.println(“1.Setear a true”);
System.out.println(“2.Setear a false”);
String person = new BufferedReader(new InputStreamReader(System.in)).readLine();
if ( person.equals ( “” ) ){
System.out.println(“En blanco..”);
}else{
switch ( Integer.parseInt ( person ) ){
case 1:{
correcto = false;
DevolverValor();
}break;
case 2:{
correcto = true;
DevolverValor();
}break;
}
}
}
public static void DevolverValor(){
if ( correcto == true ){
System.out.println(“Es true”);
}else{
System.out.println(“Es false”);
}
}
}
Analizemos el codigo despacio.
Como podemos observar en el metodo DevolverValor(), estamos evaluando la expresion qué hemos declarado en la clase correcto denominada “correcto”, aquí lo qué de verdad importa es esto:
if ( correcto == true ){
//….
}else{
}
Dentro de las llaves de apertura y cierre del if, podremos observar y vuelvo a repetir qué se escribiran las sentencias qué se vayan a ejecutar si correcto se pasa como true, si nosotros le decimos a correcto qué sea true y nosotros evaluamos con if qué si correcto devuelve true, entonces se ejecutara lo qué esta dentro del if, si por lo del contrario correcto no esta seteado como true y devuelve false, entonces ejecutara lo qué hay dentro del else.
La ideologia y vuelvo a repetir es la siguiente:
si ( esto es correcto ){
Entonces ejecuta lo qué yo te diga.
}si no se cumple la condicion{
Entonces ejecuta lo qué hay dentro de aquí
}
Ejercicios planteados.
- Aprender a manejar el entorno de desarollo, compilar la aplicacion expuesta en este apartado.
- Crear una clase qué nos permita evaluar una expresion y imprimir por pantalla si es true o false.
Curso de programacion orientada a objetos ( JAVA ) parte 3.

Instalacion de un entorno de desarollo con funcionalidades avanzadas.
En este capitulo del curso, aprenderemos a instalar un entorno de desarollo funcional para ir creando nuestros primeros pequeños programas.
Para empezar daremos unos consejos sobre qué entornos de desarollo descargar, y por qué son recomendables usarlos, a sí como una pequeña review de dichos entornos de desarollo.
jGrasp.
Sin duda jgrasp es uno de los entornos de desarollo mas robustos qué existen, su depurador de extrema eficiencia lo hace muy robusto, pudiendo colocar breakpoints en determinadas lineas de codigo y ir depurando linea por linea, esto es muy util para solucionar errores logicos, y no tan logicos ejeje.
Otros ambitos a destacar, son el autonumeramiento de las lineas, el solito te autonumera las lineas de codigo pudiendo encontrar errores mas facil buscandolos desde el propio entorno, ademas de la funcion de encapsulamiento de codigo qué nos permitira encapsular el codigo y tener el codigo organizado entre subclases, ademas del coloreado de sintaxis, sin duda es un entorno de desarollo bastante pro, pero por desgracia no trae un diseñador de interfaces graficas, lo qué implica qué tengamos qué picar las interfazes graficas a golpe de dedito.
Netbeans.
Netbeans es un entorno de desarollo multiplataforma ( multilenguaje ) desarollado en java, qué nos permitira crear interfazes graficas a golpe de raton, esto va inlcuido en el pack de crear forms para midlets y applets, dicho entorno nos permite generar la interfaz facilmente y acceder a sus componentes de una manera mas comoda, trabajando de una manera muy parecida a la POE ( programacion orientada a eventos ) cada vez qué accedes a un componente, el propio entorno de desarollo te separa el codigo en eventos para qué puedas ingresar tu codigo, el tiempo de desarollo de la aplicacion se hace mucho menos costosa qué creando la interfaz a saco.
Caracteristicas a destacar: autocontemplado de codigo, netbeans nos permitira seleccionar la mejor opcion a la hora de sobrecargar un miembro, logicamente quizas no sea esa la opcion correcta, pero tampoco sera erronea, debido a qué asignara un valor compatible con el requerimiento de la sobrecarga, ademas tenemos lo qué cualquier entorno de desarollo profesional pide, podremos acceder a nuestras fuentes de datos persistentes desde el propio entorno de desarollo ( estilo VS ) y a la hora de crear aplicaciones JSP la verdad es qué te facilita mucho la vida.
Eclipse.
Ohhh…eclipse, eclipse es un entorno de desarollo PROFESIONAL ( en todas las palabras ) (multilenguaje ) qué nos permitira crear applets, aplicaciones graficas, aplicaciones J2ME y todo lo qué deseemos hacer con dicho entorno de desarollo.
La diferencia de otros entornos de desarollo, es qué eclipse es tan robusto qué dicho entorno esta extendido a muchisimas plataformas de desarollo como: ruby,perl,c++,python,php y como no java, debido a qué hay una gran comunidad detras desarollando en el, cabe destacar qué eclipse TAMBIEN es multiplataforma, y podremos utilizarlo en cualquier plataforma qué sea capaz de correr java.
Sus caracteristicas a destacar: autocontemplado de codigo, facilidad para crear reportes,coloreado de sintaxis se pueden crear aplicaciones visuales utilizando eclipse como un RAD, adaptacion a otras plataformas de desarollo.
Ahora vosotros decidireis qué entorno de desarollo instalar, una breve explicacion de como instalar los 3 mencionados:

1 Nos dirigremos a esta direccion:
http://spider.eng.auburn.edu/user-cgi/grasp/grasp.pl?;dl=download_jgrasp.html
Una vez hemos entrado en esa web, nos posicionaremos en una parte de la web donde nos indica lo siguiente:
Windows: self-extracting exe. (3,515,588 bytes).
Al lado podremos ver un boton, si pinchamos sobre ese boton podremos descargar el ejecutable de jGrasp, una vez tengamos el jGrasp ejecutado, procederemos a instalarlo como si de un programa normal se tratara, en la ultima parte nos pedire seleccionar las extensiones con las cuales jGrasp identificara los archivos, es util como comentabamos lineas arriba para editar ficheros fuente qué no sea .java
Instalacion en GNU/Linux.
Si nos posicionamos mas abajo encontraremos mas abajo esto:
Linux, UNIX, and other systems: zip file. (3,653,017 bytes).
Si lo hemos encontrado, veremos un boton al lado, tendremos qué pinchar en ese boton y descargar el paquete zip qué nos proporciona el fabricante del software, una vez tengamos el paquete comprimido descargado, descomprimimos el zip en un determinado directorio /home/usuario/ por ejemplo, y una vez tengamos el contenido descomprimido en una carpeta podemos lanzarlo de dos maneras:
Teclea el siguiente comando:
cd /home/usuario/carpetaquécontienejgrasp
java -jar jgrasp.jar
Una vez lanzado el programa, ya podremos comenzar a usarlo sin ningun problema
Metodo 2:
Esta es la forma mas simple, darle dos clicks al jar y automaticamente se abrira solo, sencillo verdad?.
Instalacion de netbeans.
Nos dirijiremos a la siguiente direccion:
Una vez entremos en la web de descargas de netbeans, nos dirigiremos a una opcion qué pone “Platform” y seleccionaremos el sistema operativo para el cual vamos a descargar netbeans, una vez seleccionado tenemos diferentes opciones.
Opcion 1: La primera opcion, nos permite descargar un entorno de desarollo minimo para crear aplicaciones graficas y en modo consola.
Opcion 2: Esta opcion nos permite descargar un entorno de desarollo qué incluye acceso al desarollo de aplicaciones swing, modo consola, y JAVAFX.
Opcion 3:La tercera opcion nos permite descargar un entorno de desarollo con acceso a creacion de aplicaciones graficas swing, modo consola, y aplicaciones JSP visuales y struts.
Opcion 4:Esta opcion nos permite instalar un entorno de desarollo integrado exclusivamente para ruby, instalando el servidor glassfish.
Opcion 5:Entorno de desarollo integrado completamente preparado para desarollar en C/C++.
Opcion 6:Entorno de desarollo integrado preparado para desarollar aplicaciones web con php.
Opcion 7:Entorno de desarollo qué incluye todas las caracteristicas de todas las versiones mencionadas mas arriba.
En este caso elegiremos la opcion 7, y descargaremos el programa pesara aproximadamente unos ( 240 mb ), una vez descargado y ejecutado es question de instalarlo como un programa de windows, siguiente siguiente siguiente i ya tendras tu netbeans instalado en tu equipo.
Instalacion en GNU/Linux Ubuntu.
Esto es realmente alucinante verdad?, simplemente haciendo esto tendremos nuestro netbeans instalado:
apt-get install netbeans
Se descargar toda la paqueteria necesaria para instalar netbeans, y el solito instalara netbeans con todas sus dependencias incluidas, alucinante verdad?.
Instalacion de Eclipse en Microsoft Windows.

Para instalar eclipse en windows, simplemente nos tendremos qué ir a esta direccion:
Una vez hemos entrado en esa direccion, y descargamos el paquete comprimido, lo descomprimimos en cualquier directorio, i ya podremos ejecutar eclipse i ya podremos crear proyectos y comenzar a crear nuestras propias clases.
Instalacion en GNU/Linux ( ubuntu ) .
Ejeje, ya estoy de nuvo con mi ironia, simplemente tecleamos este comando:
apt-get install eclipse.
i tendremos el eclipse instalado sin dificultad alguna.
Elegir con el qué os sentais mas comodo, para gustos colores.
Curso de programacion orientada a objetos ( JAVA) parte 2

Concepto de la creacion de clases y la herencia.
Hola de nuevo chicos.
En esta segunda parte del tutorial, explicaremos por qué es fundamental modular el codigo en diferentes subclases, y por qué se realiza la herenzia entre clases.
La herencia es un concepto obvio, la herencia consiste en volcar los diferentes miembros de datos qué hemos implementado en determinada subclase qué estamos volcando a una variable en memoria, dicha variable tendra acceso a los miembros de datos definidos como pubicos, y no como privados y mas adelante veremos por qué.
Supongamos qué tenemos una lista de la compra, antes de comprar nada nuestro cerebro volca los datos qué estamos procesando en una hoja de papel, qué seguidamente se utilizara para identificar el producto qué nosotros queramos comprar, pues es ese el concepto de la herencia, es un proceso qué me permite volcar los datos de una clase a una variable y poder acceder a sus miembros de datos definidos en determinada clase.
Y qué es un miembro de datos?, un miembro de datos es un conjunto de instrucciones, qué nosotros los programadores entendemos por un trozo de codigo qué realiza una determinada accion, los miembros de datos son identificados con un identificador explicito por el cual el usuario tendra acceso y podra llamarlo, obivamente dichos miembros de datos pueden tener unos ciertos requisitos para ser ejecutados, como por ejemplo qué le pases un valor a determinado metodo para qué pueda ser ejecutado con exito.
Una clase principal, debe de tener siempre un miembro main, pero qué es un miembro main?.
Un miembro main, es el punto de entrada por donde el programa comenzara a realizar la ejecucion de miembros de datos, o simplemente implementar un pequeño algoritmo dentro del metodo main.
Dichos metodos pueden ser definidos como private, o public, pero qué significa todo esto?
Si un metodo dentro de una clase es defniido como private, logicamente la clase en la cual se ha definido el miembro solo tendra acceso a ella, las demas clases no tendran acceso por qué no se ha declarado como public, si lo hicieramos al reves sí tendriamos acceso a dicho miembro, lo cual implica lo siguiente:
Los metodos privados solo deben ser declarados cuando la clase en la cual se ha definido determinado miembro va a hacer uso de el, las demas clases no tendran acceso a determinado miembro.
Los metodos publicos seran definidos, cuando otras clases necesiten acceder a determinado miembro.
Tipos de datos:
String: cadena de texto ( mas de 1 caracter ).
char: un solo caracter.
Integer o int: numero entero.
double: entero de doble precision.
float: entero con capacidades de almacenamiento superiores al igual qué double.
long: entero con capacidades de almacenamiento muy grandes ( vease double, o float ).
Ejercicios propuestos.
- Crear una clase qué imprima vuestro nombre
Notas:
Para definir una clase lo hacemos de la siguiente manera:
class NombreClase{
//Definicion de un miembro.
public static void main(String args[]){
//Codigo.
}
}
Curso de programacion orientada a objetos ( JAVA ) Parte 1

Curso de programacion orientada a objetos en java.
Temarios.
- Introduccion a java y instalacion del jdk.
- Creando nuestra primera clase, concepto del encapsulamiento y la herencia.
- Instalando un entorno de desarollo con funcionalidades avanzadas.
- Evaluacion de expresiones ( if,else )
- Evaluacion de multiples expresiones ( switch,case ).
- Bucles ( for, while ).
- Conceptos de un vector o una matriz.
- Control de excepciones con try,catch.
- Herencia entre clases.
- Creacion de aplicaciones moviles con J2ME.
- Creacion de applets.
- Creacion de aplicaciones con acceso a protocolos de red.
- Fin del curso
Espero qué esta pequeña introduccion en java os sea util para aprender, y en general por si teneis dudas con este lenguaje pues expongais vuestras dudas y asi podemos resolverlas.
Parte 1 Introduccion a java y instalacion del jdk.
Bien lo primero qué tenemos qué meternos en la cabeza, es qué nuestros programas deben de estar planteados de una manera correcta y qué otros programadores qué vayan a tocar el codigo entiendan lo qué estan tocando, lo cual implica qué si creas codigo inlegible conseguiras qué tu codigo nunca pueda ser explotado por otros programadores y aumentar sus funcionalidades, crear un codigo legible e entendible por los usuarios siempre es de buen agradecer, a continuacion se exponen unos cuantos consejos para poder crear codigo limpio y legible por el usuario.
Consejo 1: las variables qué hagan referencia a fuentes de datos importantes del programa deben de tener un nombre coherente para qué el usuario sepa qué es lo qué esta modificando realmente.
Consejo 2: Los miembros declarados en las subclases de java deben de tener un nombre logico y comprensible, como comento mas arriba, sí por ejemplo declaramos un metodo denominado: sumarValor() entederemos qué dicho metodo esta sumando un valor a un numero qué hemos pasado como sobrecarga en el miembro sumarValor(), si no lo entendeis no pasa nada, en entradas anteriores se explicara la logica de todo esto.
Consejo 3: javadocs es un gran amigo, crea documentacion existente del codigo fuente del proyecto si otros programadores van a utilizar tu codigo, para qué entiendan con mas profundidad cual es la funcion del algoritmo implementado en las diferentes subclases qué se van definiendo.
Bien una vez citado los consejos, procederemos a explicar como realizar la instalacion del jdk en diferentes sistemas operativos ( GNU/Linux & Microsoft Windows XP ).
Windows XP.
http://java.sun.com/javase/downloads/index.jsp
Una vez hemos procedido a descargar el JDK, seguidamente pinchamos dos clicks sobre el ejecutable descargado y instalamos el JDK como sí de un programa normal se tratara.
Una vez instalado el JDK, tendremos qué setear el classpath, unicamente nos tendremos qué dirijir a
Inicio->Panel de control->Sistema->Opciones avanzadas->Variables de entorno.
Y seguidamente, se nos abrira una ventana como esta:

Nos tendremos qué dirijir a Variables del sistema, y seguidamente identificaremos una clave llamada “Path” una vez seleccionada la clave “path”, pincharemos en “modificar” y una vez tengamos la ventana para escribir en dicha clave, nos posicionaremos en el campo de texto donde se puede apreciar qué existe una ruta parecida a esta:
%SystemRoot%\system32;%SystemRoot..bla bla…, nos posicionaremos al final de la cadena y añadiremos un ;,una vez añadido el punto y coma al final de la cadena, buscaremos en C:/Archivos de programa/ y buscaremos un directorio llamado “Java”, una vez tengamos el directorio encontrado, nos dirigiremos a la carpeta qué pone “jdk_version” ( version es la version del jdk instalado ), una vez encontrada la carpeta copiamos la ruta del directorio y la añadimos despues del ; añadido al final de la cadena en la clave PATH, con lo qué nos quedara una cosa así:
;C:\Archivos de programa\Java\jdk1.6.0_11\
Y dejaremos la ruta así:
;C:\Archivos de programa\Java\jdk1.6.0_11\bin
Una vez seteado el classpath correctamente, abriremos una terminal MS-DOS en vuestro windows, y seguidamente teclearemos javac, si todo ha funcionado correctamente, el output del comando tendria qué ser el siguiente:
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are u
sed
-classpath <path> Specify where to find user class files and annotati
on processors
-cp <path> Specify where to find user class files and annotati
on processors
-sourcepath <path> Specify where to find input source files
-bootclasspath <path> Override location of bootstrap class files
-extdirs <dirs> Override location of installed extensions
-endorseddirs <dirs> Override location of endorsed standards path
-proc:{none,only} Control whether annotation processing and/or compil
ation is done.
-processor <class1>[,<class2>,<class3>...]Names of the annotation processors t
o run; bypasses default discovery process
-processorpath <path> Specify where to find annotation processors
-d <directory> Specify where to place generated class files
-s <directory> Specify where to place generated source files
-implicit:{none,class} Specify whether or not to generate class files for
implicitly referenced files
-encoding <encoding> Specify character encoding used by source files
-source <release> Provide source compatibility with specified release
-target <release> Generate class files for specific VM version
-version Version information
-help Print a synopsis of standard options
-Akey[=value] Options to pass to annotation processors
-X Print a synopsis of nonstandard options
-J<flag> Pass <flag> directly to the runtime system
Instalacion en GNU/Linux ( Ubuntu, Debian ) .
Solo se necesita teclear este pequeño comando.
apt-get install sun-java6-jdk sun-java6-bin sun-java6-jre
I ya tendreis vuestro ubuntu con todo listo para compilar aplicaciones java, facil no?.
Aquí finaliza la primera parte del curso java.
Gnome 2.26
El pasado 18 de Marzo se liberó Gnome 2.26, sigue con su aspecto sobrio y formal. Esta última versión estable nos viene cargada con un montón de novedades, por ejemplo:
-Brasero es el programa de grabación predeterminado de Gnome.
-Se pueden compartir archivos en red con Nautilus a través de WebDAV, HTTP y Bluetooth.
-Se ha mejorado el reproductor multimedia (control de volumen, subtítulos, etc.)
-Se ha mejorado la compatibilidad con pantallas externas y proyectores
-Mejoras en el navegador Epiphany
…entre otras.
Para conseguirlo podemos bajarlo de la página oficial del proyecto Gnome (http://www.gnome.org/) o bien con el gestor de actualizaciones de nuestra distribución preferida.
Más información e imágenes en:

