Five Things Missing From Yahoo Pipes

Since it was a rainy afternoon, I decided to give Pipes another go, and tried to implement some of the custom logic I have squirreled away in my newspipe helper scripts.

It turned out to be not only fun but educational, since while trying to do so I discovered that there were a few things missing from the current tool set. The UI is very neat, sure, but the functionality is still lagging behind a bit.

I've so far built six pretty complex pipes that do things like merging and filtering several "planets", looking up Technorati references to posts, annotating items, etc., and the five things I've missed the most (time and again) were:

  • A "Split" operator - the opposite of the "Union" operator, for when you want to fork a feed, process it using two different criteria and then merge the results.
  • An attribute swap operator - For instance, the content classifier is a great idea, but I have no use for y:content_analysis unless I can map it onto keywords, and there is no apparent way to do that inside Pipes. Plus it's kind of strange to find a Web 2.0 application that doesn't let you do tagging.
  • An attribute append operator - annotating is kind of pointless if all you can do is replace the description attribute (or something else). I would love to be able to append annotations to the feed item body.
  • Language detection - it would be great to only run German or Mandarin posts through BabelFish, since the "BabelFish" operator isn't much use when you try to handle mixed language feeds. Again, being able to split the feed would come in handy here.
  • Regexps - sure, some sources implicitly take them, but filtering would be so much easier in some instances, and I'd love to be able to replace arbitrary strings (and patterns) with other things.

Regardless of whether these eventually make it in, I'd love to see the Composer-like UI code published as part of the Yahoo UI Library - the pipeline paradigm applies to a lot more things, and visual editors for it tend to be, well, suboptimal to say the least.