Vulnerabilidad remota en las extensiones de Firefox

Ha sido detectada una vulnerabilidad en Firefox (independiente de versión) que se produce en el sistema de actualizaciones de extensiones.
Este fallo se produce porque el usuario no puede confiar (trust) en el DNS o en la conexión. Extensiones importantes como Google Toolbar, Google Browser Sync, Yahoo Toolbar y Del.icio.us Extension, están expuestas a esta vulnerabilidad, la cual permitiría instalar software peligroso en nuestro sistema.
Las extensiones que se descargan desde https://addons.mozilla.org no nos deben preocupar. A parte del equipo de seguridad de Mozilla, los desarrolladores de las principales extensiones expuestas fueron avisadas hace 45 días sin que haya habido actualizaciónes.
Existe un vídeo que muestra un ataque a Google Browser Sync: (12MB Quicktime).
A Remote Vulnerability in Firefox Extensions
Vía / Techmeme

|

Google compra Panoramio

panoramio.pngGoogle ha anunciado la compra de Panoramio, una aplicación web2.0 que usando el API de Google Maps permite que los usuarios sitúen sus fotografías en un mapa.
No suelo hablar de negocios, existen otros blogs más especializados en ello y que suelen explicar todo mucho mejor. Pero en esta ocasión, supongo que debido a que se trata de un proyecto español, me he decidido a dar esta noticia, sobre todo porque esto es una prueba de que la comunidad hispana no tiene que estar siempre mirando qué se hace en otros países para sacar la copia en español. Creo que en España y Latino América hay gente muy capaz y que debemos dar el paso de dejar de creernos que “no podemos”, “no hay medios”, etc…
A parte de la venta, los usuarios que disfrutamos del servicio de Panoramio, no vamos a sufrir ningún cambio que no sean de nuestro agrado (creo recordar que con Yahoo! y Flickr hubo algunos comentarios de queja), al contrario, podremos disfrutar de las mejoras que impliquen la estructura de Google y actualizaciones más frecuentes surgidas por el API de Google Maps.
Ya puestos a pedir, estaría bien que se pudieran crear mapas personalizados como se puede hacer ahora con Google Maps.
Como dirían en un programa de radio… enhorabuena a los premiados.
A picture’s worth a thousand clicks
Google agrees to acquire Panoramio

links for 2007-05-31

Convertir un vídeo a FLV mediante PHP

En las nuevas aplicaciones web2.0 se está siendo cada vez más frecuente el que los usuarios puedan subir sus vídeos para luego compartirlos. No sé donde leí hace poco que una de las grandes luchas que han ganado la gente de Flash es el uso de vídeos FLV sobre los otros formatos que existían antes.

Si queremos que nuestra aplicación convierta los vídeos a Flash, el script siguiente nos ayudará a realizar el proceso. Para ello necesitaremos FFMPEG-PHP, FFMPEG y FLVTool2.

phpflv.png

El proceso es sencillo: inicialmente, una vez subido el vídeo, se realiza una llamada a FFPMPEG-PHP para obtener datos del vídeo (ancho, alto y FPS) para luego llamar a FFMPEG con los datos obtenidos y empezar la codificación, realizando también una llamada a FLVTool2 para obtener información sobre el fichero resultante.

How to convert/encode files to FLV using FFMPEG & PHP

Vía / PHPDeveloper y Asier Marqués

|

FUEL: framework para desarrollo de extensiones de Firefox

FUEL es un framework cuyo sentido es ayudar a realizar extensiones para Firefox de forma sencilla que accedan a las herramientas y a nivel del systema de aplicación. Para ello proveerá unas librerías estables y documentadas, obteniendo extensiones más estables y por consiguiente una aplicación más estable también.
Entre sus objetivos nos encontramos con la facilidad de acceder a las interfaces, componentes y servicios, disponer de paquetes para abrir ventanas, para tratar el nsIProcess, y para tratar ficheros, texto o stream enviado mediante XMLHttpRequest.
Es importante resaltar también que nos ayudará al acceso a datos (bookmarks, microsumarios y proveedores de búsquedas), al monitoreo de eventos y notificaciones, e interactuación con el UI de la aplicación.
Estoy deseando tener un poco de tiempo para mirarlo con detalle, ya que a veces al desarrollar una aplicación XUL nos encontramos con unas librerías un tanto enrevesadas.
FUEL
Vía / Ajaxline

links for 2007-05-30

| |

W3C: fallos de accesibilidad (II)

Seguimos con los fallos de accesibilidad que se suelen cometer en el desarrollo web, que nos ofrece la W3C y que empezamos a tratar hace unos días.

Mostrar imágenes con información importante mediante estilos

Se trata de usar una imagen que contiene información (por ejemplo para los enlaces del menú) y mostrarla como fondo de un elemento y que no haya un texto que indique el contenido de la imagen.

Una solución es escribir el texto pero no hacerlo visible, para ello usaremos la propiedad text-ident, si le damos un valor negativo elevado el texto desaparecerá por la izquierda. Por ejemplo, tenemos una imagen titulo.png que tiene el título del blog con un diseño especial, lógicamente queremos que se vea así por temas de diseño e imagen. Ahora bien, si solo mostramos la imagen, no somos capaces de leer el contenido de esta. Por ello tendremos que hacer lo siguiente para que el texto aparezca sin que haya estilos y con estilos solo aparezca la imagen:

h1 {
background: url(titulo.png);
width: 200px;
height: 100px;
text-indent: -10000px;
}
<h1>Título</h1>

Usar el estilo blink sin el mecanismo para parar el parpadeo

Esta es corta, no uses jamás text-decoration: blink. Y si por un casual no te queda otra posibilidad que usarlo, crea un script que pare el parpadeo a los 3 segundos.

Usar un applet o un flash que parpadee sin el mecanismo para pararlos

Lo mismo que el punto anterior, pero enfocado a applets y a animaciones Flash.

Usar subtítulos que omiten parte del diálogo o sonidos importantes

Si vas a ofrecer un sonido, una conversación y no muestras los subtítulos con todo el contenido (conversación y sonidos destacados), no se trata de un buen subtítulo y puede haber información importante que se escape.

Más información

|

Optimizaciones para Apache y PHP

La gente de IBM nos vuelve a ofrecer un artículo en el que nos explican como optimizar nuestro Apache y PHP para obtener mejores resultados en nuestras aplicaciones web.
El artículo está dividido en dos partes: una para configurar Apache y la otra para PHP, existe un documento anterior en el que explican la arquitectura LAMP y como configurar Linux.
Inicialmente para Apache nos explica cómo configurar el MPM (Multi-Processing Modules), el cual ayuda a manejar las conexiones entrantes y las salientes, podremos indicar el número máximo de clientes y el número de peticiones por hijo que tratará, entre otras cosas.
Algo también muy importante es configurar eficientemente las opciones o controles que se indican en los ficheros de configuración, y que controlan las reglas que debe seguir el servidor web con cada petición.
Por último, habrá que tener en cuenta en la configuración el número de conexiones que permanecerán activas para una llamada HTTP, así como el envío de la respuesta de forma comprimida (de esto ya hemos hablado en otras ocasiones, hay que decidir entre CPU usada en el servidor o respuestas más rápidas).
Sobre PHP nos indican la necesidad de usar opcode cache, representación binaria del script PHP que puede ser ejecutada. Para ello existen varios cachés disponibles, aunque recomiendan el uso de eAccelerator.
El resto de las recomendaciones se refieren a la configuración del tiempo máximo de ejecución, el tiempo máximo de espera de la entrada, la memoria máxima utilizada y al tamaño del buffer.
Optimizing Apache and PHP
Vía / Good PHP Tutorials

links for 2007-05-29

Pros y contras de MySQL

MySQL es una de las bases de datos más populares que hay dentro del desarrollo web. Hay gente que la defiende, y otros que no la tienen entre sus BD favoritas. Para aquellos que tengan que decidirse en la elección de MySQL como BD de su sistema, esta lista de pros y contras le puede ser de mucha utilidad.

Pros

  • Es muy popular: el hecho de que mucha gente la use y que esté tan presente en gran parte de los desarrollos web, hace que los proveedores de software intenten que sus aplicaciones sean compatibles con esta BD, pudiendo así encontrar muchas aplicaciones para MySQL.
  • Es simple: es fácil de aprender comparada con otras BDs, no es necesario emplear mucho tiempo o dinero en formar a los trabajadores o en contratar a gente cualificada. El que sea sencilla conlleva que también sea rápida, aunque hay algunos desarrolladores que echan en falta algunas funcionalidades (a mi parecer, cada vez menos).
  • Es barata: aunque pertenece a MySQL AB, MySQL es open source, que sea barata implica que al inicio del proyecto el gasto vaya a otras partes que puedan necesitarlo, en vez de gastar dinero en licencias.
  • Tiene soporte: uno de los inconvenientes que suelen presentar los clientes hacia el open source es que no dispone de soporte. MySQL ofrece licencia con servicios de soporte y mantenimiento, además también es posible obtener atención técnica 24/7.
  • Es flexible y escalable: dispone de muchos tipos de almacenamiento, pudiendo seleccionar el que más nos convenga, y os procedimientos almacenados nos permiten escalabilidad.
  • Librerías nativas para lenguajes: ofrece librerías para lenguajes como PHP y Ruby.

Contras

Yo no estoy personalmente de acuerdo con todas ellas, pero quien escribe el artículo tiene sus razones para indicarlas y hay que tenerlas en cuenta.

  • Licencia GPL: en algunos entornos, la licencia BSD es más adecuada.
  • Falta de integración con entornos existentes: existen muchas circustancias en los que los DBA no tienen un entorno con el que tratar con MySQL.
  • Falta de madurez: en comparación con otras BDs como Oracle (que cumple 30 años), le falta madurez, lo que indica posicionamiento y estabilidad.
  • Falta de características: hay características importantes, que aunque a veces no son muy utilizadas, pueden acabar con un proyecto debido a la necesidad de uso.
  • Certificación: a muchas empresas les gusta la certificación, aunque ofrecer certificación, esta está muy lejos de parecerse a la de Oracle o MS-SQL Server.

Five Compelling Reasons to Use MySQL

Eight Sound Reasons Not to Use MySQL

Vía / dzone