A todos nos pasa que nos gusta reutilizar (copy/paste) aquellas trozos de código (snippet) que hemos creado en algún proyecto anterior y que no nos apetece volver a pensar cómo hacerlo. En vez de tener que buscar entre todo el código que tenemos y pasarse todo el tiempo diciendo “recuerdo haber hecho esto en tal sitio”, podemos usar Snipplr para guardar nuestros propios snippets o para usar los que comparten otros usuarios, organizados por lenguaje de programación y por tags. Snipplr
VÃa / Criterion
La verdad es que Firefox4 está de lujo, y las demos que ofrece Mozilla son increíbles. De una de ellas he sacado cómo hacer clipping en vídeos usando HTML5 y la posibilidad de incrustar SVG (sólo funciona en Firefox4).
El método es sencillo, tengo un SVG que muestra el contorno y los botones de play y pausa, además tiene un clipPath que se usará para el estilo clip-path del vídeo:
SVG
Vídeo
Javascript
var play = document.getElementById('play');
var pause = document.getElementById('pause');
var video = document.getElementById('video');
play.addEventListener('click', function() {
play.style.display = 'none';
pause.style.display = 'block';
video.play();
}, true);
pause.addEventListener('click', function() {
play.style.display = 'block';
pause.style.display = 'none';
video.pause();
}, true);
video.addEventListener("ended", function() {
play.style.display = 'block';
pause.style.display = 'none';
video.pause();
}, true);
El vídeo es el mismo que el de la demo de Mozilla, he puesto el borde semi-transparente para que se vea el clipping como va.
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
Cherokee es un servidor web muy rápido y con muchas funcionalidades. Según los benchmarks es el más rápido que existe, lo cual es bastante interesante.
Permite FastCGI, SCGI, PHP, CGI, SSI, TLS y conexiones encriptadas SSL, Virtual hosts, Authentication, codificación “on the fly”, Load Balancing, logs compatibles con Apache, balanceo de bases de datos, Reverse HTTP Proxy, Traffic Shaper, Video Streaming y mucho más.
Lo mejor del todo es que el proyecto lo lleva un madrileño, lo peor de todo es que desconocía totalmente el proyecto 🙁 Cherokee
Vía / HowtoForge
aSLL es una librerÃa bajo licencia MIT que implementa una tecnologÃa similar a SSL pero sin HTTPS.
aSSL permite al cliente negociar una clave secreta aleatoria de 128 bits con el servidor usando un algoritmo RSA. Una vez que la conexión se ha establecido, los datos se enviarán y recibirán usando el algoritmo AES.
aSSL está compuesto por algunos ficheros Javascript y componentes en el servidor. En un futuro habrá puertos para cada uno de los lenguajes web más importantes (PHP, Java, Perl, Python, TKL, …). aSSL
VÃa / WebAppers
Interesante lista de puntos que pueden evidenciar que nuestra aplicación web tiene problemas de seguridad:
EstadÃsticas expuestas: está bien saber quienes nos visitan, aunque lo que no es correcto es que esta información este disponible. Algunos programas de estadÃsticas tiene problemas de vulnerabilidad, a parte de que esa información deberÃa ser confidencial. “Generated by Webalizer” intitle:”Usage Statistics” inurl:awstats filetype:pl
Certificados SSL caducados: ¿cómo se puede confiar en un sitio que no paga unos cientos de dólares para tener su certificado en orden?.
Uso de código ajeno: no se trata de no usar código de otros, sino de usarlo estando seguro de que no tiene errores de seguridad, para ello es bueno pasarse de vez en cuando por Secunia o SecurityFocus.
Comentarios en nuestro código: aunque no aparezcan si se pueden leer mirando el código fuente, un error grave es poner comentarios para nuestro código PHP o JSP como comentarios HTML. // TODO lang:javascript // FIXME lang:javascript