Entradas etiquetadas ‘desarrollo

TweetHace algún tiempo leí un estudio que indicaba que los usuarios de Gmail son más jóvenes y más ricos que los del resto de los servicios de correo, el 54% de los usuarios de Gmail tienen entre 18 y 34 años por un 42% de Yahoo! Mail y un 44% de Hotmail. Estudio Hiwise En [...]

Estas son algunas reglas básicas a la hora de desarrollar un buen “producto web”, probablemente si desarrollas aplicaciones con asiduidad tienes en cuenta algunas de ellas pero si no las conoces y te gustaría empezar un proyecto seguro que te vendrá bien echarle un vistazo.

Desconfia de los usuarios

Suena duro pero es la verdad, no quiero decir con esta afirmación que todos los usuarios sean maliciosos pero lo que si es cierto es que mientras más desconfies más preparado estarás cuando algo no deseado suceda, intenta comprometer lo menos posible tu aplicación evitando todos aquellos agujeros de seguridad que esten en tu mano, tambien es importante que no te centres unicamente en la seguridad… ten en cuenta que muchos usuarios por desconocimiento de la aplicación harán un uso incorrecto de la misma, un buen ejemplo de ello lo tenemos a la hora de rellenar los formularios, hay que asegurarse y validar todos los datos introducidos por los usuarios.

Los usuarios visualizan de manera rápida y superficial los sitios web que visitan, este tipo de comportamiento a menudo provoca el abandono inmediato de la página en caso de que no se adecue o no le parezca relevante al usuario.

Además de ello tenemos el problema de los tiempos de espera, la percepción de los tiempos de espera según datos empíricos previos (Miller, 1968):

  • 0,1 segundos, el usuario tiene la percepción de respuesta inmediata.
  • 1 segundo, a partir de este punto el usuario empieza a no percibir la respuesta como instantánea.
  • 10 segundos es el límite de mantenimiento de la atención por parte del usuario.

Internet un medio de resultados inmediatos

Como se puede ver Internet es un medio en la que los usuarios quieren resultados inmediatos, cada vez los usuarios tienen menos intención de aprender, leer o esforzarse para obtener los resultados deseados, si a esto le sumamos el gran abánico de alternativas que se ofrecen para cada tipo de necesidad en Internet tenemos un sistema en el que se puede conseguir lo que desees de manera inmediata, por lo tanto necesitamos si desarrollas o administras un sitio web necesitas ofrecer la información de una manera inmediata y disponer de un diseño usable que sea capaz de dar la sensación al usuario de que “este es el sitio que buscabas”, de lo contrario seguramente la visita del usuario durara breves segundos y buscará una alternativa para satisfacer sus necesidades.

Un interesante estudio indica que los usuarios parecen ser más tolerantes con el tiempo de descarga de una web si están cumplimentando un cuestionario (Integrating User-Perceived Quality into Web Server Design). Los usuarios parecen comprender que se requieren ciertos procesos complejos de almacenamiento de la información y no son tan impacientes.

La importancia de los tiempos de espera

Es interesante también que a menudo los usuarios parecen ser más tolerantes con el tiempo de espera en un sitio web cuando están realizando procesos aparentemente complejos, como puede ser el envio de un formulario, los usuarios parece que comprenden que hay determinados procesos complejos de almacenamiento y no se comportan de manera impaciente, del mismo modo el entorno de la espera también puede llegar a afectar a la percepción que el usuario tiene ante tiempos de espera cortos o largos.

Los usuarios pueden llegar a percibir que la duración del tiempo de espera es mayor o menor de lo que en realidad es, por ejemplo ante un tiempo de espera elevado si ofrecemos información al usuario sobre lo que esta ocurriendo durante el tiempo de espera (barra de progreso ó información sobre el proceso) podemos llegar a conseguir que realmente crea que ha esperado menos tiempo del que realmente ha estado esperando, del mismo modo un entorno que le genere impaciencia o ansiedad hará que piense que ha estado esperando demasiado tiempo.

¿Cuál es el tiempo de carga adecuado para una página web?

Depende obviamente del servicio que ofreces, yo pienso que el tiempo de espera máximo para un usuario nuevo que no haya visitado previamente el sitio web el tiempo de espera máximo tolerable es de 2 segundos, si por el contrario lo ha visitado anteriormente seguramente podemos extender ese tiempo hasta 4 segundos.

Tambien debemos tener en cuenta la acción que el usuario está realizando en el sitio web, como hemos explicado anteriormente los usuarios son más tolerables a tiempos de espera altos en aquellos procesos que entienden requieren de un mayor tiempo de ejecución; envios de formulario, búsquedas, descarga de archivos ó imagenes son ejemplos de páginas en las que un usuario seguramente estaría dispuesto a tener tiempos de espera mayores a 10 segundos, siendo fundamental como hemos comentado proveer de mecanismos cómo las barras de progreso que hacen que el usuario no se impaciente, y espere el tiempo necesario para la carga de la página.

Por lo tanto y resumiendo Internet es un medio en el que el usuario espera resultados inmediatos y en casos muy particulares esta dispuesto a esperar para obtener resultados, por ello para fijar y optimizar los requisitos de calidad de nuestro sitio web necesitamos saber el tipo de usuario y el tipo de contenido que ofrecemos que nos va a ayudar a fijar el tiempo máximo de espera al que debemos someter al usuario.

No, no se trata de un baile que mejora el rendimiento de PHP sino de un proyecto Open Source de Facebook que comenzó hace 2 años debido a que las funcionalidades existentes para optimizar PHP se antojaban insuficientes.

HipHop se trata de una especie de transformador de código fuente que toma el PHP y lo convierte en C++ para ser compilado con g++, para explicarlo de una manera rápida y sencilla podríamos decir que HipHop permite que cualquier desarrollador pueda escribir código PHP pero que el código final se ejecute con el rendimiento que ofrecería el código de un programador experto, el resultado es una mejora de rendimiento del 50%.

Y es que Facebook poco a poco irá siendo a PHP lo mismo que Google es a Python, si lo pensamos es realmente positivo cuando una gran empresa que utiliza una tecnología sobre la que depende su negocio se dedica a mejorar dicha tecnología no sólo para beneficiarse ellos mismo sino para beneficiar a la comunidad de desarrolladores y consumidores de dicha tecnología.

Para entenderlo mejor primero hay que saber como funciona PHP, PHP es un lenguaje de programación interpretado como Ruby, Python y Perl, esto es genial para la productividad de los desarrolladores porque no es necesario compilar el código pero tiene por contra unos requerimentos de memoria y consumos de CPU mayores que un lenguaje compilado como es el caso de C++, por lo tanto HipHop al tranformar el código PHP a código C++ nos permite disfrutar de lo mejor de ambos lenguajes.

¿Cómo ha mejorado HipHop a Facebook?

  • Web — 50% menos de consumo de CPU con el mismo tráfico
  • API — 30% menos de consumo de CPU con el doble de tráfico

La mejora de rendimiento de Facebook ha sido probada de manera progresiva en sus propios servidores y ahora un 90% de los servidores de Facebook utilizan HipHop, la mejora cómo hemos vistos se divide en mejoras relacionadas con al Web y relacionadas con el uso de la API, la clave para la diferencia de mejora entre Web y API radica en que la Web requiere operaciones más complejas que la API.

¿Hay algún tipo de limitación?

Con HipHop no podrás utilizar funciones como eval() y create_function(), la naturaleza dinámica de estas funciones hace imposible su conversión a código C++, sin embargo estas funciones no son de las más populares entre los desarrolladores de PHP.

Actualmente HipHop no puede ser ejecutado en Apache pero se trabaja en ello.

¿Dónde puede encontrarlo?

HipHop será liberado dentro de poco pero por el momento nos tenemos que conformar con la entrada en el blog de Facebook o con esta presentación.

Me gustaría que dejaraís vuestra opinión sobre el tema y si alguien tiene información adicional que la aporte ya que creo que se trata de una excelente noticia y más aún tratándose de PHP que como hemos comentado anteriormente se trata de un lenguaje de programación tremendamente flexible pero muy difícil de escalar cuando hablamos de sitios web de gran tráfico.

En estos días Google ha comenzado a activar el soporte del protocolo IPv6 para YouTube lo que hace ver que la interminable migración de IPv4 a IPv6 está cada vez más cerca.

YouTube comienza a usar IPv6 [ENG]

La principal diferencia es que IPv4 puede llegar a albergar 232 direcciones de red diferentes y no es suficiente para que cada persona del planeta disponga de su propia dirección y mucho menos para que cada aparato electórnico pueda llegar a tener direcciones diferentes, en cambio IPv6 admite 2128, es decir con IPv6 tendríamos direcciones ip de sobra para cada persona y aparato de la tierra.

Lo cierto es que Internet duplica su tamaño cada año desde 1988.
Con el actual sistema IPv4 serian teóricamente posibles unos 4 billones de direcciones IP (232 direcciones), la previsión de población mundial para el 2.050 es de 9 mil millones de personas.

IPv6 es una solución por lo tanto a las limitaciones de IPv4:

  • Escasez de direcciones Ip.
  • Limita el crecimiento de Internet.
  • Provoca que los usuarios use NAT.
  • Hoy día el ruteo es ineficiente.
  • IPv4 no fue diseñado para ser seguro.

IPv6 tendrá otros beneficios, como la posibilidad de configuración automática de las redes, lo que reducira enormemente el coste de su mantenimiento.

Será posible establecer niveles de seguridad a nivel IP (permitiendo autentificación de las transmisiones entre equipos, asegurando la integridad y privacidad de las conexiones).

IPv6 – Wikipedia
Ipv4 – Wikipedia

Para diseñadores y programadores IE6 es una de las peores lacras que ha sufrido la web desde hace años pero el problema es que la gran mayoría de los usuarios no lo ven como un problema sino que simplemente lo utilizan porque todavía a día de hoy creen que es la mejor y única alternativa para navegar en Internet.

Sinceramente para mi desarrollar un sitio web para que sea compatible con los diferentes navegadores y en especial Internet Explorer 6 no es una tarea divertida, no conozco a ningún profesional que disfrute desarrollando para IE6 y eso seguramente se deba a su pobre soporte de CSS y a que es un navegador lento e inseguro.

Para los usuarios el gran problema es que las funcionalidades de esta versión del navegador se han quedado obsoletas.

Hace ya muchos años que existe una alternativa idónea a IE6, Firefox, pero es muy difícil que los usuarios se acostumbren a instalar y utilizar un navegador que no viene instalado por defecto en su sistema operativo.

Durante 7 años ha sido el navegador más utilizado lo que provoca que un gran número de ordenadores aún sigue instalado, en muchos de estos ordenadores los usuarios no son los administradores y no tienen más remedio que utilizarlo.

A día de hoy tenemos gran cantidad de alternativas:

Google deja de dar soporte dentro de poco a IE6

Google ha anunciado en su blog para empresas que dejará de dar soporte a IE6 dentro de poco tiempo, muchas otras empresas ya han dejado de soportar a los navegadores más antiguos, como IE6, al igual que lo hizo Youtube y Flickr, las empresas se están empezando a dar cuenta finalmente de la carga que es seguir soportando un navegador como IE6.