<?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 &#187; Web</title>
	<atom:link href="http://www.brianur.info/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brianur.info</link>
	<description></description>
	<lastBuildDate>Wed, 01 Feb 2012 16:50:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<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 [...]]]></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;"><p><a href="http://www.brianur.info/cambiar-de-datacenter-un-servidor-sin-apagarlo/"><em>Pinche aquí para ver el vídeo</em></a></p></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>
		<item>
		<title>No-anom: Extensión de Firefox para filtrar a Anonymous</title>
		<link>http://www.brianur.info/no-anom/</link>
		<comments>http://www.brianur.info/no-anom/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 02:55:41 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[complementos]]></category>
		<category><![CDATA[filtrar]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1276</guid>
		<description><![CDATA[Últimamente se torna bastante fastidioso leer cada tres segundos algo sobre Anonymous ya sea en redes sociales, sitios webs que visitamos o incluso el amigo que cree que porque hacen denegaciones de servicio con un programa son hackers y no deja de hablar del tema.  No-anom es una sencilla extensión para ser usada en aquellos [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Últimamente se torna bastante fastidioso leer cada tres segundos algo sobre Anonymous ya sea en redes sociales, sitios webs que visitamos o incluso el amigo que cree que porque hacen denegaciones de servicio con un programa son hackers y no deja de hablar del tema.  <strong>No-anom </strong>es una sencilla extensión para ser usada en aquellos casos mencionados anteriormente (menos el ultimo, claro) que filtra el nombre e imágenes del grupo en cuestión en nuestro Firefox:</p>
<div id="attachment_1277" class="wp-caption aligncenter" style="width: 566px"><a href="http://www.brianur.info/no-anom/anom/" rel="attachment wp-att-1277"><img class="size-full wp-image-1277 " title="No-Anom" src="http://www.brianur.info/wp-content/uploads/2011/07/anom.png" alt="" width="556" height="374" /></a><p class="wp-caption-text">Imagen tomada de un articulo de alt1040.com haciendo uso de No-anom</p></div>
<h2 style="text-align: center;">Descargar <a title="no-anom" href="http://www.visajes.info/no-anom.xpi" target="_blank">No-anom</a>.</h2>
<p><span id="more-1276"></span>Después de descargar <strong>no-anom.xpi </strong>arrástralo hasta el navegador para su instalación. Todos los créditos a Greg Leuch y su extensión <a href="http://fffff.at/shaved-bieber/" target="_blank">Shaved Bieber</a>, yo solo hice unas pequeñas modificaciones para filtrar la palabra y para que funcionará en Firefox 5.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/no-anom/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>¿Qué es Open Graph protocol y cómo funciona?</title>
		<link>http://www.brianur.info/%c2%bfque-es-open-graph-protocol-y-como-funciona/</link>
		<comments>http://www.brianur.info/%c2%bfque-es-open-graph-protocol-y-como-funciona/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 17:13:21 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[Open Graph]]></category>
		<category><![CDATA[protocol]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1252</guid>
		<description><![CDATA[Para definir Open Graph de una forma sencilla piensa en el momento cuando compartes un enlace en Facebook: lo normal sería ver una imagen, una descripción y un titulo que toma automáticamente Facebook para mostrar, el problema es cuando por ejemplo toma una imagen aleatoriamente del sitio que muchas veces no tiene nada que ver [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Para definir <strong>Open Graph</strong> de una forma sencilla piensa en el momento cuando compartes un enlace en <strong>Facebook</strong>: lo normal sería ver una imagen, una descripción y un titulo que toma automáticamente Facebook para mostrar, el problema es cuando por ejemplo toma una imagen aleatoriamente del sitio que muchas veces no tiene nada que ver con lo que queremos compartir o en el peor de los casos no aparece una imagen y de la misma forma el titulo y descripción que toma no son descriptivas.<a href="http://www.brianur.info/%c2%bfque-es-open-graph-protocol-y-como-funciona/compartir/" rel="attachment wp-att-1254"><img class="size-medium wp-image-1254 alignright" title="Compartir en Facebook" src="http://www.brianur.info/wp-content/uploads/2011/07/compartir-300x118.png" alt="" width="300" height="118" /></a></p>
<p style="text-align: justify;">Ahí es donde <strong>Open Graph</strong> trabaja, permitiendo con un simple método incluir información precisa sobre nuestro sitio web para una correcta representación del contenido de nuestro sitio en redes sociales. En el caso específico de la red social de Mark Zuckerberg, usar este método no solo nos servirá a la hora de compartir un enlace sino también cuando un usuario le de un &#8220;me gusta&#8221; a un post, en vez de publicarse en su muro un simple enlace aparecerá el titulo, descripción y imagen que nosotros queramos; de esta forma podemos atraer nuevos visitantes/clientes.</p>
<h2 style="text-align: center;">¿Cómo funciona Open Graph?</h2>
<p>Sencillo, solo debes incluir en la cabecera de tu sitio la etiqueta &lt;meta&gt; especificando la información de la siguiente forma:</p>
<pre class="brush: xml; title: ; notranslate">&lt;head&gt;
&lt;title&gt;El Tales&lt;/title&gt;
&lt;meta property=&quot;og:title&quot; content=&quot;El Tales&quot;/&gt;
&lt;meta property=&quot;og:type&quot; content=&quot;movie&quot;/&gt;
&lt;meta property=&quot;og:url&quot; content=&quot;http://tales.com/info/&quot;/&gt;
&lt;meta property=&quot;og:image&quot; content=&quot;http://visajes.com/tales.jpg&quot;/&gt;
&lt;meta property=&quot;og:site_name&quot; content=&quot;Tales&quot;/&gt;
&lt;meta property=&quot;fb:admins&quot; content=&quot;TU_ID&quot;/&gt;
&lt;meta property=&quot;og:description&quot;
content=&quot;El tales o visaje visajoso es aquel elemento visaje que se une con el tin
         para formar el visajimiento conocido como TinTales, el cual reune cosillas varias.&quot;/&gt;
&lt;/head&gt;</pre>
<p><span id="more-1252"></span></p>
<p>Cada una de las propiedades son bastante descriptivas, no todas son obligatorias pero las que siempre tienen que ir son: og:title, og:type, og:image, og:url. Los usos de este protocolo son muchos, para que te des cuenta puedes visitar la <a title="Open Graph en Facebook" href="http://developers.facebook.com/docs/opengraph/" target="_blank">documentación en Facebook</a> donde explican cada una de las propiedades que puedes usar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/%c2%bfque-es-open-graph-protocol-y-como-funciona/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Crear un reloj analógico con Javascript</title>
		<link>http://www.brianur.info/crear-un-reloj-analogico-con-javascript/</link>
		<comments>http://www.brianur.info/crear-un-reloj-analogico-con-javascript/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 18:43:08 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Codiguillos]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[reloj]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1047</guid>
		<description><![CDATA[El siguiente reloj puede ser creado sin necesidad de usar imágenes ni CSS, gracias a una librería en Javascript llamada Raphaël que nos permite crear gráficos de una manera sencilla. Visto en el blog de Emanuele Feronato]]></description>
			<content:encoded><![CDATA[<p>El siguiente reloj puede ser creado sin necesidad de usar imágenes ni CSS, gracias a una librería en Javascript llamada <a href="http://raphaeljs.com/">Raphaël</a> que nos permite crear gráficos de una manera sencilla.</p>
<p style="text-align:center;"><iframe src ="http://www.brianur.info/ejemplos/reloj.htm" width="220" height="220"></iframe></p>
<p><span id="more-1047"></span></p>
<pre class="brush: jscript; title: ; notranslate">&lt;script type=&quot;text/javascript&quot; src=&quot;https://github.com/DmitryBaranovskiy/raphael/raw/master/raphael-min.js&quot;&gt;&lt;/script&gt;
 &lt;script type=&quot;text/javascript&quot;&gt;

 function draw_clock(){
 canvas = Raphael(&quot;clock_id&quot;,200, 200);
 var clock = canvas.circle(100,100,95);
 clock.attr({&quot;fill&quot;:&quot;#f5f5f5&quot;,&quot;stroke&quot;:&quot;#444444&quot;,&quot;stroke-width&quot;:&quot;5&quot;})
 var hour_sign;
 for(i=0;i&lt;12;i++){
 var start_x = 100+Math.round(80*Math.cos(30*i*Math.PI/180));
 var start_y = 100+Math.round(80*Math.sin(30*i*Math.PI/180));
 var end_x = 100+Math.round(90*Math.cos(30*i*Math.PI/180));
 var end_y = 100+Math.round(90*Math.sin(30*i*Math.PI/180));
 hour_sign = canvas.path(&quot;M&quot;+start_x+&quot; &quot;+start_y+&quot;L&quot;+end_x+&quot; &quot;+end_y);
 }
 hour_hand = canvas.path(&quot;M100 100L100 50&quot;);
 hour_hand.attr({stroke: &quot;#444444&quot;, &quot;stroke-width&quot;: 6});
 minute_hand = canvas.path(&quot;M100 100L100 40&quot;);
 minute_hand.attr({stroke: &quot;#444444&quot;, &quot;stroke-width&quot;: 4});
 second_hand = canvas.path(&quot;M100 110L100 25&quot;);
 second_hand.attr({stroke: &quot;#444444&quot;, &quot;stroke-width&quot;: 2});
 var pin = canvas.circle(100, 100, 5);
 pin.attr(&quot;fill&quot;, &quot;#000000&quot;);
 update_clock()
 setInterval(&quot;update_clock()&quot;,1000);
 }

 function update_clock(){
 var now = new Date();
 var hours = now.getHours();
 var minutes = now.getMinutes();
 var seconds = now.getSeconds();
 hour_hand.rotate(30*hours+(minutes/2.5), 100, 100);
 minute_hand.rotate(6*minutes, 100, 100);
 second_hand.rotate(6*seconds, 100, 100);

 }

 &lt;/script&gt;
 &lt;body&gt;
 &lt;div id=&quot;clock_id&quot;&gt;&lt;/div&gt;
 &lt;script&gt;draw_clock()&lt;/script&gt;
 &lt;/body&gt; </pre>
<p>Visto en el blog de <a href="http://www.emanueleferonato.com/2010/12/11/javascript-analog-clock-with-no-images-and-no-css/">Emanuele Feronato</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/crear-un-reloj-analogico-con-javascript/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>¿Offshore Hosting?</title>
		<link>http://www.brianur.info/offshore-hosting/</link>
		<comments>http://www.brianur.info/offshore-hosting/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 17:07:21 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[alojamiento web]]></category>
		<category><![CDATA[Anonymous Hosting]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[hosting offshore]]></category>
		<category><![CDATA[hosting para enlaces]]></category>
		<category><![CDATA[hosting web]]></category>
		<category><![CDATA[offshore]]></category>
		<category><![CDATA[offshore definicion]]></category>
		<category><![CDATA[servidores holanda]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=993</guid>
		<description><![CDATA[Hace algunos meses me salí un poco de lo habitual e hice una web para un programa de televisión que me gusta mucho, pero me surgió un problema:  no podía alojarla con la empresa donde normalmente tengo mis webs, debido a que el servidor esta ubicado en Estados Unidos y en este país hay muchas [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Hace algunos meses me salí un poco de lo habitual e hice una web para un programa de televisión que me gusta mucho, pero me surgió un</p>
<div id="attachment_994" class="wp-caption alignright" style="width: 140px"><a href="http://www.brianur.info/%c2%bfoffshore-hosting/the_pirate_bay_logosvg/" rel="attachment wp-att-994"><img class="size-medium wp-image-994" title="The Pirate Bay" src="http://www.brianur.info/wp-content/uploads/2010/12/the_pirate_bay_logosvg-264x300.png" alt="The Pirate Bay" width="130" height="147" /></a><p class="wp-caption-text">The Pirate Bay</p></div>
<p>problema:  no podía alojarla con la empresa donde normalmente tengo mis webs, debido a que el servidor esta ubicado en Estados Unidos y en este país hay <span style="text-decoration: line-through;">muchas</span> restricciones con respecto a la publicación de contenido que infrinja el derecho de autor o mejor conocido como <strong>warez</strong>.</p>
<p style="text-align: justify;">Después de buscar en la red alguna solución para mi problema, encontré  un <strong>Offshore Hosting</strong>.</p>
<h2 style="text-align: center;">¿Qué es el Offshore Hosting?</h2>
<p style="text-align: justify;"><a href="http://es.wikipedia.org/wiki/Offshore" rel="nofollow">Wikipedia</a> define a Offshore como: &#8230;&#8221;la actividad por parte de empresas con sede en un determinado país de trasladar centros de producción en otro país, donde por lo general enfrentarán menores costos en mano de obra, <strong> menor presión en leyes laborales</strong>, <strong>menor cantidad de normativas gubernamentales</strong>, reducción de otro tipo de costos, u <strong>otros beneficios</strong> cualesquiera desde el punto de vista del lucro.&#8221;</p>
<p style="text-align: justify;">Comúnmente los servidores Offshore están situados en países/ciudades como <strong>Holanda</strong>, Panamá, Hong-Kong, Rusia, entre otros. Las notables <strong>ventajas</strong> son la menor presión  y leyes para publicar <strong>Warez</strong>,  por lo general las denuncias <a href="http://es.wikipedia.org/wiki/Digital_Millennium_Copyright_Act">DMCA</a> son ignoradas. En el caso del precio he podido ver que no es tan barato como un alojamiento normal, pero existen planes cómodos.</p>
<h2 style="text-align: center;"><span id="more-993"></span>Recomendaciones</h2>
<p style="text-align: justify;">Tenga en cuenta que también hay algunas restricciones en este tipo de <strong>alojamiento web</strong>, como por ejemplo está permitido enlazar Warez de otros servidores pero no subirlos al propio servidor, no está permitida la pornografía infantil ni usar el servidor para enviar spam, ni alojar webs para realizar <a href="http://es.wikipedia.org/wiki/Phishing">pishing</a>. Cada empresa puede tener sus diferentes restricciones, antes de comprar el servicio es recomendado leer los <strong>términos de uso </strong>para saber si cumple con los requerimientos de sus necesidades.<strong> </strong></p>
<h2 style="text-align: center;">Empresas proveedoras</h2>
<p style="text-align: justify;">En lo personal solo tengo experiencia con tres empresas:</p>
<p style="text-align: justify;"><a href="http://hostingwarez.com/" rel="nofollow">HostingWarez</a>: Nunca tuve problemas con el servicio, tiene buenos precios pero los planes en cuanto a características son algo bajos. Recomendado para webs pequeñas.  El soporte es en ingles.</p>
<p style="text-align: justify;"><a href="http://hostmywarez.com/" rel="nofollow">HostMyWarez</a>: Tiene planes económicos, uno de ellos es con todo ilimitado. En el poco tiempo que lo use el servidor murió varias veces. El soporte es en ingles.</p>
<p style="text-align: justify;"><a href="http://donkiehost.com/">DonkieHost</a>: Lo estoy usando actualmente, tiene buenos planes y servidores en varios países dependiendo de las necesidades. El soporte es en español.</p>
<p style="text-align: justify;">Otras empresas:</p>
<p style="text-align: justify;"><a href="http://warez-host.com/">Warez-Host<br />
</a><a href="http://www.wiroos.com/" rel="nofollow">Wiroos!</a> el que usa Taringa.<br />
<a href="http://www.wrzhost.com/" rel="nofollow">WrzHost</a><br />
<a href="http://underhost.com/" rel="nofollow">UnderHost</a></p>
<p style="text-align: justify;"><strong>¿Qué otros conoces?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/offshore-hosting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pedir permisos en una aplicación de Facebook</title>
		<link>http://www.brianur.info/pedir-permisos-en-una-aplicacion-de-facebook/</link>
		<comments>http://www.brianur.info/pedir-permisos-en-una-aplicacion-de-facebook/#comments</comments>
		<pubDate>Fri, 26 Nov 2010 22:36:26 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[fbml]]></category>
		<category><![CDATA[permisos]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=944</guid>
		<description><![CDATA[Este articulo hace parte de la vieja API de Facebook, para más información sobre la nueva API te recomiendo leer Funcionamiento de la Graph API de Facebook. Facebook permite a las aplicaciones poder tomar datos concretos de los usuarios, como por ejemplo el nombre para dar un saludo, el ID, el sexo y entre otros. [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #ff0000;">Este articulo hace parte de la vieja API de Facebook, para más información sobre la nueva API te recomiendo leer </span><strong><span style="color: #ff0000;"><a title="Graph API Facebook" href="http://www.brianur.info/funcionamiento-de-la-graph-api-de-facebook/" target="_blank"><span style="color: #ff0000;">Funcionamiento de la Graph API de Facebook</span></a></span>.</strong></h2>
<p style="text-align: justify;"><strong>Facebook</strong> permite a las aplicaciones poder tomar datos concretos de los usuarios, como por ejemplo el nombre para dar un saludo, el ID, el sexo y entre otros. Por razones de privacidad hay datos que no se pueden obtener y para ello hay que pedir permisos al usuario. En este caso vamos a suponer que necesitamos el email y fecha de cumpleaños del usuario, al no tener los permisos veríamos algo como:</p>
<p style="text-align: justify;"><a href="http://www.brianur.info/pedir-permisos-en-una-aplicacion-de-facebook/jimmy/" rel="attachment wp-att-945"><img class="aligncenter size-full wp-image-945" title="Pedir permisos en Facebook" src="http://www.brianur.info/wp-content/uploads/2010/11/jimmy.jpg" alt="" width="145" height="247" /><span id="more-944"></span></a>Hay varias formas de poder pedir permisos, en este caso veremos como hacerlo usando un tag <strong>FBML</strong> llamado <a title="FBML" href="http://developers.facebook.com/docs/reference/fbml/prompt-permission">fb:prompt-permission</a>:</p>
<pre class="brush: plain; title: ; notranslate">&lt;fb:prompt-permission perms=&quot;email,user_birthday&quot;&gt;Dar permisos a la aplicación&lt;/fb:prompt-permission&gt;</pre>
<p style="text-align: justify;">Dentro del atributo <strong>perms</strong> se debe escribir los permisos que necesitamos separados por coma, en este caso email y user_birthday, adicionalmente hay otro atributo llamado <strong>next_fbjs </strong>con el que podemos redireccionar al usuario después de dar el permiso. Antes de cerrar el tag debemos escribir un texto, que se verá como un enlace que al ser clickeado mostrará una ventana pidiendo los permisos:</p>
<p style="text-align: justify;"><a href="http://www.brianur.info/pedir-permisos-en-una-aplicacion-de-facebook/permisos/" rel="attachment wp-att-947"><img class="aligncenter size-full wp-image-947" title="Ventana pidiendo permisos" src="http://www.brianur.info/wp-content/uploads/2010/11/permisos.png" alt="" width="397" height="206" /></a></p>
<p style="text-align: justify;">Al aceptar los permisos el enlace anterior no se volverá a mostrar y veremos los datos pedidos en la aplicación:</p>
<p style="text-align: justify;"><a href="http://www.brianur.info/pedir-permisos-en-una-aplicacion-de-facebook/permisos-2/" rel="attachment wp-att-948"><img class="aligncenter size-full wp-image-948" title="Permisos aceptados" src="http://www.brianur.info/wp-content/uploads/2010/11/permisos.jpg" alt="" width="175" height="298" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/pedir-permisos-en-una-aplicacion-de-facebook/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>¿Cómo maquetar y diseñar una web?</title>
		<link>http://www.brianur.info/%c2%bfcomo-maquetar-y-disenar-una-web/</link>
		<comments>http://www.brianur.info/%c2%bfcomo-maquetar-y-disenar-una-web/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 16:40:07 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[maquetar]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=923</guid>
		<description><![CDATA[Cuando hablamos de hacer una web básicamente nos encontramos con dos partes importantes, una de ellas es el diseño &#8220;lo bonito&#8221;, lo que los usuarios pueden ver y la otra parte son &#8220;las entrañas&#8221; las cuales realizan diferentes tipos de acciones. Aquí no escribo mucho sobre maquetación y diseño ya que no es mi fuerte, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Cuando hablamos de hacer una web básicamente nos encontramos con <a href="http://es.wikipedia.org/wiki/Front-end_y_back-end">dos partes</a> importantes, una de ellas es el diseño &#8220;lo bonito&#8221;, lo que los usuarios pueden ver y la otra parte son &#8220;las entrañas&#8221; las cuales realizan diferentes tipos de acciones. Aquí no escribo mucho sobre <strong>maquetación </strong>y diseño ya que no es mi fuerte, pero para quienes les gusta el tema les comparto estos videotutoriales que me encontré en la web de <a href="http://www.cesarcancino.com">César Cancino.</a></p>
<h2 style="text-align: center;">Introducción al diseño y maquetación web</h2>
<p style="text-align: justify;">En este primer vídeo se diseña la estructura del sitio web haciendo uso de <strong>Photoshop</strong>.</p>
<p style="text-align: center;"><p><a href="http://www.brianur.info/%c2%bfcomo-maquetar-y-disenar-una-web/"><em>Pinche aquí para ver el vídeo</em></a></p><span id="more-923"></span></p>
<h2 style="text-align: center;">XHTML y CSS</h2>
<p>Consultaremos nuestro diseño que previamente creamos en Photoshop e  iremos marcando las etiquetas necesarias en XHTML para estructurar nuestro sitio.</p>
<p style="text-align: center;"><p><a href="http://www.brianur.info/%c2%bfcomo-maquetar-y-disenar-una-web/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<h2 style="text-align: center;">Diseño y maquetación web 3</h2>
<p style="text-align: justify;">En este video veremos cómo trabajar la hoja de estilos CSS que dará la  presentación definitiva a nuestro anterior trabajo de diseño y marcado  de código HTML. Repasaremos entre otras cosas la manera de medir trozos  de imágenes para luego llamarlas con CSS; veremos cómo crear menús de  navegación cuando estilicemos tanto la barra de navegación principal  (horizontal), como los items de menús de los widgets. Veremos también  cómo ahorrar líneas de código al aplicar propiedades en conjunto  (&#8220;propiedades shorthand&#8221;) para dos elementos en una sola definición CSS a  los botones de &#8220;Ver más&#8221; y &#8220;Ver comentarios&#8221;, del post.</p>
<p style="text-align: center;"><p><a href="http://www.brianur.info/%c2%bfcomo-maquetar-y-disenar-una-web/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="text-align: left;">Aprovecho para agradecer a Domingo Uribe por realizar estos interesantes vídeos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/%c2%bfcomo-maquetar-y-disenar-una-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crear una aplicación de Frases para Facebook: Recuperar frases desde una base de datos</title>
		<link>http://www.brianur.info/crear-una-aplicacion-de-frases-para-facebook-recuperar-frases-desde-una-base-de-datos/</link>
		<comments>http://www.brianur.info/crear-una-aplicacion-de-frases-para-facebook-recuperar-frases-desde-una-base-de-datos/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 22:09:17 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[crear aplicacion]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=907</guid>
		<description><![CDATA[Este articulo hace parte de la vieja API de Facebook, para más información sobre la nueva API te recomiendo leer Funcionamiento de la Graph API de Facebook. Anteriormente había explicado como mostrar aleatoriamente las frases desde un archivo de texto usando PHP, el problema de usar este método es que se puede volver muy fastidioso [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #ff0000;">Este articulo hace parte de la vieja API de Facebook, para más información sobre la nueva API te recomiendo leer <strong><a title="Graph API Facebook" href="http://www.brianur.info/funcionamiento-de-la-graph-api-de-facebook/" target="_blank"><span style="color: #ff0000;">Funcionamiento de la Graph API de Facebook</span></a>.</strong></span></h2>
<p style="text-align: justify;"><a href="http://www.brianur.info/crear-una-aplicacion-de-frases-para-facebook/">Anteriormente</a> había explicado como mostrar aleatoriamente las frases desde un archivo de texto usando PHP, el problema de usar este método es que se puede volver muy fastidioso estar editando el archivo de texto para introducir una nueva frase; el uso de una base de datos convierte este proceso en algo más sencillo ademas nos de muchas más ventajas como la posibilidad de permitirle a los usuarios enviar sus propias frases, mostrar todas las frases en una tabla, etc.</p>
<p style="text-align: center;"><strong>Creando la base de datos en MySQL</strong></p>
<p style="text-align: left;">Se debe crear una base de datos con el nombre que quieran, en este caso yo usare el nombre &#8220;app_quotes&#8221; y luego debemos crear una tabla con una estructura como la siguiente:</p>
<pre class="brush: sql; title: ; notranslate">CREATE TABLE frases
 (
 id INT PRIMARY KEY AUTO_INCREMENT,
 frase VARCHAR(150)
 );</pre>
<p style="text-align: left;">Después de crear la tabla deben insertar las frases para luego mostrarlas.</p>
<p style="text-align: center;"><strong>Recuperar las frases desde la base de datos</strong></p>
<pre class="brush: php; title: ; notranslate">
$conexion = mysql_connect(&quot;localhost&quot;, &quot;usuario&quot;, &quot;password&quot;);
mysql_select_db(&quot;app_quotes&quot;, $conexion);
$consulta = &quot;SELECT frase FROM frases ORDER BY RAND() LIMIT 1&quot;;
$query = mysql_query($consulta, $conexion) or die(mysql_error());
$row = mysql_fetch_row($query);
$frase = $row[0];
echo &quot;La frase del día es: &quot;.$frase;
</pre>
<p style="text-align: center;"><strong>Publicar la frase en el muro</strong></p>
<pre class="brush: jscript; title: ; notranslate">&lt;script&gt;
 function publicar(){
 var mensaje = &quot;&lt;?php echo $frase; ?&gt;&quot;;
 var user_message_prompt = &quot;¿Deseas comentar algo?&quot;;
 var user_message = &quot;Que buena frase!&quot;;
 var attachment = {'media':
 [{'type':'image',
 'src':'http://tuweb.info/logo.png',
 'href':'http://apps.facebook.com/tuaplicacion/'}],
 'name': mensaje +'&lt;br /&gt;',
 'description':'Frases Urban'};

 Facebook.streamPublish(user_message,attachment,'','',user_message_prompt);
 }
publicar();
&lt;/script&gt;</pre>
<h3 style="text-align: center;"><strong><a href="http://apps.facebook.com/sabiasqueeexd/index.php">Ver ejemplo</a></strong></h3>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/crear-una-aplicacion-de-frases-para-facebook-recuperar-frases-desde-una-base-de-datos/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Crear una aplicación de Frases para Facebook: Invitar amigos a usar la aplicación</title>
		<link>http://www.brianur.info/crear-una-aplicacion-de-frases-para-facebook-invitar-amigos-a-usar-la-aplicacion/</link>
		<comments>http://www.brianur.info/crear-una-aplicacion-de-frases-para-facebook-invitar-amigos-a-usar-la-aplicacion/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 18:46:26 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[crear aplicacion]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=900</guid>
		<description><![CDATA[Este articulo hace parte de la vieja API de Facebook, para más información sobre la nueva API te recomiendo leer Funcionamiento de la Graph API de Facebook. Continuando con el Tutorial para crear una aplicación de frases, veremos algo muy importante para hacer crecer nuestra aplicación: Invitar amigos. Para hacer esto necesitamos hacer uso de [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #ff0000;">Este articulo hace parte de la vieja API de Facebook, para más información sobre la nueva API te recomiendo leer </span><strong><span style="color: #ff0000;"><a title="Graph API Facebook" href="http://www.brianur.info/funcionamiento-de-la-graph-api-de-facebook/" target="_blank"><span style="color: #ff0000;">Funcionamiento de la Graph API de Facebook</span></a></span>.</strong></h2>
<p style="text-align: justify;">Continuando con el <a href="http://www.brianur.info/crear-una-aplicacion-de-frases-para-facebook/">Tutorial para crear una aplicación de frases</a>, veremos algo muy importante para hacer crecer nuestra aplicación: Invitar amigos.</p>
<p style="text-align: justify;">Para hacer esto necesitamos hacer uso de las siguientes etiquetas FBML:</p>
<ul>
<li><a href="http://developers.facebook.com/docs/reference/fbml/request-form">fb:request-form</a> que es la encargada de enviar la solicitud a los usuarios seleccionados.</li>
<li><a href="http://developers.facebook.com/docs/reference/fbml/multi-friend-selector">fb:multi-friend-selector</a> que es la que muestra la lista de amigos para poder seleccionarlos.</li>
<li><a href="http://developers.facebook.com/docs/reference/fbml/multi-friend-selector_%28condensed%29">fb:multi-friend-selector_(condensed)</a> es una alternativa a fb:multi-friend-selector, hace lo mismo pero se muestra de una forma más reducida.</li>
</ul>
<pre class="brush: xml; title: ; notranslate">&lt;fb:request-form
 action=&quot;index.php?accion=amigos&quot;
 method=&quot;POST&quot;
 invite=&quot;true&quot;
 type=&quot;Tu aplicacion!&quot;
 content=&quot;Hola! encontre esta aplicacion y pense que te podria gustar. Descripcion de la aplicacion
 &lt;fb:req-choice url='http://www.facebook.com/login.php?api_key=&lt;c:out value='${apiKey}' /&gt;'
 label='Ir a la aplicacion!' /&gt;&quot;&gt;

 &lt;fb:multi-friend-selector
 showborder=&quot;false&quot;
 actiontext=&quot;Invita a tus amigos a usar esta aplicacion.&quot;
 exclude_ids=&quot;&lt;c:out value='${appUserFriends}' /&gt;&quot;
 max=&quot;20&quot; /&gt;
&lt;/fb:request-form&gt;</pre>
<p>El resultado:</p>
<p><a href="http://www.brianur.info/crear-una-aplicacion-de-frases-para-facebook-invitar-amigos-a-usar-la-aplicacion/amigos/" rel="attachment wp-att-901"><img class="aligncenter size-full wp-image-901" title="Invitar amigos en Facebook" src="http://www.brianur.info/wp-content/uploads/2010/10/amigos.png" alt="" width="532" height="376" /></a>Pueden ver el ejemplo funcionando <a href="http://apps.facebook.com/myloves/amigos.php">aquí</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/crear-una-aplicacion-de-frases-para-facebook-invitar-amigos-a-usar-la-aplicacion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Charla: Introducción a AJAX y JavaScript</title>
		<link>http://www.brianur.info/charla-introduccion-a-ajax-y-javascript/</link>
		<comments>http://www.brianur.info/charla-introduccion-a-ajax-y-javascript/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 21:37:38 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[charla]]></category>
		<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=793</guid>
		<description><![CDATA[Charla por Ángel ‘Java’ López. En total 1:45 hs hablando de AJAX y varias tecnologías webs: 00:00 Introducción 05:30 AJAX 07:30 JavaScript y JSON 16:00 Objetos en JavaScript 19:00 Prototipos 23:50 Funciones 26:00 Clases 28:00 HTTP / HTML / XHTML / XML / CSS 32:20 DOM / DHTML 34:20 XMLHttpRequest 43:00 Ejemplos reales de AJAX [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Charla por <a href="http://www.exactas.uba.ar/uti/?p=63">Ángel ‘Java’ López</a>. En total 1:45 hs hablando de AJAX y varias tecnologías webs:</p>
<p style="text-align: left;">00:00 Introducción<br />
05:30 AJAX<br />
07:30 JavaScript y JSON<br />
16:00 Objetos en JavaScript<br />
19:00 Prototipos<br />
23:50 Funciones<span id="more-793"></span><br />
26:00 Clases<br />
28:00 HTTP / HTML / XHTML / XML / CSS<br />
32:20 DOM / DHTML<br />
34:20 XMLHttpRequest<br />
43:00 Ejemplos reales de AJAX<br />
48:40 Asincónico<br />
53:00 Lado del servidor<br />
1:05:30 jQuery<br />
1:10:00 Plugin: JQueryUI<br />
1:21:00 JSON usado con AJAX<br />
1:28:00 Plugin: JQuery Autocomplete<br />
1:32:00 Plugin: Grilla<br />
1:40:00 Resumen y por que usar JavaScript / AJAX</p>
<p style="text-align: center;"><div class="wpjp-embed-code">
		<div id="wpjp-player-b1d09a6d8ad932b526d69610a7f35a57"><a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=shockwaveFlash" rel="nofollow">Get The Latest Flash Player</a></div>
		<script type="text/javascript">
		var so = new SWFObject('http://www.brianur.info/wp-content/plugins/wp-jw-player/swf/player.swf','wpjp_player','450','350','9');
		so.addParam('allowfullscreen','true');
		so.addParam('allowscriptaccess','always');
		so.addParam('wmode','transparent');
		so.addParam('flashvars','file=http://www.exactas.uba.ar/uti/videos/lopez.flv&playlist=none&autostart=');
		so.write('wpjp-player-b1d09a6d8ad932b526d69610a7f35a57');
		</script><div class="wpjp-attribution-text"><p style="font-size:8px;text-align:center;"><a href="http://www.tubepress.net/wp-jw-player" target="_blank">WP JW Player Plugin</a> Powered by <a href="http://www.tubepress.net/es" target="_blank">TubePress.NET</a></p></div></div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/charla-introduccion-a-ajax-y-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.exactas.uba.ar/uti/videos/lopez.flv" length="250522346" type="video/x-flv" />
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/58 queries in 0.084 seconds using disk: basic
Object Caching 1143/1291 objects using disk: basic

Served from: www.brianur.info @ 2012-02-05 04:56:15 -->
