OpenID is nuts.
Some progress with openid.
* Started using genshi.
* Fixed some problems with saving the session.
* Added some redirects to clean out query variables and POST side-effects.
* Store oid, pape, and sreg data when authenticated.
* Integrated openid-selector (http://code.google.com/p/openid-selector/).
* Factored some things out into a Request class so that a DB connection is never used from a different thread.
How did the DB get in here?  I don't plan on using pape or sreg.
Fixed some things that broke with the last refactor.  And spelling.
Added a concept of users and identities.
Added the latest jquery.
Hooked up rudimentary subscription-adding.
Finally grabbing some feed RSS data.  But how do I want to work with it?
Finally showing the news.
Track starred and read status.
Sharing is caring.  I'm not actually sure if this works right.  Or if this is how I want this to work.  But at first glance, it appears to be working.
Make refreshing news a single operation that fetches all of the individual feeds and then gets the latest data when they're all done.
Link titles and attempt to show content if there's content, otherwise just the summary.
Keyboard navigation is starting to come together.
Show progress when fetching/loading.
Fix some links and make 's' toggle starred status.
Added ability to delete subscriptions.
A handful of improvements after fighting CSS for awhile.
* Show subscriptions in a hierarchy.
* Show some things in a sidebar on the left, news on the right.
* Made it possible to import an .opml file.
MySQL-ized.  Except now I'm regretting it.  UTF8, WTF?
This isn't working reliably, but I think I'm gradually fixing things.  Added a button to mark all items as read.