Archive for June, 2007|Monthly archive page

Down with Settings Pages

I’m not a fan of “settings” pages. They give a terrible interaction experience.

To change settings on a settings page, I have to stop what I’m doing; open the settings page; find, change, and often save the setting; then find my way back to what I was doing. If my change wasn’t exactly what I wanted, I have to do it all over again.

More often than not, this breaks my concentration to the point where it may take me minutes to figure out what I had been doing, and get back to it. Productivity tends toward zero.

So, I’m trying something different with BeerRiot. I’m going to try to keep all settings relevant to the page they affect on the page they affect. No need to leave to find the setting elsewhere – just change it and update.

I forsee only a couple of occasions that I’d ever have to make an exception: the structures to change the setting would consume too much space, or the setting doesn’t relate to any other page. The latter is already exemplified by email and password settings.

I think these exceptions being on separate pages may make sense, though. If the structures take a lot of space, they may be complicated, so focusing on them alone may be helpful. If they’re not related to the page I’m on, then I’m probably not worried about getting back to that page after I change them.

Today I have the default map view setting on the map view page, maximum item list lengths on each item list page, and each member’s public information on their own public page. I think they fit pretty well, but of course I’d like to hear what you all think.

Also, does anyone know of any research on this topic? I’ve read a bit of general user-interface stuff, but I don’t recall anything that specifically spoke to “settings” pages.

Don’t Throw Out “Maybe” Yet!

Don’t Throw Out Maybe Yet!

Jeffrey Zeldman’s post “Maybe” is one option too many caught my eye this afternoon. I completely agree with him that “maybe” is a pain in the neck. From my vantage point, yes/no (or like/dislike) are the only user inputs that really matter.

But…

Most of you will notice that BeerRiot has a third option – “shrug”. It wasn’t always this way. The first versions of BeerRiot had no middle ground – you liked a beer, or you disliked it. I was staunch in my position, callously telling people that they should make up their mind.

It wasn’t until over half of the first twenty people to which I showed BeerRiot asked, “Where’s ‘meh’?” that I started to change my thinking. I started to realize that being forced to make a black/white decision was making people uneasy. They really wanted the comfort of being able to postpone making their choice.

The decision was pretty easy at that point. I wanted people to stay around my site. Therefore, it seemed a good idea to make them comfortable. Shrug was born.

In the time since introducing shrug, I’ve found it to be more than just indecision. It’s a way to acknowledge the existence of a thing, without passing judgement. For beer voting, it lets me know that although I have no strong feelings about a beer, I have tried it (something I have trouble remembering with the wide variety available). I can see it working similarly for party invites: it lets the organizer know that even though I don’t know my schedule, I have, in fact, received the invitation.

Here’s another way to think about it. Suppose there is no “maybe” option. You must either accept or decline the invitation. So, what are people who don’t respond? Are they not “maybe”? Maybe you’re a pessimistic person: you consider non-responders “no”. Okay, then, if all non-responders are “no”, then why even have a “no” option? Why not just have “yes”? A unary system – respond “yes”, or you don’t exist.

For BeerRiot, at least, that would seriously cut my dataset. I think the same would be true for party invites. You couldn’t even tell what kind of buffer you might want to plan for – all you would know is the number of people who are definitely coming. Or in BeerRiot’s case, I couldn’t tell if a beer is controversial – I’d only know the number of people who like it.

So, I say don’t throw maybe out yet. It’s more than just indecision. It’s user comfort and metadata all rolled into one.

I’ll leave you with this, though: I don’t see the point in more than three choices. “Kind-of-like” and “Sort-of-dislike” are even less data than maybe to me. At least with “maybe” I can tell the voter is unsure. With “maybe-like”, I can’t tell if she’s unsure or genuinely less positive about this beer than others.

P.S. I love Bill W.’s comment about rating other people’s ratings. It’s exactly the kind of problem that BeerRiot tries to solve.

American Beer Fest Review

Night of the Lagers was awesome. There were quite a few beers there that really did break from the stereotype of Fizzy Yellow Water ™. In particular, I’d call attention to The Tap’s Pilsnaah – really a great example of what I think a pilsner-style beer should be.

There were also beers that didn’t appeal to me, of course, but the big news of the evening was Harpoon’s absence. The brewery sponsor, with their Official Beer of the fest, Pre-Prohibition Lager, didn’t even show up Friday night. The word is that the “Pre-Pro” turned out so bad that they refuse to serve it. Very sad, if not fitting that the recipe from the old days fell to the problems of the old days – you never knew what would come out of a barrel after months of storage.

Anyway, I’ve added the rest of the line up for Saturday’s sessions under the same tag. Please log in, rate, and comment if you’re going today. There are quite a number of beers on the list that I really wish I could be there to try myself!

American Beer Fest

Alas, BeerAdvocate’s American Beer Fest is upon us. If you haven’t bought your ticket yet, get out there and find one. I know a lot of people like to joke about the quality of American beer, but these fests really prove that the joke is only funny to those that don’t know anything about beer. We really produce some wicked good beer here.

I’ve gone ahead and added all of the beers that will be available Friday’s Night of the Lagers. That should make it easy for all of us to record our impressions Saturday morning.

Us?! Why yes, if you happen to be at Friday night’s session, we may bump into each other. You’ll recognize me. ;) Don’t be afraid to say hi – I’d love to hear what you think of the site.

Don’t forget your pen – it’s almost impossible to remember which beer was which 12 hours later.

P.S. I’ll probably add the beer list for the Saturday sessions sometime Saturday morning, unless someone else beats me to it.

Erlang Observations

To those who are considering Erlang and Erlyweb as a framework for their website: just go for it.

A couple of days ago, there was yet another blog post on Reddit about the scalability of Erlang, with the same yaws-owning-apache graph we’ve all seen before. There was absolutely nothing new in the entire post.

In my opinion, there are many reasons to use Erlang that have nothing to do with server performance.

Those of you who found BeerRiot through the Ask Reddit thread about Erlang usage already know that it’s built on Erlang and Erlyweb. My experience with them will be different than others’, of course, but I felt the need to list a few of my [completely subjective] observations about this framework.

So, in no specific order:

  • I like the syntax. I got past the comma-semicolon-full-stop confusion that many complain about within the first few hours of coding. It’s different, refreshing, and not too hard to understand.
  • Development cycles go really fast. More than once, I’ve hashed out some new functionality on my subway commute, then polished it at home and posted it the same evening. Part of this is the pattern matching used in function calls and branches – it translates almost directly from my pseudocode.
  • Some complain about the lack of hierarchy and types – I love it. It makes evening coding feel very free-form after eight hours of Java.
  • Erlyweb and Yaws are both very powerful and useful, yet their codebases are small enough that the thought of digging through their code does not intimidate me.
  • Erlang doesn’t have all of the libraries of other languages yet, but they’re not hard to get to.
  • Hot code loading and the ability to open a shell connected to your webserver doesn’t get enough press. I never stop my webserver unless I’m making a huge change that I’m too lazy to plan the transition for.
  • I dislike typing underscore. I do think it’s a good visual representation for “don’t care”, but I just don’t like to type it. I often use camelCase to define my own functions, but it looks a bit messy in mixed code.

So, yeah, some of these are reasons to use Erlang, some are reasons to use any language with similar features, some are just things to note. I just felt like there needed to be some conversation about Erlang other than its scalability.

If anyone has any specific questions about my experience with Erlang, please post them in the comments. I’ll either answer here or write another post to cover them all in a few days.

BeerRiot – Local

As some of you may have noticed, BeerRiot – Local is live. Thanks to Corey for planting the seed – it’s a mashup of Brewery locations and Google Maps. It’s not exactly what I had planned at the outset, but I think it may be even better. :)

I call it “Local”, but in reality, I just dump all of the breweries I know about onto the map. If you scroll away from wherever the map started, you’ll find all of the other breweries in the proper places.

This makes things a little slower – there’s over 100 pins on there. I checked out ACME’s “Clusterer”, but I just wasn’t happy with the interaction it gave. I’ll have to come up with some other solution soon, but for now, it looks like things actually run pretty decently as long as I’m not browsing with the G4 on which I’m also running my SQL server, web server, Safari with 10 other tabs, iTunes, emacs… You get the idea.

So, why Local as the next feature? Well, it has been one of the most requested features for one thing. For another, I really think it’s important to drink locally. Drinking locally immerses you in the culture of the location, supports the smaller-scale guys honing their craft, and saves energy. Try some homebrew for the ultimate in local, but barring that, seek out any professional in your area and find our what they’re pouring.

If you’re interested in more reasons that drinking locally (or even just drinking beer in general) is a good idea, I recommend finding a copy of Chris O’Brien’s Fermenting Revolution. Hey – and it looks like Chris has a wordpress blog too.

What’s My Google Rep?

Maybe sometimes it’s better you don’t know…

So, I run stats over my logs a couple of times a day (AWStats, if you’re interested). One of the things it tells me is what people have typed into search engines to find BeerRiot.

Last month, the search terms were pretty innocuous – mainly “beerriot” and the names of a few beers. This month, people have started searching for my name.

I don’t find this that strange, of course. I’ve Googled friends and new acquaintances more than once. What has me a little worried is that I am very few of the hits that either Google or Yahoo search returns.

I have to wonder who people think I am after clicking through a page or two of search results.

Just a few hints to get people closer to the right track:

  • I have no religious affiliations
  • I have never broken a Track & Field (or any other sport) record
  • As a general rule, I do not post pictures of my birthday parties on the web
  • I am not a country singer (or a music student)

Any other new webmasters dealing with similar paranoia?

…yeah, yeah, back to coding, I know…

New things *are* coming…

Fear not! I have not forgotten about BeerRiot. No new features have come online yet because this week has been rather busy for me.

Tomorrow is no exception. I’ve gathered the ingredients for a honey porter. :) It’s an all-grain recipe, so I’ll be busy most of the day with that.

Sunday, though. Sunday should be BeerRiot Development Day.

As a teaser, here are a few of the things in the pipeline:

  • Localization (Btw, does anyone have a good source for world cities and their latitudes and longitudes? I’ve covered the US with data from the USGS, but my best link to world data is over ten times as large.)
  • Personalization
  • Discussion forums (for things other than talk about specific beers)

I can’t say which will come out first (or even if some of them will come out), but I thought you all would enjoy the teaser.

Follow

Get every new post delivered to your Inbox.