miércoles, 5 de enero de 2011

martes, 31 de agosto de 2010









lunes, 21 de diciembre de 2009

Principios de programacion para sitios web




Curso de diseño Web

Conceptos de progaramacion.

Alfabeto: Conjunto de caracteres definidos para formar ileras.

Sintaxis: Conjunto de reglas que determinan si una ilera es validad.

Semantica: Conjunto de ileras que determinan si una ilera tiene sentido.

Lenguaje:Grupo de ileras que cumplen con las reglas gramatiacales establecidas.

Tipos de lenguaje(Respecto al hartware)

Hay 3 tipos de lenguaje

Nivel Bajo:

Nivel Medio:

Nivel Alto :

1-) Nivel bajo es el lenguaje de maquina , es el lenguaje propio del ordenador vasado en el sistema vinario .
1-) Nivel Bajo: Es el lenguaje de maquina, es el lenguaje propio del ordenador vasado en el sistema vinario.
Nivel Bajo:

Nivle Medio:

Nivel Alto:

1-) Nivel Bajo: Es el lenguaje de maquina, es el lenguaje propio del ordenador vasado en el sistema vinario.

lunes, 13 de julio de 2009

Mantenimiento

Al implementar una aplicacion web , ablemos desde una pagina hasta una aplicacion administrativa o de la indole que sea debemos tener en cuenta que debemos tener cuidados tanto con la aplicacion , el servidor donde se hospedan las aplicaciones , por lo que debemos considerar actividades que se deben realisar para mantener el sistema en optimo funcionamiento.

Depuracion de archivos basura:
eliminar de nuestro servidor peroiodicamente archivos temporales , archivos que ya no se utilisen aplicasiones inesesarias , utilisar los optimisadores de espacio para asegurar un servidor funcional y sin problemas de sofware.

Respaldos:

Realisar periodicamente respaldos de la aplicasion y base de datos cuando se va a someter a matenimiento el equipo se realisan ajustes o cambios a la aplicacion.

Mantenimiento Preventivo:

Recordemos de realisar la limpiesa del servidor periodicamente que se encuentre libre de polvo para evitar un malfuncionamiento del equipo por falta de limpiesa realisar esto almenos cada 2 meses para mantener el equipo en enselentes condiciones .

IMPLEMENTACION

En esta fase procederemos a poner en funcion nuestra aplicasion para ello podemos recurrir a las tecnicas de implementacion que conosemos como :
Implementacion directa :es decir se ba a proceder a tarabajar directa mente con la aplicacion ya sea porque no existe aplicasion alguna o bien se sustitulle directa mente la anterior por el nuevo sistema y en la practica se evaluara para mejoraras y ajustes a la aplicacion.

Implementacion en paralelo :En esta se a trabajar con las dos aplicaciones , la nueva y la anterior comprobando resultados para ir evaluando la nueva y revisar que este correcta o bien requiera de mejoras.
En la actualidad en este tipo de sistemas se recurre mas a la implementacion directa ya que regularmente se recuren a aplicasiones diseñadas a innovar para que la relacion entre la aplicaccion y el usuario final sea amigable , es decir que el usuario se sienta comodo con la aplicacion y facil de utilisar.

Selecsion de lenguaje y desarrolllo de la aplicacion

Una ves superada ñla etapa de diceño y que aya sido evaluada ,
procederemos a realisar la seleccion de la plataforma o lenguaje de progarmacion en la que va a ser desarrollada la aplicacion.
Para seleccionar la plataforma para el desarrollo de la aplicacion debemos tomar en cuenta las funciones que se vana realisar, equipo con el que contamos , sistema operativo,conectividad con la que se cuenta , plataforma de datos con las que cuentan los sistemas actuales.

Java Resumen Ejecutivo

Java SE


Java Platform, Standard Edition o Java SE (conocido anteriormente hasta la versión 5.0 como Plataforma Java 2, Standard Edition o J2SE), es una colección de APIs del lenguaje de programación Java útiles para muchos programas de la Plataforma Java. La Plataforma Java 2, Enterprise Edition incluye todas las clases en el Java SE, además de algunas de las cuales son útiles para programas que se ejecutan en servidores sobre workstations.

Comenzando con la versión J2SE 1.4 (Merlin), la plataforma Java SE ha sido desarrollada bajo la supervisión del Java Community Process. JSR 59 la especificación para J2SE 1.4 y JSR 176 especificó J2SE 5.0 (Tiger). En 2006, Java SE 6 (Mustang) está siendo desarrollada bajo el JSR 270.

Lo siguiente son descripciones de algunos de los principales paquetes Java SE.
Contenido
[ocultar]

* 1 Paquetes de Propósito General
o 1.1 java.lang
+ 1.1.1 java.lang.ref
+ 1.1.2 java.lang.reflect
# 1.1.2.1 Descubrimiento
# 1.1.2.2 Usar por nombre
# 1.1.2.3 Arrays y proxies
o 1.2 java.io
+ 1.2.1 Streams
+ 1.2.2 Acceso aleatorio
+ 1.2.3 Sistema de Ficheros
o 1.3 java.nio
o 1.4 java.math
o 1.5 java.net
o 1.6 java.text
o 1.7 java.util
* 2 Paquetes de propósito especial
o 2.1 java.applet
o 2.2 java.beans
o 2.3 java.awt
o 2.4 java.rmi
o 2.5 java.security
o 2.6 java.sql
o 2.7 javax.rmi
o 2.8 org.omg.CORBA
o 2.9 javax.swing
o 2.10 javax.swing.text.html.parser
* 3 Enlaces externos

Paquetes de Propósito General [editar]

java.lang

[editar]

El paquete Java java.lang contiene clases fundamentales e interfaces fuertemente relacionadas con el lenguaje y el sistema runtime. Esto incluye las clases raíz que forman la jerarquía de clases, tipos relacionados con la definición del lenguaje, excepciones básicas, funciones matemáticas, Hilos, funciones de seguridad, así como también alguna información sobre el sistema nativo subyacente.

Las principales clases en java.lang son:

* Object

– la clase que es la raíz de toda la jerarquía de clases.
* Enum

– la clase base para las clases enumeration (propias de J2SE 5.0).
* Class

– la clase que es la raíz del sistema de reflexión Java.
* Throwable

– la clase que es la clase base de la jerarquía de clases de excepciones.
* Error

, Exception

, y RuntimeException

– las clases base de cada tipo de excepción.
* Thread

– la clase que permite operaciones con hilos.
* String

– la clase para cadenas String y literales.
* StringBuffer

y StringBuilder

– clases para realizar manipulación de strings(StringBuilder como parte de J2SE 5.0).
* Comparable

– la interfaz que permite comparación genérica y ordenamiento de objetos (como parte de J2SE 1.2).
* Iterable

– la interfaz que permite iteración genérica usando el bucle for mejorado (como parte J2SE 5.0).
* ClassLoader

, Process

, Runtime

,SecurityManager

, y System

– clases que suministran "operaciones del sistema" que gestionan la enlazado dinámico de clases, creación de procesos externos, investigaciones del entorno del host tales como la hora del día, y refuerzo de políticas de seguridad.
* Las clases Math

y StrictMath

– suministran funciones matemáticas básicas tales como seno, coseno, y raíz cuadrada(StrictMath forma parte de J2SE 1.3).
* Las clases wrapper primitivas encapsulan tipos primitivos como objetos.
* Las clases exception básicas lanzan excepciones del nivel del lenguaje y otras excepciones comunes.

Las clases de java.lang son importadas automáticamente a cada Fichero fuente.

java.lang.ref

[editar]

El paquete es importado automáticamente a cada Fichero fuente. El paquete java.lang.ref suministra tipos más flexibles de Referencias que otros disponibles, permitiendo interacción limitada entre la aplicación y la recolección de basura de la Máquina virtual java (JVM) . Es un paquete importante, suficientemente céntrico al lenguaje para que los diseñadores del lenguaje le den un nombre que comience por "java.lang", pero es de propósito especial, y no usado por muchos desarrolladores. Este paquete se añadió en J2SE 1.2.

Java tiene un sistema de referencias más expresivo que la mayoría de los otros lenguajes de programación que la emplean, lo cual permite comportamiento especial para recolección de basura. Una referencia normal en Java se conoce como una referencia fuerte. El paquete java.lang.ref define otros tipos de referencias—referencias soft, weak, y fantasma. Cada tipo de referencia está diseñado para uso específico.

Una SoftReference

puede usarse para implementar una caché. Un objeto que no es recuperable por una referencia fuerte (esto es, no es recuperable fuertemente), pero que está referenciado por una referencia soft se llama recuperable softly. Un objeto recuperable softly puede ser recolectado como basura a decisión del recolector de basura. Esto generalmente significa que los objetos recuperables softly solo serán recolectados cuando la memoria libre sea baja, pero también, es la decisión del recolector de basura. Semánticamente, una referencia soft significa "manten este objeto a menos que la memoria se necesite."

Una WeakReference

se usa para implementar mapas weak. Un objeto que no es recuperable fuertemente o softly, pero se referencia por una referencia weak que se llamada "recuperable weakely". Un objeto recuperable weakly será recolectado a la basura durante el siguiente ciclo de recolección. Este comportamiento se usa en la clase WeakHashMap. Un mapa weak permite al programador poner pares clave/valor en el mapa y no preocuparse que los objetos tomen memoria cuando la clave ya no sea recuperable en ningún sitio más. Semánticamente, una referencia weak significa "conseguir la liberación de este objeto cuando nada más lo referencia."

Una PhantomReference

se usa para referenciar objetos que han sido marcados para recolección de basura y han sido finalizados, pero no han sido aún reclamados. Un objeto que no es recuperable fuertemente, softly o weakly, pero es referenciado por una referencia fantasma se llama recuperable fantasma. Esto permite limpieza más flexible que es posible con el mecanismo de finalización solo. Semánticamente, una referencia fantasma significa "este objeto no se necesita más y ha sido finalizado en preparación a ser recolectado."

Cada uno de esos tipos de referencia extienden la clase Reference

la cual suministra el método get()

para devolver una referencia fuerte al objeto referido (o null si la referencia ha sido aclarada o si el tipo de referencia es fantasma), y el método clear()

para limpiar la referencia.

java.lang.ref también define la ReferenceQueue

de clase, la cual puede usarse en cada aplicación discutida sobre mantener la pista de los objetos que han cambiado el tipo de referencia. Cuando una Reference se crea está registrado opcionalmente con una cola de referencias. La aplicación encuesta la cola de referencias para obtener referencias que han cambiado el estado de alcanzabilidad.

java.lang.reflect

[editar]

Reflexión (programación) es un componente de la API Java la cual permite al código Java examinar y "reflexionar" sobre los componentes Java en tiempo de ejecución y para usar miembros reflexionados. Las Clases en este paquete, junto con java.lang.Class y java.lang.Package

acomodan aplicaciones tales como depuradores, interpretes, inspectores de objetos, navegadores de clases, y servicios tales como Serialización de objetos y JavaBeans que necesitan acceso a miembros públicos del objeto objetivo (basándose en su clase runtime) o a los miembros declarados por una clase dada. Este paquete fue añadido en JDK 1.1.

La Reflexión se usa para instanciar clases e invocar métodos usando sus nombres, un concepto que permite la programación dinámica. Clases, interfaces, métodos, campos, y constructores pueden ser todos descubiertos y usados en tiempo de ejecución. Reflexión se soporta por los metadatos que la JVM posee sobre el programa. Hay dos técnicas básicas involucradas en la reflexión:

1. Descubrimiento conlleva tomar un objeto o clase y descubrir los miembros, superclases, interfaces implementadas, y después usar posiblemente los elementos descubiertos.
2. Usar por nombre conlleva empezar con el nombre simbólico de un elemento y usar el elemento nombrado.

Descubrimiento [editar]

El Descubrimiento normalmente empieza con un objeto y llamando al método Object.getClass()

para obtener la clase del objeto. El objeto Class tiene varios métodos para descubrir los contenidos de la clase, por ejemplo:

* getMethods()

– devuelve un array de objetos Method que representan los métodos publicos de la clase o interface
* getConstructors()

– devuelve un array de objetos Constructor que representan todos los constructores públicos de la clase
* getFields()

– devuelve un array de objetos java/lang/reflect|Field que representan todos los campos públicos de la clase o interface
* getClasses()

– devuelve un array de objetos Class representando todas las clases e interfaces públicas que son miembros de la clase o interface
* getSuperclass()

– devuelve el objeto Class que representa la superclase de la clase o interface
* getInterfaces()

– devuelve un array de objetos Class que representan todas las interfaces que se implementan por la clase o la interface

Usar por nombre [editar]

El objeto Class puede obtenerse a través de descubrimiento, usando la clase literal (e.g. MyClass.class) o usando el nombre de la clase( e.g. String) Class.forName("mypackage.MyClass")

) ). Con un objeto Class, Method miembro, Constructor, u objetos Field pueden obtenerse usando el nombre simbólico del miembro. Por ejemplo:

* java.lang.Class...) getMethod("methodName", Class...)

– devuelve el objeto Method que representa el método público con el nombre "methodName" de la clase o interface que acepta los parámetros especificados por los parámetros Class... parameters.
* getConstructor(Class...)

– devuelve el objeto Constructor que representa el constructor público de la clase que acepta los parámetros especificados por la Class....
* String) getField("fieldName")

– devuelve el objeto Field que representa el campo público con el nombre "fieldName" de la clase o la interface.

Los Objetos Method, Constructor, y Field pueden usarse para acceder dinámicamente al miembro representado de la clase. Por ejemplo:

* Object) Field.get(Object)

– devuelve un Object que contiene el valor del campo desde la instancia del objeto pasado a get().
* java.lang.Object...) Method.invoke(Object, Object...)

– devuelve un Object que contiene el resultado de invocar el método para la instancia del primer parámetro Object pasado a invoke(). Los parámetros Object... restantes son pasados al método.
* Constructor.newInstance(Object...)

– devuelve la nueva instancia Object invocando al constructor. Los parámetros Object... son pasados al constructor. (Date cuente de que el constructor sin parámetros para una clase puede también ser invocado llamando a newInstance()

).

Arrays y proxies [editar]

El paquete java.lang.reflect también suministra una clase Array que contiene métodos estáticos para crear y manipular objetos array, y desde J2SE 1.3, una clase Proxy que suministra creación dinámica de clases proxy que implementan las interfaces especificadas.

La implementación de una clase Proxy se suministra por un objeto dado que implementa la interface InvocationHandler. El método invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) de InvocationHandler es llamado por cada método invocado en el objeto proxy—el primer parámetro es el objeto proxy, el segundo parámetro es el objeto Method que representa el método desde el que la interface implementó al proxy, y el tercer parámetro es el array de parámetros pasado al método interface. El método invoke() devuelve un resultado Object que contiene el resultado devuelto al código que llamó al método interface proxy.

java.io

[editar]

El paquete java.io contiene clases que soportan entrada/salida. Las clases del paquete son principalmente streams; sin embargo, se incluye una clase para ficheros de acceso aleatorio. Las clases centrales del paquete son InputStream y OutputStream las cuales son clases abstractas base para leer de y escribir a streams de bytes, respectivamente. Las clases relacionadas Reader y Writer son clases abstractas base para leer de y escribir a streams de caracteres, respectivamente. El paquete también tiene unas pocas clases misceláneas para soportar la interacción con el Sistema de ficheros del computador.

Streams [editar]

Las clases stream siguen el patrón decorator extendiendo la subclase base para añadir características a las clases stream. Las Subclases de las clases base stream son nombradas típicamente por uno de los siguientes atributos:

* la fuente/destino de los datos del stream
* el tipo de los datos escritos a/leidos del stream
* procesamiento adicional o filtrado realizado en los datos del stream

Las subclases stream son nombradas usando el patrón naming XxxStreamType donde Xxx es el nombre que describe la característica y StreamType es uno de InputStream, OutputStream, Reader, o Writer.

La siguiente tabla muestra las fuentes/destinos soportados directamente por el paquete java.io:

Fuente/Destino Nombre tipos de Stream In/Out Clases
byte array (byte[]) ByteArray byte in, out ByteArrayInputStream, ByteArrayOutputStream
char array (char[]) CharArray char in, out CharArrayReader, CharArrayWriter
file File byte, char in, out FileInputStream, FileOutputStream, FileReader, FileWriter
string (StringBuffer y StringBuilder) String char in, out StringReader, StringWriter
thread (Thread) Piped byte, char in, out PipedInputStream, PipedOutputStream, PipedReader, PipedWriter

Otros paquetes de librería estándar suministran implementaciones de stream para otros destinos, tales como el InputStream devuelto por el método Socket|getInputStream() o la clase Java EE javax/servlet|ServletOutputStream.

El manejo y procesamiento de tipos de datos o filtrado de los datos de stream se realiza a través de filtros de stream. Las clases filter aceptan otros objetos de stream compatibles como parámetro para el constructor y decoran el stream contenido con características adicionales. Los Filtros se crean extendiendo una de las clases base filter FilterInputStream, FilterOutputStream, FilterReader, o FilterWriter.

Las clases Reader y Writer son justamente streams de bytes con procesamiento adicional realizado en el stream de datos para convertir los bytes a caracteres. Utilizan la codificación de caracteres por defecto para la plataforma, la cual desde J2SE 5.0 se representa por el Charset devuelto por el método estático java/nio/charset|Charset|defaultCharset(). La clase java/io|InputStreamReader convierte un InputStream a un Reader y la clase java/io|OutputStreamWriter convierte un OutputStream a un Writer. Ambas clases tienen constructores que permiten la codificación de caracteres que sea especificada—si no se especifica ninguna codificación entonces se usa la codificación por defecto para la plataforma.

La siguiente tabla muestra los otros procesos y filtros soportados directamente por el paquete java.io. Todas esas clases extienden la clase Filter correspondiente.

Operación Nombre tipos de Stream In/Out Clases
buffering Buffered byte, char in, out BufferedInputStream, java/io|BufferedOutputStream, java/io|BufferedReader, java/io|BufferedWriter
"push back" el último valor leído Pushback byte, char in PushbackInputStream, java/io|PushbackReader
tipos primitivos read/write Data byte in, out DataInputStream, java/io|DataOutputStream
serialización de objetos (leer/escribir objetos) Object byte in, out ObjectInputStream, java/io|ObjectOutputStream

Acceso aleatorio [editar]

La clase RandomAccessFile soporta lectura y escritura de acceso aleatorio de ficheros. La clase usa un puntero a fichero que representa un byte-offset dentro del fichero para la siguiente operación de lectura o escritura. El puntero a fichero se mueve implícitamente leyendo o escribiendo y explícitamente llamando a los métodos java/io|RandomAccessFile|seek(long) o java/io|RandomAccessFile|skipBytes(int). La posición actual del puntero de fichero se devuelve por el método java/io|RandomAccessFile|getFilePointer().

Sistema de Ficheros [editar]

La clase java/io|File representa un path de fichero o directorio en un Sistema de ficheros. Los objetos File soportan la creación, borrado y renombrado de ficheros y directorios y la manipulación de atributos de ficheros tales como solo lectura y tiempo de última vez modificado. Los objetos File que representan directorios pueden usarse para obtener una lista de todos los ficheros y directorios contenidos.

La clase java/io|FileDescriptor}} es un descriptor de ficheros que representan una fuente o sumidero (destino) de bytes. Normalmente esto es un fichero, pero puede también ser una consola o un socket de red. Los objetos FileDescriptor se usan para crear streams de File. Se obtienen desde streams File y sockets java.net y sockets de datagrama.

java.nio

[editar]

En J2SE 1.4, el paquete java.nio (NIO o Nueva I/O) fue añadido para soportar I/O mapeada en memoria, facilitando las operaciones I/O cercanas al hardware subyacente con mejor rendimiento. El paquete java.nio suministra soporte para varios tipos de buffer. El subpaquete java/nio/charset suministra soporte para distintas codificaciones de caracteres para datos de tipo carácter. El subpaquete java/nio/channels suministra soporte para channels, las cuales representan conexiones a entidades que son capaces de realizar operaciones I/O, tales como ficheros y sockets. El paquete java.nio.channels también suministra soporte para bloqueo de grano fino de los ficheros.

java.math

[editar]

El paquete java.math soporta aritmética multiprecisión (incluyendo operaciones aritméticas modulares) y suministra generadores de números primos multiprecisión usados para la generación de claves criptográficas. Las clases principales de este paquete son:gg

* BigDecimal – suministra números decimales con signo de precisión arbitraria. BigDecimal da al usuario el control sobre el comportamiento de redondeo a través de RoundingMode.
* BigInteger – suministra enteros de precisión arbitraria. Las Operaciones con BigInteger no producen overflow o perdida de precisión. Además de las operaciones aritméticas estándar, suministra aritmética modular, calculo de mínimo común múltiplo, pruebas de números primos, generación de números primos, manipulación de bits, y otras operaciones misceláneas.
* MathContext – encapsula las configuraciones de contexto las cuales describen ciertas reglas para operadores numéricos.
* RoundingMode – una enumeración que suministra ocho comportamientos de redondeo.

java.net

[editar]

El paquete java.net suministra rutinas especiales IO para redes, permitiendo las peticiones HTTP, así como también otras transacciones comunes.

java.text

[editar]

El paquete java.text implementa rutinas de parseo para strings y soporta varios lenguajes legibles por el hombre y parseado específico de la localización.

java.util

[editar]

Las estructuras de datos que agregan objetos son el foco del paquete java.util. En el paquete está incluida la API Collections, una jerarquía organizada de estructura de datos influenciada fuertemente por considereaciones de patrones de diseño.

Paquetes de propósito especial [editar]

java.applet [editar]

Creado para soportar la creación de applet Java, el paquete java.applet permite a las aplicaciones ser descargadas sobre una red y ejecutarse dentro de una sandbox. Las restricciones de seguridad son impuestas fácilmente en la sandbox. Un desarrollador, por ejemplo, puede aplicar una firma digital a un applet, en consecuencia etiquetándola como segura. Haciéndolo permite al usuario conceder permiso al applet para realizar operaciones restringidas (tales como acceder al disco duro local), y elimina alguna o todas las restricciones de la sandbox. Los certificados digitales son emitidos por agencias como Thawte o Entrust.

java.beans [editar]

Incluidos en el paquete java.beans hay varias clases para desarrollar y manipular beans, componentes reutilizables definidos por la arquitectura JavaBeans. La arquitectura suministra mecanismos para manipular propiedades de componentes y lanzar eventos cuando esas propiedades cambian.

La mayoría de las APIs en java.beans están pensadas para su uso en herramientas de edición de beans, en la cual los beans puedan combinarse, personalizarse y manipularse. Un tipo de editor bean es el diseñador GUI en un entorno de desarrollo integrado(IDE).

java.awt [editar]

La Abstract Window Toolkit contiene rutinas para soportar operaciones básicas GUI y utiliza ventanas básicas desde el sistema nativo subyacente. Muchas implementaciones independientes de la API Java implementan todo excepto AWT, el cual no es usado por la mayoría de las aplicaciones de lado de servidor. Este paquete también contiene la API de gráficos Java 2D.

java.rmi [editar]

El paquete java.rmi suministra invocación a métodos remotos Java para soportar llamadas a procedimientos remotos entre dos aplicaciones Java que se ejecutan en diferentes JVM.

java.security [editar]

Soporte para seguridad, incluyendo el algoritmo de resumen de mensaje, está incluido en el paquete java.security.

java.sql [editar]

Una implementación de la API JDBC (usada para acceder a bases de datos SQL) se agrupa en el paquete java.sql.

javax.rmi [editar]

suministra el soporte para la comunicación remota entre aplicaciones, usando el protocolo RMI sobre IIOP. Este protocolo combina características de RMI y CORBA.

org.omg.CORBA [editar]

Suministra el soporte para comunicación remota entre aplicaciones usando general inter ORB protocol y soporta otras características de common object request broker architecture. Igual que RMI y RMI-IIOP, este paquete es para llamar métodos remotos de objetos en otras máquinas virtuales (normalmente por la red). De todas las posibilidades de comunicación CORBA es la más portable entre varios lenguajes. Sin embargo es también un poco difícil de comprender.

javax.swing [editar]

Swing es una colección de rutinas que se construyen sobre java.awt para suministrar un toolkit de widgets independiente de plataforma. Swing usa las rutinas de dibujado 2D para renderizar los componentes de interfaz de usuario en lugar de confiar en el soporte GUI nativo subyacente del Sistema operativo.

Swing es un sistema muy rico por sí mismo, soportando pluggable looks and feels (PLAFs) para que los controles(widgets) en la GUI puedan imitar a aquellos del sistema nativo subyacente. Los patrones de diseño impregnan el sistema, especialmente una modificación del patrón modelo-vista-controlador, el cual afloja el acoplamiento entre función y apariencia. Una inconsistencia es que (para J2SE 1.3) las fuentes son dibujadas por el sistema nativo subyacente, limitando la portabilidad de texto. Mejoras, tales como usar fuentes de mapas de bits, existen. En general, las layouts(disposiciones de elementos) se usan y mantienen los elementos dentro de una GUI consistente a través de distintas plataformas.

javax.swing.text.html.parser [editar]

Suministra el parser de HTML tolerante a errores que se usa para escribir varios navegadores web y web bots.

Enlaces externos [editar]

* Página principal Java SE

* documentación de la API de Java SE

* JSR 270

(Java SE 6)
* JSR 176

(J2SE 5.0)
* JSR 59

(J2SE 1.4)
* Java software development kits (hasta Agosto del 2006):
o 1.7

(desarrollo temprano)
o 1.6

(beta)
o 1.5

(estable, actual)
o 1.4

(estable)
o 1.3

(obsoleto)
o 1.2

(no soportado activamente)
* Open Source Java

* JavaHispano Programación en Java J2SE


Obtenido de "http://es.wikipedia.org/wiki/Java_SE"
Categoría: Plataformas de desarrollo para Java
Vistas

* Artículo
* Discusión
* Editar
* Historial

Herramientas personales

* Registrarse/Entrar

Buscar

Navegación

* Portada
* Portal de la comunidad
* Actualidad
* Cambios recientes
* Página aleatoria
* Ayuda
* Donaciones

Crear un libro

* Añadir esta página
* Ayuda de libros

Herramientas

* Lo que enlaza aquí
* Cambios en enlazadas
* Subir archivo
* Páginas especiales
* Versión para imprimir
* Enlace permanente
* Versión en PDF
* Citar este artículo

En otros idiomas

* Bosanski
* Česky
* Dansk
* Deutsch
* English
* Français
* Italiano
* 日本語
* Português
* Русский
* Tiếng Việt
* 中文

Powered by MediaWiki
Wikimedia Foundation

* Esta página fue modificada por última vez el 17:21, 14 may 2009.
* El texto está disponible bajo la Licencia Creative Commons Compartir Igual 3.0

; cláusulas adicionales pueden ser de aplicación. Vea los términos de uso para los detalles.
* Política de privacidad
* Acerca de Wikipedia
* Limitación de responsabilidad

Confiabilidad:
Fiabilidad vendedor:
Privacidad:
Seguridad infantil:

Imagenes de Pseudocodigo



Diceño de Interfaces


Abstract

El diseño de interfaces de usuario es una tarea que ha adquirido relevancia en el desarrollo de un sistema. La calidad de la interfaz de usuario puede ser uno de los motivos que conduzca a un sistema al éxito o al fracaso. Los principios que se presentan son de utilidad para creación de interfaces funcionales y de fácil operación. A pesar de no ser capaces de resolver todos los aspectos propios del contexto con el que se esté trabajando, pueden ser combinados con la prototipación y la aplicación de heurísticas de evaluación para facilitar el proceso de diseño. El presente artículo se centra en los componentes de software de las interfaces de usuario, quedando fuera del alcance de mismo otros aspectos, como hardware y documentación. Lo anteriormente expuesto se complementa con un caso práctico de diseño de interfaces de usuario, producto de realizar la actividad de "Definición de Interfaces de Usuario" (EFS 4) de la metodología Métrica Versión 2.

Key words: evaluation, heuristics, principles, prototypes, user interfaces.





1. Conceptos Generales

La Interfaz de Usuario, en adelante IU, de un programa es un conjunto de elementos hardware y software de una computadora que presentan información al usuario y le permiten interactuar con la información y con el computadora. También se puede considerar parte de la IU la documentación (manuales, ayuda, referencia, tutoriales) que acompaña al hardware y al software.

Si la IU está bien diseñada, el usuario encontrará la respuesta que espera a su acción. Si no es así puede ser frustrante su operación, ya que el usuario habitualmente tiende a culparse a sí mismo por no saber usar el objeto.

Los programas son usados por usuarios con distintos niveles de conocimientos, desde principiantes hasta expertos. Es por ello que no existe una interfaz válida para todos los usuarios y todas las tareas. Debe permitirse libertad al usuario para que elija el modo de interacción que más se adecúe a sus objetivos en cada momento. La mayoría de los programas y sistemas operativos ofrecen varias formas de interacción al usuario.

Existen tres puntos de vista distintos en una IU: el del usuario, el del programador y el del diseñador (analogía de la construcción de una casa). Cada uno tiene un modelo mental propio de la interfaz, que contiene los conceptos y expectativas acerca de la misma, desarrollados a través de su experiencia.

El modelo permite explicar o predecir comportamientos del sistema y tomar las decisiones adecuadas para modificar el mismo. Los modelos subyacen en la interacción con las computadoras, de ahí su importancia.



Modelo del usuario: El usuario tiene su visión personal del sistema, y espera que éste se comporte de una cierta forma. Se puede conocer el modelo del usuario estudiándolo, ya sea realizando tests de usabilidad, entrevistas, o a través de una realimentación. Una interfaz debe facilitar el proceso de crear un modelo mental efectivo.

Para ello son de gran utilidad las metáforas, que asocian un dominio nuevo a uno ya conocido por el usuario. Un ejemplo típico es la metáfora del escritorio, común a la mayoría de las interfaces gráficas actuales.

Modelo del diseñador: El diseñador mezcla las necesidades, ideas, deseos del usuario y los materiales de que dispone el programador para diseñar un producto de software. Es un intermediario entre ambos.

El modelo del diseñador describe los objetos que utiliza el usuario, su presentación al mismo y las técnicas de interacción para su manipulación. Consta de tres partes: presentación, interacción y relaciones entre los objetos (Figura 1).

La presentación es lo que primero capta la atención del usuario, pero más tarde pasa a un segundo plano, y adquiere más importancia la interacción con el producto para poder satisfacer sus expectativas. La presentación no es lo más relevante y un abuso en la misma (por ejemplo, en el color) puede ser contraproducente, distrayendo al usuario.

La segunda parte del modelo define las técnicas de interacción del usuario, a través de diversos dispositivos.

La tercera es la más importante, y es donde el diseñador determina la metáfora adecuada que encaja con el modelo mental del usuario. El modelo debe comenzar por esta parte e ir hacia arriba. Una vez definida la metáfora y los objetos del interfaz, los aspectos visuales saldrán de una manera lógica y fácil.

Figura 1. Representación del modelo del diseñador: el look-and-feel iceberg, de IBM (1992)



Estos modelos deben estar claros para los participantes en el desarrollo de un producto, de forma que se consiga una interfaz atractiva y a la vez efectiva para el trabajo con el programa.

Una interfaz no es simplemente una cara bonita; esto puede impresionar a primera vista pero decepcionar a la larga. Lo importante es que el programa se adapte bien al modelo del usuario, cosa que se puede comprobar utilizando el programa más allá de la primera impresión.

Modelo del programador: Es el más fácil de visualizar, al poderse especificar formalmente. Está constituido por los objetos que manipula el programador, distintos de los que trata el usuario (ejemplo: el programador llama base de datos a lo que el usuario podría llamar agenda). Estos objetos deben esconderse del usuario.

Los conocimientos del programador incluyen la plataforma de desarrollo, el sistema operativo, las herramientas de desarrollo y especificaciones. Sin embargo, esto no significa necesariamente que tenga la habilidad de proporcionar al usuario los modelos y metáforas más adecuadas. Muchos no consideran el modelo del usuario del programa, y sí sus propias expectativas acerca de cómo trabajar con la computadora.



2. Principios para el Diseño de Interfaces de Usuario

Existen principios relevantes para el diseño e implementación de IU, ya sea para las IU gráficas, como para la Web.

Anticipación

Las aplicaciones deberían intentar anticiparse a las necesidades del usuario y no esperar a que el usuario tenga que buscar la información, recopilarla o invocar las herramientas que va a utilizar.

Diagrama 4

Diagarama 3

Diagrama 2

Diagramas de Flujo

Diceño y Desarrollo de sistemas de informacion web

Introducción

Desde la liberación de Internet en la década de los noventa que se introdujo la World Wide Web, muchas organizaciones se dispusieron a darse a conocer al mundo en esta red, con la introducción del lenguaje para hipertexto HTML(Hiper Text Markup Language) se pudo realizar páginas en donde ponían datos acerca de su organización o empresa y esto trajo consigo un boom global al esto incrementar ventas sobre todo en el área de las exportaciones, gracias a que con esta herramienta se puede llegar a muchos lugares en el mundo.

A medida que Internet fue ganando un lugar como una gran herramienta para vender, por lo que no fue solo suficiente utilizarla como medio publicitario, se pensó que tal si se pudieran realizar transacciones, por ejemplo como empresa realizar ventas en línea, mostrar catálogos de productos, sistemas de venta si tengo una sucursal y que mi empresa matriz tenga el control de las bases de datos, cosas como estas dieron lugar ahora al comercio electrónico (e-comerce), esto, vino a ser un parte aguas en el desarrollo de sistemas pues, gracias a que se empezaron a introducir lenguajes de programación para este tipo de interfase como ASP con Visual Basic Script, C#, C++, PHP, PERL, Java, Java Script que pueden interactuar con el lenguaje HTML com si fueran uno solo, para dar como resultado sitios web que se convierten en sistemas de información muy poderosos y robustos.

Con ello se empiezan a generar sistemas para venta en línea, organizaciones gubernamentales también en la actualidad utilizan las nuevas tecnologías de la información para sus trámites y servicios, esto viene también a contribuir con un nuevo tipo de comercio global más eficiente y dinámico, además, de desarrollar aplicaciones que se puedan controlar desde un punto , dando esto la eliminación de sistemas ya aislados dando lugar a sistemas en donde se puede compartir información con sucursales sin necesidad de estar buscando métodos alternos para realizar una conexión con un sistema, por lo que trajo una manera muy flexible de comunicar sistemas entre si gracias a estos lenguajes y plataformas para programar, pues lo hace más universalmente y esto trae consigo beneficios como la optimización de tiempo y ahorros en costos de operación.

Pues bien hoy en día las nuevas tecnologías de la información aplicadas son una herramienta que ya no es un lujo si no una gran herramienta de trabajo necesaria para la operación de una organización y es una de las claves para que sea exitosa.

Capítulo 1.
Análisis preliminar para sistemas de información web

Cuando en una organización se desea implementar una página web en la cual no solo sea un medio de publicidad, si no que sirva de herramienta de trabajo, ya sea para distribuir reportes, realizar transacciones como compras y ventas, herramientas auxiliares para la operación, buscar un lado más funcional y que permita el desarrollo de la organización, cuando esto sucede se debe realizar un análisis.

Como sabemos es el análisis es el procesos de estudiar parte por parte los procesos que forman parte de las actividades de una organización, para mejorar un de estos procesos.

Pues bien para ello debemos realizar lo siguiente:

- Una entrevista, en la cual al momento de notificar debemos de tener una charla para escuchar la problemática y requerimientos de los cuales nos vamos a basar para realizar el diseño de la aplicación web.

- Realizar un estudio de los procesos que se desean automatizar, y organizarlos através de cuestionarios y entrevistas con las áreas relacionadas con el proyecto (recordemos que los usuarios son las mejores fuentes de información), así como determinar que información van a manipular, como se va a realizar la manipulación de datos, a donde debe llegar la información, quien la recibe y analiza es decir, origen y destino de los datos a utilizar.

- Realizar un registro de las actividades a realizar por medio de este tipo de sistema.

- Evaluar la viabilidad del proyecto, costos, condiciones legales; que las condiciones de infraestructura informática sean las necesarias para que el proyecto se lleve a cabo y funcione correctamente y sin problemas. En este punto dentro de la infraestructura informática debemos tomar en cuenta lo siguiente:

+ Si cuenta con un enlace con salida a Internet

+ Hardware con el cual cuenta para el funcionamiento de la red (Ruteadores, hubs, etc.).

Diceño y Desarrollo de Sistemas de informacion web

Analisis preliminar para sistemas de programcion web.

Cuando en una organisacion se desea implementar una pagina web en la cual no solo sea un medio de publisidad .


Realisar un registro de las actibidades a realisar por medio de este tipo de sistemas .

Evaluar la viavilidad del proyecto, costos,condiciones legales;que las condiciones de infraestructura informatica sean las nesesarias para que el proyecto se lleve a cabo y funcione coreectamente y sin problemas .En este punto dentro de la infraestructura informatica debemos tomar en cuenta lo siguiente .

☺ Si cuenta con un enlase con salida a internet
☺ Hardware con el cual cuenta para el funcionamiento de la red ( Ruteadores ,Hubs,etc)
☺ La conectividad con la cuenta , asi como la velocidad
☺ Sevidores
☺ Si ya cuenta con pagina web
☺ Si desea utilisar bases de datos para el sistema y que informacion utilisaria.

lunes, 22 de junio de 2009

Chistes

El papá de Pepito decide irse a vivir a los Estados Unidos con toda la familia y Pepito ingresa a una escuela.
La maestra pregunta a Pedrito:
A ver Pedrito, deme un ejemplo de la palabra "evidentemente".
Bueno maestra, mi papá, mi mamá, mis hermanos, y yo, fuimos a comer a un restaurant, evidentemente que mi mamá no cocinó ese día.
Muy bien Pedrito, a ver Juanito deme un ejemplo de la palabra "evidentemente".
Mi papá, mi mamá, mis hermanos, y yo, nos fuimos a la playa, evidentemente que la casa quedó sola.
Muy bien Juanito.
A ver Pepito, deme un ejemplo de la palabra "evidentemente".
Bueno maestra, yo estaba sentado en el corredor de mi casa, y vi pasar a mi abuelita con el diario New York Times Paper, y dije: Evidentemente va a cagar, porque no sabe leer inglés.

CGI

Imagen generada por computadora
De Wikipedia, la enciclopedia libre
(Redirigido desde Computer Generated Imagery)
Saltar a navegación, búsqueda


Escena realizada en una computadora
Imagen generada por computadora (CGI), es la aplicación del campo de gráficos realizados por computadoras (CG, o más expresamente, gráficos 3d por computadora u ordenador) para la creación, entre muchas otras cosas, de efectos especiales.
El término para el que se emplean las siglas "CGI" corresponde con el término español "Infografía".
El CGI es usado en películas, programas de televisión y publicidad, y en medios impresos. Los videojuegos más a menudo usan los gráficos realizados por computadora en tiempo real (raramente tratado como CGI), pero también pueden incluir "escenas de corte pre-elaborados" e introducciones de películas que serían aplicaciones CGI típicas, llamadas Full motion Video o por sus siglas FMV.
En el cine y la televisión, el CGI se usa a menudo porque es, para ciertas situaciones, más barato que utilizar métodos físicos, como la construcción de miniaturas complicadas para creación de efectos, o alquiler de mucho vestuario para escenas de multitudes de personas, y también porque permite la creación de imágenes que no serían factibles de ningún otro modo. Esto también puede permitir que un artista produzca el contenido sin el uso de actores u otros participantes típicos en estos proyectos.

• Las dos primeras películas en las que se hizo una fuerte inversión en CGI, Tron (1982) y Last Starfighter (1984), fueron fracasos comerciales, lo que llevó a que la mayoría de los directores relegaran el CGI a imágenes que se "suponía" parecer creadas por computadora.
• El primer personaje verdadero en CGI fue creado por Pixar para la película Young Sherlock Holmes en 1985 (sin contar el sencillo personaje poliédrico de Tron que contestaba en binario: sí y no). Este tenía forma de un caballero formado por trozos de una vidriera. Este CGI "fotorealista" (del ingles photorealistic, es decir imagen sintética de aspecto real) no persuadiría a la industria del cine hasta 1989, cuando The Abyss (El abismo) gana el Premio de la Academia de Hollywood en la categoría de Efectos Visuales. Industrial Light and Magic produjo efectos visuales CGI fotorealistas, el más notable: una criatura de agua que imita la cara de la protagonista, que figura en una de las escenas mas recordadas de la película. A partir de Abyss el CGI adquiere un papel central en películas como Terminator 2: Judgment Day (1991), cuando el malvado Terminator T-1000 sorprendía a la audiencia por su composición de metal líquido, con transformaciones morfológicas integradas en secuencias de acción durante toda la película. Terminator 2: Judgment Day también le mereció a ILM (Industrial Light and Magic) un Oscar por sus efectos especiales.
• En 1993 Jurassic Park cambiaría radicalmente la percepción de la industria, ya que los dinosaurios parecían tan reales y la película integraba CGI y secuencias reales tan impecáblemente, que revolucionó la industria cinematográfica. Este film marca la transición del Hollywood de la animación de movimientos fotograma a fotograma(Stop-Motion) y efectos ópticos convencionales, a las técnicas digitales.
• En 1994 Se crea en Canadá, la primera serie animada totalmente por computadora llamada Reboot, siendo este el primer trabajo comercial 100% por computadora.
• El CGI 2D comienza cada vez más a aparecer en películas tradicionalmente animadas, complementando a los cuadros (frames) ilustrados a mano. Sus usos se extendieron del movimiento de interpolación digital entre cuadros, a pseudo efectos 3D llamativos como la escena de sala de baile en La Bella y la Bestia de la compañía Walt Disney.
Toy Story y Cassiopeia fueron las primeras películas totalmente generadas por computadora.
• En 1995 y 1996, las primera películas totalmente generadas por computadora, Toy Story de Pixar y Cassiopéia de NDR Filmes. Los estudios de animación digitales adicionales como Blue Sky Studios (Fox) y Pacific Data Images (Dreamworks SKG) entraron en la producción, y las compañías de animación existentes como la Compañía Walt Disney comenzaron a hacer una transición de la animación tradicional al CGI.
• Entre 1995 y 2005 el presupuesto medio de efectos para una película sube considerablemente de 5 a 40 millones de dólares. Según un ejecutivo de uno de los estudios cinematográficos, desde 2005, más de la mitad de películas tienen efectos significativos.
• A principios de los años 2000, las imágenes generadas por computadora dominan el campo de los efectos especiales. La tecnología progresa hasta al punto que fue posible sustituir digitalmente a los actores por actores virtuales, indistinguibles a simple vista de los actores a los que reemplazan. Los extras generados por computadora también se empezaron a utilizar generalizádamente en escenas de multitudes. El objetivo del CGI en películas muestra una lista detallada de pioneros usos de imágenes generadas por computadora en Cine y Televisión.
• El CGI para películas por lo general tiene una resolución de aproximadamente 1.4-6 megapixeles (MPx). Toy Story, por ejemplo, tenia un formato de 1536 * 922 (1.42MPx). El tiempo para generar un cuadro, o frame, es de alrededor de unas 2-3 horas, necesitándose diez veces más tiempo para las escenas más complejas. Este tiempo no ha cambiado mucho durante la pasada década, mientras que la calidad de imagen ha progresado considerablemente. Al mismo tiempo con la mejora del hardware, con máquinas más rápidas, se podido aumentar la complejidad de los graficos. El aumento exponencial de la capacidad de proceso de CPU, así como aumentos masivos en la capacidad de procesamiento paralelo de esta, de almacenaje y velocidad de memoria y tamaño, han aumentado enormemente el potencial y complejidad del CGI.
• Final Fantasy: The Spirits Within (2001) fue la primera tentativa de crear una película realista usando sólo CGI sin actores. El filme estuvo producido por Square Pictures y mostraba gráficos muy detallados de calidad fotográfica realista. La película fue un fracaso en taquilla, lo que llevó finalmente al cierre de Square Pictures tras de haber producido un ultimo filme de estilo visual similar. Final Flight of the Osiris, un cortometraje que sirvió como un prólogo a la película The Matrix Reloaded.
Los últimos avances de la tecnología CGI se muestran cada año en el SIGGRAPH, cita anual sobre gráficos realizados por computadora y técnicas interactivas, que es visitada cada año por decenas de miles de profesionales informáticos.
Los diseñadores de juegos de computadora y tarjetas de vídeo 3d se esfuerzan cada vez mas por conseguir la misma calidad visual para películas CGI y animación, en computadoras personales, en tiempo real, y tanto como lo permite la tecnología. Con el desarrollo de la calidad de interpretación o Render en tiempo real, los artistas comenzaron a usar motores de render para juegos en películas no interactivas. Esta forma de arte es llamada Machinima.
Creación de personajes y objetos en una computadora [editar]
La animación por computadora combina los gráficos de Vector con el movimiento programado. El punto de partida es a menudo una figura de palo en la cual la posición de cada rasgo (miembro, boca etc.) es definida por un Avars (variable de animación del inglés "Animation variable"). El CGI es otro término para la animación por computadora, pero por lo general se refiere a las imágenes 3d de alta definición especialmente en cinematografía.

Hay varios modos de generar los valores de Avar para obtener un movimiento realista. La captura del movimiento ( Captura de movimiento) se realiza mediante pequeñas luces, o marcas metálicas, pegadas en una persona real que actúa y provee del movimiento, y es seguida por una cámara de vídeo. El Avars puede ser puesto a mano usando una palanca de mando(Joystick) u otro control de entrada. La película Toy Story no usa ningún rastreo de movimiento, probablemente porque el control es elaborado un animador experto y puede producir efectos no fácilmente representados por una persona real.

, cuidado y peinado del cabello, manchas en la piel, la humedad del cuerpo, ropa y los movimientos deben de ser creíbles; por eso en la mayoría de estas películas los personajes principales son animales o juguetes.
• Ha habido casos de animaciones excelentes en diversas películas, la anterior comentada Final Fantasy The Spirits Within, el cabello de Violeta en Los Increíbles, la animación de escenarios en Toy Story, el movimiento del cabello de Tifa al viento en Final Fantasy Advent Children, la animación del agua en la Danza del Agua del videojuego Final Fantasy X, y la creación de monstruos en Monstruos, S.A. (Monsters Inc.)

Implementacion P2P

Implementació d'un ambient Network amb P2P-DHT
González Jiménez, David
Localización: http://hdl.handle.net/2099.1/4748
http://hdl.handle.net/2072/6652
El propósito principal de este proyecto, es desarrollar una aplicación distribuida que simule un Ambient Network, en el que los diferentes elementos realicen procesos de autoconfiguración y autogestión únicamente con su integración a la red.La aplicación deberá, por tanto, mantener actualizado el número de elementos que se encuentra en la red, establecer comunicaciones entre los nodos para mantener la información actualizada y tomar decisiones a través de los resultados ofrecidos por otros elementos en la red.Se ha llevado a cabo un estudio previo acerca de las tecnologías Freepastry y Past, para estudiar la viabilidad de uso en este proyecto. En este estudio, se han realizado pruebas a partir de los tutoriales expuestos por los desarrolladores de ambas propuestas.Una vez finalizado el estudio, ambas tecnologías se han considerado aptas para el desarrollo del proyecto. Estas tecnologías crean un entorno de red virtual distribuido donde cada uno de los participantes puede interactuar directamente, independientemente de su situación.Tras el estudio en profundidad de las dos tecnologías, se ha realizado el diseño de la aplicación deseada, para posteriormente proceder al desarrollo de la misma mediante el lenguaje orientado a objetos Java. Este lenguaje facilita una integración sencilla y rápida de diferentes tecnologías. Finalmente y tras una batería de pruebas para comprobar el correcto funcionamiento, se ha obtenido una aplicación que permite, tal como se comentaba inicialmente, a través de una tecnología P2P, simular un ambiente domótico en el que integrar procesos de configuración y gestión en cada uno de los componentes.



Acceso vía móvil a servicios web publicados en una red Pastry DHT
Homar Ballester, Carlos
Localización: http://hdl.handle.net/2099.1/4702
http://hdl.handle.net/2072/6606
Toda la información disponible para cualquier persona, en cualquier lugar, en cualquier momento y a través de cualquier dispositivo.” Este es el objetivo que persigue la introducción de los dispositivos móviles al mundo de los Servicios Web. El objetivo principal de este proyecto es desarrollar una aplicación que permita a los dispositivos móviles el acceso a Servicios Web publicados en una red Pastry DHT. Por una parte, se estudiaran las tecnologías implicadas en el proyecto como son los Servicios Web, las redes P2P, los dispositivos móviles o el lenguaje de programación Java. Por otra parte, estudiaremos distintas posibilidades de comunicación entre un dispositivo móvil y un Servicio Web. Además, deberemos estudiar cuáles son las limitaciones actuales a la hora de aplicar el paradigma de los Servicios Web a dispositivos móviles. Finalmente se implementará una aplicación que permita a los dispositivos móviles el acceso a Servicios Web de dos formas diferentes: a través de un proxy y directamente.