Google y su promesa de un OS sin virus

No hay duda que una de las declaraciones de Google sobre su futuro Sistema Operativo (OS) que más polémica ha levantado ha sido su promesa de que Google Chrome OS resolverá el problema de virus para los usuarios. Dicha afirmación ha sido llamada "idiota" por algunos expertos de seguridad informática como es el caso de Bruce Schneier, Jefe de Tecnologías de BT (British Telecom), cuyas declaraciones difundidas a través de sendos artículos en ReadWriteWeb y PCWorld han levantado tanta polémica en la blogósfera sobre el hecho de que si es posible o no construir un OS a prueba de virus, que el mismo Schneier ha respondido a través de un post en su blog personal titulado "Making an Operative System Virus Free".

El punto principal esgrimido por Schneier para defender la respuesta que diera al periodísta por teléfono, y habiendo aceptado el hecho de no haber leído el comunicado oficial de Google respecto a Chrome OS, es el trabajo de Tesis de Ph. D de Fred Cohen, que en 1986 demostró matemáticamente que es imposible crear un programa de detección de virus perfecto. Pero más importante que las explicaciones dadas por Schneier en su blog, son los comentarios dejados alli.

De los comentarios dejados alli la forma de conseguir un sistema operativo libre de virus pueden catalogarce en 4 grandes ramas:

  • Construir un OS que siga las especificaciones de la NSA SELinux, que se basan en parte en las recomendaciones del famoso "Libro Naranja", que a su vez es la respuesta a la directiva 5200.28-STD del Ministerio de Defensa Americano.
  • Almacenar el OS en un medio de sólo lectura (ROM) cuya única misión es carga el navegador (en este caso el Google Chrome), y todas las aplicaciones residen en la web, lo mismo que los datos.
  • Un sistema de firmas digitales que identifique inequivocamente al autor del software y al propietario de la computadora, ningún software puede ejecutarce si no esta firmado por el dueño de la computadora.
  • Finalmente, la última propuesta dice que no se puede diseñar un OS a prueba de virus porque el lado más débil de la cadena es el usuario, quien suele ser descuidado porque no es responsable del daño que puede causar una computadora infectada y que pasa a formar parte de una botnet. Proponen entonces una solución basada en educar a los usuarios y hacerlos legalmente responsables por el daño causado a otros si su computadora infectada es usada como plataforma para atacar a otros.

Cada una de las propuestas tiene su justicación, pero en lo personal creo que una alternativa en la cuál el SO no es más que el mínimo software necesario para correr el navegador que se vuelve en sí mismo en la plataforma es la manera más segura de evitar infecciones, pues en caso de que el equipo se infectara por alguna razón, la forma más simple de limpiarla sería reiniciar la computadora. Pero en este escenario la responsabilidad de la seguridad se traslada del usuario al proveedor del servicio, lo cuál resulta un problema mucho más fácil de resolver desde el punto de vista de las tecnologías involucradas.

Google Chrome OS día 2

Chrome MacLeodBueno ayer fue el día en que todo el hemisférido occidental se enteró que Google oficialmente declaró la guerra contra Microsoft, algo que debería de ocurrir tarde o temprano ya que como en la famosa película Highlander,  "sólo puede haber uno". Han corrido rios de bits en la blogosferá comentando qué es y que no es Chrome, su impacto en el futuro, como afectará o no a los grandes actores de las TIC, etc.

Opiniones al margen, Google el día de hoy ha posteado un pequeño FAQ sobre que es Chrome, que obviamente a iniciado otra ola de espculaciones, pero lo que esta claro es que por el momento Google ha logrado convocar a su lado a las siguientes empresas: Acer, Adobe, ASUS, Freescale, Hewlett-Packard, Lenovo, Qualcomm, Texas Instruments y Toshiba. El gran ausente es como habremos notado Dell.

Dado que esta batalla de inmortales recien comienza y no termina hasta que uno pierda la cabeza, me pregunto si esta interpretación libre de quien es el Kurgán sera la correcta, ¿Uds. que opinan?

Ballmer Kurgán

Google Chrome OS

Al fin, el día de ayer (7 de julio de 2009) en su blog, Google anunció un nuevo proyecto que tiene por objetivo desarrollar un sistema operativo para la era web, el nombre del proyecto es Google Chrome OS. El mercado objetivo de este OS serán las netbooks con procesadores x86 o ARM y estará basado en un kernel Linux, con un GUI ligero y optimizado. Este será difinitivamente un rival serio para todos los otros OS orientados a netbooks como Moblin o JoliClould, pero especialmente será el rival de Windows 7.

Al parecer la entrada de Bing! al mercado, ha terminado de convencer a Google de que tiene que pelear con Microsoft en donde más daño le puede hacer, su lucrativo mercado de OS. No me extrañaría que el día de hoy en respuesta a esta noticia las acciones de Microsoft bajen de forma significativa, pues la única fuente de ingresos consistentes del gigante de Redmond es justamente su OS y la suite de oficina Office. Todos las demás áreas de la compañía producen muy poco o ningún ingreso.

Aunque no hay en estos momentos un website oficialmente del proyecto, lo más probable es que pronto lo veremos. Hasta ese entonces sólo podremos especular sobre los detalles del nuevo OS que vendrá a redefinir el market share que hasta el momento tenía a Microsoft como el amo y señor absoluto. Al parecer pronto Linux estará en un porcentaje significativo de equipos, aunque no de la forma que muchos de sus usuarios esperaban.

Debo confesar que esta movida de Google me ha sorprendido, yo esperaba que ellos siguieran el camino de promover Android y buscar hacerlo popular en netbooks. Pero el anunciar un proyecto nuevo, enfocado específicamente al sector de las netbook, que es donde actualmente se concentran las ventas, sin lugar a dudas es una apuesta muy alta. Además la promesa de trabajar conjuntamente con los fabricantes OEM para optimizar el OS, es tambien una medida audaz.

UPDATE:
La noticia del lanzamiento del proyecto Chrome OS ha tenido inmensa repercusión en la blogosfera, aquí algunos URLs para leer diversos comentarios:

TechCrunch: "Google lanza una bomba nuclear sobre Microsoft. Y esta hecha de Chrome"
TechCrunch: "Google Chrome: Redefiniendo el sistema operativo"
TechCrunchIT: "Dividan GoogleSoft"
ReadWriteWeb: "10 cosas que morimos por saber sobre Chrome OS"
ArsTechnica: "Google Chrome OS: que significa y por qué es importante"
Bloomberg: "Google desafía a Microsoft con sistema operativo"
AlleyInsider: "Google le declara la guerra a Microsoft (y a Apple)"

Google nos propone hacer la web más rápida

Google ha creado un website dedicado a promover la mejora del rendimiento de la web, el site ubicado en esta URL http://code.google.com/speed/, nos presenta información diversa sobre como de una manera comunitaria, los webmaster podemos hacer la web más rápida. Google no solo propone la adopción de nuevos estándares, pues los actuales fueron desarrollados en una época en que la web aún estaba en su infancia, sino que además recomienda algunas prácticas de programación que permiten hacer las aplicaciones web más rápidas.

De esas mejores prácticas recomendadas por Google, me he permitido traducir/resumir estos tips para hacer las aplicaciones desarrolladas con PHP, lenguaje que uso principalmente para desarrollar mis proyectos web, mucho más eficientes en el uso de los recursos del webserver y como consecuencia más rápidas. El artículo original se llama "PHP performance tips", y ha sido escrito por Eric Higgins uno de los webmasters de Google.

Aquí las recomendadiones:

No copiar variables, si no es necesario.

Algunas veces los novatos en su afan de hacer el código más legible copian variables predefinidas para tener nombres más cortos, esto es malo pues necesitaremos el doble de memoria. Por ejemplo:

MAL: $descripcion = $_POST[‘descripcion’]; echo $descripcion;

BIEN: echo $_POST[‘descripcion’];

Usar comillas simples para las cadenas de texto.

Los interpretes PHP permiten mostrar cadenas de texto con comillas simples o dobles, pero tienen un significado distinto. Las comillas dobles le indican al interprete que revise el contenido y reemplace el valor de las variables, así que si una cadena no contiene ninguna variable es mejor usar comillas simples. Una buena practica es usar concatenación en lugar de comillas dobles. Por ejemplo:

MAL: $output = "Esta es una cadena de texto plano";

BIEN: $output = ‘Esta es una cadena de texto plano‘;

MAL: $type = "mixta"; $output = "Esta es una cadena $type";

BIEN: $type = ‘mixta’; $output = ‘Esta es una cadena ‘ . $type;

Usar echo en lugar de print.

Usar la función echo en lugar de print ofrece más confiabilidad al código y en el siguiente código de ejemplo una mayor performance:

MAL: <?php print($myVariable); ?>

BIEN: <?php echo $myVariable; ?>

No utilizar concatenación dentro de echo.

Muchos programadores novatos no estan concientes de que se puede pasar varias variables a echo separandolas por comas, en lugar de concatenarlas. Usar el punto para concatenar cadenas en el ejemplo a continuación resulta en un pobre prerformance, porque el intérprete PHP debe primero concatenar todas las variables juntas y entonces imprimir el resultado, sin embargo en el segundo ejemplo, el intérprete las imprime todas en el orden dado.

MAL: echo ‘Hola, mi nombre es ‘ . $firstName . $lastName . ‘ y yo vivo en ‘ . $city;

BIEN: echo ‘Hola, mi nombre es ‘ , $firstName , $lastName , ‘ y yo vivo en ‘ , $city;

Utilizar switch/case en lugar del if/else.

Utilice la sentencia switch/case en lugar de la sentencia if/else para una comprobación que involucre una sola variable, esto resultará en una mejor performance y hara el código más fácil de mantener.

BAD: if($_POST[‘action’] == ‘add’) { addUser(); } elseif ($_POST[‘action’] == ‘delete’) { deleteUser(); } elseif ($_POST[‘action’] == ‘edit’) { editUser(); } else { defaultAction(); }

GOOD: switch($_POST[‘action’]) { case ‘add’: addUser(); break; case ‘delete’: deleteUser(); break; case ‘edit’: editUser(); break; default: defaultAction(); break; }

Signos de debilidad en AdSense

El modelo de negocio de las web 2.0 ha sido simple, construir un website con contenido generado por el usuario, atraer suficiente tráfico y monetizar las visitas a través de publicidad. Los pequeños bloggers han contado con AdSense para poder conseguir algun "sencillo" con los anuncios publicitarios que el widget de AdSense muestra en los websites que utilizan el servicio para monetizar su contenido, pero según un interesante análisis que he leído en ReadWriteWeb, los tres elementos claves del éxito de Google, los anunciantes, los productores de contenido y los usuarios están comenzando a experimentar problemas con el modelo que hasta ahora ha representado el 30% de los ingresos totales de Google.

De acuerdo al análisis de ReadWriteWeb, la caída de 3% en los ingresos por AdSense en Google durante el primer trimestre del 2009, esta debida no sólo en parte a la presente recesión, sino también a otros factores como son el hecho de que importantes anunciantes están saliendo de AdSense debido a la poca efectividad de poder convertir clicks en ventas reales. De esa forma sólo los anunciantes menos hábiles en la promoción de productos y servicios a través de la web, aún están usando AdSense para conseguir clicks.

Por otro lado, los websites business to business (B2B), que utilizaban AdSense para monetizar su contenido están abandonando el uso del mismo debido a que los ingresos generados por este servicio de Google no son de consideración, según un artículo publicado en Business to Business Online.

Como si lo anterior fuera poco, Google se ha visto involucrado en una serie de procesos legales donde empresas que utilizan AdSense para monetizar contenidos han iniciado demandas legales contra Google alegando terminación injusta del contraro por parte de Google, la historia de Aaron Greeenspan y su website ThinkLink, ha generado suficiente mala prensa a Google que la obligó a contra demandar. En HuffingtonPost, podrán encontrar la crónica del juicio de demanda a Google y la contra demanda planteada. Luego de leer ambos artículos llegue a la conclusión de que Google no tiene un departamento de servicio al cliente para AdSense lo cual es una pésima idea y lo segundo que concluí es que Google hace mucho dejó atras su lema "Don’t be evil".

Finalmente los usuarios que visitan websites con anuncios AdSense, de acuerdo al artículo de ReadWriteWeb, tienden a ignorar los anuncios de Google, debido a que estos son cada vez menos trascendentes para ellos, a la vez que son visualmente pobres, si los comparamos con otras opciones actuales de publicidad en la web, que tienen por misión capturar la atención del usuario para poder concretar la venta de un producto o servicio, ya que después de todo, ese es el objetivo de un anunciante.

Por el momento las redes sociales no han podido desarrollar un modelo de negocio que pueda competir con AdSense, que sigue dominando el mercado de los contenidos generados por bloggers y pequeñas compañías, pero queda claro que es cuestión de tiempo para que alguien llegue con una mejor solución que satisfaga a estos tres elementos, anunciantes, productores de contenido y usuarios, para que la actual posición de dominio de AdSense sea comprometida.