Archive for July, 2000

Relativity Q&A

Wednesday, July 12th, 2000

It is impossible to travel faster than light, and certainly not desirable, as one's hat keeps blowing off. -- Woody Allen

Q1: Who is this page aimed at?
A1: It's aimed at people who are happy with the basic concepts of classical motion such as speed equals distance divided by time, but who know nothing about relativity (except maybe E=mc^2 and that you can't go faster than the speed of light) and wish to know/understand more.

Q2: What's the deal with relativity, then?
A2: Relativity was invented to account for a peculiar experimental result - that the speed of light is the same no matter how fast you are moving with respect to the source.

Q3: How do you do this experiment?
A3: Suppose you have an accurate timer, which is stopped when a pulse of light goes past it. Then you have another exactly the same. You bring them close together, synchronize them, and then move them slowly apart (Why slowly? You'll find out later). Now, fire a laser beam along the line connecting the two timers. By looking at the difference of the times recorded by the timers and dividing the distance between the two timers by this, you can measure the speed of light, which we'll call c for short from now on. (It's exactly 299,792,458 meters per second if you do the experiment in a perfect vacuum). Now, repeat the experiment but move the laser towards (or away from) the timers at speed v whilst you're firing it. You'll notice that your estimate of the speed of light equals c, not c+v or c-v as you would expect if you know nothing about relativity.

Q4: No, how do you really do this experiment?
A4: Unfortunately it's too difficult to do the experiment so directly in real life, so you have to do it more indirectly. For details, look up "The Michaelson-Morley Experiment" in any elementary textbook about special relativity.

Q5: Isn't this result because c is very large whilst v is very small, so c+v and c-v are roughly the same as c?
A5: Nope, even if v is 99.9999% of c, you'll still get the same result. The speed of light is an absolute constant (that's why it's called c for constant.)

Q6: What does this mean?
A6: It means that almost everything you thought you knew about space, time, speed and motion is wrong - they break down at high speeds (of the order of magnitude of c).

Q7: Why can't you go faster than c?
A7: The kinetic energy of a particle of mass m moving at speed v is not E_c=\frac{1}{2}mv^2 as they tell you in physics lessons in secondary school. The correct formula is \displaystyle E_r=mc^2\left(1-\frac{1}{\sqrt{1-\frac{v^2}{c^2}}}\right), which is approximately \frac{1}{2}mv^2 if v is much less than c. Here is a graph of the classical kinetic energy E_c per unit mass and the relativistic kinetic energy E_r per unit mass, plotted against speed:

As you can see from this graph, as the velocity approaches c, the energy approaches infinity, so it requires an infinite amount of energy for any object with non-zero mass to even reach c, let alone go faster. In fact, no information can travel faster than c, even if that information carries no mass.

Q8: But light goes at c. How come?
A8: Particles of light do not have any rest mass - the m in the above equation equals zero.

Q9: So light has no energy?
A9: No. Because it goes at c, you can't use the equation from question 7 to figure out the energy of a photon (a particle of light). The above equation gives zero times infinity, which is undefined. In fact, a photon can have any amount of energy, depending on it's wavelength or frequency. The energy of a photon E equals hf where f is the frequency (oscillations per second) and h is Planck's constant (about 6.626x10-34 Joule-seconds).

Q10: I've heard about "solar sails" - the idea that you can propel a spaceship using the momentum of light. But if the speed of light is finite and the mass of light is zero, then the momentum of light p=mv=0. So how does the solar sail work?
A10: The equation for momentum p=mv is another of those classical equations that are just plain wrong (well, not so much plain wrong as an approximation that only holds for velocities much less than c.) The correct equation is \displaystyle p=\frac{mv}{\sqrt{1-\frac{v^2}{c^2}}} for particles with mass, or p=hcf for photons.

Q11: Okay, I'll accept for a moment that nothing can go faster than the speed of light. Suppose you're on a train that is moving at 0.95c with respect to the ground, and you're skateboarding down the aisle of the train on a jet propelled skateboard at 0.1c. Now I'm going at 1.05c with respect to the ground. What's the explanation of this apparent paradox?
A11: There is no paradox here. There's nothing in physics that says you can't have a train moving at 0.95c. According to relativity the laws of physics are the same in any reference frame so there's nothing special about 0.05c or any other speed (except c) aboard the train. In fact, relativity says that you can't even tell how fast the train is moving by performing any experiment that doesn't rely on the outside of the train.
The problem here is that if A is moving relative to B with speed X and if B is moving relative to C with speed Y, the speed of A relative to C is not X+Y as you think it is. In fact, it is \displaystyle \frac{X+Y}{1+\frac{XY}{c^2}}, which is always less than c as long as X and Y are, and this is approximately X+Y when X and Y are much smaller than c.

Q12: I heard about this thing called time dilation. What's that all about? And why did the timers have to be moved apart slowly in question 3?
A12: Suppose you have a set of twins. One of the twins stays on the Earth, the other goes on a round trip on a spaceship at a speed close to c. Because of the bizarre things that happen at speeds near c, when the travelling twin returns, he will not have aged as much (will have experienced less time than) his brother who stayed on the Earth.

Q13: But surely from the point of view of the twin on the spaceship, it was the earth which went on the relativistic round trip, and to him it should be the Earth-bound brother who should end up younger.
A13: No, the two brothers do not experience the same things. The one on the spaceship experienced an acceleration at the far point of its journey as he stopped moving away from the Earth and started moving back towards it. His reference frame was not "inertial" (did not move at a constant speed) so is not equivalent to the reference frame of his brother.

Q14: So just before the acceleration period, which brother is older?
A14: It may seem strange, but the question is not meaningful. You can't compare the ages of the brothers when they are a long distance apart. You can't compare times over a long distance and you can't compare distances over a long period of time. This is because relativistically, time and distance are two sides of the same coin. When moving at speed, time and distance "change places" to a certain extent - this is the source of time dilation and it's partner, length contraction.

Q15: Length contraction? What's that?
A15: When you're moving relative to something, say a plank of wood, that plank will be shorter (from your point of view) the faster you are moving relative to it, compared to the length it was when you weren't moving.

Q16: Suppose there's a 1 metre wide hole and a 2 metre wide plank. Suppose the plank is moving sufficiently fast that, from the point of view of the hole, the plank is length dilated to 1 metre. Then suppose that at the time the plank is passing over the hole, it goes through the hole. From the point of view of the plank, it's the hole that's length dilated (to 0.5m) so now the plank is too long to go through the hole. What's going on?
A16: The problem here is that the concept of rigidity is a classical one and has no equivalent in relativity. Think of the speed of sound - this is how fast mechanical signals travel through a material. In an ideal rigid body the speed of sound is infinite, but since no information can travel faster than c you cannot have a relativistic rigid body. So the simple answer to this question is that the the plank bends.

Q17: Hang on a sec. The plank bends in the reference frame of the plank, but not in the reference frame of the hole?
A17: Exactly. The fundamental thing here is the relativity of simultaneity. If two events happen simultaneously in one frame of reference, they do not necessarily happen simultaneously in another. This is why you cannot say what the difference in the age of the twins is when they are a long way away - the answer depends on your frame of reference.

Q18: What is the Cherenkov effect?
A18: Cherenkov radiation is a bluish light emitted when a particle moves faster than the speed of light.

Q19: WHAT!?!?!??!!!
A19: Notice that I said "speed of light", not c as I have mostly been using in the rest of this document. c is the speed of light in a vacuum, the speed of light in materials is lower, and depends on the material. The speed of light isn't the absolute speed limit, c is.

Q20: How do you actually do calculations with this stuff? It seems like all the starting points I've been taking for granted - space, time, velocity - aren't really fundamental any more.
A20: You can define a basis for space and time, however it will depend on your velocity, so you'll need a different basis for every reference frame you use. Fortunately, there is a simple formula for converting between reference frames, the Lorentz transform. You can read about this in any elementary special relativity textbook.

Q21: (From Gregg) If an object's mass increases as it's speed increases, where does this mass come from?
A21: From whatever accelerated the object. Mass and energy are the same thing. So when you increase the object's (kinetic) energy by speeding it up, you also increase it's mass. Now, energy can't be created or destroyed, so whatever gave the object this kinetic energy has lost some energy (and, therefore, mass) itself. Note that there isn't any transfer of matter going on in the acceleration process - the accelerated and accelerating objects have the same number of atoms (electrons, quarks...) in them that they started with, but the masses of these particles have changed.

Q22: (From Colin) Mass and energy are interchangeable. Has mankind managed to turn any energy into mass yet?
A22: Oh yes, physicists are doing this every day in particle accelerators. As the particles are accelerated they gain mass, then when they smash into each other they break up into many particles, some of which may well be the same particles that were originally accelerated. The particles that are "created" are effectively the result of turning energy into mass.

Q23: (From Colin) Mass attracts mass (gravity). Mass attracts energy (gravitational lensing etc). Has it been shown practically that energy attracts energy, or energy attracts mass?
A23: Not directly (in a lab) because the amounts of energy we can work with are too small to exert any gravitational attraction. The finest gravitational experients that have been done require masses of the order of a few grams, 1 gram of mass could power 80,000 homes for a year.

However, there are very good reasons to believe that energy does attract mass (and energy). Much of what makes up the "mass" in everyday substances is in fact energy (binding energy holding the protons and neutrons in the nuclei together). So if this energy didn't contribute to the gravitational force, we would expect that different substances (which have different ratios of mass to binding energy) would accelerate differently under gravity (because they would have different ratios of inertial mass to gravitational mass). Accurate experiments (to many significant figures) have been done measuring this ratio for many different substances, and no difference has been found between any of them. So if there is a difference in gravitational attraction between fermions ("matter" particles) and gauge bosons (the virtual "particles" responsible for "energies" of various sorts) it's very small (too small to be detected in any experiments anybody has devised so far).

Q24: (From Rachel) Something about Einstein's theory of relativity bothers me, specifically about the issue of time dilation. According to what I read (pls correct me if I'm wrong), the stronger the gravity the slower the pace of time. This was proven by experiments with clocks that seem to run faster when farther from the Earth, as well as with experiments wherein time delays for radio waves near a sufficiently dense body (such as the Sun) were observed.

Now, I understand that space distortions can be caused by sufficiently dense masses (similar to a rubber sheet weighed down in one part by a small yet heavy stone). But the reasoning regarding time doesn't convince me well. The experiments used to prove time dilation (as far as I know) had to make use of speed (i.e. a relationship between distance and time). This was the case for the experiments using clocks and radio waves.

So I wonder: What if... the apparent (take note: apparent) slowing down of time and the delays were caused, not by the true slowing down of time, but by the "stretching" of distances due to the presence of dense masses in space (much like the stone-on-rubber sheet again)? If so, then aging will occur at the same pace regardless of whether a person experiences high or low gravity.

Are there any experiments that disprove my assumption?

A24: The Pound-Rebka experiment verifies that time passes slower in a stronger gravitational field. By "makes use of speed" do you mean "assumes that the speed of light is the same no matter how strong gravity is"? I don't think any other speeds are involved. The constancy of the speed of light has been verified by other experiments.

Gravity bends space and it bends time, but it bends both in such a way that the speed of light remains constant (if only space were bent and time remained the same, the speed of light would have to change in proportion to the stretching of space).

The stone-on-rubber sheet image is a neat way to visualize matter bending space, but don't confuse the visualization with the physics - that model has some serious oversimplifications, especially where time is concerned.


If you have a question about relativity, email me (or comment below) and I might put it up here. I'm not going to do your homework for you, though.

If you think relativity is strange, just wait until you find out about quantum mechanics.

A Question of Questions

Wednesday, July 12th, 2000
  • Question 0: What is the answer to question 0?

In actual fact, Question 0 can be any question you like. Not all questions have answers, though, so we need to ask the question:

  • Question 1: Is it possible to answer question 0?

What if it is impossible to answer question 1? To make sure, we need to ask:

  • Question 2: Is it possible to answer question 1?

We can make up an entire infinite series of questions along these lines:

  • Question 0: What is the answer to question 0?
  • Question 1: Is it possible to answer question 0?
  • Question 2: Is it possible to answer question 1?
  • Question 3: Is it possible to answer question 2?
  • ...
  • Question n: Is it possible to answer question n-1?
  • ...

We will call this series of questions series 0. Obviously, higher numbered questions in series 0 get easier, so surely (even if Question 0 cannot be answered) one of the questions in the series can be answered. The answer to all successive questions will then be "Yes".

  • Question x: Which is the first question in series 0 which can be answered?

Perhaps it is impossible to discover the answer to question x.

  • Question x+1: Is it possible to answer question x?

But then we must ask:

  • Question x+2: Is it possible to answer question x+1?

And we get another infinite series (series 1):

  • Question x: Which is the first question in series 0 which can be answered?
  • Question x+1: Is it possible to answer question x?
  • Question x+2: Is it possible to answer question x+1?
  • Question x+3: Is it possible to answer question x+2?
  • ...
  • Question x+n: Is it possible to answer question x+n-1?
  • ...

It must be possible to answer one of the questions in series 1, but which? In asking this, we get another series of questions, series 2:

  • Question 2x: Which is the first question in series 1 which can be answered?
  • Question 2x+1: Is it possible to answer question 2x?
  • Question 2x+2: Is it possible to answer question 2x+1?
  • Question 2x+3: Is it possible to answer question 2x+2?
  • ...
  • Question 2x+n: Is it possible to answer question 2x+n-1?
  • ...

And then series 3:

  • Question 3x: Which is the first question in series 2 which can be answered?
  • Question 3x+1: Is it possible to answer question 3x?
  • Question 3x+2: Is it possible to answer question 3x+1?
  • Question 3x+3: Is it possible to answer question 3x+2?
  • ...
  • Question 3x+n: Is it possible to answer question 3x+n-1?
  • ...

We can sum up all these series in another question series:

  • Question 0: What is the answer to question 0?
  • Question x: Which of the questions in series 0 can be answered?
  • Question 2x: Which of the questions in series 1 can be answered?
  • Question 3x: Which of the questions in series 2 can be answered?
  • ...
  • Question nx: Which of the questions in series n-1 can be answered?
  • ...

This is a completely different type of series to the other series we have been looking at, so we will call the series y (for reasons which may become obvious later). You guessed, next we ask:

  • Question x^2: Which is the first question in series y which can be answered?
  • Question x^2+1: Is it possible to answer question x^2?
  • Question x^2+2: Is it possible to answer question x^2+1?
  • Question x^2+3: Is it possible to answer question x^2+2?
  • ...
  • Question x^2+n: Is it possible to answer question x^2+n-1?
  • ...

This is series x. Then there is a question series for which of the questions in the series x, x+1, x+2, etc. can be asked. The number of questions which need to be answered in order to answer question 0 is uncountably infinite.

In general, question number f(x) is "Is it possible to answer question f(x)-1?" unless f(x)=0 for all x, in which case question number f(x) is the original question. Question f(x,x)x is "Which is the first question in series f(x,y) which can be answered?". Series g(x,y) is the series of questions with numbers such that if you remove the constant parts of the question identifiers and divide by x, the series of identifiers you get is g(x,0), g(x,1), g(x,2), ... g(x,n), ...

Series y^2 isn't very interesting - it's just a subseries of series y.

We might wish to think about the series:

  • Question 0: What is the answer to question 0?
  • Question x^2: Which is the first question in series y which can be answered?
  • Question 2x^2: Which is the first question in series 2y which can be answered?
  • Question 3x^2: Which is the first question in series 3y which can be answered?
  • ...
  • Question nx^2: Which is the first question in series ny which can be answered?
  • ...

According to our numbering scheme, this series must be series xy. What is the identifier for the question "Which is the first question in series xy which can be answered?"? According to our formula, the answer to this question is x^3.

Using these rules we can easily find the question corresponding to any polynomial f(x) with positive integer coefficients. Interestingly, the question is of the "is it the case that..." (i.e. a question expecting a yes or no answer) if f(0) is not equal to 0, otherwise it is "which" type of question, expecting an answer from the set of natural numbers, or question 0 itself, which can have any form [1].

Are there questions which do not correspond to polynomials in x? Let us consider the series:

  • Question x: Which is the first question in series 0 which can be answered?
  • Question x^2: Which is the first question in series y which can be
    answered?
  • Question x^3: Which is the first question in series xy which can be
    answered?
  • ...
  • Question x^n: Which is the first question in series x^(n-2)y which can be
    answered?
  • ...

According to our numbering scheme, this series must be x^y. Question x^(x+1) ought to be "Which is the first question in series x^y which can be answered?". This is not a polynomial in x.

We can construct as many different levels of series as we like, as many different levels of levels as we like and so on, and as many different levels of levels of ... of levels of levels (where there are n occurrances of the word "levels" in that clause). Quickly we have to use complicated constructs and curious meta-language just in order to enumerate the possibilities.

For every sort of infinity that we can invent, there is another, larger one. We can enumerate our infinities as the aleph series - aleph_0 is the "smallest" infinity, aleph_1 is the next one up, aleph_2 is the next one and so on. But then we can start thinking about some more series:

  • aleph_(aleph_0), aleph_(aleph_1), aleph_(aleph_2), ...
  • epsilon_0 = aleph_0, epsilon_1 = aleph_(aleph_0), epsilon_2 = aleph_(aleph_(aleph_0)), ...
  • epsilon_(aleph_0), epsilon_(aleph_1), epsilon_(aleph_2), ...
  • epsilon_(epsilon_0), epsilon_(epsilon_1), epsilon_(epsilon_2), ...
  • gamma_0 = epsilon_0, gamma_1 = epsilon_(epsilon_0), gamma_2 = epsilon_(epsilon_(epsilon_0)), gamma_3 = epsilon_(epsilon_(epsilon_(epsilon_0)))
  • ...

We can take the series aleph_1, epsilon_1, gamma_1 and continue it - call it a(0), a(1), a(2) - then there's nothing to stop us thinking about a(aleph_0). We can continue doing this sort of thing for as long as we like and we will never have succeeded in even writing down how many questions you need to ask in order to answer question 0 (since we can do exactly the same sort of things with the questions, series of questions, levels of series and so on).

I hope I have succeeded in boggling your mind. I have certainly succeeded in boggling my own. Boggling the mind a little from time to time is good for it. Too much of any good thing is bad, though - thinking about this sort of stuff drove Cantor (the inventor of the aleph notation) to insanity. Be careful next time you ask a question!

For some similarly boggling (but probably more mathematically correct) stuff see this.


[1] On a more philosophical note, there only 4 types of question:

  1. "What": Used for asking the nature of something. Occasionally also used as a synonym for "which".
  2. "How": Used for asking for details of a process.
  3. "Why": Used for asking the reasoning behind something.
  4. "Which": Used for asking to select from a list, as in "Which of the following is true". "Is it the case that..." type questions could be considered to be selecting from a list of two: True and False. Three other common questions are made from Which:
    • "Who" is "Which person"
    • "Where" is "Which place"
    • "When" is "Which time"

ICQ Privacy

Wednesday, July 12th, 2000

I use ICQ a lot for keeping in touch with friends, and it's great at doing just that. However, as anyone who uses it a lot will testify, you quite often get messages from people you don't know. Some people (me included, as long as I'm not too busy) like that, but many people don't, particularly women, who (I'm told) sometimes get some quite disturbing messages from the more unsavoury members of the ICQ community - enough to make some of them want to give up using ICQ altogether. This tutorial is for these people.

I'm using the ICQ 99b software for Windows 95. If you're using a different client some things may be different, but they should be pretty similar if you're using an official Mirabilis clients. For some of the options you may need to put ICQ in Advanced mode if it isn't already - to do this, click "ICQ", "Advanced Features".

In order to send you a message, the sender must be able to find out your ICQ number. There are a limited number of ways this can be done:

  1. Random Chat
  2. White pages
  3. You giving out your number
  4. Other people giving out your number
  5. Trying random numbers

We'll cover these in order.

Random chat is easy to turn off. Press the ICQ button, "Find/Add Users", "Random Chat"and make sure that you are not "available for random Chat & Messages".

White pages is the main source of ICQ numbers, since relatively few people have Random Chat switched on (it's off by default). In order to get a number from White Pages, you must give it some information - a name, an email address, an age, a gender, a language, a place or some hobbies/interests. So to prevent yourself "getting found" the trick is to tell ICQ as little about yourself as possible. Press "ICQ", "Add/Change Current User", "View / Change My Details". The obvious ones to remove are your birthday, gender, location, "Info/About" and interests. You might also wish to remove your name if you're particularly paranoid. Remember, lower ICQ numbers are found first and only the first 40 numbers found are shown. Try doing a white pages search on the information that you have put in and see how easy it is to find yourself. Put yourself in the position of a horny teenage boy and think about what sort of infomation he would enter in his search.

The third item is easy to do something about - just only give out your ICQ number to people who you know and trust, don't publish it on your website unless you want the people who read your website to ICQ you.

The fourth item is a bit more difficult. People you like will presumably respect your privacy by not giving out you ICQ number to anyone who asks them for it, but if someone you don't like has got hold of your ICQ number and is posting it on alt.sex newsgroups or something like that, there's not too much you can do about it. If it's one person you're getting messages from you can just add them to your ignore list but if it's dozens it's much more difficult. If the worst comes to the worst, the best thing you can do is get a new ICQ number and start afresh ("ICQ", "Add/Change Current User", "Add Another Registered User").

The fifth method of finding your ICQ number you can do nothing about. However, I imagine it is pretty rarely, if ever, used. There are something like 60 million assigned ICQ numbers, so the chances of you being singled out are pretty rare. Anyone sending messages to huge numbers of ICQ users will get kicked off the network pretty quickly. So if, after taking all the above precautions, you still get unwanted messages, I suggest just adding that user to your ignore list and thinking nothing of it.

Here are another few useful couple of privacy tips. Go to "ICQ", "Preferences & Security", "Security & Privacy":

  • Make sure that your authorisation is required for people to add you to their contact lists. Someone who's found you in white pages will almost certainly try the people who don't require authorization first.
  • Don't publish your IP address. Although a determined hacker can still get at it, even the most junior of "script kiddiez" know how to use an IP address to find out what internet service provider you use, find out what operating system you are running and sometimes even crash your computer if you are running certain versions of Windows. The security implications are much greater if you are using a static IP address (such as your own computer on a university network) than if you are using a dynamically allocated IP over a modem to your internet service provider.
  • Make sure that the "Web aware" option is off - particularly useful if you have some people on your "invisible" list, or are in "privacy mode".

I feel I should add a footnote to say that these precautions are necessary only if you feel that unwanted messages are a problem, and that this problem is caused by a tiny minority of irresponsible users. Most people on ICQ, as in the world in general, are very nice people once you get to know them (even if some days it seems like the nice people are in the minority).

Finally, if you find someone on ICQ white pages and contact them, it's only polite to introduce yourself, say why you're calling and ask if they have time to chat (just like you would do on the telephone). Remember, you might know all about them from their details page, but they will in general know nothing about you.

The future of music distribution

Wednesday, July 12th, 2000

I remember the first time I heard about MP3 - it was from a purely technical point of view. A friend was telling me about this new sound format with terrific compression ratios and how it used psychoacoustical techniques to achieve this compression with no loss noticeable to the human ear and about how it could be played back with a reasonably modest PC. Remember, when reading this essay, that although I am talking mostly about MP3, that it is a just a format, not a way of life - MP3s can be used quite legally and any other music format can be used for piracy in just the same way (MP3 is just a particularly convenient, hence popular, hence controversial one).

What he didn't tell me was the enormous social implications which would be brought about by this invention. To be fair, back then few people had heard of it, fewer still had the equipment to play it back and it probably wasn't an issue. But less than 2 years later, I myself have the equipment to make, play, obtain and distribute MP3s. I have an incredible music system in front of me. If I think of a song I want to hear, and I can remember its name (or even just some of the lyrics) I can obtain a near CD quality copy of the song in minutes at the touch of a button, for free, and from the comfort of my own room.

But there are two tiny problems with this musical utopia. It is illegal, and it is immoral. I shall ignore the fact that it is illegal and concentrate on the far more important moral aspect.

The main problem is that if I go to one of the many music shops in Cambridge and buy a CD containing a song I want to hear, the artist who recorded it gets paid some money, whilst if I download the song from the net or make an MP3 from a friend's copy of the CD, that artist is paid nothing.

Artists have to eat. Some die-hard campaigners for free music will claim that any artist worth their salt isn't in it for the money, but for the sheer love of music and of performing it, and for making their fans happy. To a certain extent, this is true, but the fact remains that they have to make a living out of it, or they'll have to find something else to do, and chances are that that career won't leave enough time for making the music we love to hear.

There is also the problem of ensuring that the artist's popularity is recognised. When I buy a CD that purchase is registered in the sales charts for that week. Musicians whose works are popular are kept on by the record companies and encouraged to make more records. Musicians whose music nobody buys are not invited to make any more recordings (even if their music is very popular to download over the internet).

A good way to judge whether something is immoral or not is to imagine what the world would be like if everybody did that thing (incidentally, that's also a good way to decide what should be legal and what should be illegal, but laws are just another form of moral code - one which is forced upon us and enforced by the judicial system). If everybody downloaded MP3s instead of buying CDs, then all the artists would starve to death and nobody could afford to make music anymore (okay, deeply oversimplified picture but you get the idea).

I buy many more CDs now than I did before I started downloading MP3s. There are several reasons for this. One is to save my poor overloaded hard disk from cracking under the strain of all that music. Another (probably lesser, if I'm honest - practical considerations all too often seem to come first) reason is to support those that make the music I love. I've discovered a lot of music through listening to MP3s that I might otherwise never have heard. If I find I have many MP3s by the same artist I try to find an album which has as many as possible of those songs on it and buy that album.

So perhaps everyone should be free to download as much music as they like, but they should still buy the occasional album to keep the artists happy. The artists should see the free music as a promotional tool, not as a threat to their livelihoods. An ideal situation, right?

Well, no, not perfect, because albums are a very clumsy way to buy and listen to music when you've seen what MP3s are capable of (and, by the time you reach the end of this essay, you should understand this). Let's leave aside for the moment the fact that not everyone is as conscientious as I am and that in all probability most artists in the "free music" society wouldn't make as much money as they do in this one.

On any given album in my CD collection, there are some songs I like more than others. Some albums have a higher proportion of songs on that I like, and some have only one or two that I'd listen to by choice. I've never come across an album where I like all the tracks the same. But the way I tend to listen to albums is to just stick one in the CD player and press play, and then when it finishes change it for another. I listen to all the tracks the same number of times, even though I prefer some to others. Of course, I could change CDs after every track, but it's too much effort, particularly since I tend to listen to music whilst doing other things. I could just skip the occasional track but then I'd have to change CDs more often. Also, unless you have a shuffle feature on your CD player you always hear the songs in the same order, which can get boring.

When I listen to my MP3 collection I shuffle the whole thing into random order and play it all the way through. I can skip any tracks I feel like skipping and the list will still take me days to get through. Since I've hand picked every song, I generally get higher quality music (i.e. a greater percentage of songs that I like) when I'm listening to my MP3 collection.

What I'd like from an ideal MP3 player would be for all the tracks to be weighted, and for it to pick one at random that I haven't heard too recently. If I get bored of a track I should be able to say "play this one a bit less often", whilst if I hear a great song that I haven't heard for a while, I should be able to say "play this one a bit more often". If I really get annoyed with a song I should be able to say "never play this song again unless I specifically ask for it" (these commands will henceforth be referred to as "voting for" a song). I'd have a continuous stream of music much like I get on the radio, but tuned to my specific tastes, and without those annoying DJs (apologies to any DJs reading - I don't hate quite *all* of you...)

The system could be further refined by telling the computer what sort of mood you're in. There will be some songs that you like whilst you're in one mood and some songs that you like whilst you're in another (it would get to know this by which songs you voted for whilst in which mood). Then it can use a different set of weightings depending on your mood. You could even take into account that some songs will change your mood, so you could instruct the computer "play some music to cheer me up". Try doing that with your CD collection!

So lets suppose for a moment that we're in some sort of socialist utopia where the artists get all they want to eat and everybody listens to music like this. How does anybody ever get to hear any *new* songs? We need some sort of infrastructure in place whereby new songs can get into the system. Well, you could get told by your friend about this great new song he heard recently, but that's a bit hit and miss, especially since your friends might not share your taste in music. You could listen to the radio, but then you might end up listening to stuff you don't like (plus, of course, all the time you're not listening to your own personal music collection you're not refining your preferences).

The answer is really fairly simple if you think about it. All it requires is a very slight modification to the program. In this ideal society, everyone has, of course, a permanent high-speed connection to the internet. In fact, all this music is probably being streamed from a server somewhere to save you having to lug around gigabytes of storage in your personal stereo. So all you need to do is to instruct the server to occasionally play you a track you haven't heard before, based on the songs liked by other people that like the same songs as you. When the server decides that you should hear something new, it looks at somebody else's music collection, collects a list of songs that they like you haven't heard before, decides how much their tastes overlap with yours, weights the list by this "overlap coefficient" and by how much they like these songs, repeat for lots of people and pick the song which comes out with the highest score (you could take your mood and the moods of these other people into account as well). It then plays you the song and you can vote on it. If you're an adventurous listener, you might instruct the computer to find new songs often, if not, you might tell it to do so only rarely.

New songs get into the system because everyone uses it, even the artists who are recording these new songs. The artist just tells the computer that she likes the new song she's recorded, and soon it's being recommended to people who like the other songs she likes (including those she's made). The computer ought to take into account how many times a particular song has been heard to give new songs a chance to spread.

It will be easy to generate accurate statistics about how popular any given song or artist is - just add up the votes for each song. People can choose to listen to the most popular songs if they want to. The system could also take into account different genres (although, of course, since a song rarely fits into any given genre, it will probably have weightings in many different genre categories).

Finally, if there are two people in the room, the computer will be able to pick songs that both people like. Even with a room full of people, all with different moods and personal preferences, the computer should be able to pick a song that at least most of the people there will like. If you want to meet people with the same taste in music as you, you could just go to a place which is playing music that you like and meet the people there. Or you could be even more direct about it and ask the computer to introduce you to (or get the email address of) someone who has the same taste in music as you. Give the computer a bit more personal information about yourself and you can use your MP3 player as a dating agency!

There's still this question of money. The artists still have to eat. Well, I don't know about you but I'd certainly be prepared to pay quite a lot for that service. I have bought (or been given) about 60 albums in the 6 years or so since I started buying CDs. That's at least about £100 worth of CDs a year. If this service is as good as it ought to be I need never buy a CD again, so I'd be quite prepared to pay that much for the service. However, since the overheads are so much lower (there are no CDs to make and artists won't need to employ a record company to promote them) the artists will be able to make just as much money with us spending much less on our music.

There are several payment systems which could be used. There could be a fixed annual sum (as with TV licences in Britain), you could pay by the track, or by the minute that you spend listening to music. You could even pay nothing yourself and let the computer play adverts to you instead. You could vote for and against adverts just as you do with music tracks so advertisers could find out which adverts you like and which just get on your nerves (the "never play this again" button, applied to adverts, would be a fantastic tool for giving the advertisers some incentive to make their adverts less annoying). The mood system could also be applied to adverts.

There are many other ideas I've had for this that I haven't covered - choosing the right music for the occasion, for example - you could say to the computer "I need some music for a party. Here's the list of people who will be there and I want to get them dancing." or "I've just brought this girl back to my room for coffee and I need some romantic music now!". Or the fact that there might be two songs you like but you wouldn't want to play one after the other. Or that some people like to listen to entire albums, with the tracks in the order the artist put them in. Or the new generation of personal stereos which contain wireless internet connections for the purpose of listening to this music, buttons for voting, changing your mood, etc, maybe a screen to display lyrics, images or videos...

Of course, you can still download the music so you don't have to pay or listen to adverts in order to listen to it if you wanted to (it's impossible to stop you doing so - something that I hope will soon be realised by those who are trying to pedal such technologies as the so called "secure digital music") but with all the extra value added by listening to your own personalised stream, I think few would want to.

I don't doubt this will happen, but a big question is how. Here are some possible ways it could happen. The reality will probably be somewhere between these extremes.

The first way starts off with the program just being a player for your own MP3s, not an MP3 exchange program. As list exchange starts to happen, bands that want to make their music available do so, in exchange for subscription fees (which are very small at this stage). Perhaps they also sell some CDs. Then, as it becomes more popular, the big record companies want a slice of the huge amount of money which is being made, and decide to release their music to the system (presumably having discovered that SDMI doesn't work). The process will happen gradually, perhaps just a few (maybe crippled) songs at first, from a few artists signed to a few record companies, but hopefully it will take off so that all the back catalogues eventually get put on as well and the streaming can really start to take off.

If the program starts to take on some of the features of Napster or Gnutella and exchange information which allows people to get in touch with each other and exchange songs if each has music the other would like, it could get completely out of the record companies control. Anarchists will like this bit - the next thing that happens is that it becomes really popular so no-one buys CDs anymore (well, maybe one person to get the songs onto the system in the first place). The record companies quickly go out of business and no-one can do anything about it. The problem with this scenario is that when the record companies collapse, talented musicians might stop making music because they know they won't be able to make any money from it. When can the system start charging? As soon as they do, a free clone will spring up and we'll be back to square one.

As you can see, the digital music distribution has the potential to not only completely revolutionise the way we listen to music, but to completely revolutionise society itself. I think it will be for the better, but if you disagree, you can always do it the old fashioned way - I'm sure it will take quite some time for it to disappear.

How to make a user friendly computer

Wednesday, July 12th, 2000

When showing a first-timer how to use a computer, it is all too easy (especially for those with years of computer experience) to assume that the user knows something that they do not, even if it's something as basic as how to use a mouse or what the spacebar is. These things soon become second nature, but this demonstrates how these assumptions can cause (sometimes quite hilarious) problems.

Equally annoying is the assumption that you don't know how to do these simple things when you do. Consult the on-line help or manual for any major Windows program (even Windows itself) and it will tell you how to do things which were almost certainly completely obvious for you unless you are an absolute beginner. The slightly more in-depth information you needed (which should still be documented) is nowhere to be found.

Of course, the computer could ask at every stage "Is this too basic/too advanced" so that it could tune its messages to be of maximum benefit to the user, but said user would quickly get bored of answering these questions all the time, especially if in a hurry. The answer I have come up with is the concept of the User-level. This is a simple scale, from say, 0 to 10, on how experienced a user is. Someone of user-level 0 has probably heard the word "computer" before but has no idea what one is, but computer should never hold anything back from a level 10 user - it should always give the most detailed information no matter how confusing it may be.

The user-level is partly a level of skill but mostly a level of confidence, or a way of measuring how scared a user is by computers.

The system needs to be implemented at many different levels. The first place is in the computer shop. Picture this scenario: A customer enters, looking to buy a computer. The first thing the sales assistant should ask (unless it's obvious - never ask a question if the answer is obvious) is "Have you ever used a computer before?" If the answer is "yes" then the sales assistant can go on to determine if (a) the customer knows what a user level is, (b) if he has one and (c) what it is. Hopefully the concept of user-level will eventually become sufficiently standardised that anyone who has used a computer before knows what their user-level is.

After making the sale, the customer walks out of the shop with a large cardboard box and basic instructions (ideally in the form of a video cassette, if the customer (or user, as we shall call him from now on) has a VCR). These instructions will tell him absolutely everything he needs to know to get as far as turning the computer on.

The first time the computer is switched on it will go into a mode which I will call "default power-on state". In this mode, the computer gives the instructions, describing what the various parts of the computer do, demonstrating (and testing) the user on the use of the keyboard and mouse, concepts such as files and applications, what the internet is, how to use the world-wide-web and email and so on. If there is more than one person learning to use the computer, it keeps track of everyone's user-level separately (how the computer knows who is using it is a bit tricky if no-one can so much as enter their names, but if there is any doubt it can always go back to the default power-on state (which the user can skip easily enough).

Since the computer keeps track of exactly what each user knows, it can always provide the most concise and useful answer to any question it ought to know the answer to. It could even use artificial-intelligence techniques to keep track of the user's learning style so it knows how fast to progress and how many times it needs to repeat everything before it sinks in.

Of course, this should always be easy to override, and the best way to do this would be a context sensitive, user-level sensitive "panic button". Pressing it once brings up the context-sensitive help for whatever application the user is using and their user level. Pressing it again explains things in simpler terms. Repeated pressing of the panic button will return the computer to the default power-on state (although doesn't abandon any work in progress). As soon as the user's panic attack is over and they find themselves in familiar territory, they can start progressing forward again. At any point they should be able to ask "what does that mean" of any technical term and receive a sensible answer.

Some users may wish to have the more personal touch of a human tutor guiding them through at least the first steps. This is easily allowed for by having an option to manually set the user level (which is what the shop assistant would do before selling a computer to someone who had used a computer before).

If the user tries to do something out of his depth, he should be told in a friendly but firm manner. For example, a command prompt might be banned for all users with user level 5 or less, so upon attempting to do this a dialog box would flash up:

This function is only available to level 6 or greater users. Do you wish to
(a) Cancel (you didn't mean to do that)
(b) Learn what this function is for and upgrade your user-level accordingly or
(c) Set your user-level to 6 and jump right in at the deep end?

An important part of this user-friendly system is the concept of reliability. It's all very well having a computer that can keep track of its user's ability, but it also has to be able to keep track of itself, and that means no unexpected behaviour. In the event of hardware failure the machine should be able to diagnose itself and call for expert help if necessary (in extreme cases, when it doesn't work at all, it will be fairly obvious that it doesn't and that it needs taking back to the shop). It should have a built-in uninterruptable power supply which integrates closely with the operating system to save any unsaved work in the event of a power cut.

This is the main reason why this machine will probably use an open-source operating system such as Linux. As computers get more complicated, it has been proven time and time again that the best way to get truly reliable software is to let every programmer in sight loose on the source code so that all the bugs get ironed out quickly. Even the huge teams of programmers at Microsoft can't find and extinguish bugs as quickly as a world full of programmers. There are all sorts of possibilities for automatic maintainance - users with low-user level wouldn't even need to be told when their computer goes online to collect the latest set of bug fixes (although new features which might confuse should be explained first).

Another reason for using Linux is the level 10 rule - "Nothing should ever be held back from a level 10 user". Taking that rule to its extreme, the source code to any of the applications on the user's hard disk should not be held back.

Hopefully the combination of reliable applications and a computer system designed from first principles to be as easy as possible to use for beginners and advanced users alike will eliminate the need in the future for such things as technical support, and Computer Stupidities will become a thing of the past.

Once we have a world of computer-literates, people who understand what computers can and cannot do and are not afraid of them, and we have computers and software that are powerful and reliable enough, then we can start to implement the systems that will really change our lives for the better.

Image editing

Wednesday, July 12th, 2000

(for Ken, and all the other Kens out there)

I recently got an email from someone who wanted to send me some images that he had scanned in with his new scanner, but was having trouble sending the 8Mb BMP or TIF file by email and was even considering wasting some trees and using (shudder) snail mail. This is a common sort of problem for people new to scanning images and/or sending images over email.

I had been planning to write this tutorial for some time, since I quite often get sent over-sized, under compressed images by email. So, when I got the email from this guy I decided to write it there and then (and dedicate it to him), so that next time someone asks I can just point them to it. I hope you find it useful and that it will help you to become a more responsible citizen of cyber-space.

This tutorial doesn't cover how to do scanning (see the manual which came with your scanner for that) or how to attach images to emails (see the documentation for your email program for that). What it does cover is the most common things you should want to do in between - cropping, image file formats, changing resolution and reducing colour depth. I usually use Paint Shop Pro for these sorts of tasks - it's an excellent general purpose image editing program with support for many file formats as well as TWAIN-compliant image sources (which is pretty much any scanner or digital camera software you care to name). Paint Shop Pro can be downloaded from JASC. All the examples in this tutorial use Paint Shop Pro. If you use different software, you'll have to do some playing around with it to find the equivalent commands (assuming those commands are supported).

Don't use TIF or BMP format unless you want to use a picture in a program that only understands those formats. Neither TIF or BMP use any compression. Their only virtue is that they are easy from a programming point of view.

The file format you want depends on the content of the image. GIF is good for images such as cartoons or diagrams, which have areas of solid colour, but it doesn't support more than 256 colours. It's particularly good for websites, since pretty much every web browser since the beginning of time supports it. It can also do animation and transparency - great for making websites. Unfortunately, people in the US are at a disadvantage since Unisys (who own a patent on the GIF format) have taken advantage of the USA's very bad patent laws to attempt to charge anyone who makes a GIF file. This lead to the "burn all GIFs day" when websites were encourages to exchange all their GIF images for superior PNG format images. People in other countries are still free to use GIFs if they like, though, and since GIF still has some advantages (it is supported by more browsers and has the ability to do animation) I encourage people outside the US to continue using it.

JPG (or JPEG or JIF) is good for scanned photos or images from digital cameras - it is a lossy format which means that you trade off some of the quality of the image to make the file smaller. Usually with photographs you can get tiny files with no noticable loss in quality (in other images the loss in quality may be more noticable).

PNG is a relatively new format which means that not many programs support it yet. It's a very good lossless general purpose format, much like GIF but with better (albeit slower) compression and support for more than 256 colours. JPG can be used with most web-browsers and PNG with the more recent ones. Most of the other formats provided by Paint Shop Pro are only provided for compatibility with other software which has a more limited selection of file formats (to edit the Windows startup, shutdown and "It is now safe to turn off your computer" screens for example, it is necessary to save a BMP image).

Just as important as choosing the right file format, though, is to crop the image properly and to reduce the colour depth and resolution of your image before saving it. Scanners normally produce very high resolution images (mine is 300dpi by default) in 16.8 million colours. This produces very big files (about 264Kb per square inch).

Use "File", "Aquire" to scan your image in the usual way. 300dpi and 24 bit colour (or "Truecolour" or 16.8 million colours). You might want to use 150dpi if you want to scan a large image quickly. Next, select the area of the image you want with the rectangular selection tool (the button with the dotted rectangle). Then select "Image", "Crop" to remove the parts of the picture you don't want. Most scanner software does this automatically, but this technique is generally more accurate since you can zoom into the image if you want to. At this stage you can also rotate the image (using "Image", "Rotate") if you scanned it at a more convenient orientation than upwards.

The next stage is to resample the image to a more convenient resolution. If you zoom to 1:1 you'll probably notice that the detail is far more than you need - unless it's a very small image only a fraction of it fits on the screen at once (even if you have a very high resolution monitor). Use "Image", "Resample" to fix this. If your image is not in Truecolour or Hicolour, this option will be greyed out and you will only be able to use "Resize", which is equivalent to scanning at a lower resolution. "Resample" has the advantage that it uses some of the information it throws away to make the image look better - a technique sometimes known as "anti-aliasing". Resampling also works better if you are increasing the resolution, but this practice is almost never recommended - if you think you need to do this you should probably have scanned at a higher resolution to start with. The "image enhancement" techniques you see in movies where a fuzzy blown up image is made perfectly sharp and clear so that you read the piece of paper sticking out of the bad guy's pocket is actually not possible.

It takes a bit of practice to decide what the right resolution should be for your image. For the purposes of viewing something on-screen (such as on a website) having the image larger than the screen is pointless (people don't like to pan around images to see all of them, and if they zoom out it means your image was at too high a resolution). 640x480 is about the practical maximum for a website, since most people use a resolution of 800x600 on their desktop and want some space for menu bars, scroll bars and that sort of junk). If you're printing your image with a high quality printer (laser, or inkjet on glossy paper) you might want to double that. If you're projecting your image onto an IMAX cinema screen, you probably want a higher resolution still. Of course, if (in the last two cases) you find your image is blocky, you can always start again with a higher resolution.

When using the Resample tool in Paint Shop Pro, ensure that the "maintain aspect ratio" box is checked, otherwise your image will look squashed or stretched.

Next, decrease your colour depth. At the moment each pixel takes up 3 bytes of memory. Since you probably still have quite a few pixels, your file is still quite large (Paint Shop Pro tells you exactly how large in the bottom right hand corner of the window). If you have a photographic image and want to save using the JPG format, or if accuracy of colour reproduction is very important to you and you are saving in PNG format, you can (and should) skip the colour depth stage and proceed to saving the file.

You probably want either 256 colours or 16 colours. (2 is useful colours if you are dealing with a black and white line drawing in very high resolution, such as you'd want for printing out on a high quality printer). 16 colours is good if you have an image which has very few colours to start with, or you're really short on space, 256 is better for most purposes. Ensure you use an optimized palette for best results (the others are designed to make images look better for people who view web pages with a screen colour depth of either 16 or 256 colours - very few people do this these days because it looks pretty awful in any case). The next choice to make is the difference between "Nearest colour" reduction or "Error diffusion". This choice is mainly a matter of taste - try both and see which you like (you can use the "Edit", "Undo" feature to take the image back to 16.7 million colours).

From the point of view of image size, "Nearest colour" is usually slightly better. I usually prefer the way it looks - "Error diffusion" will tend to give better colour definition but can make the images look grainy. All these effects are hugely exaggerated by using 16 colours instead of 256.

Now we get to saving the file. If you're saving a GIF or PNG image with a transparent background (often done with websites - see the "AJ"s at the top of this page for example) select the "dropper" tool and right click on a portion of the background (remembering that the background must be one uniform colour. This is often another reason to use "Nearest colour" - error diffusion often gives backgrounds made up of more than one colour.)

Go to "File", "Preferences", "File Format Preferences". Select the tab for the format you require. For GIF and PNG images, use "Set the transparency value to the background colour" if you want a transparent background, or "Do not save any transparency information" if you don't. For JPG images select the compression level you require. Remember that the higher the number the smaller the file but the more definition is lost. As a guideline, 10 is "high quality", 20 is "good" and 40 is "normal". You probably won't want to go any higher than 40, but feel free to experiment to discover just what the effects of changing this number are. Use another program (e.g. your web browser) to check the look of the file, otherwise you'll have to close it and then re-open it again in Paint Shop Pro, an action which cannot be undone.

Finally do "File", "Save As", enter a name, select the file type you want. Some file types have sub-types. For GIF images, use GIF89a. For GIF and PNG interlaced images are usually best. For JPG, progressive encoding is better, although some older applications can only understand standard encoding - if your favorite JPG viewer doesn't understand progressive JPGs, either save with standard encoding or get a new viewer. If you come across what you think is a broken JPG, try loading it with Paint Shop Pro - if it loads fine in that you need a new viewer.

Don't save an image as a JPG, load it again, edit it and then re-save it as this will result in a loss of image quality (much like copying a video tape over and over again). Instead always work from originals, do all your editing and then only save as a JPG when you want to publish it, send it over email or whatever. If you think you might want to edit it at some point in the future, save another copy in a lossless format such as PNG and then open that when you come to do the editing.

We have mostly been talking about colour images. What about monochrome? Well, the first thing you want to do is use Paint Shop Pro's "Colour", "Gray scale" function to ensure that the computer knows the picture really is black and white (you can do this at any time between aquiring the image and decreasing the colour depth.) You should now have a picture of 256 colours (all of them shades of grey) that you can save as a JPG (if it's a photograph) or a GIF or PNG. Monochromatic pictures suffer much less from being converted to 16 colours (shades of grey) than colour pictures do, so try doing this to see how it looks (unless you're saving in JPG format).

Finally, a word about importing pictures into Microsoft Word (similar advice may apply to other word processors but I haven't experimented with those). Some word processors, such as Microsoft Word 6, store pictures in uncompressed format when a document with embedded pictures is saved (leading to very large DOC files). Some (e.g. Word 97) save the embedded pictures in the same format they were originally saved in. Word 97 is preferred over Word 6 for this reason. Also for this reason, when using Word 97, don't use copy and paste to get the picture from Paint Shop Pro into Word. Although it's more fiddly, you'll get better results if you save the file using the advice given above, use "Insert", "Image", "From file" and select the file you saved. This will make your DOC files much smaller in just the same way that your image files will be much smaller. Remember that changing the size of the picture once it is in Word doesn't affect the size of the file, just the number of dots per inch once it is printed out. Again be careful to preserve the aspect ratio when doing this (i.e. only drag the corner resizing squares, not the ones in the middle of the sides).

Why SDMI won't work

Wednesday, July 12th, 2000

Secure Digital Music is a bit of a buzzword amongst music industry execs at the moment. You might have wondered why there isn't much music for sale on the internet at the moment. It isn't that the music industry is full of luddites - most of them are fully aware of the incredibly lucrative new age of e-commerce and the incredible possibilities which it offers (see the accompanying essay "The future of music distribution" for some examples) and are anxious to get in there as soon as possible and start taking advantage of the internet gold mine.

The reason that they haven't, so far, is that they are terrified of losing control. They think that they will sell one copy of a song online and then the person who downloaded it will just copy it and send it on to all their friends, post it on a website, etc. Never mind that this pirate could just as easily buy a CD and do exactly the same (the hardware and software needed to extract music in digital format from a music CD is legal, cheap and easy to get hold of). This is how these people think.

In an attempt to "regain control" of this music, a technology has been developed called secure digital music. However, this technology is fundamentally flawed. It doesn't (and cannot) do what it was designed to do (eliminate piracy) and it's only effect can be to make life more difficult for those who want to use the music legally.

When designing a secure system, any security expert will tell you that you have to look at the system as a whole. Think of it as a chain keeping a boat moored to the harbour wall. The chain is only as strong as it's weakest link. It's no good pouring huge amounts of money into making one of the links amazingly strong when another consists of a piece of string. Using strong encryption to transmit your credit card number over the internet to a website is still silly if the website at the other end is a fraudulent one designed only to collect credit card numbers and not send out any goods. It's also silly if you're typing the number on the keyboard of a computer in a dodgy internet cafe which could quite easily be recording everything you type.

The idea behind SDM is that you can type in your credit card number on the music company's website and it will let you download a music file in a special format which can only be played with special software and/or hardware. This music file is encrypted so that it can only be played with a specific program or device. So there's the first problem - if you have music playing software on your computer and a portable digital music device, you'd have to download two copies of each song you wanted, one for each.

Another implementation of secure digital music only lets you make a certain number of copies of a song. For example, you might make a copy and it will work, but a copy of that copy won't. This requires the co-operation of the software which is doing the copying, so this won't even begin to work on current computers - all the software must be written and controlled by SDMI. Want to program your music player to do something that it wasn't originally designed to do? No chance, it would be too much of a security risk. Bug in the software? Tough. The only thing you can do is complain to the manufacturer. Software in general is going the other way - towards open source, where the programmers have to be completely honest to the customers because they can no longer hide behind their compilers (programs which translate human readable computer code into human unreadable, machine readable only code). Open source software is more reliable (because bugs are more easily spotted and fixed - more eyes on the source code means fewer places for the bugs to hide) and more secure for the same reason. However, if your customers can change the programming of the music playing device you're selling, they can change it to turn the copy protection features off.

Some such devices have many bugs. Even moving a song on the internal hard disk of the player device might be interpreted as "copying" so doing too much of that means the song will just stop working.

So SDMI is bad. It stops people legitimately doing what they are perfectly within their rights to do. However, I will now show that it doesn't stop the activities it's trying to stop, just makes them slightly more difficult. There are a couple of weak links in the chain which just can't be strengthened - SDMI have either conveniently forgotten these links or have chosen to ignore them to satisfy their member companies (who will be very disappointed when they discover that the chain breaks, just like it did with DVDs).

The first weak link occurs if you are able to play back the music on any general purpose computer available today, even if you are using SDMI stamped secure software to play back the music. The music must be decrypted by software to send to the sound-playing hardware inside the computer. This sound playing hardware is controlled by a small program which is part of the operating system, the "driver" for that piece of hardware. So the unencrypted music is sent to the driver, which plays it. However, because hardware is interchangable, drivers must also be, and it is quite trivial to swap any standard sound-card driver for a driver which makes a copy on your hard disk of whatever unencrypted digital music is played through it. Most users probably won't have the know how to do this, but of course all the pirates will.

So the only answer to this problem is to build the encryption into the sound playing hardware, or permit playback only on special purpose devices. Of course, you'll have to use SDMI approved speakers or headphones as well - you won't be able to use your favorite standard sound transducers because for all the SDMI approved hardware is aware, that transducer might not be an output device at all but just an interface to a device designed to capture the unencrypted sound. But even then there is a weak link which is absolutely impossible to fix with current technology (and, probably, with any future technology) - any pirate worth his salt (apologies for the pun) will just set up a high quality microphone by the speakers and re-record the unencrypted sound that way. The only truly secure digital music system would have to plug right into your brain to make interception impossible! And chances are that if we have the techology to make such implants possible, we'll also have the technology to create brain implants which can take the unencrypted sound out again...

So there you go, it'll never work. One final thing I'll say is that another of the SDMI's bright ideas to combat piracy is to introduce a new type of CD which can't be "ripped" and turned into MP3s as current CDs can - an encrypted CD. The only trouble is that these CDs can't be played on any current equipment. You'd have to buy entirely new equipment in order to play them. They won't be able to introduce these until everyone has a CD player that can read encrypted CDs. Although that's not going to happen any time soon, whenever you have the choice, only buy CD players that cannot read encrypted CDs to improve the chances for freedom in the future.

The SDMI's official website is here.