jueves, 24 de febrero de 2011
Presentación de avance de proyecto
Etiquetas:
POO
miércoles, 23 de febrero de 2011
Herramientas
Ubuntu: Se puede descargar desde esta página, que además contiene como instalarse mediante cd o usb.
http://www.ubuntu.com/desktop/get-ubuntu/download
JDK: Es una herramienta que nos permite compilar, ejecutar, generar documentación, etc. Esta herramienta se puede instalar mediante la terminal de ubuntu con el comando:
sudo apt-get install openjdk-6-jdk
Tutorial de Java (Programación Orientada Objetos)
http://www.ubuntu.com/desktop/get-ubuntu/download
JDK: Es una herramienta que nos permite compilar, ejecutar, generar documentación, etc. Esta herramienta se puede instalar mediante la terminal de ubuntu con el comando:
sudo apt-get install openjdk-6-jdk
Tutorial de Java (Programación Orientada Objetos)
Etiquetas:
POO
miércoles, 26 de enero de 2011
Práctica 1
Programa en python
Captura del programa:
Probablemente el lenguaje que utilice para realizar mi proyecto sea Java.
class Alumno:
def __init__(self, nombre, matricula, cal):
self.nombre = nombre
self.matricula = matricula
self.cal = cal
def nombreymat(self):
return self.nombre + ' ' + self.matricula
def comp(self):
return self.cal >= 70
a = Alumno('Sergio', '1451948', 85)
print a.nombreymat(),
if a.comp():
print "aprobo la materia"
else:
print "no aprobo la materia"Captura del programa:
Probablemente el lenguaje que utilice para realizar mi proyecto sea Java.
Etiquetas:
POO
lunes, 22 de noviembre de 2010
DNS
Domain Name System es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado a internet o a una red privada. Este sistema asocia información variada con nombres de dominios asignado a cada uno de los participantes. Su función más importante, es traducir nombres inteligibles para los humanos en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos equipos mundialmente.
La asignación de nombres a direcciones IP es ciertamente la función más conocida de los protocolos DNS. Por ejemplo, si la dirección IP del sitio FTP de prox.mx es 200.64.128.4, la mayoría de la gente llega a este equipo especificando ftp.prox.mx y no la dirección IP. Además de ser más fácil de recordar, el nombre es más fiable. La dirección numérica podría cambiar por muchas razones, sin que tenga que cambiar el nombre.
Componentes
Para la operación práctica del sistema DNS se utilizan tres componentes principales:
Uso del DNS
El DNS se utiliza para distintos propósitos. Los más comunes son:
Antes de proseguir, es necesario introducir algunos términos básicos para evitar confusiones y ambigüedades. Otros términos más complejos serán tratados más adelante.
La asignación de nombres a direcciones IP es ciertamente la función más conocida de los protocolos DNS. Por ejemplo, si la dirección IP del sitio FTP de prox.mx es 200.64.128.4, la mayoría de la gente llega a este equipo especificando ftp.prox.mx y no la dirección IP. Además de ser más fácil de recordar, el nombre es más fiable. La dirección numérica podría cambiar por muchas razones, sin que tenga que cambiar el nombre.
Componentes
Para la operación práctica del sistema DNS se utilizan tres componentes principales:
- Los Clientes DNS: Un programa cliente DNS que se ejecuta en la computadora del usuario y que genera peticiones DNS de resolución de nombres a un servidor DNS (Por ejemplo: ¿Qué dirección IP corresponde a nombre.dominio?);
- Los Servidores DNS: Que contestan las peticiones de los clientes. Los servidores recursivos tienen la capacidad de reenviar la petición a otro servidor si no disponen de la dirección solicitada.
- Y las Zonas de autoridad, porciones del espacio de nombres de dominio que almacenan los datos. Cada zona de autoridad abarca al menos un dominio y posiblemente sus subdominios, si estos últimos no son delegados a otras zonas de autoridad.
Uso del DNS
El DNS se utiliza para distintos propósitos. Los más comunes son:
- Resolución de nombres: Dado el nombre completo de un host (por ejemplo blog.smaldone.com.ar), obtener su dirección IP (en este caso, 208.97.175.41).
- Resolución inversa de direcciones: Es el mecanismo inverso al anterior. Consiste en, dada una dirección IP, obtener el nombre asociado a la misma.
- Resolución de servidores de correo: Dado un nombre de dominio (por ejemplo gmail.com) obtener el servidor a través del cual debe realizarse la entrega del correo electrónico (en este caso, gmail-smtp-in.l.google.com).
Antes de proseguir, es necesario introducir algunos términos básicos para evitar confusiones y ambigüedades. Otros términos más complejos serán tratados más adelante.
- Host Name: El nombre de un host es una sola “palabra” (formada por letras, números y guiones). Ejemplos de nombres de host son “www“, “blog” y “obelix“.
- Fully Qualified Host Name (FQHN): Es el “nombre completo” de un host. Está formado por el hostname, seguido de un punto y su correspondiente nombre de dominio. Por ejemplo, “blog.smaldone.com.ar“
- Domain Name: El nombre de dominio es una sucesión de nombres concatenados por puntos. Algunos ejemplos son “smaldone.com.ar“, “com.ar” y “ar“.
- Top Level Domains (TLD): Los dominios de nivel superior son aquellos que no pertenecen a otro dominio. Ejemplos de este tipo son “com“, “org“, “ar” y “es“.
Etiquetas:
Programación Web
Heurística de sitios web
General
La estructura general
Los sitios web deben estructurarse pensando en el usuario, sus objetivos y necesidades. No se debe calcar la estructura interna de la empresa u organización, al usuario no le interesa cómo funciona o se organiza la empresa.
Look & feel
Por ejemplo, los colores empleados. Aunque el significado que comunica un determinado color es muy subjetivo y dependiente de la cultura y el entorno, y por lo tanto diferente para cada usuario, ciertas combinaciones de colores ofrecen una imagen más o menos formal, seria o profesional, como pueden ser los tonos de azules con el blanco, que trasmiten una imagen corporativista.
Coherencia en el diseño general
Se debe mantener una coherencia y uniformidad en las estructuras y colores de todas las páginas. Esto sirve para que el usuario no se desoriente en su navegación.
Es reconocible el diseño general
Cuánto más se parezca el sitio web al resto de sitios web, más fácil será de usar.
Se actualiza periódicamente
Las fechas que se muestren en la página deben corresponderse con actualizaciones, noticias, eventos...no con la fecha del sistema del usuario.
Lenguaje
Habla el mismo lenguaje que sus usuarios
Se debe evitar usar un lenguaje corporativista. Así mismo, hay que prestarle especial atención al idioma, y ofrecer versiones del sitio en diferentes idiomas cuando sea necesario.
1 párrafo = 1 idea
Cada párrafo es un objeto informativo. Trasmita ideas, mensajes...Se deben evitar párrafos vacíos o varios mensajes en un mismo párrafo.
Rotulado
Los rótulos, ¿son significativos?
Ejemplo: evitar rótulos del tipo "haga clic aquí".
Enlaces que no llevan a ningún sitio
Enlaces que no llevan a ningún sitio: Los enlaces rotos, y los que enlazan con la misma página que se está visualizando (por ejemplo enlaces a la "home" desde la misma página de inicio)
Visual
Uso correcto del espacio visual de la página
Es decir, que no se desaproveche demasiado espacio con elementos de decoración, o grandes zonas en "blanco", y que no se adjudique demasiado espacio a elementos de menor importancia.
Accesibilidad
Es compatible el sitio web con los diferentes navegadores
Se debe prestar atención a: JScript, CSS, tablas, fuentes...
¿Se ha controlado el peso de la página?
Se deben optimizar las imágenes, controlar el tamaño del código JScript...
¿Se puede imprimir la página sin problemas?
Leer en pantalla es molesto, por lo que muchos usuarios preferirán imprimir las páginas para leerlas. Se debe asegurar que se puede imprimir la página (no salen partes cortadas), y que el resultado es legible.
http://www.useit.com/papers/heuristic/heuristic_list.html
http://designingwebinterfaces.com/6-tips-for-a-great-flex-ux-part-5
La estructura general
Los sitios web deben estructurarse pensando en el usuario, sus objetivos y necesidades. No se debe calcar la estructura interna de la empresa u organización, al usuario no le interesa cómo funciona o se organiza la empresa.
Look & feel
Por ejemplo, los colores empleados. Aunque el significado que comunica un determinado color es muy subjetivo y dependiente de la cultura y el entorno, y por lo tanto diferente para cada usuario, ciertas combinaciones de colores ofrecen una imagen más o menos formal, seria o profesional, como pueden ser los tonos de azules con el blanco, que trasmiten una imagen corporativista.
Coherencia en el diseño general
Se debe mantener una coherencia y uniformidad en las estructuras y colores de todas las páginas. Esto sirve para que el usuario no se desoriente en su navegación.
Es reconocible el diseño general
Cuánto más se parezca el sitio web al resto de sitios web, más fácil será de usar.
Se actualiza periódicamente
Las fechas que se muestren en la página deben corresponderse con actualizaciones, noticias, eventos...no con la fecha del sistema del usuario.
Lenguaje
Habla el mismo lenguaje que sus usuarios
Se debe evitar usar un lenguaje corporativista. Así mismo, hay que prestarle especial atención al idioma, y ofrecer versiones del sitio en diferentes idiomas cuando sea necesario.
1 párrafo = 1 idea
Cada párrafo es un objeto informativo. Trasmita ideas, mensajes...Se deben evitar párrafos vacíos o varios mensajes en un mismo párrafo.
Rotulado
Los rótulos, ¿son significativos?
Ejemplo: evitar rótulos del tipo "haga clic aquí".
Enlaces que no llevan a ningún sitio
Enlaces que no llevan a ningún sitio: Los enlaces rotos, y los que enlazan con la misma página que se está visualizando (por ejemplo enlaces a la "home" desde la misma página de inicio)
Visual
Uso correcto del espacio visual de la página
Es decir, que no se desaproveche demasiado espacio con elementos de decoración, o grandes zonas en "blanco", y que no se adjudique demasiado espacio a elementos de menor importancia.
Accesibilidad
Es compatible el sitio web con los diferentes navegadores
Se debe prestar atención a: JScript, CSS, tablas, fuentes...
¿Se ha controlado el peso de la página?
Se deben optimizar las imágenes, controlar el tamaño del código JScript...
¿Se puede imprimir la página sin problemas?
Leer en pantalla es molesto, por lo que muchos usuarios preferirán imprimir las páginas para leerlas. Se debe asegurar que se puede imprimir la página (no salen partes cortadas), y que el resultado es legible.
http://www.useit.com/papers/heuristic/heuristic_list.html
http://designingwebinterfaces.com/6-tips-for-a-great-flex-ux-part-5
Etiquetas:
Programación Web
domingo, 21 de noviembre de 2010
MySQL
MySQL es un sistema de gestión de bases de datos relacional. Su diseño le permite soportar una gran carga de forma muy eficiente.
Este gestor de bases de datos es, probablemente, el gestor más usado en el mundo del software libre, debido a su gran rapidez y facilidad de uso. Esta gran aceptación es debida, en parte, a que existen infinidad de librerías y otras herramientas que permiten su uso a través de gran cantidad de lenguajes de programación, además de su fácil instalación y configuración.
Características de MySQL
Las principales características de este gestor de bases de datos son las siguientes:
MySQL surgió cómo una necesidad de un grupo de personas sobre un gestor de bases de datos rápido, por lo que sus desarrolladores fueron implementando únicamente lo que precisaban, intentando hacerlo funcionar de forma óptima. Es por ello que, aunque MySQL se incluye en el grupo de sistemas de bases de datos relacionales, carece de algunas de sus principales características:
/*
* PruebaMySQL.java
*
* Programa de prueba para conexión a una base de datos de MySQL.
* Presupone que el servidor de base de datos está arrancado, disponible,
* en el puerto por defecto.
* El usuario y password de conexión con la base de datos debe cambiarse.
* En la base de datos se supone que hay una base de datos llamada prueba y que
* tiene una tabla persona con tres campos, de esta manera:
* mysql> create database prueba;
* mysql> use prueba;
* mysql> create table persona (id smallint auto_increment, nombre varchar(60),
* nacimiento date, primary key(id));
*/
package chuidiang.ejemplos.base_datos;
import java.sql.*;
/**
* Clase de prueba de conexión con una base de datos MySQL
*/
public class PruebaMySQL {
/**
* Crea una instancia de la clase MySQL y realiza todo el código
* de conexión, consulta y muestra de resultados.
*/
public PruebaMySQL()
{
// Se mete todo en un try por los posibles errores de MySQL
try
{
// Se registra el Driver de MySQL
DriverManager.registerDriver(new org.gjt.mm.mysql.Driver()) // Se obtiene una conexión con la base de datos. Hay que
// cambiar el usuario "root" y la clave "la_clave" por las
// adecuadas a la base de datos que estemos usando.
Connection conexion = DriverManager.getConnection (
"jdbc:mysql://localhost/prueba","root", "la_clave");
// Se crea un Statement, para realizar la consulta
Statement s = conexion.createStatement();
// Se realiza la consulta. Los resultados se guardan en el
// ResultSet rs
ResultSet rs = s.executeQuery ("select * from persona");
// Se recorre el ResultSet, mostrando por pantalla los resultados.
while (rs.next())
{
System.out.println (rs.getInt ("Id") + " " + rs.getString (2)+
" " + rs.getDate(3));
}
// Se cierra la conexión con la base de datos.
conexion.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* Método principal, instancia una clase PruebaMySQL
*
* @param args the command line arguments
*/
public static void main(String[] args)
{
new PruebaMySQL();
}
}
Este gestor de bases de datos es, probablemente, el gestor más usado en el mundo del software libre, debido a su gran rapidez y facilidad de uso. Esta gran aceptación es debida, en parte, a que existen infinidad de librerías y otras herramientas que permiten su uso a través de gran cantidad de lenguajes de programación, además de su fácil instalación y configuración.
Características de MySQL
Las principales características de este gestor de bases de datos son las siguientes:
- Aprovecha la potencia de sistemas multiprocesador, gracias a su implementación multihilo.
- Soporta gran cantidad de tipos de datos para las columnas.
- Dispone de API's en gran cantidad de lenguajes (C, C++, Java, PHP, etc).
- Gran portabilidad entre sistemas.
- Soporta hasta 32 índices por tabla.
- Gestión de usuarios y passwords, manteniendo un muy buen nivel de seguridad en los datos.
MySQL surgió cómo una necesidad de un grupo de personas sobre un gestor de bases de datos rápido, por lo que sus desarrolladores fueron implementando únicamente lo que precisaban, intentando hacerlo funcionar de forma óptima. Es por ello que, aunque MySQL se incluye en el grupo de sistemas de bases de datos relacionales, carece de algunas de sus principales características:
- Subconsultas: tal vez ésta sea una de las características que más se echan en falta, aunque gran parte de las veces que se necesitan, es posible reescribirlas de manera que no sean necesarias.
- SELECT INTO TABLE: Esta característica propia de Oracle, todavía no está implementada.
- Triggers y Procedures: Se tiene pensado incluir el uso de procedures almacenados en la base de datos, pero no el de triggers, ya que los triggers reducen de forma significativa el rendimiento de la base de datos, incluso en aquellas consultas que no los activan.
- Transacciones: a partir de las últimas versiones ya hay soporte para transacciones, aunque no por defecto (se ha de activar un modo especial).
- Integridad referencial: aunque sí que admite la declaración de claves ajenas en la creación tablas, internamente no las trata de forma diferente al resto de campos.
/*
* PruebaMySQL.java
*
* Programa de prueba para conexión a una base de datos de MySQL.
* Presupone que el servidor de base de datos está arrancado, disponible,
* en el puerto por defecto.
* El usuario y password de conexión con la base de datos debe cambiarse.
* En la base de datos se supone que hay una base de datos llamada prueba y que
* tiene una tabla persona con tres campos, de esta manera:
* mysql> create database prueba;
* mysql> use prueba;
* mysql> create table persona (id smallint auto_increment, nombre varchar(60),
* nacimiento date, primary key(id));
*/
package chuidiang.ejemplos.base_datos;
import java.sql.*;
/**
* Clase de prueba de conexión con una base de datos MySQL
*/
public class PruebaMySQL {
/**
* Crea una instancia de la clase MySQL y realiza todo el código
* de conexión, consulta y muestra de resultados.
*/
public PruebaMySQL()
{
// Se mete todo en un try por los posibles errores de MySQL
try
{
// Se registra el Driver de MySQL
DriverManager.registerDriver(new org.gjt.mm.mysql.Driver()) // Se obtiene una conexión con la base de datos. Hay que
// cambiar el usuario "root" y la clave "la_clave" por las
// adecuadas a la base de datos que estemos usando.
Connection conexion = DriverManager.getConnection (
"jdbc:mysql://localhost/prueba","root", "la_clave");
// Se crea un Statement, para realizar la consulta
Statement s = conexion.createStatement();
// Se realiza la consulta. Los resultados se guardan en el
// ResultSet rs
ResultSet rs = s.executeQuery ("select * from persona");
// Se recorre el ResultSet, mostrando por pantalla los resultados.
while (rs.next())
{
System.out.println (rs.getInt ("Id") + " " + rs.getString (2)+
" " + rs.getDate(3));
}
// Se cierra la conexión con la base de datos.
conexion.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* Método principal, instancia una clase PruebaMySQL
*
* @param args the command line arguments
*/
public static void main(String[] args)
{
new PruebaMySQL();
}
}
Etiquetas:
Programación Web
Servlets
Los Servlets son las respuestas de la tecnología Java a la programación CGI. Son programas que se ejecutan en un servidor Web y construyen páginas Web. Construir páginas Web es útil por un número de razones:
El proceso de ejecución de un servlet:
En el código HTML necesario para implementar el ejemplo destacan dos partes. En primer lugar la cabecera del form, que indica la acción a desencadenar en el servidor al pulsar el botón de Submit, y en segundo lugar la parte en que se define el form propiamente. El archivo que contiene la página HTML lo llamaremos ServletSmiple.htm.
Código del Servlet
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ServletSimple extends HttpServlet
{
public void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
ServletOutputStream salida = res.getOutputStream();
res.setContentType("text/html");
String cadena = req.getParameter("TEXTO");
salida.println ("<p>Datos capturados : "+ cadena + "</p>");
}
}
Los datos enviados desde la forma son recibidos por el servlet que fue invocado por la misma. El código java del servlet es el siguiente:
En el programa destaca principalmente la utilización de los paquetes javax.servlet.* y javax.servlet.http.*, y la cláusula extends que define el programa como una extensión de HttpServlet. El archivo que contiene el Servlet lo llamaremos ServletSimple.java. Una vez que ha sido compilado, usando javac , almacenaremos el archivo .class resultante en el directorio /servlets dentro del directorio donde hayamos instalado el servidor de servlets.
Introduzca un texto en el cuadro y oprima el botón "Aceptar"
- La página Web está basada en datos envíados por el usuario. Por ejemplo, las páginas de resultados de los motores de búsqueda se generan de esta forma, y los programas que procesan pedidos desde sites de comercio electrónico también.
- Los datos cambian frecuentemente. Por ejemplo, un informe sobre el tiempo o páginas de cabeceras de noticias podrían construir la página dinámicamente, quizás devolviendo una página previamente construida y luego actualizandola.
- Las páginas Web que usan información desde bases de datos corporativas u otras fuentes. Por ejemplo, usaríamos esto para hacer una página Web en una tienda on-line que liste los precios actuales y el número de artículos en stock.
El proceso de ejecución de un servlet:
- El proceso comienza con la petición HTTP que llega en primer lugar al servidor web (ejemplo Apache).
- La petición se traslada al Contenedor de aplicaciones, en concreto a su motor del servicio Servlet/JSP (con su propia JVM).
- El motor encapsula la información de la petición en un objeto del tipo HttpServletRequest, además encapsula en un objeto HttpServletResponse el flujo de respuesta.
- El motor crea por cada petición un hilo, sobre el que se invoca a la función service() del servlet. En función del método de la petición (POST o GET ...), service() llamará al método correspondiente del servlet: doPost(), doGet() ..., pasándoles los objetos de HttpServletRequest y HttpServletResponse. En realidad hay más métodos HTTP (trace, etc.), pero GET y POST son los más habituales.
- Cada clase del tipo servlet, tiene una única instancia, sobre la que corren los diferentes hilos (peticiones).
Escribiendo un Servlet simple
El ejemplo consiste en una forma HTML en la que existirá un campo de entrada, con los correspondientes botones Submit y Reset típicos de cualquier formulario de entrada de datos. A oprimir sobre el botón Submit se producirá la ejecución del Servlet en el servidor, que procesará la información recibida, y mostrará como resultado una página HTML con el texto introducido con anterioridad.
Código HTML
<html>
<head>
<title>Ejemplo de un Servlet simple</title>
</head>
<body>
<form action=http://servidor:8080/servlet/ServletSimple method=POST>
<BR>
<BR>Introduzca un texto en el cuadro y oprima el botón "Aceptar"
<BR>
<input type=text name=TEXTO>
<p>
<input type=submit value=Aceptar><input type=reset value=Limpiar>
</form>
</body>
</html>
En el código HTML necesario para implementar el ejemplo destacan dos partes. En primer lugar la cabecera del form, que indica la acción a desencadenar en el servidor al pulsar el botón de Submit, y en segundo lugar la parte en que se define el form propiamente. El archivo que contiene la página HTML lo llamaremos ServletSmiple.htm.
Código del Servlet
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ServletSimple extends HttpServlet
{
public void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
ServletOutputStream salida = res.getOutputStream();
res.setContentType("text/html");
String cadena = req.getParameter("TEXTO");
salida.println ("<p>Datos capturados : "+ cadena + "</p>");
}
}
Los datos enviados desde la forma son recibidos por el servlet que fue invocado por la misma. El código java del servlet es el siguiente:
En el programa destaca principalmente la utilización de los paquetes javax.servlet.* y javax.servlet.http.*, y la cláusula extends que define el programa como una extensión de HttpServlet. El archivo que contiene el Servlet lo llamaremos ServletSimple.java. Una vez que ha sido compilado, usando javac , almacenaremos el archivo .class resultante en el directorio /servlets dentro del directorio donde hayamos instalado el servidor de servlets.
Etiquetas:
Programación Web
Principios Gestalt
La psicología de la Gestalt es una corriente de la psicología moderna.
La mente configura, a través de ciertas leyes, los elementos que llegan a ella a través de los canales sensoriales (percepción) o de la memoria (pensamiento, inteligencia y resolución de problemas). En nuestra experiencia del medio ambiente, esta configuración tiene un carácter, primero sobre los elementos que la conforman, y la suma de estos últimos por sí solos no podría llevarnos, por tanto a la comprensión del funcionamiento mental. Este planteamiento se ilustra con el axioma el todo es más que la suma de sus partes, con el cual se ha identificado con mayor frecuencia a esta escuela psicológica.
Aquí les muestro un ejemplo en el que se ve una persona montada en un caballo dirigiéndose por el camino con rocas, arboles, etc., y estás tienen forma de rostros de personas.
Los rostros que encontre están encerrados con un círculo rojo.
La mente configura, a través de ciertas leyes, los elementos que llegan a ella a través de los canales sensoriales (percepción) o de la memoria (pensamiento, inteligencia y resolución de problemas). En nuestra experiencia del medio ambiente, esta configuración tiene un carácter, primero sobre los elementos que la conforman, y la suma de estos últimos por sí solos no podría llevarnos, por tanto a la comprensión del funcionamiento mental. Este planteamiento se ilustra con el axioma el todo es más que la suma de sus partes, con el cual se ha identificado con mayor frecuencia a esta escuela psicológica.
Aquí les muestro un ejemplo en el que se ve una persona montada en un caballo dirigiéndose por el camino con rocas, arboles, etc., y estás tienen forma de rostros de personas.
Los rostros que encontre están encerrados con un círculo rojo.
Etiquetas:
Programación Web
Suscribirse a:
Entradas (Atom)





