<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>{francho(lab)} &#187; Banco de pruebas</title>
	<atom:link href="http://francho.org/lab/category/banco-pruebas/&#038;lang=es_es/feed/" rel="self" type="application/rss+xml" />
	<link>http://francho.org/lab</link>
	<description>forjando ideicas</description>
	<lastBuildDate>Fri, 20 Aug 2010 10:56:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Jugando con Java y el API de Twitter</title>
		<link>http://francho.org/lab/529/jugando-con-java-y-el-api-de-twitter/</link>
		<comments>http://francho.org/lab/529/jugando-con-java-y-el-api-de-twitter/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 17:38:00 +0000</pubDate>
		<dc:creator>francho</dc:creator>
				<category><![CDATA[Banco de pruebas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://francho.org/lab/?p=529</guid>
		<description><![CDATA[Twitter tiene un API muy completa que nos permite interactuar con su servicio desde nuestras aplicaciones. Esta tarde he estado enredando un poco con ella y la verdad es que se me ocurren un montón de aplicaciones prácticas(logueos, análisis automáticos, integración en servicios de noticias, estadísticas, seguimiento de usuarios, actualizaciones automáticas del perfil, etc&#8230;)
Existen librerías [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://apiwiki.twitter.com/">Twitter tiene un API</a> muy completa que nos permite interactuar con su servicio desde nuestras aplicaciones. Esta tarde he estado enredando un poco con ella y la verdad es que se me ocurren un montón de aplicaciones prácticas(logueos, análisis automáticos, integración en servicios de noticias, estadísticas, seguimiento de usuarios, actualizaciones automáticas del perfil, etc&#8230;)</p>
<p>Existen librerías en un montón de lenguajes que facilitan aún mas su uso. Pero en este caso yo he preferido programar un servicio desde cero (lo cual, gracias a la <a href="http://apiwiki.twitter.com/Twitter-API-Documentation">documentación del API</a> no ha sido nada complicado).</p>
<p>El siguiente ejemplo es una aproximación sencilla que permite actualizar nuestro estado (enviar un post) desde aplicación Java.</p>
<pre class="brush: java;">
/*
 *   http://creativecommons.org/licenses/by-nc/3.0/deed.es
 */

package org.francho.java.twitter;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
// http://commons.apache.org/codec/
import org.apache.commons.codec.binary.Base64;

/**
 *
 * @author francho - http://francho.org/lab/
 */
public class Twitter {

    private String username;
    private String pass;
    private String response;

    Twitter(String username, String pass) {
        setCredentials(username, pass);
    }

    /**
     * Ejemplo de acción implementada.
     *
     * Actualiza el estado de Twitter con el texto que recibe
     *
     * @param status
     */
    public void statusesUpdate(String status) {
        try {
            URL url = new URL(&quot;http://twitter.com/statuses/update.xml&quot;);
            status = URLEncoder.encode(status, &quot;UTF-8&quot;);
            String parametros = &quot;status=&quot; + status;
            doTwitterRequest(url, parametros);
        } catch (MalformedURLException ex) {
            Logger.getLogger(Twitter.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(Twitter.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * Se encarga de la conexión con Twitter.
     * Necesita tener precargada los datos de autentificación (constructor), la url y los parámetros
     */
    private void doTwitterRequest(URL url, String parametros) {
        response = &quot;&quot;;
        try {
            // Creamos una conexión
            URLConnection conn;
            conn = url.openConnection();
            conn.setAllowUserInteraction(false);
            conn.setDoOutput(true);

            // Configuramos la autentificación (sencilla basada en HTTP)
            conn.setRequestProperty(&quot;Authorization&quot;, &quot;Basic &quot; + getBasicCredentials());

            // Preparamos la conexión con el servidor (vamos a mandar un formulario por post)
            conn.setRequestProperty(&quot;Content-Type&quot;, &quot;application/x-www-form-urlencoded&quot;);
            // Abrimos el canal de comunicación de envío
            DataOutputStream out = new DataOutputStream(conn.getOutputStream());
            // Mandamos los parámetros de la acción que (los ha tenido que precargar el método correspondiente)
            out.writeBytes(parametros.toString());
            // Nos aseguramos de que todo se envíe
            out.flush();
            // Ya hemos dicho lo que teníamos que decir, así que cerramos la conexión de envio
            out.close();

            // Capturamos la respuesta
            BufferedReader input = new BufferedReader(new InputStreamReader(conn.getInputStream()));

            String l = &quot;&quot;;
            while ((l = input.readLine()) != null) {
                response += l + &quot;\n&quot;;
            }

        } catch (IOException ex) {
            Logger.getLogger(Twitter.class.getName()).log(Level.SEVERE, null, ex);

        }

    }

    public void setCredentials(String username, String pass) {
        this.username = username;
        this.pass = pass;
    }

    public String getBasicCredentials() {
        byte[] credentialsBytes = (username + &quot;:&quot; + pass).getBytes();
        byte[] encodedBytes = Base64.encodeBase64(credentialsBytes);
        return new String(encodedBytes);
    }

    public String getResponse() {
        return response;
    }
}
</pre>
<p>Este sería un ejemplo de uso de nuestra clase:</p>
<pre class="brush: java;">
/*
 *   http://creativecommons.org/licenses/by-nc/3.0/deed.es
 */

package org.francho.java.twitter;

import java.util.Date;

/**
 *
 * @author francho - http://francho.org/lab/
 */
public class Test {
    public static void main(String[] args) {
        Twitter twitter = new Twitter(&quot;yoEnTwitter&quot;, &quot;miclave&quot;);

        Date ahora = new Date();

        twitter.statusesUpdate(&quot;Jugando con Java y el API de Twitter &quot; + ahora);
        System.out.println(twitter.getResponse());
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://francho.org/lab/529/jugando-con-java-y-el-api-de-twitter/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Moblin 2.0 en mi asus Eee PC 901</title>
		<link>http://francho.org/lab/274/moblin-2-0-en-mi-asus-eee-pc-901/</link>
		<comments>http://francho.org/lab/274/moblin-2-0-en-mi-asus-eee-pc-901/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 21:03:09 +0000</pubDate>
		<dc:creator>francho</dc:creator>
				<category><![CDATA[Banco de pruebas]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[eee]]></category>
		<category><![CDATA[moblin]]></category>
		<category><![CDATA[netbook]]></category>

		<guid isPermaLink="false">http://francho.org/lab/?p=274</guid>
		<description><![CDATA[Llevaba tiempo sin trastear y como hoy tenia un poco de tiempo me he puesto a probar Moblin en mi netbook. La versión Live 2.0 final me ha gustado tanto que me he decidido a instalarlo definitivamente sustituyendo mi Ubuntu Netbook Remix (a pesar de que iba bastante bien y los cambios de la 9.10 [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-285" title="eee-moblin" src="http://francho.org/lab/wp-content/uploads/2009/10/eee-moblin-300x274.jpg" alt="eee-moblin" width="300" height="274" />Llevaba tiempo sin trastear y como hoy tenia un poco de tiempo me he puesto a probar <a href="http://moblin.org/">Moblin</a> en mi netbook. La versión <a href="http://moblin.org/downloads">Live 2.0 final</a> me ha gustado tanto que me he decidido a instalarlo definitivamente sustituyendo mi <a href="http://www.canonical.com/projects/ubuntu/unr">Ubuntu Netbook Remix</a> (a pesar de que iba bastante bien y los cambios de la 9.10 me gustaban).</p>
<p>Para quien no lo conozca, Moblin es una distribución de Linux que empezo a desarrollar Intel y luego cedió a la <a href="http://es.linuxfoundation.org/">Linux Foundation</a>. Es un sistema operativo optimizado para netbooks y MIDs, lo que quiere decir que es rápido, esta compilado para su hardware, aprovecha al máximo la pantalla, es funcional, pensada para sacar partido de Internet (redes sociales, mensajería, etc)&#8230; y además es bonita.</p>
<p><span id="more-274"></span></p>
<p>El portátil tiene dos discos SD de  dos particiones de 3,7Gb y 15Gb. En mi caso lo he instalado completamente en el de 3,7Gb dejando el de 15 con el backup de mi /home anterior (cuando lo tenga suficientemente probado volveré a montarlo).</p>
<p>La instalación es muy sencilla y solamente te pregunta por el idioma, la distribución de teclado, la partición donde quieres instalarlo y los datos de usuario. Así que en tres clicks y menos de 30 minutos (incluida la descarga) tienes el nuevo sistema funcionando.</p>
<p>La instalación por defecto ocupa 1,8Gb.</p>
<p><strong>Arranque</strong></p>
<p>Moblin arranca como un tiro, en aproximadamente 20 segundos ya tienes el escritorio funcionando.</p>
<p>Primer inconveniente que le veo: no pide login así que por defecto no es multiusuario  y en mi caso, el netbook lo usamos varias personas (investigaré como arreglarlo).</p>
<p><strong>Teclas especiales</strong></p>
<p>La mayoría funcionan correctamente (suspender,  volumen, brillo&#8230;) otras como las personalizables por defecto no hacen nada.</p>
<p>Usando la opción de &#8220;Combinaciones de teclas&#8221; de la configuración podemos ajustarlas a nuestro gusto.</p>
<p>La única que me ha dado problemas es la de activar/desactivar wifi que me ha funcionado &#8220;a veces&#8221; (en algunos casos al volver a activar la wifi se queda a la espera y  tengo que reiniciar) .</p>
<p><strong>Internet</strong></p>
<p>El navegador que trae integrado es muy simple y trae el plugin de Flash instalado (todo listo para funcionar).  He probado varias paginas y se renderizan todas perfectamente. Solo un par de observaciones iniciales:</p>
<ul>
<li>El javascript lo corre bastante lento, así que paginas como Gmail tardan mas en cargar que en Firefox.</li>
<li>Los acentos no funcionan en el navegador (no he podido editar este post y poner acentos), si que funcionan en otras aplicaciones. Tendré que revisar esto.</li>
<li>Las preferencias (buscador por defecto, etc&#8230;) se pierden al cerrar el navegador.</li>
<li>El navegador se me cerrado un par de veces por problemas de javascript.</li>
</ul>
<p><strong>Skype</strong></p>
<p>Skype de momento no está incluido en los repositorios de Moblin así que hay que instalarlo a mano.</p>
<p>Recordando que hace tiempo leí una noticia sobre una <a href="https://developer.skype.com/MidSkype">versión especial para MID</a> así que me he descargado la última. Es un bz2 así que hay que hacerlo desde un terminal siguiendo las instrucciones que nos indican en la web de descarga.</p>
<p>Como medida extra yo me he instalado las &#8220;Qt Gui-related libraries&#8221; desde &#8220;Añadir/Quitar aplicaciones&#8221; del Moblin. De esta forma me aseguro que están las librerías que Skype necesita para funcionar (evita problemas de path).</p>
<p>Después de instalarlo hay que ajustar las preferencias de sonido, pero por lo demás funciona todo sin problema, incluida la videoconferencia.</p>
<p>Estaria bien que se integrara en las pestañas de estatus y usuarios.</p>
<p><strong>Spotify</strong></p>
<p>Otro programa sin el que no puedo vivir es Spotify. Como no hay version nativa para Linux hay que utilizarlo usando wine. En este post he estan las <a href="http://froneesis.blogspot.com/2009/08/installing-wine-and-spotify-on-moblin.html">instrucciones paso a paso para instalar Spotify en Moblin 2.0</a>.</p>
<p><strong>Conclusiones iniciales</strong></p>
<p>Rápido, funcional, suficiente para el día a día</p>
<p>Como todo lo nuevo cuesta hay cosas que chocan (por ejemplo no se pueden minimizar las ventanas), sera cuestión de acostumbrarse.</p>
<p>Lo que mas echo en falta es la integración de Gmail como servicio web y el poder sincronizar el calendario y los contactos con Google</p>
<p>Otro servicio web que también estaría bien seria un lector RSS integrado en &#8220;MyZone&#8221;</p>
<p>Faltan algunos flecos por pulir, pero el sistema promete. Voy a usarlo durante unas semanas a ver que tal me va con el.</p>
<p><strong>Actualización (1 Noviembre 2009)</strong></p>
<p>Al final he vuelto al redil y he vuelto a instalarme la Ubuntu UNR 9.10. ¿Las razones? pues han sido varias:</p>
<ul>
<li>El navegador de Moblin todavía está un poco verde, no soporta flash y se peta cada dos por tres</li>
<li>Hay que tocarle demasiado las tripas para dejarlo a mi gusto (multi usuario, directorios home encriptados&#8230;)</li>
<li>No tiene una buena integración (todavía) con Gmail</li>
<li>Me he acostumbrado al <a href="http://one.ubuntu.com">Ubuntu One</a> y ahora no puedo vivir sin el <img src='http://francho.org/lab/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<p>Resumiendo: Ubuntu me ha vuelto &#8220;vaguete&#8221; y me he acostumbrado a hacer las cosas de forma fácil (sin tirar tanto de terminal y ficheros de configuración), con este sistema, puedo personalizar las cosas sin tener que pegarme horas mirando manuales o foros&#8230; jeje lo que hace la edad <img src='http://francho.org/lab/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>En fin esperaremos a ver como evoluciona <a href="http://www.ubuntu.com/news/canoical-commits-ubuntu-moblin">Ubuntu Moblin Remix</a></p>
]]></content:encoded>
			<wfw:commentRss>http://francho.org/lab/274/moblin-2-0-en-mi-asus-eee-pc-901/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Publicando en el blog con el móvil</title>
		<link>http://francho.org/lab/271/publicando-en-el-blog-con-el-movil/</link>
		<comments>http://francho.org/lab/271/publicando-en-el-blog-con-el-movil/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 13:49:07 +0000</pubDate>
		<dc:creator>francho</dc:creator>
				<category><![CDATA[Banco de pruebas]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://francho.org/lab/2009/08/publicando-en-el-blog-con-el-movil/</guid>
		<description><![CDATA[WpToGo es una aplicación para Android que permite publicar y editar artículos en Wordpress desde el móvil.
Es un programa gratuito que está disponible en el market.
Este post es una prueba para ver como funciona.
Editado: su interfaz es muy sencillo pero cumple su cometido. Permite crear y editar posts incluyendo imágenes y urls. Por poner una [...]]]></description>
			<content:encoded><![CDATA[<p>WpToGo es una aplicación para Android que permite publicar y editar artículos en Wordpress desde el móvil.</p>
<p>Es un programa gratuito que está disponible en el market.</p>
<p>Este post es una prueba para ver como funciona.</p>
<p>Editado: su interfaz es muy sencillo pero cumple su cometido. Permite crear y editar posts incluyendo imágenes y urls. Por poner una pega, no permite incluir varias categorías en un artículo.<br />
<img src="http://francho.org/lab/wp-content/uploads/2009/08/wpid-1251209553638.jpg" alt="image" width="320" height="240" /></p>
]]></content:encoded>
			<wfw:commentRss>http://francho.org/lab/271/publicando-en-el-blog-con-el-movil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extensiones Firefox</title>
		<link>http://francho.org/lab/84/extensiones-firefox/</link>
		<comments>http://francho.org/lab/84/extensiones-firefox/#comments</comments>
		<pubDate>Tue, 19 Dec 2006 12:00:04 +0000</pubDate>
		<dc:creator>francho</dc:creator>
				<category><![CDATA[Banco de pruebas]]></category>

		<guid isPermaLink="false">http://francho.org/blog/?p=84</guid>
		<description><![CDATA[
Estas son las extensiones que tengo instaldas en mis Firefox.
Mención especial a WOT y Prhishtank que me permiten cuando un sitio es fraudulento
]]></description>
			<content:encoded><![CDATA[<p><a class="attachmentlink" href="http://francho.org/blog/wp-content/uploads/2006/12/extensiones_firefox.jpg"><img title="Extensiones Firefox" src="http://francho.org/blog/wp-content/uploads/2006/12/extensiones_firefox.thumbnail.jpg" alt="Extensiones Firefox" hspace="5" align="left" /></a></p>
<p>Estas son las extensiones que tengo instaldas en mis Firefox.</p>
<p>Mención especial a WOT y Prhishtank que me permiten cuando un sitio es fraudulento</p>
]]></content:encoded>
			<wfw:commentRss>http://francho.org/lab/84/extensiones-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mandando emails a la Wii</title>
		<link>http://francho.org/lab/81/mandando-emails-a-la-wii/</link>
		<comments>http://francho.org/lab/81/mandando-emails-a-la-wii/#comments</comments>
		<pubDate>Sun, 10 Dec 2006 14:55:34 +0000</pubDate>
		<dc:creator>francho</dc:creator>
				<category><![CDATA[Banco de pruebas]]></category>
		<category><![CDATA[Wii]]></category>

		<guid isPermaLink="false">http://francho.org/blog/?p=81</guid>
		<description><![CDATA[Para mandar un email a la Wii (siempre que esta tenga configurada la conexión internet) solo hay que escribir a w1111111111@wii.com, donde 1111111111 es el número de identificación de la consola en cuestión (se puede consultar cual es desde la agenda del tablón Wii).
Cuando se recibe un mail, la luz azul del CD parpadea, si [...]]]></description>
			<content:encoded><![CDATA[<p>Para mandar un email a la Wii (siempre que esta tenga configurada la conexión internet) solo hay que escribir a w1111111111@wii.com, donde 1111111111 es el número de identificación de la consola en cuestión (se puede consultar cual es desde la agenda del tablón Wii).</p>
<p>Cuando se recibe un mail, la luz azul del CD parpadea, si tienes activada la función wii24h parpadea incluso aunque esté apagada.</p>
<p>Desde el tablón Wii también se pueden mandar mails a cuentas de correo, eso si primero hay que añadirlos en la agenda. Al destinatario se le manda un mail pidiendole permiso para cartearse y luego ya se pueden mandar mails sin problema.</p>
<p>Estaria bien poder crear alias del email para que no fuera tan críptico.</p>
<p>Eso si, lo que no he conseguido de momento es enviar una foto o un mii desde la consola a un email</p>
]]></content:encoded>
			<wfw:commentRss>http://francho.org/lab/81/mandando-emails-a-la-wii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sensación Wii</title>
		<link>http://francho.org/lab/80/sensacion-wii/</link>
		<comments>http://francho.org/lab/80/sensacion-wii/#comments</comments>
		<pubDate>Sat, 09 Dec 2006 14:55:53 +0000</pubDate>
		<dc:creator>francho</dc:creator>
				<category><![CDATA[Banco de pruebas]]></category>
		<category><![CDATA[Wii]]></category>

		<guid isPermaLink="false">http://francho.org/blog/?p=80</guid>
		<description><![CDATA[Ya tengo en casa mi flamante Wii, al final no ha habido problemas y los de Toys &#8216;r&#8217; Us han podido servir nuestra reserva.
La primera impresión es muy buena, no ha decepcionado mis espectativas, y eso que no he podido jugar demasiado ya que la han monopolizado mi hijo de 4 años y mi mujer&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>Ya tengo en casa mi flamante <a href="http://es.wii.com/">Wii</a>, al final no ha habido problemas y los de Toys &#8216;r&#8217; Us han podido servir nuestra reserva.</p>
<p>La primera impresión es muy buena, no ha decepcionado mis espectativas, y eso que no he podido jugar demasiado ya que la han monopolizado mi hijo de 4 años y mi mujer&#8230; quién me lo iba a decir&#8230; Pilu jugando a una consola <img src='http://francho.org/lab/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Bueno, si que he echado en falta los canales Internet, tiempo y noticias, que se suponen que saldrán en los próximos días, espero que sea pronto.</p>
<p>Seguiremos wiieando&#8230;</p>
<p class="poweredbyperformancing">powered by <a href="http://performancing.com/firefox">performancing firefox</a></p>
]]></content:encoded>
			<wfw:commentRss>http://francho.org/lab/80/sensacion-wii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox + Performancing</title>
		<link>http://francho.org/lab/127/firefox-performancing/</link>
		<comments>http://francho.org/lab/127/firefox-performancing/#comments</comments>
		<pubDate>Mon, 29 May 2006 11:26:28 +0000</pubDate>
		<dc:creator>francho</dc:creator>
				<category><![CDATA[Banco de pruebas]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Tecnología]]></category>

		<guid isPermaLink="false">http://www.francho.org/blog/2006/05/29/firefox-performancing/</guid>
		<description><![CDATA[Hoy no he podido esperar mas y me he actualizado la Ubuntu del curro a la versión 6.06, con lo que el Firefox se me ha actualizado a la 1.5.0.3.
Me he instalado la extensión Performancing.com con lo que ya puedo publicar articulos (como este) desde el navegador sin tener que abrir el blog.
]]></description>
			<content:encoded><![CDATA[<p>Hoy no he podido esperar mas y me he actualizado la Ubuntu del curro a la versión 6.06, con lo que el Firefox se me ha actualizado a la 1.5.0.3.</p>
<p>Me he instalado la extensión <a href="http://performancing.com/">Performancing.com</a> con lo que ya puedo publicar articulos (como este) desde el navegador sin tener que abrir el blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://francho.org/lab/127/firefox-performancing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
