Share ideas through Thought Pipe

During the discussion after my talk at Barcamp Brighton 4, several people wanted a place where they could publically swap ideas, in the hope that someone would pick them up and develop them. This came from Danny Hope’s experience where he described a CSS comment stripping service on his Flickr, and David Stone then built it for him.

As a developer, I like short projects I can build for a fun break from client work, and it looks like I’m not alone in that.

As a starting place for people to talk about ideas, I’ve opened this Google Group – http://groups.google.com/group/thoughtpipe – where people can start talking about their ideas. Please join up and put your oar in.

The inspiration for my small projects was the 5K App competition, organised by John Montgomery and you can read about what I did here in my 5K app posts.

I’ll put some ideas in to the group in the next day or so to try to kick things off. If it sounds interesting to you, please subscribe and join in.

Tags: , , ,

5K App competition tie up

I didn’t win the 5K App competition, Seb did with a very impressive 3D Moon Lander game in Flash (write up), which has since been featured on Wired’s Geekdad blog.

There’s a video up which is mainly my presentation of the three apps I made. Hopefully more video will be appearing on the £5 App blog showing Seb’s Lander, Dougie from Future Platform’s Location SMS app, and a chap Armandas from Sussex University who had an electronics toolbox cataloging system made in Python.

I really enjoyed the competition and it re-invigorated some of my coding muscles, so I’d like to say a big thanks to John for organising it all.

[Updated with some better links and Armandas' name]

Tags: ,

5K App: Article Suggester

For my third and final 5K app for the £5 App competition I built a cut-down version of something I’ve been meaning to build for ages, which is part of the reason for having the 5K limit in the first place – it forces you to concentrate on the main point of a script or programme and leave out everything else.

At heart, the Article Suggester is a very simple application: you give it a bunch of text (for instance an article or blog post that you’re writing) and it will suggest a list of articles from the Guardian website.

Behind the scenes, things are slightly more complicated. When the form containing the text is submitted it’s first run through the Yahoo Term Extraction tool, which gives back a list of words and phrases it thinks are important from the text. The script then runs this list through the Guardian’s Open Platform content API and gets back a couple of articles related to each phrase, offering them up as links next to the submitted text to help with further research.

Try out the Article Suggester.

Both the Yahoo API and Guardian API have limits on their use, so if this gets popular it may not work. I’ll post up the source code soon so people can get their own API keys and extend it any way they want.

The code is written in PHP and uses SimpleXML to work through the data coming back from the APIs. Currently it’s only 2,292 bytes, so there’s loads of space left in the 5K, I just don’t have any time to add new bits before the competition presentation and judging on Monday.

If you’re interested in seeing the competition presentations, it’s happening at the Skiff from 8pm on Monday 20th April.

Tags: , , , ,

5K App: Portal Me

I enjoyed building my first 5K App, the Twitter Biorhythm bot, so much I started building another app. In fact, I started building the second app. before I’d even finished the bot because it was so easy to put together.

This app. was inspired by Jeremy Keith’s talk at the £5 App meet in February about HuffDuffer, his podcast creation service. Within HuffDuffer Jeremy uses Google’s ‘Social Graph‘ API to help broaden the usefulness of the site without bothering the person using it. For instance, if you give it your Twitter name it will use your Twitter icon as your icon on Huffduffer, and it will also offer links to other popular services that it’s found you on using the Social Graph. You can see this at work on the ‘Elsewhere’ section of a profile, the links are created by looking up where else you have profiles via the Social Graph API.

In the past I have thought it would be useful to be able to put someone’s name in to a web page, and get back a set of their posted information from various sites. This is a bit cyber-stalking like, but it’s helpful to be able to get a quick picture of someone’s online life, especially if you’ve just met them as a potential client or through networking.

The Social Graph information would give me a simple way of looking up at least some information about someone. After a poke around in the documentation I found I could easily build a URL that included the URL of a page about someone that could be included in the graph, e.g. their blog or Twitter page. Giving this to the API and asking for ‘otherme’ information meant it would give me back a bunch of XML which includes profile pages on sites registered to that person, including the URL of RSS/Atom feeds from  those pages. I could take those feed URLs and make a page of posts from the person from various sites.

As this was to be a 5K App, I started knocking the code up in ColdFusion, which only needs a very small amount of code for parsing RSS and Atom feeds using the CFFEED function, and it’s XML parsing is pretty short too.

I got a prototype working and it only needed a couple of K’s worth of code. As I had so much spare, I decided to add some basic caching so it wouldn’t request the RSS feeds every time the page was refreshed.

The caching first checks a directory where feeds are saved. If it can’t find a feed, or the saved one is over an hour old, it goes on to request the feed and save it in to the cache directory. Then it reads the feed out of the cache.

Finally, a bit of styling, giving away the fact that I’m not a designer, and it was finished. The code is 4041 bytes, and you can try it out for yourself here: Portal Me.

It works best with people who have several sites which are registered in the Social Graph, and it only works for sites which are tied to the person by using the ‘rel=”me”‘ microformat code on the link (places like Flickr and Twitter do this automatically for you.)

Here’s a Portal for Jeremy Keith from his website address, and one for my friend Josh Russell based on his Twitter account.

One problem with Portal Me is that the Social Graph isn’t perfect, and if you haven’t tied your accounts together properly it shows some odd effects. For instance, if you make a portal for me based on my Twitter account you get less results than if you look me up via my main website address. I’ve only recently started making sure all of my various profiles link to the same site, and also that the site links back to tie them all together, so it may be sorted out over time.

I’ll put some coments in the code and put it up for downloading soon.

Try Portal Me for yourself.

Tags: , , , ,

5K Twitter Biorhythm Bot: Byobot

John and Ian, the nice chaps behind the Five Pound App meetings are holding a competition to build the best application or website you can in 5K of code. The prize? £51.20, which is 5K (5120 bytes) in pennies.

I was initially dubious that I’d have time to make any apps, partly because I have a lot of client work on, and partly because I couldn’t think of anything to make. 5K is small and making something useful in it is a tricky. However, I was inspired by John’s demo applications to at least do something. Recently I was fed up with the work I was doing and went for a walk down to the sea and finally, inspiration!

My first app, and oddly the last one completed, uses Twitter. I wanted to build something relatively useful to an audience, and that would run itself. I built a Twitter joke poster a while ago at the Farm Hack Day event I organised, and the problem with it is I haven’t had time to compile jokes for it for ages (although it’s still on my to-do list, which is unfortunately just a little longer than my arm right now, and I have very long arms.)

I started thinking about information that updates often, and that the non-geeks who are joining Twitter now might like to have. I thought of horoscopes, but quickly realised it would be difficult to compress these down to 140 characters without needing human intervention (and have since discovered a couple of people doing the same thing.) I then remembered biorhythms. These are supposed cycles of Physical, Intellectual and Emotional states that you go through, related to when you were born.

Biorhythms were popular in the mid-’80s, when my sister had a biorhythm calculator on her BBC Micro, and they’ve drifted in and out of fashion since then, and probably way before. This means they’re likely to be in fashion for some people, or will be at some point. Another major plus is that they’re quite small pieces of information, which means they can be crammed in to a tweet without too much trouble.

So, my first 5K app (finished today) is…

The 5K Twitter Biorhythm Bot

Twittering as @byobot if you send a message to the bot in the format @byobot yyyy-m-d (e.g. “@byobot 1942-1-8″ if you were Stephen Hawking) then it will reply back with your biorhythm for today.

There’s not a lot of error checking, so if you don’t get the date in the right format, you just get a friendly error message sent back to you.

The code is written in PHP and uses a greatly cut down version of the biorhythm class by Iztok Strzinar for the main calculation. Twitter is handled by a combination of Curl and SimpleXML.

Once I’d found the class, the main things I had to work on was compiling the message so it was short enough to go in a tweet (including leaving space for the @ reply to the person wanting the biorhythm.) And also a way of storing the last tweet read, so the bot wouldn’t keep replying to messages it had replied to before. By using the XML version of the ‘mentions’ stream from the Twitter API I was able to store ID of the last tweet replied to and use the ’since_id=’ variable in the URL when getting the stream so it receives the 20 tweets after the last tweet that the bot read.

The code, plus a file to store the last tweet ID in, is 4,605 bytes. I managed to make a very light logo for Twitter by reducing the colours used in the GIF down a long way – this was a little problematic as Twitter wouldn’t accept a GIF with only 16 colours, I had to go to 32. Altogether, code and image come to 5,036 bytes, which means I have 84 bytes left to play with.

I can think of various things to do with the Biorhythm Bot, the first one to be adding direct messaging to it can give private results to people, but that’s outside the scope of a 5K project and won’t happen for a while anyway as I have too many other client and personal projects on the boil.

Give byobot a go

Why ‘byobot’? When I first started thinking about this project, I wanted to use ‘biorhythm’ as the account name on Twitter, but both that and ‘biorhythms’ are already in use. I had thought of using ‘bior’, but that got registered while I was messing around with the code. Let this be a lesson to you: if you’re going to do a project, register the damn account / domain name while you still can!

[Update] I’ll be talking a little about the biorhythm bot at the next Five Pound App meet up on 20th April at the Skiff

Tags: , ,

Death and Social Media

People die. This is an unfortunate fact that we don’t like to think about, especially young people. And it’s generally relatively young people who are building websites and advising clients on how to build them. Whether through accident, illness or misadventure, people die every day. Even if none of those get you, old age eventually will. It’s something we don’t often think about, but if you make websites for a living, like I do, it’s something we should be thinking about, because our sites have to deal with it.

Lets look at things another way. Say someone in your family dies. Your brother or sister, son or daughter. Or a good friend, a friend of the family. They use the internet, they’ve got e-mail, a Facebook account and an old page on MySpace. You know about computers, so you’re asked to sort it out – to let their friends know what’s happened. You’re asked to sort it out, so what now?

If you die in the UK, your next of kin is given a death certificate. This is an official document notifying that a particular individual has died. To close bank accounts, sort out council tax, utility bills and credit accounts, you use the certificate to show a person has really died. This sort of paperwork is not a pleasant thing to deal with when you’re grieving for a loved one, but at least all the organisations you’re dealing with have policies and procedures to follow. What about websites?

E-mail

Lets take it that you don’t have the password to their e-mail. If you have, that will make everything much easier as you can use the ‘forgotten password’ facility most sites have to get access to online accounts.

If their e-mail is provided by their ISP, you may be able to call them to the get the username and password either provided over the phone or sent out by post. Then you can login to their account. Depending on the set up you’ll either be able to read all of their mail or just new items, but you’ve got access.

If they used webmail, such as Yahoo, Hotmail or Gmail, you’ll start hitting problems. I looked for the policies of the top three webmail providers, which takes quite a bit of searching and I eventually had to contact Yahoo Mail and Hotmail to ask for their policy. This would be very awkward for next of kin at such a distressing time.

Yahoo Mail – Yahoo won’t give you access to someone else’s e-mail, saying it breaks the data protection act. They didn’t say if they’ll shut down accounts or not and it took them about four weeks to respond to my inquiry.

Hotmail (free version) – Will delete all e-mail when no-one logs in for 120 days, and may delete an account if no one logs in for over a year. No reply to my inquiry yet (over a month later.)

Gmail – May delete the account after nine months of no-one logging in. They may give you access to the account if you send a copy of an e-mail that was sent to you from the account, and a copy of the death certificate or a power of attorney document. This information is available in their help centre, and wasn’t too difficult to find.

So, if your friend was with one of the top three webmail providers, you’d better hope they were with Gmail if you want access to their account. And you really need access to their e-mail because without it, you’re not going to be able to access any of their other sites.

Social Networking Sites

As mentioned before, your hypothetical friend had accounts on Facebook and MySpace. If you have access to their e-mail, you can use the ‘forgotten password’ facility on these sites to gain access to their accounts and friends lists.

What if you don’t have access to their e-mail?

MySpace – will not pass over access to an account to the next of kin as this would break their Terms and Conditions. However, if presented with an obituary or death certificate they will shut down or leave the account up so friends can leave comments.

Facebook – had the easiest to find policy, which is in it’s Terms. When told of a death, they will keep an account open for ‘a period of time’ to allow others to post comments on to the profile. This is a ‘memorialized’ state, and the comments the person has left on other pages will only be visible to the owner of the photo or original thread.

Apparently they used to close down accounts, but changed this policy after the Virginia Tech shootings, after which many friends of the pupils who had died wanted to leave comments in a format they were used to communicating over.

Bebo – I tried to find their policy and used their contact form, but haven’t heard anything back yet (it’s been over a month.)

Twitter – I wasn’t confident about getting an answer from Twitter, who are more of a loose shared commenting system than a full on social network, and were struggling to keep their service running at the time so probably have bigger issues than their policies on members who die. They use Get Satisfaction as a support forum and I haven’t had a response to my question on there yet.

If you don’t have access to the person’s e-mail, you won’t be able to access their social network accounts. If you tell the network about the death, they may be able to tell the person’s friends by changing the status of their account, or you may need to leave a comment on the account yourself via your own account on the network.

Issues

The social networks have a problem, in the case of a member dying, they need to satisfy both the wishes of the next of kin and family, and those of their friends on the network.

Frankly, this is a no-win situation for the site. People grieve in different ways, some people will want the person’s profile taken down, others will want it to stay up, forever.

If a profile stays up, is that good or bad? Do people want a constant reminder of the loss of a loved one? Their profile and comments will always look fresh, keep up to date with the latest site design, their profile picture never ages. Will this prevent us from properly moving on and coping with the death of a loved one?

What would ‘unfriend’ing a dead friend or relative mean to someone who is grieving and doesn’t want to see a reminder of them in their friend list?

Websites like MySpace and Facebook aren’t going anywhere, they are massive businesses which are worth a fortune and currently have tens of millions of active users. Even if social networking becomes less popular, they will still have a massive user base. If they do not remove accounts of deceased members, will they eventually fill up with a mountain of old users? Will it be like Hotmail of a few years back, where a future ‘Paul Silver’ won’t be able to sign up as ‘paulsilver’, but can only get ‘paulsilver1434′ because I got the first ‘paulsilver’ account when the site launched in 2008 and lots more Paul Silvers have signed up since. When I search for friends, will I mainly find deceased users whose profiles are acting as shrines to history?

Looking at this from another direction, we have a fantastic opportunity here. In the past, history has been fleeting. Conversations disappeared as soon as they were spoken. Letters may or may not get kept in family archives, but would not get passed on to anyone else. Currently, discovering the thoughts of everyday people from 200, 300, 1000, 2000 years ago would be a absolute delight to historians. We have the opportunity to save those conversations and thoughts, and keep them alive to become future history.

Maybe most contact in MySpace or Facebook seems facile, a forwarded joke here, some sarcasm about a night in the pub there. Within the muck there’s brass, but we’re not best placed to judge what’s what, because our history hasn’t happened yet. What would it be like if you could look back at your great-grandparents, and see the initial flirty comments made about each others photos, or see the photo that their friend Jack took on their phone in the pub when they first happened to meet with friends, and is still there in perfect condition 120 years later?

With the right sort of organisation, we can make an archive that can serve to help people in the future understand our time, and all the time after us, in a relatively cheap way.  I’m hoping to write some more about this in the near future, but this is getting slightly off the point of this post.

A final issue I’d like to raise is domain names. Many sites use e-mail addresses as logins. I know I’ve made many that do this – it’s an easy way to get a login that’s unique for each member, and it’s easy for people to remember. However, long-term the problem with domains is that they’re rented, rather than bought. I currently own a few domains, including paulsilver.co.uk. At some point, if I don’t renew it or after I die, someone else will own paulsilver.co.uk. Lets face it, their name will probably be Paul Silver and their e-mail address paul@paulsilver.co.uk

Presuming this, that person will find it very easy to get access to lots of sites I’m registered with, because I use that address. If they try to register with that address, they’ll be told they’ve registered before, and then they can use the ‘forgotten password’ facility to get a password for the site. Suddenly, they’re me on the site. They can change my profile, delete old messages, see friends lists if it’s that sort of site, and so on.

Tentative conclusions

After a member dies, social networks should have a human keep an eye on the comments on their profile, but keep the profile active for this purpose – basically, copying what Facebook do. They may want to look at a way of limiting the visible content, depending on the wishes of the next of kin.

Sites should have a public policy on what to do when a member dies and it should be easy to find, and have a contact that’s simple to find. This is a very difficult time for the next of kin, and digging around for details will just make the situation harder for them.

Sites should look at having an extra contact for people when registering. This would effectively be a next of kin for the site. This would give them another trusted person who would be allowed access to the account, or at least friends lists, if the user dies.

Potentially there should be a time limit on what a user can change if they don’t log in for a protracted length of time. Their profile and comments could be archived to an uneditable status, so if it’s actually a new user coming to the site that happens to have the same e-mail address, they can come in to the site as a new user, but not have the ability to change an archived version of the original account.

I talked about this at BarCamp Brighton 3 and Mark Ng suggested that OpenID could run a service to let sites know of users dying, as they are plugged in to a growing number of sites for as a login system (also suggested here). Alternatively he suggested a ‘DeathAuth’ system as a kind of official notification that sites could plug in to. During the discussion we agreed there would need to be some sort of official paperwork involved in the process so erroneous authorisations could not be sent out.

Thanks

Thanks to the people at Tuttle Brighton, Brighton Farm, and BarCamp Brighton 3 for discussing this topic with me, especially as it’s quite morbid in parts.

Carl Jeffrey owns the domain Deathbook and is talking about using it to push social sites to think about these issues more thoroughly, I wish him all the best with that.

Thanks to you for getting through this massive post, I hope it’s stirred up some interesting thoughts. Please comment with your views.

[Update, Feb 2009: Apologies to everyone who commented when this was first posted, I made a mess of the database that stored my posts and the comments in and couldn't recover them. This is a restored version of the post from before it was posted.]

Tags: , ,