\documentclass{article}
\usepackage{ulem}
\usepackage{graphicx}
\usepackage{hyperref}
\pagestyle{headings}
\begin{document}
\part{Hippo}
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).

\section{Bugs}
Horde\_Feed improvements to suport Hippo:

\begin{itemize}
\item <a href="http://bugs.horde.org/ticket/6877">http://bugs.horde.org/ticket/6877</a>


\item <a href="http://bugs.horde.org/ticket/6876">http://bugs.horde.org/ticket/6876</a>


\item <del> <a href="http://bugs.horde.org/ticket/6879">http://bugs.horde.org/ticket/6879</a> </del>


\item <del> <a href="http://bugs.horde.org/ticket/6880">http://bugs.horde.org/ticket/6880</a> </del>


\end{itemize}
\section{Source}
Hippo is being developed in the <a href="http://horde.org/source/git.php">Horde hatchery</a>

\section{People}
<a href="https://wiki.horde.org/ChuckHagenbuch">ChuckHagenbuch</a> is working on Hippo. <a href="https://wiki.horde.org/MikeNaberezny">MikeNaberezny</a> may be interested in Hippo.

\section{Description}
\begin{itemize}
\item Horde\_Cache will be used to cache content that isn't stored directly


\item 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


\item This application should be able to provide the backend for Planet Horde (<a href="http://planet.horde.org/\">http://planet.horde.org/\textbackslash\{\}</a>)


\item Fields to aggregate for feeds: title, url, uid, summary, content if any, content-type for content, date


\item During Hippo runs, Horde\_Log will be used for logging


\item 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.


\item This application should eventually be able to replace Klutz


\item Additional possible content types include podcasts, content from other Horde applications (iCalendar data from Kronolith), "friend information (<a href="http://hasin.wordpress.com/2008/05/31/building-friendfeed-using-php-part-1/">http://hasin.wordpress.com/2008/05/31/building-friendfeed-using-php-part-1/</a>, <a href="http://hasin.wordpress.com/2008/06/03/building-services-like-friendfeed-using-php-part2/\">http://hasin.wordpress.com/2008/06/03/building-services-like-friendfeed-using-php-part2/\textbackslash\{\}</a>), etc.


\item 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.


\item Must support PubSubHubbub (<a href="http://code.google.com/p/pubsubhubbub/">http://code.google.com/p/pubsubhubbub/</a>, <a href="http://adsenseforfeeds.blogspot.com/2009/07/whats-all-hubbub-about-pubsubhubbub.html\">http://adsenseforfeeds.blogspot.com/2009/07/whats-all-hubbub-about-pubsubhubbub.html\textbackslash\{\}</a>)


\end{itemize}
GUID detection:

<pre><code class="language-php">
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'];
\}
</code></pre>
Stats to keep:

\begin{itemize}
\item stats for when a feed was last updated


\item when you last read something from it


\item when you last flagged something from it


\end{itemize}
\subsection{Changes from Klutz for comics driver}
"try to fetch this comic" gives a blank page, though it works

\begin{itemize}
\item make "try to fetch this comic" links inline ajax calls


\end{itemize}
\textbf{UI updates}

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

have a back-fill mode for fetch? <a href="http://example.org/horde/klutz/index.php?actionID=day\&amp;date=1217995200">http://example.org/horde/klutz/index.php?actionID=day\textbackslash\{\}\&date=1217995200</a>

\begin{itemize}
\item have the capability, just need to have it in the command-line script


\item put the various fetch, rebuild sums, cleanup tasks into API calls.


\item use those api calls in backend.php and rename backend.php to some more reasonable admin script


\item better error reporting throughout the drivers and backend.php code


\item feeds of specified comic sets


\item tags? so, political cartoons, sometimes funny, always funny..


\end{itemize}
Keyboard nav:

\begin{itemize}
\item <a href="http://parand.com/say/index.php/2008/09/15/readerscroll-google-reader-style-image-navigation-with-j-k-keys-bookmarklet/">http://parand.com/say/index.php/2008/09/15/readerscroll-google-reader-style-image-navigation-with-j-k-keys-bookmarklet/</a>


\item <a href="http://blogs.newsgator.com/newsgator\_widget\_blog/2008/10/five-things-you.html">http://blogs.newsgator.com/newsgator\textbackslash\{\}\_widget\textbackslash\{\}\_blog/2008/10/five-things-you.html</a>


\end{itemize}
\section{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:

\begin{itemize}
\item <a href="http://scripting.com/stories/2011/01/05/upcomingTheMinimalBlogging.html">http://scripting.com/stories/2011/01/05/upcomingTheMinimalBlogging.html</a>


\item <a href="http://scripting.com/stories/2011/01/03/rebootingRssRevisited.html">http://scripting.com/stories/2011/01/03/rebootingRssRevisited.html</a>


\item <a href="http://scripting.com/stories/2010/10/08/ideasForAnAcademicHackatho.html">http://scripting.com/stories/2010/10/08/ideasForAnAcademicHackatho.html</a>


\item <a href="http://scripting.com/stories/2010/10/08/4MoreFreeProjectIdeasForYo.html">http://scripting.com/stories/2010/10/08/4MoreFreeProjectIdeasForYo.html</a>


\end{itemize}
\section{Resources}
\begin{itemize}
\item <a href="http://www.25hoursaday.com/weblog/2010/01/04/[BrizzlySeesmicWebAndTheFutureOfRSS](BrizzlySeesmicWebAndTheFutureOfRSS).aspx">http://www.25hoursaday.com/weblog/2010/01/04/[BrizzlySeesmicWebAndTheFutureOfRSS](BrizzlySeesmicWebAndTheFutureOfRSS).aspx</a> (good argument for a stream (twitter-like) UI instead of an email-like UI, and also for exposing hippo content through the twitter api)


\item <a href="http://www.readwriteweb.com/archives/top\_rss\_syndication\_technologies\_of\_2009.php">http://www.readwriteweb.com/archives/top\textbackslash\{\}\_rss\textbackslash\{\}\_syndication\textbackslash\{\}\_technologies\textbackslash\{\}\_of\textbackslash\{\}\_2009.php</a>


\item <a href="http://activitystrea.ms/">http://activitystrea.ms/</a>


\item <a href="http://www.25hoursaday.com/weblog/2009/08/26/[TheTop5ReasonsRSSReadersWentWrong](TheTop5ReasonsRSSReadersWentWrong).aspx">http://www.25hoursaday.com/weblog/2009/08/26/[TheTop5ReasonsRSSReadersWentWrong](TheTop5ReasonsRSSReadersWentWrong).aspx</a>


\item <a href="http://www.readwriteweb.com/archives/shyftr\_intros\_new\_filtered\_feed\_service.php">http://www.readwriteweb.com/archives/shyftr\textbackslash\{\}\_intros\textbackslash\{\}\_new\textbackslash\{\}\_filtered\textbackslash\{\}\_feed\textbackslash\{\}\_service.php</a>


\item <a href="http://www.readwriteweb.com/archives/feedly\_integrates\_with\_ubiquity.php">http://www.readwriteweb.com/archives/feedly\textbackslash\{\}\_integrates\textbackslash\{\}\_with\textbackslash\{\}\_ubiquity.php</a>


\item <a href="http://www.newsgator.com/Individuals/NewsGatorInbox/Default.aspx">http://www.newsgator.com/Individuals/NewsGatorInbox/Default.aspx</a>


\item <a href="http://www.newsgator.com/Individuals/NewsGatorOnline/Default.aspx">http://www.newsgator.com/Individuals/NewsGatorOnline/Default.aspx</a>


\item <a href="http://lifestreamblog.com/create/">http://lifestreamblog.com/create/</a>


\item <a href="http://www.readwriteweb.com/archives/friendfeed.php">http://www.readwriteweb.com/archives/friendfeed.php</a>


\item <a href="http://www.readwriteweb.com/archives/friendfeed\_beta\_interface.php">http://www.readwriteweb.com/archives/friendfeed\textbackslash\{\}\_beta\textbackslash\{\}\_interface.php</a>


\item <a href="http://hasin.wordpress.com/2008/05/31/building-friendfeed-using-php-part-1/">http://hasin.wordpress.com/2008/05/31/building-friendfeed-using-php-part-1/</a>


\item <a href="http://hasin.wordpress.com/2008/06/03/building-services-like-friendfeed-using-php-part2/">http://hasin.wordpress.com/2008/06/03/building-services-like-friendfeed-using-php-part2/</a>


\item <a href="http://www.dapper.net/">http://www.dapper.net/</a> - looks similar in concept though not open source


\item <a href="http://www.sweetcron.com/">http://www.sweetcron.com/</a> - code in beta now


\item <a href="http://code.google.com/p/sweetcron/wiki/Themes">http://code.google.com/p/sweetcron/wiki/Themes</a>


\item <a href="http://www.readwriteweb.com/archives/sweetcron\_lifestream\_self\_hosted.php">http://www.readwriteweb.com/archives/sweetcron\textbackslash\{\}\_lifestream\textbackslash\{\}\_self\textbackslash\{\}\_hosted.php</a>


\item <a href="http://www.readwriteweb.com/archives/mloovi\_translate\_any\_rss\_feed.php">http://www.readwriteweb.com/archives/mloovi\textbackslash\{\}\_translate\textbackslash\{\}\_any\textbackslash\{\}\_rss\textbackslash\{\}\_feed.php</a> - translate feeds


\item <a href="http://www.readwriteweb.com/archives/pageonce\_new\_iphone\_app.php">http://www.readwriteweb.com/archives/pageonce\textbackslash\{\}\_new\textbackslash\{\}\_iphone\textbackslash\{\}\_app.php</a> - some killer feed ideas there


\item <a href="http://www.25hoursaday.com/weblog/2008/06/10/[TwoCardinalSinsOfRESTAPIDesignLessonsYouCanLearnFromTheNewsGatorRESTAPI](TwoCardinalSinsOfRESTAPIDesignLessonsYouCanLearnFromTheNewsGatorRESTAPI).aspx">http://www.25hoursaday.com/weblog/2008/06/10/[TwoCardinalSinsOfRESTAPIDesignLessonsYouCanLearnFromTheNewsGatorRESTAPI](TwoCardinalSinsOfRESTAPIDesignLessonsYouCanLearnFromTheNewsGatorRESTAPI).aspx</a>


\item <a href="http://www.readwriteweb.com/archives/feedinformer\_relaunches\_its\_al.php">http://www.readwriteweb.com/archives/feedinformer\textbackslash\{\}\_relaunches\textbackslash\{\}\_its\textbackslash\{\}\_al.php</a>


\item <a href="http://www.readwriteweb.com/archives/friendfeed\_dupe\_detection.php">http://www.readwriteweb.com/archives/friendfeed\textbackslash\{\}\_dupe\textbackslash\{\}\_detection.php</a>


\item <a href="http://www.readwriteweb.com/archives/godaddy\_unveils\_mainstream\_social\_web\_aggregator.php">http://www.readwriteweb.com/archives/godaddy\textbackslash\{\}\_unveils\textbackslash\{\}\_mainstream\textbackslash\{\}\_social\textbackslash\{\}\_web\textbackslash\{\}\_aggregator.php</a>


\item <a href="http://www.readwriteweb.com/archives/npr\_now\_lets\_you\_roll\_your\_own\_podcasts.php">http://www.readwriteweb.com/archives/npr\textbackslash\{\}\_now\textbackslash\{\}\_lets\textbackslash\{\}\_you\textbackslash\{\}\_roll\textbackslash\{\}\_your\textbackslash\{\}\_own\textbackslash\{\}\_podcasts.php</a>


\item <a href="http://www.25hoursaday.com/weblog/2009/01/08/[RepresentingRichMediaAndSocialNetworkActivitiesInRSSAtomFeeds](RepresentingRichMediaAndSocialNetworkActivitiesInRSSAtomFeeds).aspx">http://www.25hoursaday.com/weblog/2009/01/08/[RepresentingRichMediaAndSocialNetworkActivitiesInRSSAtomFeeds](RepresentingRichMediaAndSocialNetworkActivitiesInRSSAtomFeeds).aspx</a>


\item <a href="http://www.25hoursaday.com/weblog/2009/01/17/[SomeThoughtsOnUserInterfacesForActivityStreams](SomeThoughtsOnUserInterfacesForActivityStreams).aspx">http://www.25hoursaday.com/weblog/2009/01/17/[SomeThoughtsOnUserInterfacesForActivityStreams](SomeThoughtsOnUserInterfacesForActivityStreams).aspx</a>


\item <a href="http://jasonpriem.com/feedvis-dev/">http://jasonpriem.com/feedvis-dev/</a>


\item <a href="http://www.readwriteweb.com/archives/suggestrss\_find\_some\_new\_feeds.php">http://www.readwriteweb.com/archives/suggestrss\textbackslash\{\}\_find\textbackslash\{\}\_some\textbackslash\{\}\_new\textbackslash\{\}\_feeds.php</a> (integrate for recommendations)


\item <a href="http://www.readwriteweb.com/archives/syndicating\_content\_copygator.php">http://www.readwriteweb.com/archives/syndicating\textbackslash\{\}\_content\textbackslash\{\}\_copygator.php</a>


\item <a href="http://www.readwriteweb.com/archives/notifixious\_superfeeder\_realtime\_web.php">http://www.readwriteweb.com/archives/notifixious\textbackslash\{\}\_superfeeder\textbackslash\{\}\_realtime\textbackslash\{\}\_web.php</a>


\item <a href="http://www.25hoursaday.com/weblog/2009/03/24/[SharingSocialActivityStreamsAcrossTheWebHowGnipFitsIn](SharingSocialActivityStreamsAcrossTheWebHowGnipFitsIn).aspx">http://www.25hoursaday.com/weblog/2009/03/24/[SharingSocialActivityStreamsAcrossTheWebHowGnipFitsIn](SharingSocialActivityStreamsAcrossTheWebHowGnipFitsIn).aspx</a>


\item <a href="http://www.sitepoint.com/blogs/2009/09/29/build-a-lifestream-with-simplepie/">http://www.sitepoint.com/blogs/2009/09/29/build-a-lifestream-with-simplepie/</a>


\item <a href="http://googlecode.blogspot.com/2010/08/google-buzz-api-adds-track-and-some.html">http://googlecode.blogspot.com/2010/08/google-buzz-api-adds-track-and-some.html</a>


\item <a href="http://cweiske.de/tagebuch/tiny-tiny-rss-feed-detection.htm">http://cweiske.de/tagebuch/tiny-tiny-rss-feed-detection.htm</a>


\item <a href="http://www.25hoursaday.com/weblog/2009/03/22/[VideoStandardsForAggregatingActivityFeedsAndSocialAggregationServicesAtMIX09Conference](VideoStandardsForAggregatingActivityFeedsAndSocialAggregationServicesAtMIX09Conference).aspx">http://www.25hoursaday.com/weblog/2009/03/22/[VideoStandardsForAggregatingActivityFeedsAndSocialAggregationServicesAtMIX09Conference](VideoStandardsForAggregatingActivityFeedsAndSocialAggregationServicesAtMIX09Conference).aspx</a>


\item <a href="http://webworkerdaily.com/2009/03/31/how-to-monitor-online-conversations/">http://webworkerdaily.com/2009/03/31/how-to-monitor-online-conversations/</a>


\item <a href="http://fastwonderblog.com/2008/09/08/monitoring-dashboards-why-every-company-should-have-on/">http://fastwonderblog.com/2008/09/08/monitoring-dashboards-why-every-company-should-have-on/</a>


\item <a href="http://webworkerdaily.com/2009/03/31/skimmer-eventbox-expecting-more-from-lifestreaming-apps/">http://webworkerdaily.com/2009/03/31/skimmer-eventbox-expecting-more-from-lifestreaming-apps/</a>


\item <a href="http://www.25hoursaday.com/weblog/2009/05/04/[RepostRSSBanditCodenameCollossusWillBringStabilityBugFixesAndFacebookIntegration](RepostRSSBanditCodenameCollossusWillBringStabilityBugFixesAndFacebookIntegration).aspx">http://www.25hoursaday.com/weblog/2009/05/04/[RepostRSSBanditCodenameCollossusWillBringStabilityBugFixesAndFacebookIntegration](RepostRSSBanditCodenameCollossusWillBringStabilityBugFixesAndFacebookIntegration).aspx</a>


\item <a href="http://www.25hoursaday.com/weblog/2009/05/25/[PreviewOfFacebookCommentsInRSSBanditAndTheRibbon](PreviewOfFacebookCommentsInRSSBanditAndTheRibbon).aspx">http://www.25hoursaday.com/weblog/2009/05/25/[PreviewOfFacebookCommentsInRSSBanditAndTheRibbon](PreviewOfFacebookCommentsInRSSBanditAndTheRibbon).aspx</a>


\item <a href="http://www.25hoursaday.com/weblog/2009/05/05/[RSSReadersModeledAfterEmailClientsAreFundamentallyBroken](RSSReadersModeledAfterEmailClientsAreFundamentallyBroken).aspx">http://www.25hoursaday.com/weblog/2009/05/05/[RSSReadersModeledAfterEmailClientsAreFundamentallyBroken](RSSReadersModeledAfterEmailClientsAreFundamentallyBroken).aspx</a>


\item <a href="http://www.readwriteweb.com/archives/eventbox\_review.php">http://www.readwriteweb.com/archives/eventbox\textbackslash\{\}\_review.php</a>


\item <a href="http://newstimeline.googlelabs.com/">http://newstimeline.googlelabs.com/</a>


\item <a href="http://www.readwriteweb.com/archives/amplifeeder\_friendfeeds\_much\_prettier\_sister.php">http://www.readwriteweb.com/archives/amplifeeder\textbackslash\{\}\_friendfeeds\textbackslash\{\}\_much\textbackslash\{\}\_prettier\textbackslash\{\}\_sister.php</a>


\item <a href="http://amplifeeder.com/">http://amplifeeder.com/</a>


\item <a href="http://hasin.wordpress.com/2009/06/20/collecting-data-from-streaming-api-in-twitter/">http://hasin.wordpress.com/2009/06/20/collecting-data-from-streaming-api-in-twitter/</a>


\item <a href="http://feedafever.com/">http://feedafever.com/</a>


\item <a href="http://blog.liip.ch/archive/2005/10/28/how-to-fetch-a-lot-of-feeds.html">http://blog.liip.ch/archive/2005/10/28/how-to-fetch-a-lot-of-feeds.html</a>


\item <a href="http://netevil.org/blog/2005/may/guru-multiplexing">http://netevil.org/blog/2005/may/guru-multiplexing</a>


\item <a href="http://www.readwriteweb.com/archives/wordpress\_just\_made\_millions\_of\_blogs\_real-time\_wi.php">http://www.readwriteweb.com/archives/wordpress\textbackslash\{\}\_just\textbackslash\{\}\_made\textbackslash\{\}\_millions\textbackslash\{\}\_of\textbackslash\{\}\_blogs\textbackslash\{\}\_real-time\textbackslash\{\}\_wi.php</a>


\item <a href="http://www.readwriteweb.com/archives/lazyfeed\_1st\_independent\_rss\_aggregator\_declares\_s.php">http://www.readwriteweb.com/archives/lazyfeed\textbackslash\{\}\_1st\textbackslash\{\}\_independent\textbackslash\{\}\_rss\textbackslash\{\}\_aggregator\textbackslash\{\}\_declares\textbackslash\{\}\_s.php</a>


\item <a href="http://www.readwriteweb.com/archives/netvibes\_launches\_ultimate\_news\_and\_lifestyle\_dash.php">http://www.readwriteweb.com/archives/netvibes\textbackslash\{\}\_launches\textbackslash\{\}\_ultimate\textbackslash\{\}\_news\textbackslash\{\}\_and\textbackslash\{\}\_lifestyle\textbackslash\{\}\_dash.php</a>


\item <a href="http://hasin.wordpress.com/2010/01/25/installing-storytlr-in-your-own-domain/">http://hasin.wordpress.com/2010/01/25/installing-storytlr-in-your-own-domain/</a>


\item <a href="http://blog.stuartherbert.com/php/2010/01/26/playing-with-storytlr/">http://blog.stuartherbert.com/php/2010/01/26/playing-with-storytlr/</a>


\item <a href="http://www.readwriteweb.com/archives/fliptop\_makes\_rss\_easy\_more\_configurable.php">http://www.readwriteweb.com/archives/fliptop\textbackslash\{\}\_makes\textbackslash\{\}\_rss\textbackslash\{\}\_easy\textbackslash\{\}\_more\textbackslash\{\}\_configurable.php</a>


\end{itemize}
\subsection{UI Ideas}
Article skimmer

\begin{itemize}
\item <a href="http://www.nytimes.com/timesskimmer/">http://www.nytimes.com/timesskimmer/</a>


\item <a href="http://www.readwriteweb.com/archives/nyt\_article\_skimmer\_sunday\_bro.php">http://www.readwriteweb.com/archives/nyt\textbackslash\{\}\_article\textbackslash\{\}\_skimmer\textbackslash\{\}\_sunday\textbackslash\{\}\_bro.php</a>


\item <a href="http://firstlook.blogs.nytimes.com/2009/02/13/sunday-browsing/">http://firstlook.blogs.nytimes.com/2009/02/13/sunday-browsing/</a>


\item <a href="http://www.readwriteweb.com/readwritestart/2009/07/guzzleit-a-personalized-news-d.php">http://www.readwriteweb.com/readwritestart/2009/07/guzzleit-a-personalized-news-d.php</a>


\end{itemize}
Mobile

\begin{itemize}
\item <a href="http://www.readwriteweb.com/archives/check\_out\_this\_awesome\_rss\_reader\_for\_windows\_phone\_7.php">http://www.readwriteweb.com/archives/check\textbackslash\{\}\_out\textbackslash\{\}\_this\textbackslash\{\}\_awesome\textbackslash\{\}\_rss\textbackslash\{\}\_reader\textbackslash\{\}\_for\textbackslash\{\}\_windows\textbackslash\{\}\_phone\textbackslash\{\}\_7.php</a>


\end{itemize}
Other

\begin{itemize}
\item <a href="http://ignorethecode.net/blog/2009/05/20/optimizing-short-titles/">http://ignorethecode.net/blog/2009/05/20/optimizing-short-titles/</a>


\item <a href="http://helvetireader.com/">http://helvetireader.com/</a>


\item <a href="http://www.bravenewcode.com/wptouch/">http://www.bravenewcode.com/wptouch/</a>


\item <a href="http://www.readwriteweb.com/archives/prldr\_rss\_meets\_design\_and\_everybody\_wins.php">http://www.readwriteweb.com/archives/prldr\textbackslash\{\}\_rss\textbackslash\{\}\_meets\textbackslash\{\}\_design\textbackslash\{\}\_and\textbackslash\{\}\_everybody\textbackslash\{\}\_wins.php</a>


\end{itemize}
\subsection{YQL - super data source}
\begin{itemize}
\item <a href="http://developer.yahoo.com/yql/">http://developer.yahoo.com/yql/</a>


\item <a href="http://www.wait-till-i.com/2008/12/12/yql-is-so-the-bomb-to-get-web-data-as-xml-or-json/">http://www.wait-till-i.com/2008/12/12/yql-is-so-the-bomb-to-get-web-data-as-xml-or-json/</a>


\item <a href="http://ajaxian.com/archives/yql-converting-the-web-to-json-with-mock-sql">http://ajaxian.com/archives/yql-converting-the-web-to-json-with-mock-sql</a>


\end{itemize}
\subsection{Semantic data sources}
\begin{itemize}
\item <a href="http://semanticproxy.com/">http://semanticproxy.com/</a>


\item <a href="http://www.opencalais.com/">http://www.opencalais.com/</a>


\end{itemize}
\subsection{Feed sources}
\begin{itemize}
\item <a href="http://www.guardian.co.uk/help/feeds">http://www.guardian.co.uk/help/feeds</a>


\item <a href="http://www.postrank.com/twitter">http://www.postrank.com/twitter</a>


\end{itemize}
\subsection{Converting partial feeds to full feeds}
\begin{itemize}
\item <a href="http://fivefilters.org/content-only/">http://fivefilters.org/content-only/</a>


\end{itemize}
\subsection{Term extraction}
\begin{itemize}
\item <a href="http://fivefilters.org/term-extraction/">http://fivefilters.org/term-extraction/</a>


\end{itemize}
\subsection{OPML parsing (merge into Horde\_Feed)}
\begin{itemize}
\item <a href="http://freshmeat.net/projects/opml-parser-class/">http://freshmeat.net/projects/opml-parser-class/</a>


\end{itemize}
\subsection{Typography}
\begin{itemize}
\item <a href="http://kingdesk.com/projects/php-typography/">http://kingdesk.com/projects/php-typography/</a>


\end{itemize}
\subsection{PDF generation}
<a href="http://fivefilters.org/pdf-newspaper/">http://fivefilters.org/pdf-newspaper/</a>

\subsection{Podcast fetching}
\begin{itemize}
\item <a href="http://ostatic.com/blog/automatically-snag-podcasts-from-the-internet-with-juice">http://ostatic.com/blog/automatically-snag-podcasts-from-the-internet-with-juice</a>


\end{itemize}
\subsection{NYTimes data source}
\begin{itemize}
\item <a href="http://open.blogs.nytimes.com/2009/02/04/announcing-the-article-search-api/">http://open.blogs.nytimes.com/2009/02/04/announcing-the-article-search-api/</a>


\item <a href="http://www.readwriteweb.com/archives/nyt\_times\_newswire\_api.php">http://www.readwriteweb.com/archives/nyt\textbackslash\{\}\_times\textbackslash\{\}\_newswire\textbackslash\{\}\_api.php</a>


\end{itemize}
\subsection{Video sources}
\begin{itemize}
\item <a href="http://www.hulu.com/feed">http://www.hulu.com/feed</a>


\end{itemize}
\subsection{Vanity feeds}
\begin{itemize}
\item <a href="http://search.twitter.com/">http://search.twitter.com/</a>


\item <a href="http://blogsearch.google.com/">http://blogsearch.google.com/</a>


\item <a href="http://smarterware.org/2877/twitalytic-alpha-preview-archiving-curating-and-threading-tweets">http://smarterware.org/2877/twitalytic-alpha-preview-archiving-curating-and-threading-tweets</a>


\item <a href="http://smarterware.org/4186/introducing-thinktank">http://smarterware.org/4186/introducing-thinktank</a>


\end{itemize}
Allow one-step creation of de-duped searches on these and other sources


\noindent\rule{\textwidth}{1pt}
Back to the <a href="https://wiki.horde.org/Project">Project List</a>

\end{document}
