18 dic 2009

Browser size de Google ¿una herramienta inutil?

Me podría llamar un seguidor de Google, ya que creo que es una compañia que generalmente desarrolla muy buenos productos. Como siempre se dice, nadie es perfecto, y creo que Google lo demostro con esta nueva herramienta Browser Size.

Debo ser sincero y decir de antemano que no la he probado demasiado, solo he realizado pruebas sobre algunos sitios, principalmente para ver en donde estaba la utilidad. Hasta ahora, he encontrado muy poco...

Me dí cuenta que la posible utilidad que tiene esta herramienta es... ayudar a la persona que recién se esta iniciando en la web, y esta lanzando su primer sitio.

Para aquellos que van a utilizar esta herramienta les aconsejo tener en cuenta lo siguientes puntos:

  • Hoy en día los sitios que son maquetados con css, y hasta con tablas, pueden definir un ancho variable dependiendo del tamaño de la pantalla del navegador. Por lo tanto, si vemos una página en Browser Size, en un monitor de 1680x1050, con el navegador maximizado, puede no ser la misma página que verá una persona en un monitor de 1024x768 (si la página es de ancho variable).
  • El informe de la cantidad de personas con diferentes resoluciones de monitor, también la tenemos disponibles en nuestro sitio web, en caso que utilicemos Google Analytics. Yo prefiero esta alternativa, para los sitios que ya están en funcionamiento, porque nos permite verificar la información con nuestros visitantes reales. Por ejemplo, si realizamos un sitio web para diseñadores, es muy probable que sus pantallas sean más amplias que la media, mientras que si es para personas mayores, es probable que la resolución sea mucho menor que la media. Obviamente, todo esto debe ser verificado contra nuestras estadísticas.
  • Existen herramientas, por ejemplo para Firefox, disponemos de una extensión llamada Window Resizer (https://addons.mozilla.org/en-US/firefox/addon/1985) que nos permite cambiar el tamaño de la ventana del navegador, para emular lo que es una resolución diferente a la que utilizamos normalmente.

Prefiero utilizar las herramientas alternativas para poder conocer que es visualizado por la mayoría de mis visitantes, y que queda fuera. Espero que Browser Size, tenga alguna funcionalidad extra que me estoy perdiendo.

Cerrando el post

Solo espero que Google comience a modificar un poco el rumbo de sus nuevos productos, si bien son innovadores (algunos de ellos), cada día me doy cuenta que se estan pareciendo más a lo que tantas veces se critico de Microsoft: productos de baja calidad. Si soy conciente que en los últimos tiempos Google ya dejo de ser esa empresa más inocente para los usuarios, a pasar a ser una empresa que esta intentando incrementar sus ingresos. Esto es perfecto, y como toda empresa debe seguir ese fin, pero lo que NO me gusta, es que siento que están cambiando su escencia por este fin (Uno puede cambiar la visión, o el objetivo, pero nunca la misión, sino es otra empresa). ¿El futuro me dará la razón, o sere esclavo de mis palabras?

10 dic 2009

¿Google Wave puede desplazar a Evernote?

Hoy, como todos los días, abrí EVERNOTE para guardar algunas notas y poder mantenerlas en un lugar independiente de la computadora que utilice, y en ese momento pense... ¿por que no uso Google Wave para esto? la respuesta es sencilla, aún no hay una interfaz de escritorio que me permita administrar la información como EVERNOTE.
Sería una muy buena alternativa el poder hacer una interfaz web que sea multiplataforma, al estilo EVERNOTE, pero utilizando Google Wave como backend. Aún no he investigado el protocolo de Wave, se que se puede hacer sin mayores complicaciones, pero por el momento no dispongo del tiempo para hacerlo.
Desde mi punto de vista, los beneficios que se podrían lograr utilizando Google Wave al estilo EVERNOTE, son lo siguientes:
  • Posibilidad de incluír extensiones a la información subida.
  • Posibilidad de compartir la información con otras personas dentro de Wave (incluír en el Wave a otros usuarios).
  • Google Wave tendrá mucha más integración con otras aplicaciones, que EVERNOTE.
  • Google Wave es totalmente gratuito, independientemente de la cantidad de información subida/descargada.
  • La búsqueda se hace con Google.
Como no todo es maravilloso en la vida, aún faltan mejorar los siguientes puntos:
  • Posibilidad de compartir un Wave publicamente.
  • Que Google Wave sea un poco más estable (he tenido problemas con Waves largos).
  • Que se pueda desarrollar una aplicación multiplataforma para la administración de Waves.
  • Que se pueda hacer más amigable la interfaz de Wave para este tipo de información.
Por el momento, deberemos seguir esperando a ver como se van desarrollando los hechos con Google Wave. Como sabemos Google Wave esta en beta aún, y tiene varias cosas por mejorar, pero estoy convencido que en el futuro tiene muchas posibilidades de ofrecer beneficios realmente interesantes... esto que planteo, será uno de ellos? paciencia.

3 dic 2009

YouTube para todos con YouTube Feather


El 18 de Noviembre asistí a una charla de YouTube organizada en CAME (Camara Argentina de la Mediana Empresa), y lo expuesto por Ricardo Blanco se cumplió, YouTube esta apostando a que todas las personas puedan acceder al servicio, mejorando la calidad y la velocidad del mismo.

La exposición de Ricardo fue muy buena, selecciono muy buenos ejemplos para que todos los asistentes podamos ver el poder que esta teniendo YouTube, y las herramientas que esta ofreciendo.

Poco tiempo atrás YouTube incorporaba la posibilidad de subir, y ver, videos en alta definición (1080p), hoy recibí a través de @YouTubeES una muy buena noticia, que YouTube esta lanzando YouTube Feather. YouTube Feather es lo que se va a venir en YouTube, por el momento esta en estado beta, nos permitirá tener una excelente calidad de video, necesitando un ancho de banda menor y menor poder de procesamiento (Parece especialmente desarrollado para America Latina).

Aún no he podido probar como funciona el nuevo YouTube Feather, solo he visto un video, por lo cual no puedo aún dar un veredicto. Al igual que Google, YouTube (ya una empresa de Google) esta minimizando sus interfaces, para poder mejorar la experiencia del usuario (estamos volviendo a las raíces?)

Para ver algo más de YouTube Feather, que mejor que la página del producto http://www.youtube.com/feather_beta

1 dic 2009

Como transferir archivos con NuSOAP

Gracias al comentario de un visitante a mi blog, me dí cuenta que no había incluído ejemplos de como transferir archivos mediante un servicio web, más precisamente utilizando NuSOAP.
Por lo tanto hoy realice un ejemplo muy sencillo que nos permite hacer precisamente eso, tener un servidor corriendo NuSOAP, y que un cliente realice una petición y el servidor retorne el archivo solicitado por el cliente.

Servidor para transferir archivos

El servidor es muy similar al ejemplo que utilice en el primer post que realice en mi blog sobre este tema (http://www.orlandobrea.com.ar/2009/09/webservices-con-nusoap-en-php-ejemplo-1.html). Voy a ir directamente al ejemplo, ya que todo lo necesario para entender el mismo ya lo he explicado en los posts anteriores.
// Archivo nusoap_server_ejFile.php
<?php
require_once('nusoap/lib/nusoap.php');
$miURL = 'http://pruebas.orlandobrea.com.ar/nusoap_ej1';
$server = new soap_server();
$server->configureWSDL('ws_orlando', $miURL);
$server->wsdl->schemaTargetNamespace=$miURL;




$server->register('getArchivo', // Nombre de la funcion
 array('nombre' => 'xsd:string'), // Parametros de entrada
 array('return' => 'xsd:string'), // Parametros de salida
 $miURL);
// Función que recibe el nombre del archivo que debe retornar.
// Lee el contenido del archivo cuyo nombre corresponde con el pasado
// como parámetro a la función, le aplica Base64 para codificar su
// contenido, y luego lo retorna como un string
function getArchivo($nombre){
 $archivo = file_get_contents($nombre);
 $archivo = base64_encode($archivo);
 return new soapval('return', 'xsd:string', $archivo);
}

$server->service($HTTP_RAW_POST_DATA);
?>

El cliente que recibe los archivos

El cliente también es muy similar al del primer ejemplo, por lo tanto ya vamos a lo importante, el código.
// Archivo nusoap_client_ejFile.php
<?php
require_once('nusoap/lib/nusoap.php');
// Crear un cliente apuntando al script del servidor (Creado con WSDL)
$serverURL = 'http://pruebas.orlandobrea.com.ar';
$serverScript = 'nusoap_server_ejFile.php';
$metodoALlamar = 'getArchivo';

$cliente = new nusoap_client("$serverURL/$serverScript?wsdl", 'wsdl');
// Se pudo conectar?
$error = $cliente->getError();
if ($error) {
 echo '<pre style="color: red">' . $error . '</pre>';
 echo '<p style="color:red;'>htmlspecialchars($cliente->getDebug(), ENT_QUOTES).'</p>';
 die();
}

// 1. Llamar a la funcion getArchivo del servidor, pasando como parámetro 'wallpaper_mac.png'
$result = $cliente->call(
    "$metodoALlamar",                     // Funcion a llamar
    array('wallpaper_mac.png'),    // Parametros pasados a la funcion
    "uri:$serverURL/$serverScript",                   // namespace
    "uri:$serverURL/$serverScript/$metodoALlamar"       // SOAPAction
);
// Verificacion que los parametros estan ok, y si lo estan. mostrar rta.
if ($cliente->fault) {
    echo '<b>Error: ';
    print_r($result);
    echo '</b>';
} else {
    $error = $cliente->getError();
    if ($error) {
        echo '<b style="color: red">Error: ' . $error . '</b>';
    } else {
 // Decodificación de la respuesta del servidor
 $contenido = base64_decode($result);
 // Guardar la respuesta del servidor, decodificada, en el archivo tmp.png
 file_put_contents("tmp.png", $contenido);
    }
}

?>
El código es bastante sencillo de enteder, simplemente se llama a getArchivo en el webservice del servidor, y se le pasa como parámetro el archivo que deseamos descargar (en este caso wallpaper_mac.png). El servidor retorna el archivo al cliente (codificado con base64). El cliente recibe el archivo y lo decodifica, luego lo guarda en un archivo "tmp.png".
El ejemplo es muy sencillo, y no es apto para un ambiente productivo. Para poder usar este ejemplo en un servidor productivo, deberíamos:
  • Agregar verificación de errores (Por ejemplo, que el archivo exista).
  • El servidor debe establecer ciertas reglas de seguridad (Por ejemplo que solo se pueda acceder a ciertos archivos)
  • Que el cliente pueda solicitar diferentes tipos de archivos (que el archivo a solicitar no este fijo como en el ejemplo, wallpaper_mac.png).
  • Que el archivo en el cual se guarda el archivo recibido, sea modificable.
Estos son solo algunas correcciones que deberíamos hacer para mejorar el código y que sea más seguro. Para los fines del ejemplo, preferí mantener el mismo lo más sencillo posible, para enfocarnos en lo importante en este caso.
Este ejemplo también esta disponible para su descarga.