Archive of "Development"

Archive for the "Development" Category

My Ultimate Aggregator

Posted on

I want a feedreader that is also a mublog client and an activity stream aggregator. That is, like Bloglines+Socialthing+Tweetdeck, as a desktop app.

Content could be categorized (automatically, by source, or by metadata from the source) as “short” (like twitter/, “medium” (like tumblog-style stuff, or content from backtype), and “long” (blog posts etc), as well as by any actual categories/tags on the content (including hashtags on tweets, etc), and by source.

The left pane could let you filter by only certain categories (select one or more sources/categories/lengths, union each kind and then intersect, ala (source1 union source2) intersect (category1 union category2) intersect (length) ). Each kind of category would be separated by a line or something, with lengths at the top (there’s just three), then sources, then categories. Unread counts next to all of them.

Right pane in river-of-news (or, more like tweetdeck) style. Style should be smartly selected based on item. Tweets/mublog posts should link the username, @replies and #, etc, and show the avatar. Feeds with mediaRSS show thumbnail lieu of avatar. Feeds with a feed image show that. Otherwise, show favicon. Keep all items the same size, with snippets, etc, and click/otherwise select to expand.

Action links associated with each kind of data. Comment links for feeds with a <comments> tag on items, “show comments” for ones with wfw:commentRSS, long-term it’s be great to post a comment from the feedreader. “favourite”/”reply”, etc for the mublog, “bookmark too” for, etc.

Allow the user to associate multiple authors together (also try to do automatically) and maybe assign an avatar if there isn’t one: so that all of one person’s content displays and archives in a consistent fashion.

*Keep archives*! Make it easy to search through, or browse through, read content by category/author/source. Allow the user to file content under custom categories.

Have awesome keyboard shortcuts. j/k/space/enter/n/d… check out gmail/greader/mutt/trn for inspiration.

Be modular. Don’t just hardcode all the services/formats you want to support: take a hint from libpurple and others and just make *everything a plugin*. That way I can have NNTP support and you don’t have to care.

Support feed:// … I know it never took off, but supporting it isn’t hard and may yet prove useful.

Provide sane import/export of all data.

Provide posting support. In the plugins that implement it, of course. This means being able to update my mublog, bookmark to, etc 🙂

*Be portable*! It’s really not that hard to do 80% of your work in a cross-platform manner, so just do it already! Use a cross-platform GUI framework for your initial GUI and add native UI plugins for some platforms (looking at you, Apple fanboi’s) later.

Would I pay for this? Yes. I mean, it would have to be libre software (I’m not going to pay you to restrict my freedom!), but I would pay quite a bit for something like this. I dunno, if I were to pick a number, $40? Something like that. If I don’t figure it out and write it myself. GUI programming is not exactly my strong suit, but I’m playing around with it.

Outline Classes

Posted on

The list of XOXO Developer’s Resources has been updated to include the Outline Classes. Written in PHP4 but with compatability built in for PHP5 this set of classes is designed to be able to parse and create XOXO, OPML, hAtom, JSON, and arbitrary XML documents and fragments. The classes are GPL‘ed.

XOXO Developer’s Resources

Posted on

This is a collection of code resources and APIs for developers looking to work with XOXO in their scripts/applications. There isn’t much here yet, but the list will grow over time.

On some of these, the comments may state that attributes of the first node are considered to be metadata for the entire outline. This is actually up to the developer and the format of XOXO being parsed as there is nothing in the code to facilitate/enforce it.

  • Outline Classes [GPL] — A set of PHP4 and PHP5 comatible classes for both parseing and creating outline data, including XOXO, OPML, hAtom, JSON, and arbitrary XML.

The following, deprecated APIs, have been replaced by the Outline Classes

  • xoxo2array [GPL] — pass in any string containing XOXO data and it will return a nested array of the results. String indexes are considered attributes, numeric indexes are subnodes.
  • array2xoxo [GPL] — takes an array of the type returned by xoxo2array and returns an XOXO string of the data. It will also work with simple arrays.
  • There are also other APIs for working with this array type (for conversion purposes, etc)



  • [Apache 2.0] — Contains two (overloaded) functions, makeXOXO and toXOXO, that create XOXO data from Lists and create XOXO documents from XOXO data, respectively
  • [Apache 2.0] — Contains a class definition for objects that parse XOXO data into themselves