<?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>YakiBoo &#187; Internet</title>
	<atom:link href="http://www.yakiboo.net/category/internet/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yakiboo.net</link>
	<description>... mi pequeño mundo binario</description>
	<lastBuildDate>Mon, 19 Dec 2011 23:38:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>La gran burbuja</title>
		<link>http://www.yakiboo.net/la-gran-burbuja/</link>
		<comments>http://www.yakiboo.net/la-gran-burbuja/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 09:36:17 +0000</pubDate>
		<dc:creator>sgm</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Todo]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Libertad]]></category>

		<guid isPermaLink="false">http://www.yakiboo.net/?p=2435</guid>
		<description><![CDATA[Tal vez no os lo hayáis planteado, pero lo aparéntemente libre y abierto que es Internet está sufriendo cambios que minimizan esa apertura y libertad. Antes era fácil buscar información ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify">
Tal vez no os lo hayáis planteado, pero lo aparéntemente libre y abierto que es Internet está sufriendo cambios que minimizan esa apertura y libertad. Antes era fácil buscar información en Google y ver qué había en la red en relación a tu pregunta. Sin embargo, ahora los resultados pasan más de 30 filtros hasta que llegan a ti. Está muy bien pensado eso de los resultados adaptados a tus intereses personales, pero esa personalización puede ocultarnos realidades, con o sin ánimo de hacerlo; y eso es peligroso.
</p>
<p style="text-align: justify">
Os recomiendo que veáis la siguiente charla sobre el tema. Os hará pensar, y no os quitará mucho tiempo.
</p>
<p><center><br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/wGq3HWILr6k" frameborder="0" allowfullscreen></iframe><br />
</center></p>
<p style="text-align: justify">
Espero vuestras opiniones.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yakiboo.net/la-gran-burbuja/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conexión entre aplicaciones Android y servicios web .NET</title>
		<link>http://www.yakiboo.net/conexion-entre-aplicaciones-android-y-servicios-web-net/</link>
		<comments>http://www.yakiboo.net/conexion-entre-aplicaciones-android-y-servicios-web-net/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 14:42:43 +0000</pubDate>
		<dc:creator>Jesús Manzano Camino</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Móviles]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Todo]]></category>
		<category><![CDATA[Tutoriales y guías]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Servicios Web]]></category>

		<guid isPermaLink="false">http://www.yakiboo.net/?p=2359</guid>
		<description><![CDATA[Introducción Hoy en día es casi imprescindible el uso de Internet o de bases de datos alojadas en la red por parte de nuestas aplicaciones Android. Uno de los métodos ...]]></description>
			<content:encoded><![CDATA[<h3>Introducción</h3>
<p style="text-align: justify">Hoy en día es casi imprescindible el uso de Internet o de bases de datos alojadas en la red por parte de nuestas aplicaciones Android. Uno de los métodos más fáciles y comunes para realizar una comunicación hacia dichos servicios y bases de datos se realiza mediante el consumo de servicios web, los cuales en la mayoría de los casos actuan como una capa intermedia entre nuestra aplicación e Internet.Hoy explicaremos como enlazar nuestra aplicación con nuestros servicios web.</p>
<blockquote><p>Nota:Si no sabeis como crear un servicio web bajo .NET os recomiendo que echeis un ojo a éste <a href="http://www.yakiboo.net/servicios-web-net-con-conexion-a-mysql/">artículo</a> en el que explico como crearlo.</p></blockquote>
<h3>Obtención e importación de la librería ksoap2</h3>
<p style="text-align: justify">Lo primero de todo es descargar la librería que nos permitirá la conexión hacia el servicio web. Se trata de ksoap2 y desde <a href="http://ksoap2-android.googlecode.com/svn/m2-repo/com/google/code/ksoap2-android/ksoap2-android-assembly/2.5.8/ksoap2-android-assembly-2.5.8-jar-with-dependencies.jar">aquí</a> podemos descargar el .jar .Una vez descargado y creado un proyecto Android en Eclipse, en la carpeta /res del proyecto crearemos una carpeta llamada lib en la que guardaremos el .jar (para saber siempre donde buscarlo a la hora de añadirlo a nuestro proyecto).</p>
<p style="text-align: justify">Ahora procederemos a añadirlo como librería a nuestro proyecto. Suponiendo que utilizamos Eclipse, hacemos click derecho sobre el proyecto y vamos a Propiedades, en la sección Java Build Path nos movemos hasta la pestaña Libraries, damos a Add JARs y procedemos a seleccionar el jar descargado (Lo acabamos de poner dentro de la carpeta lib del proyecto).</p>
<p style="text-align: justify">Una vez que ya tenemos nuestro librería añadida estamos listos para usarla. Para ello deberemos importarla añadiendo esto a la lista de import de la clase que vaya a hacer uso de la librería:</p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.ksoap2.SoapEnvelope</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.ksoap2.serialization.PropertyInfo</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.ksoap2.serialization.SoapObject</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.ksoap2.serialization.SoapSerializationEnvelope</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.ksoap2.transport.HttpTransportSE</span><span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: justify">Importada la librería vamos a ver como se utiliza. Los pasos para realizar una conexión son por regla general los siguientes:</p>
<ul style="text-align: justify">
<li>Preparación de los datos necesarios para la conexión del servicio web (dirección del servicio web, nombre del método).</li>
<li>Preparación de los datos a enviar al servicio web (en el caso que hubiera).</li>
<li>Apertura de la conexión con los datos necesarios.</li>
<li>LLamada al método y obtención de los datos provenientes del servicio werb (en el caso que hubiera).</li>
<li>Tratamiento de dichos datos devueltos.</li>
</ul>
<blockquote><p>Nota: el último punto aunque no parezca importante si que hay que indicarlo para explicar mas tarde el procesamiento de datos complejos provenientes del servicio web.</p></blockquote>
<h3>Preparación de los datos para la conexión</h3>
<p style="text-align: justify">Para llamar al servicio web necesitaremos cuantro cadenas de texto (String) que usaremos siempre para realizar las llamadas a los métidos del servicio web.</p>
<p>El primero es el denominado &#8220;namespace&#8221; cuyo valor nos indica el propio servicio web al crearlo. El namespace viene indicado en la cabecera del servicio web:</p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #009900;">&#91;</span>WebService<span style="color: #009900;">&#40;</span>Namespace <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://ip:puerto/NombreDelServicio/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span></pre></div></div>

<p style="text-align: justify">Por lo que la cadena que define el namespace sería:</p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> NAMESPACE <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://ip:puerto/NombreDelServicio/&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: justify">El segundo es la URL del servicio web, que viene a ser la adición del nombre del archivo .asmx a la cadena que define el NAMESPACE:</p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> <span style="color: #003399;">URL</span> <span style="color: #339933;">=</span> NAMESPACE<span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;Service1.asmx&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: justify">El tercer dato que necesitamos es el nombre de método que guardaremos en la variable METHOD:</p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> METHOD<span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: justify">El cuaro dato será el SOAPACTION, que será una combinación del NAMESPACE y del método al que llamemos:</p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> SOAPACTION <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span></pre></div></div>

<h3>Apertura de la conexión y adición de los datos</h3>
<p style="text-align: justify">Definidos los datos iniciales veamos la preparación de datos en caso de que queramos enviar datos al servicio web.Para ello haremos uso de la clase SoapObject, que es un tipo de datos de encapsulación para poder enviar y recibir datos del servicio web (actua como un parseador de xml que es lo que se acaba enviando o recibiendo de un servicio web), y de la clase PropertyInfo que es una clase que nos permite añadir información al objeto SoapObject. Veamos un ejemplo.</p>

<div class="wp_syntax"><div class="code"><pre class="java">METHOD <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;method&quot;</span><span style="color: #339933;">;</span>
SoapObject request <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SoapObject<span style="color: #009900;">&#40;</span>NAMESPACE, METHOD<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
PropertyInfo pi1 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PropertyInfo<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
pi1.<span style="color: #006633;">setName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;variable1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
pi1.<span style="color: #006633;">setValue</span><span style="color: #009900;">&#40;</span>“a”<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
request.<span style="color: #006633;">addProperty</span><span style="color: #009900;">&#40;</span>pi1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: justify">Hay que tener mucho cuidado al añadir las variables, ya que el nombre de éstas debe coincidir con el nombre de las varibles del método al que llamamos en el servicio web. Como se ve lo que hacemos es crear un objeto PropertyInfo al que añadiremos el nombre y el valor de la variable que deseamos enviar.</p>
<p style="text-align: justify">Una vez que tenemos los datos a enviar, pasaremos a abrir la conexión. Para ello utilizaremos la clase SoapSerializationEnvelope y la clase HttpTransportSE:</p>

<div class="wp_syntax"><div class="code"><pre class="java">SoapSerializationEnvelope envelope <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SoapSerializationEnvelope<span style="color: #009900;">&#40;</span>
SoapEnvelope.<span style="color: #006633;">VER12</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
envelope.<span style="color: #006633;">dotNet</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//indicamos que utilizaremos servicios .NET</span>
envelope.<span style="color: #006633;">setOutputSoapObject</span><span style="color: #009900;">&#40;</span>request<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//añadimos a la conexión el objeto SoapObject anteriormente creado</span>
HttpTransportSE androidHttpTransport <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> HttpTransportSE<span style="color: #009900;">&#40;</span><span style="color: #003399;">URL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
androidHttpTransport.<span style="color: #006633;">debug</span> <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//nos aseguramos así de que funcione siempre</span></pre></div></div>

<h3>LLamada al método y obtención de los datos provenientes del servicio web</h3>
<p>Ya que tenemos abierta la conexión no queda mas que definir la variable SOAPACTION y realizar la llamada.</p>

<div class="wp_syntax"><div class="code"><pre class="java">SOAPACTION <span style="color: #339933;">=</span> NAMESPACE <span style="color: #339933;">+</span> METHOD<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
	androidHttpTransport.<span style="color: #006633;">call</span><span style="color: #009900;">&#40;</span>SOAPACTION, envelope<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	SoapObject response <span style="color: #339933;">=</span> envelope.<span style="color: #006633;">getResponse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//tratamiento de la respuesta</span>
<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	Log.<span style="color: #006633;">d</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;error&quot;</span>, e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p style="text-align: justify">De ésta manera llamamos al método del servicio web. Si el metodo del servicio web devuelve algún dato tendremos que tratarlo. En el caso de que nos encontremos con algún tipo complejo de datos (como una lista o de alguna clase que hayamos creado para tal propósito) deberemos tratarlo para recuperar la información. Para ello utilizaremos la clase SoapObject que encapsula los datos recibidos sean cual sean su naturaleza y nos proporciona una serie de métidos para poder extraer la información tal y como se devolvió desde el servicio web.</p>
<h3>Tratamiento de datos complejos provenientes de un servicio web</h3>
<p style="text-align: justify">Pongamos que el método del servicio web al que llamamos devuelve un List, el tratamiento de datos sería algo así:</p>

<div class="wp_syntax"><div class="code"><pre class="java">SOAPACTION <span style="color: #339933;">=</span> NAMESPACE <span style="color: #339933;">+</span> METHOD<span style="color: #339933;">;</span>
<span style="color: #003399;">List</span> l <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">ArrayList</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
	androidHttpTransport.<span style="color: #006633;">call</span><span style="color: #009900;">&#40;</span>SOAPACTION, envelope<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	SoapObject response <span style="color: #339933;">=</span> envelope.<span style="color: #006633;">getResponse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">//tratamiento de la respuesta</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>response <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #666666; font-style: italic;">//comprobamos que la respuesta no esté vacía</span>
                <span style="color: #666666; font-style: italic;">//recorremos el objeto</span>
		<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> response.<span style="color: #006633;">getPropertyCount</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                           <span style="color: #666666; font-style: italic;">//obtenemos el elemento i de la lista (sabemos que es un String)</span>
                           l.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>response.<span style="color: #006633;">getProperty</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                           Log.<span style="color: #006633;">d</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;elmento&quot;</span><span style="color: #339933;">+</span>i<span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;devuelto&quot;</span>,response.<span style="color: #006633;">getProperty</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">return</span> l<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	Log.<span style="color: #006633;">d</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;error&quot;</span>, e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p style="text-align: justify">Explicaré mejor el código de arriba. La variable response del tipo SoapObject obtiene el List que se devolvío por parte del servicio web y mediante un bucle utilizando la variable getPropertyCount() que nos devuelve el número de elementos que posee, recorremos el objeto como si recorrieramos el List. Cada elemento obtenido mediante el bucle es del tipo SoapObject, al cual simplemente haremos un toString() ya que sabemos que es un String. Hay que tener mucho cuidado a la hora del procesamiento de los datos devueltos ya que hay que estar totalmente seguro de que tipo de datos devuelve el método invocado.</p>
<p style="text-align: justify">Si los datos fueran mas complejo aún (imaginemos un List&lt;List&gt;) deberíamos extraer cada SoapObject del objeto devuelto por parte del servicio web (que a su vez sería un List) para, mediante otro bucle anidado, recorrer la segunda lista obteniendo ya si los valores de las cadenas de texto que contienet. Sería algo así:</p>

<div class="wp_syntax"><div class="code"><pre class="java"><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>response <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #666666; font-style: italic;">//comprobamos que la respuesta no esté vacía</span>
        <span style="color: #666666; font-style: italic;">//recorremos el objeto</span>
	<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> response.<span style="color: #006633;">getPropertyCount</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">//obtenemos el elemento i del List&amp;lt; List&amp;lt; String &amp;gt; &amp;gt;;</span>
        SoapObject element <span style="color: #339933;">=</span> response.<span style="color: #006633;">getProperty</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #666666; font-style: italic;">/*recorremos el List&amp;lt; String &amp;gt; i */</span>
        <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> j<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>j<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> element.<span style="color: #006633;">getPropertyCount</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	        <span style="color: #003399;">String</span> a <span style="color: #339933;">=</span> element.<span style="color: #006633;">getProperty</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	        <span style="color: #666666; font-style: italic;">//tratamos la cadena a</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p style="text-align: justify">Y con esto daríamos por concluída la lección sobre conexiones a servicios web .NET en Android usando ksoap2. Éstas conexiones nos vendrán muy bien por ejemplo para acceder a datos que están alojados en bases de datos en la red o simplemente para realizar operaciones fuera del alcance de nuestro dispositivo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yakiboo.net/conexion-entre-aplicaciones-android-y-servicios-web-net/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Servicios web .NET con conexión a MySQL</title>
		<link>http://www.yakiboo.net/servicios-web-net-con-conexion-a-mysql/</link>
		<comments>http://www.yakiboo.net/servicios-web-net-con-conexion-a-mysql/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 13:38:07 +0000</pubDate>
		<dc:creator>Jesús Manzano Camino</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Todo]]></category>
		<category><![CDATA[Tutoriales y guías]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Servicios Web]]></category>

		<guid isPermaLink="false">http://www.yakiboo.net/?p=2343</guid>
		<description><![CDATA[Éste es un pequeño artículo para quien se vea en la necesidad de crear servicios web bajo la plataforma .NET que tengan que acceder a una base de datos MySQL. ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify">Éste es un pequeño artículo para quien se vea en la necesidad de crear servicios web bajo la plataforma .NET que tengan que acceder a una base de datos MySQL.</p>
<h3>Introducción y herramientas</h3>
<p style="text-align: justify">Como trabajo fin de grado tengo que desarrollar una aplicación bajo Android que se comunique con una base de datos MYSQL en un servidor. Para realizar tal tarea pensé en crear un servicio web que hiciera de intermediario entre mi aplicación y el servidor con la base de datos, por desgracia tuve que hacerlo bajo Windows por lo que el servicio web estaría desarrollado en C# usando VIsual Web Developer Express (descargar <a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-web-developer-express" target="_blank">aquí</a>). Por ello el tuto está desarrollado bajo dichas plataformas.</p>
<h3>Introducción a los servicios web</h3>
<p style="text-align: justify">Los servicios web funcionan como una capa intermedia que enlaza en mi caso una aplicación Android con una base de datos, pero puede ser el enlace entre dos aplicaciones o entre una aplicación y la persistencia. De esta manera se hace transparente el acceso a distintos contenidos web por parte de las aplicaciones que desarrollemos.</p>
<h3>Creación de servicios web en .NET</h3>
<p style="text-align: justify">Bajo Visual Web Developer Express es sencillo crear un servicio web en C#, simplemente Archivo-&gt;Nuevo y elegimos un servicio web y bajo el lenguaje C#. Un Servicio web constará de una clase principal donde se alojarán los métodos públicos a los que se accederá a través de Internet y métodos internos a los que se accederá internamente. Para  métodos de acceso externo debemos escribir la etiqueta [WebMethod] antes de la declaración del método. Un ejemplo de servicio web:</p>
<div>
<div>

<div class="wp_syntax"><div class="code"><pre class="java">namespace Service
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">///</span>
    <span style="color: #666666; font-style: italic;">/// Descripción breve de Service1</span>
    <span style="color: #666666; font-style: italic;">///</span>
    <span style="color: #009900;">&#91;</span>WebService<span style="color: #009900;">&#40;</span>Namespace <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://ip:puerto/Service/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span>
    <span style="color: #009900;">&#91;</span>WebServiceBinding<span style="color: #009900;">&#40;</span>ConformsTo <span style="color: #339933;">=</span> WsiProfiles.<span style="color: #006633;">BasicProfile1_1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span>
    <span style="color: #009900;">&#91;</span><span style="color: #003399;">System</span>.<span style="color: #006633;">ComponentModel</span>.<span style="color: #006633;">ToolboxItem</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span>
    <span style="color: #666666; font-style: italic;">// Para permitir que se llame a este servicio Web desde un script, usando ASP.NET AJAX, quite la marca de comentario de la línea siguiente.</span>
    <span style="color: #666666; font-style: italic;">// [System.Web.Script.Services.ScriptService]</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Service1 <span style="color: #339933;">:</span> <span style="color: #003399;">System</span>.<span style="color: #006633;">Web</span>.<span style="color: #006633;">Services</span>.<span style="color: #006633;">WebService</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #009900;">&#91;</span>WebMethod<span style="color: #009900;">&#93;</span> <span style="color: #666666; font-style: italic;">//Marca del método que lo define como de acceso externo</span>
        <span style="color: #000000; font-weight: bold;">public</span> string hello<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #0000ff;">&quot;hello&quot;</span><span style="color: #339933;">;</span>
         <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h3>Acceso del servicio web a la base de datos mysql</h3>
<p style="text-align: justify">Ahora que ya se conoce el funcionamiento de los servicios web puedo pasar al enlace de dichos servicios web con una base de datos (mysql en este caso)..En el caso del servicio web hay que descargarse de la página de mysql el conector para .NET de <a href="http://dev.mysql.com/downloads/connector/net/6.3.html#downloads">aquí</a> (es la version 3.6.7 ya que la 6.4.4 da algunos errores a la hora de acceder a la base de datos) . Una vez descargado e instalado pasamos a añadirlo a nuestro servicio web. Para ello, vamos a la pestaña del explorador de soluciones y en la parte de referencias (carpeta References) hacemos click derecho-&gt;Agregar referencia. Buscamos en la pestaña de .NET la referencia a MySql.Data y damos a añadir.<br />
Una vez hecho esto ya podemos tener acceso a la base de datos desde el servicio web. En el caso de mi proyecto y obligado a trabajar con Windows Server, me encontré con el problema de que no conseguía acceder a la base de datos. LA SOLUCIÓN: instalar en el servidor la misma versión del conector que instalé en mi computadora para añadir al servicio web. De esta manera conseguí conectarme a la base de datos.</p>
<h3>Acceso a la base de datos desde servicios web (Código)</h3>
<p style="text-align: justify">Ahora por fin podemos ver ya en código el acceso a una base de datos mysql. Para acceder a la base de datos mysql debemos abrir primeramente una conexion con dicha base de datos. Para ello utilizaremos MysqlConnection, al cual hay que pasarle un String que definirá el path con los datos de la base de datos ( dirección de la base de datos, nombre de la base de datos, contraseña y usario). un ejemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="java">string path <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Server=xxx.xx.xx.xx; database=nombre_base_de_datos; password=pass;
User=user;&quot;</span><span style="color: #339933;">;</span>
MySqlConnection conexion <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> MySqlConnection<span style="color: #009900;">&#40;</span>path<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: justify">Una vez abierta la conexión, podemos realizar las consultas que necesitemos siguiendo uns pasos básicos. Existe una diferencia entre realizar una introducción o una consulta y se utilizarán distintos métodos para ello. Pongo un ejemplo de acceso y de consulta a una base de datos mysql:</p>

<div class="wp_syntax"><div class="code"><pre class="java">string path <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Server=xxx.xx.xx.xx; database=nombre_base_de_datos; password=pass; User=user;&quot;</span><span style="color: #339933;">;</span>
MySqlConnection conexion <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> MySqlConnection<span style="color: #009900;">&#40;</span>path<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
conexion.<span style="color: #006633;">Open</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
MySqlCommand command <span style="color: #339933;">=</span> conexion.<span style="color: #006633;">CreateCommand</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//creamos un comando de inserción en la base de datos</span>
command.<span style="color: #006633;">CommandText</span> <span style="color: #339933;">=</span>INSERT INTO table_name values <span style="color: #009900;">&#40;</span>  ”value1”,”value2”<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
command.<span style="color: #003399;">Connection</span> <span style="color: #339933;">=</span> conexion<span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> num <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
num <span style="color: #339933;">=</span> command.<span style="color: #006633;">ExecuteNonQuery</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//en el caso de una consulta</span>
 command.<span style="color: #006633;">CommandText</span> <span style="color: #339933;">=</span> SELECT <span style="color: #339933;">*</span> FROM table_name<span style="color: #339933;">;</span>
command.<span style="color: #003399;">Connection</span> <span style="color: #339933;">=</span> conection<span style="color: #339933;">;</span>
MySqlDataReader reader <span style="color: #339933;">=</span> command.<span style="color: #006633;">ExecuteReader</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//comprobamos que la consulta haya tenido efecto</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>reader.<span style="color: #006633;">HasRows</span> <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//gestionamos los datos devueltos</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//cerramos la conexión con la base de datos en cualquiera de los dos tipos de acceso</span>
command.<span style="color: #003399;">Connection</span>.<span style="color: #006633;">Close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: justify">Con eso bastaría, ya tendríamos un servicio web que se conectaría a una base de datos mysql.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.yakiboo.net/servicios-web-net-con-conexion-a-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Invitaciones para Diaspora *</title>
		<link>http://www.yakiboo.net/invitaciones-para-diaspora/</link>
		<comments>http://www.yakiboo.net/invitaciones-para-diaspora/#comments</comments>
		<pubDate>Sat, 09 Apr 2011 15:30:06 +0000</pubDate>
		<dc:creator>David Lovelace</dc:creator>
				<category><![CDATA[Ciencia y Tecnología]]></category>
		<category><![CDATA[Diaspora]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Herramientas online]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Todo]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.yakiboo.net/?p=2286</guid>
		<description><![CDATA[Hola, acabo de conseguir una invitación para Diaspora (una red social de software libre, descentralizada y privada) , y puedo invitar a algunas personas todavía. ¿Alguien quiere una invitación?. El ...]]></description>
			<content:encoded><![CDATA[<p>Hola, acabo de conseguir una invitación para <a title="Diaspora" href="https://joindiaspora.com/" target="_blank">Diaspora</a> (una red social de software libre, descentralizada y privada) , y puedo invitar a algunas personas todavía. ¿Alguien quiere una invitación?.</p>
<p>El proyecto, todavía están en fase Alpha pero va por muy buen camino. Para los que no sepan qué es Diaspora o quieran indagar un poco más <a title="Diaspora" href="https://secure.wikimedia.org/wikipedia/es/wiki/Di%C3%A1spora_%28inform%C3%A1tica%29" target="_blank">aquí </a>os dejo el link a la wikipedia.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yakiboo.net/invitaciones-para-diaspora/feed/</wfw:commentRss>
		<slash:comments>74</slash:comments>
		</item>
		<item>
		<title>Publicar en tu blog desde Emacs</title>
		<link>http://www.yakiboo.net/publicar-en-tu-blog-desde-emacs-aqui-tenemos-que-escribir-el-titulo-del-post/</link>
		<comments>http://www.yakiboo.net/publicar-en-tu-blog-desde-emacs-aqui-tenemos-que-escribir-el-titulo-del-post/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 15:30:08 +0000</pubDate>
		<dc:creator>sgm</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Todo]]></category>
		<category><![CDATA[Tutoriales y guías]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Blogger]]></category>
		<category><![CDATA[Emacs]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.yakiboo.net/publicar-en-tu-blog-desde-emacs-aqui-tenemos-que-escribir-el-titulo-del-post/</guid>
		<description><![CDATA[Quizá no seamos muchos los adictos a Emacs que tenemos un blog, pero si es tu caso seguro que alguna vez has pensado en lo cómodo que sería contar con ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">
Quizá no seamos muchos los adictos a Emacs que tenemos un blog, pero si es tu caso seguro que alguna vez has pensado en lo cómodo que sería contar con la potencia de Emacs a la hora de publicar una entrada en tu blog. Pues bien, en este post voy a explicar cómo utilizar Emacs para publicar en tu blog, sin tener ni que abrir el navegador. De hecho, este post ha sido publicado íntegramente desde Emacs, así que funciona muy bien.
</p>
<p style="align: justify">
Para conseguir nuestro objetivo vamos a utilizar un plugin de emacs llamado <a href="https://launchpad.net/weblogger-el">Weblogger</a>. A continuación explico los pasos a seguir.
</p>
<ul>
<li style="text-align:justify">En primer lugar, descargamos el archivo <strong>weblogger.el</strong> desde <a href="https://launchpad.net/weblogger-el">launchpad</a>, y el archivo <strong>xml-rpc</strong> desde <a href="http://www.emacswiki.org/emacs/xml-rpc.el">emacswiki.org</a> y los guardamos en el directorio de plugins de Emacs (si no existe, crealo), que en GNU/Linux es:

<div class="wp_syntax"><div class="code"><pre>    ~/.emacs.d/plugins</pre></div></div>

</li>
<li>Ahora editamos el archivo de configuración de Emacs, y le añadimos la siguiente línea:

<div class="wp_syntax"><div class="code"><pre class="lisp">    <span style="color: #66cc66;">&#40;</span>load<span style="color: #66cc66;">-</span>file <span style="color: #ff0000;">&quot;~/.emacs.d/plugins/weblogger.el&quot;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

</li>
<li style="text-align: justify">Ahora, la próxima vez que abramos Emacs, ya tendremos disponible el modo para publicar en WordPress. Si ejecutamos M-x (Alt+x, para los que no estén familiarizados con Emacs), escribimos &#8220;weblogger&#8221; y pulsamos un par de veces al tabulador, Emacs mostrará todas las posibilidades del plugin que hemos instalado.</li>
</ul>
<p style="text-align: justify;">Antes de publicar en nuestro blog, deberemos crear una configuración para dicho blog. Para ello debemos ejecutar el modo &#8220;weblogger-setup-weblog&#8221; e introducir los datos que se solicitan, asignándole un nombre al final a la configuración creada. Es importante destacar que a la hora de introducir la url, deberemos escribir la url de un archivo llamado &#8220;xmlrpc.php&#8221; que se encuentra en el directorio raíz de nuestro hosting. Por ejemplo, en mi caso es: http://www.yakiboo.net/xmlrpc.php.</p>
<p style="text-align: justify;">Una vez hayamos creado una configuración para nuestro blog, podremos publicar ejecutando el modo &#8220;weblogger-start-entry&#8221;. Aparecerá un buffer con el siguiente contenido:</p>

<div class="wp_syntax"><div class="code"><pre>Subject: Aquí tenemos que escribir el título del post
Keywords: Aquí tenemos que indicar las etiquetas
Date: 13 mar 2011 17:20:31 +0100
From: sgm
Newsgroup: YakiBoo
--text follows this line--
&nbsp;
Aquí tenemos que escribir nosotros el post.</pre></div></div>

<p style="text-align: justify">
Se supone que tenemos que emplear un tipo de lenguaje abreviado que interpreta el modo, con una sintaxis similar a la sintaxis WIKI. Este es el mayor problema que he encontrado, porque yo prefiero escribir en HTML, a pelo, pero la sintaxis que resalta es la otra; además hay algun pequeño problemilla con los cortes de línea automáticos, pero estoy seguro de que es cuestión de configurar bien la herramienta. Una vez que guardemos el buffer (con C-x C-s), la entrada será publicada automáticamente. Si hacemos alguna modificación y volvemos a guardar el buffer, automáticamente serán reflejados los cambios.
</p>
<p style="text-align: justify;">Existen más modos de &#8220;weblogger&#8221;, es cuestión de experimentar con ellos. Permiten abrir post existentes y editarlos, borrar posts, etc. Espero que os resulte útil.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yakiboo.net/publicar-en-tu-blog-desde-emacs-aqui-tenemos-que-escribir-el-titulo-del-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entrevista a Richard Stallman</title>
		<link>http://www.yakiboo.net/entrevista-a-richard-stallman/</link>
		<comments>http://www.yakiboo.net/entrevista-a-richard-stallman/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 07:46:58 +0000</pubDate>
		<dc:creator>sgm</dc:creator>
				<category><![CDATA[+]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Ocio]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Todo]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Stallman]]></category>

		<guid isPermaLink="false">http://www.yakiboo.net/?p=2156</guid>
		<description><![CDATA[Hoy os traigo una entrevista de televisión a Richard Stallman, para entretener un poco esta tarde de Domingo. La entrevista es de hace ya unos años. Al principio del vídeo ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Hoy os traigo una entrevista de televisión a Richard Stallman, para entretener un poco esta tarde de Domingo. La entrevista es de hace ya unos años. Al principio del vídeo hay una presentación en Catalán, pero la entrevista completa está en español. Seguro que la mayoría de vosotros no aprendéis nada que no sepáis sobre software libre, pero no está mal pasar un rato escuchando a Stallman. A este hombre le dan cuerda y no hay quien le pare.</p>
<p style="text-align: justify;">Sin más preámbulos, a continuación tenéis la entrevista, dividida en 3 partes:</p>
<p><center><br />
<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/7UKksU4EIRY" frameborder="0" allowfullscreen></iframe></p>
<p><iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/KefkyDZxdlQ" frameborder="0" allowfullscreen></iframe></p>
<p><iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/uW_haEgy-4E" frameborder="0" allowfullscreen></iframe><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yakiboo.net/entrevista-a-richard-stallman/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Puertos del Market de Android (Android Market)</title>
		<link>http://www.yakiboo.net/puertos-del-market-de-android-android-market/</link>
		<comments>http://www.yakiboo.net/puertos-del-market-de-android-android-market/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 12:56:59 +0000</pubDate>
		<dc:creator>David Lovelace</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Seguridad]]></category>

		<guid isPermaLink="false">http://www.yakiboo.net/?p=2102</guid>
		<description><![CDATA[Estaba buscando los puertos del Android Market puesto que normalmente utilizo una &#8220;red wifi&#8221; en la que todos los puertos (tanto salientes como entrantes) están bloqueados por defecto, y necesitaba ...]]></description>
			<content:encoded><![CDATA[<p>Estaba buscando los puertos del Android Market puesto que normalmente utilizo una &#8220;red wifi&#8221; en la que todos los puertos (tanto salientes como entrantes) están bloqueados por defecto, y necesitaba abrirlos para poder utilizar, cacharrear y guarrear el Market de Android. Menos mal que al final pude encontrar con una búsqueda en inglés (para confirmar mis sospechas) que los puertos que utiliza son:</p>
<p style="text-align: center;">External port: <strong>5228</strong> Internal port: <strong>5228</strong> Protocol: <strong>TCP/UDP</strong></p>
<p>Por si a alguien le interesa conocer los puertos de otras aplicaciones, lo encontré en esta <a href="http://findports.com/article/google-android-market" target="_blank">página web</a> que puede que os resulte de interés.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yakiboo.net/puertos-del-market-de-android-android-market/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ver PDFs en Chromium</title>
		<link>http://www.yakiboo.net/ver-pdfs-en-chromium/</link>
		<comments>http://www.yakiboo.net/ver-pdfs-en-chromium/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 19:08:28 +0000</pubDate>
		<dc:creator>sgm</dc:creator>
				<category><![CDATA[Chromium]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Todo]]></category>
		<category><![CDATA[Tutoriales y guías]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[PDF]]></category>

		<guid isPermaLink="false">http://www.yakiboo.net/?p=2057</guid>
		<description><![CDATA[Todo el que haya utilizado o utilice Chromium habrá sufrido deseos de lanzarle una piedra al monitor cada vez que dicho navegador es incapaz de abrir un archivo PDF incrustado ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Todo el que haya utilizado o utilice Chromium habrá sufrido deseos de lanzarle una piedra al monitor cada vez que dicho navegador es incapaz de abrir un archivo PDF incrustado en una web. Existe una conocida extensión que te permite ver archivos PDF con Google Docs, pero no funciona muy bien; además no sirve para PDFs incrustados, sino sólo para URLs completas de los archivos (y sólo algunas). Parece ser que Google está trabajando en ello, pero por el momento en Chromium bajo GNU/Linux no es posible ver PDFs por defecto.</p>
<p style="text-align: justify;">La solución es muy sencilla, y es similar a cómo se hace en Firefox. Debemos instalar el paquete mozplugger y configurarlo para utilizar el gran Evince desde Chromium. Para instalar mozplugger en Debian y derivados, ya sabéis:</p>
<pre style="text-align: justify; padding-left: 30px;"><strong>sudo apt-get install mozplugger</strong></pre>
<p></p>
<p style="text-align: justify;">Y una vez instalado, abrimos el archivo /etc/mozpluggerrc y comentamos la línea siguiente (añadiéndole un # delante):</p>
<pre style="text-align: justify; padding-left: 30px;"><strong>define(ACROREAD, [repeat swallow(acroread) fill :
acroread -openInNewWindow /a "$fragment" "$file"])</strong></pre>
<p></p>
<p style="text-align: justify;">Seguidamente añadimos lo siguiente (todo en una sola línea):</p>
<pre style="text-align: justify; padding-left: 30px;"><strong>define(ACROREAD, [repeat swallow(evince) fill needs_xembed :
evince "$file"])</strong></pre>
<p></p>
<p style="text-align: justify;">Y listo! Guardad los cambios, cerrad Chromium y volvedlo a abrir. Podreis disfrutar de PDFs en la web, tanto incrustados como a partir de la URL completa.</p>
<p style="text-align: right;">(Visto <a href="http://hyperlogos.org/blog/drink/embedding-evince-Chrome" target="_blank">aquí</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yakiboo.net/ver-pdfs-en-chromium/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Chrome OS presentado oficialmente</title>
		<link>http://www.yakiboo.net/chrome-os-presentado-oficialmente/</link>
		<comments>http://www.yakiboo.net/chrome-os-presentado-oficialmente/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 01:47:21 +0000</pubDate>
		<dc:creator>sgm</dc:creator>
				<category><![CDATA[Chrome OS]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Todo]]></category>

		<guid isPermaLink="false">http://www.yakiboo.net/?p=1872</guid>
		<description><![CDATA[Google acaba de presentar oficialmente su sistema operativo Chrome OS, del que ya sabíamos algo desde hace año y medio aproximadamente, y que se hacía esperar. Pese a que aún ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Google acaba de presentar oficialmente su sistema operativo Chrome OS, del que ya sabíamos algo desde hace año y medio aproximadamente, y que se hacía esperar. Pese a que aún no está disponible para el público (parece ser que lo estará a mediados del año que viene), conocemos algunas de sus características. Lo más destacable de este sistema operativo es la velocidad de arranque y la sincronización &#8211;pensad que ha sido ideado con un enfoque total a la nube&#8211;. La idea es que no notemos diferencia entre la ejecución de Chrome OS para nuestro usuario, sea desde el PC que sea.</p>
<p style="text-align: justify;">Unos tendrán muchas espectativas sobre Chrome OS; otros, sin embargo, pensarán que este nuevo sistema operativo no es más que un navegador Chrome con esteroides. Yo no daré una opinión hasta que lo pruebe, pero aún quedan unos meses para eso. Lo que sí debemos tener en mente es que Chrome OS no está enfocado al mismo tipo de usuario al que apuntan Windows, Mac OS X, GNU/Linux, etc. Chrome OS está pensado para la vida en la nube y el acceso rápido a internet, y no para tareas como el desarrollo de software o el diseño gráfico.</p>
<p style="text-align: justify;">De momento, podeis ver el vídeo de presentación de Chrome OS:</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="530" height="319" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/vFeD3qGVsrM?fs=1&amp;hl=es_ES" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="530" height="319" src="http://www.youtube.com/v/vFeD3qGVsrM?fs=1&amp;hl=es_ES" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: right;">(Visto <a href="http://alt1040.com/2010/12/google-lanza-chrome-os" target="_blank">aquí</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yakiboo.net/chrome-os-presentado-oficialmente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Google eBook Store&#8221;, el nuevo proyecto de Google</title>
		<link>http://www.yakiboo.net/google-ebook-store-el-nuevo-proyecto-de-google/</link>
		<comments>http://www.yakiboo.net/google-ebook-store-el-nuevo-proyecto-de-google/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 22:45:55 +0000</pubDate>
		<dc:creator>sgm</dc:creator>
				<category><![CDATA[+]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Móviles]]></category>
		<category><![CDATA[Ocio]]></category>
		<category><![CDATA[Todo]]></category>
		<category><![CDATA[eBooks]]></category>

		<guid isPermaLink="false">http://www.yakiboo.net/?p=1848</guid>
		<description><![CDATA[Google acaba de lanzar una tienda/lector de eBooks, tanto para dispositivos móviles (Android, iPhone, etc) como para cualquier navegador común desde un ordenador. El servicio en cuestion es Google eBook Store, ...]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Google acaba de lanzar una tienda/lector de eBooks, tanto para dispositivos móviles (Android, iPhone, etc) como para cualquier navegador común desde un ordenador. El servicio en cuestion es <a href="http://books.google.com/ebooks?hl=es" target="_blank">Google eBook Store</a>, y no sólo permite la compra de libros de su tienda, sino que, además, facilita la compra de ebooks en otras tiendas. Actualmente podemos acceder a los libros gratuitos, pero habrá que esperar para tener acceso a los libros de pago, ya que únicamente están disponibles en EEUU.</p>
<p style="text-align: justify;">Hay una demo para ver el lector adaptado a un navegador común. Lo he probado, y el aspecto es el siguiente:</p>
<p style="text-align: justify;"><a rel="attachment wp-att-1853" href="http://www.yakiboo.net/google-ebook-store-el-nuevo-proyecto-de-google/ebooks_store/"><img class="aligncenter size-full wp-image-1853" title="eBooks_store" src="http://www.yakiboo.net/uploads/eBooks_store.png" alt="" width="588" height="379" /></a></p>
<p style="text-align: justify;">Como puede verse, este lector online cuenta con los controles típicos para la lectura de eBooks (como ajustes el tamaño de letra, un índice desplegable, etc). Cabe destacar, además, la existencia de una barra de scroll con la que puedes desplazarte por todas las páginas del eBook.</p>
<p>Para terminar, podeis ver un vídeo demostrativo (en inglés) a continuación:</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/ZKEaypYJbb4?fs=1&amp;hl=es_ES&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="500" height="300" src="http://www.youtube.com/v/ZKEaypYJbb4?fs=1&amp;hl=es_ES&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: right;">(Visto <a href="http://www.xatakamovil.com/aplicaciones/presentan-google-ebooks-con-aplicaciones-para-android-y-ios" target="_blank">aquí</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yakiboo.net/google-ebook-store-el-nuevo-proyecto-de-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

