Steve Jobs: "Lo Open no siempre gana"

En el marco de la presentación de resultados financieros del tercer trimestre de este año, Steve Jobs decidió hablar a la audiencia porque Apple por primera vez ha llegado a una facturación de 20 mil millones de dólares por trimestre. En dicho discurso que puede ser leído en su totalidad en macworld.com, se dedicó a criticar todo lo malo que han hecho sus competidores, en especial Google.

Algunas frases que merecen pasar a formar parte de los dichos de Steve Jobs son estas:

"Google quiere caracterizar Android como "open", y a iOS y al iPhone como "close". Nos parece un poco falso, y nubla la diferencia real entre los dos enfoques. La primera cosa que la mayoría de nosotros pensamos cuando escuchamos la palabra "open" es Windows, que está disponible en una variedad de dispositivos."

"Como sabran, incluso si Google tenía razón, y la cuestión real es "close" frente a "open", vale la pena recordar que los sistemas abiertos no siempre ganan."

"Así que estamos muy comprometidos con el enfoque integrado, no importa cuántas veces Google trate de caracterizarlo como "close". Y estamos seguros de que va a triunfar sobre el enfoque fragmentado de Google, no importa cuántas veces Google trate de caracterizar como " open "."

"Los tablets de siete pulgadas son indefinidas: demasiado grandes para competir con un teléfono inteligente, y demasiado pequeño para competir con un iPad."

A la pregunta de un periodista "¿Cualquier información actualizada sobre su postura con respecto a Flash?", Steve Jobs respondió:

"¿Memoria flash? Nos encanta la memoria flash."

Definitivamente luego de escuchar a Steve Jobs, cualquier persona que ha estado en la industria por más de 5 años, entiende porque recibe tanto criticismo por parte de los técnicos, y por qué sus productos no han entrado al mundo corporativo, donde los hechos pesan más que las declaraciones histriónicas. Actuar vende electrónica de consumo, pero no cambia variables cuantitativas como costo/beneficio, diversificación de proveedores, libre competencia y economías de escala.

 

El fin de una era

Cuando en el año 2002 Internet Explorer era la forma como el 95% de cibernautas se interrelacionaban con la web y en una última maniobra Netscape liberaba su código para dar inicio al proyecto Mozilla del cual desciende Firefox, la gran mayoría pensaba que Microsoft había conseguido una victoria final y definitiva. Pero años de negligencia por parte de Microsoft que se enfocó en querer dominar otras áreas de mercado como juegos, reproductores multimedia y buscadores, hicieron que el super gigante de las TIC perdiera el rumbo y dejara que ascendieran rápidamente otros navegadores alternativos como Firefox u Opera. De la mano de estos nuevos navegadores llegaron innovaciones y nuevos estándares de los que Microsoft se mantuvo al margen hasta finales del 2008, cuando al parecer la marea ya había cambiado, el resultado final ha sido que Internet Explorer ha caído por debajo del 50% del market share según StatCounter, en el pasado mes de setiembre. Lo increíble es que no ha sido Firefox el que está comiendose el market share de IE, sino Google Chrome según se puede ver en el siguiente gráfico:

Browser Market Share

Ya Microsoft había estado dando señales de debilidad desde el lanzamiento de Windows Vista, pero el hecho de que con Windows 7 y toda la buena prensa alrededor del nuevo sistema operativo, aún el 66% de los usuarios sigan prefiriendo Windows XP demuestra la poca capacidad de endose que tiene Microsoft con sus usuarios. La cereza en el pastel para Microsoft ha sido que ayer los analistas financieros han bajado sus espectativas con respecto al futuro de Microsoft, según reporta Business Insiders. Lo interesante son las razones dadas por las cuales Microsoft difícilmente pueda crecer en los años por venir:

  • Es difícil para Microsoft entender la computación para móviles y justamente esa es la dirección del futuro.
  • Los teléfonos Windows 7 ofrecen una pobre combinación, son menos atractivos que los iPhone para el público, pero mucho más caros que la plataforma Android.
  • Bing está creciendo muy lentamente como para amenazar seriamente a Google y Microsoft está perdiendo demasiado dinero para mantener ese pobre crecimiento.
  • Microsoft podría bajar el precio de Office, debido a la competencia impuesta por Google Docs.
  • Microsoft tiene problemas para atraer o mantener personal talentoso.

Pero Microsoft no es el único que está perdiendo control del mercado, Apple por otro lado también ha tenido una serie de malas noticias en los últimos días como por ejemplo el hecho de que según Nielsen, la plataforma Android es ahora el smartphone más vendido en Estados Unidos, aquí un gráfico que nos muestra el rápido ascenso de los Android:

Android-iOS-Blackberry

Además el excesivo control que quiere imponer Steve Jobs a la plataforma de anuncios en iPhone está haciendo que algunos anunciantes como es el caso de Adidas, sencillament decidan dejar de anunciar. Blackberry parece estar sin brújula como para reaccionar frente al avance de los Android y el gerente de Nokia que estaba a cargo de MeeGo ha renunciado dejando acéfalo el proyecto y con Eric Schmidt (CEO de Google) entrándo rápidamente en contacto con el CEO de Nokia para tratar de promover una versión Android de Nokia, según reporta TechCrunch.

Hay un límite para la iReligion, como me gusta llamar a Apple, ya que la compañía de la manzana no tiene clientes, tiene fieles devotos. Según estadísticas es muy poco lo que crece la plataforma iOS, por lo general la venta se debe a upgrades, es decir el 75% de las ventas de iPhone4 fue para personas que ya tenían un iPhone anteriormente, lo mismo pasa con todos los productos de la línea Apple, que se caracterizan más por su marketing alrededor del producto que por sus ventajas técnicas respecto a productos de la competencia.

Estamos siendo testigos de un cambio radical en el sector TIC, vamos a pasar de un entorno PC-céntrico a un entorno móvil-céntrico y las dos compañías más representativas de la era PC, me refiero a Microsoft y Apple, están perdiendo aceleradamente el control del mercado del futuro y justamente la clave del éxito del sector TIC, no está basado en expansión sino en anticipación.

El ascenso del Programador Ciudadano

Con la llegada de los blogs y el nacimiento de la web 2.0 llegó lo que muchos han llamado el "periodismo ciudadano", es decir cualquiera con acceso a Internet puede crear un blog y comentar algún tema de actualidad o hacer una denuncia, sea esta fundada o no. Lógicamente los periodistas en un principio ignoraron todo este movimiento y lo llamaron chime 2.0, siete años después todo medio de prensa que se respete tiene ahora una sección de blogs, que suele ser la más leída de sus secciones web.

Muy bien desarrolladores de aplicaciones, ya sean estas de escritorio, web o de móviles, preparence que el "programador ciudadano" (en inglés Citizen Developer) ha llegado y amenaza con crear el mismo tipo de caos que crearon los peiodistas ciudadanos. Según un informe de Gartner Group publicado hace un año, se espera que para el 2014, el 25% (una de cada cuatro) aplicaciones habrá sido escrita por un programador ciudadano. Vista la actual aparición de herramientas que permiten crear aplicaciones completamente funcionales y casi sin escribir una sóla línea de código como pueden ser App Inventor, Application Craft o Appcelerator Titanium, alguien podría pensar que Gartner es muy conservativa en sus proyecciones y ese número podría ser alcanzado antes.

 Pero que es un programar ciudadano o como entiende Garnet el término, pues del documento presentado por ellos extraigo esto:

"Future citizen-developed applications will leverage IT investments below the surface, allowing IT to focus on deeper architectural concerns, while end users focus on wiring together services into business processes and workflows,” said Eric Knipp, senior research analyst at Gartner. “Furthermore, citizen development introduces the opportunity for end users to address projects that IT has never had time to get to — a vast expanse of departmental and situational projects that have lain beneath the surface"

Es decir en teoría el programador ciudadano es el usuario elevado a la categoría de desarrollador, para ello debe contar con herramientas 100% gráficas que le permitan abordar el desarrollo de aquellas aplicaciones que necesita para automatizar su labor diaria y dejar al departamento TIC a cargo sólo de la infraestructura, liberandolo del desarrollo de apliaciones pequeñas que por lo general nunca son atendidas.

Esta no es la primera vez que escucho este tipo de pronosticos, recuerdo que cuando apareción dBase II y luego dBase III, una nueva generación de "desarrolladores" apareció en las empresas, claro todos ellos con muy poca formación en los fundamentos de la programación y que dejaban mucho que desear tanto en el diseño de las aplicaciones, como en la seguridad de las mismas. Pero la masa de programadores aumentó.

Luego con la llegada de Windows y VisualBasic, otro gran número de "desarrolladores" se sumo a la mezcla. Otra vez, los mismos problemas de falta de criterios en el diseño de las estructuras internas de las aplicaciones y de los datos que daban sustento a las aplicaciones, así como muy pobres estándares de seguridad.

En fin en cierta forma, los problemas de este tipo de aplicaciones desarrolladas por usuarios con herramientas de programación fáciles de usar, estaban circunscritos a un entorno local. El desarrollador ciudadano ahora aspira a crear aplicaciones web accesibles por casi todo el mundo, así que cuando esto llegue ya me imagino explicandole a un programador ciudadano que significa "escalabilidad".

Lo que es inevitable es que el programador ciudadano llegue y lo cambie todo, los factores que lo traeran al mundo TIC, son cuatro:

  • Personalización en masa: El programador ciudadano sabe cómo personalizar una solución a sus propias necesidades y preferencias. Piense en su cuenta de facebook, lo más probable es que usted ha tomado todos los componentes de Facebook (o sus partners) y ha compuesto una página que ofrezca una solución que satisfaga sus necesidades e intereses personales. En una sola plataforma hay 500 millones de soluciones facebook diferentes – ¡todos creados por los programadores de los ciudadanos!
  • Computación en la nube: En los viejos tiempos que se necesitan para instalar y configurar tus propios servidores y bases de datos, así como la infraestructura de red, incluso antes de que pudiera empezar a pensar en la aplicación real que se va a construir. Con la disponibilidad de recursos en todas partes de la nube que hay hoy en día, un programador ciudadano se pueda concentrarse en la funcionalidad empresarial que desee para la aplicación que planea desarrollar y no tener que preocuparce acerca de la versión de la base de datos es necesario instalar. Un gran libro que ayuda a comprender el impacto de la computación en la nube antes de que fuera llamada computación en nube fue  "The Big Switch" por Nicalas Carr.
  • Los cambios en la demografía: Como resultado de la jubilación de los baby boomers, y la maduración de los "nativos digitales" significa que la fuerza de trabajo  espera una tecnología para el consumismo de la misma tecnología, por lo tanto no es una tendencia de estas personas a "es sólo trabajo", es su forma de vida.
  • La evolución de herramientas: Como consecuencia de la mejora continua de las herramientas de desarrollo y su facilidad de uso, los programadores ciudadanos pueden crear aplicaciones de negocio cada vez más complejas sin tener que depender de los siempre escasos recursos del departamento TIC.

Así que si eres programador o tienes una empresa que se dedica sólo al desarrollo de aplicaciones, preparate porque vas a descubrir que sintieron los periodistas y los periódicos con la llegada de la web 2.0. Y los que son cyberdelincuentes, estarán de plácemes con la proliferación de aplicaciones de pobre diseño y peor seguridad.

Convirtiendo un router de $60 en uno de $600

Tal vez la mejor de todas las convinaciones posibles en el mundo TIC es cuando se usa un commodity hardware con un Open Source software, ese es el secreto tras la mayoría de exitosas empresas de nuestros días como Yahoo!, Google, Facebook o Twitter. Por otro lado así como los PC se convirtieron en un commodity, los routers de nuestros días también se han convertido en un commodity, todavía recuerdo cuando pagamos $5000 por un Cisco 2501 en 1997 cuando Red del Norte se convirtió en el primer CPI (el nombre que tenían los ISP en InfoVía) de Chiclayo.

WRT54GHay una gran variedad de routers, desde los super baratos como los TRENDnet hasta los más sofisticados Pepwave, pero el común denominador de estos equipos es que cada uno trata de ofrecer una solución integral basada en un sofware propietario, pero muchas veces usando un hardware bastante estándar (procesadores MIPS). Uno de los primeros fabricantes que integró Linux como el sistema operativo de sus routers fue Linksys (una subsidiaria de Cisco) en su modelo WRT54G, aunque luego lo cambiara por VxWorks, alegando ahorro de costes.

Sin embargo muchos entusiastas han creado frimware alternativos basados en Linux para estos routers basados en los procesadores Broadcom, aunque luego han ido incorporando soporte para otros routers también. Hay varias distribuciones Linux (frimeware) especializadas en routers, entre ellas DD-WRT, OpenWRT y Tomato, tan sólo por mencionar las más famosas.

Pero en particular quiero comentar sobre DD-WRT, una distribución Linux bastante poderosa que puede convertir un barato router WRT54GL de $60, en un poderoso y flexible router de $600, lo anterior no es exageración.

En adición a características interesantes como soporte a IPv6, la posibilidad de hacer overclocking del procesador del router, de aumentar la potencia de transmisión del equipo hasta 251 mW o habilitar un acceso ssh al dispositivo, una de las características más apreciadas puede ser el hecho de que el router puede ser usado como un load balancer de dos líneas WAN, según he encontrado en esté post. Pero por si todo eso fuera poco, en la versión estándar (std) del frimware DD-WRT en la opción de QoS podemos asignar ancho de banda basado en el MAC address, algo que era posible hasta no hace mucho sólo con caros routers Cisco.

Al ser el proyecto DD-WRT Open Source, es posible personalizarlo a nuestro gusto, pero si odiamos hacer todo otra vez, he encontrado esta práctica herramienta llamada Firmware Modification Kit (Open Source también), que permite agregar/remover paquetes del firmware o incluso cambiar themes y logos de la interface web para controlar el router, con lo cual los amigos de presumir sus "conocimientos" en tecnología podrían tener frimwares con sus nombres en ellos.

Lo dicho, si desean convertir su router de $60 en uno de $600 usen el firmware del proyecto DD-WRT, ojo no es la única opción pero es de la que puedo comentarles por el momento con confianza porque la he probado y definitivamente me siento muy satisfecho de haber actualizado a este firmware. Voy a continuar probando otras opciones como la OpenWRT y Tomato, sobre las que ya les comentaré luego.

Clonando instalación Debian (o cualquier distro que use dpkg)

Definitivamente el sistema de paquetes .deb es de lo mejor, y su herramienta de administración dpkg permite la fácil instalación/desinstalación de paquetes. Por otro lado las tecnologías de virtualización como Xen o VMWare facilitan tremendamente el desplegar servidores de prueba, el problema muchas veces es cuando se debe pasar de la fase de prueba a la implementación, muchas veces olvidamos llevar un control de que paquetes o que seteos aplicamos a los servidores de prueba, con lo que muchas veces no queda otra más que escribir un pequeño script que colecte los paquetes instalados y luego otro que haga la instalación en el nuevo entorno, pero he encontrado una estrategia mucho más sencilla en el blog PR0GR4MM3R, que sólo necesita 3 simples instrucciones.

Primero, generar un listado de todos los paquetes del sistema y su estado actual con el comando:

origen# dpkg –get-selections > lista_paquetes.txt

Luego, copiamos este archivo de texto al nuevo servidor que desamos tenga la misma configuración y ejecutamos los siguientes comandos:

destino# dpkg –set-selections < lista_paquetes.txt

destino# apt-get dselect-upgrade

Listo, con eso ya tenemos todos los paquetes que fueron instalados en el servidor "origen" en el servidor "destino". Esto funciona además de en Debian, en todas las distribuciones que usen el sistema de paquetes .deb como es Ubuntu y sus derivados.