tecnologías web

Jul 24 2008

Instalando cherokee 0.8.0 en debian 4.0

Tag: tecnologías webajo @ 11:14 pm


El servidor web Cherokee 0.8.0 verá la luz en breve con aun mejor rendimiento, y realmente estoy impaciente por empezar a migrar todos mis dominios a cherokee: Las pruebas que he hecho han reducido la latencia en un 70% permitiendo muchas más conexiones y reduciendo drásticamente  el consumo de memoria.

Aquí os dejo los pasos para instalar cherokee 0.8.0 desde subversion en una debian 4.0 limpia:


# cd /usr/src
# apt-get update
# apt-get install make subversion automake autoconf gcc pcre-dev libssl-dev libtool libpcre3-dev python
# svn co svn://svn.cherokee-project.com/cherokee/trunk cherokee-trunk
# cd cherokee-trunk
# ./autogen.sh --localstatedir=/var --prefix=/usr --sysconfdir=/etc --with-wwwroot=/var/www
# make install

Alcanzado este punto ya podréis configurar vuestro servidor con cherokee-admin: http://www.cherokee-project.com/doc/admin.html

menéame menéame -

tecnologías web

May 21 2008

Paypal caido, ¿por el fallo de seguridad?

Tag: seguridad, tecnologías webajo @ 6:28 pm

Hace unos días, the Inquirer hacía eco de un exploit en la seguridad del sitio de paypal, y hoy (a las 19:15 GMT+1), justo cuando me disponia a realizar el pago online de una licencia de software, me encuentro con esto:

Paypal caido

Por lo que leí, el fallo en su pasarela permitía lanzar una ejecución en su site con código javascript malicioso, el cual podría permitir el desvio de datos (por ejemplo credenciales de autenticación) a otros servidores de internet.

Supongo que las pérdidas en transacciones para miles de compras solo las puede justificar la corroboración de dicho problema, y que estén trabajando en ello.

Un fallo de seguridad así es terrible, y más en un sistema de pagos con tanta difusion como paypal. Paypal siempre ha presumido de invertir ampliamente en la seguridad de sus sistemas, pero parece que no ha sido suficiente. ¿O simplemente es que la seguridad total es inalcanzable?.

Mi compra tendrá que esperar…

menéame menéame -

tecnologías web

Mar 07 2008

Adobe AIR y FLEX 3 : Live Demos

Tag: tecnologías webalex @ 3:24 pm

DISCLAIMER: Este post es una copia del publicado en Maestros del Web por mi (la segunda parte).

Probablemente lo más impresionante del evento de la semana pasada fueron las demos de productos construidos con AIR. Tuve la oportunidad de escuchar una presentación similar el año pasado en el Future of Web Applications en Londres, sin embargo no hubo tiempo para ver todas las demos. Esta vez si las pude ver de cerca y en más de una ocasión me hicieron exclamar un “WOW” ante las virguerías que se pueden hacer con la tecnología.

Lo primero que me llamó la atención es que Adobe mantiene un mercado en donde va colgando para su descargas todas las aplicaciones implementadas con AIR de las empresas que se las mandan. Primero se las somete a un exhaustivo análisis y si lo pasan se certifican y se añaden a la web de Adobe para su descarga. Esto proporciona tanto a Adobe como a los desarrolladores y empresas de las aplicaciones, una publicidad estupenda y que animo a muchos a aprovechar.

Analytics Report Suite

Esta aplicación realizada por Nico, un desarrollador Belga, nos trae todos los datos de Google Analytics al escritorio. No solo permite visualizar los datos con gráficos adicionales a los de la web, sino que además permite exportar los datos en varios formatos (pdf, xml, etc.).

 

report.jpg

Ebay

Ebay ha realizado un cliente para permitir la compra/venta de objetos de sus subastas desde el escritorio. El interfaz no tiene absolutamente que ver con la web y me atrevería a decir que es mucho más limpio y práctico. Realmente esta aplicación es la evolución lógica de la barra de herramientas que hicieron para navegadores hace ya un tiempo. Si con ese plugin consiguieron aumentar el tráfico en la web por 10, no me quiero imaginar lo que puede pasar con esta aplicación en AIR.

 

ebay-desktop.gif

Top100videos

Un aplicación desarrollada por AOL para visualizar los 100 vídeos musicales más populares del momento desde nuestro escritorio. El interfaz es muy bonito y permite encontrar información no solo del vídeo sino del grupo/cantante y comprar el álbum online. Muchos de los vídeos están restringidos mediante geolocalización de forma que solo funcionan en EEUU. Esto mismo pasa con otros websites como Last.fm o Pandora.com. Una lástima la verdad.

 

top100widget.gif

Finetune

Esta fue una de las demos que más me gustó y que más dudas me generó simultáneamente. La aplicación permite reproducir las playlists de nuestra música en finetune pero desde el escritorio. Adicionalmente a esto, permite cargar y reproducir también playlist locales que tengamos en el ordenador. El sistema cargará la lista y se descargará desde Internet la información relevante (título, álbum, artista, etc.) de la canción. Por un lado esto está genial, pero por otro lado da un poco de miedo que la aplicación pueda acceder a información local y la envíe remotamente. Se me ocurren un par de asociaciones y compañías que matarían por tener esa información en su poder.

 

finetune_dt_257x568.jpg

Pownce

Como no podía faltar, una aplicación AIR para recibir y enviar mensajes en Pownce. Tiene un aire muy similar a Twitterrific pero para Pownce. Por mucho que me guste Twitter, no se si este tipo de aplicaciones son saludables en pro de la procrastinación. Lo cierto es que el feeling de la aplicación es muy bueno y según comentó Mike, solo le llevo al desarrollador un par de semanas, teniendo en cuenta que jamás había trabajado con Flex.

 

pownce.jpg

Para colofón, nos hizo una demo de como construir un navegador en Flex con el Flex Builder en 5 minutos que, al menos a mi, me dejó atónito. Nunca había visto el Flex Builder (nunca he desarrollado nada en Flex, de ahí que no lo conociera) y he de reconocer que me impactó mucho la facilidad con la que se pueden hacer aplicaciones muy chulas. Ya existe una beta para Linux así que lo probaré dentro de poco y ya escribiré mis impresiones.

Finalmente Mike comentó que estaban trabajando para incluir soporte P2P en el próximo release de AIR, incluso comentó sucintamente que también estaban experimentando con añadir soporte para VoIP en un futuro. En mi opinión y, a falta de haber probado Silverlight de Microsoft, he de reconocer que AIR me tiene cautivado y que no veo el momento en que saquen la beta para Linux para poder trastear con ello. Creo que es una tecnología que va a dar mucho que hablar y que va a generar una explosión de aplicaciones web (híbridas) para el escritorio dado que facilita enormemente el desarrollo de estas.

Imágenes: cnet.com, desarrolloweb.com, popeater.com, bornontheweb.be, adobe.com

menéame menéame -

tecnologías web

Mar 05 2008

Adobe AIR y FLEX 3 : Presentación en Madrid

Tag: tecnologías webalex @ 1:12 am

DISCLAIMER: Este post es una copia del publicado en Maestros del Web por mi ayer.

 

La semana pasada se presentaba en Madrid la plataforma para Rich Internet Applications (RIA) de Adobe. Esta presentación es air_logo_dimensional_red_w_logotype.pngconsecuencia del release de la versión 1.0 de Adobe AIR (Adobe Integrated Runtime) y FLEX 3 la semana pasada en EEUU. Adobe AIR es un entorno de ejecución que permite a los desarrolladores, emplear tecnologías web para la construcción de aplicaciones que se ejecuten en el escritorio, sin necesidad de un navegador. Flex es un entorno de desarrollo open source que permite la construcción y mantenimiento de aplicaciones web para su uso en todos los navegadores.

La presentación inicial corrió a cargo de Miguel Bada, Director de Marketing de Abobe Ibérica. Puso de manifiesto cifras y datos sobre la compañía y sobre como ha ido innovando a lo largo de sus años; primero fue Postscript, luego Photoshop, Acrobat Reader, Flash y por último Air.

Entre los datos interesantes sobre la compañía cabría destacar los porcentajes de uso de los productos de Adobe. La tecnología Flash está presente en el 98% de los ordenadores del mundo, esto representa unos 3400 millones de instalaciones. Estas cifras lo convierten en el software más extendido del mundo. Por otro lado, el Acrobat Reader está presente en casi el 100% de los ordenadores del mundo. Hoy por hoy Flex lleva ya 560.000 descargas, que no son pocas teniendo en cuenta que Flex está orientado a desarrolladores exclusivamente.

Tras la introducción corporativa tomó las riendas a Mike Downey, platform evangelist de Adobe. Mike se incorporó a Macromedia en 2000 que fue absorbida por Adobe en 2005. Durante ese tiempo Mike fue Senior Product Manager de Flash hasta que en diciembre de 2006 pasó a formar parte del equipo de AIR.

Adobe AIR es una tecnología multiplataforma, es decir, que una aplicación funcionará tanto en Windows como en Mac fx_appicon.pngOS X (Linux también en unos meses) y sin tener que cambiar el código. Esto es una gran ventaja para los desarrolladores. Lo curioso es que Java, en teoría ya es multiplataforma, sin embargo y como puntualiza Mike, existen diversas implementaciones de la maquina virtual de Java, cada una distinta y que evitan que las aplicaciones sean realmente multiplataforma. AIR, al provenir de un mismo fabricante, no tiene ese problema. El instalador es además universal, un solo fichero para todos los sistemas operativos, siendo realmente multiplataforma. Sin embargo, yo me pregunto, ¿qué pasará cuando exista en el mercado distintas versiones de AIR? ¿Mantendrá esta compatibilidad entre distintas versiones?

Uno de los puntos que más me ha gustado, ha sido la explicación del lo que hay debajo de AIR. Los chicos de Adobe han integrado el motor de renderizado WebKit que emplea Safari, junto con el motor de renderizado Flash. Pero no solo eso, sino que al estar ambos motores integrados, se permite llamar a la API de uno desde el otro. Por ejemplo, con AIR podremos llamar a funciones de la API de Flash desde una función en Javascript. No hace falta decir que esto es un gran avance en cuanto a tecnología web se refiere.

Además de la integración de estos dos motores, AIR proporciona una capa de abstracción adicional con varias APIs que no están disponibles desde un navegador:

  • Acceso a la API del sistema de ficheros local
  • Detección de la red (si el equipo está online u offline)
  • Funcionalidad para hacer Drag and Drop desde el escritorio
  • Notificaciones
  • API para controlar la actualización remota de la aplicación
  • Acceso a una base de datos local (Basada en SQLite)

Adicionalmente AIR tiene soporte para distintos codecs de audio y vídeo de última generación como H.264 o HE-AACair_logo_dimensional_red.png (Soporte de audio de alta eficacia) y su máquina virtual es una de las primeras implementaciones del estándar ECMAScript versión 4 que existen. Estas características le dan a AIR una ventaja técnica considerable porque ya incluye las tecnologías y estándares del futuro, haciéndolo una opción muy atractiva si se desea mantener y actualizar una aplicación durante un largo período de tiempo.

Por último agradecerle a Adobe la invitación y a todas las personas que hicieron posible el evento. Nos vemos el día 31 de marzo en el rally On AIR Europe.

menéame menéame -

tecnologías web

Feb 08 2008

Comprimir el código Javascript

Tag: tecnologías webalex @ 5:45 pm

Las aplicaciones web cada vez son más complejas. Cada vez se requiere más código Javascript que permita obtener la funcionalidad deseada. Debido a esta necesidad, y al igual que sucedió con las librerías en los sistemas operyahoo.gifativos, han ido surgiendo varias librerías de código Javascript. Estas, además de descargar al programador de codificar tediosas rutinas para el acceso al DOM y similares, proporcionan una capa de abstracción que permite la portabilidad del código a distintos navegadores. Para los profanos, explico la situación. Hoy por hoy existen diversos navegadores web, siendo probablemente el Firefox, Internet Explorer, Safari y Opera los más importantes. Cada uno de estos navegadores implementa el motor de renderizado web de forma distinta. Algunos de ellos se ciñen a los estándares oficiales, mientras que otros deciden introducir sus propios elementos xhtml, html, etc al margen del resto. Esto genera graves problemas de interoperabilidad para las páginas web. Un diseño que emplea ciertos elementos CSS, es probable que no funcione como se deseaba al visualizar la misma página en otro navegador. Existe una problemática adicional, cada navegador luego tiene sus múltiples versiones que soportan subconjuntos diferentes de los estándares, agravando los problemas de interoperabilidad.

paris-hilton-jquery.jpgLas librerías Javascript proporcionan una capa de abstracción para el programador y le evita tener que programar distintas versiones del mismo código para los distintos navegadores. Dos de las más famosas probablemente sean la librería jQuery y Prototype. Sin embargo, a diferencia de las librerías de un sistema operativo, éstas otras han de ser descargadas (si no han sido cacheadas, lo que sucede el 50% de las veces) por cada usuario que visualice la web. Esto supone un problema de rendimiento, ya que el navegador no comenzará a hacer uso del código Javascript hasta que este haya sido descargado. Cuanto mayor es el tamaño de la librería, peor es el rendimiento.

Para evitar estos problemas de rendimiento, voy a introduciros una herramienta desarrollada por Yahoo para reducir considerablemente el tamaño de estas librerías y maximizar la velocidad de carga de la web. La herramienta, que se llama YUI Compressor es una aplicación Java (jar) a la que le damos el fichero Javascript de entrada y nos devuelve por la salida estándar una versión comprimida de la misma. A continuación os muestro las prueba que he realizado con la última versión de jQuery:

ergosum@braniac:/var/www/js$ ls -la jquery-copy-1.2.2.js
-rw-r–r– 1 ergosum ergosum 95285 feb 8 16:49 jquery-copy-1.2.2.js

ergosum@braniac:/var/www/js$ java -jar yuicompressor-2.3.4.jar jquery-copy-1.2.2.js > jquery-compress-1.2.2.js

ergosum@braniac:/var/www/js$ ls -la jquery-compress-1.2.2.js
-rw-r–r– 1 ergosum ergosum 52435 feb 8 16:51 jquery-compress-1.2.2.js

Como podemos apreciar, al comprimir la librería hemos obtenido una tasa de compresión del 45%, lo cual es increíble. El problema con el algoritmo de compresión es que convierte la librería en algo bastante ilegible. Si deseamos reducir el tamaño del código pero al mismo tiempo mantener algo de coherencia y no ofuscarlo, podemos lanzar la herramienta como sigue:

ergosum@braniac:/var/www/js$ java -jar yuicompressor-2.3.4.jar –nomunge –preserve-semi jquery-copy-1.2.2.js > jquery-compress-1.2.2.js

ergosum@braniac:/var/www/js$ ls -la jquery-compress-1.2.2.js
-rw-r–r– 1 ergosum ergosum 52970 feb 8 17:21 jquery-compress-1.2.2.js

Podemos comprobar la opción para añadirle los puntos y comas el tamaño ha incrementadopbwiki.jpg ligeramente (44.41% de compresión). Sin embargo he de reconocer que no sale mucho más legible que antes. También podemos añadirle el parámetro –line-break n indicándole al parser que debe añadir un retorno de carro cuando llegue a la línea n. Esto lo hace algo más legible pero no mucho más.

Como nota adicional, leía ayer los resultados que han obtenido la gente de PBWiki (muy interesante por cierto) con distintas herramientas para el rendimiento de las librerías. Para jQuery obtuvieron los siguientes datos:

Minified Time Avg Samples
minified 519.7214 12611
packed 591.6636 12606
normal 645.4818 12589

Donde minified corresponde a la salida comprimida mediante la herramienta que hemos comentado, packed corresponde con librerías comprimidas con el empaquetados Packed y por último normal corresponde con la librería tal cual, sin procesar.

Se aprecia claramente como la minified es más óptima que la packed y la razón es porque, aunque con Packed el tamaño del fichero es menor, es necesario realizar un esfuerzo extra para desempaquetar el fichero una vez que llega al navegador, resultando en una suma total de tiempo mayor que en el caso del minified.

En conclusión, una herramienta muy útil que nos permite minimizar el tiempo de carga de nuestras librerías Javascript. Además de la compresión también podemos usar recursos como el mod_gzip para comprimir el archivo desde el servidor a nuestro navegador y seguir ganando en eficiencia.

menéame menéame -

tecnologías web

Ene 10 2008

Ladrones de nombres

Tag: tecnologías webalex @ 11:57 pm

El principal activo de una startup tecnológica es su dominio web. Nombres como apple.com, google.com o facebook.com nos son muy familiares a todos. Sin embargo, el camino hasta dar con el dominio perfecto para la empresa no es nada fácil. Hace años, cuando Internet no era más que cuatro nodos gestionados por entidades académicas, conseguir un dominio era mucho más fácil.

Hoy es muy complicado encontrar un dominio que, por un lado esté acorde con el nombre de la empresa, y por otro esté libre y sea fácil de pronunciar, deletrear y recordar. Para cualquier startup que se precie, este proceso es de obligado cumplimiento y muchas veces muy crítico. Es por ello que cuando todavía no se tiene un dominio, el emprendedor tiende a evitar comentar el nombre de su empresa por si alguien se lo roba.

Debido a ésto, el proceso de registrar un dominio debe mantenerse en secreto y realizarse con mucho cuidado. ¿Por qué digo esto? Pues porque últimamente hay informes de que existen ciertas filtraciones en el proceso de registrado de dominios y algunas empresas se están beneficiando de ello. El marco es el siguiente, el interesado realiza una búsqueda de un dominio, comprueba que no existe, pero cuando al día siguiente va a registrarlo descubre, para su desgracia, que otra empresa ya lo ha registrado a las pocas horas de su consulta el día anterior.

¿Cómo ha sucedido esto? Esto se puede deber a muchas circunstancias que expondremos a continuación. ICANN, el máximo organismo de gestión de Internet, ha emitido una nota (pdf) de aviso sobre estos problemas, que ellos llaman Domain name front running.

Existen varias posibles razones para que nuestra consulta haya sido interceptada, almacenada y vendida a terceros. Entre las más comunes son las siguientes:

  • Usar la barra de direcciones del navegador para comprobar si un dominio existe. Muchos usuarios consideran que si al teclear el dominio en el navegador, sale una página web es que el dominio no está libre. Nada más alejado de la realidad y sobre todo peligroso. Cuando realizamos esta operación, nuestro ordenador está preguntando al servidor DNS de nuestro proveedor si existe el dominio. Algunos proveedores de Internet (ISPs) almacenan estos datos y venden la información de aquellos dominios que se han buscado pero que no existían. De esta forma, en cuestión de horas, estas terceras empresas registran los dominios, con la esperanza de que si realmente te interesa, les pagarás bastante dinero por el. A parte de esto comentar que, el hecho de que no salga una página web no significa que el dominio esté libre.
  • Usar buscadores de tercera división para comprobar si un dominio existe. Por buscadores de tercera me refiero a cualquier buscador que no sea Google, Yahoo o similares (ask.com por ejemplo). Esto es debido a que estas empresas tienen unas políticas de privacidad muy importantes y, en teoría, no van a vender esta información a terceros. Por el contrario, si usamos buscadores dudosos o muy poco conocidos, tenemos muchas probabilidades de que nuestras búsquedas se almacenen y vendan a empresas que se dedican a buscar nuevos dominios.
  • Usar plugins para el navegador o programas gratuitos o de shareware. Existen infinidad de programas que podemos descargarnos y que proporcionan herramientas para gestionar y/o consultar dominios. Mucho cuidado con ellas ya que algunas almacenan la información para luego venderla.
  • Usar portales de entidades no oficiales para consultar los dominios. Un claro ejemplo de este comportamiento es el de Network Solutions y su “mecanismo de protección“. Parece ser que si realizas una búsqueda a través de su portal en Internet, el dominio se registrará automáticamente por ellos durante 4 días.

El gran problema con el protocolo DNS es que se envía en claro por el cable. Cuando digo en claro me refiero a que se transmite la información de la consulta sin cifrar, permitiendo su interceptación y almacenamiento. Si tenemos en cuenta que esa consulta pasa por numerosos routers y servidores hasta llegar a su destino, tenemos un escenario muy peligroso. Lo ideal sería que las consultas whois estuvieran cifradas, sin embargo, el costo computacional de tener que cifrar todas las peticiones dns hace de esta solución algo prohibitivo.

En conclusión, mucho cuidado con que sistema usáis para consultar los dominios y cuidado con los proveedores que venden vuestros datos. Espero que este pequeño articulo les evite a muchos (yo me incluyo) el perder nombres de dominio (con lo que encima cuesta pensarlos) por una tontería.

menéame menéame -