martes, 16 de noviembre de 2010

Proyecto Final Programación Web

Esta es la entrada en la que se mostrara el proyecto final el cual consiste en realizar una aplicacion de google o una aplicación de facebook.En nuestro caso escogimos la aplicación de facebook.

ENLACE DIRECTO A APLICACION:
(para que funcione es necesario estar en tu cuenta de facebook)

NOMBRE: Alarma con Reloj

OBJETIVO: Una aplicación sencilla pero muy útil para los que adictos al facebook que por pasar tanto tiempo ahí pierden la noción del tiempo, una alarma te recordaría eventos importantes a realizar a una hora especifica.


DESARROLLO DE APLICACIÓN: Lo primero que tuvimos que hacer es seguir los pasos del tutorial que se encuentra en este blogposteriormente tuvimos que registrarnos aquí link para que podamos acceder a nuestro
servidor lugar donde crearemos 2 subdominios uno para subir todos los archivos php que son necesarios para que nuestra aplicación de facebook pueda funcionar, además que agregamos un índex con el siguiente código.
(para que funcione es necesario estar en tu cuenta de facebook)




donde lo siguiente lo modificamos como ya fue mencionado en el tutorial con los datos que nos da al crear la aplicación
$appapikey = '111061448960918';
$appsecret = '7ab20877a65173d6087bc24904e8a984';


posteriormente en el otro subdominio se sube la aplicación que en nuestro caso es un reloj flash, y modificamos el índex para que podamos direccionar nuestro índex a ese subdominio y agregamos al final el nombre de la aplicación junto con la extensión ya solo es cuestión de ir a la dirección url de nuestra aplicació
n para que podamos ver los cambios y se vea la aplicación flash directamente en nuestro facebook.

TIEMPO DE EJECUCIÓN:

Como se ve esta aplicación es una alarma , se selecciona la hora los minutos y los segundos en que desees que suene y manda una señal de sonido típico de las alarmas comunes.


Cuenta con 3 tipos de sonido de alarma asi como horas, minutos y segundos de uso facil y comodo para cualquier usuario que requiera usarla:


INTEGRANTES:
1455422 Daniel Iván Martínez Covarrubias.
1535320 Mario Salinas Lopez.
1535212 Roberto Valenzuela Padilla.
1463939 Hazael Ugarte Rubio
1447941 Laura Estefania Fierro Galvez

Favor de dejar comentarios al respecto, gracias y saludos.

Pueden descargar la carpeta con todos los archivos aqui (estan en .tar.gz)








jueves, 11 de noviembre de 2010

Como Crear una Aplicacion Facebook

Espero les sirva para su proyecto(:
Suerte(:

Crear una aplicación de Facebook por primera vez puede suponer un buen dolor de cabeza, aunque la plataforma tiene muchos tutoriales no son todo lo detallados que deberían en muchos casos o en otros están en inglés o en español mal traducido. A continuación voy a contar paso a paso como crear nuestra primera aplicación de prueba para Facebook en un entorno PHP .

Cómo requisitos imprescindibles para comprender este tutorial debes tener un nivel medio de desarrollo con PHP, un servidor web apache que soporte PHP5, tener mucha experiencia como usuario de aplicaciones Facebook y mucha, mucha paciencia :)

Pasos

1. Accede a Facebook con tu usuario y tu clave.
2. Ve a la url http://www.facebook.com/developers. Se te solicitará permiso para aceptar esta aplicación.

3. A continuación entraremos en una página que nos dará la opción de crear una nueva aplicación y de descargarnos las librerías PHP necesarias para nuestro servidor.

4. Descargamos en primer lugar las librerías PHP, incluyen una aplicación de ejemplo.

5. Ahora hay que instalar las librerías en nuestro servidor subiéndolas mediante FTP, recuerda que son librerías para PHP5 por lo que nuestro servidor debe soportar este lenguaje. Hay servidores que aungue soportan PHP5 tienes por defecto activado PHP$, puedes activar PHP5

6. Una vez subimos hemos subido las librerías y la aplicación de pruebas a nuestro servidor tenemos que volver a Facebook y hacer click sobre “Configurar una nueva aplicación” o “crear una”.

7. A continuación se nos pide que demos nombre a la aplicación y que aceptemos las condiciones de servicio. Puedes poner el nombre que quieras, aunque sea similar a una aplicación ya existente.

8. Una vez le hemos dado al botón de “Guardar cambios” nos econtramos con la pantalla de configuración básica de nuestra aplicación. Vamos a destacar en primer lugar de la misma 3 datos que son importantísimos: Aplication ID, Clave API y secreto, debemos tomar nota de estos datos (aunque siempre estarán disponibles sin entramos con nuestro usuario en la página de los desarrolladores).

9. A continuación se nos pide que introduzcamos los datos de información básica: descripción, icono de la aplicación (el icono pequeñito), logotipo de la aplicación ( el icono grande), el idioma y los desarrolladores (esta parte da lugar a uno de los agujeros más curiosos que tiene Facebook a día de hoy, le dedicaré en su momento un post).

10. Nos quedaría confirmar la información del email del desarrollador y las Urls de ayuda, condiciones de uso y privacidad. No hace falta que tengas esas páginas creadas, puedes poner las urls que vayas a crear en el futuro.

11. Le damos al botón “Guardar cambios” y Facebook nos envía a la página de inicio para desarrolladores de nuestra nueva aplicación. Buscamos el botón de “Editar configuración” y lo pulsamos.

12. Volvemos a la página anterior de creación de la aplicación, pero ahora debemos hacer click en la pestaña “Lienzo”.

13. Esta pantalla es importantísima, en ella debemos en primer lugar configurar la url de nuestra aplicación en Facebook.


14. A continuación debemos configurar la url de la aplicación en nuestro servidor PHP (es de aquí de donde Facebook leerá las respuestas de nuestro servidor para publicarlas en su entorno). En concreto en este ejemplo deberemos poner la url de nuestro servidor que nos lleva a la aplicación “footprints” de ejemplo que hemos subido antes por FTP.


15. Para este tutorial debemos dejar configurada la aplicación en modo FBML, no en modo Iframe.

16. Una vez hecho esto guardamos los cambios y nos vamos a nuestro servidor PHP. Dentro de la carpeta footprints hay un fichero llamado config.php, debemos editarlo y darle valor a las variables $api_key con nuestra CLAVE_API y $secret con nuestra clave secreta SECRETO. Esta aplicación de muestra requiere para funcionar interactuar con una base de datos de nuestro servidor así que debes configurar los datos del servidor de base de datos y crear la tabla que pide. Esta parte viene con comentarios PHP.

Y ¡Listo!
Suertee(:


  1. Facebook tiene su aplicación de muestra en esta url: http://apps.facebook.com/footprints/
  2. Ahora sólo nos queda ya compararla con el funcionamiento de la nuestra con nuestra url de facebook, es decir, http://apps.facebook.com/[nombre dado en el paso 13]


Reporte Proyecto Final


Google Apps

Google Apps es uno de los ya variados servicios que el gigante Google nos ofrece. Por supuesto, como la mayoría de sus aplicaciones, completamente gratis; aunque también existe una versión de pago especialmente diseñada para clientes empresariales y grandes organizaciones multinacionales.

Google Apps ofrece herramientas eficaces para la manipulación, gestión y personalización de utilidades para dominios o nombres de Internet. Es decir, Google Apps te permite gestionar el correo electrónico de tu dominio (a través de Gmail), mensajería instantánea entre miembros de tu organización o red (Google Talk), calendario en línea (Google Calendar), edición de Documentos también en línea (Google Docs) y creación de sitios web profesionales (Google Sites).

Google Apps ofrece tres planes distintos de servicio, enfocados precisamente a tres principales tipos de clientes. Asímismo, dentro de cada plan se ofrecen diferentes escalas del servicio:

  • Empresas y empleados. Estándar (Gratuita) y Premier ( de Pago).
  • Centros Docentes y Estudiantes. Estándar (Gratuita), Premier (de Pago) y Educación (Sólo para instituciones estudiantiles sin ánimo de lucro).
  • Organizaciones y Miembros. Mismos planes que la Edción de Centros Docentes y Estudiantiles.
  • Una de las mejoras que se han integrado recientemente a Google Apps, son las novedosas herramientas de Seguridad de Postini, empresa que Google adquirió en el año 2007. Esta tecnología incluye una gestión centralizada de la política de los mensajes salientes y entrantes, así como para los filtros anti-spam; bloqueo de correos electrónicos que intenten enviar o difundir información sensible de tu empresa u organización; así como un novedoso y potente anti-virus web completamente personalizable según el grado de tus necesidades.

    Algunas ventajas (si, más) de Google Apps:

  • Capacidad de hasta 7 GB para correo electrónico, y sigue creciendo (similar a Gmail).
  • Interfaz web personalizable.
  • POP3 para descargar e-mail hacia Microsoft Outlook, Apple Mail, Thunderbirdo cualquier gestor de correo electrónico.
  • A partirde este año, totalmente en español.
  • Cuenta catch all, o cuenta que recibe todo el correo perdido enviado a su dominio
  • Acceso IMAP para sincronización del correo desde diferentes dispositivos móviles.


Facebook Apps

Detrás de los tres pilares “integración profunda”, “distribución masiva” y “nuevas oportunidades”, la red social Facebook ofrece una completa API para que los desarrolladores aprovechen al máximo las virtudes inherentes de una red social.

Facebook logró su popularidad siendo una red social capaz de contener aplicaciones realizadas por terceros, permitiendo así la realización de negocios a partir de la misma. Más allá de las aplicaciones propias que presenta, como es el caso de: “The Wall”.

Suerte de pizarra virtual del usuario donde otros usuarios pueden dejarle mensajes o “Status”, que permite a los usuarios indicar sus actividades o estados de ánimo al resto de la red, Facebook permite la creación de aplicaciones mediante la utilización de web services para el acceso a los datos de la red.

Creando aplicaciones en Facebook

Los recursos disponibles a los desarrolladores se agrupan en 3 categorías:

  • API: es una interfaz basada en REST que permite el acceso a los datos del perfil, amigos, fotos y eventos del usuario mediante la utilización de mensajes GET o POST.
  • Consultas (FQL, “Facebook Query Language”): es un lenguaje de consultas similar a SQL utilizado para acceder a los mismos datos que la API pero permitiendo consultas más complejas.
  • Maquetación (FBML, “Faceboook Markup Language”): es un lenguaje de markup similar a HTML que permite ser intercalado con el HTML a utilizar para integrar las aplicaciones a la experiencia de usuario Facebook. Utilizando FBML se pueden acceder distintos puntos de la red como ser el perfil, acciones del perfil, canvas y feeds. Este lenguaje también incluye soporte para AJAX y Javascript.

Anatomía de una aplicación en Facebook

Una aplicación en Facebook posee una compleja estructura que permite brindar una experiencia de usuario completa:

  • Product Directory: cuando un usuario navega el directorio de aplicaciones de Facebook, por cada aplicación se muestra una pequeña sección con el nombre, una imagen y una pequeña descripción.
  • About: esta página muestra información general de la aplicación. Debe inducir al usuario a instalar la aplicación.
  • Left Nav: es el panel de navegación izquierdo. Las aplicaciones pueden tener su ícono y nombre en este panel.
  • Canvas Page: es la página principal de la aplicación. Home: esta página es accedida utilizando el panel de navegación de la izquierda, en general muestra información de los amigos del usuario. User Dashboard: es la página donde el usuario administra sus datos en una aplicación y determina de que forma las aplicaciones acceden a sus datos personales.
  • Profile: es la representación online de la identidad del usuario. La API provee múltiples puntos de integración con el perfil del usuario permitiendo actualizar datos del mismo. Profile Box: presenta información actualizada sobre las acciones recientes del usuario. Profile Actions Links: debajo de la foto del usuario en el perfil, se pueden agregar enlaces para invocar acciones en la aplicación.
  • Privacy Settings: se utiliza para definir los niveles de privacidad de los datos del perfil por aplicación.
  • News Feed: como su nombre lo indica es un “feed” de noticias, allí las aplicaciones pueden “publicar” información del usuario de la misma.
  • Alerts: las aplicaciones pueden enviar notificaciones a los usuarios a través del correo electrónico.
  • Message Attachments: las aplicaciones pueden incluir archivos adjuntos que aparecen en la ventana para componer mensajes.
  • Requests: las aplicaciones pueden crear peticiones que aparecen en la parte superior izquierda de la página principal. En general son iniciados por amigos que solicitan realizar alguna acción.

CGI Common Gateway Interface


PRESENTACIÓN DE LA INTERFAZ

CGI (Common Gateway Interface) es una interfaz entre aplicaciones externas y servicios de información.

Un documento HTML, es algo estático, permanente, lo que no se adecúa a las necesidades de interactividad, acceso a información en constante actualización, consulta a bases de datos o seguimiento, control o recuperación de resultados de un determinado proceso. Por ello, a veces es necesario acceder a una información que se está generando "en tiempo real". Así pues, es necesario contar con algún tipo de pasarela como la que define CGI.

La interfaz define una forma cómoda y simple de ejecutar programas que se encuentran en la máquina en la que se aloja el servidor. Para el cliente presenta una ventaja en el aspecto de la seguridad, ya que no tendrá que ejecutar ningún programa de efectos desconocidos en su sistema local. Además de eliminar la necesidad de aprendizaje, se resuelven los problemas de mantenimiento, operación y distribución de clientes ya que el acceso se realizará a través de cualquier cliente estándar de WWW y la comunicación se realizará según el protocolo HTTP.

Será necesario tener en cuenta algunos aspectos sobre seguridad, ya que tener un programa CGI equivale a que "TODO EL MUNDO podrá ejecutar un programa en MI sistema". Esto se solventa incluyendo los programas CGI en un directorio determinado, denominado generalmente cgi-bin, directorio que no suele ser accesible a todos los usuarios. Cuando un servidor de WWW recibe como petición un documento alojado en este directorio, entenderá que se trata de un programa ejecutable.

Pero CGI plantea como inconveniente la necesidad de ejecutar programas en el servidor, de los cuales es necesario tener una copia por cliente ya que no permite hacer uso de recursos compartidos y, al tratarse de una pasarela, no es posible disponer de un control directo de la comunicación. Por ello se plantean nuevas alternativas, como el NSAPI de Netscape Corporation y, por supuesto, Java.

LENGUAJES DE PROGRAMACIÓN CGI

CGI, como la propia palabra indica es una interfaz entre servidores de información y programas de aplicación. Por tanto, define una serie de reglas que deben cumplir tanto las aplicaciones como los servidores para hacer posible la presentación de resultados de programas ejecutables en tiempo real a través de servicios de información estandarizados. Por ello, se habla de gateway o pasarela entre una y otra dimensión. Al tratarse de una interfaz, no existe ningún tipo de dependencia con el lenguaje de programación empleado.

En principio, cualquier lenguaje es susceptible de ser utilizado para desarrollar programas CGI, ya sea interpretado o compilado. En "la red" existen aplicaciones CGI desarrolladas en C, C++, Fortran, Perl, Tcl, Visual Basic, AppleScript y cualquier shell de UNIX. Los lenguajes interpretados como sh, tcl y, sobre todo, perl, tienen mayor facilidad de mantenimiento y depuración. Otra ventaja es que, por lo general, suelen ser de más alto nivel, con lo que no permiten realizar ciertas maniobras con la memoria y es más difícil dejar procesos sueltos descontrolados en el sistema. Uno de los lenguajes más utilizados es el Perl que, siendo interpretado, proporciona una potencia similar a la de C con una sintaxis muy parecida.

La contrapartida es que un lenguaje compilado es siempre mucho más rápido que uno interpretado. En el caso de CGI la velocidad de ejecución es importante, ya que habrá que sumar el tiempo de ejecución a la latencia de red y a la velocidad de transmisión, tiempos de espera que tendrá que sufrir el usuario del cliente.

Gestores de Bases de datos

Un gestor de base de datos o sistema de gesti´on de base de datos (SGBD o
DBMS) es un software que permite introducir, organizar y recuperar la informaci
´on de las bases de datos; en definitiva, administrarlas. Existen distintos
tipos de gestores de bases de datos: relacional, jer´arquico, red, ... El modelo
relacional es el utilizado por casi todos los gestores de bases de datos para PC´s.
El modelo relacional (SGBDR) es un software que almacena los datos en forma
de tablas
El problema: Sistemas de ficheros
Tradicionalmente, los datos se han organizado en ficheros. Un fichero mantiene
informacion homogenea, dispuesta en registros. Ej.: Empleados, Clientes, Nominas,
etc. Diferentes programas pueden mantener diferentes ficheros referidos a la
misma entidad
Estos sistemas presentan algunos problemas:

Redundancia: Normalmente es perjudicial ya que da lugar a inconsistencia,
cuando un dato no se actualiza en todos los lugares donde aparece. Es el caso
de datos repetidos, que aparecen en varios ficheros, o de datos calculados, que
podrıan obtenerse a partir de otros datos.
Rigidez de busqueda: A cada fichero, segun la manera en que mas frecuentemente
se accede a el, se le da una organizacion. Si despues se necesita otro tipo
de acceso, puede resultar lento trabajar con el fichero.
Dependencia de los programas: La informacion de donde comienza un
campo, donde acaba, su tipo, etc. esta controlada por el programa; cualquier
cambio en la estructura del fichero implicar´a una modificacion de los programas.
Problemas de confidencialidad y seguridad: La confidencialidad consiste
en evitar la consulta de ciertos datos a determinados usuarios mientras
que el control de seguridad de los datos almacenados impedira que puedan ser
modificados por personas no autorizadas.

La solucion: Bases de datos
Es la alternativa que aborda la solucion a estos problemas. Se trata de dar una
solucion integral al almacenamiento y gestion de los datos, en lugar de soluciones
parciales :
• Evitar la redundancia ”gratuita”
• Flexibilidad de busqueda
• Independencia de los programas
• Seguridad y confidencialidad integral

LOS USUARIOS
Hay tres clases de usuarios:
Usuario final: Accede a la base de datos desde su PC empleando un
lenguaje de consulta (DML) o a traves de un programa.
– Son usuarios que no necesitan formacion tecnica
– Podran manejar la informaci´on de forma sencilla y eficiente a traves
de la interfaz que se les proporcione.
Administrador de la base de datos: Se encarga del control general del
sistema de base de datos. Usualmente actua como intermediario entre
programador y usuario final.
– Son los responsables de su seguridad e integridad
– Requieren un amplio conocimiento de la herramienta SGBD a nivel
de administracion: tablas, ındices, consultas, formularios, informes,
macros, etc.
Programador de aplicaciones: Encargado de escribir programas de aplicaci
on que utilicen bases de datos (lenguaje de alto nivel, como Cobol,
Clipper, VisualBasic, 4GL).
– Pueden utilizar lenguajes de alto nivel para acceder y actualizar los
datos.
– Son capaces de implementar soluciones a medida.
– Su conocimiento de la herramienta SGBD debe ser aun mas profundo:
modulos, API (application programa interface), etc.

CONCEPTOS DE BASES DE DATOS
Entidades
Una entidad es una clase o categorıa de objetos que poseen caracterısticas diferenciadoras
que los distinguen del resto. Ejemplo: Dentro de una empresa que
vende complementos para el automovil encontraremos las siguientes entidades:
Artıculos, Clientes, Proveedores, Pedidos, etc.
Otros ejemplos:
En una biblioteca: Libro, Socio, Autor, etc.
En una academia: Alumno, Profesor, Cursos, Asignaturas, etc.
En concesionario de automoviles: Vendedor, Cliente, Automovil, Pedido,
etc.
Las entidades consideradas en una base de datos deberan determinarse en
consonancia con las necesidades. Por ejemplo, en una empresa de transportes
aparecen diferentes entidades: vehıculos, mercancıas, transportistas, clientes,
etc. No obstante, si nuestro objetivo fuere diseñar una base de datos para
el control de las inspecciones tecnicas de los vehıculos, entonces el resto de
entidades (mercancıas, transportistas, clientes, etc.) no seran tenidas en cuenta.
Cada objeto perteneciente a una entidad debe poseer informacion suficiente
para que pueda ser identificado de forma unica.
Atributos
Toda entidad contiene un conjunto de datos, a los que llamaremos atributos o
campos, que permiten describir de una manera completa y unica a cada elemento
de la entidad. Ejemplos:
Entidad ”Clientes”. Atributos: Codigo, DNI, Nombre y apellidos, Direccion,
Tel´efono, Cuenta bancaria, etc.
Entidad ”Productos”. Atributos: Codigo, Descripcion, Fabricante, Color,
Peso, Precio, etc.
Cada atributo se corresponde, en una base de datos relacional, con las
columnas o campos de una tabla.
En una base de datos relacional, las entidades se representan en forma de
tablas.
Registros
Para una entidad dada, cada entrada o aparicion (cada cliente en la entidad
Clientes, cada vehıculo en la entidad Vehıculos, etc.) se denomina registro u
ocurrencia de registro. Un registro es, por tanto, una representacion de un
objeto perteneciente a una entidad dada.
En una base de datos relacional, los registros se corresponden con las filas
de las tablas. Ejemplos:
La entidad Automovil con los campos N matricula, Marca, Modelo, Color,
Km, Gasolina, y un registro (o ocurrencia de registro): J-5757-M, Ford, Orion,
Rojo, 45401, Super.

¿Como funcionan los buscadores?

Todos los usamos para todo lo que se haga en Internet, sin ellos no iríamos más allá de un puñado de páginas que nuestra mente pueda retener en el cerebro, sin los buscadores sería casi imposible encontrar en estos días una información precisa acerca de cualquier tema, simplemente regresaríamos a las enciclopedias. Pero, ¿qué son los buscadores? ¿Cómo funcionan?


Según las estadísticas, en Internet el 85% del tráfico que se tiene es a través de los buscadores, eso quiere decir que el 85% del uso de Internet se hace a través de búsquedas, de personas que no saben exactamente a donde dirigirse y gracias a los buscadores desembarcan en una página web que les puede ser de ayuda o no.

Estoy casi segura de que alguna vez has usado un buscador, tal vez no los conozcas precisamente por su nombre genérico, pero si por sus nombres específicos, entre los más conocidos están: Google, Yahoo!, MSN, Ask, Aol, Altavista, etc.

Según las cifras estadísticas de Nielsen NetRatings del año 2008, el empleo de los buscadores genéricos en los Estados Unidos es el siguiente: 53.6% para Google, 19.9 para Yahoo!, y 12.9% para MSN. Esto obviamente cambia para ciertos países en donde Google arrasa con los demás buscadores.

Un buscador funciona de una manera simple basándose en 3 componentes fundamentales que se interrelacionan para entregarle al usuario una lista de resultados que es la que ve sólo microsegundos después de haber realizado sus búsqueda.

En primer lugar tenemos una araña o robot, que en esencia es una navegador autómata que va por todo el ciberespacio viendo cada una de las páginas web, analizando en su trayecto su código fuente (HTML), así como todo el texto que hay en el contenido de la página incluyéndolo inmediatamente a la base de datos ya sea porque es una página web nueva o es una página web antigua que tiene contenido nuevo y actualizado.

En segundo lugar tenemos la base de datos. Este sistema de almacenamiento guarda registro de toda la información de cada una de las páginas web que la araña le ha enviado. Cuando una persona hace click en el botón buscar, inmediatamente la base de datos se pone a trabajar para mostrarle a usted la información más relevante conforme a su búsqueda.

Y en tercer lugar, la parte humana la proporciona un algoritmo de relevancia o proceso de emparejamiento que ordena los resultados basándose en una serie de variables para encontrar aquellas que valen más la pena de mostrar primeras que otras.

De esta manera sencilla funcionan los buscadores y los procesos cada vez son más y más simples y rápidos en beneficio del usuario.

EL PageRank

Factores off-the-page

Con esta sección dedicada al PageRank entramos en los factores off the page, es decir, aquellos exteriores a nuestra propia web, y por tanto sobre los que no tendremos un control tan directo como en lo que es puramente la optimización.

Google fue revolucionario precisamente porque fue el primer gran buscador que valoró estos elementos; los aspectos que estaban al alcance de los autores de las webs eran manipulados porque eran manipulables; así pues, el desarrollo de un buscador que funcionara bien se debía basar en aquellos aspectos que se estuvieran más alejados de la influencia de los webmasters.

PageRank para Dummies

El PageRank se ha convertido en un concepto casi mítico entre los webmasters, que no paran de hacer preguntas acerca de él. Así pues, para esta sección contaré con la ayuda de uno de esos webmasters, John Dummies, que hará las preguntas que previsiblemente también se os ocurrirán a vosotros.

El PageRank (bautizado así en honor de uno de los fundadores de Google, Larry Page) ha sido considerado el corazón del sistema de Google para medir la relevancia de las webs. Hay quien cree que el PageRank es el factor clave para lograr buenos puestos en Google, y hay quien dice que el PageRank apenas sirve de nada.

Un símil muy socorrido para explicar el PageRank es que es como un sistema de votaciones. Si yo tengo una web A y en una de mis páginas pongo un link hacia la página de la web B, estoy 'votando' a esa página; estoy indicando que es un recurso de interés.

Así, cuantos más links reciba una página, mayor será su PageRank (PR para los amigos).

No necesariamente. Porque el PR transmitido no es un valor absoluto. A su vez, depende de:

  • El PR que tenga la página que nos enlaza
  • El número de links salientes que tenga esa página
Digamos que a la página A le apunta la página B. Digamos que la página B tiene 20 puntos de PR. Y digamos que la página B también tiene un enlace hacia la página C.

Por tanto, lo primero que debemos tener en cuenta es que, si tiene dos links, el PR transmitido se dividirá entre ellos.

No es seguro que el PR transmitido por una página se divida por igual entre todos sus enlaces, pero en esta explicación asumiremos que es así para no complicarla innecesariamente.

El PR de la página que lo transmite tampoco llega tal cual a su destino; Google aplica un factor de debilitación: multiplica el PR transmitido por un número menor a 1 (en la fórmula original, 0'85).

Es decir, que la página A recibirá 8'5 puntos de PR.

¡No! Aunque no comozcamos la fórmula actual del PR, sí conocemos la fórmula original de los primeros trabajos sobre Google. Aquí os presento la fórmula original del PR (hay otra variante, pero esta es más simple y nos permitirá entender claramente cómo funciona el PR):

PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))

PR(A) es el PageRank de la página que tomamos como referencia.

d es el factor de debilitación.

(1-d) asegura que cualquier página indexada por Google, aunque no reciba ningún enlace, tendrá un PR mínimo de 0'15.

PR(T1)/C(T1) será el PageRank (PR) de una de las páginas que nos enlaza, (T1), dividido por todos los enlaces (C) que también salen de esa página T1, es decir, el PR que nos transmite.

... + PR(Tn)/C(Tn) lo mismo que el punto anterior, repetido por cada página que nos enlace.

Para empezar, la fórmula del PR seguramente ha sufrido variaciones, y actualmente debe presentar diferencias respecto a la que he puesto aquí. Sin embargo, sigue siendo una buena guía para saber cómo se comporta el PR en líneas generales. Además, para conocer tu PR deberías conocer exactamente el PR de las páginas que te enlazan. Y para conocer el PR de las páginas que te enlazan deberías conocer exactamente el PR de las páginas que a su vez las enlazan. Y para conocer el PR de las páginas que enlazan a las páginas que te enlazan, deberías conocer...

Afortunadamente, puedes tener una aproximación descargando e instalando en tu navegador Explorer la barra de herramientas de Google en http://toolbar.google.com/.

Hacia la mitad de la barra verás un raya en verde y blanco. Es una representación gráfica del PR de la página en la que estás, representada en una escala del 1 al 10.

De hecho, es una aproximación al verdadero PR, pues mientras el PR tiene una escala lineal, la barra de Google lo presenta en una escala logarítmica. Esta es una hipótesis acerca de la relación entre el verdadero PR y el PR representado en la barra de Google extraída del artículo PageRank Uncovered:



PR verdadero Barra de Google
De 0.00000001 a 5 1
De 6 a 25 2
De 25 a 125 3
De 126 a 625 4
De 626 a 3125 5
De 3126 a 15625 6
De 15626 a 78125 7
De 78126 a 390625 8
De 390626 a 1953125 9
De 1953126 a infinito 10
Esto explica por qué a los webmasters les cuesta relativamente poco alcanzar un PR3, bastante más un PR4, mucho más un PR5, muchísimo más un PR6, infinitamente más un PR7, etc. El intervalo de enlaces que deben obtener para aumentar un peldaño en el PR que muestra la barra de Google es cada vez mayor.
Es cierto que no conviene tener muchos links hacia fuera, pero a menudo este punto de vista se hace desde la falsa creencia de que, puesto que una página transmite PR a las páginas que enlaza, ella está quedándose sin PR. Y eso es un error.

Si la página A tiene 100 puntos de PR y un enlace a la página B, es cierto que le transmite todo el PR que puede transmitir (85, una vez aplicado el factor de debilitamiento), pero eso no quiere decir que se quede sin ese PR. Entonces, ¿a qué viene toda esa psicosis acerca de no tener enlaces hacia otras webs? Lo veremos en Manejar tu PR interno.

El cálculo del PR es un tema complejo, porque el PR de una página determinada A depende del PR de la página que la enlaza, B. Pero si A y B están entrelazadas, ahora el PR de B depende también del PR de A; y si el PR de B ha cambiado, el PR de A, como consecuencia también, etc. Por tanto, Google debe calcular el PR en diversas iteraciones hasta que éste se estabiliza y los cambios sucesivos no provocan cambios posteriores.