<?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>Actualidad Internetría</title>
	<atom:link href="http://www.internetria.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.internetria.com/blog</link>
	<description>El blog de Internetría</description>
	<lastBuildDate>Thu, 23 May 2013 10:16:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>¿Qué es un influencer?</title>
		<link>http://www.internetria.com/blog/2013/05/23/que-es-un-influencer/</link>
		<comments>http://www.internetria.com/blog/2013/05/23/que-es-un-influencer/#comments</comments>
		<pubDate>Thu, 23 May 2013 10:15:55 +0000</pubDate>
		<dc:creator>angeldelolmo</dc:creator>
				<category><![CDATA[Redes sociales]]></category>
		<category><![CDATA[C2C]]></category>
		<category><![CDATA[influencer]]></category>
		<category><![CDATA[influencers]]></category>
		<category><![CDATA[redes sociales]]></category>

		<guid isPermaLink="false">http://www.internetria.com/blog/?p=1364</guid>
		<description><![CDATA[En cualquier estrategia de marketing o posicionamiento cada vez tiene más relevancia el C2C (consumer to consumer) y en concreto el papel de los influencers. Podríamos definir a los influencers como personas con gran presencia y credibilidad en redes sociales &#8230; <a href="http://www.internetria.com/blog/2013/05/23/que-es-un-influencer/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En cualquier estrategia de marketing o posicionamiento cada vez tiene más relevancia el C2C (consumer to consumer) y en concreto el papel de los <em>influencers</em>.</p>
<p>Podríamos definir a los <em>influencers</em> como personas con gran presencia y credibilidad en redes sociales gracias a su conocimiento en cierto sector.</p>
<p><span id="more-1364"></span></p>
<p>La llegada de la web 2.0 presentó un panorama en el que la opinión de cualquier usuario podía generar una corriente de opinión. Desde hace tiempo en las facultades de periodismo se pone el ejemplo del escándalo Clinton-Lewinsky (1998) como una de las primeras noticias que se difundió antes por internet que en los medios tradicionales.</p>
<p>Hoy, ese es nuestro día a día y rara es la noticia que no se propaga más (y no necesariamente mejor&#8230;) por internet.</p>
<p>Eso es una oportunidad y a la vez un riesgo para cualquier marca o personaje preocupado por su éxito corporativo o personal.</p>
<p>Oscar del Santo, experto en reputación online defiende la siguiente fórmula:</p>
<p style="text-align: center;"><strong><span style="color: #009ce2; fot-size: 15px;">Éxito Online = (Nº de promotores de tu marca) x (Nivel de influencia de los promotores)</span></strong></p>
<p>Podríamos diferenciar <strong>dos tipos de <em>influencers</em></strong>:</p>
<p>&nbsp;</p>
<ul>
<li><strong>El nativo digital:</strong> es teóricamente imparcial. A menudo es influencer de forma espontánea e inconsciente; le gusta una marca y la recomienda. Otras veces es contactado por las propias marcas para probar sus productos puesto que aportan credibilidad.</li>
</ul>
<p>&nbsp;</p>
<ul>
<li><strong>La celebrity online:</strong> es básicamente eso, alguien influyente offline que en un momento dado extrapola esa popularidad a internet. Para las marcas, puede ser tan efectivo como la publicidad convencional y más barato.</li>
</ul>
<p>&nbsp;</p>
<p><strong></strong>Según un <a href="http://influencers.movistar.es/uploads/MovistarInfluencers.pdf">estudio de Movistar</a>, el 56% de las mujeres y el 54% de los hombres han tenido en cuenta alguna vez las recomendaciones de personas a las que siguen en entornos sociales.</p>
<p>Por lo tanto podríamos concluir que un <em>influencer</em> es <strong>un gran altavoz.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.internetria.com/blog/2013/05/23/que-es-un-influencer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Login en Android con jSon y Asynctask</title>
		<link>http://www.internetria.com/blog/2013/05/17/login-en-android-con-json-y-asynctask/</link>
		<comments>http://www.internetria.com/blog/2013/05/17/login-en-android-con-json-y-asynctask/#comments</comments>
		<pubDate>Fri, 17 May 2013 10:49:20 +0000</pubDate>
		<dc:creator>javiertellez</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[asynctask]]></category>
		<category><![CDATA[gson]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[login]]></category>

		<guid isPermaLink="false">http://www.internetria.com/blog/?p=1343</guid>
		<description><![CDATA[A la hora de crear un login para android existen miles de maneras para realizar esta tarea tan común, en este caso haremos un login con una información alojada en un jSon, y este, en un servidor de internet. Tengamos &#8230; <a href="http://www.internetria.com/blog/2013/05/17/login-en-android-con-json-y-asynctask/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A la hora de crear un login para android existen miles de maneras para realizar esta tarea tan común, en este caso haremos un login con una información alojada en un jSon, y este, en un servidor de internet.<span id="more-1343"></span></p>
<p>Tengamos en cuenta algunas consideraciones, las peticiones http deben <strong>ejecutarse de una manera asíncrona</strong>, el motivo es porque a partir de la versión 4 de android dará un error si estas peticiones se ejecutan en el hilo principal, y esto tiene sentido, pues este tipo de sentencias pueden ralentizar la aplicación, aún así, en las versiones 2.x de android funcionará si lo ejecutamos en el hilo principal. Para evitar errores usaremos un proceso Asynctask para comunicarnos con el servidor.</p>
<p>Veamos, primero necesitaremos el diseño de la actividad principal, algo simple, no se necesita pintar la capilla sixtina, el xml del diseño principal quedaría así.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:layout_width=&quot;fill_parent&quot;
    android:layout_height=&quot;fill_parent&quot;
    android:orientation=&quot;vertical&quot; &gt;
    &lt;TextView
        android:id=&quot;@+id/textView1&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;@string/usuario&quot;
        android:textAppearance=&quot;?android:attr/textAppearanceLarge&quot; /&gt;
    &lt;EditText
        android:id=&quot;@+id/txtUsuario&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:ems=&quot;10&quot; &gt;
        &lt;requestFocus /&gt;
    &lt;/EditText&gt;
    &lt;TextView
        android:id=&quot;@+id/textView2&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_marginTop=&quot;@dimen/margTop&quot;
        android:text=&quot;@string/pass&quot;
        android:textAppearance=&quot;?android:attr/textAppearanceLarge&quot; /&gt;
    &lt;EditText
        android:id=&quot;@+id/txtPass&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:ems=&quot;10&quot;
        android:inputType=&quot;textPassword&quot; /&gt;
    &lt;Button
        android:id=&quot;@+id/button1&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;center_horizontal&quot;
        android:layout_marginTop=&quot;@dimen/margTop&quot;
        android:padding=&quot;@dimen/padGeneral&quot;
        android:text=&quot;@string/send&quot; /&gt;
    &lt;TextView
        android:id=&quot;@+id/LblMensaje&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;center_horizontal&quot;
        android:padding=&quot;20dip&quot;
        android:textColor=&quot;#FF0000&quot;
        android:textSize=&quot;20sp&quot;
        android:textStyle=&quot;bold&quot; /&gt;
&lt;/LinearLayout&gt;
</pre>
<p>Bien, ahora dentro del java de la actividad principal, en el evento onCreate, asignamos un listener al botón para enviar el formulario, quedaría así:</p>
<pre class="brush: java; title: ; notranslate">
Button boton = (Button) findViewById(R.id.button1);
boton.setOnClickListener(new OnClickListener() {
	@Override
	public void onClick(View arg0) {
		//Instanciamos y ejecutamos el proceso Asnyctask
		new usersJson().execute();
	}
});
</pre>
<p>Una vez presionado el botón, se ejecuta un segundo hilo que se encargará de hacer una petición http a un json alojado en un servidor externo, para ello usaremos Asynctask, ya he hablado de ello en mi <a href="http://www.internetria.com/blog/2013/04/12/android-enviar-imagenes-por-webservice/" target="_blank">anterior post</a>, en él usaremo la clase Gson, pero antes deberemos <a href="http://code.google.com/p/google-gson/" target="_blank">descargárla</a>, e instalarla en nuestra carpeta libs del proyecto (luego, en eclipse, refrescamos, 2º botón en el jar, build path-&gt;add to build path).</p>
<p>La clase Asynctask debe tener 3 parámetros, pero sólo necesitaremos el tercero, para saber si el login es correcto o incorrecto.</p>
<pre class="brush: java; title: ; notranslate">
class usersJson extends AsyncTask&lt;Void, Void, Boolean&gt;
</pre>
<p>El método que ejecutará casi todo será el doInBackground y quedaría algo como así:</p>
<pre class="brush: java; title: ; notranslate">
@Override
protected Boolean doInBackground(Void... arg0) {
	try {
		EditText userEdit = (EditText) findViewById(R.id.txtUsuario);
		EditText passEdit = (EditText) findViewById(R.id.txtPass);
		 /*
		* Creamos el objeto Gson al que le pasamos una URL
		*/
		Gson miGson = new Gson();
		URL url = new URL(&quot;http://internetria.com/prueba.json&quot;);
		BufferedReader reader = new BufferedReader(
				new InputStreamReader(url.openStream(),
						Charset.forName(&quot;UTF-8&quot;)));

		//Pasamos la info del json a un objeto para consultarlo
		Usuarios data = miGson.fromJson(reader, Usuarios.class);
		List&lt;Usuario&gt; users = data.getUsers();

		for (int i = 0; i &lt; users.size(); i++) {

			if (userEdit.getText().toString()
					.equals(users.get(i).getName().toString())
					&amp;&amp; passEdit.getText().toString()
							.equals(users.get(i).getPass().toString())) {
				return true;
			} else
				return false;
		}

	} catch (Exception e) {
		Log.i(&quot;valores&quot;, &quot;Error al leer el json de internetria&quot;);
		e.printStackTrace();
	}

	return false;
}
</pre>
<p>Al comienzo del método, cogemos los valores de los EditText para comparárlos posteriormente, luego instanciamos las clases necesarias para la conexión, como Gson, al que le pasaremos un objeto BufferedReader que tenga una URL con la dirección del jSon.</p>
<p>Posteriormente volcaremos el contenido a una clase previamente creada de usuarios, y necesitaremos otra para cada elemento. Recorremos los usuarios y comprobamos si existe</p>
<pre class="brush: java; title: ; notranslate">

public class Usuarios {
	private List&lt;Usuario&gt; users;

	public List&lt;Usuario&gt; getUsers() {
		return users;
	}

	public void setUsers(List&lt;Usuario&gt; users) {
		this.users = users;
	}
}
public class Usuario {
	private String name;
	private String email;
	private String pass;
	private List&lt;Usuarios&gt; friends;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public List&lt;Usuarios&gt; getFriends() {
		return friends;
	}

	public void setFriends(List&lt;Usuarios&gt; friends) {
		this.friends = friends;
	}

	public String getPass() {
		return pass;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}
}
</pre>
<p>Al final de doInBackground, si el usuario existe devolvemos true o false en caso contrario, ese booleano va directo al método onPostExecute, en el que si es true lanzamos un intent a una actividad con un &#8216;Bienvenido!&#8217;, por el contrario si es false, se imprimirá en la pantalla de login un &#8216;login incorrecto&#8217;, el método quedaría así:</p>
<pre class="brush: java; title: ; notranslate">
protected void onPostExecute(Boolean result) {

	if (result) {
		pasar = new Intent(getApplicationContext(), Pagina_admin.class);
		startActivity(pasar);
	} else {
		InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
		imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
		TextView error = (TextView) findViewById(R.id.textError);
		error.setText(&quot;Login incorrecto&quot;);
	}
}
</pre>
<p>El objeto InputMethodManager lo usaremos para ocultar el teclado.</p>
<p>No se nos debe olvidar crear la  actividad a la que irá el login correcto y tocar el android_manifest para incluir <strong>permisos de internet y añadir las actividades</strong>.</p>
<p>Puedes <a href="http://www.internetria.com/blog/wp-content/uploads/2013/05/login_android.zip">DESCARGAR El CÓDIGO</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.internetria.com/blog/2013/05/17/login-en-android-con-json-y-asynctask/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NoSQL</title>
		<link>http://www.internetria.com/blog/2013/05/08/nosql/</link>
		<comments>http://www.internetria.com/blog/2013/05/08/nosql/#comments</comments>
		<pubDate>Wed, 08 May 2013 12:01:35 +0000</pubDate>
		<dc:creator>teresagarcia</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Redes sociales]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[BASE]]></category>
		<category><![CDATA[bases de datos]]></category>
		<category><![CDATA[CAP]]></category>
		<category><![CDATA[clave-valor]]></category>
		<category><![CDATA[documentos]]></category>
		<category><![CDATA[escalabilidad]]></category>
		<category><![CDATA[grafos]]></category>
		<category><![CDATA[mapeo de columnas]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.internetria.com/blog/?p=1255</guid>
		<description><![CDATA[Merece la pena hacer una pequeña introducción acerca de los sistemas NoSQL, tan diferentes de los clásicos sistema de gestión de bases de datos relacionales, y que tanto se están usando ahora. ¿Cuál es el origen de las bases de datos NoSQL? &#8230; <a href="http://www.internetria.com/blog/2013/05/08/nosql/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Merece la pena hacer una pequeña introducción acerca de los sistemas NoSQL, tan diferentes de los clásicos sistema de gestión de bases de datos relacionales, y que tanto se están usando ahora.</p>
<p><strong>¿Cuál es el origen de las bases de datos NoSQL?</strong></p>
<p>Lo primero, decir que aunque el término NoSql surgió hace pocos años el concepto de bases de datos no relacionales es muy antiguo pues existía antes de que surgieran las bases de datos relacionales, las cuales se llevan usando desde hace mucho tiempo.</p>
<p><span id="more-1255"></span></p>
<p>El lenguaje SQL tan utilizado se puede usar con diferentes motores de bases de datos y sus transacciones cumplen las propiedades del acrónimo <strong>ACID</strong> para ser confiables:</p>
<p><strong>A</strong>tomicity - <strong>Atomicidad</strong> =&gt; una transacción se ejecuta completa o no se ejecuta.<br />
<strong>C</strong>onsistency - <strong>Consistencia</strong> =&gt; sólo se guardan datos válidos.<br />
<strong>I</strong>solation - <strong>Aislamiento</strong> =&gt; las transacciones no se afectan entre sí.<br />
<strong>D</strong>urability -<strong> Durabilidad</strong> =&gt; una vez realizado un cambio éste perdura en el tiempo.</p>
<p><a href="http://www.internetria.com/blog/wp-content/uploads/2013/05/acid_image.jpeg"><img class="size-full wp-image-1257 alignnone" style="margin-top: 0px; margin-bottom: 0px;" title="ACID" src="http://www.internetria.com/blog/wp-content/uploads/2013/05/acid_image.jpeg" alt="" width="302" height="167" /></a></p>
<p>Pero cuando se tienen millones de transacciones contra una base de datos, como es el caso de aplicaciones como Facebook o Twitter, se presenta un <strong>problema de escalabilidad</strong>.</p>
<p>Hay dos tipos de escalabilidad:</p>
<p>- <strong>Escalabilidad vertical</strong> =&gt; ampliación de las capacidades del servidor (memoria, procesamiento, discos). La escalabilidad vertical es limitada, se puede dar el caso de tener un problema tan grande que por mucho que  se mejore el servidor no sea suficiente.</p>
<p>- <strong>Escalabilidad horizontal</strong> =&gt; ampliación del número de nodos. En lugar de 1 máquina se tienen varias, esto es, un sistema distribuido.</p>
<p><a href="http://www.internetria.com/blog/wp-content/uploads/2013/05/horizontal-vertical-scalability.jpeg"><img class="size-medium wp-image-1266 alignnone" title="horizontal-vertical-scalability" src="http://www.internetria.com/blog/wp-content/uploads/2013/05/horizontal-vertical-scalability-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Dado el auge en el que actualmente se encuentra la informática en la <strong>Nube</strong> surge la necesidad de bases de datos altamente escalables, por lo que se tiene que optar por <strong>sistemas distribuidos</strong>. Y puesto que las bases de datos relacionales son complicadas de escalar horizontalmente, se pasa a usar en estos casos bases de datos NoSQL.</p>
<p>Un poco de teoría para entender esto mejor:</p>
<p>Según el <strong>Teorema de Brewer</strong> (<strong>CAP</strong>) en un <strong>sistema de datos distribuidos</strong> se pueden garantizar sólo 2 de estas propiedades a la vez:</p>
<p><strong>C</strong>onsistency &#8211; <strong>Consistencia</strong> =&gt; todos los nodos ven los mismos datos al mismo tiempo.<br />
<strong>A</strong>valability &#8211; <strong>Disponibilidad</strong> =&gt; todas las peticiones reciben una respuesta.<br />
<strong>P</strong>artition tolerante  &#8211; <strong>Tolerancia a la partición</strong> =&gt; a menos que todos los nodos fallen el sistema puede seguir funcionando.</p>
<p><a href="http://www.internetria.com/blog/wp-content/uploads/2013/05/cap-teorema-imagen.png"><img class="size-medium wp-image-1280 alignright" title="cap-teorema-imagen" src="http://www.internetria.com/blog/wp-content/uploads/2013/05/cap-teorema-imagen-300x258.png" alt="" width="300" height="258" /></a></p>
<p>Como se refleja en la imagen, las bases de datos relacionales cumplen las 2 primeras propiedades del teorema de Brewer, consistencia y disponibilidad, pero generalmente no son tolerantes a la partición. Sin embargo las bases de datos NoSQL sí son tolerantes a la partición, pero hay algunas que no son consistentes y otras que no cumplen las propiedad de disponibilidad.</p>
<p>Por lo que se deduce que la alta escalabilidad buscada se obtiene a expensas de otras funcionalidades. De hecho a partir de este teorema surge el acrónimo <strong>BASE</strong>, como opuesto del ya explicado ACID (analogía a la relación entre los ácidos/bases en química), para describir las propiedades de ciertas bases de datos, como son las <strong>NoSQL</strong>, <span style="font-size: 14px;">donde <strong>prima la disponibilidad frente a la consistencia</strong>.</span></p>
<p><strong>B</strong>asically Available<span style="font-size: 14px;"><br />
</span><strong>S</strong>oft state<br />
<strong>E</strong>ventually consistent</p>
<p>Ésto describe sistemas básicamente disponibles que utilizan transacciones que se conforman con que eventualmente nos encontremos en un estado consistente y con ofrecernos respuestas aproximadas.</p>
<p><strong>¿Cuáles son sus características principales?</strong></p>
<p><span style="text-decoration: underline;">Ausencia de esquema</span></p>
<p>Las bases de datos NoSQL no imponen una estructura de datos en forma de tablas y relaciones entre ellas, sino que es más flexible y permite usar otros formatos como <strong>clave-valor</strong>, <strong>Mapeo de Columnas</strong>,<strong> Documentos</strong> o<strong> Grafos</strong>, donde la definición de los atributos no es fija, es decir, la estructura de lo equivalente a lo que conocemos como registros (filas de las tablas) no tiene por qué ser la misma para todos los elementos, pudiendo así almacenar sólo los atributos que interesen en cada uno de ellos, facilitando el polimorfismo de datos bajo una misma colección de información.</p>
<p><span style="text-decoration: underline;">Velocidad</span></p>
<p>Además de la carencia de un esquema predeterminado, la principal característica de las bases de datos NoSQL es que están pensadas para manipular enormes cantidades de información de manera muy rápida. Para ello suelen almacenar toda la información que pueden en memoria (utilizando el disco como una mera herramienta de persistencia).</p>
<p><span style="text-decoration: underline;">Escalabilidad horizontal sencilla</span></p>
<p>Como ya hemos comentado, estas bases de datos tienen una fácil escalabilidad horizontal. Permiten aumentar el rendimiento del sistema simplemente añadiendo más nodos, sin necesidad en muchos casos de realizar ninguna otra operación más que indicar al sistema cuáles son los nodos disponibles. Muchos sistemas NoSQL permiten utilizar consultas del tipo <strong>Map-Reduce</strong>, las cuales pueden ejecutarse en todos los nodos a la vez (cada uno operando sobre una porción de los datos) y reunir luego los resultados antes de devolverlos al cliente. La gran mayoría permiten también indicar otras cosas como el número de réplicas en que se hará una operación de escritura, para garantizar la disponibilidad. Y gracias al <strong>sharding</strong> y a no tener que replicar todos los datos en cada uno de los nodos, la información que se mueve entre las distintas instancias del motor de base de datos no tiene por qué ser demasiado intensiva.</p>
<p>Existen diferentes bases de datos NoSQL, cuyas características y formatos de almacenamiento varían, haciendo que el modelado para cada una de ellas tenga que ser distinto. A la hora de elegir un sistema NoSQL frente a uno SQL habrá que plantearse previamente si realmente se necesita, después elegir uno en concreto en base a nuestras necesidades, olvidarnos de las formas normales y guardar los datos de distinta manera en función de cómo va a ser el acceso a éstos.</p>
<p style="text-align: center;"><a href="http://www.internetria.com/blog/wp-content/uploads/2013/05/NoSQLTypes1.jpg"><img class="size-full wp-image-1294 aligncenter" title="NoSQLTypes" src="http://www.internetria.com/blog/wp-content/uploads/2013/05/NoSQLTypes1.jpg" alt="" width="485" height="323" /></a></p>
<p>&nbsp;</p>
<p>Podemos concluir que los sistemas NoSQL no remplazan a las bases de datos SQL que llevamos usando desde hace años, sino que son un complemento para casos particulares, de forma que su existencia nos permite no usar sólo las ya conocidas SQL.</p>
<p style="text-align: center;"><a href="http://www.internetria.com/blog/wp-content/uploads/2013/05/nosql3.png"><img class="size-full wp-image-1298 aligncenter" title="NotOnlySQL" src="http://www.internetria.com/blog/wp-content/uploads/2013/05/nosql3.png" alt="" width="200" height="77" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.internetria.com/blog/2013/05/08/nosql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Por cuarto año consecutivo, en el Barcelona Open Banc Sabadell 2013</title>
		<link>http://www.internetria.com/blog/2013/05/06/barcelona-open-banc-sabadell-2013/</link>
		<comments>http://www.internetria.com/blog/2013/05/06/barcelona-open-banc-sabadell-2013/#comments</comments>
		<pubDate>Mon, 06 May 2013 08:20:13 +0000</pubDate>
		<dc:creator>angeldelolmo</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[BancSabadell]]></category>
		<category><![CDATA[Barcelona Open]]></category>
		<category><![CDATA[Barcelona Open BancSabadell]]></category>
		<category><![CDATA[bcnopenbs]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[Godó]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.internetria.com/blog/?p=1246</guid>
		<description><![CDATA[Un año más, Internetría ha estado presente en el Barcelona Open Banc Sabadell. En esta ocasión, nuestra labor se ha centrado en crear contenidos para Banc Sabadell, el cuarto grupo bancario español que desde 2008 es title sponsor del legendario &#8230; <a href="http://www.internetria.com/blog/2013/05/06/barcelona-open-banc-sabadell-2013/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Un año más, Internetría ha estado presente en el <a href="http://www.internetria.com/proyecto/BOBS+-+Trofeo+Conde+de+God%C3%B3/38">Barcelona Open Banc Sabadell</a>. En esta ocasión, nuestra labor se ha centrado en crear contenidos para <a href="http://www.internetria.com/proyecto/Banc+Sabadell/35">Banc Sabadell</a>, el cuarto grupo bancario español que desde 2008 es title sponsor del legendario torneo de tenis del Real Club de Tenis de Barcelona.<span id="more-1246"></span></p>
<p>Además de acompañar al banco en la gestión de sus redes sociales, dimos cobertura al que se considera uno de los eventos deportivos más importantes del año en la ciudad, así como uno de los acontecimientos sociales de mayor resonancia. Nuestro equipo entrevistó a personajes como <a href="https://www.youtube.com/watch?v=c25D9bJ1H80">Vicente del Bosque</a>, <a href="https://www.youtube.com/watch?v=R9Wz3VCmIsc">Juan Mónaco</a>, <a href="https://www.youtube.com/watch?v=Tsja4NxcSRk">Tomas Berdych</a>, <a href="https://www.youtube.com/watch?v=OQihWiX5YLg">Tommy Robredo</a> o Toni Nadal.</p>
<p>Por otra parte, la presencia del banco en las instalaciones del Barcelona Open se potenció un año más,  gracias a las Social Media Walls, que mostraban gran parte de la conversación en redes sociales en torno al torneo de tenis. De esta forma, Banc Sabadell consigue capitalizar la actividad del torneo en twitter, facebook, youtube y flickr.</p>
<p><img class="alignnone" src="http://farm9.staticflickr.com/8523/8674511919_3301397592_z.jpg" alt="" width="640" height="427" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.internetria.com/blog/2013/05/06/barcelona-open-banc-sabadell-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pinterest, el mejor escaparate de las redes sociales</title>
		<link>http://www.internetria.com/blog/2013/04/23/pinterest-el-mejor-escaparate-de-las-redes-sociales/</link>
		<comments>http://www.internetria.com/blog/2013/04/23/pinterest-el-mejor-escaparate-de-las-redes-sociales/#comments</comments>
		<pubDate>Tue, 23 Apr 2013 17:09:30 +0000</pubDate>
		<dc:creator>patriciaolivares</dc:creator>
				<category><![CDATA[Redes sociales]]></category>
		<category><![CDATA[pinterest]]></category>
		<category><![CDATA[redes sociales]]></category>

		<guid isPermaLink="false">http://www.internetria.com/blog/?p=1226</guid>
		<description><![CDATA[Pinterest es una red social nacida en 2010 y aunque es de sobra conocida para los usuarios habituales de las redes, todavía es algo desconocida para ciertas marcas o firmas. Por eso, queremos dar a conocer este espacio como un &#8230; <a href="http://www.internetria.com/blog/2013/04/23/pinterest-el-mejor-escaparate-de-las-redes-sociales/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://pinterest.com" target="_blank">Pinterest</a> es una red social nacida en 2010 y aunque es de sobra conocida para los usuarios habituales de las redes, todavía es algo desconocida para ciertas marcas o firmas. Por eso, queremos dar a conocer este espacio como un buen <strong>escaparate visual empresarial</strong>.</p>
<p><span id="more-1226"></span></p>
<p>Pinterst sirve para compartir imágenes de tal manera que todos los usuarios se conecten a través de cosas que les resulten interesantes. Se pueden crear <strong>tableros temáticos</strong> con todo lo que quiera el usuario. Se suben imágenes o <em>pines</em>, se clasifican en los diferentes &#8220;<em>pinboards</em>&#8221; o tableros y se puede seguir a otros usuarios con los mismos gustos e intereses.</p>
<p><strong>Pinterest = Pin + Interest</strong><br />
<strong>Enganchar tus intereses</strong></p>
<p>El usuario crea su cuenta, sus tableros y sube sus imágenes, de tal forma que otros usuarios pueden <em>repinear</em> sus <em>pins</em>, es decir, pueden publicar dicha imagen en su propio tablero. Pinterest ha demostrado con creces su valor como red social no tanto para relacionar amigos ni seguidores sino para <strong>relacionar intereses</strong>. Se trata de descubrir y no tanto de buscar. Se ha demostrado que tiene un gran éxito entre el público femenino.</p>
<p><a href="http://www.internetria.com/blog/wp-content/uploads/2013/04/Pinterest-Arabel.jpg"><img class="alignnone size-full wp-image-1229" src="http://www.internetria.com/blog/wp-content/uploads/2013/04/Pinterest-Arabel.jpg" alt="" width="675" height="427" /></a></p>
<p>Además de su fácil manejo es importante destacar su función como un escaparate visual para las empresas. Todas aquellas marcas que quieran <strong>potenciar sus productos</strong> no sólo a través de sus web sino también de las redes sociales, Pinterest puede ser el lugar ideal para mostrar de una manera rápida y muy visual todo su potencial. Así lo hemos hecho desde Internetría con uno de nuestros clientes, <a href="http://pinterest.com/arabellebrusan/" target="_blank">Arabel Lebrusan</a>. Para esta firma de joyas, Pinterest es la red social perfecta para mostrar sus diseños y que los usuarios puedan compartirlos y darles mayor alcance.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.internetria.com/blog/2013/04/23/pinterest-el-mejor-escaparate-de-las-redes-sociales/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>El peso de las opiniones</title>
		<link>http://www.internetria.com/blog/2013/04/17/el-peso-de-las-opiniones/</link>
		<comments>http://www.internetria.com/blog/2013/04/17/el-peso-de-las-opiniones/#comments</comments>
		<pubDate>Wed, 17 Apr 2013 16:25:58 +0000</pubDate>
		<dc:creator>angeldelolmo</dc:creator>
				<category><![CDATA[Redes sociales]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[opiniones]]></category>
		<category><![CDATA[redes sociales]]></category>
		<category><![CDATA[TripAdvisor]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.internetria.com/blog/?p=1197</guid>
		<description><![CDATA[¿Es internet una muestra representativa de las opiniones de las personas? La participación del usuario en internet, y velocidad con la que se han convertido en baremos para los medios offline parece obviar algunos factores que deberíamos tener en cuenta. &#8230; <a href="http://www.internetria.com/blog/2013/04/17/el-peso-de-las-opiniones/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>¿Es internet una muestra representativa de las opiniones de las personas? </strong>La participación del usuario en internet, y velocidad con la que se han convertido en baremos para los medios offline parece obviar algunos factores que deberíamos tener en cuenta.</p>
<p>Damos 5 claves por las que cualquier opinión en internet debería ser relativizada:<span id="more-1197"></span></p>
<p>- Para empezar,<strong> la implantación de internet no representa ni en España ni en ningún país a la totalidad de la población</strong>. Se calcula que en torno al 70% de los hogares españoles tienen acceso a internet. Una gran cifra, sí, pero que ningún demógrafo interpretaría como el total.</p>
<p>- Si bien podríamos dividir las opiniones en positivas, negativas o neutras; está claro que en internet se necesita un motivo de peso para expresar tu opinión. Y por la propia naturaleza de las redes sociales que a menudo se acercan a la clásica atención al cliente, <strong>es más probable que un usuario exprese un gran enfado que una alegría</strong>. De hecho existe un nuevo tipo de <em>ciberbulling</em> que consiste en amenazar a los establecimientos con publicar opiniones negativos en webs como TripAdvisor a cambio de un trato preferente. (<a href="http://blogs.elpais.com/paco-nadal/2012/09/chantaje-comentarios-toprural-tripadvisor.html">Lee artículo relacionado</a>)</p>
<p>- Además, internet sigue siendo anónimo, lo que produce una dósis de valentía similar al anonimato de un graffitti, o de ese cartel pegado en el portal de la comunidad de vecinos con el objetivo de poner colorada a la vecina del sexto.  Y aunque en internet firmemos con nuestro propio nombre y foto, <strong>contamos con la deshinibición que nos aporta el no dar la cara personalmente.</strong></p>
<p>- Algunas redes sociales suponen en sí mismas un medio de comunicación. Según un estudio de <a href="http://blogs.hbr.org/cs/2009/06/new_twitter_research_men_follo.html">HBS</a> sobre Twitter analizaba la actividad de 300.000 usuarios de Twitter y destacaba que el 75% de los usuarios habían realizado menos de cuatro tweets en su vida. Es decir, que <strong>un número muy reducido de usuarios son los que capitalizan el contenido que se genera</strong> y del que los demás se hacen eco.</p>
<p>- La opinión de los usuarios en redes sociales está muy influenciada por sus propias cualidades. Si la radiografía del usuario responde a unos parámetros concretos de edad, sexo e intereses, está claro que <strong>cualquier tendencia que refleje esa plataforma será la de esos mismos usuarios</strong>.  O dicho de otra forma; cada vez que un término es Trending Topic, ¿cómo medimos el impacto de esa misma tendencia entre los No-Twitteros? Sin ir más lejos, algunos estudios mantienen que la opinión en Twitter es  más &#8220;liberal&#8221; que la opinión pública, posíblemente a raíz de la naturaleza crítica y reivindicativa de los usuarios.</p>
<p><img class="alignnone" title="twitter-more-liberal1" src="http://www.internetria.com/blog/wp-content/uploads/2013/04/twitter-more-liberal1.png" alt="" width="409" height="366" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.internetria.com/blog/2013/04/17/el-peso-de-las-opiniones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android: Enviar imágenes por webservice</title>
		<link>http://www.internetria.com/blog/2013/04/12/android-enviar-imagenes-por-webservice/</link>
		<comments>http://www.internetria.com/blog/2013/04/12/android-enviar-imagenes-por-webservice/#comments</comments>
		<pubDate>Fri, 12 Apr 2013 11:26:16 +0000</pubDate>
		<dc:creator>javiertellez</dc:creator>
				<category><![CDATA[Redes sociales]]></category>

		<guid isPermaLink="false">http://www.internetria.com/blog/?p=1170</guid>
		<description><![CDATA[Descargar APP Vamos a desarrollar una app fácil, sencilla y para toda la familia en la que usaremos diversas tecnologías y funciones específicas de Android, así como librerías externas. Necesitaremos una librería de Apache (descargar) que incluye API&#8217;s y métodos &#8230; <a href="http://www.internetria.com/blog/2013/04/12/android-enviar-imagenes-por-webservice/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.internetria.com/responsive_design/camara android.zip" target="_blank">Descargar APP</a></p>
<p>Vamos a desarrollar una app fácil, sencilla y para toda la familia en la que usaremos diversas tecnologías y funciones específicas de Android, así como librerías externas.</p>
<p>Necesitaremos una librería de Apache (<a href="http://hc.apache.org/downloads.cgi" target="_blank">descargar</a>) que incluye API&#8217;s y métodos para intercambiar información mediante el protocolo http, así como enviar datos y ficheros como un formulario Html común para recogerlo en un servidor, en nuestro caso PHP.<span id="more-1170"></span></p>
<p>Vayamos al grano, primero crearemos un proyecto Android, en este caso adaptado a una versión mínima de Android-8 y máxima 17. Una vez creado el proyecto crearemos una carpeta llamada &#8220;libs&#8221; en la que extraemos el Jar &#8220;httpmime-4.2.4.jar&#8221; ubicado en la carpeta libs del zip descargado anteriormente. Para agregarlo al proyecto en las propiedades del proyecto-&gt;Librerias-&gt;Añadir Jar, desplegamos nuestro proyecto y la carpeta libs, ahí encontraremos nuestro deseado Jar.</p>
<p>Antes de empezar con el código es aconsejable configurar en Android-manifest.xml y añadirle permisos de internet, puede darnos muchos dolores de cabeza más adelante a la hora de depurar.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;uses-permission android:name=&quot;android.permission.INTERNET&quot;/&gt;
</pre>
<p>La pantalla principal constará de un botón que ejecute la cámara y una imagen que será la foto que realicemos. El xml del layout quedaría así</p>
<pre class="brush: xml; title: ; notranslate">

&lt;RelativeLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:paddingBottom=&quot;@dimen/activity_vertical_margin&quot;
    android:paddingLeft=&quot;@dimen/activity_horizontal_margin&quot;
    android:paddingRight=&quot;@dimen/activity_horizontal_margin&quot;
    android:paddingTop=&quot;@dimen/activity_vertical_margin&quot;
    tools:context=&quot;.MainActivity&quot; &gt;

    &lt;TextView
        android:id=&quot;@+id/textView1&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_alignParentTop=&quot;true&quot;
        android:layout_centerHorizontal=&quot;true&quot;
        android:layout_marginTop=&quot;20dp&quot;
        android:text=&quot;@string/hello_world&quot; /&gt;

    &lt;Button
        android:id=&quot;@+id/button1&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_below=&quot;@+id/textView1&quot;
        android:layout_centerHorizontal=&quot;true&quot;
        android:layout_marginTop=&quot;21dp&quot;
        android:text=&quot;Camara&quot; /&gt;

    &lt;ImageView
        android:id=&quot;@+id/imageView1&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_centerHorizontal=&quot;true&quot;
        android:layout_centerVertical=&quot;true&quot;
        /&gt;

&lt;/RelativeLayout&gt;
</pre>
<p>Bueno pues ya tenemos la vista de la aplicación, ahora démoslo funcionalidad. Vayamos a MainActivity o java inicial de la aplicación.</p>
<p>El flujo de la app sería el siguiente:</p>
<ul>
<li>Clicamos el botón y lanzamos un intent para ejecutar la cámara</li>
<li>Realizamos una foto y posteriormente la guardamos mediante la clase MediaScannerConnectionClient, la mostramos en la imageView del layout</li>
<li>Lanzamos un proceso en segundo plano para subir la foto mientras que mostramos un dialog de carga</li>
<li>Una vez terminada la subida al servidor, mostramos un alert &#8220;Foto subida&#8221;</li>
</ul>
<p>En el método onCreate de la clase principal creamos la ruta y nombre donde guardaremos la foto</p>
<pre class="brush: java; title: ; notranslate">
aleatorio = new Double(Math.random() * 100).intValue();
foto = Environment.getExternalStorageDirectory() + &quot;/imagen&quot;+ aleatorio +&quot;.jpg&quot;;
</pre>
<p>Le damos vida al botón creando una variable de tipo Button y la vincularemos al botón creado en el layout, posteriormente le creamos el evento onClick()</p>
<pre class="brush: java; title: ; notranslate">
btnCamara = (Button) findViewById(R.id.button1);
btnCamara.setOnClickListener(new OnClickListener() {
	@Override
	public void onClick(View v) {
		Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
		Uri output = Uri.fromFile(new File(foto));
		intent.putExtra(MediaStore.EXTRA_OUTPUT, output);
		startActivityForResult(intent, TAKE_PICTURE);
	}
});
</pre>
<p>Analicemos el contenido del onClick(). Crearemos un Intent para acceder a la cámara y una dirección donde guardaremos la foto en caso de realizarse, con el putExtra le asignamos la salida a la dirección dada. Lanzamos el intent, TAKE_PICTURE es una constante que he definido con el valor de &#8217;1&#8242;, de esta manera lanzamos la intención de tomar una foto, con un 2 tendríamos la intención de recoger la foto de una biblioteca. El startActivity lo hemos cambiado por startActivityForResult porque lanzaremos el intent para que vuelva con resultados, en este caso una imagen.</p>
<p>Ahora declaramos el onActivityResult para obtener el resultado de la camara y gestionar el uso como queramos, veamos el código</p>
<pre class="brush: java; title: ; notranslate">
@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {

		ImageView iv = (ImageView) findViewById(R.id.imageView1);
		iv.setImageBitmap(BitmapFactory.decodeFile(foto));

		File file = new File(foto);
		if (file.exists()) {
			UploaderFoto nuevaTarea = new UploaderFoto();
			nuevaTarea.execute(foto);
		}
		else
			Toast.makeText(getApplicationContext(), &quot;No se ha realizado la foto&quot;, Toast.LENGTH_SHORT).show();

	}
</pre>
<p>Como vemos, instanciamos un objeto de imagen para asignarle la foto que realicemos con la cámara mediante el método setImageBitmap al que le tenemos que pasar una imagen codificada en mapa de bits, usaremos para esto BitmapFactory.decodeFile(rutaFoto);</p>
<p>Posteriormente creamos un objeto de tipo foto para saber si se ha guardado y existe esa foto, haremos unas cosas u otras en función de esa sentencia. En el caso de no haber foto (porque el usuario ha dado en el botón &#8216;atrás&#8217;) lanzamos un mensaje de que no se ha realizado la foto, por el contrario, si se ha realizado, procederemos a subir la imagen a un servidor que nos está esperando.</p>
<p>Para este procedimiento he recurrido a los procesos, ejecutaremos en segundo plano la subida del fichero mientras decimos al usuario que espere un momento.</p>
<p>Decidí usar la clase AsyncTask en vez de los threads y handlers porque me parece mucho más organizado y claro, pero cada uno que use lo que más acostumbrado esté. La clase AsyncTask de Android precisa de 3 parámetros</p>
<pre class="brush: java; title: ; notranslate">
class UploaderFoto extends AsyncTask{...}
</pre>
<ul>
<li><strong>Params</strong>:  Datos que pasaremos al comenzar la tarea</li>
<li><strong>Progress:</strong> Parámetros que necesitaremos para actualizar la <em>UI.</em></li>
<li><strong>Result: </strong>Dato que devolveremos una vez terminada la tarea.</li>
</ul>
<p>Además es necesario implementar el método doInBackground, y opcionalmente los métodos onPreExecute y onPostExecute, su ejecución es obvia <img src='http://www.internetria.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Veamos como nos quedaría la clase y la analizamos:</p>
<pre class="brush: java; title: ; notranslate">
class UploaderFoto extends AsyncTask{

		ProgressDialog pDialog;
		String miFoto = &quot;&quot;;

		@Override
		protected Void doInBackground(String... params) {
			miFoto = params[0];
			try {
				HttpClient httpclient = new DefaultHttpClient();
				httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
				HttpPost httppost = new HttpPost(&quot;http://tuservidor.com/upload.php&quot;);
				File file = new File(miFoto);
				MultipartEntity mpEntity = new MultipartEntity();
				ContentBody foto = new FileBody(file, &quot;image/jpeg&quot;);
				mpEntity.addPart(&quot;fotoUp&quot;, foto);
				httppost.setEntity(mpEntity);
				httpclient.execute(httppost);
				httpclient.getConnectionManager().shutdown();
			} catch (Exception e) {
				e.printStackTrace();
			}
			return null;
		}

		protected void onPreExecute() {
			super.onPreExecute();
			pDialog = new ProgressDialog(MainActivity.this);
	        pDialog.setMessage(&quot;Subiendo la imagen, espere.&quot; );
	        pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
	        pDialog.setCancelable(true);
	        pDialog.show();
		}
		protected void onPostExecute(Void result) {
			super.onPostExecute(result);
			pDialog.dismiss();
		}
}
</pre>
<p>Que no cunda el pánico, vayamos por partes, usaremos 2 constantes una de tipo Dialog para el dialogo de progreso de subida de la foto y otra que guarda la ruta absoluta de la foto. La clase no devuelve nada pero sí recibe parámetros de String, solamente le recibirá la ruta absoluta de la foto que llegará recien horneada del método execute de una instancia de esta clase.</p>
<p>El método doInBackground hace casi todo, con HttpClient tenemos una clase para realizar comunicaciones HTTP, con HttpPost, podemos enviar información de tipo POST y con MultipartEntity, podemos enviar información y archivos. Básicamente el flujo de este apartado es, creo un cliente de comunicación en el que enviaré información por post a una URL y encapsularé datos y ficheros para ser enviados desde ese cliente. Todo esto debe estar dentro de una transacción try-catch.</p>
<p>Pero antes de que se ejecute doInBackground, se ejecuta onPreExecute y despues de doInBackground se ejecuta onPostExecute. Es muy importante saber este flujo al igual que con el método doInBackground <strong>NO</strong> podemos tocar la interfaz de usuario (UI principal), pero sí con el resto de eventos, por lo tanto en el onPreExecute lanzamos el dialog y con el onPostExecute lo quitamos.</p>
<p>En el servidor PHP recojemos la imagén de la siguiente manera</p>
<pre class="brush: php; title: ; notranslate">
$ruta = &quot;fotos/&quot; . basename( $_FILES['fotoUp']['name']);
if(move_uploaded_file($_FILES['fotoUp']['tmp_name'], $ruta))
       chmod (&quot;uploads/&quot;.basename( $_FILES['fotoUp']['name']), 0644);
</pre>
<p>Ahora a probar suerte y depurar. </p>
<p>El código completo:</p>
<pre class="brush: java; collapse: true; light: false; title: ; toolbar: true; notranslate">
public class MainActivity extends Activity {

	Button btnCamara;
	private String foto;
	private static int TAKE_PICTURE = 1;
	double aleatorio = 0;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		//Para crear un nombre diferente para la foto
		aleatorio = new Double(Math.random() * 100).intValue();
		foto = Environment.getExternalStorageDirectory() + &quot;/imagen&quot;+ aleatorio +&quot;.jpg&quot;;

		btnCamara = (Button) findViewById(R.id.button1);
		btnCamara.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
				Uri output = Uri.fromFile(new File(foto));
				intent.putExtra(MediaStore.EXTRA_OUTPUT, output);
				startActivityForResult(intent, TAKE_PICTURE); // 1 para la camara, 2 para la galeria
			}
		});
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {

		ImageView iv = (ImageView) findViewById(R.id.imageView1);
		iv.setImageBitmap(BitmapFactory.decodeFile(foto));

		File file = new File(foto);
		if (file.exists()) {
			UploaderFoto nuevaTarea = new UploaderFoto();
			nuevaTarea.execute(foto);
		}
		else
			Toast.makeText(getApplicationContext(), &quot;No se ha realizado la foto&quot;, Toast.LENGTH_SHORT).show();

	}

	class UploaderFoto extends AsyncTask{

		ProgressDialog pDialog;
		String miFoto = &quot;&quot;;

		@Override
		protected Void doInBackground(String... params) {
			miFoto = params[0];
			try {
				HttpClient httpclient = new DefaultHttpClient();
				httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
				HttpPost httppost = new HttpPost(&quot;http://servidor.com/up.php&quot;);
				File file = new File(miFoto);
				MultipartEntity mpEntity = new MultipartEntity();
				ContentBody foto = new FileBody(file, &quot;image/jpeg&quot;);
				mpEntity.addPart(&quot;fotoUp&quot;, foto);
				httppost.setEntity(mpEntity);
				httpclient.execute(httppost);
				httpclient.getConnectionManager().shutdown();
			} catch (Exception e) {
				e.printStackTrace();
			}
			return null;
		}

		protected void onPreExecute() {
			super.onPreExecute();
			pDialog = new ProgressDialog(MainActivity.this);
	        pDialog.setMessage(&quot;Subiendo la imagen, espere.&quot; );
	        pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
	        pDialog.setCancelable(true);
	        pDialog.show();
		}
		protected void onPostExecute(Void result) {
			super.onPostExecute(result);
			pDialog.dismiss();
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.internetria.com/blog/2013/04/12/android-enviar-imagenes-por-webservice/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>iOS Table View</title>
		<link>http://www.internetria.com/blog/2013/04/04/ios-table-view/</link>
		<comments>http://www.internetria.com/blog/2013/04/04/ios-table-view/#comments</comments>
		<pubDate>Thu, 04 Apr 2013 12:13:14 +0000</pubDate>
		<dc:creator>teresagarcia</dc:creator>
				<category><![CDATA[Apps móviles]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[desarrollo aplicaciones móviles]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[patrones de diseño]]></category>
		<category><![CDATA[table view]]></category>

		<guid isPermaLink="false">http://www.internetria.com/blog/?p=1117</guid>
		<description><![CDATA[El componente Table View es uno de los objetos de interfaz de usuario más usados en las aplicaciones de iOS. Esto es así porque es tremendamente versátil. Vamos a introducir algunos conceptos fundamentales para entender la lógica y comportamiento de este &#8230; <a href="http://www.internetria.com/blog/2013/04/04/ios-table-view/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>El componente <a href="http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/tableview_iphone/AboutTableViewsiPhone/AboutTableViewsiPhone.html#//apple_ref/doc/uid/TP40007451-CH1-SW1">Table View</a> es uno de los objetos de interfaz de usuario más usados en las aplicaciones de iOS. Esto es así porque es tremendamente versátil.</p>
<p>Vamos a introducir algunos conceptos fundamentales para entender la lógica y comportamiento de este componente.</p>
<p><span id="more-1117"></span></p>
<p>La Table View presenta datos en una tabla de una sola columna y varias filas, en realidad es más una lista que una tabla. Se muestra un elemento por fila (row).</p>
<p>Es una instancia de la clase <a href="http://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html#//apple_ref/occ/cl/UITableView">UITableView</a> y puede ser de 2 tipos:<br />
- Plain: todos los elementos se disponen en la lista de manera seguida<br />
- Grouped: los elementos se dividen en diferentes secciones</p>
<p>En la siguiente imagen  se pueden ver los 2 tipos de estilo que puede tener, el primero es &#8220;plain&#8221; y el segundo &#8220;grouped&#8221;.</p>
<p><a href="http://www.internetria.com/blog/wp-content/uploads/2013/04/Plain_vs_grouped_table.png"><img class="alignnone size-full wp-image-1120" title="Plain vs Grouped table" src="http://www.internetria.com/blog/wp-content/uploads/2013/04/Plain_vs_grouped_table.png" alt="" width="620" height="378" /></a></p>
<p>La vista de cada elemento dentro de la tabla consiste en una celda, &#8220;cell&#8221;, instancia de la clase <a href="http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITableViewCell_Class/Reference/Reference.html">UITableViewCell</a>, que muestra los datos de una fila determinada en un  momento determinado. Una misma celda se puede reutilizar para mostrar información de otras filas.</p>
<p>En Objective-C se usa la herencia para dotar a las apps de un comportamiento específico. Esto consiste en crear una subclase de otra clase ya existente que también amplía o modifica los atributos y comportamiento de la superclase. También se usan otras técnicas basadas en patrones de diseño.</p>
<p>Antes de continuar hablando sobre la Table View vamos a introducir los <strong>3 patrones de diseño</strong> más importantes en la programación iOs:</p>
<p><strong>1.-  M<strong>odelo Vista Controlador (m<strong>odel view controller</strong>)</strong></strong></p>
<p><strong></strong> Este patrón se abrevia como MVC e implica que todos los objetos de la aplicación se dividan en 3 grupos:</p>
<p>- Objetos del <span style="text-decoration: underline;">modelo</span>: contienen los datos y las operaciones que se realizan con ellos.<br />
- Objetos de la <span style="text-decoration: underline;">vista</span>: constituyen la parte visual de la app (imágenes, botones, etc.)<br />
- Objetos del <span style="text-decoration: underline;">controlador</span>: conectan el modelo con las vistas.</p>
<p><a href="http://www.internetria.com/blog/wp-content/uploads/2013/04/model_view_controller_2x1.png"><img class="alignnone size-full wp-image-1119" title="Model View Controller" src="http://www.internetria.com/blog/wp-content/uploads/2013/04/model_view_controller_2x1.png" alt="" width="879" height="252" /></a></p>
<p><strong>2.-  Delegación (d<strong>elegation</strong>)</strong></p>
<p>La delegación, como su propio nombre indica, consiste en delegar en un objeto la capacidad de responder ante eventos ocurridos en otro objeto. El proceso de delegación se hace a través de la propiedad &#8220;delegate&#8221;. Se asigna a la propiedad &#8220;delegate&#8221; de un objeto la clase que se quiere que sea la encargada de manipular los eventos de ese objeto.</p>
<p><a href="http://www.internetria.com/blog/wp-content/uploads/2013/04/delegacion.png"><img class="alignnone  wp-image-1128" title="Delegation" src="http://www.internetria.com/blog/wp-content/uploads/2013/04/delegacion.png" alt="" width="620" height="293" /></a></p>
<p><strong>3.- Protocolo (protocol)</strong></p>
<p>Un protocolo consiste en la declaración de un conjunto de métodos sin implementar. No podemos hacer instancias de ellos ni crear variables de instancia dentro de ellos. Sus métodos son implementados en las clases que “son conformes” a ese protocolo.</p>
<p>Los protocolos son lo equivalente a las interfaces en otros lenguajes de programación. Permiten la comunicación entre objetos no relacionados por herencia,  por lo que igual que la delegación son una alternativa a la utilización de subclases y son a menudo parte  de una implementación de delegación. Un <strong>protocolo delegado</strong> es aquel usado para la delegación.</p>
<p>&nbsp;</p>
<figure><img title="Protocol" src="http://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/chapters/StreamlineYourAppswithDesignPatterns/Art/protocol_2x.png" alt="image: ../Art/protocol_2x.png" width="544" height="214" /></figure>
<p>&nbsp;</p>
<p>Volviendo a la <strong>Table View</strong>, ésta debe tener asociado un controlador que siguiendo el <strong>MVC</strong> conecte los datos del modelo con la tabla. De hecho, en el Xcode (entorno de desarrollo integrado de Apple) podemos utilizar para la interfaz de usuario un objeto denominado Table View Controller que incluye el controlador (UITableViewController) y la vista (UITableView).</p>
<p><a href="http://www.internetria.com/blog/wp-content/uploads/2013/04/Model-View-Controller.png"><img class="alignnone size-full wp-image-1121" title="Model-View-Controller" src="http://www.internetria.com/blog/wp-content/uploads/2013/04/Model-View-Controller.png" alt="" width="750" height="471" /></a></p>
<p>A la Table View no le importa quién es la fuente de los datos (data source) ni qué tipo de datos se están tratando.  Detecta cuándo se ha presionado una fila y pide un dato cuando lo necesita pero la responsabilidad de manejar los datos o lo que se hace en respuesta a los eventos asociados a la Table View no es suya sino de sus delegados.</p>
<p>Normalmente los componentes sólo tienen un delegado (delegate) pero la Table View delega sus deberes en 2 ayudantes diferentes:</p>
<p><strong>UITableViewDataSource</strong>: se encarga de poner las filas, es decir, los datos, en la tabla.</p>
<p><strong>UITableViewDelegate</strong>: maneja el evento de selección de filas además de otras tareas.</p>
<p>Normalmente el <strong>View Controller</strong> hace el papel de <strong>data source</strong> e implementa los siguientes  métodos:</p>
<p>- Método que se invoca cuando la Table View necesita saber cuántas filas de datos hay</p>
<pre class="brush: php; title: ; notranslate">
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   return 1;
}
</pre>
<p>- Método que se invoca cuando la Table View necesita mostrar los datos de una determinada fila. El objeto devuelto es de la clase UITableViewCell porque, como hemos dicho antes, los datos se visualizan en una celda (Cell)</p>
<pre class="brush: php; title: ; notranslate">
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@&quot;ChecklistItem&quot;];

   return cell;
}
</pre>
<p>En la siguiente imagen se representa la comunicación entre el View Controller como fuente de datos (data source) y la Table View.</p>
<p><a href="http://www.internetria.com/blog/wp-content/uploads/2013/04/Data_source.png"><img class="alignnone size-full wp-image-1123" title="Data source" src="http://www.internetria.com/blog/wp-content/uploads/2013/04/Data_source.png" alt="" width="750" height="469" /></a></p>
<p>Como hemos explicado antes la Table View también delega en el denominado<strong> Delegate</strong>, que se encarga de personalizar su apariencia y comportamiento.</p>
<p>El siguiente método delegado gestiona los toques en las filas de datos. Implementa qué se hace <strong>después</strong> (por eso el prefijo &#8220;did&#8221;) de seleccionar una fila.</p>
<pre class="brush: php; title: ; notranslate">
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
</pre>
<p>El siguiente método también gestiona los toques en las filas de datos. Implementa qué se hace <strong>antes</strong> (por eso el prefijo &#8220;will&#8221;) de seleccionar una fila.</p>
<pre class="brush: cpp; title: ; notranslate">
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    return nil;
}
</pre>
<p>Para que quede más claro podemos decir que cuando el usuario selecciona una fila de la tabla ésta envía al delegate un mensaje &#8220;willSelectRowAtIndexPath&#8221; que dice &#8220;hola delegado, voy a seleccionar esta fila&#8221;, el método delegado al devolver &#8220;nil&#8221; está diciendo &#8220;lo siento pero no estás autorizado para hacerlo&#8221;.</p>
<p>La siguiente imagen intenta plasmar de manera visual un resumen de lo explicado.</p>
<p><a href="http://www.internetria.com/blog/wp-content/uploads/2013/04/Data_model_and_cells1.png"><img class="alignnone size-full wp-image-1139" title="Table View resumen" src="http://www.internetria.com/blog/wp-content/uploads/2013/04/Data_model_and_cells1.png" alt="" width="750" height="466" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.internetria.com/blog/2013/04/04/ios-table-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La nueva colección de Arabel Lebrusan llega a España</title>
		<link>http://www.internetria.com/blog/2013/03/26/la-nueva-coleccion-de-arabel-lebrusan-llega-a-espana/</link>
		<comments>http://www.internetria.com/blog/2013/03/26/la-nueva-coleccion-de-arabel-lebrusan-llega-a-espana/#comments</comments>
		<pubDate>Tue, 26 Mar 2013 12:51:53 +0000</pubDate>
		<dc:creator>patriciaolivares</dc:creator>
				<category><![CDATA[Clientes]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Redes sociales]]></category>
		<category><![CDATA[Arabel Lebrusan]]></category>
		<category><![CDATA[convocatoria]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[joyas]]></category>

		<guid isPermaLink="false">http://www.internetria.com/blog/?p=1100</guid>
		<description><![CDATA[La marca de joyas Arabel Lebrusan confía en Internetría para llevar sus redes sociales aprovechando el lanzamiento de su nueva colección. Arabel es una joven diseñadora española afincada en Londres que ha viajado por todo el mundo descubriendo técnicas para &#8230; <a href="http://www.internetria.com/blog/2013/03/26/la-nueva-coleccion-de-arabel-lebrusan-llega-a-espana/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>La marca de joyas<a href="http://www.arabellebrusan.es"> Arabel Lebrusan</a> confía en Internetría para llevar sus redes sociales aprovechando el lanzamiento de su nueva colección.</p>
<p>Arabel es una joven diseñadora española afincada en Londres que ha viajado por todo el mundo descubriendo técnicas para trabajar la joyería. Su talento y su esfuerzo le han servido para hacerse un hueco en la moda y conseguir que la Princesa de Asturias o las hermanas Sienna y Savannah Miller luzcan algunas de sus joyas en diversos actos públicos.</p>
<p>Con motivo de la presentación en España de su nueva colección, se celebró un evento en Las Mascareñas, un acogedor espacio en el que la moda, el arte y la artesanía conviven a la perfección. La madrina de excepción fue la artista Chenoa que estaba radiante con las joyas de Arabel Lebrusan. La convocatoria fue todo un éxito, consiguiendo gran repercusión tanto en televisión como prensa y revistas digitales.</p>
<p>A partir de ahora se nos plantea el reto de afianzar la imagen de la firma en España, aumentando sus seguidores y su interacción en las redes sociales.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.internetria.com/blog/2013/03/26/la-nueva-coleccion-de-arabel-lebrusan-llega-a-espana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entrevista a los administradores de &#8220;Postureo&#8221;</title>
		<link>http://www.internetria.com/blog/2013/03/21/entrevista-a-los-administradores-de-postureo/</link>
		<comments>http://www.internetria.com/blog/2013/03/21/entrevista-a-los-administradores-de-postureo/#comments</comments>
		<pubDate>Thu, 21 Mar 2013 09:47:39 +0000</pubDate>
		<dc:creator>angeldelolmo</dc:creator>
				<category><![CDATA[Redes sociales]]></category>
		<category><![CDATA[entrevistas]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://www.internetria.com/blog/?p=1075</guid>
		<description><![CDATA[En nuestra agencia creemos que los verdaderos expertos en redes sociales no están dando charlas de social media, sino en las comunidades que de manera espontánea han surgido en internet. No hablan de lo mucho que saben de &#8220;reach&#8221;, de &#8230; <a href="http://www.internetria.com/blog/2013/03/21/entrevista-a-los-administradores-de-postureo/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En nuestra agencia creemos que los verdaderos expertos en redes sociales no están dando charlas de social media, sino en las comunidades que de manera espontánea han surgido en internet.</p>
<p>No hablan de lo mucho que saben de &#8220;reach&#8221;, de &#8220;KPI&#8217;s&#8221; o de &#8220;Los 10 errores de las empresas en redes sociales&#8221; sino que sencillamente nos divierten, o informan, y cada día ven crecer su comunidad con una viralidad que ya querría para sí cualquier marca.</p>
<p>Un buen ejemplo de ello es &#8220;Postureo&#8221; que con frescura e ironía parodian todas aquellas situaciones que hacemos &#8220;de cara a la galería&#8221;. Lo que empezó como una página de Facebook es hoy todo un fenómeno online. Cualquier estado publicado consigue a los pocos minutos miles de comentarios, han conseguido varios TT en twitter, e incluso han traspasado la frontera offline apareciendo en medios la revista GQ y sobre todo; en el vocabulario de muchas personas.</p>
<p>Hoy en Internetría sometemos a sus administradores a nuestro cuestionario:</p>
<p><span id="more-1075"></span><strong>I: ¿PC o Mac?</strong><br />
P: Pues depende a quien le preguntes o el uso que le quieras dar a tu ordenador. Ambos tienen cosas geniales y han evolucionado diferente el tiempo. ¿Puede que hay gente que se compre un Mac sólo por moda? Por supuesto,  es una marca que ha creado el concepto del ordenador como diseño no sólo como un armatoste de cables. Pero no hay que ser injusto con el PC, no te sabría decir.</p>
<p><strong>I: ¿Cuál es vuestro homepage o la página que visitais a diario?</strong><br />
P: Tenemos miles de homepage y muy variadas. Pero aunque os parezca extraño las que más visitamos es la prensa nacional. ¿Qué poco chic no?</p>
<p><strong>I: ¿Sin qué app no podéis vivir?</strong><br />
P: Hay una app para la que dentro de poco no podremos parar de vivir, es únicamente para iPad y es el magazine Unbreak. Se lanzará en abril y tiene una pinta increible.</p>
<p><strong>I: Un personaje al que seguir en internet:</strong><br />
P: Podéis ver nuestros following, son gente de la radio, la televisión, la prensa o la música. Especialmente interesante nos parecen los tweets del cineasta <a href="https://twitter.com/rodrigocor7es">Rodrigo Cortés</a> siempre afilados e inteligentes. Pero si quereis carnaza, que imagino que sí, <a href="https://twitter.com/carvalladolid">Carlos Valladolid</a>, es el twitero mas irónico que conozco.</p>
<p><strong><a href="http://www.internetria.com/blog/wp-content/uploads/2013/03/429622_409148099111775_969556304_n.jpg"><img class="wp-image-1081 alignright" title="429622_409148099111775_969556304_n" src="http://www.internetria.com/blog/wp-content/uploads/2013/03/429622_409148099111775_969556304_n.jpg" alt="" width="164" height="278" /></a>I: ¿Qué es lo último que comprasteis online?</strong><br />
P: La verdad que fue un regalo de la tienda <a href="https://www.facebook.com/pages/Mr-wonderful-dise%C3%B1o-gr%C3%A1fico-para-eventos-no-aburridos-/165286816857638">Mr. Wonderful</a>.</p>
<p><strong>I: ¿Sois más de Facebook o más de Twitter?</strong><br />
P: Son redes diferentes para usos diferentes, el facebook es el postureo por antonomasia y el twitter es una página tremendamente viral de una información vibrante cada segundo. Somos muy de las dos.</p>
<p><strong>I: ¿Os ha jugado alguna mala pasada internet?</strong><br />
P: No, no somos tan relevantes y si lo somos no nos damos cuenta. Nuestra página se basa fundamentalmente en el respeto. Detestábamos todas esas páginas anónimas en twitter que criticaban aquello cuanto veian de manera desproporcionada. Nosotros estamos ocultos, sí, pero no insultamos a nadie, ni usamos malas formas, ¿Qué necesidad hay de hacerlo? Si alguna vez nos hemos equivocado la gente entiende que no es una nuestra intención y nos respeta bastante.</p>
<p><strong>I: ¿Quién hay detrás de @Postureo?¿Alguno os dedicáis al márketing o la comunicación? ¿Os ha surgido alguna oportunidad a raíz del éxito de vuestras cuentas en Twitter o Facebook…?</strong><br />
P: Detrás de @Postureo_ hay varias personas pero no vamos a desvelar nada, es mas divertido así. En realidad se pueden unir los puntos muy fácilmente.<br />
Oportunidades nos han surgidos muchas,  muchísimas. La gente intenta pegarse a nosotros por nuestro éxito y lo entendemos. Nos han hecho muchas entrevistas, nos han nombrado en medios como en la Gala de los Oscar de Canal +, en la Ser, en los 40 principales, en revistas como la GQ, Vice, medios como MTV&#8230; es una lista tan larga que nos abruma.</p>
<p><strong>I: Para la revista GQ definisteis en &#8220;postureo&#8221; como “<em>una actitud con la que la gente juega a ser lo que no es o al menos a hacer cosas que esperan un reconocimiento</em>”, entonces ¿el postureo está en todas los grupos sociales? ¿Cómo creéis que entiende el público mainstream los chistes sobre Miranda Makarof u otros personajes o elementos de determinadas subculturas?</strong><br />
P: El postureo por supuesto que está en todos los grupos sociales, yo pienso en todas esas madres a la salida del colegio esperando a recoger a sus niños y como se pavonean y presumen del último viaje que han hecho, o el coche que tiene su marido. Son tantos los ejemplos de postureo que podríamos pasarnos todo el día citandolos. De ahí el éxito de la página. El publico mainstream como vosotros decís en absoluto entiende chistes sobre Miranda o Gala Gonzalez, nosotros intentamos, sin dejarlo de lado, hablar de cosas más genéricas.</p>
<p><a href="http://www.internetria.com/blog/wp-content/uploads/2013/03/429774_410483222311596_428758115_n.jpg"><img title="429774_410483222311596_428758115_n" src="http://www.internetria.com/blog/wp-content/uploads/2013/03/429774_410483222311596_428758115_n.jpg" alt="" width="640" height="469" /></a><strong></strong></p>
<p><strong>I: Que a los pocos segundos de publicar un estado, éste ya tenga miles de Me Gusta es algo que (por experiencia) solo hemos visto en estrellas internacionales como Rafa Nadal. Cuando a nosotros nos preguntan los clientes cómo se consigue un fenómeno viral en internet decimos que no hay una fórmula mágica, ¿Qué opináis? ¿Cuál es la clave del éxito de @Postureo_?</strong><br />
P: No existe una fórmula mágica. La clave del éxito es el respeto. Estamos convencido de ello. A la gente le gusta que nos riamos con ellos y no de ellos, con cosas que todos hacemos. Pequeñas idionsicrasias <img src='http://www.internetria.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>I: El fenómeno de las &#8220;Señoras Que…&#8221; acabó en un programa de televisión, ¿Cuál es el futuro de @Postureo_? os pediríamos que por favor no acabéis poniendo links a &#8220;Cuánto Daño&#8221; u otro blog de chistes con gatitos.</strong><br />
P: Nunca nos convertiremos en una página así, podéis estar tranquilos, haremos las cosas mejor o peor, pero siempre vamos a mantener el mismo estilo que nos ha hecho alcanzar más de 120.000 seguidores. El futuro no lo sabemos pero hay postureo para rato.</p>
<p><strong>I: ¡Muchas gracias por vuestro tiempo</strong>!<br />
P: Muchas gracias a ti Ángel por reirte con nosotros y seguirnos. ¡Sé que fuiste unos de los primeros!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.internetria.com/blog/2013/03/21/entrevista-a-los-administradores-de-postureo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
