HAYCORN — 31 January 2006

Beebo redesign update

I basically only have two things left to do before I can put the new! redesigned! Gulfstream live:

  • Rewrite RSS generation code. (I’d do Atom as well, except there doesn’t seem to be a good Perl Atom library. (Or any other language actually.) The content will be coming from SQLite so I don’t really care what language it’s written in.)
  • Write PHP reverse proxy. The content is comes from SQLite (join on a few tables), and is then piped through Perl and XSL. A separate process is started up for each page, so this is a bit slow. (It would be okay if I could get all these bits running within the server, but that will make things a whole lot more complicated and I want to be able to run the whole shebang to be able to run on just about any host; Apache rewrites (will embed configuration directives into the URL) + a PHP cache seems like the best solution.)

Things to do after this:

  • Get comments back. Comments are slightly problematic. Ideally, the distinction between entries, comments, trackbacks, other blogs’ comments on the same URL, and other people’s tags (i.e. del.icio.us entry) shouldn’t be as clear-cut as they currently are. Everything should be a sort of “first class object.” For example, it should be easy to find every comment a given user has made, both across a site, and across the entire internet. I also don’t want comment trees or official comment “replies,” but it needs to be easier to figure out if someone has replied to your comment. I’m thinking of highlighting comments where someone writes something like “Michael S.: …”. (Though I’ve never got enough comments on my blog to make this worthwhile, or even see if it actually works…)
  • Fix up the NY Times link situation. At the moment I’m providing “email this” links after each NY Times article link, which used to let you email the article to yourself even after it had expired, but this stopped working recently. I should probably be pulling the links from Aaron Swartz’s NY Times link generator … although there’s no API for this yet, so this is going to be a bit messy.
  • Convert rest of site to new design. A headache, but I’ll try to do this so it’s less work next time.
  • Plot Flickr photos on a Google Map. Have started doing this; it’s actually pretty straightforward. The one slightly interesting problems is how to calculate which images fall within a given area, so that you’re not trying to draw absolutely every photo at once. Whilst there’s lots of searching and sorting algorithms for 1D data (e.g. list of names) there don’t seem to be as many for data that falls in two or more dimensions. Apparently PostgreSQL and MySQL have a special spatial datatype that uses something called R-Trees but I couldn’t find a sensible description of this. I have something that’s pretty simple and should work reasonably well with regular databases, though. (Basically, normalise co-ordinates, convert to binary, then can use fast substring matches instead of range searches.)
  • Finish super aggregator. (This is sort of related to the first point.) The super aggregator would produce a combined page of everything I produce: Blog, Journal, blog comments, Flickr, Wikipedia contributions, 43*, etc. Email would theoretically be included too, though probably never displayed publicly. (You would be able to use this on other people as well … I sometimes think of this as a “super stalker.”)