Talisians - Talis People Past and Present

July 02, 2009

Rob Styles

OTTO - Controllerism Instrument at djtechtools.com

from OTTO - Controllerism Instrument at djtechtools.com: Controllerism continues to take small leaps forward as the software and techniques improve but the giant steps are going to happen in the realm of performance interfaces. Without a solid controller surface that has been designed to play like an instrument we wont be able to leave the realm [...]

by Rob Styles at 2009-07-02T20:31:32Z

Ross Singer

Linked Open LibraryThing

For Ian Davis‘ birthday, Danny Ayers sent out an email asking people to make some previously unavailable datasets accessible as linked data as Ian’s present.  It was a pretty neat idea.  One that I wish I had thought of.

Given that Ian is my boss (prior to about a month ago, Ian was just nebulously “above me” somewhere in the Talis hierarchy, but I now report to him directly) one could cynically make the claim that by providing Ian a ‘linked data gift’ that I would just be currying favor by being a kiss-ass.  You could make that claim, sure, but evidently you are not aware of how I hurt the company.

Anyway, as my contribution, I decided to take the data dumps from LibraryThing that Tim Spalding pretty graciously makes available [whoa, in the time that I first started this post until now, the data has gone AWOL, I suppose I did this just in time].  The data isn’t always very current and not all of the files are terribly useful (the tags one, for example, doesn’t offer much since the tags aren’t associated with anything — it’s just words and their counts), but it’s data and between ThingISBN and the WikipediaCitations I thought it would be worth it.

I wanted to take a very pragmatic approach to this: no triple store, no search, no rdf libraries, minimal interface.  Mostly this was inspired by Ed Summers‘ work with the Library of Congress Authorities, but, also, if Tim (or, whoever at LibraryThing) saw that making LibraryThing linked data was as easy as a few template tweaks (as opposed to a major change in their development stack) this exercise was much more likely to actually make its way into LibraryThing.

What I ended up with (the first pass released before the end of Ian’s birthday, I might add) was LODThing: a very simple application written in Ruby’s Sinatra framework, DataMapper and SQLite.  The entire application is less than 230 lines of Ruby (including the web app and data loader) plus 2 HAML templates and 2 builder templates for the HTML/RDFa and RDF/XML, respectively.  The SQL database has three tables, including the join table.  This is really simple stuff.  The only real reason it took a couple days to create was trying to get the data loaded into SQLite from these huge XML files.  Nokogiri is fast (well, Ruby fast), but a 200 MB XML file is pretty big.  It was nice to get acquainted with Nokogiri’s pull parser, though.

There are a few things to take away from this exercise.

  1. When data is freely available, it’s really quite simple to reconstitute it into linked data without any need to depart from your traditional technology stack.  There is nothing even remotely semantic-webby about LODThing except its output.
  2. We now have an interesting set of URIs and relationships to start to express and model FRBR relationships.
  3. The Wikipedia citations data is extremely useful and could certainly be fleshed out more.  One could imagine querying DBpedia or Freebase on these concepts and identifying if the Wikipedia article is actually referring to the work itself and use that.  Right now LODThing makes no claims about the relationships except that it’s a reference from Wikipedia.

LODThing isn’t really intended for human consumption, so there’s no real “default way in”.  The easiest way to use it is to make a URI from an ISBN:

If you know the LibraryThing ‘work ID’, you can get in that way, too:

Also, you can all of these resources as RDF/XML by replacing the .html with .rdf.

So, Tim, you wrote on the LT API page that you would love to see what people are doing with your data, here you go.  It would be even more awesome if it made it’s way back into LT — after all, it would alleviate some of the need for you to have a special API for this stuff.

Also, special thanks to Toby Inkster for providing a ton of help in getting this to resemble something that a linked data aware agent would actually want and finally turning the httpRange-14 light bulb on over my head.  He also immediately linked to it from his Amazon API LODifiier, which is sort of cool, too.

I’ll be happy to throw the sources into a github repository if anybody’s interested in them.

by Ross at 2009-07-02T16:39:04Z

Tim Hodson

Clives first week as a Support Analyst

Clive got the job after his Video CV, and now we join him at the end of his first week.

by Tim Hodson at 2009-07-02T16:01:17Z

July 01, 2009

Sarah Bartlett

The Cult of the Amateur


The 2004 O’Reilly-hosted FOO Camp (“countercultural Sixties meets the free-market Eighties meets the technophile Nineties”) is where Andrew Keen experienced a life-changing epiphany. As attendees proclaimed the democratisation of “media, information, knowledge, content, audience, author” by Web 2.0, and the demotion of “big experts” to “noble amateurs”, Keen was seized by a strong sense of unease that led to the writing of The Cult of the Amateur – an expose of the consequences of Web 2.0, the unleashing of user-generated content and the disintermediation of society’s cultural gatekeepers. As a consequence of this process, Keen argues, we can expect information to become steadily less reliable and more chaotic.

Most of us are aware of the devastation being wrought in industries such as music and newspapers. Keen argues that as professional content creators are forced to compete economically with free content, there are simply less resources with which to generate high quality creative works. As he says:


To make a top-quality recording today… an “exquisitely slow and detailed album… ideally would take a full year and, given the price of top contemporary musicians, could cost a million dollars. But this kind of investment… can’t be earned back in a market where people are buying fewer and fewer compact discs. So recording artists necessarily compromise their music because it is not economically viable to hire the best musicians and take enough time making the recording.

He also defends professional journalism, arguing forcibly that at best, citizen journalism can only ever complement professional journalism unless we are to resign ourselves to second-rate poorly-informed information:


Thomas Friedman, the New York Times columnist, and Robert Fisk, the Middle Eastern correspondent of the Independent newspaper, for example, didn’t hatch from some obscure blog – they acquired their in-depth knowledge of the Middle East by spending years in the region.

Despite my reservations around the record of professional journalists for delivering a consistently in-depth and accurate view of conflicts such as the second Gulf War (weren't they essentially spoon-fed information from the military?), or the political demonstrations of the
past in which numbers were consistently under-reported, for example, I think that his arguments around the importance of professional journalism are important, not only in intellectual but also in democratic terms.

I’m hugely sympathetic with Keen at a cultural level. I hate the thought of snippets of content becoming so prevalent that people no longer read a book in a linear fashion – have we collectively thought about the intellectual consequences of this? And I do share his nostalgia for Tower Records – in my case based in Piccadilly Circus, just round the corner from Haymarket in London, where I worked for years in my 20s. Yes it sometimes feels like the soul has been taken out of music. Stuart Maconie recently reported on radio 2 that over 40% of people no longer listen to a complete musical track let alone album – they get what they want from it emotionally, and then move on. What room is there for the pop grower, let alone the complexity of classical or operatic works?

But, on the other hand, not everyone had access to the rich variety of music on offer at Tower Records in LA or London, whereas now the cultural divide between kids in Manchester and kids in, say, the Lake District, must surely be narrowing as access to culture levels off with ubiquitous internet availability.

He makes a very very important point with regard to Web 2.0 user-generated content, namely that it is to a great extent dependent on professionally produced content i.e. it’s highly derivative, and yet it is simultaneously destroying that content.

So basically, at the level of description at least, I find much to applaud in The Cult of the Amateur. And that’s really what I expected from this book. I truly expected to identify some sort of soul sibling who shared my commitment to ensuring intellectual integrity in a Web 2.0 context, but who nevertheless espoused new technologies in terms of their potential for furthering human progress.

However early on in the book I started to get a bit concerned. It started here, in the introduction:

It’s ignorance meets egoism meets bad taste meets mob rule, on steroids.

Plus…

…if you provide infinite monkeys with infinite typewriters, some monkey somewhere will eventually create a masterpiece.

And…

… instead of creating masterpieces, these millions and millions of exuberant monkeys – many of them with no more talent in the creative arts than our primate cousins – are creating an endless digital forest of mediocrity.

References to “mob rule” and comparisons of human beings with monkeys seemed to me to be a highly elitist and dangerously anti-human articulation of concerns around cultural decline. Why is Keen deploying such unattractive arguments? Personally I’d say it’s a consequence of the overall faultiness of his critique. Keen argues that reasoned informed analysis is now in short supply, as we become swamped with inexpert user-generated content. Yes, Web 2.0 may have exacerbated that trend, and it has certainly surfaced it. But is Web 2.0 really to blame? Did
some golden era of informed analysis come abruptly to an end in 2004 when a bunch of moneyed Californian geeks (that most of us have never heard of) went off camping together?

Keen’s deepest concern is a feeling that truth itself is under threat:

This undermining of truth is threatening the quality of civil public discourse,
encouraging plagiarism and intellectual property theft, and stifling creativity.
When advertising and public relations are disguised as news, the line between
fact and fiction becomes blurred.

Surely Keen can’t be arguing that the “undermining of truth” began with the inception of Web 2.0 technologies? I’m no expert on philosophy, but didn’t cultural relativism start to gather force way back almost half a century ago in the 1960s? Yet he does seem to be saying that:

Yes, that means that if the community changes its mind and decides that two plus
two equals five, then two plus two does equal five.

The problem is that by failing to trace back intellectual trends historically, Keen seems to be leading us irresistibly to the conclusion that only Web 2.0 can be the cause. Isn’t it more helpful,
though, to see Web 2.0 as a phenomenon that became technically feasible precisely at a point in history where humanity’s uncertainty about its mission has deepened over a period of time, and society has fragmented to the point that:

every posting is just another person’s version of the truth; every fiction is
just another person’s version of the facts.

So I see the value in Keen’s descriptions of the web’s impact in areas such as music, industry and books. But I’m less certain about his ability to analyse that impact in terms of underlying causes and forces at play.

It’s a very enjoyable and engaging read though. The sheer vitriol is immensely entertaining, not to say refreshing in this politically correct world in which so many of us shy away from forthright statements of conviction.

But towards the end I came to understand that it wasn’t just the analysis that was a problem. Many of my disagreements are rooted in the fact that Keen’s motives for writing the book were at variance from my motives for reading it. When Keen writes that “our real moral responsibility is to protect mainstream media against the cult of the amateur”, I perceive that
his interests are too narrow to enable him to write the book I want him to write.

It is surely time to examine dispassionately at the broadest level what is gained and what is lost with user-generated content. But maybe that will only become possible once we collectively re-engage with the realm of ideas and re-gain an understanding of what we need them for.

by Sarah B. at 2009-07-01T20:07:57Z

Rob Styles

Why hash tags are broken, and ideas for what to do instead.

I was at Moseley Bar Camp last Sunday and there were some great sessions. Andy Mabbett stood up to lead a discussion entitled Let’s Play Tag: recent developments and emerging issues in the use of tagging for added semantic richness. Andy was looking for discussion on how to solve the problem of ambiguity in hash tags [...]

by Rob Styles at 2009-07-01T10:30:41Z

June 30, 2009

Elliot Smith

Example of how to put RDFa into an HTML list

I'm not going to try to explain RDF and/or RDFa here, but thought any poor suckers looking for RDFa examples might benefit from me posting what I finally worked out, with help from my colleague Rob. Namely, how to annotate an HTML ordered list (<ol>) with RDFa attributes; and how to put RDFa attributes onto form elements.

Here's the HTML page with RDFa embedded in it. What I'm representing here is a sequence of collections, and the individual collections within it:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Collections</title>
  </head>
  <body>
    <h1>Collections</h1>
    <form method="post" action="http://receptacular.org/collections">
      <ol xmlns="http://www.w3.org/1999/xhtml" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rec="http://receptacular.org/schema#" typeof="rdf:Seq" about="http://receptacular.org/collections">
        <li rel="rdf:_1" resource="http://receptacular.org/collections/1">
          <span style="display:none;" rel="rdf:type" resource="http://receptacular.org/schema#Collection"></span>
          <div class="collection-label" property="rdfs:label">Vague Collection</div>
          <input type="checkbox" id="collections-1-hidden" property="rec:hidden" datatype="xsd:boolean" content="false"/>
          <label for="collections-1-hidden">hidden</label>
          <input type="checkbox" id="collections-1-defaultSearch" property="rec:defaultSearch" datatype="xsd:boolean" content="false"/>
          <label for="collections-1-defaultSearch">use for searches</label>
        </li>
        <li rel="rdf:_2" resource="http://receptacular.org/collections/2">
          <span style="display:none;" rel="rdf:type" resource="http://receptacular.org/schema#Collection"></span>
          <div class="collection-label" property="rdfs:label">Archive Collection</div>
          <input type="checkbox" id="collections-2-hidden" property="rec:hidden" datatype="xsd:boolean" content="false"/>
          <label for="collections-2-hidden">hidden</label>
          <input type="checkbox" id="collections-2-defaultSearch" property="rec:defaultSearch" datatype="xsd:boolean" content="false"/>
          <label for="collections-2-defaultSearch">use for searches</label>
        </li>
        <li rel="rdf:_3" resource="http://receptacular.org/collections/3">
          <span style="display:none;" rel="rdf:type" resource="http://receptacular.org/schema#Collection"></span>
          <div class="collection-label" property="rdfs:label">Main Collection</div>
          <input type="checkbox" id="collections-3-hidden" property="rec:hidden" datatype="xsd:boolean" content="true" checked="checked"/>
          <label for="collections-3-hidden">hidden</label>
          <input type="checkbox" id="collections-3-defaultSearch" property="rec:defaultSearch" datatype="xsd:boolean" content="true" checked="checked"/>
          <label for="collections-3-defaultSearch">use for searches</label>
        </li>
      </ol>
      <p>
        <input type="button" value="Save" id="save-collections"/>
      </p>
    </form>
  </body>
</html>

Available online here: http://receptacular.org/collections

Things of note:

  • The doctype declaration. This is the W3C sanctioned doctype for XHTML+RDFa pages. By the way, the W3C validator will correctly validate this page, but standard XHTML validators don't (e.g. like "this one"http://nutrun.com/weblog/xhtmlvalidator-validate-xhtml-in-java/:). That's another story...
  • Namespace declarations on the <ol> element wrapping the list items. This is what causes standard XHTML validation approaches to fail.
  • The <ol> element is defined with typeof="rdf:Seq" and about="http://receptacular.org/collections". This sets it up as the RDF Seq resource.
  • The <li> elements inside the <ol> are Seq items, within the wrapping Seq resource. Each is each defined as a resource using the resource attribute. They are linked back to the enclosing <ol> element using the rel attribute on each. Note that the value for the rel attribute is an rdf Seq number, which orders the items within the enclosing Seq resource.
  • The RDF type of each Seq item is set using a hidden <span> element. Note that these elements have no text in them, but have opening and closing tags. If you just use a self-closing start tag for this element, the HTML doesn't display property.
  • The <span> elements use the rel attribute to mark their RDF type relationship to the outer list item; and the resource attribute to specify the location of the resource representing their type.
  • Each Seq item has an enclosed <div> which represents its rdfs:label property. Note that the property RDFa attribute is used to specify which property of the enclosing resource is being defined. Also note that the value of the property is inlined between the start and end tags of the <div>.
  • The two checkboxes define two more properties for each Seq resource: rec:hidden and rec:defaultSearch. (The semantics of the properties aren't discussed here, as I'm concentrating on syntax.) Each is defined on a standard XHTML <input> element: the relationship to the enclosing Seq item is defined with the property attribute; the value of the property is defined using the content attribute; and the data type of the literal value is defined via the datatype attribute. Any of the standard XML datatypes could be used here, or other types from other schemas.
  • When working with form elements which represent property values for RDF resources, you may need to change the content attribute in response to UI changes. (In the application from which this example was extracted, we use JQuery to respond to changes in the check box which set the content attribute.)

To see the RDF which can be extracted from this page, you can use the W3C's RDFa Distiller. Here's the resulting RDF:

<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
  xmlns:dist="http://www.w3.org/2007/08/pyRdfa/distiller#"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:rec="http://receptacular.org/schema#"
  xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#"
  xmlns:xml="http://www.w3.org/XML/1998/namespace"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
>
  <rdf:Seq rdf:about="http://receptacular.org/collections">
    <rdf:_1>
      <rec:Collection rdf:about="http://receptacular.org/collections/1">
        <rec:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</rec:hidden>
        <rec:defaultSearch rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</rec:defaultSearch>
        <rdfs:label>Vague Collection</rdfs:label>
      </rec:Collection>
    </rdf:_1>
    <rdf:_2>
      <rec:Collection rdf:about="http://receptacular.org/collections/2">
        <rec:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</rec:hidden>
        <rec:defaultSearch rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">false</rec:defaultSearch>
        <rdfs:label>Archive Collection</rdfs:label>
      </rec:Collection>
    </rdf:_2>
    <rdf:_3>
      <rec:Collection rdf:about="http://receptacular.org/collections/3">
        <rec:hidden rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</rec:hidden>
        <rec:defaultSearch rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</rec:defaultSearch>
        <rdfs:label>Main Collection</rdfs:label>
      </rec:Collection>
    </rdf:_3>
  </rdf:Seq>
</rdf:RDF>

Saving changes to an RDFa-enabled form like this is another challenge, for which we used rdfquery, and RDF library for JQuery. (I recommend you use the latest svn HEAD version of this library, as older versions have a bug where they ignore RDFa elements nested inside elements without RDFa attributes.) Maybe I'll get round to that another time.

by elliot at 2009-06-30T09:52:35Z

Elliot Smith

Script to copy random mp3s from a directory to an mp3 player

This is a Ruby script which randomly copies mp3 files from one directory to an mp3 player. I wrote it so I could easily fill up my mp3 player from the 9000 odd mp3s I have on a different external drive.

To run it, you'll need the sys-filesystem gem (see http://rubyforge.org/projects/sysutils):

$ gem install sys-filesystem

Next, edit these variables in the script (near the top):
* source_dir to the directory containing the mp3s you want to select from
* dest_dir to the path for the directory on your mp3 player you want to copy to

Be a bit careful, as this will attempt to fill the dest_dir you specify with mp3 files from source_dir. You might end up filling the wrong disk up.

Then just run it with ruby from the command line:

$ ruby mp3s_random.rb

Note that it won't delete anything from the destination drive, and will attempt to fill all the space available. Also note that it doesn't keep trying mp3s until it finds one which will fit the last remaining space: once it tries to copy a file which won't fit, it stops. You can always run it again to see whether the next run finds a file small enough to fit.

I've only tested it on Linux, but, who knows, it might work on Windows too. (No operating-system specific commands are used in the script, as it uses Ruby for all file operations.)

The code is below, but I've attached it as well.

require 'rubygems'
require 'sys/filesystem'
require 'ftools'
source_dir = '/media/disk/music'
dest_dir = '/media/disk-1/music'
files = Dir[File.join(source_dir, '/**/*.mp3')]
num_files = files.size
stat = Sys::Filesystem.stat(dest_dir)
disk_free_space_kb = (stat.blocks_free * stat.fragment_size).to_kb
files_selected = []
while disk_free_space_kb > 0 and num_files > 0 do
  # choose an mp3
  file_num_to_copy = rand(num_files - 1) + 1
  file_path = files.delete_at(file_num_to_copy)
  num_files = num_files - 1
  # work out how big file is
  file_size_kb = File.stat(file_path).size.to_kb
  # subtract from free space
  if (disk_free_space_kb - file_size_kb) > 0
    files_selected << file_path
    disk_free_space_kb = disk_free_space_kb - file_size_kb
  else
    break
  end
end
files_selected.each do |f|
  copy_to_path = File.join(dest_dir, File.basename(f))
  puts "Copying #{f} to device"
  File.copy(f, copy_to_path)
end

by elliot at 2009-06-30T09:24:41Z

June 29, 2009

David Whitehouse

Warm compression test

Further to the cold compression test I did a while back I did a warm one over the weekend. I ran the bike for 10mins round the block then quickly stripped the carbs off and took the plugs out. The compression test resulted in some ok figures and much better than when cold: cyl 1 115 cyl 2 [...]

by dave at 2009-06-29T20:03:47Z

June 28, 2009

Rhys Wilkins

Families, eh?

Families, eh? After a somewhat confusing night and day, we have a
house guest. Well, you have to be there for family. The worst of it is
that we seem to have confused the cat.

by mauvedeity at 2009-06-28T20:18:00Z

Karen Reece

Advertising Standards

It's no great surprise that the advertising industry is being hit hard by the economic woes of the world. Have you noticed that even TV is now having to advertise the power of advertisements? I'd guess this is one of the best barometers of both the state of the economy as well the change in the revenue models for TV. You always recall the good adverts, and if they are done well they become intimately associated with the product they are selling - for example Cadbury's Gorilla, Guinness Horses and Surfers or the Smash Martians. However, some advertising is just plain wrong. My current hate is the Iggy Pop, Swiftcover ad. After years of leaping around a dance floor to Iggy's Lust for Life, there is something deeply disturbing that Iggy has gone lusting after the adverting dollar. I have no problem with him needing to supplement his pension, but with a cheesy insurance ad? I develop tourette's every time I see the ad.

Equally, the emergence this week of a 34 page brochure advertising the *cough* icon that is Michael Owen, who 'may consider a move away from St James' Park' *really, I'd never have guessed* is just plain wrong. This glossy contains some interesting facts about Brand Owen, including 0.5 goals per game ratio, his current sponsors (Umbro, Tissot and BMW - in case you are mildly interested) and how he isn't really injury prone. Its the fact that he is being hawked around (in English, Spanish and Italian) that is so unedifying. Don't get me wrong, I'd not hankering back to the days of the bags full of cash in motorway service stations in order to transfer a player from club to club, this just feels so extreme, so impersonal, so desperate.

What is does demonstrate is that the corportisation and internationalisation of football is complete. EMO, will load up his metaphorical saddlebags of Newcastle United's cash and hightail it out of town. Like the mercenary that he is, he'll tip up somewhere new, do a job for a couple of years and quickly erase the memories of his time in the black and white shirt. When he arrived at the Toon he was damaged goods, and he'll leave us the same... only several million pounds richer. Brings a new definition to 'living on past glories'. Cheerio, Michael, shut the door on your way out - you won't be missed.

With regards to the rest of the squad, no doubt the exodus will start next week - rumours are legion, but I'm not paying too much attention. Far more pressing matters of managers/owners are taxing my thoughts...and depressing me. Unfortunately, I can see a fire sale of the talent (such as it is) from the squad, and administration is looming. A ten point deduction before we even start in the Championship - what joy.

On a lighter note - I've mentioned in the past that I live fairly near Old Trafford. This week coming back from work a Audi R8 appeared in my rear view mirror... Immediate thought was "*tut* footballer" I wasn't wrong, as he pulled next to me at the lights, I saw that the driver was Fellaini - him of the big hair fame.

You heard it here first.

by Karen Toon at 2009-06-28T11:04:30Z

June 25, 2009

Rhys Wilkins

A Mission...

I was curious. As you may know, Safari 4.0 gets 100% on Acid 3. Safari on the iPhone gets 97% (as of firmware 3.0). Firefox 3.0.11 scores a mere 72%. I can't test Internet Explorer at the moment, because I haven't got a Windows machine to hand (lucky me, eh?).

But then I got curious. How low a score could I get? Can I get a perfect zero? So I'm working on building some kind of VM that'll connect to the Internet and run something like IE3. More news as it breaks...

by mauvedeity at 2009-06-25T20:58:00Z

June 24, 2009

Rhys Wilkins

Just had to share this

Wow. Just wow. You so have got to check this out.

by mauvedeity at 2009-06-24T21:13:00Z

Rob Styles

Putting Government Data online - Design Issues

Government data is being put online to increase accountability, contribute valuable information about the world, and to enable government, the country, and the world to function more efficiently. All of these purposes are served by putting the information on the Web as Linked Data. Start with the “low-hanging fruit”. Whatever else, the raw data should [...]

by Rob Styles at 2009-06-24T12:02:51Z

June 23, 2009

Rhys Wilkins

Facebook without Adblock

...is painful. It's like staring at a very angry fruit salad. Ouch.

by mauvedeity at 2009-06-23T21:50:00Z

June 22, 2009

Rob Styles

STI International - Service Web 3.0 - The Future Internet Video - Quicktime - medium

This video explains really well what I’ve been doing the past few years at Talis. the original can be found at STI International - Service Web 3.0 - The Future Internet Video - Quicktime - medium.

by Rob Styles at 2009-06-22T11:42:18Z

June 21, 2009

Sarah Foster

Silent Solstice Night

Being nocturnal is probably my default state, when the world isn't making demands on me and I can do as I please, within a short period of time I will turn the clock and often appreciate the dawn this way.

Sometimes the silence of the night is very loud and you do hear you heart beating and thoughts snuff out if you can't sustain the argument you are developing

How fast is a thought anyway?

Wolfram Alpha was not sure what to do with that input. Which has been a common reaction to many of the things I have asked it ( and people too!) Uncertainty isn't its thing on principle.. Or I am not sure it is

It has proved however to be a very intriguing definition engine and has given me some great definitions on thought

belief | the organized beliefs of a period or group or individual higher cognitive process | the process of using your mind to consider something carefully mental object | the content of cognition; the main thing you are thinking about opinion | a personal belief or judgment that is not founded on proof or certainty (4 meanings)


Interesting, those definitions could probably apply to a few species


So I checked the definition of thinking, this is what it returned


thinking | the process of using your mind to consider something carefully


Hmmm and so could that....



Checked the definition of instinct


instinct | inborn pattern of behavior often responsive to specific stimuli

MMM... applied to the stereo Ocelots beside me and myself


Conclusion: As I thought, Cats do think

by Sarah at 2009-06-21T00:08:55Z

June 20, 2009

Rhys Wilkins

Err...

There was going to be an insightful post here, full of stuff that'd have you alternately nodding sagely, and on the verge of tears at my sheer brilliance. You'd curse the world when the post ended. You'd re-read it, over and over, biting your lip anxiously as the words ran out before you were ready for them.

Unfortunately, I couldn't remember what the heck I was going to write here, so sadly this is it. If I remember what went in the other post, I'll write it. Honest.

Thanks for listening.

by mauvedeity at 2009-06-20T22:02:00Z

June 19, 2009

Sarah Bartlett

Food for thought from a virgin grazer


I was out with my new friend Jason Smith at Jyoti's on Wednesday (we're planning to set up a Birmingham Salon in conjunction with the Institute of Ideas). Because Jason reads a lot about food, I mentioned the craze that's been sweeping Talis for some time now - namely Graze. For the uninitiated, it's a service delivering a daily box of healthy snacks that costs about £3 a day. I told him that my colleague Grant White started subscribing at the beginning of this week, and that I was monitoring him carefully to see whether he survived the vertiginous drop of food intake.

By coincidence, our colleague Zach Beauvais went off on leave the following day, and forgot to cancel his Graze subscription. So he kindly emailed me and invited me to treat myself to the contents of his Graze box. I'd brought in food for that day so I saved the box for today.
I was pretty nervous, I don't mind admitting, at the thought of surviving a whole working day on only three slices of pineapple, a small portion of "fire nuts" and an even smaller portion of cashew nuts. For good measure, I took along a small banana and a raspberry yogurt to supplement what seemed like a draconian quantity of food.
For breakfast I had what I always have - two boiled eggs and a glass of cloudy apple juice. I had the banana at about 10, and around that time I started eating the fire nuts, about two at a time. By 13:50, I'd finished the fire nuts and eaten 1 of the 3 slices of pineapple. I was stunned to report to my best friend Sandra, who's taking quite an interest in this experiment, that I was feeling completely full and wouldn't be able to eat a thing for the next hour at least.

So it's now 17:15. The pineapple is now gone but most of the cashew nuts remain uneaten. And the yogurt's still in the fridge.

My usual habit is to eat a banana at around 10. Then at 12 I have a (home-made) tortilla wrap containing iceberg lettuce, red onion, red pepper, rather a lot of Pizza Express salad dressing and tuna. By 16:00 I tend to be pretty ravenous and eat a yogurt to try to stave off a trip upstairs to the Talis staff tuck shop for the ever-tempting packet of Walkers crisp.

This previously vocal cynic of the whole Graze thing is starting to get impressed. I'm only slightly hungry, so I'm probably going to tuck into the yogurt. I might take the nuts to the pub.

Dave and I are having an austerity year - saving up to do everything that needs to be done around the house. Hence the home-made lunches. It's simply not an option to spend £3 a day on an ongoing basis. However, going down the Graze route for a month before our trip to France, land of eternally skinny women, is starting to look attractive. Would I spend £60 to lose half a stone before my holiday? This "pleasantly plump" Angl0-Saxon 40-something wouldn't hesitate.

by Sarah B. at 2009-06-19T16:26:32Z

June 18, 2009

Rhys Wilkins

Spoiler Alert

On Monday, I'm Sorry I Haven't A Clue started its 51st series. I have ears only for three things: Pink Goddess whispering those words I love to hear, being called "Dad", and I'm Sorry I Haven't A Clue (known as ISIHAC or Clue to the fans). Everything else is a bonus.

Back when I used to travel, I used to arrange site visits so that I'd be in the car, for Clue, on a Monday night. I remember once, parked on the M42 in heavy rain, absolutely not moving, because of an accident near the NEC. All around me were furious commuters. I was clutching my sides and howling with laughter, listening to Clue. I've had to park my car because I had tears of laughter in my eyes, and couldn't drive, from listening to Clue. If I recall, that last one was because someone had defined "countryside" as "the killing of Piers Morgan". Or was it the one where Samantha the scorer had popped out to see the Head Keeper at Birdworld, so she could see his woodcock, pullet and swallow? I forget.

Anyway, the whole thing revolved around the marvellously talented Humphrey Lyttelton. Clue is basically a spoof panel game, with two teams competing for points, and a chairman in charge of giving them out. Think of "Have I Got News For You", if you're not familiar with the format. Humph, as he was known, played the chairman's role as a grumpy uncle, who didn't want to be there. Brilliantly.

Sadly, Humph died last year, and for a long while, the programme rested. But now it's back, with a revolving cast of chairmen. The first, and probably bravest, was one of the few people who can carry off that slightly dotty favourite uncle thing, Stephen Fry. And he was fantastic too. Clue is back. Different, but still here. And still wonderful.

I didn't think it could survive, but it has. But don't take my word for it - see for yourself.

by mauvedeity at 2009-06-18T21:36:00Z

Rhys Wilkins

One down, some to go

After four days, I've finally managed to get my 10 MB broadband upgrade. The problem was that our cable modem was listed at the wrong address. We only moved 13 months ago, so I can see that these things take a little time. Anyhow, here we are now, upgraded.
So, I've had Pink Goddess' details upgraded, fixed her emails twice now, and finally we're done.

Along the way, I've bashed my head on the desk any number of times, learned extra bits of the Phonetic Alphabet, and suffered severe glaring when I told Pink Goddess that someone had deleted her mailbox.

Now to get the satnav fixed again... Oh, you thought it was done? Yeah, riiiiiiiiight.

by mauvedeity at 2009-06-18T21:26:00Z

Photos on Flickr

Richard Wallis at the UKeiG 2009 Conference

ukeig posted a photo:

Richard Wallis at the UKeiG 2009 Conference

Richard Wallis presenting at the UKeiG 2009 Conference, Innovation in e-Information", held at the Manchester Conference Centre 2009

by ukeig at 2009-06-18T08:56:42Z

Rob Styles

Official Google Research Blog: Large-scale graph computing at Google

from Official Google Research Blog: Large-scale graph computing at Google. If you squint the right way, you will notice that graphs are everywhere. For example, social networks, popularized by Web 2.0, are graphs that describe relationships among people. Transportation routes create a graph of physical connections among geographical locations. Paths of disease outbreaks form a graph, [...]

by Rob Styles at 2009-06-18T08:00:37Z

June 17, 2009

Rhys Wilkins

Recap

So, in the last 48 hours, we've had this:
  • Free update to 10 MB broadband at home didn't work;
  • Free update to 10 MB broadband at home didn't work (yes, I know that's twice, I tried twice and I'm about to try again;
  • Satnav vendors returned satnav, now with year-old UK map instead of the up-to-date Western Europe I sent it out with and extra scratches on the case, but 'working';


I'm thinking of handing back my Geek Union card and going out flint knapping.

by mauvedeity at 2009-06-17T18:52:00Z

June 15, 2009

John Hardy

An Inconvenient Falsehood

A friend recently loaned me the DVD of “An Inconvenient Truth” featuring Al Gore, the politician-turned-environmentalist who was beaten to the White House by George Bush.

OLYMPUS DIGITAL CAMERA         The film was so full of half-truths that it is difficult to know where to  start. One example will suffice. Al Gore cited the drying up of lake Chad as a result of Climate Change. It so happens that I spent three months flying light aircraft around Lake Chad in 1978. This was right at the end of a period of global cooling that took place between (roughly) 1960 - 1980 The level of the lake had been falling for years. There is not the slightest evidence that this had anything whatsoever to do with climate change. It might, but it seems unlikely.

But Gore’s biggest error was the classical one beloved of politicians, and the media: he confuses a positive correlation with a causal relationship. The issue is not whether the climate is changing, nor whether Carbon Dioxide concentrations in the atmosphere are increasing, nor whether mankind’s activities are putting out Carbon Dioxide.

The point at issue is the linkage between these observations. Has the carbon dioxide caused the warming, or has the warming caused the carbon dioxide? Or are they both related to something else like sunspots, cloud cover or factor X that we haven’t discovered yet?

There is no “safe side” to this argument. If mankind’s activities are indeed the cause of climate change then Gore’s conclusions are correct (even if his arguments aren’t) and we should be putting our energies into curbing emissions. But if they are not, then carbon capture, carbon trading and all the rest are a dreadful waste of money and energy that we should be putting into safe drinking water supplies, irrigation, storm warning systems and flood defences.

by John H at 2009-06-15T22:14:43Z

Rob Styles

Sir Tim Berners-Lee to advise the Government on public information delivery - PublicTechnology.net

From: Sir Tim Berners-Lee to advise the Government on public information delivery - PublicTechnology.net The Prime Minister has announced the appointment of the man credited with inventing the World Wide Web, Sir Tim Berners-Lee as expert adviser on public information delivery. The announcement was part of a statement on constitutional reform made in the House of [...]

by Rob Styles at 2009-06-15T14:04:51Z

June 14, 2009

Rhys Wilkins

X As A Service

It's all on-line services these days.

You can buy outsourced CRM widgetry, as well as pushing email and even personal productivity applications out into the cloud. This is Software As A Service, or SAAS. You can go on-line, order random stuff for your family, and have it sent to them, or Shopping As A Service. You can even put things in the post, and have them lost without you having to lift a finger - I guess this is Losing Stuff As A Service.

Of course, there's other things you can outsource. However, I'd have thought that there were some things that you can't outsource. But, as usual, it turns out that I was wrong. These guys have managed to outsource prayer. Apparently, if you sign up, you can outsource prayer to them. I'm guessing you're not allowed to ask for any kind of SLA on this.

Please tell me what you think of this.

by mauvedeity at 2009-06-14T18:43:00Z

Nadeem Shabir

WebDriver

Faster than a speeding bullet! Easier to maintain than something that’s really easy to maintain! Reliable! That’s what we want from our tests, but how do we get there? This presentation covers key strategies and patterns for writing test suites using WebDriver, a developer focused tool for web application testing similar in spirit to Selenium RC. We’ll cover why it was written, the problems it addresses and how to integrate it into your projects and testing process.

This talk presented by Simon Stewart, creator of WebDriver, still serves as a useful introduction to the tool, even though the talk itself is a couple of years old and WebDriver has moved on since then.

I’ve been experimenting with WebDriver as an alternative to Selenium/Selenium RC, although it is worth bearing in mind that both projects are merging. I’m enjoying getting to grips with WebDriver and am finding that the tight integration between WebDriver and each of the browsers it automates is much faster than Selenium, since it uses the mechanism most appropriate for controlling that browser. For example in Firefox, WebDriver is implemented as an extension, whereas in IE, WebDriver makes use of IE’s Automation controls. In addition to Firefox and IE, WebDriver also supports the following:

  • Safari 3 on OSX
  • iPhone
  • Selenium Emulation

It’s the Selenium Emulation I’d like to touch upon here, what this basically means is that the Java version of WebDriver provides an implementation of the existing Selenium API, and therefore can an be dropped in as a substitute for the Selenium Driver. Here’s an example of how you’d do this:

  1.  
  2. // You may use any WebDriver implementation. Firefox is used here as an example
  3. WebDriver driver = new FirefoxDriver();
  4.  
  5. // A "base url", used by selenium to resolve relative URLs
  6. String baseUrl = "http://www.google.com";
  7.  
  8. // Create the Selenium implementation
  9. Selenium selenium = new WebDriverBackedSelenium(driver, baseUrl);
  10.  
  11. // Perform actions with selenium
  12. selenium.open("http://www.google.com");
  13. selenium.type("name=q", "cheese");
  14. selenium.click("name=btnG");
  15.  
  16. // And get the underlying WebDriver implementation back. This will refer to the
  17. // same WebDriver instance as the "driver" variable above.
  18. WebDriver driverInstance = ((WebDriverBackedSelenium) selenium).getUnderlyingWebDriver();
  19.  

This allows for WebDriver and Selenium to live side-by-side, and provides developers with a simple mechanism for a managed migration from the existing Selenium API to WebDriver. I’m still experimenting with it but I have to admit I really like it simplicity.

,

by nadeem.shabir at 2009-06-14T16:58:39Z

Karen Reece

Doomed


As the only thing that emanates from SJP current is a deafening silence (maybe that's because Newcastle have sacked their head of media relations, oh no, I recall now Ashley has always been rubbish at communicating with his 'target audience') it is safe to assume that the club is rapidly disappearing around a metaphorical U-bend and if we aren't careful its looking likely that its unlikely ever to come back.

No manager, playing staff who are pledging allegiance to their lucrative contracts with no relegation clauses in them (until a better offer comes along), an owner who invites bids for the club on email, a chairman who seems incapable of letting a word of truth escape from his lips - the list goes on and on. Even Shearer has given up on talking to the press.

A triple whammy; years of poor team management, add in the recent financial mismanagement, and then a dollop of relegation, mix them all together, leave to marinade for a season... Hey presto... I give you Leeds United. The final icing on this cake is the recent Setanta woes, which is bound to have an effect on the TV money and therefore the shaky financial standing of the club.

The sun may be shining, but its very, very dark in SJP at the moment.

by Karen Toon at 2009-06-14T09:20:06Z

June 12, 2009

Rhys Wilkins

Art

"Ah don't know much abaaaht art, but ah do know what aah like!"

And I like Banksy. So I was really quite excited to find that the mysterious Banksy has an exhibition in Bristol. Pink Goddess has kindly offered to take me to it*. I may even wear my Banksy t-shirt, and flaunt my Banksy iPhone wallpaper.

(* - Well, she may let me drive)

by mauvedeity at 2009-06-12T21:07:00Z

Rhys Wilkins

Perspective

Today, I spotted a somewhat scary article on PZ Myers' Pharyngula blog. Feel free to read it, I can wait. Did I mention that I really like Pharyngula?

The main point of the article is that interracial marriage only became legal in some parts of America in 1967. If that isn't scary enough by itself, I realised quite quickly that my parents married in 1968. Oh my goodness. PZ goes on to observe that the people protesting gay marriage now are using the same language as the people protesting interracial marriage 40 years ago.

I'd say that all we have to do is wait 40 years, but of course, the peddlers of hate are still protesting interracial marriage now.

It seems that things never change.

by mauvedeity at 2009-06-12T20:55:00Z

Tim Hodson

My first Wordpress plugin: blog-in-blog

This is my first plugin for Wordpress, and may not be my last now that I see just how darned easy it can be!

http://informationtakesover.co.uk/blog-in-blog-wordpress-plugin/

by Tim Hodson at 2009-06-12T18:50:11Z

June 11, 2009

Nadeem Shabir

Yusuf Islam, the Cat of Old

You ever had one of those days when you get home from work, your tired, but you carry on working because there always seems far more to do than time to do it in? you feel like you want to find a way of picking yourself up out of whatever temporary rut you feel yourself in? Well yesterday was like that I think I must have stopped around 11ish. Rather than hit the sack I made myself some tea ( courtesy of Zach ), and started to flick through channels. I’ve noticed that I have a tendency to do that, a lot! there’s nothing you actually want to watch, so you just flick through until something vaguely interesting catches your eye. And something did, I stopped on BBC Four and caught the last few minutes of Alan Yentob’s Interview with Yusuf Islam (formerly known as Cat Stevens), from 2006.

I’d never seen the full interview before, and yet the image I was confronted with on the screen, of this bearded man playing this acoustic guitar and singing in this beautifully melodic voice just made me want to listen (at the 45 minute mark). It was curious I suppose that I’d tuned in just in time to listen to Alan Yentob ask him the question”:

“After all those years of resistance you’ve now picked up the guitar again. Do you think you have allowed yourself to sort of take a position you didnt feel this literalism about Islam which a lot of people find difficult to accept. Some people might say to that extent you’ve been brainwashed perhaps?”

Yusuf Islam:
“The positions that I took previously, I held fast to them because I believed them to be true. However, one only has to look at history, it wasn’t long ago when we discover, guess what, the guitar was probably introduced to Europe, through Spain by the Muslims. Now I’m saying, hang on, What? you know… and thats a reality. When I learned something better I moved, and that’s what you’ve got to do. I think we must not, ever, take the position that we know it all. God may show you something you never knew yesterday,we’ve got to be ready for that” …

Alan Yentob:
“Is there a message in these songs as you pick up this guitar again?”

Yusuf Islam:
“There is certainly a change in the wind and the way in which there is now a chance for a new understanding of the moderate middle path of Islam because the extremes have been exposed. A lot of people have missed the whole point, including some Muslims, who have gone off on some kind of..their own..strategy of trying to improve the world through some kind of devious means that has nothing to do with Islam, and yet is supposed to be in the name of Islam. The word Islam itself comes from the word ‘peace’ now that is the heart and soul of this religion. I discovered that, I’ve done that journey and perhaps I can help others to feel a bit more assured that in fact a lot of Muslims in this world, the vast majority just want to live a happy life and be at peace with the rest of the world”

I think there’s something wonderfully uplifting in his words, and in his music. His sentiments are nothing new to many muslims yet sadly social the perception of Islam and Muslims seems to be growing more and more negative as the actions of an extremist minority are used to label all Muslims are radicals. In fact I remember storming off in a rage as I watched the European election results and listened to Nick Griffin, the leader of the BNP, explain that stopping the spread of radical Islam was one of the reasons people had voted for him.

After the interview ended the BBC aired a hour long ‘BBC Four Session’ featuring Yusuf singing a number of his songs, both old and new, from a concert in Porchester Hall several years ago. I stayed up and watched the show and found myself being moved more and more by his songs and their message. I even ended up downloading several of his recent albums on iTunes as I watched the performance on tv - although I’m not sure if my colleagues appreciated that since I was humming, and singing along to them as I worked in the office today :-)

Rather than pick up the laptop and work this evening, I decided to see if I could find that interview and watch it all, sadly BBC iPlayer doesn’t have it, however it does still have the ‘BBC Four Session - Yusuf Islam‘ which is available to watch - it’s a wonderful concert, an inspired performance which I certainly recommend.

After searching on Google I did eventually find the Interview, there’s a copy hosted on Google Video ( disclaimer: it’s hosted by an organisation called ‘Turn To Islam’. I have no idea what this organisation is, I simply wanted to link to the video). I’m glad I watched it all Yusuf describes his early life, his celebrity status, his, his conversion to islam, and his return to performing. Perhaps the most moving part of the interview is when he describes his battle with tuberculosis - which will resonate with anyone who has ever found themselves lying in a hospital bed reflecting on their life, and where they are headed, particularly when he says “.. in that hospital I developed some insights which then later fed into my music … into my journey” … a poignant sentiment that touched me deeply given my own experience.

Yusuf Islam is an amazing man, who truly inspires.

,

by nadeem.shabir at 2009-06-11T21:25:34Z

Rhys Wilkins

It's enough to make you go postal

Apparently, there's a new directory enquiries service in the UK for mobile phones. It allows you to search for people and annoy them. It costs £1 a pop for normal users, although I'm pretty sure that if you're a company that's happy to pay through the nose to alienate hundreds of thousands of potential customers bring!! exciting! amazing!! opportunities!!!!!! to! special!!! customerz!!!! today!!!!!!! then I'm guessing they'll take the usual bribes.

Of course, you can opt out... by providing them your phone number. This seems awfully like the links you get in spam emails that are supposed to let you opt out of receiving more mails, but instead stick your address on a list of confirmed spam targets. So I'm really not sure what to do on this. You can check it out here: Evil Kitten-Drowning Bastards.

I probably won't do anything right now. It's quite interesting, but I remember Nike doing 'SMS marketing', which caused me to swear never to buy anything of theirs again. I suspect that someone else will blow away a leg on this lark, and the whole service will quietly slide into a hole, never to be heard of again.

(via Pharyngula, which may or may not cause existential distress, and Bitter Wallet)

by mauvedeity at 2009-06-11T21:14:00Z

Andrew Bate

Tesco Home Delivery fail us again

Since the Tesco online grocery delivery started, several years ago, we generally use them about once a month to buy certain bulky items so that we don’t have to pick up as much when visiting the store.  Over the years though we have changed what we do order from them as, increasingly, their inability ro deliver good quality meat, fruit and vegetables gets more pronounced.

These days we never usually order fresh produce from them – we always pick these ourselves at the store.  We have had rotting fresh produce delivered on at least 5 occasions and would regularly have been sent produce right on the edge of ’sell by’ date.   They’d probably deny that they try to get rid of items that is barely fresh through the online service, but that’s how it increasingly feels to us.

For the last few orders we haven’t ordered anything fresh but tonight we had a delivery including potatoes – these arrived and were soft, with several convered in mould.  Ridiculous….

So (another) email of complaint has just gone out to Tesco and I’m sure I’ll get their standard email of apology back.

From this point forward though, absolutely no fresh produce will be ordered through their online service – you just can’t trust them to pick anything decent.

There are some hilarious quotes on their web site:-

Picking your fresh food

Our expertly trained shoppers always pick from the back of the shelves to ensure you get the freshest produce and the longest sell by dates. They also carefully select fruit and vegetables as if they were shopping for themselves. They ask themselves the question “would I buy it?” and therefore do not send out anything that is not of the highest quality.

Rubbish!

by andrew at 2009-06-11T18:21:15Z

June 10, 2009

Sarah Foster

Soothed by a Cat called Yusuf

A Cat Said: I love my Dog and it's a Wild World

He also said:

"find you are in hospital, getting injections day in and day out, and people around you are dying, it certainly changes your perspective. I got down to thinking about myself. It seemed almost as if I had my eyes shut."


"when I sing the songs now, I learn strange things. I learn the meanings of my songs late..."

"I get the tune and then I just keep on singing the tune until the words come out from the tune. It's kind of a hypnotic state that you reach after a while when you keep on playing it where words just evolve from it. So you take those words and just let them go whichever way they want... 'Moonshadow'? Funny, that was in Spain, I went there alone, completely alone, to get away from a few things. And I was dancin' on the rocks there... right on the rocks where the waves were, like, blowin' and splashin'. Really, it was so fantastic. And the moon was bright, ya know, and I started dancin' and singin' and I sang that song and it stayed. It's just the kind of moment that you want to find when you're writin' songs."

What a fantastic image - I can imagine, hear and see it, taste the salt of it.

Geldof said ( in reference to Father to Son) his words are what would be said and that the melodies are beautiful.. Who could argue with St Sir Bob?!

Peace train sounding louder....

"That name is part of my history and a lot of the things I dreamt about as Cat Stevens have come true as Yusuf Islam"

They've come true because he has committed himself to making them come true. What an interesting and balanced man.

One to join my list of heroes

.... Now when and where can I get tickets...


by Sarah at 2009-06-10T23:35:21Z

Rhys Wilkins

Tickets

Apparently, we've got Will Young tickets.

Pink Goddess was somewhat pleased.

by mauvedeity at 2009-06-10T20:12:00Z

OS X UI features I didn't know about

OK, a couple of features in OS X that I didn't know about, plus my favourite one to show off. If you're on Windows, move on, there's nothing to see here.

First, try alt-clicking the wireless strength indicator in the top-right of your screen. It'll show some extra information about the wireless network you're currently connected to, including the channel and more detail on the signal quality.

Second, the dock. If you've turned dock zooming off, like many people, then the dock icons don't zoom when you wave the mouse pointer at them. But if you want to zoom in to an icon, for example to check a progress indicator, you might want to zoom in. So, hold down control and shift, then push the mouse pointer over the dock icon, and it'll zoom in. Let go of the keys to cancel the zooming effect.

Third, hold down shift as you minimise or restore a window, and it'll slow down the effect, making the genie or zoom effect really obvious. It looks quite cool, but is otherwise utterly useless.

What's your favourite OS X hidden feature?

by mauvedeity at 2009-06-10T20:00:00Z

Browsers

Ooh, it's all new on the browser front. I'm spoilt for choice:

I could have Safari 4, now with oddly-rearranged user interface and it's 100% Acid 3 score. Nice. Or, I could go for Chrome, and it's "almost but not quite runs on 64-bit Windows" shenanigans. There's always Internet Explorer 78, now in 32-bit and 64-bit, but still with the ability to roach its own settings to the point where it won't launch. Or, of course, the old faithful Firefox, now in 64-bit and called "Minefield" - as in likely to blow up in your face.

Oh, what to do? I think I'll stick with Minefield. I've had to reset IE twice now, the warning from the Chrome developers that 'this workaround disables a big chunk of Chrome's security' is somewhat worrisome, and of course Safari 4 on Windows seems somewhat perverse.

Now to handle the same dilemma at home.

by mauvedeity at 2009-06-10T19:51:00Z

Elliot Smith

How I worked out that curl is doing bad things with MARC

I work on a system at Talis which posts MARC records from customer library databases into a MARC to RDF transformer. The resulting RDF generated from the MARC is sent into the Talis Platform, where it's used to power Prism.

Over the last day or so I've been working on a bug which has prevented some records going correctly through this process. Along the way, I noticed another bug occurring somewhere between the post from the customer site into our MARC to RDF transformer. It looked as if line break characters in the original MARC record were being lost somewhere in the process. Consequently, when the MARC was pushed into the transformer, the record got spat out as invalid, as the length specified in the MARC leader didn't correspond to the length of the record (now it had lost its line break characters). (By the way, working directly with byte streams is the only way to work with MARC, for precisely this reason.)

I had a sudden insight on the way home, triggered by remembering issues I'd had with curl (the command line HTTP client) working on another personal project. On that project, I'd been trying to post RDF triples in ntriple format into my application using curl. However, the application only seemed to recognise the first RDF triple in the posted file. I couldn't understand why.

Then, when I echoed the body of the HTTP request, as received by my app from curl, I realised the issue: curl was sending the body of the request WITHOUT LINE BREAKS. As line break characters act as the delimiter between triples in RDF ntriple format, my app was only seeing a single RDF ntriple. When I tried an alternative tool to send the posts (the extremely useful Poster add-on for Firefox), the ntriples were received correctly.

Once I remembered this, I decided to do some debugging of the kind of requests curl would send if it were posting MARC records. My hypothesis was that curl was stripping line break characters from the MARC record (which is bad, as they are valid characters in MARC), and hence causing the record to be shorter than the leader said it should be.

First step was to put together something to echo and/or save HTTP request bodies. Rack is ideal for this sort of thing, so I used this little Rack web server program:

require 'rubygems'
require 'rack'
def save_body(body)
  File.open('last_raw_request', 'w') {|f| f.write(body)}
  body
end
Rack::Handler::WEBrick.run(lambda {|e| [200, {}, save_body(e['rack.input'].read)]}, :Port=>7777)

This saves the raw request body to a file called "last_raw_request".

I first posted a MARC file with line breaks in it (attached) using Poster (with Content-Type set to application/marc21) through Firefox. The MARC file came through intact and still valid.

I then posted a MARC file with line breaks in it using curl:

curl -d @marcfile.mrc -H "Content-Type:application/marc21" http://localhost:7777/

Which produced an invalid MARC file with line breaks missing.

The solution is to use the --data-binary switch when using curl to send binary data, which we're not doing when sending MARC from the customer site. Mostly this doesn't matter, but it does when the MARC record contains line break characters.

Namely:

curl --data-binary @marcfile.mrc -H "Content-Type:application/marc21" http://localhost:7777/

by elliot at 2009-06-10T09:21:31Z

June 09, 2009

Rhys Wilkins

Satnav, part... oh, I've no idea

After a couple of weeks and apparently two attempts to send me a RMA box, I've finally had a box to ship my dead satnav back in. It's all packed up and awaiting a trip to the post office tomorrow.

Of course this doesn't include the fact that I've got another RMA box on my bookshelves, which I got the first time I tried to return it. When the RMA number disappeared off my support area on the web site.

Let's see what happens this time.

By the way, if you think I'm making too much fuss over this, please consider the following: I paid for a device that does not work, and my warranty appears to amount to "Sucks to be you". This is not customer service, this is a rip-off, and I think I'm entitled to what I paid for. Of course, if you disagree, then feel free to leave a comment.

by mauvedeity at 2009-06-09T21:06:00Z

Rhys Wilkins

Two things that don't often go together

"Bank" and "succeed".

I had a phone call from my bank yesterday, alerting me to a suspicious transaction on my card. They'd flagged it because it was for an odd amount and in America. Some discussion back and forward, and I worked out what it was - it was Google renewing my vanity domain and Google Apps setup. I told them it was OK, and explain what it was all about. When I explained that this was an annual renewal, the person I spoke to promised to tag the transaction so that it'd go through next year.

The best bit - it was for $10 (less than ten pounds). It must have cost my bank much more than that to actually call me and alert me. But actually, I'm really impressed. Score one for my bank!

by mauvedeity at 2009-06-09T20:59:00Z

Photos on Flickr

Tifillin and tfillin bag

PhotoStock-Israel posted a photo:

Tifillin and tfillin bag

Tifillin and elaborated decorated tfillin bag, Tifillin are either of two boxes containing Biblical verses and black, leather straps attached to them which are used in rabbinic Jewish prayer. They are an essential part of morning prayer services, and are worn on a daily basis (except the Sabbath and festivals) by religious Jewish males above the age of 13 years

by PhotoStock-Israel at 2009-06-09T10:24:07Z

June 08, 2009

John Hardy

More Perverted Science…

ida

The Guardian (19th May 2009) quoted Sir David Attenborough: this little creature is going to show our connection with all other mammals. Google changed it’s home page icon to reflect the find. On 21 May 2009, the Daily Mail trumpeted Scientists find the 'missing link': A 47million-year-old lemur that could revolutionise how we see human evolution.

But also on 21 May, the New Scientist published an article Why Ida fossil is not the missing link. On 24th May, the Times weighed in with Origin of the Specious: Ida the fossil was hailed as the ‘missing link’ in our evolution. Don’t believe the hype

Because it was hype. The early enthusiasm for the “missing link” idea was based on press releases and media rights rather than scholarly content and careful analysis. Ida was dug up in 1983 and reportedly one of the protagonists had bought her for a large sum of money – which he was presumably trying to recoup. She is an amazing fossil, but later and more sober assessment appears to have concluded that she adds almost nothing to our understanding of human evolution.

We can do without this kind of thing. If science is going to work at all it requires a critical mass of integrity. Once again, as with NASA climate change data, not only does that integrity appears to have been lacking, but also the perpetrators appear to have escaped any significant censorship

by John H at 2009-06-08T21:40:52Z

Rhys Wilkins

E-Petitions

There's been a lot of comments on how and why the BNP got in. Apparently the turnout was 43%, which is rather worrisome, and the BNP managed to get 9% of that. It's been said that the e-petitions are useless.

But they aren't. I wasn't enormously political, until I found these results out. I've signed up with Hope Not Hate and promised to volunteer. Next time I get paid I'll be sending them a donation.

I want to work with them to fight the BNP, and the other racists out there. Because we need to make a world worth living in.

On a personal note, my mother remembers signs in windows saying "No blacks, no Irish, no dogs". Do we really think the world was better then?

by mauvedeity at 2009-06-08T21:30:00Z

Elliot Smith

Open source at work

It's taken a while, but a feature request I logged 2 years ago has finally made it to Drupal trunk. (The basic idea was to put a timeout on Drupal HTTP requests to other systems, to prevent a whole Drupal site timing out if one of its requests to another site hung - prompted by working on AllConsuming and Last.fm modules for Drupal.) My original patch was promptly rejected, but it's been fascinating watching the discussion around the idea over the months, culminating in a well-rounded, properly-tested patch landing in CVS.

by elliot at 2009-06-08T15:39:14Z

June 07, 2009

Ross Singer

Better Paging Through Better Searching

For the last couple of weeks I’ve returned to working on Alto Jangle connector, at least part-time.  I had shelved development on it for a while; I had a hard time finding anybody interested in using it and had reached a point where the development database I was working against was making it difficult to know what to expect in a real, live Alto system.  After I got wind of a couple of libraries that might be interested in it, I thought I should at least get it in a usable state.

One of the things that was vexing me prior to my hiatus was how to get Sybase to page through results in a semi-performant way.  I had originally blamed it on Grails, then when I played around with refactoring the connector in PHP (using Quercus, which is pretty slick by the way, to provide Sybase access via JDBC — the easiest way to do it) I realized that paging is just outside of Sybase’s capabilities.

And when you’re so used to MySQL, PostgreSQL and SQLite, this sort of makes your jaw drop (although, in its defense, it appears that this isn’t all that easy in Oracle, either — however, it’s at least possible in Oracle).

There seem to be two ways to do something like getting rows 375,000 – 375,099 from all of the rows in a table:

  1. Use cursors
  2. use SET ROWCOUNT 375100 and loop through and throw out the first 375,000 results.

The first option isn’t really viable.  You need write access to the database and it’s unclear how to make this work in most database abstraction libraries.  I don’t actually know that cursors do anything differently than option 2 besides pushing the looping to the database engine itself.  I was actually using cursors in my first experiments in JRuby using java.sql directly, but since I wasn’t aware of this problem at the time, I didn’t check to see how well it performed.

Option 2 is a mess, but this appears to be how GORM/Hibernate deals with paging in Sybase.  Cursors aren’t available in Quercus’ version of PDO, so it was how I had to deal with paging in my PHP prototypes, as well.  When I realized that PHP was not going to be any faster than Grails, I decided to just stick with Grails (”regular C-PHP” is out — compiling in Sybase support is far too heavy a burden).

This paging thing still needed to be addressed.  Offsets of 400,000 and more were taking more than twelve minutes to return.  How much more, I don’t know — I killed the request at the 12 minute mark.  While some of this might be result of a bad or missing index, any way you cut it, it wasn’t going to be acceptable.

I was kicking around the idea of exporting the “models” of the Jangle entities into a local HSQLDB