Last Modified 2014-11-27 by Jan Schneider


Hippo will be a new Horde 4, PHP 5 application that aggregates content. It will initially be written to aggregate feeds, both internal from Jonah natively, and external (through Horde_Feed). Hippo will work with Horde_Content types and have Input and Output classes. Input classes will allow reading a content type, such as Horde_Feed feeds, Jonah internal feeds, comics, etc. Output classes will allow outputting a "remixed" feed from one or more inputs (such as combining an RSS feed with a few comics into a daily feed).


Horde_Feed improvements to suport Hippo:


Hippo is being developed in the Horde hatchery


ChuckHagenbuch is working on Hippo. MikeNaberezny may be interested in Hippo.


  • Horde_Cache will be used to cache content that isn't stored directly
  • Some content types such as comics might include code to fetch and store themselves locally; we might decide that Horde_Feed external feeds should be fetched into a local content table also
  • This application should be able to provide the backend for Planet Horde (http://planet.horde.org/)
  • Fields to aggregate for feeds: title, url, uid, summary, content if any, content-type for content, date
  • During Hippo runs, Horde_Log will be used for logging
  • There will be the ability to run filters on Hippo_Input plugins. For instance, if a certain feed has the same junk in every entry, a filter could be attached to the Hippo_Input for that feed that would strip it out. Generic (regex-type) filters should be configurable via the UI; it should be possible to configure any kind of filter in a config file or separate input plugin class.
  • This application should eventually be able to replace Klutz
  • Additional possible content types include podcasts, content from other Horde applications (iCalendar data from Kronolith), "friend information (http://hasin.wordpress.com/2008/05/31/building-friendfeed-using-php-part-1/, http://hasin.wordpress.com/2008/06/03/building-services-like-friendfeed-using-php-part2/), etc.
  • Hippo will be able to provide read/write "data folders" to IMP 5 (or other folder-browsing applications). This will allow feed reading from within IMP. Other possible data folder providers are Nag and Whups.
  • Must support PubSubHubbub (http://code.google.com/p/pubsubhubbub/, http://adsenseforfeeds.blogspot.com/2009/07/whats-all-hubbub-about-pubsubhubbub.html)

GUID detection:

if (isset($item['guid'])) {
    $guid = $item['guid'];
} elseif (isset($item['id'])) {
    $guid = $item['id'];
    $item['guid'] = $item['id'];
} else {
    $guid = $item['link'];
    $item['guid'] = $item['link'];

Stats to keep:

  • stats for when a feed was last updated
  • when you last read something from it
  • when you last flagged something from it

Changes from Klutz for comics driver

"try to fetch this comic" gives a blank page, though it works
- make "try to fetch this comic" links inline ajax calls

UI updates

default to the previous day's comics if today's haven't fetched yet

have a back-fill mode for fetch? http://example.org/horde/klutz/index.php?actionID=day&date=1217995200
- have the capability, just need to have it in the command-line script

- put the various fetch, rebuild sums, cleanup tasks into API calls.
- use those api calls in backend.php and rename backend.php to some more reasonable admin script
- better error reporting throughout the drivers and backend.php code
- feeds of specified comic sets
- tags? so, political cartoons, sometimes funny, always funny..

Keyboard nav:

As a source of feeds

Dave Winer has some ideas on loosely-coupled publishing tools that are interesting and may match with some of the Hydra/Hippo/Hound set of apps:


UI Ideas

Article skimmer



YQL - super data source

Semantic data sources

Feed sources

Converting partial feeds to full feeds

Term extraction

OPML parsing (merge into Horde_Feed)


PDF generation


Podcast fetching

NYTimes data source

Video sources

Vanity feeds

Allow one-step creation of de-duped searches on these and other sources

Back to the Project List