<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Plataforma de Información de Exámenes &#187; jbelon</title>
	<atom:link href="http://pie.zenphp.es/articulos/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://pie.zenphp.es</link>
	<description>Blog del proyecto PIE (Plataforma de Información de Exámenes) basado en zenphp para el 3er concurso universitario de software libre del 2008-2009</description>
	<lastBuildDate>Wed, 06 May 2009 17:59:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Convirtiendo personas en diseños</title>
		<link>http://pie.zenphp.es/articulos/157/convirtiendo-personas-en-disenos/</link>
		<comments>http://pie.zenphp.es/articulos/157/convirtiendo-personas-en-disenos/#comments</comments>
		<pubDate>Wed, 06 May 2009 17:59:22 +0000</pubDate>
		<dc:creator>jbelon</dc:creator>
				<category><![CDATA[Información]]></category>
		<category><![CDATA[asignatura]]></category>
		<category><![CDATA[comunicación]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[profesor]]></category>
		<category><![CDATA[servicios web]]></category>
		<category><![CDATA[sistema]]></category>
		<category><![CDATA[usuarios]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://pie.zenphp.es/?p=157</guid>
		<description><![CDATA[Tras muchas horas de análisis de los servicios web que hay actualmente en la web me he alegrado de que gran parte del trabajo me lo voy a ahorrar gracias a que otros se adelantaron ...]]></description>
			<content:encoded><![CDATA[<p>Tras muchas horas de análisis de los servicios web que hay actualmente en la web me he alegrado de que gran parte del trabajo me lo voy a ahorrar gracias a que otros se adelantaron jeje</p>
<p>Es el caso de vídeo como FreeScreencast.com y otros, que me permiten insertar clases magistrales de Universidades, impartidas en todo el mundo, dentro del contenido de un curso.</p>
<p>Es bien conocido la técnica de embebido que páginas como youtube.com puso de moda, empezamos a convertir la red en 2.0 gracias a este tipo de servicios,por eso intento no repetir el trabajo que ya está hecho por otros ,y mejor que yo lo hago XD</p>
<p><span id="more-157"></span>¿Qué pistas nos dan las personas de su manera de estudiar y comportarse ante un examen?</p>
<p>Efectivamente, un usuario potencial de una plataforma como esta va a necesitar pasar un tiempo investigando donde puede encontrar métodos de resolución de problemas para esa asignatura en la que ha gastado su dinero de matrícula.</p>
<p>Puede que se sienta atraido por el sistema de comunicación entre gente que sabe más acerca de la materia que necesita aprender y asimilar para el día del examen, así como leer los artículos del profesor/es encargados de esa/s asignatura/s que le trae de cabeza&#8230;por eso, al aparecer, los nuevos sistemas que son productos innovadores se vuelven disponibles los usuarios con estos problemas se interesan inmediatamente por ellos, y posiblemente atraigan a profesionales y organizaciones para las que en principio no estaban destinados estos sistemas.</p>
<p>Es por eso que las personas se convierten en ideas potenciales para atraer diferentes tipos de usuarios durante la fase de desarrollo del concepto.</p>
]]></content:encoded>
			<wfw:commentRss>http://pie.zenphp.es/articulos/157/convirtiendo-personas-en-disenos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabajo con etiquetas: relaciones al poder y algoritmos evolutivos de búsqueda</title>
		<link>http://pie.zenphp.es/articulos/273/trabajo-con-etiquetas-relaciones-al-poder-y-algoritmos-evolutivos-de-busqueda/</link>
		<comments>http://pie.zenphp.es/articulos/273/trabajo-con-etiquetas-relaciones-al-poder-y-algoritmos-evolutivos-de-busqueda/#comments</comments>
		<pubDate>Wed, 06 May 2009 17:39:19 +0000</pubDate>
		<dc:creator>jbelon</dc:creator>
				<category><![CDATA[Tareas]]></category>
		<category><![CDATA[algoritmo evolutivo]]></category>
		<category><![CDATA[algoritmos]]></category>
		<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[búsquedas]]></category>
		<category><![CDATA[etiquetas]]></category>
		<category><![CDATA[evolución]]></category>
		<category><![CDATA[problemas]]></category>
		<category><![CDATA[procesos]]></category>
		<category><![CDATA[relación]]></category>
		<category><![CDATA[relaciones]]></category>

		<guid isPermaLink="false">http://pie.zenphp.es/?p=273</guid>
		<description><![CDATA[Gracias a un sistema de etiquetas bien diseñado y que puede ser compartido entre dominios, i.e., que funciona bien&#8230; si lo diseñamos bien XD podemos aplicar un verdadero enfoque práctico de algoritmos evolutivos de búsqueda.
Quiero ...]]></description>
			<content:encoded><![CDATA[<p>Gracias a un <a href="http://blog.zenphp.es/2008/06/11/sistemas-de-etiquetas-ciclicos-para-la-web-buena-idea-dificil-implementacion/">sistema de etiquetas</a> bien diseñado y que puede ser <a href="http://blog.zenphp.es/2009/05/05/tratamiento-dinamico-avanzado-con-etiquetas-entre-dominios/">compartido entre dominios</a>, i.e., que funciona bien&#8230; si lo diseñamos bien XD podemos aplicar un verdadero enfoque práctico de algoritmos evolutivos de búsqueda.</p>
<p>Quiero mencionar &#8220;La Programación Evolutiva&#8221; [KOZ94, KOZ02]: <em>se hace evolucionar una población de &#8220;programas&#8221; para resolver un problema en general. Los programas que evolucionan pueden adoptar distintas formas, aunque lo más usual es un árbol. </em></p>
<p>Las estructuras de datos de las búsquedas que se utilizan en los sistemas de etiquetas son de tamaño variable, como el <a href="http://blog.zenphp.es/2009/05/05/tratamiento-dinamico-avanzado-con-etiquetas-entre-dominios/">ejemplo</a> mencionado anteriormente, los algoritmos que buscan en ellos no intentan dar solución a una instancia concreta del problema , sería como dar sólo la opción de buscar lámparas en un todo a 1€uro chino (el corte chino XD) sino de proporcionar una estrategia capaz de resolver cualquier instancia de una búsqueda: generalizar un algoritmo de búsqueda que comparte datos de distintos dominios-&gt; etiquetas ,como no! jiasss</p>
<p><span id="more-273"></span>El método clásico de optimización para problemas cuyo espacio de búsqueda de soluciones es contínuo es la técnica de <em>escalada</em>, que consiste en determinar la pendiente de la vecindad del punto actual (un Dominio en un servidor que comparte una base de datos o un servicio de intercambio de datos por XML&#8230;etc) y seleccionar el punto de mayor pendiente en dicha vecindad: i.e., el conjunto de etiquetas que es de mayor calidad, más valorada, etc. entonces ,el próximo punto (tabla, modelo de datos,etc.) pertenece a este nuevo valor pero , ojete!: para pasar hasta él y no dejar desconectado a los demás habrá de pasar por los &#8220;peores&#8221; puntos , aunque estos no representen el óptimo global.</p>
<p>Una alternativa es realizar una búsqueda aleatoria de candidatos de etiquetas representativas tomando puntos al azar dentro de una zona de búsqueda, y estimando el valor del óptimo mediante técnicas estadísticas, que precisamente pueden aplicarse a cualquier tipo de problema, pero son muy ineficientes.</p>
<p>Los algoritmos evolutivos constituyen un punto intermedio al reunir componentes de búsqueda aleatoria y de búsqueda dirigida por la selección. Se suelen utilizar un espacio multimensional, comenzando con 3 dimensiones: identificadores, modelos y valores representativos, después existe la posibilidad de añadir dimensiones adicionales aunque complican el algoritmo y el mantenimiento, o que pensabas? XD</p>
<p>Ejemplo de un algoritmo evolutivo es el de las búsquedas con Google una vez logeado en GMail , muxo cuidado con los resultados que teneis porque están influenciados por vuestros &#8220;gustos&#8221;, si quereis resultados reales, hacer logout de vuestra cuenta ,pájaro! xD</p>
<p>Así, la evolución en PIE se puede interpretar como un proceso de optimización donde los usuarios encuentran lo que necesitan ( peso ), que es análogo a los procesos de resolución de un problema de optimización, curioso,no? jaja Sin embargo, los algoritmos evolutivos no escalan de forma uniforme hacia regiones de mejor adaptación si no se les mete mano, sino que cuentan con mecanismos que les permiten cruzar regiones de baja adaptación: selección no determinista y mutaciones</p>
]]></content:encoded>
			<wfw:commentRss>http://pie.zenphp.es/articulos/273/trabajo-con-etiquetas-relaciones-al-poder-y-algoritmos-evolutivos-de-busqueda/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>El impacto de la variedad de categorías de aplicaciones web</title>
		<link>http://pie.zenphp.es/articulos/269/el-impacto-de-la-variedad-de-categorias-de-aplicaciones-web/</link>
		<comments>http://pie.zenphp.es/articulos/269/el-impacto-de-la-variedad-de-categorias-de-aplicaciones-web/#comments</comments>
		<pubDate>Sat, 02 May 2009 17:06:02 +0000</pubDate>
		<dc:creator>jbelon</dc:creator>
				<category><![CDATA[Historia]]></category>
		<category><![CDATA[aplicación]]></category>
		<category><![CDATA[aplicación web]]></category>
		<category><![CDATA[aplicaciones web]]></category>
		<category><![CDATA[comunicación]]></category>
		<category><![CDATA[conceptos]]></category>
		<category><![CDATA[educación]]></category>
		<category><![CDATA[Folksonomies]]></category>
		<category><![CDATA[Mashups]]></category>
		<category><![CDATA[PIE]]></category>
		<category><![CDATA[redes sociales]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://pie.zenphp.es/?p=269</guid>
		<description><![CDATA[Las categorías de una aplicación web van más allá de ser : informacional, descargas, personalizable, interactiva, entrada de usuario, orientada a transacciones, orientada a servicios, portales, acceso y almacén de datos y bases de datos, ...]]></description>
			<content:encoded><![CDATA[<p>Las categorías de una aplicación web van más allá de ser : informacional, descargas, personalizable, interactiva, entrada de usuario, orientada a transacciones, orientada a servicios, portales, acceso y almacén de datos y bases de datos, minería de datos, etc., por lo tanto, su impacto define tipos de tecnologías Web que pueden ser reutilizadas y aplicadas a diversas temáticas&#8230;</p>
<p>La aplicación web de PIE es del tipo informacional, educativa y comunicativa, provee de tipos de usuario final basados en contenido hipermedia de flujo bidireccional dinámico. Cuando se incluye contenido funcional, este está ampliamente previsto a cambiar el flujo de control y la naturaleza de su presentación.</p>
<p>Ejemplos de estos conceptos típicos de la web 2.0 pueden ser:</p>
<ul>
<li><strong>Folksonomies </strong>(etiquetado y clasificación: social y colaborativo, asi como indexación social) : las aplicaciones web actuales soportan la generación colaborativa de contenido categorizado apuntando al soporte de recuperación de información sencilla (<a href="http://en.wikipedia.org/wiki/Folksonomy">ver más »</a>)</li>
<li><a href="http://es.wikipedia.org/wiki/Mashup_(aplicación_web_híbrida)"><strong>Mashups </strong>(aplicación web híbrida) </a>: los programadores nos comprometemos a combinar múltiples orígenes de información para proporcionar una sinergía de resultados atrayentes para el público.</li>
<li><strong>Redes sociales</strong>: las aplicaciones wen se centran en construir herramientas de enrequecimiento de las conexiones entre usuarios ( <a href="http://en.wikipedia.org/wiki/Social_networking_sites">ver más »</a> ) Es lógico que en los paises donde más barato es conectarse a la red y más gente se conecta existan más aplicaciones web de redes sociales, sobre todo si tienen un idioma como el inglés para comunicarse jeje</li>
<li><strong>Wikis</strong>: estamos usando contínuamente herramientas web que nos permiten editar, añadir, borrar contenido para la construcción de la comunidad virtual, el más claro ejemplo es la <a href="http://www.wikipedia.com" target="_blank">Wikipedia</a>.</li>
</ul>
<div>Incluso más recientemente, los programadores de la web han usado una mezcla de tecnologías de interfaces del lado del cliente y funcionalidades del lado del servidor para crear aplicaciones que imitan el funcionamiento de las aplicaciones de escritorio de toda la vida, por ejemplo, nuestro amigo Google con su Writely comprado y ahora convertido a Google Docs, que todo el mundo debe de utilizar jejeje, Kiko : un calendario web o box.net: una aplicación de almacenaje de ficheros avanzada&#8230;son algunos de los maravillosos ejemplos de la más alta consistencia de las tecnologías web 2.0 puestas al servicio del público.</div>
<div></div>
<p style="text-align: center;"><img class="alignnone size-medium wp-image-270" title="expandiendo_la_web_2" src="http://pie.zenphp.es/wp-content/uploads/2009/05/expandiendo_la_web_2-300x227.jpg" alt="" width="300" height="227" /></p>
<div>¿Qué podemos hacer para que no se nos escape de las manos tanta sofistificación?&#8230;si dependemos del grado de interactividad sin quitarle importancia a la funcionalidad, queda a nuestro alcance que el incremento de aplicaciones web debe mantener la paz XD &#8230;es decir, las tecnologías Web han evolucionado para crear nuestras queridas aplicaciones y progresivamente han eliminado las limitaciones por ambos lados : usuarios y mantenimiento, que habían limitado históricamente el impacto global de la web.</div>
]]></content:encoded>
			<wfw:commentRss>http://pie.zenphp.es/articulos/269/el-impacto-de-la-variedad-de-categorias-de-aplicaciones-web/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Mención Especial del III Concurso Universitario de Software Libre</title>
		<link>http://pie.zenphp.es/articulos/265/mencion-especial-del-iii-concurso-universitario-de-software-libre/</link>
		<comments>http://pie.zenphp.es/articulos/265/mencion-especial-del-iii-concurso-universitario-de-software-libre/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 12:14:41 +0000</pubDate>
		<dc:creator>jbelon</dc:creator>
				<category><![CDATA[Estado actual]]></category>
		<category><![CDATA[compañeros]]></category>
		<category><![CDATA[compartir]]></category>
		<category><![CDATA[concurso]]></category>
		<category><![CDATA[menciones]]></category>
		<category><![CDATA[PIE]]></category>
		<category><![CDATA[Sevilla]]></category>

		<guid isPermaLink="false">http://pie.zenphp.es/?p=265</guid>
		<description><![CDATA[Los amigos del jurado del III Concurso Universitario de Software Libre han deliverado otorgándome una mención especial por el trabajo que llevo realizado hasta ahora.
Comprendo que no es fácil explicar cómo puede alguien como yo ...]]></description>
			<content:encoded><![CDATA[<p>Los amigos del jurado del III Concurso Universitario de Software Libre han deliverado otorgándome una mención especial por el trabajo que llevo realizado hasta ahora.</p>
<p>Comprendo que no es fácil explicar cómo puede alguien como yo levantar a su empresa de la crisis para pagarse la comida ,continuar estudiando y encontrar huecos para seguir construyendo una plataforma de revolución educativa como PIE,jejeje</p>
<p>Pues me alegro mucho de recibirla, nos veremos en Sevilla para escuchar lo que tienen que decirnos nuestros compañeros y compañeras.</p>
<p>Salud!</p>
<p><a href="http://pie.zenphp.es/wp-content/uploads/2009/04/lancelot_icons.png"><img class="alignnone size-full wp-image-266" title="lancelot_icons" src="http://pie.zenphp.es/wp-content/uploads/2009/04/lancelot_icons.png" alt="" width="401" height="296" /></a></p>
<p><span id="more-265"></span></p>
<p>Como es de esperar, brindo por <a href="http://www.concursosoftwarelibre.org/0809/node/893">mis compañeros</a> que también van conmigo en este camino <img src='http://pie.zenphp.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://pie.zenphp.es/articulos/265/mencion-especial-del-iii-concurso-universitario-de-software-libre/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Posibilidades múltiples de PIE</title>
		<link>http://pie.zenphp.es/articulos/257/posibilidades-multiples-de-pie/</link>
		<comments>http://pie.zenphp.es/articulos/257/posibilidades-multiples-de-pie/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 17:34:51 +0000</pubDate>
		<dc:creator>jbelon</dc:creator>
				<category><![CDATA[Información]]></category>
		<category><![CDATA[alumnos]]></category>
		<category><![CDATA[aplicación web]]></category>
		<category><![CDATA[arquitectura]]></category>
		<category><![CDATA[arquitectura de la información]]></category>
		<category><![CDATA[cultura]]></category>
		<category><![CDATA[evolución]]></category>
		<category><![CDATA[ingenieria]]></category>
		<category><![CDATA[ingeniería del software]]></category>
		<category><![CDATA[ingeniería web]]></category>
		<category><![CDATA[profesores]]></category>
		<category><![CDATA[proyectos]]></category>

		<guid isPermaLink="false">http://pie.zenphp.es/?p=257</guid>
		<description><![CDATA[No me canso de escuchar a la gente que pregunta por qué seguimos construyendo proyectos iguales unos a otros, sobre todo en cuanto a docencia, hay cientos de proyectos repetidos, con la misma temática, de ...]]></description>
			<content:encoded><![CDATA[<p>No me canso de escuchar a la gente que pregunta por qué seguimos construyendo proyectos iguales unos a otros, sobre todo en cuanto a docencia, hay cientos de proyectos repetidos, con la misma temática, de igual funcionamiento, seguramente, esta gente que pregunta ni siquiera es consciente de los elementos de una arquitectura de la información en términos de la ingeniería web, seguramente porque la rutina de sus vidas simplemente <strong>no les permite vislumbrar las ideas</strong> que intentan romper el muro de la genialidad para mostrar al mundo que pueden hacer mucho bien.<span id="more-257"></span></p>
<p>La Arquitectura de la Información ,o <em>AI</em>, en términos de un <a title="Diagrama de Venn: Ver en la Wikipedia" href="http://es.wikipedia.org/wiki/Diagrama_de_Venn" target="_blank">diagrama de Venn</a>, contiene tres círculos representando <strong>el contexto, contenido y los usuarios</strong>; </p>
<p><img class="size-medium wp-image-258 alignleft" title="nino_mirando_pantalla" src="http://pie.zenphp.es/wp-content/uploads/2009/04/nino_mirando_pantalla-236x300.jpg" alt="" width="236" height="300" /></p>
<p>algunos proyectos proveen de las estructuras lógicas que nos ayudan a encontrar respuestas y completar tareas que son inalcanzables de aplicar con otros proyectos, ya sea por su inmesidad, complejidad o cualquier otra cosa frustrante jaja&#8230;el caso es que no encontramos el producto que necesitamos y pedimos un <strong>proyecto a medida</strong>.</p>
<p>Recordemos la definición de la Arquitectura de la Información&#8230;, es, la combinación varios temas entre los que destacan aquellos que tienen que ver con la organización, etiquetado y navegación dentro de un sistema de información que utiliza diseño estructural de esta por medio de espacios intuitivos en un contexto que mezcla arte y ciencia de forma clasificada y estructurada para <strong>ayudar a las personas a encontrar y manejar esta información</strong> de modo disciplinado en una práctica de comunidad focalizada en unos principios de diseño y arquitectura básica del espacio digital.</p>
<p>En otras palabras, la AI es un diseño de alto nivel que crea la estructura del espacio de la información usado en un sistema de aplicaciones web.</p>
<p>Como diseñadores de sitios web no debemos dejarnos atrapar por la metáfora de la construcción como arquitectura y nada más, estamos hablando de mejorar cada analogía haciéndola partícipe del bagaje (intelectual, cultural, emocional,etc) actual ,es decir,nuestro entrenamiento de las máquinas para servirnos cada vez más y mejor, todo lo que hagamos ahora no será en vano puesto que son las primeras piedras de nuestra evolución cultural.</p>
<p>Me refiero a que este proyecto puede ser utilizado para construir cualquier otro sitio, por ejemplo, cambiando profesores por monitores de esquí y alumnos por practicantes ,por qué vamos a deternos, por qué vamos a poner fronteras? jejeje</p>
]]></content:encoded>
			<wfw:commentRss>http://pie.zenphp.es/articulos/257/posibilidades-multiples-de-pie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Believe in My Dreams</title>
		<link>http://pie.zenphp.es/articulos/252/i-believe-in-my-dreams/</link>
		<comments>http://pie.zenphp.es/articulos/252/i-believe-in-my-dreams/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 23:32:57 +0000</pubDate>
		<dc:creator>jbelon</dc:creator>
				<category><![CDATA[Estado actual]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[compartir]]></category>
		<category><![CDATA[enviar]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[funcionalidades]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[móvil]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[sms]]></category>
		<category><![CDATA[sueño]]></category>
		<category><![CDATA[teléfono]]></category>
		<category><![CDATA[tiempo]]></category>
		<category><![CDATA[usuario]]></category>

		<guid isPermaLink="false">http://pie.zenphp.es/?p=252</guid>
		<description><![CDATA[Como dije en mi charla de la Final granadina del Concurso, la web está enferma!&#8230;en mi opinión, porque el mundo está enfermo&#8230;como ingeniero web me encantaría poder descubrir el equivalente de la energía de Tesla, al motor ...]]></description>
			<content:encoded><![CDATA[<p>Como dije en mi charla de la <a href="http://pie.zenphp.es/articulos/249/fase-final-de-granada/">Final granadina del Concurso</a>, la web está enferma!&#8230;en mi opinión, porque el mundo está enfermo&#8230;como ingeniero web me encantaría poder descubrir el equivalente de la energía de Tesla, al motor de comunicación que una teléfono-sms-internet-chat-mail gratuitamente, pero creo que no podemos cambiar a nada, mis frustrados intentos por encontrar nuevas formas de sorprender en un espacio donde ya nada sorprende es como el canto de un mirlo en una autovía, sólo se puede escuchar si uno está abierto para escucharlo&#8230;<span id="more-252"></span></p>
<p>Y sin embargo, como dice el título del artículo, sigo creyendo en mis sueños, a riesgo de ser tomado como un loco, cosa que ya no me preocupa desde que he salido de tantos fracasos empresariales (y de la vida cotidiana) gracias a mis &#8220;locuras&#8221; XD </p>
<p>Partiendo de que nos pasamos la mitad del tiempo en internet introduciendo : 1. id&#8217;s de usuario, 2. passwords&#8230;.3. sigues aquí leyendo? jaja, de acuerdo, 3. usando funcionalidades que todo el mundo copia de otro, 4. seleccionando otra gente para enviar y compartir algo. 5. sigo? mejor no&#8230;qué coñazo de tío! jaja</p>
<p>Lo único, en mi opinión, que revolucionaría la web en cuanto a educación sería tener un robot que te hiciera los deberes al que le mandaras las tareas por móvil desde la cafetería, pero no seamos extremistas!, he estado hablando con <a title="Ver comunidad de arte de mi hermano" href="http://www.senseidav.com" target="_blank">mi hermano</a> y me ha dado una idea genial. Consiste en&#8230;bueno, no tengo que perder, voy a implementarlo!! jejeje</p>
<p>Mientras os dejo con un vídeo:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/G5Vd9k3-3LM&amp;hl=es&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/G5Vd9k3-3LM&amp;hl=es&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<a href="http://www.youtube.com/watch?v=G5Vd9k3-3LM">Robot mayordomo japonés</a></p>
]]></content:encoded>
			<wfw:commentRss>http://pie.zenphp.es/articulos/252/i-believe-in-my-dreams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fase final de Granada</title>
		<link>http://pie.zenphp.es/articulos/249/fase-final-de-granada/</link>
		<comments>http://pie.zenphp.es/articulos/249/fase-final-de-granada/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 11:46:45 +0000</pubDate>
		<dc:creator>jbelon</dc:creator>
				<category><![CDATA[Estado actual]]></category>
		<category><![CDATA[concurso]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[ganadores]]></category>
		<category><![CDATA[granada]]></category>
		<category><![CDATA[presentación]]></category>

		<guid isPermaLink="false">http://pie.zenphp.es/?p=249</guid>
		<description><![CDATA[No, no he sido premiado.
¿Y qué? jajaja
He vendido aire.
Los ganadores aquí: http://osl.ugr.es/wordpress/?p=447
Enhorabuena campeones, &#8220;que llegueis a las estrellas!&#8221;  
]]></description>
			<content:encoded><![CDATA[<p>No, no he sido premiado.</p>
<p>¿Y qué? jajaja</p>
<p>He vendido aire.</p>
<p>Los ganadores aquí: <a href="http://osl.ugr.es/wordpress/?p=447">http://osl.ugr.es/wordpress/?p=447</a></p>
<p>Enhorabuena campeones, &#8220;que llegueis a las estrellas!&#8221; <img src='http://pie.zenphp.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://pie.zenphp.es/articulos/249/fase-final-de-granada/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Aproximación de la aplicación web iPie (PIE para iPhone)</title>
		<link>http://pie.zenphp.es/articulos/246/aproximacion-de-la-aplicacion-web-ipie-pie-para-iphone/</link>
		<comments>http://pie.zenphp.es/articulos/246/aproximacion-de-la-aplicacion-web-ipie-pie-para-iphone/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 15:09:14 +0000</pubDate>
		<dc:creator>jbelon</dc:creator>
				<category><![CDATA[Vídeo]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iUI]]></category>
		<category><![CDATA[PIE]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://pie.zenphp.es/?p=246</guid>
		<description><![CDATA[
Gracias al framework iUI ( User Interface (UI) Library for Safari development on iPhone ) hacer aplicaciones web ajax para iPhone es tan sencillo como incluirlo y diseñar una serie de objetos mediante etiquetas HTML de ...]]></description>
			<content:encoded><![CDATA[<div id="psum"></div>
<p>Gracias al <a href="http://code.google.com/p/iui/" target="_blank">framework iUI</a> ( <em><a id="project_summary_link" style="text-decoration: none; color: #000000;" href="http://code.google.com/p/iui/">User Interface (UI) Library for Safari development on iPhone </a></em>) hacer aplicaciones web ajax para iPhone es tan sencillo como incluirlo y diseñar una serie de objetos mediante etiquetas HTML de toda la vida, listas &lt;ul&gt; con elementos &lt;li&gt;, dentro de divisiones &lt;div&gt; que el framework se encarga de tratar a la hora de presentar el contenido, a través de los atributos de id se disponen los diferentes apartados y se pueden construir grupos temáticos de forma super fácil.</p>
<p>Sino mirad lo que he construido gracias a PHP y un poco de HTML e imágenes.</p>
<p>Se muestra un conjunto básico de información, es todo una simple petición, que se organiza gracias a iUI con menús típicos de Safari de iPhone.</p>
<p>Pura magia jejeje</p>
]]></content:encoded>
			<wfw:commentRss>http://pie.zenphp.es/articulos/246/aproximacion-de-la-aplicacion-web-ipie-pie-para-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asegurar que un usuario no se pierde en el contexto</title>
		<link>http://pie.zenphp.es/articulos/238/asegurar-que-un-usuario-no-se-pierde-en-el-contexto/</link>
		<comments>http://pie.zenphp.es/articulos/238/asegurar-que-un-usuario-no-se-pierde-en-el-contexto/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 23:20:30 +0000</pubDate>
		<dc:creator>jbelon</dc:creator>
				<category><![CDATA[Historia]]></category>
		<category><![CDATA[arquitectura]]></category>
		<category><![CDATA[búsquedas]]></category>
		<category><![CDATA[contenido]]></category>
		<category><![CDATA[desarrolladores]]></category>
		<category><![CDATA[destino]]></category>
		<category><![CDATA[estructuras]]></category>
		<category><![CDATA[etiquetas]]></category>
		<category><![CDATA[herramientas]]></category>
		<category><![CDATA[Información]]></category>
		<category><![CDATA[migas de pan]]></category>
		<category><![CDATA[resultados]]></category>
		<category><![CDATA[sitios]]></category>
		<category><![CDATA[usuarios]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://pie.zenphp.es/?p=238</guid>
		<description><![CDATA[Estoy seguro de que alguna vez has navegado en un complejo sistema de aplicaciones web y te has sentido &#8220;perdido en el hiper-despacio&#8221;&#8230;cuando pasa esto, pierdes la pista de donde te encuentras metido en ese ...]]></description>
			<content:encoded><![CDATA[<p>Estoy seguro de que alguna vez has navegado en un complejo sistema de aplicaciones web y te has sentido &#8220;perdido en el hiper-despacio&#8221;&#8230;cuando pasa esto, pierdes la pista de donde te encuentras metido en ese sitio&#8230;</p>
<p>Es un problema muy común que puede dejar al usuario desorientado e incapacitado para adquirir la información que necesita o incluso invocar la funcionalidad apropiada en ese momento. Esto además hace más difícil interpretar la información que ya había sido adquirida. Un excelente ejemplo es las páginas web de nuestras escuelas, ya sea la de bellas artes, con una decena de iconos y texto que hay que leer en vertical al colocarte sobre ellos y una clase de diseño que acaba por difuminarse ante nuestros ojos y empezamos a parecer chinos delante de la pantalla cerrándolos para poder enfocar el contenido correctamente.</p>
<p>Esto puede ilustrar como ejemplo &#8220;severo&#8221; lo que al estudiante puede ocurrirle y la importancia de asegurar que la información sea presentada en un contexto muy claro. Que sirva además para arrojar luz en los casos significantes ,como cuando nos encontramos saltando justo en medio de la aplicación web , dentro de un resultado de una búsqueda&#8230;<span id="more-238"></span></p>
<p>Por supuesto, en la historia de la web se crearon herramientas para guiar a los desarrolladores a realizar una visualización de la información de conocimiento generado de una forma vistosa:</p>
<p>* <strong>Etiquetado limpio</strong>: se debe utilizar un estándar local para liderar un conjunto muy claro de etiquetas que representen los enlaces dentro del sitio, que describan el destino es de alguna forma crucial para asegurar que se comprenderá de forma consistente el lugar al que se ha llegado cuando se sigue el enlace. Algunos arquitectos web establecen un diccionario de términos para ser usados a lo largo del diseño de la aplicación.<br />
<strong>* Migas de pan</strong>: siempre es una buena idea, (sino mirad este mismo blog) que al estar en un apartado, se realice un pequeño resumen o árbol de localización, a modo de miguitas de pan, desde el <em>inicio</em> -&gt; hasta la categoría y el <em>artículo</em>, esto provee una visualización directa de la estructura del sitio y las elecciones que hemos ido ejecutando a lo largo de nuestro camino.<br />
<strong>* Disposición del contenido</strong>: la complejidad de un sitio web se ve representada en la estructura utilizada y la forma en que esta crece y sigue permaneciendo visible sin alterar el tamaño del diseño inicial. El soporte navegacional debe estar preparado para mantener la arquitectura de información ideada, es decir, que la meta sea ayudar a mejorar la experiencia del usuario, y esto es, encontrar lo que busca sin mencionar que un buen trabajo es aquel que no permite duda o confusión a aquel que ha venido, tenga la experiencia que tenga.</p>
<p>Cómo han evolucionado los modelos de diseño y el diseño de la información en cuanto a navegación es evidente, desde los años 90, los recursos de hipertexto considerados temas para tratar como complejos espacios de estructuras de información ,donde surgió la web ,hasta los modelos de hipermedia compuestos por capas de componentes&#8230;,representan un sistema de aplicaciones que <strong>se adapta de forma flexible al usuario</strong> y aún así, hoy en día existen limitaciones de los conceptos y técnicas de hipermedia; precisamente por estar focalizados casi enteramente en las detalladas estructuras de información, que han de ser ignoradas en un nivel alto de la arquitectura, por no poderse integrar debido a su complejidad funcional, aunque no es una limitación grave,&#8230;resulta que las aplicaciones web de las que actualmente disponemos (e-commerce, bancos online, sitios de subastas,etc.) son muy ricas funcionalmente <img src='http://pie.zenphp.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://pie.zenphp.es/articulos/238/asegurar-que-un-usuario-no-se-pierde-en-el-contexto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clasificación avanzada: métodos kernel y SVM ,un ejemplo práctico</title>
		<link>http://pie.zenphp.es/articulos/233/clasificacion-avanzada-metodos-kernel-y-svm-un-ejemplo-practico/</link>
		<comments>http://pie.zenphp.es/articulos/233/clasificacion-avanzada-metodos-kernel-y-svm-un-ejemplo-practico/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 22:40:05 +0000</pubDate>
		<dc:creator>jbelon</dc:creator>
				<category><![CDATA[Tareas]]></category>
		<category><![CDATA[algoritmos]]></category>
		<category><![CDATA[amigos]]></category>
		<category><![CDATA[asignaturas]]></category>
		<category><![CDATA[avanzado]]></category>
		<category><![CDATA[clasificación]]></category>
		<category><![CDATA[datos]]></category>
		<category><![CDATA[ejemplo]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[minería de datos]]></category>
		<category><![CDATA[predicción]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[redes]]></category>
		<category><![CDATA[sociedad]]></category>
		<category><![CDATA[svm]]></category>

		<guid isPermaLink="false">http://pie.zenphp.es/?p=233</guid>
		<description><![CDATA[Puesto que las máquinas de vectores soporte funcionan bien con conjuntos de datos de altas dimensiones, se aplican más a menudo a problemas científicos con muchos datos y otros problemas que tratan con conjuntos de ...]]></description>
			<content:encoded><![CDATA[<p>Puesto que las <a href="http://es.wikipedia.org/wiki/M%C3%A1quinas_de_vectores_de_soporte" target="_blank">máquinas de vectores soporte</a> funcionan bien con conjuntos de datos de altas dimensiones, se aplican más a menudo a problemas científicos con muchos datos y otros problemas que tratan con conjuntos de datos muy complejos. Algunos ejemplos incluyen:</p>
<ol>
<li>Clasificar expresiones faciales</li>
<li>Detectar intrusos utilizando conjuntos de datos</li>
<li>Predecir la estructura de colaboración entre dos planes de estudios</li>
<li>Reconocimiento de escritura</li>
<li>Determinar el potencial de un alumno en función de sus ejercicios</li>
</ol>
<p>El problema de estos algoritmos es que necesitan un entrenamiento para conseguir unos resultados fiables, y esto implica conceptos matemáticos que requieren muchos recursos de la máquina&#8230;</p>
<p>Una librería que ayuda en el proceso se llama LIBSVM , se puede descargar en <a href="http://www.csie.ntu.edu.tw/~cjlin/libsvm/" target="_blank">http://www.csie.ntu.edu.tw/~cjlin/libsvm/</a>, está escrito en C++ e incluye una versión en Java, sin embargo el paquete incluye un evoltorio para Python llamado svm.py, se necesita la versión compilada para la plataforma usada.</p>
<p>Ahora veremos un ejemplo para el caso 3 propuesto antes: predecir la estructura de colaboración entre dos planes de estudios utilizando los datos de la red social de facebook, probablemente sea una buena idea combinar datos dentro de la plataforma, provinientes de varias redes sociales, aunque nos encargaremos sólo de una para que no se nos escape de las manos.</p>
<p><span id="more-233"></span><a href="http://pie.zenphp.es/wp-content/uploads/2009/04/python_facebook.png"><img class="alignnone size-medium wp-image-234" title="python_facebook" src="http://pie.zenphp.es/wp-content/uploads/2009/04/python_facebook-300x227.png" alt="" width="300" height="227" /></a></p>
<p>Lo primero es crear un conjunto de datos de concordancia desde Facebook, para ello necesitaremos la siguiente llamada a la API:</p>
<pre style="color:#000000;background:#ffffff;"><span style="font-weight: bold; color: #800000;">import</span> facebook
s <span style="color: #808030;">=</span> facebook<span style="color: #808030;">.</span>fbsession<span style="color: #808030;">(</span><span style="color: #808030;">)</span>
amigos <span style="color: #808030;">=</span> s<span style="color: #808030;">.</span>obtenerAmigos<span style="color: #808030;">(</span><span style="color: #808030;">)</span></pre>
<p>Ahora podemos utilizar amigos[1] ;  s.obtenerInfo(amigos[0:2]) como &#8220;respuesta&#8221; en nuestro nuevo conjunto de datos. La llamada permite pasar dos listas de ID de igual longitud y devolver una lista con un número para cada par , 1 si las personas son amigos y 0 si no lo son. Puedes usar una clase como esta:</p>
<pre style="color:#000000;background:#ffffff;"><span style="font-weight: bold; color: #800000;">class</span> fbsession<span style="color: #808030;">:</span>
<span style="font-weight: bold; color: #800000;">def</span> __init_ _<span style="color: #808030;">(</span>self<span style="color: #808030;">)</span><span style="color: #808030;">:</span>
self<span style="color: #808030;">.</span>session_secret <span style="color: #808030;">=</span> <span style="color: #e34adc;">None</span>
self<span style="color: #808030;">.</span>session_key <span style="color: #808030;">=</span> <span style="color: #e34adc;">None</span>
self<span style="color: #808030;">.</span>token <span style="color: #808030;">=</span> self<span style="color: #808030;">.</span>createtoken<span style="color: #808030;">(</span><span style="color: #808030;">)</span>
webbrowser<span style="color: #808030;">.</span><span style="color: #e34adc;">open</span><span style="color: #808030;">(</span>self<span style="color: #808030;">.</span>getlogin<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span>
<span style="font-weight: bold; color: #800000;">print</span> <span style="color: #0000e6;">"Pulsa enter tras el login:"</span><span style="color: #808030;">,</span>
<span style="color: #e34adc;">raw_input</span><span style="color: #808030;">(</span><span style="color: #808030;">)</span>
self<span style="color: #808030;">.</span>getsession<span style="color: #808030;">(</span><span style="color: #808030;">)</span>
<span style="font-weight: bold; color: #800000;">def</span> sendrequest<span style="color: #808030;">(</span>self<span style="color: #808030;">,</span> args<span style="color: #808030;">)</span><span style="color: #808030;">:</span>
args<span style="color: #808030;">[</span><span style="color: #0000e6;">'api_key'</span><span style="color: #808030;">]</span> <span style="color: #808030;">=</span> apikey
args<span style="color: #808030;">[</span>'sig¡<span style="color: #808030;">]</span> <span style="color: #808030;">=</span> self<span style="color: #808030;">.</span>makehash<span style="color: #808030;">(</span>args<span style="color: #808030;">)</span>
post_data <span style="color: #808030;">=</span> urllib<span style="color: #808030;">.</span>urlencode<span style="color: #808030;">(</span>args<span style="color: #808030;">)</span>
url <span style="color: #808030;">=</span> FacebookURL <span style="color: #808030;">+</span> <span style="color: #0000e6;">"?"</span> <span style="color: #808030;">+</span> post_data
data <span style="color: #808030;">=</span> urllib<span style="color: #808030;">.</span>urlopen<span style="color: #808030;">(</span>url<span style="color: #808030;">)</span><span style="color: #808030;">.</span>read<span style="color: #808030;">(</span><span style="color: #808030;">)</span>
<span style="font-weight: bold; color: #800000;">return</span> parseString<span style="color: #808030;">(</span>data<span style="color: #808030;">)</span>

<span style="font-weight: bold; color: #800000;">def</span> makehash<span style="color: #808030;">(</span>self<span style="color: #808030;">,</span> args<span style="color: #808030;">)</span><span style="color: #808030;">:</span>
hasher <span style="color: #808030;">=</span> md5<span style="color: #808030;">.</span>new<span style="color: #808030;">(</span><span style="color: #0000e6;">''</span><span style="color: #808030;">.</span>join<span style="color: #808030;">(</span>
<span style="color: #808030;">[</span>x<span style="color: #808030;">+</span><span style="color: #0000e6;">'='</span><span style="color: #808030;">+</span>args<span style="color: #808030;">[</span>x<span style="color: #808030;">]</span> <span style="font-weight: bold; color: #800000;">for</span> x <span style="font-weight: bold; color: #800000;">in</span> sorted <span style="color: #808030;">(</span>
args<span style="color: #808030;">.</span>keys<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #808030;">]</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span>
<span style="font-weight: bold; color: #800000;">if</span> self<span style="color: #808030;">.</span>session_secret<span style="color: #808030;">:</span>
 hasher<span style="color: #808030;">.</span>update<span style="color: #808030;">(</span>self<span style="color: #808030;">.</span>session_secret<span style="color: #808030;">)</span>
<span style="font-weight: bold; color: #800000;">else</span><span style="color: #808030;">:</span>
 hasher<span style="color: #808030;">.</span>update<span style="color: #808030;">(</span>secret<span style="color: #808030;">)</span>
<span style="font-weight: bold; color: #800000;">return</span> hasher<span style="color: #808030;">.</span>hexdigest<span style="color: #808030;">(</span><span style="color: #808030;">)</span>

<span style="font-weight: bold; color: #800000;">def</span> createtoken<span style="color: #808030;">(</span>self<span style="color: #808030;">)</span><span style="color: #808030;">:</span>
res <span style="color: #808030;">=</span> self<span style="color: #808030;">.</span>sendrequest<span style="color: #808030;">(</span><span style="color: #800080;">{</span><span style="color: #0000e6;">'method'</span><span style="color: #808030;">:</span>
<span style="color: #0000e6;">"facebook.auth.createToken"</span><span style="color: #800080;">}</span><span style="color: #808030;">)</span>
self<span style="color: #808030;">.</span>token <span style="color: #808030;">=</span> getsinglevalue<span style="color: #808030;">(</span>res<span style="color: #808030;">,</span> <span style="color: #0000e6;">'token'</span><span style="color: #808030;">)</span>

<span style="font-weight: bold; color: #800000;">def</span> getlogin<span style="color: #808030;">(</span>self<span style="color: #808030;">)</span><span style="color: #808030;">:</span>
<span style="font-weight: bold; color: #800000;">return</span> <span style="color: #0000e6;">"http://api.facebook.com/login.php?api_key="</span><span style="color: #808030;">+</span>\
apikey<span style="color: #808030;">+</span><span style="color: #0000e6;">"&amp;amp;auth_token="</span><span style="color: #808030;">+</span>self<span style="color: #808030;">.</span>token

<span style="font-weight: bold; color: #800000;">def</span> obtenerAmigos<span style="color: #808030;">(</span>self<span style="color: #808030;">)</span><span style="color: #808030;">:</span>
doc <span style="color: #808030;">=</span> self<span style="color: #808030;">.</span>sendrequest<span style="color: #808030;">(</span><span style="color: #800080;">{</span><span style="color: #0000e6;">'method'</span><span style="color: #808030;">:</span><span style="color: #0000e6;">'facebook.friends.get'</span><span style="color: #808030;">,</span>
 <span style="color: #0000e6;">'session_key'</span><span style="color: #808030;">:</span>self<span style="color: #808030;">.</span>session_key<span style="color: #808030;">,</span><span style="color: #0000e6;">'call_id'</span><span style="color: #808030;">:</span>callid<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #800080;">}</span><span style="color: #808030;">)</span>
results <span style="color: #808030;">=</span> <span style="color: #808030;">[</span><span style="color: #808030;">]</span>
<span style="font-weight: bold; color: #800000;">for</span> n <span style="font-weight: bold; color: #800000;">in</span> doc<span style="color: #808030;">.</span>getElementsByTagName<span style="color: #808030;">(</span><span style="color: #0000e6;">'result_elt'</span><span style="color: #808030;">)</span><span style="color: #808030;">:</span>
results<span style="color: #808030;">.</span>append<span style="color: #808030;">(</span>n<span style="color: #808030;">.</span>firstChild<span style="color: #808030;">.</span>nodeValue<span style="color: #808030;">)</span>
<span style="font-weight: bold; color: #800000;">return</span> results

<span style="font-weight: bold; color: #800000;">def</span> obtenerInfo<span style="color: #808030;">(</span>self<span style="color: #808030;">,</span> usuarios<span style="color: #808030;">)</span><span style="color: #808030;">:</span>
ulist <span style="color: #808030;">=</span> <span style="color: #0000e6;">', '</span><span style="color: #808030;">.</span>join<span style="color: #808030;">(</span>usuarios<span style="color: #808030;">)</span>
campos <span style="color: #808030;">=</span> 'gender<span style="color: #808030;">,</span>current_location<span style="color: #808030;">,</span>
relationship_status<span style="color: #808030;">,</span>affiliations<span style="color: #808030;">,</span>hometown_location'
doc <span style="color: #808030;">=</span> self<span style="color: #808030;">.</span>sendrequest<span style="color: #808030;">(</span><span style="color: #800080;">{</span><span style="color: #0000e6;">'method'</span><span style="color: #808030;">:</span>
<span style="color: #0000e6;">'facebook.user.getInfo'</span><span style="color: #808030;">,</span><span style="color: #0000e6;">'session_key'</span><span style="color: #808030;">:</span>
self<span style="color: #808030;">.</span>session_key<span style="color: #808030;">,</span> <span style="color: #0000e6;">'call_id'</span><span style="color: #808030;">:</span>callid<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">,</span><span style="color: #0000e6;">'users'</span><span style="color: #808030;">:</span>ulist<span style="color: #808030;">,</span>
<span style="color: #0000e6;">'fields'</span><span style="color: #808030;">:</span>campos<span style="color: #800080;">}</span><span style="color: #808030;">)</span>
resultados <span style="color: #808030;">=</span> <span style="color: #800080;">{</span><span style="color: #800080;">}</span>
<span style="font-weight: bold; color: #800000;">for</span> n<span style="color: #808030;">,</span><span style="color: #e34adc;">id</span> <span style="font-weight: bold; color: #800000;">in</span> zip<span style="color: #808030;">(</span>doc<span style="color: #808030;">.</span>getElementsbyTagName<span style="color: #808030;">(</span><span style="color: #0000e6;">'result_elt'</span><span style="color: #808030;">)</span><span style="color: #808030;">,</span>users<span style="color: #808030;">)</span><span style="color: #808030;">:</span>
<span style="color: #696969;"># obtener ubicación</span>
locnode <span style="color: #808030;">=</span> n<span style="color: #808030;">.</span>getElementsByTagName<span style="color: #808030;">(</span><span style="color: #0000e6;">'hometown_location'</span><span style="color: #808030;">)</span><span style="color: #808030;">[</span><span style="color: #008c00;">0</span><span style="color: #808030;">]</span>
loc <span style="color: #808030;">=</span> getsinglevalue<span style="color: #808030;">(</span>locnode<span style="color: #808030;">,</span><span style="color: #0000e6;">'city'</span><span style="color: #808030;">)</span><span style="color: #808030;">+</span><span style="color: #0000e6;">', '</span><span style="color: #808030;">+</span>\
getsinglevalue<span style="color: #808030;">(</span>locnode<span style="color: #808030;">,</span> <span style="color: #0000e6;">'state'</span><span style="color: #808030;">)</span>
<span style="color: #696969;"># obtener la escuela</span>
escuela <span style="color: #808030;">=</span> <span style="color: #0000e6;">''</span>
graduanio <span style="color: #808030;">=</span> <span style="color: #0000e6;">'0'</span>
asocia <span style="color: #808030;">=</span> n<span style="color: #808030;">.</span>getElementsByTagName<span style="color: #808030;">(</span><span style="color: #0000e6;">'affiliations_elt'</span><span style="color: #808030;">)</span>
<span style="font-weight: bold; color: #800000;">for</span> aso <span style="font-weight: bold; color: #800000;">in</span> asocia<span style="color: #808030;">:</span>
<span style="color: #696969;">#tipo 1 es universidad:</span>
<span style="font-weight: bold; color: #800000;">if</span> getsinglevalue<span style="color: #808030;">(</span>aso<span style="color: #808030;">,</span> <span style="color: #0000e6;">'type'</span><span style="color: #808030;">)</span> <span style="color: #808030;">=</span><span style="color: #808030;">=</span> <span style="color: #0000e6;">'1'</span><span style="color: #808030;">:</span>
escuela <span style="color: #808030;">=</span> getsinglevalue<span style="color: #808030;">(</span>aso<span style="color: #808030;">,</span> <span style="color: #0000e6;">'name'</span><span style="color: #808030;">)</span>
graduanio <span style="color: #808030;">=</span> getsinglevalue<span style="color: #808030;">(</span>aso<span style="color: #808030;">,</span> <span style="color: #0000e6;">'year'</span><span style="color: #808030;">)</span>

resultados<span style="color: #808030;">[</span><span style="color: #e34adc;">id</span><span style="color: #808030;">]</span> <span style="color: #808030;">=</span> <span style="color: #800080;">{</span><span style="color: #0000e6;">'sexo'</span><span style="color: #808030;">:</span>getsinglevalue<span style="color: #808030;">(</span>n<span style="color: #808030;">,</span><span style="color: #0000e6;">'gender'</span><span style="color: #808030;">)</span><span style="color: #808030;">,</span>
 <span style="color: #0000e6;">'estado'</span><span style="color: #808030;">:</span>getsinglevalue<span style="color: #808030;">(</span>n<span style="color: #808030;">,</span><span style="color: #0000e6;">'relationship_status'</span><span style="color: #808030;">)</span><span style="color: #808030;">,</span>
<span style="color: #0000e6;">'direccion'</span><span style="color: #808030;">:</span>loc<span style="color: #808030;">,</span> <span style="color: #0000e6;">'escuela'</span><span style="color: #808030;">:</span> escuela<span style="color: #808030;">,</span> <span style="color: #0000e6;">'graduanio'</span><span style="color: #808030;">:</span>graduanio<span style="color: #800080;">}</span>
<span style="font-weight: bold; color: #800000;">return</span> resultados

<span style="font-weight: bold; color: #800000;">def</span> sonamigos<span style="color: #808030;">(</span>self<span style="color: #808030;">,</span> idlist1<span style="color: #808030;">,</span> idlist2<span style="color: #808030;">)</span><span style="color: #808030;">:</span>
id1 <span style="color: #808030;">=</span> <span style="color: #0000e6;">','</span><span style="color: #808030;">.</span>join<span style="color: #808030;">(</span>idlist1<span style="color: #808030;">)</span>
id2 <span style="color: #808030;">=</span> <span style="color: #0000e6;">','</span><span style="color: #808030;">.</span>join<span style="color: #808030;">(</span>idlist2<span style="color: #808030;">)</span>
doc<span style="color: #808030;">=</span> self<span style="color: #808030;">.</span>sendrequest<span style="color: #808030;">(</span><span style="color: #800080;">{</span><span style="color: #0000e6;">'method'</span><span style="color: #808030;">:</span>
<span style="color: #0000e6;">'facebook.friends.areFriends'</span><span style="color: #808030;">,</span>
<span style="color: #0000e6;">'session_key'</span><span style="color: #808030;">:</span>self<span style="color: #808030;">.</span>session_key<span style="color: #808030;">,</span> <span style="color: #0000e6;">'call_id'</span><span style="color: #808030;">:</span>callid<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">,</span>
<span style="color: #0000e6;">'id1'</span><span style="color: #808030;">:</span>id1 <span style="color: #808030;">,</span> <span style="color: #0000e6;">'id2'</span><span style="color: #808030;">:</span> id2<span style="color: #800080;">}</span><span style="color: #808030;">)</span>
resultados <span style="color: #808030;">=</span> <span style="color: #808030;">[</span><span style="color: #808030;">]</span>
<span style="font-weight: bold; color: #800000;">for</span> n <span style="font-weight: bold; color: #800000;">in</span> doc<span style="color: #808030;">.</span>getElementByTagName<span style="color: #808030;">(</span><span style="color: #0000e6;">'result_elt'</span><span style="color: #808030;">)</span><span style="color: #808030;">:</span>
resultados<span style="color: #808030;">.</span>append<span style="color: #808030;">(</span>n<span style="color: #808030;">.</span>firstChild<span style="color: #808030;">.</span>nodeValue<span style="color: #808030;">)</span>
<span style="font-weight: bold; color: #800000;">return</span> resultados</pre>
<p>La función más compleja y larga es la que junta todos los datos para crear un conjunto de datos que funciona con LIBSVM; obtiene una lista de todos los amigos del usuario conectado en esta iteración, y descarga información sobre aquellos, creando una fila para cada par de personas, luego comprueba cada par para ver si son amigos, habría que ver si comparten la aplicación instalada de la plataforma y si comparten un grupo. Función makedataset:</p>
<pre style="color:#000000;background:#ffffff;"><span style="font-weight: bold; color: #800000;">def</span> makedataset<span style="color: #808030;">(</span>self<span style="color: #808030;">)</span><span style="color: #808030;">:</span>
<span style="font-weight: bold; color: #800000;">from</span> advancedclassify <span style="font-weight: bold; color: #800000;">import</span> milesdistance
<span style="color: #696969;">#obtiene toda la info de todos los amigos:</span>
amigos <span style="color: #808030;">=</span> self<span style="color: #808030;">.</span>obtenerAmigos<span style="color: #808030;">(</span><span style="color: #808030;">)</span>
info <span style="color: #808030;">=</span> self<span style="color: #808030;">.</span>obtenerInfo<span style="color: #808030;">(</span>amigos<span style="color: #808030;">)</span>
ids1<span style="color: #808030;">,</span> ids2 <span style="color: #808030;">=</span> <span style="color: #808030;">[</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> <span style="color: #808030;">[</span><span style="color: #808030;">]</span>
filas <span style="color: #808030;">=</span> <span style="color: #808030;">[</span><span style="color: #808030;">]</span>
<span style="color: #696969;">#Bucle anidado para examinar cada par de amigos:</span>
<span style="font-weight: bold; color: #800000;">for</span> i <span style="font-weight: bold; color: #800000;">in</span> <span style="color: #e34adc;">range</span><span style="color: #808030;">(</span><span style="color: #e34adc;">len</span><span style="color: #808030;">(</span>amigos<span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #808030;">:</span>
a1 <span style="color: #808030;">=</span> amigos<span style="color: #808030;">[</span>i<span style="color: #808030;">]</span>
datos1 <span style="color: #808030;">=</span> info<span style="color: #808030;">[</span>a1<span style="color: #808030;">]</span>
<span style="color: #696969;">#Empezar en i+1</span>
<span style="font-weight: bold; color: #800000;">for</span> j <span style="font-weight: bold; color: #800000;">in</span> <span style="color: #e34adc;">range</span><span style="color: #808030;">(</span>i<span style="color: #808030;">+</span><span style="color: #008c00;">1</span><span style="color: #808030;">,</span> <span style="color: #e34adc;">len</span><span style="color: #808030;">(</span>amigos<span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #808030;">:</span>
a2 <span style="color: #808030;">=</span> amigos<span style="color: #808030;">[</span>j<span style="color: #808030;">]</span>
datos2 <span style="color: #808030;">=</span> info<span style="color: #808030;">[</span>a2<span style="color: #808030;">]</span>
ids1<span style="color: #808030;">.</span>append<span style="color: #808030;">(</span>a1<span style="color: #808030;">)</span>
ids2<span style="color: #808030;">.</span>append<span style="color: #808030;">(</span>a2<span style="color: #808030;">)</span>
<span style="color: #696969;">#Generar algunos numeros desde los datos:</span>
<span style="font-weight: bold; color: #800000;">if</span> datos1<span style="color: #808030;">[</span><span style="color: #0000e6;">'escuela'</span><span style="color: #808030;">]</span> <span style="color: #808030;">=</span><span style="color: #808030;">=</span> datos2<span style="color: #808030;">[</span><span style="color: #0000e6;">'escuela'</span><span style="color: #808030;">]</span><span style="color: #808030;">:</span> mismaescuela <span style="color: #808030;">=</span> <span style="color: #008c00;">1</span>
<span style="font-weight: bold; color: #800000;">else</span> <span style="color: #808030;">:</span> mismaescuela <span style="color: #808030;">=</span> <span style="color: #008c00;">0</span>
ciudad <span style="color: #808030;">=</span> <span style="color: #808030;">(</span>datos1<span style="color: #808030;">[</span><span style="color: #0000e6;">'direccion'</span><span style="color: #808030;">]</span><span style="color: #808030;">=</span><span style="color: #808030;">=</span>datos2<span style="color: #808030;">[</span><span style="color: #0000e6;">'direccion'</span><span style="color: #808030;">]</span><span style="color: #808030;">)</span> <span style="font-weight: bold; color: #800000;">and</span> <span style="color: #008c00;">1</span> <span style="font-weight: bold; color: #800000;">or</span> <span style="color: #008c00;">0</span>
relacion <span style="color: #808030;">=</span> <span style="color: #808030;">(</span>datos1<span style="color: #808030;">[</span><span style="color: #0000e6;">'estado'</span><span style="color: #808030;">]</span><span style="color: #808030;">=</span><span style="color: #808030;">=</span>datos2<span style="color: #808030;">[</span><span style="color: #0000e6;">'estado'</span><span style="color: #808030;">]</span><span style="color: #808030;">)</span> <span style="font-weight: bold; color: #800000;">and</span> <span style="color: #008c00;">1</span> <span style="font-weight: bold; color: #800000;">or</span> <span style="color: #008c00;">0</span>
fila <span style="color: #808030;">=</span> <span style="color: #808030;">[</span>ciudad<span style="color: #808030;">,</span><span style="color: #e34adc;">int</span><span style="color: #808030;">(</span>datos1<span style="color: #808030;">[</span><span style="color: #0000e6;">'graduanio'</span><span style="color: #808030;">]</span><span style="color: #808030;">)</span><span style="color: #808030;">,</span>relacion<span style="color: #808030;">,</span><span style="color: #e34adc;">int</span><span style="color: #808030;">(</span>datos2<span style="color: #808030;">[</span><span style="color: #0000e6;">'graduanio'</span><span style="color: #808030;">]</span><span style="color: #808030;">)</span><span style="color: #808030;">,</span>mismaescuela<span style="color: #808030;">]</span>
filas<span style="color: #808030;">.</span>append<span style="color: #808030;">(</span>fila<span style="color: #808030;">)</span>
<span style="color: #696969;">#Invocar al método sonAmigos() en bloques para cada par de personas:</span>
loson <span style="color: #808030;">=</span> <span style="color: #808030;">[</span><span style="color: #808030;">]</span>
<span style="font-weight: bold; color: #800000;">for</span> i <span style="font-weight: bold; color: #800000;">in</span> <span style="color: #e34adc;">range</span><span style="color: #808030;">(</span><span style="color: #008c00;">0</span><span style="color: #808030;">,</span><span style="color: #e34adc;">len</span><span style="color: #808030;">(</span>ids1<span style="color: #808030;">)</span><span style="color: #808030;">,</span><span style="color: #008c00;">30</span><span style="color: #808030;">)</span><span style="color: #808030;">:</span>
j  <span style="color: #808030;">=</span> <span style="color: #e34adc;">min</span><span style="color: #808030;">(</span>i<span style="color: #808030;">+</span><span style="color: #008c00;">20</span><span style="color: #808030;">,</span><span style="color: #e34adc;">len</span><span style="color: #808030;">(</span>ids<span style="color: #808030;">)</span><span style="color: #808030;">)</span>
pa <span style="color: #808030;">=</span> self<span style="color: #808030;">.</span>sonamigos<span style="color: #808030;">(</span>ids1<span style="color: #808030;">[</span>i<span style="color: #808030;">:</span>j<span style="color: #808030;">]</span><span style="color: #808030;">,</span>ids2<span style="color: #808030;">[</span>i<span style="color: #808030;">:</span>j<span style="color: #808030;">]</span><span style="color: #808030;">)</span>
loson <span style="color: #808030;">+</span><span style="color: #808030;">=</span> pa
<span style="font-weight: bold; color: #800000;">return</span> loson<span style="color: #808030;">,</span> filas</pre>
<p>Este método cambia la localización (ciudad) y estado de la relación a números para que puedan ser utilizados directamente por LIBSVM, el último bucle solicita el estatus de amigo de cada par de personas en el bloque, ya que Facebook limita la longitud de una sóla petición.</p>
<p>Para crear un modelo SVM:</p>
<pre style="color:#000020;background:#f6f8ff;"><span style="color: #e34adc;">reload</span><span style="color: #308080;">(</span>facebook<span style="color: #308080;">)</span>
s<span style="color: #308080;">=</span>facebook<span style="color: #308080;">.</span>fbsession<span style="color: #308080;">)</span><span style="color: #308080;">=</span>
answer<span style="color: #308080;">,</span>data<span style="color: #308080;">=</span>s<span style="color: #308080;">.</span>makedataset<span style="color: #308080;">(</span><span style="color: #308080;">)</span></pre>
<p>Deberíamos poder ejecutar los métodos sym directamente:</p>
<pre style="color:#000020;background:#f6f8ff;">param <span style="color: #308080;">=</span> svm_parametrer <span style="color: #308080;">(</span>kernel_type<span style="color: #308080;">=</span>RBF<span style="color: #308080;">)</span>
prob <span style="color: #308080;">=</span> svm_problem<span style="color: #308080;">(</span>answers<span style="color: #308080;">,</span>data<span style="color: #308080;">)</span>
m<span style="color: #308080;">=</span>svm_model<span style="color: #308080;">(</span>prob<span style="color: #308080;">,</span>param<span style="color: #308080;">)</span>
m<span style="color: #308080;">.</span>predict<span style="color: #308080;">(</span><span style="color: #308080;">[</span><span style="color: #008c00;">1</span><span style="color: #308080;">,</span><span style="color: #008c00;">2003</span><span style="color: #308080;">,</span><span style="color: #008c00;">1</span><span style="color: #308080;">,</span><span style="color: #008c00;">2003</span><span style="color: #308080;">,</span><span style="color: #008c00;">1</span><span style="color: #308080;">]</span><span style="color: #308080;">)</span> <span style="color: #595979;">#dos personas de la misma ciudad ,año y escuela</span>
m<span style="color: #308080;">.</span>predict<span style="color: #308080;">(</span><span style="color: #308080;">[</span><span style="color: #008c00;">1</span><span style="color: #308080;">,</span><span style="color: #008c00;">2003</span><span style="color: #308080;">,</span><span style="color: #008c00;">1</span><span style="color: #308080;">,</span><span style="color: #008c00;">1996</span><span style="color: #308080;">,</span><span style="color: #008c00;">0</span><span style="color: #308080;">]</span><span style="color: #308080;">)</span> <span style="color: #595979;">#diferentes años ,diferentes escuelas</span></pre>
<p>Por supuesto los resultados variarán, el modelo determinará que las personas que fueron al mismo colegio o eran de la misma ciudad ,probablemente sean amigos , dos personas de la misma universidad, o de las misma asignaturas, posiblemente estaría bien que fueran amigos para compartir conocimientos y ayudarse mutuamente.</p>
]]></content:encoded>
			<wfw:commentRss>http://pie.zenphp.es/articulos/233/clasificacion-avanzada-metodos-kernel-y-svm-un-ejemplo-practico/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
