<?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>Mauricio Pastrana - Since 1982 &#187; Gente</title>
	<atom:link href="http://mauriciopastrana.com/category/gente/feed/" rel="self" type="application/rss+xml" />
	<link>http://mauriciopastrana.com</link>
	<description>Ad Rem, Ad Hominem, Ad Lib!</description>
	<lastBuildDate>Mon, 05 Oct 2009 21:49:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Me lo va a poner de sombrero!</title>
		<link>http://mauriciopastrana.com/personal/me-lo-va-a-poner-de-sombrero/</link>
		<comments>http://mauriciopastrana.com/personal/me-lo-va-a-poner-de-sombrero/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 01:15:34 +0000</pubDate>
		<dc:creator>Mauricio Pastrana</dc:creator>
				<category><![CDATA[Gente]]></category>
		<category><![CDATA[Paseos]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[Compromiso]]></category>
		<category><![CDATA[Nueva York]]></category>
		<category><![CDATA[Propuesta]]></category>

		<guid isPermaLink="false">http://mauriciopastrana.com/?p=95</guid>
		<description><![CDATA[&#8230; creo, era lo que estaba seguro iba a suceder este pasado fin de semana en nueva york mientras le entregaba su anillo de compromiso a mi novia. A continuación fotos y detalles del evento. El anillo Ok, primero lo primero acá par fotos: Si se echan una pasada por mi roll de flickr encuentran [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">&#8230; creo, era lo que estaba seguro iba a suceder este pasado fin de semana en nueva york mientras le entregaba su anillo de compromiso a <a href="http://www.facebook.com/people/Paola_Suarez/219002207" target="_blank">mi novia</a>.</p>
<p style="text-align: justify;">A continuación fotos y detalles del evento.</p>
<p style="text-align: justify;"><span id="more-95"></span></p>
<h3 style="text-align: justify;">El anillo</h3>
<p style="text-align: justify;">Ok, primero lo primero acá par fotos:</p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/img_0499-1.jpg" rel="lightbox[95]"><img class="size-medium wp-image-96" title="img_0499-1" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/img_0499-1-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/img_0500-1.jpg" rel="lightbox[95]"><img class="alignnone size-medium wp-image-97" title="img_0500-1" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/img_0500-1-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/img_0504-1.jpg" rel="lightbox[95]"><img class="size-medium wp-image-98" title="img_0504-1" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/img_0504-1-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/img_0504-1.jpg" rel="lightbox[95]"><img title="img_0504-1" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/photo-15-300x225.jpg" alt="" width="300" height="225" /></a></p>
<h3 style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/photo-15.jpg" rel="lightbox[95]"></a></h3>
<p style="text-align: justify;">Si se echan una pasada por <a href="http://www.flickr.com/photos/mauriciopastrana" target="_blank">mi roll de flickr</a> encuentran otro par.</p>
<h4 style="text-align: justify;">Materiales</h4>
<p style="text-align: justify;">Quiero que quede algo muy en claro acá. <em>No es un diamante estándar</em>. Esta piedra esta hecha en <a href="http://es.wikipedia.org/wiki/Carburo_de_silicio" target="_blank">Carburo de Silicio</a> (o, mas infamosamente conocido como el <strong>SiC</strong>).</p>
<p style="text-align: justify;">Ah?</p>
<p style="text-align: justify;">Segun su definicion en wikipedia: &#8220;El <strong>carburo de silicio</strong>, (SiC) es un <a title="Carburo" href="http://es.wikipedia.org/wiki/Carburo">carburo</a> covalente de estequiomería 1:1 que tiene una estructura de <a title="Diamante" href="http://es.wikipedia.org/wiki/Diamante">diamante</a>, a pesar del diferente tamaño del <a title="Carbono" href="http://es.wikipedia.org/wiki/Carbono">C</a> y <a title="Silicio" href="http://es.wikipedia.org/wiki/Silicio">Si</a>, que podría impedir la misma&#8221;, y aparte de servir como gema de dureza similar al diamante (osea, mas de 9 en la <a href="http://es.wikipedia.org/wiki/Escala_de_Mohs" target="_self">escala de mohs</a>), tambien es &#8220;un material semiconductor (~ 2,4V) y refractario que presenta muchas ventajas para ser utilizado en dispositivos que impliquen trabajar en condiciones extremas de temperatura, voltaje y frecuencia&#8221;.</p>
<p style="text-align: justify;">Este se le encuentra en &#8220;diodos, transistores, supresores&#8230;, e incluso dispositivos para microondas de alta energía&#8221; y dicen que: &#8220;Gracias a la elevada velocidad de saturación de portadores de carga (2,0&#215;107 cms-1) es posible emplear SiC para dispositivos que trabajen a altas frecuencias, ya sean Radiofrecuencias o Microondas&#8221;&#8230; que, para mi, lo hace de lejos el material perfecto para usar como roca, de cierto modo creo lo conecta con eso que mi dedicación laboral (e inspiracional? lastima no fue un &#8220;Silicon rock in Silicon valley&#8221;, pero &#8230; bueno) lleva un <em>tilt pesado</em> hacia el desarrollo de tecnología (o en ultimas me da sensación de que si le estoy dando algún uso al <a href="http://physics.fau.edu/" target="_blank">grado en fisica</a>).</p>
<p style="text-align: justify;">Mas ñoño? bien.</p>
<p style="text-align: justify;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/both.jpg" rel="lightbox[95]"><img class="alignright size-medium wp-image-100" style="margin: 10px; float: right;" title="both" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/both-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p style="text-align: justify;">El SiC, resulta, <strong>no existe</strong> en forma natural en el planeta, y en 1886 fue el Dr. Ferdinand Frederick <a title="Henri Moissan" href="http://en.wikipedia.org/wiki/Henri_Moissan">Henri Moissan</a> quien lo catalogo en existencia mientras tomaba muestras de un meteorito en Arizona (este: <a href="http://en.wikipedia.org/wiki/Canyon_Diablo" target="_blank">Canyon Diablo</a>).</p>
<p style="text-align: justify;">Lastimosamente esto quiere decir que la piedra es <em>man-made</em>, un crimen capital en gemas&#8230; si fuese que estuviéramos hablando de diamantes. Pero veamoslo de este modo, aparte de la simbologia personal (y la no-personal, con eso del: &#8220;piedras preciosas que vinieron del cielo en un meteorito&#8221;); la piedra posee la característica de ser <a href="http://en.wikipedia.org/wiki/Birefringence" target="_blank">birefringente</a>, y como tal es tremendamente brillante (o: posee mucho &#8220;<a href="http://diamonds.pricescope.com/brill.asp" target="_self">fire</a>&#8220;). <em>Y se le nota</em>.</p>
<p style="text-align: justify;">En la imagen arriba a la derecha pueden ver a que me refiero, la luz blanca es el ejemplo de lo que brilla un diamante &#8220;estándar&#8221;. Al ojo &#8220;pelado&#8221; parecería ser un diamante super claro sin imperfecciones que &#8220;brilla&#8221; una cantidad.</p>
<p style="text-align: justify;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/ed_cut1.gif" rel="lightbox[95]"><img class="alignleft size-full wp-image-102" style="margin: 10px; float: left;" title="ed_cut1" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/ed_cut1.gif" alt="" width="140" height="102" /></a>Ah. Ya les dije que compre la piedra en Sydney, <em>ciudad donde nos conocimos</em>? &#8230; esta bien esta bien&#8230; ya paro con la simbologia y explicación. En peso equivalente de diamante es una piedra de 2 Kilates (2CT), relativamente &#8220;pandita&#8221; (osea, no tiene panza) con una cara de 8mm y corte hexagonal directamente a través del eje óptico.</p>
<p style="text-align: justify;">Y el anillo? con ayuda de Rosa Voloj (y obvio, <a href="http://video.nbc6.net/player/?id=241586" target="_blank">Isaac</a>), el anillo fue hecho a la medida sobre <a href="http://gilletts.com.au/information.php?info_id=13" target="_blank">platino</a> (al 95%), cortado; preparado y medido según un diseño personal. Quiero decir&#8230;</p>
<h4 style="text-align: justify;">Diseño</h4>
<p style="text-align: justify;">Antes que cualquier cosa, le extiendo unas gracias infinitas a Isaac Fisboin y Rosa Voloj, mis <em>problem solvers</em> de confianza quienes, otra de enseñarme como carajos se usa un Yarmulke (ehm, &#8220;<a href="http://en.wikipedia.org/wiki/Yarmulke" target="_blank">Kippah</a>&#8220;), me tuvieron a piedra y rejo sobre lo que es el diseño moderno y atractivo de joyas hoy dia.</p>
<p style="text-align: justify;">Pasaron varias <a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/anillo.png" rel="lightbox[95]" target="_blank">propuestas</a> que lastimosamente, para bienes demostrativos, quedaron todas archivadas en el &#8220;<a href="http://www.urbandictionary.com/define.php?term=round%20file" target="_blank">round file</a>&#8220;. La ultima decisión llego a ser algo relativamente similar a un <a href="http://www.pricescope.com/idealbb/files/DA_side_bags.png" rel="lightbox[95]" target="_blank">Cartier Déclaration</a>, solo que fuertemente modificado para ajustarse a la piedra. Obvio, rápidamente salio el chiste: &#8220;paso de ser un <strong>déclaration</strong> a un <strong>declaración</strong>&#8220;. Acá les dejo lo que fue <a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/anillo.png" rel="lightbox[95]" target="_blank">mis notas de diseño</a>.</p>
<p style="text-align: center;">
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/comparacin.png" rel="lightbox[95]"><img class="size-medium wp-image-104" title="comparacin" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/comparacin-300x141.png" alt="" width="300" height="141" /></a></p>
<p style="text-align: justify;">(se parecen?) La montura original la muestran mas a menudo con piedras cuadradas, yo (rosa) me invente colgarle una piedra redonda, que genera el distintivo espacio por debajo.</p>
<p style="text-align: justify;">A discreción de Paola, aca la inscripción que va por dentro. No pregunten. Son dos animales.</p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/inscription.png" rel="lightbox[95]"><img class="size-medium wp-image-106" title="inscription" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/inscription.png" alt="" width="300" height="66" /></a></p>
<h3 style="text-align: justify;">La propuesta</h3>
<p style="text-align: justify;">Ahora me veía yo con el siguiente problema. Paola en Bogota y yo acá (<a href="http://mauriciopastrana.com/freelance/ios-solutions/" target="_blank">en Miami</a>). Para aquellos que me conocen, no es gran sorpresa las ganas infinitas que tengo de vivir en nueva york (hm, <a href="http://www.43things.com/things/view/362/live-in-new-york-city" target="_blank">cliché</a>?), y aun así; el venue que le tenia en mente a Paola desde hace rato era el siguiente: el <a href="http://arrowsfireandflowers.files.wordpress.com/2007/10/tourists-on-top-of-the-empire-state-building.jpg" rel="lightbox[95]" target="_blank">observatorio</a> del <a href="http://content.answers.com/main/content/wp/en-commons/thumb/d/d7/260px-Empire_State_Building_by_David_Shankbone.jpg" rel="lightbox[95]" target="_blank">Empire State</a> (mas de 100 pisos!), por el momento; <a href="http://en.wikipedia.org/wiki/List_of_tallest_buildings_in_New_York_City#Tallest_buildings" target="_blank">el edificio mas alto de nueva york</a>. Justo el suficiente volumen de gente, luz, ruido y atencion para hacer el caso.</p>
<p style="text-align: justify;">Ahora, como hago para entrar? resulta; menos mal, las boletas se <a href="https://www.esbnyc.com/tickets/index.cfm?CFID=28194956&amp;CFTOKEN=37506152" target="_blank">consiguen por internet</a>, y justo aca fue que me encontre con el siguiente apunte: &#8220;<a href="http://www.esbnyc.com/modules/security_popup_tickets.cfm?section=tourism&amp;securityinfo=yes&amp;visitorinfo=yes" target="_blank">Everyone must go in through a security check</a>&#8221; &#8230; <em>Security check? </em>En panico, y rapidamente, me encontre tratando de averiguar como hago para colar un anillo sin que Paola se entere de este&#8230; sera que lo pongo por correo? me busco un <a href="http://leo.prie.to/" target="_blank">amigo</a> o <a href="http://posters.imdb.com/name/nm0409772/" target="_blank">familiar</a> que este en la zona? pucha, pero gracias a dios existe el <a href="http://www.google.com/search?q=define:+crowdsourcing&amp;hl=en&amp;client=firefox-a&amp;rls=org.mozilla:en-US:official&amp;hs=u0p&amp;oi=definel&amp;defl=es" target="_blank">crowdsourcing</a> y no en 30 minutos de ponerlo, ya tenia 9 respuestas en Yahoo Answers (<a href="http://answers.yahoo.com/question/index?qid=20080624082435AAlvYrg&amp;pa=FYd1D2bwHTHzJb5lFus7RpYPhK5856nqB5nocqDukza4lw--&amp;paid=asked&amp;msgr_status=" target="_blank">How stiff is security at the empire state building (to smuggle a ring in)? Surprise proposal this weekend</a>), justo la primera solucion fue la que me llamo la atencion.</p>
<p style="text-align: justify;">Sucedio asi:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://farm4.static.flickr.com/3178/2628559887_41375a9d86_b_d.jpg" alt="" width="253" height="337" /></p>
<p style="text-align: center;">(un sitio donde esconderlo primero)</p>
<p style="text-align: center;">primero nos tomamos unas fotos antes de salir</p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3210.jpg" rel="lightbox[95]"><img class="aligncenter size-full wp-image-107" title="imgp3210" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3210.jpg" alt="" width="300" height="400" /></a></p>
<p style="text-align: center;">y <em>On y Va!</em> &#8230;</p>
<p style="text-align: center;"><img class="aligncenter" style="vertical-align: middle;" src="http://farm4.static.flickr.com/3073/2629228420_67ef846f0f_b_d.jpg" alt="" width="287" height="382" /></p>
<p style="text-align: center;">llegando al empire state; que ALEGRÍA saltarnos las filas.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://farm4.static.flickr.com/3257/2629229038_b0c8a6416f_b_d.jpg" alt="" width="297" height="395" /></p>
<p style="text-align: center;">y el security? digno de aeropuerto! menos mal el anillo no disparo el detector de metales.</p>
<p style="text-align: center;"><img style="vertical-align: middle;" src="http://farm4.static.flickr.com/3007/2629229328_bb42e7b0b9_b_d.jpg" alt="" width="310" height="232" /></p>
<p style="text-align: center;">&#8230;</p>
<p style="text-align: center;">arriba. ni una sospecha!</p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3217.jpg" rel="lightbox[95]"><img class="aligncenter size-medium wp-image-108" title="imgp3217" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3217-225x300.jpg" alt="" width="225" height="300" /></a></p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3224.jpg" rel="lightbox[95]"><img class="aligncenter size-full wp-image-109" title="imgp3224" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3224.jpg" alt="" width="300" height="225" /></a></p>
<p style="text-align: center;">(times square)</p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3225.jpg" rel="lightbox[95]"><img class="aligncenter size-full wp-image-110" title="imgp3225" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3225.jpg" alt="" width="300" height="225" /></a></p>
<p style="text-align: center;">(el chrysler)</p>
<p style="text-align: center;">&#8230; y yo? nervios! ok. me voltee y al primero que vi, ehm, relativamente responsable para la labor: &#8220;sorry, you mind taking a picture -<em>or two?</em>&#8220;</p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3226.jpg" rel="lightbox[95]"><img class="aligncenter size-full wp-image-111" title="imgp3226" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3226.jpg" alt="" width="300" height="225" /></a></p>
<p style="text-align: center;">(los casamos?)</p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3227.jpg" rel="lightbox[95]"><img class="aligncenter size-full wp-image-112" title="imgp3227" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3227.jpg" alt="" width="300" height="225" /></a></p>
<p style="text-align: center;">(si, si!)</p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3228.jpg" rel="lightbox[95]"><img class="aligncenter size-full wp-image-113" title="imgp3228" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3228.jpg" alt="" width="300" height="225" /></a></p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3230.jpg" rel="lightbox[95]"><img class="aligncenter size-full wp-image-114" title="imgp3230" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3230.jpg" alt="" width="300" height="225" /></a></p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3230.jpg" rel="lightbox[95]"><img title="imgp3230" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3231.jpg" alt="" /></a></p>
<p style="text-align: center;">(esa frente mojada? sudor de nervios)</p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3232.jpg" rel="lightbox[95]"><img class="aligncenter size-full wp-image-116" title="imgp3232" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3232.jpg" alt="" width="300" height="400" /></a></p>
<p style="text-align: center;"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3232.jpg" rel="lightbox[95]"><img title="imgp3232" src="http://mauriciopastrana.com/wp-content/uploads/2008/07/imgp3234.jpg" alt="" width="300" height="400" /></a></p>
<p style="text-align: center;">(feliz!)</p>
<h3 style="text-align: justify;">Nueva York!</h3>
<p style="text-align: justify;">Y bueno, así mismo nos quedamos un buen rato en el <a href="http://www.thefreedictionary.com/Empire+State+Building" target="_blank">ESB</a>. Un review rapido de que fue nuestro fin de semana. Con estadia en el <a href="http://new-york.new-york.usa.firstratehotels.com/hotelimages/102/10202789/wct-millenium-hilton-001.jpg" rel="lightbox[95]" target="_blank">Millenium Hilton</a> y vista del piso 48 a <span style="text-decoration: line-through;">las torres gemelas</span> <a href="http://www.flickr.com/photos/mauriciopastrana/2629378064/" target="_blank">ground zero</a>, el domingo despues de nuestra llegada pasamos rapidamente por <span class="entry-content"><a href="http://www.flickr.com/photos/mauriciopastrana/2628421245/" target="_blank">Wall</a> <a href="http://farm4.static.flickr.com/3116/2629240584_a0d9efcfef_m.jpg" rel="lightbox[95]" target="_blank">Street</a>, <a href="http://www.flickr.com/photos/mauriciopastrana/2629241114/" target="_blank">Battery</a> <a href="http://www.flickr.com/photos/mauriciopastrana/2629241598/" target="_blank">Park</a>, <a href="http://www.flickr.com/photos/mauriciopastrana/2628424471/" target="_blank">Grand Central</a>, el <a href="http://www.flickr.com/photos/mauriciopastrana/2628486735/" target="_blank">Gay Pride Parade,</a> <a href="http://www.flickr.com/photos/mauriciopastrana/2629305732/" target="_blank">un</a> <a href="http://www.flickr.com/photos/mauriciopastrana/2629304316/" target="_blank">algo</a> <a href="http://www.flickr.com/photos/mauriciopastrana/2628489465/" target="_blank">de</a> <a href="http://www.flickr.com/photos/mauriciopastrana/2628487575/" target="_blank">shopping</a> <a href="http://www.flickr.com/photos/mauriciopastrana/2629315240/" target="_blank">en</a> <a href="http://www.flickr.com/photos/mauriciopastrana/2629315042/" target="_blank">midtown</a>, <a href="http://www.flickr.com/photos/mauriciopastrana/2628500029/" target="_blank">Central</a> <a href="http://www.flickr.com/photos/mauriciopastrana/2629318336/" target="_blank">Park</a>, <a href="http://www.flickr.com/photos/mauriciopastrana/2629321486/" target="_blank">Chinatown</a>, Rockefeller, <a href="http://www.flickr.com/photos/mauriciopastrana/2629316946/" target="_blank">Columbus</a>, <a href="http://www.flickr.com/photos/mauriciopastrana/2629324406/" target="_blank">Legally</a> <a href="http://www.flickr.com/photos/mauriciopastrana/2628505667/" target="_blank">Blonde</a> en Broadway (y por extension <a href="http://www.flickr.com/photos/mauriciopastrana/2629323574/" target="_blank">Times Square</a>) y ya hacia media noche, <a href="http://www.flickr.com/photos/mauriciopastrana/2629326254/" target="_blank">Little</a> <a href="http://www.flickr.com/photos/mauriciopastrana/2629326254/" target="_blank">Italy</a>. Phew! Un dia!</span></p>
<p style="text-align: justify;">
<h3 style="text-align: justify;">Y-hora?</h3>
<p style="text-align: justify;">Creo, le debo las gracias a todos los varios que me ayudaron a planear, opinar, organizar y mantener el secreto, en ultimas; cayo una cantidad de logistica aca! El compromiso? de aca a un año (Junio? Julio?). Mientras tanto, los invito a seguirnos en <a href="http://www.facebook.com/people/Mauricio_Pastrana/33412235" target="_blank">Facebook</a> o <a href="http://www.twitter.com/mpastrana" target="_blank">Twitter</a>.</p>
<p style="text-align: justify;">&#8230;</p>
<p style="text-align: justify;">Entonces? Me quedo de sombrero? pues no. (Descanso).</p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciopastrana.com/personal/me-lo-va-a-poner-de-sombrero/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Esquemas URI</title>
		<link>http://mauriciopastrana.com/gente/esquemas-uri/</link>
		<comments>http://mauriciopastrana.com/gente/esquemas-uri/#comments</comments>
		<pubDate>Tue, 13 May 2008 20:53:03 +0000</pubDate>
		<dc:creator>Mauricio Pastrana</dc:creator>
				<category><![CDATA[Freelance]]></category>
		<category><![CDATA[Gadgets y Tecnologia]]></category>
		<category><![CDATA[Gente]]></category>
		<category><![CDATA[Listas]]></category>

		<guid isPermaLink="false">http://mauriciopastrana.com/?p=93</guid>
		<description><![CDATA[No es mas que un repost (Gracias! Gregorio), que: como todo aquello en este blog, existe solo con el proposito de no olvidarme de su existencia (aquello de la mala memoria). Al parecer, aparte de los &#8220;usuales&#8221; enlaces mailto: y callto: existe una larga lista de esquemas URI no-universalmente aceptados por los navegadores&#8230; ahora, primero, que es un [...]]]></description>
			<content:encoded><![CDATA[<p>No es mas que <a href="http://tempusfugit.ionosfera.com/2008/04/15/esquemas-uri-no-oficiales-callto-msnim-etc" target="_blank">un repost</a> (Gracias! <a href="http://tempusfugit.ionosfera.com/acerca-de" target="_blank">Gregorio</a>), que: como todo aquello en este blog, existe solo con el proposito de no olvidarme de su existencia (<a href="http://mauriciopastrana.com/gadgets-y-tecnologia/por-lo-menos-con-mi-memoria-no-cuento/" target="_blank">aquello de la mala memoria</a>).</p>
<p>Al parecer, aparte de los &#8220;usuales&#8221; enlaces <strong>mailto:</strong> y <strong>callto:</strong> existe una <a href="http://www.iana.org/assignments/uri-schemes.html" target="_blank">larga lista de esquemas URI</a> <em>no-universalmente aceptados por los navegadores&#8230;</em> ahora<em>,</em> primero, que es un URI?</p>
<p>Segun <a href="http://en.wikipedia.org/wiki/URI_scheme" target="_blank">el documento que lo especifica</a> (<a href="http://tools.ietf.org/html/rfc3986">rfc3986</a>), la URI (o, <a href="http://www.google.com/search?q=define%3A+uri&amp;rls=com.microsoft:*&amp;ie=UTF-8&amp;oe=UTF-8&amp;startIndex=&amp;startPage=1" target="_blank"><em>Uniform Resource Identifier</em></a>) es el puente sintactico entre tu navegador, el protocolo de comunicacion y el servidor. En su uso mas comun este refiere a websites, y asi como hay mucha habla sobre <a href="http://www.codinghorror.com/blog/archives/001109.html" target="_blank">la eliminacion del &#8220;tripledobleu&#8221;</a>, este es otro de aquellos que espero ver menos a medida que pasa el tiempo.</p>
<p>La sintaxis URI <a href="http://en.wikipedia.org/wiki/URI_scheme#Examples" target="_blank">trabaja del siguiente modo</a>:</p>
<p style='font-size:.7em'>  foo://usuario:clave@ejemplo.com:8042/pagpor/alla/index.dtb;tipo=animal?nombre=gato#nariz<br />
   \ /     \___________/\__________/ \__/\__________/ \___/ \_/ \_________/ \_________/ \__/<br />
    |           |            |        |          |         |         |                 |       |              |<br />
esquema info_usuario   dominio    puerto   ruta      archivo extension parametro(s)/consulta<br />
    |    \______________________________/<br />
    |                autoridad<br />
    |     ______________________<br />
   / \ /                                      \<br />
  urn:ejemplo:animal:gato:nariz</p>
<p>En su blog, Gregorio da una fila de los mas utiles:</p>
<ul>
<li style="TEXT-ALIGN: left"><strong>VoIP (general)</strong>: <em>callto:&lt;screenname&gt;</em> o <em>callto:&lt;phonenumber&gt;</em></li>
<li style="TEXT-ALIGN: left"><strong>Windows Live Messenger</strong>: <em>msnim:[add|chat|voice|video]?contact=&lt;username&gt;</em></li>
<li style="TEXT-ALIGN: left"><strong>GTalk</strong>: <em>gtalk:&lt;username&gt;</em></li>
<li style="TEXT-ALIGN: left"><strong>Yahoo! Messenger</strong>: <em>ymsgr:sendIM?&lt;screenname&gt;</em></li>
<li style="TEXT-ALIGN: left"><strong>Jabber</strong>: <em>xmpp:&lt;username&gt;</em></li>
<li style="TEXT-ALIGN: left"><strong>AOL Instant Messenger</strong>: <em>aim:[goim|addbuddy|buddyicon]?&lt;parameters&gt;</em></li>
<li style="TEXT-ALIGN: left"><strong>Skype</strong>: <em>skype:&lt;username|phonenumber&gt;[?[add|call|chat|sendfile|userinfo]]</em></li>
<li style="TEXT-ALIGN: left"><strong>Feeds</strong>: <em>feed:&lt;absolute_uri&gt;</em> or <em>feed://&lt;hierarchical part&gt;</em></li>
<li style="TEXT-ALIGN: left"><strong>IRC</strong>: <em>irc://&lt;host&gt;[:&lt;port&gt;]/[&lt;channel&gt;[?&lt;password&gt;]]</em></li>
<li style="TEXT-ALIGN: left"><strong>Last.fm</strong>: <em>lastfm://&lt;radio_stream&gt;</em> or <em>lastfm://globaltags/&lt;genre&gt;</em> o <em>lastfm://user/&lt;username&gt;/&lt;stuff&gt;</em></li>
<li style="TEXT-ALIGN: left"><strong>eDonkey2000</strong>: <em>ed2k://|file|&lt;filename&gt;|&lt;size of file&gt;|&lt;hash of file&gt;|/</em> o <em>ed2k://|server|&lt;host&gt;|&lt;port&gt;|/</em></li>
<li style="TEXT-ALIGN: left"><strong>iCalendar</strong>: <em>webcal://&lt;hierarchical part&gt;</em></li>
</ul>
<p style="TEXT-ALIGN: left">pero aca una lista que demuestra de que tan <span style="text-decoration: line-through;">inutiles</span> detallados estos pueden llegar a ser,</p>
<ul>
<li>
<div style="TEXT-ALIGN: left"><strong>Andrew File System global file names</strong> afs://</div>
</li>
<li>
<div style="TEXT-ALIGN: left"><strong>Prospero Directory Service</strong> prospero://</div>
</li>
<li>
<div style="TEXT-ALIGN: left"><strong>xmlrpc.beeps</strong>: xmlrpc.beeps://</div>
</li>
<li>
<div style="TEXT-ALIGN: left"><strong>Uniform Resource Names</strong> urn://</div>
</li>
<li>
<div style="TEXT-ALIGN: left"><strong>opaquelocktokent </strong>opaquelocktoken:// </div>
</li>
<li>
<div style="TEXT-ALIGN: left"><strong>Diameter: Protocol</strong> aaa://</div>
</li>
<li>
<div style="TEXT-ALIGN: left"><strong>Diameter: Protocol with Secure Transport</strong> aaas://</div>
</li>
</ul>
<p style="TEXT-ALIGN: left">&#8230; y mi favorito en inutilidad,</p>
<ul>
<li>
<div style="TEXT-ALIGN: left"><strong>TV-Anytime Content Reference Identifier </strong>crid://</div>
</li>
</ul>
<p style="TEXT-ALIGN: left">Entonces, sabiendo esto, tecnicamente yo podria decir: <a href="callto:6467367748">llamame</a>(<a href="skype://mauriciopastrana" target="_blank">skype</a>) o <a href="msnim:chat?contact=mauricio@pastrana.co.uk" target="_blank">buscame</a> <a href="webcal://www.michaelronkin.com/webcalendar/wc200602.html" target="_blank">hoy en la tarde</a>, que van a presentar algo sobre <a href="crid://bbc.co.uk/olympics/2008/ " target="_self">las proximas olimpiadas</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciopastrana.com/gente/esquemas-uri/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Guia: Descarga tus contactos de facebook a Outlook</title>
		<link>http://mauriciopastrana.com/gente/guia-descarga-tus-contactos-de-facebook-a-outlook/</link>
		<comments>http://mauriciopastrana.com/gente/guia-descarga-tus-contactos-de-facebook-a-outlook/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 00:40:33 +0000</pubDate>
		<dc:creator>Mauricio Pastrana</dc:creator>
				<category><![CDATA[Freelance]]></category>
		<category><![CDATA[Gadgets y Tecnologia]]></category>
		<category><![CDATA[Gente]]></category>
		<category><![CDATA[codigo]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://mauriciopastrana.com/gente/guia-descarga-tus-contactos-de-facebook-a-outlook/</guid>
		<description><![CDATA[Cada 4 a seis meses me encuentro con el siguiente problema: 400 contactos en outlook, 500 contactos en Facebook. Dejando de lado la discusión de si son &#8220;amigos&#8221; o no, yo mas bien me pregunto: quienes son esos extra 100? (o 200, 300?). De costumbre, me gusta tener todos mis contactos en Outlook, que a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mauriciopastrana.com/wp-content/uploads/2008/01/picture-1asa.png" rel="lightbox[84]" title="fb friends"><img src="http://mauriciopastrana.com/wp-content/uploads/2008/01/picture-1asa.png" alt="fb friends" align="left" border="0" hspace="5" vspace="5" /></a>Cada 4 a seis meses me encuentro con el siguiente problema: 400 contactos en outlook, 500 contactos en Facebook. Dejando de lado la discusión de si son &#8220;amigos&#8221; o no, yo mas bien me pregunto: quienes son esos extra 100? (o 200, 300?).</p>
<p>De costumbre, me gusta tener todos mis contactos en Outlook, que a su ves se vuelve mi lista de números en el iphone, mac address book y otro sinnúmero de lugares gracias al <a href="http://www.plaxo.com/info">plaxo sync</a>. Así que amigo o no amigo, igual clasifica como contacto.</p>
<p>De costumbre, y gracias al hecho que facebook no permite hacer descargas de listas a Outlook (o a cualquier cosa ya que va en contra del <a href="http://www.facebook.com/terms.php" target="_blank">EULA</a>), por los últimos 2 años me he llevado a la costumbre de planear una noche, mañana o día para que, en viñetas únicas de firefox, cargue cada uno de mis contactos y, con mucho café en mano; me dedico a copiar la información a Outlook, uno a uno. Si ya se, que tedio!.</p>
<p>Hoy decidí hacerle corte a este vicio. De hecho, con los 530-yalgo contactos que encuentro bajo mi perfil de Facebook, estaría viendo unos dos o tres días de labor manual, esta guia explica el como solucione mi problema con un poco de PHP, MySQL y paciencia.</p>
<p>De antemano me disculpo si el articulo cae un poco, técnico. Traten de seguirme la bola. <a href="http://www.dataportability.org/" target="_blank">Algún día muy pronto, Facebook y Plaxo harán un import/export tool</a>, pero por ahora, es así o así.</p>
<p><span id="more-84"></span></p>
<h2>Screen Scraping &#8211; Que es?</h2>
<p>Primero que todo, no esta bien visto esto del &#8220;scraping&#8221;. A través de PHP, es la practica de programar un website para que &#8220;a mano automatizada&#8221; lea otro website (ej: programar una pagina _mía_ que da los precios del NASDAQ en el instante que cargue, leyendolos del código fuente de CNNMoney.com). Y que es lo que pasa con el scraping? no solo anota visitas &#8220;falsas&#8221; del lado de CNNMoney, sino que trae a luz moderna la vieja practica del &#8220;hotlinking&#8221;, donde yo en esencia me estoy robando ancho de banda de otros al colgar imágenes en mis paginas, que no estén hospedadas en mi servidor.</p>
<h2>Estrategia</h2>
<p>Primero lo primero. Para aquellos que no lo tengan bien medido, hay tres (si, tres) portales de facebook (en la plataforma publica). Facebook estandar (en <a href="http://www.facebook.com/" target="_blank">www.facebook.com</a>), Facebook Mobile (en <a href="http://m.facebook.com" target="_blank">m.facebook.com</a>) y Facebook para iphone (en <a href="http://iphone.facebook.com" target="_blank">iphone.facebook.com</a>). Para los curiosos, facebook tambien tiene portales privados (en los casos de compañias que compran facebook corporate -ejemplo: <a href="http://www.scribd.com/doc/81162/RedBull-Case-Study-FINAL" target="_blank">redbull</a>). Para este proyecto voy a explotar la diferencia entre portales, mas importantemente; el hecho que facebook mobile es un mini-facebook en html plano (de minimo uso de ancho de banda), que le da la vuelta al problema que en los otros portales, los llamados de datos son tablas en ajax o flash, para el caso de PHP cURL, es lo que llaman un &#8220;showstopper&#8221;.</p>
<p>De hecho, los invito a pasarse por m.facebook.com, desde firefox o desde el celular (el portal de iphone tambien sirve!).</p>
<p>El proyecto entonces, gracias a las <a href="http://textsnippets.com/posts/show/1204" target="_blank">herramientas disponibles</a>, lo armo del siguiente modo:</p>
<ul>
<li> Paso 1: Un levante de información que trae a mi base de datos una lista de todos mis contactos y su identificador privado dentro de Facebook</li>
</ul>
<ul>
<li> Paso 2: Un proceso iterativo que se base en la lista generada en el paso 1, que mire cada pagina de perfil de usuario según el id privado, levante cuanta información pueda de este y la anote a otra tabla en la base de datos</li>
</ul>
<ul>
<li> Paso 3: Un script que deje descargar los datos desde la base de datos en formato vcard (vcf)</li>
</ul>
<p>Retos y problemas previstos? Uno, y grande. Facebook no presenta las direcciones de email en texto plano sino en ves genera una imagen con el email impreso (trata de hacer copy paste de cualquier email en algun perfil de usuario!). De todos modos, para traer la foto del perfil del usuario <a href="http://www.facebook.com/applications/Fonebook/2442338999" target="_blank">existen soluciones simples</a>.</p>
<h2>Un poco de codigo</h2>
<p>Asi que, manos a la obra.</p>
<h3>Paso 1:</h3>
<p>Primero voy a generar un script que me deje emular el sistema de login a facebook mobile, para este; voy a explotar el hecho que www.facebook.com (un login por html), envía una variable que genera una redirección. Para aquellos que no saben nada de cURL, <a href="http://www.higherpass.com/php/Tutorials/Using-Curl-To-Query-Remote-Servers/" target="_blank">aca hay una guia</a>.</p>
<p>Las variables importantes acá son:<br />
<strong>curl_setopt($ch, CURLOPT_URL, &#8216;https://login.facebook.com/login.php?m&amp;next=http%3A%2F%2Fm.facebook.com%2Fhome.php&#8217;);curl_setopt($ch, CURLOPT_POSTFIELDS,&#8217;email=&#8217;.urlencode($login_email).&#8217;&amp;pass=&#8217;.urlencode($login_pass).&#8217;&amp;login=Login&#8217;);</strong></p>
<p>Y ojo que también hay que decirle a cURL donde dejar las cookies que entregue Facebook (ojo que el archivo tiene que existir, y <em>debe de tener privilegios de acceso para escritura, osea: chmod 777</em>):<br />
<strong> curl_setopt($ch, CURLOPT_COOKIEJAR, &#8220;myCookieFile.txt&#8221;);<br />
curl_setopt($ch, CURLOPT_COOKIEFILE, &#8220;myCookieFile.txt&#8221;);</strong></p>
<p>Y una mas, a facebook no le gustan los headers básicos de cURL, asi que toca simular que somos alguien en un browser normal, ya que planeo ejecutar el codigo desde el browser, voy a decirle a cURL que recicle el agente:<br />
<strong> curl_setopt($ch, CURLOPT_POST, 1);<br />
curl_setopt($ch, CURLOPT_HEADER, 0);<br />
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);<br />
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);</strong></p>
<p>Va? Nuestro script entero, para hacer login a facebook y traerse el contenido entero al browser entonces es:</p>
<p><strong>//login a fb<br />
$login_email = &#8216;FACEBOOK@EMAIL.COM&#8217;;<br />
$login_pass = &#8216;PASSWORD&#8217;;</strong></p>
<p><strong>$ch = curl_init();<br />
curl_setopt($ch, CURLOPT_URL, &#8216;https://login.facebook.com/login.php?m&amp;next=http%3A%2F%2Fm.facebook.com%2Fhome.php&#8217;);<br />
curl_setopt($ch, CURLOPT_POSTFIELDS,&#8217;email=&#8217;.urlencode($login_email).&#8217;&amp;pass=&#8217;.urlencode($login_pass).&#8217;&amp;login=Login&#8217;);<br />
curl_setopt($ch, CURLOPT_POST, 1);<br />
curl_setopt($ch, CURLOPT_HEADER, 0);<br />
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);<br />
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);<br />
curl_setopt($ch, CURLOPT_COOKIEJAR, &#8220;myCookieFile.txt&#8221;);<br />
curl_setopt($ch, CURLOPT_COOKIEFILE, &#8220;myCookieFile.txt&#8221;);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);<br />
curl_exec($ch);</strong></p>
<p><strong>//So what? bueno, ahora hagamos un llamado con cURL! <img src='http://mauriciopastrana.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<p><strong>curl_setopt($ch, CURLOPT_POST, 0);<br />
curl_setopt($ch, CURLOPT_URL, &#8216;http://m.facebook.com/home.php&#8217;);<br />
$page = curl_exec($ch);<br />
print_r($page);</strong></p>
<p>Guarda, abre el script desde firefox (ojo a los permisos del archivo txt de cookies -myCookieFile.txt) y:</p>
<p><a href="http://mauriciopastrana.com/wp-content/uploads/2008/01/ytre.png" rel="lightbox[84]" title="facebook mobile"></a></p>
<p style="text-align: center"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/01/ytre.png" rel="lightbox[84]" title="facebook mobile"><img src="http://mauriciopastrana.com/wp-content/uploads/2008/01/ytre.png" alt="facebook mobile" border="0" height="416" width="501" /></a></p>
<p>Fácil ah? Bueno, ahora lo divertido.</p>
<p>Primero, me dirijo a la pagina que me interesa http://m.facebook.com/friends.php?a, y le digo a cURL que envie todo a una variable $html :</p>
<p><strong>curl_setopt($ch, CURLOPT_POST, 0);<br />
curl_setopt($ch, CURLOPT_URL, &#8220;http://m.facebook.com/friends.php?a&#8221;);<br />
$page = curl_exec($ch);</strong></p>
<p><strong>curl_setopt($ch, CURLOPT_FAILONERROR, true);<br />
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);<br />
curl_setopt($ch, CURLOPT_AUTOREFERER, true);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);<br />
curl_setopt($ch, CURLOPT_TIMEOUT, 10);<br />
$html= curl_exec($ch);<br />
if (!$html) {<br />
echo &#8220;&lt;br /&gt;cURL error number:&#8221; .curl_errno($ch);<br />
echo &#8220;&lt;br /&gt;cURL error:&#8221; . curl_error($ch);<br />
exit;<br />
}</strong></p>
<p>y despues, le digo a PHP que lo traduzca a un DOM&#8230;</p>
<p><strong>$dom = new DOMDocument();<br />
@$dom-&gt;loadHTML($html);</strong></p>
<p>&#8230; se pesque solo los items &lt;a href&gt; (links)&#8230;</p>
<p><strong>$xpath = new DOMXPath($dom);<br />
$hrefs = $xpath-&gt;evaluate(&#8220;/html/body//a&#8221;);</strong></p>
<p>&#8230; y finalmente, lo pongo en un loop a analizar cada enlace por si solo:</p>
<p><strong>//iteramos &#8230;<br />
for ($i = 0; $i &lt; $hrefs-&gt;length; $i++) {<br />
$href = $hrefs-&gt;item($i);<br />
$profile_url = $href-&gt;getAttribute(&#8216;href&#8217;);</strong></p>
<p><strong>//&#8230; filtrando solo los enlaces que lleven a perfiles<br />
if((strpos($profile_url,&#8221;/profile.php?id=&#8221;) !== false) &amp;&amp; strpos($profile_url,&#8221;http://m.facebook.com/&#8221;) === false){</strong></p>
<p><strong>//&#8230; y nos guardamos en la base de datos el nombre del contacto y la URL que apunta al perfil<br />
$profile_name = $href-&gt;nodeValue;<br />
storeLink($profile_url,$profile_name);<br />
echo &#8220;&lt;br /&gt;Profile URL Stored: $profile_name ($profile_url)&#8221;;</strong></p>
<p><strong>} //end filter</strong></p>
<p><strong>}//end single page reading</strong></p>
<p>BTW, esa funcion que guarda en la base de datos (storeLink), la arme del siguiente modo (usando ADOdb):</p>
<p><strong>function storeLink($url,$profile_name) {<br />
global $db;<br />
$query = &#8220;INSERT INTO fb_profiles_list (profile_url, profile_name) VALUES (&#8216;$url&#8217;, &#8216;$profile_name&#8217;)&#8221;;<br />
$insert = $db-&gt;Execute($query);<br />
}</strong></p>
<p>Listos? bueno pues falta. resulta que la pagina que estamos mirando solo muestra 10 records, asi que hay que iterar, segun la cantidad de contactos, la estructura es la siguiente: http://m.facebook.com/friends.php?a&amp;p=$page_counter. Personalmente, tengo el loop estructurado a mano, asi que; como poseo 532 contactos, a 10 contactos por pagina; pues me preparo un loop que cuente 54 pasadas de pagina.</p>
<p><strong>$num_pageflips = 54;<br />
for  ($page_counter = 1; $page_counter &lt;= $num_pageflips; $page_counter++) {<br />
&#8230;<br />
curl_setopt($ch, CURLOPT_URL, &#8220;http://m.facebook.com/friends.php?a&amp;p=$page_counter&#8221;);<br />
&#8230;</strong></p>
<p>Asi que, nuestro script para el paso 1 (incluyendo el archivo de los cookies), lee asi (Phew!):</p>
<p><strong>&lt;?<br />
/*******************************<br />
*    Facebook Downloader (to MySQL)<br />
*    Mauricio Pastrana<br />
*    http://www.via-the-internet.com<br />
*    January 2008<br />
*<br />
*    Many Thanks to:     Christian Flickinger (http://nexdot.net/blog) and (http://textsnippets.com/posts/show/1204)<br />
*                Justin Laing (http://www.merchantos.com/makebeta/php/scraping-links-with-php/)<br />
*<br />
*        **DONT RUN BLINDLY, DONT DISTRIBUTE SO FREELY, WATCH OUT FOR LINES 26, 27 and 56<br />
*<br />
*******************************/</strong></p>
<p><strong>//get our database (using ADODB: http://adodb.sourceforge.net/)<br />
require(&#8216;includes/database/connection.inc&#8217;);</strong></p>
<p><strong>//a function to write to the database<br />
function storeLink($url,$profile_name) {<br />
global $db;<br />
$query = &#8220;INSERT INTO fb_profiles_list (profile_url, profile_name) VALUES (&#8216;$url&#8217;, &#8216;$profile_name&#8217;)&#8221;;<br />
$insert = $db-&gt;Execute($query);<br />
}</strong></p>
<p><strong>//login to fb<br />
$login_email = &#8216;FACEBOOK@EMAIL.COM&#8217;;<br />
$login_pass = &#8216;PASSWORD&#8217;;</strong></p>
<p><strong>$ch = curl_init();<br />
curl_setopt($ch, CURLOPT_URL, &#8216;https://login.facebook.com/login.php?m&amp;next=http%3A%2F%2Fm.facebook.com%2Fhome.php&#8217;);<br />
curl_setopt($ch, CURLOPT_POSTFIELDS,&#8217;email=&#8217;.urlencode($login_email).&#8217;&amp;pass=&#8217;.urlencode($login_pass).&#8217;&amp;login=Login&#8217;);<br />
curl_setopt($ch, CURLOPT_POST, 1);<br />
curl_setopt($ch, CURLOPT_HEADER, 0);<br />
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);<br />
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);<br />
curl_setopt($ch, CURLOPT_COOKIEJAR, &#8220;myCookieFile.txt&#8221;);<br />
curl_setopt($ch, CURLOPT_COOKIEFILE, &#8220;myCookieFile.txt&#8221;);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);<br />
curl_exec($ch);</strong></p>
<p><strong>//need to test this? comment the uncomment this, comment everything else below it and browse to the script, you should get the m.facebook.com home page <img src='http://mauriciopastrana.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<p><strong>/*curl_setopt($ch, CURLOPT_POST, 0);<br />
curl_setopt($ch, CURLOPT_URL, &#8216;http://m.facebook.com/home.php&#8217;);<br />
$page = curl_exec($ch);<br />
print_r($page);<br />
*/</strong></p>
<p><strong>//ok, we&#8217;re in! now head over to friends, if you have more than 10 (most likely), then we will have to iterate</strong></p>
<p><strong>// ok so: I know this can be done on automatic, but it makes the script more readable if you do some manual work (ugh).<br />
// It&#8217;s real easy, find out how many friends you have (login, then go to:  http://m.facebook.com/friends.php?a), and<br />
// divide the number by 10! Easy, see? now input the number here:<br />
$num_pageflips = 54;<br />
// I have 532 &#8220;friends&#8221; at the moment, so expect 54 pages of friends and set $num_pageflips = 54</strong></p>
<p><strong>for  ($page_counter = 1; $page_counter &lt;= $num_pageflips; $page_counter++) {</strong></p>
<p><strong>//head over to our friend page, note the first page is &amp;p=1<br />
curl_setopt($ch, CURLOPT_POST, 0);<br />
curl_setopt($ch, CURLOPT_URL, &#8220;http://m.facebook.com/friends.php?a&amp;p=$page_counter&#8221;);<br />
$page = curl_exec($ch);</strong></p>
<p><strong>curl_setopt($ch, CURLOPT_FAILONERROR, true);<br />
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);<br />
curl_setopt($ch, CURLOPT_AUTOREFERER, true);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);<br />
curl_setopt($ch, CURLOPT_TIMEOUT, 10);<br />
$html= curl_exec($ch);<br />
if (!$html) {<br />
echo &#8220;&lt;br /&gt;cURL error number:&#8221; .curl_errno($ch);<br />
echo &#8220;&lt;br /&gt;cURL error:&#8221; . curl_error($ch);<br />
exit;<br />
}</strong></p>
<p><strong>// parse the html into a DOMDocument<br />
$dom = new DOMDocument();<br />
@$dom-&gt;loadHTML($html);</strong></p>
<p><strong>// grab all the links on the page<br />
$xpath = new DOMXPath($dom);<br />
$hrefs = $xpath-&gt;evaluate(&#8220;/html/body//a&#8221;);</strong></p>
<p><strong>//now iterate through the whole HTML to grab what we need<br />
for ($i = 0; $i &lt; $hrefs-&gt;length; $i++) {<br />
$href = $hrefs-&gt;item($i);<br />
$profile_url = $href-&gt;getAttribute(&#8216;href&#8217;);</strong></p>
<p><strong>//filter out only the profile links and names!<br />
if((strpos($profile_url,&#8221;/profile.php?id=&#8221;) !== false) &amp;&amp; strpos($profile_url,&#8221;http://m.facebook.com/&#8221;) === false){</strong></p>
<p><strong>//get the actual person&#8217;s name (from the link as well), and store it on the db. also, let me know how it&#8217;s going<br />
$profile_name = $href-&gt;nodeValue;<br />
storeLink($profile_url,$profile_name);<br />
echo &#8220;&lt;br /&gt;Profile URL Stored: $profile_name ($profile_url)&#8221;;</strong></p>
<p><strong>} //end filter</strong></p>
<p><strong>}//end single page reading</strong></p>
<p><strong>}//end pageflips<br />
?&gt;</strong></p>
<p>Bien ejecutado, este script les debe de dejar una base de datos con un listado de todos los contactos, mas las URL que refieren a su pagina de perfil. Como si no fuera suficiente, aca va el SQL que genera la tabla referente al paso 1:</p>
<p><strong>CREATE TABLE `fb_profiles_list` (<br />
`id` int(11) NOT NULL auto_increment,<br />
`profile_url` varchar(255) default NULL,<br />
`profile_name` varchar(255) default NULL,<br />
PRIMARY KEY  (`id`)<br />
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;</strong></p>
<h3>Paso 2:</h3>
<p>Bueno, ya tenemos ahora una lista larga de URLs, no? ahora la estrategia es la siguiente. Vamos a iterar y pasar por cada uno de estos URL (usando la estructura del paso 1 para hacer &#8220;login&#8221;), y de este; leer el HTML que nos de items de interes. Voy a preparar una funcion en PHP que me rebote todo el texto en un string entre un punto de inicio y un final:</p>
<p><strong>// Funcion para extraer algo atrapado entre dos strings definidas por el usuario.<br />
// Ejemplo: $string = &#8220;&lt;div style=&#8217;blablabla&#8217;&gt;texto&lt;/div&gt;&#8221;<br />
// get_string_between($string,&#8221;&lt;div style=&#8217;&#8221;,&#8221;&#8216;&gt;texto&#8221;) &#8211;&gt; entrega blablabla<br />
//<br />
function get_string_between($string, $start, $end){<br />
$string = &#8221; &#8220;.$string;<br />
$ini = strpos($string,$start);<br />
if ($ini == 0) return &#8220;&#8221;;<br />
$ini += strlen($start);<br />
$len = strpos($string,$end,$ini) &#8211; $ini;<br />
return substr($string,$ini,$len);<br />
}</strong></p>
<p>Listo? bueno, ahora esta facil, repito la estructura del script del paso 1, solo que ahora mirando a una pagina de perfil: http://m.facebook.com/profile.php?id=12345&amp;full (y ojo a incluir la variable &amp;full!)</p>
<p><strong>curl_setopt($ch, CURLOPT_POST, 0);<br />
curl_setopt($ch, CURLOPT_URL, &#8220;http://m.facebook.com/profile.php?id=&#8221;.$profile_id.&#8221;&amp;full&#8221;);<br />
$page = curl_exec($ch);</strong></p>
<p>y estando adentro del perfil, no es sino identificar que item queremos enviar a la base de datos, generamos una variable que lo archive, y al final hacemos un &#8220;mega&#8221;llamado a store, ejemplo:</p>
<p><strong>//AIM<br />
$aim = get_string_between($page, &#8216;AIM:  &#8216;, &#8216;&lt;br /&gt;&#8217;);<br />
echo &#8220;AIM: &#8220;.$aim.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>//Yahoo<br />
$yahoo = get_string_between($page, &#8216;Yahoo:  &#8216;, &#8216;&lt;br /&gt;&#8217;);<br />
echo &#8220;Yahoo: &#8220;.$yahoo.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p>y al final:</p>
<p><strong>storeProfileData($first_name, $last_name, $website, $aim, $yahoo, $windows_live, $skype, $tel, $current_address, $current_town, $home_town, $birthday, $work_info, $position);</strong></p>
<p>donde:</p>
<p><strong>function storeProfileData($first_name, $last_name, $website, $aim, $yahoo, $windows_live, $skype, $tel, $current_address, $current_town, $home_town, $birthday, $work_info, $position){<br />
global $db;<br />
$query = &#8220;INSERT INTO fb_specific_profiles (first_name, last_name, website, aim, yahoo, windows_live, skype, tel, current_address, current_town, home_town, birthday, work_info, position) VALUES (&#8216;$first_name&#8217;, &#8216;$last_name&#8217;, &#8216;$website&#8217;, &#8216;$aim&#8217;, &#8216;$yahoo&#8217;, &#8216;$windows_live&#8217;, &#8216;$skype&#8217;, &#8216;$tel&#8217;, &#8216;$current_address&#8217;, &#8216;$current_town&#8217;, &#8216;$home_town&#8217;, &#8216;$birthday&#8217;, &#8216;$work_info&#8217;, &#8216;$position&#8217;)&#8221;;<br />
$insert = $db-&gt;Execute($query);<br />
}</strong></p>
<p>LISTOS! Ahora iteramos por todo el data set del paso 1, para generar el del paso 2!</p>
<p>Ya a estas alturas creo, no hay nadie conmigo. &#8230; pero si tuvieron la paciencia, acá esta el script entero de la parte 2:</p>
<p><strong>&lt;?<br />
/*******************************<br />
*    Facebook Downloader (to MySQL)<br />
*    Mauricio Pastrana<br />
*    http://www.via-the-internet.com<br />
*    January 2008<br />
*<br />
*    Many Thanks to:     Christian Flickinger (http://nexdot.net/blog) and (http://textsnippets.com/posts/show/1204)<br />
*                Justin Laing (http://www.merchantos.com/makebeta/php/scraping-links-with-php/)<br />
*<br />
*        **DONT RUN BLINDLY, DONT DISTRIBUTE SO FREELY, NOTE YOU NEED TO RUN THE FIRST SCRAPER FIRST<br />
*<br />
*******************************/</strong></p>
<p><strong>//get our database (using ADODB: http://adodb.sourceforge.net/)<br />
require(&#8216;includes/database/connection.inc&#8217;);</strong></p>
<p><strong>//a function to write to the database<br />
function storeProfileData($first_name, $last_name, $website, $aim, $yahoo, $windows_live, $skype, $tel, $current_address, $current_town, $home_town, $birthday, $work_info, $position){<br />
global $db;<br />
$query = &#8220;INSERT INTO fb_specific_profiles (first_name, last_name, website, aim, yahoo, windows_live, skype, tel, current_address, current_town, home_town, birthday, work_info, position) VALUES (&#8216;$first_name&#8217;, &#8216;$last_name&#8217;, &#8216;$website&#8217;, &#8216;$aim&#8217;, &#8216;$yahoo&#8217;, &#8216;$windows_live&#8217;, &#8216;$skype&#8217;, &#8216;$tel&#8217;, &#8216;$current_address&#8217;, &#8216;$current_town&#8217;, &#8216;$home_town&#8217;, &#8216;$birthday&#8217;, &#8216;$work_info&#8217;, &#8216;$position&#8217;)&#8221;;<br />
$insert = $db-&gt;Execute($query);<br />
}</strong></p>
<p><strong>//a function to get the text between to user defined strings<br />
function get_string_between($string, $start, $end){<br />
$string = &#8221; &#8220;.$string;<br />
$ini = strpos($string,$start);<br />
if ($ini == 0) return &#8220;&#8221;;<br />
$ini += strlen($start);<br />
$len = strpos($string,$end,$ini) &#8211; $ini;<br />
return substr($string,$ini,$len);<br />
}</strong></p>
<p><strong>//login to fb<br />
$login_email = &#8216;FACEBOOK@EMAIL.COM&#8217;;<br />
$login_pass = &#8216;PASSWORD&#8217;;</strong></p>
<p><strong>$ch = curl_init();<br />
curl_setopt($ch, CURLOPT_URL, &#8216;https://login.facebook.com/login.php?m&amp;next=http%3A%2F%2Fm.facebook.com%2Fhome.php&#8217;);<br />
curl_setopt($ch, CURLOPT_POSTFIELDS,&#8217;email=&#8217;.urlencode($login_email).&#8217;&amp;pass=&#8217;.urlencode($login_pass).&#8217;&amp;login=Login&#8217;);<br />
curl_setopt($ch, CURLOPT_POST, 1);<br />
curl_setopt($ch, CURLOPT_HEADER, 0);<br />
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);<br />
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);<br />
curl_setopt($ch, CURLOPT_COOKIEJAR, &#8220;myCookieFile.txt&#8221;);<br />
curl_setopt($ch, CURLOPT_COOKIEFILE, &#8220;myCookieFile.txt&#8221;);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);<br />
curl_exec($ch);</strong></p>
<p><strong>//need to test this? comment the uncomment this, comment everything else below it and browse to the script, you should get the m.facebook.com home page <img src='http://mauriciopastrana.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></p>
<p><strong>/*curl_setopt($ch, CURLOPT_POST, 0);<br />
curl_setopt($ch, CURLOPT_URL, &#8216;http://m.facebook.com/home.php&#8217;);<br />
$page = curl_exec($ch);<br />
print_r($page);<br />
*/</strong></p>
<p><strong>//ok, we&#8217;re in! now head over to each specific profile page, we&#8217;re going to have to loop through the whole dataset and use a LOT of substring magic</strong></p>
<p><strong>//first, we find out where we are as far as id&#8217;s in the db (if you&#8217;re lucky, yours starts at 1, i did some testing, so my first profile begins at id=127!)</strong></p>
<p><strong>echo &#8220;profiles found in db: &#8220;.$num_profiles = $db-&gt;GetOne(&#8220;SELECT COUNT(*) FROM fb_profiles_list&#8221;).&#8221;&lt;br /&gt;&#8221;;<br />
echo &#8220;first profile id: &#8220;.$first_profile_id = $db-&gt;GetOne(&#8220;SELECT id FROM fb_profiles_list&#8221;).&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>for  ($profile_counter = 0; $profile_counter &lt; $num_profiles; $profile_counter++) {</strong></p>
<p><strong>//be a little verbose<br />
echo $profile_counter.&#8221;&lt;br /&gt;&lt;br /&gt;&#8221;;<br />
$profile_id = get_string_between($db-&gt;GetOne(&#8220;SELECT profile_url FROM fb_profiles_list WHERE id=&#8221;.($first_profile_id+$profile_counter)), &#8216;/profile.php?id=&#8217;, &#8216;&amp;r&#8217;);<br />
echo &#8220;Now Trying: &#8221; .<br />
$db-&gt;GetOne(&#8220;SELECT profile_name FROM fb_profiles_list WHERE id=&#8221;.($first_profile_id+$profile_counter)) . //profile_name<br />
&#8221; (&#8221; . $profile_id . &#8220;) &lt;br /&gt;&#8221;; // profile_id</strong></p>
<p><strong>curl_setopt($ch, CURLOPT_POST, 0);<br />
curl_setopt($ch, CURLOPT_URL, &#8220;http://m.facebook.com/profile.php?id=&#8221;.$profile_id.&#8221;&amp;full&#8221;);<br />
$page = curl_exec($ch);<br />
//print_r($page);</strong></p>
<p><strong>//Name<br />
$name = explode(&#8221; &#8220;,get_string_between($page, &#8216;&lt;title&gt;Facebook | &#8216;, &#8216;\&#8217;s Profile&lt;/title&gt;&#8217;));</strong></p>
<p><strong>$first_name = $name[0];<br />
$last_name = $name[1];</strong></p>
<p><strong>echo &#8220;First Name :$first_name &lt;br /&gt;&#8221;;<br />
echo &#8220;Last Name :$last_name &lt;br /&gt;&#8221;;</strong></p>
<p><strong>//Website<br />
$website = get_string_between($page, &#8216;Website:  &lt;a href=&#8221;&#8216;, &#8216;?refid=17&#8243;&gt;&#8217;);<br />
echo &#8220;Website: &#8220;.$website.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>//AIM<br />
$aim = get_string_between($page, &#8216;AIM:  &#8216;, &#8216;&lt;br /&gt;&#8217;);<br />
echo &#8220;AIM: &#8220;.$aim.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>//Yahoo<br />
$yahoo = get_string_between($page, &#8216;Yahoo:  &#8216;, &#8216;&lt;br /&gt;&#8217;);<br />
echo &#8220;Yahoo: &#8220;.$yahoo.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>//Windows Live<br />
$windows_live = get_string_between($page, &#8216;Windows Live:  &#8216;, &#8216;&lt;br /&gt;&#8217;);<br />
echo &#8220;Windows Live: &#8220;.$windows_live.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>//Skype<br />
$skype = get_string_between($page, &#8216;Skype:  &#8216;, &#8216;&lt;br /&gt;&#8217;);<br />
echo &#8220;Skype: &#8220;.$skype.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>//Tel<br />
$tel = get_string_between($page, &#8216;&lt;a href=&#8221;tel:&#8217;, &#8216;&#8221;&gt;&#8217;);<br />
echo &#8220;Tel: &#8220;.$tel.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>//Current Address<br />
$current_address = get_string_between($page, &#8216;Current Address:  &#8216;, &#8216;&lt;br /&gt;&#8217;);<br />
echo &#8220;Current Address: &#8220;.$current_address.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>//Current Town<br />
$current_town = get_string_between($page, &#8216;Current Town:  &#8216;, &#8216;&lt;br /&gt;&#8217;);<br />
echo &#8220;Current Town: &#8220;.$current_town.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>//Home Town<br />
$home_town = get_string_between($page, &#8216;Hometown:  &#8216;, &#8216;&lt;br /&gt;&#8217;);<br />
echo &#8220;Home Town: &#8220;.$home_town.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>//Birthday<br />
$birthday = get_string_between($page, &#8216;Birthday:  &#8216;, &#8216;&lt;br /&gt;&#8217;);<br />
echo &#8220;Birthday: &#8220;.$birthday.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>//Work Info<br />
$work_info = get_string_between($page, &#8216;Company:  &#8216;, &#8216;&lt;br /&gt;&#8217;);<br />
echo &#8220;Work Info: &#8220;.$work_info.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>//Position<br />
$position = get_string_between($page, &#8216;Position:  &#8216;, &#8216;&lt;br /&gt;&#8217;);<br />
echo &#8220;Position: &#8220;.$position.&#8221;&lt;br /&gt;&#8221;;</strong></p>
<p><strong>storeProfileData($first_name, $last_name, $website, $aim, $yahoo, $windows_live, $skype, $tel, $current_address, $current_town, $home_town, $birthday, $work_info, $position);</strong></p>
<p><strong>echo &#8220;&lt;hr&gt;&#8221;;<br />
}//end pageflips<br />
?&gt;</strong></p>
<p>Ojo con Facebook!<br />
Tengan cuidado, hay que tener en cuenta que cuando llaman este script, lo hacen desde su propia cuenta de FaceBook. Si hacen algo muy dañino (como, golpear los servidores con miles de hits de una sentada), los pueden rastrear! Ya hay mas de un caso donde <a href="http://nexdot.net/blog" target="_blank">Facebook tumba scripts de usuarios propagando otros &#8220;facebook downloaders</a>.</p>
<p>Acá de paso dejo los archivos fuente que use, ojo a los comentarios; ahí les incluyo el paso 3, que es un script extra para extraer la informacion de la base de datos a vcards (que lee outlook). Otra sugerencia? Busquense algun <a href="http://www.facebook.com/applications/Fonebook/2442338999" target="_blank">app de facebook que coordine las fotos de los contactos online con las offline</a>. Y estamos!</p>
<p><a href="http://mauriciopastrana.com/wp-content/uploads/2008/01/contacts.png" rel="lightbox[84]" title="contacts"></a></p>
<p style="text-align: center"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/01/contacts.png" rel="lightbox[84]" title="contacts"><img src="http://mauriciopastrana.com/wp-content/uploads/2008/01/contacts.png" alt="contacts" border="0" height="340" hspace="5" vspace="5" width="426" /></a></p>
<p style="text-align: center"><a href="http://mauriciopastrana.com/wp-content/uploads/2008/01/contacts.png" rel="lightbox[84]" title="contacts"> </a><a href="http://mauriciopastrana.com/wp-content/uploads/2008/01/contactnum.png" rel="lightbox[84]" title="contact number"><img src="http://mauriciopastrana.com/wp-content/uploads/2008/01/contactnum.png" alt="contact number" border="0" /></a></p>
<p>Tiempo total de desarrollo: 20 horas-hombre. Wow! Que lastima no poder hacer un servicio web fuera de este.</p>
<p><a href="http://mauriciopastrana.com/wp-content/uploads/2008/01/facebook-downloader.zip" target="_blank"><em>Aca puedes descargar los archivos fuente que incluyen los tres scripts y la conexion a la base de datos.</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciopastrana.com/gente/guia-descarga-tus-contactos-de-facebook-a-outlook/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>I&#8217;ll be back</title>
		<link>http://mauriciopastrana.com/gente/ill-be-back-2/</link>
		<comments>http://mauriciopastrana.com/gente/ill-be-back-2/#comments</comments>
		<pubDate>Fri, 28 Dec 2007 07:39:44 +0000</pubDate>
		<dc:creator>Mauricio Pastrana</dc:creator>
				<category><![CDATA[Gente]]></category>
		<category><![CDATA[Paseos]]></category>
		<category><![CDATA[de vuelta]]></category>
		<category><![CDATA[flickr]]></category>

		<guid isPermaLink="false">http://mauriciopastrana.com/gente/ill-be-back-2/</guid>
		<description><![CDATA[De vuelta! me perdonan el hiatus (espero no volverlo practica estandar), ahora si: de vuelta en Sydney. Las fotos de Melbourne las pueden ver en mi roll de flickr. #flickr_badge_source_txt {padding:0; font: 11px Arial, Helvetica, Sans serif; color:#666666;} #flickr_badge_icon {display:block !important; margin:0 !important; border: 1px solid rgb(0, 0, 0) !important;} #flickr_icon_td {padding:0 5px 0 0 [...]]]></description>
			<content:encoded><![CDATA[<p>De vuelta!</p>
<p>me perdonan el hiatus (espero no volverlo practica estandar), ahora si: de vuelta en Sydney.</p>
<p>Las fotos de Melbourne las pueden ver en <a href="http://www.flickr.com/photos/mauriciopastrana" target="_blank">mi roll de flickr</a>.</p>
<p><!-- Start of Flickr Badge --></p>
<style type="text/css">
#flickr_badge_source_txt {padding:0; font: 11px Arial, Helvetica, Sans serif; color:#666666;}
#flickr_badge_icon {display:block !important; margin:0 !important; border: 1px solid rgb(0, 0, 0) !important;}
#flickr_icon_td {padding:0 5px 0 0 !important;}
.flickr_badge_image {text-align:center !important;}
.flickr_badge_image img {border: 1px solid black !important;}
#flickr_www {display:block; padding:0 10px 0 10px !important; font: 11px Arial, Helvetica, Sans serif !important; color:#3993ff !important;}
#flickr_badge_uber_wrapper a:hover,
#flickr_badge_uber_wrapper a:link,
#flickr_badge_uber_wrapper a:active,
#flickr_badge_uber_wrapper a:visited {text-decoration:none !important; background:inherit !important;color:#3993ff;}
#flickr_badge_wrapper {background-color:#ffffff;border: solid 1px #000000}
#flickr_badge_source {padding:0 !important; font: 11px Arial, Helvetica, Sans serif !important; color:#666666 !important;}
</style>
<table id="flickr_badge_uber_wrapper" border="0" cellpadding="0" cellspacing="10">
<tr>
<td><a href="http://www.flickr.com" id="flickr_www">www.<strong style="color: #3993ff">flick<span style="color: #ff1c92">r</span></strong>.com</a></p>
<table id="flickr_badge_wrapper" border="0" cellpadding="0" cellspacing="10">
<tr><script src="http://www.flickr.com/badge_code_v2.gne?count=5&amp;display=latest&amp;size=t&amp;layout=h&amp;source=user&amp;user=42821813%40N00" type="text/javascript"></script></tr>
</table>
</td>
</tr>
</table>
<p><!-- End of Flickr Badge --></p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciopastrana.com/gente/ill-be-back-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yo &#8220;Googleo&#8221;, Tu &#8220;Googleas&#8221;</title>
		<link>http://mauriciopastrana.com/gente/yo-googleo-tu-googleas/</link>
		<comments>http://mauriciopastrana.com/gente/yo-googleo-tu-googleas/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 02:41:07 +0000</pubDate>
		<dc:creator>Mauricio Pastrana</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Gente]]></category>
		<category><![CDATA[mauricio pastrana]]></category>
		<category><![CDATA[techcrunch]]></category>

		<guid isPermaLink="false">http://mauriciopastrana.com/gente/yo-googleo-tu-googleas/</guid>
		<description><![CDATA[Otra de techcrunch; resulta que eso de andar buscando gente en google (alias: googlear) es mucho mas comun que lo antes pensado. Segun un estudio del pew/internet, mas del 47% de los adultos norteamericanos admiten haber hecho uso de un motor de busqueda para buscarse a si mismo, con un 53% que lo hace en [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.techcrunch.com/2007/12/16/do-you-use-google-for-vanity-searching-youre-not-alone/" target="_blank">Otra de techcrunch</a>; resulta que eso de andar buscando gente en google (alias: <a href="http://arstechnica.com/news.ars/post/20060706-7198.html" target="_blank">googlear</a>) es mucho mas comun que lo antes pensado.<img src="http://www.techcrunch.com/wp-content/pew.jpg" align="right" border="0" height="72" hspace="5" vspace="5" width="200" /></p>
<p>Segun un estudio del pew/internet, mas del 47% de los adultos norteamericanos admiten haber hecho uso de un motor de busqueda para buscarse a si mismo, con un 53% que lo hace en son de saber mas sobre otros.</p>
<p>Este golpea cerca a casa, ya que este blog (y otros sitios) son precisamente mis herramientas en &#8220;defensa&#8221; contra el googleo. Si algo va a aparecer sobre mi en el internet, pues que sea mi misma informacion (o pues, que por lo menos no me confundan con <em><a href="http://www.boxingtimes.com/analyses/2003/030103pastrana_primero.html" target="_blank">el pintoso</a> </em>o <a href="http://www.pa-digital.com.pa/archive/09202007/sports06.shtml " target="_blank"><em>indioboy</em></a> -ambos &#8220;<a href="http://es.wikipedia.org/wiki/Mauricio_Pastrana" target="_blank">Mauricio Pastrana</a>&#8220;).</p>
<p>(articulo fuente original: <a href="http://news.yahoo.com/s/ap/20071216/ap_on_hi_te/personal_internet_searches_2" onclick="javascript:urchinTracker ('/outbound/news.yahoo.com');">AP</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciopastrana.com/gente/yo-googleo-tu-googleas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Webblast 2007: blog-blog-blog it all&#8230;</title>
		<link>http://mauriciopastrana.com/gente/webblast-2007-blog-blog-blog-it-all/</link>
		<comments>http://mauriciopastrana.com/gente/webblast-2007-blog-blog-blog-it-all/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 08:54:59 +0000</pubDate>
		<dc:creator>Mauricio Pastrana</dc:creator>
				<category><![CDATA[Freelance]]></category>
		<category><![CDATA[Gente]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[techcrunch]]></category>
		<category><![CDATA[webblast]]></category>

		<guid isPermaLink="false">http://mauriciopastrana.com/gente/webblast-2007-blog-blog-blog-it-all/</guid>
		<description><![CDATA[hoy llego, por fin! (ok, Ayer! Pero pasa por &#8220;hoy&#8221; en el hemisferio americano )&#8230; Que llego? La respuesta a mi invitacion en waiting list del webblast 2007. Webblast resulta ser el techcrunch 40 asiatico&#8230; Solo que son 14 y&#8230; Por no tener a flock o powerset, nos presentan a geeks on the grass o [...]]]></description>
			<content:encoded><![CDATA[<p>hoy llego, por fin! (ok, Ayer! Pero pasa por &#8220;hoy&#8221; en el hemisferio americano <img src='http://mauriciopastrana.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )&#8230; Que llego? La respuesta a mi invitacion en waiting list del <a href="http://www.webblast.org">webblast 2007</a>.</p>
<p>Webblast resulta ser el <a href="http://www.techcrunch40.com">techcrunch 40</a> asiatico&#8230; Solo que son 14 y&#8230; Por no tener a <a href="http://www.flock.com">flock</a> o <a href="http://www.powerset.com">powerset</a>, nos presentan a <a href="http://www.geekwhisperer.com">geeks on the grass</a> o <a href="http://www.tangler.com/group/6952">beer 2.0</a>, uno de los cuales nisiquiera tiene su propio website!</p>
<p>Aun asi, webblast resulta ser organizado (<em>sponsored</em>) por <a href="http://www.redsquare.com.au">red square</a>, la compañia de tony &#8220;redhair&#8221; redhair quien me alojo hace un año mientras hacia montaje html de sus <a href="http://sydneykings.corporatejames.com">hojas de estilos de A$25,000</a> (btw, otro recorderis que los departamentos mas importantes son ventas y cartera).</p>
<p>Tony no solo trato de convertirme hacia el &#8220;dark side&#8221; de las plataformas de desarrollo (<a href="http://www.adobe.com/products/flex/">flex</a>) sino que se tomo el tiempo de explicarme como &#8220;funciona el negocio&#8221; (el de el) y como, aunque no lo parezca, tener un rec room al lado del sector desarrollo si sirve de algo. En ultimas, supongo que le debo algo al hombre y si este implica una pasada por un bar a <a href="http://www.flickr.com/photos/kittynn/172269672">lanzar sonrisas</a>, so be it.</p>
<p>De paso si la vieron? Este <em>who&#8217;s who</em> resulta ser, en un bar. Aussies. Sigh.</p>
<p style="text-align: center"><a href="http://www.webblast.org"><img src="http://www.webblast.org/images/header.jpg" border="0" height="188" width="495" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciopastrana.com/gente/webblast-2007-blog-blog-blog-it-all/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Survivor: Outwit. Outplay. Outlast.</title>
		<link>http://mauriciopastrana.com/gente/survivor-outwit-outplay-outlast/</link>
		<comments>http://mauriciopastrana.com/gente/survivor-outwit-outplay-outlast/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 03:58:23 +0000</pubDate>
		<dc:creator>Mauricio Pastrana</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Gente]]></category>
		<category><![CDATA[deceso]]></category>
		<category><![CDATA[favoritos]]></category>
		<category><![CDATA[inspiracion]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[offline]]></category>

		<guid isPermaLink="false">http://mauriciopastrana.com/gente/survivor-outwit-outplay-outlast/</guid>
		<description><![CDATA[&#160; Por ahí en algún momento ya me iba disculpando con el planeta por dejar el blog &#8220;botado&#8220;. De hecho, creo que entre varios me alegro que todavia sigo al aire, y en ultimas quien sabe por cuanto (seguro hasta el dia que borre la base de datos por error, ja!). Precisamente me tope con [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">&nbsp;</p>
<p align="justify"><img src="http://mauriciopastrana.com/wp-content/uploads/2007/12/dead-dead-blog.jpg" alt="rip" align="right" height="136" hspace="5" vspace="5" width="180" />Por ahí en algún momento <a href="http://mauriciopastrana.com/otros/nuevamente/">ya me iba disculpando</a> con el planeta por <a href="http://mauriciopastrana.com/sydney/fotos/">dejar el blog &#8220;botado</a><a href="http://mauriciopastrana.com/sydney/fotos/">&#8220;</a>. De hecho, creo que entre varios me alegro que todavia sigo <em>al aire</em>, y en ultimas quien sabe por cuanto (seguro hasta el dia que <a href="http://www.railsplayground.com/forum/viewtopic.php?t=863">borre la base de datos por error</a>, ja!).<br />
Precisamente me tope con este al <a href="http://del.icio.us/mauriciopastrana" target="_blank">revisar mis favoritos</a> donde, me tope con que mas de la mitad de los blogs, muchos que fueron en su paso <a href="http://leoprieto.com/" target="_blank">inspiración</a>, en mi rss hace mas de un buen rato que están vacíos, algunos con <a href="http://www.alejandrowiesner.com" target="_blank">explicacion obvia</a>, pero otros que&#8230; bueno.</p>
<p align="justify">&nbsp;</p>
<h4 align="justify">In Memoriam</h4>
<p align="justify">&nbsp;</p>
<ul>
<li><a href="http://insydney.blogspot.com/" target="_blank">http://insydney.blogspot.com/</a> &#8211; (<a href="http://www.blogger.com/profile/16898842261348176368">Sydney</a>) deceso desde <a href="http://insydney.blogspot.com/2006/06/el-vicio-del-juego.html" target="_blank">junio del 2006</a>.</li>
</ul>
<ul>
<li><a href="http://inmauritius.blogspot.com/" target="_blank">http://inmauritius.blogspot.com/</a> &#8211; (<a href="http://www.blogger.com/profile/16898842261348176368">Mauritius</a>) deshabilitado desde <a href="http://inmauritius.blogspot.com/2005/11/goodbye-cake-party.html">noviembre del 2005</a>.</li>
</ul>
<ul>
<li><a href="http://firepuppet.blogspot.com/" target="_blank">http://firepuppet.blogspot.com/</a> &#8211; (<a href="http://www.blogger.com/profile/04384172036703678375" target="_blank">Maastricht on a shoestring</a>) <a href="http://mauriciopastrana.com/otros/a-la-clase-del-2000-todos-seremos-exitosos-no-lo-duden/" target="_blank">en desuso</a> desde <a href="http://firepuppet.blogspot.com/2005/03/ben-el-aleman-y-el-dude-atras-esta-una.html">marzo del 2005</a>.</li>
</ul>
<ul>
<li><a href="http://cosmos4ever.blogspot.com/" target="_blank">http://cosmos4ever.blogspot.com/</a> &#8211; (<a href="http://www.blogger.com/profile/03248159450940363210" target="_blank">cosmos</a>) con noticias nuevas, aunque a paso glacial, en pausa desde <a href="http://cosmos4ever.blogspot.com/2007/08/quinquina.html" target="_blank">agosto del 2007</a>.</li>
</ul>
<ul>
<li><a href="http://perrenque.blogspot.com/" target="_blank">http://perrenque.blogspot.com/</a> &#8211; (<a href="http://www.blogger.com/profile/02647609246433057686" target="_blank">Amarilla</a>) este si, difunto desde <a href="http://perrenque.blogspot.com/2006/04/amar-y-ya.html" target="_blank">abril del 2006</a> (aunque ahora reemplazado por <a href="http://www.flickr.com/photos/perrenque">http://www.flickr.com/photos/perrenque</a>, sin mencionar <a href="http://www.cambio.com.co/placercambio/749/ARTICULO-WEB-NOTA_INTERIOR_CAMBIO-3805707.html" target="_blank">las mil y una menciones por otros</a> )</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mauriciopastrana.com/gente/survivor-outwit-outplay-outlast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Club de Taekwondo</title>
		<link>http://mauriciopastrana.com/sydney/club-de-taekwondo/</link>
		<comments>http://mauriciopastrana.com/sydney/club-de-taekwondo/#comments</comments>
		<pubDate>Sun, 06 May 2007 01:47:11 +0000</pubDate>
		<dc:creator>Mauricio Pastrana</dc:creator>
				<category><![CDATA[Gente]]></category>
		<category><![CDATA[Otros]]></category>
		<category><![CDATA[Sydney]]></category>

		<guid isPermaLink="false">http://mauriciopastrana.com/uncategorized/club-de-taekwondo/</guid>
		<description><![CDATA[Al parecer ahora me encuentran tambien en el website del club de taekwondo! : http://www.usydtkd.com -mp]]></description>
			<content:encoded><![CDATA[<p>Al parecer ahora me encuentran tambien en el website del <a href="http://www.usydtkd.com">club de taekwondo</a>! :</p>
<p><a href="http://www.usydtkd.com">http://www.usydtkd.com</a></p>
<p>-mp</p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciopastrana.com/sydney/club-de-taekwondo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fotos!</title>
		<link>http://mauriciopastrana.com/sydney/fotos/</link>
		<comments>http://mauriciopastrana.com/sydney/fotos/#comments</comments>
		<pubDate>Mon, 08 Jan 2007 23:41:43 +0000</pubDate>
		<dc:creator>Mauricio Pastrana</dc:creator>
				<category><![CDATA[Gente]]></category>
		<category><![CDATA[Otros]]></category>
		<category><![CDATA[Sydney]]></category>

		<guid isPermaLink="false">http://mauriciopastrana.com/uncategorized/fotos/</guid>
		<description><![CDATA[casi 3 meses enteros sin escribir aca! aca dejo un enlace a mi pagina de flickr con las fotos mas recientes, lo cual me deja espacio abierto para dejar escritos aca, quizas ahora no semanales. http://www.flickr.com/photos/mauriciopastrana #flickr_badge_source_txt {padding:0; font: 11px Arial, Helvetica, Sans serif; color:#333333;} #flickr_badge_icon {display:block !important; margin:0 !important; border: 1px solid rgb(0, 0, [...]]]></description>
			<content:encoded><![CDATA[<p>casi 3 meses enteros sin escribir aca!</p>
<p>aca dejo un enlace a mi pagina de flickr con las fotos mas recientes, lo cual me deja espacio abierto para dejar escritos aca, quizas ahora no semanales.</p>
<p><a href="http://www.flickr.com/photos/mauriciopastrana">http://www.flickr.com/photos/mauriciopastrana</a></p>
<p><code><!-- Start of Flickr Badge --></p>
<style type="text/css">
#flickr_badge_source_txt {padding:0; font: 11px Arial, Helvetica, Sans serif; color:#333333;}
#flickr_badge_icon {display:block !important; margin:0 !important; border: 1px solid rgb(0, 0, 0) !important;}
#flickr_icon_td {padding:0 5px 0 0 !important;}
.flickr_badge_image {text-align:center !important;}
.flickr_badge_image img {border: 1px solid black !important;}
#flickr_www {display:block; padding:0 10px 0 10px !important; font: 11px Arial, Helvetica, Sans serif !important; color:#3993ff !important;}
#flickr_badge_uber_wrapper a:hover,
#flickr_badge_uber_wrapper a:link,
#flickr_badge_uber_wrapper a:active,
#flickr_badge_uber_wrapper a:visited {text-decoration:none !important; background:inherit !important;color:#3993ff;}
#flickr_badge_wrapper {background-color:#CCCCCC;border: solid 1px #999999}
#flickr_badge_source {padding:0 !important; font: 11px Arial, Helvetica, Sans serif !important; color:#333333 !important;}
</style>
<table id="flickr_badge_uber_wrapper" cellpadding="0" cellspacing="10" border="0">
<tr>
<td><a href="http://www.flickr.com" id="flickr_www">www.<strong style="color:#3993ff">flick<span style="color:#ff1c92">r</span></strong>.com</a><br />
<table cellpadding="0" cellspacing="10" border="0" id="flickr_badge_wrapper">
<tr>
<script type="text/javascript" src="http://www.flickr.com/badge_code_v2.gne?count=3&#038;display=random&#038;size=t&#038;layout=h&#038;source=user&#038;user=42821813%40N00"></script><br />
</tr>
</table>
</td>
</tr>
</table>
<p><!-- End of Flickr Badge --><br />
</code></p>
<p>Tambien! el reloj ahora da la hora DST!!! (que espero no tardar tanto en hacer el ajuste al final del verano)</p>
<p>-mp</p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciopastrana.com/sydney/fotos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Colombianos en Sydney</title>
		<link>http://mauriciopastrana.com/gente/colombianos-en-sydney/</link>
		<comments>http://mauriciopastrana.com/gente/colombianos-en-sydney/#comments</comments>
		<pubDate>Tue, 17 Oct 2006 02:58:18 +0000</pubDate>
		<dc:creator>Mauricio Pastrana</dc:creator>
				<category><![CDATA[Gente]]></category>

		<guid isPermaLink="false">http://mauriciopastrana.com/uncategorized/colombianos-en-sydney/</guid>
		<description><![CDATA[En mi post anterior habia lanzado un vinculo (&#8220;hiperliga&#8221;?) a este post que desaparecio misteriosamente del indice (h4x0rz!!!), asi que ahi va de nuevo&#8230; tal cual estaba antes Hace rato vengo con el cuento que no importa en que esquina del planeta este uno, igual siempre se va a topar con por lo menos un [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.landnull.com/2006/10/16/olympus-ir/">En mi post anterior</a> habia lanzado un vinculo (&#8220;hiperliga&#8221;?) a este post que desaparecio misteriosamente del indice (h4x0rz!!!), asi que ahi va de nuevo&#8230; tal cual estaba antes</p>
<p>Hace rato vengo con el cuento que no importa en que esquina del planeta este uno, igual siempre se va a topar con por lo menos un colombiano y su &#8220;cuate&#8221;&#8230; no me causo gran sorpresa ver que la regla aplica aun en Australia.</p>
<p>Todos en las fotos son del &#8220;parche&#8221; de andres, amigos de clase en los cursos de business.</p>
<p>Andres y Tracy Urdiales (mex.)<br />
<img src="http://mauriciopastrana.com/wp-content/uploads/2006/image_box/2006_1016_paolaapt/DSC04811.jpg" alt=" " /><br />
<img src="http://mauriciopastrana.com/wp-content/uploads/2006/image_box/2006_1016_paolaapt/DSC04812.jpg" alt=" " /><br />
Andres y Paola Suarez (col.)<br />
<img src="http://mauriciopastrana.com/wp-content/uploads/2006/image_box/2006_1016_paolaapt/DSC04831.jpg" alt=" " /><br />
<img src="http://mauriciopastrana.com/wp-content/uploads/2006/image_box/2006_1016_paolaapt/DSC04832.jpg" alt=" " /><br />
<img src="http://mauriciopastrana.com/wp-content/uploads/2006/image_box/2006_1016_paolaapt/DSC04833.jpg" alt=" " /><br />
Anuk Weerasinghe (Sri Lanka) y Paola<br />
<img src="http://mauriciopastrana.com/wp-content/uploads/2006/image_box/2006_1016_paolaapt/DSC04834.jpg" alt=" " /><br />
<img src="http://mauriciopastrana.com/wp-content/uploads/2006/image_box/2006_1016_paolaapt/DSC04835.jpg" alt=" " /><br />
<img src="http://mauriciopastrana.com/wp-content/uploads/2006/image_box/2006_1016_paolaapt/DSC04836.jpg" alt=" " /><br />
<img src="http://mauriciopastrana.com/wp-content/uploads/2006/image_box/2006_1016_paolaapt/DSC04838.jpg" alt=" " /></p>
]]></content:encoded>
			<wfw:commentRss>http://mauriciopastrana.com/gente/colombianos-en-sydney/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
