Yahoo! Pipes como por un tubo

Yahoo! Pipes es una una herramienta web interactiva para agregar y manipular feeds RSS (y otras fuentes de datos) a nuestro antojo de forma sencilla y asequible para cualquiera.

Es un entorno de programación visual online. La programación visual es común para los ingenieros (Simulink o LabVIEW) y también para los viejos gamers (el glorioso The incredible Machine.

El concepto es simple: se conectan distintos módulos ("tubos", con una o más salidas y entradas) según las necesidades, y se va probando el resultado en una salida final.

En Y! Pipes, luego de toda nuestra manipulación, el resultado es un feed personalizado que contiene únicamente lo que se quiera tener, por ejemplo el resultado de mezclar y flitrar dos o más fuentes de información.

Aplicandolo a SPIP

Frecuentemente queremos ofrecer un canal RSS que provea tanto las breves como los artículos. SPIP maneja estos objetos independientemente y es muy dificil hacer un esqueleto que los mezcle (hay que trabajar con pilas en PHP). Con Yahoo! Pipes es tan sencillo como mezclar los dos (o más) feeds.

Esto lo hice en el sitio Agrupación Mazamorra:

System Message: WARNING/2 (<string>, line 36)

Explicit markup ends without a blank line; unexpected unindent.

El resultado puede verse (y clonarse) desde aquí

Más ejemplos

Pero mezclar feeds no es la única posibilidad. De hecho, Pipes es tan potente que permite obtener datos parseando un sitio web que no tenga un canal RSS o Atom disponible (pero eso es un uso muy avanzado y lo dejamos para otra oportunidad).

Un caso que sí está al alcance de esta breve introducción es filtrar el contenido de un feed. Doy mi ejemplo en uso: me gusta leer a Hernán Casciari que además de su blog, escribe una columna en el diario argentino La Nación. Es un diario asquerosamente oligarca y de derecha (¿redundante?) así que prefieron no leer nada más que a este autor,

Fácil: Busco el feed de la sección donde se publican sus columnas, filtro con la palabra clave ’Casciari’, y me libro de todo lo que no quiero. Aquí el resultado

System Message: WARNING/2 (<string>, line 61)

Explicit markup ends without a blank line; unexpected unindent.

Ejemplo en video

Un screencast de otro blog más

Un cierto blog no ofrece los RSS filtrados por categorías. O por autores. O por ‘tags’. O queremos el RSS de un sitio, eliminando, por ejemplo, todas las entradas que hablen de petanca o del chucho del autor. Vamos, que nos gustaría filtrar el RSS de acuerdo con algún criterio propio. Para eso (y para bastantes más cosas, pero centrémonos en esto) sirve Yahoo! Pipes. Para los interesados, un pequeño ’screencast’ que explica cómo recuperar las categorías (la de desarrollo web, en particular) que se ha cargado Feedburner…

Esqueletos Acción

En septiembre de 2008 participé con un grupo de compañeros de facultad en el Congreso Argentino de Ciencias de la Computación realizado en la ciudad de Chilecito, La Rioja.

Allí realicé un taller de 20 horas sobre Accesibilidad para la web a cargo de las licenciadas Ivana Harrari y Ana Paola Amadeo, docentes de la Universidad Nacional de La Plata.

El taller fue de un nivel bastante bajo y con errores de implementación bastante groseros, partiendo de que parte del material de práctica estaba en formato Adobe Shockwave y todo el curso se centraba en software para Windows. Las docentes, de cualquier manera, fueron muy amables y abiertas a escuchar nuestras inquietudes.

Por este motivo, con los dos compañeros que participamos de este taller, Lourdes Dorado y Agustín Martina, nos propusimos aprovecharlo todo lo que pudiésemos.

Desde aquí se puede bajar los informes de los trabajos prácticos realizados:

|image1|
Workshop sobre Accesibilidad web TP Nº 1
|image3|
Workshop sobre Accesibilidad web TP Nº 2
|image5|
Workshop sobre Accesibilidad web TP Nº 3

Además, la consigna del trabajo final era evaluar las accesibilidad y usabilidad de un sitio web a elección, por ejemplo, el de la facultad de procedencia de cada grupo. Como el de nuestra facu nos avergüenza, decidimos construir nosotros que respete las normas.

Nos basamos en un diseño libre y mejoramos aquellos aspectos que no satisfacían completamente los requerimientos. El resultado es el proyecto *Accion Inmobiliaria*

System Message: WARNING/2 (<string>, line 55)

Explicit markup ends without a blank line; unexpected unindent.

Podés ver la demo online.

Características

- CSS y XHTML estándar válido image7 Se estudió el contraste de colores y el tamaño de la fuente para facilitar la lectura. image8 Accesibilidad probada en navegadores en modo texto (Elink) y lectores de pantalla. image9 Licenciado bajo GPLv3

Descargar

Podés bajarte los esqueletos, modificarlos y usarlos. Como se basa en GPL, tus trabajos derivados deben ser ofrecidos libremente.

¡Basta de IE6!

El trabajo de un desarrollador web cuesta mechones de cabello a la hora de enfrentar al inmundo, malnacido e infeliz Internet Explorer 6. Horas y nervios perdemos intentando que nuestros sitios se vean decentemente en este navegador, que pese a tener casi 8 años de anitgüedad, aun tiene cuota de mercado. ¡Es hora de decir basta! Tomemos las armas y declaremosle la guerra a Internet explorer.

¿Cuáles son nuestras armas?

Te propongo dos, faciles y potentes:

- El script modificado por mí de la campaña End 6!. Sólo debes copiar este código y pegarlo en el header de cada página de tu sitio, o sea entre <head> y </head>.

System Message: WARNING/2 (<string>, line 20)

Literal block expected; none found.

Si un visitante llega usando el vetusto y abominable navegador, verá un cartelito como este:

System Message: WARNING/2 (<string>, line 26)

Explicit markup ends without a blank line; unexpected unindent.

image1 El plugin para spip `Cambia el navegador! <http://www.spip-contrib.net/Changez-de-navigateur>`_ que al instalarlo y activarlo, muestra un mensaje en la cabecera de todo el sitio público si el visitante usa IE6 (o más viejo!)

System Message: WARNING/2 (<string>, line 34)

Explicit markup ends without a blank line; unexpected unindent.
|image3|
Cambia el Navegador!

Puedes bajar este plugin (multilingüe) desde aquí.

Basta de ’caldo gordo’

Como desarrolladores, tenemos cosas mejores que hacer que continuar garantizando la compatibilidad con lo arcaico, perdiendo el tiempo en torno a errores ajenos a nuestros desarrollos. Todo el tiempo dispensado allí debería ser concentrada en conquistar los nuevos horizontes que requieren nuestra atención como, por ejemplo, la web móvil.

Y en gran parte, esta situación es nuestra responsabilidad. Todos los que trabajamos en internet (y los que la usamos con pasión) conocemos y odiamos con fundamentos el Internet Explorer 6. Pero justamente nosotros, por tener razones, somos responsables de difundirlas tanto como podamos para educar tecnológicamente a los usuarios más inexperimentados.

Control de Versiones con Subversion

Xab, compañero de la lista Spip-es me propone un trato:

Abro una cuenta con magoya en picasa y testeo el plugin, y a cambio vos "hacés (o recomendás)" un how-to subversion aplicado a Spip

Como tenía unos materiales de una charla que dí en la facu, lo comparto con el pueblo spipero.

Subversion, un software de control de versiones

Subversion es el software de control de versiones más popular de la actualidad. Es robusto, fácil de usar, multiplataforma, libre y gratuito.

Aquí las diapositivas (un tanto frías sin nuestra explicación) que presentamos.

La pregunta del novato: ¿Para qué sirve?. Bueno, para llevar total control del desarrollo de un software (u otros contenidos). Muchos lo hemos hecho manualmente:

— Bueno, hasta aqui funciona. Hago una carpeta nueva, copio los archivos, y sigo.

Así, al cabo de una semana de trabajo, tenemos 10 carpetas con versiones distintas, archivos repetidos, y no sabemos realmente cual es la version en curso. Más complicado aun, si se trabaja desde distintos equipos (por ejemplo, la notebook y la PC de escritorio).

Pero además, sumemos la complicación de trabajar con colegas.

— Ey, Martín, acá te mando la última versión del esqueleto de portada. — ¡Pero cómo! si te avisé que había modificado la portada completamente!

Trabajar en equipo es casi inviable a la vieja usanza. Imaginen proyectos de software grandes, como SPIP. Imposible. Hace falta ayuda: Subversion.

¿Cómo funciona?

Es una aplicación cliente-servidor. El cliente se instala en nuestra/s computadoras y el servidor está, generalmente, online. A este servidor online se le denomina repositorio. A la copia local de los archivos, copia de trabajo. A cada cambio que el repositorio recibe se le llama revisión.

  • Para Windows, el mejor cliente es TortoiseSVN
  • Para GNU/Linux, basta subversion, la versión para línea de comandos, o RapidSVN, una versión gráfica para entornos GTK.

El proceso de trabajo es más o menos así:

  • Si no existe en el repositorio nuestro código, hacemos un import (enviar por primera vez nuestro código al repositorio.
  • Para empezar a trabajar, necesitamos hace un checkout, es decir, decirle a Subversion que convierta nuestra carpeta de código (o la cree si no existe) en copia de trabajo.
  • Ya preparados, el trabajo cotidiano: lo comandos más frecuentes son tres. update, para actualizar la copia local con las ultimas revisiones; commit para enviar nuestras modificaciones locales al repositorio y crear una nueva revisión y add para agregar un archivo que hemos creado, y aun no existe en el repositorio.

Un ejemplo con SPIP-Zone

Spip-zone tiene un servidor subversion (asociado al software Trac que es un gestor integral de proyectos de software) donde se puede alojar cualquier contenido libre que tenga que ver con SPIP. Es abierto para lectura (podés hacer checkouts y updates anonimamente) pero necesitás ser usuario para hacer commits. Podés pedirle un user y pass a Fil.

Paso 0

Suponiendo que sos usuario con clave y password y querés compartir el desarrollo de tus squeletos, los squelettes_maslindos que están en la carpeta squelettes local (por poner un ejemplo).

La dirección del repositorio, arbitraria pero recomendada, sería svn://zone.spip.org/spip-zone/_squelettes_/maslindos

Desde Tortoise, con el boton derecho sobre la carpeta de esqueletos, le damos a la opción Import y ponemos la dire del repo donde la pide.

Desde línea de comandos sería

$ svn import ./squelettes  svn://zone.spip.org/spip-zone/_squelettes_/maslindos -m "importacion de los squeletos más lindos"

Si la importación salió bien, debería poder ver tus archivos en la dirección http://zone.spip.org/trac/spip-zone/browser/_squelettes_/maslindos

Paso 1

Este es el paso inicial para aquellos que quieren probar algo que está en el repositorio, pero sin intenciones de enviar modificaciones (sólo lectura). Tambien deben hacerlo aquellos que sí lo van a hacer, porque la importación no implica que se haya creado una copia de trabajo.

Así que hay que hacer el checkout. Si hiciste el paso anterior, para evitar complicaciones, lo mejor es borrar la carpeta que importaste.

Entonces sí, sobre la carpeta raiz (donde queremos que se cree la otra), hacemo checkout a la dire del repo, definiendo que la copia local será ./squelettes (si no, nos creará una que se llamará maslindos)

La dire del repo es la siempre:

svn://zone.spip.org/spip-zone/_squelettes_/maslindos

Por línea de comandos sería así:

$ svn checkout svn://zone.spip.org/spip-zone/_squelettes_/maslindos ./squelettes

Pasos 2 y 3

Listo, tenemos nuetra copia de trabajo. Cada vez que queramos actualizar a la ultima versión, parados sobre la carpeta, hacemos update

$ svn  update

Si somos desarrolladores, y queremos enviar nuestras modificaciones, hay que hacer commit

$ svn  update

En caso de agregar archivos, hay que indicarselo a Subversion.

$ svn  add archivo1 archivo2 *jpg

Un video vale más que mil palabras

Un ejemplo de flujo de trabajo por línea de comandos

Y otro ejemplo usando una interfaz gráfica.