How do you use Twitter?

by baxter on Thursday, 26th March 2009 at 09:35 10 comments

I faced a Twitter related dilemma this morning: Should I stop following @stephenfry?

I love Twitter for the insight it gives me into the lives of the people I’m interested in, either my friends or those I admire, but I don’t understand how you can retain that level of insight when the number of people that you follow goes up.

How do you cope? Do you make use of any tools? Do you prioritise certain users? I would love to know!

Ada Lovelace Day 2009 — Grace Hopper

by baxter on Tuesday, 24th March 2009 at 23:50 3 comments

Today is Ada Lovelace Day, celebrating the life of the first computer programmer, Ada Lovelace.

The daughter of the poet Lord Byron, Lovelace was a brilliant mathematician and a peer of Charles Babbage, the inventor of the first computer. Lovelace is credited with writing the first computer program which calculated Bernoulli numbers using the analytical engine, although the engine was too complicated to build within her lifetime. While Babbage was only interested in performing calculations, Lovelace saw that computers had greater potential and even predicted that one day they would be able to compose music.

The holiday was invented by Suw Charman-Anderson to celebrate women’s contribution to technology, and Suw has asked bloggers to write something about an unsung heroine.

I inferred from Suw’s post that we should write about a woman that we work with or have met. While I’ve worked with a number of intelligent and successful women I’ve never considered any of them to be inspirational, and it would be patronising to write a blog post about any one of them simply because of their gender, so instead I’m going to write about a woman that I’ve never worked with or met but who has been a constant inspiration: Grace Hopper.

Grace Hopper was an American computer scientist who served in the United States Navy between 1943 and 1986 gaining the rank of Rear Admiral. She programmed the Mark I computer, the first large-scale digital computer in the USA, and was responsible for developing the first compiler. Perhaps most importantly she suggested that programming languages needn’t be machine or assembly code and could in fact use keywords similar to English, leading to the creation of the COBOL programming language in 1959 and paving the way for all modern programming languages.

The reason that I find Hopper so inspirational is not just her achievements but her attitude. Her passion for technology was apparent in everything she did, and she managed to convey that passion with a sense of humour that few other computer scientists could hope to match.

She was a true pioneer and never settled for the way things were:

Humans are allergic to change. They love to say, “We’ve always done it this way.” I try to fight that.

Challenging the way that systems work is difficult and I can’t help but admire her objective. On distributed computing she said:

In pioneer days they used oxen for heavy pulling, and when one ox couldn’t budge a log, they didn’t try to grow a larger ox. We shouldn’t be trying for bigger computers, but for more systems of computers.

The first time I read this I was immediately struck by how insightful an analogy it was, and it’s stuck with me ever since.

I think, though, that the most important quote of Hopper’s that I could provide, and the one that I think best sums up her outlook, is this:

It’s easier to ask forgiveness than it is to get permission.

XHTML and CSS — Don’t give up

by baxter on Tuesday, 17th March 2009 at 00:07 5 comments

I recently came across a site entitled “give up and use tables”, arguing that if it takes you longer than 47 minutes to produce a design with CSS then you should throw in the towel and build it using tables instead.

And recently Jeff Atwood posted that he didn’t think HTML validation was important, saying “Nobody cares if your HTML is valid. Except you. If you want to.”. We’re not talking about XHTML validation here, either, just plain old HTML.

I am strongly opposed to both arguments. So why do our opinions differ so much?

In the late 90s I built all my websites with tables, liberally combining <table>, <img> and <font>. My goal was to get the site to “look right”, and once the web page matched the design in my head or in my sketches then I would stop.

There are some serious (and well-documented) problems with this way of designing, and with this goal; table-based design means embedding style information within the HTML, making it big, brittle and difficult to understand; designing websites so that they “look right” fails to take issues like accessibility into consideration, or that some people might not be viewing the site using the same means as you.

The W3C provided solutions to both of these problems: CSS and XHTML. CSS allows designers to remove presentation from content by putting style rules in a .css file, removing the need for embedded styles and reducing both filesizes and complexity. XHTML (being an HTML-like subset of XML) makes web pages very easy for programs to parse, meaning that screen readers or other software can more easily process a page.

These technologies might sound great, but it’s not always easy to make use of them.

While CSS solves the problems of embedded styles and complex markup, table-based design offers designers a lot more control than CSS does. Some people feel this loss of control comes at too high a price, and use tables to get what they want rather than rethink their design.

XHTML makes web pages more parse-able and more accessible, but it can sometimes feel like there’s no incentive to avoid malformed XHTML since browsers are so lenient that even serious validation errors make little difference to the way that a web page is displayed. Some people think that trying to produce valid XHTML is a fruitless exercise, and that what the browser displays is all that really matters.

Personally I value concise and valid XHTML, with my style information cleanly separated from my content using CSS.

If you value these things too then don’t give up: do it right.

7 ways to use Delicious

by baxter on Tuesday, 24th February 2009 at 23:45 5 comments

I’ve been using the social bookmarking website Delicious for a few years now and over that time my usage habits have changed. A couple of my friends have started using the service recently and I wanted to explain how I used the site originally and how I use it today.

1. Existing bookmarks

When I first heard of Delicious it intrigued me, but I didn’t dive straight into using it. I tested the water, saving a few bookmarks here and there, but they were predominantly sites that I already knew about and had bookmarked in my browser, or even remembered because I visited them so often. It was handy having my bookmarks in one place, but I hadn’t really embraced Delicious.

While I’m not always so cautious, in this instance it took me some time to trust Delicious (and maybe that caution was well deserved — I hate to think what would have happened if I’d used their competitor, Magnolia, instead. Take a look at their site if you’re not sure what I mean).

2. New bookmarks

It’s impossible to pinpoint exactly when I stopped bookmarking in my browser, but at some point I grew comfortable enough with Delicious to store every new bookmark there.

Back then there weren’t any (good) plugins for Delicious integration, which meant that adopting Delicious meant you had to bookmark things in a different way, i.e. by clicking a “bookmarklet”. Today this is less of an issue, since most browsers have some sort of Delicious plugin that will hijack the way bookmarks are stored.

Bookmarking has traditionally been a solitary act, so it’s easy to forget about the social aspect of Delicious. On Delicious, the more times a single URL is bookmarked the more popular it is considered. Thanks to this it’s possible to view the Internet by popularity, as decided by Delicious users.

Why is this useful? One way is that interesting content should tend to bubble to the top of the popularity pile as more users bookmark it for future reference.

Another is for keeping track of a certain topic — Delicious splits popularity by tag, so sometimes I will browse through the popularity sections of a particular tag to see what people are reading, such as in programming or games. Which brings us nicely to tags :)

4. Finding things by tag

Every time you create a bookmark on Delicious you are prompted to enter a number of tags that describe that bookmark. The obvious advantage this provides is that you can easily group certain bookmarks together and you can easily find your own content in the future by searching through your tags.

But the really great thing about the way Delicious uses tags is that each bookmarked URL is described multiple times, once by each person that has bookmarked it.

Imagine person A bookmarks a URL with the tags “masterpiece, painting, mona lisa”, and person B bookmarks the same URL with the tags “portrait, smile, da vinci”. Now that URL on Delicious has the combination of all of those tags assigned to it, and someone searching for “da vinci” and “masterpiece” would be able to find it.

Compare this to flickr, where you can also do tag-based searches, but the tags that the search uses have been defined by the owner of the photograph.

Incidentally this is the difference between a broad and a narrow folksonomy.

5. Following people

Even making use of the search and popularity functionality, it’s easy to forget that all those other bookmarks were created by individual people.

I hadn’t really followed anyone else’s bookmarks until I started reading Raganwald aka Reg Braithwaite. Reg bookmarked a lot of sites that I found interesting, which prompted me to make use of the networking features of Delicious for the first time.

Following a user means you can see at a glance everything they have bookmarked recently, which, if they have similar interests to you, can sometimes feel like a group of people are going out and finding interesting stuff for you to read! Awesome.

Have a look at the Delicious help section on networks for more information.

6. Sharing with people

Aside from sharing bookmarks passively (see section #5) you can also tag something as for another person, i.e. for:so_and_so, meaning the link will show up in so_and_so’s Inbox.

Now that I have a couple of friends using Delicious I’ve started using this feature more and more. I tend to bookmark things quite liberally, so it saves me having to bookmark something AND email it — now I can bookmark something and highlight it for my friends at the same time.

7. Organising content

The final way that I use Delicious is one that’s a work in progress. I’ve been thinking about how my blog is structured. Whenever I blog something I assign it tags that are browse-able using the tag cloud in the sidebar. This is useful, but it’s another example of a narrow folksonomy.

To remedy this I’m going to add the Delicious’ tagometer badge to all existing posts, and bookmark that post on Delicious as soon as I post it. I’ll make use of Delicious’ tag clouds to allow navigation between posts, a lot like is possible now. Should someone else decide to bookmark one of my posts they can add their own tags, which will change the tags used in the navigation of my site, hopefully improving navigation.

I will let you know how that goes ;)

It’s over!

That’s how I have used, currently use, or plan to use Delicious in the future! If I’ve mentioned a way of using Delicious that you’ve not tried, I hope you’ll give it a go and let me know if it works for you.

Equally if there are any ways that you use Delicious that you think I might be interested in then let me know :)