BlackBerry: El smartphone sin identidad

En el día de ayer RIM anunció a BlackBerry BBX, que según ellos combina lo mejor de BlackBerry y QNX, el OS para su BlackBerry Playbook. Todo bien, pero con esto hablamos de 3 sistemas operativos móviles ofertados al mismo tiempo por un solo fabricante.

Hace pocos meses RIM presentó el “tan esperado” BlackBerry 7, que a la larga no fué más que un simple theme con algunas mejoras del BlackBerry 6… que a la vez también es un theme del BlackBerry 5. Ese es precisamente mi punto, ¿cómo una empresa “madura” ha sabido ser tan inconsistente con tantos OS’s? Creo que precisamente esa situación es lo que ha llevado a RIM a estar en la cuerda floja económica por la que actualmente atraviesa, claro, además de mal manejo administrativo y estratégico.

Comparado con otros OS mobiles, BlackBerry ciertamente es un atraso. Aparte a elegancia y conectividad online, muchos usuarios buscan un OS simple de usar, cosa que irremediablemente BBOS no ofrece. RIM lo entendió así y luego de comprar QNX el año pasado y someterlo a rediseño, presentó un producto (BlackBerry Playbook) que realmente podía competir contra los demás.

Muchos entendíamos que los siguientes modelos a lanzar vendrían con QNX, pero saltan con la estupidez de presentar el atrasado BlackBerry 7.

Hace 4 años atrás el fuerte más importante de BlackBerry era la conectividad. Poder leer tus correos o navegar internet era un pro. Aunque existían otros móviles con capacidades similares, BlackBerry seguía siendo el rey… hasta que Apple lanzó el iPhone. Conectividad, correos, música, tres pros que hicieron tambalear la economía de RIM, quien vió sus ventas decrecer.

Ya está bueno de tantas majaderías. Aún no le veo sentido a la estratégia de lanzar nuevos OS’s si BlackBerry ya tenía QNX. Debieron enfocar todos los nuevos productos a ese sistema operativo. Deben adaptar QNX a smartphones y no sólo para tabletas y enfocarse en precios que sean más atractivos para los clientes. Está difícil que RIM recupere su mercado si no reduce los precios de sus modelos y redefine el OS que incluirán sus smartphones y es aún más difícil si pretenden enfocar QNX a sólo tabletas.

Cierto, las tabletas han solucionado un nicho. Muchos fabricantes quieren sacar sus modelos y de allí la aparición del Play Book, pero si el fuerte de RIM es un modelo móvil capaz de leer correos y navegación y además con precios económicos en sus planes, ¿por qué cometer la estupidez de pretender entrar a un mercado que sabes no puedes competir? Baja los precios de los equipos, mejora el BlackBerry OS, mejora el diseño de los modelos, introduce novedades que den valor al producto y olvidate de la competencia. Crea valores que pueden interesar al cliente común, no te enfoques en qué está haciendo la competencia y pretendas emularlo. Esa es la belleza del éxito de Apple.

Espero que a partir de este BBX finalmente la empresa lleve ese enfoque. Ya está bueno de tantas estupideces que a la larga confunden al usuario que busca un smartphone. Tantos tipos de modelos-os’s sólo provoca buscar modelos de la competencia que están claramente más definidos, como iOS y Android.


Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'brunelleschi_rel_cagegory_fix' was given in /home/junihh/public_html/wp-includes/plugin.php on line 170
Posted in
| Tagged , , , , , , , , | 1 Comment

Lanzar automáticamente XAMMP al iniciar MacOS

Si eres como yo, que prefieres hacer las pruebas locales de tus proyectos en PHP en vez de un servidor online y además usas MacOS y XAMPP, de seguro te habrás hecho en algún momento la pregunta de cómo iniciar XAMPP automáticamente saltándote el latoso proceso de hacerlo a través del “XAMPP control.app”. Acá te dejo los pasos.

Lo primero es crear un archivo .plist llamado “org.apachefriends.xampp.plist”, que guardaremos en “/Library/LaunchAgents/” con el siguiente código:

< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>KeepAlive</key>
	<true />
	<key>Label</key>
	<string>org.apachefriends.xampp</string>
	<key>ProgramArguments</key>
	<array>
		<string>/Applications/XAMPP/xamppfiles/xampp</string>
		<string>start</string>
	</array>
	<key>QueueDirectories</key>
	<array />
	<key>RunAtLoad</key>
	<true />
	<key>WatchPaths</key>
	<array />
</dict>
</plist>

Con esto damos las instrucciones a MacOS X de lanzar XAMPP al iniciar el sistema, pero por razones que aún no logro localizar, MacOS lo ignora. La solución es usarlo en conjunción con un applescript que forza el lanzado vía el shell.

Para esto abrimos “AppleScript Editor.app”, localizado en “/Applications/Utilities/” y escribimos la siguiente línea:

do shell script "launchctl load /Library/LaunchAgents/org.apachefriends.xampp.plist" password "CLAVE-DE-ADMINISTRADOR" with administrator privileges

Asegúrate de sustituir CLAVE-DE-ADMINISTRADOR por la clave que usas como administrador de la Mac. Lo guardas en Documents o donde gustes como application y finalmente lo agregas al “Login Items” (System Preferences > Users & Groups) para forzar el lanzado.

Listo, puedes reiniciar la Mac y probar. Al lanzar “XAMPP control.app” verás que ya estarán activos Apache y MySQL, así como también puedes escribir http://localhost en tu navegador.


Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'brunelleschi_rel_cagegory_fix' was given in /home/junihh/public_html/wp-includes/plugin.php on line 170
Posted in
| Tagged , , , , , , , , | Comments Off

Capturar texto con innerHTML, innerText, textContent

Uno de los usos más comunes en javascript además de los bucles, es la captura de texto dentro de un objeto en el markup. Para el efecto usamos innerHTML o innerText.

Supongamos tenemos en nuestro HTML lo siguiente, del que queremos extraer únicamente el texto:

<div id="txt">
	<p>El caballo naranja de <strong>Napoleón Bonaparte</strong>.</p>
</div>
<script type="text/javascript">
	(function(){
		var ob = document.getElementById('txt');
		console.log( ob.innerHTML );
	})();
	// RESPUESTA: <p>El caballo naranja de <strong>Napoleón Bonaparte</strong>.</p>
</script>

Como vemos devuelve el texto junto con los tag de HTML, que no es precisamente lo que buscamos, lo que forza a tener que hacer algunos “trickys”. Pare este caso tenemos objeto.innerText:

<script type="text/javascript">
	(function(){
		var ob = document.getElementById('txt');
		console.log( ob.innerText );
	})();
	// RESPUESTA: El caballo naranja de Napoleón Bonaparte.
</script>

Ahora, todo funciona muy bien con innerText (hasta en Internet Explorer 6, que es mucho decir), pero curiosamente no tenemos el mismo resultado con Firefox por alguna razón desconocida, lo que nos forza a usar objeto.textContent. Lo preferible es aplicarlo de forma que el propio script decida cuál método usar:

<script type="text/javascript">
	(function(){
  		var it = document.getElementsByTagName('body')[0];
		var ob = document.getElementById('txt');
		console.log( (it.innerText != undefined) ? ob.innerText : ob.textContent );
	})();
	// RESPUESTA: El caballo naranja de Napoleón Bonaparte.
</script>

Es curioso que Firefox, uno de los navegadores considerados “modernos”, arrastre esta deficiencia desde Netscape, pero lo más irracional de todo es que aún en la versión 7 (disponible al momento de escribir este artículo) en pleno 2011 se presente el mismo problema. ¿Olvidado? No tiene razón de ser.


Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'brunelleschi_rel_cagegory_fix' was given in /home/junihh/public_html/wp-includes/plugin.php on line 170
Posted in
| Tagged , , , , | Comments Off

Ferretería Americana: ¿Buen o mal servicio?

Todo cliente en algún momento se toca con empresas o empresarios que le ponen la vida “en china”, por pequeñeces que se pueden controlar y superar fácilmente.

Tengo poco más de 5 meses sin audífonos para mi móvil. Hoy decido entrar a Ferretería Americana de la Kennedy por unos, pero como su horario laboral es a partir de las 9AM me veo forzado a esperar. No tengo mucho tiempo disponible en el día, así que esperar los 15 minutos que faltaban no me afectarían.

En todo momento estuvo parado tras la puerta, dentro de la tienda, un empleado quien parecía ser el encargado de abrir. Faltando sólo un minuto en mi reloj me acerco a la puerta y le pregunto a qué hora abren, respondiendo que a las 9:00. Le digo que sólo falta un minuto, cuáles razones habían para no abrir. Me dijo simplemente no con la cabeza.

Analicemos el caso hasta acá. Cierto, es mi culpa haber esperado. Cierto, ellos abren “oficialmente” a las 9:00, pero entiendo que si hay más clientes esperando (que eran como 10 personas además de mi), entonces ¿QUE RAZONES HAY PARA NO OBVIAR LA FALTA DE ESE MALDITO MINUTO?. Por lo visto ese empleado parece ignorar que en sólo 5 segundos puede hasta desaparecer todo un planeta.

Quizás estoy exagerando en lo que reclamo, vamos, es sólo un minuto, pero si por sólo un minuto un empleado no va a ofrecer un servicio, entonces no merece su puesto. Ferretería Americana es una empresa que vende productos y con ello SERVICIO.

La mala interpretación de la forma como debe manejarse en su puesto un empleado deviene en una mala imagen para la empresa. Algo tan simple como ese dichoso minuto resulta para mi razón más que suficiente para no volver a Ferretería Americana y todo gracias a un empleado que no conoce lo que se denomina “servicio”.

Los errores de los empleados por mala interpretación los paga la empresa, pero también esta tiene su parte de culpa porque debe asegurarse de entrenar apropiadamente a los empleados que se manejan directamente con los clientes.

Cada quién tendrá su impresión de lo que es Ferretería Americana, pero en este momento la mia no es para nada agradable. Alguien con un mínimo de sentido común habría aceptado abrir la puerta. Pero ni modo, al final soy un cliente más… o un cliente menos.


Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'brunelleschi_rel_cagegory_fix' was given in /home/junihh/public_html/wp-includes/plugin.php on line 170
Posted in
| Tagged , , , | 4 Comments

Desmitifiquemos HTML5

HTML5 es la última revisión en el que se encuentra laborando la W3C. Propuesto hace poco más de 4 años atrás con la finalidad de poder crear una librería más semántica introduciendo etiquetas más acomodadas al uso común.

Etiquetas tales como “header”, “nav”, “section”, “article”, “aside”, “details”, “audio”, “video”, “time”, “progress”, “canvas”, “footer”, entre otras, son las que ahora definen la forma como escribimos HTML.

Si con HTML4.1 teníamos que hacer lo siguiente para definir el listado de navegación de una web:

<ul class="nav">
	<li><a href="#">Item 1</a></li>
	<li><a href="#">Item 2</a></li>
	<li><a href="#">Item 3</a></li>
</ul>

Ahora disponemos de una etiqueta específica para el efecto en HTML5:

<nav>
	<div><a href="#">Item 1</a></div>
	<div><a href="#">Item 2</a></div>
	<div><a href="#">Item 3</a></div>
</nav>

Como ven, más simple no puede ser. Gracias a la nueva etiqueta “nav” no se necesita aplicar una clase al objeto directamente, porque podemos apuntar a este desde nuestro CSS.

Personalmente me inclino por HTML5. Ya he desarrollado proyectos basados en esa modalidad y continuaré con él, porque no podemos seguir cercenando camino al desarrollo de la tecnología a causa de que ciertos navegadores (léase Internet Explorer 8 y anteriores) no lo soportan.

Esto viene a la sazón de leer los comentarios de un artículo más de muchos dedicados al tema, en los que la gente todavía insiste en no recomendar su uso dizque porque aún no es un estándar.

Es cierto, HTML5 no es un estándar y se encuentra en estado de “draft” en la W3C, pero el primer error que puede cometer alguien con una tecnología, es no confiar en ella aunque le convenga. Una tecnología se convierte en estándar cuando es consumida y/o usada de forma masiva. Si se detiene ese proceso, el desarrollo o mantenimiento de esa tecnología se estanca y desaparece.

Vamos, si se estanca HTML5, se estanca también la belleza que aportan WebGL, videotag, canvas, CSS3 y otros tantos que aportan más que tecnologías “dinosáuricas” como Flash.

Es tiempo de cambiar esa mentalidad. El problema con la falta de compatibilidad de los navegadores ya no es por los propios navegadores, sino por los visitantes a nuestros websites. Algo que debemos introducir en nuestro mecanismo de trabajo es la forma de cómo enrutar los visitantes a que usen navegadores modernos. No podemos permitir detener el desarrollo de una tecnología simplemente porque existen muchos usuarios con navegadores antiguos.

Existen dos alternativas para lograr la compatibilidad de nuestros proyectos con los visitantes, que se pueden usar de forma independientes o combinadas:

  1. Presentando algún mensaje como browser-update que incite a cambiar o actualizar el navegador por razones de peso, como seguridad, velocidad o una mejor experiencia de usuario.
  2. Usar javascripts como Modernizr, que generan los objetos del DOM necesarios para que navegadores antiguos puedan entenderse con las nuevas etiquetas de HTML5.

Siempre he preferido lo simple, lo menos complejo y que menos tiempo tarde en cargar, porque lamentablemente Modernizr u otros scripts del mismo tipo tienden a ser ligeramente pesados, tornando el tiempo de rendering de la página más extenso. Personalmente sugiero utilizar el script que genera los elementos del DOM:

<script type="text/javascript">
/* < ![CDATA[ */
 
(function(){
	var obs = ['header','nav','section','article','abbr','aside','hgroup','figure','bb','datagrid','dialog','eventsource','details','audio','video','time','mark','meter','summary','output','progress','figcaption','datalist','canvas','footer'];
	for (var i = 0, c = obs.length; i < c; i++) document.createElement( obs[i] );
})();
 
/* ]]> */
</script>

Extremádamente liviano y sin exigerle muchos recursos al navegador. Lo aplicamos en el <head> de la página para que los elementos se creen antes de cargarse el resto del markup. Las nuevas etiquetas de HTML5 son objetos inexistentes en HTML4.1, por lo que navegadores como Firefox 2.1 e Internet Explorer 5-6-7-8 no las reconocen. Al crear tales etiquetas a través del DOM antes de cargarse el HTML, cubrimos parte de las deficiencias que puedan provocar esos navegadores inútiles en nuestro proyecto.

Es tiempo de cambiar la mentalidad. Si damos el primer paso en desmitificar que HTML5 todavía no es un estándar, en el proceso cambiamos la mentalidad de los visitantes para que actualicen sus navegadores.


Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'brunelleschi_rel_cagegory_fix' was given in /home/junihh/public_html/wp-includes/plugin.php on line 170
Posted in
| Tagged , , | 1 Comment

Nuevo esquema para una web más semántica

Siempre he creido en la estandarización. Esta inicia cuando los grandes competidores logran acuerdos que a la larga benefician a los usuarios-clientes finales. La web semántica apunta hacia ese norte y cada vez más vemos cómo empresas al nivel de Google, Microsoft Bing y Yahoo apoyan esas iniciativas.

Primero conozcamos cómo definen una web semántica: Añadir metadatos semánticos que se acerquen más al lenguaje humano. Esa fué la idea tras HTML5.

El esqueleto básico de una web siempre será un cabezal (header), un listado de enlaces de navegación (navigation), cuerpo del contenido (content) y pié de página (footer). Así, de necesitar maquetar una página y aplicar los CSS, utilizaríamos un esquema similar a este:

< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
	<title>Título de la página</title>
</head>
<body>
 
	<div class="header">
		<!-- El cabezal del site -->
	</div>
 
	<div class="navigation">
		<!-- Los enlaces de navegación -->
	</div>
 
	<div class="content">
		<!-- El contenido de la página -->
	</div>
 
	<div class="footer">
		<!-- El pié de página con los créditos del autor -->
	</div>
 
</body>
</html>

Aunque “class” es un atributo natural del objeto “div”, designar clases a los objetos sin aplicarlas directamente en éstos es lo que se pretende lograr con web semántica, de manera que cada grupo de objetos en el markup tenga su propio nombre de tag. Así, bajo el mismo esquema anterior pero con HTML5 tenemos:

< !DOCTYPE html>
<html>
<head>
	<title>Título de la página</title>
</head>
<body>
 
	<header>
		<!-- El cabezal del site -->
	</header>
 
	<nav>
		<!-- Los enlaces de navegación -->
	</nav>
 
	<article>
		<!-- El contenido de la página -->
	</article>
 
	<footer>
		<!-- El pié de página con los créditos del autor -->
	</footer>
 
</body>
</html>

Como vemos, el atributo “class” sobra, ya que podemos apuntar directamente al objeto sin necesidad de aplicar id’s o clases, obteniendo un HTML más cómodo de maquetar.

Otra ventaja de la web semántica es que los “search engine’s” pueden indexar directamente el contenido sin tener que acudir a un algún algoritmo que reconozca qué es de valor o no en dicho contenido.

Pero, ¿reconocer contenido de valor o no? Bueno, nadie conoce a ciencia cierta cómo funciona el indexado de un search engine. Google (por usar un ejemplo), ofrece recomendaciones sobre cómo optimizar nuestra web para lograr un indexado exitoso, pero esas recomendaciones realmente no garantizan los primeros puestos en los resultados de búsqueda porque si nos excedemos, podemos terminar fuera de los resultados sin ningún tipo de aviso por parte del buscador. O sea, es una ruleta rusa.

Ahora, HTML5 ayuda bastante a acercarse a web semántica, pero parece que no es suficiente. Parece que <article> no es totalmente claro a los buscadores, así que surgió una alternativa apoyada por Google, Bing y Yahoo que apunta a convertirse en el nuevo SEO de toda web: Schema.org

El modelo de Schema.org tiene sus ventajas, ya que al ser más específico sobre qué es cada objeto en el markup, amplía el rango de tipos de datos para los microformatos. Además, es mucho más fácil utilizar el DOM sin necesidad de aplicar id’s.

Schema.org está compuesto de una amplia jerarquía de dataypes que manejan números, textos, urls, direcciones, fechas de cumpleaños, libros, eventos, películas, escultura, pintura, etc. Se usan tres atributos básicos (itemscope, itemtype, itemprop) para declarar los tipos de datos en el markup. Bajo esta modalidad tenemos:

<div itemscope itemtype="http://schema.org/Article">
	<h2 itemprop="headline">Nombre del artículo</h2>
	Escrito por <span itemprop="author">JuniHH</span>
	Este es el contenido del artículo.
	<meta itemprop="interactionCount" content="UserComments:78"/>
</div>

Puede parecer confuso de primer vistazo, pero luego de profundizar un poco vemos la riqueza del conjunto, necesario para ser considerado como un estándar. Personalmente apuesto a esta alternativa, que a todas luces apunta a ser el nuevo SEO. Actualmente se encuentra en condición de “draft” y pasarán algunos años antes que los desarrolladores lo adopten, pero es una propuesta muy bien aterrizada y hacia donde se redirigirá el nuevo markup. Ya sucedió con sitemaps.

Bajo la temática de Schema.org, el éxito del indexado recae nuevamente en las manos del desarrollador del site y no queda a criterio de una simple máquina de búsqueda, que como antes mencioné, es una ruleta rusa.

Web oficial: Schema.org
Listado de datatypes: The type hierarchy


Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'brunelleschi_rel_cagegory_fix' was given in /home/junihh/public_html/wp-includes/plugin.php on line 170
Posted in
| Tagged , , , , , , , , , , , | Comments Off

Las apps que si debes usar con Lion

En el artículo “Las bellezas de Lion y las babosadas que se dicen” fuí muy explícito acerca de lo que pienso sobre ciertas novedades de Lion, como Launchpad, AirDrop o esconder el Library Folder del usuario. ¿Qué tal algunas utilidades que cubran lo que a mi parecer son deficiencias que no debieron estar?

Una de las cosas que más gusto es la probar utilidades y aplicaciones que me pueden servir. Conozco muchas, pero recomendaré exclusivamente las que a mi modo de ver REALMENTE responden a lo que necesitamos:

DESINSTALADOR DE APPS

Como mencionaba en el artículo, Launchad sirve tanto como lanzador de aplicaciones y como desinstalador. Para esto último puedo recomendar tres: AppCleaner, AppZapper y AppDelete, pero de preferencia me inclino por AppCleaner.

No sólo me deja desinstalar aplicaciones “normales”, sino también Widgets del Dashboard, System Preferences y plugins de navegadores. Otra ventaja es que el desarrollador lo actualiza con cierta frecuencia, cosa que no pasa con AppZapper, que está prácticamente olvidado.

LANZADOR DE APPS

Abrir una utilidad en la cual debo elegir de un gran grupo de aplicaciones la que necesito no es para nada productivo. En cambio, me inclino por los lanzadores con la temática de escribir el nombre, de manera que con dos o tres carácteres y presionar “Enter” ya puedo lanzar la aplicación en cuestión. Más productivo y rápido no puede ser.

Como lanzador de aplicaciones puedo recomendar cuatro: Spotligh, Quick Search BoxAlfred.app y QuickSIlver.

Spotlight ya viene integrado en el sistema y aunque es realmente bueno, aún con las nuevas actualizaciones a que fué sometida en Lion todavía siento que le falta “algo”.

Quick Search Box, desarrollado por Nicholas Jitkoff, el mismo que desarrollo QuickSilver, es uno de los mejores lanzadores que he probado, pero lamentablemente ambos no han tenido actualizaciones significativas que hagan la pena continuar con su uso, por lo que en este acapite recomiendo con toda holgura a Alfred.app. Se comporta muy parecido a Quick Search Box y mantiene actualización frecuente del desarrollador.

TRANSFERIR ARCHIVOS VIA WI-FI

Esa fué la idea en la que se basó AirDrop, pero si para recibir un archivo necesito tener activo una ventana, automáticamente la belleza se pierde. Lo ideal es una utilidad que esté disponible todo el tiempo, que con sólo mover el archivo hacia ella pueda hacer la transferencia. Para ese efecto no hay que buscar mucho: DropCopy.

AJUSTES QUE NO FUERON NECESARIOS

Las primera pregunta que me hice luego de ver a iCal y Address Book con el “lavado de cara” recibidos fué: ¿Pero y es que acaso los desarrolladores de Apple están volviendo atrás copiando las porquerías de Windows?. Bueno, todos sabemos lo feo que era Windows XP y aunque se que Apple pretendió estandarizar el diseño de iCal y Address Book con sus similares en iOS, la jugada le quedó pésima.

Al menos existe una herramienta que puede solucionar ese PROBLEMON junto con varios más: Lion Tweaks.

Además de devolvernos al iCal y Address Book que todos conocemos, también ofrece muchas opciones más que nos harán agradecer con un donativo al desarrollador. Hacer los scrollbars permanentes, activar el FTP server, hacer visible nuevamente el Library Folder del usuario, desactivar el Spelling, detener las animaciones de ventanas, entre otras tantas, hacen de Lion Tweaks una utilidad obligada.


Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'brunelleschi_rel_cagegory_fix' was given in /home/junihh/public_html/wp-includes/plugin.php on line 170
Posted in
| Tagged , , , , , , , , | Comments Off

Encuesta en aplicaciones de Facebook

Mientras monitoreaba en mi casa una aplicación para Facebook que desarrollamos en la oficina, luego de tomarme un descanso, me vi con algo bastante interesante: Una encuesta de Facebook sobre mi opinión acerca de la misma. Es claro que es una encuesta dirigida por el mismo Facebook, ya que ninguno de los encargados de la aplicación en cuestión activaron nada similar. Me pareció bastante interesante, porque entre sus preguntas, no sólo estaban referidas a la aplicación como tal sino a las aplicaciones en sentido general de Facebook.

Es interesante el tema luego de ver cómo Facebook canceló su proyecto “Places”, que en su momento pretendió competir contra “Latitud” de Google. Y he ahí mi punto, su competencia Google.

Ya todos conocimos a Google+, la red social que sin temor ni dudas se puede decir le ha hecho “tirarse de los moños” a Zuckerberg. Google tiene todas las de ganar: Infraestructura, dinero, mucho dinero, muchísimo dinero, un equipo humano innovador, Gmail (con su legión de usuarios) y la afinidad que la gente siente hacia Google.

Google+ se caracteriza por NO hacer exactamente aquello que Facebook hace: Permitir que las aplicaciones publiquen sus actualizaciones en el muro principal. Los usuarios que no gustan de tales aplicaciones las critican ágriamente. Por el contrario, las notificaciones de Google Games (por ejemplo), se publican en un muro específico para los juegos, completamente independiente del principal.

Eso hace la diferencia, es apreciado por los usuarios y es obvio que Zuckerberg se está viendo forzado a bajar de su nube y proceder con cambios y novedades en su modelo.

Tengo dos teorías sobre esa encuesta: 1) pretenden hacer cambios en el modelo de las aplicaciones a uno similar a Google+; 2) pretenden eliminar por completo las mismas.

El ecosistema de aplicaciones de Facebook es demasiado amplio en este momento para pensar en la segunda teoría, además, tenemos la presión que generarían contra la empresa los desarrolladores. También el hecho del desafortunado “Facebook credit”, del que la empresa ha sacado jugosos beneficios.

Bueno, son simples conjeturas, resta esperar a ver qué pretende Zuckerberg con las aplicaciones, porque un servicio como el suyo que no tiene más para dónde expandir, tiene riesgos de causar aburrimiento y a la baja del interés de los que ahora duran horas. Muchos de esos mismos aburridos terminarán en Twitter o Google+.


Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'brunelleschi_rel_cagegory_fix' was given in /home/junihh/public_html/wp-includes/plugin.php on line 170
Posted in
| Tagged , , , , , | Comments Off