May 04

The internet has become a fundamental part of our daily lives – a rich source of facts, discussion, fun and community that’s home to an infinite number of ways to share thoughts and kill boredom. There are, of course, many opportunities to achieve this in the open world too – but that’s not quite so easy for a lot of folk. For many disabled and special-needs people, the internet has proven to be truly life-changing. “It’s opened up a world that would otherwise not exist,” says Jay Cohen, founder and manager of www.disabledonline.com, a global online community comprising forums, blogs, links, resources and a store of assistive technology.

DisabledOnline is a window to a new world for many users.

Cohen suffers from muscular dystrophy, rendering him unable to use a keyboard. Nonetheless, he’s been running this busy site since launching it as a message board in 2004. “To have an opportunity to communicate with others, research information and find entertainment, all from the comfort of your home, makes the internet a true blessing for those with physical limitations,” he explains.

A real boost

Alex Barker runs and works on the Advice and Information Line for AbilityNet (www.abilitynet.org.uk), a charity that provides technological help and assistance to any of the UK’s 9.8 million disabled citizens who want it. “People with disabilities have found the internet a real boost because it helps to make life easier by providing online access to services such as banking and food shopping, and also gives them the ability to network with other people who are in the same situation as themselves,” he says. “Isolation can be an issue, but the advent of support groups means people can join an online community from the comfort of their own home.”

AbilityNet is funded by grants and donations, and by charging for some services in order to generate the money necessary to provide advice and assistance for free. It also has links with some of the tech industry’s biggest names. “Both Microsoft and IBM support us in terms of giving us office space and so on,” explains Barker. In fact, the charity was born out of IBM in the 1980s, when the company noticed a small group of its employees providing assistance to disabled users and elected to provide start-up funding for a dedicated organisation in that vein. In 2008, AbilityNet was able to directly assist 43,724 people in overcoming their accessibility issues with computers – largely through its free phone and email support lines. Particularly successful lately is the charity’s new wiki, which is known as AbilityNet GATE (Global Assistive Technology Encyclopaedia) and can be found at http://abilitynet.wetpaint.com. AbilityNet GATE can be added to and updated by anyone with anything to share about accessible computer use.

AbilityNet hosts a database of assistive tools for disabled computer users.

AbilityNet’s work with the IT world itself is just as important as the many ways it goes about providing information to its users. “I think AbilityNet as an organisation has tried to make people more aware of what is good practice in terms of the provision of IT, and hopefully we’ve managed to change the perceptions that people have of disability,” says Barker. “A computer makes it so easy for someone with a disability to work at the same speed as their peers. I work on the Advice and Information Line and it’s so rewarding helping someone change their settings on their computer to make it easier for them to work effectively.” That change in perception is key – the internet is a great leveller, providing the same potential to absolutely everyone. “The internet has made accessing information so much easier, so even if you don’t have the physical ability to go and find the information, you can probably find it online.”

As well as information, the internet gives users the option to remain anonymous. Does the fact that other internet users don’t immediately know they’re chatting to someone with a disability mean they act in a way they otherwise wouldn’t? “It may play a factor in certain situations,” thinks Cohen. “I suppose it all depends on the circumstance. I have been on social networks and chatrooms where I didn’t disclose my disability – only because I felt there wasn’t a need. Sometimes I would share this, other times I wouldn’t. The usual reaction is indifference, although there has been the occasional surprise and curiosity reaction. You really have to take it all in your stride [and remember that] most of the time you are dealing with a complete stranger.”
While there are a great many services and communities dedicated specifically to disabled and special-needs internet users, it’s a mistake to think such folk are behaving differently to anyone else online. “We mostly try to keep an open discussion,” says Jay in regard to DisabledOnline’s forums. “We want our members to have the ability to voice whatever is on their minds, as long as it’s respectful to others. We aren’t looking for any specific agendas in our chatrooms: it’s an open forum and we plan on keeping it that way.”

Neither is there a huge centralised online community available for disabled people, explains Cohen: “I think it’s just like any other segment of the population. Sometimes they get bored at one spot, so they visit another. Then they come back after a while. The community is growing, so with that more options arise.” And the web also offers the opportunity for easy and fluent discussion across international borders, something that can otherwise be very tricky for people with limited mobility. “I believe it’s helped unite the community by bringing together voices from all over the world. We have members not only from the US and UK, but from India, New Zealand, South Africa and other countries. We are truly a worldwide community.”

Vital assistance

It would be very tricky for many disabled people to enjoy the benefits of the web without the help of assistive technology – a catch-all term for anything that enables disabled people to achieve things that would be trickier without hardware or software assistance. The term encompasses everything, from ramps and dropped pavements to Braille printers and brain-computer interfaces. Also included are built-in operating systems and browser functions that make computers much easier to operate. Examples include getting the computer to emit a certain tone when the Caps Lock is activated, and the ClickLock utility, which enables highlighting and dragging of on-screen items without having to keep the left mouse button pressed.

Cohen had a definitive answer when we asked what type of assistive technology has proven most useful to him: “I have pretty severe physical limitations. So for me personally, voice recognition software has had a huge impact on my life. It allowed me the freedom to pursue my vision of creating DisabledOnline. I highly recommend it for those who have the inability of operating a standard keyboard and mouse.”

Although he helps with a broad range of different needs, AbilityNet’s Barker agrees: “I would say that one of the main developments is within voice recognition software. Quite a large number of our clients are interested in using this technology and now it’s becoming easier to access as it comes bundled with Windows Vista and Windows 7.” While third-party titles such as Dragon Naturally Speaking provide far more features, the fact that they can cost up to £200 presents a major obstacle to a lot of people who might otherwise benefit from them. Whatever else you want to say about Vista, it was a big leap forward in terms of universally available speech recognition – both for replacing mouse and keyboard dependency with voice commands, and for dictating documents and emails in almost any application. While speech software remains a long way off replacing all manual interactions with our PCs, it really comes into its own in continual usage by those who need it. It’s worth noting that we interviewed Cohen via email, and had no idea it was all done thanks to voice recognition software until he mentioned it.

The Optilech EasyLink 12 is a portable Braille reader / input device for mobile phones.

In general, though, are the major operating system and browser providers doing all that they can? “I think that it’s getting easier now for people to make small tweaks to their systems,” offers Barker. “For example, a client with Parkinson’s may benefit a lot from just turning Filter Keys on. It’s free and this just shows that adaptive technology doesn’t have to cost anything.” More standardisation online has helped too: “I have seen significant improvements with accessibility online,” says Cohen. “There are still some sites that need to improve their layouts, but in general I do see the World Wide Web Consortium Accessibility Guidelines being followed.”

The director of the World Wide Web Consortium (W3C) is original father-of-
the-internet Tim Berners-Lee, and the organisation’s Accessibility Guidelines lay out key best-practice rules that every website should follow. Major ones include providing text-based alternatives for any image, video or audio content, ensuring that everything is accessible via keyboard alone, providing easy means of navigation and orientation across busy sites and ensuring legibility. Find out more about these best-practice rules and how to implement them at www.w3.org/WAI/WCAG20/quickref.

And yet website and software creators are still routinely guilty of even the most basic oversights. The issue of colour-blindness, for instance, is regularly overlooked. Only a pitiful handful of games provide alternate colour schemes for people who struggle to differentiate between green and red, and far too many design-led websites don’t seem to notice or care that their fancy Flash menus are completely inaccessible to anyone who lacks the dexterity to use a mouse.

Yet matters are gradually and continually improving. The internet succeeds in knocking down all barriers – whether they be down to age, gender, ethnicity or physical capabilities – and, as the already multifarious means of accessing it continue to increase, so too will the traditional barriers of communication and entertainment further erode.

Feb 24

With the coming of the New Year we see a lot of Top 10 lists.  You know like the Top 10 planning, design and development websites of 2009 or the Top 10 Quotes of 2009.  We are doubly blessed that since this is the “end of the decade” that we also get the top 10 lists for that as well.  You know like EPSN Boston’s Top 10 of the Decade (all Boston Teams) or Yahoo GamesTop 10 Video Games of the Decade (Super Mario Galaxy in the top 10?, really?).

Not to buck the trend, I decided to put together my own list of influential technologies for the years 2000-2009.  As you read this, please keep in mind the criteria that I used:

  • The technologies listed are not in any order
  • The technology did not have to be invented after 2000, but had to have reached wide spread adoption or a major turning point after 2000
  • I tried to avoid specific products or websites by name, but rather focused on the technology or the trend, rather than a specific implementation
  • I am strongly biased by my own personal experiences with the technologies, your experiences with them may be different than mine

MP3 Player Portable Music Players / Digital formats – It is not hard to see the impact of the portable music player on our society, just walk down the street and look at the number of people who have white ear buds in their ear. 

While the music player is obvious to see, what is not seen was the companion shift to digital distribution of content and the mind shift that we made with the change.  The digital music stores helped the music players to take off (although all indications are that most of the music does not come from online stores).

RSS Feed iconRSSReally Simple Syndication is probably the geekiest of all the technologies that I will list it.  This is one of the technologies that predates that 2000s, but saw wide adoption in the last decade; if had a blog or a website that published RSS before 2000, you should have a special badge to indicate your early adoption.  RSS is probably the third most popular document type on the Internet (behind HTML and CSS).  It is the best example of the power of a common data format.

People with laptops Social Networks early forms of social networking existed before the year 2000 (Yahoo Groups was one that I used to hang out in back in the day) and the concepts behind social networking even pre-dated the world wide web with people interacting on bulletin boards.  But again, it was in the last 10 years (actually 4 or 5) that social networking went from being a niche activity to seeing wide adoption.

The real impact of social networking is just now being felt as the “social” aspect expands from a casual activity that takes place out of work, to applying these principals to activities at work.  The overall trend of taking social technologies and applying them to the work place is called the consumerization of IT, and we will see it with a number of the technologies in this list.

Cellular PhoneSmart Phones – One of the things that the MP3 players mentioned earlier did was get us used to making out computing experience portable and taking it with us.  Going back to the 1990s we had Personal Data Assistants and cell phones.  It was natural to combine the two into one device and throw in the MP3 players as well. 

LAN CableBroadband – In August of this year Comscore released their latest estimates of broadband penetration in the United States.  The national average is now 89% of all Internet Users have some form of fast Internet access.  Personally I have had a cable modem for nearly 8 years, but I entered the year 2000 with dial up access. 

High speed access at the home was unusual in the 1990s; most people only had high speed access at their work place.  Now broadband access is becoming so ubiquitous that the people who develop websites and applications are starting to take it for granted.  By itself broadband access is a fantastic improvement, but like many infrastructure technologies, the real power of broadband is as an enabling technology that brings us other things (like streaming media).

TV on Computer Streaming Media – As I am writing this I have the television on in the background showing a movie.  The interesting thing is that it is streaming from Netflix in full High Definition quality to my Xbox using my internet connection.  There is no special magic about the Xbox; I could just as easily be streaming to my web browser or to any number of devices that support streaming.  Nothing special about Netflix either, I can stream from dozens of sites.  Contrast this with prior to 2000 when video on the web (when you could get it working) was of low quality.    

GPS Device in Car GPS – the Global Positioning System dates back into the 1970s from a military experimental standpoint and has been operational for civilian use since the 1990s, but this is one of the technologies that really took off in the 2000s.  The obvious adoption inside of the car was a first step, but now that many phones come equipped with GPS we are starting to see the real applications of location awareness.

Game ControllerGame Consoles – Game consoles are not new by any stretch of the imagination.  As early as 1978 I remember hanging out with my friend Charlie after school every day playing his Atari 2600 for 46 minutes (the time between us getting off the bus and having to turn off the console before his mother got home from work).  But the generation of the game consoles that launched with the original XBOX and the PS2 are really a different class of systems.  The modern game console is a hub of entertainment, with connections to social networks and streaming video.  Certainly games have comes a long way from Space Invaders.

reporter Social Media (Blogs, Wikis, Podcasts) – The last item is less about the technology and more about what it has enabled.  A vast reduction in production cost and a huge reduction in the distribution cost have led to the emergence of user generated content.  There are some that are saying that user generated content is replacing content from traditional media companies, but I look at the trend as additive; I still watch the evening news, but I have added social media to the mix as well.

I rather enjoyed putting this list together, but I am sure that I have missed a technology or two that is influential and would love to hear about the ones that I missed.  I will say that I intentionally left off search as a technology.  Search was clearly influential in the 2000s; however I think that it was established by the beginning of 2000.

Oct 07

Networks are one of the most explored structures in computer science because they have applicability in many different scenarios. A number of algorithms have been devised for these structures; one of the most entertaining results is the so-called Bacon number: a measure of how close a particular actor is to Kevin Bacon in the world of film.

This comes from the popular trivia game that has long been played in pubs around this great nation: the ‘Six Degrees of Kevin Bacon’. Here’s how it works: someone names an actor and then everyone has to try and work out the number of steps (‘degrees of separation’) between that actor and Kevin Bacon. The result is the Bacon number. Everyone who has worked directly in a movie with Kevin Bacon has a Bacon number of 1 (Kevin himself is assumed to have a Bacon number of 0). Those who have worked with one of those people will have a Bacon number of 2, and so on.

So, for example, suppose someone says ‘John Thaw’. John Thaw never appeared in a movie with Kevin Bacon, but he did appear in Chaplin alongside Diane Lane. In turn, she appeared in My Dog Skip with, you guessed it, Kevin Bacon. Hence John Thaw has a Bacon number of 2. (There may be other links between John Thaw and Kevin Bacon of degree 2, but the prize goes to the first person to suggest the shortest link, and hence the smallest Bacon number).

There’s a great website called The Oracle of Bacon that periodically downloads data about movies and their casts from the Internet Movie Database to refresh its own database. From this data it builds a big map of actors and movies and can answer these kinds of degrees of separation questions. (Quick aside: what’s the shortest link between Billie Piper and Sean Connery? Apparently she had a bit part in Evita alongside Mark Ryan, who was in First Knight with Connery. A ‘Connery number’ of 2 for Billie Piper, then.)

It’s a small world

In mathematics there’s a similar concept known as the Erdös number, which is named after the prolific Hungarian mathematician Paul Erdös. He published a massive number of papers with many collaborators across many disciplines. The Erdös number for an academic is the number of steps between Erdös and themselves, via collaborators on papers. So Paul Erdös would have an Erdös number of 0, all of his collaborators on the various papers he wrote would have an Erdös number of 1, and all their collaborators on other papers would have an Erdös number of 2, and so on.

All of these degrees-of-separation-type numbers are based upon the small world phenomenon. This is the observation that the social networks of large groups of people in modern society are very interconnected. Typically, they’re distinguished by short path lengths between any two nodes.

The psychologist Stanley Milgram did some research on these social networks during the ’60s and found that, on average (and using the methodology he described), any person in the US could trace a path to any other person in the US using between five and six links. Hence the term ‘six degrees of separation’, although Milgram did not use this particular phrase (it was first widely used as the name of a play and then a film – the star of the movie was Will Smith, who has a Bacon number of 2).

The small world phenomenon is of course widely used nowadays by the social networking sites such as Facebook and MySpace, although it’s best known as part of LinkedIn, where you can view your network separation from another person directly.

Meet the neighbours

So how are these degrees of separation worked out? How does the Oracle of Bacon calculate the shortest number of links (the path) between actor A and actor B?

Graph theory holds the answer. Not graphs in the sense of those diagrams you had to draw at school to show y=x2, but computer science graphs, or networks. The algorithm used is a ‘shortest path’ algorithm.

First, we need some terminology. I’ve already let slip a few pieces of jargon, so let’s be more rigorous. A network is a data structure consisting of nodes (sometimes known as vertices) and the edges that connect the nodes. You can most easily represent a network as a matrix, though this is inefficient in terms of memory. Each row and column represents nodes, and the intersection of a row and column will be 1 (or ‘true’) if there’s an edge between the nodes represented by the row and column, and 0 (or ‘false’) otherwise. Sometimes the edges have a ‘weight’ associated with them, which is the value in each cell. (An example of this is a network of towns, where the weight of the edge for two towns would be the length of the most direct route between them.)

A path is a set of edges using which we can travel from one given node to another. The length of the path is either the number of edges we have to travel to follow the path, or the sum of the weights of the edges. The shortest path is obviously the path with the smallest ‘length’.

Suppose we have a network, as shown in Figure 1 above. We want to find the shortest path from A to B. We’ll first consider the simple case where the path length is merely the count of the number of edges we follow.

We’ll need to store some information for each vertex we visit, so we should first create an array that stores references to all the nodes in the network. We’ll get to the information we need to store in a moment, as we describe the algorithm. We’ll also need an implementation of a ‘queue’ to hold nodes we’re about to visit.

Our algorithm uses a technique called ‘breadth-first’ search. In it, we visit all the neighbours for a vertex before visiting the neighbours themselves, and so on. It’s rather as if the search ‘fans out’ from the original node. The alternative search technique is known as ‘depth-first’ search, where we explore the nodes by following edges as far as we can go, and then backtrack to follow the edges that we missed.

Back to the breadth-first search. Set the first node’s ‘path length’ to 0. That’s the first value we have to store with each node in our array (obviously, the first node is at distance 0 from itself). Add the starting node to the queue. Now, in a loop, continue removing nodes from the queue until we find the target node. For each node we pick off the queue, mark it as ‘visited’ (to do this we’ll need a second value – a true/false indicator – and all nodes should be marked as unvisited at the start). Then add all the nodes immediately reachable from that node to the queue.

However, there’s a quick test here: there’s no point in adding nodes that have already been visited, since if they are being visited again, the new path length must be longer than before. Also, when you add the neighbour nodes to the queue, set their path length to one more than the current node’s path length.

You stop when you pick off the target node from the queue. Its path length value will be the shortest distance from the source node to the target node.

Weights and measures

If you also want to output the path taken from A to B, you should record the ‘parent’ of each node as well as its path length when you queue the node (the parent is the node from which you’re following the edge). Once you reach B you can follow the path back to A by following the parent links. (If you want the path in the right order, merely push the nodes on to a stack as you go back to A, and then you can pop them off in the forward order.)

Figure 2, above, shows this algorithm in action by colouring the edges visited at each step and the contents of the queue at each stage. Step 5 is the interesting one, since the edge marked in blue/grey is not followed (because the node at the end of it has already been visited).

For our application to Bacon numbers, the network may be huge (lots of nodes – sorry, actors – with each actor having many links to other actors), but this algorithm will suffice.

For the other kind of network where each edge has a weight associated with it, the algorithm changes slightly, although it is still based on the idea of breadth-first search. Here, we’re going to find the path that has the smallest cost (that is, the smallest total weight). We could find, for instance, that such a path has more edges than a strict ‘shortest’ path would have. This variant on the shortest path algorithm was first devised by Edsger Dijkstra (the computer scientist who published the well-known paper called ‘Go To Statement Considered Harmful’ in 1968 that lambasted the then common and prolific use of the Goto statement in programs).

The big assumption here is that all the weights are positive numbers. The reason for this stipulation is that if an edge has a negative weight, and that edge forms part of a cycle of negative length, you could travel round the cycle ad infinitum to produce shorter and shorter (more and more negative) paths.

Instead of an ordinary queue, Dijkstra’s Algorithm makes use of a priority queue. A priority queue is usually described as a queue to hold items from which you always pick off the item with the highest priority (and is so used in operating system job queues or printer queues), but can apply to any set of items from which you want to pick off the smallest or the largest. We’ll use the variant, where the next item you remove from the queue at each stage will be the smallest.

We start off as before: set the path length (or cost) to 0 for the first node, and add it to the priority queue. Now we loop over the queue, picking off nodes until we find the target node (and we will pick off the smallest node at each step). For each node we remove, however, we do some extra work. As before, we have to mark nodes as visited or unvisited (and obviously mark all nodes as unvisited at the start). When we remove a node from the queue, it is marked as visited.

For the current node, we look at each of the nodes reachable from it. If a neighbour node has been visited, we ignore it, much as we did before. For the other neighbouring nodes, we calculate the total cost to reach them from this one. Say the current node has cost 10, and the edge to another node has cost 4. The cost of the next node is therefore 14, through this particular node. Check whether this is less than the current cost of the next node (for this to work we shall have to set the cost of all the nodes – except the first – at the start to some very large number, usually called infinity). If it is, update the cost of the next node with this new smaller value and store the current node as its parent. Note that this will probably put the next node in a new position in the queue.

Completing the network

Once we remove the target node from the priority queue, we’ll have, as before, a path from it back to the original node, and we’ll also have the cost of that node as accumulated from the source node.

Figure 3, above, shows an application of Dijkstra’s algorithm to a simple network. Step 1 is the original network, and each of the edges is marked with its weight. Step 2, we start at A and find the smallest edge (the one with weight 1). That defines the next node to become our starting point for Step 3. Actually, for Step 4 we have two possible nodes of weight 3: the one in the middle and the very bottom one. For brevity, I chose the middle one so that the algorithm completes with Step 4 at B. The shortest path is the one marked.