Analisis en Java del site Singularkitchen



Por cortesia de Zync, SingularKitchen ha solicitado un analisis en el area de Java para su sitio Web.

En realidad, este sitio no maneja applets de ningun tipo, que son pequeños trozos de codigo Java para permitir el manejo de aplicaciones independientes del Servidor. Estos applets fueron ampliamente utilizados en la decada de los 90 como una altenrativa a una pagina unicamente compuesta por codigo estatico. En el caso particular del sitio SingularKitchen, podemos notar un uso bastante extensivo de Flash, que es un codigo liviano y muy comodo para darle a la pagina un aspecto mas dinamico.

Empero, noto el uso de Javascript en las opciones de diseño personalizado de una cocina. Todo el entorno permite al usuario interactuar con la pagina sin necesidad de hacer un requerimiento al servidor en cada instancia. Eso es bueno. El problema resulta en las velocidades de conexion, pq la apliaccion resulta ser bastante lenta.

Una solucion a este problema seria realizar la aplicacion en Flash. Eso agilitaria mucho el proceso y de lograrlo, permitira un diseño no solo mas rapido, sino mas amigable con el usuario, y esto haria incrementar el numero de personas que acceden a este portal.

referente al uso de un applet, en este caso no se justifica, y el uso de los mismos ha desaparecido con la aparicion de Javascript, AJAX y Flash.

Ajax seria recomendable de utilizar en busquedas, Seria bueno que añadieran un modulo para busqueda de modelos, no solo las imagenes en la parte inferior, sino ademas una busqueda de ciertos diseños ya predispuestos, para no comenzar trabajando desde 0.

Variables y Strings

Declarar Variables

* Si desea utilizar una variable, debe declarar específicamente su tipo. Para declarar una variable del typeyou simplemente utilizar el tipo seguido por el nombre de la variable. Considere los siguientes ejemplos

byte b;
corta edad;
nationalDebt largo;
isMale boolean;

* Puede también declarar múltiples variables de un tipo en una expresión como en el ejemplo siguiente:

int edad, yrsEmployed, numChildren;

Asignación Variable de inicialización y

* Una vez que han declarado el tipo de una variable, usted está libre para inicializar y asignar a ella algún valor.

* Asignación de inicialización de las obras y al igual que hizo en Perl. Usted sólo tiene que utilizar un nombre de variable = algún valor. Por ejemplo, considere el siguiente código:

int edad;
edad = 28;

* Por supuesto, también puede declarar variables y asignar valores a las mismas, al mismo tiempo, con la siguiente sintaxis:

int edad = 28;

Casting (Cambiar de un tipo a otro)

* ¿Qué pasa si usted quiere multiplicar 2 x 1,5, o más genéricamente, int x doble? ¿El resultado ser un int o un doble o algo más?

* Bueno, en caso de duda, Java convertirá a la menos restrictiva tipo para estar seguro. Por lo tanto, en el ejemplo anterior, el resultado será un doble doble ya que es menos restrictiva.

* El siguiente gráfico muestra cómo los tipos se casta, si es posible.

byte -> corto -> int -> largo -> float
-> Doble

* Sin embargo, lo que si va a otro lado? Suponiendo que tiene dos dobles y usted desea hacer un int del producto

* Para hacer este tipo de casta, sólo tiene que realizar una misión utilizando el tipo que se casted en paréntesis antes de que el valor que se casted. Considere el siguiente ejemplo en el que la casta de un doble a un int:

double d = 123,456;
int i = (int) d;

* En este caso, se le asignará un valor de "123".

Strings

Como te habrás dado cuenta, en Java, no hay ningún tipo de variable llamada cadena. Sin embargo, a pesar de Java no tiene un tipo determinado, prevé que una clase llamada predefinidos de cadenas que puede utilizar en lugar.

* Hablaremos más sobre las clases y el uso de ellos en secciones posteriores. Sin embargo, sería agradable, al menos, introducir la cadena de clase aquí para que podamos utilizarlo en el ínterin.

* Para una instancia de cadena, usted sólo tiene que utilizar la misma sintaxis que lo haría si se tratara de un tipo:

String s = "Hola ciberespacio";

* Las cadenas tienen muy pocos métodos que le permiten manipular en todos los sentidosl. Para leer acerca de estos métodos, simplemente utilice la documentación en línea. Hablaremos acerca de cómo utilizar de manera eficiente la documentación theonline un poco más tarde, pero usted debe saber puede encontrarlo en el paquete java.lang.

Uso de Variables

Uno de los fundamentos de la programación es el uso de variables.

* Las variables le permiten asignar un poco de información a un espacio en la memoria y le permiten manipular los datos sobre la vida de su programa.


* Java tiene soporte para variables. Sin embargo, en Java, la sintaxis es un poco diferente y hay algunas cuestiones más que usted necesita para hacer frente a, simplemente diciendo que

nombre de variable = valor de la variable.

Variables de nombres

* En Java se puede variablilizar cualquier cosa por su nombre siempre y cuando no sean un "palabra clave" y sólo contienen caracteres en el conjunto de caracteres Unicode. Sin embargo, una buena práctica es utilizar los caracteres dentro de los rangos de "AZ, az, 0-9, o _".

* los nombres de variables deben ayudarle a entender lo que está sucediendo en su programa. Por lo tanto, es útil a su nombre de variables tales como la inteligencia firstName.

* Observe que hemos creado una variable firstName en el que la primera palabra fue menor caso, la segunda palabra, comenzó con una letra mayúscula y no hay espacios. Esta norma es bastante práctica y es un buen hábito. Además, muchos desarrolladores de relieve el uso de un prefijo privado variables tales como "_adminName".

Tipos de datos

* Dado que Java es un "fuertemente tipado" el tipo de cada variable debe ser declarada.

* Por ejemplo, con el fin de realizar la asignación variable se ha indicado anteriormente, que en primer lugar es necesario decirle al compilador de Java que la variable "edad" debe esperar a celebrar un entero.

* La razón de escribir es para que Java puede gestionar el uso de la memoria del ordenador cuando un programa Java se está ejecutando. Cada tipo de variable que se adjudican a una diferente cantidad de memoria dependiendo de la cantidad que necesita. Una de dos dígitos entero por ejemplo, ocupa mucho menos espacio que una de 12 dígitos decimales. Por lo tanto, cuando estamos escribiendo una variable, lo que estamos realmente haciendo es decirle a la computadora la cantidad de memoria que ponga a disposición para que el valor de la variable. El beneficio de fuerte es escribir código Java que se pueden portar fácilmente de una máquina a otra. Sin embargo, usted debe ser consciente de que si elige a un tipo variable de una manera y, a continuación, asignar a un valor que no puede celebrar, el valor se trunca para encajar en la variable y su programa producirá resultados incorrectos.

* En Java, hay ocho tipos de variables: int, corto, largo, byte, float, doble, char, y boolean.

Impresion por pantalla

Bien, como se vio en la última página, puede dirigir Java para imprimir en la salida estándar utilizando la System.out.println () método.

* Vamos a hablar más sobre los detalles de los métodos, pero por el momento, sería bueno que usted sepa que puede imprimir a la línea de comandos o de la consola de Java utilizando

System.out.println (cadena);

* Por ejemplo:

System.out.println ( "Hola ciberespacio!");

* El sistema contiene unos cuantos metodos que le permiten hacer algo más que la impresión de curso. Para leer acerca de estos métodos, simplemente utilice la documentación en línea. Hablaremos acerca de cómo utilizar de manera eficiente la documentación theonline un poco más tarde, pero usted debe saber DICHO puede encontrar el sistema de clase en el paquete java.lang.

Uso de comentarios

Asi como se usa (#) para permitir que el intérprete de Perl saber que una línea de codigo va un comentario, puede especificar los comentarios en Java

En realidad, hay varias formas de denotar comentarios en Java

Para una sola linea de comentarios, usted puede usar el "/ /"Por ejemplo, considere el siguiente código:

/ / Inicializar variables ...
int edad = 28; / / Declarar e inicializar edad

Para especificar comentarios de varias lineas, se usan los simbolos "/ *" y "* /", como se ve en el ejemplo

/ *
Esta es una clase de muestra que se utiliza para demonstratethe uso de multi-línea de comentarios.
Fue escrito por Carlos Jordan para Aprendiendo Java
* /
/* Ejemplo Definir una clase con un único
Main () , con el metodo que imprima
"Hola ciberespacio!" a la salida estándar.
*/
public class Example
(Public static void main (String [] args)
(System.out.println ( "Hola ciberespacio!");
)
)


Por último, si usted está escribiendo comentarios que deberían incluirse como parte de un javadoc, debe usar la "/**" "* /" combinación como en el siguiente ejemplo:

/ *
Esta es una clase de muestra que se utiliza para demonstratethe uso de multi-línea de comentarios.
Fue escrito por Carlos Jordan para Aprender Java. Estos comentarios no aparecen en la documentación de java
* /
/ **
Ejemplo definir una clase con un único
main () método que se imprima
"Hola ciberespacio!" a la salida estándar.
Este comentario aparece en el javadoc.
* /

Ejemplo clase pública
(
public static void main (String [] args)
(
System.out.println ( "Hola ciberespacio!");
)
)

Polimorfismo

Bueno, hay una característica final de los objetos que usted necesita  comprender.

     * Los objetos son lo suficientemente inteligentes como para ser dinámicos. En concreto, tienen la capacidad de reaccionar diferente en función de la situación.

     * Esto es importante porque hace que la API fiable y fácil de entender para la próxima desarrollador.

     * Veamos un ejemplo. Supongamos que usted tiene un método denominado "print ()".

     * La primera pregunta que usted podría pedir es, "¿qué significa este método de impresión: imágenes, texto, o qué?"

     * Bien utilizando "polimorfismo", un objeto se puede hacer para manejar cualquier situación con el mismo nombre de método. Por lo tanto, dependiendo de lo que el objeto se pide a la prensa, la que estará en condiciones de imprimir.

     * En lugar de tener métodos independientes como printPicture (), printLetters (), y printNumbers () que ha unificado un print () y el objeto en sí determina cómo manejar los diferentes tipos de situaciones.

En pocas palabras, el polimorfismo es mejorado método de llamar. En pocas palabras, a través de e flujo de herencia  Animal / Mamíferos / Cat ejemplo:

void test ()
(
  Cat Simon = new Cat ();
  Animal creature = Simon; / /  upcasting
  creature.eat (); / / = Cat.eat 
  Perro Rover = new Perro ();

   / / Rover segura upcast referencia a los animales
  feed(Rover);
  feed(Simon);
)
void feed(Animal a)
(
   / / Creature.eat () = Cat.eat ()
   / / feed(rover) = Dog.eat ()
   / / feed(Simon) = Cat.eat ()
   a.eat ();
)

En este caso,  Animal.eat ()  es polimórfico.

Polimorfismo: "Llamada a un Java / método virtual utilizando una referencia a una superclase más generalizado de un objeto real invoca el método en el objeto real (el más específicos de subclase), utilizando un bottom-up mecanismo de búsqueda".

Tutorial de Java, la definición de polimorfismo indica que el nombre de la función de sobrecarga es la misma cosa, que es una declaración incorrecta ".

Herencia entre Objetos

Pero los beneficios de los objetos no se detienen ahí.

Los objetos también tienen la habilidad especial a heredar la funcionalidad a partir de otros objetos.

Veamos una metafora considerando al gato como un bojeto:

Un gato es un gato. Dado que se trata de un gato, sabemos que tiene propiedades incluyendo bigotes, garras retráctiles y dientes afilados. Sabemos también que los métodos que ha incluido el hecho de que purrs cuando es feliz, que caza ratones, y rasgones hasta el sofá cuando es afilado sus garras.

Pero un gato es más que un gato. También es un mamífero. Como un mamífero, que hereda ciertos atributos compartidos por todos los mamíferos. Por ejemplo, tiene glándulas mamarias, es de sangre caliente, que gestates sus jóvenes internos, que respira, mantiene la homeostasis, etc ...

Al pensar en la herencia y los objetos, es útil distinguir entre un "es una" relación y un "tiene una" relación porque los objetos pueden tener ambos tipos de relación con los demás.

Por ejemplo, si bien se puede decir un gato es un objeto de mamíferos, y tiene un objeto llamado cerebro, no se puede decir un gato tiene un objeto mamifero y un objeto cerebro.

Con la herencia, si encuentras a alguien que ya ha desarrollado un objeto que es "sobre todo" lo que usted necesita, puede añadir fácilmente nuevas funciones sin romper los antiguos, o incluso tener que comprender cómo los antiguos trabajos.

En otras palabras, la herencia le permite reutilizar fácilmente el código.

Los Objetos en POO

La belleza de los objetos que se puede utilizar incluso si no sabe cómo funcionan por dentro. Como hemos dicho antes, los objetos son "como cajas negras de funcionalidad". Entonces, ¿qué significa eso exactamente?

Una caja negra es un término de ingeniería que trabaja como éste. En primer lugar, arrojando algo en la caja negra. Luego, espere mientras es cosa nuestra "transformado por arte de magia" dentro del mismo. Por último, recibimos un nuevo resultado de la misma caja negra La belleza reside en que es todo lo que necesitamos saber es la manera que retorna adadoa una cierta entrada No necesitamos entender la magia interior.


* Bueno, eso significa que nadie, sino el objeto en sí necesita saber nada acerca de cómo sus propiedades y métodos se definen y aplican.

* Son la lista de temas almacenados en una matriz o un vector? ¿Cómo se maneja la clasificación, con un rápido o una especie de burbuja tipo? ¿Cómo es una selección marcada y ¿cómo manejar múltiples selecciones?

* Encapsulación significa que las respuestas a todas estas preguntas son de carácter privado, conocido sólo por el objeto en sí.

* ¿Cuál es el beneficio de esto?

* Bueno, la ventaja es que si quiero usar un Seleccione la casilla, no es necesario para hacer frente a todas las del complejo código que se encarga de toda la funcionalidad de un selecto cuadro. En lugar de ello, acabo de poner el auto-contenidos, seleccione la casilla objeto de mi aplicación y uso.

* Se trata de un concepto increíblemente útil porque significa que es mucho más fácil de entender y modificar el código porque lo único que necesita para hacer frente a pequeños trozos de código en un momento dado. Como desarrollador, no es necesario para hacer frente a las complejidades de seleccionar la casilla funcionalidad, acabo de utilizar la cosa!

* También es una buena metáfora para el mundo real, que puede ser pensado como está compuesto por objetos encapsulados.

* Considere la posibilidad de la computadora que está usando para leer esto. ¿Sabe cómo funciona la CPU? Lo más probable es que usted no. Pero eso está muy bien. Funciona independientemente. Y el hecho de que usted no tiene que pasar un tiempo de aprendizaje de ingeniería eléctrica significa que son libres de gastar su tiempo construir las cosas "mediante" la CPU.

OOP, una Introduccion a Orientacion a objetos

OOP fue construido para ayudar a administrar la complexificación de software a través de la abstracción. En POO, construir pequeños segmentos de bits de código que correspondan más estrechamente a la forma en que usted piensa acerca de su programa y la forma en que su programa refleja el mundo real.

* OOP proporciona la abstracción a través de cuatro conceptos fundamentales:

o Objetos
o Encapsulación
o Herencia
o polimorfismo

Echemos un vistazo a cada uno de estos conceptos:

POO se basa en el concepto de objetos. Los objetos son como cajas negras de funcionalidad que son totalmente independientes de cualquier código que las referencias o los utiliza.

* Los objetos pueden ser consideradospor exhibir dos características. Los objetos tienen propiedades y métodos de objetos.

* Propiedades de describir las cualidades de un objeto, mientras que los métodos de especificar el comportamiento del objeto.

El Gato
PropiedadesMetodos
Color de Ojos
emite un sonido
Numero de patas
persigue ratones
especiedestruye el sofa


Aunque no se trata de una analogía perfecta, a veces cuando se trata de averiguar lo que un objeto se ve así, crear los objetos en términos de nombres, las propiedades en términos de adjetivos, y los métodos en términos de verbos.

POO, una introduccion a la Programacion Orientada a objetos

Diseño orientado a objetos (OOD) es una metodología de programación que tiene las siguientes características:

* OOD permite a los programadores más de cerca el modelo del mundo real que nunca.

* OOD es también una metodología que se presta así a la rápida de prototipos. Object-Oriented programas pueden ser modificados y construido muy rápidamente porque OOD proporciona el programador con excelentes herramientas para la abstracción.

* OOD produce código reutilizable. Una vez que los objetos se construyen, es muy fácil de usar en el futuro las aplicaciones por lo que no es necesario que nunca volver a inventar la rueda.

* Por último, OOD ayuda a los programadores trabajar en un entorno dinámico. Object-Oriented programas pueden ser modificados de manera rápida y fácil como el mundo real las necesidades del cambio.

# Echemos un vistazo a lo que el gurú de Java Object Orientación, Bruce Eckel tiene que decir,

"Programación orientada a objetos hace un llamamiento a múltiples niveles. Para los administradores que promete más rápido y más barato desarrollo y mantenimiento. Para los analistas y los diseñadores se convierte en proceso de modelado más sencillo y produce un claro y manejable diseño. Para los programadores de la elegancia y la claridad del objeto y el modelo de poder orientada a objetos y herramientas de programación de las bibliotecas hace mucho más agradable tarea, y los programadores de experimentar un aumento de la productividad. Todo el mundo gana, al parecer.

Si hay un aspecto negativo es la costa de la curva de aprendizaje. Pensar en objetos es una espectacular salida de pensamiento relacionado con la programación estructurada, y el proceso de diseño de objetos es mucho más difícil que el diseño estructurado, especialmente si está tratando de crear objetos reutilizables. "

Bueno,esto ya es bastante abstracto. Vamos a ver algunos aspectos históricos relacionados con la historia del desarrollo de este paradigma

Aprendiendo Java. Una corta introduccion

Java fue desarrollada originalmente en SunMicrosystems en 1991 para proporcionar una plataforma independiente del lenguaje de programación y el sistema operativo para la electrónica de consumo (televisores, tostadoras y VCRs).

En la sintaxis y la ejecución, Java es muy parecido a una versión simplificada de C + +. ( "simplificado" debe leerse en la frase anterior como "una mejora"). Se trata de un muy sólido, distribuido, de alto rendimiento, orientado a objetos, multi-idioma de rosca con todas las características usuales. Como tal, se basa en años de C + + de desarrollo, tomando lo bueno y prescindir de la mala.

Como así lo ocurrido sin embargo, Java no se construirá en el mercado de electrónica de consumo. En lugar de ello la herida en nuestros navegadores web.

Java parece ser un ajuste perfecto para la web. El lenguaje en sí es muy pequeña (ya que fue construido a ir dentro de tostadoras y relojes de alarma con pequeñas cantidades de memoria). Por lo tanto, podría ser trasladado rápidamente a través de Internet.

Por otra parte, Java es un lenguaje independiente de la plataforma. Es decir, cualquier ordenador con Java virtualmachine puede ejecutar un programa Java. Los programas pueden ser escritos en cualquier lugar y ser ejecutado en cualquier lugar. Esto es crucial porque si un idioma no puede funcionar en cualquier máquina, no se puede utilizar en la web que debe de servicio cada máquina, el lenguaje y environmentimaginable.

Plataforma independencia Java funciona porque es un interpretarse más que un lenguaje compilado. A diferencia de C o C + + código, cuando Java es compilado, no es compiledinto plataforma específica código máquina, pero independiente de la plataforma en código byte. Este código byte se distribuye a través de Internet y ha sido interpretado por una máquina virtual (por lo general instalados en un navegador web en estos días) en el que la plataforma que se está ejecutando. Tal vez una imagen sería útil ...

Por lo tanto, como un programador, que necesita sólo se refieren a ti mismo con el genérico lenguaje de programación Java y compilar sus aplicaciones en bytecode en sea cual sea el sistema que está usando. A continuación, puede estar seguro de que su bytecode willbe ejecutado correctamente si sus clientes están utilizando Mac, PC, Unix cajas o cualquier otra cosa.

Tal vez el mejor resumen de los objetivos de diseño y los logros de Java viene de Gary Cornell en la introducción de Core Java. En esta introducción, Cornell esboza 12 principios de diseño utilizados en el desarrollo del lenguaje Java. Para ello, cita el de Java Libro Blanco de SunSoft. Voy a duplicar las comillas aquí, pero usted no debe considerar su entorno de desarrollo Java Biblioteca completa sin una copia de Core Java.

Java es simple

"Queríamos crear un sistema que puede ser programado fácilmente sin mucha formación esotérica y que al día de hoy apalancado prácticas estándar ... Por lo tanto, aun cuando nos dimos cuenta de que C + + no era apropiado, hemos diseñado lo más cerca de Java a C + + como sea posible con el fin de hacer el sistema sea más comprensible. Java omite muchos rara vez utilizada, mal entendido, confuso características de C + + que, en nuestra experiencia, traer más dolor que beneficios ".

Java es pequeño

"Otro aspecto de ser sencilla está siendo pequeño. Uno de los objetivos de Java es permitir la construcción de software que puede funcionar stand-alone en máquinas pequeñas."

Java es orientado a objetos

"En pocas palabras, diseño orientado a objetos es una técnica que se centra en el diseño de datos (= objetos) y en las interfaces a ella ... El objeto de orientedfacilities de Java son esencialmente las de C + +."

Java es Distribuido

"Java cuenta con una amplia biblioteca de rutinas para hacer frente a los protocolos TCP / IP como HTTP y FTP. Aplicaciones Java pueden abrir los objetos y el acceso a través de la red a través de las URL con la misma facilidad que cuando se accede a un sistema de ficheros local."

Java es robusto

"Java está pensado para escribir programas que deben ser fiables en una variedad de maneras. Java pone mucho énfasis en principios de la comprobación de posibles problemas, más tarde dinámica (tiempo de ejecución) el control y la eliminación de situaciones que son propensos a error."

Java es segura

"Java está destinada a ser utilizada en red / entornos distribuidos. Con ese fin, un montón de se ha hecho hincapié en la seguridad. Java permite la construcción de libres de virus, sin alterar los sistemas."

Java es la arquitectura neutral

"El compilador Java [genera] bytecode instrucciones que no tienen nada que ver con una particular arquitectura. Por el contrario, están diseñados para ser fáciles de interpretar en cualquier máquina y fácilmente traducirse en código máquina nativo en la marcha."

Java es portátil

"A diferencia de Cy C + +, no hay la aplicación por los dependientes de" los aspectos del pliego de condiciones. [Por ejemplo], los tamaños de los tipos de datos primitivos se especifican, como es el comportamiento de la aritmética en ellos "

Java es Interpretado

"El intérprete Java puede ejecutar bytecode de Java directamente en cualquier máquina a la que el intérprete ha sido portado. [Así] el proceso de desarrollo puede ser mucho más rápida y exploratorio".

Java es un alto rendimiento

"Si bien el desempeño de bytecode es interpretado por lo general más que suficiente, hay situaciones en las que mayor rendimiento es obligatorio. El bytecode se puede traducir al vuelo en código máquina para la CPU se ejecuta la aplicación."

Java es Multithreaded

"Los beneficios de multithreading están mejor respuesta interactiva y en tiempo real de comportamiento. [Esto se debe a que un programa puede hacer algo más que una cosa a la vez]"

Java es Dinámico

"En un número de maneras, Java es un lenguaje más dinámico que C o C + +. Fue diseñado para adaptarse a un entorno en evolución ... Bibliotecas libremente puede añadir nuevos métodos y variables de instancia sin ningún tipo de efecto sobre sus clientes."

BD-J, java hasta en la sopa

Por si no fuera poco contar con tecnología Java en los moviles, computadoras, PDAs, refrigeradores y demás enseres de nuestra vida cotidiana, ahora los encontramos disponible dentro de cada cd de Blue Ray. Esta nueva tecnología, llamada BD-J o Blue Ray Java, da un nuevo giro a la interacción que el usuario pueda tener con la película o información contenida dentro del disco.

BD-J es una característica abanderada de el formato óptico de alta definición blu-ray que hace posible la interactividad entre el usuario y el contenido del disco blu-ray. Esto hace posible a las grandes desarrolladoras y editoras de películas en blu-ray crear libremente contenido interactivo BD-J e incluirlo en el disco bluray en forma de juegos interactivos, localizador, editor y reorganizador de escenas creando en el usuario la sensación de poder convertirse en director de su película favorita al modificarla a su gusto y convertirla en su propio film. Todo eso nunca antes imaginado en un DVD convencional, pero posible a la tecnologia de blu-ray.

BD-J ya es compatible por actualización de firmware en los primeros reproductores bluray comercializados, mientras que los nuevos lo soportan de serie por estándar de la Blu-ray Disc Association o BDA (Asociación de Discos Blu-Ray).

La película Piratas del Caribe de Disney editada en blu-ray usa esta tecnología, permitiendo jugar e interactuar con los personajes con sólo insertar el disco en el reproductor. Actualmente se prevee la masificación de este agregado del blu-ray BD-J en los próximos títulos que seran lanzados en este formato.

Esto demuestra el gran poder almacenado dentro de un simple sistema que comenzo siendo diseñado para refrigeradores. No deja de sorprendernos
Para mas informacion visita
BD-J, en wikipedia
Una página dedicada exclusivamente a tratar las librerias e interfaces de Java con el formato BD, pinchar aqui.

Fontanero enojado por aprender Java

Hablamos con Antonio Ruiz, fontanero de Google España, quien ya ha puesto su curriculum en infojobs
Antonio Ruiz, pasará a la historia por ser el primer empleado descontento de la historia de Google y ya anunciado que ha "colocado el cuccírulum en infojobs y ya me llueven las ofertas". Google España por el momento no se ha pronunciado y los compañeros del departamento de mantenimiento de Google han preferido, por el momento, permanecer en silencio. Escritofrenia ha podido hablar con él.
Según el propio Antonio "es cierto que en Google el 60% del espacio se dedica al relax y el 40% al trabajo" cosa que a Antonio nunca le gustó: "yo soy currante!", afirma alzando la voz, " y en el trabajo hay que estar por la faena" sentenciando con la frase "en Google lo que hay es mucho cachondeo".

Otra de las razones de su descontento es, "haber tenido que aprender Java " a pesar de que el puesto de trabajo ofertado en Google era de "oficial de 1º en fontanería y lampistería"y asegura que "me obligaron a chuparme un curso intensivo de 6 meses" y hasta el momento "no me ha servido para nada, yo arreglo tuberías, en dos años, no he programado ni una puta linea de Java"

Para los curiosos, éste es el currículum de Antonio que actualmente se encuentra en las secciones de "Profesiones artes y oficios" e Informática y telecomunicaciones:
  • FP 2 en lampistería
  • 2 años cómo oficial de 1º en el departamento de mantenimiento de Google España
  • Curso de Excell y Word en Centro de Estudios Ofimáticos Ramón y Cajal
  • Curso completo de Java en el centro de estudios informáticos Xavi Solé de Google España.
  • Experiencia demostrable en entornos Unix/Linux y Windows
  • Francés hablado, léido y escrito

La empresa Sun esta en peligro de quiebra

Debido a pérdidas de USD$34 millones en el último cuatrimestre fiscal, SUN planea despedir a 1000 empleados de su división estadounidense y en sus otras divisiones a un número entre 500 y 1500. Lo que podría sumar un total de 2500 empleados despedidos a nivel mundial, el 7% del total de sus empleados.

El principal problema de Sun es que sus ganacias en Estados Unidos han venido cayendo año tras año en un 10% y dicha región representa alrededor del 40% del total de ganacias de la empresa. De acuerdo al CEO Jonathan Schwartz, continuarán con su estrategia de diversificar sus negocios con proyectos como la compra de MySql y no cambiarán su idea de regalar software para vender hardware.

Por otro lado, ya hay rumores de que Sun tendrá que buscar una fusión con otra empresa del sector para poder sobrevivir. Los analistas ponen a Fujitsu como la empresa más adecuada para fusionarse, aunque tampoco descartan a HP.

Además, dado que desde que Schwartz llegó al puesto de CEO, las acciones de la empresa han caído un 50%, ya se habla de que Sun ha iniciado la búsqueda de un remplazo que corrija el rumbo de una compañía que continúa perdiendo terreno ante IBM y HP en el mercado de servidores.

Actualización de Sun Java con problemas de seguridad

Sun Microsystems ha publicado actualizaciones para Java que solventan múltiples vulnerabilidades en el Java Runtime Environment (JRE) y Java Development Kit (JDK) que podrían permitir a un atacante remoto elevar privilegios, efectuar una denegación de servicio y potencialmente ejecutar código arbitrario. estas son las vulnerabilidades, asi que cuidado con descargarse las ultimas versiones. Al final se encuentran las versiones recomendadas a descargar:

* Un fallo en el procesamiento XML podría permitir acceder a ciertos recursos URL no especificados y potencialmente denegar el servicio en la máquina que este ejecutando el JRE. Afecta a JRE y JDK 6 Update 6 y anteriores.

* Existe otro fallo en JRE al procesar XML que podría permitir que una aplicación o applet no confiable tuviera acceso a ciertos recursos URL, tales como archivos o páginas web. Afecta a JRE y JDK 6 Update 6 y anteriores; JRE y JDK 5.0 Update 15 y anteriores.

* Un desbordamiento de la memoria intermedia en el procesamiento de fuentes del JRE podría permitir a un applet o aplicación sin autenticar leer y escribir archivos locales y potencialmente ejecutar aplicaciones que estén accesibles. Afecta a JRE y JDK 5.0 Update 9 y anteriores; JRE y SDK 1.4.2_17 y anteriores; JRE y SDK 1.3.1_22 y anteriores.

* Una vulnerabilidad no especificada en el soporte de lenguajes de scripting del JRE podría permitir a un applet o aplicación sin autenticar elevar privilegios. Afecta a JRE y JDK 6 Update 6 y anteriores.

* Un fallo en el agente JMX del JRE podría permitir a un agente JMX remoto ejecutar operaciones no autorizadas en un sistema con la opción de monitorización local JMX activada. Afecta a JRE y JDK 6 Update 6 y anteriores; JRE y JDK 5.0 Update 15 y anteriores.

* Varios fallos de seguridad no especificados en el JRE podrían permitir a un applet o aplicación remota especialmente manipulada saltar restricciones de seguridad y acceder a recursos de la red con los privilegios de un applet o aplicación que hubiese sido descargada y ejecutada en una máquina local. Afecta a JRE y JDK 6 Update 6 y anteriores; JRE y JDK 5.0 Update 9 y anteriores; JRE y SDK 1.4.2_17 y anteriores; JRE y SDK 1.3.1_22 y anteriores.

* Una vulnerabilidad no especificada en Java Web Start podría permitir a una aplicación Java Web Start crear archivos arbitrariamente con los permisos del usuario que la ejecute. Afecta a JRE y JDK 6 Update 6 y anteriores; JRE y JDK 5.0 Update 15 y anteriores; JRE y SDK 1.4.2_17 y anteriores.

* Una vulnerabilidad no especificada en Java Web Start podría permitir a una aplicación Java Web Start crear o borrar archivos arbitrariamente con los permisos del usuario que la ejecute. Afecta a JRE y JDK 5.0 Update 15 y anteriores; JRE y SDK 1.4.2_17 y anteriores.

* Una vulnerabilidad no especificada en Java Web Start podría permitir a una aplicación Java Web Start determinar la ruta donde se encuentra la cache de Java Web Start. Afecta a JRE y JDK 6 Update 6 y anteriores; JRE y JDK 5.0 Update 15 y anteriores; JRE y SDK 1.4.2_17 y anteriores.

*La última vulnerabilidad está causada por un defecto en la implementación de Secure Static Versioning que podría permitir que ciertos applets se ejecutaran en una versión antigua de JRE a pesar de tener instalada una versión más reciente.

Es recomendable desinstalar de forma manual las versiones antiguas de Java, debido a que esto no se realiza de forma automática durante el proceso de instalación de una nueva versión.

Se recomienda instalar las siguientes versiones no vulnerables:

JDK y JRE 6 Update 7

JDK y JRE 5.0 Update 16

SDK y J2SE 1.4.2_18

SDK y J2SE 1.3.1_23

J2EE

  • Las soluciones J2EE no dependen de otros productos ni de interfaces de programación de ningún fabricante.
  • Arquitectura para implementar aplicaciones empresariales usando Java y tecnologías de Internet
  • Modelo de desarrollo de aplicaciones basado en componentes.
  • Aplicaciones distribuidas en múltiples capas: la lógica de la aplicación se divide en componentes que se instalan en equipos diferentes de acuerdo a la capa al que pertenecen.

Plataformas de Ejecución Java

Plataformas de Ejecución Java

  •  Java Runtime Environment o JRE es la plataforma para ejecución de aplicaciones Java escritas para J2SE. La Java Virtual Machine (JVM) forma parte del JRE.
  • Java Enterprise Edition o J2EE es la
    plataforma para la ejecución de aplicaciones
    empresariales escritas en Java.

Ejemplos de JAVA

Buscas ejercicios y ejemplos de JAVA en http://www.exampledepot.com/
El deposito de los ejemplos econtraras

e551. The Quintessential Applet
e1089. Sudoku Solver
e429. Quintessential Regular Expression Search and Replace Program
e1086. if/else Statement
e1087. try/catch Statement
e1076. Creating a Type-Specific Map [5.0]
e1075. Creating a Type-Specific List [5.0]
e1078. Creating a Bounded Work Queue [5.0]
e1088. Catching all Errors and Exceptions
e55. Getting the Size of the Java Memory Heap
e102. Implementing an Unbounded Work Queue
e1085. The Quintessential Program to Send E-Mail [J2EE]
e1077. Inserting an Element into a Sorted Array
e362. Inserting an Element into a Sorted List
e360. Finding an Element in a Sorted Array
e361. Finding an Element in a Sorted List
e358. Creating a Sorted Set
e345. Listing the Elements of a Collection
e1034. Adding Undo and Redo to a Text Component
e1071. Copying One File to Another
e1072. Copying a Directory
e1084. Finding Elements by Attributes in a DOM Document Using XPath
e89. Executing a Command
e90. Reading Output from a Command
e903. Listening for Changes to the Selected File in a JFileChooser Dialog
e1024. Finding a Node in a JTree Component
e950. Packing a Column of a JTable Component
e1003. Overriding a Few Default Typed Key Bindings in a JTextComponent
e1031. Setting the Row Height of a JTree Component
e1030. Preventing the Expansion or Collapse of a Node in a JTree Component
e1026. Removing a Node to a JTree Component
e1022. Enabling and Disabling Multiple Selections in a JTree Component
e978. Enumerating All the Views in a JTextComponent

Aprender JAVA en Proginternet.com

Todas las notas publicadas en este sitio Aprender JAVA en seran publicada a partir de ahora en el blog de www.ProgInternet.com
por lo que tambien podeis seguir las notas y comentarios por ese medio