Avisar de contenido inadecuado

Consejos en Develovers

Expand

Detectar Semana Santa con Javascript

Es posible que en estas fiestas cercanas tengamos la necesidad de saber en qué días cae la semana santa.

Podemos determinar que el domingo de resurrección será el primer domingo de luna llena de primavera.
Y sabemos que la primavera empieza el 21 de marzo.

A partir de ahí tenemos claro que el jueves y viernes es festivo y el lunes de pascua en algunas comunidades.

A través de los 'Hijos de la Divina Voluntad'  nos encontramos con una página con el código Javascript que calcula ese domingo en función del año de una forma curiosa y lógica!.

Dicha función está extraida de  la fórmula de Gauss que podemos observar en la página de la wikipedia con todas sus explicaciones:

Wikipedia: Cálculo de la fecha de Pascua


Aquí está la función para Javascript.

Expand

Componentes Gzip

El tiempo que se tarda en tranferir diferentes componentes a través de la red, se puede reducir de forma significativa usando determinadas técnicas de compresión.

Si bien depende del ancho de banda del cliente, de su proveedor de internet y de su proximidad a los servidores, existen otros factores que también afectan a estos tiempos de respuesta.

La compresión Gzip reduce los tiempos, disminuyendo el tamaño de los paquetes y optimizando su distribución.
Gzip es el más conocido método de compresión hoy por hoy. Fue desarrollado bajo un proyecto GNU y estandarizado por RFC 1952.

Esta compresión reduce el tamaño de las peticiones en un 70% y es usado por más de un 90% de los navegadores.

Expand

Añadir Cabeceras con fecha de caducidad

Los diseños de las páginas Web, repletos de componentes (scripts, css, imágenes, etc), requieres que la primera vez que se visita la página se descarguen todos los componentes, con sus correspondientes peticiones http. (Recordar el 2 post de esta serie: Minimizar Peticiones HTTP)

Otra forma de reducir peticiones futuras es estableciendo como 'cacheable' esos componentes, a tener en cuenta sobretodo en imágenes, scripts y Flash, que posiblemente serán llamadas por más de una página, con su consecutiva petición http.

Dos partes importantes de esta Regla a establecer según el tipo de componente:

Expand

La primera impresión es lo que cuenta

En el blog de Vandelay Design encuentro este pedazo de post que habla sobre la primera impresión de un visitante cuando llega a un WebSite, me ha gustado tanto el articulo que lo he traducido (chapuzeramente) para no perderlo entre mis links de del.icio.us y empaparme muy mucho de lo que dicen.

1. Tiempo de carga.

La mayoría de nosotros somos muy impacientes, no regresamos a las páginas que cargan lentamente, Por otro lado, la carga rápida de las paginas (otro articulo interesante http://vandelaydesign.com/blog/design/designing-pages-to-load-quickly/ ) fomenta que el visitante navegue por tu site, porque sabe que no tendrá que esperar mucho en la carga de cada página.

2. Mensajes de error.

Si los nuevos visitantes se encuentran con errores y no les es posible acceder a tu site, estate seguro que no vuelven, hay diferentes errores que pueden ocurrir, BlogStorm (http://www.blogstorm.co.uk/) ha publicado un artículo Porque las empresas necesitan un website que trabaje (http://www.blogstorm.co.uk/blog/why-small-businesses-need-a-website/ ) .

Expand

Actividad (Informar de la actividad del los usuarios) en un site social

Continuamos con nuestra serie de post sobre aspectos a tener en cuenta en el desarrollo de un site social, visita el primero de la serie para ponerte al día.

Que seria Facebook sin su muro?. NADA Exactamente eso, uno de los principales éxitos de Facebook es el fenómeno marujeo (enterarte que hace tal persona sin tener que preguntárselo directamente, via TV, radio, o muro del facebook), sin entrar en lo intrusivo o no que es esa funcionalidad, hay que reconocer que es un éxito absoluto.

Entrando en lo intrusivo que es el muro, deberíamos destacar que creo que los usuarios todavía no ven las repercusiones que tiene actualmente el muro de facebook, esta muy bien pensado, que dentro de la actividad generada por el usuario podamos incluir información de otros usuarios o a traves de comentarios directamente o a través de interactuar entre las aplicaciones de facebook es fantástico.

Expand

Utilizar una Red de entrega de Contenidos (CDN)

La experiencia de un usuario con respecto a tu web viene determinada muchas veces por los tiempos de respuesta.
Si conseguimos distribuir nuestro contenido entre diferentes servidores conseguiremos no sobrecargar y aumentar la rapidez de las cargas de nuestras páginas. Pero ¿Por donde empezamos?

Como primer paso hay que tener en cuenta un posible cambio en la estructura de la aplicación web para trabajar con una arquitectura distribuida.
Dependiendo del tipo de aplicación, cambiar la arquitectura puede incluir tareas engorrosas como la sincronización de servidores o la réplica de bases de datos entre otros.

Cabe recordar que el 80-90% del tiempo de respuesta de un usuario final,

Expand

Permitir Votaciones en un site social

Continuamos con nuestra serie de post sobre aspectos a tener en cuenta en el desarrollo de un site social, visita el primero de la serie para ponerte al día.

Muchos sites de ámbito social su núcleo ronda a la funcionalidad de votar el contenido, Sitios como digg, reddit, meneame, Stack Overflow entre muchos otros. Los votos de los usuarios determinan que items son populares y cuales se muestran en la homepage, hay que tener mucho cuidado cuando se implemente esta funcionalidad para realizar algoritmos que eviten múltiples votos del mismo usuario, spiders que se dediquen a realizar múltiples votos, etc...

El gestor de contenidos Drupal incluye una fiable librería que permite incluir funcionalidad de votos en los módulos de Drupal, Voting API. Joomla tiene aproximadamente unas 22 extesiones para votar.

Como no Django también tiene varias pluggs de voto como django-voting y movie-vote por ejemplo.

Expand

Estado (Que estoy haciendo ahora) en un site social

Continuamos con nuestra serie de post sobre aspectos a tener en cuenta en el desarrollo de un site social, visita el primero de la serie para ponerte al día.

Twitter ha llevado la molificación del estado del usuario a limites insospechados, es una funcionalidad imprescindible en cualquier website social, esto de decir a todo el mundo que estas haciendo en ese preciso momento, es verdaderamente adictivo, por supuesto debes pasar por las 5 etapas de aceptacion de twitter.

Es muy interesante que proporcionemos esta funcionalidad a nuestros usuarios para hacer mas comunidad en nuestro site, implementarla es relativamente facil, pudes poner limitaciones de caracteres para evitar trafico, consumo en la bd, etc (twitter limita a 140 caracteres).

Expand

Minimizar Peticiones HTTP

El 80% del tiempo de respuesta de un sitio Web se pierde en la interfaz de tu sitio Web. La gran mayoría de ese tiempo esta ocupado descargando los componentes necesarios: imágenes,hojas de estilo, scripts, flash, etc.

Reduciendo el número de componentes por turnos se reducen las peticiones HTTP para mostrar la página. Y es ahí donde reside la clave para acelerar las páginas.

Una manera de reducir el numero de componentes en la página es simplificando el diseño.
Pero aún así ¿Cómo podemos lograr unos tiempos de respuesta más rápidos?

Pues aquí veremos algunos consejos para reducir el numero de peticiones HTTP sin tener que prescindir de un buen diseño.

Expand

Consejos para acelerar la carga de tu sitio Web. Introducción

Recientemente descubrí la extensión para firefox YSlow  (http://developer.yahoo.com/yslow/)  para determinar los tiempos de carga de una determinada página Web así como los recursos que necesita.

Esta extensión viene de la mano de Firebug (http://getfirebug.com/), ambas imprescindibles para desarrolladores Web.
YSlow muestra una seríe de consejos que replican desde developer.yahoo.com "Consejos para acelerar la carga de tus sitio Web" (Best Practices for Speeding Up Your Web Site).

Estos consejos han sido extraidos de "High Performance Web Sites" de Steve Souders  (creador de la extensión YSlow).  Un dato curioso: es el libro informático más vendido en un corto periodo de tiempo.

Así que he pensado que sería interesante poner en práctica esos consejos y ver punto por punto los pros y contras que pueden surgir en su implementación.

Listado de consejos de Steve Souders: