domingo, 6 de mayo de 2012

CGI (Common Gateway Interface)

El CGI es una de las primeras formas de programación web dinámica.


En sí, es un método para la transmisión de información hacia un compilador instalado en el servidor. Su función principal es la de añadir una mayor interacción a los documentos web que por medio del HTML se presentan de forma estática.



El CGI es utilizado comúnmente para contadores, bases de datos, motores de búsqueda, formulários, generadores de email automático, foros de discusión, chats, comercio electrónico, rotadores y mapas de imágenes, juegos en línea y otros.
Esta tecnología tiene la ventaja de correr en el servidor cuando el usuario lo solicita por lo que es dependiente del servidor y no de la computadora del usuario.
Los programas que maneja el CGI pueden estar compilados en diferentes lenguajes de programación. El más popular para el desarrollo de contenidos Web es el lenguaje href="http://www.perl.com/">Perl de distribución gratuita, aunque también podemos mencionar: C, C++ y Java.
El funcionamiento de esta tecnología es muy sencillo. Los scripts residen en
el servidor, donde son llamados, ejecutados y regresan información de vuelta
al usuario.

miércoles, 25 de abril de 2012

Tarea #5


1.           ¿Qué es calidad de software?
Es el desarrollo de software basado en estándares con la funcionalidad y rendimiento total que satisfacen los requerimientos del cliente.

2.           ¿Cómo juzgarías la “calidad” de un sitio Web? Haz una lista, en los más importantes.
-Distribución del contenido
-Colorido
-Tamaño
-Número de enlaces rotos
-Solidez
-Cantidad de información
-Mapa del sitio
-Hipervínculos de navegación dentro de la página
-Menú Principal
-Organización del sitio

3.           Investiga y escribe un artículo (2-3 cuartillas) que resuma una de las tecnologías mencionadas.

Java se creó como una herramienta de programación para ser usada en un proyecto de set-top-box en una pequeña operación denominada the Green Project en Sun Microsystems en el año 1991. El equipo (Green Team), compuesto por trece personas y dirigido por James Gosling, trabajó durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo.
El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas y finalmente se renombró a Java.
El término Java fue acuñado en una cafetería frecuentada por algunos de los miembros del equipo. Pero no está claro si es un acrónimo o no, aunque algunas fuentes señalan que podría tratarse de las iniciales de sus creadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente acrónimo, Just Another Vague Acronym. La hipótesis que más fuerza tiene es la que Java debe su nombre a un tipo de café disponible en la cafetería cercana, de ahí que el icono de java sea una taza de café caliente. Un pequeño signo que da fuerza a esta teoría es que los 4 primeros bytes de los archivos .class que genera el compilador, son en hexadecimal, 0xCAFEBABE. A pesar de todas estas teorías, el nombre fue sacado al parecer de una lista aleatoria de palabras.
Los objetivos de Gosling eran implementar una máquina virtual y un lenguaje con una estructura y sintaxis similar a C++. Entre junio y julio de 1994, tras una sesión maratoniana de tres días entre John Gaga, James Gosling, Patrick Naughton, Wayne Rosing y Eric Schmidt, el equipo reorientó la plataforma hacia la Web. Sintieron que la llegada del navegador web Mosaic, propiciaría que Internet se convirtiese en un medio interactivo, como el que pensaban era la televisión por cable. Naughton creó entonces un prototipo de navegador, WebRunner, que más tarde sería conocido como HotJava.
En 1994, se les hizo una demostración de HotJava y la plataforma Java a los ejecutivos de Sun. Java 1.0a pudo descargarse por primera vez en 1994, pero hubo que esperar al 23 de mayo de 1995, durante las conferencias de SunWorld, a que vieran la luz pública Java y HotJava, el navegador Web. El acontecimiento fue anunciado por John Gage, el Director Científico de Sun Microsystems. El acto estuvo acompañado por una pequeña sorpresa adicional, el anuncio por parte de Marc Andreessen, Vicepresidente Ejecutivo de Netscape, de que Java sería soportado en sus navegadores. El 9 de enero del año siguiente, 1996, Sun fundó el grupo empresarial JavaSoft para que se encargase del desarrollo tecnológico.  Dos semanas más tarde la primera versión de Java fue publicada.
La promesa inicial de Gosling era Write Once, Run Anywhere (Escríbelo una vez, ejecútalo en cualquier lugar), proporcionando un lenguaje independiente de la plataforma y un entorno de ejecución (laJVM) ligero y gratuito para las plataformas más populares de forma que los binarios (bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier plataforma.
El entorno de ejecución era relativamente seguro y los principales navegadores web pronto incorporaron la posibilidad de ejecutar applets Java incrustadas en las páginas web.
Java ha experimentado numerosos cambios desde la versión primigenia, JDK 1.0, así como un enorme incremento en el número de clases y paquetes que componen la biblioteca estándar2 .
Desde J2SE 1.4, la evolución del lenguaje ha sido regulada por el JCP (Java Community Process), que usa Java Specification Requests (JSRs) para proponer y especificar cambios en la plataforma Java. El lenguaje en sí mismo está especificado en la Java Language Specification (JLS), o Especificación del Lenguaje Java.

El lenguaje Java se creó con cinco objetivos principales:
1.   Debería usar el paradigma de la programación orientada a objetos.
2.   Debería permitir la ejecución de un mismo programa en múltiples sistemas operativos.
3.   Debería incluir por defecto soporte para trabajo en red.
4.   Debería diseñarse para ejecutar código en sistemas remotos de forma segura.
5.   Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.
La sintaxis de Java se deriva en gran medida de C++. Pero a diferencia de éste, que combina la sintaxis para programación genérica, estructurada y orientada a objetos, Java fue construido desde el principio para ser completamente orientado a objetos. Todo en Java es un objeto (salvo algunas excepciones), y todo en Java reside en alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse varios objetos).
El rendimiento de una aplicación está determinado por multitud de factores, por lo que no es fácil hacer una comparación que resulte totalmente objetiva. En tiempo de ejecución, el rendimiento de una aplicación Java depende más de la eficiencia del compilador, o la JVM, que de las propiedades intrínsecas del lenguaje. El bytecode de Java puede ser interpretado en tiempo de ejecución por la máquina virtual, o bien compilado al cargarse el programa, o durante la propia ejecución, para generar código nativo que se ejecuta directamente sobre el hardware. Si es interpretado, será más lento que usando el código máquina intrínseco de la plataforma destino. Si es compilado, durante la carga inicial o la ejecución, la penalización está en el tiempo necesario para llevar a cabo la compilación.
Algunas características del propio lenguaje conllevan una penalización en tiempo, aunque no son únicas de Java. Algunas de ellas son el chequeo de los límites de arrays, chequeo en tiempo de ejecución de tipos, y la indirección de funciones virtuales.

Java se ha convertido en un lenguaje con una implantación masiva en todos los entornos (personales y empresariales). El control que mantiene Sun sobre éste ha generado reticencias en la comunidad de empresas con fuertes intereses en Java (IBMOracle) y obviamente en la comunidad de desarrolladores de software libre.
La evolución basada en un comité en el que participen todos los implicados no es suficiente y la comunidad demandaba desde hace tiempo la liberación de las APIs y bibliotecas básicas de la JDK.
En diciembre de 2006Sun Microsystems comenzó el relanzamiento de su plataforma Java6 bajo la licencia GPL de GNU.
En abril de 2009 Oracle adquirió Sun Microsystems, lo que generó temor en la comunidad ante la posible mercantilización del lenguaje de programación a objetos más popular actualmente. Por ahora Oracle ha seguido manteniendo Java, siendo las versiones posteriores a la 6 bajo su control.
Se instala una versión homebrew de PSPKVM (0.5.5) para emular la plataforma de Java en PSP. Esto permite usar programas JAVA en esta videoconsola.

4.           Empleando un sitio Web real como ejemplo, ilustra las diferentes manifestaciones del “contenido” de la WebApp


martes, 27 de marzo de 2012

Métricas Web


Introducción

Hoy en día es de suma importancia darse a conocer por medio de una pagina web algún producto, servicio o información por la web, sin embargo no basta solo con armar un html, actualmente se cuenta con evaluaciones para clasificar los resultados que esta ofreciendo la pagina web, aspectos de suma importancia como el número de visitas, en que lugar es mas solicitada la pagina, la calidad de las visitas, así también, si el servicio que esta ofrece es óptimo.

Desarrollo

Para explotar al máximo los recursos que nos puede ofrecer una página web es necesario aplicar técnicas que harán mas popular y/o mas accesible a nuestro portal, dichas técnicas reciben el nombre de métricas web, que son prácticamente medidas de correspondencia.
Una métrica se valida si cumple con los requerimientos de validez como son de atributo, de unidad, de instrumento y de protocolo.

Existe una clasificación de métricas para el desarrollo web, una de ellas son las métricas directas, empleadas para conocer la calidad de texto en una  página, así también para conocer los enlaces rotos que está pueda contener y también la calidad de imágenes con la que cuenta nuestro sitio; debemos considerar que todo aspecto en nuestro portal, desde texto, imágenes, peso en bytes de la página, protocolos, entre otros son medidos y monitoreados, esto con el fin de evaluar el servicio de nuestra Web, actualmente existe portales de internet que ofrecen este servicio de métricas así mismo orientan a los desarrolladores a considerar diversas técnicas de marketing como son “las palabras clave”, para salir en los primeros resultados de búsqueda, algunos ejemplos de esas paginas son: ActiveStat, Analog, Google Analytics, entre otros.

Conclusiones:

La idea de métrica no es un concepto simple de desarrollar, si no se comprenden y analizan sus  componentes y relaciones. Se la debe comprender en consideración de los atributos a los que cuantifica y a los entes a los que se asocia. Asimismo, es preciso identificar  el tipo de valores que se obtienen, la unidad en la que se expresa, y el tipo de escala que se usa, con el fin de poder realizar una apropiada interpretación y un análisis matemático y estadístico.


Referencias:

domingo, 25 de marzo de 2012

Ensayo: Métricas Web

Métricas de Usabilidad en la Web


Introducción


¿Para que gastar mucho dinero en una página web y luego no saber si alguien la visita? Para eso es necesario saber que tan útil está siendo el material que nosotros creamos y compartimos en la web, para ello es importante el saber medir.
La creación y  seguimiento de métricas Web son aspectos fundamentales lograr un buen diseño Web. El uso de métricas web (KPI) permite pasar al diseño Web del campo de la subjetividad (basado en gustos y sentires) al campo de la objetividad (basada en hechos y datos).
La analítica web no solo se basa en medir resultados sino en armar un modelo (objetivos, metas, métricas) en base a un estudio previo que nos permita luego medir y tomar las decisiones que se requieren para lograr los objetivos trazados. 
Para todo esto analizaremos lo que son las métricas web para poder compartirlo y que la información nos pueda ayudar a evaluar el trabajo que hemos estado realizando.


Contenido

Las métricas Web son indicadores que permiten establecer el éxito o fracaso de una estrategia en Internet, su evaluación y análisis permite optimizar las estrategias de marketing digital.
Las métricas Web son también llamadas KPI, iniciales de las palabras en inglés Key Performance Indicators (Indicadores Claves de Desempeño).
Es un valor numérico asignado a las características o atributos a partir de la observación de la consistencia y contenido de la página web. 

Clasificación de Métricas

Métricas Directas

Las métricas directas son aquellas que se transforman "directamente" en números, por ejemplo:
  • Longitud del texto en una página
  • Cantidad de enlaces rotos en un sitio web
  • Cantidad máxima de Frames contenida en un sitio web
  • Cantidad de imágenes con texto alternativo en un sitio web.

Métricas Indirectas

Es lo resultante al evaluar las relaciones de dos o más atributos o de un atributo compuesto, también son llamadas métricas derivadas.
Ejemplos:

  • Porcentaje de enlaces rotos en un sitio
  • Porcentaje de la presencia de la propiedad ALT

Métricas de Usabilidad

Comprensión Global del Sitio
Facilidad que representa nuestro sitio web para que un usuario comprenda la organización y el contenido, facilitando el acceso y el recorrido del mismo y sus componentes.
  • Esquema Global
  • Visita Guiada
  • Mapa del Sitio
  • Ayuda

Métricas de Éxito

Mide el porcentaje de usuarios capaces de crear lo que querían hacer dentro de nuestro sitio, es fácil de recolectar y da resultados muy importantes.

Métricas de Confiabilidad

  • Enlaces rotos
  • Páginas Muertas: Páginas sin enlace de retorno
  • Enlaces no implementados
  • Enlaces inválidos
  • Enlaces e-mail mal construidos

Métricas de Eficiencia

  • Páginas de acceso rápido
  • Soporte a solo texto

Conclusiones

La calidad de nuestro producto web puede ser evaluado con lo escrito anteriormente, midiendo los principales aspectos que brindan solidez a un sitio web y que ayudan que lo que hemos creado sea útil.
Considero que las métricas web son una herramienta de apoyo para el desarrollo adecuado de nuestra WebApp, pues tomando en cuenta los aspectos de usabilidad, confiabilidad y eficiencia podemos crear aplicaciones de calidad.


Referencias


Reporte de Lectura 7: Calidad Web

A la hora de calificar la calidad de una aplicación web, uno de los factores más importantes es la usabilidad. Es el atributo más visible ya que determina el grado de satisfacción del usuario respecto de la aplicación web, de ello depende que sea utilizada o no. 

Modelo de Mc Call

Plantea un modelo normalizado que permite evaluar y comparar productos sobre la misma base. Maneja las siguientes características.

  • Funcionalidad: Las funciones satistacen necesidades declaradas o implícitas [ISO 9126: 1991]
  • Fiabilidad: Capacidad de un sistema para mantener su nivel de rendimiento
  • Usabilidad: Esfuerzo necesario para el uso y la valoración individual de tal uso, por parte de un conjunto de usuarios. [ISO 9126: 1991]
  • Portabilidad: Es la capacidad de un sistema para ser transferido de un entorno a otro. [ISO 9126: 1991]
  • Mantenibilidad: Es el esfuerzo necesario para realizar modificaciones específicas. [ISO 9126: 1991]
  • Eficiencia: Es la relación entre el nivel de prestaciones de un sistema y el volúmen de recursos utilizados en condiciones declaradas. [ISO 9126: 1991]
Este estándar no proporciona métricas ni métodos de medición, por lo que no son prácticas las mediciones directas de las características de calidad.

ISO 9126-1

Este estándar define la usabilidad como la capacidad de un producto software de ser comprendido, aprendido, usado y de ser atractivo para el usuario, en condiciones específicas de uso.

ISO 8402 

Define la calidad como el conjunto de propiedades y características de un producto o servicio, que le confieren aptitud para satisfacer unas necesidades explícitas o implícitas. 


Referencias:
http://www.usabilidadweb.com.ar/metodos_eval_calidad_web.php


Reporte de Lectura 6: Javascript

Es un lenguaje de programación interpretado definido como orientado a objetos, cuando se implementa al lado de un navegador web permite mejoras a la interfaz del usuario y a páginas web dinámicas. Se diseñó con una sintaxis similar a la de C aunque adopta nombres y convenciones del lenguaje java aunque éstos no estén ni siquiera relacionados y tienen semánticas y propósitos diferentes.

Actualmente todos los navegadores web modernos interpretan el código javascript integrado en las páginas web. Se interpreta al mismo tiempo de ir descargando las sentencias HTML de la página web.

Fue diseñado principalmente por Brendan Eich de Netscape con el nombre de Mocha que posteriormente fue cambiado por Livescript pero finalmente quedó como JavaScript, el cambio de nombre coincidió con la etapa en la que a Netscape Navigator se le añadió soporte para el lenguaje de programación Java en 1995 dando la impresión de que JavaScript era una prolongación del lenguaje Java.

JavaScript es una marca registrada de Oracle Corporation usada bajo licencia por productos de Netscape Communications y la fundación Mozilla.

Referencias:
http://es.wikipedia.org/wiki/JavaScript

Reporte de Lectura 5: PHP


PHP (PHP Hypertext Pre-Processor)  es un lenguaje de alto rendimiento interpretado diseñado principalmente para la creación de páginas web dinámicas pero actualmente puede ser usado en línea de comandos para la creación de otro tipo de programas.

Fue creado por Rasmus Lerdorf en 1994 y su licencia es considerada como software libre. Puede ser manejado bajo casi todos los servidores web y casi todas las plataformas sin costo alguno. Debido a su gran parecido con programas como C y Perl, le permite a los programadores creas aplicaciones complejas de una manera no tan compleja e involucrarse con aplicaciones dinámicas sin utilizar muchas funciones.

Las principales características de PHP son:
  • Orientación a desarrollo de aplicaciones web dinámicas
  • Su programación es segura y confiable
  • Conexión con casi todos los manejadores de bases de datos actuales
  • Es libre
  • Permite aplicaciones de POO
  • No requiere definición de los tipos de variables que utiliza
Y sus principales desventajas son:
  • Es un lenguaje que se interpreta durante la ejecución
  • Un script en php suele funcionar más lento que en otros lenguajes

Referencias:
http://www.php.net/