lunes, 22 de noviembre de 2010

PageRank

El primer paso para un buen posicionamiento en la web en Google es aparecer en el buscador, lo que se puede hacer es darse de alta en google en esta página:

http://www.google.com/intl/es/addurl.html




sin embargo demasiadas páginas se dan de alta en un día y es posible que google no las restree todas, es por eso que la mejor forma de aparecer en el buscador es CONSIGUIENDO ENLACES.

PageRank representa lo importante que es un sitio web en internet, es un valor número. La manera en que Google define esto es tomando en cuenta cuantos links hay hacia esa página que se esta calificando, pero también importa la página web que da este link, es decir si es una p{agina importante la que esta "linkeando"o es una página "equis".
La importancia de la página se define por la cantidad de "votos"(links hacia ella), cuantos m{as votos tenga se puede descir que es más importante.
PageRank es un concepto desarrollado por los fundadores Larry Page y Sergey Brin, este dato es muy importante ya que conforme a él estan posicionadas las páginas en las busquedas web. Aunque es importante decir que este no es el {unico factor que google utiliza pero si es uno muy importante.
Google puede descartar algunos links, debido a que son puestos en p{aginas que se dedican a poner links llamadas "link farms".
Google acepta que una página no puede controlar los links que estan apuntando hacia ella, pero si puede controlar los enlaces que su página pone hacia otras páginas.
Es poreso que los links hacia una página no la perjudican, sin embargo si la pueden perjuidcar los enlaces que una página coloque hacia sitios penalizados, se puede perjudicar su PageRankTM.
Hacer enlaces hacia páginas web que tienen PR0 es penalizado por google.
Es posible conocer el PR de las páginas en esta página.
Y este es el top de los sitios con mejor puntaje, los datos fueron obtenidos de http://google.dirson.com/pr10.php:




El "PageRank" usa un algoritmo que fue patentado en Estados Unidos en 1998, por Larry Page. Su nombre original es "Method for node ranking in a linked database".

Aunque es posible que hayan páginas con mejor PR que otras y esten posisionadas en google en un lugar más arriba, esto se debe a que han optimizado los contenidos de sus páginas, ya que han realizado buenos enlaces y han conseguido insertar sus enlaces en buenas páginas web.

La mejor manera de que enlazen tu página es de la siguiente manera:
<A href=http://www.sitio.com/pagina.html>Palabra(s) clave(s)</A>

Y es importante saber que no se siguen los enlaces hechos con javascript, y tampoco los de este tipo(conocido no??):

'www.directorio.com/link.cgi?id=300'

Una buena manera de conseguir enlaces puede ser en DMOZ, que es un directorio público y abierto, y que esta controlado por editores voluntarios.
Conseguir enlaces desde otros sitios web, no es tan fácil ya que se necesita checar los sitios webs que tienen temas relacionados con tu página y ahora investigar en cuales de ellos es posible conseguir el enlace.
Investigando sobre este tema encontré una página que calcula el PR

http://www.mipagerank.com/

Bueno lo primero que hice fue buscar la página de la uanl, y estos son los resultados:



Despues hicé una consulta más, bueno en realidad dos, y esta si es bastante interesante

FIME vs FACPyA

FIME

FACPYA


Y buscando un poco más en el mismo sitio, encontre que también te ofrecen un PAGERANK en mi web, y así es como se hace:
Introduces la direccion de tu sitio..
Enseguida te generan un código, en javascript que es para incrustarse en tu sitio...



Y bueno lo que yo hice es pegarlo en la parte de abajo de mi blog, entonces es ahí donde podran ver el valor de mi PR.





Espero les haya gustado la entrada, :D
Referencias

jueves, 18 de noviembre de 2010

Avance

Hola compañeros, mi aplicación es un google app que permite mandar correos sin necesidad de que abras tu cuenta de gmail, hotmail, yahoo, etc, incluso para quienes no tengan alguna cuenta de correo, también creo que es muy práctica cuando necesitamos mandar algo rápido sin necesidad de esperar hasta que se cargue a cuenta, escribir la contraseña etc, es una muy buena opción claro siempre y cuando nose haga mal uso de ella,
para esto cree una cuenta de correo en gmail nueva con el nombre de quick.mail.pw@gmail.com, lo siguiente que hice fué crear una cuenta en google apps(entrada que estoy por subir para que sepan aquellos que hicieron la aplicación en facebook) y creé una aplicación nueva a la que llamé



, para esto yo ya tenía codificada la aplicación simplemente ahora la pase a esa dirección.

Mi aplicación por ahora se compone solamente de un main.py, app.yaml e index.yaml, pienso agregarle algún css, y al código main.py poner un un boton que muestre la "vista previa", y luego uno "enviar" y te diga que el correo fué enviado o no satisfactoriamente(esto es con una función de python que comprueba si el correo existe, lo que aún no he checado es si sólo lo comprueba para gmail o también para cualquier hotmail, yahoo, etc).

Un inconveniente es que para probar mi código no se puede hacer en localhost por la funcion de enviar mail, todo los cambios que hacia se tenian que hacer directamente en el servidor, cosa que tarda aproximadamente 5 o 6 minutos.
El caso es que por ahora mi aplicación ya manda correos a cualquier cuenta existente, osea la funcionalidad ya la hace ahora es solo ponerlo "bonito" con el css como habia dicho y unas condiciones para cuando el correo si existe y me gustaria agregarlo a facebook.


Imagen de la aplicación:



Imagén cuando llega el correo:


Bueno, por lo pronto hasta mañana :D

jueves, 11 de noviembre de 2010

Usabilidad web

SIASE UANL

Visibilidad del estatus del sistema
No muestra el mapa del sitio, es decir si estamos en alguna apartado de la página no dice de que pestaña viene.
Por ejemplo en esta página, para acceder al recibo del alumno seguimos los siguientes pasos Principal>Servicios en linea>Siase>Entra>Escuela>Aviso de pago, y no muestra la ubicación después de entrar al SIASE:


Control y libertad del sistema
Por ejemplo cuando ingresamos al sistema, ingresas a una carrera y no puedes regresar a la página donde te muestra el historial en la universidad, si no que tienes que salir del sistema y volver a entrar.


Flexibilidad y eficiencia de uso

En la página principal de la universidad deberia de venir muy visible los apartados más visitados por los usuarios sin embargo algunas cosas se dificultan para encontrar como el SIASE.


Información necesaria
En la página del SIASE hay algunas opciones en las que podemos entrar, y ahora para nosotros no tienen ninguna utilidad, por ejemplo, esta activa la opcion de Servicio Social para alumnos de primer, segundo hasta cuarto semestre cuando el semestre válido para hacer eso es apartir de quinto, también aparece el formato de entrega de credencial cuando eso paso hace un año, encuestas Dell a además el menu esta lleno de opciones parecidas que se podrian agrupar, por ejemplo kardex y calificaciones, avisos de pago y cuota escolar de rectoria.


Ayudar a los usuarios a reconocer errores
No cuenta con esta caracteristica la página ya que aveces hay una ventana que muestra un error con un boton de aceptar, aceptas y luego vuelve a salir la ventana, asi hasta que mejor se tiene que cerrar el navegador.


Ayuda y documentación

Deberian agregar una opción de ayuda con documentación adecuada sobre todo para los alumnos de nuevo ingreso, además le falta un cuadro de texto para que el alumno pueda sugerir mejoras, hacer comentarios, quejas, etc.

Esta es la lista de reglas que calificamos en la página:

Blogs de mis compañeros:



miércoles, 27 de octubre de 2010

Cookies

¿Que son las cookies?
Las cookies son un mecanismo para guardar información del usuario en su mismo equipo. Algunos servidores mandan una petición a los navegadores web para que guarden cierta información del usuario en su mismo disco, puede ser de forma temporal en la memoria principal, o permanente en la memoria secundaria en forma de ficheros de texto.

La información almacenada en los ficheros puede ser utilizada por el servidor web de la página cuando el usuario vuelva a acceder a ella, u otras páginas para las que se haya establecido la visibilidad de la cookie.
Las cookies no fueron creadas para invadir la privacidad de los usuarios de Internet, su principal objetivo es poder identificar a los usuarios y una vez que el usuario navegador en una página pro primera vez, las siguientes veces esta página ya este personalizada para el usuario, además libera de sobrecarga al servidor.

Son muy útiles para almacenar información como el numero de visitas, preferencias, estado de conexión y, en general, información que sirva para realzar la navegación del cliente y permita hacer aparentar una navegación continua.

Las cookies como un fichero de texto normal, no puede realizar algún tipo de acción en el equipo del usuario, no puede abrir ficheros del usuario, ejecutar programas, establecer conexiones de red.. etc.


Las cookies están llenas de mitos, muchos usuarios creen que son "malas" que invaden su privacidad sin embargo esto es como lo dije antes solo un mito, sin embargo el usuario puede si asi lo desea configurar su navegador para que no acepte ningún tipo de cookie o para que le pregunte antes de generar cualquier tipo de cookie.




Propósito
Las cookies fueron creadas para dar el servicio de una tienda virtual en el que los usuarios de un sitio web pueden ir escogiendo artículos y agregarlos a un cesta de compra y poder eliminarlos, etc, las cookies hacen que estos movimientos dependan de las acciones del usuario.
Otros sitios web utilizan las cookies identificación en los sitios web, es decir aveces cuando estamos en algún sitio en el que ya estamos registrados es posible que la página ya este lista para nosotros, pero si un usuario accede al sitio sin registrarse va a tener restricciones por que no se ha registrado.
Y otros sitios web utilizan las cookies para establecer el aspecto que más agrade al usuario, sirven para personalizar el sitio web según cada usuario, personalidad incluye la funcionalidad y la presentación.

Ejemplos:

Google
El siguiente texto es un fragmento que obtuve de la página de google "Centro de privacidad":
"Cookies: al acceder a Google, se envían una o varias cookies a su equipo o a otro dispositivo. Las cookies se utilizan para mejorar la calidad del servicio, incluidos el almacenamiento de las preferencias del usuario, la mejora de los resultados de búsqueda y de la selección de anuncios y el seguimiento de las tendencias del usuario como, por ejemplo, el tipo de búsquedas que realiza. Google también utiliza cookies en los servicios publicitarios para que anunciantes y editores puedan ofrecer y administrar anuncios en Internet y en los servicios de Google."

Esto sucede en mi navegador cuando quiero entrar a mi cuenta http://gmail.com:

Youtube

Es probable que ya se hayan dado cuenta que una vez que entramos a ver un vídeo a youtube y luego después volvemos a entrar youtube nos muestra un listado de vídeos sugeridos de acuerdo al ultimo vídeo visto en su página.
En esta imagen trato de mostrar como hago una búsqueda en youtube por videos "ipad"



Después cierro la página, y la vuelvo a abrir la página principal de you tube me hace estas recomendaciones(algunos vídeos de ipad):



Referencias

Laboratorio

martes, 26 de octubre de 2010

Introducción de Lenguaje SQL















SQL es un lenguaje de manipulación y definición de datos para las bases de datos relacionales.
Es de manipulaciónporque se pueden efectuar consultas, y realizar operaciones como borrar, insertar, actualizar los datos que contiene y de definición porque permite definir la estructura de las tablas que componen la base de datos.

SQL tiene sus bases en el lenguaje SEQUEL(Structured English QUEry Language) desarrollado por IBM, un lenguaje para la especificación de bases de datos que tenían el modelo relacional(de lo que hable en mi entrada pasada).En 1979 apareció el primer Sistema de Gestión de Bases de Datos basado en SQL, Oracle, después empezaron a aparecer en el mercado múltiples productos de bases de datos que utilizan el lenguaje SQL: SQL/DS, DB2, SYBASE, INTERBASE, INFORMIX y otros.

Características destacables de SQL:
  • Posee una firme base teórica
  • Lenguaje expresivo
  • Flexible
  • Es posible manejar un conjunto de registros.
  • Cuenta con una estructura simple
  • La calificación tiene alta productividad, es decir con una sola sentencia es posible hacer consultas complejas.

SQL puede usarse de dos maneras:
  • Como un lenguaje de autocontenido, escribiendo directamente las sentencias y obteniendo directamente el resultado.
  • Como lenguaje embebido, en un lenguaje de programación(C, Fortran, Cobol, Basic), así es como SQL se complementa con las capacidades de otros lenguajes de programación.

Sentencias de definición de datos:
Las sentencias SQL de definición permiten crear las bases de datos, tablas, índices, y otros elementos que la componen. Los nombres que podemos utilizar para identificar los elementos pueden ser letras, dígito o signos de subrayado pero siempre comenzando por una letra y no coincidir con ninguna palabra reservada del lenguaje.

Creación de la base de datos:

Para crear la base de datos se utiliza el comando:

CREATE DATABASE nombre_base

nombre_base es el identificador para acceder a la base de datos.

Creación de tablas:

CREATE TABLE nombre_tabla(atributo1 dominio11, atributo2, dominio2..);

atributo se refiere al nombre del atributo, y el dominio es como un tipo de datos, es decir pueden ser números, cadenas de caracteres, fecha, horas, etc.

Modlificación de tablas:

Es posible modificar las tablas con ALTER

Cambio de nombre de la tabla:

ALTER TABLE NOMBRE_TABLA RENAME NOMBRE_NUEVO;

Cambio de nombre de un atributo de la tabla:

ALTER TABLE NOMBRE_TABLA CHANGE ATRIBUTO_VIEJO ATRIBUTO_NUEVO dominio;

Cambio de tipo de dato de un atributo de la tabla:

ALTER TABLE NOMBRE_TABLA CHANGE ATRIBUTO ATRIBUTO nuevo_tipo_dato;

Añadir un nuevo atributo a la tabla:

ALTER TABLE NOMBRE_TABLA ADD ATRIBUTO_NUEVO dominio;

Eliminar un atributo de la tabla:

ALTER TABLE NOMBRE_TABLA DROP ATRIBUTO;

NOTA: En SQL no importan mayúsculas ni minúsculas.


Referencias:

Laboratorio

lunes, 25 de octubre de 2010

Bases de datos

¿Que son las bases de datos?

Las bases de datos permiten guardar mucha información de forma organizada y agrupada, en informática este termino se refiere a un sistema que esta formado por un conjunto de datos guardados, a los que se puede acceder por medio de programas que manejan este conjunto de datos.
Las bases de datos están agrupadas en una o más tablas, las tablas están compuestas de filas y columnas, las columnas contienen una propiedad del elemento guardado y las filas también llamadas registros, contienen la información de un elemento de la tabla.

Sistema de gestión de bases de datos(SGBD)

Sistemas de gestión de bases de datos, son los softwares que sirven de interfaz entre la base de datos, el usuario y las aplicaciones que las utilizan, se componen por un lenguaje de manipulación de datos, de consulta y de creación de definición de datos.

Ventajas de las bases de datos
  • Todos las tablas están integradas por lo que se evita repetir datos y ocupar espacio en la memoria.
  • Cuando se realiza una actualizacion a algún dato, el sistema detecta rápidamente si ese dato esta en otras tablas para así modificarlo automaticamente.
  • Diversos usuarios pueden acceder a la misma base de datos.
  • Se cuenta con lenguajes de consulta que permiten al usuario hacer cualquier tipo de consulta en la base de datos.
  • Independencia de los datos de las aplicaciones que los utilizan, lo que hace más fácil el mantenimiento de aplicaciones.

¿Ficheros de texto como base de datos?

En ocasiones un fichero de texto puede cumplir con la función de base de datos en páginas, en algunos casos el uso de ficheros de texto pueden tener ciertas ventajas:
  • Uso muy sencillo
  • No se necesita conocer los lenguajes de bases de datos.
  • No se ocupa instalar aplicaciones adicionales.
  • Hay proveedores de acceso y alojamiento de páginas web que no permiten alojar paginas con accesos a bases de datos.

Sin embargo usar bases de datos(MYSQL, Acces, etc), ofrece grandes ventajas como almacenar grandes volúmenes de información, la optimización de si gestión, la facilidad para realizar consultas y la exactitud, rapidez y fiabilidad en su administración.

En el desarrollo de aplicaciones web las bases de datos son muy importantes, muchas de las páginas que consultamos son el resultado de consultas de bases de datos, mostrando su carácter dinámico.

Diseño de bases de datos

Modelo relacional
Para la generación de bases de datos se usa comúnmente el "modelo relacional". Este modelo se basa en representar los datos en tablas, las columnas representan los atributos de los datos, los atributos en común de las tablas es lo que permite hacer la relación entre tablas.
Cada una de las filas se suele denominar tupla o registro, y a su vez esta formado por valores cuyo tipo coincide con el correspondiente atributo
Por ejemplo:


en ese ejemplo el atributo en común entre esas dos tablas es el que permite relacionar los clientes con sus cuentas. Además lo más común es que las tablas tengan un atributo o más que identifique de forma única a los registros, a este atributo se le llama clave, en la imagen de tablas anterior lo lógico es que cédula sea la clave, ya que es imposible que dos clientes tengan el mismo numero de cédula.
Cuando se define una base de datos relacional se deben indicar claramente la estructura de la tabla, con los atributos(nombre y tipos), la o las claves, así como restricciones sobre los mismos.

Al crearse alguna base de datos debe tenerse en cuenta que su distribución no es algo trivial, necesita una plantificación muy cuidadosa, existe una teoría que habla sobre el diseño de las bases(Teoría de la normalización) de datos para evitar redundancias e inconsistencias.

Diagramas de entidad-relación
Los diseños de bases de datos pueden apoyarse en diagramas entidad-relación, que ayuda a mostrar de una manera más gráfica las entidades que existen, las relaciones entre ellas, y el tipo de relaciones. Ayudan a identificar las distintas tablas que debe haber en la base de datos.

Existen herramientas que permiten hacer el diagrama entidad-relación y al mismo tiempo generar la base de datos, estas herramientas pertenecen a la categoría CASE(Computer Added Software Engineering).



Productos de Sistemas de gestión de bases de datos en el mercado:

MySql: Base de datos con licencia GPL basada en un servidor. Su característica es la rapidez.
PostgreSql y Oracle: Sistemas de bases de datos poderosos, tiene la capacidad de administrar grandes cantidades de datos.
Access: Fue creado por Microsoft, la base de datos se crea en el programa acces, el cual crea un archivo.mdb con la estructura correspondiente.
Microsoft SQL Server: Base de datos desarrollada por Microsoft, es utilizada para manejar grandes cantidades de datos.


Referencias:
"PHP y MySQL", editorial Díaz de Santos, autores Ángel Cobo, Patricia Gómez, Daniel Pérez y Rocío Rocha.

Laboratorio

domingo, 24 de octubre de 2010

Java Server Pages y Tomcat

Laboratorio

JSP es una tecnología para crear páginas web programadas en java, JSP quiere decir Java Server Pages, Paginas de Servidor Java. Sirve para crear páginas con contenidos dinámico, mostrando en el navegador documentos html o xml comúnmente.
Sun Microsystems fué la compañía que desarrolló esta tecnología. Los JSP's aceptan que se use el código java mediante scripts.
Pueden considerarse como otra forma de escribir servlets(programas que se ejecutan en el navegador), ya que los JSP's pueden hacer lo mismo que los servlets y los servlets lo mismo que los JSP's.
La forma en que funciona esta tecnología es que se interpreta el código en jsp para generar el código java del servlet, este servlet es el que se encarga de generar lo que el usuario verá en la pantalla como lo dije antes xml o html comúnmente.
Se pueden extender las etiquetas de jsp para ello se debe de implementar las Bibliotecas de etiquetas.
Los JSP's generan servlets: un JSP se compila en Java la primera vez que se ejecuta, este código en Java genera una clase que se usa en el servidor como un servlet, la diferencia entre el JSP y un servlet es el enfoque se programación el JSP es una pagina web con etiquetas especiales y código java incrustado mientras que el servlet es un programa que recibe peticiones y puede generar a partir de eso páginas web.

JSP y servlets necesitan un programa que los contenga, y sea el que envie paginas web al servidor, las peticiones, que haga todas las funciones de un servidor, etc. Bueno nosotras ya conocemos el servidor Apache que es para páginas web un poco más estáticas CGI's que se ejecutan en el servidor pero los JSP's y servlets tienen su propio servidor se llama contenedores de servlets el más común es Tomcat.
Funcionamiento de Tomcat:

Instalación y configuración

Para provar nuestras páginas.jsp, hay que tener instalado el servidor Tomcat, el primero paso es :

sudo apt-get install tomcat6

una vez instalado en el terminal aparecerá algo como la siguiente imagen, que nos dice la ubicación de variables de entorno que usaremos más adelante,(yo hice captura de pantalla, porque me pareció importante pero en realidad ningún sitio de Internet te lo dice, solo dicen que hay que agregar esas lineas en un archivo pero no te dicen en realidad la ubicación de las variables).

Una vez instalado Tomcat debemos modificar el archivo ./bashrc, puedes acceder a el con el siguiente comando:

cecy@cecy-desktop:~$ sudo emacs /home/cecy/.bashrc

Ahora agregamos las lineas de las que ya habia hablado al final del archivo:

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
export JDK_HOME=/usr/lib/jvm/java-6-openjdk
export CATALINA_HOME=/usr/share/tomcat6
export CATALINA_BASE=/var/lib/tomcat6

Imagen del archivo:

Ahora hay que ir a la ubicación de nustro programa Tomcat:



Podemos ver en esa imagen que hay algunos archivos con los permisos modificados, esto lo pueden hacer con el comando chmod +x nombrearchivo.
Ahora tecleamos el siguiente comando para correr el script:

cecy@cecy-desktop:/usr/local/tomcat/bin$ ./startup.sh

lo que me da como resultado en la pantalla:


Ahora puedo ver mi servidor funcionando:

Y para cerrar Tomcat se ejecuta e el mismo directorio la siguiente linea:
./shutdown

Probar archivo.jsp

Ahora vamos a ver como funciona el servidor, lo primero que tenemos que saber es en que carpeta hay que ubicar el archivo.jsp, deben de ir en:

cecy@cecy-desktop:/var/lib/tomcat6/webapps/ROOT$


Este es mi archivo hola.jsp


y para verlo en el navegador tecleamos la direccion:
http://localhost:8080/hola.jsp

Espero lean esta entrada, y si tratan de instalar Tomcat y hay alguna duda, comente en el blog :D.

Referencias:

sábado, 23 de octubre de 2010

Python manejo de archivos

Laboratorio

El manejo de archivos era una de las cosas que menos me gustaba a la hora de programar, ya que no entendía bien la manera de trabajarlos, no sabía cuando se estaba leyendo una línea o alguna palabra e ignoraba completamente cuando se tiene que abrir un archivo de lectura, escritura o lectura y escritura.
Antes del proyecto de medio curso(sabía que lo íbamos a utilizar demasiado), estuve practicando con algunos códigos, aunque después mejore parte de ellos, esto es con lo que empecé:

Primero que nada es importante saber que al querer manejar ficheros se debe de tener claro para que se quiere utilizar, para leer datos, escribir en el archivo, leer y escribir, agregar datos, porque hay distintas formas de abrirlo de acuerdo al objetivo "w" abre el archivo para escritura si ya existía un archivo con ese nombre sobreescribe, "r" abre un archivo que tiene que existir para lectura, "a" abre un archivo para lectura y escritura si se quiere escribir los datos se agregan al final del archivo y si no existe el archivo lo crea.

La manera de abrir el fichero es:

f.open("archivo.txt", "a")
f.read() #se imprimen el contenido del archivo
f.write("Holis") #agregamos la palabra Holis
f.close()

Ahora los ejemplos de los que había hablado:

Primero cree una lista en un archivo.txt al que llame lista.txt que es con el que voy a estar trabajando:

Sandra Cecilia,1413021,77,
Gemma Tovanche,1458523,85
RGB,1456984,95,
Jose Miguel,1456325,100,

como vemos tengo varias "categorías" que son nombre, matricula y calificación, en Python es posible separar llamar a cada dato por su categoría usando la función
linea = line.split(','), en la que indico que cada categoría esta separada por comas, el siguiente paso es darlo nombre a las categorías yo lo hice de la siguiente forma:

nombre = linea[0]
matricula = linea[1]
calif = linea[2]

así es como digo que la primer columna es el nombre, la segunda la matricula y la tercera la calificación.
Ya en el código en python al que llame leerlista.py trabaje con estas variables(nombre, matricula, calificación) buscando el nombre de alguien en el archivo, e imprime su calificación:


Este es el resultado en el terminal:



Ahora para eliminar alguna línea del archivo lo que se hace es leer linea por linea y buscar en cada una que no coincida con la linea que se quiere eliminar, y si es así se guarda todo en la variable contenido(que declare previamente como una cadena vacía) y cuando se encuentra la coincidencia la linea no entra al if y no se guarda en contenido es así como se elimina la linea ahora el ultimo paso es sobreescribir en el archivo la variable contenido y la linea se habrá eliminado.

Este es el código:

Y la lista sin la línea indicada:

Y el código para modificar un archivo no es más que la combinación de agregar al archivo y eliminar, este es el código:


Y la ejecución(ahora podemos ver que cambio "Jose Miguel" por "miki"):


Bueno creo que eso es suficiente para tener los conocimientos básicos del manejo de listas, si tienen alguna duda por favor comenten :D

jueves, 21 de octubre de 2010

CGI

Interfaz de entrada común(Common Gateway Interface) es una importante tecnología web que permite crear páginas dinamias, el cliente(navegador web) solicita datos a un servidor web. Es el proceso de interacción entre el servidor web y aplicaciones externas. A las aplicaciones que se ejecutan en el servidor se les llama CGI's.

Esta tecnología fue una de las primeras que permitio el dinamismo de las páginas web, a grandes rasgos lo que hace es, primero el cliente manda una petición al servidor, este servidor ejecuta alguna aplicación externa escrita en cualquier lenguaje que soporte el servidor por lo general son scripts por su portabilidad y genera un contenido que se va a mostrar al cliente en el navegador en vez del documento estático tradicional.

CGI ha hecho posible agregar funcionalidades nuevas alas páginas web motivo por el cual esta tecnología rápidamente se volvió un estándar siendo utilizada en muchos servidores web.

Funcionamiento CGI
  • Primero que nada el servidor recibe una petición del cliente y se verifica si se trata de alguna invocacion a un CGI.
  • Después el servidor se prepara para ejecutar las aplicaron, esta información casi siempre viene del cliente.
  • Después el servidor ejecuta la aplicación dando como resultado una salida estándar.
  • Enseguida la aplicación realiza su función, genera un objeto MIME agregandolo a la salida estándar.
  • Ahora cuando la aplicación termina, el servidor envía la información producida más la propia al cliente que se encontraba en espera.

Programación de un CGI

Estos programas pueden escribirse en diferentes lenguajes que generen un fichero ejecutable, los más comunes son Perl, C, C++ y el que ya conocemos por experiencia propia Python. Como el lenguaje recibe los parámetros en cadenas de texto es conveniente usar un lenguaje que permita realizar manipulaciones a las cadenas de caracteres de manera fácil, por ejemplo Perl y Python.

Tipos comunes de CGI's
  • Correo: Obtiene la información de manera estructurada del cliente.
  • Contador de accesos: Cuenta el numero de veces que se entra a alguna página, este dato es guardado en algún fichero, y cuando se vuelve a acceder a la página aumenta su valor.
  • Buscador: Localiza páginas, usando tablas con palabras especificas, y a su vez las paginas que las contienen
  • Contribuciones: Permite añadir información auna página indicando la procedencia de la adición.
  • Estadísticas de uso: Contiene información de lo ocurrido en el servidor de WWW.
  • Administración remota del servidor: Permite interactuar con el servidor desde WWW.

Leyendo la forma de entrada del usuario
El usuario envía la información a traves de los formularios html, y nuestro script recibe los datos de forma nombre-valor, en donde nombre son los especificados en las etiquetas INPUT y los valores es lo que el usuario haya tecleado o seleccionado.
Este es el formato de la cadena:
nombre1=valor1&nombre2=valor2&nombre3=valor3

Enviar respuesta
Primero escribes la linea Primero, escribe la línea
Content-type: text/html
y ahora si escribes el documento html según el lenguaje que se este utilizando.

Este es un ejemplo simple en Perl(sitio del código):


Aunque es muy simple comparado con lo que ya hicimos en Python muestra como se usa Perl para crear páginas web dinamicas, y tengo algo más que mostrarles muy acorde al tema, es un tutorial que a mi me gusto mucho, y se que a ustedes tambien les va a interesar ya que esta muy relacionado con lo que ya hicimos, pero muestra una aplicacion web muy completa, sencilla y profesional...como hacer un WIKI con Python y la tecnologia CGI, aqui les dejo el PDF que encontré en la web, el link del sitio original de donde lo obtuvé ya no lo tengo pues ya pasaron algunos meses, sin embargo lo subí a google docs para poder compartirlo con ustedes:


Descargar aquí;


Referencias:

Laboratorio