Ben Godfrey

Archive for April, 2004

Milestone 5 complete

Lots of little niceties added to the groups section, a simple but effective files section and the people section is up and running, with picture uploading and everything. All good stuff. I’m starting to get to the point where I’m finding the odd bug as I test, which is actually a good sign for two reasons: one, finding bugs is better than missing them, they always exist anyway; two, it means that using the site is more complete, the pathways that connect features together are more developed and it’s possible to move around the site in a natural manner.

So, on to M6. M6 is a bunch of cake icing really, but core cake icing. Things like portlets for who’s online, another theme and a help section. I’m hoping that each item in the list should be acheivable in two or three hours. The goal is to have M6 done by the end of this coming weekend so I that I can let some users on to an alpha site with dummy data next week. It’s May next weekend. The original Hype was born sometime in May. It is the third birthday soon and I will release a new version to celebrate it. The version I have now is good enough. It’s just a case of going the extra few steps to make the experience a bit more enjoyable.

Social Software and Sociopaths

Somebody posted a picture of “himself” on Moblog this morning. It was bound to happen eventually. Like many people who run communities (myself included), Mat had hoped it wouldn’t happen and was kind of unprepared for it when it did. Palmpixel flamed the poster and asserted that his post would be deleted and it eventually was, when Mat was woken by Norm.

Earlier in the day, Ladislav linked to Julian Dibbell’s A Rape In Cyberspace, an account of a rather nasty incident of a similar tenor which occurred on LambdaMOO back in the mists of time. I’ve just read the article. The eventual arrival of sociopaths in any social system seems inevitable. What their causes or actions are is fairly irrelevant really, the tricky question is how to identify them and protect the society from their actions.

In LambdaMOO the player was killed by a wizard and a system of voting for wizardly enactments established, on Moblog the post was deleted by Mat and several other core users were given mod rights (these include me, though not a core user, I am a good guy). The user continues to have his account, though his crime was rather less severe than the LambdaMOO rapist’s. Interesting that the two solutions were so similar, different really only in scope. The question is highly political and perhaps the most burning conceptual issue in discussion in the area. As Dibell discusses, your view on this issue is completely tied to your political outlook — anarchist, libertarian, conservative, etc. But this doesn’t help anyone design software.

The easy answer for a developer is the same for a Roman general presiding over a Jewish city horribly offended by the actions of one of their own: wash your hands. Give the group a mechanism to punish or banish or otherwise isolate the offender. The core question, as far as I can see, is what type of model you choose for leveraging that power: democracy (true or representative), oligarchy, even autocracy. How that is implemented then becomes comparitively straightforward and is necessarily tailored to the style of your community and the manner in which your users interact with one another.

So the reason I discuss this is really to look at what solution I might find for Hypothetical. I think the key is isolating the core group. On Moblog, Mat has decided to do this manually, for now at least. Being able to learn from his mistakes and those of others, I want to build in an automatic system from the start. Besides group owners already have the ability to kick people (though not permanantly as yet). There are several useful ways to establish core group membership, some examples of which are:

  • Total post count
  • Post frequency
  • Read frequency — based on page hits or something
  • Account age

The best solution, I guess, would be combine each of these factors, weighted, into a composite metric.

After that, the next decision is how big should the core be? What is the cutoff? The easiest way to do it is to say I want x members and just take the highest ranking users. Another mechanism might be to identify a baseline level of activity and say that anybody above that can be a core member. The vital issue is that whatever cut off is used, it excludes the sociopaths. Once they become core group members, the system will become confused. Democracy within the core group could be employed to protect against this situation, but I think that would rather inefficient in Hype’s case, and the core would fail to act quickly to remove offensive content before the rest of the group are exposed to it, negating the usefulness of the core group system. Bear in mind that the definition of what constitutes a sociopath will be specific to each group. Penis-posting and virtual rape may be the main activity for some groups and so it would be wrong to hardcode prevention of these things.

<edit>Or I could just let group owners appoint the mods for a group. Doh. I have to start thinking more like somebody who’s providing tools to clever people who will face the same problems that all the wizards on the net have faced at some point, rather than just thinking of myself as the lone Hype wizard.</edit>

What powers to give the core is pretty simple: ban users, remove posts, remove files. There is a complication in the case of banning users, they can just get a new account. I first thought that a pure democratic system would be good. If five people think a post is bad, it’s gone. But then you just create five accounts and you’re a god. The freeness of accounts is always going to be a thorn in the side of Hypothetical, whilst simultaneously being essential to it’s functioning. The same was true of LambdaMOO, as the rapist returned with a new account days later.

Milestone 4 and much of 5

Well, first of all, I set out a bunch of milestones for Hypothetical, so that I could measure my progress a bit more. Today I knocked M4 down and got two thirds of the way to M5.

M4 was basically the groups section. That is functionality to browse groups, join them, leave them, create new groups, kick people out of groups and all kinds of funky stuff. That’s all running now. I’m pretty happy with the way it works as well.

M5 is:

  • Visiting
  • People
  • Files

The people section isn’t done yet and I haven’t really thrashed the whole visitor thing that much. That needs some real testing ideally as it’s potential security risk-o-rama. But I’ll get my lovely punters to do that. I’ve used a declarative system, where the view class for a page decides if it’s visitor-friendly. By default all pages are not visitable, so I can tell easily where visitors are able to go and as I add new pages, they’re blocked off automatically. I decided to let visitors see the full set of navigation sections, but get a message if they click any they can’t visit (e.g. post). The page that results in wandering too far reminds me of playing shareware games as a kid. It’s cool.

At points I’ve felt a bit uninspired by some of the interface design I’m doing. Looking at other social sites and taking cues, Hype is a bit flat sometimes. In places where Yahoo would have 15 million links, I have two. But my main target is to get a working version of the software live ASAP so that I can get people on board and take comments from them. In that respect it often just makes the most sense to copy the old Hypothetical and add a few bells and whistles. After all, the old Hype has stood the test of time and still works.

Then there are some other bits where I’ve had no mould. The groups section is an example. I took cues from Yahoo, Tribes and the work I did for TfL for that and it came out looking pretty good. Good enough that I then spread some of the layout style used there to other parts of the site to liven them up a bit. Some areas of the site are pretty utilitarian in design, until I think of something better. But as it’s taking me a moderate amount of time to build, I’m thinking of better stuff as I progress. Here’s to incremental improvement!

I’ve just made the user name at the top of a message into a link to that user’s info page as well. It’s the little things…

Master and Commander

Huzzah! Great stuff. Long but enough plot to sustain it. Very realistic in all aspects. Good fun.

Pirate-speak is for blackguards, sir. An officer in His Majesty’s navy should speak in keeping with his position at all times.

Schmocial Schmoftware

I think social software ain’t all that or a bag of potato chips. Allegedly the toast of ETCON and, like, the biggest thing ever, I’m not totally convinced.

Social software is software, mostly websites, that allow people to hang out and stuff. It’s the first round that hasn’t convinced me: tribes.net, Friendster and so on. In reality, the term is ridiculously broad, covering loads of different potential application areas. It’s not even something new either. I guess it’s just a camel’s back accident, suddenly it’s moved out of the core and gone overground within the startups. I consider myself just outside of that sphere, so the fact that I’m talking about it now says something. That I developed a stoopid simple piece of social software three years ago is a random connection really. That I’m rewriting it now with some urgency says more.

I found an interesting blog post via Microsoft Research of all places, which discusses some of the problems. What use are systems which provide tools to communicate with everybody you knew ever? It’s like the Christmas mail-merge newsletter, or the village notice board that nobody reads. I don’t believe people can really have 300 friends. Rael Dornfest has 115 people in his AIM buddy list, how often does he communicate with each of them?

Hanging out on Hype for so long nips any potential desire to join a friend site like tribes in the bud immediately. I have have joined tribes, just to see what’s up, and I’m not really impressed to be honest. Not that I’ve really given it much time. In my limited bit of exploration, I failed to see anything that really puts it head and shoulders above your run -of-the-mill forum site. Particularly, it seems that the main axis of group activity centers around subjects again. I haven’t built my own tribe, maybe I should just to see. Everything else up there is on my desktop — email, calendar and so on. I already have ways of controlling and sharing those content blobs and they’re things that not really all that social softwarey IMHO.

My thing with Hype at the moment is that the axis of group activity should not be a specific subject, but just group background noise. There’s enough of that and that’s what makes me use Hype. I get a regular feed of hacking, news, links, games, events, blog-like experience entries and many other types of content. I don’t actually visit many other blog like sites on a regular basis, Slashdot and recently boingboing, but that’s it. I’ve no need to stray outside my group.

So I think everybody will be up for that. I’m hoping to attract people who aren’t necessarily so net literate. I think a lot of heavy net users have shoehorned their community fix into comments on blogs, forums and other similar but slightly wrong-headed systems. People who are new will hopefully find Hypothetical easy to use and basically addictive in the way that I do. The test is my 17-year-old sister. If I can get her and her friends to use it, I’m in business.

DnD relaxation

If you drag a file to an app in OS X, the system will check that that application supports opening that file type. If not, you won’t be able to open it. That’s great, except that sometimes you need to force it, particularly with raw text files of various kinds. I just found out that by holding down alt you can force it.

Also, I just bound my mouse wheel click to Exposé and the various combinations to shift/command middle-click. Enabling Exposé on the mouse makes sense. Maybe I’ll find it fits into my M.O. more naturally now.

<edit date=”15.04.2004”>Scratch that, doesn’t seem to work at all. Wonder how it worked that once…</edit>

Another Hype progress update

Well, it’s not going quite as quickly as I hoped. I was looking forward to having most of it done by now, but the more I do, the more I realise there is to be done.

On the plus side, the core groups functionality, posting features (replying, editing, removing) and personalisation stuff is all there and pretty solid now as well. I was hoping to have the archive up by now, but this has eluded me. That’s tomorrow’s job. Then after that there’s visitors, file uploads, the news system, a set of pages for browsing groups and tools to create and manage them at times other than first login. I’d like to do a swishy theme manager, but that can probably wait until a later date. Autolinks-like functionality needs to go in as well, even if it’s just adding target=”_blank” to links for now. Ooh, that can be an option.

So, when I’ve done most of the stuff in the list above, I want to go live. Which means shoe-horning the 35,000 messages from the current database into the new schema first. All in, I reckon I have five or six days work left to do at least.

Nuts.

Cycling in London rocks

I rode my bike to Buckingham Palace today, checking out Brompton, Knightsbridge, Victoria and Chelsea on the way. I raced a bus down from Knightsbridge to Sloane Square which was quite fun. He just won though — higher top speed. After that I meandered to the palace, I didn’t mean to go there but suddenly I was on Buckingham Palace Road and I thought what the hey. I stopped for a bit and gawped at the tourists. I was just posting to my moblog when it started to rain, then hail. Got very wet on the way back and didn’t really know where I was going for much of it, buses either side, glasses covered with water. I was quite glad when I found Chelsea Bridge and followed the river home (rivers are extremely handy navigational aids).

When I first got my bike I thought riding in the city would be quite scary, and on my first outing I was kind of intimidated. I’d only ridden in the countryside around my Mum’s house before. But it’s really not at all scary. You can always just stop and ride on the pavement or walk. Today I noticed that traffic lights, which of course cover London, cut great rifts in the traffic flow. So when the traffic is moving you just go straight and try to be predictable. Then wait for a light to leave everyone behind you for a bit and do whatever maneuvering is required, e.g. turning right across three lanes of the A4 at half past five. Rush hour is a good time to ride, there are lots of other cyclists about and the real traffic is mostly static or very slow moving.

The other thing about riding a bike in London is that you can explore for miles and miles in a relatively short space of time and you’re outside experiencing it. You can look around, which you can’t in a car. You can be more flexible with the road system as well, seeing as you can instantly transform into a pedestrian whenever it’s convinient. I’m just wondering where to go next. I might explore the south bank a bit more. Hmm, it’s difficult to know where the best stuff to bike around is :-).

I haven’t been riding long and I’m probably being a touch naive, I’m sure I’ll have an event of some kind at some point, but for the time being riding in London is one of those things where everyone thinks it’s madness, but actually it’s nowhere near as scary as they think. Kind of like being out after dark in Nairobi (though that did take some getting used to), or going to the Bronx. Try something scary today, maybe you’ll find it’s really exhilarating.

Hypothetical 2 progress

Saturday I started hacking in some of things I’ve been thinking about for a while. Group support basically. “Hypothetical gives an established group a place to hang out online” is to be the value proposition. So I created a social software style login page, i.e. one that won’t let you in until you fill in a form :-). My version allows you to visit however, though that isn’t yet implemented. I also implemented the beginnings of the group membership subsystem and started modding the current features so that they exist in a group environment. Cool thought: groups is Hypothetical virtualisation.

Tonight I hacked a profile section together in just over an hour. It reads the config layout like wwWebflow, though there’s only basic information there at the moment (very much unlike wwWebflow). That will get fleshed out though. For the first time in Hype 2, it’s possible to change your theme! Not that there are any other themes to use :-(. Profile section lacks niceties as well, such as drop downs where appropriate and things like that. Like I said, more context needed in the config layout. Once the data is in the layout, drawing on it is as easy as {html_options}.

Shirky’s rules of group behaviour

As outlined in The Group is it’s Worst Enemy.

Things to assume:

  1. You cannot completely separate technical and social issues.
  2. Members are different than users. The core group.
  3. The core group has rights that trump individual rights in some situations.

Things to code for:

  1. If you were going to build a piece of social software to support large and long-lived groups, what would you design for? The first thing you would design for is handles the user can invest in.
  2. Second, you have to design a way for there to be members in good standing. Have to design some way in which good works get recognized. The minimal way is, posts appear with identity. You can do more sophisticated things like having formal karma or “member since.”
  3. Three, you need barriers to participation. This is one of the things that killed Usenet. You have to have some cost to either join or participate, if not at the lowest level, then at higher levels. There needs to be some kind of segmentation of capabilities.
  4. You have to find a way to spare the group from scale. Scale alone kills conversations, because conversations require dense two-way conversations. In conversational contexts, Metcalfe’s law is a drag. […] You have to have some way to let users hang onto the less is more pattern, in order to keep associated with one another.

A non-rule choice snippet:

All groups of any integrity have a constitution. The constitution is always partly formal and partly informal. At the very least, the formal part is what’s substantiated in code — “the software works this way.”

The informal part is the sense of “how we do it around here.” And no matter how is substantiated in code or written in charter, whatever, there will always be an informal part as well. You can’t separate the two.

And:

Users have to be able to identify themselves and there has to be a penalty for switching handles. The penalty for switching doesn’t have to be total. But if I change my handle on the system, I have to lose some kind of reputation or some kind of context. This keeps the system functioning.

Monster

Monster is an amazing film. As I sat down at the beginning I thought, I’m not sure I want to watch this. The previous film I saw was 21 Grams, also excellent, but in no way jolly. I have to give myself a break, I thought.

The film is very sympathetic to Aileen Wournos. The Daily Mail reader in you will turn that sentence around and could revile the film and me for saying such a bleeding-heart liberal thing. I believe the truth is that people do things for a reason and Aileen is a very sad example of that.

Charlize Theron comes out of the right field to play Aileen and gives an amazing performance. Like Halle Berry in Monster’s Ball, she lets everything go and completely opens herself up to give a very honest and emotive performance. I think that’s quite an acheivement given a background in Hollywood and modelling, worlds not conducive to honesty or openness. Yet her portrait of a terribly poor downtrodden woman is utterly convincing. Christina Ricci is also very good and only doesn’t get more attention because she stands next to such a triumph.

At the end of the film, I didn’t feel emotionally beaten like I had expected. I felt happy. And excuse me while I drop into bleeding-heart again, but I felt proud because I think films like Monster remind us that there are a lot of people in the world and all they really want is to be happy. There are many people who make mistakes and those mistakes come to define them in the eyes of others. I’m not saying that all Aileen Wournos needed was a big hug. I’m saying we should try and make the world a less destructive place for the next Aileen-to-be right now, so that we don’t end up putting other people in the same situation.