Programación 2

Resumen de los contenidos vistos en la materia hasta la fecha.

Conceptos generales del disenio de paginas web

¿Que es una pagina web?

Es un lugar donde se encuentran almacenados diversos tipos de archivos y programas que esta alojado internet.

¿Que debe tener una pagina web?

  • Compatibilidad: soporte en navegadores, alternativas en disposicion, reutilizacion de elementos.
  • Utilidad: resolucion de problemas reales, prioridad de los usuarios, separacion de responsabilidades HTML-CSS, consistencia del arbol DOM(Document Object Model.
  • Interoperabilidad: definicion del funcionamiento, evitar complejidad innecesaria, control de errores.
  • Acceso universal:independencia del medio, apoyo a diferentes idiomas, accesibilidad para todo el publico.

Pautas para promover la accesibilidad en paginas web

El fin principal de promover la accesibilidad en paginas web es el de hacer posible el manejo de todo el contenido existente a traves de la red para todo el publico sin importar las diferencias de capacidad. Algunas pautas aplicables son:

  • Texto alternativo en imagenes.
  • Subtitulos en los videos.
  • Seleccion de colores para personas que sufran de daltonismo.
  • tamanio de texto suficientemente grande.
  • perimitir siempre el uso del teclado y el raton

Usabilidad de paginas web

Esto se refiere a las tecnicas que ayudan a los seres humanos a realizar tareas en entornos graficos de ordenador. ALgunos ejemplos son:

  • Entorno grafico estetico y minimalista. Es decir, que se vea bien, pero que a la vez no sea tan exagerado que no se permita entender lo que se esta haciendo.
  • Informar al usuario acerca de lo que esta pasando.
  • Hablar en un lenguaje que sea comprensible para todo publico.
  • Dar libertad de uso.
  • El usuario debe sentir que tiene el control de lo que pasa.
  • Consistencia en las paginas.
  • Facil de usar para inexpertos.
  • Incluir atajos y aceleradores para expertos.




Contenidos fundamentales de la materia

¿Qué es HTML?

Es un tipo de lenguaje diferente de los lenguajes de progrmación, este lenguaje se conoce como lenguaje de marcado y sirve para renderizar el contenido de un sitio web, por sus siglas en inglés el nombre de este es Hyper text Markup Languaje y trabaja utilzando viñetas, cada una con una función específica.

Algunas caracteristicas principales de este lenguaje son:
  1. Sirve para crear paginas de hipertexto.
  2. Es independiente de la plataforma.
  3. Es un lenguaje de facil comprension.
  4. Su contenido se basa en la referenciacion.

Los elementos mas importantes que se pueden realizar mediante el uso de HTML son:

  • Listas. Que pueden ser ordenadas o desordenadas.
  • Tablas para organizar datos.
  • FOrmularios para hacer solicitudes como cliente al servidor. ESte recibe un comando con algun metodo que puede ser get o .... , se envia esto al servidor y luego este realiza los procesos necesarios de acuerdo a la solicitud que se hizo y luego renderiza el resultado.
  • Hacer referencias a otros sitios web o a otros archivos dentro de nuestro ordenador, que en este caso funciona como servidor.
  • Esrtructuras de contenido.
  • Capacidad para mostrar imagenes.
HTML5 es el lenguaje de marcado mas utilzado en la actualidad

Uno de los elementos mas importantes con los que cuenta el lenguaje HTML son los formularios, estos sirven para poder ingresar datos a un sitio o a una aplicacion web, para luego efectuar algun proceso, un ejemplo de estos seria:

el metodo para poder crear un archivo HTML desde el sistema operativo CentOS es buscando la carpeta html mediante el comando "cd /var/www /html" y luego para crear el archivo se usa "vim ejemplo.html" como se muestra en la sigueinte imagen:

Un recurso muy practico y realmente completo para poder aprender desde lo basico hasta lo mas avanzado de HTML es W3Schools, donde se puede consultar acerca del funcionamiento de varias vinietas. A continuacion el link para dirijirse a esa pagina: Ir a W3schools


Arquitectura cliente-servidor


Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras. La interacción cliente-servidor es el soporte de la mayor parte de la comunicación por redes. Ayuda a comprender las bases sobre las que están construidos los algoritmos distribuidos.

En esta arquitectura la computadora de cada uno de los usuarios, llamada cliente, produce una demanda de información a cualquiera de las computadoras que proporcionan información, conocidas como servidores estos últimos responden a la demanda del cliente que la produjo.
Los clientes y los servidores pueden estar conectados a una red local o una red amplia, como la que se puede implementar en una empresa o a una red mundial como lo es la Internet.
Bajo este modelo cada usuario tiene la libertad de obtener la información que requiera en un momento dado proveniente de una o varias fuentes locales o distantes y de procesarla como según le convenga. Los distintos servidores también pueden intercambiar información dentro de esta arquitectura.

Partes que componen el sistema

  • Cliente: Programa ejecutable que participa activamente en el establecimiento de las conexiones. Envía una petición al servidor y se queda esperando por una respuesta. Su tiempo de vida es finito una vez que son servidas sus solicitudes, termina el trabajo. Este se refiere principalmente al navegador utilizado por un usuario
  • Servidor: Se refiere a los sitios web. Es un programa que ofrece un servicio que se puede obtener en una red. Acepta la petición desde la red, realiza el servicio y devuelve el resultado al solicitante. Al ser posible implantarlo como aplicaciones de programas, puede ejecutarse en cualquier sistema donde exista TCP/IP y junto con otros programas de aplicación. El servidor comienza su ejecución antes de comenzar la interacción con el cliente. Su tiempo de vida o de interacción es “interminable”.

Lenguaje de programación Perl


¿Qué es Perl?

Perl es un lenguaje de programación, pero no es un lenguaje tal y como lo conocemos, sino que es un lenguaje de script.

PERL significa Practical Extracting and Reporting Language. Como vemos, se suele usar para sacar información de ficheros de texto y poder generar informes. Perl mezcla un poco las características de varios lenguajes, como puede ser C, Bourne Shell y AWK. Como estos son lenguajes que siempre han actuado en entornos Unix, en un principio también Perl sólo funcionaba en este sistema operativo, pero en la actualidad está presente en otras plataformas. El lenguaje lo creó Larry Wall en el año 1987, con la intención de hacer más simples algunas tareas repetitivas cuando administraba servidores.

Ventajas y desventajas de Perl
  • Es un eficiente, completo y fácil de usar.
  • Se puede realizar una gran cantidad de aplicaciones con este lenguaje en campos como la administración de sistemas, aplicaciones web, entre otros.
  • Perl esta disponible para gran cantidad de sistemas operativos, lo que lo hace un lenguaje accesible a cualquier usuario
  • La principal desventaja de Perl se encuentra en el tiempo de ejecución de un programa, ya que un programa Perl es compilado cada vez que se ejecuta, por lo que puede resultar más lento que un programa similar escrito en otro lenguaje. Sin embargo, se han implementado técnicas para mejorar esta situación como guardar el compilado del programa en memoria y retrasar la compilación hasta que sea necesitada.

Common Gateway Interface (CGI)

Interfaz de entrada común (en inglés Common Gateway Interface, abreviado CGI) es una importante tecnología de la World Wide Web que permite a un cliente (navegador web) solicitar datos de un programa ejecutado en un servidor web. CGI especifica un estándar para transferir datos entre el cliente y el programa. Es un mecanismo de comunicación entre el servidor web y una aplicación externa cuyo resultado final de la ejecución son objetos MIME. Las aplicaciones que se ejecutan en el servidor reciben el nombre de CGIs. Las aplicaciones CGI fueron una de las primeras prácticas de crear contenido dinámico para las páginas web. En una aplicación CGI, el servidor web pasa las solicitude s del cliente a un programa externo. Este programa puede estar escrito en cualquier lenguaje que soporte el servidor, aunque por razones de portabilid ad se suelen usar lenguajes de script. La salida de dicho programa es enviada al cliente en lugar del archivo estático tradicional. CGI ha hecho posible la implementación de funciones nuevas y variadas en las páginas web, de tal manera que esta interfaz rápidamente se volvió un estándar, siendo implementada en todo tipo de servidores web.

A continuaci[on se describe el modo de actuacion de los CGI

  • En primera instancia, el servidor recibe una petición (el cliente ha activado un URL que contiene el CGI), y comprueba si se trata de una invocación de un CGI.
  • Posteriormente, el servidor prepara el entorno para ejecutar la aplicación. Esta información procede mayoritariamente del cliente.
  • Seguidamente, el servidor ejecuta la aplicación, capturando su salida estándar.
  • A continuación, la aplicación realiza su función: como consecuencia de su actividad se va generando un objeto MIME que la aplicación escribe en su salida estándar.
  • Finalmente, cuando la aplicación finaliza, el servidor envía la información producida, junto con información propia, al cliente, que se encontraba en estado de espera. Es responsabilidad de la aplicación anunciar el tipo de objeto MIME que se genera (campo CONTENT_TYPE)

Los CGI pueden ser programados en una gran variedad de lenguajes de programacion, pero debido a la sencilles en la codificacion, el lenguaje mas recomdable para programar este tipo de apliciones es Perl.

El metodo para poder hacer este tipo de programas en el Sistema opertavio Centos, que es el utilizado en este curso es: desde la linea de comandos ingresar la instrucccion "cd /var/www/cgi-bin/" y luego escribir la orden "vim ejemplo.cgi" como se ve en la siguiente imagen:



Un recurso muy practico, sencillo, pero a la vez fundamental para el aprendizaje de este lenguaje es "el evangelio de perl" del cual, se dejara el enlace a continuacion
Ir al evangelio de Perl

Javascript


¿Qué es Javascript?

Javascript es un lenguaje con muchas posibilidades, utilizado para crear pequeños programas que luego son insertados en una página web y en programas más grandes, orientados a objetos mucho más complejos. Con Javascript podemos crear diferentes efectos e interactuar con nuestros usuarios.
Este lenguaje posee varias características, entre ellas podemos mencionar que es un lenguaje basado en acciones que posee menos restricciones. Además, es un lenguaje que utiliza Windows y sistemas X-Windows, gran parte de la programación en este lenguaje está centrada en describir objetos, escribir funciones que respondan a movimientos del mouse, aperturas, utilización de teclas, cargas de páginas entre otros.
Es necesario resaltar que hay dos tipos de JavaScript: por un lado está el que se ejecuta en el cliente, este es el Javascript propiamente dicho, aunque técnicamente se denomina Navigator JavaScript. Pero también existe un Javascript que se ejecuta en el servidor, es más reciente y se denomina LiveWire Javascript.


¿Cómo nace Javascript?

Javascript nació con la necesidad de permitir a los autores de sitio web crear páginas que permitan intercambiar con los usuarios, ya que se necesitaba crear webs de mayor complejidad. El HTML solo permitía crear páginas estáticas donde se podía mostrar textos con estilos, pero se necesitab a interactuar con los usuarios.
En los años de 1990, Netscape creo Livescript; las primeras versiones de este lenguaje fueron principalmente dedicadas a pequeños grupos de diseñadores Web que no necesitaban utilizar un compilador, o sin ninguna experiencia en la programación orientada a objetos. A medida que estuvieron disponibles nuevas versiones de este lenguaje incluían nuevos componentes que dan gran potencial al lenguaje, pero lamentablemente esta versión solo funcionaba en la última versión del Navigator en aquel momento. En diciembre de 1995, Netscape y Sun Microsystems (el creador del lenguaje Java) luego de unirse objetivo de desarrollar el proyecto en conjunto, reintroducen este lenguaje con el nombre de Javascript. En respuesta a la popularidad de Javascript, Microsoft lanzo su propio lenguaje de programación a base de script, VBScript (una pequeña versión de Visual Basic
En el año de 1996 Microsoft se interesa por competir con Javascript por lo que lanza su lenguaje llamado Jscript, introducido en los navegadores de Internet Explorer. A pesar de las diferentes críticas que se le hacen al lenguaje Javascript, este es uno de los lenguajes de programación más populares para la web. Desde que los navegadores incluyen el Javascript, no necesitamos el Java Runtime Environment (JRE), para que se ejecute.

El Javascript es una tecnología que ha sobrevivido por más de 10 años, es fundamentales en la web, junto con la estandarización de la “European Computer Manufacturers Association” (ECMA) (adoptada luego por la ISO) y W3C DOM, Javascript es considerado por muchos desarrolladores web como la fundación para la próxima generación de aplicaciones web dinámicas del lado del cliente. La estandarización de Javascript comenzó en conjunto con ECMA en Noviembre de 1996. Es adoptado este estándar en Junio de 1997 y luego también por la “Internacion al Organization for Standardization” (ISO). El DOM por sus siglas en inglés “Modelo de Objetos del Documento” fue diseñado para evitar incompatibilidades.

¿Dónde puedo ver funcionando Javascript? Entre los diferentes servicios que se encuentran realizados con Javascript en Internet se encuentran:
  • Correo
  • Chat
  • Buscadores de Información


También podemos encontrar o crear códigos para insertarlos en las páginas como:
  • Reloj
  • Contadores de visitas
  • Fechas
  • Calculadoras
  • Validadores de formularios
  • Detectores de navegadores e idiomas


¿Cómo identificar código Javascript?

El código javascript podemos encontrarlo dentro de las etiquetas body de nuestras páginas web. Por lo general se insertan entre las viñetas script. También pueden estar ubicados en ficheros externos.


Bases de datos

Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso.
Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.

Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas; También son ampliamente utilizadas en entornos científicos con el objeto de almacenar la información experimental.

Un ejemplo de una base de datos podria ser la informacion de un alumno para una materia, tomando como parametros su numero de lista, su nombre, su apellido, su carnet, etc. como ejemplo tenemos la siguiente tabla de alumnos:

Tabla de Alummos:

Numero de listaNombresApellidosCarnet
1Ernesto MarioMartinez MoralesMM11001
2Pamela NicoleChavez MercadoCM17002


Estas tablan permiten almacenar de manera ordenada los datos concernientes a un objetivo en especifico, como lo puede ser mantener actualiza dos los datos de los trabajadores de una empresa, el registro de notas de un grupo de alumno, entre otros.


En el presente curso se utilizo MYSQL para poder gestionar crear baaes de datos, para accesar a este se debe introducir desde la linea de comandos primero debe introducirse la orden "service mysqld start", luego para acceder al gestor de bases de datos se debe es el comando "mysql -uroot -p" lo que nos llevara hasta la terminar de mysql


Posteriormente se puede ingresar el comando "show databeses;" para ver las bases de datos que se han creado y para usar una en especifico se usa "use pel215;" por ejemplo y para ver el contenido creado se ingresa en la consola "show tables;" que muestra todas las tablas creadas en esa base de datos.


Par ver el contenido de alguna de las tablas creadas se debe ingresar el comando "select * from ....."


Tambien se puede editar el contenido mediante otro comando, el cual es el que se muetra en la siguiente imagen



Sistema operativo CentOS


CentOS (Community ENTerprise Operating System) es una bifurcación a nivel binario de la distribución Linux Red Hat Enterprise Linux RHEL, compilado por voluntarios a partir del código fuente publicado por Red Hat, siendo la principal diferencia con este la eliminación de todas las referencias a las marcas y logos propiedad de Red Hat.
Es un sistema operativo de código abierto, basado en la distribución Red Hat Enterprise Linux, operándose de manera similar, y cuyo objetivo es ofrecer al usuario un software de "clase empresarial" gratuito. Se define como robusto, estable y fácil de instalar y utilizar.

Este software libre permite muchas ventajas a los usuarios, ya que cuenta con la posibilidad de instalar diferentes paquetes desde la red destinados a la realizacion de procesos como la creacion de bases de datos mediante MYsql, que es un gestionador de bases de datos relacional, o la creacion de sitios web utilizando la propia computadora como servidor mediante HTTPD apache que es un servidor HTTP de codigo abierto.
Lo interesante del funcionamiento de CentOS es que asi como en LINUX, se puede controlar diversidad de funciones de todo el software desde la consola, con la diferencia de que este por ser un software libre, tiene menos restricciones en cuanto a lo que se puede hacer y no hacer dentro del mismo.

La consola puede realizar distintas funciones de acuerdo a los comandos que en esta se digiten, y existen carpetas y archivos que solo pueden ser accesados a traves de estos. como por ejemplo, se puede activar los servicios de HTTPD apache o de MYSQLD desde la consola con los comandos service HTTPD start o Service mysqld start respectivamente.
tambien permite la creacion de archivos con extension ".html" o ".cgi" que son utiles para mostrar en un sitio web los diferentes archivos que desarrollemos, siendo los archivos html para mostrar y los archivos cgi para las aplicaciones. Un dato interesante acerca de este tipo de archivos(los que poseen la extension .cgi es que son perfectamente ejecutables mediante la utilizacion del lenguaje perl, para ello se debe indicar al incio del documento que se trabajara haciendo uso de este mediante la siguiente declaracion #!/usr/bin/perl.

Una aclaracion sumamente importante es que CentOS trabaja con paquetes y para hacer uso de estos se deben descargar en la web, en el caso de estos procesos que hemos mencionado anteriormente, se debe digitar la siguiente sentencia en la consola yum -y install HTTPD MYSQLD MYSQL-server PERL-DBI perl-cgi y luego de una descarga que dependera de la velocidad del ancho de banda, se podra hacer uso de estos sevicios y para todo esto, es decir, tanto para usarlos como para instalarlos, se debe estar en super usuario. A este se accesa con el comando "su" desde la consola.



Tambien existen otros elementos utilizados en el curso, que si bien no se vieron a profundidad, pueden ser muy utiles para cualquier programador, estos son Tomcat y JDK cuya informacion esta disponible en las pestanas del menu principal