Atom Sources

I’m working on a project where I aggregate entries from a slew of feeds into a single feed. The output feed will be a valid Atom feed, and of course I want to make sure that I maintain all the appropriate metadata for each entry I collect. The <source> element seems to be exactly what I need:

If an entry is copied from one feed into another feed, then the source feed’s metadata (all child elements of feed other than the entry elements) should be preserved if the source feed contains any of the child elements author, contributor, rights, or category and those child elements are not present in the source entry.

<source>
  <id>http://example.org/</id>
  <title>Fourty-Two</title>
  <updated>2003-12-13T18:30:02Z</updated>
  <rights>© 2005 Example, Inc.</rights>
</source>

That’s perfect: It allows me to keep the title, link, rights, and icon of the originating blog associated with each entry.

Except, maybe it’s the database expert in me, but I’d like to be able to have it be more normalized. My feed might have 1000 entries in it from 100 sources. Why would I want to dupe that information for every single entry from a given source? Is there now better way to do this, say to have the source data once, and to reference the source ID only for each entry? That would make for a much smaller feed, I expect, and a lot less duplication.

Is there any way to do this in an Atom feed?

  • E-mail this story to a friend!
  • Sphinn
  • StumbleUpon
  • Facebook
  • del.icio.us
  • LinkedIn
  • TwitThis
  • Digg
  • Google
  • MySpace
  • Reddit
  • StumbleUpon
  • Technorati
  • Yahoo! Buzz

Sociable Plugin for Blosxom

I notice a number of places recently where some blogs had a nice array of small icons to make it easy for readers to add particular entries to their favorite social bookmarking sites. The example I noticed most recently was on Simple Mom. After a bit of digging, I found the Sociable plugin for WordPress. It had just the format I was looking for.

So today I ported it to Blosxom. You can get it yourself here. You’ll also need to download the Sociable WordPress plugin so that you can get all the necessary images and styling. Read the docs for how to use it; it’s pretty simple, and supports a lot of social bookmarking sites, and even good ’ole “Email” and “Print” links.

And of course, also starting today, you can see the links right here on my site. So, yeah, go ahead and link me up!

  • E-mail this story to a friend!
  • Sphinn
  • StumbleUpon
  • Facebook
  • del.icio.us
  • LinkedIn
  • TwitThis
  • Digg
  • Google
  • MySpace
  • Reddit
  • StumbleUpon
  • Technorati
  • Yahoo! Buzz

Now with Markdown!

Lately I’ve been fiddling a bit with Markdown, John Gruber’s minimalist plain text markup syntax. I’ve become more and more attracted to Markdown after I’ve had to spend some time using Trac and, to a lesser degree, Twiki and MediaWiki. The plain-text markup syntax in these projects is…how shall I put this?…gawdawful. Why do I hate these wiki syntaxes? Becaus they’re unnatural. Maybe it’s just because I’m most familiar with it, but Trac’s syntax is just completely random and inconsistent. Trying to get anything other than simple paragraphs formatted just right is just a giant pain in the ass. Just try have multiple paragraphs in a hierarchical bulleted list and you’ll see what I mean. If I wanted to worry about space this much I’d hack Python! I mean, seriously, there’s a reason I write my blog entries in pure HTML. It’s not so user-friendly, but at least I know exactly how something will be formatted when I’m done.

But Markdown is different. It’s syntax is almost exactly like what I’ve been using in lain-text email messages since the mid-1990s. It’s humane in a way that Textile only approaches in its inline markup (as long as you don’t use attributes, of course). There are a few oddities, such as the definition list syntax used by PHP Markdown Extra and MultiMarkdown is a bit unnatural. But overall, it’s quite close to what I type anyway. I’ve been writing the pgTAP documentation in Markdown, using Discount to generate the HTML you see on the Web site (plus my own custom hack to create the table of contents), and it’s just a thrill that it’s so easy to maintain: I can easily read and edit the README file like any other text file, and then generate the HTML for the Web site with a simple make target. It has been such a great experience that I’m tempted to stop writing documentation in POD!

So in my next app, I’ll likely be making use of MultiMarkdown for the end-user management of content. It has nearly everything I want, formatting-wise, and I can likely get used to the few cases where its syntax seems a bit weird to me. Plus, I can then use the generated HTML to output PDFs and other formats from the same document. I expect it to be a dream to work with. (Oh, and thanks to Aristotle Pagaltzis for patiently putting up with my questions about markdown in private email messages; they’ll help keep me from saying anything too embarrassing on the Markdown mail list!)

In the meantime, I’ve modified the comment system on this blog to support Markdown. You can still use HTML in comments, same as always, as Markdown passes HTML through unmolested. But few of you ever did that, and I was always adding HTML tags to the comments. Now maybe I won’t have to: Markdown is so easy and natural to use, that the vast majority of commenters will just leave paragraphs and they’ll look beautiful.

At any rate, you now have one less reason not to leave a comment!

  • E-mail this story to a friend!
  • Sphinn
  • StumbleUpon
  • Facebook
  • del.icio.us
  • LinkedIn
  • TwitThis
  • Digg
  • Google
  • MySpace
  • Reddit
  • StumbleUpon
  • Technorati
  • Yahoo! Buzz

Blog Restored, Google Analytics, FeedBurner

My “Server Room”

Some of you no doubt noticed that this site was down for several days, starting last Friday and lasting until yesterday. Sorry about that. I had a hard disk failure of some kind on the ca. 1999 OptiPlex I was using. I’ve had a newer box (ca. 2005) to move to for a while, but lacked the tuits. With this change, I was forced to make the switch. Fortunately, a Debian install CD let me login to the OptiPlex and access all my files, so I was able to recover everything. I even managed to keep the file modification times the same, so feeds won’t show everything as unread (which I’ve seen many times when other bloggers I’ve known have switched providers or recovered from some catastrophe). Unless you tried to hit this site over the weekend or on Monday or Tuesday, you should notice no changes at all (except speed, the new box is a lot faster!).

Naturally, I took advantage of this opportunity to get my blog configuration into SVN via my Capistrano deployment system. Hell, none of this stuff was even backed up before (although I did back up all my blog entries about a week before this happened—but not comments, yow!). The new box is now properly backing itself up and backing up the Kineticode server, and I can make changes to Blosxom and configure and reboot the blog from my MBP. Yay! No more remote editing.

I’ve also upgraded my “server room,” moving out the gigantic 17" CRT and putting in the 17" flat panel screen I’ve had floating around. I also plugged a USB keyboard into my KVM, so I no longer have to move keyboards around when I switch between the Linux server and the G3 Mac server. Of course, now that I have large disks and Time Machine running on all the other boxes in the house, we don’t use the G3 anymore. So I think we’ll be donating it soon.

Another change I’ve made was to stop doing my own log analysis (the command-line tools are such a PITA) and switched to Google Analytics and FeedBurner for tracking visitors to the blog and its feeds. I’ve still got the old log files around, so I can see how things have changed since before the switch to outside analytics providers, but I’ll probably just create a report from them and then ignore them from now on. Too much work to track that stuff.

In the future, I’d like to switch from Blosxom to some other tool. Maybe Movable Type, now that it’s open source. It’s pretty well-regarded and written in Perl, so I could hack it pretty easily. What I should do is avoid writing my own Blog engine. Right? Right?!. In the meantime, I have other priorities, so I’ll be sticking to Bloxsom for a while.

  • E-mail this story to a friend!
  • Sphinn
  • StumbleUpon
  • Facebook
  • del.icio.us
  • LinkedIn
  • TwitThis
  • Digg
  • Google
  • MySpace
  • Reddit
  • StumbleUpon
  • Technorati
  • Yahoo! Buzz

Teasers Only Atom Feed

Select a feed

I’ve just added a new feed: teasers only. It makes things a log shorter for those who just want to get a teaser for each blog entry, rather than complete entries, such as Planet Perl and Planet PostgreSQL.

Any questions or problems? Leave a comment. Thanks!

  • E-mail this story to a friend!
  • Sphinn
  • StumbleUpon
  • Facebook
  • del.icio.us
  • LinkedIn
  • TwitThis
  • Digg
  • Google
  • MySpace
  • Reddit
  • StumbleUpon
  • Technorati
  • Yahoo! Buzz

New Just a Theory Blog Policy: Limited Comment Period

I’ve had an open policy on comments on this blog since it started. A couple years ago, I added a timeout on trackback pings, so that you can’t trackback ping a posting more than two weeks after I wrote it. But I left manual comments in, along with the simple math bit, since comments and spam have been low volume.

Curiously, though, although this is not a popular blog, and I’ve posted to it all of twice in the last six months, I’ve been getting a lot more comment spam in the last few weeks. I’ve been having to manually delete upwards of 100 spam comments a day. Well, I’m bored with that. So I hereby announce a new comment policy: You can comment on a blog post for up to two weeks after I post it. After that, the comment period will be over. I’m sorry to have to do this, and maybe it will change if I ever switch to Word Press or something, but for now, I think it will do.

The vast majority of non-spam comments I get on any particular post after two weeks or so is a request for support. So I don’t think that the new policy will hamper anyone much, and for those looking for support, well, this is not the appropriate forum. But if you do feel compelled to comment on something after the comment period, just email your comment to me and I’ll add it in as I deem appropriate.

Thanks for understanding. I really appreciate getting this time back every day. And, of course, if you’d like to respond to this new policy in any way, well, you have two weeks to leave a comment on this post. ;-)

  • E-mail this story to a friend!
  • Sphinn
  • StumbleUpon
  • Facebook
  • del.icio.us
  • LinkedIn
  • TwitThis
  • Digg
  • Google
  • MySpace
  • Reddit
  • StumbleUpon
  • Technorati
  • Yahoo! Buzz

david.wheeler.net Content Migration

I’ve completed the migration of all of the content from my old site, david.wheeler.net. All requests to that domain will get a permanent redirect to this site. Where possible, I tried to make the old URLs redirect to the new URLs. So if you try to connect to david.wheeler.net/osx.html, you should be automatically redirected to www.justatheory.com/computers/os/macosx/my_adventures.html. The same goes for the following documents:

If you happen to notice that I missed anything, comment on this blog entry to let me know.

  • E-mail this story to a friend!
  • Sphinn
  • StumbleUpon
  • Facebook
  • del.icio.us
  • LinkedIn
  • TwitThis
  • Digg
  • Google
  • MySpace
  • Reddit
  • StumbleUpon
  • Technorati
  • Yahoo! Buzz

Powered by KinoSearch