Apr 262010
 

Goo … sorry I meant searching for some information on the mythical vegetarian saveloy, I came across a mildly interesting discussion revolving around whether vegetarians were allowed to eat meat-based sausages (and saveloys). The suggestion was that of course vegetarians are allowed to eat meat products because it is a personal choice.

Rubbish.

First of all, the choice of becoming a vegetarian may be made for religious or health reasons. The relevant discussion ignored the possibility of being vegetarian for such reasons and specifically mentioned Muslims not being allowed to eat non-Halal meat. Of course becoming a Muslim or one of the “must not eat meat” religions (such as Buddhism) is a matter of choice, but once made you are not allowed by religious “law” to eat what is prohibited.

But it goes further than that. The word “allow” implies an external authority which dictates what is and what is not allowed. Indeed there are such authorities, such as your neighbourhood government’s laws. But this ignores that you can be your own authority – I can allow myself to write blog entries in the evening and prohibit writing them at work. It does not matter that nobody enforces these restrictions other than myself.

Indeed, whatever the authorities may say, almost all restrictions they impose are in the end “enforced” by the individual – it does not matter who says that killing people is wrong, it is my decision whether I kill somebody or not.

Nobody has told me that I cannot eat meat; it is a decision that I have come to – that I am not allowed to eat meat.

Trivialising vegetarianism by saying that vegetarians are allowed to eat meat is extremely insulting to those vegetarians who are very devoted to the cause. If people say that vegetarians are allowed to eat meat, it implies that vegetarians are just being awkward in refusing to eat meat (we’re not) and that (for example) it’s perfectly ok to feed vegetarians meat as a joke.

Not the sort of joke any vegetarian would find funny.

Hill Conquered

Apr 262010
 

Under our current voting system, voting for the candidate who represents the party you wan in government is not necessarily a smart way to vote. In some cases, choosing the party you want in government is throwing you vote away on a party that is very unlikely to win in your constituency. For instance in the constituency that I live in – Portsmouth South – anyone who votes Labour is pretty much throwing their vote away. The effective choices are between Liberal, or Conservative candidates.

With a transferable vote system (which of course we do not have), a Labour supporter (which isn’t me!) may well vote Labour as their first choice, and Liberal as their second choice to reduce the possibility that the Conservative candidate would win. Similarly, a Tory supporter in Scotland may choose Liberal as their second choice to reduce the chance of a Labour candidate winning.

Under our current system, it is probably better to choose between the two (or rarely three) leading candidates, picking the one that you least dislike the least. Whilst it may go against the grain to vote for somebody other than your preferred candidate, it does mean that your vote against the candidate you dislike the least is more effective.

Smart tactical voting is more complex than this of course – it involves checking the details of your constituency (you may also want to check the Voting Power details for your constituency, and the relevant Wikipedia article), and working out from the previous election results which two (or three if the third is within about 5% of the second placed candidate) and working out which one you would least dislike.

The Tories are warning that a vote for the Liberal party is voting to keep Gordon Brown in power – which is effectively saying that smart voting can accomplish something, but obviously slanted towards favouring voting Tory wherever you are. Whilst no party will encourage tactical voting, it can be for the benefit of whatever party you would prefer.

Vote tactically – it’s the smart thing to do!

Apr 232010
 

Now that the ash cloud is no longer looming over the UK and Europe, and aircraft are criss-crossing our skies again, it is time to look at some of what has happened.

Of course the airlines are complaining about all the unexpected expenses they have had to undergo and are beginning to hint that the governments (and Europe) should think about paying out some form of compensation. Sounds reasonable doesn’t it ? After all it was not the fault of the airlines that they could not fly and it certainly cost them lots of lost business.

Well hang on a minute. It was hardly the fault of any of the governments that a volcano in Iceland blew up and spewed ash across the skies of Europe. So why should we as taxpayers bail out the airlines?

There has been a hint that the relevant authorities were being a bit cautious closing the skies because of the ash cloud. Well perhaps, but they were only following established procedures. If the airlines think that the governments were being too cautious when it comes to the safety of passengers, perhaps they should have complained about it well before now.

And it seems a bit peculiar that the airlines are complaining about a risk to their business that is known well in advance. The single-man ice cream van that sets up shop on the seafront every day is not likely to get compensated by the government because the weather is bad one summer, so why should the airlines get compensated for something that is very similar ? If your business has a particular risk you have two options.

You can shoulder that risk and use whatever funds you have available to get through the rough time.

Or you can buy an insurance policy that keeps you going through a rough time.

There is another aspect to this that need considering too … airlines are supposed to pay for accommodating inconvenienced passengers on the second leg of their journey, and to arrange transport when it becomes available. From the EU website FAQ on the volcanic ash cloud situation (the “you” means “you the airline customer”) :-

  • You have the right to either reimbursement or re-routing
  • You have the right to information – there is an obligation for airlines to inform you about rights and flight schedules
  • You have the right to care- that means food, drinks, accommodation as appropriate

It is hard to get concrete evidence on exactly what the airlines are doing in this situation; many airlines are paying through the nose to treat their customers fairly. But there are plenty of indications that other airlines are either ignoring their obligations entirely or trying to get away with the minimum possible.

Looking around the Internet you can find plenty of indications that various airlines are :-

  1. Refusing to pay for any accomodation
  2. Putting an arbitrary limit on the length of stay that they will pay a hotel for – 3 or 4 days.
  3. Not providing information. Even going so far as to close their desks to avoid passengers.

Some are worse than others – the worst offender seems to be Ryanair. Which is understandable given they first tried to insist that their responsibility began and ended with merely refunding the cost of the ticket. They rapidly backtracked from this, and tried to claim that their statement was misunderstood. Yeah right!

Of course because of their actions many of us are of the opinion that Ryanair are a bunch of money-grabbing vampires with nothing but contempt for the people who travel in their cattle-class shuttles. And there are a few other airlines that are not a whole lot better

Some of the other airlines are saying that the European Union should compensate their costs for taking care of the stranded travellers. Well that might be a reasonable request if the airlines had been fully compliant with EU regulations regarding the care of the stranded travellers.

Perhaps the EU should offer to compensate the airlines solely for the cost of customer care only for those airlines who took proper care of their customers. A difficult task but perhaps it could be accomplished by simply compensating those airlines who have received no complaints that have been found to be reasonable. As for Ryanair, “No fscking chance” 🙂

Apr 232010
 

If you get yourself one of Apple’s iThingies (an iPhone, iPad, or iTouch) you are officially restricted to installing software onto it from the selection in Apple’s App store. Which is hardly news, as is the news that geeky types do not like this – which is why the iThingies have been “jailbroken” to allow the addition of unauthorised software.

At this point I would like to point out that I am not an Apple hater – I own an iPhone 3G and intend to upgrade to an iPhone 4G (when it comes out). I also use a Macbook Pro as my work laptop. I like Apple products. But Apple gets and deserves some criticism …

Much of the criticism of Apple’s software model for the iThingies has revolved around the continual censorship of the applications allowed into the App store. This is fair enough, and indeed Apple has made itself a laughing stock with inconsistency applied standards with applications rejected for breaching conditions not applied to other applications. In addition even Apple’s published standards can be become more restrictive leading to situations where you can find it impossible to restore an application that you have paid for!

But despite these disadvantages, the App Store method of software distribution does on the surface offer something genuinely advantageous to the average consumer. The applications in the App Store have been verified by Apple as being appropriate for use – reducing the malware problem considerably. One of the regulations is that applications should not be capable of interpreting code (approximately) which reduces if not eliminates the damage a compromised application can cause.

But a single source of applications is limiting and potentially dangerous. Indeed it can even be considered to be a restriction on trade as Apple is the gatekeeper (and insists on a rather large toll) for any developer who wants to develop for the iThingies. Perhaps ordinary consumers do not care about this especially when you consider that many applications have a very reasonable cost.

But it is still of some concern. The restrictions make experimentation more difficult.

But perhaps more seriously it prevents tinkering by ordinary consumers. This can be an advantage but is also a significant disadvantage as the very people who developed the iThingies would have tinkered with consumer devices as children on their way to becoming developers. By restricting tinkering by children we restrict the size of possible people who go on to become the techies of the future.

The obvious counter to this are the existence of other devices that are far more open – even equivalent devices to Apple’s iThingies such as the various Google Android devices. But if Apple’s App store model is successful enough (and it certainly seems to be heading that way), we could find ourselves with the same model being extended to not only competitors to Apple’s iThingies, but to more general purpose computing devices – netbooks, laptops, desktops, or even servers.

We could end up in a situation where the only devices you can buy are devices that can only run software sanctioned by the vendor. A dangerous possibility.

Apr 192010
 

One of the irritating things about reading or listening to people go on about CPUs or processors is how inaccurate they can be. In particular the complexity of modern processors allows for multiple “virtual processors” which many people seem to think are equivalent to each other. Not so! Some are and some are not.

In the old days you would have a socket on the motherboard of a computer into which you would fit a rectangular or square thing with lots of sharp legs on the underside (the chip) which was the processor. And yes I’m totally ignoring the period before single-chip processors when a chip might contain only a small part of a processor! One socket, one processor, one core (although you rarely if ever heard that), and one thread.

Although multi-threaded processors came before multiple cores, we will look at the later first.

One of the disadvantages of single processor computers was that for servers, they frequently did not have enough processor power. The solution was obvious – add more sockets so you could have more than one processor, although making the solution work was very difficult. Once multiprocessor servers came into use the cost of them was slowly reduced over time until they started being used at the high end of workstations where it become obvious that a multiprocessor machine for a single user was helpful in getting work done. Even though it was a rare piece of software that was written to take advantage of multiple processors.

At the same time, single core processors were becoming faster and hotter and it slowly became obvious that the old way of making computers faster was simple not feasible over the long term. Those who look into the future could see that if things continued as they were going, computers would rapidly become too hot to run easily. There was an almost collective decision that putting more than one processor onto a single chip was the way to make future computers “faster”, although there remains the problem of making software utilise those multiple cores properly.

Today you are most likely to encounter a multi-core chip going into that socket in your computer. This is more or less the same as the old multi-socket workstations and servers. Each “core” on a multi-core chip is roughly equivalent to an old single-core processor chip. If you have two cores inside your computer, your operating system will see (and hopefully use) each as a separate processor.

Now we come to threads, and this is where it becomes even trickier. Inside a single-core processor, there are a number of different units used to run your software which were often idle when running software. Each piece of software is made of of millions of instructions, and the processor runs a single instruction at a time. When a processor runs a single instruction, it has to go through a number of different stages which each use different units. At any time during the execution of an instruction, some of the units will be idle.

A variety of different strategies were tried to utilise these idle units, but the easiest to understand was one of the more complex to implement. This was to make a single-core processor pretend to be a multi-core processor and run more than one (usually two) pieces of software in what became known as “threads”. However whilst a simplistic piece of software may identify these threads as “virtual CPUs”, they are not quite the same – a processor with two threads will be slower than a processor with two cores (and no threads).

The “problem” with threads is that when two pieces of software attempt to run on the same processor, they will each try to grab a selection of units to use. These units change over time of course, but there is still a strong possibility that the two threads will both try to grab a single unit – and one will have to be stopped.

In many cases this performance difference between threads and cores does not make a noticeable difference. Almost all software spends far more time waiting for things to happen (for a bit of a file to come off a disk drive, for a user to press a key, etc.) than actually doing anything. However there are some software workloads that are significantly affected by the minor performance hit of threads – sufficient that it is even possible to improve performance by turning off threads!

This of course is an overly simplistic look at the issue, but may well be enough to convince some that threads and cores are not equivalent. A processor with 8 cores each of which can run 4 threads, is not equivalent to a processor with 32-cores. More sophisticated operating systems could well schedule software to run in a way that unused cores are referred to running software in a thread on a processor that is already being used.