links for 2007-05-09

Entrevista a Mitchell Baker CEO de Mozilla Foundation

Mitchell BakerInteresante entrevista a Mitchell Baker, que es CEO de Mozilla Foundation. Bastante extensa la entrevista y lo que más me gusta es que las respuestas son también extensas, casi no necesita que la pregunten.
La entrevista, dividida en diferentes partes, nos cuenta desde los inicios con una docena de personas metidas en el proyecto, hasta los 55 millones de dólares que facturaron el año pasado, muchísimo dinero si pensamos que se trata de un proyecto open source, claro que el Google sea motor de búsqueda por defecto y página inicial por defecto cuesta un poco.
Con la salida de IE7, Mitchell comenta que más que un aumento en el predominio de Microsoft, se ha encontrado con comentarios sobre que es más fácil pasar de IE6 a Firefox, que de IE6 a IE7, lo cual hace que aumente el número de usuarios de Firefox.
Entre el futuro de Firefox, nos encontramos con una versión para móviles, en la que ya están trabajando pero sin muchos recursos (Minimo). También nos habla sobre Cairo, el nuevo render gráfico que traerá Firefox 3 y su lugar junto a Flash y Silverlight. Y también destacar el llamado web 3.0 que es la ejecución de aplicaciones web en modo offline.
Una entrevista bastante interesante que merece la pena leer.
Mozilla CEO speaks out on future of Firefox
Vía / Digg

JSINER: objetos y herencia en Javascript

JSINER es una librería de Javascript que pretende facilitar la programación orientada a objetos y la dependencia en la gestión de scripts en ficheros externos.

Para el tema de la herencia, el autor define una herencia lazy, cuyas características son las siguientes:

  • Tiene las mismas características que la herencia mediante prototype.
  • No es necesario orden alguno en la declaración de los scripts externos.
  • En la mayoría de los casos la carga del HTML es más rápida, ya que los scripts se cargan solo en el momento en el que se necesitan.
  • Las dependencias se declaran en un modo más específico y las dependencias entre clases solo en scripts concretos.
  • Los scripts solo se cargan cuando se necesitan.

JSINER

|

5 efectos CSS accesibles

El tema de la accesibilidad es algo que a veces se deja de lado cuando se quiere conseguir un diseño más dinámico. Pero si se busca bien, se podrá encontrar ejemplos de diseños CSS que sean accesibles.

Estos son 5 muy buenos ejemplos de ello:

  • Enlaces externos: modificas el texto “(enlace externo)” incluyéndolo en un span y después lo que haces es modificar el estilo para que muestre un icono (diferente dependiendo de si es linked, visited o hover) y el texto lo haces desaparecer de la parte visible de la pantalla.Enlaces externos
  • Sigue leyendo: el texto “Sigue leyendo sobre …” se modifica, haciendo que solo aparezca “Sigue leyendo” y el resto del texto aparece como un popup mediante posición absoluta y jugando con el hover.Sigue leyendo
  • Texto variable: al igual que ya contamos en Sentido Web, usando distintas hojas de estilo y accediendo a ellas mediante Javascript.Tamaño de texto
  • Pestañas con imágenes: se crea un menú de pestañas con listas no ordenadas y se cambia el estilo para que no tengan formato de bloque, los enlaces están formados por imágenes y estas cambian según el hover.Pestañas
  • Formularios: dos buenos ejemplos de formularios, uno de ellos muy bien tabulado y otro en tres columnas.Formularios

5 Accessible and pretty CSS tips

Vía / dzone

links for 2007-05-08

XSS mediante HTML no estándar

Cuando se quieren evitar ataques XSS, normalmente en PHP se usan las funciones htmlspecialchars o htmlentities.

Ahora veo un ejemplo en el que un ataque puede evitar estas funciones cuando se crea la página con HTML no estándar. Tenemos el típico ejemplo de un texto que se introduce por un formulario y se presenta como un enlace.

$dato = htmlentities($_GET['dato'], ENT_QUOTES);
echo "<a href=pagina.php?dato=$dato>Enlace</a>";

Si os fijáis bien veréis que el enlace está mal formado y no tiene las comillas en el href. Si metieramos como dato de entrada lo siguiente: ” onclick=alert(null)” (sin las comillas), nuestra página sufriría un ataque XSS y mostraría un mensaje alert.

Non-Standard HTML Fuels XSS Attacks

links for 2007-05-06

links for 2007-05-05

|

10 razones por las que usar Silverlight

silverlight.pngEl título original dice ’10 razones por las que Silverlight cambiará la web’, y en mi opinión es pasarse un poco, entre otras cosas porque tampoco veo nada nuevo. Eso sí, también hay que reconocer que Silverlight parece una buena alternativa a Flash, sobre todo para los que desarrollen aplicaciones en .NET con Visual Studio. Microsoft sabe hacer las cosas y algo que gusta mucho a los jefes de proyectos es que todo esté conectado entre sí de forma fácil y rápida.

Las 10 características son las siguientes:

  • Vídeos de alta calidad: la misma tecnología que se usa para VC-1, el codec de los BluRay y HD DVD, es la que se usa para el streaming de los vídeos.
  • Multiplataforma y multinavegador: funcionará para cada plataforma y cada navegador, incluso gracias al proyecto Mono funcionará para Linux.
  • Unión de diseño gráfico y desarrollo: los desarrolladores de Visual Studio podrán crear aplicaciones para Silverlight de forma rápida, pudiendo separar el core de la aplicación de la parte gráfica.
  • Barato: tan solo es necesario disponer de IIS en nuestro servidor Windows, aunque debería funcionar en todos los servidores web. Este punto es un tanto confuso, el autor dice que es barato, pero por lo poco que he entendido, Silverlight es un plugin, como lo es el Flash Player, y su precio es gratuito. IIS no lo necesitas para nada, porque es como almacenar un archivo .swf o .png (si mal no creo). Ahora bien, ¿el precio de Visual Studio para desarrollar las aplicaciones o animaciones que funcionen en Silverlight?, mirando el precio de Flex (810€ la versión con Charting, 520€ la versión normal) y el precio de Visual Studio (1.284€ para Visual Studio 2005 Professional Edition con Suscripción MSDN Premium, aunque hay otro producto que se llama igual pero que cuesta 2.675€), no sé que pensar sobre lo barato que es.
  • Soporte a lenguajes de terceros: gracias a la nueva Dynamic Language Runtime es posible usar Ruby, Python y EcmaScript para desarrollar aplicaciones Silverlight y dejar a un lado .NET. ¿Pero esto es como cuando te dicen que puedes crear ficheros Excel, pero que tienes que tener instalado el Excel?, ¿puedes pasar de .NET y también de Visual Studio o solo de .NET?.
  • Depuración multiplataforma y multinavegador: gracias a las características que ofrece Visual Studio.
  • Mejor entorno de desarrollo del planeta: bueno, esto va en gustos, y al autor le debe gustar mucho Visual Studio.
  • Soporte a mashups: muy buena utilidad, obtenida gracias al soporte a LINQ y LINQ-to-XML por parte de Silverlight y a que los datos son accesibles mediante RSS, POX, REST y JSON.
  • Protección anticopia: evitando así que los contenidos como vídeos se puedan copiar como ocurre en los vídeos Flash como los que ofrece Youtube. Hasta que venga uno y consiga copiarlos…
  • Rapidez: habrá un gran incremento en la rapidez en las aplicaciones basadas en Ajax que usen Silverlight.

Otro punto que cuestiono es el alarde que hace el autor de que solo ocupa 2Mb., pero eso es solo el Silverlight, y según he entendido es necesario .NET, por lo que a esos 2Mb hay que añadirle los 22Mb. del framework de .NET. Demasiado si lo comparamos con el tamaño del Flash Player que es el que ejecuta las aplicaciones Flex.

Lo siento, me ha sido incapaz no dar mi opinión, que quizás parezca anti-microsoft, pero he leído en varios sitios cosas parecidas al siguiente artículo, y aunque seguro que Silverlight aporta buenas cosas a la web, tampoco hay que pasarse.

Top 10 Reasons Silverlight Will Change the Web

Vía / dzone

Almacena la sesión del navegador en la BD con PHP

La mayoría de las aplicaciones web usan la sesión para almacenar información que podemos utilizar en todas las páginas que visitemos, así no será necesario pasarla por parámetro como muchas veces se hace (incorrectamente).
Normalmente la sesión se guarda en un fichero en el servidor, lo cual puede ser un problema, ya que si queremos usar varios servidores en cluster, la sesión no estaría disponible si en la siguiente página que visitamos, el servidor que atiende nuestra aplicación no es el mismo. Yo no soy experto en sistemas, pero si el sistema permite session-aware en el balanceo de carga, no nos encontraremos con este problema.
Si nos encontramos con ese problema y es necesario solucionarlo mediante programación, PHP nos permite gestionar las sesiones, indicando el modo de guardar y leer las sesiones. Para ello existe la función session_set_save_handler(), en la cual indicaremos los métodos para abrir, cerrar, leer, escribir, destruir y liberar sesiones.
En el artículo que referenciamos guardan la sesión en la base de datos, para lo cual habrá que crear una tabla que almacene el ID de la sesión, la información y la fecha de expiración. Las acciones de tratamiento de la sesión usarán esta tabla para almacenar y tratar la información de la sesión. Al abrir y cerrar la sesión no se debe hacer nada, leer leerá de la tabla según el ID dado y si no ha expirado, guardar insertará/modificará en la tabla guardando los datos, destruir borrará los datos de la tabla y liberar sesiones borrará de la tabla las sesiones que hayan caducado.
Storing PHP Sessions in a Database
Vía / PHPDeveloper.org