Discussion forum

Hmm, two months since my last post about a new feature? Bah, why that’s par for the course! I’m sure you all know this is a very part-time hobby for me, right? Well, actually the feature I’m announcing this time is geared toward compensating a bit for this shortcoming. I’ve added a forum to the site, because I think it’s important to have an area where users can talk directly to each other. Of course, I hope users talk about all kinds of interesting subjects, but in particular I’ll be glad if people post questions about using the site (or if they find bugs!), which either I can answer myself, or some knowledgeable user can help out. I don’t have a “submit a comment or bug report” form, because I don’t feel like there’s enough feedback to the user, and plus no one else gets to see it. So I guess I was holding out for the day I had enough patience to integrate a fully featured forum into the site.

By the way, I chose phpbb3, and there was very little help out there on integrating it into a Rails application in the way I wanted. I’m sure others will want what I wanted, so I should put together a post so that Google can index it and the next sucker can do what I did.

Comments

New social feature: recent activity

The My Shelves page now shows recent activity on your friends’ shelves. The included activity is: adding/deleting/changing a shelf, adding/deleting/changing an item, having a wishlist item claimed, and being friended or unfriended.

This information is also available as an RSS feed, so you can track activity in your favorite aggregator. I use Google Reader.

RSS feeds are by their (current) nature public URLs, so I have taken some measures to prevent the accidental release of private information via the RSS feeds, all of which parallel what Facebook offers. First, the feed is marked “deny” using the Bloglines access control standard. This prevents aggregators from offering these feeds as suggestions to other users. Second, I have protected the feeds from web crawlers in the site’s robots.txt file. Third, each user may opt out of having their activity included in any RSS feeds. This is done from the My Account page. Opting out guarantees that none of your activity that was intended for your friends can escape the site via RSS. These are compromises, since the ideal case would be having the feed authenticated by the user for whom it is intended, but none of the aggregators support such a concept. When they do, I’ll support it.

This feature makes the site much more social and fun, since now you can find out what’s going on in one place. Enjoy!

Comments

Reorder your shelves

A feature that has waited a long time has finally arrived. The shelf list in the side bar can now be reordered however you want! I have wanted to put my shelves in a particular order (roughly, but not quite, chronologically) for the longest time, and now I have!

To do it, visit My Shelves page and drag around the rows of the list until you’re happy. That’s it, it’s all updated in real time thanks to the magic of Ajax.

Comments

Relaunch!

I’ve switched www.shelfcentered.com over to the brand new codebase I’ve been working on (very very part-time, I’m afraid) for 6 months. The new site should, for now, behave pretty much like the old one, as I didn’t want to both port and change the code. The new platform will make it much easier to add features to the site. I threw away every line of code I wrote for the first version, from 2005 through the end of 2007.

Here’s to the future, and many exciting new features!

Comments

Work occurring

Hi, ShelfCentered fans. Just pinging the blog to let you know that work on ShelfCentered is in fact going on, albeit in a low-key way. I’m cleaning up the underpinnings a bit to make it easier to add new features and ideas to the site. So keep right on having fun making shelves!

Comments

Tag pairs

I’ve been designing a new tagging feature for ShelfCentered, and I think it’s one that should be widely used everywhere tags are used. Regular vanilla tags are pretty useless I think, since everything lives in one huge namespace. They can only be strings, and so can’t contain any structured information. I know, for example, that some people like to indicate whether they lent some of their items to other people and when. Most cataloging products include a feature like this. My idea is to roll uses like that into the tags, offering complete flexibility to the user, as well as offering the power of structured data.

They will work like this: instead of a tag just being a string, it will be a pair: name and value. The name is a string, anything you want, like “Category”, “Lent To”, or “Location in House.” The value is a typed field where you choose the type: text, number, date, url, or boolean. If you want to indicate who you lent a book to, make yourself a new tag pair “Lent To” of type text, and add it to your catalog, then fill it in when you lend something. Use “Lent On” with the date type to indicate when you lent it.

Having named fields lets you organize tags in any way you want. Having typed fields will let you search and sort in new ways, and goes light years beyond what regular tags are capable of doing for organizing data.

I think this will catch on. It’s like having database software attached to your shelves!

Comments

New language, new host

The port went very well, and the site is now moved to a new host. Everything seems to be running smoothly, but do let me know if you encounter any hiccups.

Comments

Migrating

I’ve started migrating SC to PHP5 and MySQL 5. I hope this doesn’t become too much of a rabbit hole. I’m doing it so that it’s easy to move to a new hosting company that offers these modern versions, but in the meantime I need things to keep working on the old versions, in case there are bugfixes needed. And so, I’m going to have to be careful to test everything with both versions of these tools, as I believe it’s possible to write version-neutral code. Haha, we’ll see. In a pinch, the first time I have to make a change that breaks on PHP4, I’ll branch my code. Thanks, Subversion!

Comments

RSS

I’ve added RSS feeds for all shelves, yours or others’. The link to the feed is on each shelf’s page, attached to one of those ubiquitous (and now even more ubiquitous) little orange feed icons. These feeds will contain all the items currently on the shelf, and will let you know if they were added or edited. Eventually I’ll include deleted items, but right now I actually delete them so all trace is gone. I’ll make deletion lazy at some point, so that there’s evidence that you used to have an item on a given shelf.

I tested the RSS feeds with Google Reader, Bloglines, Safari and Firefox. Let me know if you find a problem using the feed.

In lesser news, the default page size for a shelf is now 100 items, and whatever page size you choose is saved, but only for your own shelves. I plan to introduce saved preferences for viewing other folks’ shelves too, eventually. There are two reasons for the bump in page size. First, I managed to speed the site up by finding some data I can cache instead of hitting the database as much, and so the perceived load time for pages has gone down, allowing me to show the entirety of a normal-sized shelf all at once. Second, the page metaphor is really an old-school optimization for sites like Amazon, and it was by playing with their web services that I got into that bad habit — they have a model of 10 items, one page at a time. It was using their web services that got SC.com started, and so it’s natural that at first I matched the shelf metaphor to their concepts, but dammit if I’m not breaking free!

Comments

Small visual refresh, plus tooltips!

Widespread visual changes were made over the last few days, by both Alison and myself. The pages to create and edit FreeForm items were tightened up, as were the pages to create and edit shelves. The sidebar lost those little flowers in favor of a cleaner look. Arial now rules the roost instead of Verdana, though the jury may be out on that one. Meanwhile, on the item side, items now live in a single unified rectangle instead of the tripartite thingie with a box around the picture, the text, and the checkbox. Also, the checkbox now gives a better visual cue by highlighting the item background color. Just a bit more DHTML for your GUI pleasure.

The best new feature, though, is entirely due to Alison. Tooltips! You can see these for example in the “Add FreeForm Item” page. Next to the field for the image URL, there’s a little help graphic which explains what this field is for when you mouse over it. There are more on the Manage Shelves page. This is a great way to include lots of helpful explanatory text without cluttering the page. And the graphic really conveys the presence of extra info in a tiny space.

Comments