<?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>BrianUR</title>
	<atom:link href="http://www.brianur.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brianur.info</link>
	<description></description>
	<lastBuildDate>Tue, 19 Mar 2013 22:05:18 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Dar estilo a aplicaciones de Facebook con Fbootstrapp</title>
		<link>http://www.brianur.info/fbootstrapp-css-facebook/</link>
		<comments>http://www.brianur.info/fbootstrapp-css-facebook/#comments</comments>
		<pubDate>Fri, 23 Nov 2012 19:01:21 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[aplicacion]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[Fbootstrapp]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=2044</guid>
		<description><![CDATA[Una parte importante de una aplicación es su diseño y estructura del contenido, en mi caso por ejemplo se me dificulta más idear esta parte que el mismo desarrollo, pero gracias a Fbootstrapp ahora me puedo olvidar del CSS y lo que ello conlleva. Fbootstrapp es un framework que incluye todo lo necesario para que nuestra aplicación de Facebook se ...]]></description>
				<content:encoded><![CDATA[<div style="text-align:center; padding:10px 0 10px 0;">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-4437453628630205";
/* Arriba Brianur */
google_ad_slot = "3607582504";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p style="text-align: justify;">Una parte importante de una aplicación es su diseño y estructura del contenido, en mi caso por ejemplo se me dificulta más idear esta parte que el mismo desarrollo, pero gracias a <strong>Fbootstrapp</strong> ahora me puedo olvidar del CSS y lo que ello conlleva. Fbootstrapp es un framework que incluye todo lo necesario para que nuestra aplicación de Facebook se vea bien: Botones, tablas, tipografías, formularios y demás componentes estilizados y no se limita sólo a eso, también trae consigo una librería Javascript (que usa jQuery) que nos permite hacer alertas, tabs, barras de navegación, etc. Este framework se basa en <a title="Bootstrap" href="http://twitter.github.com/bootstrap/index.html" rel="nofollow" target="_blank"><strong>Bootstrap</strong></a> por lo que trae consigo algunas ventajas como poder usar <a title="Less" href="http://lesscss.org/" rel="nofollow" target="_blank">Less</a> o el Scaffolding adaptado para funcionar de maravilla en aplicaciones iFrame (canvas) o pestañas de fanpages.</p>
<p><a title="fbootstrapp" href="http://ckrack.github.com/fbootstrapp/" rel="nofollow" target="_blank"><img class="wp-image-2049 aligncenter" title="Fbootstrapp" src="http://www.brianur.info/wp-content/uploads/2012/11/Fbootstrapp.png" alt="" width="739" height="530" />Sitio web de Fbootstrapp</a>
<div style="text-align:center; padding:10px 0 10px 0;">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-4437453628630205";
/* Arriba Brianur */
google_ad_slot = "3607582504";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/fbootstrapp-css-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Publicar una foto con el PHP SDK en Facebook</title>
		<link>http://www.brianur.info/publicar-una-foto-con-el-php-sdk-en-facebook/</link>
		<comments>http://www.brianur.info/publicar-una-foto-con-el-php-sdk-en-facebook/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 18:30:57 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[graph api]]></category>
		<category><![CDATA[hacer una aplicacion en facebook]]></category>
		<category><![CDATA[php sdk]]></category>
		<category><![CDATA[publish photo facebook]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1762</guid>
		<description><![CDATA[Continuando el trabajo con el PHP SDK de Facebook veremos como publicar una foto en el muro de una persona. En este caso se debe hacer lo de siempre, autentificar al usuario con nuestra aplicación y pedir permiso de publicación (publish_stream) como lo vimos anteriormente, la única novedad es el uso del método setFileUploadSupport que le indica al SDK que ...]]></description>
				<content:encoded><![CDATA[<div style="text-align:center; padding:10px 0 10px 0;">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-4437453628630205";
/* Arriba Brianur */
google_ad_slot = "3607582504";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p style="text-align: justify;">Continuando el trabajo con el <a title="PHP SDK Facebook" href="http://www.brianur.info/conociendo-el-php-sdk-de-facebook/" target="_blank"><strong>PHP SDK de Facebook</strong> </a>veremos como publicar una foto en el muro de una persona. En este caso se debe hacer lo de siempre, autentificar al usuario con nuestra aplicación y pedir permiso de publicación (publish_stream) como lo vimos anteriormente, la única novedad es el uso del método <strong>setFileUploadSupport</strong> que le indica al SDK que permita la carga de archivos. Después de tener la foto guardada en el servidor, sea cual sea la forma en que tu aplicación la genere se publica la foto de la siguiente forma:</p>
<p style="text-align: justify;">
<pre class="brush: php; title: ; notranslate">
/*Se habilita la carga de archivos 
con setFileUploadSupport.*/
$facebook-&gt;setFileUploadSupport(true);
// Se indica la ruta de la imagen en el servidor.
$img = 'ruta_de_la_imagen.png';
// Haciendo uso de POST se envía la foto usando el método llamado api
$photo = $facebook-&gt;api('/me/photos', 'POST',
array( 'source' =&gt; '@' . $img,
'message' =&gt; 'Mensaje a ser publicado con la foto'
));
</pre>
</p>
<p>Facebook automáticamente crea un album con el nombre de la aplicación, en caso de querer crear un album con otro nombre:</p>
<pre class="brush: php; title: ; notranslate">$album=array('name'=&gt;'BrianUR.info', 'description'=&gt;'Tutoriales para crear aplicacion
en Facebook');
$facebook-&gt;api('/me/albums','post',$album);</pre>
<div style="text-align:center; padding-top:10px;">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-4437453628630205";
/* Arriba Brianur */
google_ad_slot = "3607582504";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/publicar-una-foto-con-el-php-sdk-en-facebook/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Script: Publicar comentario de primero en CuantoCabron.com</title>
		<link>http://www.brianur.info/script-publicar-de-primero-en-cuantocabron-com/</link>
		<comments>http://www.brianur.info/script-publicar-de-primero-en-cuantocabron-com/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 18:34:05 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Codiguillos]]></category>
		<category><![CDATA[cuanto cabron]]></category>
		<category><![CDATA[cuantocabron]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1650</guid>
		<description><![CDATA[El siguiente script solo es una prueba de lo que nos permite hacer cURL, para quienes visitan el sitio ¡Cuánto cabrón! sabrán que ser el primero en comentar no tiene relevancia mayor ya que los comentarios aparecen ordenados por votación de los mismos usuarios, aun así es bastante difícil (casi imposible diría yo xD) poder comentar una viñeta de primero y para eso ...]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">El siguiente script solo es una prueba de lo que nos permite hacer <a title="CURL" href="http://www.brianur.info/curl-y-php/" target="_blank">cURL, </a>para quienes visitan el sitio <strong>¡Cuánto cabrón!</strong> sabrán que ser el primero en comentar no tiene relevancia mayor ya que los comentarios aparecen ordenados por votación de los mismos usuarios, aun así es bastante difícil (casi imposible diría yo xD) poder comentar una viñeta de primero y para eso hice este script. Yo probé el script por partes y cada una de ellas funciona, no lo probé en su totalidad para no pasar por troll pero en teoría debería funcionar.</p>
<p style="text-align: justify;">
<pre class="brush: php; title: ; notranslate">
&lt;?php
/* Comentar de primero en CuantoCabron.com
www.BrianUR.info
/*
$ch = curl_init();
$url = &quot;http://www.cuantocabron.com/&quot;;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIE, 'TU_COOKIE');
curl_setopt($ch, CURLOPT_USERAGENT, &quot;Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES;
rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13&quot;);
$resultado = curl_exec($ch);
$texto1 = explode(&quot;&lt;h2&gt;&lt;a href=\&quot;&quot;, $resultado);
$texto2 = trim($texto1[1]);
$final = explode(&quot;\&quot;&gt;&quot;, $texto2);
//***************************************
//URL de la última viñeta publicada para comprobar cuando haya una nueva
if ($final[0] != &quot;http://www.cuantocabron.com/ultimavineta&quot;) {
try {
$ch0 = curl_init();
curl_setopt($ch0, CURLOPT_URL, $final[0]);
curl_setopt($ch0, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch0, CURLOPT_COOKIE, 'TU_COOKIE');
curl_setopt($ch0, CURLOPT_USERAGENT, &quot;Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES;
rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13&quot;);
$resultado0 = curl_exec($ch0);
$id_story = explode(&quot;id=\&quot;id_story\&quot; value=\&quot;&quot;, $resultado0);
$current_page = explode(&quot;id=\&quot;current_page\&quot; value=\&quot;&quot;, $resultado0);
$id_story1 = trim($id_story[1]);
$current1 = trim($current_page[1]);
$current = explode(&quot;\&quot;/&gt;&quot;, $current1);
$final1 = explode(&quot;\&quot;/&gt;&quot;, $id_story1);
$idfinal = $final1[0];
$currentFinal = $current[0];
//***************************************
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, $final[0]);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_COOKIE, 'TU_COOKIE');
curl_setopt($ch1, CURLOPT_USERAGENT, &quot;Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES;
 rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13&quot;);
curl_setopt($ch1, CURLOPT_POST, true);
curl_setopt($ch1, CURLOPT_POSTFIELDS, &quot;comment=&quot; . urlencode(&quot;Soy el primero :trollface:&quot;) . &quot;&amp;id_story=&quot; . urlencode($idfinal) . &quot;&amp;current_page=&quot; . urlencode($currentFinal) . &quot;&amp;token_form=&quot; . urlencode(&quot;TU_TOKEN&quot;) . &quot;&amp;submit=Enviar+comentario&quot;);
curl_exec($ch1);
} catch (Exception $e) {
echo 'Caught exception: ', $e-&gt;getMessage(), &quot;\n&quot;;
}
echo (&quot;Comentario publicado :trollface:&quot;);
} else {
echo &quot;&lt;meta http-equiv=\&quot;Refresh\&quot; content=\&quot;2;url=cc.php\&quot;&gt;&quot;;
}
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/script-publicar-de-primero-en-cuantocabron-com/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Script: Comprobar quién es el dueño de una foto en Facebook con su URL</title>
		<link>http://www.brianur.info/comprobar-quien-es-el-dueno-de-una-foto-en-facebook-con-su-url/</link>
		<comments>http://www.brianur.info/comprobar-quien-es-el-dueno-de-una-foto-en-facebook-con-su-url/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 17:19:21 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Codiguillos]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1640</guid>
		<description><![CDATA[Un script simple que hice ayer para comprobar quién es el dueño de una foto, en el caso de cuando por ejemplo nos envían la URL de la imagen de tipo http://a5.sphotos.ak.fbcdn.net/hphotos-ak-ash2/24487_1401168904232_1082605132_31212964_123957_n.jpg]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Un script simple que hice ayer para comprobar quién es el dueño de una foto, en el caso de cuando por ejemplo nos envían la URL de la imagen de tipo <a href="http://a5.sphotos.ak.fbcdn.net/hphotos-ak-ash2/24487_1401168904232_1082605132_31212964_123957_n.jpg">http://a5.sphotos.ak.fbcdn.net/hphotos-ak-ash2/24487_1401168904232_1082605132_31212964_123957_n.jpg</a></p>
<pre class="brush: xml; title: ; notranslate">

&lt;form method=&quot;GET&quot;&gt;
&lt;input type=&quot;text&quot; name=&quot;url&quot;/&gt;
&lt;input type=&quot;submit&quot; id=&quot;Enviar&quot; value=&quot;Comprobar&quot;/&gt;
&lt;/form&gt;
&lt;?php
/*
Comprobar quién es el dueño de una foto en Facebook con su URL
www.BrianUR.info
*/
if (isset($_GET['url'])) {
$url = $_GET['url'];
$id = explode(&quot;_&quot;, $url);
$datos = file_get_contents(&quot;http://graph.facebook.com/&quot; . $id[2]);
$daticos = json_decode($datos);
if (isset($daticos-&gt;link)) {
echo &quot;La foto es de &lt;a href='&quot; . $daticos-&gt;link . &quot;'&gt;&quot;
. $daticos-&gt;name . &quot;&lt;/a&gt;&quot;;
} else {
echo &quot;Al parecer el usuario con el nombre &quot; . $daticos-&gt;name . &quot; ocultó su perfil
 para otras personas,&lt;/br&gt;&quot; .
&quot; intenta ver el perfil accediendo desde www.facebook.com/profile.php?id=&quot; . $id[2];
}
echo &quot;&lt;/br&gt;&lt;img src='http://graph.facebook.com/&quot; . $id[2] . &quot;/picture?type=large'/&gt;&quot;;
}
?&gt;

</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/comprobar-quien-es-el-dueno-de-una-foto-en-facebook-con-su-url/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Crear un sistema de login con Google+ (OAuth)</title>
		<link>http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/</link>
		<comments>http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 18:28:45 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Google+]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[Create an OAuth 2.0 client]]></category>
		<category><![CDATA[google+]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1601</guid>
		<description><![CDATA[Con este articulo quiero dar el inicio a una serie de tutoriales sobre la API de varias redes sociales como Google+, Twitter, Youtube y todas las demás que se pueda en el proceso. Para crear un sistema de login en nuestra web con Google+ debemos conocer sobre OAuth, que por definirlo de una forma muy general y rápida es un ...]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Con este articulo quiero dar el inicio a una serie de tutoriales sobre la API de varias redes sociales como<strong> Google+</strong>, Twitter, Youtube y todas las demás que se pueda en el proceso. Para crear un sistema de login en nuestra web con Google+ debemos conocer sobre <strong>OAuth</strong>, que por definirlo de una forma muy general y rápida es un protocolo creado para interactuar fácilmente con los datos de usuario de un sitio como lo puede ser <a title="Facebook API" href="http://www.brianur.info/category/tutoriales/facebook-tutoriales/" target="_blank">Facebook</a>, Google, Twitter y muchos más servicios reconocidos hacen uso de <strong>OAuth</strong>.</p>
<p style="text-align: justify;">Lo primero que debemos hacer es<a title="Registrar sitio Google+" href="http://code.google.com/intl/es/apis/accounts/docs/RegistrationForWebAppsAuto.html" target="_blank"> registrar nuestro sitio</a>:</p>
<p style="text-align: left;"><a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/dominio/" rel="attachment wp-att-1602"><img class="size-full wp-image-1602 alignnone" title="Google+ añadir dominio" src="http://www.brianur.info/wp-content/uploads/2011/10/dominio.jpg" alt="" width="608" height="182" /></a></p>
<p>Posteriormente en manejar dominios se debe verificar la propiedad del dominio siguiendo los pasos:</p>
<p style="text-align: justify;"><a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/verificar/" rel="attachment wp-att-1603"><img class="aligncenter size-full wp-image-1603" title="Veriticar dominio Google+" src="http://www.brianur.info/wp-content/uploads/2011/10/verificar.jpg" alt="" width="550" height="278" /></a><a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/verificar/" rel="attachment wp-att-1603"><br />
</a><a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/administrar/" rel="attachment wp-att-1608"><img class="aligncenter size-full wp-image-1608" title="administrar dominio google+" src="http://www.brianur.info/wp-content/uploads/2011/10/administrar.jpg" alt="" width="521" height="172" /></a><span id="more-1601"></span>Luego se debe crear un ID cliente en <a title="Consola API Google" href="https://code.google.com/apis/console/" target="_blank">Consola de APIs</a>, crear un nuevo proyecto y en el menú seleccionar API Access.</p>
<p style="text-align: justify;"><a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/cliene/" rel="attachment wp-att-1613"><img class="aligncenter size-full wp-image-1613" title="Create an OAuth 2.0 client Google+" src="http://www.brianur.info/wp-content/uploads/2011/10/cliene.jpg" alt="" width="392" height="708" /></a>Finalmente deberías ver el ID del cliente y otros datos necesarios para crear una aplicación. Allí mismo en el menú ve al apartado services y activa Google+ para poder trabajar con el. Manos al código, pero antes de eso debes descargar el paquete de librerías <a href="http://code.google.com/p/google-api-php-client/" target="_blank">google-api-php-client</a>. Después de descargado en la carpeta src ve al archivo config.php y busca:</p>
<pre class="brush: plain; title: ; notranslate">
// Datos obtenidos al crear el cliente
'oauth2_client_id' =&gt; 'CLIENTE_ID',
'oauth2_client_secret' =&gt; 'SECRET',
'oauth2_redirect_uri' =&gt; 'http://brianur.info',
//Datos obtenidos al verificar el dominio
'oauth_consumer_key'    =&gt; 'brianur.info',
'oauth_consumer_secret' =&gt; 'JA8HUXQGKHUWc2gIbpKZUYrO ',</pre>
<pre class="brush: plain; title: ; notranslate">
&amp;lt;?php /* Obtener datos del usuario en Google+ para crear un sistema
de login. www.BrianUR.info */
//'Incluimos' las librerías necesarias require_once 'src/apiClient.php';
require_once 'src/contrib/apiPlusService.php';
session_start();
$client = new apiClient();
$client---&amp;gt;setApplicationName(&quot;BrianUR.info&quot;);
$client-&amp;gt;setScopes(array('https://www.googleapis.com/auth/plus.me'));
$plus = new apiPlusService($client);
if (isset($_REQUEST['logout'])) {
unset($_SESSION['access_token']);
}

if (isset($_GET['code'])) {
$client-&amp;gt;authenticate();
$_SESSION['access_token'] = $client-&amp;gt;getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}

if (isset($_SESSION['access_token'])) {
$client-&amp;gt;setAccessToken($_SESSION['access_token']);
}

if ($client-&amp;gt;getAccessToken()) {
$yo = $plus-&amp;gt;people-&amp;gt;get('me');
$_SESSION['access_token'] = $client-&amp;gt;getAccessToken();
}
else
$authUrl = $client-&amp;gt;createAuthUrl();

if (isset($yo)) {
$_SESSION['sesion'] = $yo;
$yo = $_SESSION['sesion'];
echo &quot;&amp;lt;/pre&amp;gt;
&amp;lt;img src=&quot;\&amp;amp;quot;&amp;amp;quot;&quot; alt=&quot;&quot; /&amp;gt;
&amp;lt;pre&amp;gt;&quot;;
echo &quot;&amp;lt;strong&amp;gt;Nombre:&amp;lt;/strong&amp;gt; &quot; . $yo['displayName'] . &quot;&quot;;
echo &quot;&amp;lt;strong&amp;gt;ID:&amp;lt;/strong&amp;gt; &quot; . $yo['id'] . &quot;&quot;;
echo &quot;&amp;lt;strong&amp;gt;Sexo:&amp;lt;/strong&amp;gt; &quot; . $yo['gender'] . &quot;&quot;;
echo &quot;&amp;lt;strong&amp;gt;Lema:&amp;lt;/strong&amp;gt; &quot; . $yo['tagline'] . &quot;&quot;;
}
if (isset($authUrl))
echo &quot;&amp;lt;a class=&quot;login&quot; href=&quot;$authUrl&quot;&amp;gt;Acceder usando mi cuenta Google+&amp;lt;/a&amp;gt;&quot;;
else
echo &quot;&amp;lt;a class=&quot;logout&quot; href=&quot;index.php?logout&quot;&amp;gt;Salir&amp;lt;/a&amp;gt;&quot;;
?&amp;gt;
</pre>
<p style="text-align: justify;">Al acceder a la aplicación debe aparecer un enlace para conectarse con Google+, luego pide permiso:</p>
<p style="text-align: justify;"><a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/conectar/" rel="attachment wp-att-1628"><img class="aligncenter size-full wp-image-1628" title="Conectar web con Google+" src="http://www.brianur.info/wp-content/uploads/2011/10/conectar.jpg" alt="" width="379" height="249" /></a>Por ultimo si todo ha salido bien debería verse los datos que pedimos, algo así:</p>
<p><a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/logueado/" rel="attachment wp-att-1629"><img class="aligncenter size-full wp-image-1629" title="Logueado" src="http://www.brianur.info/wp-content/uploads/2011/10/logueado.jpg" alt="" width="242" height="343" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crear un sistema de pago con tweets o publicaciones en Facebook</title>
		<link>http://www.brianur.info/crear-un-sistema-de-pago-con-tweets-o-publicaciones/</link>
		<comments>http://www.brianur.info/crear-un-sistema-de-pago-con-tweets-o-publicaciones/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 01:12:48 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[apps facebook]]></category>
		<category><![CDATA[create application facebook]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook app web]]></category>
		<category><![CDATA[facebook php]]></category>
		<category><![CDATA[graph api]]></category>
		<category><![CDATA[me gusta]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1594</guid>
		<description><![CDATA[Es hora de hacer una aplicación real con lo aprendido en anteriores tutoriales, en este caso lo que haremos será una aplicación para loguear al usuario en nuestra web (no una aplicación dentro de Facebook) con el objetivo de que se le publique en el muro lo que queramos a cambio de poder descargar por ejemplo un libro o un ...]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Es hora de hacer una aplicación real con lo aprendido en <a title="Tutoriales desarrollo de aplicaciones en Facebook" href="http://www.brianur.info/category/tutoriales/facebook-tutoriales/" target="_blank">anteriores tutoriales</a>, en este caso lo que haremos será una aplicación para loguear al usuario en nuestra web (no una aplicación dentro de Facebook) con el objetivo de que se le publique en el muro lo que queramos a cambio de poder descargar por ejemplo un libro o un tutorial, por decirlo de una mejor forma <strong>cambiar una descarga por un tweet o una publicación en Facebook</strong>. Es algo sencillo de hacer y bastante útil para hacer conocer tu sitio o producto en redes sociales.</p>
<p style="text-align: justify;">Primero debes editar tu aplicación en el área de desarrolladores, buscas donde diga <strong>Selecciona como tu aplicación se intrega con Facebook </strong>y en <strong>Sitio web</strong> escribes la URL del sitio. Posteriormente debemos crear un directorio, en mi caso lo he llamado <strong>descargas</strong>. Este directorio debe estar protegido para que nadie con solo obtener la URL del archivo pueda descargarlo directamente, posteriormente usando PHP se llama al archivo para que pueda ser descargado solo por usuarios que hagan el &#8220;pago&#8221;. En la carpeta mencionada anteriormente creamos un archivo .htaccess que debe tener lo siguiente:</p>
<pre class="brush: plain; title: ; notranslate">AuthUserFile  /home/miweb/descargas/.htpasswd
AuthName &quot;Que coño intentas hacer?&quot;
AuthType Basic

Options All
&lt;Limit GET POST PUT&gt;
require valid-user
&lt;/Limit&gt;</pre>
<p style="text-align: justify;"><span id="more-1594"></span>En AuthUserFile debe ir la ruta absoluta del directorio, el archivo <strong>.htpasswd</strong> es el encargado de guardar el usuario y el password encriptado del mismo; para crearlo usamos la utilidad <a title="htpasswd Apache" href="http://httpd.apache.org/docs/2.0/es/howto/auth.html" target="_blank"><strong>htpasswd</strong></a> que viene integrada con Apache:</p>
<pre class="brush: plain; title: ; notranslate">htpasswd -c .htpasswd usuario</pre>
<p>Luego creamos un archivo PHP que será el encargado de loguear al usuario con la aplicación, pedir permisos de publicación, publicar en el muro, permitir la descarga del archivo:</p>
<pre class="brush: php; title: ; notranslate">&lt;?php
require (&quot;includes/facebook.php&quot;);
$appID = &quot;00000000000000&quot;;
$secret = &quot;00000000000000000000000000&quot;;
$facebook = new Facebook(array(
'appId' =&gt; $appID,
'secret' =&gt; $secret,
));
$user = $facebook-&gt;getUser();
if ($user) {
try {
$yo = $facebook-&gt;api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
//Saludar al usuario
echo &quot;Hola &quot;.$yo[&quot;name&quot;].&quot; cómo estás?&quot;;
//Publicación en el muro
$parametros=array('message' =&gt; '',
'name' =&gt; 'Tutoriales de Facebook - BrianUR.info',
'caption' =&gt; 'Estoy leyendo un tutorial sobre el desarrollo de aplicaciones en Facebook. Te lo recomiendo!',
'link' =&gt; 'http://www.brianur.info',
'description' =&gt; 'Es genial',
'picture' =&gt; 'http://brianur.info/brianur.png',
'actions' =&gt; array(array('name' =&gt; 'Entra ya!',
'link' =&gt; 'http://www.brianur.info')));
$facebook-&gt;api('/me/feed','post',$parametros);
// ALERTA: ESTE CÓDIGO ES VULNERABLE A LFI Y SÓLO ES USADO COMO EJEMPLO
if (isset($_GET['archivo'])){
$name = $_GET['archivo'];
header(&quot;Content-disposition: attachment; filename=$name&quot;);
header(&quot;Content-type: application/octet-stream&quot;);
readfile(&quot;descargas/&quot;.$name);
}
// FIN ALERTA
echo &quot;&lt;a href=\&quot;index.php?archivo=librito.zip\&quot;&gt;Descargar archivo.&lt;/a&gt;&quot;;
} else {
//Enlace para iniciar sesion en la aplicación
$loginUrl = $facebook-&gt;getLoginUrl(array('scope' =&gt; 'publish_stream'));
echo &quot;&lt;a href='$loginUrl'&gt;Pagar con una publicación&lt;/a&gt;&quot;;
}
?&gt;</pre>
<p style="text-align: justify;">Eso es todo, el anterior código es sencillo y puedes mejorarlo según tus necesidades. Es estrictamente necesario por seguridad cambiar el código usado para la descarga del archivo ya que es vulnerable a LFI, además es recomendado hacer algún tipo de validaciones necesarias para aumentar la seguridad (por ejemplo el uso de sesiones). Posteriormente agregaré la opción de conectarse con<strong> Twitter</strong> para hacer lo mismo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/crear-un-sistema-de-pago-con-tweets-o-publicaciones/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Publicar en el muro con el PHP SDK</title>
		<link>http://www.brianur.info/publicar-en-el-muro-con-el-php-sdk/</link>
		<comments>http://www.brianur.info/publicar-en-el-muro-con-el-php-sdk/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 02:06:01 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[api facebook php]]></category>
		<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[crear aplicacion de facebook]]></category>
		<category><![CDATA[crear aplicaciones facebook]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook connect]]></category>
		<category><![CDATA[facebook developers]]></category>
		<category><![CDATA[graph api]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php facebook]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1559</guid>
		<description><![CDATA[Una de las cosas más habituales en una aplicación es publicar contenido del usuario en su muro o en el de un amigo, así que para continuar trabajando con los métodos que nos provee el PHP SDK veremos como hacerlo. Para el caso de querer publicar en el muro de un amigo se debe reemplazar /me/feed por /IDAmigo/feed, no olvides ...]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Una de las cosas más habituales en una aplicación es publicar contenido del usuario en su muro o en el de un amigo, así que para continuar trabajando con los métodos que nos provee el <strong>PHP SDK</strong> veremos como hacerlo. Para el caso de querer publicar en el muro de un amigo se debe reemplazar /me/feed por /IDAmigo/feed, no olvides que para que el código funcione tienes que <a title="autenticar usuario en Facebook" href="http://www.brianur.info/conociendo-el-php-sdk-de-facebook/" target="_blank">autenticar el usuario</a> y pedir el permiso extendido <strong>publish_stream</strong>.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$parametros=array('message' =&gt; 'Aprendiendo a desarrollar aplicaciones en Facebook',
				  'name' =&gt; 'BrianUR.info',
				  'caption' =&gt; 'Mi primer aplicacion en Facebook',
				  'link' =&gt; 'http://www.brianur.info',
				  'description' =&gt; 'Es genial',
				  'picture' =&gt; 'http://brianur.info/brianur.png',
				  'actions' =&gt; array(array('name' =&gt; 'Entra ya!',
                                      'link' =&gt; 'http://www.brianur.info')));
$facebook-&gt;api('/me/feed','post',$parametros);
?&gt;
</pre>
<p><a href="http://www.brianur.info/publicar-en-el-muro-con-el-php-sdk/publish/" rel="attachment wp-att-1560"><img class="aligncenter size-full wp-image-1560" title="publish feed Facebook" src="http://www.brianur.info/wp-content/uploads/2011/10/publish.jpg" alt="" width="447" height="133" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/publicar-en-el-muro-con-el-php-sdk/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Conociendo el PHP SDK de Facebook</title>
		<link>http://www.brianur.info/conociendo-el-php-sdk-de-facebook/</link>
		<comments>http://www.brianur.info/conociendo-el-php-sdk-de-facebook/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 01:09:56 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[api facebook php]]></category>
		<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[crear aplicaciones facebook]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook connect]]></category>
		<category><![CDATA[facebook developers]]></category>
		<category><![CDATA[graph api]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php facebook]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1536</guid>
		<description><![CDATA[Facebook provee a los desarrolladores un kit de desarrollo para poder trabajar con su API de una manera más sencilla, dentro de estas herramientas se encuentran el JavaScript SDK, PHP SDK, iOS SDK (iPhone &#38; iPad) y el Android SDK. Para este caso veremos el funcionamiento del PHP SDK de Facebook, trabajaremos algunos de sus métodos más usados, eso si, ...]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Facebook provee a los desarrolladores un kit de desarrollo para poder trabajar con su API de una manera más sencilla, dentro de estas herramientas se encuentran el<a href="http://developers.facebook.com/docs/reference/javascript/"> JavaScript SDK</a>,<a href="http://developers.facebook.com/docs/reference/php"> PHP SDK</a>,<a href="http://developers.facebook.com/docs/reference/iossdk"> iOS SDK (iPhone &amp; iPad)</a> y el<a href="http://developers.facebook.com/docs/reference/androidsdk"> Android SDK</a>. Para este caso veremos el funcionamiento del <strong>PHP SDK de Facebook</strong>, trabajaremos algunos de sus métodos más usados, eso si, es primordial haber leído antes el <a title="Graph API" href="http://www.brianur.info/funcionamiento-de-la-graph-api-de-facebook/" target="_blank"><strong>funcionamiento de la Graph API de Facebook</strong></a> para entender lo que se hace en el código.</p>
<p style="text-align: justify;">Puedes descargar el archivo <strong>facebook.php</strong> que necesitamos desde <a title="PHP SDK Facebook" href="https://github.com/facebook/php-sdk/downloads" target="_blank">github</a>. La versión actual es la 3.1.1, muy importante en tener en cuenta esto para las personas que ya habían desarrollado aplicaciones antes, ya que algunos métodos no funcionan en las nuevas versiones del SDK, como es el caso de <strong>getSession()</strong> que hacía parte de la Rest API, así que si ven un <strong><code>Fatal error: Call to undefined method Facebook::getSession()</code></strong> ya saben la razón.</p>
<h2 style="text-align: center;">Autenticación</h2>
<p style="text-align: justify;">El siguiente código siempre será necesario usarlo para poder autenticar el usuario con una aplicación (obtener un token, pedir permisos), si buscas por la red te podrás encontrar con múltiples formas para hacer este paso, hay personas que hacen varios tipos de validaciones (recomiendo que tu también lo hagas) para evitar errores; en este caso para ahorrar código y para que se entienda mejor he puesto lo estrictamente necesario:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/*
	Código de ejemplo para obtener datos del usuario en Facebook
	www.BrianUR.info
*/
// URL de la aplicación
$urlApp = &quot;http://apps.facebook.com/brianur/&quot;;
// ID y Secret ID de la aplicación
$appId = &quot;0000000000000&quot;;
$secret = &quot;00000000000000000000000000000000&quot;;
//Llamada al Facebook SDK
include_once &quot;facebook.php&quot;;
// Instanciamos el objeto Facebook
$facebook = new Facebook(array('appId' =&gt; $appId,
							   'secret' =&gt; $secret,
							   'cookie' =&gt; true));
// Obtenemos una session
$user = $facebook-&gt;getUser();
if (!$user){
// Si el usuario no está autentificado crea una URL para hacerlo.
// Se usa 'scope' para pedir permisos separados por coma.
// Se usa 'redirect_uri' para redireccionar a esa URL despues de la acción del usuario
$loginUrl = $facebook-&gt;getLoginUrl(
            array(
                'scope' =&gt; 'user_about_me',
                'redirect_uri' =&gt; $urlApp
            )
    );
echo &quot;&lt;script type=\&quot;text/javascript\&quot;&gt;top.location.href = '$loginUrl';&lt;/script&gt;&quot;;
} else {
	// Hasta aquí el usuario tendría que estar autentificado con la aplicación.
	$yo = $facebook-&gt;api('/me');
	print_r($yo);
}
?&gt;
</pre>
<p>El anterior código retorna varios datos del usuario, para ver datos ocultos se requiere el uso de <strong>permisos extendidos</strong>.<br />
<span id="more-1536"></span></p>
<h2 style="text-align: center;">Métodos</h2>
<table width="100%" cellspacing="0" cellpadding="4">
<colgroup>
<col width="128*" />
<col width="128*" /> </colgroup>
<tbody>
<tr valign="TOP">
<th width="50%">Nombre</th>
<th width="50%">Uso</th>
</tr>
<tr valign="TOP">
<td width="50%">api</td>
<td width="50%">Llamadas a la conexiones y objetos disponibles en la Graph API. Tambien puede realizar consultas FQL.</td>
</tr>
<tr valign="TOP">
<td width="50%">getAccessToken</td>
<td width="50%">Obtiene un token de acceso que puede ser usado posteriormente con otros métodos.</td>
</tr>
<tr valign="TOP">
<td width="50%">getApiSecret</td>
<td width="50%">Obtiene la secret ID de la aplicación</td>
</tr>
<tr valign="TOP">
<td width="50%">getAppId</td>
<td width="50%">Obtiene la App ID de la aplicación</td>
</tr>
<tr valign="TOP">
<td width="50%">getLoginStatusUrl</td>
<td width="50%">Devuelve la URL con el estado de la autentificación actual del usuario</td>
</tr>
<tr valign="TOP">
<td width="50%">getLoginUrl</td>
<td width="50%">Devuelve una URL para que el usuario se pueda autenticar y luego redirecciona a la aplicación</td>
</tr>
<tr valign="TOP">
<td width="50%">getLogoutUrl</td>
<td width="50%">Devuelve una URL para que termine la sesión del usuario en la aplicación y luego redirecciona a la misma</td>
</tr>
<tr valign="TOP">
<td width="50%">getSignedRequest</td>
<td width="50%">Obtiene una solicitud firmada que utiliza el SDK</td>
</tr>
<tr valign="TOP">
<td width="50%">getUser</td>
<td width="50%">Devuelve el ID del usuario, sino está autenticado devuelve un 0.</td>
</tr>
<tr valign="TOP">
<td width="50%">setAccessToken</td>
<td width="50%">Fija el token de acceso actual que se este usando</td>
</tr>
<tr valign="TOP">
<td width="50%">setApiSecret</td>
<td width="50%">Fija la secret ID de la aplicación que se este usando</td>
</tr>
<tr valign="TOP">
<td width="50%">setAppId</td>
<td width="50%">Fija la App ID de la aplicación que se este usando</td>
</tr>
<tr valign="TOP">
<td width="50%">setFileUploadSupport</td>
<td width="50%">Sirve para subir archivos para trabajar luego con ellos, el servidor debe permitir la carga de los mismos.</td>
</tr>
<tr valign="TOP">
<td width="50%">useFileUploadSupport</td>
<td width="50%">Permite verificar si la carga de archivos está disponible en el servidor</td>
</tr>
</tbody>
</table>
<h2 style="text-align: center;">Ejemplos útiles</h2>
<p><strong>Mostrar todos los amigos de un usuario:</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$amigos=$facebook-&gt;api('/me/friends');
foreach($amigos['data'] as $amigo){
echo &quot;Nombre: &quot;.$amigo['name'].&quot; ID: &quot;.$amigo['id'];
}
?&gt;
</pre>
<p><strong>Mostrar los primeros 10 amigos por ID y Nombre:</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$amigos=$facebook-&gt;api('/me/friends?limit=10&amp;fields=id,name');
foreach($amigos['data'] as $amigo){
echo &quot;Nombre: &quot;.$amigo['name'].&quot; ID: &quot;.$amigo['id'];
}
?&gt;
</pre>
<p><strong>Mostrar foto de perfil del usuario:</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$yo=$facebook-&gt;api('/me');
$fotoPerfil = &quot;&lt;img src='http://graph.facebook.com/&quot;.$yo['id'].&quot;/picture?type=large'/&gt;&quot;;
echo $fotoPerfil;
?&gt;
</pre>
<p><strong>Publicar en muro:</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$parametros=array('message' =&gt; 'Aprendiendo a desarrollar aplicaciones en Facebook',
				  'name' =&gt; 'BrianUR.info',
				  'caption' =&gt; 'Mi primer aplicacion en Facebook',
				  'link' =&gt; 'http://www.brianur.info',
				  'description' =&gt; 'Es genial',
				  'picture' =&gt; 'http://brianur.info/brianur.png',
				  'actions' =&gt; array(array('name' =&gt; 'Entra ya!',
                                      'link' =&gt; 'http://www.brianur.info')));
$facebook-&gt;api('/me/feed','post',$parametros);
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/conociendo-el-php-sdk-de-facebook/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Dando una vuelta por AllShare de Samsung</title>
		<link>http://www.brianur.info/dando-una-vuelta-por-allshare-de-samsung/</link>
		<comments>http://www.brianur.info/dando-una-vuelta-por-allshare-de-samsung/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 23:08:50 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Moviles]]></category>
		<category><![CDATA[allshare]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[galaxy]]></category>
		<category><![CDATA[samsumg]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1492</guid>
		<description><![CDATA[AllShare es una aplicación que viene en los dispositivos de última generación como smarthphones, televisores, cámaras de la compañía surcoreana Samsung. Básicamente nos permite acceder y reproducir el contenido multimedia de por ejemplo nuestro móvil o computador en el televisor sin necesidad de usar cables, solo usando una conexión Wi-Fi. AllShare trabaja bajo la certificación DLNA, lo que le permite funcionar ...]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><strong>AllShare</strong> es una aplicación que viene en los dispositivos de última generación como smarthphones, televisores, cámaras de la compañía surcoreana Samsung. Básicamente nos permite acceder y reproducir el contenido multimedia de por ejemplo nuestro móvil o computador en el televisor sin necesidad de usar cables, solo usando una conexión Wi-Fi. AllShare trabaja bajo la certificación <a title="DLNA" href="http://es.wikipedia.org/wiki/Digital_Living_Network_Alliance" target="_blank">DLNA</a>, lo que le permite funcionar con otros tipos de dispositivos sin importar la marca.</p>
<p style="text-align: justify;">Las pruebas que hice fueron en un <strong>Samsung Galaxy SII</strong> (Android), su sencilla y atractiva interfaz hacen que cualquier persona pueda usar la aplicación sin problemas, son dos pestañas Cliente-Servidor:</p>
<p style="text-align: left;"><a href="http://www.brianur.info/dando-una-vuelta-por-allshare-de-samsung/sc20111001-173023/" rel="attachment wp-att-1495"><img class="size-full wp-image-1495 aligncenter" title="AllShare Mi dispositivo" src="http://www.brianur.info/wp-content/uploads/2011/10/SC20111001-173023.jpeg" alt="" width="372" height="620" /></a><span id="more-1492"></span></p>
<p style="text-align: left;">Así de simple se comparte contenido multimedia a otros dispositivos, para la prueba usé un computador con <strong>Windows Media Player</strong> y un <strong>PS3</strong>, sin necesidad de instalar ningún programa en ellos ya podía hacer a la música de mi teléfono:</p>
<p style="text-align: left;"><a href="http://www.brianur.info/dando-una-vuelta-por-allshare-de-samsung/wmps3/" rel="attachment wp-att-1500"><img class="size-full wp-image-1500 aligncenter" title="WMPS3" src="http://www.brianur.info/wp-content/uploads/2011/10/WMPS3.jpg" alt="" width="624" height="302" /></a></p>
<p style="text-align: left;">Luego para reproducir archivos en el teléfono probé con <strong>PS3 Media Server</strong>, el resultado:</p>
<p style="text-align: left;"><a href="http://www.brianur.info/dando-una-vuelta-por-allshare-de-samsung/allandroid/" rel="attachment wp-att-1507"><img class="aligncenter size-full wp-image-1507" title="allAndroid" src="http://www.brianur.info/wp-content/uploads/2011/10/allAndroid.jpg" alt="" width="610" height="507" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/dando-una-vuelta-por-allshare-de-samsung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video: Trasladando un servidor de un datacenter a otro sin apagarlo</title>
		<link>http://www.brianur.info/cambiar-de-datacenter-un-servidor-sin-apagarlo/</link>
		<comments>http://www.brianur.info/cambiar-de-datacenter-un-servidor-sin-apagarlo/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 19:33:15 +0000</pubDate>
		<dc:creator>juarbo</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Alta Disponibilidad]]></category>
		<category><![CDATA[Cambiar de Datacenter]]></category>
		<category><![CDATA[Cambiar de lugar un servidor]]></category>
		<category><![CDATA[Datacenter]]></category>
		<category><![CDATA[Mover servidor web]]></category>
		<category><![CDATA[Mover servidor Web Online]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1472</guid>
		<description><![CDATA[En el siguiente vídeo se evidencia como un grupo de administradores de sistemas configuran y planifican todo para cambiar de datacenter un servidor que ha estado uptime durante más de 6 años. Mantener un servidor en línea por el mayor tiempo posible es uno de los aspectos que más preocupa a los administradores de sistemas, la alta disponibilidad y el asegurar que ...]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">En el siguiente vídeo se evidencia como un grupo de administradores de sistemas configuran y planifican todo para <strong>cambiar de datacenter un servidor</strong> que ha estado uptime durante más de 6 años. Mantener un servidor en línea por el mayor tiempo posible es uno de los aspectos que más preocupa a los administradores de sistemas, la <strong>alta disponibilidad</strong> y el asegurar que los servicios que corren en el servidor se encuentren siempre disponibles, es algo que en muchos casos, marca la diferencia cuando un usuario va a contratar un servicio en dicha empresa o debe elegir entre un servidor u otro.</p>
<p style="text-align: center;">Please enter the url to a YouTube video.</p>
<p style="text-align: justify;">En este vídeo vemos como los administradores del servidor lo transportan por <strong>7 kilómetros</strong> (Una parte en tren y una parte a pie) manteniéndolo conectado y funcionando durante todo el trayecto. El servidor se conecta a una <strong>UPS</strong> que le brinda la energía necesaria durante todo el trayecto; Para asegurar la conectividad a Internet conectan una laptop a dicho servidor, la cual le provee Internet por medio de una <strong>conexión 3G</strong> y aseguran el acceso al servidor y el trafico correcto mediante una <strong>VPN</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/cambiar-de-datacenter-un-servidor-sin-apagarlo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
