<?xml version="1.0" encoding="iso-8859-1"?>
<rdf:RDF 	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
			xmlns:dc="http://purl.org/dc/elements/1.1/"
			xmlns="http://purl.org/rss/1.0/">
	
	<channel rdf:about="http://openfactory.opendigital.cl/">
		<title>Openfactory, blog de Francisco Cifuentes</title>
		<link>http://openfactory.opendigital.cl/</link>
		<description>Últimas entradas en el blog de Francisco Cifuentes</description>
		<image rdf:resource="http://openfactory.opendigital.cl/fileadmin/template/img/rss.png" />
		<items>
			<rdf:Seq>
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2010/08/13/sioc-comunidades-en-linea-semanticamente-interenlazadas/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2010/07/22/linked-data-patterns-patrones-de-identificacion/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2010/07/18/mis-patrones-de-diseno-preferidos-parte-1/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2010/07/13/estudio-de-la-evolucion-tematica-en-twitter-asociada-al-terremoto-de-chile-del-27-de-febrero-de-2010/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2010/07/08/generar-keywords-automaticas-usando-el-api-yahoo-terms-extraction/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2010/05/01/consideraciones-de-seguridad-para-servidores-web/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2009/11/27/comparativa-plataformas-java-y-net/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2009/06/15/google-latitude-una-nueva-caracteristica-de-google-maps/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2009/06/09/resumen-de-comandos-linuxunix/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2009/06/09/excelentes-imagenes-vectoriales-gratis/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2009/06/09/forma-facil-de-comprimir-carpeta-usando-php/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2009/05/30/favicon-que-es-y-una-herramienta-genial/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2009/05/25/migrar-noticias-de-typo3-a-wordpress/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2009/05/18/forma-simple-de-remover-xss-para-una-extension-typo3/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2009/05/08/gliffy-una-herramienta-para-diagramar/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2009/05/07/typo3-tips-extensiones-desconocidas-pero-recomendadas-backend/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2009/04/19/megazine-3-una-alternativa-free-a-pageflip/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2008/12/08/barra-traductora-wordchamp-para-firefox/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2008/12/08/edita-tus-documentos-odf-en-microsoft-office/" />
				<rdf:li resource="http://openfactory.opendigital.cl/archivo/fecha/2008/12/05/de-vuelta-al-blog-y-utorrent-para-mac/" />
			</rdf:Seq>
		</items>
	</channel>
	<image rdf:about="http://openfactory.opendigital.cl/fileadmin/template/img/rss.png">
		<title>Openfactory, blog de Francisco Cifuentes</title>
		<link>http://openfactory.opendigital.cl/</link>
		<url>http://openfactory.opendigital.cl/fileadmin/template/img/rss.png</url>
	</image>
	
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2010/08/13/sioc-comunidades-en-linea-semanticamente-interenlazadas/">
		<title>SIOC - Comunidades en línea semanticamente interenlazadas</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2010/08/13/sioc-comunidades-en-linea-semanticamente-interenlazadas/</link>
		<description> Leyendo sobre aplicaciones de la Web Semántica he encontrado el proyecto SIOC&nbsp;(Semantically-Interlinked Online Communities) o  Comunidades en línea semanticamente interenlazadas. 
 El objetivo principal del proyecto es entregar una ontología en OWL para representar datos de la Web Social (Redes sociales, blogs,Wikis, foros, etc.)  en RDF con el fin de permitir la interoperabilidad (Sitios desconectados en la Web normalmente requieren ontologías para interoperar) y el tratamiento de la  información de diversas fuentes en la Web a nivel semántico (principalmente Web Social) y habilitar lo que llaman SSIS o Espacios de Información Social Semántica (Social Semantics Information Spaces). 
Actualmente la ontología está publicada en la url http://rdfs.org/sioc/spec/, cuenta con una cantidad no despreciable de APIs para desarrollar y trabajar con datos en RDF,  dentro de los cuales se encuentran por ejemplo apis para PHP, Java, perl y algunos exportadores para CMS's como drupal, wordpress, phpBB o Dotclear. 
Me parece tremendamente interesante el publicar datos de la Web Social en RDF ya que permitirá en un futuro muy cercano a los buscadores realizar búsquedas  altamente precisas e incluso realizar conclusiones y tareas complejas utilizando la enorme cantidad de datos disponibles en la Web.
Quienes estén interesados en este tema, den un vistazo al enlace que les dejo abajo donde se muestran algunas de las presentaciones del proyecto.</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2010/07/22/linked-data-patterns-patrones-de-identificacion/">
		<title> Linked Data Patterns – Patrones de Identificación</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2010/07/22/linked-data-patterns-patrones-de-identificacion/</link>
		<description>Realizando una búsqueda en la Web que me permita profundizar aun más sobre el tema de los Linked Data (aparecido recién en 2006) o  Datos Vinculados (mantendré llamándolos Linked Data para que sea más fácil la adopción del término), he descubierto el blog de Ian Davis un libro sobre Patrones de Linked Data, está sobre licencia creative commons 2.0 por lo que me voy a permitir hablar un poco sobre él.
Qué es Linked Data
 Partiendo por lo básico comenzaré por aclarar qué es Linked Data. Linked Data, idea de Tim Berners-Lee,  es una forma de publicar datos utilizando HTTP, RDF y una URI (No una URL, la diferencia fundamental entre URI y URL es que URI permite además de identificar un recurso, identificar fragmento específico dentro de una dirección, por ejemplo http://www.ejemplo.com/index.html#fragmento, a diferencia de una URL que solo permitiría http://www.ejemplo.com/index.html). La idea central de los Linked Data se basa en cuatro principios fundamentales: 
 Utilizar URIs para identificar recursos publicados en la Web 	Tener publicados estos datos en una URI basada en http con el fin de que puedan ser localizados y consultados. 	Proporcionar información útil, detallada o extra acerca del recurso cuando se acceda a esta URI basada en http. 	Incluir enlaces a otras URI’s relacionadas con los datos contenidos en el recurso de forma que se potencie el descubrimiento de la información sobre la Web. 
 El fin último de los Linked Data y de toda la información en formato RDF es permitir a aplicaciones y agentes de software la realización de tareas complejas como búsquedas semánticas, deducciones e inferencias sobre datos publicados en Web. 
 Actualmente existen muchos grupos de Linked Data publicados en la Web (empezando por la DBPedia por ejemplo), para hacerse una idea de su evolución Richard Cyganiak ha generado unos diagramas con la evolución histórica de fuentes de datos vinculados. 
 Catálogo de Patrones de Linked Data
 El libro, el cual por los autores es llamado catálogo de patrones comienza por justificar el por qué un catálogo de patrones. Sus razones (con las cuales estoy absolutamente de acuerdo, ¡era que no!) las expongo: 
 Porque los patrones de diseño presentan una serie de ventajas: 
 	Tienen una estructura bien definida, que centra su foco en los conocimientos esenciales que se están comunicando. 	Fomentan la discusión con enfoques complementarios y relacionados a la hora de tomar una decisión de diseño.  	Proporcionan un nombre para una decisión de diseño o solución. Esto permite construir un léxico que fomenta una comunicación más clara entre profesionales. 
 Los patrones del catálogo están distribuidos en cuatro capítulos: 
 Patrones de Identificación – Identifier Patterns (Cap2) 	Patrones de Modelado – Modelling Patterns (Cap3) 	Patrones de Publicación – Publishing Patterns (Cap4) 	Patrones de Aplicación – Application Patterns (Cap5) 
 Los ejemplos del libro están basados en la sintaxis Turtle de RDF (espero luego darme el trabajo de publicar un pequeño tutorial de Turtle RDF para dar más contexto a quienes recién están empezando ), la cual es mucho más simple de leer que la más conocida RDF-XML y además es compatible con consultas SPARQL
 Bien, ahora comenzaré a contarles acerca de cada uno de los patrones en el libro. En esta entrada, dada la extensión del tema, solo hablaré sobre los patrones de Identificación (Capítulo 2 del libro), luego prometo armar 3 entradas más en el blog sobre los demás capítulos (debo hacerlo ya que mi tesis va por este lado).  Como todo patrón, éste debe dar solución a un problema de diseño. Cada uno lo expongo a continuación. 
 Patrones de Identificación
Estos patrones están relacionados con la generación, asignación y creación de URI’s para Linked Data. Los patrones identificados dentro de esta temática son los siguientes:  
URI’s Jerárquicas (Hierarchical URIs)  
Este patrón se puede aplicar cuando existe una colección de recursos que pueden formar una jerarquía natural. Por ejemplo los capítulos de un libro o departamentos dentro de una organización.   El patrón debería tener la siguiente forma en Turtle:  
:tipoElemento /:elemento :/tipoSubElemento :/ :subelemento  
Ejemplo:  
/libros/12345/capitulo/1 
En este caso la URI reflejaría de manera natural la colección de todos los capítulos de un libro en particular.   Entonces finalmente utilizando el patrón de URI’s Jerárquicas, una solución final podría ser:  
http://ejemplo.com/libros/123/capitulo/1  
Claves Literales (Literal Keys)  
Este patrón se puede aplicar cuando es necesario publicar un identificador para un fin propio de nuestro uso, es decir no global, para un recurso RDF. El problema que surge al respecto es qué hacer con el identificador global.  
Este patrón propone crear una propiedad personalizada que sea sub-clase de la propiedad de identificación del recurso, tal que permita relacionar el valor existente de identificación con el recurso además del nuevo valor de clave. 
Claves Naturales (Natural Keys)  
Este patrón se puede aplicar cuando se necesita crear una URI única para un conjunto de recursos que por si solos ya tienen una URI única.
 La solución propuesta para este caso la describen al nivel de algo tan simple como concatenar las claves únicas existentes con una base de URI adecuada. Para utilizar las URI existentes y poder concatenarlas puede ser útil también codificar esta última.  
URI’s Diseñadas (Patterned URIs)  
Este patrón se aplica (y es casi una base para los demás patrones de identificación) para generar URIs más limpias y claras. La idea es crear URIs que sigan un patrón común al nivel de poder ser construidas mediante algoritmos. La idea principal es poder crear nuevas URIs en el conjunto de datos basándose en el conocimiento de solo un ejemplo de URI. 
La implementación del ejemplo me recuerda en lo personal al funcionamiento de las URIs al usar RESTful.   Un ejemplo de este patrón se puede definir si una aplicación va a publicar datos sobre recursos de tipo libro (rdf:type :Libro). En este caso, las URIs a construir para identificar a cada libro tendrían la forma:  
/books/1234  
Donde /libros es la parte de la base de la URI que indica que se trata de una colección de libros y el 1234 identifica a un libro en particular.  
URI’s Proxy (Proxy URIs)  
Este patrón se utiliza cuando recursos de terceros no poseen identificadores estándar por si solos, aunque si tengan un identificador como conjunto. Por ejemplo la ISO no podrá tener asignadas URIs únicas a cada uno de los recursos en su conjunto de datos ya que muchos de estos aparecen combinados en diferentes contextos. 
En este caso se propone como solución tratar los recursos de terceros de forma idéntica a los recursos propios y asignarles URI dentro del dominio propio. 
Claves Compartidas (Shared Keys)  
Este patrón es utilizado para simplificar la interconexión de datos. La idea es aplicar el patrón de claves naturales y de URIs Diseñadas de forma que usando diferentes bases de URI pero con iguales identificadores se acceda a información del mismo recurso desde diferentes diferentes URIs.  
Un ejemplo que se expone en el libro es el siguiente. La BBC ha creado URIs para acceder a información de artista que son algorítmicamente relacionadas a URIs presentes en MusicBrainz usando una clave compartida común. Los identificadores creados por MusicBrainz son construidos a partir de un ID definido por ellos.   Las URIs para el mismo artista en los diferentes sitios serían las siguientes:  
BBC  
http://www.bbc.co.uk/music/artists/a74b1b7f-71a5-4011-9441-d0b5e4122711 
MusicBrainz  
http://musicbrainz.org/artist/a74b1b7f-71a5-4011-9441-d0b5e4122711  
Bien, esto es lo que les cuento por ahora, espero luego agregar los patrones de modelado, publicación y aplicación que dejo pendientes.</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2010/07/18/mis-patrones-de-diseno-preferidos-parte-1/">
		<title>Mis patrones de diseño preferidos: Parte 1</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2010/07/18/mis-patrones-de-diseno-preferidos-parte-1/</link>
		<description>Haciendo un rápido balance de mi primer año en el Máster en Ingeniería Web en la Uniovi, puedo decir que he aprendido mucho, y cuando digo mucho creo que es poco. El enfoque duro de ingeniería de software, el nivel de exigencia y la calidad de los profesores encaja excelente con quienes tomamos a la informática como algo que es mucho más que el trabajo o una diversión, como algo que nos motiva día a día. En este post, que he decidido dividir en tres partes dada su extensión, voy a hablar sobre los patrones de diseño que más me han gustado durante los primeros cursos del Máster. El primer patrón del cual voy a hablar, y sobre el cual trata este post es el patrón Command ( del GOF). 
El Patrón Command
Este patrón de diseño es mi favorito, a grandes rasgos permite encapsular cada operación de negocios en lo que se define un “comando” ejecutado por un “ejecutor” que supervisará la correcta ejecución del comando. Gracias a este patrón, es posible en muchos casos que las aplicaciones puedan implementar la característica “deshacer”, ya explicaré el por qué. Revisando en profundidad los componentes del patrón se deben definir los siguientes: 
Comando(Command): Un comando o Command, es una clase que realiza una operación de negocio específica, por ejemplo en un sistema de gestión de ventas, un comando podría ser RealizarVentaCommand, el cual ejecutaría solo una operación de negocio de la aplicación. Esta clase RealizarVentaCommand recibiría como parámetros de la clase todos los atributos necesarios para llevar a cabo la tarea. Ahora, para decir que una clase es un comando, debe cumplir una Interface que nosotros mismos definiremos. Por convención propia la llamaremos ICommand, su particularidad es que posee un método llamado execute sin parámetros y retorna Object. Ahora, si queremos nutrir al comando de alguna lógica extra usando por ejemplo un template method, podemos usar una clase abstracta AbstractCommand con algunas implementaciones ya escritas (por ejemplo algún tipo de Log que también podría ser inyectado). Por último, si queremos que nuestro comando se pueda deshacer, nuestra interface o clase abstracta debería definir el método undo además del execute, el cual en su implementación defina los pasos necesarios para dejar el comando sin efecto.Ejecutor de comandos (CommandExecutor): Esta clase será la encargada de ejecutar los comandos, en el fondo lo que hará será que, dado un objeto que cumpla la interfaz ICommand recibido como parámetro, procederá a ejecutar el método execute definido en el comando (por polimorfismo). De esta forma el proceso de ejecución de los comandos estará supervisado por el ejecutor, permitiéndole gestionar errores, realizar rollback de ser necesario o ejecutar operaciones de auditoría u otras llamadas que sean pertinentes. El ejecutor de comandos entonces debería ser una única instancia siempre presente en el sistema (osea un síngleton) y siempre ejecutar comandos pasados como parámetro.  Si se requiere implementar la característica “deshacer” se debería generar un mecanismo de acumulación de comandos ejecutados, esto es, por ejemplo dos pilas, una de comandos ejecutados y otra de comandos deshechos, o una lista que se pueda recorrer, en fin, para esto hay varias posibilidades dependiendo del programador. Para que el deshacer funcione correcto cada comando debería implementar la lógica necesaria para deshacer la acción en el método undo definido por la interfaz ICommand.
A nivel general, el diagrama explicativo del patrón es el siguiente:


Voy a dejar un ejemplo de implementación del patrón Command, el código lo implementé como parte de un ejercicio para la asignatura de Arquitectura del máster; a nivel básico este programa es una calculadora que permite sumar, restar, multiplicar y dividir enteros y reales. Para su implementación además del patrón Command, usé el patrón Template Method, Factory Method y el ya tan conocido Singleton. El código está escrito en Java, no está muy comentado, pero está de muy fácil lectura. Si tienen dudas sobre la implementación no duden en comentar.
Aclaro, me di recién cuenta, una vez ya publicada la entrada que el nombre está mal, debería ser:
Mis patrones de diseño favoritos, para evitar malas interpretaciones. =)</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2010/07/13/estudio-de-la-evolucion-tematica-en-twitter-asociada-al-terremoto-de-chile-del-27-de-febrero-de-2010/">
		<title>Estudio de la evolución temática en Twitter asociada al terremoto de Chile del 27 de febrero de 2010</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2010/07/13/estudio-de-la-evolucion-tematica-en-twitter-asociada-al-terremoto-de-chile-del-27-de-febrero-de-2010/</link>
		<description>A lo largo del máster he desarrollado muchos trabajos, y este es uno de los que más creo que les puede interesar a más de alguno de mis compatriotas (Gracias Dani Gayo por toda tu ayuda).Es Twitter hoy en día uno de los principales canales de difusión de contenidos a nivel mundial, y en Chile particularmente uno de los más utilizados.Les dejo tal como lo enuncia el título, un artículo que escribí para la asignatura de Web Semántica (la del lado obscuro por así llamarlo) en donde se muestra la evolución temática que ocurrió los días posteriores sobre Twitter al analizar la información marcada por algunas hashtags (#terremotochile y #chile). Les dejo el abstract para que lo miren, si les interesa lo pueden descargar al final de la página para leerlo completo. En el apartado siguiente, se describe el método utilizado en profundidad realizando una descripción de cada uno de los pasos efectuados para la obtención de datos analizables. La tercera parte del trabajo muestra los resultados del análisis y explica el por qué de la información obtenida. Por último, se exponen las conclusiones del presente trabajo.
Resúmen
En este artículo se expone un método de extracción de términos para un conjunto de mensajes de microblogging asociados al reciente terremoto de Chile. En él se utiliza la técnica Likelihood Radio Test - desde ahora LL - y otras técnicas que se describen en a lo largo del artículo. El artículo está formado por la siguiente estructura: Primero se realiza una introducción en donde se exponen de manera sencilla los conceptos previos y el contexto del problema sobre el cual se trabaja. 
Al final del artículo se agrega también una tabla con los conceptos más relevantes y las puntuaciones obtenidas aplicando LL.</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2010/07/08/generar-keywords-automaticas-usando-el-api-yahoo-terms-extraction/">
		<title>Generar keywords automáticas  usando el API Yahoo Terms Extraction</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2010/07/08/generar-keywords-automaticas-usando-el-api-yahoo-terms-extraction/</link>
		<description>Muchas veces nos hemos encontrado con la problemática de definir las palabras claves de un texto que hemos escrito, lo cual por muy fácil que parezca no siempre se realiza ni tampoco correctamente. De hecho, por ejemplo en los blogs, muchos blogueros no nos damos el trabajo de escribir palabras clave para cada entrada en el blog, lo cual de cierta forma nos hace perder ápices de lo que máquinas podrían concebir como “riqueza semántica” y por qué no, también los humanos.
Para estos casos (y para muchos otros con gran probabilidad de ser más importantes) es que Yahoo ha definido hace ya bastante tiempo un conjunto de APIs que permiten realizar extracción de términos clave dado un texto. Este servicio, denominado “Yahoo Terms Extraction” (desde ahora YTE), permite realizar este trabajo de forma limpia y rápida utilizando PHP, CURL y REST.
Utilización
YTE permite uso comercial y no comercial (ver condiciones), en este último caso se restringen las consultas a solo 5.000 diarias por IP, si se desea más información al respecto visitar este enlace.
Ejemplo de uso Yahoo Terms Extraction
Para probar esta potente API se ha desarrollado un pequeño ejemplo en donde se supone tenemos un blog al cual, para cada entrada, no se le han definido las palabras clave o keywords. La solución a este caso entonces será leer desde la base de dato cada registro de la tabla de “entradas”, tomar el texto de la entrada, calcular sus keywords y luego escribir el campo de keywords en la tabla de entradas.
Para utilizar esta aplicación es necesario obtener una YahooAppId desde aquí.
Para realizar esta labor se ha programado una clase llamada “KeywordsExtractor”, la cual es un Singleton que encapsula la llamada a YTE y devuelve un arreglo con los términos claves para un texto definido como parámetro. El código de la clase es el siguiente:

Para completar esta pequeña aplicación he implementado de manera rápida la rutina que lee y graba en la base de datos las keywords del texto de la entrada; el código es el siguiente:

Si alguien desea obtener el código lo dejo a continuación. ¿qué otra aplicación harías tú?</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2010/05/01/consideraciones-de-seguridad-para-servidores-web/">
		<title>Consideraciones de seguridad para servidores Web</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2010/05/01/consideraciones-de-seguridad-para-servidores-web/</link>
		<description>Un servidor Web desprotegido es un objetivo de ataque muy codiciado por hackers y personas que realizan acciones ilegales como almacenamiento de material pedrasta, racista y otro tipo de material prohibido, por gente que envía spam o realiza ataques XSS o XSRF; esto es así dado que los servidores normalmente poseen gran capacidad de cómputo, alta capacidad de almacenamiento y buen ancho de banda. Por esto mismo he querido publicar aquí algunas de las medidas de seguridad básicas para mentener en nuestros servidores Web y no caer tan facilmente en las manos de algún hacker sin experiencia. Aquí les van:
Usar siempre software en su última versión release (estable): Esto ya que las últimas versiones traen normalmente resueltos problemas de seguridad detectados que podrían ser usados en contra de un servidor.Instalar solo los servicios necesarios que se van a utilizar: (por ejemplo Servidor Web o Servidor de base de datos), nunca instalar servicios que no se utilizarán como servidores de correo innecesarios y servicios de compartir de archivos entre otros.Cambiar puertos por defecto: a las aplicaciones comunes que se puedan considerar vulnerables (Ejemplo MySQL).Cerrar todos los puertos del servidor que no sean estrictamente necesarios: normalmente para un servidor Web se requiere el puerto 80, el puerto de correo a utilizar (solo de requerirse un servicio de correo) y algún puerto para conexión remota al servidor como el 22 para ssh, el cual se recomienda cambiar.Instalar un firewall: si se usa linux iptables está perfecto, si se usa windows la versión gratuita de Zone Alarm es una buena alternativaNo instalar los siguientes servicios en los servidores Web:FingerSNMPSi se desea instalar un FTP, en su lugar usar SFTP.Mantener constantemente actualizado el software instalado (Incluido el Sistema Operativo): de esta forma se tienen siempre las versiones de las aplicaciones que tienen corregidos fallos de seguridad.No permitir en los accesos SSH el ingreso del usuario Root: solo se podrá acceder a él mediante algún usuario previamente autenticado ejecutando las instrucciones &quot;su&quot; o &quot;sudo -s&quot;.Usar siempre contraseñas seguras: con más de 10 caracteres que incluyan letras mayúsculas, letras minúsculas, símbolos y números.No crear archivos PHPINFO públicos, ni instalar phpmyadmin en servidores.Si se usa Tomcat, borrar los archivos de administración por defecto.Crear páginas de error genérico que no entreguen información sobre el servidor de aplicaciones.Ocultar los errores y excepciones de las aplicaciones para los diferentes lenguajes de programación usados, en su lugar enviarlos siempre a los archivos de Log.No dejar público contenido que no sea estrictamente necesario, por ejemplo dejar respaldos de sitios, dump de bases de datos, archivos con información sensible u otros.
Esas son algunas de las mías, ¿qué consideración de seguridad propondrías tu?</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2009/11/27/comparativa-plataformas-java-y-net/">
		<title>Comparativa plataformas Java y .NET</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2009/11/27/comparativa-plataformas-java-y-net/</link>
		<description>A continuación les presento una comparación sobre aspectos generales de las plataformas Java y .NET, realizaré un paralelo entre las características consideradas fundamentales. La idea principal del post es mostrar las potencialidades básicas de cada una de estas plataformas, visualizando ventajas y desventajas desde una perspectiva exclusivamente técnica sin generar conclusiones que puedan evidenciar preferencias de algún tipo. Cabe señalar que, este trabajo fue realizado como uno de los tantos entregados para el Máster en Ingeniería Web.
Reseña histórica
Plataforma .NET
La plataforma .NET nace el año 2000 como un proyecto de Microsoft Corp. Con la idea de crear una plataforma de desarrollo de software que permitiera unificar todos los productos Microsoft, desde las herramientas de desarrollo hasta el sistema operativo. La idea central de .NET en términos tecnológicos es generar software independiente de la plataforma de hardware y del sistema operativo, poniendo especial énfasis en el desarrollo de aplicaciones distribuidas sobre redes y la interoperabilidad de lenguajes, cada uno asociado a diferentes dominios de resolución de problemas.
  La primera versión estable de .NET (1.0 RTM) fue lanzada el 5 de enero de 2002 y la última versión estable es la 3.5.30729.1 del 11 de Agosto de 2008.
Plataforma Java
La plataforma Java nace en el año 1991 como un proyecto de Sun Microsystem bajo la dirección de James Golsing llamado The Green Project, orientado a ser un lenguaje para ser utilizado en primera instancia en sintonizadores de televisión (set-top-box). El nombre del lenguaje cambió desde Oak a Green y finalmente a Java, esto dado que los nombres anteriores ya eran marcas registradas.
  El objetivo principal de la plataforma era lograr la implementación de un entorno de ejecución para diferentes sistemas operativos en donde podría correr un mismo binario, agregando que los programas fueran escritos con una sintaxis similar a la de C++.
  El primer lanzamiento público del kit de desarrollo de Java (Java Development Kit 1.0) fue el 23 de Enero de 1996, seguido de 8 versiones hasta la fecha, siendo la más actual la versión 1.6.0_16-b01 liberada el 31 de agosto de 2009.
Características generales
        Característica     Plataforma .NET     Plataforma Java           Compañía propietaria     Microsoft Corp.     Sun Microsystems           Versión estable     3.5.30729.1 (11-Agosto-2008)     1.6.0_16-b01 (31 de   agosto de 2009)            Lenguajes de programación compatibles     C#, Visual Basic .NET, ASP.NET, Turbo   Delphi for .NET, C++, C, Java, J#, Perl, Pitón, Fortran, Cobol.NET, ADA, APL, Haskell, Javascript, Lisp,   Prolog, Smalltalk y muchos otros, que deben cumplir con las reglas de CLS   (Common Language Specification)     Java           Paradigma de programación     Orientado a objetos, Declarativo,   funcional     Orientado a objetos de forma no   estricta, no permite herencia múltiple ni sobrecarga de operadores           Premisas de la tecnología     Disponer de la tecnología apropiada   para un problema específico.       Distribuir aplicaciones en forma de   servicios.       Comunicar y combinar aplicaciones   independiente del modelo de programación, plataforma y lenguaje.       Integrar todos los productos Microsoft,   desde herramientas de desarrollo al sistema operativo.      “Write Once, Run Anyware”        Escríbelo una vez,   ejecútalo donde sea.       Permitir su la ejecución de un mismo   programa compilado en múltiples sistemas operativos.       Utilizar POO       Incluir soporte para trabajo en red.       Trabajar de forma segura en sistemas remotos.       Desarrollar aplicaciones distribuidas.           Entorno de ejecución     .NET Framework (Entorno común de   ejecución para lenguajes - Common   Language Runtime CLR, Base Class Library BCL, Common Language   Specification CLS )     Java Runtime Environment - JRE (Máquina   virtual de Java – Java Virtual Machine JVM y Biblioteca de clases API)           Implementaciones de la máquina abstracta     CLR, MONO, DotGNU Portable .NET, SSCLI     JVM, KVM           Formato del código compilado     Compilador JIT del CLR ejecuta código   IL (MSIL) (bytecode)     Compilador JIT de la JVM ejecuta   .class, código intermedio (bytecode)            Compilador JIT (Just In Time)     Sí     Sí           Kits de desarrollo     Distribuidos en múltiples lenguajes de   programación, permite crear cualquier tipo de aplicación.     J2SE (aplicaciones de escritorio), J2EE   (desarrollo empresarial), J2ME (dispositivos con recursos limitados )           Entornos de desarrollo     Visual Studio .NET     Eclipse, Netbeans, Visual Studio .NET y   muchos otros           Licenciamiento     Comercial y Educacional     GNU           Implementaciones   más relevantes en el API            Interacción con dispositivos periféricos       Manejo de datos       Gestión de memoria       Transmisión por XML y TCP/IP       Manejador de excepciones       ASP.NET       Sistema de ventanas       Despliegue gráfico GDI+       Seguridad e interacción con otras aplicaciones       Cadenas de caracteres y expresiones regulares       Colecciones       Windows API, API Win32       Reflexión       Bibliotecas Específicas:                           System           System.Data           System.WinForms           System.Drawing           System.XML           System.Web           System.Collections           System.IO           System.Reflection           Etc.                                 JDBC (Conexión con bases de datos)       RMI (Invocación remota de métodos)       Reflexión       Asertos       Expresiones Regulares       Manejo de Excepciones       Logging       Parser XML       Plantillas       Colecciones       Metadatos       Enumeraciones       Autoboxing / unboxing       Servicios Web       JavaBeans       Sockets       Transacciones       Servicios de nombre       GUI: AWT, SWT,        Autenticación       Persistencia de Objetos       Gestión de memoria                Acceso a   características de bajo nivel     Directamente mediante código no   administrado     Utilizando JNI (Java Native Interface)           Posee un estándar   de desarrollo para componentes     No, solo ofrece recomendaciones     Posee un estándar de desarrollo para   componentes de acceso a datos y reglas de negocio.           Tipos de   estructuras que es posible crear      Clases, interfaces, struct y enum     Clases, interfaces, enum           Niveles de   protección     Public, private, internal, protected.     Public, private, protected y package           Elementos que se   pueden definir dentro de una clase     Atributos, métodos, clases internas,   propiedades, eventos y delegates     Atributos, métodos y clases internas           Herencia     No hay herencia múltiple de   implementación, solo a través de interfaces.     No hay herencia múltiple de   implementación, solo a través de interfaces.           Polimorfismo     Es posible redefinir métodos, excepto   cuando se usa la palabra sealed.     Es posible redefinir métodos, excepto   cuando se usa la palabra final.           Sobrecarga     Se permite sobrecargar operadores.     No se permite la sobrecarga de   operadores.           Encapsulamiento   de atributos     Es posible acceder a los atributos a   través de propiedades definidas mediante los métodos set y get.     Se pueden implementar los métodos set y   get para el acceso y escritura de los atributos.           Paquetes y   espacios de nombre     Se utilizan los espacios de nombre namespaces.     Se utilizan paquetes packages.           Paso de   parámetros a un método     Se pueden pasar parámetros por valor,   referencia y número de parámetros variable.     Se pueden pasar parámetros solo por   valor    
Ventajas y desventajas de cada plataforma
             Ventajas     Desventajas           .NET     Entorno de desarrollo altamente   productivo       Posibilidad de utilización de una   amplia gama de lenguajes de programación       C# es un lenguaje muy completo y con   excelentes características     Entorno de desarrollo no disponible en   otras plataformas       Implementaciones del .NET framework aun   no son totalmente suficientes           Java     Tecnología altamente madura       Muchos entornos de desarrollo   alternativos       Existe una implementación de la JRE   para casi cualquier plataforma     Permite solo la utilización de Java   como lenguaje de programación       No ofrece un entorno de desarrollo   altamente productivo    
Documentos consultados
   The Java Language Specification, Second Edition,      Addison-Wesley, ISBN 0-201-31008-2   MSDN Library, Visual Studio 2008   Presentaciones sobre plataformas POO, Máster en Ingeniería      Web   http://es.wikipedia.org/wiki/Microsoft_.NET   http://es.wikipedia.org/wiki/Plataforma_Java   http://es.wikipedia.org/wiki/Java_%28Sun%29   http://www.sun.com/software/opensource/java/ </description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2009/06/15/google-latitude-una-nueva-caracteristica-de-google-maps/">
		<title>Google Latitude, una nueva característica de Google Maps</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2009/06/15/google-latitude-una-nueva-caracteristica-de-google-maps/</link>
		<description>Google Latitude es una nueva &quot;aplicación&quot; que se cuelga del ya famoso Google Maps, y uno de los nuevos chiches de los chicos creativos de Google. Latitude permite actualizar el punto geográfico en el que me encuentro las veces que quiera. Para hacerlo, es posible utilizar tanto un PC como un Smartphone capaz de correr la aplicación de georeferenciación. Al parecer, el método de funcionamiento desde un teléfono móvil es mediante la verificación de la celda celular (alcance de la antena) a la cual se está conectado.Además de permitir agregar la ubicación, permite comentar el estado (utilizando el comentario de GTalk ), y lo más potente, ver las posiciones de nuestros contactos que tengan activo el servicio y hayan compartido su posición con nosotros. Como siempre, el nivel de usabilidad de esta aplicación es bastante alto, de hecho sin saber de qué se trataba yo indiqué mi posición y ahora he agregado a un montón de amigos.¿Qué les parece?</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2009/06/09/resumen-de-comandos-linuxunix/">
		<title>Resumen de comandos Linux/Unix</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2009/06/09/resumen-de-comandos-linuxunix/</link>
		<description>En nuestro trabajo cotidiano es muy común que deseemos realizar alguna operación por consola que no conocemos, para estos casos en el siguiente link les dejo la solución a esta problemática, una enorme tabla de comandos con descripciones.
 http://www.pixelbeat.org/cmdline_es_AR.html
¿Quién conoce alguno más que sea interesante?</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2009/06/09/excelentes-imagenes-vectoriales-gratis/">
		<title>Excelentes imágenes vectoriales Gratis!!</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2009/06/09/excelentes-imagenes-vectoriales-gratis/</link>
		<description>Este sitio está re bueno, contiene muchísimos cliparts vectoriales en formato PNG gratuitos de libre uso. Revisen:
http://www.clker.com/
Paradójicamente la página no tiene un logotipo :S.</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2009/06/09/forma-facil-de-comprimir-carpeta-usando-php/">
		<title>Forma fácil de comprimir carpeta usando PHP</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2009/06/09/forma-facil-de-comprimir-carpeta-usando-php/</link>
		<description>Esta es una forma fácil, y por qué no decirlo, curiosa de comprimir una carpeta usando PHP y la función exec();. Lo interesante es que dentro de una sola instrucción ejecuto muchos comandos.
(Esto es efecto de la desesperación al no haber encontrado una biblioteca PHP que funcionara...jejej)
</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2009/05/30/favicon-que-es-y-una-herramienta-genial/">
		<title>Favicon: qué es y una herramienta genial</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2009/05/30/favicon-que-es-y-una-herramienta-genial/</link>
		<description>Siempre que entramos a una página Web, el navegador nos muestra unas pequeñas imágenes al lado de la barra de direcciones y en la pestaña en que estamos posicionados (de estar utilizando un navegador basado en pestañas), esto que les digo, luce como lo siguiente:

Bien, esta pequeña imágen, se llama favicon, y su objetivo es indicarle al usuario de manera visual el logotipo de la página en que está posicionado, de esta forma, si se está utilizando por ejemplo un navegador con pestañas, no es necesario leer el título de las páginas puesto en las pestañas, sinó que simplemente nuestra hábil capacidad visual identificará el ícono apropiado para dar el clic.
A la hora de implementar, un favicon, debe tener las siguientes características:
Dimensiones: 16 x 16 píxelesTener extensión, .ico, por lo cual se puede llamar favicon.icoNo necesariamente se debe llamar favicon, ya que esto va definido en el tag link como &quot;shortcut icon&quot;, esto lo pueden ver en la imagen que viene a continuación;Debe estar sobre algún directorio de nuestra Web, normalmente sobre la url raíz;
Además de esto, para un correcto funcionamiento del favicon, se debe agregar la siguiente línea a nuestra plantilla HTML:

Esta línea permitirá al navegador saber dónde está nuestro favicon para desplegarlo cuando sea necesario.
Herramienta Genial
Ahora que ya sabemos lo que es un favicon, para su construcción pueden revisar el siguiente programa Web http://www.favicon.cc/ , esta herramienta cuenta con un conjunto de características excelentes para la construcción del favicon de nuestro sitio Web, dentro de ellas:
Permite importar una imágen generando a partir de esto el favicon    Permite editar cada píxel del favicon (agregando colores y transparencias)Tiene una vista preliminar actualizada con cada cambio realizadoPermite descargar el favicon...y todo esto en una sola interfaz, sin registro y de forma gratuita.
Se los recomiendo, yo he utilizado este sistema y me parece muy bueno, ¿qué les parece a ustedes?

</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2009/05/25/migrar-noticias-de-typo3-a-wordpress/">
		<title>Migrar noticias de TYPO3 a Wordpress</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2009/05/25/migrar-noticias-de-typo3-a-wordpress/</link>
		<description>Les dejo un link de un blog bastante bueno en donde se muestra el proceso paso a paso de migración de noticias desde TYPO3 a Wordpress, el CMS orientado a Blogs.
Además de ese Post, hay varios más que están bien interesantes.
Queda pendiente la entrada de optimización TYPO3 y de cómo crear un blog usando TYPO3.
http://blog.freniche.com/2008/06/08/migrar-las-noticias-de-typo3-tt_news-a-wordpress-paso-a-paso/
</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2009/05/18/forma-simple-de-remover-xss-para-una-extension-typo3/">
		<title>Forma simple de remover XSS para una extensión TYPO3</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2009/05/18/forma-simple-de-remover-xss-para-una-extension-typo3/</link>
		<description>Normalmente en casi todas mis implementaciones de extensiones Frontend Plugin TYPO3 agrupo las llamadas básicas del programa (inicialiaciones, cargas, lipiezas, etc.) en un método init(); para no tener que repetir aquellos trozos de código. Este método init pertenece a una clase base que es común a las clases de los plugins, pero eso es tema para otro post.El tema central en esta ocasión es la limpieza de parámetros, en rigor, la limpieza de los temidos ataques XSS (Cross Site Scripting).Para explicar más claramente lo haré por medio del siguiente código:
 
Para quienes estén familiarizados con la programación para el CMS TYPO3, estas fáciles líneas les servirán de mucho. Las 4 primeras líneas del método init() sirven para lo siguiente:
1) Leer las variables desde el backend pasadas por Flexforms 
2) Leer los métodos de entrada GET y POST y asignarlos a un arreglo denominado $this-&gt;piVars
3) Leer los archivos XML de textos que se incorporarán en la aplicación
4) Limpiar la caché
Ahora llegamos a la línea del foreach, este ciclo permite por cada elemento del arreglo piVars (variables por GET y POST), realizar la limpieza del contenido mediante el método estático t3lib_div::removeXSS($value);.Ahora, si lo que desean limpiar no es una pivar, pueden utilizar el método como más les guste.Cómo lo hacen ustedes?</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2009/05/08/gliffy-una-herramienta-para-diagramar/">
		<title>Gliffy: una herramienta para diagramar</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2009/05/08/gliffy-una-herramienta-para-diagramar/</link>
		<description>Gliffy es una aplicación que permite generar una serie de diagramas: UML, Wireframes, diagramas de flujo, diagramas de redes, arquitectura, y otros diagramas configurados con imágenes buscadas en la Web. 
Gliffy funciona sobre Web (al parecer está construido sobre Adobe Flex u OpenLaszlo), su interfaz de usuario es bastante intuitiva y liviana, y tiene características que lo hacen más interesante aun: la posibilidad de exportar los diagramas a formato Visio (SVG) e imágenes (JPG y PNG), la posibilidad de guardar los proyectos en el mismo sitio Web, colaborar con otros usuarios sobre un diagrama y publicar el diagrama en una URL (similar al funcionamiento de Google docs).
Para utilizar Gliffy, es necesario registrarse en su Web. Si bien este sistema es gratuito por un mes, tiene un costo de u$5 dólares al mes en su versión más económica para un solo usuario el cual está más que justificado dadas las potentes características que posee.
Y ustedes, ¿con qué diagraman sus sistemas?</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2009/05/07/typo3-tips-extensiones-desconocidas-pero-recomendadas-backend/">
		<title>TYPO3 tips... extensiones desconocidas pero recomendadas (Backend)</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2009/05/07/typo3-tips-extensiones-desconocidas-pero-recomendadas-backend/</link>
		<description>Aquí les presento una serie de extensiones que ayudan a mejorar el backend de TYPO3:
Date2Calendar (date2cal): esta extensión reemplaza todos los campos fecha por calendarios en formato popup.
TV Drag and Drop (nh_tvdragndrop): esta extensión permite realizar drag and drop entre contenidos puestos sobre áreas de contenido cuando se utiliza template voila. Es importante que requiere template voilá para su uso.
KJ: Recycler 2008 (kj_recycler): aunque según el repositorio de TYPO3 está obsoleta, esta extensión funciona perfectamente. Permite crear una papelera de reciclaje en nuesro TYPO3 de manera que podamos recuperar en cualquier momento cualquier elemento eliminado.
Packman ( kb_packman ): esta extensión permite subir archivos comprimidos y descomprimirlos mediante los menús emergentes TYPO3. También permite realizar el proceso inverso, es decir, comprimir directorios y crear archivos comprimidos.
Eso por el momento, espero dentro de lo próximo aportar con otras de las extensiones que esté usando en algún proyecto.
Y ustedes, ¿qué extensiones recomiendan?</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2009/04/19/megazine-3-una-alternativa-free-a-pageflip/">
		<title>Megazine 3: una alternativa free a pageflip</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2009/04/19/megazine-3-una-alternativa-free-a-pageflip/</link>
		<description>Openfactory volvió a la vida, y qué mejor que con un nuevo post.Lo primero antes de hablar de MegaZine 3, es contar qué es Paperflip. La &quot;tecnología&quot; Paperflip es un sistema construido en Flash que permite publicar contenidos en formato de libro virtual, muy similar al que utilizan los diarios, periódicos y revistas, el cual permite, además de muchas otras características, navegar por la publicación avanzando y retrocediendo sus páginas hojeandolas. 
Buscando a alternativas libres al ya conocido Paperflip encontré MegaZine 3, el cual otorga un resultado bastante similar al de Pageflip. Además del funcionamiento básico de publicación de imágenes y archivos swf, permite la incorporación de videos, exportación a PDF (solo para Windows momentáneamente), y acceder a los fuentes mediante SVN. 
Si están interesados en utilizarlo, ahora solo deben hacerlo, lo que es yo lo estoy probando y hasta ahora me ha dado muy buenos resultados.
</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2008/12/08/barra-traductora-wordchamp-para-firefox/">
		<title>Barra traductora Wordchamp para Firefox</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2008/12/08/barra-traductora-wordchamp-para-firefox/</link>
		<description>Wordchamp es un sitio Web destinado al elearning de idiomas, el cuál ha ganado gran polularidad en los Últimos años (si lo quieren conocer entren a la página :P). El tema es que este sitio, liberó hace un tiempo una utilidad bastante interesante que permite traducir palabras desde páginas Web solo poniendo el cursor del mouse sobre la palabra. Se trata de un complemento para Firefox, el cual luego de instalarlo y reiniciar permite traducir una página Web desde un lenguaje a otro (dentro de los cuales figura una lista enorme que no escribiré aquí) pero con la ventaja que solo muestra la traducción de las palabras si uno se posiciona sobre ellas, lo cual permite leer en un idioma extranjero de manera fuida y solo consultar las palabras desconocidas. Además de esto, cada palabra traducida permite escuchar la pronunciación (en la mayoría de los casos).Escribo este post porque pensé que Wordchamp no estaba sacando a circulación su famosa barra (aunque no tenía un argumento para pensarlo), pero me equivoqué, lo que realmente pasa es que está bastante oculta en su sitio. Si quieren acceder a ella, entren a la página de Wordchamp, luego vayan a &quot;Lector Web&quot; y de ahí a Descargar la barra... Créanme, realmente se las recomiendo.</description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2008/12/08/edita-tus-documentos-odf-en-microsoft-office/">
		<title>Edita tus documentos ODF en Microsoft Office</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2008/12/08/edita-tus-documentos-odf-en-microsoft-office/</link>
		<description>Hoy luego de mucho tiempo, me he encontrado con la necesidad de abrir un archivo odp (presentación) mientras usaba Windows. El tema es que tengo MS Office 2003 instalado en mi máquina y como supondrán de manera nativa es imposible abrir un odp ya que MS Office soporta solo sus propios formatos (no como el nunca bien ponderado Neooffice que uso en OSX que sí soporta todo).La cosa es que la flojera de pasarme a OS X, pasar el documento a ppt y luego volver a Windows fue mucho mayor que poner en google las palabras mágicas &quot;ODF to DOC&quot;, lo cuál resultó realmente una buena decisión. Fue así como llegué a ODF-Converter, una utilidad que permite agregar a MS Office los formatos Open Document, es una iniciativa gratuita que solo basta descargarla e instalarla. El Único inconveniente que le encuentro hasta el momento es que no está en versión español, aunque supongo que la versión en inglés debe funcionar... o no?... de todos modos, les dejo el link (again) a quienes quieran probar, ya sea en inglés o en español. </description>
	</item>
	       
	<item rdf:about="http://openfactory.opendigital.cl/archivo/fecha/2008/12/05/de-vuelta-al-blog-y-utorrent-para-mac/">
		<title>De vuelta al blog.... y uTorrent para Mac</title>
		<link>http://openfactory.opendigital.cl/archivo/fecha/2008/12/05/de-vuelta-al-blog-y-utorrent-para-mac/</link>
		<description>Hola a todos!... después de tanto tiempo, retomaré el blog, antes que todo les pido la mayor de las disculpas por dejar tirado este pequeño espacio en que compartimos la información que nos parece interesante. Ya es tiempo de volver, y qué mejor que con una buena noticia.
Por fín apareció uTorrent para mac en versión beta, el cliente de torrent que nos ha otorgado tardes de diversión ahora lo tendremos en mac. Lo pueden descargar desde aquí.</description>
	</item>
	         
</rdf:RDF>
