Detección de caras con Javascript y Canvas

Interesante script que usa canvas para detectar rostros en las fotografías. Se basa en openCV y en el post de John Resig para evitar un captcha.
Permite la opción de reconocer una cara o varias caras, este último lo he probado con una foto y no me ha funcionado, pero como bien dice el autor, aún tiene que mejorar más el script.
Interesante opción para servicios como Facebook o Flickr para sus opciones de asociar elementos (usuarios, comentarios, …) a las fotografías. También es útil para avisar de que no se ha subido una cara cuando alguien cambia de avatar.
Face detection in javascript + canvas
Vía / @rafabayona

Bases de datos para tener en cuenta

No solo de MySQL vive el desarrollador web, por lo que está bien conocer estas otras bases de datos:

Alternativas opensource de BigTable de Google:

Alternativas opensource de Amazon Dynamo, almacenamiento distribuido:

Otros proyectos interesantes:

QCon London 2009: Database projects to watch closely

Vía / High Scalability

Tutoriales para crear plugins en jQuery

Lista de manuales/tutoriales que nos ayudan a realizar plugins para jQuery:

jQuery Plugin Development – 10 Tutorials To Get Started

Vía / CSS Globe

Lightcloud: BD clave-valor

Lightcloud es una base de datos basada en clave-valor muy rápida, desarrollada por la gente de Plurk, que llega casi al rendimiento de Memcachedb. Está basado en Tokyo Tyrant.

  • Puede almacenar millones de keys en pocos servidores
  • Escala horizontalmente
  • Los nodos se replican vía master-master, failover automático y balanceo de carga
  • Por ahora solo está para Python, pero el puerto puede ser desarrollado fácilmente en cualquier lenguaje

Lightcloud

Vía / High Scalability

Errores comunes a la hora de optimizar

Interesantes consejos que nos ofrece Ilia Alshanetsky sobre la optimización de nuestras aplicaciones. Resumiendo el PDF de una charla que dió que ha compartido, tenemos:

  • Ten claro que va a hacer tu aplicación antes de meterte a optimizar
  • Basa tus cálculos sobre crecimiento y escalabilidad sobre datos reales, no sobre pajaras mentales de los comerciales
  • Más código no implica más lentitud, modulariza tu código para obtener mejores resultados
  • Piensa sobre el tiempo/gasto de desarrollo por ingenieros y el gasto en nuevo hardware. Esta solución no siempre es válida, ya que evitar cuellos de botella añadiendo servidores puede ser causa de mayores problemas en el futuro. Si tu código o consultas a la BD no son eficiente, es mejor optimizarlas. Para conseguir una mejora de rendimiento del 5% mejor no te molestes en optimizar el código.
  • La optimización de código puede originar fallos en otras partes de la aplicación
  • Cuidado con los includes: la compilación puede tardar más que la propia ejecución
  • Cache, preferiblemente en memoria, tanto datos recuperados de la BD como procesos que tarden en ejecutarse
  • No todo tiene que ser en tiempo real
  • Fíjate sobre todo en la base de datos, suele ser lo primero que necesita optimización
  • Usa herramientas para encontrar los cuellos de botella
  • Micro-optimizaciones no solucionarán tus problemas de rendimiento
  • Si crees que vas a crecer, la escalabilidad es más importante que la velocidad
  • No reinventes la rueda, crearte funciones que hacen lo mismo que funciones nativas de PHP es inutil

Common Optimization Mistakes

Vía / iBlog – Ilia Alshanetsky

Editor de .htaccess online

Buena herramienta que nos permite crear ficheros .htacces de forma online, muy útil para aquellos que no tienen conocimientos de Apache pero que necesitan modificar el .htaccess.
Mediante diferentes opciones y formularios, nos permite rellenar los datos necesarios para que nos vaya devolviendo el .htaccess final. Este editor nos facilita la labor a la hora de: no permitir el acceso a ficheros, autenticacion, páginas de error, páginas por defecto, redirecciones y restricción de accesos.
.htaccess Editor

|

jQuery File Upload Plugin: subir archivos con jQuery y Flash

jQuery File Upload Plugin es un plugin para jQuery que usando Flash nos permite subir archivos a nuestro servidor con opciones ampliadas respecto a la ventana de selección de archivos que ofrece el navegador, ya que, entre otras cosas, permite indicar el tipo de archivos que se permiten subir o subir varios archivos de una sola vez.
Yo estoy en contra de este tipo de controles, ya que no es lo que viene por defecto en el navegador, pero siendo realistas, muchos clientes, sobre todo cuando se desarrolla para empresas y su visión de una aplicación web es que haga lo mismo que una aplicación de escritorio, siempre piden que al subir un archivo se pueda indicar el tipo de archivo que se permite subir.
jQuery File Upload Plugin
Vía / @benjarriola