Tab Completion

I'm Tab Atkins Jr, and I wear many hats. I work for Google on the Chrome browser as a Web Standards Hacker. I'm also a member of the CSS Working Group, and am either a member or contributor to several other working groups in the W3C. You can contact me here.
Listing of All Posts

Using Circles in Google+

Last updated:

This'll only be useful for the handful of you who are actually in the G+ beta so far, but I guess more people will find it as we expand our trial.

Circles confused the hell out of me at first. I'm not sure if they've grown on me, or they've changed to be more understandable, or what, but now they're really easy to understand. However, let's assume that you are like I used to be, and confused by how Circles work and what they do. They do a lot of things, so this is understandable.

Basically, I can put people in circles, and they can put me in circles. It's asymmetrical, and neither of us has to give permission for this; the model for circles is closer to Twitter's "follow" than Facebook's "friend".

I can post to circles, or to the magic "public" target. I can listen to circles, or to the magic "Stream" and "Incoming" streams.

What Will I See?

"Stream" shows posts from everyone I follow, if the post was public or sent to a circle they put me in. This is basically equivalent to Twitter - you can follow whoever you want, and you see everything they post publicly.

The circle streams are the same, except limited to the people I've put in that circle. This just lets you cut down on the noise. This is basically equivalent to a Twitter list.

The Incoming stream is magical - it shows people who you don't follow, but who targeted a post at you (by putting you in a circle and posting to that circle). Kinda like your @mentions page on Twitter, but likely much noisier. It's easy for people to abuse this and spam you, so it's really easy to block people or report them for spam here. You can also easily follow someone from here if they're cool.

What Will Everyone Else See?

Now, let's look at the inverted model - when I post to different targets, who will see it?

If I post to public, all of my followers (people who have me in a circle) see it. It doesn't matter whether I follow them or not. They'll see my post in Stream, and in any circles they have me in. Plus, if anyone visits my profile page, they'll see my public posts. This is basically equivalent to a normal twitter post.

Posting to the "Your Circles" stream is like protecting your tweets, but on a per-post basis. Posting to an individual circle is the same, but more restricted. Posting to "Your Extended Circles" is the same, but less restrictive (it's visible to everyone you follow, plus everyone they follow). You may have other magical circles that work similarly (for example, in the internal beta I have a "Google.com" circle, which is visible to everyone in the beta). If the other person follows me, then the post will show in their Stream and the circles they have me in. If they don't, it'll show up in their Incoming.

There's one aspect of circles that I really like here - messages are explicitly tied to the circle itself, not the people in the circle. If you add or remove people from the circle, they gain/lose access to the posts that are restricted to that circle. So if you have a circle for a secret project, and more people join the project later, you just have to add them to the circle and they'll see the full history of things. This could also be bad - for example, if you have a "BFF" circle and you use it to discuss whether to add another person to the circle, when they do get added they'll see the discussion. You can always just delete posts, of course. Another potential problem is that if you set up a temporary circle, for organizing a party for example, and then later clean up your circles and delete it, those posts will now only be visible to you - no one else can see them, because they're not attached to any circle.

What's Missing?

My only problems so far are based on circle algebra.

  1. If I want to post to multiple circles, I have to add all the circles explicitly to each post. For example, say I'm a teacher with circles for each of my classes, and I want to send some posts to all of my students. I could create a combined circle and add everyone to it, but then if I add anyone new to the individual circles I have to remember to add them to the combined circle too. Being able to explicitly nest circles would help here, so I could be assured that the combined circle actually holds everyone in the individual circles.
  2. If I want to listen to everyone I follow except a certain subset, I have to make a circle with everyone but that subset (this runs into similar problems as #1). For example, in Twitter I follow a bunch of webcomic artists, who are awesome but very noisy. Sometimes I just want to look at everything but them, but I can't do that easily. Solving this would involve nesting circles and negating some of them, so the circle would include everyone but the people in the negated circles. This gets confusing if people are in both a positive and a negative circle, though. My use-case would be solved if you were limited to starting from "Everyone" and then just negating circles from it, which avoids the difficulties.
  3. This one's a bit harder. I play a few Facebook games, and I want to see my friend's game-related posts when I'm playing the game, but no other time. G+ has basically the same model. I can't use the solution for #2, because my game-friends may be real-friends too, so I don't want to exclude their normal posts, just the game-related ones. I think the solution to this would involve a magic stream that games and other apps are restricted to posting to, so I can read my normal Stream without game-spam but see the game stuff when I really want it.

(a limited set of Markdown is supported)