Pages tagged ""

One lap

Posted on 18th May, 2008 by Heather

I love Linux. It’s not as if I use it much but I love the idea of it. Open source. Free collaboration. All that.

I am less enamoured of the techy-boys-toys attitudes that seem to infect a lot of Linux-users, or the unlimited contempt that they can show to anyone who knows ever so slightly less than them about operating systems.

The recent developments in the one-laptop-per-child project which will now see it offering Windows, as well as Linux, seem to be causing a lot of dissent. This was described on the BBC as the OLPC project “getting in bed with… the Great Satan”

According to the BBC report, the purists in the OLPC movement see Linux as at the heart of the project. Well fine, but is this project supposed to be about spreading access to technology and internet communication or is it about creating a world full of Linux nerds? Because, to most people, even to most techies as Ivan Krstic pointed out, computers are not ends in themselves. They are just tools.

Some of us like messing about with tech (to a degree..) Most people don’t. A television that you couldn’t operate without degree-level knowledge of electronics engineering would be pretty unpopular. Why assume that every third world kid will suddenly become someone who is happy to mess about with a kernel for weeks?

Most people in the world use Microsoft products. Nearly everyone of us has to use Microsoft in work. Surely that makes a Microsoft operating system a reasonable component to put in a product that aims to cover the world.

Or are the kids who get these laptops only to be allowed to use predefined worthy educational products on them, while their first world equivalents are playing games?

I’m not exactly the world’s biggest fan of the OLPC project anyway, but I don’t think it stands or fails on the nature of the operating system.

IMHO the OLPC has always been liable to turn out to be another top-down western attempt to solve the problems of the poor countries - our solutions to which usually turn out to benefit the rich countries.

Popularity: 15% [?]


Popularity: 15% [?]

Lap this up

Posted on 26th August, 2007 by Heather

The Internet is Father. The Internet is Mother. The Internet reached out its hand and gave us all life.

So it sort of pains me to say that the goal of achieving one laptop per child may not necessarily be a good thing…

The Mission Statement of the one laptop per child foundation

… is to stimulate local grassroots initiatives designed to enhance and sustain over time the effectiveness of XO laptops as learning tools for children living in lesser-developed countries.

local grass-roots initiatives, sustainability, learning tools, children, lesser-developed countries? Blimey. How worthy is that? These eco-friendly words could never be used to promte a BAD THING, surely?

It’s been a while since I’ve been to a less-developed country, but I seem to remember that, after food*, the crying needs for learning tools were for pencils and paper. Pencils, ffs. They don’t cost more than a couple of pence wholesale. You could probably pass one out to every needy kid in Senegal, say, for less than the cost of a handful of these laptops.

Well the BBC said:

A team of US-based researchers, backed by a billionaire, have re-invented the computer in an attempt to revolutionise education in the developing world.

I love the “backed by a billionaire” touch. Another selfless billionaire who couldn’t possibly be looking for new products and new markets. Or have an interest in spreading consumerist values. Or in getting national governments to support setting up digital network infrastructures.

Who is this mystery philanthropist?

Well, Internet research isn’t an exact science, so bear with me here.

MIT’s Nicholas Negroponte? Wow, that name sounds oddly familiar. Well according to wikipedia, among a range of other distinctions, he

is the younger brother of John Negroponte, current United States Deputy Secretary of State.

About whom wikipedia is also pretty forthcoming. It starts with:

He is currently serving as the United States Deputy Secretary of State. Prior to serving in this capacity, he was the first ever Director of National Intelligence.
Negroponte served in the United States Foreign Service, from 1960 to 1997. He had various tours of duty as a United States ambassador, including a three-year ambassadorship to the Philippines, from 1993 to 1996. He subsequently served as U.S. permanent representative to the United Nations from 2001 to 2004, and was ambassador to Iraq from June 2004 to April 2005……

What a career! Studded with involvement in such uncontroversial American adventures as Iraq and anti-Sandanista actions.

From 1981 to 1985, Negroponte was the U.S. ambassador to Honduras. During this time, military aid to Honduras grew from $4 million to $77.4 million a year, and the US began to maintain a significant military presence there, with the goal of providing a bulwark against the revolutionary Sandinista government of Nicaragua, which had overthrown the Somoza government and then created a state with close ties to both Cuba and the Soviet Union.

Now, I know some brothers are estranged and all that. For all I know, the Negroponte extended family observes no kinship rituals. So it’s more than possible that John and Nick don’t even exchange Christmas newsletters. And that they don’t share any social and political goals. So don’t jump to conclusions…..

Just saying.

(Compare and contrast the media fuss over government workers adding the odd “allegedly” to Wikipedia entries with uncritical media presentation of one laptop per child programme. There are also several techy blogs welcoming it as ironing out the digital divide E.g. Live stuff)

* plus a few other things like “staying alive till their tenth birthdays”, “accessible clean water”, “not getting shot”, “not living on the streets” or “not working on rubbish tips” and so on, but let’s not lose our sense of humour here……..

Popularity: 25% [?]


Popularity: 25% [?]

So this really is Dickens for 21st century

Posted on 16th April, 2007 by Heather

In an old Wire-ophile post here, I called the Wire Dickens for the 21st century.

In case that wasn’t clear enough, this was supposed to be a compliment…. I was referring to Dickens’ passionate awareness of social injustice, the huge cast of wierd characters and his plots that took in every section of society. (Obviously, I’m alive in the 21st century, so I think the Wire outshines Dickens, but that’s just me.)

I have carefully failed to rave endlessly about Wire series 4 because I blatantly can’t do it justice. Plus, I have to see it a few more times to even begin to tie together the plot strands and understand the subtle ironies and get all the references. yada. yada.

But wow, there is actually going to be a Dickens for the 21st century and its name is Dickens World.

No, really. A faked Victorian London is being created as we speak. According to the BBC:

The overall effect is rather like Disney painted brown and plunged into twilight.

“Highlights” will allegedly include a Great Expectations boat ride, a Haunted House of Ebenezer Scrooge, Newgate Debtor’s Prison and a Dotheboys Hall Victorian classroom.

I must admit to being baffled as to who this is going to appeal to. I thought of myself, aged about 8, an obsessive reader who was lucky enough to live next door to a public library. I vacuumed up all of Dickens’ books, although even I recoiled at the mawkish bits. I certainly wouldn’t have enjoyed Dickens World at all.

Kids who don’t enjoy reading Dickens are not going to have any idea what any of the set pieces are about. So I imagine it will be a depressing experience to visit a downbeat version of Disney World for them.

Even in the event that a non-reading-obsessed child becomes interested by it and picks up a copy of Great Expectations or David Copperfield…. Bloody Hell, these are A Level English Literature set books. That will put off the average kid from reading for life.

This park was thought up by the creator of Santa’s World and (Hans Christian) Andersen World. Theme parks based round a Christmas myth and a collection of only moderately disturbing fairy tales. ( Not a Brothers Grimm Theme Park, you might note.)

Somehow a theme park based on child labour, workhouses, disease, debtor’s prisons, homeless orphans and child thieves’ gangs doesn’t seem like very much in the way of fun.

No, what am I thinking? I am putting in my patent claim now for the concept of a Wire theme park. (I have already drawn up the specs. I’m not wasting an investment opportunity by putting the details here.)

No, forget that. It’s in the USA, it may not be harrowing enough. What about a theme park that shows what life is like in parts of the cities of the developing world. Do you see the entertainment potential in child labour, orphans, child thieves’ gangs, ruin, disease, homeless kids raising each other in the streets? Blimey. What fun.

Popularity: 25% [?]


Popularity: 25% [?]

Good and bad - and food(?)

Posted on 12th January, 2007 by Heather

I keep hearing people saying things like “I’m being good todayand not eating any chocolate.”

Maybe it’s my concept of morality but I can’t see how denying yourself certain foods can constitute being “good.”  It’s not easy to define goodness, but there can’t be many definitions that don’t involve helping other people or saving the planet or rescuing dumb animals, and so on.

People  who talk about being “good” in relation to food aren’t talking about not eating meat or eating only local grown organic products - i.e. food choices that come into the realm of morality. They are talking about refusing sugar and salt and fat and eating fruit and vegetables. That is, their own diet.

Even accepting that the health and weight loss benefits of these dietary choices are real - a huge obstacle, given that most of what passes for knowledge about diet is based on the most spurious science imaginable - the only person to benefit would be - guess who? The person making the “sacrifices.”

There’s nothing wrong with self-interest in terms of choosing what to put into our bodies.  Seeing it as a moral choice is a different matter.

Traditional exhortations to kids who don’t want to eat something was to refer to the starving millions. They still exist, (although they are still never going to get a chance to eat your unwanted sprouts.)  I think pepople on the edge of starvation can see quite clearly that it isn’t “good” that we have access to far more food necessary for our survival and it’s  definitely “bad” that they are starving.

On a full scale rant, I’m going to suggest that the phrase reveals an infantile morality - seeking to please an imaginary authority who will punish us for indulging ourselves and reward us for self-denial.  We are constantly at war with our natural desires.

This relates to our whole disturbed mind-set around food.  Most of us are so far from the state of eating when we are hungry that we have no idea what hunger feels like. Daily media bombardment focuses on celebrities’ losses or gains of a few ounces of bodyweight. People who accept this sort of thing despise the celebrities - and despise themselves even more -  for being either anorexic or obese, with a 5 pound window between these extremes.

If we have to detect goodness and badness in relation to individuals’ responses to food, then why not look at it in terms of how our behaviour influences other people, especially children.   It is surely “good” to eat what you need when your body tells you it needs it and surely “bad” to obsess about your own body shape. “Good” to approach food rationally and to stop consuming planet-threateningly large quantities of industrialised crap but to enjoy food as one of life’s main pleasures. 

This is just as selfish but I contend that it’s a socially and psychologically healthier selfishness.

Global imbalances in the distribution of resources won’t be solved or even improved at all by individuals giving our food money to charity either, whatever rock stars might believe. (They are rock stars, ffs, not agrarian economists) Shifting the inequalities in the global food balance requires a lot of hard choices from all governments - minimising dependence on imports in the overconsuming countries, encouraging production for local needs in the hungry countries and so on. However, an adult concept of morality is one of the preconditions for this sort of thing.

Popularity: 18% [?]


Popularity: 18% [?]

blimey. Coldfusion at last..!

Posted on 18th June, 2006 by admin

Well, blow me down. As mentioned previously I have had all manner of issues with ColdFusion. I thought I had tried everything. I upgraded Apache. Downloaded the latest versions of the CF software etc. All to no avail.

cfscreen_thumb.jpgAs I was reading through the last post I made, I noticed that I had missed a vital step. I never tried the manual configuration methods on the 2.0.58 version of the server. I upgraded to 2.2 first. Would this do the trick?

Suffice to say after a 2 minute download, 5 minute install and 5 minute manual tweaking I now have a fully running ColdFusion system at last!

Popularity: 14% [?]


Popularity: 14% [?]

Content Negotiation - Mirrored Post

Posted on 5th May, 2006 by admin

As mentioned in the last post, there is an excellent article available at http://www.autisticcuckoo.net/archive.php?id=2004/ 11/03/ content-negotiation, but sadly the author of this article has expressed his disinterest in continuing with his blog. While it is possible that he will continue to pay his hosting fees and continue to re-register the domain name, this is not certain so, to try and at least retain this article we have copied it (verbatim) below.

Original Source - http://www.autisticcuckoo.net/archive.php?id=2004/11/03/content-negotiation

We have, for some time, tried to inform people about the fact that there is no point whatsoever in using XHTML as long as you serve the documents with a text/html media type. For those who still want to use XHTML and gain at least something for some

users, we have recommended content negotiation. On several occasions people have asked us to publish a write-up on how to do that, but there hasn’t been time to sit down and write it. Now, finally, we have tried to whip something together that we hope can serve as a guide.

What Is Content Negotiation?

Content negotiation means that the server in one way or another
negotiates with a user agent (browser, search engine, etc) that requests a document. The negotiation means that the user agent announces which media types (also called content type or MIME type) it can handle and, optionally, which one it prefers. The server then serves the document in the way that best suits the user agent.

The user agent announces which media types it can handle through a header in the HTTP request it sends to the server. The header is called Accept and can look something like this:

Accept: text/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8, image/png, image/jpeg, image/gif;q=0.2, */*;q=0.1

The example is what our instance of Mozilla sends. (We have inserted blanks between the media types so that the text will wrap.) Our interest now lies with application/xhtml+xml and

text/html;q=0.9. The part after the semi-colon, q=0.9, is called a quality value and is a value between 0 and 1, inclusive, with up to three decimal places. The higher the quality value, the more the user agent prefers that media type. If no quality value is specified for a particular media type, it means q=1.0. The example thus shows that Mozilla prefers application/xhtml+xml to text/html.

The usual meaning of content negotiation is that the HTTP server itself decides which media type the user agent prefers, and then automatically chooses between a number of different documents. Normally the file suffix is used to associate to different media types, so the server might choose between

index.xhtml and index.html.

This article describes another type of content negotiation; one that is performed through a server-side script. Most web hosts offer some kind of server-side scripting, usually PHP or ASP. Our example uses PHP, since it is available for more platforms and is open source, while ASP is Microsoft-specific. We don’t delve into the finer details here, but presume that you are sufficiently familiar with PHP.

To round off this explanation of what content negotiation means, we want to emphasise that it’s not merely an issue of deciding which media type to send. When you have chosen a media type, you should also serve the document with a content that corresponds to the chosen media type. You either serve XHTML as application/xhtml+xml, or you serve HTML as text/html.

About the Examples

The code samples in this article are written for PHP 4.1.0 or higher. For older versions you need to replace $_SERVER with $HTTP_SERVER_VARS. If the code is executed in a function, you then need to declare the array as a global (global $HTTP_SERVER_VARS;).

This article presumes that the document’s content is marked up as XHTML 1.1, and that it doesn’t contain anything that cannot be converted into HTML 4.01 Strict, for instance element from other XML namespaces, or CDATA sections.

Parsing the Accept Header

First of all we need to find out whether or not the user agent supports the application/xhtml+xml media type and, if so, whether it prefers that to text/html.

  1. $xhtml = false;
  2. if (preg_match('/application\/xhtml\+xml(;q=(\d+\.\d+))?/i', $_SERVER['HTTP_ACCEPT'], $matches)) {
  3. $xhtmlQ = isset($matches[2]) ? $matches[2] : 1;
  4. if (preg_match('/text\/html(;q=(\d+\.\d+))?/i', $_SERVER['HTTP_ACCEPT'], $matches)) {
  5. $htmlQ = isset($matches[2]) ? $matches[2] : 1;
  6. $xhtml = ($xhtmlQ >= $htmlQ);
  7. } else {
  8. $xhtml = true;
  9. }
  10. }

The $xhtml variable indicates whether or not we will serve the document as XHTML. The initial value is false, since many older browsers lack support for XHTML.

On line 2 we check whether the Accept header contains
application/xhtml+xml plus an optional quality value. This regular expression isn’t 100% fool-proof, since it doesn’t limit the value range to [0,1], nor does it limit the number of decimal places to 3. For all intents and purposes, however, it doesn’t matter.

On line 3 we extract the quality value, if present. If not, we set the quality value for application/xhtml+xml to 1.

On lines 4 and 5 we perform the corresponding check for text/html. Line 6 compares the quality values and sets $xhtml=true if the user agent prefers application/xhtml+xml to text/html. Line 8 handles the case of a user agent that specifies application/xhtml+xml in the

Accept header, but not text/html.

After these lines of code we thus have a Boolean variable, $xhtml, which indicates whether the document will be served as XHTML.

Prepare HTML Conversion

If the user agent doesn’t support XHTML, or if it prefers HTML, we have to convert the document’s content from XHTML 1.1 to HTML 4.01. We do this with a simple function:

  1. function xml2html($buffer)
  2. {
  3. $xml = array('/>', 'xml:lang=');
  4. $html = array('>', 'lang=');
  5. return str_replace($xml, $html, $buffer);
  6. }

Lines 3 and 4 declare two arrays, where the elements in the $xml array will be replaced by the corresponding element in the $html array.

On line 5 each occurrence of /> is replaced by > in the $buffer string. At the same time, each occurrence of xml:lang is replaced by lang.

And Finally…

Only a few details now remain. If the $xhtml variable is true, we need to write the document type declaration for XHTML 1.1 and a <html> element with the proper XML namespace. Most likely we also want to start with an XML

declaration, and link to our style sheets through processing instructions.

If the user agent doesn’t want XHTML, we need to write a document type declaration for HTML 4.01 Strict and a <html> element without an XML namespace. Style sheets should be linked through ordinary <link> elements (or be imported in a <style> element). Furthermore, we need to instruct the PHP interpreter to buffer all output to the response stream, and to call our conversion function on the result before sending it back to the user agent.

Before we write anything at all, however, we must send a couple of HTTP headers: one that says which media type we use, and one that informs proxy servers that content negotiation has taken place so that they can consider that in their caching algorithms.

  1. if ($xhtml) {
  2. header('Content-Type: application/xhtml+xml; charset=utf-8');
  3. header('Vary: Accept');
  4. echo '<?xml version="1.0" encoding="utf-8"?>', "\n";
  5. echo '<?xml-stylesheet type="text/css" xhref="/css/screen.css" media="screen"?>', "\n";
  6. echo '<?xml-stylesheet type="text/css" xhref="/css/print.css" media="print"?>', "\n";
  7. echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">', "\n";
  8. echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">', "\n";
  9. } else {
  10. header('Content-Type: text/html; charset=utf-8');
  11. header('Vary: Accept');
  12. ob_start('xml2html');
  13. echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">', "\n";
  14. echo '<html lang="en">', "\n";
  15. }

Don’t forget to link to the style sheets in the <head> if the document is served as HTML.

There is a blatant shortcoming in the example shown in this article: the W3C validator. It doesn’t send application/xhtml+xml in its Accept

header, so it’s impossible to validate the document as XHTML. It is trivial to let a query parameter control the choice of media type, but that is left as an exercise for the reader.

(note: We are aware of some possible copyright issues, and we have attempted to contact the original owner to get permission to repost it verbatim here. At the time of this post, no replies had been received and we can only assume the original source is no longer on line. If you are the original source and would like this post removed please contact us and we will take this post down immediately)

Popularity: 45% [?]


Popularity: 45% [?]