Essential JavaScript And jQuery Design Patterns – Nuevo libro gratis

Este es un libro que descargue ayer y he estado leyendo, me parece muy bueno. Explica los principales design patterns y cuando usarlos. El libro viene junto a unos cheat sheets imprimibles y un material de referencia sobre los design patterns.

Se puede descargar desde el sitio web del autor.

Alrededor de la web: jshack, Tripoli & Learn something everyday

Tripoli CSS no es un framework de css, sino una serie de reglas genericas de CSS  para mostrar HTML. La idea de resetear todos los estilos del browser es común, pero me atrae mucho lo de renderizar diferentes layouts solo con aplicarle una class al body del HTML, incluso podemos ver una demostración del Tripoli Layout plugin.

David Tavarez nos muestra un poco de AJAX con jsHack en su post Simple Ajax Request usando jsHack.

Todos los días Learn something everyday nos muestra un hecho ilustrado de una manera muy peculiar.

Optimizely nos muestra una forma bien interactiva y fácil  de implementar mejoras a nuestros website a través de A/B Testing.

Por último, este señor dice cosas para pensarlas en su libro, Program or be programmed, por ejemplo:

“If we don’t know what the software we are using is for, we are not using it but being used by it”  - Douglas Rushkoff

Puedes enviarme enlaces a wilbur@retrorock.info o seguirme en Twitter para ayudarme a encontrar las cosas mas interesantes de la web cada semana.

Lo que ellos saben

El resultado de un estudio bastante interesante sobre que tan expuesta está nuestra información privada en internet.

What they know – WSJ

Como correr multiples aplicaciones con una instalación de Codeigniter

Por default se asume que vas a usar Codeigniter para manejar una sola aplicación, pero, debes saber que es posible correr varios sitios desde una misma instalación.

Cada sitio tendrá su propio folder application, pero todos van a compartir el mismo folder system.

Para que esto suceda debes mover la carpeta applications que viene por default dentro del folder system al root de nuestra instalación.

Luego busca en el index.php que está en el root de la instalación la línea que tiene: $application_folder = “application”; Y sustituyelo por: $application_folder = “../application”;

Ahora puedes copiar el folder application de system de nuevo al root de la instalación y renombrarlo a como quieras que se llame tu nueva aplicación. Cada aplicación debe tener su propio archivo index.php donde debes buscar la línea que tiene:  $system_folder = “system”; y sustituirla por: $system_folder = “../system”; y donde tiene: $application_folder = “application”; sustituirla por: $application_folder = “../admin”; cambia admin por el nombre del folder donde tienes esta aplicación.

Detecta un request Ajax con PHP

Me gusta usar un solo script para los request AJAX y los request “normales” porque resulta en un solo archivo para actualizar y editar.

Tener la capacidad de detectar que tipo de request recibimos es útil para determinar que tipo de contenido devolver en la respuesta. Por ejemplo, si es un request AJAX podríamos querer devolver un JSON o un XML y si no lo es, podríamos devolver un HTML.

Una manera de detectar los request AJAX contrario a los requests que hacen un page-load full puede ser con el siguiente código PHP:

$_SERVER['HTTP_X_REQUESTED_WITH'] es la clave para verificar si es request fue hecho con AJAX o no, pero no todos los servidores proveen esta variable, así que tener otras pruebas adicionales sería importante.

Desactivando el referrer con rel=”noreferrer”

El referrer es la URL de procedencia de un visitante a una página. Esta URL es tomada de header HTTP que envía el servidor con cada request. El referer puede ser tanto una URL externa, como una URL interna en el sitio. HTML5 ofrece la posibilidad de suprimir esta información directamente a nivel de HTML. El atributo rel=noreferrer Le dice al enlace que no pase información del referrer a la página de destino.

El problema con Analytics

Por ejemplo un enlace desde retrorock.info a tu website presentaría “retrorock.info / referal” como source y medium en Google Analytics, sin embargo si retrorock.info usara el atributo rel=noreferrer en sus enlaces no obtendrías ninguna información de referrer y el link contara como un visitante directo “direct / (none)”.

Como esto es un problema? El proposito real de rel=noreferrer es proteger recursos privados. Por ejemplo, imagina el caso de que un enlace venga desde un correo de Gmail o de un Wiki interno de alguna compañía o algo por el estilo. Existe la probabilidad de que al pasar la URL desde donde vino la visita pueda revelar información privada o presentar un riesgo de seguridad, que es por lo cual rel=noreferrer fué introducido. Presenta un problema potencial en cuanto a los analytics, especialmente si es utilizado para razones para las que no fué diseñado.

Como se usa?

La relación noreferrer se puede agregar a los links, igual que la relación nofollow.

Para el usuario final (los visitantes de nuestro sitio) no va a haber ningún cambio aparente, sin embargo, nosotros si podemos tener un interes en marcar nuestros links de esta manera:

  • Links despues de una interfaz de administración: Por ejemplo, despues de validar un comentario en un blog o despues de revisar la calidad de un articulo, se tiende a redireccionar al usuario al enlace de destino. Pero en estos casos la información de la referencia no continuará siendo precisa o no es interesante para nada.
  • Enlaces desde paginas con identificadores de session en el URL: No es raro ver páginas que utilizan información de la sesión en la URL. Enviar un referer inutilizable no tiene ningún sentido. ahora podemos simplemente desactivar esta información.

Soporte en los browsers

En este momento solo los browsers que utilizan el webkit web browser engine (Google Chrome, Safari) pueden dar uso a esta funcionalidad, pero podemos esperar que emerga su soporte eventualmente y debemos estar atentos.

El reto de cambiarnos a nosotros mismos

Muchas veces en nuestra vida nos sentimos desamparados y cuando nos sentimos así, no tenemos el poder de retar el curso de nuestra vida y se nos hace más dificil encontrar la motivación para ser mejores. Muchas situaciones, grandes o pequeñas pueden ser dificiles de confrontar y superar, pero cuando nos encontramos frente a estas, siempre tenemos la oportunidad de cambiarnos a nosotros mismos.

Muchos no entendemos realmente como es el mundo alrededor de nosotros, como son las personas alrededor de nosotros, pues muchos somos privilegiados de recibir mas de lo que damos y cuando abrimos los ojos a la realidad, en la mayor parte de los casos queremos que las cosas cambien, las situaciones y las personas. Pero no podemos esperar que nuestro ambiente cambie, ni las personas que nos rodean si nosotros mismos no cambiamos.

El problema como tal es un resultado de nuestra humanidad, la naturaleza humana, y el mundo es un lugar hermoso y es nuestro deber permitir hasta donde llegue nuestra capacidad, que todos tengan las mismas oportunidades y la misma libertad que tu y que yo.

Si tomamos el reto de cambiar nosotros mismos, de observar el impacto de nuestras desiciones y tomar responsabilidad de las consecuencias de nuestros actos, podemos hacer una diferencia. Si hay algo en el mundo que te preocupa o algo que te gustaria ver cambiar, mira primero hacia ti y observa detenidamente que efecto tienen tus acciones sobre el mundo y sobre los que te rodean.

El cambio es inevitable en nuestras vidas, y a través de nuestro poder de cambiar nuestro propio futuro, podemos esperar cambiar el futuro de todo el mundo.

Solo una reflexión …

Jugando con el API de Tumblr

Leyendo la documentación del API de Tumblr se me ocurrio utilizar esta herramienta de microblogging para hacer algo un poco más personalizado.

El resultado es Tombler. Es una galería de imagenes utilizando los posts tipo picture de mi blog de tumblr.

Es un ejemplo sencillo, pero me da unas cuantas idéas para implementaciones cada vez mas personalizadas.

Highlights

Entre los parametros que podemos utilizar para leer las entradas de un blog hay dos que considero especialmente útiles:

  1. Type: Retorna los posts de este tipo, si no se especifica, el llamado devuelve todos los tipos de posts. Puede ser uno de estos tipos textquotephotolinkchatvideo, o audio.
  2. Tagged: Retorna los posts con este tag. Lo encuentro especialmente util junto a la funcionalidad de permitir a cualquiera publicar un post en tu blog y etiquetar los posts de los visitantes con un tag predeterminado.

Como está hecho?

Aunque esto pudo haberse hecho en dos lineas usando simplexml_load_file yo opté por usar CURL, ya que quise seguir experimentando con las opciones de publicación y mandar request POST.

Lo próximo es navegar por nuestra lista de posts:

<?php foreach ($posts as $post): ?>

Asegurando Drupal – Contenido

Alguna parte del contenido de algunos sitios es para uso estricto del webmaster, de los managers, autores, moderadores, etc. Los roles de Drupal restringen acciones específicas, pero no contenido específico. Para eso necesitas ajustar configuraciones e instalar algunos módulos.

No confíes en que no se puede acceder al contenido de Drupal no publicado

Los nodos y comentarios no publicados aún son accesibles. Si te sabes la URL, o la puedes adivinar, los nodos no publicados pueden ser servidos. Como todos los nodos de Drupal tienen una URL en el formato http://TUSITIO/node/ID, no es difícil navegar utilizando valores numéricos consecutivos  para obtener cada nodo de tu sitio, publicado o no.

Drupal no provee restricciones para los nodos individualmente o para los tipos de contenido. Hay varios módulos que pueden agregar esa funcionalidad, incluyendo: Nodeaccess, Node Access,Content Access.

Restringe el acceso a menús específicos

Drupal no tiene restricciones para los menús o los elementos de un menú específico. Los bloques de menus pueden registringirse por roles en Administer > Site building > Blocks.Para obtener más control hay algunos módulos disponibles, como Menu Access.

Restringe el acceso a bloques específicos

Esconde los bloques privados configurando los permisos para cada bloque en Administer > Site building > Blocks.

Web Standards en TwittDo

Este domingo voy a compartir junto a Bismarck Carreras una ponencia sobre los web standards en el Barcamp de Twitt.do 2010, donde vamos a hablar sobre la importancia de usar web standards hoy para ser compatibles con el futuro, como optimizar el código HTML hasta usar siempre la etiqueta correcta y la estructura correcta, un poco de compatibilidad entre buscadores y de javascript.

El nombre de la charla es Diseñando con Web Standards, vamos a estar en el salón 3 a las 3:30pm.